Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_specfun_arcsin (s09aa)

## Purpose

nag_specfun_arcsin (s09aa) returns the value of the inverse circular sine, $\mathrm{arcsin}x$, via the function name. The value is in the principal range $\left(-\pi /2,\pi /2\right)$.

## Syntax

[result, ifail] = s09aa(x)
[result, ifail] = nag_specfun_arcsin(x)

## Description

nag_specfun_arcsin (s09aa) calculates an approximate value for the inverse circular sine, $\mathrm{arcsin}x$. It is based on the Chebyshev expansion
 $arcsin⁡x=x×yx=x∑′r=0arTrt$
where $-\frac{1}{\sqrt{2}}\le x\le \frac{1}{\sqrt{2}}$ and $t=4{x}^{2}-1$.
For ${x}^{2}\le \frac{1}{2}\text{, }\mathrm{arcsin}x=x×y\left(x\right)$.
For $\frac{1}{2}<{x}^{2}\le 1\text{, }\mathrm{arcsin}x=\mathrm{sign}x\left\{\frac{\pi }{2}-\mathrm{arcsin}\sqrt{1-{x}^{2}}\right\}$.
For ${x}^{2}>1\text{, }\mathrm{arcsin}x$ is undefined and the function fails.

## References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

## Parameters

### Compulsory Input Parameters

1:     $\mathrm{x}$ – double scalar
The argument $x$ of the function.
Constraint: $\left|{\mathbf{x}}\right|\le 1.0$.

None.

### Output Parameters

1:     $\mathrm{result}$ – double scalar
The result of the function.
2:     $\mathrm{ifail}$int64int32nag_int scalar
${\mathbf{ifail}}={\mathbf{0}}$ unless the function detects an error (see Error Indicators and Warnings).

## Error Indicators and Warnings

Errors or warnings detected by the function:
${\mathbf{ifail}}=1$
The function has been called with an argument greater than $1.0$ in absolute value; $\mathrm{arcsin}x$ is undefined and the function returns zero.
${\mathbf{ifail}}=-99$
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.

## Accuracy

If $\delta$ and $\epsilon$ are the relative errors in the argument and result, respectively, then in principle
 $ε≃ x arcsin⁡x 1-x2 ×δ .$
That is, a relative error in the argument $x$ is amplified by at least a factor $\frac{x}{\mathrm{arcsin}x\sqrt{1-{x}^{2}}}$ in the result.
The equality should hold if $\delta$ is greater than the machine precision ($\delta$ is a result of data errors etc.) but if $\delta$ is produced simply by round-off error in the machine it is possible that rounding in internal calculations may lose an extra figure in the result.
This factor stays close to one except near $\left|x\right|=1$ where its behaviour is shown in the following graph.
Figure 1
For $\left|x\right|$ close to unity, $1-\left|x\right|\sim \delta$, the above analysis is no longer applicable owing to the fact that both argument and result are subject to finite bounds, ($\left|x\right|\le 1$ and $\left|\mathrm{arcsin}x\right|\le \frac{1}{2}\pi$). In this region $\epsilon \sim \sqrt{\delta }$; that is the result will have approximately half as many correct significant figures as the argument.
For $\left|x\right|=1$ the result will be correct to full machine precision.

None.

## Example

This example reads values of the argument $x$ from a file, evaluates the function at each value of $x$ and prints the results.
```function s09aa_example

fprintf('s09aa example results\n\n');

x = [ -0.5    0.1     0.9];
n = size(x,2);
result = x;

for j=1:n
[result(j), ifail] = s09aa(x(j));
end

disp('      x        arcsin(x)');
fprintf('%12.3e%12.3e\n',[x; result]);

```
```s09aa example results

x        arcsin(x)
-5.000e-01  -5.236e-01
1.000e-01   1.002e-01
9.000e-01   1.120e+00
```