function asinf( x ) {
	var flag;
	var sgn;
	var ax;
	var z;

	if ( isnanf( x ) ) {
		return NaN;
	}
	x = float64ToFloat32( x );
	if ( x > 0.0 ) {
		sgn = 1;
		ax = x;
	} else {
		sgn = -1;
		ax = -x;
	}
	if ( ax > 1.0 ) {
		return NaN;
	}
	if ( ax < 1.0e-4 ) {
		return x;
	}
	if ( ax > 0.5 ) {
		z = float64ToFloat32( 0.5 * float64ToFloat32( 1.0 - ax ) );
		ax = sqrtf( z );
		flag = 1;
	} else {
		z = float64ToFloat32( ax * ax );
		flag = 0;
	}
	z = float64ToFloat32( float64ToFloat32( float64ToFloat32( polyp( z ) * z ) * ax ) + ax ); // eslint-disable-line max-len

	if ( flag !== 0 ) {
		z = float64ToFloat32( z + z );
		z = float64ToFloat32( PI02F - z );
	}
	if ( sgn < 0 ) {
		z = -z;
	}
	return z;
}
Computes the arcsine of a single-precision floating-point number.

## Method

-   A polynomial of the form

    ```tex
    x + x^3 P(x^2)
    ```

    is used for \\(\|x\|\\) in the interval \\(\[0, 0.5\]\\). If \\(\|x\| > 0.5\\), it is transformed by the identity

    ```tex
    \operatorname{asinf}(x) = \frac{\pi}{2} - 2 \operatorname{asinf}( \sqrt{ (1-x)/2 } )
    ```

## Notes

-   Relative error:

    | arithmetic | domain | # trials | peak    | rms     |
    |:-----------|:-------|:---------|:--------|:--------|
    | IEEE       | -1, 1  | 10^5     | 2.5e-7  | 5.0e-8  |

@param {number} x - input value
@returns {number} arcsine (in radians)

@example
var v = asinf( 0.0 );
// returns 0.0

@example
var v = asinf( 3.14/4.0 );
// returns ~0.903

@example
var v = asinf( -3.14/6.0 );
// returns ~-0.551

@example
var v = asinf( NaN );
// returns NaN