?? sinh.c
字號(hào):
#ifndef lintstatic char sccsid[] = "@(#)sinh.c 1.1 92/07/30 SMI";#endif/* * Copyright (c) 1986 by Sun Microsystems, Inc. *//* sinh(x) * Code originated from 4.3bsd. * Modified by K.C. Ng for SUN 4.0 libm. * Method : * 1. reduce x to non-negative by sinh(-x) = - sinh(x). * 2. * * expm1(x) + expm1(x)/(expm1(x)+1) * 0 <= x <= lnovft : sinh(x) := -------------------------------- * 2 * lnovft <= x < INF : sinh(x) := exp(x-1024*ln2)*2**1023 * * * Special cases: * sinh(x) is x if x is +INF, -INF, or NaN. * only sinh(0)=0 is exact for finite argument. * */#include <math.h>#include "libm.h"double sinh(x)double x;{ double r,t; if(!finite(x)) return x+x; /* sinh of NaN or +-INF is itself */ r=fabs(x); if(r<lnovft) {t=expm1(r); r = copysign((t+t/(1.0+t))*0.5,x);} else { if (r<1000.0) x = copysign(exp((r-1024*ln2hi)-1024*ln2lo),x); r = scalbn(x,1023); } if (!finite(r)) r = SVID_libm_err(x,x,25); return r;}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -