Lines Matching +full:no +full:- +full:high +full:- +full:z
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
39 P1 = 0x1.62e430p-1f,
40 P2 = 0x1.ebfbe0p-3f,
41 P3 = 0x1.c6b348p-5f,
42 P4 = 0x1.3b2c9cp-7f;
46 twom100 = 0x1p-100f;
49 0x1.6a09e667f3bcdp-1,
50 0x1.7a11473eb0187p-1,
51 0x1.8ace5422aa0dbp-1,
52 0x1.9c49182a3f090p-1,
53 0x1.ae89f995ad3adp-1,
54 0x1.c199bdd85529cp-1,
55 0x1.d5818dcfba487p-1,
56 0x1.ea4afa2a490dap-1,
70 * Accuracy: Peak error < 0.501 ulp; location of peak: -0.030110927.
72 * Method: (equally-spaced tables)
79 * y = i/TBLSIZE + z for integer i near y * TBLSIZE.
80 * Thus we have exp2(y) = exp2(i/TBLSIZE) * exp2(z),
81 * with |z| <= 2**-(TBLSIZE+1).
83 * We compute exp2(i/TBLSIZE) via table lookup and exp2(z) via a
84 * degree-4 minimax polynomial with maximum error under 1.4 * 2**-33.
90 * Tang, P. Table-driven Implementation of the Exponential Function
91 * in IEEE Floating-Point Arithmetic. TOMS 15(2), 144-157 (1989).
96 double tv, twopk, u, z;
103 ix = hx & 0x7fffffff; /* high word of |x| */
109 return (0.0); /* x is -Inf */
113 if(x <= -0x1.2cp7f)
115 } else if (ix <= 0x33000000) { /* |x| <= 0x1p-25 */
119 /* Reduce x, computing z, i0, and k. */
124 i0 &= TBLSIZE - 1;
125 t -= redux;
126 z = x - t;
129 /* Compute r = exp2(y) = exp2ft[i0] * p(z). */
131 u = tv * z;
132 tv = tv + u * (P1 + z * P2) + u * (z * z) * (P3 + z * P4);