| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | /*							cosh.c * *	Hyperbolic cosine * * * * SYNOPSIS: * * double x, y, cosh(); * * y = cosh( x ); * * * * DESCRIPTION: * * Returns hyperbolic cosine of argument in the range MINLOG to * MAXLOG. * * cosh(x)  =  ( exp(x) + exp(-x) )/2. * * * * ACCURACY: * *                      Relative error: * arithmetic   domain     # trials      peak         rms *    DEC       +- 88       50000       4.0e-17     7.7e-18 *    IEEE     +-MAXLOG     30000       2.6e-16     5.7e-17 * * * ERROR MESSAGES: * *   message         condition      value returned * cosh overflow    |x| > MAXLOG       MAXNUM * * *//*							cosh.c *//*Cephes Math Library Release 2.8:  June, 2000Copyright 1985, 1995, 2000 by Stephen L. Moshier*/#include <math.h>#ifdef ANSIPROTextern double exp ( double );extern int isnan ( double );extern int isfinite ( double );#elsedouble exp();int isnan(), isfinite();#endifextern double MAXLOG, INFINITY, LOGE2;double cosh(x)double x;{double y;#ifdef NANSif( isnan(x) )	return(x);#endifif( x < 0 )	x = -x;if( x > (MAXLOG + LOGE2) )	{	mtherr( "cosh", OVERFLOW );	return( INFINITY );	}	if( x >= (MAXLOG - LOGE2) )	{	y = exp(0.5 * x);	y = (0.5 * y) * y;	return(y);	}y = exp(x);y = 0.5 * (y + 1.0 / y);return( y );}
 |