The ASIN function returns the angle, expressed in radians, whose sine is X (i.e., the arc-sine).

For real input, the range of ASIN is between -∏/2 and ∏/2.

For input of a complex number, Z = X + iY, the complex arcsine is given by,

asin(Z) = asin(B) + i alog(A + sqrt(A2 - 1)) if Y >= 0

asin(Z) = asin(B) - i alog(A + sqrt(A2 - 1)) if Y < 0

where

A = 0.5 sqrt((X + 1)2 + Y2) + 0.5 sqrt((X - 1)2 + Y2)

B = 0.5 sqrt((X + 1)2 + Y2) - 0.5 sqrt((X - 1)2 + Y2)

The separation of the two formulas at Y = 0 takes into account the branch-cut discontinuity along the real axis from -∞ to -1 and +1 to +∞, and ensures that sin(asin(Z)) is equal to Z. For reference, see formulas 4.4.37-39 in Abramowitz, M. and Stegun, I.A., 1964: Handbook of Mathematical Functions (Washington: National Bureau of Standards).

Examples


Find the angle whose sine is 0.707 and print the result in degrees by entering:

PRINT, 180/!PI*ASIN(0.707)

IDL prints:

44.9913
 

Find the complex arcsine of 2 + i and print the result by entering:

PRINT, ASIN(COMPLEX(2,1))

IDL prints:

(      1.06344,      1.46935)

See the ATAN function for an example of visualizing the complex arcsine.

Syntax


Result = ASIN(X)

Return Value


Returns the angle, expressed in radians, whose sine is X (i.e., the arc-sine).

Arguments


X

The sine of the desired angle. For real input, X should be in the range -1 to +1. If X is double-precision floating or complex, the result is of the same type. All other types are converted to single-precision floating-point and yield floating-point results. If X is an array, the result has the same structure, with each element containing the arcsine of the corresponding element of X.

Keywords


Thread Pool Keywords

This routine is written to make use of IDL’s thread pool, which can increase execution speed on systems with multiple CPUs. The values stored in the !CPU system variable control whether IDL uses the thread pool for a given computation. In addition, you can use the thread pool keywords TPOOL_MAX_ELTS, TPOOL_MIN_ELTS, and TPOOL_NOTHREAD to override the defaults established by !CPU for a single invocation of this routine. See Thread Pool Keywords for details.

Version History


Original

Introduced

See Also


ACOS, COS, COSH, SIN, SINH, ATAN, TAN, TANH