From patchwork Fri Jul 6 09:01:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 28260 Received: (qmail 57849 invoked by alias); 6 Jul 2018 09:02:16 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 57831 invoked by uid 89); 6 Jul 2018 09:02:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=0n, NEEDED X-HELO: EUR02-VE1-obe.outbound.protection.outlook.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TDiqaXHHzoM/zMaszfY83IPr/IzV8rIxpoQ9QniHhDw=; b=ai8HUL8VMyuuZCwcZuHQBra/mzXT5vxzinUrpzjAODXbl5S1Of/KNwyIyI9V+t8K2r8nR1seiRYjNy+/tBpDS/lXUvQCTvLEAKLxR7qSKFpJrG5ejCGzW6LEk+ZG8himugZva3+l1s4q+sDD8AgikQ9WmeHh6f2NtgU98jgHIvE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Cc: nd@arm.com Subject: [PATCH 04/10] Add new exp and exp2 implementations From: Szabolcs Nagy To: GNU C Library References: Message-ID: Date: Fri, 6 Jul 2018 10:01:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Return-Path: szabolcs.nagy@arm.com Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) v4: - Update math_config.h with documentation for round/converttoint. - Remove unused configurations and related code/data. - Update comment for the specialcase function. - Document tested targets in the commit message. - Merge NEWS entry with sincosf improvements. v3: - Remove t_exp.c from targets too. - Add empty math_err.c and e_exp_data.c to targets that don't need them. - Fix GNU style issues. - Document internal function semantics. - Add NEWS entry. v2: - define TOINT_INTRINSICS for all targets. 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 latency: 1.5x exp thruput: 2.3x exp latency: 1.3x on small inputs exp thruput: 1.8x on small inputs exp2 latency: 1.6x exp2 thruput: 3.2x For small 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) targets, only non-nearest rounding ulp errors increase and they are within acceptable bounds (ulp updates are in separate patches). 2018-07-06 Szabolcs Nagy * NEWS: Mention exp and exp2 improvements. * math/Makefile (libm-support): Remove t_exp. (type-double-routines): Add math_err and e_exp_data. * 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. --- NEWS | 2 +- math/Makefile | 4 +- sysdeps/i386/fpu/e_exp_data.c | 1 + sysdeps/i386/fpu/math_err.c | 1 + sysdeps/i386/fpu/t_exp.c | 1 - sysdeps/ia64/fpu/e_exp_data.c | 1 + sysdeps/ia64/fpu/math_err.c | 1 + sysdeps/ia64/fpu/t_exp.c | 1 - sysdeps/ieee754/dbl-64/e_exp.c | 485 +++------ sysdeps/ieee754/dbl-64/e_exp2.c | 220 +++-- sysdeps/ieee754/dbl-64/e_exp_data.c | 196 ++++ sysdeps/ieee754/dbl-64/e_pow.c | 6 +- sysdeps/ieee754/dbl-64/eexp.tbl | 172 ---- sysdeps/ieee754/dbl-64/math_config.h | 136 +++ sysdeps/ieee754/dbl-64/math_err.c | 92 ++ sysdeps/ieee754/dbl-64/t_exp.c | 435 --------- sysdeps/ieee754/dbl-64/t_exp2.h | 585 ----------- sysdeps/ieee754/dbl-64/uexp.h | 68 -- sysdeps/ieee754/dbl-64/uexp.tbl | 1786 ---------------------------------- sysdeps/m68k/m680x0/fpu/e_exp_data.c | 1 + sysdeps/m68k/m680x0/fpu/math_err.c | 1 + sysdeps/m68k/m680x0/fpu/t_exp.c | 1 - 22 files changed, 705 insertions(+), 3491 deletions(-) create mode 100644 sysdeps/i386/fpu/e_exp_data.c create mode 100644 sysdeps/i386/fpu/math_err.c delete mode 100644 sysdeps/i386/fpu/t_exp.c create mode 100644 sysdeps/ia64/fpu/e_exp_data.c create mode 100644 sysdeps/ia64/fpu/math_err.c delete mode 100644 sysdeps/ia64/fpu/t_exp.c create mode 100644 sysdeps/ieee754/dbl-64/e_exp_data.c delete mode 100644 sysdeps/ieee754/dbl-64/eexp.tbl create mode 100644 sysdeps/ieee754/dbl-64/math_config.h create mode 100644 sysdeps/ieee754/dbl-64/math_err.c delete mode 100644 sysdeps/ieee754/dbl-64/t_exp.c delete mode 100644 sysdeps/ieee754/dbl-64/t_exp2.h delete mode 100644 sysdeps/ieee754/dbl-64/uexp.h delete mode 100644 sysdeps/ieee754/dbl-64/uexp.tbl create mode 100644 sysdeps/m68k/m680x0/fpu/e_exp_data.c create mode 100644 sysdeps/m68k/m680x0/fpu/math_err.c delete mode 100644 sysdeps/m68k/m680x0/fpu/t_exp.c diff --git a/NEWS b/NEWS index 8252a2168c..63e65743d4 100644 --- a/NEWS +++ b/NEWS @@ -13,7 +13,7 @@ Major new features: transliteration tables are all updated to Unicode 11.0.0, using generator scripts contributed by Mike FABIAN (Red Hat). -* Optimized generic sinf, cosf and sincosf. +* Optimized generic exp, exp2, sinf, cosf and sincosf. * functions that round their results to a narrower type are added from TS 18661-1:2014 and TS 18661-3:2015: diff --git a/math/Makefile b/math/Makefile index e73ceb8d4e..4d0731b64b 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 @@ -126,7 +126,7 @@ type-ldouble-yes := ldouble type-double-suffix := type-double-routines := branred doasin dosincos mpa mpatan2 \ mpatan mpsqrt mptan sincos32 \ - sincostab k_rem_pio2 + sincostab k_rem_pio2 math_err e_exp_data # float support type-float-suffix := f 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 ddd2bcb1c2..a22c818b64 100644 --- a/sysdeps/ieee754/dbl-64/e_exp.c +++ b/sysdeps/ieee754/dbl-64/e_exp.c @@ -1,47 +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 . - */ -/***************************************************************************/ -/* 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 + . */ #include -#include "endian.h" -#include "uexp.h" -#include "mydefs.h" -#include "MathLib.h" -#include "uexp.tbl" +#include #include -#include -#include -#include -#include "eexp.tbl" +#include +#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 @@ -51,303 +162,15 @@ 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) #endif -/* Compute e^(x+xx). */ 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 c45bb44744..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 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,119 +16,130 @@ License along with the GNU C Library; if not, see . */ -/* 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 -#include -#include #include -#include -#include +#include #include -#include -#include +#include +#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 + . */ + +#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 96d5b23ccc..060a8f0559 100644 --- a/sysdeps/ieee754/dbl-64/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c @@ -107,12 +107,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 - . */ - -/* 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 + . */ + +#ifndef _MATH_CONFIG_H +#define _MATH_CONFIG_H + +#include +#include +#include + +#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 + . */ + +#include +#include "math_config.h" + +#if WANT_ERRNO +#include +/* 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 - - 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 - . */ - -/* 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 . - */ - -/******************************************************************/ -/* */ -/* 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 . - */ - -/****************************************************************/ -/* 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. */