Deleted Added
full compact
e_acoshl.c (22993) e_acoshl.c (23579)
1/* @(#)e_acosh.c 5.1 93/09/24 */
2/*
3 * ====================================================
4 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5 *
6 * Developed at SunPro, a Sun Microsystems, Inc. business.
7 * Permission to use, copy, modify, and distribute this
8 * software is freely granted, provided that this notice
9 * is preserved.
10 * ====================================================
11 */
12
13#ifndef lint
1/* @(#)e_acosh.c 5.1 93/09/24 */
2/*
3 * ====================================================
4 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5 *
6 * Developed at SunPro, a Sun Microsystems, Inc. business.
7 * Permission to use, copy, modify, and distribute this
8 * software is freely granted, provided that this notice
9 * is preserved.
10 * ====================================================
11 */
12
13#ifndef lint
14static char rcsid[] = "$Id$";
14static char rcsid[] = "$Id: e_acosh.c,v 1.4 1997/02/22 15:09:56 peter Exp $";
15#endif
16
17/* __ieee754_acosh(x)
18 * Method :
19 * Based on
20 * acosh(x) = log [ x + sqrt(x*x-1) ]
21 * we have
22 * acosh(x) := log(x)+ln2, if x is large; else

--- 33 unchanged lines hidden (view full) ---

56 if(hx >=0x7ff00000) { /* x is inf of NaN */
57 return x+x;
58 } else
59 return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */
60 } else if(((hx-0x3ff00000)|lx)==0) {
61 return 0.0; /* acosh(1) = 0 */
62 } else if (hx > 0x40000000) { /* 2**28 > x > 2 */
63 t=x*x;
15#endif
16
17/* __ieee754_acosh(x)
18 * Method :
19 * Based on
20 * acosh(x) = log [ x + sqrt(x*x-1) ]
21 * we have
22 * acosh(x) := log(x)+ln2, if x is large; else

--- 33 unchanged lines hidden (view full) ---

56 if(hx >=0x7ff00000) { /* x is inf of NaN */
57 return x+x;
58 } else
59 return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */
60 } else if(((hx-0x3ff00000)|lx)==0) {
61 return 0.0; /* acosh(1) = 0 */
62 } else if (hx > 0x40000000) { /* 2**28 > x > 2 */
63 t=x*x;
64 return __ieee754_log(2.0*x-one/(x+sqrt(t-one)));
64 return __ieee754_log(2.0*x-one/(x+__ieee754_sqrt(t-one)));
65 } else { /* 1<x<2 */
66 t = x-one;
65 } else { /* 1<x<2 */
66 t = x-one;
67 return log1p(t+sqrt(2.0*t+t*t));
67 return log1p(t+__ieee754_sqrt(2.0*t+t*t));
68 }
69}
68 }
69}