1*9942Ssam /* @(#)tanh.c 4.1 12/25/82 */ 2*9942Ssam 3*9942Ssam /* 4*9942Ssam tanh(arg) computes the hyperbolic tangent of its floating 5*9942Ssam point argument. 6*9942Ssam 7*9942Ssam sinh and cosh are called except for large arguments, which 8*9942Ssam would cause overflow improperly. 9*9942Ssam */ 10*9942Ssam 11*9942Ssam double sinh(), cosh(); 12*9942Ssam 13*9942Ssam double tanh(arg)14*9942Ssamtanh(arg) 15*9942Ssam double arg; 16*9942Ssam { 17*9942Ssam double sign; 18*9942Ssam 19*9942Ssam sign = 1.; 20*9942Ssam if(arg < 0.){ 21*9942Ssam arg = -arg; 22*9942Ssam sign = -1.; 23*9942Ssam } 24*9942Ssam 25*9942Ssam if(arg > 21.) 26*9942Ssam return(sign); 27*9942Ssam 28*9942Ssam return(sign*sinh(arg)/cosh(arg)); 29*9942Ssam } 30