Public Shared Function s11aa ( _ x As Double, _ <OutAttribute> ByRef ifail As Integer _ ) As Double
public: static double s11aa( double x, [OutAttribute] int% ifail )
- Type: System..::..DoubleOn entry: the argument of the function.Constraint: .
s11aa calculates an approximate value for the inverse hyperbolic tangent of its argument, .
For it is based on the Chebyshev expansion
where , , .
For , it uses
For , the method fails as is undefined.
Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Errors or warnings detected by the method:
- The method has been called with an argument greater than or equal to in magnitude, for which is not defined. On failure, the result is returned as zero.
If and are the relative errors in the argument and result, respectively, then in principle
That is, the relative error in the argument, , is amplified by at least a factor in the result. The equality should hold if is greater than the machine precision ( due to data errors etc.) but if is simply due to round-off in the machine representation then it is possible that an extra figure may be lost in internal calculation round-off.
The factor is not significantly greater than one except for arguments close to . However in the region where is close to one, , the above analysis is inapplicable since is bounded by definition, . In this region where arctanh is tending to infinity we have
which implies an obvious, unavoidable serious loss of accuracy near , e.g., if and agree to significant figures, the result for would be correct to at most about one figure.
This example reads values of the argument from a file, evaluates the function at each value of and prints the results.