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(A^{2} - 1)) if Y >= 0

asin(Z) = asin(B) - i alog(A + sqrt(A^{2} - 1)) if Y < 0

where

A = 0.5 sqrt((X + 1)^{2} + Y^{2}) + 0.5 sqrt((X - 1)^{2} + Y^{2})

B = 0.5 sqrt((X + 1)^{2} + Y^{2}) - 0.5 sqrt((X - 1)^{2} + Y^{2})

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 |