hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_specfun_tanh (s10aa)

 Contents

    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example

Purpose

nag_specfun_tanh (s10aa) returns a value for the hyperbolic tangent, tanhx, via the function name.

Syntax

[result, ifail] = s10aa(x)
[result, ifail] = nag_specfun_tanh(x)

Description

nag_specfun_tanh (s10aa) calculates an approximate value for the hyperbolic tangent of its argument, tanhx.
For x1 it is based on the Chebyshev expansion
tanhx=x×yt=xr=0arTrt  
where -1x1,  -1t1,   and  t=2x2-1.
For 1<x<E1 
tanhx=e2x-1 e2x+1 .  
For xE1, tanhx=signx to within the representation accuracy of the machine and so this approximation is used.

References

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

Parameters

Compulsory Input Parameters

1:     x – double scalar
The argument x of the function.

Optional Input Parameters

None.

Output Parameters

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

Error Indicators and Warnings

None.

Accuracy

If δ and ε are the relative errors in the argument and the result respectively, then in principle,
ε 2x sinh2x δ .  
That is, a relative error in the argument, x, is amplified by a factor approximately 2x sinh2x , in the result.
The equality should hold if δ is greater than the machine precision (δ due to data errors etc.) but if δ is due simply to the round-off in the machine representation it is possible that an extra figure may be lost in internal calculation round-off.
The behaviour of the amplification factor is shown in the following graph:
Figure 1
Figure 1
It should be noted that this factor is always less than or equal to 1.0 and away from x=0 the accuracy will eventually be limited entirely by the precision of machine representation.

Further Comments

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 s10aa_example


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

x = [20.0  -5.0    0.5     5.0];
n = size(x,2);
result = x;

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

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


s10aa example results

      x         tanh(x)
   2.000e+01   1.000e+00
  -5.000e+00  -9.999e-01
   5.000e-01   4.621e-01
   5.000e+00   9.999e-01

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015