src/main/java/com/flowpowered/math/TrigMath.java
public static double asin(double value) {
        if (value > 1) {
            return Double.NaN;
        } else if (value < 0) {
            return -asin(-value);
        } else {
            double temp = Math.sqrt(1 - value * value);
            if (value > 0.7) {
                return HALF_PI - msatan(temp / value);
            } else {
                return msatan(value / temp);
            }
        }
    }
public static double asin(double value) {
        if (value > 1) {
            return Double.NaN;
        } else if (value < 0) {
            return -asin(-value);
        } else {
            double temp = Math.sqrt(1 - value * value);
            if (value > 0.7) {
                return HALF_PI - msatan(temp / value);
            } else {
                return msatan(value / temp);
            }
        }
    }
Calculates the arc sine of the value specified<br><br> Returns NaN if the input value is outside the sine range

@param value of the sine
@return sine arc in radians