📄 tanhf.c
字号:
/* tanhf.c * * Hyperbolic tangent * * * * SYNOPSIS: * * float x, y, tanhf(); * * y = tanhf( x ); * * * * DESCRIPTION: * * Returns hyperbolic tangent of argument in the range MINLOG to * MAXLOG. * * A polynomial approximation is used for |x| < 0.625. * Otherwise, * * tanh(x) = sinh(x)/cosh(x) = 1 - 2/(exp(2x) + 1). * * * * ACCURACY: * * Relative error: * arithmetic domain # trials peak rms * IEEE -2,2 100000 1.3e-7 2.6e-8 * *//*Cephes Math Library Release 2.2: June, 1992Copyright 1984, 1987, 1989, 1992 by Stephen L. MoshierDirect inquiries to 30 Frost Street, Cambridge, MA 02140*//* Single precision hyperbolic tangent * test interval: [-0.625, +0.625] * trials: 10000 * peak relative error: 7.2e-8 * rms relative error: 2.6e-8 */#include <math.h>extern float MAXLOGF;float expf( float );float tanhf( float xx ){float x, z;if( xx < 0 ) x = -xx;else x = xx;if( x > 0.5 * MAXLOGF ) { if( xx > 0 ) return( 1.0 ); else return( -1.0 ); }if( x >= 0.625 ) { x = expf(x+x); z = 1.0 - 2.0/(x + 1.0); if( xx < 0 ) z = -z; }else { z = x * x; z = (((( -5.70498872745E-3 * z + 2.06390887954E-2) * z - 5.37397155531E-2) * z + 1.33314422036E-1) * z - 3.33332819422E-1) * z * xx + xx; }return( z );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -