diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2018-02-12 18:16:03 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2018-09-05 16:22:00 +0100 |
commit | e70c17682518fab2fad164fecf73341443bc2ed3 (patch) | |
tree | b51780512cbcf9b0ded12c313b7e034bf7162273 | |
parent | b7cdc2aeb16c07fd9e6ec59f96f862b7fe2d3fdd (diff) | |
download | glibc-e70c17682518fab2fad164fecf73341443bc2ed3.tar.gz glibc-e70c17682518fab2fad164fecf73341443bc2ed3.tar.xz glibc-e70c17682518fab2fad164fecf73341443bc2ed3.zip |
Add new exp and exp2 implementations
Optimized exp and exp2 implementations using a lookup table for fractional powers of 2. There are several variants, see e_exp_data.c, they can be selected by modifying math_config.h allowing different tradeoffs. The default selection should be acceptable as generic libm code. Worst case error is 0.509 ULP for exp and 0.507 ULP for exp2, on aarch64 the rodata size is 2160 bytes, shared between exp and exp2. On aarch64 .text + .rodata size decreased by 24912 bytes. The non-nearest rounding error is less than 1 ULP even on targets without efficient round implementation (although the error rate is higher in that case). Targets with single instruction, rounding mode independent, to nearest integer rounding and conversion can use them by setting TOINT_INTRINSICS and adding the necessary code to their math_private.h. The __exp1 code uses the same algorithm, so the error bound of pow increased a bit. New double precision error handling code was added following the style of the single precision error handling code. Improvements on Cortex-A72 compared to current glibc master: exp thruput: 1.61x in [-9.9 9.9] exp latency: 1.53x in [-9.9 9.9] exp thruput: 1.13x in [0.5 1] exp latency: 1.30x in [0.5 1] exp2 thruput: 2.03x in [-9.9 9.9] exp2 latency: 1.64x in [-9.9 9.9] For small (< 1) inputs the current exp code uses a separate algorithm so the speed up there is less. Was tested on aarch64-linux-gnu (TOINT_INTRINSICS, fma contraction) and arm-linux-gnueabihf (!TOINT_INTRINSICS, no fma contraction) and x86_64-linux-gnu (!TOINT_INTRINSICS, no fma contraction) and powerpc64le-linux-gnu (!TOINT_INTRINSICS, fma contraction) targets, only non-nearest rounding ulp errors increase and they are within acceptable bounds (ulp updates are in separate patches). * NEWS: Mention exp and exp2 improvements. * math/Makefile (libm-support): Remove t_exp. (type-double-routines): Add math_err and e_exp_data. * sysdeps/aarch64/libm-test-ulps: Update. * sysdeps/arm/libm-test-ulps: Update. * sysdeps/i386/fpu/e_exp_data.c: New file. * sysdeps/i386/fpu/math_err.c: New file. * sysdeps/i386/fpu/t_exp.c: Remove. * sysdeps/ia64/fpu/e_exp_data.c: New file. * sysdeps/ia64/fpu/math_err.c: New file. * sysdeps/ia64/fpu/t_exp.c: Remove. * sysdeps/ieee754/dbl-64/e_exp.c: Rewrite. * sysdeps/ieee754/dbl-64/e_exp2.c: Rewrite. * sysdeps/ieee754/dbl-64/e_exp_data.c: New file. * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Update error bound. * sysdeps/ieee754/dbl-64/eexp.tbl: Remove. * sysdeps/ieee754/dbl-64/math_config.h: New file. * sysdeps/ieee754/dbl-64/math_err.c: New file. * sysdeps/ieee754/dbl-64/t_exp.c: Remove. * sysdeps/ieee754/dbl-64/t_exp2.h: Remove. * sysdeps/ieee754/dbl-64/uexp.h: Remove. * sysdeps/ieee754/dbl-64/uexp.tbl: Remove. * sysdeps/m68k/m680x0/fpu/e_exp_data.c: New file. * sysdeps/m68k/m680x0/fpu/math_err.c: New file. * sysdeps/m68k/m680x0/fpu/t_exp.c: Remove. * sysdeps/powerpc/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
26 files changed, 885 insertions, 3672 deletions
diff --git a/NEWS b/NEWS index 325157c0da..085325ab87 100644 --- a/NEWS +++ b/NEWS @@ -16,7 +16,7 @@ Major new features: to set the install root if you wish to install into a non-default configured location. -* Optimized generic sinf, cosf, sincosf and tanf. +* Optimized generic exp, exp2, sinf, cosf, sincosf and tanf. * The reallocarray function is now declared under _DEFAULT_SOURCE, not just for _GNU_SOURCE, to match BSD environments. diff --git a/math/Makefile b/math/Makefile index bff726fe81..f1ba1a0c36 100644 --- a/math/Makefile +++ b/math/Makefile @@ -42,7 +42,7 @@ extra-libs-others = $(extra-libs) libm-support = s_lib_version s_matherr s_signgam \ fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \ ftestexcept fegetround fesetround fegetenv feholdexcpt \ - fesetenv feupdateenv t_exp fedisblxcpt feenablxcpt \ + fesetenv feupdateenv fedisblxcpt feenablxcpt \ fegetexcept fesetexcept fetestexceptflag fegetmode \ fesetmode @@ -127,7 +127,7 @@ type-ldouble-yes := ldouble type-double-suffix := type-double-routines := branred doasin dosincos mpa mpatan2 \ k_rem_pio2 mpatan mpsqrt mptan sincos32 \ - sincostab + sincostab math_err e_exp_data # float support type-float-suffix := f diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps index 6a89028459..585e5bbce7 100644 --- a/sysdeps/aarch64/libm-test-ulps +++ b/sysdeps/aarch64/libm-test-ulps @@ -716,9 +716,9 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "ccos_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -732,9 +732,9 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "ccos_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -772,33 +772,33 @@ ildouble: 1 ldouble: 1 Function: Real part of "ccosh_downward": -double: 1 +double: 2 float: 3 -idouble: 1 +idouble: 2 ifloat: 3 ildouble: 2 ldouble: 2 Function: Imaginary part of "ccosh_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 Function: Real part of "ccosh_towardzero": -double: 1 +double: 2 float: 3 -idouble: 1 +idouble: 2 ifloat: 3 ildouble: 2 ldouble: 2 Function: Imaginary part of "ccosh_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -836,33 +836,33 @@ ildouble: 1 ldouble: 1 Function: Real part of "cexp_downward": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 Function: Imaginary part of "cexp_downward": -double: 1 +double: 3 float: 3 -idouble: 1 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 Function: Real part of "cexp_towardzero": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 Function: Imaginary part of "cexp_towardzero": -double: 1 +double: 3 float: 3 -idouble: 1 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -876,9 +876,9 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "cexp_upward": -double: 1 +double: 3 float: 2 -idouble: 1 +idouble: 3 ifloat: 2 ildouble: 3 ldouble: 3 @@ -1052,25 +1052,25 @@ ildouble: 1 ldouble: 1 Function: "cosh_downward": -double: 1 +double: 2 float: 1 -idouble: 1 +idouble: 2 ifloat: 1 ildouble: 1 ldouble: 2 Function: "cosh_towardzero": -double: 1 +double: 2 float: 1 -idouble: 1 +idouble: 2 ifloat: 1 ildouble: 1 ldouble: 2 Function: "cosh_upward": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 1 ldouble: 3 @@ -1090,9 +1090,9 @@ ildouble: 1 ldouble: 1 Function: Real part of "cpow_downward": -double: 4 +double: 5 float: 8 -idouble: 4 +idouble: 5 ifloat: 8 ildouble: 6 ldouble: 6 @@ -1106,9 +1106,9 @@ ildouble: 2 ldouble: 2 Function: Real part of "cpow_towardzero": -double: 4 +double: 5 float: 8 -idouble: 4 +idouble: 5 ifloat: 8 ildouble: 6 ldouble: 6 @@ -1150,9 +1150,9 @@ ildouble: 1 ldouble: 1 Function: Real part of "csin_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -1166,9 +1166,9 @@ ildouble: 2 ldouble: 2 Function: Real part of "csin_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -1220,9 +1220,9 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "csinh_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -1236,9 +1236,9 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "csinh_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 ildouble: 2 ldouble: 2 @@ -1492,9 +1492,9 @@ ildouble: 2 ldouble: 2 Function: "erfc_downward": -double: 3 +double: 4 float: 4 -idouble: 3 +idouble: 4 ifloat: 4 ildouble: 5 ldouble: 5 @@ -1508,9 +1508,9 @@ ildouble: 4 ldouble: 4 Function: "erfc_upward": -double: 3 +double: 4 float: 4 -idouble: 3 +idouble: 4 ifloat: 4 ildouble: 5 ldouble: 5 diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps index e62cca3e03..798e3c465c 100644 --- a/sysdeps/arm/libm-test-ulps +++ b/sysdeps/arm/libm-test-ulps @@ -530,9 +530,9 @@ idouble: 1 ifloat: 1 Function: Imaginary part of "ccos_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "ccos_towardzero": @@ -542,9 +542,9 @@ idouble: 1 ifloat: 2 Function: Imaginary part of "ccos_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "ccos_upward": @@ -572,27 +572,27 @@ idouble: 1 ifloat: 1 Function: Real part of "ccosh_downward": -double: 1 +double: 2 float: 3 -idouble: 1 +idouble: 2 ifloat: 3 Function: Imaginary part of "ccosh_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "ccosh_towardzero": -double: 1 +double: 2 float: 3 -idouble: 1 +idouble: 2 ifloat: 3 Function: Imaginary part of "ccosh_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "ccosh_upward": @@ -620,27 +620,27 @@ idouble: 1 ifloat: 2 Function: Real part of "cexp_downward": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 Function: Imaginary part of "cexp_downward": -double: 1 +double: 3 float: 3 -idouble: 1 +idouble: 3 ifloat: 3 Function: Real part of "cexp_towardzero": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 Function: Imaginary part of "cexp_towardzero": -double: 1 +double: 3 float: 3 -idouble: 1 +idouble: 3 ifloat: 3 Function: Real part of "cexp_upward": @@ -650,9 +650,9 @@ idouble: 1 ifloat: 2 Function: Imaginary part of "cexp_upward": -double: 1 +double: 3 float: 2 -idouble: 1 +idouble: 3 ifloat: 2 Function: Real part of "clog": @@ -780,21 +780,21 @@ idouble: 1 ifloat: 1 Function: "cosh_downward": -double: 1 +double: 2 float: 1 -idouble: 1 +idouble: 2 ifloat: 1 Function: "cosh_towardzero": -double: 1 +double: 2 float: 1 -idouble: 1 +idouble: 2 ifloat: 1 Function: "cosh_upward": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 Function: Real part of "cpow": @@ -808,9 +808,9 @@ float: 2 ifloat: 2 Function: Real part of "cpow_downward": -double: 4 +double: 5 float: 8 -idouble: 4 +idouble: 5 ifloat: 8 Function: Imaginary part of "cpow_downward": @@ -820,9 +820,9 @@ idouble: 1 ifloat: 2 Function: Real part of "cpow_towardzero": -double: 4 +double: 5 float: 8 -idouble: 4 +idouble: 5 ifloat: 8 Function: Imaginary part of "cpow_towardzero": @@ -850,9 +850,9 @@ idouble: 1 ifloat: 1 Function: Real part of "csin_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Imaginary part of "csin_downward": @@ -862,9 +862,9 @@ idouble: 1 ifloat: 1 Function: Real part of "csin_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Imaginary part of "csin_towardzero": @@ -902,9 +902,9 @@ idouble: 2 ifloat: 2 Function: Imaginary part of "csinh_downward": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "csinh_towardzero": @@ -914,9 +914,9 @@ idouble: 2 ifloat: 2 Function: Imaginary part of "csinh_towardzero": -double: 2 +double: 3 float: 3 -idouble: 2 +idouble: 3 ifloat: 3 Function: Real part of "csinh_upward": @@ -1132,15 +1132,15 @@ double: 2 idouble: 2 Function: "exp10_downward": -double: 2 +double: 3 float: 1 -idouble: 2 +idouble: 3 ifloat: 1 Function: "exp10_towardzero": -double: 2 +double: 3 float: 1 -idouble: 2 +idouble: 3 ifloat: 1 Function: "exp10_upward": diff --git a/sysdeps/i386/fpu/e_exp_data.c b/sysdeps/i386/fpu/e_exp_data.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/i386/fpu/e_exp_data.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/i386/fpu/math_err.c b/sysdeps/i386/fpu/math_err.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/i386/fpu/math_err.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/i386/fpu/t_exp.c b/sysdeps/i386/fpu/t_exp.c deleted file mode 100644 index fd37963b05..0000000000 --- a/sysdeps/i386/fpu/t_exp.c +++ /dev/null @@ -1 +0,0 @@ -/* Empty. Not needed. */ diff --git a/sysdeps/ia64/fpu/e_exp_data.c b/sysdeps/ia64/fpu/e_exp_data.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/e_exp_data.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/math_err.c b/sysdeps/ia64/fpu/math_err.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ia64/fpu/math_err.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/t_exp.c b/sysdeps/ia64/fpu/t_exp.c deleted file mode 100644 index 41254ae60a..0000000000 --- a/sysdeps/ia64/fpu/t_exp.c +++ /dev/null @@ -1 +0,0 @@ -/* Not needed. */ diff --git a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c index 7d8b414034..209f20b972 100644 --- a/sysdeps/ieee754/dbl-64/e_exp.c +++ b/sysdeps/ieee754/dbl-64/e_exp.c @@ -1,48 +1,158 @@ -/* - * IBM Accurate Mathematical Library - * written by International Business Machines Corp. - * Copyright (C) 2001-2018 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ -/***************************************************************************/ -/* MODULE_NAME:uexp.c */ -/* */ -/* FUNCTION:uexp */ -/* exp1 */ -/* */ -/* FILES NEEDED:dla.h endian.h mpa.h mydefs.h uexp.h */ -/* */ -/* An ultimate exp routine. Given an IEEE double machine number x */ -/* it computes an almost correctly rounded (to nearest) value of e^x */ -/* Assumption: Machine arithmetic operations are performed in */ -/* round to nearest mode of IEEE 754 standard. */ -/* */ -/***************************************************************************/ +/* Double-precision e^x function. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ #include <math.h> -#include "endian.h" -#include "uexp.h" -#include "mydefs.h" -#include "MathLib.h" -#include "uexp.tbl" +#include <stdint.h> #include <math-barriers.h> -#include <math_private.h> -#include <fenv_private.h> -#include <fenv.h> -#include <float.h> -#include "eexp.tbl" +#include <math-narrow-eval.h> +#include "math_config.h" + +#define N (1 << EXP_TABLE_BITS) +#define InvLn2N __exp_data.invln2N +#define NegLn2hiN __exp_data.negln2hiN +#define NegLn2loN __exp_data.negln2loN +#define Shift __exp_data.shift +#define T __exp_data.tab +#define C2 __exp_data.poly[5 - EXP_POLY_ORDER] +#define C3 __exp_data.poly[6 - EXP_POLY_ORDER] +#define C4 __exp_data.poly[7 - EXP_POLY_ORDER] +#define C5 __exp_data.poly[8 - EXP_POLY_ORDER] + +/* Handle cases that may overflow or underflow when computing the result that + is scale*(1+TMP) without intermediate rounding. The bit representation of + scale is in SBITS, however it has a computed exponent that may have + overflown into the sign bit so that needs to be adjusted before using it as + a double. (int32_t)KI is the k used in the argument reduction and exponent + adjustment of scale, positive k here means the result may overflow and + negative k means the result may underflow. */ +static inline double +specialcase (double_t tmp, uint64_t sbits, uint64_t ki) +{ + double_t scale, y; + + if ((ki & 0x80000000) == 0) + { + /* k > 0, the exponent of scale might have overflowed by <= 460. */ + sbits -= 1009ull << 52; + scale = asdouble (sbits); + y = 0x1p1009 * (scale + scale * tmp); + return check_oflow (y); + } + /* k < 0, need special care in the subnormal range. */ + sbits += 1022ull << 52; + scale = asdouble (sbits); + y = scale + scale * tmp; + if (y < 1.0) + { + /* Round y to the right precision before scaling it into the subnormal + range to avoid double rounding that can cause 0.5+E/2 ulp error where + E is the worst-case ulp error outside the subnormal range. So this + is only useful if the goal is better than 1 ulp worst-case error. */ + double_t hi, lo; + lo = scale - y + scale * tmp; + hi = 1.0 + y; + lo = 1.0 - hi + y + lo; + y = math_narrow_eval (hi + lo) - 1.0; + /* Avoid -0.0 with downward rounding. */ + if (WANT_ROUNDING && y == 0.0) + y = 0.0; + /* The underflow exception needs to be signaled explicitly. */ + math_force_eval (math_opt_barrier (0x1p-1022) * 0x1p-1022); + } + y = 0x1p-1022 * y; + return check_uflow (y); +} + +/* Top 12 bits of a double (sign and exponent bits). */ +static inline uint32_t +top12 (double x) +{ + return asuint64 (x) >> 52; +} + +/* Computes exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. + If hastail is 0 then xtail is assumed to be 0 too. */ +static inline double +exp_inline (double x, double xtail, int hastail) +{ + uint32_t abstop; + uint64_t ki, idx, top, sbits; + /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */ + double_t kd, z, r, r2, scale, tail, tmp; + + abstop = top12 (x) & 0x7ff; + if (__glibc_unlikely (abstop - top12 (0x1p-54) + >= top12 (512.0) - top12 (0x1p-54))) + { + if (abstop - top12 (0x1p-54) >= 0x80000000) + /* Avoid spurious underflow for tiny x. */ + /* Note: 0 is common input. */ + return WANT_ROUNDING ? 1.0 + x : 1.0; + if (abstop >= top12 (1024.0)) + { + if (asuint64 (x) == asuint64 (-INFINITY)) + return 0.0; + if (abstop >= top12 (INFINITY)) + return 1.0 + x; + if (asuint64 (x) >> 63) + return __math_uflow (0); + else + return __math_oflow (0); + } + /* Large x is special cased below. */ + abstop = 0; + } + + /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ + /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ + z = InvLn2N * x; +#if TOINT_INTRINSICS + kd = roundtoint (z); + ki = converttoint (z); +#else + /* z - kd is in [-1, 1] in non-nearest rounding modes. */ + kd = math_narrow_eval (z + Shift); + ki = asuint64 (kd); + kd -= Shift; +#endif + r = x + kd * NegLn2hiN + kd * NegLn2loN; + /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ + if (hastail) + r += xtail; + /* 2^(k/N) ~= scale * (1 + tail). */ + idx = 2 * (ki % N); + top = ki << (52 - EXP_TABLE_BITS); + tail = asdouble (T[idx]); + /* This is only a valid scale when -1023*N < k < 1024*N. */ + sbits = T[idx + 1] + top; + /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1). */ + /* Evaluation is optimized assuming superscalar pipelined execution. */ + r2 = r * r; + /* Without fma the worst case error is 0.25/N ulp larger. */ + /* Worst case error is less than 0.5+1.11/N+(abs poly error * 2^53) ulp. */ + tmp = tail + r + r2 * (C2 + r * C3) + r2 * r2 * (C4 + r * C5); + if (__glibc_unlikely (abstop == 0)) + return specialcase (tmp, sbits, ki); + scale = asdouble (sbits); + /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there + is no spurious underflow here even without fma. */ + return scale + scale * tmp; +} #ifndef SECTION # define SECTION @@ -52,187 +162,7 @@ double SECTION __ieee754_exp (double x) { - double bexp, t, eps, del, base, y, al, bet, res, rem, cor; - double z; - mynumber junk1, junk2, binexp = {{0, 0}}; - int4 i, j, m, n, ex; - int4 k; - double retval; - - { - SET_RESTORE_ROUND (FE_TONEAREST); - - junk1.x = x; - m = junk1.i[HIGH_HALF]; - n = m & hugeint; - - if (n < 0x3ff0a2b2) /* |x| < 1.03972053527832 */ - { - if (n < 0x3f862e42) /* |x| < 3/2 ln 2 */ - { - if (n < 0x3ed00000) /* |x| < 1/64 ln 2 */ - { - if (n < 0x3e300000) /* |x| < 2^18 */ - { - retval = one + junk1.x; - goto ret; - } - retval = one + junk1.x * (one + half * junk1.x); - goto ret; - } - t = junk1.x * junk1.x; - retval = junk1.x + (t * (half + junk1.x * t2) + - (t * t) * (t3 + junk1.x * t4 + t * t5)); - retval = one + retval; - goto ret; - } - - /* Find the multiple of 2^-6 nearest x. */ - k = n >> 20; - j = (0x00100000 | (n & 0x000fffff)) >> (0x40c - k); - j = (j - 1) & ~1; - if (m < 0) - j += 134; - z = junk1.x - TBL2[j]; - t = z * z; - retval = z + (t * (half + (z * t2)) - + (t * t) * (t3 + z * t4 + t * t5)); - retval = TBL2[j + 1] + TBL2[j + 1] * retval; - goto ret; - } - - if (n < bigint) /* && |x| >= 1.03972053527832 */ - { - y = x * log2e.x + three51.x; - bexp = y - three51.x; /* multiply the result by 2**bexp */ - - junk1.x = y; - - eps = bexp * ln_two2.x; /* x = bexp*ln(2) + t - eps */ - t = x - bexp * ln_two1.x; - - y = t + three33.x; - base = y - three33.x; /* t rounded to a multiple of 2**-18 */ - junk2.x = y; - del = (t - base) - eps; /* x = bexp*ln(2) + base + del */ - eps = del + del * del * (p3.x * del + p2.x); - - binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20; - - i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356; - j = (junk2.i[LOW_HALF] & 511) << 1; - - al = coar.x[i] * fine.x[j]; - bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j]) - + coar.x[i + 1] * fine.x[j + 1]); - - rem = (bet + bet * eps) + al * eps; - res = al + rem; - /* Maximum relative error is 7.8e-22 (70.1 bits). - Maximum ULP error is 0.500007. */ - retval = res * binexp.x; - goto ret; - } - - if (n >= badint) - { - if (n > infint) - { - retval = x + x; - goto ret; - } /* x is NaN */ - if (n < infint) - { - if (x > 0) - goto ret_huge; - else - goto ret_tiny; - } - /* x is finite, cause either overflow or underflow */ - if (junk1.i[LOW_HALF] != 0) - { - retval = x + x; - goto ret; - } /* x is NaN */ - retval = (x > 0) ? inf.x : zero; /* |x| = inf; return either inf or 0 */ - goto ret; - } - - y = x * log2e.x + three51.x; - bexp = y - three51.x; - junk1.x = y; - eps = bexp * ln_two2.x; - t = x - bexp * ln_two1.x; - y = t + three33.x; - base = y - three33.x; - junk2.x = y; - del = (t - base) - eps; - eps = del + del * del * (p3.x * del + p2.x); - i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356; - j = (junk2.i[LOW_HALF] & 511) << 1; - al = coar.x[i] * fine.x[j]; - bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j]) - + coar.x[i + 1] * fine.x[j + 1]); - rem = (bet + bet * eps) + al * eps; - res = al + rem; - cor = (al - res) + rem; - if (m >> 31) - { - ex = junk1.i[LOW_HALF]; - if (res < 1.0) - { - res += res; - cor += cor; - ex -= 1; - } - if (ex >= -1022) - { - binexp.i[HIGH_HALF] = (1023 + ex) << 20; - /* Does not underflow: res >= 1.0, binexp >= 0x1p-1022 - Maximum relative error is 7.8e-22 (70.1 bits). - Maximum ULP error is 0.500007. */ - retval = res * binexp.x; - goto ret; - } - ex = -(1022 + ex); - binexp.i[HIGH_HALF] = (1023 - ex) << 20; - res *= binexp.x; - cor *= binexp.x; - t = 1.0 + res; - y = ((1.0 - t) + res) + cor; - res = t + y; - /* Maximum ULP error is 0.5000035. */ - binexp.i[HIGH_HALF] = 0x00100000; - retval = (res - 1.0) * binexp.x; - if (retval < DBL_MIN) - { - double force_underflow = tiny * tiny; - math_force_eval (force_underflow); - } - if (retval == 0) - goto ret_tiny; - goto ret; - } - else - { - binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20; - /* Maximum relative error is 7.8e-22 (70.1 bits). - Maximum ULP error is 0.500007. */ - retval = res * binexp.x * t256.x; - if (isinf (retval)) - goto ret_huge; - else - goto ret; - } - } -ret: - return retval; - - ret_huge: - return hhuge * hhuge; - - ret_tiny: - return tiny * tiny; + return exp_inline (x, 0, 0); } #ifndef __ieee754_exp strong_alias (__ieee754_exp, __exp_finite) @@ -243,112 +173,5 @@ double SECTION __exp1 (double x, double xx) { - double bexp, t, eps, del, base, y, al, bet, res, rem, cor; - mynumber junk1, junk2, binexp = {{0, 0}}; - int4 i, j, m, n, ex; - - junk1.x = x; - m = junk1.i[HIGH_HALF]; - n = m & hugeint; /* no sign */ - - /* fabs (x) > 5.551112e-17 and fabs (x) < 7.080010e+02. */ - if (n > smallint && n < bigint) - { - y = x * log2e.x + three51.x; - bexp = y - three51.x; /* multiply the result by 2**bexp */ - - junk1.x = y; - - eps = bexp * ln_two2.x; /* x = bexp*ln(2) + t - eps */ - t = x - bexp * ln_two1.x; - - y = t + three33.x; - base = y - three33.x; /* t rounded to a multiple of 2**-18 */ - junk2.x = y; - del = (t - base) + (xx - eps); /* x = bexp*ln(2) + base + del */ - eps = del + del * del * (p3.x * del + p2.x); - - binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20; - - i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356; - j = (junk2.i[LOW_HALF] & 511) << 1; - - al = coar.x[i] * fine.x[j]; - bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j]) - + coar.x[i + 1] * fine.x[j + 1]); - - rem = (bet + bet * eps) + al * eps; - res = al + rem; - /* Maximum relative error before rounding is 8.8e-22 (69.9 bits). - Maximum ULP error is 0.500008. */ - return res * binexp.x; - } - - if (n <= smallint) - return 1.0; /* if x->0 e^x=1 */ - - if (n >= badint) - { - if (n > infint) - return (zero / zero); /* x is NaN, return invalid */ - if (n < infint) - return ((x > 0) ? (hhuge * hhuge) : (tiny * tiny)); - /* x is finite, cause either overflow or underflow */ - if (junk1.i[LOW_HALF] != 0) - return (zero / zero); /* x is NaN */ - return ((x > 0) ? inf.x : zero); /* |x| = inf; return either inf or 0 */ - } - - y = x * log2e.x + three51.x; - bexp = y - three51.x; - junk1.x = y; - eps = bexp * ln_two2.x; - t = x - bexp * ln_two1.x; - y = t + three33.x; - base = y - three33.x; - junk2.x = y; - del = (t - base) + (xx - eps); - eps = del + del * del * (p3.x * del + p2.x); - i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356; - j = (junk2.i[LOW_HALF] & 511) << 1; - al = coar.x[i] * fine.x[j]; - bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j]) - + coar.x[i + 1] * fine.x[j + 1]); - rem = (bet + bet * eps) + al * eps; - res = al + rem; - cor = (al - res) + rem; - if (m >> 31) - { - /* x < 0. */ - ex = junk1.i[LOW_HALF]; - if (res < 1.0) - { - res += res; - cor += cor; - ex -= 1; - } - if (ex >= -1022) - { - binexp.i[HIGH_HALF] = (1023 + ex) << 20; - /* Maximum ULP error is 0.500008. */ - return res * binexp.x; - } - /* Denormal case - ex < -1022. */ - ex = -(1022 + ex); - binexp.i[HIGH_HALF] = (1023 - ex) << 20; - res *= binexp.x; - cor *= binexp.x; - t = 1.0 + res; - y = ((1.0 - t) + res) + cor; - res = t + y; - binexp.i[HIGH_HALF] = 0x00100000; - /* Maximum ULP error is 0.500004. */ - return (res - 1.0) * binexp.x; - } - else - { - binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20; - /* Maximum ULP error is 0.500008. */ - return res * binexp.x * t256.x; - } + return exp_inline (x, xx, 1); } diff --git a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c index d07e787ec8..96afcf9c20 100644 --- a/sysdeps/ieee754/dbl-64/e_exp2.c +++ b/sysdeps/ieee754/dbl-64/e_exp2.c @@ -1,7 +1,6 @@ -/* Double-precision floating point 2^x. - Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Double-precision 2^x function. + Copyright (C) 2018 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Geoffrey Keating <geoffk@ozemail.com.au> The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -17,120 +16,130 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -/* The basic design here is from - Shmuel Gal and Boris Bachelis, "An Accurate Elementary Mathematical - Library for the IEEE Floating Point Standard", ACM Trans. Math. Soft., - 17 (1), March 1991, pp. 26-45. - It has been slightly modified to compute 2^x instead of e^x. - */ -#include <stdlib.h> -#include <float.h> -#include <ieee754.h> #include <math.h> -#include <fenv.h> -#include <inttypes.h> +#include <stdint.h> #include <math-barriers.h> -#include <math_private.h> -#include <fenv_private.h> -#include <math-underflow.h> +#include <math-narrow-eval.h> +#include "math_config.h" + +#define N (1 << EXP_TABLE_BITS) +#define Shift __exp_data.exp2_shift +#define T __exp_data.tab +#define C1 __exp_data.exp2_poly[0] +#define C2 __exp_data.exp2_poly[1] +#define C3 __exp_data.exp2_poly[2] +#define C4 __exp_data.exp2_poly[3] +#define C5 __exp_data.exp2_poly[4] + +/* Handle cases that may overflow or underflow when computing the result that + is scale*(1+TMP) without intermediate rounding. The bit representation of + scale is in SBITS, however it has a computed exponent that may have + overflown into the sign bit so that needs to be adjusted before using it as + a double. (int32_t)KI is the k used in the argument reduction and exponent + adjustment of scale, positive k here means the result may overflow and + negative k means the result may underflow. */ +static inline double +specialcase (double_t tmp, uint64_t sbits, uint64_t ki) +{ + double_t scale, y; -#include "t_exp2.h" + if ((ki & 0x80000000) == 0) + { + /* k > 0, the exponent of scale might have overflowed by 1. */ + sbits -= 1ull << 52; + scale = asdouble (sbits); + y = 2 * (scale + scale * tmp); + return check_oflow (y); + } + /* k < 0, need special care in the subnormal range. */ + sbits += 1022ull << 52; + scale = asdouble (sbits); + y = scale + scale * tmp; + if (y < 1.0) + { + /* Round y to the right precision before scaling it into the subnormal + range to avoid double rounding that can cause 0.5+E/2 ulp error where + E is the worst-case ulp error outside the subnormal range. So this + is only useful if the goal is better than 1 ulp worst-case error. */ + double_t hi, lo; + lo = scale - y + scale * tmp; + hi = 1.0 + y; + lo = 1.0 - hi + y + lo; + y = math_narrow_eval (hi + lo) - 1.0; + /* Avoid -0.0 with downward rounding. */ + if (WANT_ROUNDING && y == 0.0) + y = 0.0; + /* The underflow exception needs to be signaled explicitly. */ + math_force_eval (math_opt_barrier (0x1p-1022) * 0x1p-1022); + } + y = 0x1p-1022 * y; + return check_uflow (y); +} -static const double TWO1023 = 8.988465674311579539e+307; -static const double TWOM1000 = 9.3326361850321887899e-302; +/* Top 12 bits of a double (sign and exponent bits). */ +static inline uint32_t +top12 (double x) +{ + return asuint64 (x) >> 52; +} double __ieee754_exp2 (double x) { - static const double himark = (double) DBL_MAX_EXP; - static const double lomark = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1); - - /* Check for usual case. */ - if (__glibc_likely (isless (x, himark))) + uint32_t abstop; + uint64_t ki, idx, top, sbits; + /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */ + double_t kd, r, r2, scale, tail, tmp; + + abstop = top12 (x) & 0x7ff; + if (__glibc_unlikely (abstop - top12 (0x1p-54) + >= top12 (512.0) - top12 (0x1p-54))) { - /* Exceptional cases: */ - if (__glibc_unlikely (!isgreaterequal (x, lomark))) - { - if (isinf (x)) - /* e^-inf == 0, with no error. */ - return 0; - else - /* Underflow */ - return TWOM1000 * TWOM1000; - } - - static const double THREEp42 = 13194139533312.0; - int tval, unsafe; - double rx, x22, result; - union ieee754_double ex2_u, scale_u; - - if (fabs (x) < DBL_EPSILON / 4.0) - return 1.0 + x; - - { - SET_RESTORE_ROUND_NOEX (FE_TONEAREST); - - /* 1. Argument reduction. - Choose integers ex, -256 <= t < 256, and some real - -1/1024 <= x1 <= 1024 so that - x = ex + t/512 + x1. - - First, calculate rx = ex + t/512. */ - rx = x + THREEp42; - rx -= THREEp42; - x -= rx; /* Compute x=x1. */ - /* Compute tval = (ex*512 + t)+256. - Now, t = (tval mod 512)-256 and ex=tval/512 [that's mod, NOT %; - and /-round-to-nearest not the usual c integer /]. */ - tval = (int) (rx * 512.0 + 256.0); - - /* 2. Adjust for accurate table entry. - Find e so that - x = ex + t/512 + e + x2 - where -1e6 < e < 1e6, and - (double)(2^(t/512+e)) - is accurate to one part in 2^-64. */ - - /* 'tval & 511' is the same as 'tval%512' except that it's always - positive. - Compute x = x2. */ - x -= exp2_deltatable[tval & 511]; - - /* 3. Compute ex2 = 2^(t/512+e+ex). */ - ex2_u.d = exp2_accuratetable[tval & 511]; - tval >>= 9; - /* x2 is an integer multiple of 2^-54; avoid intermediate - underflow from the calculation of x22 * x. */ - unsafe = abs (tval) >= -DBL_MIN_EXP - 56; - ex2_u.ieee.exponent += tval >> unsafe; - scale_u.d = 1.0; - scale_u.ieee.exponent += tval - (tval >> unsafe); - - /* 4. Approximate 2^x2 - 1, using a fourth-degree polynomial, - with maximum error in [-2^-10-2^-30,2^-10+2^-30] - less than 10^-19. */ - - x22 = (((.0096181293647031180 - * x + .055504110254308625) - * x + .240226506959100583) - * x + .69314718055994495) * ex2_u.d; - math_opt_barrier (x22); - } - - /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */ - result = x22 * x + ex2_u.d; - - if (!unsafe) - return result; - else + if (abstop - top12 (0x1p-54) >= 0x80000000) + /* Avoid spurious underflow for tiny x. */ + /* Note: 0 is common input. */ + return WANT_ROUNDING ? 1.0 + x : 1.0; + if (abstop >= top12 (1024.0)) { - result *= scale_u.d; - math_check_force_underflow_nonneg (result); - return result; + if (asuint64 (x) == asuint64 (-INFINITY)) + return 0.0; + if (abstop >= top12 (INFINITY)) + return 1.0 + x; + if (!(asuint64 (x) >> 63)) + return __math_oflow (0); + else if (asuint64 (x) >= asuint64 (-1075.0)) + return __math_uflow (0); } + if (2 * asuint64 (x) > 2 * asuint64 (928.0)) + /* Large x is special cased below. */ + abstop = 0; } - else - /* Return x, if x is a NaN or Inf; or overflow, otherwise. */ - return TWO1023 * x; + + /* exp2(x) = 2^(k/N) * 2^r, with 2^r in [2^(-1/2N),2^(1/2N)]. */ + /* x = k/N + r, with int k and r in [-1/2N, 1/2N]. */ + kd = math_narrow_eval (x + Shift); + ki = asuint64 (kd); /* k. */ + kd -= Shift; /* k/N for int k. */ + r = x - kd; + /* 2^(k/N) ~= scale * (1 + tail). */ + idx = 2 * (ki % N); + top = ki << (52 - EXP_TABLE_BITS); + tail = asdouble (T[idx]); + /* This is only a valid scale when -1023*N < k < 1024*N. */ + sbits = T[idx + 1] + top; + /* exp2(x) = 2^(k/N) * 2^r ~= scale + scale * (tail + 2^r - 1). */ + /* Evaluation is optimized assuming superscalar pipelined execution. */ + r2 = r * r; + /* Without fma the worst case error is 0.5/N ulp larger. */ + /* Worst case error is less than 0.5+0.86/N+(abs poly error * 2^53) ulp. */ + tmp = tail + r * C1 + r2 * (C2 + r * C3) + r2 * r2 * (C4 + r * C5); + if (__glibc_unlikely (abstop == 0)) + return specialcase (tmp, sbits, ki); + scale = asdouble (sbits); + /* Note: tmp == 0 or |tmp| > 2^-65 and scale > 2^-928, so there + is no spurious underflow here even without fma. */ + return scale + scale * tmp; } +#ifndef __ieee754_exp2 strong_alias (__ieee754_exp2, __exp2_finite) +#endif diff --git a/sysdeps/ieee754/dbl-64/e_exp_data.c b/sysdeps/ieee754/dbl-64/e_exp_data.c new file mode 100644 index 0000000000..ef02f848b0 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/e_exp_data.c @@ -0,0 +1,196 @@ +/* Shared data between exp, exp2 and pow. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include "math_config.h" + +#define N (1 << EXP_TABLE_BITS) + +const struct exp_data __exp_data = { +// N/ln2 +.invln2N = 0x1.71547652b82fep0 * N, +// -ln2/N +#if N == 128 +.negln2hiN = -0x1.62e42fefa0000p-8, +.negln2loN = -0x1.cf79abc9e3b3ap-47, +#endif +// Used for rounding when !TOINT_INTRINSICS +.shift = 0x1.8p52, +// exp polynomial coefficients. +.poly = { +#if N == 128 && EXP_POLY_ORDER == 5 +// abs error: 1.555*2^-66 +// ulp error: 0.509 (0.511 without fma) +// if |x| < ln2/256+eps +// abs error if |x| < ln2/128: 1.7145*2^-56 +0x1.ffffffffffdbdp-2, +0x1.555555555543cp-3, +0x1.55555cf172b91p-5, +0x1.1111167a4d017p-7, +#endif +}, +.exp2_shift = 0x1.8p52 / N, +// exp2 polynomial coefficients. +.exp2_poly = { +#if N == 128 && EXP2_POLY_ORDER == 5 +// abs error: 1.2195*2^-65 +// ulp error: 0.507 (0.511 without fma) +// if |x| < 1/256 +// abs error if |x| < 1/128: 1.9941*2^-56 +0x1.62e42fefa39efp-1, +0x1.ebfbdff82c424p-3, +0x1.c6b08d70cf4b5p-5, +0x1.3b2abd24650ccp-7, +0x1.5d7e09b4e3a84p-10, +#endif +}, +// 2^(k/N) ~= H[k]*(1 + T[k]) for int k in [0,N) +// tab[2*k] = asuint64(T[k]) +// tab[2*k+1] = asuint64(H[k]) - (k << 52)/N +.tab = { +#if N == 128 +0x0, 0x3ff0000000000000, +0x3c9b3b4f1a88bf6e, 0x3feff63da9fb3335, +0xbc7160139cd8dc5d, 0x3fefec9a3e778061, +0xbc905e7a108766d1, 0x3fefe315e86e7f85, +0x3c8cd2523567f613, 0x3fefd9b0d3158574, +0xbc8bce8023f98efa, 0x3fefd06b29ddf6de, +0x3c60f74e61e6c861, 0x3fefc74518759bc8, +0x3c90a3e45b33d399, 0x3fefbe3ecac6f383, +0x3c979aa65d837b6d, 0x3fefb5586cf9890f, +0x3c8eb51a92fdeffc, 0x3fefac922b7247f7, +0x3c3ebe3d702f9cd1, 0x3fefa3ec32d3d1a2, +0xbc6a033489906e0b, 0x3fef9b66affed31b, +0xbc9556522a2fbd0e, 0x3fef9301d0125b51, +0xbc5080ef8c4eea55, 0x3fef8abdc06c31cc, +0xbc91c923b9d5f416, 0x3fef829aaea92de0, +0x3c80d3e3e95c55af, 0x3fef7a98c8a58e51, +0xbc801b15eaa59348, 0x3fef72b83c7d517b, +0xbc8f1ff055de323d, 0x3fef6af9388c8dea, +0x3c8b898c3f1353bf, 0x3fef635beb6fcb75, +0xbc96d99c7611eb26, 0x3fef5be084045cd4, +0x3c9aecf73e3a2f60, 0x3fef54873168b9aa, +0xbc8fe782cb86389d, 0x3fef4d5022fcd91d, +0x3c8a6f4144a6c38d, 0x3fef463b88628cd6, +0x3c807a05b0e4047d, 0x3fef3f49917ddc96, +0x3c968efde3a8a894, 0x3fef387a6e756238, +0x3c875e18f274487d, 0x3fef31ce4fb2a63f, +0x3c80472b981fe7f2, 0x3fef2b4565e27cdd, +0xbc96b87b3f71085e, 0x3fef24dfe1f56381, +0x3c82f7e16d09ab31, 0x3fef1e9df51fdee1, +0xbc3d219b1a6fbffa, 0x3fef187fd0dad990, +0x3c8b3782720c0ab4, 0x3fef1285a6e4030b, +0x3c6e149289cecb8f, 0x3fef0cafa93e2f56, +0x3c834d754db0abb6, 0x3fef06fe0a31b715, +0x3c864201e2ac744c, 0x3fef0170fc4cd831, +0x3c8fdd395dd3f84a, 0x3feefc08b26416ff, +0xbc86a3803b8e5b04, 0x3feef6c55f929ff1, +0xbc924aedcc4b5068, 0x3feef1a7373aa9cb, +0xbc9907f81b512d8e, 0x3feeecae6d05d866, +0xbc71d1e83e9436d2, 0x3feee7db34e59ff7, +0xbc991919b3ce1b15, 0x3feee32dc313a8e5, +0x3c859f48a72a4c6d, 0x3feedea64c123422, +0xbc9312607a28698a, 0x3feeda4504ac801c, +0xbc58a78f4817895b, 0x3feed60a21f72e2a, +0xbc7c2c9b67499a1b, 0x3feed1f5d950a897, +0x3c4363ed60c2ac11, 0x3feece086061892d, +0x3c9666093b0664ef, 0x3feeca41ed1d0057, +0x3c6ecce1daa10379, 0x3feec6a2b5c13cd0, +0x3c93ff8e3f0f1230, 0x3feec32af0d7d3de, +0x3c7690cebb7aafb0, 0x3feebfdad5362a27, +0x3c931dbdeb54e077, 0x3feebcb299fddd0d, +0xbc8f94340071a38e, 0x3feeb9b2769d2ca7, +0xbc87deccdc93a349, 0x3feeb6daa2cf6642, +0xbc78dec6bd0f385f, 0x3feeb42b569d4f82, +0xbc861246ec7b5cf6, 0x3feeb1a4ca5d920f, +0x3c93350518fdd78e, 0x3feeaf4736b527da, +0x3c7b98b72f8a9b05, 0x3feead12d497c7fd, +0x3c9063e1e21c5409, 0x3feeab07dd485429, +0x3c34c7855019c6ea, 0x3feea9268a5946b7, +0x3c9432e62b64c035, 0x3feea76f15ad2148, +0xbc8ce44a6199769f, 0x3feea5e1b976dc09, +0xbc8c33c53bef4da8, 0x3feea47eb03a5585, +0xbc845378892be9ae, 0x3feea34634ccc320, +0xbc93cedd78565858, 0x3feea23882552225, +0x3c5710aa807e1964, 0x3feea155d44ca973, +0xbc93b3efbf5e2228, 0x3feea09e667f3bcd, +0xbc6a12ad8734b982, 0x3feea012750bdabf, +0xbc6367efb86da9ee, 0x3fee9fb23c651a2f, +0xbc80dc3d54e08851, 0x3fee9f7df9519484, +0xbc781f647e5a3ecf, 0x3fee9f75e8ec5f74, +0xbc86ee4ac08b7db0, 0x3fee9f9a48a58174, +0xbc8619321e55e68a, 0x3fee9feb564267c9, +0x3c909ccb5e09d4d3, 0x3feea0694fde5d3f, +0xbc7b32dcb94da51d, 0x3feea11473eb0187, +0x3c94ecfd5467c06b, 0x3feea1ed0130c132, +0x3c65ebe1abd66c55, 0x3feea2f336cf4e62, +0xbc88a1c52fb3cf42, 0x3feea427543e1a12, +0xbc9369b6f13b3734, 0x3feea589994cce13, +0xbc805e843a19ff1e, 0x3feea71a4623c7ad, +0xbc94d450d872576e, 0x3feea8d99b4492ed, +0x3c90ad675b0e8a00, 0x3feeaac7d98a6699, +0x3c8db72fc1f0eab4, 0x3feeace5422aa0db, +0xbc65b6609cc5e7ff, 0x3feeaf3216b5448c, +0x3c7bf68359f35f44, 0x3feeb1ae99157736, +0xbc93091fa71e3d83, 0x3feeb45b0b91ffc6, +0xbc5da9b88b6c1e29, 0x3feeb737b0cdc5e5, +0xbc6c23f97c90b959, 0x3feeba44cbc8520f, +0xbc92434322f4f9aa, 0x3feebd829fde4e50, +0xbc85ca6cd7668e4b, 0x3feec0f170ca07ba, +0x3c71affc2b91ce27, 0x3feec49182a3f090, +0x3c6dd235e10a73bb, 0x3feec86319e32323, +0xbc87c50422622263, 0x3feecc667b5de565, +0x3c8b1c86e3e231d5, 0x3feed09bec4a2d33, +0xbc91bbd1d3bcbb15, 0x3feed503b23e255d, +0x3c90cc319cee31d2, 0x3feed99e1330b358, +0x3c8469846e735ab3, 0x3feede6b5579fdbf, +0xbc82dfcd978e9db4, 0x3feee36bbfd3f37a, +0x3c8c1a7792cb3387, 0x3feee89f995ad3ad, +0xbc907b8f4ad1d9fa, 0x3feeee07298db666, +0xbc55c3d956dcaeba, 0x3feef3a2b84f15fb, +0xbc90a40e3da6f640, 0x3feef9728de5593a, +0xbc68d6f438ad9334, 0x3feeff76f2fb5e47, +0xbc91eee26b588a35, 0x3fef05b030a1064a, +0x3c74ffd70a5fddcd, 0x3fef0c1e904bc1d2, +0xbc91bdfbfa9298ac, 0x3fef12c25bd71e09, +0x3c736eae30af0cb3, 0x3fef199bdd85529c, +0x3c8ee3325c9ffd94, 0x3fef20ab5fffd07a, +0x3c84e08fd10959ac, 0x3fef27f12e57d14b, +0x3c63cdaf384e1a67, 0x3fef2f6d9406e7b5, +0x3c676b2c6c921968, 0x3fef3720dcef9069, +0xbc808a1883ccb5d2, 0x3fef3f0b555dc3fa, +0xbc8fad5d3ffffa6f, 0x3fef472d4a07897c, +0xbc900dae3875a949, 0x3fef4f87080d89f2, +0x3c74a385a63d07a7, 0x3fef5818dcfba487, +0xbc82919e2040220f, 0x3fef60e316c98398, +0x3c8e5a50d5c192ac, 0x3fef69e603db3285, +0x3c843a59ac016b4b, 0x3fef7321f301b460, +0xbc82d52107b43e1f, 0x3fef7c97337b9b5f, +0xbc892ab93b470dc9, 0x3fef864614f5a129, +0x3c74b604603a88d3, 0x3fef902ee78b3ff6, +0x3c83c5ec519d7271, 0x3fef9a51fbc74c83, +0xbc8ff7128fd391f0, 0x3fefa4afa2a490da, +0xbc8dae98e223747d, 0x3fefaf482d8e67f1, +0x3c8ec3bc41aa2008, 0x3fefba1bee615a27, +0x3c842b94c3a9eb32, 0x3fefc52b376bba97, +0x3c8a64a931d185ee, 0x3fefd0765b6e4540, +0xbc8e37bae43be3ed, 0x3fefdbfdad9cbe14, +0x3c77893b4d91cd9d, 0x3fefe7c1819e90d8, +0x3c5305c14160cc89, 0x3feff3c22b8f71f1, +#endif +}, +}; diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c index 5577aa3f40..9bf29e5cb3 100644 --- a/sysdeps/ieee754/dbl-64/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c @@ -108,12 +108,12 @@ __ieee754_pow (double x, double y) a2 = (a - a1) + aa; /* Maximum relative error RElog of log1 is 1.0e-21 (69.7 bits). - Maximum relative error REexp of __exp1 is 8.8e-22 (69.9 bits). + Maximum relative error REexp of __exp1 is 1.0e-18 (59.8 bits). We actually compute exp ((1 + RElog) * log (x) * y) * (1 + REexp). Since RElog/REexp are tiny and log (x) * y is at most log (DBL_MAX), this is equivalent to pow (x, y) * (1 + 710 * RElog + REexp). - So the relative error is 710 * 1.0e-21 + 8.8e-22 = 7.1e-19 - (60.2 bits). The worst-case ULP error is 0.5064. */ + So the relative error is 710 * 1.0e-21 + 1.0e-18 = 1.7e-18 + (59 bits). The worst-case ULP error is 0.515. */ retval = __exp1 (a1, a2); } diff --git a/sysdeps/ieee754/dbl-64/eexp.tbl b/sysdeps/ieee754/dbl-64/eexp.tbl deleted file mode 100644 index 4ee6040638..0000000000 --- a/sysdeps/ieee754/dbl-64/eexp.tbl +++ /dev/null @@ -1,172 +0,0 @@ -/* EXP function tables - for use in computing double precision exponential - Copyright (C) 2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* For i = 0, ..., 66, - TBL2[2*i] is a double precision number near (i+1)*2^-6, and - TBL2[2*i+1] = exp(TBL2[2*i]) to within a relative error less - than 2^-60. - - For i = 67, ..., 133, - TBL2[2*i] is a double precision number near -(i+1)*2^-6, and - TBL2[2*i+1] = exp(TBL2[2*i]) to within a relative error less - than 2^-60. */ - -static const double TBL2[268] = { - 0x1.ffffffffffc82p-7, 0x1.04080ab55de32p+0, - 0x1.fffffffffffdbp-6, 0x1.08205601127ecp+0, - 0x1.80000000000a0p-5, 0x1.0c49236829e91p+0, - 0x1.fffffffffff79p-5, 0x1.1082b577d34e9p+0, - 0x1.3fffffffffffcp-4, 0x1.14cd4fc989cd6p+0, - 0x1.8000000000060p-4, 0x1.192937074e0d4p+0, - 0x1.c000000000061p-4, 0x1.1d96b0eff0e80p+0, - 0x1.fffffffffffd6p-4, 0x1.2216045b6f5cap+0, - 0x1.1ffffffffff58p-3, 0x1.26a7793f6014cp+0, - 0x1.3ffffffffff75p-3, 0x1.2b4b58b372c65p+0, - 0x1.5ffffffffff00p-3, 0x1.3001ecf601ad1p+0, - 0x1.8000000000020p-3, 0x1.34cb8170b583ap+0, - 0x1.9ffffffffa629p-3, 0x1.39a862bd3b344p+0, - 0x1.c00000000000fp-3, 0x1.3e98deaa11dcep+0, - 0x1.e00000000007fp-3, 0x1.439d443f5f16dp+0, - 0x1.0000000000072p-2, 0x1.48b5e3c3e81abp+0, - 0x1.0fffffffffecap-2, 0x1.4de30ec211dfbp+0, - 0x1.1ffffffffff8fp-2, 0x1.5325180cfacd2p+0, - 0x1.300000000003bp-2, 0x1.587c53c5a7b04p+0, - 0x1.4000000000034p-2, 0x1.5de9176046007p+0, - 0x1.4ffffffffff89p-2, 0x1.636bb9a98322fp+0, - 0x1.5ffffffffffe7p-2, 0x1.690492cbf942ap+0, - 0x1.6ffffffffff78p-2, 0x1.6eb3fc55b1e45p+0, - 0x1.7ffffffffff65p-2, 0x1.747a513dbef32p+0, - 0x1.8ffffffffffd5p-2, 0x1.7a57ede9ea22ep+0, - 0x1.9ffffffffff6ep-2, 0x1.804d30347b50fp+0, - 0x1.affffffffffc3p-2, 0x1.865a7772164aep+0, - 0x1.c000000000053p-2, 0x1.8c802477b0030p+0, - 0x1.d00000000004dp-2, 0x1.92be99a09bf1ep+0, - 0x1.e000000000096p-2, 0x1.99163ad4b1e08p+0, - 0x1.efffffffffefap-2, 0x1.9f876d8e8c4fcp+0, - 0x1.fffffffffffd0p-2, 0x1.a61298e1e0688p+0, - 0x1.0800000000002p-1, 0x1.acb82581eee56p+0, - 0x1.100000000001fp-1, 0x1.b3787dc80f979p+0, - 0x1.17ffffffffff8p-1, 0x1.ba540dba56e4fp+0, - 0x1.1fffffffffffap-1, 0x1.c14b431256441p+0, - 0x1.27fffffffffc4p-1, 0x1.c85e8d43f7c9bp+0, - 0x1.2fffffffffffdp-1, 0x1.cf8e5d84758a6p+0, - 0x1.380000000001fp-1, 0x1.d6db26d16cd84p+0, - 0x1.3ffffffffffd8p-1, 0x1.de455df80e39bp+0, - 0x1.4800000000052p-1, 0x1.e5cd799c6a59cp+0, - 0x1.4ffffffffffc8p-1, 0x1.ed73f240dc10cp+0, - 0x1.5800000000013p-1, 0x1.f539424d90f71p+0, - 0x1.5ffffffffffbcp-1, 0x1.fd1de6182f885p+0, - 0x1.680000000002dp-1, 0x1.02912df5ce741p+1, - 0x1.7000000000040p-1, 0x1.06a39207f0a2ap+1, - 0x1.780000000004fp-1, 0x1.0ac660691652ap+1, - 0x1.7ffffffffff6fp-1, 0x1.0ef9db467dcabp+1, - 0x1.87fffffffffe5p-1, 0x1.133e45d82e943p+1, - 0x1.9000000000035p-1, 0x1.1793e4652cc6dp+1, - 0x1.97fffffffffb3p-1, 0x1.1bfafc47bda48p+1, - 0x1.a000000000000p-1, 0x1.2073d3f1bd518p+1, - 0x1.a80000000004ap-1, 0x1.24feb2f105ce2p+1, - 0x1.affffffffffedp-1, 0x1.299be1f3e7f11p+1, - 0x1.b7ffffffffffbp-1, 0x1.2e4baacdb6611p+1, - 0x1.c00000000001dp-1, 0x1.330e587b62b39p+1, - 0x1.c800000000079p-1, 0x1.37e437282d538p+1, - 0x1.cffffffffff51p-1, 0x1.3ccd943268248p+1, - 0x1.d7fffffffff74p-1, 0x1.41cabe304cadcp+1, - 0x1.e000000000011p-1, 0x1.46dc04f4e5343p+1, - 0x1.e80000000001ep-1, 0x1.4c01b9950a124p+1, - 0x1.effffffffff9ep-1, 0x1.513c2e6c73196p+1, - 0x1.f7fffffffffedp-1, 0x1.568bb722dd586p+1, - 0x1.0000000000034p+0, 0x1.5bf0a8b1457b0p+1, - 0x1.03fffffffffe2p+0, 0x1.616b5967376dfp+1, - 0x1.07fffffffff4bp+0, 0x1.66fc20f0337a9p+1, - 0x1.0bffffffffffdp+0, 0x1.6ca35859290f5p+1, - -0x1.fffffffffffe4p-7, 0x1.f80feabfeefa5p-1, - -0x1.ffffffffffb0bp-6, 0x1.f03f56a88b5fep-1, - -0x1.7ffffffffffa7p-5, 0x1.e88dc6afecfc5p-1, - -0x1.ffffffffffea8p-5, 0x1.e0fabfbc702b8p-1, - -0x1.3ffffffffffb3p-4, 0x1.d985c89d041acp-1, - -0x1.7ffffffffffe3p-4, 0x1.d22e6a0197c06p-1, - -0x1.bffffffffff9ap-4, 0x1.caf42e73a4c89p-1, - -0x1.fffffffffff98p-4, 0x1.c3d6a24ed822dp-1, - -0x1.1ffffffffffe9p-3, 0x1.bcd553b9d7b67p-1, - -0x1.3ffffffffffe0p-3, 0x1.b5efd29f24c2dp-1, - -0x1.5fffffffff553p-3, 0x1.af25b0a61a9f4p-1, - -0x1.7ffffffffff8bp-3, 0x1.a876812c08794p-1, - -0x1.9fffffffffe51p-3, 0x1.a1e1d93d68828p-1, - -0x1.bffffffffff6ep-3, 0x1.9b674f8f2f3f5p-1, - -0x1.dffffffffff7fp-3, 0x1.95067c7837a0cp-1, - -0x1.fffffffffff7ap-3, 0x1.8ebef9eac8225p-1, - -0x1.0fffffffffffep-2, 0x1.8890636e31f55p-1, - -0x1.1ffffffffff41p-2, 0x1.827a56188975ep-1, - -0x1.2ffffffffffbap-2, 0x1.7c7c708877656p-1, - -0x1.3fffffffffff8p-2, 0x1.769652df22f81p-1, - -0x1.4ffffffffff90p-2, 0x1.70c79eba33c2fp-1, - -0x1.5ffffffffffdbp-2, 0x1.6b0ff72deb8aap-1, - -0x1.6ffffffffff9ap-2, 0x1.656f00bf5798ep-1, - -0x1.7ffffffffff9fp-2, 0x1.5fe4615e98eb0p-1, - -0x1.8ffffffffffeep-2, 0x1.5a6fc061433cep-1, - -0x1.9fffffffffc4ap-2, 0x1.5510c67cd26cdp-1, - -0x1.affffffffff30p-2, 0x1.4fc71dc13566bp-1, - -0x1.bfffffffffff0p-2, 0x1.4a9271936fd0ep-1, - -0x1.cfffffffffff3p-2, 0x1.45726ea84fb8cp-1, - -0x1.dfffffffffff3p-2, 0x1.4066c2ff3912bp-1, - -0x1.effffffffff80p-2, 0x1.3b6f1ddd05ab9p-1, - -0x1.fffffffffffdfp-2, 0x1.368b2fc6f9614p-1, - -0x1.0800000000000p-1, 0x1.31baaa7dca843p-1, - -0x1.0ffffffffffa4p-1, 0x1.2cfd40f8bdce4p-1, - -0x1.17fffffffff0ap-1, 0x1.2852a760d5ce7p-1, - -0x1.2000000000000p-1, 0x1.23ba930c1568bp-1, - -0x1.27fffffffffbbp-1, 0x1.1f34ba78d568dp-1, - -0x1.2fffffffffe32p-1, 0x1.1ac0d5492c1dbp-1, - -0x1.37ffffffff042p-1, 0x1.165e9c3e67ef2p-1, - -0x1.3ffffffffff77p-1, 0x1.120dc93499431p-1, - -0x1.47fffffffff6bp-1, 0x1.0dce171e34ecep-1, - -0x1.4fffffffffff1p-1, 0x1.099f41ffbe588p-1, - -0x1.57ffffffffe02p-1, 0x1.058106eb8a7aep-1, - -0x1.5ffffffffffe5p-1, 0x1.017323fd9002ep-1, - -0x1.67fffffffffb0p-1, 0x1.faeab0ae9386cp-2, - -0x1.6ffffffffffb2p-1, 0x1.f30ec837503d7p-2, - -0x1.77fffffffff7fp-1, 0x1.eb5210d627133p-2, - -0x1.7ffffffffffe8p-1, 0x1.e3b40ebefcd95p-2, - -0x1.87fffffffffc8p-1, 0x1.dc3448110dae2p-2, - -0x1.8fffffffffb30p-1, 0x1.d4d244cf4ef06p-2, - -0x1.97fffffffffefp-1, 0x1.cd8d8ed8ee395p-2, - -0x1.9ffffffffffa7p-1, 0x1.c665b1e1f1e5cp-2, - -0x1.a7fffffffffdcp-1, 0x1.bf5a3b6bf18d6p-2, - -0x1.affffffffff95p-1, 0x1.b86ababeef93bp-2, - -0x1.b7fffffffffcbp-1, 0x1.b196c0e24d256p-2, - -0x1.bffffffffff32p-1, 0x1.aadde095dadf7p-2, - -0x1.c7fffffffff6ap-1, 0x1.a43fae4b047c9p-2, - -0x1.cffffffffffb6p-1, 0x1.9dbbc01e182a4p-2, - -0x1.d7fffffffffcap-1, 0x1.9751adcfa81ecp-2, - -0x1.dffffffffffcdp-1, 0x1.910110be0699ep-2, - -0x1.e7ffffffffffbp-1, 0x1.8ac983dedbc69p-2, - -0x1.effffffffff88p-1, 0x1.84aaa3b8d51a9p-2, - -0x1.f7fffffffffbbp-1, 0x1.7ea40e5d6d92ep-2, - -0x1.fffffffffffdbp-1, 0x1.78b56362cef53p-2, - -0x1.03fffffffff00p+0, 0x1.72de43ddcb1f2p-2, - -0x1.07ffffffffe6fp+0, 0x1.6d1e525bed085p-2, - -0x1.0bfffffffffd6p+0, 0x1.677532dda1c57p-2}; - -static const double - half = 0.5, - one = 1.0, -/* t2-t5 terms used for polynomial computation. */ - t2 = 0x1.5555555555555p-3, /* 1.6666666666666665741e-1 */ - t3 = 0x1.5555555555555p-5, /* 4.1666666666666664354e-2 */ - t4 = 0x1.1111111111111p-7, /* 8.3333333333333332177e-3 */ - t5 = 0x1.6c16c16c16c17p-10; /* 1.3888888888888889419e-3 */ diff --git a/sysdeps/ieee754/dbl-64/math_config.h b/sysdeps/ieee754/dbl-64/math_config.h new file mode 100644 index 0000000000..02d94fed3e --- /dev/null +++ b/sysdeps/ieee754/dbl-64/math_config.h @@ -0,0 +1,136 @@ +/* Configuration for double precision math routines. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _MATH_CONFIG_H +#define _MATH_CONFIG_H + +#include <math.h> +#include <math_private.h> +#include <stdint.h> + +#ifndef WANT_ROUNDING +/* Correct special case results in non-nearest rounding modes. */ +# define WANT_ROUNDING 1 +#endif +#ifndef WANT_ERRNO +/* Set errno according to ISO C with (math_errhandling & MATH_ERRNO) != 0. */ +# define WANT_ERRNO 1 +#endif +#ifndef WANT_ERRNO_UFLOW +/* Set errno to ERANGE if result underflows to 0 (in all rounding modes). */ +# define WANT_ERRNO_UFLOW (WANT_ROUNDING && WANT_ERRNO) +#endif + +#ifndef TOINT_INTRINSICS +/* When set, the roundtoint and converttoint functions are provided with + the semantics documented below. */ +# define TOINT_INTRINSICS 0 +#endif + +#if TOINT_INTRINSICS +/* Round x to nearest int in all rounding modes, ties have to be rounded + consistently with converttoint so the results match. If the result + would be outside of [-2^31, 2^31-1] then the semantics is unspecified. */ +static inline double_t +roundtoint (double_t x); + +/* Convert x to nearest int in all rounding modes, ties have to be rounded + consistently with roundtoint. If the result is not representible in an + int32_t then the semantics is unspecified. */ +static inline int32_t +converttoint (double_t x); +#endif + +static inline uint64_t +asuint64 (double f) +{ + union + { + double f; + uint64_t i; + } u = {f}; + return u.i; +} + +static inline double +asdouble (uint64_t i) +{ + union + { + uint64_t i; + double f; + } u = {i}; + return u.f; +} + +#define NOINLINE __attribute__ ((noinline)) + +/* Error handling tail calls for special cases, with a sign argument. + The sign of the return value is set if the argument is non-zero. */ + +/* The result overflows. */ +attribute_hidden double __math_oflow (uint32_t); +/* The result underflows to 0 in nearest rounding mode. */ +attribute_hidden double __math_uflow (uint32_t); +/* The result underflows to 0 in some directed rounding mode only. */ +attribute_hidden double __math_may_uflow (uint32_t); +/* Division by zero. */ +attribute_hidden double __math_divzero (uint32_t); + +/* Error handling using input checking. */ + +/* Invalid input unless it is a quiet NaN. */ +attribute_hidden double __math_invalid (double); + +/* Error handling using output checking, only for errno setting. */ + +/* Check if the result overflowed to infinity. */ +attribute_hidden double __math_check_oflow (double); +/* Check if the result underflowed to 0. */ +attribute_hidden double __math_check_uflow (double); + +/* Check if the result overflowed to infinity. */ +static inline double +check_oflow (double x) +{ + return WANT_ERRNO ? __math_check_oflow (x) : x; +} + +/* Check if the result underflowed to 0. */ +static inline double +check_uflow (double x) +{ + return WANT_ERRNO ? __math_check_uflow (x) : x; +} + +#define EXP_TABLE_BITS 7 +#define EXP_POLY_ORDER 5 +#define EXP2_POLY_ORDER 5 +extern const struct exp_data +{ + double invln2N; + double shift; + double negln2hiN; + double negln2loN; + double poly[4]; /* Last four coefficients. */ + double exp2_shift; + double exp2_poly[EXP2_POLY_ORDER]; + uint64_t tab[2*(1 << EXP_TABLE_BITS)]; +} __exp_data attribute_hidden; + +#endif diff --git a/sysdeps/ieee754/dbl-64/math_err.c b/sysdeps/ieee754/dbl-64/math_err.c new file mode 100644 index 0000000000..efd7ef0832 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/math_err.c @@ -0,0 +1,92 @@ +/* Double-precision math error handling. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <math-barriers.h> +#include "math_config.h" + +#if WANT_ERRNO +#include <errno.h> +/* NOINLINE reduces code size and avoids making math functions non-leaf + when the error handling is inlined. */ +NOINLINE static double +with_errno (double y, int e) +{ + errno = e; + return y; +} +#else +#define with_errno(x, e) (x) +#endif + +/* NOINLINE reduces code size. */ +NOINLINE static double +xflow (uint32_t sign, double y) +{ + y = math_opt_barrier (sign ? -y : y) * y; + return with_errno (y, ERANGE); +} + +attribute_hidden double +__math_uflow (uint32_t sign) +{ + return xflow (sign, 0x1p-767); +} + +#if WANT_ERRNO_UFLOW +/* Underflows to zero in some non-nearest rounding mode, setting errno + is valid even if the result is non-zero, but in the subnormal range. */ +attribute_hidden double +__math_may_uflow (uint32_t sign) +{ + return xflow (sign, 0x1.8p-538); +} +#endif + +attribute_hidden double +__math_oflow (uint32_t sign) +{ + return xflow (sign, 0x1p769); +} + +attribute_hidden double +__math_divzero (uint32_t sign) +{ + double y = math_opt_barrier (sign ? -1.0 : 1.0) / 0.0; + return with_errno (y, ERANGE); +} + +attribute_hidden double +__math_invalid (double x) +{ + double y = (x - x) / (x - x); + return isnan (x) ? y : with_errno (y, EDOM); +} + +/* Check result and set errno if necessary. */ + +attribute_hidden double +__math_check_uflow (double y) +{ + return y == 0.0 ? with_errno (y, ERANGE) : y; +} + +attribute_hidden double +__math_check_oflow (double y) +{ + return isinf (y) ? with_errno (y, ERANGE) : y; +} diff --git a/sysdeps/ieee754/dbl-64/t_exp.c b/sysdeps/ieee754/dbl-64/t_exp.c deleted file mode 100644 index 555c4ff01b..0000000000 --- a/sysdeps/ieee754/dbl-64/t_exp.c +++ /dev/null @@ -1,435 +0,0 @@ -/* Accurate tables for exp(). - Copyright (C) 1998-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Geoffrey Keating <geoffk@ozemail.com.au> - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* This table has the property that, for all integers -177 <= i <= 177, - exp(i/512.0 + __exp_deltatable[abs(i)]) == __exp_atable[i+177] + r - for some -2^-64 < r < 2^-64 (abs(r) < 2^-65 if i <= 0); and that - __exp_deltatable[abs(i)] == t * 2^-60 - for integer t so that abs(t) <= 8847927 * 2^8. */ - -#define W52 (2.22044605e-16) -#define W55 (2.77555756e-17) -#define W58 (3.46944695e-18) -#define W59 (1.73472348e-18) -#define W60 (8.67361738e-19) -const float __exp_deltatable[178] = { - 0*W60, 16558714*W60, -10672149*W59, 1441652*W60, - -15787963*W55, 462888*W60, 7291806*W60, 1698880*W60, - -14375103*W58, -2021016*W60, 728829*W60, -3759654*W60, - 3202123*W60, -10916019*W58, -251570*W60, -1043086*W60, - 8207536*W60, -409964*W60, -5993931*W60, -475500*W60, - 2237522*W60, 324170*W60, -244117*W60, 32077*W60, - 123907*W60, -1019734*W60, -143*W60, 813077*W60, - 743345*W60, 462461*W60, 629794*W60, 2125066*W60, - -2339121*W60, -337951*W60, 9922067*W60, -648704*W60, - 149407*W60, -2687209*W60, -631608*W60, 2128280*W60, - -4882082*W60, 2001360*W60, 175074*W60, 2923216*W60, - -538947*W60, -1212193*W60, -1920926*W60, -1080577*W60, - 3690196*W60, 2643367*W60, 2911937*W60, 671455*W60, - -1128674*W60, 593282*W60, -5219347*W60, -1941490*W60, - 11007953*W60, 239609*W60, -2969658*W60, -1183650*W60, - 942998*W60, 699063*W60, 450569*W60, -329250*W60, - -7257875*W60, -312436*W60, 51626*W60, 555877*W60, - -641761*W60, 1565666*W60, 884327*W60, -10960035*W60, - -2004679*W60, -995793*W60, -2229051*W60, -146179*W60, - -510327*W60, 1453482*W60, -3778852*W60, -2238056*W60, - -4895983*W60, 3398883*W60, -252738*W60, 1230155*W60, - 346918*W60, 1109352*W60, 268941*W60, -2930483*W60, - -1036263*W60, -1159280*W60, 1328176*W60, 2937642*W60, - -9371420*W60, -6902650*W60, -1419134*W60, 1442904*W60, - -1319056*W60, -16369*W60, 696555*W60, -279987*W60, - -7919763*W60, 252741*W60, 459711*W60, -1709645*W60, - 354913*W60, 6025867*W60, -421460*W60, -853103*W60, - -338649*W60, 962151*W60, 955965*W60, 784419*W60, - -3633653*W60, 2277133*W60, -8847927*W52, 1223028*W60, - 5907079*W60, 623167*W60, 5142888*W60, 2599099*W60, - 1214280*W60, 4870359*W60, 593349*W60, -57705*W60, - 7761209*W60, -5564097*W60, 2051261*W60, 6216869*W60, - 4692163*W60, 601691*W60, -5264906*W60, 1077872*W60, - -3205949*W60, 1833082*W60, 2081746*W60, -987363*W60, - -1049535*W60, 2015244*W60, 874230*W60, 2168259*W60, - -1740124*W60, -10068269*W60, -18242*W60, -3013583*W60, - 580601*W60, -2547161*W60, -535689*W60, 2220815*W60, - 1285067*W60, 2806933*W60, -983086*W60, -1729097*W60, - -1162985*W60, -2561904*W60, 801988*W60, 244351*W60, - 1441893*W60, -7517981*W60, 271781*W60, -15021588*W60, - -2341588*W60, -919198*W60, 1642232*W60, 4771771*W60, - -1220099*W60, -3062372*W60, 628624*W60, 1278114*W60, - 13083513*W60, -10521925*W60, 3180310*W60, -1659307*W60, - 3543773*W60, 2501203*W60, 4151*W60, -340748*W60, - -2285625*W60, 2495202*W60 -}; - -const double __exp_atable[355] /* __attribute__((mode(DF))) */ = { - 0.707722561055888932371, /* 0x0.b52d4e46605c27ffd */ - 0.709106182438804188967, /* 0x0.b587fb96f75097ffb */ - 0.710492508843861281234, /* 0x0.b5e2d649899167ffd */ - 0.711881545564593931623, /* 0x0.b63dde74d36bdfffe */ - 0.713273297897442870573, /* 0x0.b699142f945f87ffc */ - 0.714667771153751463236, /* 0x0.b6f477909c4ea0001 */ - 0.716064970655995725059, /* 0x0.b75008aec758f8004 */ - 0.717464901723956938193, /* 0x0.b7abc7a0eea7e0002 */ - 0.718867569715736398602, /* 0x0.b807b47e1586c7ff8 */ - 0.720272979947266023271, /* 0x0.b863cf5d10e380003 */ - 0.721681137825144314297, /* 0x0.b8c01855195c37ffb */ - 0.723092048691992950199, /* 0x0.b91c8f7d213740004 */ - 0.724505717938892290800, /* 0x0.b97934ec5002d0007 */ - 0.725922150953176470431, /* 0x0.b9d608b9c92ea7ffc */ - 0.727341353138962865022, /* 0x0.ba330afcc29e98003 */ - 0.728763329918453162104, /* 0x0.ba903bcc8618b7ffc */ - 0.730188086709957051568, /* 0x0.baed9b40591ba0000 */ - 0.731615628948127705309, /* 0x0.bb4b296f931e30002 */ - 0.733045962086486091436, /* 0x0.bba8e671a05617ff9 */ - 0.734479091556371366251, /* 0x0.bc06d25dd49568001 */ - 0.735915022857225542529, /* 0x0.bc64ed4bce8f6fff9 */ - 0.737353761441304711410, /* 0x0.bcc33752f915d7ff9 */ - 0.738795312814142124419, /* 0x0.bd21b08af98e78005 */ - 0.740239682467211168593, /* 0x0.bd80590b65e9a8000 */ - 0.741686875913991849885, /* 0x0.bddf30ebec4a10000 */ - 0.743136898669507939299, /* 0x0.be3e38443c84e0007 */ - 0.744589756269486091620, /* 0x0.be9d6f2c1d32a0002 */ - 0.746045454254026796384, /* 0x0.befcd5bb59baf8004 */ - 0.747503998175051087583, /* 0x0.bf5c6c09ca84c0003 */ - 0.748965393601880857739, /* 0x0.bfbc322f5b18b7ff8 */ - 0.750429646104262104698, /* 0x0.c01c2843f776fffff */ - 0.751896761271877989160, /* 0x0.c07c4e5fa18b88002 */ - 0.753366744698445112140, /* 0x0.c0dca49a5fb18fffd */ - 0.754839601988627206827, /* 0x0.c13d2b0c444db0005 */ - 0.756315338768691947122, /* 0x0.c19de1cd798578006 */ - 0.757793960659406629066, /* 0x0.c1fec8f623723fffd */ - 0.759275473314173443536, /* 0x0.c25fe09e8a0f47ff8 */ - 0.760759882363831851927, /* 0x0.c2c128dedc88f8000 */ - 0.762247193485956486805, /* 0x0.c322a1cf7d6e7fffa */ - 0.763737412354726363781, /* 0x0.c3844b88cb9347ffc */ - 0.765230544649828092739, /* 0x0.c3e626232bd8f7ffc */ - 0.766726596071518051729, /* 0x0.c44831b719bf18002 */ - 0.768225572321911687194, /* 0x0.c4aa6e5d12d078001 */ - 0.769727479119219348810, /* 0x0.c50cdc2da64a37ffb */ - 0.771232322196981678892, /* 0x0.c56f7b41744490001 */ - 0.772740107296721268087, /* 0x0.c5d24bb1259e70004 */ - 0.774250840160724651565, /* 0x0.c6354d95640dd0007 */ - 0.775764526565368872643, /* 0x0.c6988106fec447fff */ - 0.777281172269557396602, /* 0x0.c6fbe61eb1bd0ffff */ - 0.778800783068235302750, /* 0x0.c75f7cf560942fffc */ - 0.780323364758801041312, /* 0x0.c7c345a3f1983fffe */ - 0.781848923151573727006, /* 0x0.c8274043594cb0002 */ - 0.783377464064598849602, /* 0x0.c88b6cec94b3b7ff9 */ - 0.784908993312207869935, /* 0x0.c8efcbb89cba27ffe */ - 0.786443516765346961618, /* 0x0.c9545cc0a88c70003 */ - 0.787981040257604625744, /* 0x0.c9b9201dc643bfffa */ - 0.789521569657452682047, /* 0x0.ca1e15e92a5410007 */ - 0.791065110849462849192, /* 0x0.ca833e3c1ae510005 */ - 0.792611669712891875319, /* 0x0.cae8992fd84667ffd */ - 0.794161252150049179450, /* 0x0.cb4e26ddbc207fff8 */ - 0.795713864077794763584, /* 0x0.cbb3e75f301b60003 */ - 0.797269511407239561694, /* 0x0.cc19dacd978cd8002 */ - 0.798828200086368567220, /* 0x0.cc8001427e55d7ffb */ - 0.800389937624300440456, /* 0x0.cce65ade24d360006 */ - 0.801954725261124767840, /* 0x0.cd4ce7a5de839fffb */ - 0.803522573691593189330, /* 0x0.cdb3a7c79a678fffd */ - 0.805093487311204114563, /* 0x0.ce1a9b563965ffffc */ - 0.806667472122675088819, /* 0x0.ce81c26b838db8000 */ - 0.808244534127439906441, /* 0x0.cee91d213f8428002 */ - 0.809824679342317166307, /* 0x0.cf50ab9144d92fff9 */ - 0.811407913793616542005, /* 0x0.cfb86dd5758c2ffff */ - 0.812994243520784198882, /* 0x0.d0206407c20e20005 */ - 0.814583674571603966162, /* 0x0.d0888e4223facfff9 */ - 0.816176213022088536960, /* 0x0.d0f0ec9eb3f7c8002 */ - 0.817771864936188586101, /* 0x0.d1597f377d6768002 */ - 0.819370636400374108252, /* 0x0.d1c24626a46eafff8 */ - 0.820972533518165570298, /* 0x0.d22b41865ff1e7ff9 */ - 0.822577562404315121269, /* 0x0.d2947170f32ec7ff9 */ - 0.824185729164559344159, /* 0x0.d2fdd60097795fff8 */ - 0.825797039949601741075, /* 0x0.d3676f4fb796d0001 */ - 0.827411500902565544264, /* 0x0.d3d13d78b5f68fffb */ - 0.829029118181348834154, /* 0x0.d43b40960546d8001 */ - 0.830649897953322891022, /* 0x0.d4a578c222a058000 */ - 0.832273846408250750368, /* 0x0.d50fe617a3ba78005 */ - 0.833900969738858188772, /* 0x0.d57a88b1218e90002 */ - 0.835531274148056613016, /* 0x0.d5e560a94048f8006 */ - 0.837164765846411529371, /* 0x0.d6506e1aac8078003 */ - 0.838801451086016225394, /* 0x0.d6bbb1204074e0001 */ - 0.840441336100884561780, /* 0x0.d72729d4c28518004 */ - 0.842084427144139224814, /* 0x0.d792d8530e12b0001 */ - 0.843730730487052604790, /* 0x0.d7febcb61273e7fff */ - 0.845380252404570153833, /* 0x0.d86ad718c308dfff9 */ - 0.847032999194574087728, /* 0x0.d8d727962c69d7fff */ - 0.848688977161248581090, /* 0x0.d943ae49621ce7ffb */ - 0.850348192619261200615, /* 0x0.d9b06b4d832ef8005 */ - 0.852010651900976245816, /* 0x0.da1d5ebdc22220005 */ - 0.853676361342631029337, /* 0x0.da8a88b555baa0006 */ - 0.855345327311054837175, /* 0x0.daf7e94f965f98004 */ - 0.857017556155879489641, /* 0x0.db6580a7c98f7fff8 */ - 0.858693054267390953857, /* 0x0.dbd34ed9617befff8 */ - 0.860371828028939855647, /* 0x0.dc4153ffc8b65fff9 */ - 0.862053883854957292436, /* 0x0.dcaf90368bfca8004 */ - 0.863739228154875360306, /* 0x0.dd1e0399328d87ffe */ - 0.865427867361348468455, /* 0x0.dd8cae435d303fff9 */ - 0.867119807911702289458, /* 0x0.ddfb9050b1cee8006 */ - 0.868815056264353846599, /* 0x0.de6aa9dced8448001 */ - 0.870513618890481399881, /* 0x0.ded9fb03db7320006 */ - 0.872215502247877139094, /* 0x0.df4983e1380657ff8 */ - 0.873920712852848668986, /* 0x0.dfb94490ffff77ffd */ - 0.875629257204025623884, /* 0x0.e0293d2f1cb01fff9 */ - 0.877341141814212965880, /* 0x0.e0996dd786fff0007 */ - 0.879056373217612985183, /* 0x0.e109d6a64f5d57ffc */ - 0.880774957955916648615, /* 0x0.e17a77b78e72a7ffe */ - 0.882496902590150900078, /* 0x0.e1eb5127722cc7ff8 */ - 0.884222213673356738383, /* 0x0.e25c63121fb0c8006 */ - 0.885950897802399772740, /* 0x0.e2cdad93ec5340003 */ - 0.887682961567391237685, /* 0x0.e33f30c925fb97ffb */ - 0.889418411575228162725, /* 0x0.e3b0ecce2d05ffff9 */ - 0.891157254447957902797, /* 0x0.e422e1bf727718006 */ - 0.892899496816652704641, /* 0x0.e4950fb9713fc7ffe */ - 0.894645145323828439008, /* 0x0.e50776d8b0e60fff8 */ - 0.896394206626591749641, /* 0x0.e57a1739c8fadfffc */ - 0.898146687421414902124, /* 0x0.e5ecf0f97c5798007 */ - 0.899902594367530173098, /* 0x0.e660043464e378005 */ - 0.901661934163603406867, /* 0x0.e6d3510747e150006 */ - 0.903424713533971135418, /* 0x0.e746d78f06cd97ffd */ - 0.905190939194458810123, /* 0x0.e7ba97e879c91fffc */ - 0.906960617885092856864, /* 0x0.e82e92309390b0007 */ - 0.908733756358986566306, /* 0x0.e8a2c6845544afffa */ - 0.910510361377119825629, /* 0x0.e9173500c8abc7ff8 */ - 0.912290439722343249336, /* 0x0.e98bddc30f98b0002 */ - 0.914073998177417412765, /* 0x0.ea00c0e84bc4c7fff */ - 0.915861043547953501680, /* 0x0.ea75de8db8094fffe */ - 0.917651582652244779397, /* 0x0.eaeb36d09d3137ffe */ - 0.919445622318405764159, /* 0x0.eb60c9ce4ed3dffff */ - 0.921243169397334638073, /* 0x0.ebd697a43995b0007 */ - 0.923044230737526172328, /* 0x0.ec4ca06fc7768fffa */ - 0.924848813220121135342, /* 0x0.ecc2e44e865b6fffb */ - 0.926656923710931002014, /* 0x0.ed39635df34e70006 */ - 0.928468569126343790092, /* 0x0.edb01dbbc2f5b7ffa */ - 0.930283756368834757725, /* 0x0.ee2713859aab57ffa */ - 0.932102492359406786818, /* 0x0.ee9e44d9342870004 */ - 0.933924784042873379360, /* 0x0.ef15b1d4635438005 */ - 0.935750638358567643520, /* 0x0.ef8d5a94f60f50007 */ - 0.937580062297704630580, /* 0x0.f0053f38f345cffff */ - 0.939413062815381727516, /* 0x0.f07d5fde3a2d98001 */ - 0.941249646905368053689, /* 0x0.f0f5bca2d481a8004 */ - 0.943089821583810716806, /* 0x0.f16e55a4e497d7ffe */ - 0.944933593864477061592, /* 0x0.f1e72b028a2827ffb */ - 0.946780970781518460559, /* 0x0.f2603cd9fb5430001 */ - 0.948631959382661205081, /* 0x0.f2d98b497d2a87ff9 */ - 0.950486566729423554277, /* 0x0.f353166f63e3dffff */ - 0.952344799896018723290, /* 0x0.f3ccde6a11ae37ffe */ - 0.954206665969085765512, /* 0x0.f446e357f66120000 */ - 0.956072172053890279009, /* 0x0.f4c12557964f0fff9 */ - 0.957941325265908139014, /* 0x0.f53ba48781046fffb */ - 0.959814132734539637840, /* 0x0.f5b66106555d07ffa */ - 0.961690601603558903308, /* 0x0.f6315af2c2027fffc */ - 0.963570739036113010927, /* 0x0.f6ac926b8aeb80004 */ - 0.965454552202857141381, /* 0x0.f728078f7c5008002 */ - 0.967342048278315158608, /* 0x0.f7a3ba7d66a908001 */ - 0.969233234469444204768, /* 0x0.f81fab543e1897ffb */ - 0.971128118008140250896, /* 0x0.f89bda33122c78007 */ - 0.973026706099345495256, /* 0x0.f9184738d4cf97ff8 */ - 0.974929006031422851235, /* 0x0.f994f284d3a5c0008 */ - 0.976835024947348973265, /* 0x0.fa11dc35bc7820002 */ - 0.978744770239899142285, /* 0x0.fa8f046b4fb7f8007 */ - 0.980658249138918636210, /* 0x0.fb0c6b449ab1cfff9 */ - 0.982575468959622777535, /* 0x0.fb8a10e1088fb7ffa */ - 0.984496437054508843888, /* 0x0.fc07f5602d79afffc */ - 0.986421160608523028820, /* 0x0.fc8618e0e55e47ffb */ - 0.988349647107594098099, /* 0x0.fd047b83571b1fffa */ - 0.990281903873210800357, /* 0x0.fd831d66f4c018002 */ - 0.992217938695037382475, /* 0x0.fe01fead3320bfff8 */ - 0.994157757657894713987, /* 0x0.fe811f703491e8006 */ - 0.996101369488558541238, /* 0x0.ff007fd5744490005 */ - 0.998048781093141101932, /* 0x0.ff801ffa9b9280007 */ - 1.000000000000000000000, /* 0x1.00000000000000000 */ - 1.001955033605393285965, /* 0x1.0080200565d29ffff */ - 1.003913889319761887310, /* 0x1.0100802aa0e80fff0 */ - 1.005876574715736104818, /* 0x1.01812090377240007 */ - 1.007843096764807100351, /* 0x1.020201541aad7fff6 */ - 1.009813464316352327214, /* 0x1.0283229c4c9820007 */ - 1.011787683565730677817, /* 0x1.030484836910a000e */ - 1.013765762469146736174, /* 0x1.0386272b9c077fffe */ - 1.015747708536026694351, /* 0x1.04080ab526304fff0 */ - 1.017733529475172815584, /* 0x1.048a2f412375ffff0 */ - 1.019723232714418781378, /* 0x1.050c94ef7ad5e000a */ - 1.021716825883923762690, /* 0x1.058f3be0f1c2d0004 */ - 1.023714316605201180057, /* 0x1.06122436442e2000e */ - 1.025715712440059545995, /* 0x1.06954e0fec63afff2 */ - 1.027721021151397406936, /* 0x1.0718b98f41c92fff6 */ - 1.029730250269221158939, /* 0x1.079c66d49bb2ffff1 */ - 1.031743407506447551857, /* 0x1.082056011a9230009 */ - 1.033760500517691527387, /* 0x1.08a487359ebd50002 */ - 1.035781537016238873464, /* 0x1.0928fa93490d4fff3 */ - 1.037806524719013578963, /* 0x1.09adb03b3e5b3000d */ - 1.039835471338248051878, /* 0x1.0a32a84e9e5760004 */ - 1.041868384612101516848, /* 0x1.0ab7e2eea5340ffff */ - 1.043905272300907460835, /* 0x1.0b3d603ca784f0009 */ - 1.045946142174331239262, /* 0x1.0bc3205a042060000 */ - 1.047991002016745332165, /* 0x1.0c4923682a086fffe */ - 1.050039859627715177527, /* 0x1.0ccf698898f3a000d */ - 1.052092722826109660856, /* 0x1.0d55f2dce5d1dfffb */ - 1.054149599440827866881, /* 0x1.0ddcbf86b09a5fff6 */ - 1.056210497317612961855, /* 0x1.0e63cfa7abc97fffd */ - 1.058275424318780855142, /* 0x1.0eeb23619c146fffb */ - 1.060344388322010722446, /* 0x1.0f72bad65714bffff */ - 1.062417397220589476718, /* 0x1.0ffa9627c38d30004 */ - 1.064494458915699715017, /* 0x1.1082b577d0eef0003 */ - 1.066575581342167566880, /* 0x1.110b18e893a90000a */ - 1.068660772440545025953, /* 0x1.1193c09c267610006 */ - 1.070750040138235936705, /* 0x1.121cacb4959befff6 */ - 1.072843392435016474095, /* 0x1.12a5dd543cf36ffff */ - 1.074940837302467588937, /* 0x1.132f529d59552000b */ - 1.077042382749654914030, /* 0x1.13b90cb250d08fff5 */ - 1.079148036789447484528, /* 0x1.14430bb58da3dfff9 */ - 1.081257807444460983297, /* 0x1.14cd4fc984c4a000e */ - 1.083371702785017154417, /* 0x1.1557d910df9c7000e */ - 1.085489730853784307038, /* 0x1.15e2a7ae292d30002 */ - 1.087611899742884524772, /* 0x1.166dbbc422d8c0004 */ - 1.089738217537583819804, /* 0x1.16f9157586772ffff */ - 1.091868692357631731528, /* 0x1.1784b4e533cacfff0 */ - 1.094003332327482702577, /* 0x1.18109a360fc23fff2 */ - 1.096142145591650907149, /* 0x1.189cc58b155a70008 */ - 1.098285140311341168136, /* 0x1.1929370751ea50002 */ - 1.100432324652149906842, /* 0x1.19b5eecdd79cefff0 */ - 1.102583706811727015711, /* 0x1.1a42ed01dbdba000e */ - 1.104739294993289488947, /* 0x1.1ad031c69a2eafff0 */ - 1.106899097422573863281, /* 0x1.1b5dbd3f66e120003 */ - 1.109063122341542140286, /* 0x1.1beb8f8fa8150000b */ - 1.111231377994659874592, /* 0x1.1c79a8dac6ad0fff4 */ - 1.113403872669181282605, /* 0x1.1d0809445a97ffffc */ - 1.115580614653132185460, /* 0x1.1d96b0effc9db000e */ - 1.117761612217810673898, /* 0x1.1e25a001332190000 */ - 1.119946873713312474002, /* 0x1.1eb4d69bdb2a9fff1 */ - 1.122136407473298902480, /* 0x1.1f4454e3bfae00006 */ - 1.124330221845670330058, /* 0x1.1fd41afcbb48bfff8 */ - 1.126528325196519908506, /* 0x1.2064290abc98c0001 */ - 1.128730725913251964394, /* 0x1.20f47f31c9aa7000f */ - 1.130937432396844410880, /* 0x1.21851d95f776dfff0 */ - 1.133148453059692917203, /* 0x1.2216045b6784efffa */ - 1.135363796355857157764, /* 0x1.22a733a6692ae0004 */ - 1.137583470716100553249, /* 0x1.2338ab9b3221a0004 */ - 1.139807484614418608939, /* 0x1.23ca6c5e27aadfff7 */ - 1.142035846532929888057, /* 0x1.245c7613b7f6c0004 */ - 1.144268564977221958089, /* 0x1.24eec8e06b035000c */ - 1.146505648458203463465, /* 0x1.258164e8cea85fff8 */ - 1.148747105501412235671, /* 0x1.26144a5180d380009 */ - 1.150992944689175123667, /* 0x1.26a7793f5de2efffa */ - 1.153243174560058870217, /* 0x1.273af1d712179000d */ - 1.155497803703682491111, /* 0x1.27ceb43d81d42fff1 */ - 1.157756840726344771440, /* 0x1.2862c097a3d29000c */ - 1.160020294239811677834, /* 0x1.28f7170a74cf4fff1 */ - 1.162288172883275239058, /* 0x1.298bb7bb0faed0004 */ - 1.164560485298402170388, /* 0x1.2a20a2ce920dffff4 */ - 1.166837240167474476460, /* 0x1.2ab5d86a4631ffff6 */ - 1.169118446164539637555, /* 0x1.2b4b58b36d5220009 */ - 1.171404112007080167155, /* 0x1.2be123cf786790002 */ - 1.173694246390975415341, /* 0x1.2c7739e3c0aac000d */ - 1.175988858069749065617, /* 0x1.2d0d9b15deb58fff6 */ - 1.178287955789017793514, /* 0x1.2da4478b627040002 */ - 1.180591548323240091978, /* 0x1.2e3b3f69fb794fffc */ - 1.182899644456603782686, /* 0x1.2ed282d76421d0004 */ - 1.185212252993012693694, /* 0x1.2f6a11f96c685fff3 */ - 1.187529382762033236513, /* 0x1.3001ecf60082ffffa */ - 1.189851042595508889847, /* 0x1.309a13f30f28a0004 */ - 1.192177241354644978669, /* 0x1.31328716a758cfff7 */ - 1.194507987909589896687, /* 0x1.31cb4686e1e85fffb */ - 1.196843291137896336843, /* 0x1.32645269dfd04000a */ - 1.199183159977805113226, /* 0x1.32fdaae604c39000f */ - 1.201527603343041317132, /* 0x1.339750219980dfff3 */ - 1.203876630171082595692, /* 0x1.3431424300e480007 */ - 1.206230249419600664189, /* 0x1.34cb8170b3fee000e */ - 1.208588470077065268869, /* 0x1.35660dd14dbd4fffc */ - 1.210951301134513435915, /* 0x1.3600e78b6bdfc0005 */ - 1.213318751604272271958, /* 0x1.369c0ec5c38ebfff2 */ - 1.215690830512196507537, /* 0x1.373783a718d29000f */ - 1.218067546930756250870, /* 0x1.37d3465662f480007 */ - 1.220448909901335365929, /* 0x1.386f56fa770fe0008 */ - 1.222834928513994334780, /* 0x1.390bb5ba5fc540004 */ - 1.225225611877684750397, /* 0x1.39a862bd3c7a8fff3 */ - 1.227620969111500981433, /* 0x1.3a455e2a37bcafffd */ - 1.230021009336254911271, /* 0x1.3ae2a8287dfbefff6 */ - 1.232425741726685064472, /* 0x1.3b8040df76f39fffa */ - 1.234835175450728295084, /* 0x1.3c1e287682e48fff1 */ - 1.237249319699482263931, /* 0x1.3cbc5f151b86bfff8 */ - 1.239668183679933477545, /* 0x1.3d5ae4e2cc0a8000f */ - 1.242091776620540377629, /* 0x1.3df9ba07373bf0006 */ - 1.244520107762172811399, /* 0x1.3e98deaa0d8cafffe */ - 1.246953186383919165383, /* 0x1.3f3852f32973efff0 */ - 1.249391019292643401078, /* 0x1.3fd816ffc72b90001 */ - 1.251833623164381181797, /* 0x1.40782b17863250005 */ - 1.254280999953110153911, /* 0x1.41188f42caf400000 */ - 1.256733161434815393410, /* 0x1.41b943b42945bfffd */ - 1.259190116985283935980, /* 0x1.425a4893e5f10000a */ - 1.261651875958665236542, /* 0x1.42fb9e0a2df4c0009 */ - 1.264118447754797758244, /* 0x1.439d443f608c4fff9 */ - 1.266589841787181258708, /* 0x1.443f3b5bebf850008 */ - 1.269066067469190262045, /* 0x1.44e183883e561fff7 */ - 1.271547134259576328224, /* 0x1.45841cecf7a7a0001 */ - 1.274033051628237434048, /* 0x1.462707b2c43020009 */ - 1.276523829025464573684, /* 0x1.46ca44023aa410007 */ - 1.279019475999373156531, /* 0x1.476dd2045d46ffff0 */ - 1.281520002043128991825, /* 0x1.4811b1e1f1f19000b */ - 1.284025416692967214122, /* 0x1.48b5e3c3edd74fff4 */ - 1.286535729509738823464, /* 0x1.495a67d3613c8fff7 */ - 1.289050950070396384145, /* 0x1.49ff3e396e19d000b */ - 1.291571087985403654081, /* 0x1.4aa4671f5b401fff1 */ - 1.294096152842774794011, /* 0x1.4b49e2ae56d19000d */ - 1.296626154297237043484, /* 0x1.4befb10fd84a3fff4 */ - 1.299161101984141142272, /* 0x1.4c95d26d41d84fff8 */ - 1.301701005575179204100, /* 0x1.4d3c46f01d9f0fff3 */ - 1.304245874766450485904, /* 0x1.4de30ec21097d0003 */ - 1.306795719266019562007, /* 0x1.4e8a2a0ccce3d0002 */ - 1.309350548792467483458, /* 0x1.4f3198fa10346fff5 */ - 1.311910373099227200545, /* 0x1.4fd95bb3be8cffffd */ - 1.314475201942565174546, /* 0x1.50817263bf0e5fffb */ - 1.317045045107389400535, /* 0x1.5129dd3418575000e */ - 1.319619912422941299109, /* 0x1.51d29c4f01c54ffff */ - 1.322199813675649204855, /* 0x1.527bafde83a310009 */ - 1.324784758729532718739, /* 0x1.5325180cfb8b3fffd */ - 1.327374757430096474625, /* 0x1.53ced504b2bd0fff4 */ - 1.329969819671041886272, /* 0x1.5478e6f02775e0001 */ - 1.332569955346704748651, /* 0x1.55234df9d8a59fff8 */ - 1.335175174370685002822, /* 0x1.55ce0a4c5a6a9fff6 */ - 1.337785486688218616860, /* 0x1.56791c1263abefff7 */ - 1.340400902247843806217, /* 0x1.57248376aef21fffa */ - 1.343021431036279800211, /* 0x1.57d040a420c0bfff3 */ - 1.345647083048053138662, /* 0x1.587c53c5a630f0002 */ - 1.348277868295411074918, /* 0x1.5928bd063fd7bfff9 */ - 1.350913796821875845231, /* 0x1.59d57c9110ad60006 */ - 1.353554878672557082439, /* 0x1.5a8292913d68cfffc */ - 1.356201123929036356254, /* 0x1.5b2fff3212db00007 */ - 1.358852542671913132777, /* 0x1.5bddc29edcc06fff3 */ - 1.361509145047255398051, /* 0x1.5c8bdd032ed16000f */ - 1.364170941142184734180, /* 0x1.5d3a4e8a5bf61fff4 */ - 1.366837941171020309735, /* 0x1.5de9176042f1effff */ - 1.369510155261156381121, /* 0x1.5e9837b062f4e0005 */ - 1.372187593620959988833, /* 0x1.5f47afa69436cfff1 */ - 1.374870266463378287715, /* 0x1.5ff77f6eb3f8cfffd */ - 1.377558184010425845733, /* 0x1.60a7a734a9742fff9 */ - 1.380251356531521533853, /* 0x1.6158272490016000c */ - 1.382949794301995272203, /* 0x1.6208ff6a8978a000f */ - 1.385653507605306700170, /* 0x1.62ba3032c0a280004 */ - 1.388362506772382154503, /* 0x1.636bb9a994784000f */ - 1.391076802081129493127, /* 0x1.641d9bfb29a7bfff6 */ - 1.393796403973427855412, /* 0x1.64cfd7545928b0002 */ - 1.396521322756352656542, /* 0x1.65826be167badfff8 */ - 1.399251568859207761660, /* 0x1.663559cf20826000c */ - 1.401987152677323100733, /* 0x1.66e8a14a29486fffc */ - 1.404728084651919228815, /* 0x1.679c427f5a4b6000b */ - 1.407474375243217723560, /* 0x1.68503d9ba0add000f */ - 1.410226034922914983815, /* 0x1.690492cbf6303fff9 */ - 1.412983074197955213304, /* 0x1.69b9423d7b548fff6 */ -}; diff --git a/sysdeps/ieee754/dbl-64/t_exp2.h b/sysdeps/ieee754/dbl-64/t_exp2.h deleted file mode 100644 index 1fd73338cf..0000000000 --- a/sysdeps/ieee754/dbl-64/t_exp2.h +++ /dev/null @@ -1,585 +0,0 @@ -/* These values are accurate to 52+12 bits when represented as - a double. */ -static const double exp2_accuratetable[512] = { -0.707106781187802013759 /* 0x0.b504f333fb3f80007 */, -0.708064712808760599040 /* 0x0.b543baa0f71b38000 */, -0.709023942160304065938 /* 0x0.b58297d3a8d518002 */, -0.709984470998547667624 /* 0x0.b5c18ad39b4ba0001 */, -0.710946301084324217006 /* 0x0.b60093a85e8d30001 */, -0.711909434180505784637 /* 0x0.b63fb25984e628005 */, -0.712873872052760648733 /* 0x0.b67ee6eea3b5f8003 */, -0.713839616467838999908 /* 0x0.b6be316f518c98001 */, -0.714806669195984345523 /* 0x0.b6fd91e328d148007 */, -0.715775032009894562898 /* 0x0.b73d0851c69e20002 */, -0.716744706683768884058 /* 0x0.b77c94c2c9b3d0003 */, -0.717715694995770148178 /* 0x0.b7bc373dd52eb0003 */, -0.718687998724665488852 /* 0x0.b7fbefca8cd530004 */, -0.719661619652575468291 /* 0x0.b83bbe70981da8001 */, -0.720636559564428180758 /* 0x0.b87ba337a194b0006 */, -0.721612820246623098989 /* 0x0.b8bb9e27556508004 */, -0.722590403488338473025 /* 0x0.b8fbaf4762c798006 */, -0.723569311081411870036 /* 0x0.b93bd69f7be1d0000 */, -0.724549544820974333906 /* 0x0.b97c1437567828007 */, -0.725531106502312561633 /* 0x0.b9bc6816a87ae8002 */, -0.726513997924421062181 /* 0x0.b9fcd2452bee00000 */, -0.727498220889519875430 /* 0x0.ba3d52ca9e6148002 */, -0.728483777200401694265 /* 0x0.ba7de9aebe05c8003 */, -0.729470668664712662563 /* 0x0.babe96f94e62a8002 */, -0.730458897090379144517 /* 0x0.baff5ab2134df0004 */, -0.731448464287988597833 /* 0x0.bb4034e0d38ab0000 */, -0.732439372072965166897 /* 0x0.bb81258d5b2d60001 */, -0.733431622260458326859 /* 0x0.bbc22cbf75fd28001 */, -0.734425216668725511232 /* 0x0.bc034a7ef32c00001 */, -0.735420157118880535324 /* 0x0.bc447ed3a50fe0005 */, -0.736416445434497690674 /* 0x0.bc85c9c560b350001 */, -0.737414083433310718618 /* 0x0.bcc72b5bf4b4e0000 */, -0.738413072966152328496 /* 0x0.bd08a39f5417a8007 */, -0.739413415848264365956 /* 0x0.bd4a32974abcd0002 */, -0.740415113911250699637 /* 0x0.bd8bd84bb68300002 */, -0.741418168994518067562 /* 0x0.bdcd94c47ddd30003 */, -0.742422582936659858376 /* 0x0.be0f6809865968006 */, -0.743428357577745613238 /* 0x0.be515222b72530003 */, -0.744435494762383687126 /* 0x0.be935317fc6ba0002 */, -0.745443996335090397492 /* 0x0.bed56af1423de8001 */, -0.746453864145572798553 /* 0x0.bf1799b67a6248007 */, -0.747465100043933849969 /* 0x0.bf59df6f970e70002 */, -0.748477705883256683178 /* 0x0.bf9c3c248dbee8001 */, -0.749491683518965001732 /* 0x0.bfdeafdd568308000 */, -0.750507034813367890373 /* 0x0.c0213aa1f0fc38004 */, -0.751523761622240105153 /* 0x0.c063dc7a559ca0003 */, -0.752541865811731880422 /* 0x0.c0a6956e883ed8000 */, -0.753561349247157341600 /* 0x0.c0e965868bd220006 */, -0.754582213796583967110 /* 0x0.c12c4cca664cb8002 */, -0.755604461332336940791 /* 0x0.c16f4b42225350006 */, -0.756628093726406381068 /* 0x0.c1b260f5ca2c48002 */, -0.757653112855631305506 /* 0x0.c1f58ded6d72d8001 */, -0.758679520599333412360 /* 0x0.c238d2311e7d08001 */, -0.759707318837184453227 /* 0x0.c27c2dc8f00368005 */, -0.760736509456435783249 /* 0x0.c2bfa0bcfd1400000 */, -0.761767094336480043995 /* 0x0.c3032b155818d0000 */, -0.762799075372231349951 /* 0x0.c346ccda248cc0001 */, -0.763832454453522768941 /* 0x0.c38a8613805488005 */, -0.764867233473625618441 /* 0x0.c3ce56c98d1ca8005 */, -0.765903414329434539816 /* 0x0.c4123f04708d80002 */, -0.766940998920452976510 /* 0x0.c4563ecc532dc0001 */, -0.767979989148100838946 /* 0x0.c49a56295f9f88006 */, -0.769020386915772125040 /* 0x0.c4de8523c2b0a0001 */, -0.770062194131770905170 /* 0x0.c522cbc3ae94e0003 */, -0.771105412703856241146 /* 0x0.c5672a1154e6b8004 */, -0.772150044545352520777 /* 0x0.c5aba014ed5f18003 */, -0.773196091570364285606 /* 0x0.c5f02dd6b09288003 */, -0.774243555696622731700 /* 0x0.c634d35edb1260003 */, -0.775292438842697939641 /* 0x0.c67990b5aa5c18004 */, -0.776342742931542928455 /* 0x0.c6be65e360bed8000 */, -0.777394469888802008854 /* 0x0.c70352f0437f50004 */, -0.778447621641124243320 /* 0x0.c74857e498fd00006 */, -0.779502200118583399303 /* 0x0.c78d74c8ab5b60000 */, -0.780558207255445668515 /* 0x0.c7d2a9a4c959f8000 */, -0.781615644985491186966 /* 0x0.c817f681412f80002 */, -0.782674515247667956808 /* 0x0.c85d5b6666c150006 */, -0.783734819983036512536 /* 0x0.c8a2d85c904760003 */, -0.784796561133562109454 /* 0x0.c8e86d6c14f850002 */, -0.785859740645942328471 /* 0x0.c92e1a9d513ec8002 */, -0.786924360469767103536 /* 0x0.c973dff8a4b390007 */, -0.787990422552312885808 /* 0x0.c9b9bd866c6440007 */, -0.789057928854407064640 /* 0x0.c9ffb34f1444b0001 */, -0.790126881326406182996 /* 0x0.ca45c15afcc570001 */, -0.791197281930050233534 /* 0x0.ca8be7b292db38000 */, -0.792269132620954885659 /* 0x0.cad2265e3cbee8000 */, -0.793342435380726906957 /* 0x0.cb187d667d3d38006 */, -0.794417192158282659010 /* 0x0.cb5eecd3b33158006 */, -0.795493404931386649540 /* 0x0.cba574ae5d2e80001 */, -0.796571075671306805268 /* 0x0.cbec14fef2a348004 */, -0.797650206352955137846 /* 0x0.cc32cdcdef0000000 */, -0.798730798954342069432 /* 0x0.cc799f23d11d18000 */, -0.799812855456121796232 /* 0x0.ccc089091abb28004 */, -0.800896377841454287795 /* 0x0.cd078b86505c18003 */, -0.801981368096190028208 /* 0x0.cd4ea6a3f97720007 */, -0.803067828208752554378 /* 0x0.cd95da6aa057b8007 */, -0.804155760170129796375 /* 0x0.cddd26e2d21b28001 */, -0.805245165974338261710 /* 0x0.ce248c151f3330001 */, -0.806336047619038653883 /* 0x0.ce6c0a0a1c1350001 */, -0.807428407102107836855 /* 0x0.ceb3a0ca5d6be0006 */, -0.808522246427078927792 /* 0x0.cefb505e7e2550007 */, -0.809617567597010201484 /* 0x0.cf4318cf18a268002 */, -0.810714372621179513182 /* 0x0.cf8afa24ce1c98004 */, -0.811812663508675536069 /* 0x0.cfd2f4683f9810005 */, -0.812912442272482604912 /* 0x0.d01b07a2126188003 */, -0.814013710929394895825 /* 0x0.d06333daeff618001 */, -0.815116471495287542325 /* 0x0.d0ab791b80d028006 */, -0.816220725993571205593 /* 0x0.d0f3d76c75b330000 */, -0.817326476447408967199 /* 0x0.d13c4ed67f1cf8000 */, -0.818433724883006474832 /* 0x0.d184df6250e3b0001 */, -0.819542473330909460055 /* 0x0.d1cd8918a3a328004 */, -0.820652723822034690935 /* 0x0.d2164c02305fa0002 */, -0.821764478391968422618 /* 0x0.d25f2827b53fb0005 */, -0.822877739077315761840 /* 0x0.d2a81d91f188b8000 */, -0.823992507918612782109 /* 0x0.d2f12c49a8d290005 */, -0.825108786960634610365 /* 0x0.d33a5457a35e40003 */, -0.826226578247117093869 /* 0x0.d38395c4a84848007 */, -0.827345883828319528258 /* 0x0.d3ccf09985d958004 */, -0.828466705754248966560 /* 0x0.d41664df0a1320005 */, -0.829589046080638992111 /* 0x0.d45ff29e094330000 */, -0.830712906863802391671 /* 0x0.d4a999df585a20005 */, -0.831838290163696481037 /* 0x0.d4f35aabd04a60006 */, -0.832965198041969556729 /* 0x0.d53d350c4be258002 */, -0.834093632565442222342 /* 0x0.d5872909aba050007 */, -0.835223595802037643865 /* 0x0.d5d136acd138e8006 */, -0.836355089820669306292 /* 0x0.d61b5dfe9f7780004 */, -0.837488116698010487424 /* 0x0.d6659f0801afa8005 */, -0.838622678508982644113 /* 0x0.d6aff9d1e147d8004 */, -0.839758777333464490056 /* 0x0.d6fa6e652d19e0000 */, -0.840896415254110962690 /* 0x0.d744fccad70d00003 */, -0.842035594355151628676 /* 0x0.d78fa50bd2c3b0000 */, -0.843176316724478125433 /* 0x0.d7da673117e730007 */, -0.844318584453106590905 /* 0x0.d8254343a19038003 */, -0.845462399634695271912 /* 0x0.d870394c6dbf30003 */, -0.846607764365415071965 /* 0x0.d8bb49547d37c0004 */, -0.847754680744707056494 /* 0x0.d9067364d45608003 */, -0.848903150873708822763 /* 0x0.d951b7867953b0006 */, -0.850053176859071113491 /* 0x0.d99d15c2787a30006 */, -0.851204760807439786431 /* 0x0.d9e88e21de11a0003 */, -0.852357904828824897169 /* 0x0.da3420adba1508003 */, -0.853512611037803181642 /* 0x0.da7fcd6f2184d8005 */, -0.854668881550406100980 /* 0x0.dacb946f2afaf8000 */, -0.855826718478671755185 /* 0x0.db1775b6e8ad48000 */, -0.856986123964844970247 /* 0x0.db63714f8e0818006 */, -0.858147100114499461478 /* 0x0.dbaf87422625b8000 */, -0.859309649060962410524 /* 0x0.dbfbb797daa460002 */, -0.860473772936213743282 /* 0x0.dc480259d3a710001 */, -0.861639473872910177676 /* 0x0.dc9467913a0f48006 */, -0.862806754008130227807 /* 0x0.dce0e7473b9b28003 */, -0.863975615481124226159 /* 0x0.dd2d8185086c20006 */, -0.865146060433749419813 /* 0x0.dd7a3653d38168005 */, -0.866318091005120138881 /* 0x0.ddc705bcccd628000 */, -0.867491709362415264210 /* 0x0.de13efc9434100004 */, -0.868666917636779056818 /* 0x0.de60f4825df9b8005 */, -0.869843717989716047624 /* 0x0.deae13f16599c0003 */, -0.871022112578215268471 /* 0x0.defb4e1f9dc388002 */, -0.872202103559697183859 /* 0x0.df48a3164a92f0001 */, -0.873383693097737778847 /* 0x0.df9612deb6e878007 */, -0.874566883362160263365 /* 0x0.dfe39d82348310001 */, -0.875751676517234511901 /* 0x0.e031430a0f0688000 */, -0.876938074732511840819 /* 0x0.e07f037f97e548001 */, -0.878126080186539592654 /* 0x0.e0ccdeec2a75e0006 */, -0.879315695055312818168 /* 0x0.e11ad5591f4078001 */, -0.880506921518618312932 /* 0x0.e168e6cfd2f880004 */, -0.881699761760385225541 /* 0x0.e1b71359a6df60003 */, -0.882894217964411143207 /* 0x0.e2055afffc1178000 */, -0.884090292325693805080 /* 0x0.e253bdcc3ffbb8001 */, -0.885287987031581180559 /* 0x0.e2a23bc7d7a1d8002 */, -0.886487304278189114386 /* 0x0.e2f0d4fc31ab80004 */, -0.887688246263368285778 /* 0x0.e33f8972bea8a8005 */, -0.888890815189881999840 /* 0x0.e38e5934f49010007 */, -0.890095013257492739835 /* 0x0.e3dd444c460bd0007 */, -0.891300842677948068626 /* 0x0.e42c4ac232f380000 */, -0.892508305659222567226 /* 0x0.e47b6ca036f8b8005 */, -0.893717404414979710310 /* 0x0.e4caa9efd40e58002 */, -0.894928141160697743242 /* 0x0.e51a02ba8e2610007 */, -0.896140518115016826430 /* 0x0.e5697709ecab90000 */, -0.897354537501434679237 /* 0x0.e5b906e77c61d0006 */, -0.898570201543732793877 /* 0x0.e608b25cca5ba8005 */, -0.899787512470129891014 /* 0x0.e6587973688ce8002 */, -0.901006472512270728537 /* 0x0.e6a85c34ecadb8000 */, -0.902227083902570559127 /* 0x0.e6f85aaaed4f20006 */, -0.903449348881299796343 /* 0x0.e74874df09a530003 */, -0.904673269686823378091 /* 0x0.e798aadadecba0007 */, -0.905898848559668845585 /* 0x0.e7e8fca80c3ee0001 */, -0.907126087750156795426 /* 0x0.e8396a503c3fe0005 */, -0.908354989505901100354 /* 0x0.e889f3dd1615b0002 */, -0.909585556079328783087 /* 0x0.e8da9958465228007 */, -0.910817789726044213523 /* 0x0.e92b5acb7d0578001 */, -0.912051692703457872481 /* 0x0.e97c38406c3c30003 */, -0.913287267274154990210 /* 0x0.e9cd31c0cbb370001 */, -0.914524515702244578108 /* 0x0.ea1e475654d540000 */, -0.915763440256158633982 /* 0x0.ea6f790ac5cc78001 */, -0.917004043205012497909 /* 0x0.eac0c6e7dd8448007 */, -0.918246326823137892807 /* 0x0.eb1230f760a428007 */, -0.919490293387826285200 /* 0x0.eb63b7431714a8007 */, -0.920735945178816406225 /* 0x0.ebb559d4cb6f30007 */, -0.921983284479243714322 /* 0x0.ec0718b64c0940002 */, -0.923232313574974705626 /* 0x0.ec58f3f16a3910002 */, -0.924483034755387955725 /* 0x0.ecaaeb8ffb3168005 */, -0.925735450311948926408 /* 0x0.ecfcff9bd67078000 */, -0.926989562542820610982 /* 0x0.ed4f301edad1a0007 */, -0.928245373740515189457 /* 0x0.eda17d22e0f9b0001 */, -0.929502886213858126045 /* 0x0.edf3e6b1d37d40001 */, -0.930762102264245716494 /* 0x0.ee466cd594c5c8005 */, -0.932023024199046146183 /* 0x0.ee990f980dcdb0005 */, -0.933285654329454095216 /* 0x0.eeebcf032bc470007 */, -0.934549994971191289044 /* 0x0.ef3eab20e0d3c0001 */, -0.935816048439005676599 /* 0x0.ef91a3fb1e1340004 */, -0.937083817055075818404 /* 0x0.efe4b99bdcc618006 */, -0.938353303143720007819 /* 0x0.f037ec0d1889b8000 */, -0.939624509028518128972 /* 0x0.f08b3b58cc2bb8006 */, -0.940897437041863904384 /* 0x0.f0dea788fc2a90000 */, -0.942172089516254085427 /* 0x0.f13230a7ad21b8003 */, -0.943448468787511540534 /* 0x0.f185d6bee754e0006 */, -0.944726577195256100890 /* 0x0.f1d999d8b73478005 */, -0.946006417082291717338 /* 0x0.f22d79ff2cb130000 */, -0.947287990793413858827 /* 0x0.f281773c59ec48007 */, -0.948571300678290207925 /* 0x0.f2d5919a566268001 */, -0.949856349088629370320 /* 0x0.f329c9233bceb0001 */, -0.951143138379053731954 /* 0x0.f37e1de1272068002 */, -0.952431670908847949364 /* 0x0.f3d28fde3a6728006 */, -0.953721949039916472305 /* 0x0.f4271f249a93f0001 */, -0.955013975135367898520 /* 0x0.f47bcbbe6deab0001 */, -0.956307751564417496418 /* 0x0.f4d095b5e16638004 */, -0.957603280698967163097 /* 0x0.f5257d1524f590006 */, -0.958900564911197350604 /* 0x0.f57a81e668d628000 */, -0.960199606581278120057 /* 0x0.f5cfa433e60e50007 */, -0.961500408088936442422 /* 0x0.f624e407d527a0007 */, -0.962802971817578789903 /* 0x0.f67a416c72b760006 */, -0.964107300155846558292 /* 0x0.f6cfbc6c011458004 */, -0.965413395493874504368 /* 0x0.f7255510c439a8002 */, -0.966721260225105960572 /* 0x0.f77b0b6503c5b8006 */, -0.968030896745834645873 /* 0x0.f7d0df730a7940005 */, -0.969342307458006424716 /* 0x0.f826d145294be8003 */, -0.970655494764855020231 /* 0x0.f87ce0e5b29fd8000 */, -0.971970461071268720958 /* 0x0.f8d30e5efaa8f0004 */, -0.973287208789983648852 /* 0x0.f92959bb5e3c08001 */, -0.974605740331924708124 /* 0x0.f97fc305383028004 */, -0.975926058115625383329 /* 0x0.f9d64a46ebb9f8004 */, -0.977248164559556209435 /* 0x0.fa2cef8adbfc68004 */, -0.978572062087848637573 /* 0x0.fa83b2db7253d0007 */, -0.979897753126343307191 /* 0x0.fada944319fda0005 */, -0.981225240104636631254 /* 0x0.fb3193cc425870002 */, -0.982554525455618277276 /* 0x0.fb88b1815e61d0003 */, -0.983885611617111077747 /* 0x0.fbdfed6ce683e0007 */, -0.985218501026348891812 /* 0x0.fc3747995282f8006 */, -0.986553196127724962867 /* 0x0.fc8ec0112202a0005 */, -0.987889699367056062238 /* 0x0.fce656ded63710002 */, -0.989228013193998778636 /* 0x0.fd3e0c0cf48d50005 */, -0.990568140061241164686 /* 0x0.fd95dfa605c7b0003 */, -0.991910082424819927754 /* 0x0.fdedd1b4965710004 */, -0.993253842749249660216 /* 0x0.fe45e2433bfea0000 */, -0.994599423484053835071 /* 0x0.fe9e115c7c05f0005 */, -0.995946827107488830167 /* 0x0.fef65f0afb4c28006 */, -0.997296056085008264529 /* 0x0.ff4ecb59509cc8001 */, -0.998647112892057764479 /* 0x0.ffa756521dbfd0007 */, -1.000000000000000000000 /* 0x1.00000000000000000 */, -1.001354719891689004659 /* 0x1.0058c86da14aa0005 */, -1.002711275050312211844 /* 0x1.00b1afa5abead0003 */, -1.004069667960743483835 /* 0x1.010ab5b2cc0660009 */, -1.005429901112333324093 /* 0x1.0163da9fb2af30008 */, -1.006791976999887428009 /* 0x1.01bd1e7716f6a0008 */, -1.008155898118476168101 /* 0x1.02168143b03890006 */, -1.009521666967782227439 /* 0x1.027003103ae320002 */, -1.010889286051850133326 /* 0x1.02c9a3e7783030002 */, -1.012258757875921233497 /* 0x1.032363d42aaa8000e */, -1.013630084952214405194 /* 0x1.037d42e11c88d0000 */, -1.015003269791313389451 /* 0x1.03d741191635a0001 */, -1.016378314911229763267 /* 0x1.04315e86e84630008 */, -1.017755222831652872635 /* 0x1.048b9b35652800002 */, -1.019133996077934645224 /* 0x1.04e5f72f65827000b */, -1.020514637175266248212 /* 0x1.0540727fc1cfa0006 */, -1.021897148653734488385 /* 0x1.059b0d3157ebb0002 */, -1.023281533050062419584 /* 0x1.05f5c74f0cfeb0002 */, -1.024667792897328677539 /* 0x1.0650a0e3c22ee0003 */, -1.026055930738840826806 /* 0x1.06ab99fa63e1b0008 */, -1.027445949118511947550 /* 0x1.0706b29ddf2700009 */, -1.028837850584049418178 /* 0x1.0761ead9253ab0009 */, -1.030231637685799839262 /* 0x1.07bd42b72a3f80008 */, -1.031627312979383592802 /* 0x1.0818ba42e824a000c */, -1.033024879021186448496 /* 0x1.0874518759b0b0008 */, -1.034424338374263729911 /* 0x1.08d0088f80ffa0006 */, -1.035825693601787333992 /* 0x1.092bdf66604e30005 */, -1.037228947273990842283 /* 0x1.0987d617019cd000a */, -1.038634101961269928846 /* 0x1.09e3ecac6f199000f */, -1.040041160239590700707 /* 0x1.0a402331b91270002 */, -1.041450124688240164200 /* 0x1.0a9c79b1f37c3000b */, -1.042860997889083929381 /* 0x1.0af8f038352160000 */, -1.044273782427270314011 /* 0x1.0b5586cf986890006 */, -1.045688480893644856116 /* 0x1.0bb23d833dfbf0006 */, -1.047105095879385272564 /* 0x1.0c0f145e46e330007 */, -1.048523629981608529302 /* 0x1.0c6c0b6bdaadc000f */, -1.049944085800634585634 /* 0x1.0cc922b72470a000f */, -1.051366465939483019223 /* 0x1.0d265a4b5238b0007 */, -1.052790773004648849929 /* 0x1.0d83b23395e510002 */, -1.054217009607077093512 /* 0x1.0de12a7b263970006 */, -1.055645178360430591625 /* 0x1.0e3ec32d3cf680000 */, -1.057075281882416506511 /* 0x1.0e9c7c55184f5000e */, -1.058507322794714378170 /* 0x1.0efa55fdfad51000a */, -1.059941303721639416236 /* 0x1.0f58503329fed0003 */, -1.061377227289284297385 /* 0x1.0fb66affed37f0000 */, -1.062815096132297298980 /* 0x1.1014a66f95540000c */, -1.064254912884593951029 /* 0x1.1073028d725850007 */, -1.065696680185205469411 /* 0x1.10d17f64d9ea2000b */, -1.067140400676658718053 /* 0x1.11301d012586a0007 */, -1.068586077004890055886 /* 0x1.118edb6db26ab0003 */, -1.070033711820396415998 /* 0x1.11edbab5e2d6e000b */, -1.071483307775789262099 /* 0x1.124cbae51b5ef0001 */, -1.072934867526001312439 /* 0x1.12abdc06c3240000c */, -1.074388393734249103080 /* 0x1.130b1e264a62e0005 */, -1.075843889063253344684 /* 0x1.136a814f20ccd0003 */, -1.077301356179926061823 /* 0x1.13ca058cbaaed000b */, -1.078760797756675327056 /* 0x1.1429aaea9260e000e */, -1.080222216468626150775 /* 0x1.148971742537c0009 */, -1.081685614993597610617 /* 0x1.14e95934f37e8000b */, -1.083150996013011013776 /* 0x1.1549623881762000d */, -1.084618362213087383633 /* 0x1.15a98c8a58a6a000b */, -1.086087716284427351384 /* 0x1.1609d8360768c0008 */, -1.087559060917626885283 /* 0x1.166a45471c13f0008 */, -1.089032398810997337465 /* 0x1.16cad3c92d7b50009 */, -1.090507732647478578212 /* 0x1.172b83c7c18b5000f */, -1.091985065182095926460 /* 0x1.178c554ead72a000c */, -1.093464399073070136880 /* 0x1.17ed48695befe000c */, -1.094945737045367906172 /* 0x1.184e5d23812500007 */, -1.096429081816546080591 /* 0x1.18af9388c90e40005 */, -1.097914436104650892651 /* 0x1.1910eba4e031a0001 */, -1.099401802629782043408 /* 0x1.19726583755720003 */, -1.100891184121537858001 /* 0x1.19d4013041b860007 */, -1.102382583308144647940 /* 0x1.1a35beb6fd0cd0007 */, -1.103876002922312915544 /* 0x1.1a979e2363fa10000 */, -1.105371445702084232160 /* 0x1.1af99f8139025000e */, -1.106868914387219016199 /* 0x1.1b5bc2dc408b9000e */, -1.108368411723785085252 /* 0x1.1bbe084045eb30002 */, -1.109869940458469095340 /* 0x1.1c206fb91524c000e */, -1.111373503344554869449 /* 0x1.1c82f952817cc0001 */, -1.112879103137133007859 /* 0x1.1ce5a51860344000f */, -1.114386742595953938610 /* 0x1.1d4873168babf000e */, -1.115896424484008608911 /* 0x1.1dab6358e1d4a000f */, -1.117408151567338414664 /* 0x1.1e0e75eb43f9c000c */, -1.118921926613465345265 /* 0x1.1e71aad995078000f */, -1.120437752409564780022 /* 0x1.1ed5022fcd8600003 */, -1.121955631720569668277 /* 0x1.1f387bf9cd88b0000 */, -1.123475567332998359439 /* 0x1.1f9c18438cdec000a */, -1.124997562033035469759 /* 0x1.1fffd71902f970002 */, -1.126521618608448571713 /* 0x1.2063b88629079000e */, -1.128047739853580200284 /* 0x1.20c7bc96ff72a0002 */, -1.129575928566289189112 /* 0x1.212be3578a81e0006 */, -1.131106187546149888259 /* 0x1.21902cd3d05f70007 */, -1.132638519598779369743 /* 0x1.21f49917ddda5000c */, -1.134172927531616359481 /* 0x1.2259282fc1c24000e */, -1.135709414157753949251 /* 0x1.22bdda27911e90007 */, -1.137247982292643566662 /* 0x1.2322af0b638e60007 */, -1.138788634756517259562 /* 0x1.2387a6e755f270000 */, -1.140331374372893558110 /* 0x1.23ecc1c788c890006 */, -1.141876203969685699176 /* 0x1.2451ffb821639000c */, -1.143423126377846266197 /* 0x1.24b760c5486dc0009 */, -1.144972144431494420774 /* 0x1.251ce4fb2a0cc0005 */, -1.146523260971646252006 /* 0x1.25828c65f9fb8000d */, -1.148076478839068270690 /* 0x1.25e85711ebaeb0000 */, -1.149631800883562204903 /* 0x1.264e450b3c8a30008 */, -1.151189229953253789786 /* 0x1.26b4565e281a20003 */, -1.152748768902654319399 /* 0x1.271a8b16f0f000002 */, -1.154310420590433317050 /* 0x1.2780e341de2fc0001 */, -1.155874187878668246681 /* 0x1.27e75eeb3abc90007 */, -1.157440073633736243899 /* 0x1.284dfe1f5633e000a */, -1.159008080725518974322 /* 0x1.28b4c0ea840d90001 */, -1.160578212048386514965 /* 0x1.291ba75932ae60000 */, -1.162150470417516290340 /* 0x1.2982b177796850008 */, -1.163724858777502646494 /* 0x1.29e9df51fdd900001 */, -1.165301379991388053320 /* 0x1.2a5130f50bf34000e */, -1.166880036952526289469 /* 0x1.2ab8a66d10fdc0008 */, -1.168460832550151540268 /* 0x1.2b203fc675b7a000a */, -1.170043769683112966389 /* 0x1.2b87fd0dad7260008 */, -1.171628851252754177681 /* 0x1.2befde4f2e3da000d */, -1.173216080163546060084 /* 0x1.2c57e397719940002 */, -1.174805459325657830448 /* 0x1.2cc00cf2f7491000c */, -1.176396991650083379037 /* 0x1.2d285a6e3ff90000b */, -1.177990680055698513602 /* 0x1.2d90cc15d4ff90005 */, -1.179586527463262646306 /* 0x1.2df961f641c57000c */, -1.181184536796979545103 /* 0x1.2e621c1c157cd000d */, -1.182784710984701836994 /* 0x1.2ecafa93e35af0004 */, -1.184387052960675701386 /* 0x1.2f33fd6a459cb0000 */, -1.185991565661414393112 /* 0x1.2f9d24abd8fd1000e */, -1.187598252026902612178 /* 0x1.300670653e083000a */, -1.189207115003001469262 /* 0x1.306fe0a31bc040008 */, -1.190818157535919796833 /* 0x1.30d9757219895000e */, -1.192431382587621380206 /* 0x1.31432edef01a1000f */, -1.194046793097208292195 /* 0x1.31ad0cf63f0630008 */, -1.195664392040319823392 /* 0x1.32170fc4ce0db000c */, -1.197284182375793593084 /* 0x1.32813757527750005 */, -1.198906167074650808198 /* 0x1.32eb83ba8eef3000f */, -1.200530349107333139048 /* 0x1.3355f4fb457e5000d */, -1.202156731453099647353 /* 0x1.33c08b2641df9000c */, -1.203785317090505513368 /* 0x1.342b46484f07b0005 */, -1.205416109005122526928 /* 0x1.3496266e3fa270005 */, -1.207049110184904572310 /* 0x1.35012ba4e8fa10000 */, -1.208684323627194912036 /* 0x1.356c55f92aabb0004 */, -1.210321752322854882437 /* 0x1.35d7a577dd33f0004 */, -1.211961399276747286580 /* 0x1.36431a2de8748000d */, -1.213603267492579629347 /* 0x1.36aeb4283309e000c */, -1.215247359985374142610 /* 0x1.371a7373b00160000 */, -1.216893679753690671322 /* 0x1.3786581d404e90000 */, -1.218542229828181611183 /* 0x1.37f26231e82e4000c */, -1.220193013225231215567 /* 0x1.385e91be9c2d20002 */, -1.221846032973555429280 /* 0x1.38cae6d05e66f0000 */, -1.223501292099485437962 /* 0x1.393761742e5830001 */, -1.225158793636904830441 /* 0x1.39a401b713cb3000e */, -1.226818540625497444577 /* 0x1.3a10c7a61ceae0007 */, -1.228480536107136034131 /* 0x1.3a7db34e5a4a50003 */, -1.230144783126481566885 /* 0x1.3aeac4bcdf8d60001 */, -1.231811284734168454619 /* 0x1.3b57fbfec6e950008 */, -1.233480043984379381835 /* 0x1.3bc559212e7a2000f */, -1.235151063936380300149 /* 0x1.3c32dc3139f2a0004 */, -1.236824347652524913647 /* 0x1.3ca0853c106ac000e */, -1.238499898199571624970 /* 0x1.3d0e544eddd240003 */, -1.240177718649636107175 /* 0x1.3d7c4976d3fcd0000 */, -1.241857812073360767273 /* 0x1.3dea64c1231f70004 */, -1.243540181554270152039 /* 0x1.3e58a63b099920005 */, -1.245224830175077013244 /* 0x1.3ec70df1c4e46000e */, -1.246911761022835740725 /* 0x1.3f359bf29741c000e */, -1.248600977188942806639 /* 0x1.3fa4504ac7b800009 */, -1.250292481770148400634 /* 0x1.40132b07a330d000a */, -1.251986277866492969263 /* 0x1.40822c367a340000b */, -1.253682368581898742876 /* 0x1.40f153e4a18e0000d */, -1.255380757024939564249 /* 0x1.4160a21f73289000d */, -1.257081446308726757662 /* 0x1.41d016f44deaa000c */, -1.258784439550028944083 /* 0x1.423fb27094c090008 */, -1.260489739869405489991 /* 0x1.42af74a1aec1c0006 */, -1.262197350394008266193 /* 0x1.431f5d950a453000c */, -1.263907274252603851764 /* 0x1.438f6d58176860004 */, -1.265619514578811388761 /* 0x1.43ffa3f84b9eb000d */, -1.267334074511444086425 /* 0x1.44700183221180008 */, -1.269050957191869555296 /* 0x1.44e0860618b930006 */, -1.270770165768063009230 /* 0x1.4551318eb4d20000e */, -1.272491703389059036805 /* 0x1.45c2042a7cc26000b */, -1.274215573211836316547 /* 0x1.4632fde6ffacd000d */, -1.275941778396075143580 /* 0x1.46a41ed1cfac40001 */, -1.277670322103555911043 /* 0x1.471566f8812ac0000 */, -1.279401207505722393185 /* 0x1.4786d668b33260005 */, -1.281134437771823675369 /* 0x1.47f86d3002637000a */, -1.282870016078732078362 /* 0x1.486a2b5c13c00000e */, -1.284607945607987078432 /* 0x1.48dc10fa916bd0004 */, -1.286348229545787758022 /* 0x1.494e1e192aaa30007 */, -1.288090871080605159846 /* 0x1.49c052c5913df000c */, -1.289835873406902644341 /* 0x1.4a32af0d7d8090002 */, -1.291583239722392528754 /* 0x1.4aa532feab5e10002 */, -1.293332973229098792374 /* 0x1.4b17dea6db8010008 */, -1.295085077135345708087 /* 0x1.4b8ab213d57d9000d */, -1.296839554650994097442 /* 0x1.4bfdad53629e10003 */, -1.298596408992440220988 /* 0x1.4c70d0735358a000d */, -1.300355643380135983739 /* 0x1.4ce41b817c99e0001 */, -1.302117261036232376282 /* 0x1.4d578e8bb52cb0003 */, -1.303881265192249561154 /* 0x1.4dcb299fde2920008 */, -1.305647659079073541490 /* 0x1.4e3eeccbd7f4c0003 */, -1.307416445934474813521 /* 0x1.4eb2d81d8a86f000b */, -1.309187629001237640529 /* 0x1.4f26eba2e35a5000e */, -1.310961211525240921493 /* 0x1.4f9b2769d35090009 */, -1.312737196755087820678 /* 0x1.500f8b804e4a30000 */, -1.314515587949291131086 /* 0x1.508417f4530d00009 */, -1.316296388365203462468 /* 0x1.50f8ccd3df1840003 */, -1.318079601265708777911 /* 0x1.516daa2cf60020002 */, -1.319865229921343141607 /* 0x1.51e2b00da3c2b0007 */, -1.321653277603506371251 /* 0x1.5257de83f5512000d */, -1.323443747588034513690 /* 0x1.52cd359dfc7d5000e */, -1.325236643161341820781 /* 0x1.5342b569d6baa000f */, -1.327031967602244177939 /* 0x1.53b85df59921b0000 */, -1.328829724206201046165 /* 0x1.542e2f4f6b17e0006 */, -1.330629916266568235675 /* 0x1.54a4298571b27000e */, -1.332432547083447937938 /* 0x1.551a4ca5d97190009 */, -1.334237619959296017340 /* 0x1.559098bed16bf0008 */, -1.336045138203900251029 /* 0x1.56070dde90c800000 */, -1.337855105129210686631 /* 0x1.567dac13510cd0009 */, -1.339667524053662184301 /* 0x1.56f4736b52e2c000c */, -1.341482398296830025383 /* 0x1.576b63f4d8333000f */, -1.343299731186792467254 /* 0x1.57e27dbe2c40e0003 */, -1.345119526053918823702 /* 0x1.5859c0d59cd37000f */, -1.346941786233264881662 /* 0x1.58d12d497cd9a0005 */, -1.348766515064854010261 /* 0x1.5948c32824b87000c */, -1.350593715891792223641 /* 0x1.59c0827ff03890007 */, -1.352423392064920459908 /* 0x1.5a386b5f43a3e0006 */, -1.354255546937278120764 /* 0x1.5ab07dd485af1000c */, -1.356090183865519494030 /* 0x1.5b28b9ee21085000f */, -1.357927306213322804534 /* 0x1.5ba11fba8816e000b */, -1.359766917346459269620 /* 0x1.5c19af482f8f2000f */, -1.361609020638567812980 /* 0x1.5c9268a594cc00004 */, -1.363453619463660171403 /* 0x1.5d0b4be135916000c */, -1.365300717204201985683 /* 0x1.5d84590998eeb0005 */, -1.367150317245710233754 /* 0x1.5dfd902d494e40001 */, -1.369002422974674892971 /* 0x1.5e76f15ad22c40008 */, -1.370857037789471544224 /* 0x1.5ef07ca0cc166000b */, -1.372714165088220639199 /* 0x1.5f6a320dcf5280006 */, -1.374573808273481745378 /* 0x1.5fe411b0790800009 */, -1.376435970755022220096 /* 0x1.605e1b976e4b1000e */, -1.378300655944092456600 /* 0x1.60d84fd155d15000e */, -1.380167867259843417228 /* 0x1.6152ae6cdf0030003 */, -1.382037608124419003675 /* 0x1.61cd3778bc879000d */, -1.383909881963391264069 /* 0x1.6247eb03a4dc40009 */, -1.385784692209972801544 /* 0x1.62c2c91c56d9b0002 */, -1.387662042298923203992 /* 0x1.633dd1d1930ec0001 */, -1.389541935670444372533 /* 0x1.63b90532200630004 */, -1.391424375772021271329 /* 0x1.6434634ccc4cc0007 */, -1.393309366052102982208 /* 0x1.64afec30677e90008 */, -1.395196909966106124701 /* 0x1.652b9febc8e0f000d */, -1.397087010973788290271 /* 0x1.65a77e8dcc7f10004 */, -1.398979672539331309267 /* 0x1.66238825534170000 */, -1.400874898129892187656 /* 0x1.669fbcc1415600008 */, -1.402772691220124823310 /* 0x1.671c1c708328e000a */, -1.404673055288671035301 /* 0x1.6798a7420988b000d */, -1.406575993818903302975 /* 0x1.68155d44ca77a000f */, -1.408481510297352468121 /* 0x1.68923e87bf70e000a */, -1.410389608216942924956 /* 0x1.690f4b19e8f74000c */, -1.412300291075172076232 /* 0x1.698c830a4c94c0008 */ -}; -#define S (1.0/4503599627370496.0) /* 2^-52 */ -static const float exp2_deltatable[512] = { - 11527*S, -963*S, 884*S, -781*S, -2363*S, -3441*S, 123*S, 526*S, - -6*S, 1254*S, -1138*S, 1519*S, 1576*S, -65*S, 1040*S, 793*S, - -1662*S, -5063*S, -387*S, 968*S, -941*S, 984*S, -2856*S, -545*S, - 495*S, -5246*S, -2109*S, 1281*S, 2075*S, 909*S, -1642*S,-78233*S, --31653*S, -265*S, 130*S, 430*S, 2482*S, -742*S, 1616*S, -2213*S, - -519*S, 20*S, -3134*S,-13981*S, 1343*S, -1740*S, 247*S, 1679*S, - -1097*S, 3131*S, 871*S, -1480*S, 1936*S, -1827*S, 17325*S, 528*S, - -322*S, 1404*S, -152*S, -1845*S, -212*S, 2639*S, -476*S, 2960*S, - -962*S, -1012*S, -1231*S, 3030*S, 1659*S, -486*S, 2154*S, 1728*S, - -2793*S, 699*S, -1560*S, -2125*S, 2156*S, 142*S, -1888*S, 4426*S, --13443*S, 1970*S, -50*S, 1771*S,-43399*S, 4979*S, -2448*S, -370*S, - 1414*S, 1075*S, 232*S, 206*S, 873*S, 2141*S, 2970*S, 1279*S, - -2331*S, 336*S, -2595*S, 753*S, -3384*S, -616*S, 89*S, -818*S, - 5755*S, -241*S, -528*S, -661*S, -3777*S, -354*S, 250*S, 3881*S, - 2632*S, -2131*S, 2565*S, -316*S, 1746*S, -2541*S, -1324*S, -50*S, - 2564*S, -782*S, 1176*S, 6452*S, -1002*S, 1288*S, 336*S, -185*S, - 3063*S, 3784*S, 2169*S, 686*S, 328*S, -400*S, 312*S, -4517*S, - -1457*S, 1046*S, -1530*S, -685*S, 1328*S,-49815*S, -895*S, 1063*S, - -2091*S, -672*S, -1710*S, -665*S, 1545*S, 1819*S,-45265*S, 3548*S, - -554*S, -568*S, 4752*S, -1907*S,-13738*S, 675*S, 9611*S, -1115*S, - -815*S, 408*S, -1281*S, -937*S,-16376*S, -4772*S, -1440*S, 992*S, - 788*S, 10364*S, -1602*S, -661*S, -1783*S, -265*S, -20*S, -3781*S, - -861*S, -345*S, -994*S, 1364*S, -5339*S, 1620*S, 9390*S, -1066*S, - -305*S, -170*S, 175*S, 2461*S, -490*S, -769*S, -1450*S, 3315*S, - 2418*S, -45*S, -852*S, -1295*S, -488*S, -96*S, 1142*S, -2639*S, - 7905*S, -9306*S, -3859*S, 760*S, 1057*S, -1570*S, 3977*S, 209*S, - -514*S, 7151*S, 1646*S, 627*S, 599*S, -774*S, -1468*S, 633*S, - -473*S, 851*S, 2406*S, 143*S, 74*S, 4260*S, 1177*S, -913*S, - 2670*S, -3298*S, -1662*S, -120*S, -3264*S, -2148*S, 410*S, 2078*S, - -2098*S, -926*S, 3580*S, -1289*S, 2450*S, -1158*S, 907*S, -590*S, - 986*S, 1801*S, 1145*S, -1677*S, 3455*S, 956*S, 710*S, 144*S, - 153*S, -255*S, -1898*S, 28102*S, 2748*S, 1194*S, -3009*S, 7076*S, - 0*S, -2720*S, 711*S, 1225*S, -3034*S, -473*S, 378*S, -1046*S, - 962*S, -2006*S, 4647*S, 3206*S, 1769*S, -2665*S, 1254*S, 2025*S, - -2430*S, 6193*S, 1224*S, -856*S, -1592*S, -325*S, -1521*S, 1827*S, - -264*S, 2403*S, -1065*S, 967*S, -681*S, -2106*S, -474*S, 1333*S, - -893*S, 2296*S, 592*S, -1220*S, -326*S, 990*S, 139*S, 206*S, - -779*S, -1683*S, 1238*S, 6098*S, 136*S, 1197*S, 790*S, -107*S, - -1004*S, -2449*S, 939*S, 5568*S, 156*S, 1812*S, 2792*S, -1094*S, - -2677*S, -251*S, 2297*S, 943*S, -1329*S, 2883*S, -853*S, -2626*S, --105929*S, -6552*S, 1095*S, -1508*S, 1003*S, 5039*S, -2600*S, -749*S, - 1790*S, 890*S, 2016*S, -1073*S, 624*S, -2084*S, -1536*S, -1330*S, - 358*S, 2444*S, -179*S,-25759*S, -243*S, -552*S, -124*S, 3766*S, - 1192*S, -1614*S, 6*S, -1227*S, 345*S, -981*S, -295*S, -1006*S, - -995*S, -1195*S, 706*S, 2512*S, -1758*S, -734*S, -6286*S, -922*S, - 1530*S, 1542*S, 1223*S, 61*S, -83*S, 522*S,116937*S, -914*S, - -418*S, -7339*S, 249*S, -520*S, -762*S, 426*S, -505*S, 2664*S, - -1093*S, -1035*S, 2130*S, 4878*S, 1982*S, 1551*S, 2304*S, 193*S, - 1532*S, -7268*S, 24357*S, 531*S, 2676*S, -1170*S, 1465*S, -1917*S, - 2143*S, 1466*S, -7*S, -7300*S, 3297*S, -1197*S, -289*S, -1548*S, - 26226*S, 4401*S, 4123*S, -1588*S, 4243*S, 4069*S, -1276*S, -2010*S, - 1407*S, 1478*S, 488*S, -2366*S, -2909*S, -2534*S, -1285*S, 7095*S, - -645*S, -2089*S, -944*S, -40*S, -1363*S, -833*S, 917*S, 1609*S, - 1286*S, 1677*S, 1613*S, -2295*S, -1248*S, 40*S, 26*S, 2038*S, - 698*S, 2675*S, -1755*S, -3522*S, -1614*S, -6111*S, 270*S, 1822*S, - -234*S, -2844*S, -1201*S, -830*S, 1193*S, 2354*S, 47*S, 1522*S, - -78*S, -640*S, 2425*S, -1596*S, 1563*S, 1169*S, -1006*S, -83*S, - 2362*S, -3521*S, -314*S, 1814*S, -1751*S, 305*S, 1715*S, -3741*S, - 7847*S, 1291*S, 1206*S, 36*S, 1397*S, -1419*S, -1194*S, -2014*S, - 1742*S, -578*S, -207*S, 875*S, 1539*S, 2826*S, -1165*S, -909*S, - 1849*S, 927*S, 2018*S, -981*S, 1637*S, -463*S, 905*S, 6618*S, - 400*S, 630*S, 2614*S, 900*S, 2323*S, -1094*S, -1858*S, -212*S, - -2069*S, 747*S, 1845*S, -1450*S, 444*S, -213*S, -438*S, 1158*S, - 4738*S, 2497*S, -370*S, -2016*S, -518*S, -1160*S, -1510*S, 123*S -}; -/* Maximum magnitude in above table: 116937 */ -#undef S diff --git a/sysdeps/ieee754/dbl-64/uexp.h b/sysdeps/ieee754/dbl-64/uexp.h deleted file mode 100644 index 64ab2c8fca..0000000000 --- a/sysdeps/ieee754/dbl-64/uexp.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * IBM Accurate Mathematical Library - * Written by International Business Machines Corp. - * Copyright (C) 2001-2018 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -/******************************************************************/ -/* */ -/* MODULE_NAME:uexp.h */ -/* */ -/* common data and variables prototype and definition */ -/******************************************************************/ - -#ifndef UEXP_H -#define UEXP_H - -#include "mydefs.h" - -const static double zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300; -const static int4 bigint = 0x40862002, - badint = 0x40876000,smallint = 0x3C8fffff; -const static int4 hugeint = 0x7FFFFFFF, infint = 0x7ff00000; - -#ifdef BIG_ENDI -const static mynumber inf = {{0x7FF00000, 0}}; /* inf */ -const static mynumber t256 = {{0x4ff00000, 0}}; /* 2^256 */ - -const static mynumber ln_two1 = {{0x3FE62E42, 0xFEFA3800}};/*0.69314718055989033 */ -const static mynumber ln_two2 = {{0x3D2EF357, 0x93C76730}};/*5.4979230187083712e-14*/ -const static mynumber log2e = {{0x3FF71547, 0x652B82FE}};/* 1.4426950408889634 */ - -const static mynumber p2 = {{0x3FE00000, 0x000004DC}};/* 0.50000000000013811 */ -const static mynumber p3 = {{0x3FC55555, 0x55555A0F}};/* 0.16666666666670024 */ - -const static mynumber three33 = {{0x42180000, 0}}; /* 25769803776 */ -const static mynumber three51 = {{0x43380000, 0}}; /* 6755399441055744 */ - -#else -#ifdef LITTLE_ENDI - const static mynumber inf = {{0, 0x7FF00000}}; /* inf */ - const static mynumber t256 = {{0, 0x4ff00000}}; /* 2^256 */ - - const static mynumber ln_two1 = {{0xFEFA3800, 0x3FE62E42}};/*0.69314718055989033 */ - const static mynumber ln_two2 = {{0x93C76730, 0x3D2EF357}};/*5.4979230187083712e-14*/ - const static mynumber log2e = {{0x652B82FE, 0x3FF71547}};/* 1.4426950408889634 */ - - const static mynumber p2 = {{0x000004DC, 0x3FE00000}};/* 0.50000000000013811 */ - const static mynumber p3 = {{0x55555A0F, 0x3FC55555}};/* 0.16666666666670024 */ - - const static mynumber three33 = {{0, 0x42180000}}; /* 25769803776 */ - const static mynumber three51 = {{0, 0x43380000}}; /* 6755399441055744 */ - -#endif -#endif -#endif diff --git a/sysdeps/ieee754/dbl-64/uexp.tbl b/sysdeps/ieee754/dbl-64/uexp.tbl deleted file mode 100644 index b1eff5253e..0000000000 --- a/sysdeps/ieee754/dbl-64/uexp.tbl +++ /dev/null @@ -1,1786 +0,0 @@ -/* - * IBM Accurate Mathematical Library - * Written by International Business Machines Corp. - * Copyright (C) 2001-2018 Free Software Foundation, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -/****************************************************************/ -/* TABLES FOR THE ulog() FUNCTION */ -/****************************************************************/ - -#ifdef BIG_ENDI - -static const union { - int i[1424]; - double x[712]; -} coar = { .i = { - 0x3FE69A59, 0xC8000000, 0x3DF22D4D, 0x6079C9F7, - 0x3FE6A5A9, 0xC8000000, 0x3E19882D, 0x25AF6823, - 0x3FE6B0FF, 0x74000000, 0xBE221476, 0x31DABF59, - 0x3FE6BC5A, 0xC8000000, 0x3E2312AC, 0x99A2DC0A, - 0x3FE6C7BB, 0xD0000000, 0xBE265926, 0xCE9F9355, - 0x3FE6D322, 0x84000000, 0x3E2F2C26, 0x2D298DED, - 0x3FE6DE8E, 0xF4000000, 0xBE2EC28E, 0x1E748D2F, - 0x3FE6EA01, 0x14000000, 0x3E2D8C6D, 0xC68CB7E5, - 0x3FE6F578, 0xF4000000, 0x3DEE1A9E, 0x419FE2F0, - 0x3FE700F6, 0x90000000, 0xBDFF1AFD, 0xDEAEAE34, - 0x3FE70C79, 0xEC000000, 0xBE0730FE, 0x558B7122, - 0x3FE71803, 0x0C000000, 0xBE25CB85, 0x2D280C3B, - 0x3FE72391, 0xF0000000, 0xBE06F2CE, 0x337B7B54, - 0x3FE72F26, 0x9C000000, 0x3E289BCA, 0x45C02B72, - 0x3FE73AC1, 0x18000000, 0xBE18DEA6, 0x5039F1CA, - 0x3FE74661, 0x60000000, 0xBE09D090, 0x86CE0538, - 0x3FE75207, 0x78000000, 0x3E290E79, 0xCFCE5DDB, - 0x3FE75DB3, 0x68000000, 0x3DD61DF0, 0xB249A17C, - 0x3FE76965, 0x2C000000, 0x3E2F22F7, 0xE13445F7, - 0x3FE7751C, 0xD0000000, 0xBE2CD454, 0x874E75CE, - 0x3FE780DA, 0x4C000000, 0xBE0159CE, 0xDF43E3BC, - 0x3FE78C9D, 0xA8000000, 0x3E279291, 0x699A1332, - 0x3FE79866, 0xEC000000, 0xBE2A0BCD, 0x2DD98C6C, - 0x3FE7A436, 0x10000000, 0x3E25F375, 0x15AC979E, - 0x3FE7B00B, 0x20000000, 0x3E26CCF5, 0x2FEAFCF6, - 0x3FE7BBE6, 0x1C000000, 0x3E27D4F4, 0x53ADAD67, - 0x3FE7C7C7, 0x08000000, 0x3E10EEC7, 0x7FBD9566, - 0x3FE7D3AD, 0xE4000000, 0x3E2837F0, 0x9A831D86, - 0x3FE7DF9A, 0xB8000000, 0xBE129BE0, 0x5CB4C35B, - 0x3FE7EB8D, 0x80000000, 0x3E23990A, 0x0234F04D, - 0x3FE7F786, 0x44000000, 0x3E2EB807, 0x64D5C842, - 0x3FE80385, 0x08000000, 0x3E0FC86F, 0x02B4E9E8, - 0x3FE80F89, 0xCC000000, 0xBDD7B5B3, 0x7B4274BF, - 0x3FE81B94, 0x94000000, 0xBE16888B, 0xB899B00F, - 0x3FE827A5, 0x60000000, 0x3E288971, 0x5E94D155, - 0x3FE833BC, 0x38000000, 0x3E2AEEB2, 0x099F3E5E, - 0x3FE83FD9, 0x20000000, 0xBE23B922, 0x3FF60B7C, - 0x3FE84BFC, 0x14000000, 0xBDF7D3B1, 0x2DBD8012, - 0x3FE85825, 0x1C000000, 0xBDF24BA3, 0xA8872BEB, - 0x3FE86454, 0x38000000, 0x3E2EFE04, 0x01AA18A7, - 0x3FE87089, 0x70000000, 0x3E21986C, 0x944496A2, - 0x3FE87CC4, 0xC4000000, 0x3E096A8B, 0xB71FFAFF, - 0x3FE88906, 0x38000000, 0xBE21CE0A, 0xBC4C7AC5, - 0x3FE8954D, 0xCC000000, 0xBE076F45, 0xBAC02491, - 0x3FE8A19B, 0x84000000, 0x3E2B4FA2, 0xD922B925, - 0x3FE8ADEF, 0x68000000, 0x3DF759DB, 0x641863AF, - 0x3FE8BA49, 0x78000000, 0xBE2DB97C, 0xC6AB5E04, - 0x3FE8C6A9, 0xB4000000, 0xBE25364C, 0xE2156713, - 0x3FE8D310, 0x20000000, 0x3E1BEB7C, 0x862BEFF7, - 0x3FE8DF7C, 0xC4000000, 0xBDF4DD0C, 0x1CEA33A5, - 0x3FE8EBEF, 0xA0000000, 0xBE2537DF, 0x51797D47, - 0x3FE8F868, 0xB4000000, 0x3E0FB1C4, 0xF0107B28, - 0x3FE904E8, 0x08000000, 0x3E0AD6A1, 0xE01B68BD, - 0x3FE9116D, 0x9C000000, 0x3E292117, 0x1F78D9D9, - 0x3FE91DF9, 0x78000000, 0xBE1D75DA, 0x4F50E5CF, - 0x3FE92A8B, 0x98000000, 0x3DE5102B, 0x74959E58, - 0x3FE93724, 0x04000000, 0xBE01CA50, 0xD2216C35, - 0x3FE943C2, 0xBC000000, 0x3E225BFD, 0xB0B05884, - 0x3FE95067, 0xC8000000, 0xBE0F2183, 0x60B7C5C1, - 0x3FE95D13, 0x24000000, 0x3E2FB47A, 0xB5860441, - 0x3FE969C4, 0xDC000000, 0xBE01FFD2, 0xE2D4059E, - 0x3FE9767C, 0xEC000000, 0xBDE9ED72, 0x12BB6A8D, - 0x3FE9833B, 0x58000000, 0x3E2B3815, 0x43BFFB24, - 0x3FE99000, 0x28000000, 0x3E03FA22, 0xEE9EAD1E, - 0x3FE99CCB, 0x5C000000, 0xBE213841, 0x377138F7, - 0x3FE9A99C, 0xF4000000, 0x3E178105, 0xDB636C94, - 0x3FE9B674, 0xF8000000, 0x3E1E5E7A, 0xF5720122, - 0x3FE9C353, 0x6C000000, 0xBE238BFF, 0xA2AC5AAE, - 0x3FE9D038, 0x4C000000, 0x3E270893, 0xF93BDBD8, - 0x3FE9DD23, 0xA4000000, 0x3DF40420, 0x354B86CF, - 0x3FE9EA15, 0x74000000, 0xBE2D76D3, 0x88CB06B7, - 0x3FE9F70D, 0xBC000000, 0xBE251639, 0x9ED0EC60, - 0x3FEA040C, 0x80000000, 0x3E1F06E9, 0xE2DDE506, - 0x3FEA1111, 0xC8000000, 0x3E014549, 0x8E6DB477, - 0x3FEA1E1D, 0x94000000, 0xBDF4BC17, 0xF8716509, - 0x3FEA2B2F, 0xE8000000, 0xBE2107DB, 0xDA723A49, - 0x3FEA3848, 0xC4000000, 0x3E1A932A, 0x986AA369, - 0x3FEA4568, 0x30000000, 0x3E198092, 0x41592CDB, - 0x3FEA528E, 0x30000000, 0xBE2E260F, 0x676BCAB8, - 0x3FEA5FBA, 0xC0000000, 0x3DE2E821, 0x2D5D5610, - 0x3FEA6CED, 0xE8000000, 0x3E2F7046, 0x7DA20167, - 0x3FEA7A27, 0xB0000000, 0xBE1D2832, 0xF9FAAD30, - 0x3FEA8768, 0x14000000, 0xBE23F788, 0x43FA6C45, - 0x3FEA94AF, 0x18000000, 0x3E011E27, 0xAA082732, - 0x3FEAA1FC, 0xC4000000, 0xBE20BACB, 0xC682F0BF, - 0x3FEAAF51, 0x18000000, 0xBE2DC7DD, 0x7BD08C78, - 0x3FEABCAC, 0x14000000, 0x3E2271A2, 0xA3B10F9A, - 0x3FEACA0D, 0xC4000000, 0xBE15449C, 0x7966F94C, - 0x3FEAD776, 0x24000000, 0x3DD06137, 0x6FD8F3EE, - 0x3FEAE4E5, 0x3C000000, 0xBE267CD1, 0x8C5A144A, - 0x3FEAF25B, 0x0C000000, 0xBE29E584, 0xB59DA94B, - 0x3FEAFFD7, 0x98000000, 0xBE23DFCF, 0x7B52192F, - 0x3FEB0D5A, 0xE4000000, 0xBE1CF2FE, 0x78A76B45, - 0x3FEB1AE4, 0xF4000000, 0xBE23A561, 0x7EC80FF6, - 0x3FEB2875, 0xC8000000, 0x3E22C4C9, 0x932EED68, - 0x3FEB360D, 0x68000000, 0x3E2B085C, 0xB5833C97, - 0x3FEB43AB, 0xD8000000, 0xBE01F093, 0x93B9319A, - 0x3FEB5151, 0x18000000, 0xBE254F01, 0xFABCE670, - 0x3FEB5EFD, 0x28000000, 0x3E2F24C2, 0x627ABFB0, - 0x3FEB6CB0, 0x14000000, 0x3E1F1EEC, 0xE6AC0B48, - 0x3FEB7A69, 0xDC000000, 0xBE1A8671, 0x127F9ABC, - 0x3FEB882A, 0x80000000, 0xBDCB0C28, 0xC87C73B3, - 0x3FEB95F2, 0x08000000, 0xBE22E8DD, 0x7F2B5A97, - 0x3FEBA3C0, 0x74000000, 0xBE1B3645, 0x2D22A9D5, - 0x3FEBB195, 0xC8000000, 0x3E0ADACA, 0x428F8B88, - 0x3FEBBF72, 0x0C000000, 0xBE2E9E07, 0xCDF9F681, - 0x3FEBCD55, 0x3C000000, 0xBE08A127, 0x7FA54ACF, - 0x3FEBDB3F, 0x60000000, 0x3E0E92CE, 0x8225B385, - 0x3FEBE930, 0x7C000000, 0x3DF38C2A, 0x7BB09485, - 0x3FEBF728, 0x94000000, 0xBE2DFD64, 0xF681FA5F, - 0x3FEC0527, 0xA4000000, 0x3E2E384D, 0xDCE88BD2, - 0x3FEC132D, 0xBC000000, 0xBE20F111, 0xFE46A893, - 0x3FEC213A, 0xD4000000, 0x3E193DA1, 0xB189BFDA, - 0x3FEC2F4E, 0xF8000000, 0xBE20E3A1, 0x0E39FB00, - 0x3FEC3D6A, 0x24000000, 0x3E1DB044, 0x30F0FAC5, - 0x3FEC4B8C, 0x64000000, 0xBE2BC12C, 0x97446B17, - 0x3FEC59B5, 0xB4000000, 0xBE282696, 0x963F4150, - 0x3FEC67E6, 0x18000000, 0x3E224D26, 0x3049824B, - 0x3FEC761D, 0x98000000, 0x3E2C5BA5, 0x87F84C7D, - 0x3FEC845C, 0x38000000, 0xBDE1D14D, 0xC4852339, - 0x3FEC92A1, 0xF8000000, 0xBE1A451E, 0x5588D9E1, - 0x3FECA0EE, 0xDC000000, 0xBE1D3B96, 0x68BFF457, - 0x3FECAF42, 0xE8000000, 0xBE18B670, 0x4DADF774, - 0x3FECBD9E, 0x20000000, 0xBE1A1548, 0x7FB1FC01, - 0x3FECCC00, 0x88000000, 0xBE273F2E, 0x78FC5AF0, - 0x3FECDA6A, 0x20000000, 0x3E1D218F, 0xA6F4A841, - 0x3FECE8DA, 0xF0000000, 0x3E2E0BA9, 0x4D002CA0, - 0x3FECF752, 0xFC000000, 0x3E20F4BB, 0x065EF979, - 0x3FED05D2, 0x48000000, 0xBE2ED3D5, 0x11793B33, - 0x3FED1458, 0xD0000000, 0x3E115E3C, 0x913341B3, - 0x3FED22E6, 0xA0000000, 0x3DE97C02, 0xB3546109, - 0x3FED317B, 0xB8000000, 0x3E087540, 0x1BF898EF, - 0x3FED4018, 0x1C000000, 0x3E209430, 0x346F9641, - 0x3FED4EBB, 0xD0000000, 0x3E2B6DF4, 0x88F4B20B, - 0x3FED5D66, 0xDC000000, 0xBE2EC68F, 0x0CB26035, - 0x3FED6C19, 0x38000000, 0x3E2CA2C8, 0x1F44D9C3, - 0x3FED7AD2, 0xF4000000, 0x3E10E6F4, 0x41704EE0, - 0x3FED8994, 0x0C000000, 0x3E2F9273, 0x25F8F0E2, - 0x3FED985C, 0x88000000, 0x3E2D041A, 0x318798DE, - 0x3FEDA72C, 0x6C000000, 0xBE005680, 0x9349CF58, - 0x3FEDB603, 0xB8000000, 0xBE10F665, 0xCF0C934D, - 0x3FEDC4E2, 0x70000000, 0x3E166124, 0x19461C64, - 0x3FEDD3C8, 0x9C000000, 0xBE1B2ED6, 0x405624C8, - 0x3FEDE2B6, 0x3C000000, 0xBE273A7F, 0x62171501, - 0x3FEDF1AB, 0x54000000, 0xBE26022B, 0xE36E1450, - 0x3FEE00A7, 0xE8000000, 0xBE1C341E, 0x2E07AE15, - 0x3FEE0FAB, 0xFC000000, 0xBDFC7EAE, 0x18D0E701, - 0x3FEE1EB7, 0x94000000, 0x3E06B34F, 0xECD1FF8B, - 0x3FEE2DCA, 0xB4000000, 0x3E1394A3, 0x6813A649, - 0x3FEE3CE5, 0x60000000, 0x3E045496, 0xC1754D14, - 0x3FEE4C07, 0x9C000000, 0xBE180FFF, 0xF5C6087C, - 0x3FEE5B31, 0x68000000, 0x3E22FBCD, 0xADD9A300, - 0x3FEE6A62, 0xCC000000, 0x3E2EC7C7, 0xAF0289E5, - 0x3FEE799B, 0xCC000000, 0x3E242182, 0x3FB3EDD4, - 0x3FEE88DC, 0x6C000000, 0xBE201304, 0x04E39885, - 0x3FEE9824, 0xAC000000, 0xBE20D352, 0xE6831D31, - 0x3FEEA774, 0x90000000, 0x3E1E032D, 0x618DFCEB, - 0x3FEEB6CC, 0x20000000, 0x3E1956A3, 0xF9BB457E, - 0x3FEEC62B, 0x60000000, 0xBE2A77E0, 0x50845DB2, - 0x3FEED592, 0x4C000000, 0x3E2714F7, 0x47C43858, - 0x3FEEE500, 0xF0000000, 0x3E2EED96, 0x71813A66, - 0x3FEEF477, 0x50000000, 0xBE04CDBE, 0x4FB4AA34, - 0x3FEF03F5, 0x6C000000, 0xBE2774A2, 0x86EB4FF5, - 0x3FEF137B, 0x48000000, 0xBE29DD95, 0xAD43B2D2, - 0x3FEF2308, 0xE8000000, 0xBE1CADB0, 0xAC16E506, - 0x3FEF329E, 0x50000000, 0x3E12AC33, 0x58745C7B, - 0x3FEF423B, 0x88000000, 0xBE248118, 0x6EC2D854, - 0x3FEF51E0, 0x8C000000, 0x3E26986B, 0x304ACE08, - 0x3FEF618D, 0x68000000, 0x3E126D81, 0x3B09354E, - 0x3FEF7142, 0x1C000000, 0x3DF06AAE, 0x773C23B3, - 0x3FEF80FE, 0xAC000000, 0xBDA105B6, 0xD82EF423, - 0x3FEF90C3, 0x1C000000, 0x3DECDEED, 0x465499B8, - 0x3FEFA08F, 0x70000000, 0x3E0AEFD4, 0xE2EF03AE, - 0x3FEFB063, 0xAC000000, 0x3E1BD4C0, 0x0567B2E7, - 0x3FEFC03F, 0xD4000000, 0x3E26AA22, 0x4F97FCBF, - 0x3FEFD023, 0xF0000000, 0xBE2F9420, 0x5E4E88D1, - 0x3FEFE00F, 0xFC000000, 0xBE254004, 0x438E52E2, - 0x3FEFF004, 0x00000000, 0xBE1552AA, 0xEEE93EFC, - 0x3FF00000, 0x00000000, 0x00000000, 0x00000000, - 0x3FF00802, 0x00000000, 0x3E155800, 0x4449F507, - 0x3FF01008, 0x04000000, 0xBE354AA8, 0x882D75D6, - 0x3FF01812, 0x08000000, 0x3E303610, 0x3740DE56, - 0x3FF02020, 0x14000000, 0x3E360044, 0x5B0C3264, - 0x3FF02832, 0x28000000, 0x3E3C4C26, 0x0197EDC3, - 0x3FF03048, 0x48000000, 0x3E0B103B, 0x5046CA09, - 0x3FF03862, 0x74000000, 0xBE34659C, 0xF9A62624, - 0x3FF04080, 0xAC000000, 0xBE254438, 0xDD0A8F37, - 0x3FF048A2, 0xF4000000, 0x3DF256C2, 0x97AFB6E2, - 0x3FF050C9, 0x50000000, 0xBE3085DF, 0x923D25E1, - 0x3FF058F3, 0xC0000000, 0xBE3F0A93, 0x5EA3B091, - 0x3FF06122, 0x44000000, 0xBE237DE4, 0x5D63534C, - 0x3FF06954, 0xE0000000, 0x3E301719, 0xFF0C58B7, - 0x3FF0718B, 0x98000000, 0x3E2E8410, 0x9DF7B665, - 0x3FF079C6, 0x6C000000, 0x3E349CB9, 0x3B127222, - 0x3FF08205, 0x60000000, 0x3DF127EC, 0x98E0BD08, - 0x3FF08A48, 0x74000000, 0xBE24C1B6, 0x706CC41F, - 0x3FF0928F, 0xA8000000, 0x3E334EF9, 0x093044EF, - 0x3FF09ADB, 0x04000000, 0xBE1304B1, 0x56BC6C83, - 0x3FF0A32A, 0x84000000, 0x3E2D383E, 0xB028B984, - 0x3FF0AB7E, 0x30000000, 0xBE315B1E, 0x64E7A202, - 0x3FF0B3D6, 0x04000000, 0xBE0AC1E6, 0xC678291E, - 0x3FF0BC32, 0x04000000, 0x3E3A0418, 0x2F12FFE2, - 0x3FF0C492, 0x38000000, 0xBE37D617, 0x43D6D302, - 0x3FF0CCF6, 0x98000000, 0x3E2133F2, 0x152CC8FA, - 0x3FF0D55F, 0x2C000000, 0x3E3CE5D1, 0xE966E6B7, - 0x3FF0DDCB, 0xF8000000, 0x3E1ABF24, 0x7BCACA64, - 0x3FF0E63C, 0xFC000000, 0xBE3854F6, 0x2E8CDBED, - 0x3FF0EEB2, 0x38000000, 0xBE3E6463, 0x0C32156B, - 0x3FF0F72B, 0xAC000000, 0x3E365671, 0xB69772CC, - 0x3FF0FFA9, 0x64000000, 0xBE383E9A, 0x02B1201A, - 0x3FF1082B, 0x58000000, 0xBE205962, 0x50549CC0, - 0x3FF110B1, 0x90000000, 0xBE376BFE, 0xFFDACA72, - 0x3FF1193C, 0x08000000, 0x3E3C1C59, 0x5C43E2F3, - 0x3FF121CA, 0xCC000000, 0xBE26D374, 0xF7067C8B, - 0x3FF12A5D, 0xD4000000, 0x3E343CCC, 0x4DDAFE1D, - 0x3FF132F5, 0x28000000, 0x3E3D5C16, 0x58EBCB7F, - 0x3FF13B90, 0xCC000000, 0xBE2B5D12, 0xB66E8B53, - 0x3FF14430, 0xBC000000, 0xBE24E919, 0xB326B482, - 0x3FF14CD4, 0xFC000000, 0x3E23139A, 0xC8AABD43, - 0x3FF1557D, 0x90000000, 0x3E30DD8B, 0x16743B55, - 0x3FF15E2A, 0x7C000000, 0xBE31D701, 0x35904C50, - 0x3FF166DB, 0xBC000000, 0x3E107F42, 0x30E0CA83, - 0x3FF16F91, 0x58000000, 0xBE24F1F2, 0xDA1B7123, - 0x3FF1784B, 0x50000000, 0xBE3ACAF2, 0x0DC79E23, - 0x3FF18109, 0xA4000000, 0xBE23DC79, 0x609374EE, - 0x3FF189CC, 0x58000000, 0x3E262CF7, 0x3A40C3B7, - 0x3FF19293, 0x70000000, 0x3E1D3833, 0x5A24F463, - 0x3FF19B5E, 0xEC000000, 0x3E2BA9AD, 0x8A2E4440, - 0x3FF1A42E, 0xD0000000, 0x3DFD8CBC, 0x61C41828, - 0x3FF1AD03, 0x1C000000, 0x3E1A65E6, 0x5A4DDF0D, - 0x3FF1B5DB, 0xD4000000, 0xBDE2FDBB, 0x9F828DB5, - 0x3FF1BEB8, 0xF8000000, 0x3E2F4EE8, 0xB79B700F, - 0x3FF1C79A, 0x8C000000, 0x3E3ACC35, 0x0DE1D7E8, - 0x3FF1D080, 0x94000000, 0x3E11729E, 0xFF9E20A0, - 0x3FF1D96B, 0x10000000, 0xBE300F18, 0x6C2EA70B, - 0x3FF1E25A, 0x00000000, 0x3DF32E02, 0xCE425A35, - 0x3FF1EB4D, 0x68000000, 0x3E3BDE56, 0x9A322D12, - 0x3FF1F445, 0x50000000, 0xBE3C3F0D, 0xBA737AEF, - 0x3FF1FD41, 0xB0000000, 0xBE0A2DD0, 0xC896DB7A, - 0x3FF20642, 0x90000000, 0x3E2577B0, 0xF8B782F6, - 0x3FF20F47, 0xF4000000, 0xBE2C6DA3, 0x73607FC8, - 0x3FF21851, 0xD8000000, 0x3E35F7D1, 0xC8917348, - 0x3FF22160, 0x44000000, 0x3E3B6F5C, 0xCF9CED69, - 0x3FF22A73, 0x3C000000, 0xBE39967E, 0x85775C2E, - 0x3FF2338A, 0xB8000000, 0x3E3B3213, 0x497226D4, - 0x3FF23CA6, 0xC4000000, 0x3E3E2710, 0x30733227, - 0x3FF245C7, 0x60000000, 0x3E33B8A9, 0xAF215A72, - 0x3FF24EEC, 0x90000000, 0xBE3F96B2, 0x1365623F, - 0x3FF25816, 0x50000000, 0xBE37324F, 0x27DEE202, - 0x3FF26144, 0xA4000000, 0x3E318CD5, 0x4E484D87, - 0x3FF26A77, 0x94000000, 0xBDE3FD37, 0xA94519E8, - 0x3FF273AF, 0x1C000000, 0x3E37132F, 0xEE788C29, - 0x3FF27CEB, 0x44000000, 0xBE03DDB7, 0xE842E5C0, - 0x3FF2862C, 0x08000000, 0x3E37A3FB, 0xE17C9693, - 0x3FF28F71, 0x70000000, 0x3E24EABF, 0xAEB3D9A0, - 0x3FF298BB, 0x7C000000, 0xBE13C7B6, 0x853B0733, - 0x3FF2A20A, 0x2C000000, 0x3E2D2C80, 0xC7B588B5, - 0x3FF2AB5D, 0x88000000, 0xBE35B750, 0x708F3912, - 0x3FF2B4B5, 0x8C000000, 0xBE291A70, 0xD5FD9130, - 0x3FF2BE12, 0x3C000000, 0x3E2EE937, 0x0CCF9F73, - 0x3FF2C773, 0xA0000000, 0xBE3C3F0C, 0xD42CF76C, - 0x3FF2D0D9, 0xB0000000, 0x3E35DD54, 0x60763D61, - 0x3FF2DA44, 0x78000000, 0x3E26C418, 0xE7D6AA3B, - 0x3FF2E3B3, 0xF8000000, 0xBE3605C6, 0x6FB9B7A8, - 0x3FF2ED28, 0x2C000000, 0x3E3763D4, 0x24DCDDF5, - 0x3FF2F6A1, 0x20000000, 0xBE1A411E, 0xA8EC1AA8, - 0x3FF3001E, 0xD0000000, 0xBE23FCA1, 0x1FE8546F, - 0x3FF309A1, 0x40000000, 0xBE29DF0D, 0x3AAEE75E, - 0x3FF31328, 0x70000000, 0x3E36A5D6, 0x3C2C4206, - 0x3FF31CB4, 0x68000000, 0x3E1B7A3E, 0xB4C979B0, - 0x3FF32645, 0x28000000, 0xBE36157D, 0x706CD593, - 0x3FF32FDA, 0xB0000000, 0xBE39F357, 0x8DA4C646, - 0x3FF33975, 0x04000000, 0xBE3E64DE, 0xD575FE6F, - 0x3FF34314, 0x24000000, 0x3E07F9E3, 0x44D008E0, - 0x3FF34CB8, 0x18000000, 0xBE2E94F9, 0x5A563E77, - 0x3FF35660, 0xDC000000, 0x3E314DC2, 0x2475EF19, - 0x3FF3600E, 0x78000000, 0x3E26D623, 0xA33AC606, - 0x3FF369C0, 0xEC000000, 0x3E170F86, 0xC05B3160, - 0x3FF37378, 0x3C000000, 0xBE38DDFE, 0xDB0AE31A, - 0x3FF37D34, 0x64000000, 0x3E3662A9, 0x5706B570, - 0x3FF386F5, 0x70000000, 0xBE1625E4, 0x6770731E, - 0x3FF390BB, 0x5C000000, 0xBE1678F1, 0x62971091, - 0x3FF39A86, 0x2C000000, 0xBE061F7C, 0xD045CB0C, - 0x3FF3A455, 0xE4000000, 0xBE35CF51, 0x568B1CA2, - 0x3FF3AE2A, 0x84000000, 0xBE378185, 0x7FB61F58, - 0x3FF3B804, 0x0C000000, 0x3E3F77F4, 0x4FA133AF, - 0x3FF3C1E2, 0x88000000, 0xBE22F96A, 0xB00B73FE, - 0x3FF3CBC5, 0xF0000000, 0x3E351A64, 0x1EB4CE2F, - 0x3FF3D5AE, 0x50000000, 0xBE3D3516, 0xD3755639, - 0x3FF3DF9B, 0xA0000000, 0x3E1CD938, 0x43E8C10E, - 0x3FF3E98D, 0xEC000000, 0xBE35EE23, 0x455C8842, - 0x3FF3F385, 0x30000000, 0xBE29B282, 0x96C9F4ED, - 0x3FF3FD81, 0x70000000, 0x3E24A40E, 0x3168CC0B, - 0x3FF40782, 0xB0000000, 0x3E3784BC, 0x86C72839, - 0x3FF41188, 0xF4000000, 0x3E061F19, 0x0785D847, - 0x3FF41B94, 0x3C000000, 0xBE27AEF2, 0xE654A9C9, - 0x3FF425A4, 0x88000000, 0x3E33DFC3, 0xF9E4C1BA, - 0x3FF42FB9, 0xE0000000, 0x3E2455A8, 0x593D0C75, - 0x3FF439D4, 0x44000000, 0xBDE41D4E, 0x238B65D1, - 0x3FF443F3, 0xB4000000, 0x3E3BE616, 0x454CBECB, - 0x3FF44E18, 0x38000000, 0x3E207B3C, 0x931C5332, - 0x3FF45841, 0xD0000000, 0xBE330846, 0x7615DCC9, - 0x3FF46270, 0x7C000000, 0xBE2A8A7B, 0xE497F84E, - 0x3FF46CA4, 0x40000000, 0x3E020B50, 0xF737AF78, - 0x3FF476DD, 0x20000000, 0x3E116B19, 0xE34AFBD3, - 0x3FF4811B, 0x20000000, 0xBE3E15A7, 0x841EDB52, - 0x3FF48B5E, 0x3C000000, 0x3E0F40C3, 0x33B3DE1E, - 0x3FF495A6, 0x7C000000, 0x3E33607F, 0x92EFEE02, - 0x3FF49FF3, 0xE4000000, 0xBE1A2DB5, 0x14F7E168, - 0x3FF4AA46, 0x70000000, 0x3E3F59EC, 0x3EBA1C94, - 0x3FF4B49E, 0x2C000000, 0xBE31A539, 0x8B9AE885, - 0x3FF4BEFB, 0x10000000, 0x3E2FAC0B, 0xF13C8C95, - 0x3FF4C95D, 0x28000000, 0xBE32C0BB, 0xF8B74775, - 0x3FF4D3C4, 0x70000000, 0xBE2FC24E, 0x4F9474BB, - 0x3FF4DE30, 0xEC000000, 0x3E008F30, 0x09DA911F, - 0x3FF4E8A2, 0xA0000000, 0x3E2994C1, 0xBAF8D98B, - 0x3FF4F319, 0x90000000, 0xBE17C38C, 0x18648D0A, - 0x3FF4FD95, 0xBC000000, 0xBE288852, 0xF22F8698, - 0x3FF50817, 0x28000000, 0xBE3C3EC3, 0x30A2C153, - 0x3FF5129D, 0xD4000000, 0xBE27B606, 0x968492AA, - 0x3FF51D29, 0xC4000000, 0x3E2E0396, 0x61101629, - 0x3FF527BA, 0xFC000000, 0x3E3E876F, 0xDAEEAB38, - 0x3FF53251, 0x80000000, 0x3E29F59E, 0xED945B30, - 0x3FF53CED, 0x50000000, 0x3E12D7DA, 0x0B4AE3F1, - 0x3FF5478E, 0x70000000, 0xBE2FAFB8, 0x5FB946D0, - 0x3FF55234, 0xE0000000, 0xBE18A8B3, 0x87D80C66, - 0x3FF55CE0, 0xA4000000, 0x3E28B18F, 0x764CF85C, - 0x3FF56791, 0xC0000000, 0x3E326017, 0x2BDBC6F4, - 0x3FF57248, 0x38000000, 0xBE229F98, 0x53D523FE, - 0x3FF57D04, 0x0C000000, 0xBE3BDD08, 0x4D9B8720, - 0x3FF587C5, 0x3C000000, 0x3E169EBC, 0x09D8749E, - 0x3FF5928B, 0xD0000000, 0x3E190C8C, 0x339C2080, - 0x3FF59D57, 0xC8000000, 0x3E310FA4, 0xDE75E9CA, - 0x3FF5A829, 0x28000000, 0x3E313D18, 0x1097F186, - 0x3FF5B2FF, 0xF4000000, 0xBE2BDE04, 0xD51C23F6, - 0x3FF5BDDC, 0x28000000, 0x3E3EE67E, 0x8938C386, - 0x3FF5C8BD, 0xD0000000, 0x3E0973B8, 0x47DF6575, - 0x3FF5D3A4, 0xE8000000, 0x3E24DF02, 0x1DB97781, - 0x3FF5DE91, 0x78000000, 0xBE3FBA00, 0xAC4AECDC, - 0x3FF5E983, 0x7C000000, 0xBE2F37AF, 0x939F646A, - 0x3FF5F47A, 0xFC000000, 0xBE396DEF, 0x58A6EEE9, - 0x3FF5FF77, 0xF8000000, 0xBE315248, 0xE3613C7B, - 0x3FF60A7A, 0x74000000, 0xBE26A9E2, 0xF1553706, - 0x3FF61582, 0x74000000, 0xBE3B6BF6, 0xAE4D7CB6, - 0x3FF6208F, 0xF8000000, 0xBE35775B, 0x9EB5EBA5, - 0x3FF62BA3, 0x04000000, 0xBE2A821B, 0xC1E43506, - 0x3FF636BB, 0x9C000000, 0xBE367CDA, 0x7B2D8CF4, - 0x3FF641D9, 0xC0000000, 0xBE13218B, 0x3E907A1D, - 0x3FF64CFD, 0x74000000, 0x3E3454EE, 0x7BF5DFE4, - 0x3FF65826, 0xC0000000, 0xBE3E960F, 0x6366C5FD, - 0x3FF66355, 0x9C000000, 0x3E2E378F, 0x8B43C17E, - 0x3FF66E8A, 0x14000000, 0x3E244BE0, 0xA4306535, - 0x3FF679C4, 0x28000000, 0xBDE4B6C1, 0x8DF63D6E, - 0x3FF68503, 0xD8000000, 0x3E3BA122, 0xE6A239CF, - 0x3FF69049, 0x2C000000, 0x3E27F286, 0x59FB5F30, - 0x3FF69B94, 0x24000000, 0xBE044041, 0x971D3970 } }; - -static const union { - int4 i[2048]; - double x[1024]; -} fine = { .i = { - 0x3FF00000, 0x00000000, 0x00000000, 0x00000000, - 0x3FF00004, 0x00000000, 0x3DA00001, 0x55556AAB, - 0x3FF00008, 0x00000000, 0x3DC00002, 0xAAAB0000, - 0x3FF0000C, 0x00000000, 0x3DD20004, 0x8000D800, - 0x3FF00010, 0x00000000, 0x3DE00005, 0x5556AAAB, - 0x3FF00014, 0x00000000, 0x3DE9000A, 0x6AADEC01, - 0x3FF00018, 0x00000000, 0x3DF20009, 0x00036001, - 0x3FF0001C, 0x00000000, 0x3DF8800E, 0x4AB0EB58, - 0x3FF00020, 0x00000000, 0x3E00000A, 0xAAB00002, - 0x3FF00024, 0x00000000, 0x3E04400F, 0x30088B04, - 0x3FF00028, 0x00000000, 0x3E090014, 0xD5625AB1, - 0x3FF0002C, 0x00000000, 0x3E0E401B, 0xBABDBB0A, - 0x3FF00030, 0x00000000, 0x3E120012, 0x000D8008, - 0x3FF00034, 0x00000000, 0x3E152016, 0xE2BD42E1, - 0x3FF00038, 0x00000000, 0x3E18801C, 0x956E5812, - 0x3FF0003C, 0x00000000, 0x3E1C2023, 0x2820F599, - 0x3FF00040, 0x00000000, 0x3E200015, 0x556AAABC, - 0x3FF00044, 0x00000000, 0x3E221019, 0x96C5DAD7, - 0x3FF00048, 0x00000000, 0x3E24401E, 0x60222C1F, - 0x3FF0004C, 0x00000000, 0x3E269023, 0xB97FC193, - 0x3FF00050, 0x00000000, 0x3E290029, 0xAADEC034, - 0x3FF00054, 0x00000000, 0x3E2B9030, 0x3C3F4F02, - 0x3FF00058, 0x00000000, 0x3E2E4037, 0x75A196FF, - 0x3FF0005C, 0x00000000, 0x3E30881F, 0xAF82E194, - 0x3FF00060, 0x00000000, 0x3E320024, 0x00360041, - 0x3FF00064, 0x00000000, 0x3E338828, 0xB0EA3F05, - 0x3FF00068, 0x00000000, 0x3E35202D, 0xC59FB661, - 0x3FF0006C, 0x00000000, 0x3E36C833, 0x42567FD5, - 0x3FF00070, 0x00000000, 0x3E388039, 0x2B0EB5E1, - 0x3FF00074, 0x00000000, 0x3E3A483F, 0x83C87407, - 0x3FF00078, 0x00000000, 0x3E3C2046, 0x5083D6C6, - 0x3FF0007C, 0x00000000, 0x3E3E084D, 0x9540FB9E, - 0x3FF00080, 0x04000000, 0xBE3FFFAA, 0xA9FFFEEF, - 0x3FF00084, 0x04000000, 0xBE3DF7A2, 0x693EF962, - 0x3FF00088, 0x04000000, 0xBE3BDF99, 0xA47BD339, - 0x3FF0008C, 0x04000000, 0xBE39B790, 0x57B66AF5, - 0x3FF00090, 0x04000000, 0xBE377F86, 0x7EEE9E14, - 0x3FF00094, 0x04000000, 0xBE35377C, 0x16244916, - 0x3FF00098, 0x04000000, 0xBE32DF71, 0x1957477B, - 0x3FF0009C, 0x04000000, 0xBE307765, 0x848773C2, - 0x3FF000A0, 0x04000000, 0xBE2BFEB2, 0xA7694ED3, - 0x3FF000A4, 0x04000000, 0xBE26EE99, 0x05BD75E2, - 0x3FF000A8, 0x04000000, 0xBE21BE7E, 0x1C0B0BB1, - 0x3FF000AC, 0x04000000, 0xBE18DCC3, 0xC4A37A79, - 0x3FF000B0, 0x04000000, 0xBE0BF911, 0x4244D60F, - 0x3FF000B4, 0x04000000, 0xBDE6E255, 0xEC91D848, - 0x3FF000B8, 0x04000000, 0x3E0107EB, 0xEC1B8F0C, - 0x3FF000BC, 0x04000000, 0x3E142439, 0x89BE52AA, - 0x3FF000C0, 0x04000000, 0x3E200240, 0x06C01033, - 0x3FF000C4, 0x04000000, 0x3E261264, 0xC8A9F760, - 0x3FF000C8, 0x04000000, 0x3E2C428B, 0x129D3FDE, - 0x3FF000CC, 0x04000000, 0x3E314959, 0x764D2658, - 0x3FF000D0, 0x04000000, 0x3E34816E, 0x2F50C16C, - 0x3FF000D4, 0x04000000, 0x3E37C983, 0xB859A4AB, - 0x3FF000D8, 0x04000000, 0x3E3B219A, 0x15680499, - 0x3FF000DC, 0x04000000, 0x3E3E89B1, 0x4A7C16B5, - 0x3FF000E0, 0x08000000, 0xBE3DFE36, 0xA469EE7E, - 0x3FF000E4, 0x08000000, 0xBE3A761D, 0xB349D37F, - 0x3FF000E8, 0x08000000, 0xBE36DE03, 0xDE235FCD, - 0x3FF000EC, 0x08000000, 0xBE3335E9, 0x20F659E6, - 0x3FF000F0, 0x08000000, 0xBE2EFB9A, 0xEF850E8F, - 0x3FF000F4, 0x08000000, 0xBE276B61, 0xBD0F58E2, - 0x3FF000F8, 0x08000000, 0xBE1F764D, 0x45163381, - 0x3FF000FC, 0x08000000, 0xBE0FABA6, 0x5FDF589A, - 0x3FF00100, 0x08000000, 0x3D8555AA, 0xABBBBE94, - 0x3FF00104, 0x08000000, 0x3E102B2C, 0xDABB690B, - 0x3FF00108, 0x08000000, 0x3E2045D9, 0x7820FBA0, - 0x3FF0010C, 0x08000000, 0x3E28961E, 0x92F54742, - 0x3FF00110, 0x08000000, 0x3E308332, 0xE2ED8E39, - 0x3FF00114, 0x08000000, 0x3E34CB57, 0x8C698119, - 0x3FF00118, 0x08000000, 0x3E39237D, 0x49EEC0C4, - 0x3FF0011C, 0x08000000, 0x3E3D8BA4, 0x1F7D92BC, - 0x3FF00120, 0x0C000000, 0xBE3DFC33, 0xEEE9C27D, - 0x3FF00124, 0x0C000000, 0xBE39740A, 0xDD46F763, - 0x3FF00128, 0x0C000000, 0xBE34DBE0, 0xA799C375, - 0x3FF0012C, 0x0C000000, 0xBE3033B5, 0x49E1DD2F, - 0x3FF00130, 0x0C000000, 0xBE26F711, 0x803DF41F, - 0x3FF00134, 0x0C000000, 0xBE1ACD6C, 0x19433A4C, - 0x3FF00138, 0x0C000000, 0xBDFDB2C1, 0x8770E36F, - 0x3FF0013C, 0x0C000000, 0x3E086820, 0x6B74A43E, - 0x3FF00140, 0x0C000000, 0x3E200A6A, 0xDEC0D058, - 0x3FF00144, 0x0C000000, 0x3E2A1AD0, 0x22BD7872, - 0x3FF00148, 0x0C000000, 0x3E32259B, 0xF769E132, - 0x3FF0014C, 0x0C000000, 0x3E374DD1, 0x2582289A, - 0x3FF00150, 0x0C000000, 0x3E3C8607, 0x9FA7E4F4, - 0x3FF00154, 0x10000000, 0xBE3E31C0, 0x9624963C, - 0x3FF00158, 0x10000000, 0xBE38D987, 0x77E2F472, - 0x3FF0015C, 0x10000000, 0xBE33714D, 0x0192E02C, - 0x3FF00160, 0x10000000, 0xBE2BF222, 0x5E6805CB, - 0x3FF00164, 0x10000000, 0xBE20E1A7, 0xF98C0A34, - 0x3FF00168, 0x10000000, 0xBE06C4AB, 0x32447238, - 0x3FF0016C, 0x10000000, 0x3E067D54, 0xC225D8C1, - 0x3FF00170, 0x10000000, 0x3E210FD8, 0x05C4630F, - 0x3FF00174, 0x10000000, 0x3E2CA05D, 0xBB206115, - 0x3FF00178, 0x10000000, 0x3E342873, 0x2C4F14A6, - 0x3FF0017C, 0x10000000, 0x3E3A10B8, 0xF31F3B5E, - 0x3FF00180, 0x14000000, 0xBE3FF6FF, 0xC9FEFCC9, - 0x3FF00184, 0x14000000, 0xBE39EEB7, 0x070B344A, - 0x3FF00188, 0x14000000, 0xBE33D66C, 0xC0050AA2, - 0x3FF0018C, 0x14000000, 0xBE2B5C41, 0xE1D83C97, - 0x3FF00190, 0x14000000, 0xBE1DD74E, 0x57003305, - 0x3FF00194, 0x14000000, 0xBDF2D84A, 0xA80727F1, - 0x3FF00198, 0x14000000, 0x3E14AB2F, 0x534C5401, - 0x3FF0019C, 0x14000000, 0x3E27263B, 0xD875DE83, - 0x3FF001A0, 0x14000000, 0x3E320B71, 0x9FB782CA, - 0x3FF001A4, 0x14000000, 0x3E3893C6, 0xF349371F, - 0x3FF001A8, 0x14000000, 0x3E3F2C1D, 0xEAF074C6, - 0x3FF001AC, 0x18000000, 0xBE3A2B89, 0x75525ABC, - 0x3FF001B0, 0x18000000, 0xBE33732F, 0x297ECCE2, - 0x3FF001B4, 0x18000000, 0xBE2955A6, 0x5B28EC49, - 0x3FF001B8, 0x18000000, 0xBE1749D5, 0xF64BA7FD, - 0x3FF001BC, 0x18000000, 0x3DF15E9E, 0xA8645141, - 0x3FF001C0, 0x18000000, 0x3E201C96, 0x1D6F0B37, - 0x3FF001C4, 0x18000000, 0x3E2E2D5B, 0xE6028E39, - 0x3FF001C8, 0x18000000, 0x3E362F12, 0x9B63FA1E, - 0x3FF001CC, 0x18000000, 0x3E3D5779, 0x0BE01026, - 0x3FF001D0, 0x1C000000, 0xBE3B701E, 0xB78A0445, - 0x3FF001D4, 0x1C000000, 0xBE3427B4, 0xAAD9CF9D, - 0x3FF001D8, 0x1C000000, 0xBE299E91, 0x941DBAB5, - 0x3FF001DC, 0x1C000000, 0xBE159B6C, 0x44A2DFDD, - 0x3FF001E0, 0x1C000000, 0x3E008CA4, 0x1EC8B89C, - 0x3FF001E4, 0x1C000000, 0x3E23340B, 0xF1EE0E9A, - 0x3FF001E8, 0x1C000000, 0x3E313279, 0x5231913C, - 0x3FF001EC, 0x1C000000, 0x3E38DAEE, 0x93892E68, - 0x3FF001F0, 0x20000000, 0xBE3F6C9A, 0x3F01A6A8, - 0x3FF001F4, 0x20000000, 0xBE37A421, 0x216E726C, - 0x3FF001F8, 0x20000000, 0xBE2F974C, 0x1F7970B9, - 0x3FF001FC, 0x20000000, 0xBE1F8CA4, 0x17AFEBC8, - 0x3FF00200, 0x20000000, 0x3DB55600, 0x04445B06, - 0x3FF00204, 0x20000000, 0x3E203BAE, 0x0C290A26, - 0x3FF00208, 0x20000000, 0x3E30365A, 0x104547BD, - 0x3FF0020C, 0x20000000, 0x3E385EDF, 0x22970DE3, - 0x3FF00210, 0x24000000, 0xBE3F6899, 0xBEF5A5F4, - 0x3FF00214, 0x24000000, 0xBE372010, 0x90605040, - 0x3FF00218, 0x24000000, 0xBE2D8F0A, 0x9B50D8EE, - 0x3FF0021C, 0x24000000, 0xBE197BDF, 0xCB35D444, - 0x3FF00220, 0x24000000, 0x3E00CCBC, 0x2188E3D5, - 0x3FF00224, 0x24000000, 0x3E254452, 0x36A79F6A, - 0x3FF00228, 0x24000000, 0x3E333ABC, 0xD69B2D28, - 0x3FF0022C, 0x24000000, 0x3E3BE352, 0xBA07BE5B, - 0x3FF00230, 0x28000000, 0xBE3B6415, 0x3665F227, - 0x3FF00234, 0x28000000, 0xBE329B7A, 0xF6AD58D5, - 0x3FF00238, 0x28000000, 0xBE2385BD, 0x059BD24A, - 0x3FF0023C, 0x28000000, 0xBDEB47FA, 0xD8E2B1B4, - 0x3FF00240, 0x28000000, 0x3E203CC2, 0x22CF60F6, - 0x3FF00244, 0x28000000, 0x3E312704, 0x39BEF87F, - 0x3FF00248, 0x28000000, 0x3E3A3FA9, 0xA63F5309, - 0x3FF0024C, 0x2C000000, 0xBE3C97AE, 0xA516AE5E, - 0x3FF00250, 0x2C000000, 0xBE335F04, 0xA442792A, - 0x3FF00254, 0x2C000000, 0xBE242CB0, 0xA686F3A2, - 0x3FF00258, 0x2C000000, 0xBDE7B535, 0xC3237903, - 0x3FF0025C, 0x2C000000, 0x3E21560E, 0x9E7A6CF7, - 0x3FF00260, 0x2C000000, 0x3E3223BA, 0xA8C01385, - 0x3FF00264, 0x2C000000, 0x3E3BAC70, 0x627012DF, - 0x3FF00268, 0x30000000, 0xBE3ABAD7, 0x7FB232EA, - 0x3FF0026C, 0x30000000, 0xBE31121C, 0xF9A6244B, - 0x3FF00270, 0x30000000, 0xBE1D6580, 0x1DAC9AE4, - 0x3FF00274, 0x30000000, 0x3E037AFA, 0xD7FB0AC3, - 0x3FF00278, 0x30000000, 0x3E289042, 0x633420EB, - 0x3FF0027C, 0x30000000, 0x3E3630E5, 0x8065842A, - 0x3FF00280, 0x34000000, 0xBE3FD653, 0xB49DA4FF, - 0x3FF00284, 0x34000000, 0xBE35CD8A, 0x696ECB76, - 0x3FF00288, 0x34000000, 0xBE27697D, 0x341A9D63, - 0x3FF0028C, 0x34000000, 0xBDF8BF04, 0x2788D238, - 0x3FF00290, 0x34000000, 0x3E2159C1, 0x42A03782, - 0x3FF00294, 0x34000000, 0x3E32F5B4, 0x154D4F89, - 0x3FF00298, 0x34000000, 0x3E3D4E8A, 0x1D7FB2C1, - 0x3FF0029C, 0x38000000, 0xBE38489D, 0x42181508, - 0x3FF002A0, 0x38000000, 0xBE2B9F84, 0x0AF2C28C, - 0x3FF002A4, 0x38000000, 0xBE0A3721, 0x451C5357, - 0x3FF002A8, 0x38000000, 0x3E1D47F1, 0x61A8605E, - 0x3FF002AC, 0x38000000, 0x3E31FADF, 0x81B02FCF, - 0x3FF002B0, 0x38000000, 0x3E3CB3C5, 0x572F674A, - 0x3FF002B4, 0x3C000000, 0xBE388352, 0x231795EA, - 0x3FF002B8, 0x3C000000, 0xBE2B54CD, 0xD248367A, - 0x3FF002BC, 0x3C000000, 0xBE060BC7, 0xB7ABD90D, - 0x3FF002C0, 0x3C000000, 0x3E206EEF, 0x6EE9F1EF, - 0x3FF002C4, 0x3C000000, 0x3E33406B, 0x261BF09E, - 0x3FF002C8, 0x3C000000, 0x3E3E5961, 0x59001C60, - 0x3FF002CC, 0x40000000, 0xBE367DA5, 0xABDDD232, - 0x3FF002D0, 0x40000000, 0xBE268953, 0xC8FA5113, - 0x3FF002D4, 0x40000000, 0x3D9152CC, 0x8B33A701, - 0x3FF002D8, 0x40000000, 0x3E26BAAC, 0x3E058570, - 0x3FF002DC, 0x40000000, 0x3E36C65A, 0x63236E71, - 0x3FF002E0, 0x44000000, 0xBE3DC09E, 0x7C7A795C, - 0x3FF002E4, 0x44000000, 0xBE323794, 0x7BD63D1D, - 0x3FF002E8, 0x44000000, 0xBE1A7A1E, 0x5BBC9105, - 0x3FF002EC, 0x44000000, 0x3E142A20, 0xD8EE2B1B, - 0x3FF002F0, 0x44000000, 0x3E30C39A, 0xEFAA8A8D, - 0x3FF002F4, 0x44000000, 0x3E3C8CB0, 0x995E96A2, - 0x3FF002F8, 0x48000000, 0xBE379A36, 0xC8A79469, - 0x3FF002FC, 0x48000000, 0xBE276236, 0x64CE7203, - 0x3FF00300, 0x48000000, 0x3DD200D8, 0x0819DA68, - 0x3FF00304, 0x48000000, 0x3E28A249, 0xE5E018D4, - 0x3FF00308, 0x48000000, 0x3E386A49, 0x8A087692, - 0x3FF0030C, 0x4C000000, 0xBE3B6C8E, 0xD695988B, - 0x3FF00310, 0x4C000000, 0xBE2E66C8, 0x55D2BCBA, - 0x3FF00314, 0x4C000000, 0xBE0751B3, 0x7790BA7A, - 0x3FF00318, 0x4C000000, 0x3E22DDF4, 0xC2A20261, - 0x3FF0031C, 0x4C000000, 0x3E35D82E, 0x49E0B0B5, - 0x3FF00320, 0x50000000, 0xBE3DAE9A, 0xB142422E, - 0x3FF00324, 0x50000000, 0xBE312560, 0x8C170FE6, - 0x3FF00328, 0x50000000, 0xBE12308D, 0x0A73BF77, - 0x3FF0032C, 0x50000000, 0x3E203A3A, 0x5E59CEFA, - 0x3FF00330, 0x50000000, 0x3E34D660, 0xCD4740BF, - 0x3FF00334, 0x54000000, 0xBE3E6058, 0x644D1883, - 0x3FF00338, 0x54000000, 0xBE31870E, 0x618F57B6, - 0x3FF0033C, 0x54000000, 0xBE127704, 0x99FABD0F, - 0x3FF00340, 0x54000000, 0x3E20B71E, 0xA1CB5ECF, - 0x3FF00344, 0x54000000, 0x3E3564E3, 0x089E93E1, - 0x3FF00348, 0x58000000, 0xBE3D81C5, 0xFB533142, - 0x3FF0034C, 0x58000000, 0xBE30586B, 0xB6EECE6C, - 0x3FF00350, 0x58000000, 0xBE08F871, 0x319B883E, - 0x3FF00354, 0x58000000, 0x3E2454A5, 0x75BF7503, - 0x3FF00358, 0x58000000, 0x3E3783B6, 0xF04B88C5, - 0x3FF0035C, 0x5C000000, 0xBE3B12E1, 0x81EF30A7, - 0x3FF00360, 0x5C000000, 0xBE2B32ED, 0x2F9F3657, - 0x3FF00364, 0x5C000000, 0xBDB0084D, 0x54DF31BC, - 0x3FF00368, 0x5C000000, 0x3E2B12D2, 0xC303B7B9, - 0x3FF0036C, 0x5C000000, 0x3E3B32DE, 0x78B56F97, - 0x3FF00370, 0x60000000, 0xBE3713A9, 0x03B9496C, - 0x3FF00374, 0x60000000, 0xBE22945A, 0x1F92E726, - 0x3FF00378, 0x60000000, 0x3E123D49, 0x621736DF, - 0x3FF0037C, 0x60000000, 0x3E3278D5, 0x3935580D, - 0x3FF00380, 0x64000000, 0xBE3F8DA4, 0x69B9F5FB, - 0x3FF00384, 0x64000000, 0xBE31841A, 0x8C473CC8, - 0x3FF00388, 0x64000000, 0xBE0B5469, 0x538CDE07, - 0x3FF0038C, 0x64000000, 0x3E257E07, 0x7F8F9D65, - 0x3FF00390, 0x64000000, 0x3E38F898, 0x3665E52B, - 0x3FF00394, 0x68000000, 0xBE38BDCF, 0xC29674BD, - 0x3FF00398, 0x68000000, 0xBE24C868, 0x4E58B4D9, - 0x3FF0039C, 0x68000000, 0x3E1015AC, 0x329466D7, - 0x3FF003A0, 0x68000000, 0x3E327F0D, 0xDCDECE44, - 0x3FF003A4, 0x6C000000, 0xBE3EF74B, 0xB27E5528, - 0x3FF003A8, 0x6C000000, 0xBE305DA1, 0x9D7167F2, - 0x3FF003AC, 0x6C000000, 0xBDFB3F3D, 0xFF980820, - 0x3FF003B0, 0x6C000000, 0x3E2A0B7B, 0x13D49789, - 0x3FF003B4, 0x6C000000, 0x3E3BCF72, 0xA43AE87C, - 0x3FF003B8, 0x70000000, 0xBE3556D4, 0x8D06BDC0, - 0x3FF003BC, 0x70000000, 0xBE19B460, 0x1766E54D, - 0x3FF003C0, 0x70000000, 0x3E211950, 0x7B85C8BA, - 0x3FF003C4, 0x70000000, 0x3E37966C, 0x41D00AED, - 0x3FF003C8, 0x74000000, 0xBE394FCB, 0xF5B15507, - 0x3FF003CC, 0x74000000, 0xBE244C00, 0xC98093C4, - 0x3FF003D0, 0x74000000, 0x3E144F3B, 0xE2907BDF, - 0x3FF003D4, 0x74000000, 0x3E345DA2, 0x267CD924, - 0x3FF003D8, 0x78000000, 0xBE3C4886, 0xD73526C0, - 0x3FF003DC, 0x78000000, 0xBE29BD57, 0xF8E1D62E, - 0x3FF003E0, 0x78000000, 0x3E04D995, 0xD65415E1, - 0x3FF003E4, 0x78000000, 0x3E322515, 0x527E1A58, - 0x3FF003E8, 0x7C000000, 0xBE3E4104, 0x31552BA5, - 0x3FF003EC, 0x7C000000, 0xBE2D2E33, 0x995CAB3B, - 0x3FF003F0, 0x7C000000, 0x3DF22D48, 0x473970DC, - 0x3FF003F4, 0x7C000000, 0x3E30ECC6, 0xC61195FC, - 0x3FF003F8, 0x80000000, 0xBE3F3943, 0x03D35C34, - 0x3FF003FC, 0x80000000, 0xBE2E9E91, 0xAA7483C7, - 0x3FF00400, 0x80000000, 0x3DE556AA, 0xBBBC71CE, - 0x3FF00404, 0x80000000, 0x3E30B4B7, 0x817613C1, - 0x3FF00408, 0x84000000, 0xBE3F3142, 0x4E70B0AC, - 0x3FF0040C, 0x84000000, 0xBE2E0E70, 0x2BAAD02F, - 0x3FF00410, 0x84000000, 0x3DF32D62, 0xF48F01F2, - 0x3FF00414, 0x84000000, 0x3E317CE8, 0x84EB5B98, - 0x3FF00418, 0x88000000, 0xBE3E2901, 0x10ED210B, - 0x3FF0041C, 0x88000000, 0xBE2B7DCD, 0x1C7F0051, - 0x3FF00420, 0x88000000, 0x3E05D9C0, 0x87AA2706, - 0x3FF00424, 0x88000000, 0x3E33455A, 0xD0B235B3, - 0x3FF00428, 0x8C000000, 0xBE3C207E, 0x4B07A510, - 0x3FF0042C, 0x8C000000, 0xBE26ECA6, 0x7C6E838B, - 0x3FF00430, 0x8C000000, 0x3E150F6F, 0xEC91A8D5, - 0x3FF00434, 0x8C000000, 0x3E360E0F, 0x650C6A83, - 0x3FF00438, 0x90000000, 0xBE3917B8, 0xFC7E3439, - 0x3FF0043C, 0x90000000, 0xBE205AFA, 0x4AF4C8B6, - 0x3FF00440, 0x90000000, 0x3E219985, 0xDC31D181, - 0x3FF00444, 0x90000000, 0x3E39D707, 0x423CC2BE, - 0x3FF00448, 0x94000000, 0xBE350EB0, 0x250DC5BF, - 0x3FF0044C, 0x94000000, 0xBE0F231A, 0x1E2CF893, - 0x3FF00450, 0x94000000, 0x3E2AABDB, 0xD42C92D4, - 0x3FF00454, 0x94000000, 0x3E3EA043, 0x6887075B, - 0x3FF00458, 0x98000000, 0xBE300562, 0xC472509B, - 0x3FF0045C, 0x98000000, 0x3DF64FB6, 0x72B572E0, - 0x3FF00460, 0x98000000, 0x3E32DF5D, 0xEF61155C, - 0x3FF00464, 0x9C000000, 0xBE3B963B, 0x27CFFE6A, - 0x3FF00468, 0x9C000000, 0xBE23F79F, 0xB4CD96FE, - 0x3FF0046C, 0x9C000000, 0x3E1EBA7F, 0x6E771F13, - 0x3FF00470, 0x9C000000, 0x3E396913, 0xFE3ED608, - 0x3FF00474, 0xA0000000, 0xBE34CC73, 0x6E82850F, - 0x3FF00478, 0xA0000000, 0xBE078FB3, 0x352966B7, - 0x3FF0047C, 0xA0000000, 0x3E2DF116, 0x33AFF8AE, - 0x3FF00480, 0xA4000000, 0xBE3F0CEE, 0xE909EADD, - 0x3FF00484, 0xA4000000, 0xBE2A04C8, 0xD6938597, - 0x3FF00488, 0xA4000000, 0x3E1460AA, 0x5C6654D8, - 0x3FF0048C, 0xA4000000, 0x3E3742BE, 0x22213ECF, - 0x3FF00490, 0xA8000000, 0xBE3682A9, 0xC631A356, - 0x3FF00494, 0xA8000000, 0xBE10E034, 0x7777B644, - 0x3FF00498, 0xA8000000, 0x3E2C4528, 0x3E3B0991, - 0x3FF0049C, 0xAC000000, 0xBE3F72C6, 0x0B3E269F, - 0x3FF004A0, 0xAC000000, 0xBE29F037, 0x31DF923B, - 0x3FF004A4, 0xAC000000, 0x3E164A4D, 0xE82713DE, - 0x3FF004A8, 0xAC000000, 0x3E382D47, 0x31AFAC4B, - 0x3FF004AC, 0xB0000000, 0xBE352800, 0x6DFCE978, - 0x3FF004B0, 0xB0000000, 0xBE036A1B, 0x07D68D27, - 0x3FF004B4, 0xB0000000, 0x3E305D7E, 0x5CB71F6F, - 0x3FF004B8, 0xB4000000, 0xBE3CC7BB, 0x30E5E990, - 0x3FF004BC, 0xB4000000, 0xBE23B9E0, 0x0BA17DEA, - 0x3FF004C0, 0xB4000000, 0x3E223BBF, 0xC3EF9BD8, - 0x3FF004C4, 0xB4000000, 0x3E3C28B4, 0x8A74ECC0, - 0x3FF004C8, 0xB8000000, 0xBE30BC72, 0x085831CA, - 0x3FF004CC, 0xB8000000, 0x3E037361, 0x6C8D1FC8, - 0x3FF004D0, 0xB8000000, 0x3E35A94F, 0x3033A0B8, - 0x3FF004D4, 0xBC000000, 0xBE370BC8, 0xFC7107DE, - 0x3FF004D8, 0xBC000000, 0xBE0D86E2, 0xA2D908DA, - 0x3FF004DC, 0xBC000000, 0x3E2F742A, 0x58ED155E, - 0x3FF004E0, 0xC0000000, 0xBE3CCAF4, 0x75FACDD0, - 0x3FF004E4, 0xC0000000, 0xBE227FF2, 0x6F5BE5D3, - 0x3FF004E8, 0xC0000000, 0x3E24B60D, 0xD6BCA827, - 0x3FF004EC, 0xC0000000, 0x3E3E060B, 0xF72B40D6, - 0x3FF004F0, 0xC4000000, 0xBE2C7DD4, 0x208BE3E3, - 0x3FF004F4, 0xC4000000, 0x3E163093, 0x642FDDB8, - 0x3FF004F8, 0xC4000000, 0x3E396738, 0xB72239A5, - 0x3FF004FC, 0xC8000000, 0xBE32ADAE, 0x7201ED9B, - 0x3FF00500, 0xC8000000, 0x3DF4D6F6, 0x1A0C05F3, - 0x3FF00504, 0xC8000000, 0x3E355892, 0x360B8346, - 0x3FF00508, 0xCC000000, 0xBE368C45, 0xF0C06435, - 0x3FF0050C, 0xCC000000, 0xBE0308C8, 0x760DA2F6, - 0x3FF00510, 0xCC000000, 0x3E31DA18, 0xE008D57B, - 0x3FF00514, 0xD0000000, 0xBE39DAB0, 0x205F82F4, - 0x3FF00518, 0xD0000000, 0xBE15FDD0, 0x2FE5E3E3, - 0x3FF0051C, 0xD0000000, 0x3E2DD79A, 0x42787241, - 0x3FF00520, 0xD4000000, 0xBE3C98EC, 0x94BD25F4, - 0x3FF00524, 0xD4000000, 0xBE201B42, 0x53C89D03, - 0x3FF00528, 0xD4000000, 0x3E291B5E, 0xCB901057, - 0x3FF0052C, 0xD8000000, 0xBE3EC6FA, 0xE1B6D837, - 0x3FF00530, 0xD8000000, 0xBE24173F, 0xF8BF49E7, - 0x3FF00534, 0xD8000000, 0x3E257F80, 0x339DDB57, - 0x3FF00538, 0xD8000000, 0x3E3F9B25, 0x64D62C5C, - 0x3FF0053C, 0xDC000000, 0xBE26F2E0, 0x2E913659, - 0x3FF00540, 0xDC000000, 0x3E2303FF, 0x52E7CB93, - 0x3FF00544, 0xDC000000, 0x3E3E8D74, 0xAB0CFEF5, - 0x3FF00548, 0xE0000000, 0xBE28AE22, 0x1CF7FDE6, - 0x3FF0054C, 0xE0000000, 0x3E21A8DD, 0x01B47B93, - 0x3FF00550, 0xE0000000, 0x3E3E0FF3, 0x5D1107E2, - 0x3FF00554, 0xE4000000, 0xBE294904, 0xEBAC99E1, - 0x3FF00558, 0xE4000000, 0x3E216E1A, 0x184B2814, - 0x3FF0055C, 0xE4000000, 0x3E3E22A1, 0xE706008B, - 0x3FF00560, 0xE8000000, 0xBE28C387, 0xC267616A, - 0x3FF00564, 0xE8000000, 0x3E2253B7, 0x6EF3B008, - 0x3FF00568, 0xE8000000, 0x3E3EC580, 0xB50FF371, - 0x3FF0056C, 0xEC000000, 0xBE271DA9, 0xC8E0096B, - 0x3FF00570, 0xEC000000, 0x3E2459B5, 0xDDF69498, - 0x3FF00574, 0xEC000000, 0x3E3FF890, 0x33533C31, - 0x3FF00578, 0xF0000000, 0xBE24576A, 0x26CDA497, - 0x3FF0057C, 0xF0000000, 0x3E278016, 0x3D9CF923, - 0x3FF00580, 0xF4000000, 0xBE3E442F, 0x320B787B, - 0x3FF00584, 0xF4000000, 0xBE2070C8, 0x03E6A36B, - 0x3FF00588, 0xF4000000, 0x3E2BC6D9, 0x6630A33F, - 0x3FF0058C, 0xF8000000, 0xBE3BF0BD, 0x0EE72CBF, - 0x3FF00590, 0xF8000000, 0xBE16D385, 0x0FC1A853, - 0x3FF00594, 0xF8000000, 0x3E309700, 0x17FDFD5D, - 0x3FF00598, 0xFC000000, 0xBE390D18, 0xF71A91AC, - 0x3FF0059C, 0xFC000000, 0xBE050963, 0x69C58B86, - 0x3FF005A0, 0xFC000000, 0x3E33DAC5, 0xB9A504CD, - 0x3FF005A5, 0x00000000, 0xBE359942, 0x7E800734, - 0x3FF005A9, 0x00000000, 0x3DF02BAE, 0xE59934CD, - 0x3FF005AD, 0x00000000, 0x3E37AEBE, 0x04333E0E, - 0x3FF005B1, 0x04000000, 0xBE319539, 0x38F19C2F, - 0x3FF005B5, 0x04000000, 0x3E14DB54, 0xEBB1C157, - 0x3FF005B9, 0x04000000, 0x3E3C12E9, 0x63CED05D, - 0x3FF005BD, 0x08000000, 0xBE2A01F9, 0x74921CAF, - 0x3FF005C1, 0x08000000, 0x3E23F645, 0xC94C85F2, - 0x3FF005C5, 0x0C000000, 0xBE3EF8B7, 0xBB61CBEE, - 0x3FF005C9, 0x0C000000, 0xBE1F7232, 0x597F2931, - 0x3FF005CD, 0x0C000000, 0x3E2E9F48, 0xAF5B7345, - 0x3FF005D1, 0x10000000, 0xBE397424, 0xED37CD5F, - 0x3FF005D5, 0x10000000, 0xBE013F43, 0x08775C6B, - 0x3FF005D9, 0x10000000, 0x3E35345A, 0x0029D3DB, - 0x3FF005DD, 0x14000000, 0xBE335F5D, 0xC58C1962, - 0x3FF005E1, 0x14000000, 0x3E1073C1, 0x47430E04, - 0x3FF005E5, 0x14000000, 0x3E3BA944, 0x4A41E248, - 0x3FF005E9, 0x18000000, 0xBE2974C3, 0xB06E888E, - 0x3FF005ED, 0x18000000, 0x3E25E3FB, 0xDCCD9333, - 0x3FF005F1, 0x1C000000, 0xBE3D519C, 0x5DE27951, - 0x3FF005F5, 0x1C000000, 0xBE1614C2, 0xE4464502, - 0x3FF005F9, 0x1C000000, 0x3E325740, 0xE0DAFE93, - 0x3FF005FD, 0x20000000, 0xBE35BC47, 0x8C1B4C10, - 0x3FF00601, 0x20000000, 0x3E0201B0, 0x20686CE9, - 0x3FF00605, 0x20000000, 0x3E3A4CB9, 0x95558B63, - 0x3FF00609, 0x24000000, 0xBE2B2D79, 0xA880A3EB, - 0x3FF0060D, 0x24000000, 0x3E252BA5, 0x9699EEB7, - 0x3FF00611, 0x28000000, 0xBE3D2D97, 0x880115E1, - 0x3FF00615, 0x28000000, 0xBE1383EF, 0x28A3D788, - 0x3FF00619, 0x28000000, 0x3E337BA6, 0x08D6DC23, - 0x3FF0061D, 0x2C000000, 0xBE3417B2, 0x0B001A08, - 0x3FF00621, 0x2C000000, 0x3E1193EF, 0xF94EB99A, - 0x3FF00625, 0x2C000000, 0x3E3CF1B0, 0x28D3BD3B, - 0x3FF00629, 0x30000000, 0xBE24E32B, 0x0EFCC982, - 0x3FF0062D, 0x30000000, 0x3E2C7655, 0xE2BDA47F, - 0x3FF00631, 0x34000000, 0xBE39080E, 0x689312F8, - 0x3FF00635, 0x34000000, 0xBDCDA0C8, 0xA9444DB4, - 0x3FF00639, 0x34000000, 0x3E38A191, 0x7B21FE23, - 0x3FF0063D, 0x38000000, 0xBE2CE32A, 0x7E67E1E1, - 0x3FF00641, 0x38000000, 0x3E251694, 0x875A71F0, - 0x3FF00645, 0x3C000000, 0xBE3C67CF, 0xF838F455, - 0x3FF00649, 0x3C000000, 0xBE0A571F, 0x77274052, - 0x3FF0064D, 0x3C000000, 0x3E35E20E, 0x63AAEFA8, - 0x3FF00651, 0x40000000, 0xBE30E0F8, 0xFC87DA70, - 0x3FF00655, 0x40000000, 0x3E20D80B, 0xE9089AFD, - 0x3FF00659, 0x44000000, 0xBE3E36F4, 0xC52F03BD, - 0x3FF0065D, 0x44000000, 0xBE1327A4, 0x9680E14E, - 0x3FF00661, 0x44000000, 0x3E34B328, 0xD732468D, - 0x3FF00665, 0x48000000, 0xBE31BFBE, 0xCAB5EF4A, - 0x3FF00669, 0x48000000, 0x3E1F757F, 0xE2A2FBE1, - 0x3FF0066D, 0x4C000000, 0xBE3E757A, 0xDAB014DA, - 0x3FF00671, 0x4C000000, 0xBE12E13D, 0x02FB3FBB, - 0x3FF00675, 0x4C000000, 0x3E3514E2, 0xCA7E298D, - 0x3FF00679, 0x50000000, 0xBE310DE4, 0xB4F78B94, - 0x3FF0067D, 0x50000000, 0x3E21BEB4, 0x89C35D05, - 0x3FF00681, 0x54000000, 0xBE3D2360, 0x43F4895C, - 0x3FF00685, 0x54000000, 0xBE08B0A2, 0x5BC49ADF, - 0x3FF00689, 0x54000000, 0x3E37073E, 0x32573159, - 0x3FF0068D, 0x58000000, 0xBE2D96D1, 0x8D0732D2, - 0x3FF00691, 0x58000000, 0x3E26E3ED, 0x9BF15E67, - 0x3FF00695, 0x5C000000, 0xBE3A40A3, 0x0C3250FB, - 0x3FF00699, 0x5C000000, 0x3DBCC9AE, 0xFD0AE214, - 0x3FF0069D, 0x5C000000, 0x3E3A8A3D, 0x038868A1, - 0x3FF006A1, 0x60000000, 0xBE25F092, 0x151D21CE, - 0x3FF006A5, 0x60000000, 0x3E2F2A6F, 0x11738C43, - 0x3FF006A9, 0x64000000, 0xBE35CD41, 0x3E9CE96D, - 0x3FF006AD, 0x64000000, 0x3E138132, 0x8DBC2918, - 0x3FF006B1, 0x64000000, 0x3E3F9DE1, 0x32DF4C13, - 0x3FF006B5, 0x68000000, 0xBE16520E, 0x3129E0B2, - 0x3FF006B9, 0x68000000, 0x3E35491E, 0x69F36A61, - 0x3FF006BD, 0x6C000000, 0xBE2F9271, 0xCCCABCD4, - 0x3FF006C1, 0x6C000000, 0x3E2668ED, 0x0D59B899, - 0x3FF006C5, 0x70000000, 0xBE39BDD3, 0x4AD435A0, - 0x3FF006C9, 0x70000000, 0x3DF5FE9A, 0x9191CABB, - 0x3FF006CD, 0x70000000, 0x3E3C8DAD, 0x6676850B, - 0x3FF006D1, 0x74000000, 0xBE206910, 0x1D74934A, - 0x3FF006D5, 0x74000000, 0x3E331949, 0x4D886478, - 0x3FF006D9, 0x78000000, 0xBE3188DE, 0x80BFBBC2, - 0x3FF006DD, 0x78000000, 0x3E23CA01, 0x14DE1719, - 0x3FF006E1, 0x7C000000, 0xBE3A9D19, 0x8CE98EC0, - 0x3FF006E5, 0x7C000000, 0x3DEE1A67, 0xA705A6E7, - 0x3FF006E9, 0x7C000000, 0x3E3C8EC6, 0xECD5F851, - 0x3FF006ED, 0x80000000, 0xBE1F0CF9, 0xE839CE4D, - 0x3FF006F1, 0x80000000, 0x3E33FAC3, 0x0C8CA46A, - 0x3FF006F5, 0x84000000, 0xBE303734, 0x7B5703D8, - 0x3FF006F9, 0x84000000, 0x3E274DB5, 0xE490A112, - 0x3FF006FD, 0x88000000, 0xBE386B0E, 0xA693A093, - 0x3FF00701, 0x88000000, 0x3E0C9875, 0xF0B73DAA, - 0x3FF00705, 0x88000000, 0x3E3FA133, 0x2449A944, - 0x3FF00709, 0x8C000000, 0xBE110285, 0xBFE66C14, - 0x3FF0070D, 0x8C000000, 0x3E37ED91, 0x054EDCBD, - 0x3FF00711, 0x90000000, 0xBE27A86A, 0xEFB65924, - 0x3FF00715, 0x90000000, 0x3E307A0B, 0x1C8A0CF1, - 0x3FF00719, 0x94000000, 0xBE3327AD, 0x397FB1D6, - 0x3FF0071D, 0x94000000, 0x3E228D43, 0x1412B9FB, - 0x3FF00721, 0x98000000, 0xBE3A3B08, 0x94D8FFB0, - 0x3FF00725, 0x98000000, 0x3E029AA3, 0x6ED80040, - 0x3FF00729, 0x98000000, 0x3E3EF1B8, 0x9627250A, - 0x3FF0072D, 0x9C000000, 0xBE117F70, 0x5FCB1B09, - 0x3FF00731, 0x9C000000, 0x3E385E96, 0x678F0789, - 0x3FF00735, 0xA0000000, 0xBE25A5DF, 0xCEA3485B, - 0x3FF00739, 0xA0000000, 0x3E320B90, 0xFF6D0303, - 0x3FF0073D, 0xA4000000, 0xBE3105E6, 0xE03334FF, - 0x3FF00741, 0xA4000000, 0x3E27F150, 0xFB9F056D, - 0x3FF00745, 0xA8000000, 0xBE36F8C0, 0xE28905F4, - 0x3FF00749, 0xA8000000, 0x3E189774, 0x0B1407AA, - 0x3FF0074D, 0xAC000000, 0xBE3CAB7D, 0xCE4493C4, - 0x3FF00751, 0xAC000000, 0x3DE265D5, 0xCB817D78, - 0x3FF00755, 0xAC000000, 0x3E3DE1E2, 0x7CA8B4E3, - 0x3FF00759, 0xB0000000, 0xBE12FD89, 0x7D730FC6, - 0x3FF0075D, 0xB0000000, 0x3E38AF60, 0x1E4D7759, - 0x3FF00761, 0xB4000000, 0xBE23A3AC, 0x0CAD84A2, - 0x3FF00765, 0xB4000000, 0x3E33BCFB, 0x36B866FD, - 0x3FF00769, 0xB8000000, 0xBE2D4858, 0x4D0667A1, - 0x3FF0076D, 0xB8000000, 0x3E2E1567, 0xCBF08E6A, - 0x3FF00771, 0xBC000000, 0xBE333664, 0x9FD34D05, - 0x3FF00775, 0xBC000000, 0x3E253114, 0x9837D6E0, - 0x3FF00779, 0xC0000000, 0xBE37887F, 0x5238327D, - 0x3FF0077D, 0xC0000000, 0x3E1999FA, 0x24C8DC90, - 0x3FF00781, 0xC4000000, 0xBE3B9A7C, 0x1DA2F8BE, - 0x3FF00785, 0xC4000000, 0x3E03A485, 0xEA50EE6A, - 0x3FF00789, 0xC8000000, 0xBE3F6C5A, 0xE204A449, - 0x3FF0078D, 0xC8000000, 0xBDF3D3EF, 0x78D5D0F3, - 0x3FF00791, 0xC8000000, 0x3E3D01E4, 0x80B1D66C, - 0x3FF00795, 0xCC000000, 0xBE12BBC1, 0xD5149796, - 0x3FF00799, 0xCC000000, 0x3E39B042, 0x2A8F92F0, - 0x3FF0079D, 0xD0000000, 0xBE1F820E, 0x6F386487, - 0x3FF007A1, 0xD0000000, 0x3E369EBE, 0x3BA3BCDA, - 0x3FF007A5, 0xD4000000, 0xBE25A3F0, 0x96320652, - 0x3FF007A9, 0xD4000000, 0x3E33CD58, 0xD3FD8FCA, - 0x3FF007AD, 0xD8000000, 0xBE2B069C, 0xC62D40B1, - 0x3FF007B1, 0xD8000000, 0x3E313C12, 0x13AC5766, - 0x3FF007B5, 0xDC000000, 0xBE2FE90B, 0x876F3A0B, - 0x3FF007B9, 0xDC000000, 0x3E2DD5D4, 0x357EDEB8, - 0x3FF007BD, 0xE0000000, 0xBE32259E, 0x4CEC957E, - 0x3FF007C1, 0xE0000000, 0x3E29B3C2, 0x128C86C6, - 0x3FF007C5, 0xE4000000, 0xBE341697, 0xDEA61608, - 0x3FF007C9, 0xE4000000, 0x3E2611ED, 0xFEA09E70, - 0x3FF007CD, 0xE8000000, 0xBE35C772, 0x58D49AE3, - 0x3FF007D1, 0xE8000000, 0x3E22F058, 0x39DA3D42, - 0x3FF007D5, 0xEC000000, 0xBE37382D, 0x9B689043, - 0x3FF007D9, 0xEC000000, 0x3E204F01, 0x04589AD6, - 0x3FF007DD, 0xF0000000, 0xBE3868C9, 0x86525259, - 0x3FF007E1, 0xF0000000, 0x3E1C5BD1, 0x3C761DAC, - 0x3FF007E5, 0xF4000000, 0xBE395945, 0xF9822D4C, - 0x3FF007E9, 0xF4000000, 0x3E191A1E, 0x8F4221F9, - 0x3FF007ED, 0xF8000000, 0xBE3A09A2, 0xD4E85D3A, - 0x3FF007F1, 0xF8000000, 0x3E16D8EA, 0x81547225, - 0x3FF007F5, 0xFC000000, 0xBE3A79DF, 0xF8750E3B, - 0x3FF007F9, 0xFC000000, 0x3E159835, 0x92EC7DE3, - 0x3FF007FE, 0x00000000, 0xBE3AA9FD, 0x44185C5D } }; - -#else -#ifdef LITTLE_ENDI - -static const union { - int i[1424]; - double x[712]; -} coar = { .i = { - 0xC8000000, 0x3FE69A59, 0x6079C9F7, 0x3DF22D4D, - 0xC8000000, 0x3FE6A5A9, 0x25AF6823, 0x3E19882D, - 0x74000000, 0x3FE6B0FF, 0x31DABF59, 0xBE221476, - 0xC8000000, 0x3FE6BC5A, 0x99A2DC0A, 0x3E2312AC, - 0xD0000000, 0x3FE6C7BB, 0xCE9F9355, 0xBE265926, - 0x84000000, 0x3FE6D322, 0x2D298DED, 0x3E2F2C26, - 0xF4000000, 0x3FE6DE8E, 0x1E748D2F, 0xBE2EC28E, - 0x14000000, 0x3FE6EA01, 0xC68CB7E5, 0x3E2D8C6D, - 0xF4000000, 0x3FE6F578, 0x419FE2F0, 0x3DEE1A9E, - 0x90000000, 0x3FE700F6, 0xDEAEAE34, 0xBDFF1AFD, - 0xEC000000, 0x3FE70C79, 0x558B7122, 0xBE0730FE, - 0x0C000000, 0x3FE71803, 0x2D280C3B, 0xBE25CB85, - 0xF0000000, 0x3FE72391, 0x337B7B54, 0xBE06F2CE, - 0x9C000000, 0x3FE72F26, 0x45C02B72, 0x3E289BCA, - 0x18000000, 0x3FE73AC1, 0x5039F1CA, 0xBE18DEA6, - 0x60000000, 0x3FE74661, 0x86CE0538, 0xBE09D090, - 0x78000000, 0x3FE75207, 0xCFCE5DDB, 0x3E290E79, - 0x68000000, 0x3FE75DB3, 0xB249A17C, 0x3DD61DF0, - 0x2C000000, 0x3FE76965, 0xE13445F7, 0x3E2F22F7, - 0xD0000000, 0x3FE7751C, 0x874E75CE, 0xBE2CD454, - 0x4C000000, 0x3FE780DA, 0xDF43E3BC, 0xBE0159CE, - 0xA8000000, 0x3FE78C9D, 0x699A1332, 0x3E279291, - 0xEC000000, 0x3FE79866, 0x2DD98C6C, 0xBE2A0BCD, - 0x10000000, 0x3FE7A436, 0x15AC979E, 0x3E25F375, - 0x20000000, 0x3FE7B00B, 0x2FEAFCF6, 0x3E26CCF5, - 0x1C000000, 0x3FE7BBE6, 0x53ADAD67, 0x3E27D4F4, - 0x08000000, 0x3FE7C7C7, 0x7FBD9566, 0x3E10EEC7, - 0xE4000000, 0x3FE7D3AD, 0x9A831D86, 0x3E2837F0, - 0xB8000000, 0x3FE7DF9A, 0x5CB4C35B, 0xBE129BE0, - 0x80000000, 0x3FE7EB8D, 0x0234F04D, 0x3E23990A, - 0x44000000, 0x3FE7F786, 0x64D5C842, 0x3E2EB807, - 0x08000000, 0x3FE80385, 0x02B4E9E8, 0x3E0FC86F, - 0xCC000000, 0x3FE80F89, 0x7B4274BF, 0xBDD7B5B3, - 0x94000000, 0x3FE81B94, 0xB899B00F, 0xBE16888B, - 0x60000000, 0x3FE827A5, 0x5E94D155, 0x3E288971, - 0x38000000, 0x3FE833BC, 0x099F3E5E, 0x3E2AEEB2, - 0x20000000, 0x3FE83FD9, 0x3FF60B7C, 0xBE23B922, - 0x14000000, 0x3FE84BFC, 0x2DBD8012, 0xBDF7D3B1, - 0x1C000000, 0x3FE85825, 0xA8872BEB, 0xBDF24BA3, - 0x38000000, 0x3FE86454, 0x01AA18A7, 0x3E2EFE04, - 0x70000000, 0x3FE87089, 0x944496A2, 0x3E21986C, - 0xC4000000, 0x3FE87CC4, 0xB71FFAFF, 0x3E096A8B, - 0x38000000, 0x3FE88906, 0xBC4C7AC5, 0xBE21CE0A, - 0xCC000000, 0x3FE8954D, 0xBAC02491, 0xBE076F45, - 0x84000000, 0x3FE8A19B, 0xD922B925, 0x3E2B4FA2, - 0x68000000, 0x3FE8ADEF, 0x641863AF, 0x3DF759DB, - 0x78000000, 0x3FE8BA49, 0xC6AB5E04, 0xBE2DB97C, - 0xB4000000, 0x3FE8C6A9, 0xE2156713, 0xBE25364C, - 0x20000000, 0x3FE8D310, 0x862BEFF7, 0x3E1BEB7C, - 0xC4000000, 0x3FE8DF7C, 0x1CEA33A5, 0xBDF4DD0C, - 0xA0000000, 0x3FE8EBEF, 0x51797D47, 0xBE2537DF, - 0xB4000000, 0x3FE8F868, 0xF0107B28, 0x3E0FB1C4, - 0x08000000, 0x3FE904E8, 0xE01B68BD, 0x3E0AD6A1, - 0x9C000000, 0x3FE9116D, 0x1F78D9D9, 0x3E292117, - 0x78000000, 0x3FE91DF9, 0x4F50E5CF, 0xBE1D75DA, - 0x98000000, 0x3FE92A8B, 0x74959E58, 0x3DE5102B, - 0x04000000, 0x3FE93724, 0xD2216C35, 0xBE01CA50, - 0xBC000000, 0x3FE943C2, 0xB0B05884, 0x3E225BFD, - 0xC8000000, 0x3FE95067, 0x60B7C5C1, 0xBE0F2183, - 0x24000000, 0x3FE95D13, 0xB5860441, 0x3E2FB47A, - 0xDC000000, 0x3FE969C4, 0xE2D4059E, 0xBE01FFD2, - 0xEC000000, 0x3FE9767C, 0x12BB6A8D, 0xBDE9ED72, - 0x58000000, 0x3FE9833B, 0x43BFFB24, 0x3E2B3815, - 0x28000000, 0x3FE99000, 0xEE9EAD1E, 0x3E03FA22, - 0x5C000000, 0x3FE99CCB, 0x377138F7, 0xBE213841, - 0xF4000000, 0x3FE9A99C, 0xDB636C94, 0x3E178105, - 0xF8000000, 0x3FE9B674, 0xF5720122, 0x3E1E5E7A, - 0x6C000000, 0x3FE9C353, 0xA2AC5AAE, 0xBE238BFF, - 0x4C000000, 0x3FE9D038, 0xF93BDBD8, 0x3E270893, - 0xA4000000, 0x3FE9DD23, 0x354B86CF, 0x3DF40420, - 0x74000000, 0x3FE9EA15, 0x88CB06B7, 0xBE2D76D3, - 0xBC000000, 0x3FE9F70D, 0x9ED0EC60, 0xBE251639, - 0x80000000, 0x3FEA040C, 0xE2DDE506, 0x3E1F06E9, - 0xC8000000, 0x3FEA1111, 0x8E6DB477, 0x3E014549, - 0x94000000, 0x3FEA1E1D, 0xF8716509, 0xBDF4BC17, - 0xE8000000, 0x3FEA2B2F, 0xDA723A49, 0xBE2107DB, - 0xC4000000, 0x3FEA3848, 0x986AA369, 0x3E1A932A, - 0x30000000, 0x3FEA4568, 0x41592CDB, 0x3E198092, - 0x30000000, 0x3FEA528E, 0x676BCAB8, 0xBE2E260F, - 0xC0000000, 0x3FEA5FBA, 0x2D5D5610, 0x3DE2E821, - 0xE8000000, 0x3FEA6CED, 0x7DA20167, 0x3E2F7046, - 0xB0000000, 0x3FEA7A27, 0xF9FAAD30, 0xBE1D2832, - 0x14000000, 0x3FEA8768, 0x43FA6C45, 0xBE23F788, - 0x18000000, 0x3FEA94AF, 0xAA082732, 0x3E011E27, - 0xC4000000, 0x3FEAA1FC, 0xC682F0BF, 0xBE20BACB, - 0x18000000, 0x3FEAAF51, 0x7BD08C78, 0xBE2DC7DD, - 0x14000000, 0x3FEABCAC, 0xA3B10F9A, 0x3E2271A2, - 0xC4000000, 0x3FEACA0D, 0x7966F94C, 0xBE15449C, - 0x24000000, 0x3FEAD776, 0x6FD8F3EE, 0x3DD06137, - 0x3C000000, 0x3FEAE4E5, 0x8C5A144A, 0xBE267CD1, - 0x0C000000, 0x3FEAF25B, 0xB59DA94B, 0xBE29E584, - 0x98000000, 0x3FEAFFD7, 0x7B52192F, 0xBE23DFCF, - 0xE4000000, 0x3FEB0D5A, 0x78A76B45, 0xBE1CF2FE, - 0xF4000000, 0x3FEB1AE4, 0x7EC80FF6, 0xBE23A561, - 0xC8000000, 0x3FEB2875, 0x932EED68, 0x3E22C4C9, - 0x68000000, 0x3FEB360D, 0xB5833C97, 0x3E2B085C, - 0xD8000000, 0x3FEB43AB, 0x93B9319A, 0xBE01F093, - 0x18000000, 0x3FEB5151, 0xFABCE670, 0xBE254F01, - 0x28000000, 0x3FEB5EFD, 0x627ABFB0, 0x3E2F24C2, - 0x14000000, 0x3FEB6CB0, 0xE6AC0B48, 0x3E1F1EEC, - 0xDC000000, 0x3FEB7A69, 0x127F9ABC, 0xBE1A8671, - 0x80000000, 0x3FEB882A, 0xC87C73B3, 0xBDCB0C28, - 0x08000000, 0x3FEB95F2, 0x7F2B5A97, 0xBE22E8DD, - 0x74000000, 0x3FEBA3C0, 0x2D22A9D5, 0xBE1B3645, - 0xC8000000, 0x3FEBB195, 0x428F8B88, 0x3E0ADACA, - 0x0C000000, 0x3FEBBF72, 0xCDF9F681, 0xBE2E9E07, - 0x3C000000, 0x3FEBCD55, 0x7FA54ACF, 0xBE08A127, - 0x60000000, 0x3FEBDB3F, 0x8225B385, 0x3E0E92CE, - 0x7C000000, 0x3FEBE930, 0x7BB09485, 0x3DF38C2A, - 0x94000000, 0x3FEBF728, 0xF681FA5F, 0xBE2DFD64, - 0xA4000000, 0x3FEC0527, 0xDCE88BD2, 0x3E2E384D, - 0xBC000000, 0x3FEC132D, 0xFE46A893, 0xBE20F111, - 0xD4000000, 0x3FEC213A, 0xB189BFDA, 0x3E193DA1, - 0xF8000000, 0x3FEC2F4E, 0x0E39FB00, 0xBE20E3A1, - 0x24000000, 0x3FEC3D6A, 0x30F0FAC5, 0x3E1DB044, - 0x64000000, 0x3FEC4B8C, 0x97446B17, 0xBE2BC12C, - 0xB4000000, 0x3FEC59B5, 0x963F4150, 0xBE282696, - 0x18000000, 0x3FEC67E6, 0x3049824B, 0x3E224D26, - 0x98000000, 0x3FEC761D, 0x87F84C7D, 0x3E2C5BA5, - 0x38000000, 0x3FEC845C, 0xC4852339, 0xBDE1D14D, - 0xF8000000, 0x3FEC92A1, 0x5588D9E1, 0xBE1A451E, - 0xDC000000, 0x3FECA0EE, 0x68BFF457, 0xBE1D3B96, - 0xE8000000, 0x3FECAF42, 0x4DADF774, 0xBE18B670, - 0x20000000, 0x3FECBD9E, 0x7FB1FC01, 0xBE1A1548, - 0x88000000, 0x3FECCC00, 0x78FC5AF0, 0xBE273F2E, - 0x20000000, 0x3FECDA6A, 0xA6F4A841, 0x3E1D218F, - 0xF0000000, 0x3FECE8DA, 0x4D002CA0, 0x3E2E0BA9, - 0xFC000000, 0x3FECF752, 0x065EF979, 0x3E20F4BB, - 0x48000000, 0x3FED05D2, 0x11793B33, 0xBE2ED3D5, - 0xD0000000, 0x3FED1458, 0x913341B3, 0x3E115E3C, - 0xA0000000, 0x3FED22E6, 0xB3546109, 0x3DE97C02, - 0xB8000000, 0x3FED317B, 0x1BF898EF, 0x3E087540, - 0x1C000000, 0x3FED4018, 0x346F9641, 0x3E209430, - 0xD0000000, 0x3FED4EBB, 0x88F4B20B, 0x3E2B6DF4, - 0xDC000000, 0x3FED5D66, 0x0CB26035, 0xBE2EC68F, - 0x38000000, 0x3FED6C19, 0x1F44D9C3, 0x3E2CA2C8, - 0xF4000000, 0x3FED7AD2, 0x41704EE0, 0x3E10E6F4, - 0x0C000000, 0x3FED8994, 0x25F8F0E2, 0x3E2F9273, - 0x88000000, 0x3FED985C, 0x318798DE, 0x3E2D041A, - 0x6C000000, 0x3FEDA72C, 0x9349CF58, 0xBE005680, - 0xB8000000, 0x3FEDB603, 0xCF0C934D, 0xBE10F665, - 0x70000000, 0x3FEDC4E2, 0x19461C64, 0x3E166124, - 0x9C000000, 0x3FEDD3C8, 0x405624C8, 0xBE1B2ED6, - 0x3C000000, 0x3FEDE2B6, 0x62171501, 0xBE273A7F, - 0x54000000, 0x3FEDF1AB, 0xE36E1450, 0xBE26022B, - 0xE8000000, 0x3FEE00A7, 0x2E07AE15, 0xBE1C341E, - 0xFC000000, 0x3FEE0FAB, 0x18D0E701, 0xBDFC7EAE, - 0x94000000, 0x3FEE1EB7, 0xECD1FF8B, 0x3E06B34F, - 0xB4000000, 0x3FEE2DCA, 0x6813A649, 0x3E1394A3, - 0x60000000, 0x3FEE3CE5, 0xC1754D14, 0x3E045496, - 0x9C000000, 0x3FEE4C07, 0xF5C6087C, 0xBE180FFF, - 0x68000000, 0x3FEE5B31, 0xADD9A300, 0x3E22FBCD, - 0xCC000000, 0x3FEE6A62, 0xAF0289E5, 0x3E2EC7C7, - 0xCC000000, 0x3FEE799B, 0x3FB3EDD4, 0x3E242182, - 0x6C000000, 0x3FEE88DC, 0x04E39885, 0xBE201304, - 0xAC000000, 0x3FEE9824, 0xE6831D31, 0xBE20D352, - 0x90000000, 0x3FEEA774, 0x618DFCEB, 0x3E1E032D, - 0x20000000, 0x3FEEB6CC, 0xF9BB457E, 0x3E1956A3, - 0x60000000, 0x3FEEC62B, 0x50845DB2, 0xBE2A77E0, - 0x4C000000, 0x3FEED592, 0x47C43858, 0x3E2714F7, - 0xF0000000, 0x3FEEE500, 0x71813A66, 0x3E2EED96, - 0x50000000, 0x3FEEF477, 0x4FB4AA34, 0xBE04CDBE, - 0x6C000000, 0x3FEF03F5, 0x86EB4FF5, 0xBE2774A2, - 0x48000000, 0x3FEF137B, 0xAD43B2D2, 0xBE29DD95, - 0xE8000000, 0x3FEF2308, 0xAC16E506, 0xBE1CADB0, - 0x50000000, 0x3FEF329E, 0x58745C7B, 0x3E12AC33, - 0x88000000, 0x3FEF423B, 0x6EC2D854, 0xBE248118, - 0x8C000000, 0x3FEF51E0, 0x304ACE08, 0x3E26986B, - 0x68000000, 0x3FEF618D, 0x3B09354E, 0x3E126D81, - 0x1C000000, 0x3FEF7142, 0x773C23B3, 0x3DF06AAE, - 0xAC000000, 0x3FEF80FE, 0xD82EF423, 0xBDA105B6, - 0x1C000000, 0x3FEF90C3, 0x465499B8, 0x3DECDEED, - 0x70000000, 0x3FEFA08F, 0xE2EF03AE, 0x3E0AEFD4, - 0xAC000000, 0x3FEFB063, 0x0567B2E7, 0x3E1BD4C0, - 0xD4000000, 0x3FEFC03F, 0x4F97FCBF, 0x3E26AA22, - 0xF0000000, 0x3FEFD023, 0x5E4E88D1, 0xBE2F9420, - 0xFC000000, 0x3FEFE00F, 0x438E52E2, 0xBE254004, - 0x00000000, 0x3FEFF004, 0xEEE93EFC, 0xBE1552AA, - 0x00000000, 0x3FF00000, 0x00000000, 0x00000000, - 0x00000000, 0x3FF00802, 0x4449F507, 0x3E155800, - 0x04000000, 0x3FF01008, 0x882D75D6, 0xBE354AA8, - 0x08000000, 0x3FF01812, 0x3740DE56, 0x3E303610, - 0x14000000, 0x3FF02020, 0x5B0C3264, 0x3E360044, - 0x28000000, 0x3FF02832, 0x0197EDC3, 0x3E3C4C26, - 0x48000000, 0x3FF03048, 0x5046CA09, 0x3E0B103B, - 0x74000000, 0x3FF03862, 0xF9A62624, 0xBE34659C, - 0xAC000000, 0x3FF04080, 0xDD0A8F37, 0xBE254438, - 0xF4000000, 0x3FF048A2, 0x97AFB6E2, 0x3DF256C2, - 0x50000000, 0x3FF050C9, 0x923D25E1, 0xBE3085DF, - 0xC0000000, 0x3FF058F3, 0x5EA3B091, 0xBE3F0A93, - 0x44000000, 0x3FF06122, 0x5D63534C, 0xBE237DE4, - 0xE0000000, 0x3FF06954, 0xFF0C58B7, 0x3E301719, - 0x98000000, 0x3FF0718B, 0x9DF7B665, 0x3E2E8410, - 0x6C000000, 0x3FF079C6, 0x3B127222, 0x3E349CB9, - 0x60000000, 0x3FF08205, 0x98E0BD08, 0x3DF127EC, - 0x74000000, 0x3FF08A48, 0x706CC41F, 0xBE24C1B6, - 0xA8000000, 0x3FF0928F, 0x093044EF, 0x3E334EF9, - 0x04000000, 0x3FF09ADB, 0x56BC6C83, 0xBE1304B1, - 0x84000000, 0x3FF0A32A, 0xB028B984, 0x3E2D383E, - 0x30000000, 0x3FF0AB7E, 0x64E7A202, 0xBE315B1E, - 0x04000000, 0x3FF0B3D6, 0xC678291E, 0xBE0AC1E6, - 0x04000000, 0x3FF0BC32, 0x2F12FFE2, 0x3E3A0418, - 0x38000000, 0x3FF0C492, 0x43D6D302, 0xBE37D617, - 0x98000000, 0x3FF0CCF6, 0x152CC8FA, 0x3E2133F2, - 0x2C000000, 0x3FF0D55F, 0xE966E6B7, 0x3E3CE5D1, - 0xF8000000, 0x3FF0DDCB, 0x7BCACA64, 0x3E1ABF24, - 0xFC000000, 0x3FF0E63C, 0x2E8CDBED, 0xBE3854F6, - 0x38000000, 0x3FF0EEB2, 0x0C32156B, 0xBE3E6463, - 0xAC000000, 0x3FF0F72B, 0xB69772CC, 0x3E365671, - 0x64000000, 0x3FF0FFA9, 0x02B1201A, 0xBE383E9A, - 0x58000000, 0x3FF1082B, 0x50549CC0, 0xBE205962, - 0x90000000, 0x3FF110B1, 0xFFDACA72, 0xBE376BFE, - 0x08000000, 0x3FF1193C, 0x5C43E2F3, 0x3E3C1C59, - 0xCC000000, 0x3FF121CA, 0xF7067C8B, 0xBE26D374, - 0xD4000000, 0x3FF12A5D, 0x4DDAFE1D, 0x3E343CCC, - 0x28000000, 0x3FF132F5, 0x58EBCB7F, 0x3E3D5C16, - 0xCC000000, 0x3FF13B90, 0xB66E8B53, 0xBE2B5D12, - 0xBC000000, 0x3FF14430, 0xB326B482, 0xBE24E919, - 0xFC000000, 0x3FF14CD4, 0xC8AABD43, 0x3E23139A, - 0x90000000, 0x3FF1557D, 0x16743B55, 0x3E30DD8B, - 0x7C000000, 0x3FF15E2A, 0x35904C50, 0xBE31D701, - 0xBC000000, 0x3FF166DB, 0x30E0CA83, 0x3E107F42, - 0x58000000, 0x3FF16F91, 0xDA1B7123, 0xBE24F1F2, - 0x50000000, 0x3FF1784B, 0x0DC79E23, 0xBE3ACAF2, - 0xA4000000, 0x3FF18109, 0x609374EE, 0xBE23DC79, - 0x58000000, 0x3FF189CC, 0x3A40C3B7, 0x3E262CF7, - 0x70000000, 0x3FF19293, 0x5A24F463, 0x3E1D3833, - 0xEC000000, 0x3FF19B5E, 0x8A2E4440, 0x3E2BA9AD, - 0xD0000000, 0x3FF1A42E, 0x61C41828, 0x3DFD8CBC, - 0x1C000000, 0x3FF1AD03, 0x5A4DDF0D, 0x3E1A65E6, - 0xD4000000, 0x3FF1B5DB, 0x9F828DB5, 0xBDE2FDBB, - 0xF8000000, 0x3FF1BEB8, 0xB79B700F, 0x3E2F4EE8, - 0x8C000000, 0x3FF1C79A, 0x0DE1D7E8, 0x3E3ACC35, - 0x94000000, 0x3FF1D080, 0xFF9E20A0, 0x3E11729E, - 0x10000000, 0x3FF1D96B, 0x6C2EA70B, 0xBE300F18, - 0x00000000, 0x3FF1E25A, 0xCE425A35, 0x3DF32E02, - 0x68000000, 0x3FF1EB4D, 0x9A322D12, 0x3E3BDE56, - 0x50000000, 0x3FF1F445, 0xBA737AEF, 0xBE3C3F0D, - 0xB0000000, 0x3FF1FD41, 0xC896DB7A, 0xBE0A2DD0, - 0x90000000, 0x3FF20642, 0xF8B782F6, 0x3E2577B0, - 0xF4000000, 0x3FF20F47, 0x73607FC8, 0xBE2C6DA3, - 0xD8000000, 0x3FF21851, 0xC8917348, 0x3E35F7D1, - 0x44000000, 0x3FF22160, 0xCF9CED69, 0x3E3B6F5C, - 0x3C000000, 0x3FF22A73, 0x85775C2E, 0xBE39967E, - 0xB8000000, 0x3FF2338A, 0x497226D4, 0x3E3B3213, - 0xC4000000, 0x3FF23CA6, 0x30733227, 0x3E3E2710, - 0x60000000, 0x3FF245C7, 0xAF215A72, 0x3E33B8A9, - 0x90000000, 0x3FF24EEC, 0x1365623F, 0xBE3F96B2, - 0x50000000, 0x3FF25816, 0x27DEE202, 0xBE37324F, - 0xA4000000, 0x3FF26144, 0x4E484D87, 0x3E318CD5, - 0x94000000, 0x3FF26A77, 0xA94519E8, 0xBDE3FD37, - 0x1C000000, 0x3FF273AF, 0xEE788C29, 0x3E37132F, - 0x44000000, 0x3FF27CEB, 0xE842E5C0, 0xBE03DDB7, - 0x08000000, 0x3FF2862C, 0xE17C9693, 0x3E37A3FB, - 0x70000000, 0x3FF28F71, 0xAEB3D9A0, 0x3E24EABF, - 0x7C000000, 0x3FF298BB, 0x853B0733, 0xBE13C7B6, - 0x2C000000, 0x3FF2A20A, 0xC7B588B5, 0x3E2D2C80, - 0x88000000, 0x3FF2AB5D, 0x708F3912, 0xBE35B750, - 0x8C000000, 0x3FF2B4B5, 0xD5FD9130, 0xBE291A70, - 0x3C000000, 0x3FF2BE12, 0x0CCF9F73, 0x3E2EE937, - 0xA0000000, 0x3FF2C773, 0xD42CF76C, 0xBE3C3F0C, - 0xB0000000, 0x3FF2D0D9, 0x60763D61, 0x3E35DD54, - 0x78000000, 0x3FF2DA44, 0xE7D6AA3B, 0x3E26C418, - 0xF8000000, 0x3FF2E3B3, 0x6FB9B7A8, 0xBE3605C6, - 0x2C000000, 0x3FF2ED28, 0x24DCDDF5, 0x3E3763D4, - 0x20000000, 0x3FF2F6A1, 0xA8EC1AA8, 0xBE1A411E, - 0xD0000000, 0x3FF3001E, 0x1FE8546F, 0xBE23FCA1, - 0x40000000, 0x3FF309A1, 0x3AAEE75E, 0xBE29DF0D, - 0x70000000, 0x3FF31328, 0x3C2C4206, 0x3E36A5D6, - 0x68000000, 0x3FF31CB4, 0xB4C979B0, 0x3E1B7A3E, - 0x28000000, 0x3FF32645, 0x706CD593, 0xBE36157D, - 0xB0000000, 0x3FF32FDA, 0x8DA4C646, 0xBE39F357, - 0x04000000, 0x3FF33975, 0xD575FE6F, 0xBE3E64DE, - 0x24000000, 0x3FF34314, 0x44D008E0, 0x3E07F9E3, - 0x18000000, 0x3FF34CB8, 0x5A563E77, 0xBE2E94F9, - 0xDC000000, 0x3FF35660, 0x2475EF19, 0x3E314DC2, - 0x78000000, 0x3FF3600E, 0xA33AC606, 0x3E26D623, - 0xEC000000, 0x3FF369C0, 0xC05B3160, 0x3E170F86, - 0x3C000000, 0x3FF37378, 0xDB0AE31A, 0xBE38DDFE, - 0x64000000, 0x3FF37D34, 0x5706B570, 0x3E3662A9, - 0x70000000, 0x3FF386F5, 0x6770731E, 0xBE1625E4, - 0x5C000000, 0x3FF390BB, 0x62971091, 0xBE1678F1, - 0x2C000000, 0x3FF39A86, 0xD045CB0C, 0xBE061F7C, - 0xE4000000, 0x3FF3A455, 0x568B1CA2, 0xBE35CF51, - 0x84000000, 0x3FF3AE2A, 0x7FB61F58, 0xBE378185, - 0x0C000000, 0x3FF3B804, 0x4FA133AF, 0x3E3F77F4, - 0x88000000, 0x3FF3C1E2, 0xB00B73FE, 0xBE22F96A, - 0xF0000000, 0x3FF3CBC5, 0x1EB4CE2F, 0x3E351A64, - 0x50000000, 0x3FF3D5AE, 0xD3755639, 0xBE3D3516, - 0xA0000000, 0x3FF3DF9B, 0x43E8C10E, 0x3E1CD938, - 0xEC000000, 0x3FF3E98D, 0x455C8842, 0xBE35EE23, - 0x30000000, 0x3FF3F385, 0x96C9F4ED, 0xBE29B282, - 0x70000000, 0x3FF3FD81, 0x3168CC0B, 0x3E24A40E, - 0xB0000000, 0x3FF40782, 0x86C72839, 0x3E3784BC, - 0xF4000000, 0x3FF41188, 0x0785D847, 0x3E061F19, - 0x3C000000, 0x3FF41B94, 0xE654A9C9, 0xBE27AEF2, - 0x88000000, 0x3FF425A4, 0xF9E4C1BA, 0x3E33DFC3, - 0xE0000000, 0x3FF42FB9, 0x593D0C75, 0x3E2455A8, - 0x44000000, 0x3FF439D4, 0x238B65D1, 0xBDE41D4E, - 0xB4000000, 0x3FF443F3, 0x454CBECB, 0x3E3BE616, - 0x38000000, 0x3FF44E18, 0x931C5332, 0x3E207B3C, - 0xD0000000, 0x3FF45841, 0x7615DCC9, 0xBE330846, - 0x7C000000, 0x3FF46270, 0xE497F84E, 0xBE2A8A7B, - 0x40000000, 0x3FF46CA4, 0xF737AF78, 0x3E020B50, - 0x20000000, 0x3FF476DD, 0xE34AFBD3, 0x3E116B19, - 0x20000000, 0x3FF4811B, 0x841EDB52, 0xBE3E15A7, - 0x3C000000, 0x3FF48B5E, 0x33B3DE1E, 0x3E0F40C3, - 0x7C000000, 0x3FF495A6, 0x92EFEE02, 0x3E33607F, - 0xE4000000, 0x3FF49FF3, 0x14F7E168, 0xBE1A2DB5, - 0x70000000, 0x3FF4AA46, 0x3EBA1C94, 0x3E3F59EC, - 0x2C000000, 0x3FF4B49E, 0x8B9AE885, 0xBE31A539, - 0x10000000, 0x3FF4BEFB, 0xF13C8C95, 0x3E2FAC0B, - 0x28000000, 0x3FF4C95D, 0xF8B74775, 0xBE32C0BB, - 0x70000000, 0x3FF4D3C4, 0x4F9474BB, 0xBE2FC24E, - 0xEC000000, 0x3FF4DE30, 0x09DA911F, 0x3E008F30, - 0xA0000000, 0x3FF4E8A2, 0xBAF8D98B, 0x3E2994C1, - 0x90000000, 0x3FF4F319, 0x18648D0A, 0xBE17C38C, - 0xBC000000, 0x3FF4FD95, 0xF22F8698, 0xBE288852, - 0x28000000, 0x3FF50817, 0x30A2C153, 0xBE3C3EC3, - 0xD4000000, 0x3FF5129D, 0x968492AA, 0xBE27B606, - 0xC4000000, 0x3FF51D29, 0x61101629, 0x3E2E0396, - 0xFC000000, 0x3FF527BA, 0xDAEEAB38, 0x3E3E876F, - 0x80000000, 0x3FF53251, 0xED945B30, 0x3E29F59E, - 0x50000000, 0x3FF53CED, 0x0B4AE3F1, 0x3E12D7DA, - 0x70000000, 0x3FF5478E, 0x5FB946D0, 0xBE2FAFB8, - 0xE0000000, 0x3FF55234, 0x87D80C66, 0xBE18A8B3, - 0xA4000000, 0x3FF55CE0, 0x764CF85C, 0x3E28B18F, - 0xC0000000, 0x3FF56791, 0x2BDBC6F4, 0x3E326017, - 0x38000000, 0x3FF57248, 0x53D523FE, 0xBE229F98, - 0x0C000000, 0x3FF57D04, 0x4D9B8720, 0xBE3BDD08, - 0x3C000000, 0x3FF587C5, 0x09D8749E, 0x3E169EBC, - 0xD0000000, 0x3FF5928B, 0x339C2080, 0x3E190C8C, - 0xC8000000, 0x3FF59D57, 0xDE75E9CA, 0x3E310FA4, - 0x28000000, 0x3FF5A829, 0x1097F186, 0x3E313D18, - 0xF4000000, 0x3FF5B2FF, 0xD51C23F6, 0xBE2BDE04, - 0x28000000, 0x3FF5BDDC, 0x8938C386, 0x3E3EE67E, - 0xD0000000, 0x3FF5C8BD, 0x47DF6575, 0x3E0973B8, - 0xE8000000, 0x3FF5D3A4, 0x1DB97781, 0x3E24DF02, - 0x78000000, 0x3FF5DE91, 0xAC4AECDC, 0xBE3FBA00, - 0x7C000000, 0x3FF5E983, 0x939F646A, 0xBE2F37AF, - 0xFC000000, 0x3FF5F47A, 0x58A6EEE9, 0xBE396DEF, - 0xF8000000, 0x3FF5FF77, 0xE3613C7B, 0xBE315248, - 0x74000000, 0x3FF60A7A, 0xF1553706, 0xBE26A9E2, - 0x74000000, 0x3FF61582, 0xAE4D7CB6, 0xBE3B6BF6, - 0xF8000000, 0x3FF6208F, 0x9EB5EBA5, 0xBE35775B, - 0x04000000, 0x3FF62BA3, 0xC1E43506, 0xBE2A821B, - 0x9C000000, 0x3FF636BB, 0x7B2D8CF4, 0xBE367CDA, - 0xC0000000, 0x3FF641D9, 0x3E907A1D, 0xBE13218B, - 0x74000000, 0x3FF64CFD, 0x7BF5DFE4, 0x3E3454EE, - 0xC0000000, 0x3FF65826, 0x6366C5FD, 0xBE3E960F, - 0x9C000000, 0x3FF66355, 0x8B43C17E, 0x3E2E378F, - 0x14000000, 0x3FF66E8A, 0xA4306535, 0x3E244BE0, - 0x28000000, 0x3FF679C4, 0x8DF63D6E, 0xBDE4B6C1, - 0xD8000000, 0x3FF68503, 0xE6A239CF, 0x3E3BA122, - 0x2C000000, 0x3FF69049, 0x59FB5F30, 0x3E27F286, - 0x24000000, 0x3FF69B94, 0x971D3970, 0xBE044041 } }; - -static const union { - int4 i[2048]; - double x[1024]; -} fine = { .i = { - 0x00000000, 0x3FF00000, 0x00000000, 0x00000000, - 0x00000000, 0x3FF00004, 0x55556AAB, 0x3DA00001, - 0x00000000, 0x3FF00008, 0xAAAB0000, 0x3DC00002, - 0x00000000, 0x3FF0000C, 0x8000D800, 0x3DD20004, - 0x00000000, 0x3FF00010, 0x5556AAAB, 0x3DE00005, - 0x00000000, 0x3FF00014, 0x6AADEC01, 0x3DE9000A, - 0x00000000, 0x3FF00018, 0x00036001, 0x3DF20009, - 0x00000000, 0x3FF0001C, 0x4AB0EB58, 0x3DF8800E, - 0x00000000, 0x3FF00020, 0xAAB00002, 0x3E00000A, - 0x00000000, 0x3FF00024, 0x30088B04, 0x3E04400F, - 0x00000000, 0x3FF00028, 0xD5625AB1, 0x3E090014, - 0x00000000, 0x3FF0002C, 0xBABDBB0A, 0x3E0E401B, - 0x00000000, 0x3FF00030, 0x000D8008, 0x3E120012, - 0x00000000, 0x3FF00034, 0xE2BD42E1, 0x3E152016, - 0x00000000, 0x3FF00038, 0x956E5812, 0x3E18801C, - 0x00000000, 0x3FF0003C, 0x2820F599, 0x3E1C2023, - 0x00000000, 0x3FF00040, 0x556AAABC, 0x3E200015, - 0x00000000, 0x3FF00044, 0x96C5DAD7, 0x3E221019, - 0x00000000, 0x3FF00048, 0x60222C1F, 0x3E24401E, - 0x00000000, 0x3FF0004C, 0xB97FC193, 0x3E269023, - 0x00000000, 0x3FF00050, 0xAADEC034, 0x3E290029, - 0x00000000, 0x3FF00054, 0x3C3F4F02, 0x3E2B9030, - 0x00000000, 0x3FF00058, 0x75A196FF, 0x3E2E4037, - 0x00000000, 0x3FF0005C, 0xAF82E194, 0x3E30881F, - 0x00000000, 0x3FF00060, 0x00360041, 0x3E320024, - 0x00000000, 0x3FF00064, 0xB0EA3F05, 0x3E338828, - 0x00000000, 0x3FF00068, 0xC59FB661, 0x3E35202D, - 0x00000000, 0x3FF0006C, 0x42567FD5, 0x3E36C833, - 0x00000000, 0x3FF00070, 0x2B0EB5E1, 0x3E388039, - 0x00000000, 0x3FF00074, 0x83C87407, 0x3E3A483F, - 0x00000000, 0x3FF00078, 0x5083D6C6, 0x3E3C2046, - 0x00000000, 0x3FF0007C, 0x9540FB9E, 0x3E3E084D, - 0x04000000, 0x3FF00080, 0xA9FFFEEF, 0xBE3FFFAA, - 0x04000000, 0x3FF00084, 0x693EF962, 0xBE3DF7A2, - 0x04000000, 0x3FF00088, 0xA47BD339, 0xBE3BDF99, - 0x04000000, 0x3FF0008C, 0x57B66AF5, 0xBE39B790, - 0x04000000, 0x3FF00090, 0x7EEE9E14, 0xBE377F86, - 0x04000000, 0x3FF00094, 0x16244916, 0xBE35377C, - 0x04000000, 0x3FF00098, 0x1957477B, 0xBE32DF71, - 0x04000000, 0x3FF0009C, 0x848773C2, 0xBE307765, - 0x04000000, 0x3FF000A0, 0xA7694ED3, 0xBE2BFEB2, - 0x04000000, 0x3FF000A4, 0x05BD75E2, 0xBE26EE99, - 0x04000000, 0x3FF000A8, 0x1C0B0BB1, 0xBE21BE7E, - 0x04000000, 0x3FF000AC, 0xC4A37A79, 0xBE18DCC3, - 0x04000000, 0x3FF000B0, 0x4244D60F, 0xBE0BF911, - 0x04000000, 0x3FF000B4, 0xEC91D848, 0xBDE6E255, - 0x04000000, 0x3FF000B8, 0xEC1B8F0C, 0x3E0107EB, - 0x04000000, 0x3FF000BC, 0x89BE52AA, 0x3E142439, - 0x04000000, 0x3FF000C0, 0x06C01033, 0x3E200240, - 0x04000000, 0x3FF000C4, 0xC8A9F760, 0x3E261264, - 0x04000000, 0x3FF000C8, 0x129D3FDE, 0x3E2C428B, - 0x04000000, 0x3FF000CC, 0x764D2658, 0x3E314959, - 0x04000000, 0x3FF000D0, 0x2F50C16C, 0x3E34816E, - 0x04000000, 0x3FF000D4, 0xB859A4AB, 0x3E37C983, - 0x04000000, 0x3FF000D8, 0x15680499, 0x3E3B219A, - 0x04000000, 0x3FF000DC, 0x4A7C16B5, 0x3E3E89B1, - 0x08000000, 0x3FF000E0, 0xA469EE7E, 0xBE3DFE36, - 0x08000000, 0x3FF000E4, 0xB349D37F, 0xBE3A761D, - 0x08000000, 0x3FF000E8, 0xDE235FCD, 0xBE36DE03, - 0x08000000, 0x3FF000EC, 0x20F659E6, 0xBE3335E9, - 0x08000000, 0x3FF000F0, 0xEF850E8F, 0xBE2EFB9A, - 0x08000000, 0x3FF000F4, 0xBD0F58E2, 0xBE276B61, - 0x08000000, 0x3FF000F8, 0x45163381, 0xBE1F764D, - 0x08000000, 0x3FF000FC, 0x5FDF589A, 0xBE0FABA6, - 0x08000000, 0x3FF00100, 0xABBBBE94, 0x3D8555AA, - 0x08000000, 0x3FF00104, 0xDABB690B, 0x3E102B2C, - 0x08000000, 0x3FF00108, 0x7820FBA0, 0x3E2045D9, - 0x08000000, 0x3FF0010C, 0x92F54742, 0x3E28961E, - 0x08000000, 0x3FF00110, 0xE2ED8E39, 0x3E308332, - 0x08000000, 0x3FF00114, 0x8C698119, 0x3E34CB57, - 0x08000000, 0x3FF00118, 0x49EEC0C4, 0x3E39237D, - 0x08000000, 0x3FF0011C, 0x1F7D92BC, 0x3E3D8BA4, - 0x0C000000, 0x3FF00120, 0xEEE9C27D, 0xBE3DFC33, - 0x0C000000, 0x3FF00124, 0xDD46F763, 0xBE39740A, - 0x0C000000, 0x3FF00128, 0xA799C375, 0xBE34DBE0, - 0x0C000000, 0x3FF0012C, 0x49E1DD2F, 0xBE3033B5, - 0x0C000000, 0x3FF00130, 0x803DF41F, 0xBE26F711, - 0x0C000000, 0x3FF00134, 0x19433A4C, 0xBE1ACD6C, - 0x0C000000, 0x3FF00138, 0x8770E36F, 0xBDFDB2C1, - 0x0C000000, 0x3FF0013C, 0x6B74A43E, 0x3E086820, - 0x0C000000, 0x3FF00140, 0xDEC0D058, 0x3E200A6A, - 0x0C000000, 0x3FF00144, 0x22BD7872, 0x3E2A1AD0, - 0x0C000000, 0x3FF00148, 0xF769E132, 0x3E32259B, - 0x0C000000, 0x3FF0014C, 0x2582289A, 0x3E374DD1, - 0x0C000000, 0x3FF00150, 0x9FA7E4F4, 0x3E3C8607, - 0x10000000, 0x3FF00154, 0x9624963C, 0xBE3E31C0, - 0x10000000, 0x3FF00158, 0x77E2F472, 0xBE38D987, - 0x10000000, 0x3FF0015C, 0x0192E02C, 0xBE33714D, - 0x10000000, 0x3FF00160, 0x5E6805CB, 0xBE2BF222, - 0x10000000, 0x3FF00164, 0xF98C0A34, 0xBE20E1A7, - 0x10000000, 0x3FF00168, 0x32447238, 0xBE06C4AB, - 0x10000000, 0x3FF0016C, 0xC225D8C1, 0x3E067D54, - 0x10000000, 0x3FF00170, 0x05C4630F, 0x3E210FD8, - 0x10000000, 0x3FF00174, 0xBB206115, 0x3E2CA05D, - 0x10000000, 0x3FF00178, 0x2C4F14A6, 0x3E342873, - 0x10000000, 0x3FF0017C, 0xF31F3B5E, 0x3E3A10B8, - 0x14000000, 0x3FF00180, 0xC9FEFCC9, 0xBE3FF6FF, - 0x14000000, 0x3FF00184, 0x070B344A, 0xBE39EEB7, - 0x14000000, 0x3FF00188, 0xC0050AA2, 0xBE33D66C, - 0x14000000, 0x3FF0018C, 0xE1D83C97, 0xBE2B5C41, - 0x14000000, 0x3FF00190, 0x57003305, 0xBE1DD74E, - 0x14000000, 0x3FF00194, 0xA80727F1, 0xBDF2D84A, - 0x14000000, 0x3FF00198, 0x534C5401, 0x3E14AB2F, - 0x14000000, 0x3FF0019C, 0xD875DE83, 0x3E27263B, - 0x14000000, 0x3FF001A0, 0x9FB782CA, 0x3E320B71, - 0x14000000, 0x3FF001A4, 0xF349371F, 0x3E3893C6, - 0x14000000, 0x3FF001A8, 0xEAF074C6, 0x3E3F2C1D, - 0x18000000, 0x3FF001AC, 0x75525ABC, 0xBE3A2B89, - 0x18000000, 0x3FF001B0, 0x297ECCE2, 0xBE33732F, - 0x18000000, 0x3FF001B4, 0x5B28EC49, 0xBE2955A6, - 0x18000000, 0x3FF001B8, 0xF64BA7FD, 0xBE1749D5, - 0x18000000, 0x3FF001BC, 0xA8645141, 0x3DF15E9E, - 0x18000000, 0x3FF001C0, 0x1D6F0B37, 0x3E201C96, - 0x18000000, 0x3FF001C4, 0xE6028E39, 0x3E2E2D5B, - 0x18000000, 0x3FF001C8, 0x9B63FA1E, 0x3E362F12, - 0x18000000, 0x3FF001CC, 0x0BE01026, 0x3E3D5779, - 0x1C000000, 0x3FF001D0, 0xB78A0445, 0xBE3B701E, - 0x1C000000, 0x3FF001D4, 0xAAD9CF9D, 0xBE3427B4, - 0x1C000000, 0x3FF001D8, 0x941DBAB5, 0xBE299E91, - 0x1C000000, 0x3FF001DC, 0x44A2DFDD, 0xBE159B6C, - 0x1C000000, 0x3FF001E0, 0x1EC8B89C, 0x3E008CA4, - 0x1C000000, 0x3FF001E4, 0xF1EE0E9A, 0x3E23340B, - 0x1C000000, 0x3FF001E8, 0x5231913C, 0x3E313279, - 0x1C000000, 0x3FF001EC, 0x93892E68, 0x3E38DAEE, - 0x20000000, 0x3FF001F0, 0x3F01A6A8, 0xBE3F6C9A, - 0x20000000, 0x3FF001F4, 0x216E726C, 0xBE37A421, - 0x20000000, 0x3FF001F8, 0x1F7970B9, 0xBE2F974C, - 0x20000000, 0x3FF001FC, 0x17AFEBC8, 0xBE1F8CA4, - 0x20000000, 0x3FF00200, 0x04445B06, 0x3DB55600, - 0x20000000, 0x3FF00204, 0x0C290A26, 0x3E203BAE, - 0x20000000, 0x3FF00208, 0x104547BD, 0x3E30365A, - 0x20000000, 0x3FF0020C, 0x22970DE3, 0x3E385EDF, - 0x24000000, 0x3FF00210, 0xBEF5A5F4, 0xBE3F6899, - 0x24000000, 0x3FF00214, 0x90605040, 0xBE372010, - 0x24000000, 0x3FF00218, 0x9B50D8EE, 0xBE2D8F0A, - 0x24000000, 0x3FF0021C, 0xCB35D444, 0xBE197BDF, - 0x24000000, 0x3FF00220, 0x2188E3D5, 0x3E00CCBC, - 0x24000000, 0x3FF00224, 0x36A79F6A, 0x3E254452, - 0x24000000, 0x3FF00228, 0xD69B2D28, 0x3E333ABC, - 0x24000000, 0x3FF0022C, 0xBA07BE5B, 0x3E3BE352, - 0x28000000, 0x3FF00230, 0x3665F227, 0xBE3B6415, - 0x28000000, 0x3FF00234, 0xF6AD58D5, 0xBE329B7A, - 0x28000000, 0x3FF00238, 0x059BD24A, 0xBE2385BD, - 0x28000000, 0x3FF0023C, 0xD8E2B1B4, 0xBDEB47FA, - 0x28000000, 0x3FF00240, 0x22CF60F6, 0x3E203CC2, - 0x28000000, 0x3FF00244, 0x39BEF87F, 0x3E312704, - 0x28000000, 0x3FF00248, 0xA63F5309, 0x3E3A3FA9, - 0x2C000000, 0x3FF0024C, 0xA516AE5E, 0xBE3C97AE, - 0x2C000000, 0x3FF00250, 0xA442792A, 0xBE335F04, - 0x2C000000, 0x3FF00254, 0xA686F3A2, 0xBE242CB0, - 0x2C000000, 0x3FF00258, 0xC3237903, 0xBDE7B535, - 0x2C000000, 0x3FF0025C, 0x9E7A6CF7, 0x3E21560E, - 0x2C000000, 0x3FF00260, 0xA8C01385, 0x3E3223BA, - 0x2C000000, 0x3FF00264, 0x627012DF, 0x3E3BAC70, - 0x30000000, 0x3FF00268, 0x7FB232EA, 0xBE3ABAD7, - 0x30000000, 0x3FF0026C, 0xF9A6244B, 0xBE31121C, - 0x30000000, 0x3FF00270, 0x1DAC9AE4, 0xBE1D6580, - 0x30000000, 0x3FF00274, 0xD7FB0AC3, 0x3E037AFA, - 0x30000000, 0x3FF00278, 0x633420EB, 0x3E289042, - 0x30000000, 0x3FF0027C, 0x8065842A, 0x3E3630E5, - 0x34000000, 0x3FF00280, 0xB49DA4FF, 0xBE3FD653, - 0x34000000, 0x3FF00284, 0x696ECB76, 0xBE35CD8A, - 0x34000000, 0x3FF00288, 0x341A9D63, 0xBE27697D, - 0x34000000, 0x3FF0028C, 0x2788D238, 0xBDF8BF04, - 0x34000000, 0x3FF00290, 0x42A03782, 0x3E2159C1, - 0x34000000, 0x3FF00294, 0x154D4F89, 0x3E32F5B4, - 0x34000000, 0x3FF00298, 0x1D7FB2C1, 0x3E3D4E8A, - 0x38000000, 0x3FF0029C, 0x42181508, 0xBE38489D, - 0x38000000, 0x3FF002A0, 0x0AF2C28C, 0xBE2B9F84, - 0x38000000, 0x3FF002A4, 0x451C5357, 0xBE0A3721, - 0x38000000, 0x3FF002A8, 0x61A8605E, 0x3E1D47F1, - 0x38000000, 0x3FF002AC, 0x81B02FCF, 0x3E31FADF, - 0x38000000, 0x3FF002B0, 0x572F674A, 0x3E3CB3C5, - 0x3C000000, 0x3FF002B4, 0x231795EA, 0xBE388352, - 0x3C000000, 0x3FF002B8, 0xD248367A, 0xBE2B54CD, - 0x3C000000, 0x3FF002BC, 0xB7ABD90D, 0xBE060BC7, - 0x3C000000, 0x3FF002C0, 0x6EE9F1EF, 0x3E206EEF, - 0x3C000000, 0x3FF002C4, 0x261BF09E, 0x3E33406B, - 0x3C000000, 0x3FF002C8, 0x59001C60, 0x3E3E5961, - 0x40000000, 0x3FF002CC, 0xABDDD232, 0xBE367DA5, - 0x40000000, 0x3FF002D0, 0xC8FA5113, 0xBE268953, - 0x40000000, 0x3FF002D4, 0x8B33A701, 0x3D9152CC, - 0x40000000, 0x3FF002D8, 0x3E058570, 0x3E26BAAC, - 0x40000000, 0x3FF002DC, 0x63236E71, 0x3E36C65A, - 0x44000000, 0x3FF002E0, 0x7C7A795C, 0xBE3DC09E, - 0x44000000, 0x3FF002E4, 0x7BD63D1D, 0xBE323794, - 0x44000000, 0x3FF002E8, 0x5BBC9105, 0xBE1A7A1E, - 0x44000000, 0x3FF002EC, 0xD8EE2B1B, 0x3E142A20, - 0x44000000, 0x3FF002F0, 0xEFAA8A8D, 0x3E30C39A, - 0x44000000, 0x3FF002F4, 0x995E96A2, 0x3E3C8CB0, - 0x48000000, 0x3FF002F8, 0xC8A79469, 0xBE379A36, - 0x48000000, 0x3FF002FC, 0x64CE7203, 0xBE276236, - 0x48000000, 0x3FF00300, 0x0819DA68, 0x3DD200D8, - 0x48000000, 0x3FF00304, 0xE5E018D4, 0x3E28A249, - 0x48000000, 0x3FF00308, 0x8A087692, 0x3E386A49, - 0x4C000000, 0x3FF0030C, 0xD695988B, 0xBE3B6C8E, - 0x4C000000, 0x3FF00310, 0x55D2BCBA, 0xBE2E66C8, - 0x4C000000, 0x3FF00314, 0x7790BA7A, 0xBE0751B3, - 0x4C000000, 0x3FF00318, 0xC2A20261, 0x3E22DDF4, - 0x4C000000, 0x3FF0031C, 0x49E0B0B5, 0x3E35D82E, - 0x50000000, 0x3FF00320, 0xB142422E, 0xBE3DAE9A, - 0x50000000, 0x3FF00324, 0x8C170FE6, 0xBE312560, - 0x50000000, 0x3FF00328, 0x0A73BF77, 0xBE12308D, - 0x50000000, 0x3FF0032C, 0x5E59CEFA, 0x3E203A3A, - 0x50000000, 0x3FF00330, 0xCD4740BF, 0x3E34D660, - 0x54000000, 0x3FF00334, 0x644D1883, 0xBE3E6058, - 0x54000000, 0x3FF00338, 0x618F57B6, 0xBE31870E, - 0x54000000, 0x3FF0033C, 0x99FABD0F, 0xBE127704, - 0x54000000, 0x3FF00340, 0xA1CB5ECF, 0x3E20B71E, - 0x54000000, 0x3FF00344, 0x089E93E1, 0x3E3564E3, - 0x58000000, 0x3FF00348, 0xFB533142, 0xBE3D81C5, - 0x58000000, 0x3FF0034C, 0xB6EECE6C, 0xBE30586B, - 0x58000000, 0x3FF00350, 0x319B883E, 0xBE08F871, - 0x58000000, 0x3FF00354, 0x75BF7503, 0x3E2454A5, - 0x58000000, 0x3FF00358, 0xF04B88C5, 0x3E3783B6, - 0x5C000000, 0x3FF0035C, 0x81EF30A7, 0xBE3B12E1, - 0x5C000000, 0x3FF00360, 0x2F9F3657, 0xBE2B32ED, - 0x5C000000, 0x3FF00364, 0x54DF31BC, 0xBDB0084D, - 0x5C000000, 0x3FF00368, 0xC303B7B9, 0x3E2B12D2, - 0x5C000000, 0x3FF0036C, 0x78B56F97, 0x3E3B32DE, - 0x60000000, 0x3FF00370, 0x03B9496C, 0xBE3713A9, - 0x60000000, 0x3FF00374, 0x1F92E726, 0xBE22945A, - 0x60000000, 0x3FF00378, 0x621736DF, 0x3E123D49, - 0x60000000, 0x3FF0037C, 0x3935580D, 0x3E3278D5, - 0x64000000, 0x3FF00380, 0x69B9F5FB, 0xBE3F8DA4, - 0x64000000, 0x3FF00384, 0x8C473CC8, 0xBE31841A, - 0x64000000, 0x3FF00388, 0x538CDE07, 0xBE0B5469, - 0x64000000, 0x3FF0038C, 0x7F8F9D65, 0x3E257E07, - 0x64000000, 0x3FF00390, 0x3665E52B, 0x3E38F898, - 0x68000000, 0x3FF00394, 0xC29674BD, 0xBE38BDCF, - 0x68000000, 0x3FF00398, 0x4E58B4D9, 0xBE24C868, - 0x68000000, 0x3FF0039C, 0x329466D7, 0x3E1015AC, - 0x68000000, 0x3FF003A0, 0xDCDECE44, 0x3E327F0D, - 0x6C000000, 0x3FF003A4, 0xB27E5528, 0xBE3EF74B, - 0x6C000000, 0x3FF003A8, 0x9D7167F2, 0xBE305DA1, - 0x6C000000, 0x3FF003AC, 0xFF980820, 0xBDFB3F3D, - 0x6C000000, 0x3FF003B0, 0x13D49789, 0x3E2A0B7B, - 0x6C000000, 0x3FF003B4, 0xA43AE87C, 0x3E3BCF72, - 0x70000000, 0x3FF003B8, 0x8D06BDC0, 0xBE3556D4, - 0x70000000, 0x3FF003BC, 0x1766E54D, 0xBE19B460, - 0x70000000, 0x3FF003C0, 0x7B85C8BA, 0x3E211950, - 0x70000000, 0x3FF003C4, 0x41D00AED, 0x3E37966C, - 0x74000000, 0x3FF003C8, 0xF5B15507, 0xBE394FCB, - 0x74000000, 0x3FF003CC, 0xC98093C4, 0xBE244C00, - 0x74000000, 0x3FF003D0, 0xE2907BDF, 0x3E144F3B, - 0x74000000, 0x3FF003D4, 0x267CD924, 0x3E345DA2, - 0x78000000, 0x3FF003D8, 0xD73526C0, 0xBE3C4886, - 0x78000000, 0x3FF003DC, 0xF8E1D62E, 0xBE29BD57, - 0x78000000, 0x3FF003E0, 0xD65415E1, 0x3E04D995, - 0x78000000, 0x3FF003E4, 0x527E1A58, 0x3E322515, - 0x7C000000, 0x3FF003E8, 0x31552BA5, 0xBE3E4104, - 0x7C000000, 0x3FF003EC, 0x995CAB3B, 0xBE2D2E33, - 0x7C000000, 0x3FF003F0, 0x473970DC, 0x3DF22D48, - 0x7C000000, 0x3FF003F4, 0xC61195FC, 0x3E30ECC6, - 0x80000000, 0x3FF003F8, 0x03D35C34, 0xBE3F3943, - 0x80000000, 0x3FF003FC, 0xAA7483C7, 0xBE2E9E91, - 0x80000000, 0x3FF00400, 0xBBBC71CE, 0x3DE556AA, - 0x80000000, 0x3FF00404, 0x817613C1, 0x3E30B4B7, - 0x84000000, 0x3FF00408, 0x4E70B0AC, 0xBE3F3142, - 0x84000000, 0x3FF0040C, 0x2BAAD02F, 0xBE2E0E70, - 0x84000000, 0x3FF00410, 0xF48F01F2, 0x3DF32D62, - 0x84000000, 0x3FF00414, 0x84EB5B98, 0x3E317CE8, - 0x88000000, 0x3FF00418, 0x10ED210B, 0xBE3E2901, - 0x88000000, 0x3FF0041C, 0x1C7F0051, 0xBE2B7DCD, - 0x88000000, 0x3FF00420, 0x87AA2706, 0x3E05D9C0, - 0x88000000, 0x3FF00424, 0xD0B235B3, 0x3E33455A, - 0x8C000000, 0x3FF00428, 0x4B07A510, 0xBE3C207E, - 0x8C000000, 0x3FF0042C, 0x7C6E838B, 0xBE26ECA6, - 0x8C000000, 0x3FF00430, 0xEC91A8D5, 0x3E150F6F, - 0x8C000000, 0x3FF00434, 0x650C6A83, 0x3E360E0F, - 0x90000000, 0x3FF00438, 0xFC7E3439, 0xBE3917B8, - 0x90000000, 0x3FF0043C, 0x4AF4C8B6, 0xBE205AFA, - 0x90000000, 0x3FF00440, 0xDC31D181, 0x3E219985, - 0x90000000, 0x3FF00444, 0x423CC2BE, 0x3E39D707, - 0x94000000, 0x3FF00448, 0x250DC5BF, 0xBE350EB0, - 0x94000000, 0x3FF0044C, 0x1E2CF893, 0xBE0F231A, - 0x94000000, 0x3FF00450, 0xD42C92D4, 0x3E2AABDB, - 0x94000000, 0x3FF00454, 0x6887075B, 0x3E3EA043, - 0x98000000, 0x3FF00458, 0xC472509B, 0xBE300562, - 0x98000000, 0x3FF0045C, 0x72B572E0, 0x3DF64FB6, - 0x98000000, 0x3FF00460, 0xEF61155C, 0x3E32DF5D, - 0x9C000000, 0x3FF00464, 0x27CFFE6A, 0xBE3B963B, - 0x9C000000, 0x3FF00468, 0xB4CD96FE, 0xBE23F79F, - 0x9C000000, 0x3FF0046C, 0x6E771F13, 0x3E1EBA7F, - 0x9C000000, 0x3FF00470, 0xFE3ED608, 0x3E396913, - 0xA0000000, 0x3FF00474, 0x6E82850F, 0xBE34CC73, - 0xA0000000, 0x3FF00478, 0x352966B7, 0xBE078FB3, - 0xA0000000, 0x3FF0047C, 0x33AFF8AE, 0x3E2DF116, - 0xA4000000, 0x3FF00480, 0xE909EADD, 0xBE3F0CEE, - 0xA4000000, 0x3FF00484, 0xD6938597, 0xBE2A04C8, - 0xA4000000, 0x3FF00488, 0x5C6654D8, 0x3E1460AA, - 0xA4000000, 0x3FF0048C, 0x22213ECF, 0x3E3742BE, - 0xA8000000, 0x3FF00490, 0xC631A356, 0xBE3682A9, - 0xA8000000, 0x3FF00494, 0x7777B644, 0xBE10E034, - 0xA8000000, 0x3FF00498, 0x3E3B0991, 0x3E2C4528, - 0xAC000000, 0x3FF0049C, 0x0B3E269F, 0xBE3F72C6, - 0xAC000000, 0x3FF004A0, 0x31DF923B, 0xBE29F037, - 0xAC000000, 0x3FF004A4, 0xE82713DE, 0x3E164A4D, - 0xAC000000, 0x3FF004A8, 0x31AFAC4B, 0x3E382D47, - 0xB0000000, 0x3FF004AC, 0x6DFCE978, 0xBE352800, - 0xB0000000, 0x3FF004B0, 0x07D68D27, 0xBE036A1B, - 0xB0000000, 0x3FF004B4, 0x5CB71F6F, 0x3E305D7E, - 0xB4000000, 0x3FF004B8, 0x30E5E990, 0xBE3CC7BB, - 0xB4000000, 0x3FF004BC, 0x0BA17DEA, 0xBE23B9E0, - 0xB4000000, 0x3FF004C0, 0xC3EF9BD8, 0x3E223BBF, - 0xB4000000, 0x3FF004C4, 0x8A74ECC0, 0x3E3C28B4, - 0xB8000000, 0x3FF004C8, 0x085831CA, 0xBE30BC72, - 0xB8000000, 0x3FF004CC, 0x6C8D1FC8, 0x3E037361, - 0xB8000000, 0x3FF004D0, 0x3033A0B8, 0x3E35A94F, - 0xBC000000, 0x3FF004D4, 0xFC7107DE, 0xBE370BC8, - 0xBC000000, 0x3FF004D8, 0xA2D908DA, 0xBE0D86E2, - 0xBC000000, 0x3FF004DC, 0x58ED155E, 0x3E2F742A, - 0xC0000000, 0x3FF004E0, 0x75FACDD0, 0xBE3CCAF4, - 0xC0000000, 0x3FF004E4, 0x6F5BE5D3, 0xBE227FF2, - 0xC0000000, 0x3FF004E8, 0xD6BCA827, 0x3E24B60D, - 0xC0000000, 0x3FF004EC, 0xF72B40D6, 0x3E3E060B, - 0xC4000000, 0x3FF004F0, 0x208BE3E3, 0xBE2C7DD4, - 0xC4000000, 0x3FF004F4, 0x642FDDB8, 0x3E163093, - 0xC4000000, 0x3FF004F8, 0xB72239A5, 0x3E396738, - 0xC8000000, 0x3FF004FC, 0x7201ED9B, 0xBE32ADAE, - 0xC8000000, 0x3FF00500, 0x1A0C05F3, 0x3DF4D6F6, - 0xC8000000, 0x3FF00504, 0x360B8346, 0x3E355892, - 0xCC000000, 0x3FF00508, 0xF0C06435, 0xBE368C45, - 0xCC000000, 0x3FF0050C, 0x760DA2F6, 0xBE0308C8, - 0xCC000000, 0x3FF00510, 0xE008D57B, 0x3E31DA18, - 0xD0000000, 0x3FF00514, 0x205F82F4, 0xBE39DAB0, - 0xD0000000, 0x3FF00518, 0x2FE5E3E3, 0xBE15FDD0, - 0xD0000000, 0x3FF0051C, 0x42787241, 0x3E2DD79A, - 0xD4000000, 0x3FF00520, 0x94BD25F4, 0xBE3C98EC, - 0xD4000000, 0x3FF00524, 0x53C89D03, 0xBE201B42, - 0xD4000000, 0x3FF00528, 0xCB901057, 0x3E291B5E, - 0xD8000000, 0x3FF0052C, 0xE1B6D837, 0xBE3EC6FA, - 0xD8000000, 0x3FF00530, 0xF8BF49E7, 0xBE24173F, - 0xD8000000, 0x3FF00534, 0x339DDB57, 0x3E257F80, - 0xD8000000, 0x3FF00538, 0x64D62C5C, 0x3E3F9B25, - 0xDC000000, 0x3FF0053C, 0x2E913659, 0xBE26F2E0, - 0xDC000000, 0x3FF00540, 0x52E7CB93, 0x3E2303FF, - 0xDC000000, 0x3FF00544, 0xAB0CFEF5, 0x3E3E8D74, - 0xE0000000, 0x3FF00548, 0x1CF7FDE6, 0xBE28AE22, - 0xE0000000, 0x3FF0054C, 0x01B47B93, 0x3E21A8DD, - 0xE0000000, 0x3FF00550, 0x5D1107E2, 0x3E3E0FF3, - 0xE4000000, 0x3FF00554, 0xEBAC99E1, 0xBE294904, - 0xE4000000, 0x3FF00558, 0x184B2814, 0x3E216E1A, - 0xE4000000, 0x3FF0055C, 0xE706008B, 0x3E3E22A1, - 0xE8000000, 0x3FF00560, 0xC267616A, 0xBE28C387, - 0xE8000000, 0x3FF00564, 0x6EF3B008, 0x3E2253B7, - 0xE8000000, 0x3FF00568, 0xB50FF371, 0x3E3EC580, - 0xEC000000, 0x3FF0056C, 0xC8E0096B, 0xBE271DA9, - 0xEC000000, 0x3FF00570, 0xDDF69498, 0x3E2459B5, - 0xEC000000, 0x3FF00574, 0x33533C31, 0x3E3FF890, - 0xF0000000, 0x3FF00578, 0x26CDA497, 0xBE24576A, - 0xF0000000, 0x3FF0057C, 0x3D9CF923, 0x3E278016, - 0xF4000000, 0x3FF00580, 0x320B787B, 0xBE3E442F, - 0xF4000000, 0x3FF00584, 0x03E6A36B, 0xBE2070C8, - 0xF4000000, 0x3FF00588, 0x6630A33F, 0x3E2BC6D9, - 0xF8000000, 0x3FF0058C, 0x0EE72CBF, 0xBE3BF0BD, - 0xF8000000, 0x3FF00590, 0x0FC1A853, 0xBE16D385, - 0xF8000000, 0x3FF00594, 0x17FDFD5D, 0x3E309700, - 0xFC000000, 0x3FF00598, 0xF71A91AC, 0xBE390D18, - 0xFC000000, 0x3FF0059C, 0x69C58B86, 0xBE050963, - 0xFC000000, 0x3FF005A0, 0xB9A504CD, 0x3E33DAC5, - 0x00000000, 0x3FF005A5, 0x7E800734, 0xBE359942, - 0x00000000, 0x3FF005A9, 0xE59934CD, 0x3DF02BAE, - 0x00000000, 0x3FF005AD, 0x04333E0E, 0x3E37AEBE, - 0x04000000, 0x3FF005B1, 0x38F19C2F, 0xBE319539, - 0x04000000, 0x3FF005B5, 0xEBB1C157, 0x3E14DB54, - 0x04000000, 0x3FF005B9, 0x63CED05D, 0x3E3C12E9, - 0x08000000, 0x3FF005BD, 0x74921CAF, 0xBE2A01F9, - 0x08000000, 0x3FF005C1, 0xC94C85F2, 0x3E23F645, - 0x0C000000, 0x3FF005C5, 0xBB61CBEE, 0xBE3EF8B7, - 0x0C000000, 0x3FF005C9, 0x597F2931, 0xBE1F7232, - 0x0C000000, 0x3FF005CD, 0xAF5B7345, 0x3E2E9F48, - 0x10000000, 0x3FF005D1, 0xED37CD5F, 0xBE397424, - 0x10000000, 0x3FF005D5, 0x08775C6B, 0xBE013F43, - 0x10000000, 0x3FF005D9, 0x0029D3DB, 0x3E35345A, - 0x14000000, 0x3FF005DD, 0xC58C1962, 0xBE335F5D, - 0x14000000, 0x3FF005E1, 0x47430E04, 0x3E1073C1, - 0x14000000, 0x3FF005E5, 0x4A41E248, 0x3E3BA944, - 0x18000000, 0x3FF005E9, 0xB06E888E, 0xBE2974C3, - 0x18000000, 0x3FF005ED, 0xDCCD9333, 0x3E25E3FB, - 0x1C000000, 0x3FF005F1, 0x5DE27951, 0xBE3D519C, - 0x1C000000, 0x3FF005F5, 0xE4464502, 0xBE1614C2, - 0x1C000000, 0x3FF005F9, 0xE0DAFE93, 0x3E325740, - 0x20000000, 0x3FF005FD, 0x8C1B4C10, 0xBE35BC47, - 0x20000000, 0x3FF00601, 0x20686CE9, 0x3E0201B0, - 0x20000000, 0x3FF00605, 0x95558B63, 0x3E3A4CB9, - 0x24000000, 0x3FF00609, 0xA880A3EB, 0xBE2B2D79, - 0x24000000, 0x3FF0060D, 0x9699EEB7, 0x3E252BA5, - 0x28000000, 0x3FF00611, 0x880115E1, 0xBE3D2D97, - 0x28000000, 0x3FF00615, 0x28A3D788, 0xBE1383EF, - 0x28000000, 0x3FF00619, 0x08D6DC23, 0x3E337BA6, - 0x2C000000, 0x3FF0061D, 0x0B001A08, 0xBE3417B2, - 0x2C000000, 0x3FF00621, 0xF94EB99A, 0x3E1193EF, - 0x2C000000, 0x3FF00625, 0x28D3BD3B, 0x3E3CF1B0, - 0x30000000, 0x3FF00629, 0x0EFCC982, 0xBE24E32B, - 0x30000000, 0x3FF0062D, 0xE2BDA47F, 0x3E2C7655, - 0x34000000, 0x3FF00631, 0x689312F8, 0xBE39080E, - 0x34000000, 0x3FF00635, 0xA9444DB4, 0xBDCDA0C8, - 0x34000000, 0x3FF00639, 0x7B21FE23, 0x3E38A191, - 0x38000000, 0x3FF0063D, 0x7E67E1E1, 0xBE2CE32A, - 0x38000000, 0x3FF00641, 0x875A71F0, 0x3E251694, - 0x3C000000, 0x3FF00645, 0xF838F455, 0xBE3C67CF, - 0x3C000000, 0x3FF00649, 0x77274052, 0xBE0A571F, - 0x3C000000, 0x3FF0064D, 0x63AAEFA8, 0x3E35E20E, - 0x40000000, 0x3FF00651, 0xFC87DA70, 0xBE30E0F8, - 0x40000000, 0x3FF00655, 0xE9089AFD, 0x3E20D80B, - 0x44000000, 0x3FF00659, 0xC52F03BD, 0xBE3E36F4, - 0x44000000, 0x3FF0065D, 0x9680E14E, 0xBE1327A4, - 0x44000000, 0x3FF00661, 0xD732468D, 0x3E34B328, - 0x48000000, 0x3FF00665, 0xCAB5EF4A, 0xBE31BFBE, - 0x48000000, 0x3FF00669, 0xE2A2FBE1, 0x3E1F757F, - 0x4C000000, 0x3FF0066D, 0xDAB014DA, 0xBE3E757A, - 0x4C000000, 0x3FF00671, 0x02FB3FBB, 0xBE12E13D, - 0x4C000000, 0x3FF00675, 0xCA7E298D, 0x3E3514E2, - 0x50000000, 0x3FF00679, 0xB4F78B94, 0xBE310DE4, - 0x50000000, 0x3FF0067D, 0x89C35D05, 0x3E21BEB4, - 0x54000000, 0x3FF00681, 0x43F4895C, 0xBE3D2360, - 0x54000000, 0x3FF00685, 0x5BC49ADF, 0xBE08B0A2, - 0x54000000, 0x3FF00689, 0x32573159, 0x3E37073E, - 0x58000000, 0x3FF0068D, 0x8D0732D2, 0xBE2D96D1, - 0x58000000, 0x3FF00691, 0x9BF15E67, 0x3E26E3ED, - 0x5C000000, 0x3FF00695, 0x0C3250FB, 0xBE3A40A3, - 0x5C000000, 0x3FF00699, 0xFD0AE214, 0x3DBCC9AE, - 0x5C000000, 0x3FF0069D, 0x038868A1, 0x3E3A8A3D, - 0x60000000, 0x3FF006A1, 0x151D21CE, 0xBE25F092, - 0x60000000, 0x3FF006A5, 0x11738C43, 0x3E2F2A6F, - 0x64000000, 0x3FF006A9, 0x3E9CE96D, 0xBE35CD41, - 0x64000000, 0x3FF006AD, 0x8DBC2918, 0x3E138132, - 0x64000000, 0x3FF006B1, 0x32DF4C13, 0x3E3F9DE1, - 0x68000000, 0x3FF006B5, 0x3129E0B2, 0xBE16520E, - 0x68000000, 0x3FF006B9, 0x69F36A61, 0x3E35491E, - 0x6C000000, 0x3FF006BD, 0xCCCABCD4, 0xBE2F9271, - 0x6C000000, 0x3FF006C1, 0x0D59B899, 0x3E2668ED, - 0x70000000, 0x3FF006C5, 0x4AD435A0, 0xBE39BDD3, - 0x70000000, 0x3FF006C9, 0x9191CABB, 0x3DF5FE9A, - 0x70000000, 0x3FF006CD, 0x6676850B, 0x3E3C8DAD, - 0x74000000, 0x3FF006D1, 0x1D74934A, 0xBE206910, - 0x74000000, 0x3FF006D5, 0x4D886478, 0x3E331949, - 0x78000000, 0x3FF006D9, 0x80BFBBC2, 0xBE3188DE, - 0x78000000, 0x3FF006DD, 0x14DE1719, 0x3E23CA01, - 0x7C000000, 0x3FF006E1, 0x8CE98EC0, 0xBE3A9D19, - 0x7C000000, 0x3FF006E5, 0xA705A6E7, 0x3DEE1A67, - 0x7C000000, 0x3FF006E9, 0xECD5F851, 0x3E3C8EC6, - 0x80000000, 0x3FF006ED, 0xE839CE4D, 0xBE1F0CF9, - 0x80000000, 0x3FF006F1, 0x0C8CA46A, 0x3E33FAC3, - 0x84000000, 0x3FF006F5, 0x7B5703D8, 0xBE303734, - 0x84000000, 0x3FF006F9, 0xE490A112, 0x3E274DB5, - 0x88000000, 0x3FF006FD, 0xA693A093, 0xBE386B0E, - 0x88000000, 0x3FF00701, 0xF0B73DAA, 0x3E0C9875, - 0x88000000, 0x3FF00705, 0x2449A944, 0x3E3FA133, - 0x8C000000, 0x3FF00709, 0xBFE66C14, 0xBE110285, - 0x8C000000, 0x3FF0070D, 0x054EDCBD, 0x3E37ED91, - 0x90000000, 0x3FF00711, 0xEFB65924, 0xBE27A86A, - 0x90000000, 0x3FF00715, 0x1C8A0CF1, 0x3E307A0B, - 0x94000000, 0x3FF00719, 0x397FB1D6, 0xBE3327AD, - 0x94000000, 0x3FF0071D, 0x1412B9FB, 0x3E228D43, - 0x98000000, 0x3FF00721, 0x94D8FFB0, 0xBE3A3B08, - 0x98000000, 0x3FF00725, 0x6ED80040, 0x3E029AA3, - 0x98000000, 0x3FF00729, 0x9627250A, 0x3E3EF1B8, - 0x9C000000, 0x3FF0072D, 0x5FCB1B09, 0xBE117F70, - 0x9C000000, 0x3FF00731, 0x678F0789, 0x3E385E96, - 0xA0000000, 0x3FF00735, 0xCEA3485B, 0xBE25A5DF, - 0xA0000000, 0x3FF00739, 0xFF6D0303, 0x3E320B90, - 0xA4000000, 0x3FF0073D, 0xE03334FF, 0xBE3105E6, - 0xA4000000, 0x3FF00741, 0xFB9F056D, 0x3E27F150, - 0xA8000000, 0x3FF00745, 0xE28905F4, 0xBE36F8C0, - 0xA8000000, 0x3FF00749, 0x0B1407AA, 0x3E189774, - 0xAC000000, 0x3FF0074D, 0xCE4493C4, 0xBE3CAB7D, - 0xAC000000, 0x3FF00751, 0xCB817D78, 0x3DE265D5, - 0xAC000000, 0x3FF00755, 0x7CA8B4E3, 0x3E3DE1E2, - 0xB0000000, 0x3FF00759, 0x7D730FC6, 0xBE12FD89, - 0xB0000000, 0x3FF0075D, 0x1E4D7759, 0x3E38AF60, - 0xB4000000, 0x3FF00761, 0x0CAD84A2, 0xBE23A3AC, - 0xB4000000, 0x3FF00765, 0x36B866FD, 0x3E33BCFB, - 0xB8000000, 0x3FF00769, 0x4D0667A1, 0xBE2D4858, - 0xB8000000, 0x3FF0076D, 0xCBF08E6A, 0x3E2E1567, - 0xBC000000, 0x3FF00771, 0x9FD34D05, 0xBE333664, - 0xBC000000, 0x3FF00775, 0x9837D6E0, 0x3E253114, - 0xC0000000, 0x3FF00779, 0x5238327D, 0xBE37887F, - 0xC0000000, 0x3FF0077D, 0x24C8DC90, 0x3E1999FA, - 0xC4000000, 0x3FF00781, 0x1DA2F8BE, 0xBE3B9A7C, - 0xC4000000, 0x3FF00785, 0xEA50EE6A, 0x3E03A485, - 0xC8000000, 0x3FF00789, 0xE204A449, 0xBE3F6C5A, - 0xC8000000, 0x3FF0078D, 0x78D5D0F3, 0xBDF3D3EF, - 0xC8000000, 0x3FF00791, 0x80B1D66C, 0x3E3D01E4, - 0xCC000000, 0x3FF00795, 0xD5149796, 0xBE12BBC1, - 0xCC000000, 0x3FF00799, 0x2A8F92F0, 0x3E39B042, - 0xD0000000, 0x3FF0079D, 0x6F386487, 0xBE1F820E, - 0xD0000000, 0x3FF007A1, 0x3BA3BCDA, 0x3E369EBE, - 0xD4000000, 0x3FF007A5, 0x96320652, 0xBE25A3F0, - 0xD4000000, 0x3FF007A9, 0xD3FD8FCA, 0x3E33CD58, - 0xD8000000, 0x3FF007AD, 0xC62D40B1, 0xBE2B069C, - 0xD8000000, 0x3FF007B1, 0x13AC5766, 0x3E313C12, - 0xDC000000, 0x3FF007B5, 0x876F3A0B, 0xBE2FE90B, - 0xDC000000, 0x3FF007B9, 0x357EDEB8, 0x3E2DD5D4, - 0xE0000000, 0x3FF007BD, 0x4CEC957E, 0xBE32259E, - 0xE0000000, 0x3FF007C1, 0x128C86C6, 0x3E29B3C2, - 0xE4000000, 0x3FF007C5, 0xDEA61608, 0xBE341697, - 0xE4000000, 0x3FF007C9, 0xFEA09E70, 0x3E2611ED, - 0xE8000000, 0x3FF007CD, 0x58D49AE3, 0xBE35C772, - 0xE8000000, 0x3FF007D1, 0x39DA3D42, 0x3E22F058, - 0xEC000000, 0x3FF007D5, 0x9B689043, 0xBE37382D, - 0xEC000000, 0x3FF007D9, 0x04589AD6, 0x3E204F01, - 0xF0000000, 0x3FF007DD, 0x86525259, 0xBE3868C9, - 0xF0000000, 0x3FF007E1, 0x3C761DAC, 0x3E1C5BD1, - 0xF4000000, 0x3FF007E5, 0xF9822D4C, 0xBE395945, - 0xF4000000, 0x3FF007E9, 0x8F4221F9, 0x3E191A1E, - 0xF8000000, 0x3FF007ED, 0xD4E85D3A, 0xBE3A09A2, - 0xF8000000, 0x3FF007F1, 0x81547225, 0x3E16D8EA, - 0xFC000000, 0x3FF007F5, 0xF8750E3B, 0xBE3A79DF, - 0xFC000000, 0x3FF007F9, 0x92EC7DE3, 0x3E159835, - 0x00000000, 0x3FF007FE, 0x44185C5D, 0xBE3AA9FD } }; - -#endif -#endif diff --git a/sysdeps/m68k/m680x0/fpu/e_exp_data.c b/sysdeps/m68k/m680x0/fpu/e_exp_data.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/e_exp_data.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/math_err.c b/sysdeps/m68k/m680x0/fpu/math_err.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/math_err.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/t_exp.c b/sysdeps/m68k/m680x0/fpu/t_exp.c deleted file mode 100644 index fd37963b05..0000000000 --- a/sysdeps/m68k/m680x0/fpu/t_exp.c +++ /dev/null @@ -1 +0,0 @@ -/* Empty. Not needed. */ diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index f4c67c6423..1eec27c1dc 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -902,10 +902,10 @@ ildouble: 6 ldouble: 6 Function: Imaginary part of "ccos_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -922,10 +922,10 @@ ildouble: 6 ldouble: 6 Function: Imaginary part of "ccos_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -972,40 +972,40 @@ ildouble: 2 ldouble: 2 Function: Real part of "ccosh_downward": -double: 1 +double: 2 float: 3 float128: 2 -idouble: 1 +idouble: 2 ifloat: 3 ifloat128: 2 ildouble: 6 ldouble: 6 Function: Imaginary part of "ccosh_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 ldouble: 6 Function: Real part of "ccosh_towardzero": -double: 1 +double: 2 float: 3 float128: 2 -idouble: 1 +idouble: 2 ifloat: 3 ifloat128: 2 ildouble: 6 ldouble: 6 Function: Imaginary part of "ccosh_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -1052,40 +1052,40 @@ ildouble: 2 ldouble: 2 Function: Real part of "cexp_downward": -double: 1 +double: 2 float: 2 float128: 2 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 2 ildouble: 11 ldouble: 11 Function: Imaginary part of "cexp_downward": -double: 1 +double: 3 float: 3 float128: 2 -idouble: 1 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 11 ldouble: 11 Function: Real part of "cexp_towardzero": -double: 1 +double: 2 float: 2 float128: 2 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 2 ildouble: 11 ldouble: 11 Function: Imaginary part of "cexp_towardzero": -double: 1 +double: 3 float: 3 float128: 2 -idouble: 1 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 11 @@ -1102,10 +1102,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "cexp_upward": -double: 1 +double: 3 float: 2 float128: 3 -idouble: 1 +idouble: 3 ifloat: 2 ifloat128: 3 ildouble: 3 @@ -1322,30 +1322,30 @@ ildouble: 3 ldouble: 3 Function: "cosh_downward": -double: 1 +double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 2 Function: "cosh_towardzero": -double: 1 +double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 2 Function: "cosh_upward": -double: 1 +double: 2 float: 2 float128: 3 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 1 ildouble: 2 @@ -1370,10 +1370,10 @@ ildouble: 2 ldouble: 2 Function: Real part of "cpow_downward": -double: 4 +double: 5 float: 8 float128: 6 -idouble: 4 +idouble: 5 ifloat: 8 ifloat128: 6 ildouble: 7 @@ -1390,10 +1390,10 @@ ildouble: 4 ldouble: 4 Function: Real part of "cpow_towardzero": -double: 4 +double: 5 float: 8 float128: 6 -idouble: 4 +idouble: 5 ifloat: 8 ifloat128: 6 ildouble: 8 @@ -1446,10 +1446,10 @@ ildouble: 1 ldouble: 1 Function: Real part of "csin_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -1466,10 +1466,10 @@ ildouble: 6 ldouble: 6 Function: Real part of "csin_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -1534,10 +1534,10 @@ ildouble: 6 ldouble: 6 Function: Imaginary part of "csinh_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -1554,10 +1554,10 @@ ildouble: 6 ldouble: 6 Function: Imaginary part of "csinh_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 6 @@ -1877,10 +1877,10 @@ ildouble: 3 ldouble: 3 Function: "erfc_downward": -double: 3 +double: 4 float: 4 float128: 5 -idouble: 3 +idouble: 4 ifloat: 4 ifloat128: 5 ildouble: 10 @@ -1897,10 +1897,10 @@ ildouble: 9 ldouble: 9 Function: "erfc_upward": -double: 3 +double: 4 float: 4 float128: 5 -idouble: 3 +idouble: 4 ifloat: 4 ifloat128: 5 ildouble: 7 @@ -1923,20 +1923,20 @@ ildouble: 1 ldouble: 1 Function: "exp10_downward": -double: 2 +double: 3 float: 1 float128: 3 -idouble: 2 +idouble: 3 ifloat: 1 ifloat128: 3 ildouble: 9 ldouble: 9 Function: "exp10_towardzero": -double: 2 +double: 3 float: 1 float128: 3 -idouble: 2 +idouble: 3 ifloat: 1 ifloat128: 3 ildouble: 9 diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index e26f9c1358..493ad8749d 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -894,10 +894,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "ccos_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -914,10 +914,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "ccos_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -964,40 +964,40 @@ ildouble: 1 ldouble: 1 Function: Real part of "ccosh_downward": -double: 1 +double: 2 float: 2 float128: 2 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Imaginary part of "ccosh_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Real part of "ccosh_towardzero": -double: 1 +double: 2 float: 3 float128: 2 -idouble: 1 +idouble: 2 ifloat: 3 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Imaginary part of "ccosh_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1044,40 +1044,40 @@ ildouble: 1 ldouble: 1 Function: Real part of "cexp_downward": -double: 1 +double: 2 float: 2 float128: 2 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Imaginary part of "cexp_downward": -double: 1 +double: 3 float: 3 float128: 2 -idouble: 1 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Real part of "cexp_towardzero": -double: 1 +double: 2 float: 2 float128: 2 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 2 ildouble: 3 ldouble: 3 Function: Imaginary part of "cexp_towardzero": -double: 1 +double: 3 float: 3 float128: 2 -idouble: 1 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1094,10 +1094,10 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "cexp_upward": -double: 1 +double: 3 float: 2 float128: 3 -idouble: 1 +idouble: 3 ifloat: 2 ifloat128: 3 ildouble: 3 @@ -1330,30 +1330,30 @@ ildouble: 2 ldouble: 2 Function: "cosh_downward": -double: 1 +double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 3 Function: "cosh_towardzero": -double: 1 +double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 2 Function: "cosh_upward": -double: 1 +double: 2 float: 2 float128: 3 -idouble: 1 +idouble: 2 ifloat: 2 ifloat128: 1 ildouble: 2 @@ -1378,10 +1378,10 @@ ildouble: 4 ldouble: 4 Function: Real part of "cpow_downward": -double: 4 +double: 5 float: 8 float128: 6 -idouble: 4 +idouble: 5 ifloat: 8 ifloat128: 6 ildouble: 7 @@ -1398,10 +1398,10 @@ ildouble: 2 ldouble: 2 Function: Real part of "cpow_towardzero": -double: 4 +double: 5 float: 8 float128: 6 -idouble: 4 +idouble: 5 ifloat: 8 ifloat128: 6 ildouble: 7 @@ -1452,10 +1452,10 @@ float128: 1 ifloat128: 1 Function: Real part of "csin_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1472,10 +1472,10 @@ ildouble: 3 ldouble: 3 Function: Real part of "csin_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1540,10 +1540,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "csinh_downward": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1560,10 +1560,10 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "csinh_towardzero": -double: 2 +double: 3 float: 3 float128: 2 -idouble: 2 +idouble: 3 ifloat: 3 ifloat128: 2 ildouble: 3 @@ -1924,20 +1924,20 @@ ildouble: 1 ldouble: 1 Function: "exp10_downward": -double: 2 +double: 3 float: 1 float128: 3 -idouble: 2 +idouble: 3 ifloat: 1 ifloat128: 3 ildouble: 2 ldouble: 2 Function: "exp10_towardzero": -double: 2 +double: 3 float: 1 float128: 3 -idouble: 2 +idouble: 3 ifloat: 1 ifloat128: 3 ildouble: 2 |