diff --git a/npsr/hwy.h b/npsr/hwy.h index cf821b7..7bacbf5 100644 --- a/npsr/hwy.h +++ b/npsr/hwy.h @@ -32,7 +32,30 @@ using hn::TFromV; using hn::VFromD; constexpr bool kNativeFMA = HWY_NATIVE_FMA != 0; -inline HWY_ATTR void DummyToSuppressUnusedWarning() {} +/** + * Substitute for the FMA product-error idiom on targets without native FMA. + * + * With FMA, `e = MulSub(a, b, Round(a*b))` recovers the rounding error of the + * product exactly. Without it, that expression only sees the already-rounded + * product and returns nothing useful. Instead, split both operands with a bit + * mask (26 significant bits in the head) so `head = a_hi*b_hi` is exact by + * construction, and return the dropped cross terms in `rest`: + * a*b == head + rest, up to a negligible ~2^-105-scale rounding of `rest`. + */ +template )> +NPSR_INTRIN void SplitMul(V a, V b, V& head, V& rest) { + using namespace hn; + const DFromV d; + const RebindToUnsigned du; + const V mask = BitCast(d, Set(du, 0xFFFFFFFFF8000000u)); + const V a_hi = And(a, mask); + const V a_lo = Sub(a, a_hi); + const V b_hi = And(b, mask); + const V b_lo = Sub(b, b_hi); + head = Mul(a_hi, b_hi); + rest = MulAdd(a_hi, b_lo, Mul(a_lo, b)); +} + } // namespace npsr::HWY_NAMESPACE HWY_AFTER_NAMESPACE(); diff --git a/npsr/lut-inl.h b/npsr/lut-inl.h index b9e1cdf..fe900f6 100644 --- a/npsr/lut-inl.h +++ b/npsr/lut-inl.h @@ -6,6 +6,7 @@ #endif #include +#include #include "npsr/hwy.h" diff --git a/npsr/trig/data/approx.h b/npsr/trig/data/approx.h index 43a1d01..5dec837 100644 --- a/npsr/trig/data/approx.h +++ b/npsr/trig/data/approx.h @@ -40,16 +40,16 @@ template <> inline constexpr float kSinApproxTable[] = -0x1.09441cp-2f, 0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, -0x1.1a5efap-2f, 0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, -0x1.2bec34p-2f, 0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, --0x1.3de916p-2f, 0x1p0f, 0x1.72d084p-1f, -0x1.02000ep-26f, --0x1.5052dap-2f, 0x1p0f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, --0x1.6326a8p-2f, 0x1p0f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, --0x1.76619cp-2f, 0x1p0f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, --0x1.8a00bap-2f, 0x1p0f, 0x1.93a224p-1f, 0x1.324c8p-26f, --0x1.9e01p-2f, 0x1p0f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, --0x1.b25f56p-2f, 0x1p0f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, --0x1.c71898p-2f, 0x1p0f, 0x1.a9b662p-1f, 0x1.21d434p-26f, --0x1.dc2996p-2f, 0x1p0f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, --0x1.f18f0cp-2f, 0x1p0f, 0x1.b72834p-1f, 0x1.465b9p-27f, +0x1.842dd6p-3f, 0x1p-1f, 0x1.72d084p-1f, -0x1.02000ep-26f, +0x1.5f5a4ep-3f, 0x1p-1f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, +0x1.39b2aep-3f, 0x1p-1f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, +0x1.133ccap-3f, 0x1p-1f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, +0x1.d7fd14p-4f, 0x1p-1f, 0x1.93a224p-1f, 0x1.324c8p-26f, +0x1.87fbfep-4f, 0x1p-1f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, +0x1.3682a6p-4f, 0x1p-1f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, +0x1.c73b3ap-5f, 0x1p-1f, 0x1.a9b662p-1f, 0x1.21d434p-26f, +0x1.1eb354p-5f, 0x1p-1f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, +0x1.ce1e64p-7f, 0x1p-1f, 0x1.b72834p-1f, 0x1.465b9p-27f, -0x1.d16c9p-8f, 0x1p-1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, -0x1.d4a2c8p-6f, 0x1p-1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, -0x1.9cc8b4p-5f, 0x1p-1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, @@ -57,163 +57,163 @@ template <> inline constexpr float kSinApproxTable[] = -0x1.8421bp-4f, 0x1p-1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, -0x1.e08756p-4f, 0x1p-1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, -0x1.1eef5ap-3f, 0x1p-1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, --0x1.4e0cb2p-3f, 0x1p-1f, 0x1.e2121p-1f, 0x1.3da1bap-27f, --0x1.7d946ep-3f, 0x1p-1f, 0x1.e6288ep-1f, 0x1.891c22p-26f, --0x1.ad7f3ap-3f, 0x1p-1f, 0x1.e9f416p-1f, -0x1.273a44p-26f, --0x1.ddc5b4p-3f, 0x1p-1f, 0x1.ed740ep-1f, 0x1.da1258p-27f, +0x1.63e69ep-4f, 0x1p-2f, 0x1.e2121p-1f, 0x1.3da1bap-27f, +0x1.04d726p-4f, 0x1p-2f, 0x1.e6288ep-1f, 0x1.891c22p-26f, +0x1.4a0318p-5f, 0x1p-2f, 0x1.e9f416p-1f, -0x1.273a44p-26f, +0x1.11d262p-6f, 0x1p-2f, 0x1.ed740ep-1f, 0x1.da1258p-27f, -0x1.cc0d0ap-8f, 0x1p-2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, -0x1.fa3ecap-6f, 0x1p-2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, -0x1.c1d1fp-5f, 0x1p-2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, --0x1.43bd78p-4f, 0x1p-2f, 0x1.f8765p-1f, -0x1.63ad16p-27f, --0x1.a6fdf2p-4f, 0x1p-2f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, +0x1.788512p-5f, 0x1p-3f, 0x1.f8765p-1f, -0x1.63ad16p-27f, +0x1.640838p-6f, 0x1p-3f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, -0x1.536352p-9f, 0x1p-3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, -0x1.ba165p-6f, 0x1p-3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, --0x1.a55beep-5f, 0x1p-3f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, +0x1.6a904ap-7f, 0x1p-4f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, -0x1.b82684p-7f, 0x1p-4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, -0x1.b7aa82p-8f, 0x1p-5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, 0.0f, 0.0f, 0x1p0f, 0.0f, --0x1.003242p5f, 0x1p5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, --0x1.00c8fcp4f, 0x1p4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, --0x1.025aa4p3f, 0x1p3f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, --0x1.0322f4p3f, 0x1p3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, --0x1.03eacap3f, 0x1p3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, --0x1.096408p2f, 0x1p2f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, --0x1.0af10ap2f, 0x1p2f, 0x1.f8765p-1f, -0x1.63ad16p-27f, --0x1.0c7c5cp2f, 0x1p2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, --0x1.0e05c2p2f, 0x1p2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, --0x1.0f8cfcp2f, 0x1p2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, --0x1.2223a4p1f, 0x1p1f, 0x1.ed740ep-1f, 0x1.da1258p-27f, --0x1.25280cp1f, 0x1p1f, 0x1.e9f416p-1f, -0x1.273a44p-26f, --0x1.2826bap1f, 0x1p1f, 0x1.e6288ep-1f, 0x1.891c22p-26f, --0x1.2b1f34p1f, 0x1p1f, 0x1.e2121p-1f, 0x1.3da1bap-27f, --0x1.2e110ap1f, 0x1p1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, --0x1.30fbc6p1f, 0x1p1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, --0x1.33def2p1f, 0x1p1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, --0x1.36ba2p1f, 0x1p1f, 0x1.ced7bp-1f, -0x1.786712p-26f, --0x1.398cdep1f, 0x1p1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, --0x1.3c56bap1f, 0x1p1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, --0x1.3f174ap1f, 0x1p1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, --0x1.839c3cp0f, 0x1p0f, 0x1.b72834p-1f, 0x1.465b9p-27f, --0x1.88f59ap0f, 0x1p0f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, --0x1.8e39dap0f, 0x1p0f, 0x1.a9b662p-1f, 0x1.21d434p-26f, --0x1.93682ap0f, 0x1p0f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, --0x1.987fcp0f, 0x1p0f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, --0x1.9d7fd2p0f, 0x1p0f, 0x1.93a224p-1f, 0x1.324c8p-26f, --0x1.a2679ap0f, 0x1p0f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, --0x1.a73656p0f, 0x1p0f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, --0x1.abeb4ap0f, 0x1p0f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, --0x1.b085bap0f, 0x1p0f, 0x1.72d084p-1f, -0x1.02000ep-26f, --0x1.b504f4p0f, 0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, --0x1.b96842p0f, 0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, --0x1.bdaefap0f, 0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, --0x1.c1d87p0f, 0x1p0f, 0x1.4e6cacp-1f, -0x1.070686p-27f, --0x1.c5e404p0f, 0x1p0f, 0x1.44cf32p-1f, 0x1.424776p-27f, --0x1.c9d112p0f, 0x1p0f, 0x1.3affa2p-1f, 0x1.240a18p-26f, --0x1.cd9f02p0f, 0x1p0f, 0x1.30ff8p-1f, -0x1.8f47e6p-28f, --0x1.d14d3ep0f, 0x1p0f, 0x1.26d054p-1f, 0x1.9ba25cp-26f, --0x1.d4db32p0f, 0x1p0f, 0x1.1c73b4p-1f, -0x1.9465cep-27f, --0x1.d84852p0f, 0x1p0f, 0x1.11eb36p-1f, -0x1.7c969cp-26f, --0x1.db941ap0f, 0x1p0f, 0x1.07387ap-1f, -0x1.b74004p-27f, --0x1.debe06p0f, 0x1p0f, 0x1.f8ba4ep-2f, -0x1.01d952p-28f, --0x1.e1c598p0f, 0x1p0f, 0x1.e2b5d4p-2f, -0x1.fe4272p-28f, --0x1.e4aa5ap0f, 0x1p0f, 0x1.cc66eap-2f, -0x1.b38ee8p-28f, --0x1.e76bd8p0f, 0x1p0f, 0x1.b5d1p-2f, 0x1.3c2b98p-27f, --0x1.ea09a6p0f, 0x1p0f, 0x1.9ef794p-2f, 0x1.d476c6p-29f, --0x1.ec835ep0f, 0x1p0f, 0x1.87de2ap-2f, 0x1.abaa58p-28f, --0x1.eed89ep0f, 0x1p0f, 0x1.708854p-2f, -0x1.e0b74cp-27f, --0x1.f10908p0f, 0x1p0f, 0x1.58f9a8p-2f, -0x1.4a9c04p-27f, --0x1.f31448p0f, 0x1p0f, 0x1.4135cap-2f, -0x1.7d134p-27f, --0x1.f4fa0ap0f, 0x1p0f, 0x1.294062p-2f, 0x1.dab3ep-27f, --0x1.f6ba08p0f, 0x1p0f, 0x1.111d26p-2f, 0x1.58fb3cp-29f, --0x1.f853f8p0f, 0x1p0f, 0x1.f19f98p-3f, -0x1.37a83ap-29f, --0x1.f9c79ep0f, 0x1p0f, 0x1.c0b826p-3f, 0x1.4fc9ecp-28f, --0x1.fb14bep0f, 0x1p0f, 0x1.8f8b84p-3f, -0x1.cb2cfap-30f, --0x1.fc3b28p0f, 0x1p0f, 0x1.5e2144p-3f, 0x1.22cff2p-29f, --0x1.fd3aacp0f, 0x1p0f, 0x1.2c8106p-3f, 0x1.d1cc28p-28f, --0x1.fe1324p0f, 0x1p0f, 0x1.f564e6p-4f, -0x1.2ad19ep-29f, --0x1.fec46ep0f, 0x1p0f, 0x1.917a6cp-4f, -0x1.eb25eap-31f, --0x1.ff4e6ep0f, 0x1p0f, 0x1.2d520ap-4f, -0x1.a63cc2p-29f, --0x1.ffb11p0f, 0x1p0f, 0x1.91f66p-5f, -0x1.de44fep-30f, --0x1.ffec44p0f, 0x1p0f, 0x1.92156p-6f, -0x1.0b933p-31f, --0x1p1f, 0x1p0f, 0.0f, 0.0f, --0x1.ffec44p0f, 0x1p0f, -0x1.92156p-6f, 0x1.0b933p-31f, --0x1.ffb11p0f, 0x1p0f, -0x1.91f66p-5f, 0x1.de44fep-30f, --0x1.ff4e6ep0f, 0x1p0f, -0x1.2d520ap-4f, 0x1.a63cc2p-29f, --0x1.fec46ep0f, 0x1p0f, -0x1.917a6cp-4f, 0x1.eb25eap-31f, --0x1.fe1324p0f, 0x1p0f, -0x1.f564e6p-4f, 0x1.2ad19ep-29f, --0x1.fd3aacp0f, 0x1p0f, -0x1.2c8106p-3f, -0x1.d1cc28p-28f, --0x1.fc3b28p0f, 0x1p0f, -0x1.5e2144p-3f, -0x1.22cff2p-29f, --0x1.fb14bep0f, 0x1p0f, -0x1.8f8b84p-3f, 0x1.cb2cfap-30f, --0x1.f9c79ep0f, 0x1p0f, -0x1.c0b826p-3f, -0x1.4fc9ecp-28f, --0x1.f853f8p0f, 0x1p0f, -0x1.f19f98p-3f, 0x1.37a83ap-29f, --0x1.f6ba08p0f, 0x1p0f, -0x1.111d26p-2f, -0x1.58fb3cp-29f, --0x1.f4fa0ap0f, 0x1p0f, -0x1.294062p-2f, -0x1.dab3ep-27f, --0x1.f31448p0f, 0x1p0f, -0x1.4135cap-2f, 0x1.7d134p-27f, --0x1.f10908p0f, 0x1p0f, -0x1.58f9a8p-2f, 0x1.4a9c04p-27f, --0x1.eed89ep0f, 0x1p0f, -0x1.708854p-2f, 0x1.e0b74cp-27f, --0x1.ec835ep0f, 0x1p0f, -0x1.87de2ap-2f, -0x1.abaa58p-28f, --0x1.ea09a6p0f, 0x1p0f, -0x1.9ef794p-2f, -0x1.d476c6p-29f, --0x1.e76bd8p0f, 0x1p0f, -0x1.b5d1p-2f, -0x1.3c2b98p-27f, --0x1.e4aa5ap0f, 0x1p0f, -0x1.cc66eap-2f, 0x1.b38ee8p-28f, --0x1.e1c598p0f, 0x1p0f, -0x1.e2b5d4p-2f, 0x1.fe4272p-28f, --0x1.debe06p0f, 0x1p0f, -0x1.f8ba4ep-2f, 0x1.01d952p-28f, --0x1.db941ap0f, 0x1p0f, -0x1.07387ap-1f, 0x1.b74004p-27f, --0x1.d84852p0f, 0x1p0f, -0x1.11eb36p-1f, 0x1.7c969cp-26f, --0x1.d4db32p0f, 0x1p0f, -0x1.1c73b4p-1f, 0x1.9465cep-27f, --0x1.d14d3ep0f, 0x1p0f, -0x1.26d054p-1f, -0x1.9ba25cp-26f, --0x1.cd9f02p0f, 0x1p0f, -0x1.30ff8p-1f, 0x1.8f47e6p-28f, --0x1.c9d112p0f, 0x1p0f, -0x1.3affa2p-1f, -0x1.240a18p-26f, --0x1.c5e404p0f, 0x1p0f, -0x1.44cf32p-1f, -0x1.424776p-27f, --0x1.c1d87p0f, 0x1p0f, -0x1.4e6cacp-1f, 0x1.070686p-27f, --0x1.bdaefap0f, 0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, --0x1.b96842p0f, 0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, --0x1.b504f4p0f, 0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, --0x1.b085bap0f, 0x1p0f, -0x1.72d084p-1f, 0x1.02000ep-26f, --0x1.abeb4ap0f, 0x1p0f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, --0x1.a73656p0f, 0x1p0f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, --0x1.a2679ap0f, 0x1p0f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, --0x1.9d7fd2p0f, 0x1p0f, -0x1.93a224p-1f, -0x1.324c8p-26f, --0x1.987fcp0f, 0x1p0f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, --0x1.93682ap0f, 0x1p0f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, --0x1.8e39dap0f, 0x1p0f, -0x1.a9b662p-1f, -0x1.21d434p-26f, --0x1.88f59ap0f, 0x1p0f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, --0x1.839c3cp0f, 0x1p0f, -0x1.b72834p-1f, -0x1.465b9p-27f, --0x1.3f174ap1f, 0x1p1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, --0x1.3c56bap1f, 0x1p1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, --0x1.398cdep1f, 0x1p1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, --0x1.36ba2p1f, 0x1p1f, -0x1.ced7bp-1f, 0x1.786712p-26f, --0x1.33def2p1f, 0x1p1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, --0x1.30fbc6p1f, 0x1p1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, --0x1.2e110ap1f, 0x1p1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, --0x1.2b1f34p1f, 0x1p1f, -0x1.e2121p-1f, -0x1.3da1bap-27f, --0x1.2826bap1f, 0x1p1f, -0x1.e6288ep-1f, -0x1.891c22p-26f, --0x1.25280cp1f, 0x1p1f, -0x1.e9f416p-1f, 0x1.273a44p-26f, --0x1.2223a4p1f, 0x1p1f, -0x1.ed740ep-1f, -0x1.da1258p-27f, --0x1.0f8cfcp2f, 0x1p2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, --0x1.0e05c2p2f, 0x1p2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, --0x1.0c7c5cp2f, 0x1p2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, --0x1.0af10ap2f, 0x1p2f, -0x1.f8765p-1f, 0x1.63ad16p-27f, --0x1.096408p2f, 0x1p2f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, --0x1.03eacap3f, 0x1p3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, --0x1.0322f4p3f, 0x1p3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, --0x1.025aa4p3f, 0x1p3f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, --0x1.00c8fcp4f, 0x1p4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, --0x1.003242p5f, 0x1p5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, +0x1.b7aa82p-8f, -0x1p-5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, +0x1.b82684p-7f, -0x1p-4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, +-0x1.6a904ap-7f, -0x1p-4f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, +0x1.ba165p-6f, -0x1p-3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, +0x1.536352p-9f, -0x1p-3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, +-0x1.640838p-6f, -0x1p-3f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, +-0x1.788512p-5f, -0x1p-3f, 0x1.f8765p-1f, -0x1.63ad16p-27f, +0x1.c1d1fp-5f, -0x1p-2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, +0x1.fa3ecap-6f, -0x1p-2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, +0x1.cc0d0ap-8f, -0x1p-2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, +-0x1.11d262p-6f, -0x1p-2f, 0x1.ed740ep-1f, 0x1.da1258p-27f, +-0x1.4a0318p-5f, -0x1p-2f, 0x1.e9f416p-1f, -0x1.273a44p-26f, +-0x1.04d726p-4f, -0x1p-2f, 0x1.e6288ep-1f, 0x1.891c22p-26f, +-0x1.63e69ep-4f, -0x1p-2f, 0x1.e2121p-1f, 0x1.3da1bap-27f, +0x1.1eef5ap-3f, -0x1p-1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, +0x1.e08756p-4f, -0x1p-1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, +0x1.8421bp-4f, -0x1p-1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, +0x1.28bbfep-4f, -0x1p-1f, 0x1.ced7bp-1f, -0x1.786712p-26f, +0x1.9cc8b4p-5f, -0x1p-1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, +0x1.d4a2c8p-6f, -0x1p-1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, +0x1.d16c9p-8f, -0x1p-1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, +-0x1.ce1e64p-7f, -0x1p-1f, 0x1.b72834p-1f, 0x1.465b9p-27f, +-0x1.1eb354p-5f, -0x1p-1f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, +-0x1.c73b3ap-5f, -0x1p-1f, 0x1.a9b662p-1f, 0x1.21d434p-26f, +-0x1.3682a6p-4f, -0x1p-1f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, +-0x1.87fbfep-4f, -0x1p-1f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, +-0x1.d7fd14p-4f, -0x1p-1f, 0x1.93a224p-1f, 0x1.324c8p-26f, +-0x1.133ccap-3f, -0x1p-1f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, +-0x1.39b2aep-3f, -0x1p-1f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, +-0x1.5f5a4ep-3f, -0x1p-1f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, +-0x1.842dd6p-3f, -0x1p-1f, 0x1.72d084p-1f, -0x1.02000ep-26f, +0x1.2bec34p-2f, -0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, +0x1.1a5efap-2f, -0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, +0x1.09441cp-2f, -0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, +0x1.f13c7ep-3f, -0x1p0f, 0x1.4e6cacp-1f, -0x1.070686p-27f, +0x1.d0dfe6p-3f, -0x1p0f, 0x1.44cf32p-1f, 0x1.424776p-27f, +0x1.b1776ep-3f, -0x1p0f, 0x1.3affa2p-1f, 0x1.240a18p-26f, +0x1.9307eep-3f, -0x1p0f, 0x1.30ff8p-1f, -0x1.8f47e6p-28f, +0x1.759618p-3f, -0x1p0f, 0x1.26d054p-1f, 0x1.9ba25cp-26f, +0x1.592676p-3f, -0x1p0f, 0x1.1c73b4p-1f, -0x1.9465cep-27f, +0x1.3dbd6ap-3f, -0x1p0f, 0x1.11eb36p-1f, -0x1.7c969cp-26f, +0x1.235f2ep-3f, -0x1p0f, 0x1.07387ap-1f, -0x1.b74004p-27f, +0x1.0a0fd4p-3f, -0x1p0f, 0x1.f8ba4ep-2f, -0x1.01d952p-28f, +0x1.e3a688p-4f, -0x1p0f, 0x1.e2b5d4p-2f, -0x1.fe4272p-28f, +0x1.b55a7p-4f, -0x1p0f, 0x1.cc66eap-2f, -0x1.b38ee8p-28f, +0x1.894286p-4f, -0x1p0f, 0x1.b5d1p-2f, 0x1.3c2b98p-27f, +0x1.5f6598p-4f, -0x1p0f, 0x1.9ef794p-2f, 0x1.d476c6p-29f, +0x1.37ca18p-4f, -0x1p0f, 0x1.87de2ap-2f, 0x1.abaa58p-28f, +0x1.127624p-4f, -0x1p0f, 0x1.708854p-2f, -0x1.e0b74cp-27f, +0x1.dedefcp-5f, -0x1p0f, 0x1.58f9a8p-2f, -0x1.4a9c04p-27f, +0x1.9d7714p-5f, -0x1p0f, 0x1.4135cap-2f, -0x1.7d134p-27f, +0x1.60beaap-5f, -0x1p0f, 0x1.294062p-2f, 0x1.dab3ep-27f, +0x1.28bf18p-5f, -0x1p0f, 0x1.111d26p-2f, 0x1.58fb3cp-29f, +0x1.eb0208p-6f, -0x1p0f, 0x1.f19f98p-3f, -0x1.37a83ap-29f, +0x1.8e18a8p-6f, -0x1p0f, 0x1.c0b826p-3f, 0x1.4fc9ecp-28f, +0x1.3ad06p-6f, -0x1p0f, 0x1.8f8b84p-3f, -0x1.cb2cfap-30f, +0x1.e26c16p-7f, -0x1p0f, 0x1.5e2144p-3f, 0x1.22cff2p-29f, +0x1.62aa04p-7f, -0x1p0f, 0x1.2c8106p-3f, 0x1.d1cc28p-28f, +0x1.ecdc78p-8f, -0x1p0f, 0x1.f564e6p-4f, -0x1.2ad19ep-29f, +0x1.3b92e2p-8f, -0x1p0f, 0x1.917a6cp-4f, -0x1.eb25eap-31f, +0x1.63253p-9f, -0x1p0f, 0x1.2d520ap-4f, -0x1.a63cc2p-29f, +0x1.3bc39p-10f, -0x1p0f, 0x1.91f66p-5f, -0x1.de44fep-30f, +0x1.3bcfbep-12f, -0x1p0f, 0x1.92156p-6f, -0x1.0b933p-31f, +0.0f, -0x1p0f, 0.0f, 0.0f, +0x1.3bcfbep-12f, -0x1p0f, -0x1.92156p-6f, 0x1.0b933p-31f, +0x1.3bc39p-10f, -0x1p0f, -0x1.91f66p-5f, 0x1.de44fep-30f, +0x1.63253p-9f, -0x1p0f, -0x1.2d520ap-4f, 0x1.a63cc2p-29f, +0x1.3b92e2p-8f, -0x1p0f, -0x1.917a6cp-4f, 0x1.eb25eap-31f, +0x1.ecdc78p-8f, -0x1p0f, -0x1.f564e6p-4f, 0x1.2ad19ep-29f, +0x1.62aa04p-7f, -0x1p0f, -0x1.2c8106p-3f, -0x1.d1cc28p-28f, +0x1.e26c16p-7f, -0x1p0f, -0x1.5e2144p-3f, -0x1.22cff2p-29f, +0x1.3ad06p-6f, -0x1p0f, -0x1.8f8b84p-3f, 0x1.cb2cfap-30f, +0x1.8e18a8p-6f, -0x1p0f, -0x1.c0b826p-3f, -0x1.4fc9ecp-28f, +0x1.eb0208p-6f, -0x1p0f, -0x1.f19f98p-3f, 0x1.37a83ap-29f, +0x1.28bf18p-5f, -0x1p0f, -0x1.111d26p-2f, -0x1.58fb3cp-29f, +0x1.60beaap-5f, -0x1p0f, -0x1.294062p-2f, -0x1.dab3ep-27f, +0x1.9d7714p-5f, -0x1p0f, -0x1.4135cap-2f, 0x1.7d134p-27f, +0x1.dedefcp-5f, -0x1p0f, -0x1.58f9a8p-2f, 0x1.4a9c04p-27f, +0x1.127624p-4f, -0x1p0f, -0x1.708854p-2f, 0x1.e0b74cp-27f, +0x1.37ca18p-4f, -0x1p0f, -0x1.87de2ap-2f, -0x1.abaa58p-28f, +0x1.5f6598p-4f, -0x1p0f, -0x1.9ef794p-2f, -0x1.d476c6p-29f, +0x1.894286p-4f, -0x1p0f, -0x1.b5d1p-2f, -0x1.3c2b98p-27f, +0x1.b55a7p-4f, -0x1p0f, -0x1.cc66eap-2f, 0x1.b38ee8p-28f, +0x1.e3a688p-4f, -0x1p0f, -0x1.e2b5d4p-2f, 0x1.fe4272p-28f, +0x1.0a0fd4p-3f, -0x1p0f, -0x1.f8ba4ep-2f, 0x1.01d952p-28f, +0x1.235f2ep-3f, -0x1p0f, -0x1.07387ap-1f, 0x1.b74004p-27f, +0x1.3dbd6ap-3f, -0x1p0f, -0x1.11eb36p-1f, 0x1.7c969cp-26f, +0x1.592676p-3f, -0x1p0f, -0x1.1c73b4p-1f, 0x1.9465cep-27f, +0x1.759618p-3f, -0x1p0f, -0x1.26d054p-1f, -0x1.9ba25cp-26f, +0x1.9307eep-3f, -0x1p0f, -0x1.30ff8p-1f, 0x1.8f47e6p-28f, +0x1.b1776ep-3f, -0x1p0f, -0x1.3affa2p-1f, -0x1.240a18p-26f, +0x1.d0dfe6p-3f, -0x1p0f, -0x1.44cf32p-1f, -0x1.424776p-27f, +0x1.f13c7ep-3f, -0x1p0f, -0x1.4e6cacp-1f, 0x1.070686p-27f, +0x1.09441cp-2f, -0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, +0x1.1a5efap-2f, -0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, +0x1.2bec34p-2f, -0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, +-0x1.842dd6p-3f, -0x1p-1f, -0x1.72d084p-1f, 0x1.02000ep-26f, +-0x1.5f5a4ep-3f, -0x1p-1f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, +-0x1.39b2aep-3f, -0x1p-1f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, +-0x1.133ccap-3f, -0x1p-1f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, +-0x1.d7fd14p-4f, -0x1p-1f, -0x1.93a224p-1f, -0x1.324c8p-26f, +-0x1.87fbfep-4f, -0x1p-1f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, +-0x1.3682a6p-4f, -0x1p-1f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, +-0x1.c73b3ap-5f, -0x1p-1f, -0x1.a9b662p-1f, -0x1.21d434p-26f, +-0x1.1eb354p-5f, -0x1p-1f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, +-0x1.ce1e64p-7f, -0x1p-1f, -0x1.b72834p-1f, -0x1.465b9p-27f, +0x1.d16c9p-8f, -0x1p-1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, +0x1.d4a2c8p-6f, -0x1p-1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, +0x1.9cc8b4p-5f, -0x1p-1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, +0x1.28bbfep-4f, -0x1p-1f, -0x1.ced7bp-1f, 0x1.786712p-26f, +0x1.8421bp-4f, -0x1p-1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, +0x1.e08756p-4f, -0x1p-1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, +0x1.1eef5ap-3f, -0x1p-1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, +-0x1.63e69ep-4f, -0x1p-2f, -0x1.e2121p-1f, -0x1.3da1bap-27f, +-0x1.04d726p-4f, -0x1p-2f, -0x1.e6288ep-1f, -0x1.891c22p-26f, +-0x1.4a0318p-5f, -0x1p-2f, -0x1.e9f416p-1f, 0x1.273a44p-26f, +-0x1.11d262p-6f, -0x1p-2f, -0x1.ed740ep-1f, -0x1.da1258p-27f, +0x1.cc0d0ap-8f, -0x1p-2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, +0x1.fa3ecap-6f, -0x1p-2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, +0x1.c1d1fp-5f, -0x1p-2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, +-0x1.788512p-5f, -0x1p-3f, -0x1.f8765p-1f, 0x1.63ad16p-27f, +-0x1.640838p-6f, -0x1p-3f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, +0x1.536352p-9f, -0x1p-3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, +0x1.ba165p-6f, -0x1p-3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, +-0x1.6a904ap-7f, -0x1p-4f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, +0x1.b82684p-7f, -0x1p-4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, +0x1.b7aa82p-8f, -0x1p-5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, 0.0f, 0.0f, -0x1p0f, 0.0f, -0x1.b7aa82p-8f, 0x1p-5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, -0x1.b82684p-7f, 0x1p-4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, --0x1.a55beep-5f, 0x1p-3f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, +0x1.6a904ap-7f, 0x1p-4f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, -0x1.ba165p-6f, 0x1p-3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, -0x1.536352p-9f, 0x1p-3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, --0x1.a6fdf2p-4f, 0x1p-2f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, --0x1.43bd78p-4f, 0x1p-2f, -0x1.f8765p-1f, 0x1.63ad16p-27f, +0x1.640838p-6f, 0x1p-3f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, +0x1.788512p-5f, 0x1p-3f, -0x1.f8765p-1f, 0x1.63ad16p-27f, -0x1.c1d1fp-5f, 0x1p-2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, -0x1.fa3ecap-6f, 0x1p-2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, -0x1.cc0d0ap-8f, 0x1p-2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, --0x1.ddc5b4p-3f, 0x1p-1f, -0x1.ed740ep-1f, -0x1.da1258p-27f, --0x1.ad7f3ap-3f, 0x1p-1f, -0x1.e9f416p-1f, 0x1.273a44p-26f, --0x1.7d946ep-3f, 0x1p-1f, -0x1.e6288ep-1f, -0x1.891c22p-26f, --0x1.4e0cb2p-3f, 0x1p-1f, -0x1.e2121p-1f, -0x1.3da1bap-27f, +0x1.11d262p-6f, 0x1p-2f, -0x1.ed740ep-1f, -0x1.da1258p-27f, +0x1.4a0318p-5f, 0x1p-2f, -0x1.e9f416p-1f, 0x1.273a44p-26f, +0x1.04d726p-4f, 0x1p-2f, -0x1.e6288ep-1f, -0x1.891c22p-26f, +0x1.63e69ep-4f, 0x1p-2f, -0x1.e2121p-1f, -0x1.3da1bap-27f, -0x1.1eef5ap-3f, 0x1p-1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, -0x1.e08756p-4f, 0x1p-1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, -0x1.8421bp-4f, 0x1p-1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, @@ -221,16 +221,16 @@ template <> inline constexpr float kSinApproxTable[] = -0x1.9cc8b4p-5f, 0x1p-1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, -0x1.d4a2c8p-6f, 0x1p-1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, -0x1.d16c9p-8f, 0x1p-1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, --0x1.f18f0cp-2f, 0x1p0f, -0x1.b72834p-1f, -0x1.465b9p-27f, --0x1.dc2996p-2f, 0x1p0f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, --0x1.c71898p-2f, 0x1p0f, -0x1.a9b662p-1f, -0x1.21d434p-26f, --0x1.b25f56p-2f, 0x1p0f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, --0x1.9e01p-2f, 0x1p0f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, --0x1.8a00bap-2f, 0x1p0f, -0x1.93a224p-1f, -0x1.324c8p-26f, --0x1.76619cp-2f, 0x1p0f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, --0x1.6326a8p-2f, 0x1p0f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, --0x1.5052dap-2f, 0x1p0f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, --0x1.3de916p-2f, 0x1p0f, -0x1.72d084p-1f, 0x1.02000ep-26f, +0x1.ce1e64p-7f, 0x1p-1f, -0x1.b72834p-1f, -0x1.465b9p-27f, +0x1.1eb354p-5f, 0x1p-1f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, +0x1.c73b3ap-5f, 0x1p-1f, -0x1.a9b662p-1f, -0x1.21d434p-26f, +0x1.3682a6p-4f, 0x1p-1f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, +0x1.87fbfep-4f, 0x1p-1f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, +0x1.d7fd14p-4f, 0x1p-1f, -0x1.93a224p-1f, -0x1.324c8p-26f, +0x1.133ccap-3f, 0x1p-1f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, +0x1.39b2aep-3f, 0x1p-1f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, +0x1.5f5a4ep-3f, 0x1p-1f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, +0x1.842dd6p-3f, 0x1p-1f, -0x1.72d084p-1f, 0x1.02000ep-26f, -0x1.2bec34p-2f, 0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, -0x1.1a5efap-2f, 0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, -0x1.09441cp-2f, 0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, @@ -326,33 +326,33 @@ template <> inline constexpr double kSinApproxTable[] = -0x1.d0dfe53aba2fdp-3, 0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, -0x1.e0effc1174505p-3, 0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, -0x1.f13c7d001a249p-3, 0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, --0x1.00e263951d11fp-2, 0x1p0, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, --0x1.09441bb2aa0a2p-2, 0x1p0, 0x1.57d69348cecap-1, -0x1.757208p-55, --0x1.11c3141f91b3ep-2, 0x1p0, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, --0x1.1a5ef902000d3p-2, 0x1p0, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, --0x1.23177562aaea3p-2, 0x1p0, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, --0x1.2bec333018867p-2, 0x1p0, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, --0x1.34dcdb41f0f85p-2, 0x1p0, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, --0x1.3de9155c5a642p-2, 0x1p0, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, --0x1.471088335fce7p-2, 0x1p0, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, --0x1.5052d96e626c1p-2, 0x1p0, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, --0x1.59afadab954d4p-2, 0x1p0, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, --0x1.6326a8838342ep-2, 0x1p0, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, --0x1.6cb76c8c9ed8fp-2, 0x1p0, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, --0x1.76619b5edc454p-2, 0x1p0, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, --0x1.8024d59755257p-2, 0x1p0, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, --0x1.8a00badbf5e8ep-2, 0x1p0, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, --0x1.93f4e9df34c1bp-2, 0x1p0, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, --0x1.9e010063d1f96p-2, 0x1p0, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, --0x1.a8249b40a182cp-2, 0x1p0, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, --0x1.b25f56645da43p-2, 0x1p0, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, --0x1.bcb0ccd98294fp-2, 0x1p0, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, --0x1.c71898ca32e6fp-2, 0x1p0, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, --0x1.d19653842496fp-2, 0x1p0, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, --0x1.dc29957c969bbp-2, 0x1p0, 0x1.b090a581502p-1, -0x1.926da2p-55, --0x1.e6d1f6544ece3p-2, 0x1p0, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, --0x1.f18f0cdba0025p-2, 0x1p0, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, --0x1.fc606f1678292p-2, 0x1p0, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, +0x1.fe3b38d5c5dc2p-3, 0x1p-1, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, +0x1.ed77c89aabebbp-3, 0x1p-1, 0x1.57d69348cecap-1, -0x1.757208p-55, +0x1.dc79d7c0dc985p-3, 0x1p-1, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, +0x1.cb420dfbffe59p-3, 0x1p-1, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, +0x1.b9d1153aaa2bap-3, 0x1p-1, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, +0x1.a827999fcef32p-3, 0x1p-1, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, +0x1.9646497c1e0f6p-3, 0x1p-1, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, +0x1.842dd5474b37bp-3, 0x1p-1, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, +0x1.71deef9940631p-3, 0x1p-1, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, +0x1.5f5a4d233b27fp-3, 0x1p-1, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, +0x1.4ca0a4a8d5657p-3, 0x1p-1, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, +0x1.39b2aef8f97a4p-3, 0x1p-1, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, +0x1.269126e6c24e3p-3, 0x1p-1, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, +0x1.133cc94247758p-3, 0x1p-1, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, +0x1.ff6ca9a2ab6a2p-4, 0x1p-1, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, +0x1.d7fd1490285cap-4, 0x1p-1, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, +0x1.b02c58832cf96p-4, 0x1p-1, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, +0x1.87fbfe70b81a7p-4, 0x1p-1, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, +0x1.5f6d92fd79f5p-4, 0x1p-1, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, +0x1.3682a66e896f5p-4, 0x1p-1, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, +0x1.0d3ccc99f5ac6p-4, 0x1p-1, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, +0x1.c73b39ae68c87p-5, 0x1p-1, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, +0x1.734d63dedb48ap-5, 0x1p-1, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, +0x1.1eb3541b4b228p-5, 0x1p-1, 0x1.b090a581502p-1, -0x1.926da2p-55, +0x1.92e09abb131d4p-6, 0x1p-1, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, +0x1.ce1e648bffb66p-7, 0x1p-1, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, +0x1.cfc874c3eb6d9p-9, 0x1p-1, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, -0x1.d16c901d95181p-8, 0x1p-1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, -0x1.23e6ad10872a7p-6, 0x1p-1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, -0x1.d4a2c7f909c4ep-6, 0x1p-1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, @@ -364,325 +364,325 @@ template <> inline constexpr double kSinApproxTable[] = -0x1.8421af15c49d7p-4, 0x1p-1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, -0x1.b2356710db0a3p-4, 0x1p-1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, -0x1.e087565455a75p-4, 0x1p-1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, --0x1.078ad9dc46632p-3, 0x1p-1, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, --0x1.1eef59e0b74c3p-3, 0x1p-1, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, --0x1.367044581b074p-3, 0x1p-1, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, --0x1.4e0cb14a9c046p-3, 0x1p-1, 0x1.e212104f686e5p-1, -0x1.014c76p-55, --0x1.65c3b7b0e312cp-3, 0x1p-1, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, --0x1.7d946d7d133fdp-3, 0x1p-1, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, --0x1.957de7a3cfd5dp-3, 0x1p-1, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, --0x1.ad7f3a254c1f5p-3, 0x1p-1, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, --0x1.c597781664984p-3, 0x1p-1, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, --0x1.ddc5b3a9c1311p-3, 0x1p-1, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, --0x1.f608fe39004a4p-3, 0x1p-1, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, +0x1.f0ea4c477339cp-4, 0x1p-2, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, +0x1.c2214c3e9167bp-4, 0x1p-2, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, +0x1.931f774fc9f18p-4, 0x1p-2, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, +0x1.63e69d6ac7f74p-4, 0x1p-2, 0x1.e212104f686e5p-1, -0x1.014c76p-55, +0x1.3478909e39da9p-4, 0x1p-2, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, +0x1.04d72505d9805p-4, 0x1p-2, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, +0x1.aa086170c0a8ep-5, 0x1p-2, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, +0x1.4a03176acf82dp-5, 0x1p-2, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, +0x1.d3443f4cdb3ddp-6, 0x1p-2, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, +0x1.11d262b1f6776p-6, 0x1p-2, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, +0x1.3ee038dff6b8p-8, 0x1p-2, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, -0x1.cc0d09bd41caap-8, 0x1p-2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, -0x1.36580d5d5e775p-6, 0x1p-2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, -0x1.fa3ecac0d84e8p-6, 0x1p-2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, -0x1.5f57f693feebep-5, 0x1p-2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, -0x1.c1d1f0e5967d5p-5, 0x1p-2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, --0x1.1244c435e819dp-4, 0x1p-2, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, --0x1.43bd776e98073p-4, 0x1p-2, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, --0x1.755129dad834cp-4, 0x1p-2, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, --0x1.a6fdf22e33d8cp-4, 0x1p-2, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, --0x1.d8c1e624a1513p-4, 0x1p-2, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, +0x1.db7677942fcc5p-5, 0x1p-3, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, +0x1.78851122cff19p-5, 0x1p-3, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, +0x1.155dac4a4f967p-5, 0x1p-3, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, +0x1.64083747309d1p-6, 0x1p-3, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, +0x1.39f0cedaf576bp-7, 0x1p-3, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, -0x1.536352ad19e39p-9, 0x1p-3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, -0x1.e43d1c309e958p-7, 0x1p-3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, -0x1.ba1650f592f5p-6, 0x1p-3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, --0x1.4125feacab7cep-5, 0x1p-3, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, --0x1.a55beda63cc14p-5, 0x1p-3, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, +0x1.7db402a6a9063p-6, 0x1p-4, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, +0x1.6a9049670cfaep-7, 0x1p-4, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, -0x1.35230c0fbe402p-10, 0x1p-4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, -0x1.b82683bc89fbp-7, 0x1p-4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, --0x1.a4f3514d75466p-6, 0x1p-4, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, +0x1.6c32baca2ae69p-8, 0x1p-5, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, -0x1.b7aa821726608p-8, 0x1p-5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, -0x1.b78b80c84e1eep-9, 0x1p-6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, 0.0, 0.0, 0x1p0, 0.0, --0x1.000c90e8fe6f6p6, 0x1p6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, --0x1.003242abef46dp5, 0x1p5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, --0x1.0096c32baca2bp4, 0x1p4, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, --0x1.00c8fb2f886ecp4, 0x1p4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, --0x1.00fb2b73cfc1p4, 0x1p4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, --0x1.025aa41259c34p3, 0x1p3, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, --0x1.02beda0153548p3, 0x1p3, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, --0x1.0322f4d785368p3, 0x1p3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, --0x1.0386f0b8f3d86p3, 0x1p3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, --0x1.03eac9cad52e6p3, 0x1p3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, --0x1.089cf8676d7acp2, 0x1p2, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, --0x1.096408374730ap2, 0x1p2, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, --0x1.0a2abb58949f3p2, 0x1p2, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, --0x1.0af10a22459fep2, 0x1p2, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, --0x1.0bb6ecef285fap2, 0x1p2, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, --0x1.0c7c5c1e34d3p2, 0x1p2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, --0x1.0d415012d8023p2, 0x1p2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, --0x1.0e05c1353f27bp2, 0x1p2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, --0x1.0ec9a7f2a2a19p2, 0x1p2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, --0x1.0f8cfcbd90af9p2, 0x1p2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, --0x1.209f701c6ffb6p1, 0x1p1, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, --0x1.2223a4c563ecfp1, 0x1p1, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, --0x1.23a6887e99b68p1, 0x1p1, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, --0x1.25280c5dab3e1p1, 0x1p1, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, --0x1.26a82185c302ap1, 0x1p1, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, --0x1.2826b9282eccp1, 0x1p1, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, --0x1.29a3c484f1cedp1, 0x1p1, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, --0x1.2b1f34eb563fcp1, 0x1p1, 0x1.e212104f686e5p-1, -0x1.014c76p-55, --0x1.2c98fbba7e4f9p1, 0x1p1, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, --0x1.2e110a61f48b4p1, 0x1p1, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, --0x1.2f8752623b99dp1, 0x1p1, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, --0x1.30fbc54d5d52cp1, 0x1p1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, --0x1.326e54c77927bp1, 0x1p1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, --0x1.33def28751db1p1, 0x1p1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, --0x1.354d9056da7f9p1, 0x1p1, 0x1.d17e7743e35dcp-1, -0x1.101da2p-58, --0x1.36ba2013c2b98p1, 0x1p1, 0x1.ced7af43cc773p-1, -0x1.e7b6bap-58, --0x1.382493b0023ddp1, 0x1p1, 0x1.cc1f0f3fcfc5cp-1, 0x1.e57612p-56, --0x1.398cdd326388cp1, 0x1p1, 0x1.c954b213411f5p-1, -0x1.2fb76p-58, --0x1.3af2eeb70dc71p1, 0x1p1, 0x1.c678b3488739bp-1, 0x1.d86cacp-57, --0x1.3c56ba700dec7p1, 0x1p1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, --0x1.3db832a5def1bp1, 0x1p1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, --0x1.3f1749b7f1357p1, 0x1p1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, --0x1.80e7e43a61f5bp0, 0x1p0, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, --0x1.839c3cc917ff7p0, 0x1p0, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, --0x1.864b826aec4c7p0, 0x1p0, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, --0x1.88f59aa0da591p0, 0x1p0, 0x1.b090a581502p-1, -0x1.926da2p-55, --0x1.8b9a6b1ef6da4p0, 0x1p0, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, --0x1.8e39d9cd73464p0, 0x1p0, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, --0x1.90d3ccc99f5acp0, 0x1p0, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, --0x1.93682a66e896fp0, 0x1p0, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, --0x1.95f6d92fd79f5p0, 0x1p0, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, --0x1.987fbfe70b81ap0, 0x1p0, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, --0x1.9b02c58832cf9p0, 0x1p0, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, --0x1.9d7fd1490285dp0, 0x1p0, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, --0x1.9ff6ca9a2ab6ap0, 0x1p0, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, --0x1.a267992848eebp0, 0x1p0, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, --0x1.a4d224dcd849cp0, 0x1p0, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, --0x1.a73655df1f2f5p0, 0x1p0, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, --0x1.a99414951aacbp0, 0x1p0, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, --0x1.abeb49a46765p0, 0x1p0, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, --0x1.ae3bddf3280c6p0, 0x1p0, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, --0x1.b085baa8e966fp0, 0x1p0, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, --0x1.b2c8c92f83c1fp0, 0x1p0, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, --0x1.b504f333f9de6p0, 0x1p0, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, --0x1.b73a22a755457p0, 0x1p0, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, --0x1.b96841bf7ffcbp0, 0x1p0, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, --0x1.bb8f3af81b931p0, 0x1p0, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, --0x1.bdaef913557d7p0, 0x1p0, 0x1.57d69348cecap-1, -0x1.757208p-55, --0x1.bfc7671ab8bb8p0, 0x1p0, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, --0x1.c1d8705ffcbb7p0, 0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, --0x1.c3e2007dd175fp0, 0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, --0x1.c5e40358a8bap0, 0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, --0x1.c7de651f7ca06p0, 0x1p0, 0x1.3fed9534556d4p-1, 0x1.369166p-55, --0x1.c9d1124c931fep0, 0x1p0, 0x1.3affa292050b9p-1, 0x1.e3e25ep-56, --0x1.cbbbf7a63eba1p0, 0x1p0, 0x1.36058b10659f3p-1, -0x1.1fcb3ap-55, --0x1.cd9f023f9c3ap0, 0x1p0, 0x1.30ff7fce17035p-1, -0x1.efcc62p-57, --0x1.cf7a1f794d7cap0, 0x1p0, 0x1.2bedb25faf3eap-1, -0x1.14981cp-58, --0x1.d14d3d02313c1p0, 0x1p0, 0x1.26d054cdd12dfp-1, -0x1.5da742p-55, --0x1.d31848d817d71p0, 0x1p0, 0x1.21a799933eb59p-1, -0x1.3a7b16p-55, --0x1.d4db3148750d2p0, 0x1p0, 0x1.1c73b39ae68c8p-1, 0x1.b25dd2p-55, --0x1.d695e4f10ea88p0, 0x1p0, 0x1.1734d63dedb49p-1, -0x1.7eef2cp-55, --0x1.d84852c0a81p0, 0x1p0, 0x1.11eb3541b4b23p-1, -0x1.ef23b6p-55, --0x1.d9f269f7aab89p0, 0x1p0, 0x1.0c9704d5d898fp-1, -0x1.8d3d7cp-55, --0x1.db941a28cb71fp0, 0x1p0, 0x1.073879922ffeep-1, -0x1.a5a014p-55, --0x1.dd2d5339ac869p0, 0x1p0, 0x1.01cfc874c3eb7p-1, -0x1.34a35ep-56, --0x1.debe05637ca95p0, 0x1p0, 0x1.f8ba4dbf89abap-2, -0x1.2ec1fcp-60, --0x1.e046213392aa5p0, 0x1p0, 0x1.edc1952ef78d6p-2, -0x1.dd0f7cp-56, --0x1.e1c5978c05ed8p0, 0x1p0, 0x1.e2b5d3806f63bp-2, 0x1.e0d89p-58, --0x1.e33c59a4439cep0, 0x1p0, 0x1.d79775b86e389p-2, 0x1.550ec8p-56, --0x1.e4aa5909a08fap0, 0x1p0, 0x1.cc66e9931c45ep-2, 0x1.6850e4p-58, --0x1.e60f879fe7e2ep0, 0x1p0, 0x1.c1249d8011ee7p-2, -0x1.813aaap-56, --0x1.e76bd7a1e63b9p0, 0x1p0, 0x1.b5d1009e15ccp-2, 0x1.5b362cp-57, --0x1.e8bf3ba1f1aeep0, 0x1p0, 0x1.aa6c82b6d3fcap-2, -0x1.d5f106p-56, --0x1.ea09a68a6e49dp0, 0x1p0, 0x1.9ef7943a8ed8ap-2, 0x1.6da812p-57, --0x1.eb4b0b9e4f345p0, 0x1p0, 0x1.9372a63bc93d7p-2, 0x1.684318p-57, --0x1.ec835e79946a3p0, 0x1p0, 0x1.87de2a6aea963p-2, -0x1.72cedcp-57, --0x1.edb29311c504dp0, 0x1p0, 0x1.7c3a9311dcce7p-2, 0x1.9a3f2p-62, --0x1.eed89db66611ep0, 0x1p0, 0x1.7088530fa459fp-2, -0x1.44b19ep-56, --0x1.eff573116df15p0, 0x1p0, 0x1.64c7ddd3f27c6p-2, 0x1.10d2b4p-58, --0x1.f1090827b4372p0, 0x1p0, 0x1.58f9a75ab1fddp-2, -0x1.efdc0cp-62, --0x1.f21352595e0bfp0, 0x1p0, 0x1.4d1e24278e76ap-2, 0x1.24172p-57, --0x1.f314476247089p0, 0x1p0, 0x1.4135c94176601p-2, 0x1.0c97c4p-56, --0x1.f40bdd5a66886p0, 0x1p0, 0x1.35410c2e18152p-2, -0x1.3cb002p-56, --0x1.f4fa0ab6316edp0, 0x1p0, 0x1.294062ed59f06p-2, -0x1.5d28dap-56, --0x1.f5dec646f85bap0, 0x1p0, 0x1.1d3443f4cdb3ep-2, -0x1.720d4p-57, --0x1.f6ba073b424b2p0, 0x1p0, 0x1.111d262b1f677p-2, 0x1.824c2p-56, --0x1.f78bc51f239e1p0, 0x1p0, 0x1.04fb80e37fdaep-2, -0x1.412cdap-63, --0x1.f853f7dc9186cp0, 0x1p0, 0x1.f19f97b215f1bp-3, -0x1.42deeep-57, --0x1.f91297bbb1d6dp0, 0x1p0, 0x1.d934fe5454311p-3, 0x1.75b922p-57, --0x1.f9c79d63272c4p0, 0x1p0, 0x1.c0b826a7e4f63p-3, -0x1.af1438p-62, --0x1.fa7301d859796p0, 0x1p0, 0x1.a82a025b00451p-3, -0x1.87905ep-57, --0x1.fb14be7fbae58p0, 0x1p0, 0x1.8f8b83c69a60bp-3, -0x1.26d19ap-57, --0x1.fbaccd1d0903cp0, 0x1p0, 0x1.76dd9de50bf31p-3, 0x1.1d5eeep-57, --0x1.fc3b27d38a5d5p0, 0x1p0, 0x1.5e214448b3fc6p-3, 0x1.531ff6p-57, --0x1.fcbfc926484cdp0, 0x1p0, 0x1.45576b1293e5ap-3, -0x1.285a24p-58, --0x1.fd3aabf84528bp0, 0x1p0, 0x1.2c8106e8e613ap-3, 0x1.13000ap-58, --0x1.fdabcb8caeba1p0, 0x1p0, 0x1.139f0cedaf577p-3, -0x1.523434p-57, --0x1.fe1323870cfeap0, 0x1p0, 0x1.f564e56a9730ep-4, 0x1.a27046p-59, --0x1.fe70afeb6d33dp0, 0x1p0, 0x1.c3785c79ec2d5p-4, -0x1.4f39dep-61, --0x1.fec46d1e89293p0, 0x1p0, 0x1.917a6bc29b42cp-4, -0x1.e2718cp-60, --0x1.ff0e57e5ead85p0, 0x1p0, 0x1.5f6d00a9aa419p-4, -0x1.f4022cp-59, --0x1.ff4e6d680c41dp0, 0x1p0, 0x1.2d52092ce19f6p-4, -0x1.9a088ap-59, --0x1.ff84ab2c738d7p0, 0x1p0, 0x1.f656e79f820ep-5, -0x1.2e1ebep-61, --0x1.ffb10f1bcb6bfp0, 0x1p0, 0x1.91f65f10dd814p-5, -0x1.912bdp-61, --0x1.ffd3977ff7baep0, 0x1p0, 0x1.2d865759455cdp-5, 0x1.686f64p-61, --0x1.ffec430426686p0, 0x1p0, 0x1.92155f7a3667ep-6, -0x1.b1d63p-64, --0x1.fffb10b4dc96ep0, 0x1p0, 0x1.921d1fcdec784p-7, 0x1.9878eap-61, --0x1p1, 0x1p0, 0.0, 0.0, --0x1.fffb10b4dc96ep0, 0x1p0, -0x1.921d1fcdec784p-7, -0x1.9878eap-61, --0x1.ffec430426686p0, 0x1p0, -0x1.92155f7a3667ep-6, 0x1.b1d63p-64, --0x1.ffd3977ff7baep0, 0x1p0, -0x1.2d865759455cdp-5, -0x1.686f64p-61, --0x1.ffb10f1bcb6bfp0, 0x1p0, -0x1.91f65f10dd814p-5, 0x1.912bdp-61, --0x1.ff84ab2c738d7p0, 0x1p0, -0x1.f656e79f820ep-5, 0x1.2e1ebep-61, --0x1.ff4e6d680c41dp0, 0x1p0, -0x1.2d52092ce19f6p-4, 0x1.9a088ap-59, --0x1.ff0e57e5ead85p0, 0x1p0, -0x1.5f6d00a9aa419p-4, 0x1.f4022cp-59, --0x1.fec46d1e89293p0, 0x1p0, -0x1.917a6bc29b42cp-4, 0x1.e2718cp-60, --0x1.fe70afeb6d33dp0, 0x1p0, -0x1.c3785c79ec2d5p-4, 0x1.4f39dep-61, --0x1.fe1323870cfeap0, 0x1p0, -0x1.f564e56a9730ep-4, -0x1.a27046p-59, --0x1.fdabcb8caeba1p0, 0x1p0, -0x1.139f0cedaf577p-3, 0x1.523434p-57, --0x1.fd3aabf84528bp0, 0x1p0, -0x1.2c8106e8e613ap-3, -0x1.13000ap-58, --0x1.fcbfc926484cdp0, 0x1p0, -0x1.45576b1293e5ap-3, 0x1.285a24p-58, --0x1.fc3b27d38a5d5p0, 0x1p0, -0x1.5e214448b3fc6p-3, -0x1.531ff6p-57, --0x1.fbaccd1d0903cp0, 0x1p0, -0x1.76dd9de50bf31p-3, -0x1.1d5eeep-57, --0x1.fb14be7fbae58p0, 0x1p0, -0x1.8f8b83c69a60bp-3, 0x1.26d19ap-57, --0x1.fa7301d859796p0, 0x1p0, -0x1.a82a025b00451p-3, 0x1.87905ep-57, --0x1.f9c79d63272c4p0, 0x1p0, -0x1.c0b826a7e4f63p-3, 0x1.af1438p-62, --0x1.f91297bbb1d6dp0, 0x1p0, -0x1.d934fe5454311p-3, -0x1.75b922p-57, --0x1.f853f7dc9186cp0, 0x1p0, -0x1.f19f97b215f1bp-3, 0x1.42deeep-57, --0x1.f78bc51f239e1p0, 0x1p0, -0x1.04fb80e37fdaep-2, 0x1.412cdap-63, --0x1.f6ba073b424b2p0, 0x1p0, -0x1.111d262b1f677p-2, -0x1.824c2p-56, --0x1.f5dec646f85bap0, 0x1p0, -0x1.1d3443f4cdb3ep-2, 0x1.720d4p-57, --0x1.f4fa0ab6316edp0, 0x1p0, -0x1.294062ed59f06p-2, 0x1.5d28dap-56, --0x1.f40bdd5a66886p0, 0x1p0, -0x1.35410c2e18152p-2, 0x1.3cb002p-56, --0x1.f314476247089p0, 0x1p0, -0x1.4135c94176601p-2, -0x1.0c97c4p-56, --0x1.f21352595e0bfp0, 0x1p0, -0x1.4d1e24278e76ap-2, -0x1.24172p-57, --0x1.f1090827b4372p0, 0x1p0, -0x1.58f9a75ab1fddp-2, 0x1.efdc0cp-62, --0x1.eff573116df15p0, 0x1p0, -0x1.64c7ddd3f27c6p-2, -0x1.10d2b4p-58, --0x1.eed89db66611ep0, 0x1p0, -0x1.7088530fa459fp-2, 0x1.44b19ep-56, --0x1.edb29311c504dp0, 0x1p0, -0x1.7c3a9311dcce7p-2, -0x1.9a3f2p-62, --0x1.ec835e79946a3p0, 0x1p0, -0x1.87de2a6aea963p-2, 0x1.72cedcp-57, --0x1.eb4b0b9e4f345p0, 0x1p0, -0x1.9372a63bc93d7p-2, -0x1.684318p-57, --0x1.ea09a68a6e49dp0, 0x1p0, -0x1.9ef7943a8ed8ap-2, -0x1.6da812p-57, --0x1.e8bf3ba1f1aeep0, 0x1p0, -0x1.aa6c82b6d3fcap-2, 0x1.d5f106p-56, --0x1.e76bd7a1e63b9p0, 0x1p0, -0x1.b5d1009e15ccp-2, -0x1.5b362cp-57, --0x1.e60f879fe7e2ep0, 0x1p0, -0x1.c1249d8011ee7p-2, 0x1.813aaap-56, --0x1.e4aa5909a08fap0, 0x1p0, -0x1.cc66e9931c45ep-2, -0x1.6850e4p-58, --0x1.e33c59a4439cep0, 0x1p0, -0x1.d79775b86e389p-2, -0x1.550ec8p-56, --0x1.e1c5978c05ed8p0, 0x1p0, -0x1.e2b5d3806f63bp-2, -0x1.e0d89p-58, --0x1.e046213392aa5p0, 0x1p0, -0x1.edc1952ef78d6p-2, 0x1.dd0f7cp-56, --0x1.debe05637ca95p0, 0x1p0, -0x1.f8ba4dbf89abap-2, 0x1.2ec1fcp-60, --0x1.dd2d5339ac869p0, 0x1p0, -0x1.01cfc874c3eb7p-1, 0x1.34a35ep-56, --0x1.db941a28cb71fp0, 0x1p0, -0x1.073879922ffeep-1, 0x1.a5a014p-55, --0x1.d9f269f7aab89p0, 0x1p0, -0x1.0c9704d5d898fp-1, 0x1.8d3d7cp-55, --0x1.d84852c0a81p0, 0x1p0, -0x1.11eb3541b4b23p-1, 0x1.ef23b6p-55, --0x1.d695e4f10ea88p0, 0x1p0, -0x1.1734d63dedb49p-1, 0x1.7eef2cp-55, --0x1.d4db3148750d2p0, 0x1p0, -0x1.1c73b39ae68c8p-1, -0x1.b25dd2p-55, --0x1.d31848d817d71p0, 0x1p0, -0x1.21a799933eb59p-1, 0x1.3a7b16p-55, --0x1.d14d3d02313c1p0, 0x1p0, -0x1.26d054cdd12dfp-1, 0x1.5da742p-55, --0x1.cf7a1f794d7cap0, 0x1p0, -0x1.2bedb25faf3eap-1, 0x1.14981cp-58, --0x1.cd9f023f9c3ap0, 0x1p0, -0x1.30ff7fce17035p-1, 0x1.efcc62p-57, --0x1.cbbbf7a63eba1p0, 0x1p0, -0x1.36058b10659f3p-1, 0x1.1fcb3ap-55, --0x1.c9d1124c931fep0, 0x1p0, -0x1.3affa292050b9p-1, -0x1.e3e25ep-56, --0x1.c7de651f7ca06p0, 0x1p0, -0x1.3fed9534556d4p-1, -0x1.369166p-55, --0x1.c5e40358a8bap0, 0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, --0x1.c3e2007dd175fp0, 0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, --0x1.c1d8705ffcbb7p0, 0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, --0x1.bfc7671ab8bb8p0, 0x1p0, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, --0x1.bdaef913557d7p0, 0x1p0, -0x1.57d69348cecap-1, 0x1.757208p-55, --0x1.bb8f3af81b931p0, 0x1p0, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, --0x1.b96841bf7ffcbp0, 0x1p0, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, --0x1.b73a22a755457p0, 0x1p0, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, --0x1.b504f333f9de6p0, 0x1p0, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, --0x1.b2c8c92f83c1fp0, 0x1p0, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, --0x1.b085baa8e966fp0, 0x1p0, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, --0x1.ae3bddf3280c6p0, 0x1p0, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, --0x1.abeb49a46765p0, 0x1p0, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, --0x1.a99414951aacbp0, 0x1p0, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, --0x1.a73655df1f2f5p0, 0x1p0, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, --0x1.a4d224dcd849cp0, 0x1p0, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, --0x1.a267992848eebp0, 0x1p0, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, --0x1.9ff6ca9a2ab6ap0, 0x1p0, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, --0x1.9d7fd1490285dp0, 0x1p0, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, --0x1.9b02c58832cf9p0, 0x1p0, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, --0x1.987fbfe70b81ap0, 0x1p0, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, --0x1.95f6d92fd79f5p0, 0x1p0, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, --0x1.93682a66e896fp0, 0x1p0, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, --0x1.90d3ccc99f5acp0, 0x1p0, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, --0x1.8e39d9cd73464p0, 0x1p0, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, --0x1.8b9a6b1ef6da4p0, 0x1p0, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, --0x1.88f59aa0da591p0, 0x1p0, -0x1.b090a581502p-1, 0x1.926da2p-55, --0x1.864b826aec4c7p0, 0x1p0, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, --0x1.839c3cc917ff7p0, 0x1p0, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, --0x1.80e7e43a61f5bp0, 0x1p0, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, --0x1.3f1749b7f1357p1, 0x1p1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, --0x1.3db832a5def1bp1, 0x1p1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, --0x1.3c56ba700dec7p1, 0x1p1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, --0x1.3af2eeb70dc71p1, 0x1p1, -0x1.c678b3488739bp-1, -0x1.d86cacp-57, --0x1.398cdd326388cp1, 0x1p1, -0x1.c954b213411f5p-1, 0x1.2fb76p-58, --0x1.382493b0023ddp1, 0x1p1, -0x1.cc1f0f3fcfc5cp-1, -0x1.e57612p-56, --0x1.36ba2013c2b98p1, 0x1p1, -0x1.ced7af43cc773p-1, 0x1.e7b6bap-58, --0x1.354d9056da7f9p1, 0x1p1, -0x1.d17e7743e35dcp-1, 0x1.101da2p-58, --0x1.33def28751db1p1, 0x1p1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, --0x1.326e54c77927bp1, 0x1p1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, --0x1.30fbc54d5d52cp1, 0x1p1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, --0x1.2f8752623b99dp1, 0x1p1, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, --0x1.2e110a61f48b4p1, 0x1p1, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, --0x1.2c98fbba7e4f9p1, 0x1p1, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, --0x1.2b1f34eb563fcp1, 0x1p1, -0x1.e212104f686e5p-1, 0x1.014c76p-55, --0x1.29a3c484f1cedp1, 0x1p1, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, --0x1.2826b9282eccp1, 0x1p1, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, --0x1.26a82185c302ap1, 0x1p1, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, --0x1.25280c5dab3e1p1, 0x1p1, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, --0x1.23a6887e99b68p1, 0x1p1, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, --0x1.2223a4c563ecfp1, 0x1p1, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, --0x1.209f701c6ffb6p1, 0x1p1, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, --0x1.0f8cfcbd90af9p2, 0x1p2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, --0x1.0ec9a7f2a2a19p2, 0x1p2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, --0x1.0e05c1353f27bp2, 0x1p2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, --0x1.0d415012d8023p2, 0x1p2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, --0x1.0c7c5c1e34d3p2, 0x1p2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, --0x1.0bb6ecef285fap2, 0x1p2, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, --0x1.0af10a22459fep2, 0x1p2, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, --0x1.0a2abb58949f3p2, 0x1p2, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, --0x1.096408374730ap2, 0x1p2, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, --0x1.089cf8676d7acp2, 0x1p2, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, --0x1.03eac9cad52e6p3, 0x1p3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, --0x1.0386f0b8f3d86p3, 0x1p3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, --0x1.0322f4d785368p3, 0x1p3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, --0x1.02beda0153548p3, 0x1p3, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, --0x1.025aa41259c34p3, 0x1p3, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, --0x1.00fb2b73cfc1p4, 0x1p4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, --0x1.00c8fb2f886ecp4, 0x1p4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, --0x1.0096c32baca2bp4, 0x1p4, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, --0x1.003242abef46dp5, 0x1p5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, --0x1.000c90e8fe6f6p6, 0x1p6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, +0x1.b78b80c84e1eep-9, -0x1p-6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, +0x1.b7aa821726608p-8, -0x1p-5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, +-0x1.6c32baca2ae69p-8, -0x1p-5, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, +0x1.b82683bc89fbp-7, -0x1p-4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, +0x1.35230c0fbe402p-10, -0x1p-4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, +-0x1.6a9049670cfaep-7, -0x1p-4, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, +-0x1.7db402a6a9063p-6, -0x1p-4, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, +0x1.ba1650f592f5p-6, -0x1p-3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, +0x1.e43d1c309e958p-7, -0x1p-3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, +0x1.536352ad19e39p-9, -0x1p-3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, +-0x1.39f0cedaf576bp-7, -0x1p-3, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, +-0x1.64083747309d1p-6, -0x1p-3, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, +-0x1.155dac4a4f967p-5, -0x1p-3, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, +-0x1.78851122cff19p-5, -0x1p-3, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, +-0x1.db7677942fcc5p-5, -0x1p-3, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, +0x1.c1d1f0e5967d5p-5, -0x1p-2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, +0x1.5f57f693feebep-5, -0x1p-2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, +0x1.fa3ecac0d84e8p-6, -0x1p-2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, +0x1.36580d5d5e775p-6, -0x1p-2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, +0x1.cc0d09bd41caap-8, -0x1p-2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, +-0x1.3ee038dff6b8p-8, -0x1p-2, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, +-0x1.11d262b1f6776p-6, -0x1p-2, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, +-0x1.d3443f4cdb3ddp-6, -0x1p-2, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, +-0x1.4a03176acf82dp-5, -0x1p-2, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, +-0x1.aa086170c0a8ep-5, -0x1p-2, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, +-0x1.04d72505d9805p-4, -0x1p-2, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, +-0x1.3478909e39da9p-4, -0x1p-2, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, +-0x1.63e69d6ac7f74p-4, -0x1p-2, 0x1.e212104f686e5p-1, -0x1.014c76p-55, +-0x1.931f774fc9f18p-4, -0x1p-2, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, +-0x1.c2214c3e9167bp-4, -0x1p-2, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, +-0x1.f0ea4c477339cp-4, -0x1p-2, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, +0x1.e087565455a75p-4, -0x1p-1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, +0x1.b2356710db0a3p-4, -0x1p-1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, +0x1.8421af15c49d7p-4, -0x1p-1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, +0x1.564df524b00dap-4, -0x1p-1, 0x1.d17e7743e35dcp-1, -0x1.101da2p-58, +0x1.28bbfd87a8cffp-4, -0x1p-1, 0x1.ced7af43cc773p-1, -0x1.e7b6bap-58, +0x1.f6db13ff708cbp-5, -0x1p-1, 0x1.cc1f0f3fcfc5cp-1, 0x1.e57612p-56, +0x1.9cc8b3671dd0fp-5, -0x1p-1, 0x1.c954b213411f5p-1, -0x1.2fb76p-58, +0x1.4344523c8e3b5p-5, -0x1p-1, 0x1.c678b3488739bp-1, 0x1.d86cacp-57, +0x1.d4a2c7f909c4ep-6, -0x1p-1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, +0x1.23e6ad10872a7p-6, -0x1p-1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, +0x1.d16c901d95181p-8, -0x1p-1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, +-0x1.cfc874c3eb6d9p-9, -0x1p-1, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, +-0x1.ce1e648bffb66p-7, -0x1p-1, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, +-0x1.92e09abb131d4p-6, -0x1p-1, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, +-0x1.1eb3541b4b228p-5, -0x1p-1, 0x1.b090a581502p-1, -0x1.926da2p-55, +-0x1.734d63dedb48ap-5, -0x1p-1, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, +-0x1.c73b39ae68c87p-5, -0x1p-1, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, +-0x1.0d3ccc99f5ac6p-4, -0x1p-1, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, +-0x1.3682a66e896f5p-4, -0x1p-1, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, +-0x1.5f6d92fd79f5p-4, -0x1p-1, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, +-0x1.87fbfe70b81a7p-4, -0x1p-1, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, +-0x1.b02c58832cf96p-4, -0x1p-1, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, +-0x1.d7fd1490285cap-4, -0x1p-1, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, +-0x1.ff6ca9a2ab6a2p-4, -0x1p-1, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, +-0x1.133cc94247758p-3, -0x1p-1, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, +-0x1.269126e6c24e3p-3, -0x1p-1, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, +-0x1.39b2aef8f97a4p-3, -0x1p-1, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, +-0x1.4ca0a4a8d5657p-3, -0x1p-1, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, +-0x1.5f5a4d233b27fp-3, -0x1p-1, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, +-0x1.71deef9940631p-3, -0x1p-1, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, +-0x1.842dd5474b37bp-3, -0x1p-1, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, +-0x1.9646497c1e0f6p-3, -0x1p-1, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, +-0x1.a827999fcef32p-3, -0x1p-1, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, +-0x1.b9d1153aaa2bap-3, -0x1p-1, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, +-0x1.cb420dfbffe59p-3, -0x1p-1, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, +-0x1.dc79d7c0dc985p-3, -0x1p-1, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, +-0x1.ed77c89aabebbp-3, -0x1p-1, 0x1.57d69348cecap-1, -0x1.757208p-55, +-0x1.fe3b38d5c5dc2p-3, -0x1p-1, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, +0x1.f13c7d001a249p-3, -0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, +0x1.e0effc1174505p-3, -0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, +0x1.d0dfe53aba2fdp-3, -0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, +0x1.c10cd7041afccp-3, -0x1p0, 0x1.3fed9534556d4p-1, 0x1.369166p-55, +0x1.b1776d9b67013p-3, -0x1p0, 0x1.3affa292050b9p-1, 0x1.e3e25ep-56, +0x1.a22042ce0a2f9p-3, -0x1p0, 0x1.36058b10659f3p-1, -0x1.1fcb3ap-55, +0x1.9307ee031e2fdp-3, -0x1p0, 0x1.30ff7fce17035p-1, -0x1.efcc62p-57, +0x1.842f0435941afp-3, -0x1p0, 0x1.2bedb25faf3eap-1, -0x1.14981cp-58, +0x1.759617ee761f9p-3, -0x1p0, 0x1.26d054cdd12dfp-1, -0x1.5da742p-55, +0x1.673db93f41479p-3, -0x1p0, 0x1.21a799933eb59p-1, -0x1.3a7b16p-55, +0x1.592675bc57974p-3, -0x1p0, 0x1.1c73b39ae68c8p-1, 0x1.b25dd2p-55, +0x1.4b50d8778abbdp-3, -0x1p0, 0x1.1734d63dedb49p-1, -0x1.7eef2cp-55, +0x1.3dbd69fabf802p-3, -0x1p0, 0x1.11eb3541b4b23p-1, -0x1.ef23b6p-55, +0x1.306cb042aa3bap-3, -0x1p0, 0x1.0c9704d5d898fp-1, -0x1.8d3d7cp-55, +0x1.235f2eb9a470ap-3, -0x1p0, 0x1.073879922ffeep-1, -0x1.a5a014p-55, +0x1.169566329bcb7p-3, -0x1p0, 0x1.01cfc874c3eb7p-1, -0x1.34a35ep-56, +0x1.0a0fd4e41ab5ap-3, -0x1p0, 0x1.f8ba4dbf89abap-2, -0x1.2ec1fcp-60, +0x1.fb9decc6d55b8p-4, -0x1p0, 0x1.edc1952ef78d6p-2, -0x1.dd0f7cp-56, +0x1.e3a6873fa1279p-4, -0x1p0, 0x1.e2b5d3806f63bp-2, 0x1.e0d89p-58, +0x1.cc3a65bbc6327p-4, -0x1p0, 0x1.d79775b86e389p-2, 0x1.550ec8p-56, +0x1.b55a6f65f7058p-4, -0x1p0, 0x1.cc66e9931c45ep-2, 0x1.6850e4p-58, +0x1.9f07860181d1ep-4, -0x1p0, 0x1.c1249d8011ee7p-2, -0x1.813aaap-56, +0x1.894285e19c468p-4, -0x1p0, 0x1.b5d1009e15ccp-2, 0x1.5b362cp-57, +0x1.740c45e0e512p-4, -0x1p0, 0x1.aa6c82b6d3fcap-2, -0x1.d5f106p-56, +0x1.5f6597591b633p-4, -0x1p0, 0x1.9ef7943a8ed8ap-2, 0x1.6da812p-57, +0x1.4b4f461b0cbaap-4, -0x1p0, 0x1.9372a63bc93d7p-2, 0x1.684318p-57, +0x1.37ca1866b95cfp-4, -0x1p0, 0x1.87de2a6aea963p-2, -0x1.72cedcp-57, +0x1.24d6cee3afb2ap-4, -0x1p0, 0x1.7c3a9311dcce7p-2, 0x1.9a3f2p-62, +0x1.127624999ee1dp-4, -0x1p0, 0x1.7088530fa459fp-2, -0x1.44b19ep-56, +0x1.00a8cee920eabp-4, -0x1p0, 0x1.64c7ddd3f27c6p-2, 0x1.10d2b4p-58, +0x1.dedefb09791b4p-5, -0x1p0, 0x1.58f9a75ab1fddp-2, -0x1.efdc0cp-62, +0x1.bd95b4d43e819p-5, -0x1p0, 0x1.4d1e24278e76ap-2, 0x1.24172p-57, +0x1.9d7713b71eee1p-5, -0x1p0, 0x1.4135c94176601p-2, 0x1.0c97c4p-56, +0x1.7e8454b32ef34p-5, -0x1p0, 0x1.35410c2e18152p-2, -0x1.3cb002p-56, +0x1.60bea939d225ap-5, -0x1p0, 0x1.294062ed59f06p-2, -0x1.5d28dap-56, +0x1.44273720f48bcp-5, -0x1p0, 0x1.1d3443f4cdb3ep-2, -0x1.720d4p-57, +0x1.28bf1897b69ccp-5, -0x1p0, 0x1.111d262b1f677p-2, 0x1.824c2p-56, +0x1.0e875c1b8c3dap-5, -0x1p0, 0x1.04fb80e37fdaep-2, -0x1.412cdap-63, +0x1.eb0208db9e51bp-6, -0x1p0, 0x1.f19f97b215f1bp-3, -0x1.42deeep-57, +0x1.bb5a11138a4c9p-6, -0x1p0, 0x1.d934fe5454311p-3, 0x1.75b922p-57, +0x1.8e18a73634ee7p-6, -0x1p0, 0x1.c0b826a7e4f63p-3, -0x1.af1438p-62, +0x1.633f89e9a1a66p-6, -0x1p0, 0x1.a82a025b00451p-3, -0x1.87905ep-57, +0x1.3ad06011469fbp-6, -0x1p0, 0x1.8f8b83c69a60bp-3, -0x1.26d19ap-57, +0x1.14ccb8bdbf114p-6, -0x1p0, 0x1.76dd9de50bf31p-3, 0x1.1d5eeep-57, +0x1.e26c163ad15b3p-7, -0x1p0, 0x1.5e214448b3fc6p-3, 0x1.531ff6p-57, +0x1.a01b6cdbd995ep-7, -0x1p0, 0x1.45576b1293e5ap-3, -0x1.285a24p-58, +0x1.62aa03dd6ba58p-7, -0x1p0, 0x1.2c8106e8e613ap-3, 0x1.13000ap-58, +0x1.2a1a39a8a2fb7p-7, -0x1p0, 0x1.139f0cedaf577p-3, -0x1.523434p-57, +0x1.ecdc78f30165cp-8, -0x1p0, 0x1.f564e56a9730ep-4, 0x1.a27046p-59, +0x1.8f501492cc296p-8, -0x1p0, 0x1.c3785c79ec2d5p-4, -0x1.4f39dep-61, +0x1.3b92e176d6d31p-8, -0x1p0, 0x1.917a6bc29b42cp-4, -0x1.e2718cp-60, +0x1.e350342a4f6e6p-9, -0x1p0, 0x1.5f6d00a9aa419p-4, -0x1.f4022cp-59, +0x1.63252fe77c5ebp-9, -0x1p0, 0x1.2d52092ce19f6p-4, -0x1.9a088ap-59, +0x1.ed534e31ca57fp-10, -0x1p0, 0x1.f656e79f820ep-5, -0x1.2e1ebep-61, +0x1.3bc390d250439p-10, -0x1p0, 0x1.91f65f10dd814p-5, -0x1.912bdp-61, +0x1.6344004228d8bp-11, -0x1p0, 0x1.2d865759455cdp-5, 0x1.686f64p-61, +0x1.3bcfbd9979a27p-12, -0x1p0, 0x1.92155f7a3667ep-6, -0x1.b1d63p-64, +0x1.3bd2c8da49511p-14, -0x1p0, 0x1.921d1fcdec784p-7, 0x1.9878eap-61, +0.0, -0x1p0, 0.0, 0.0, +0x1.3bd2c8da49511p-14, -0x1p0, -0x1.921d1fcdec784p-7, -0x1.9878eap-61, +0x1.3bcfbd9979a27p-12, -0x1p0, -0x1.92155f7a3667ep-6, 0x1.b1d63p-64, +0x1.6344004228d8bp-11, -0x1p0, -0x1.2d865759455cdp-5, -0x1.686f64p-61, +0x1.3bc390d250439p-10, -0x1p0, -0x1.91f65f10dd814p-5, 0x1.912bdp-61, +0x1.ed534e31ca57fp-10, -0x1p0, -0x1.f656e79f820ep-5, 0x1.2e1ebep-61, +0x1.63252fe77c5ebp-9, -0x1p0, -0x1.2d52092ce19f6p-4, 0x1.9a088ap-59, +0x1.e350342a4f6e6p-9, -0x1p0, -0x1.5f6d00a9aa419p-4, 0x1.f4022cp-59, +0x1.3b92e176d6d31p-8, -0x1p0, -0x1.917a6bc29b42cp-4, 0x1.e2718cp-60, +0x1.8f501492cc296p-8, -0x1p0, -0x1.c3785c79ec2d5p-4, 0x1.4f39dep-61, +0x1.ecdc78f30165cp-8, -0x1p0, -0x1.f564e56a9730ep-4, -0x1.a27046p-59, +0x1.2a1a39a8a2fb7p-7, -0x1p0, -0x1.139f0cedaf577p-3, 0x1.523434p-57, +0x1.62aa03dd6ba58p-7, -0x1p0, -0x1.2c8106e8e613ap-3, -0x1.13000ap-58, +0x1.a01b6cdbd995ep-7, -0x1p0, -0x1.45576b1293e5ap-3, 0x1.285a24p-58, +0x1.e26c163ad15b3p-7, -0x1p0, -0x1.5e214448b3fc6p-3, -0x1.531ff6p-57, +0x1.14ccb8bdbf114p-6, -0x1p0, -0x1.76dd9de50bf31p-3, -0x1.1d5eeep-57, +0x1.3ad06011469fbp-6, -0x1p0, -0x1.8f8b83c69a60bp-3, 0x1.26d19ap-57, +0x1.633f89e9a1a66p-6, -0x1p0, -0x1.a82a025b00451p-3, 0x1.87905ep-57, +0x1.8e18a73634ee7p-6, -0x1p0, -0x1.c0b826a7e4f63p-3, 0x1.af1438p-62, +0x1.bb5a11138a4c9p-6, -0x1p0, -0x1.d934fe5454311p-3, -0x1.75b922p-57, +0x1.eb0208db9e51bp-6, -0x1p0, -0x1.f19f97b215f1bp-3, 0x1.42deeep-57, +0x1.0e875c1b8c3dap-5, -0x1p0, -0x1.04fb80e37fdaep-2, 0x1.412cdap-63, +0x1.28bf1897b69ccp-5, -0x1p0, -0x1.111d262b1f677p-2, -0x1.824c2p-56, +0x1.44273720f48bcp-5, -0x1p0, -0x1.1d3443f4cdb3ep-2, 0x1.720d4p-57, +0x1.60bea939d225ap-5, -0x1p0, -0x1.294062ed59f06p-2, 0x1.5d28dap-56, +0x1.7e8454b32ef34p-5, -0x1p0, -0x1.35410c2e18152p-2, 0x1.3cb002p-56, +0x1.9d7713b71eee1p-5, -0x1p0, -0x1.4135c94176601p-2, -0x1.0c97c4p-56, +0x1.bd95b4d43e819p-5, -0x1p0, -0x1.4d1e24278e76ap-2, -0x1.24172p-57, +0x1.dedefb09791b4p-5, -0x1p0, -0x1.58f9a75ab1fddp-2, 0x1.efdc0cp-62, +0x1.00a8cee920eabp-4, -0x1p0, -0x1.64c7ddd3f27c6p-2, -0x1.10d2b4p-58, +0x1.127624999ee1dp-4, -0x1p0, -0x1.7088530fa459fp-2, 0x1.44b19ep-56, +0x1.24d6cee3afb2ap-4, -0x1p0, -0x1.7c3a9311dcce7p-2, -0x1.9a3f2p-62, +0x1.37ca1866b95cfp-4, -0x1p0, -0x1.87de2a6aea963p-2, 0x1.72cedcp-57, +0x1.4b4f461b0cbaap-4, -0x1p0, -0x1.9372a63bc93d7p-2, -0x1.684318p-57, +0x1.5f6597591b633p-4, -0x1p0, -0x1.9ef7943a8ed8ap-2, -0x1.6da812p-57, +0x1.740c45e0e512p-4, -0x1p0, -0x1.aa6c82b6d3fcap-2, 0x1.d5f106p-56, +0x1.894285e19c468p-4, -0x1p0, -0x1.b5d1009e15ccp-2, -0x1.5b362cp-57, +0x1.9f07860181d1ep-4, -0x1p0, -0x1.c1249d8011ee7p-2, 0x1.813aaap-56, +0x1.b55a6f65f7058p-4, -0x1p0, -0x1.cc66e9931c45ep-2, -0x1.6850e4p-58, +0x1.cc3a65bbc6327p-4, -0x1p0, -0x1.d79775b86e389p-2, -0x1.550ec8p-56, +0x1.e3a6873fa1279p-4, -0x1p0, -0x1.e2b5d3806f63bp-2, -0x1.e0d89p-58, +0x1.fb9decc6d55b8p-4, -0x1p0, -0x1.edc1952ef78d6p-2, 0x1.dd0f7cp-56, +0x1.0a0fd4e41ab5ap-3, -0x1p0, -0x1.f8ba4dbf89abap-2, 0x1.2ec1fcp-60, +0x1.169566329bcb7p-3, -0x1p0, -0x1.01cfc874c3eb7p-1, 0x1.34a35ep-56, +0x1.235f2eb9a470ap-3, -0x1p0, -0x1.073879922ffeep-1, 0x1.a5a014p-55, +0x1.306cb042aa3bap-3, -0x1p0, -0x1.0c9704d5d898fp-1, 0x1.8d3d7cp-55, +0x1.3dbd69fabf802p-3, -0x1p0, -0x1.11eb3541b4b23p-1, 0x1.ef23b6p-55, +0x1.4b50d8778abbdp-3, -0x1p0, -0x1.1734d63dedb49p-1, 0x1.7eef2cp-55, +0x1.592675bc57974p-3, -0x1p0, -0x1.1c73b39ae68c8p-1, -0x1.b25dd2p-55, +0x1.673db93f41479p-3, -0x1p0, -0x1.21a799933eb59p-1, 0x1.3a7b16p-55, +0x1.759617ee761f9p-3, -0x1p0, -0x1.26d054cdd12dfp-1, 0x1.5da742p-55, +0x1.842f0435941afp-3, -0x1p0, -0x1.2bedb25faf3eap-1, 0x1.14981cp-58, +0x1.9307ee031e2fdp-3, -0x1p0, -0x1.30ff7fce17035p-1, 0x1.efcc62p-57, +0x1.a22042ce0a2f9p-3, -0x1p0, -0x1.36058b10659f3p-1, 0x1.1fcb3ap-55, +0x1.b1776d9b67013p-3, -0x1p0, -0x1.3affa292050b9p-1, -0x1.e3e25ep-56, +0x1.c10cd7041afccp-3, -0x1p0, -0x1.3fed9534556d4p-1, -0x1.369166p-55, +0x1.d0dfe53aba2fdp-3, -0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, +0x1.e0effc1174505p-3, -0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, +0x1.f13c7d001a249p-3, -0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, +-0x1.fe3b38d5c5dc2p-3, -0x1p-1, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, +-0x1.ed77c89aabebbp-3, -0x1p-1, -0x1.57d69348cecap-1, 0x1.757208p-55, +-0x1.dc79d7c0dc985p-3, -0x1p-1, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, +-0x1.cb420dfbffe59p-3, -0x1p-1, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, +-0x1.b9d1153aaa2bap-3, -0x1p-1, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, +-0x1.a827999fcef32p-3, -0x1p-1, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, +-0x1.9646497c1e0f6p-3, -0x1p-1, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, +-0x1.842dd5474b37bp-3, -0x1p-1, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, +-0x1.71deef9940631p-3, -0x1p-1, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, +-0x1.5f5a4d233b27fp-3, -0x1p-1, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, +-0x1.4ca0a4a8d5657p-3, -0x1p-1, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, +-0x1.39b2aef8f97a4p-3, -0x1p-1, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, +-0x1.269126e6c24e3p-3, -0x1p-1, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, +-0x1.133cc94247758p-3, -0x1p-1, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, +-0x1.ff6ca9a2ab6a2p-4, -0x1p-1, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, +-0x1.d7fd1490285cap-4, -0x1p-1, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, +-0x1.b02c58832cf96p-4, -0x1p-1, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, +-0x1.87fbfe70b81a7p-4, -0x1p-1, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, +-0x1.5f6d92fd79f5p-4, -0x1p-1, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, +-0x1.3682a66e896f5p-4, -0x1p-1, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, +-0x1.0d3ccc99f5ac6p-4, -0x1p-1, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, +-0x1.c73b39ae68c87p-5, -0x1p-1, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, +-0x1.734d63dedb48ap-5, -0x1p-1, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, +-0x1.1eb3541b4b228p-5, -0x1p-1, -0x1.b090a581502p-1, 0x1.926da2p-55, +-0x1.92e09abb131d4p-6, -0x1p-1, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, +-0x1.ce1e648bffb66p-7, -0x1p-1, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, +-0x1.cfc874c3eb6d9p-9, -0x1p-1, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, +0x1.d16c901d95181p-8, -0x1p-1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, +0x1.23e6ad10872a7p-6, -0x1p-1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, +0x1.d4a2c7f909c4ep-6, -0x1p-1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, +0x1.4344523c8e3b5p-5, -0x1p-1, -0x1.c678b3488739bp-1, -0x1.d86cacp-57, +0x1.9cc8b3671dd0fp-5, -0x1p-1, -0x1.c954b213411f5p-1, 0x1.2fb76p-58, +0x1.f6db13ff708cbp-5, -0x1p-1, -0x1.cc1f0f3fcfc5cp-1, -0x1.e57612p-56, +0x1.28bbfd87a8cffp-4, -0x1p-1, -0x1.ced7af43cc773p-1, 0x1.e7b6bap-58, +0x1.564df524b00dap-4, -0x1p-1, -0x1.d17e7743e35dcp-1, 0x1.101da2p-58, +0x1.8421af15c49d7p-4, -0x1p-1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, +0x1.b2356710db0a3p-4, -0x1p-1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, +0x1.e087565455a75p-4, -0x1p-1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, +-0x1.f0ea4c477339cp-4, -0x1p-2, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, +-0x1.c2214c3e9167bp-4, -0x1p-2, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, +-0x1.931f774fc9f18p-4, -0x1p-2, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, +-0x1.63e69d6ac7f74p-4, -0x1p-2, -0x1.e212104f686e5p-1, 0x1.014c76p-55, +-0x1.3478909e39da9p-4, -0x1p-2, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, +-0x1.04d72505d9805p-4, -0x1p-2, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, +-0x1.aa086170c0a8ep-5, -0x1p-2, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, +-0x1.4a03176acf82dp-5, -0x1p-2, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, +-0x1.d3443f4cdb3ddp-6, -0x1p-2, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, +-0x1.11d262b1f6776p-6, -0x1p-2, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, +-0x1.3ee038dff6b8p-8, -0x1p-2, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, +0x1.cc0d09bd41caap-8, -0x1p-2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, +0x1.36580d5d5e775p-6, -0x1p-2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, +0x1.fa3ecac0d84e8p-6, -0x1p-2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, +0x1.5f57f693feebep-5, -0x1p-2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, +0x1.c1d1f0e5967d5p-5, -0x1p-2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, +-0x1.db7677942fcc5p-5, -0x1p-3, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, +-0x1.78851122cff19p-5, -0x1p-3, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, +-0x1.155dac4a4f967p-5, -0x1p-3, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, +-0x1.64083747309d1p-6, -0x1p-3, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, +-0x1.39f0cedaf576bp-7, -0x1p-3, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, +0x1.536352ad19e39p-9, -0x1p-3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, +0x1.e43d1c309e958p-7, -0x1p-3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, +0x1.ba1650f592f5p-6, -0x1p-3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, +-0x1.7db402a6a9063p-6, -0x1p-4, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, +-0x1.6a9049670cfaep-7, -0x1p-4, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, +0x1.35230c0fbe402p-10, -0x1p-4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, +0x1.b82683bc89fbp-7, -0x1p-4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, +-0x1.6c32baca2ae69p-8, -0x1p-5, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, +0x1.b7aa821726608p-8, -0x1p-5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, +0x1.b78b80c84e1eep-9, -0x1p-6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, 0.0, 0.0, -0x1p0, 0.0, -0x1.b78b80c84e1eep-9, 0x1p-6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, -0x1.b7aa821726608p-8, 0x1p-5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, --0x1.a4f3514d75466p-6, 0x1p-4, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, +0x1.6c32baca2ae69p-8, 0x1p-5, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, -0x1.b82683bc89fbp-7, 0x1p-4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, -0x1.35230c0fbe402p-10, 0x1p-4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, --0x1.a55beda63cc14p-5, 0x1p-3, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, --0x1.4125feacab7cep-5, 0x1p-3, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, +0x1.6a9049670cfaep-7, 0x1p-4, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, +0x1.7db402a6a9063p-6, 0x1p-4, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, -0x1.ba1650f592f5p-6, 0x1p-3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, -0x1.e43d1c309e958p-7, 0x1p-3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, -0x1.536352ad19e39p-9, 0x1p-3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, --0x1.d8c1e624a1513p-4, 0x1p-2, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, --0x1.a6fdf22e33d8cp-4, 0x1p-2, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, --0x1.755129dad834cp-4, 0x1p-2, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, --0x1.43bd776e98073p-4, 0x1p-2, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, --0x1.1244c435e819dp-4, 0x1p-2, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, +0x1.39f0cedaf576bp-7, 0x1p-3, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, +0x1.64083747309d1p-6, 0x1p-3, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, +0x1.155dac4a4f967p-5, 0x1p-3, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, +0x1.78851122cff19p-5, 0x1p-3, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, +0x1.db7677942fcc5p-5, 0x1p-3, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, -0x1.c1d1f0e5967d5p-5, 0x1p-2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, -0x1.5f57f693feebep-5, 0x1p-2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, -0x1.fa3ecac0d84e8p-6, 0x1p-2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, -0x1.36580d5d5e775p-6, 0x1p-2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, -0x1.cc0d09bd41caap-8, 0x1p-2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, --0x1.f608fe39004a4p-3, 0x1p-1, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, --0x1.ddc5b3a9c1311p-3, 0x1p-1, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, --0x1.c597781664984p-3, 0x1p-1, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, --0x1.ad7f3a254c1f5p-3, 0x1p-1, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, --0x1.957de7a3cfd5dp-3, 0x1p-1, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, --0x1.7d946d7d133fdp-3, 0x1p-1, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, --0x1.65c3b7b0e312cp-3, 0x1p-1, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, --0x1.4e0cb14a9c046p-3, 0x1p-1, -0x1.e212104f686e5p-1, 0x1.014c76p-55, --0x1.367044581b074p-3, 0x1p-1, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, --0x1.1eef59e0b74c3p-3, 0x1p-1, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, --0x1.078ad9dc46632p-3, 0x1p-1, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, +0x1.3ee038dff6b8p-8, 0x1p-2, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, +0x1.11d262b1f6776p-6, 0x1p-2, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, +0x1.d3443f4cdb3ddp-6, 0x1p-2, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, +0x1.4a03176acf82dp-5, 0x1p-2, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, +0x1.aa086170c0a8ep-5, 0x1p-2, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, +0x1.04d72505d9805p-4, 0x1p-2, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, +0x1.3478909e39da9p-4, 0x1p-2, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, +0x1.63e69d6ac7f74p-4, 0x1p-2, -0x1.e212104f686e5p-1, 0x1.014c76p-55, +0x1.931f774fc9f18p-4, 0x1p-2, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, +0x1.c2214c3e9167bp-4, 0x1p-2, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, +0x1.f0ea4c477339cp-4, 0x1p-2, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, -0x1.e087565455a75p-4, 0x1p-1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, -0x1.b2356710db0a3p-4, 0x1p-1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, -0x1.8421af15c49d7p-4, 0x1p-1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, @@ -694,33 +694,33 @@ template <> inline constexpr double kSinApproxTable[] = -0x1.d4a2c7f909c4ep-6, 0x1p-1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, -0x1.23e6ad10872a7p-6, 0x1p-1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, -0x1.d16c901d95181p-8, 0x1p-1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, --0x1.fc606f1678292p-2, 0x1p0, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, --0x1.f18f0cdba0025p-2, 0x1p0, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, --0x1.e6d1f6544ece3p-2, 0x1p0, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, --0x1.dc29957c969bbp-2, 0x1p0, -0x1.b090a581502p-1, 0x1.926da2p-55, --0x1.d19653842496fp-2, 0x1p0, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, --0x1.c71898ca32e6fp-2, 0x1p0, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, --0x1.bcb0ccd98294fp-2, 0x1p0, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, --0x1.b25f56645da43p-2, 0x1p0, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, --0x1.a8249b40a182cp-2, 0x1p0, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, --0x1.9e010063d1f96p-2, 0x1p0, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, --0x1.93f4e9df34c1bp-2, 0x1p0, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, --0x1.8a00badbf5e8ep-2, 0x1p0, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, --0x1.8024d59755257p-2, 0x1p0, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, --0x1.76619b5edc454p-2, 0x1p0, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, --0x1.6cb76c8c9ed8fp-2, 0x1p0, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, --0x1.6326a8838342ep-2, 0x1p0, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, --0x1.59afadab954d4p-2, 0x1p0, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, --0x1.5052d96e626c1p-2, 0x1p0, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, --0x1.471088335fce7p-2, 0x1p0, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, --0x1.3de9155c5a642p-2, 0x1p0, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, --0x1.34dcdb41f0f85p-2, 0x1p0, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, --0x1.2bec333018867p-2, 0x1p0, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, --0x1.23177562aaea3p-2, 0x1p0, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, --0x1.1a5ef902000d3p-2, 0x1p0, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, --0x1.11c3141f91b3ep-2, 0x1p0, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, --0x1.09441bb2aa0a2p-2, 0x1p0, -0x1.57d69348cecap-1, 0x1.757208p-55, --0x1.00e263951d11fp-2, 0x1p0, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, +0x1.cfc874c3eb6d9p-9, 0x1p-1, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, +0x1.ce1e648bffb66p-7, 0x1p-1, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, +0x1.92e09abb131d4p-6, 0x1p-1, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, +0x1.1eb3541b4b228p-5, 0x1p-1, -0x1.b090a581502p-1, 0x1.926da2p-55, +0x1.734d63dedb48ap-5, 0x1p-1, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, +0x1.c73b39ae68c87p-5, 0x1p-1, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, +0x1.0d3ccc99f5ac6p-4, 0x1p-1, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, +0x1.3682a66e896f5p-4, 0x1p-1, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, +0x1.5f6d92fd79f5p-4, 0x1p-1, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, +0x1.87fbfe70b81a7p-4, 0x1p-1, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, +0x1.b02c58832cf96p-4, 0x1p-1, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, +0x1.d7fd1490285cap-4, 0x1p-1, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, +0x1.ff6ca9a2ab6a2p-4, 0x1p-1, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, +0x1.133cc94247758p-3, 0x1p-1, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, +0x1.269126e6c24e3p-3, 0x1p-1, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, +0x1.39b2aef8f97a4p-3, 0x1p-1, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, +0x1.4ca0a4a8d5657p-3, 0x1p-1, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, +0x1.5f5a4d233b27fp-3, 0x1p-1, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, +0x1.71deef9940631p-3, 0x1p-1, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, +0x1.842dd5474b37bp-3, 0x1p-1, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, +0x1.9646497c1e0f6p-3, 0x1p-1, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, +0x1.a827999fcef32p-3, 0x1p-1, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, +0x1.b9d1153aaa2bap-3, 0x1p-1, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, +0x1.cb420dfbffe59p-3, 0x1p-1, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, +0x1.dc79d7c0dc985p-3, 0x1p-1, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, +0x1.ed77c89aabebbp-3, 0x1p-1, -0x1.57d69348cecap-1, 0x1.757208p-55, +0x1.fe3b38d5c5dc2p-3, 0x1p-1, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, -0x1.f13c7d001a249p-3, 0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, -0x1.e0effc1174505p-3, 0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, -0x1.d0dfe53aba2fdp-3, 0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, @@ -785,148 +785,148 @@ template inline constexpr char kCosApproxTable[] = {}; template <> inline constexpr float kCosApproxTable[] = { 0.0f, 0.0f, 0x1p0f, 0.0f, --0x1.003242p5f, 0x1p5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, --0x1.00c8fcp4f, 0x1p4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, --0x1.025aa4p3f, 0x1p3f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, --0x1.0322f4p3f, 0x1p3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, --0x1.03eacap3f, 0x1p3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, --0x1.096408p2f, 0x1p2f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, --0x1.0af10ap2f, 0x1p2f, 0x1.f8765p-1f, -0x1.63ad16p-27f, --0x1.0c7c5cp2f, 0x1p2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, --0x1.0e05c2p2f, 0x1p2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, --0x1.0f8cfcp2f, 0x1p2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, --0x1.2223a4p1f, 0x1p1f, 0x1.ed740ep-1f, 0x1.da1258p-27f, --0x1.25280cp1f, 0x1p1f, 0x1.e9f416p-1f, -0x1.273a44p-26f, --0x1.2826bap1f, 0x1p1f, 0x1.e6288ep-1f, 0x1.891c22p-26f, --0x1.2b1f34p1f, 0x1p1f, 0x1.e2121p-1f, 0x1.3da1bap-27f, --0x1.2e110ap1f, 0x1p1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, --0x1.30fbc6p1f, 0x1p1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, --0x1.33def2p1f, 0x1p1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, --0x1.36ba2p1f, 0x1p1f, 0x1.ced7bp-1f, -0x1.786712p-26f, --0x1.398cdep1f, 0x1p1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, --0x1.3c56bap1f, 0x1p1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, --0x1.3f174ap1f, 0x1p1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, --0x1.839c3cp0f, 0x1p0f, 0x1.b72834p-1f, 0x1.465b9p-27f, --0x1.88f59ap0f, 0x1p0f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, --0x1.8e39dap0f, 0x1p0f, 0x1.a9b662p-1f, 0x1.21d434p-26f, --0x1.93682ap0f, 0x1p0f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, --0x1.987fcp0f, 0x1p0f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, --0x1.9d7fd2p0f, 0x1p0f, 0x1.93a224p-1f, 0x1.324c8p-26f, --0x1.a2679ap0f, 0x1p0f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, --0x1.a73656p0f, 0x1p0f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, --0x1.abeb4ap0f, 0x1p0f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, --0x1.b085bap0f, 0x1p0f, 0x1.72d084p-1f, -0x1.02000ep-26f, --0x1.b504f4p0f, 0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, --0x1.b96842p0f, 0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, --0x1.bdaefap0f, 0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, --0x1.c1d87p0f, 0x1p0f, 0x1.4e6cacp-1f, -0x1.070686p-27f, --0x1.c5e404p0f, 0x1p0f, 0x1.44cf32p-1f, 0x1.424776p-27f, --0x1.c9d112p0f, 0x1p0f, 0x1.3affa2p-1f, 0x1.240a18p-26f, --0x1.cd9f02p0f, 0x1p0f, 0x1.30ff8p-1f, -0x1.8f47e6p-28f, --0x1.d14d3ep0f, 0x1p0f, 0x1.26d054p-1f, 0x1.9ba25cp-26f, --0x1.d4db32p0f, 0x1p0f, 0x1.1c73b4p-1f, -0x1.9465cep-27f, --0x1.d84852p0f, 0x1p0f, 0x1.11eb36p-1f, -0x1.7c969cp-26f, --0x1.db941ap0f, 0x1p0f, 0x1.07387ap-1f, -0x1.b74004p-27f, --0x1.debe06p0f, 0x1p0f, 0x1.f8ba4ep-2f, -0x1.01d952p-28f, --0x1.e1c598p0f, 0x1p0f, 0x1.e2b5d4p-2f, -0x1.fe4272p-28f, --0x1.e4aa5ap0f, 0x1p0f, 0x1.cc66eap-2f, -0x1.b38ee8p-28f, --0x1.e76bd8p0f, 0x1p0f, 0x1.b5d1p-2f, 0x1.3c2b98p-27f, --0x1.ea09a6p0f, 0x1p0f, 0x1.9ef794p-2f, 0x1.d476c6p-29f, --0x1.ec835ep0f, 0x1p0f, 0x1.87de2ap-2f, 0x1.abaa58p-28f, --0x1.eed89ep0f, 0x1p0f, 0x1.708854p-2f, -0x1.e0b74cp-27f, --0x1.f10908p0f, 0x1p0f, 0x1.58f9a8p-2f, -0x1.4a9c04p-27f, --0x1.f31448p0f, 0x1p0f, 0x1.4135cap-2f, -0x1.7d134p-27f, --0x1.f4fa0ap0f, 0x1p0f, 0x1.294062p-2f, 0x1.dab3ep-27f, --0x1.f6ba08p0f, 0x1p0f, 0x1.111d26p-2f, 0x1.58fb3cp-29f, --0x1.f853f8p0f, 0x1p0f, 0x1.f19f98p-3f, -0x1.37a83ap-29f, --0x1.f9c79ep0f, 0x1p0f, 0x1.c0b826p-3f, 0x1.4fc9ecp-28f, --0x1.fb14bep0f, 0x1p0f, 0x1.8f8b84p-3f, -0x1.cb2cfap-30f, --0x1.fc3b28p0f, 0x1p0f, 0x1.5e2144p-3f, 0x1.22cff2p-29f, --0x1.fd3aacp0f, 0x1p0f, 0x1.2c8106p-3f, 0x1.d1cc28p-28f, --0x1.fe1324p0f, 0x1p0f, 0x1.f564e6p-4f, -0x1.2ad19ep-29f, --0x1.fec46ep0f, 0x1p0f, 0x1.917a6cp-4f, -0x1.eb25eap-31f, --0x1.ff4e6ep0f, 0x1p0f, 0x1.2d520ap-4f, -0x1.a63cc2p-29f, --0x1.ffb11p0f, 0x1p0f, 0x1.91f66p-5f, -0x1.de44fep-30f, --0x1.ffec44p0f, 0x1p0f, 0x1.92156p-6f, -0x1.0b933p-31f, --0x1p1f, 0x1p0f, 0.0f, 0.0f, --0x1.ffec44p0f, 0x1p0f, -0x1.92156p-6f, 0x1.0b933p-31f, --0x1.ffb11p0f, 0x1p0f, -0x1.91f66p-5f, 0x1.de44fep-30f, --0x1.ff4e6ep0f, 0x1p0f, -0x1.2d520ap-4f, 0x1.a63cc2p-29f, --0x1.fec46ep0f, 0x1p0f, -0x1.917a6cp-4f, 0x1.eb25eap-31f, --0x1.fe1324p0f, 0x1p0f, -0x1.f564e6p-4f, 0x1.2ad19ep-29f, --0x1.fd3aacp0f, 0x1p0f, -0x1.2c8106p-3f, -0x1.d1cc28p-28f, --0x1.fc3b28p0f, 0x1p0f, -0x1.5e2144p-3f, -0x1.22cff2p-29f, --0x1.fb14bep0f, 0x1p0f, -0x1.8f8b84p-3f, 0x1.cb2cfap-30f, --0x1.f9c79ep0f, 0x1p0f, -0x1.c0b826p-3f, -0x1.4fc9ecp-28f, --0x1.f853f8p0f, 0x1p0f, -0x1.f19f98p-3f, 0x1.37a83ap-29f, --0x1.f6ba08p0f, 0x1p0f, -0x1.111d26p-2f, -0x1.58fb3cp-29f, --0x1.f4fa0ap0f, 0x1p0f, -0x1.294062p-2f, -0x1.dab3ep-27f, --0x1.f31448p0f, 0x1p0f, -0x1.4135cap-2f, 0x1.7d134p-27f, --0x1.f10908p0f, 0x1p0f, -0x1.58f9a8p-2f, 0x1.4a9c04p-27f, --0x1.eed89ep0f, 0x1p0f, -0x1.708854p-2f, 0x1.e0b74cp-27f, --0x1.ec835ep0f, 0x1p0f, -0x1.87de2ap-2f, -0x1.abaa58p-28f, --0x1.ea09a6p0f, 0x1p0f, -0x1.9ef794p-2f, -0x1.d476c6p-29f, --0x1.e76bd8p0f, 0x1p0f, -0x1.b5d1p-2f, -0x1.3c2b98p-27f, --0x1.e4aa5ap0f, 0x1p0f, -0x1.cc66eap-2f, 0x1.b38ee8p-28f, --0x1.e1c598p0f, 0x1p0f, -0x1.e2b5d4p-2f, 0x1.fe4272p-28f, --0x1.debe06p0f, 0x1p0f, -0x1.f8ba4ep-2f, 0x1.01d952p-28f, --0x1.db941ap0f, 0x1p0f, -0x1.07387ap-1f, 0x1.b74004p-27f, --0x1.d84852p0f, 0x1p0f, -0x1.11eb36p-1f, 0x1.7c969cp-26f, --0x1.d4db32p0f, 0x1p0f, -0x1.1c73b4p-1f, 0x1.9465cep-27f, --0x1.d14d3ep0f, 0x1p0f, -0x1.26d054p-1f, -0x1.9ba25cp-26f, --0x1.cd9f02p0f, 0x1p0f, -0x1.30ff8p-1f, 0x1.8f47e6p-28f, --0x1.c9d112p0f, 0x1p0f, -0x1.3affa2p-1f, -0x1.240a18p-26f, --0x1.c5e404p0f, 0x1p0f, -0x1.44cf32p-1f, -0x1.424776p-27f, --0x1.c1d87p0f, 0x1p0f, -0x1.4e6cacp-1f, 0x1.070686p-27f, --0x1.bdaefap0f, 0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, --0x1.b96842p0f, 0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, --0x1.b504f4p0f, 0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, --0x1.b085bap0f, 0x1p0f, -0x1.72d084p-1f, 0x1.02000ep-26f, --0x1.abeb4ap0f, 0x1p0f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, --0x1.a73656p0f, 0x1p0f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, --0x1.a2679ap0f, 0x1p0f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, --0x1.9d7fd2p0f, 0x1p0f, -0x1.93a224p-1f, -0x1.324c8p-26f, --0x1.987fcp0f, 0x1p0f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, --0x1.93682ap0f, 0x1p0f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, --0x1.8e39dap0f, 0x1p0f, -0x1.a9b662p-1f, -0x1.21d434p-26f, --0x1.88f59ap0f, 0x1p0f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, --0x1.839c3cp0f, 0x1p0f, -0x1.b72834p-1f, -0x1.465b9p-27f, --0x1.3f174ap1f, 0x1p1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, --0x1.3c56bap1f, 0x1p1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, --0x1.398cdep1f, 0x1p1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, --0x1.36ba2p1f, 0x1p1f, -0x1.ced7bp-1f, 0x1.786712p-26f, --0x1.33def2p1f, 0x1p1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, --0x1.30fbc6p1f, 0x1p1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, --0x1.2e110ap1f, 0x1p1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, --0x1.2b1f34p1f, 0x1p1f, -0x1.e2121p-1f, -0x1.3da1bap-27f, --0x1.2826bap1f, 0x1p1f, -0x1.e6288ep-1f, -0x1.891c22p-26f, --0x1.25280cp1f, 0x1p1f, -0x1.e9f416p-1f, 0x1.273a44p-26f, --0x1.2223a4p1f, 0x1p1f, -0x1.ed740ep-1f, -0x1.da1258p-27f, --0x1.0f8cfcp2f, 0x1p2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, --0x1.0e05c2p2f, 0x1p2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, --0x1.0c7c5cp2f, 0x1p2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, --0x1.0af10ap2f, 0x1p2f, -0x1.f8765p-1f, 0x1.63ad16p-27f, --0x1.096408p2f, 0x1p2f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, --0x1.03eacap3f, 0x1p3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, --0x1.0322f4p3f, 0x1p3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, --0x1.025aa4p3f, 0x1p3f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, --0x1.00c8fcp4f, 0x1p4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, --0x1.003242p5f, 0x1p5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, +0x1.b7aa82p-8f, -0x1p-5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, +0x1.b82684p-7f, -0x1p-4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, +-0x1.6a904ap-7f, -0x1p-4f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, +0x1.ba165p-6f, -0x1p-3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, +0x1.536352p-9f, -0x1p-3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, +-0x1.640838p-6f, -0x1p-3f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, +-0x1.788512p-5f, -0x1p-3f, 0x1.f8765p-1f, -0x1.63ad16p-27f, +0x1.c1d1fp-5f, -0x1p-2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, +0x1.fa3ecap-6f, -0x1p-2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, +0x1.cc0d0ap-8f, -0x1p-2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, +-0x1.11d262p-6f, -0x1p-2f, 0x1.ed740ep-1f, 0x1.da1258p-27f, +-0x1.4a0318p-5f, -0x1p-2f, 0x1.e9f416p-1f, -0x1.273a44p-26f, +-0x1.04d726p-4f, -0x1p-2f, 0x1.e6288ep-1f, 0x1.891c22p-26f, +-0x1.63e69ep-4f, -0x1p-2f, 0x1.e2121p-1f, 0x1.3da1bap-27f, +0x1.1eef5ap-3f, -0x1p-1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, +0x1.e08756p-4f, -0x1p-1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, +0x1.8421bp-4f, -0x1p-1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, +0x1.28bbfep-4f, -0x1p-1f, 0x1.ced7bp-1f, -0x1.786712p-26f, +0x1.9cc8b4p-5f, -0x1p-1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, +0x1.d4a2c8p-6f, -0x1p-1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, +0x1.d16c9p-8f, -0x1p-1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, +-0x1.ce1e64p-7f, -0x1p-1f, 0x1.b72834p-1f, 0x1.465b9p-27f, +-0x1.1eb354p-5f, -0x1p-1f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, +-0x1.c73b3ap-5f, -0x1p-1f, 0x1.a9b662p-1f, 0x1.21d434p-26f, +-0x1.3682a6p-4f, -0x1p-1f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, +-0x1.87fbfep-4f, -0x1p-1f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, +-0x1.d7fd14p-4f, -0x1p-1f, 0x1.93a224p-1f, 0x1.324c8p-26f, +-0x1.133ccap-3f, -0x1p-1f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, +-0x1.39b2aep-3f, -0x1p-1f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, +-0x1.5f5a4ep-3f, -0x1p-1f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, +-0x1.842dd6p-3f, -0x1p-1f, 0x1.72d084p-1f, -0x1.02000ep-26f, +0x1.2bec34p-2f, -0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, +0x1.1a5efap-2f, -0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, +0x1.09441cp-2f, -0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, +0x1.f13c7ep-3f, -0x1p0f, 0x1.4e6cacp-1f, -0x1.070686p-27f, +0x1.d0dfe6p-3f, -0x1p0f, 0x1.44cf32p-1f, 0x1.424776p-27f, +0x1.b1776ep-3f, -0x1p0f, 0x1.3affa2p-1f, 0x1.240a18p-26f, +0x1.9307eep-3f, -0x1p0f, 0x1.30ff8p-1f, -0x1.8f47e6p-28f, +0x1.759618p-3f, -0x1p0f, 0x1.26d054p-1f, 0x1.9ba25cp-26f, +0x1.592676p-3f, -0x1p0f, 0x1.1c73b4p-1f, -0x1.9465cep-27f, +0x1.3dbd6ap-3f, -0x1p0f, 0x1.11eb36p-1f, -0x1.7c969cp-26f, +0x1.235f2ep-3f, -0x1p0f, 0x1.07387ap-1f, -0x1.b74004p-27f, +0x1.0a0fd4p-3f, -0x1p0f, 0x1.f8ba4ep-2f, -0x1.01d952p-28f, +0x1.e3a688p-4f, -0x1p0f, 0x1.e2b5d4p-2f, -0x1.fe4272p-28f, +0x1.b55a7p-4f, -0x1p0f, 0x1.cc66eap-2f, -0x1.b38ee8p-28f, +0x1.894286p-4f, -0x1p0f, 0x1.b5d1p-2f, 0x1.3c2b98p-27f, +0x1.5f6598p-4f, -0x1p0f, 0x1.9ef794p-2f, 0x1.d476c6p-29f, +0x1.37ca18p-4f, -0x1p0f, 0x1.87de2ap-2f, 0x1.abaa58p-28f, +0x1.127624p-4f, -0x1p0f, 0x1.708854p-2f, -0x1.e0b74cp-27f, +0x1.dedefcp-5f, -0x1p0f, 0x1.58f9a8p-2f, -0x1.4a9c04p-27f, +0x1.9d7714p-5f, -0x1p0f, 0x1.4135cap-2f, -0x1.7d134p-27f, +0x1.60beaap-5f, -0x1p0f, 0x1.294062p-2f, 0x1.dab3ep-27f, +0x1.28bf18p-5f, -0x1p0f, 0x1.111d26p-2f, 0x1.58fb3cp-29f, +0x1.eb0208p-6f, -0x1p0f, 0x1.f19f98p-3f, -0x1.37a83ap-29f, +0x1.8e18a8p-6f, -0x1p0f, 0x1.c0b826p-3f, 0x1.4fc9ecp-28f, +0x1.3ad06p-6f, -0x1p0f, 0x1.8f8b84p-3f, -0x1.cb2cfap-30f, +0x1.e26c16p-7f, -0x1p0f, 0x1.5e2144p-3f, 0x1.22cff2p-29f, +0x1.62aa04p-7f, -0x1p0f, 0x1.2c8106p-3f, 0x1.d1cc28p-28f, +0x1.ecdc78p-8f, -0x1p0f, 0x1.f564e6p-4f, -0x1.2ad19ep-29f, +0x1.3b92e2p-8f, -0x1p0f, 0x1.917a6cp-4f, -0x1.eb25eap-31f, +0x1.63253p-9f, -0x1p0f, 0x1.2d520ap-4f, -0x1.a63cc2p-29f, +0x1.3bc39p-10f, -0x1p0f, 0x1.91f66p-5f, -0x1.de44fep-30f, +0x1.3bcfbep-12f, -0x1p0f, 0x1.92156p-6f, -0x1.0b933p-31f, +0.0f, -0x1p0f, 0.0f, 0.0f, +0x1.3bcfbep-12f, -0x1p0f, -0x1.92156p-6f, 0x1.0b933p-31f, +0x1.3bc39p-10f, -0x1p0f, -0x1.91f66p-5f, 0x1.de44fep-30f, +0x1.63253p-9f, -0x1p0f, -0x1.2d520ap-4f, 0x1.a63cc2p-29f, +0x1.3b92e2p-8f, -0x1p0f, -0x1.917a6cp-4f, 0x1.eb25eap-31f, +0x1.ecdc78p-8f, -0x1p0f, -0x1.f564e6p-4f, 0x1.2ad19ep-29f, +0x1.62aa04p-7f, -0x1p0f, -0x1.2c8106p-3f, -0x1.d1cc28p-28f, +0x1.e26c16p-7f, -0x1p0f, -0x1.5e2144p-3f, -0x1.22cff2p-29f, +0x1.3ad06p-6f, -0x1p0f, -0x1.8f8b84p-3f, 0x1.cb2cfap-30f, +0x1.8e18a8p-6f, -0x1p0f, -0x1.c0b826p-3f, -0x1.4fc9ecp-28f, +0x1.eb0208p-6f, -0x1p0f, -0x1.f19f98p-3f, 0x1.37a83ap-29f, +0x1.28bf18p-5f, -0x1p0f, -0x1.111d26p-2f, -0x1.58fb3cp-29f, +0x1.60beaap-5f, -0x1p0f, -0x1.294062p-2f, -0x1.dab3ep-27f, +0x1.9d7714p-5f, -0x1p0f, -0x1.4135cap-2f, 0x1.7d134p-27f, +0x1.dedefcp-5f, -0x1p0f, -0x1.58f9a8p-2f, 0x1.4a9c04p-27f, +0x1.127624p-4f, -0x1p0f, -0x1.708854p-2f, 0x1.e0b74cp-27f, +0x1.37ca18p-4f, -0x1p0f, -0x1.87de2ap-2f, -0x1.abaa58p-28f, +0x1.5f6598p-4f, -0x1p0f, -0x1.9ef794p-2f, -0x1.d476c6p-29f, +0x1.894286p-4f, -0x1p0f, -0x1.b5d1p-2f, -0x1.3c2b98p-27f, +0x1.b55a7p-4f, -0x1p0f, -0x1.cc66eap-2f, 0x1.b38ee8p-28f, +0x1.e3a688p-4f, -0x1p0f, -0x1.e2b5d4p-2f, 0x1.fe4272p-28f, +0x1.0a0fd4p-3f, -0x1p0f, -0x1.f8ba4ep-2f, 0x1.01d952p-28f, +0x1.235f2ep-3f, -0x1p0f, -0x1.07387ap-1f, 0x1.b74004p-27f, +0x1.3dbd6ap-3f, -0x1p0f, -0x1.11eb36p-1f, 0x1.7c969cp-26f, +0x1.592676p-3f, -0x1p0f, -0x1.1c73b4p-1f, 0x1.9465cep-27f, +0x1.759618p-3f, -0x1p0f, -0x1.26d054p-1f, -0x1.9ba25cp-26f, +0x1.9307eep-3f, -0x1p0f, -0x1.30ff8p-1f, 0x1.8f47e6p-28f, +0x1.b1776ep-3f, -0x1p0f, -0x1.3affa2p-1f, -0x1.240a18p-26f, +0x1.d0dfe6p-3f, -0x1p0f, -0x1.44cf32p-1f, -0x1.424776p-27f, +0x1.f13c7ep-3f, -0x1p0f, -0x1.4e6cacp-1f, 0x1.070686p-27f, +0x1.09441cp-2f, -0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, +0x1.1a5efap-2f, -0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, +0x1.2bec34p-2f, -0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, +-0x1.842dd6p-3f, -0x1p-1f, -0x1.72d084p-1f, 0x1.02000ep-26f, +-0x1.5f5a4ep-3f, -0x1p-1f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, +-0x1.39b2aep-3f, -0x1p-1f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, +-0x1.133ccap-3f, -0x1p-1f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, +-0x1.d7fd14p-4f, -0x1p-1f, -0x1.93a224p-1f, -0x1.324c8p-26f, +-0x1.87fbfep-4f, -0x1p-1f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, +-0x1.3682a6p-4f, -0x1p-1f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, +-0x1.c73b3ap-5f, -0x1p-1f, -0x1.a9b662p-1f, -0x1.21d434p-26f, +-0x1.1eb354p-5f, -0x1p-1f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, +-0x1.ce1e64p-7f, -0x1p-1f, -0x1.b72834p-1f, -0x1.465b9p-27f, +0x1.d16c9p-8f, -0x1p-1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, +0x1.d4a2c8p-6f, -0x1p-1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, +0x1.9cc8b4p-5f, -0x1p-1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, +0x1.28bbfep-4f, -0x1p-1f, -0x1.ced7bp-1f, 0x1.786712p-26f, +0x1.8421bp-4f, -0x1p-1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, +0x1.e08756p-4f, -0x1p-1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, +0x1.1eef5ap-3f, -0x1p-1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, +-0x1.63e69ep-4f, -0x1p-2f, -0x1.e2121p-1f, -0x1.3da1bap-27f, +-0x1.04d726p-4f, -0x1p-2f, -0x1.e6288ep-1f, -0x1.891c22p-26f, +-0x1.4a0318p-5f, -0x1p-2f, -0x1.e9f416p-1f, 0x1.273a44p-26f, +-0x1.11d262p-6f, -0x1p-2f, -0x1.ed740ep-1f, -0x1.da1258p-27f, +0x1.cc0d0ap-8f, -0x1p-2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, +0x1.fa3ecap-6f, -0x1p-2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, +0x1.c1d1fp-5f, -0x1p-2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, +-0x1.788512p-5f, -0x1p-3f, -0x1.f8765p-1f, 0x1.63ad16p-27f, +-0x1.640838p-6f, -0x1p-3f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, +0x1.536352p-9f, -0x1p-3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, +0x1.ba165p-6f, -0x1p-3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, +-0x1.6a904ap-7f, -0x1p-4f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, +0x1.b82684p-7f, -0x1p-4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, +0x1.b7aa82p-8f, -0x1p-5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, 0.0f, 0.0f, -0x1p0f, 0.0f, -0x1.b7aa82p-8f, 0x1p-5f, -0x1.ffd886p-1f, -0x1.099a1ap-30f, -0x1.b82684p-7f, 0x1p-4f, -0x1.ff621ep-1f, -0x1.bcb6bep-28f, --0x1.a55beep-5f, 0x1p-3f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, +0x1.6a904ap-7f, 0x1p-4f, -0x1.fe9cdap-1f, -0x1.a03108p-26f, -0x1.ba165p-6f, 0x1p-3f, -0x1.fd88dap-1f, -0x1.e89292p-28f, -0x1.536352p-9f, 0x1p-3f, -0x1.fc2648p-1f, 0x1.e3cc06p-26f, --0x1.a6fdf2p-4f, 0x1p-2f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, --0x1.43bd78p-4f, 0x1p-2f, -0x1.f8765p-1f, 0x1.63ad16p-27f, +0x1.640838p-6f, 0x1p-3f, -0x1.fa7558p-1f, 0x1.eeb5d2p-30f, +0x1.788512p-5f, 0x1p-3f, -0x1.f8765p-1f, 0x1.63ad16p-27f, -0x1.c1d1fp-5f, 0x1p-2f, -0x1.f6297cp-1f, -0x1.feeb96p-26f, -0x1.fa3ecap-6f, 0x1p-2f, -0x1.f38f3ap-1f, -0x1.8c9cb2p-26f, -0x1.cc0d0ap-8f, 0x1p-2f, -0x1.f0a7fp-1f, 0x1.1b73cap-27f, --0x1.ddc5b4p-3f, 0x1p-1f, -0x1.ed740ep-1f, -0x1.da1258p-27f, --0x1.ad7f3ap-3f, 0x1p-1f, -0x1.e9f416p-1f, 0x1.273a44p-26f, --0x1.7d946ep-3f, 0x1p-1f, -0x1.e6288ep-1f, -0x1.891c22p-26f, --0x1.4e0cb2p-3f, 0x1p-1f, -0x1.e2121p-1f, -0x1.3da1bap-27f, +0x1.11d262p-6f, 0x1p-2f, -0x1.ed740ep-1f, -0x1.da1258p-27f, +0x1.4a0318p-5f, 0x1p-2f, -0x1.e9f416p-1f, 0x1.273a44p-26f, +0x1.04d726p-4f, 0x1p-2f, -0x1.e6288ep-1f, -0x1.891c22p-26f, +0x1.63e69ep-4f, 0x1p-2f, -0x1.e2121p-1f, -0x1.3da1bap-27f, -0x1.1eef5ap-3f, 0x1p-1f, -0x1.ddb13cp-1f, 0x1.2667b8p-26f, -0x1.e08756p-4f, 0x1p-1f, -0x1.d906bcp-1f, -0x1.e651a8p-26f, -0x1.8421bp-4f, 0x1p-1f, -0x1.d4134ep-1f, 0x1.d646d8p-26f, @@ -934,16 +934,16 @@ template <> inline constexpr float kCosApproxTable[] = -0x1.9cc8b4p-5f, 0x1p-1f, -0x1.c954b2p-1f, -0x1.3411f4p-29f, -0x1.d4a2c8p-6f, 0x1p-1f, -0x1.c38b3p-1f, 0x1.cfe84ap-26f, -0x1.d16c9p-8f, 0x1p-1f, -0x1.bd7c0ap-1f, -0x1.8df2a6p-26f, --0x1.f18f0cp-2f, 0x1p0f, -0x1.b72834p-1f, -0x1.465b9p-27f, --0x1.dc2996p-2f, 0x1p0f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, --0x1.c71898p-2f, 0x1p0f, -0x1.a9b662p-1f, -0x1.21d434p-26f, --0x1.b25f56p-2f, 0x1p0f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, --0x1.9e01p-2f, 0x1p0f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, --0x1.8a00bap-2f, 0x1p0f, -0x1.93a224p-1f, -0x1.324c8p-26f, --0x1.76619cp-2f, 0x1p0f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, --0x1.6326a8p-2f, 0x1p0f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, --0x1.5052dap-2f, 0x1p0f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, --0x1.3de916p-2f, 0x1p0f, -0x1.72d084p-1f, 0x1.02000ep-26f, +0x1.ce1e64p-7f, 0x1p-1f, -0x1.b72834p-1f, -0x1.465b9p-27f, +0x1.1eb354p-5f, 0x1p-1f, -0x1.b090a6p-1f, 0x1.fabf8p-27f, +0x1.c73b3ap-5f, 0x1p-1f, -0x1.a9b662p-1f, -0x1.21d434p-26f, +0x1.3682a6p-4f, 0x1p-1f, -0x1.a29a7ap-1f, -0x1.189e08p-31f, +0x1.87fbfep-4f, 0x1p-1f, -0x1.9b3e04p-1f, -0x1.fce1dp-27f, +0x1.d7fd14p-4f, 0x1p-1f, -0x1.93a224p-1f, -0x1.324c8p-26f, +0x1.133ccap-3f, 0x1p-1f, -0x1.8bc806p-1f, -0x1.62a2e8p-26f, +0x1.39b2aep-3f, 0x1p-1f, -0x1.83b0ep-1f, -0x1.7ff2eep-26f, +0x1.5f5a4ep-3f, 0x1p-1f, -0x1.7b5df2p-1f, -0x1.3557d8p-28f, +0x1.842dd6p-3f, 0x1p-1f, -0x1.72d084p-1f, 0x1.02000ep-26f, -0x1.2bec34p-2f, 0x1p0f, -0x1.6a09e6p-1f, -0x1.9fcef4p-27f, -0x1.1a5efap-2f, 0x1p0f, -0x1.610b76p-1f, 0x1.5c5a64p-26f, -0x1.09441cp-2f, 0x1p0f, -0x1.57d694p-1f, 0x1.6e626cp-26f, @@ -1009,16 +1009,16 @@ template <> inline constexpr float kCosApproxTable[] = -0x1.09441cp-2f, 0x1p0f, 0x1.57d694p-1f, -0x1.6e626cp-26f, -0x1.1a5efap-2f, 0x1p0f, 0x1.610b76p-1f, -0x1.5c5a64p-26f, -0x1.2bec34p-2f, 0x1p0f, 0x1.6a09e6p-1f, 0x1.9fcef4p-27f, --0x1.3de916p-2f, 0x1p0f, 0x1.72d084p-1f, -0x1.02000ep-26f, --0x1.5052dap-2f, 0x1p0f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, --0x1.6326a8p-2f, 0x1p0f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, --0x1.76619cp-2f, 0x1p0f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, --0x1.8a00bap-2f, 0x1p0f, 0x1.93a224p-1f, 0x1.324c8p-26f, --0x1.9e01p-2f, 0x1p0f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, --0x1.b25f56p-2f, 0x1p0f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, --0x1.c71898p-2f, 0x1p0f, 0x1.a9b662p-1f, 0x1.21d434p-26f, --0x1.dc2996p-2f, 0x1p0f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, --0x1.f18f0cp-2f, 0x1p0f, 0x1.b72834p-1f, 0x1.465b9p-27f, +0x1.842dd6p-3f, 0x1p-1f, 0x1.72d084p-1f, -0x1.02000ep-26f, +0x1.5f5a4ep-3f, 0x1p-1f, 0x1.7b5df2p-1f, 0x1.3557d8p-28f, +0x1.39b2aep-3f, 0x1p-1f, 0x1.83b0ep-1f, 0x1.7ff2eep-26f, +0x1.133ccap-3f, 0x1p-1f, 0x1.8bc806p-1f, 0x1.62a2e8p-26f, +0x1.d7fd14p-4f, 0x1p-1f, 0x1.93a224p-1f, 0x1.324c8p-26f, +0x1.87fbfep-4f, 0x1p-1f, 0x1.9b3e04p-1f, 0x1.fce1dp-27f, +0x1.3682a6p-4f, 0x1p-1f, 0x1.a29a7ap-1f, 0x1.189e08p-31f, +0x1.c73b3ap-5f, 0x1p-1f, 0x1.a9b662p-1f, 0x1.21d434p-26f, +0x1.1eb354p-5f, 0x1p-1f, 0x1.b090a6p-1f, -0x1.fabf8p-27f, +0x1.ce1e64p-7f, 0x1p-1f, 0x1.b72834p-1f, 0x1.465b9p-27f, -0x1.d16c9p-8f, 0x1p-1f, 0x1.bd7c0ap-1f, 0x1.8df2a6p-26f, -0x1.d4a2c8p-6f, 0x1p-1f, 0x1.c38b3p-1f, -0x1.cfe84ap-26f, -0x1.9cc8b4p-5f, 0x1p-1f, 0x1.c954b2p-1f, 0x1.3411f4p-29f, @@ -1026,18 +1026,18 @@ template <> inline constexpr float kCosApproxTable[] = -0x1.8421bp-4f, 0x1p-1f, 0x1.d4134ep-1f, -0x1.d646d8p-26f, -0x1.e08756p-4f, 0x1p-1f, 0x1.d906bcp-1f, 0x1.e651a8p-26f, -0x1.1eef5ap-3f, 0x1p-1f, 0x1.ddb13cp-1f, -0x1.2667b8p-26f, --0x1.4e0cb2p-3f, 0x1p-1f, 0x1.e2121p-1f, 0x1.3da1bap-27f, --0x1.7d946ep-3f, 0x1p-1f, 0x1.e6288ep-1f, 0x1.891c22p-26f, --0x1.ad7f3ap-3f, 0x1p-1f, 0x1.e9f416p-1f, -0x1.273a44p-26f, --0x1.ddc5b4p-3f, 0x1p-1f, 0x1.ed740ep-1f, 0x1.da1258p-27f, +0x1.63e69ep-4f, 0x1p-2f, 0x1.e2121p-1f, 0x1.3da1bap-27f, +0x1.04d726p-4f, 0x1p-2f, 0x1.e6288ep-1f, 0x1.891c22p-26f, +0x1.4a0318p-5f, 0x1p-2f, 0x1.e9f416p-1f, -0x1.273a44p-26f, +0x1.11d262p-6f, 0x1p-2f, 0x1.ed740ep-1f, 0x1.da1258p-27f, -0x1.cc0d0ap-8f, 0x1p-2f, 0x1.f0a7fp-1f, -0x1.1b73cap-27f, -0x1.fa3ecap-6f, 0x1p-2f, 0x1.f38f3ap-1f, 0x1.8c9cb2p-26f, -0x1.c1d1fp-5f, 0x1p-2f, 0x1.f6297cp-1f, 0x1.feeb96p-26f, --0x1.43bd78p-4f, 0x1p-2f, 0x1.f8765p-1f, -0x1.63ad16p-27f, --0x1.a6fdf2p-4f, 0x1p-2f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, +0x1.788512p-5f, 0x1p-3f, 0x1.f8765p-1f, -0x1.63ad16p-27f, +0x1.640838p-6f, 0x1p-3f, 0x1.fa7558p-1f, -0x1.eeb5d2p-30f, -0x1.536352p-9f, 0x1p-3f, 0x1.fc2648p-1f, -0x1.e3cc06p-26f, -0x1.ba165p-6f, 0x1p-3f, 0x1.fd88dap-1f, 0x1.e89292p-28f, --0x1.a55beep-5f, 0x1p-3f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, +0x1.6a904ap-7f, 0x1p-4f, 0x1.fe9cdap-1f, 0x1.a03108p-26f, -0x1.b82684p-7f, 0x1p-4f, 0x1.ff621ep-1f, 0x1.bcb6bep-28f, -0x1.b7aa82p-8f, 0x1p-5f, 0x1.ffd886p-1f, 0x1.099a1ap-30f, }; @@ -1045,293 +1045,293 @@ template <> inline constexpr float kCosApproxTable[] = template <> inline constexpr double kCosApproxTable[] = { 0.0, 0.0, 0x1p0, 0.0, --0x1.000c90e8fe6f6p6, 0x1p6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, --0x1.003242abef46dp5, 0x1p5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, --0x1.0096c32baca2bp4, 0x1p4, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, --0x1.00c8fb2f886ecp4, 0x1p4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, --0x1.00fb2b73cfc1p4, 0x1p4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, --0x1.025aa41259c34p3, 0x1p3, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, --0x1.02beda0153548p3, 0x1p3, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, --0x1.0322f4d785368p3, 0x1p3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, --0x1.0386f0b8f3d86p3, 0x1p3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, --0x1.03eac9cad52e6p3, 0x1p3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, --0x1.089cf8676d7acp2, 0x1p2, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, --0x1.096408374730ap2, 0x1p2, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, --0x1.0a2abb58949f3p2, 0x1p2, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, --0x1.0af10a22459fep2, 0x1p2, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, --0x1.0bb6ecef285fap2, 0x1p2, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, --0x1.0c7c5c1e34d3p2, 0x1p2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, --0x1.0d415012d8023p2, 0x1p2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, --0x1.0e05c1353f27bp2, 0x1p2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, --0x1.0ec9a7f2a2a19p2, 0x1p2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, --0x1.0f8cfcbd90af9p2, 0x1p2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, --0x1.209f701c6ffb6p1, 0x1p1, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, --0x1.2223a4c563ecfp1, 0x1p1, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, --0x1.23a6887e99b68p1, 0x1p1, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, --0x1.25280c5dab3e1p1, 0x1p1, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, --0x1.26a82185c302ap1, 0x1p1, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, --0x1.2826b9282eccp1, 0x1p1, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, --0x1.29a3c484f1cedp1, 0x1p1, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, --0x1.2b1f34eb563fcp1, 0x1p1, 0x1.e212104f686e5p-1, -0x1.014c76p-55, --0x1.2c98fbba7e4f9p1, 0x1p1, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, --0x1.2e110a61f48b4p1, 0x1p1, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, --0x1.2f8752623b99dp1, 0x1p1, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, --0x1.30fbc54d5d52cp1, 0x1p1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, --0x1.326e54c77927bp1, 0x1p1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, --0x1.33def28751db1p1, 0x1p1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, --0x1.354d9056da7f9p1, 0x1p1, 0x1.d17e7743e35dcp-1, -0x1.101da2p-58, --0x1.36ba2013c2b98p1, 0x1p1, 0x1.ced7af43cc773p-1, -0x1.e7b6bap-58, --0x1.382493b0023ddp1, 0x1p1, 0x1.cc1f0f3fcfc5cp-1, 0x1.e57612p-56, --0x1.398cdd326388cp1, 0x1p1, 0x1.c954b213411f5p-1, -0x1.2fb76p-58, --0x1.3af2eeb70dc71p1, 0x1p1, 0x1.c678b3488739bp-1, 0x1.d86cacp-57, --0x1.3c56ba700dec7p1, 0x1p1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, --0x1.3db832a5def1bp1, 0x1p1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, --0x1.3f1749b7f1357p1, 0x1p1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, --0x1.80e7e43a61f5bp0, 0x1p0, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, --0x1.839c3cc917ff7p0, 0x1p0, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, --0x1.864b826aec4c7p0, 0x1p0, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, --0x1.88f59aa0da591p0, 0x1p0, 0x1.b090a581502p-1, -0x1.926da2p-55, --0x1.8b9a6b1ef6da4p0, 0x1p0, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, --0x1.8e39d9cd73464p0, 0x1p0, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, --0x1.90d3ccc99f5acp0, 0x1p0, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, --0x1.93682a66e896fp0, 0x1p0, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, --0x1.95f6d92fd79f5p0, 0x1p0, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, --0x1.987fbfe70b81ap0, 0x1p0, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, --0x1.9b02c58832cf9p0, 0x1p0, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, --0x1.9d7fd1490285dp0, 0x1p0, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, --0x1.9ff6ca9a2ab6ap0, 0x1p0, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, --0x1.a267992848eebp0, 0x1p0, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, --0x1.a4d224dcd849cp0, 0x1p0, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, --0x1.a73655df1f2f5p0, 0x1p0, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, --0x1.a99414951aacbp0, 0x1p0, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, --0x1.abeb49a46765p0, 0x1p0, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, --0x1.ae3bddf3280c6p0, 0x1p0, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, --0x1.b085baa8e966fp0, 0x1p0, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, --0x1.b2c8c92f83c1fp0, 0x1p0, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, --0x1.b504f333f9de6p0, 0x1p0, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, --0x1.b73a22a755457p0, 0x1p0, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, --0x1.b96841bf7ffcbp0, 0x1p0, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, --0x1.bb8f3af81b931p0, 0x1p0, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, --0x1.bdaef913557d7p0, 0x1p0, 0x1.57d69348cecap-1, -0x1.757208p-55, --0x1.bfc7671ab8bb8p0, 0x1p0, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, --0x1.c1d8705ffcbb7p0, 0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, --0x1.c3e2007dd175fp0, 0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, --0x1.c5e40358a8bap0, 0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, --0x1.c7de651f7ca06p0, 0x1p0, 0x1.3fed9534556d4p-1, 0x1.369166p-55, --0x1.c9d1124c931fep0, 0x1p0, 0x1.3affa292050b9p-1, 0x1.e3e25ep-56, --0x1.cbbbf7a63eba1p0, 0x1p0, 0x1.36058b10659f3p-1, -0x1.1fcb3ap-55, --0x1.cd9f023f9c3ap0, 0x1p0, 0x1.30ff7fce17035p-1, -0x1.efcc62p-57, --0x1.cf7a1f794d7cap0, 0x1p0, 0x1.2bedb25faf3eap-1, -0x1.14981cp-58, --0x1.d14d3d02313c1p0, 0x1p0, 0x1.26d054cdd12dfp-1, -0x1.5da742p-55, --0x1.d31848d817d71p0, 0x1p0, 0x1.21a799933eb59p-1, -0x1.3a7b16p-55, --0x1.d4db3148750d2p0, 0x1p0, 0x1.1c73b39ae68c8p-1, 0x1.b25dd2p-55, --0x1.d695e4f10ea88p0, 0x1p0, 0x1.1734d63dedb49p-1, -0x1.7eef2cp-55, --0x1.d84852c0a81p0, 0x1p0, 0x1.11eb3541b4b23p-1, -0x1.ef23b6p-55, --0x1.d9f269f7aab89p0, 0x1p0, 0x1.0c9704d5d898fp-1, -0x1.8d3d7cp-55, --0x1.db941a28cb71fp0, 0x1p0, 0x1.073879922ffeep-1, -0x1.a5a014p-55, --0x1.dd2d5339ac869p0, 0x1p0, 0x1.01cfc874c3eb7p-1, -0x1.34a35ep-56, --0x1.debe05637ca95p0, 0x1p0, 0x1.f8ba4dbf89abap-2, -0x1.2ec1fcp-60, --0x1.e046213392aa5p0, 0x1p0, 0x1.edc1952ef78d6p-2, -0x1.dd0f7cp-56, --0x1.e1c5978c05ed8p0, 0x1p0, 0x1.e2b5d3806f63bp-2, 0x1.e0d89p-58, --0x1.e33c59a4439cep0, 0x1p0, 0x1.d79775b86e389p-2, 0x1.550ec8p-56, --0x1.e4aa5909a08fap0, 0x1p0, 0x1.cc66e9931c45ep-2, 0x1.6850e4p-58, --0x1.e60f879fe7e2ep0, 0x1p0, 0x1.c1249d8011ee7p-2, -0x1.813aaap-56, --0x1.e76bd7a1e63b9p0, 0x1p0, 0x1.b5d1009e15ccp-2, 0x1.5b362cp-57, --0x1.e8bf3ba1f1aeep0, 0x1p0, 0x1.aa6c82b6d3fcap-2, -0x1.d5f106p-56, --0x1.ea09a68a6e49dp0, 0x1p0, 0x1.9ef7943a8ed8ap-2, 0x1.6da812p-57, --0x1.eb4b0b9e4f345p0, 0x1p0, 0x1.9372a63bc93d7p-2, 0x1.684318p-57, --0x1.ec835e79946a3p0, 0x1p0, 0x1.87de2a6aea963p-2, -0x1.72cedcp-57, --0x1.edb29311c504dp0, 0x1p0, 0x1.7c3a9311dcce7p-2, 0x1.9a3f2p-62, --0x1.eed89db66611ep0, 0x1p0, 0x1.7088530fa459fp-2, -0x1.44b19ep-56, --0x1.eff573116df15p0, 0x1p0, 0x1.64c7ddd3f27c6p-2, 0x1.10d2b4p-58, --0x1.f1090827b4372p0, 0x1p0, 0x1.58f9a75ab1fddp-2, -0x1.efdc0cp-62, --0x1.f21352595e0bfp0, 0x1p0, 0x1.4d1e24278e76ap-2, 0x1.24172p-57, --0x1.f314476247089p0, 0x1p0, 0x1.4135c94176601p-2, 0x1.0c97c4p-56, --0x1.f40bdd5a66886p0, 0x1p0, 0x1.35410c2e18152p-2, -0x1.3cb002p-56, --0x1.f4fa0ab6316edp0, 0x1p0, 0x1.294062ed59f06p-2, -0x1.5d28dap-56, --0x1.f5dec646f85bap0, 0x1p0, 0x1.1d3443f4cdb3ep-2, -0x1.720d4p-57, --0x1.f6ba073b424b2p0, 0x1p0, 0x1.111d262b1f677p-2, 0x1.824c2p-56, --0x1.f78bc51f239e1p0, 0x1p0, 0x1.04fb80e37fdaep-2, -0x1.412cdap-63, --0x1.f853f7dc9186cp0, 0x1p0, 0x1.f19f97b215f1bp-3, -0x1.42deeep-57, --0x1.f91297bbb1d6dp0, 0x1p0, 0x1.d934fe5454311p-3, 0x1.75b922p-57, --0x1.f9c79d63272c4p0, 0x1p0, 0x1.c0b826a7e4f63p-3, -0x1.af1438p-62, --0x1.fa7301d859796p0, 0x1p0, 0x1.a82a025b00451p-3, -0x1.87905ep-57, --0x1.fb14be7fbae58p0, 0x1p0, 0x1.8f8b83c69a60bp-3, -0x1.26d19ap-57, --0x1.fbaccd1d0903cp0, 0x1p0, 0x1.76dd9de50bf31p-3, 0x1.1d5eeep-57, --0x1.fc3b27d38a5d5p0, 0x1p0, 0x1.5e214448b3fc6p-3, 0x1.531ff6p-57, --0x1.fcbfc926484cdp0, 0x1p0, 0x1.45576b1293e5ap-3, -0x1.285a24p-58, --0x1.fd3aabf84528bp0, 0x1p0, 0x1.2c8106e8e613ap-3, 0x1.13000ap-58, --0x1.fdabcb8caeba1p0, 0x1p0, 0x1.139f0cedaf577p-3, -0x1.523434p-57, --0x1.fe1323870cfeap0, 0x1p0, 0x1.f564e56a9730ep-4, 0x1.a27046p-59, --0x1.fe70afeb6d33dp0, 0x1p0, 0x1.c3785c79ec2d5p-4, -0x1.4f39dep-61, --0x1.fec46d1e89293p0, 0x1p0, 0x1.917a6bc29b42cp-4, -0x1.e2718cp-60, --0x1.ff0e57e5ead85p0, 0x1p0, 0x1.5f6d00a9aa419p-4, -0x1.f4022cp-59, --0x1.ff4e6d680c41dp0, 0x1p0, 0x1.2d52092ce19f6p-4, -0x1.9a088ap-59, --0x1.ff84ab2c738d7p0, 0x1p0, 0x1.f656e79f820ep-5, -0x1.2e1ebep-61, --0x1.ffb10f1bcb6bfp0, 0x1p0, 0x1.91f65f10dd814p-5, -0x1.912bdp-61, --0x1.ffd3977ff7baep0, 0x1p0, 0x1.2d865759455cdp-5, 0x1.686f64p-61, --0x1.ffec430426686p0, 0x1p0, 0x1.92155f7a3667ep-6, -0x1.b1d63p-64, --0x1.fffb10b4dc96ep0, 0x1p0, 0x1.921d1fcdec784p-7, 0x1.9878eap-61, --0x1p1, 0x1p0, 0.0, 0.0, --0x1.fffb10b4dc96ep0, 0x1p0, -0x1.921d1fcdec784p-7, -0x1.9878eap-61, --0x1.ffec430426686p0, 0x1p0, -0x1.92155f7a3667ep-6, 0x1.b1d63p-64, --0x1.ffd3977ff7baep0, 0x1p0, -0x1.2d865759455cdp-5, -0x1.686f64p-61, --0x1.ffb10f1bcb6bfp0, 0x1p0, -0x1.91f65f10dd814p-5, 0x1.912bdp-61, --0x1.ff84ab2c738d7p0, 0x1p0, -0x1.f656e79f820ep-5, 0x1.2e1ebep-61, --0x1.ff4e6d680c41dp0, 0x1p0, -0x1.2d52092ce19f6p-4, 0x1.9a088ap-59, --0x1.ff0e57e5ead85p0, 0x1p0, -0x1.5f6d00a9aa419p-4, 0x1.f4022cp-59, --0x1.fec46d1e89293p0, 0x1p0, -0x1.917a6bc29b42cp-4, 0x1.e2718cp-60, --0x1.fe70afeb6d33dp0, 0x1p0, -0x1.c3785c79ec2d5p-4, 0x1.4f39dep-61, --0x1.fe1323870cfeap0, 0x1p0, -0x1.f564e56a9730ep-4, -0x1.a27046p-59, --0x1.fdabcb8caeba1p0, 0x1p0, -0x1.139f0cedaf577p-3, 0x1.523434p-57, --0x1.fd3aabf84528bp0, 0x1p0, -0x1.2c8106e8e613ap-3, -0x1.13000ap-58, --0x1.fcbfc926484cdp0, 0x1p0, -0x1.45576b1293e5ap-3, 0x1.285a24p-58, --0x1.fc3b27d38a5d5p0, 0x1p0, -0x1.5e214448b3fc6p-3, -0x1.531ff6p-57, --0x1.fbaccd1d0903cp0, 0x1p0, -0x1.76dd9de50bf31p-3, -0x1.1d5eeep-57, --0x1.fb14be7fbae58p0, 0x1p0, -0x1.8f8b83c69a60bp-3, 0x1.26d19ap-57, --0x1.fa7301d859796p0, 0x1p0, -0x1.a82a025b00451p-3, 0x1.87905ep-57, --0x1.f9c79d63272c4p0, 0x1p0, -0x1.c0b826a7e4f63p-3, 0x1.af1438p-62, --0x1.f91297bbb1d6dp0, 0x1p0, -0x1.d934fe5454311p-3, -0x1.75b922p-57, --0x1.f853f7dc9186cp0, 0x1p0, -0x1.f19f97b215f1bp-3, 0x1.42deeep-57, --0x1.f78bc51f239e1p0, 0x1p0, -0x1.04fb80e37fdaep-2, 0x1.412cdap-63, --0x1.f6ba073b424b2p0, 0x1p0, -0x1.111d262b1f677p-2, -0x1.824c2p-56, --0x1.f5dec646f85bap0, 0x1p0, -0x1.1d3443f4cdb3ep-2, 0x1.720d4p-57, --0x1.f4fa0ab6316edp0, 0x1p0, -0x1.294062ed59f06p-2, 0x1.5d28dap-56, --0x1.f40bdd5a66886p0, 0x1p0, -0x1.35410c2e18152p-2, 0x1.3cb002p-56, --0x1.f314476247089p0, 0x1p0, -0x1.4135c94176601p-2, -0x1.0c97c4p-56, --0x1.f21352595e0bfp0, 0x1p0, -0x1.4d1e24278e76ap-2, -0x1.24172p-57, --0x1.f1090827b4372p0, 0x1p0, -0x1.58f9a75ab1fddp-2, 0x1.efdc0cp-62, --0x1.eff573116df15p0, 0x1p0, -0x1.64c7ddd3f27c6p-2, -0x1.10d2b4p-58, --0x1.eed89db66611ep0, 0x1p0, -0x1.7088530fa459fp-2, 0x1.44b19ep-56, --0x1.edb29311c504dp0, 0x1p0, -0x1.7c3a9311dcce7p-2, -0x1.9a3f2p-62, --0x1.ec835e79946a3p0, 0x1p0, -0x1.87de2a6aea963p-2, 0x1.72cedcp-57, --0x1.eb4b0b9e4f345p0, 0x1p0, -0x1.9372a63bc93d7p-2, -0x1.684318p-57, --0x1.ea09a68a6e49dp0, 0x1p0, -0x1.9ef7943a8ed8ap-2, -0x1.6da812p-57, --0x1.e8bf3ba1f1aeep0, 0x1p0, -0x1.aa6c82b6d3fcap-2, 0x1.d5f106p-56, --0x1.e76bd7a1e63b9p0, 0x1p0, -0x1.b5d1009e15ccp-2, -0x1.5b362cp-57, --0x1.e60f879fe7e2ep0, 0x1p0, -0x1.c1249d8011ee7p-2, 0x1.813aaap-56, --0x1.e4aa5909a08fap0, 0x1p0, -0x1.cc66e9931c45ep-2, -0x1.6850e4p-58, --0x1.e33c59a4439cep0, 0x1p0, -0x1.d79775b86e389p-2, -0x1.550ec8p-56, --0x1.e1c5978c05ed8p0, 0x1p0, -0x1.e2b5d3806f63bp-2, -0x1.e0d89p-58, --0x1.e046213392aa5p0, 0x1p0, -0x1.edc1952ef78d6p-2, 0x1.dd0f7cp-56, --0x1.debe05637ca95p0, 0x1p0, -0x1.f8ba4dbf89abap-2, 0x1.2ec1fcp-60, --0x1.dd2d5339ac869p0, 0x1p0, -0x1.01cfc874c3eb7p-1, 0x1.34a35ep-56, --0x1.db941a28cb71fp0, 0x1p0, -0x1.073879922ffeep-1, 0x1.a5a014p-55, --0x1.d9f269f7aab89p0, 0x1p0, -0x1.0c9704d5d898fp-1, 0x1.8d3d7cp-55, --0x1.d84852c0a81p0, 0x1p0, -0x1.11eb3541b4b23p-1, 0x1.ef23b6p-55, --0x1.d695e4f10ea88p0, 0x1p0, -0x1.1734d63dedb49p-1, 0x1.7eef2cp-55, --0x1.d4db3148750d2p0, 0x1p0, -0x1.1c73b39ae68c8p-1, -0x1.b25dd2p-55, --0x1.d31848d817d71p0, 0x1p0, -0x1.21a799933eb59p-1, 0x1.3a7b16p-55, --0x1.d14d3d02313c1p0, 0x1p0, -0x1.26d054cdd12dfp-1, 0x1.5da742p-55, --0x1.cf7a1f794d7cap0, 0x1p0, -0x1.2bedb25faf3eap-1, 0x1.14981cp-58, --0x1.cd9f023f9c3ap0, 0x1p0, -0x1.30ff7fce17035p-1, 0x1.efcc62p-57, --0x1.cbbbf7a63eba1p0, 0x1p0, -0x1.36058b10659f3p-1, 0x1.1fcb3ap-55, --0x1.c9d1124c931fep0, 0x1p0, -0x1.3affa292050b9p-1, -0x1.e3e25ep-56, --0x1.c7de651f7ca06p0, 0x1p0, -0x1.3fed9534556d4p-1, -0x1.369166p-55, --0x1.c5e40358a8bap0, 0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, --0x1.c3e2007dd175fp0, 0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, --0x1.c1d8705ffcbb7p0, 0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, --0x1.bfc7671ab8bb8p0, 0x1p0, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, --0x1.bdaef913557d7p0, 0x1p0, -0x1.57d69348cecap-1, 0x1.757208p-55, --0x1.bb8f3af81b931p0, 0x1p0, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, --0x1.b96841bf7ffcbp0, 0x1p0, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, --0x1.b73a22a755457p0, 0x1p0, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, --0x1.b504f333f9de6p0, 0x1p0, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, --0x1.b2c8c92f83c1fp0, 0x1p0, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, --0x1.b085baa8e966fp0, 0x1p0, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, --0x1.ae3bddf3280c6p0, 0x1p0, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, --0x1.abeb49a46765p0, 0x1p0, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, --0x1.a99414951aacbp0, 0x1p0, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, --0x1.a73655df1f2f5p0, 0x1p0, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, --0x1.a4d224dcd849cp0, 0x1p0, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, --0x1.a267992848eebp0, 0x1p0, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, --0x1.9ff6ca9a2ab6ap0, 0x1p0, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, --0x1.9d7fd1490285dp0, 0x1p0, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, --0x1.9b02c58832cf9p0, 0x1p0, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, --0x1.987fbfe70b81ap0, 0x1p0, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, --0x1.95f6d92fd79f5p0, 0x1p0, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, --0x1.93682a66e896fp0, 0x1p0, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, --0x1.90d3ccc99f5acp0, 0x1p0, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, --0x1.8e39d9cd73464p0, 0x1p0, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, --0x1.8b9a6b1ef6da4p0, 0x1p0, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, --0x1.88f59aa0da591p0, 0x1p0, -0x1.b090a581502p-1, 0x1.926da2p-55, --0x1.864b826aec4c7p0, 0x1p0, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, --0x1.839c3cc917ff7p0, 0x1p0, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, --0x1.80e7e43a61f5bp0, 0x1p0, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, --0x1.3f1749b7f1357p1, 0x1p1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, --0x1.3db832a5def1bp1, 0x1p1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, --0x1.3c56ba700dec7p1, 0x1p1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, --0x1.3af2eeb70dc71p1, 0x1p1, -0x1.c678b3488739bp-1, -0x1.d86cacp-57, --0x1.398cdd326388cp1, 0x1p1, -0x1.c954b213411f5p-1, 0x1.2fb76p-58, --0x1.382493b0023ddp1, 0x1p1, -0x1.cc1f0f3fcfc5cp-1, -0x1.e57612p-56, --0x1.36ba2013c2b98p1, 0x1p1, -0x1.ced7af43cc773p-1, 0x1.e7b6bap-58, --0x1.354d9056da7f9p1, 0x1p1, -0x1.d17e7743e35dcp-1, 0x1.101da2p-58, --0x1.33def28751db1p1, 0x1p1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, --0x1.326e54c77927bp1, 0x1p1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, --0x1.30fbc54d5d52cp1, 0x1p1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, --0x1.2f8752623b99dp1, 0x1p1, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, --0x1.2e110a61f48b4p1, 0x1p1, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, --0x1.2c98fbba7e4f9p1, 0x1p1, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, --0x1.2b1f34eb563fcp1, 0x1p1, -0x1.e212104f686e5p-1, 0x1.014c76p-55, --0x1.29a3c484f1cedp1, 0x1p1, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, --0x1.2826b9282eccp1, 0x1p1, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, --0x1.26a82185c302ap1, 0x1p1, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, --0x1.25280c5dab3e1p1, 0x1p1, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, --0x1.23a6887e99b68p1, 0x1p1, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, --0x1.2223a4c563ecfp1, 0x1p1, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, --0x1.209f701c6ffb6p1, 0x1p1, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, --0x1.0f8cfcbd90af9p2, 0x1p2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, --0x1.0ec9a7f2a2a19p2, 0x1p2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, --0x1.0e05c1353f27bp2, 0x1p2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, --0x1.0d415012d8023p2, 0x1p2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, --0x1.0c7c5c1e34d3p2, 0x1p2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, --0x1.0bb6ecef285fap2, 0x1p2, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, --0x1.0af10a22459fep2, 0x1p2, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, --0x1.0a2abb58949f3p2, 0x1p2, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, --0x1.096408374730ap2, 0x1p2, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, --0x1.089cf8676d7acp2, 0x1p2, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, --0x1.03eac9cad52e6p3, 0x1p3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, --0x1.0386f0b8f3d86p3, 0x1p3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, --0x1.0322f4d785368p3, 0x1p3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, --0x1.02beda0153548p3, 0x1p3, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, --0x1.025aa41259c34p3, 0x1p3, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, --0x1.00fb2b73cfc1p4, 0x1p4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, --0x1.00c8fb2f886ecp4, 0x1p4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, --0x1.0096c32baca2bp4, 0x1p4, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, --0x1.003242abef46dp5, 0x1p5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, --0x1.000c90e8fe6f6p6, 0x1p6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, +0x1.b78b80c84e1eep-9, -0x1p-6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, +0x1.b7aa821726608p-8, -0x1p-5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, +-0x1.6c32baca2ae69p-8, -0x1p-5, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, +0x1.b82683bc89fbp-7, -0x1p-4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, +0x1.35230c0fbe402p-10, -0x1p-4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, +-0x1.6a9049670cfaep-7, -0x1p-4, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, +-0x1.7db402a6a9063p-6, -0x1p-4, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, +0x1.ba1650f592f5p-6, -0x1p-3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, +0x1.e43d1c309e958p-7, -0x1p-3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, +0x1.536352ad19e39p-9, -0x1p-3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, +-0x1.39f0cedaf576bp-7, -0x1p-3, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, +-0x1.64083747309d1p-6, -0x1p-3, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, +-0x1.155dac4a4f967p-5, -0x1p-3, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, +-0x1.78851122cff19p-5, -0x1p-3, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, +-0x1.db7677942fcc5p-5, -0x1p-3, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, +0x1.c1d1f0e5967d5p-5, -0x1p-2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, +0x1.5f57f693feebep-5, -0x1p-2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, +0x1.fa3ecac0d84e8p-6, -0x1p-2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, +0x1.36580d5d5e775p-6, -0x1p-2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, +0x1.cc0d09bd41caap-8, -0x1p-2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, +-0x1.3ee038dff6b8p-8, -0x1p-2, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, +-0x1.11d262b1f6776p-6, -0x1p-2, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, +-0x1.d3443f4cdb3ddp-6, -0x1p-2, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, +-0x1.4a03176acf82dp-5, -0x1p-2, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, +-0x1.aa086170c0a8ep-5, -0x1p-2, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, +-0x1.04d72505d9805p-4, -0x1p-2, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, +-0x1.3478909e39da9p-4, -0x1p-2, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, +-0x1.63e69d6ac7f74p-4, -0x1p-2, 0x1.e212104f686e5p-1, -0x1.014c76p-55, +-0x1.931f774fc9f18p-4, -0x1p-2, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, +-0x1.c2214c3e9167bp-4, -0x1p-2, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, +-0x1.f0ea4c477339cp-4, -0x1p-2, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, +0x1.e087565455a75p-4, -0x1p-1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, +0x1.b2356710db0a3p-4, -0x1p-1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, +0x1.8421af15c49d7p-4, -0x1p-1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, +0x1.564df524b00dap-4, -0x1p-1, 0x1.d17e7743e35dcp-1, -0x1.101da2p-58, +0x1.28bbfd87a8cffp-4, -0x1p-1, 0x1.ced7af43cc773p-1, -0x1.e7b6bap-58, +0x1.f6db13ff708cbp-5, -0x1p-1, 0x1.cc1f0f3fcfc5cp-1, 0x1.e57612p-56, +0x1.9cc8b3671dd0fp-5, -0x1p-1, 0x1.c954b213411f5p-1, -0x1.2fb76p-58, +0x1.4344523c8e3b5p-5, -0x1p-1, 0x1.c678b3488739bp-1, 0x1.d86cacp-57, +0x1.d4a2c7f909c4ep-6, -0x1p-1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, +0x1.23e6ad10872a7p-6, -0x1p-1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, +0x1.d16c901d95181p-8, -0x1p-1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, +-0x1.cfc874c3eb6d9p-9, -0x1p-1, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, +-0x1.ce1e648bffb66p-7, -0x1p-1, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, +-0x1.92e09abb131d4p-6, -0x1p-1, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, +-0x1.1eb3541b4b228p-5, -0x1p-1, 0x1.b090a581502p-1, -0x1.926da2p-55, +-0x1.734d63dedb48ap-5, -0x1p-1, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, +-0x1.c73b39ae68c87p-5, -0x1p-1, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, +-0x1.0d3ccc99f5ac6p-4, -0x1p-1, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, +-0x1.3682a66e896f5p-4, -0x1p-1, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, +-0x1.5f6d92fd79f5p-4, -0x1p-1, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, +-0x1.87fbfe70b81a7p-4, -0x1p-1, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, +-0x1.b02c58832cf96p-4, -0x1p-1, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, +-0x1.d7fd1490285cap-4, -0x1p-1, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, +-0x1.ff6ca9a2ab6a2p-4, -0x1p-1, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, +-0x1.133cc94247758p-3, -0x1p-1, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, +-0x1.269126e6c24e3p-3, -0x1p-1, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, +-0x1.39b2aef8f97a4p-3, -0x1p-1, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, +-0x1.4ca0a4a8d5657p-3, -0x1p-1, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, +-0x1.5f5a4d233b27fp-3, -0x1p-1, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, +-0x1.71deef9940631p-3, -0x1p-1, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, +-0x1.842dd5474b37bp-3, -0x1p-1, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, +-0x1.9646497c1e0f6p-3, -0x1p-1, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, +-0x1.a827999fcef32p-3, -0x1p-1, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, +-0x1.b9d1153aaa2bap-3, -0x1p-1, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, +-0x1.cb420dfbffe59p-3, -0x1p-1, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, +-0x1.dc79d7c0dc985p-3, -0x1p-1, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, +-0x1.ed77c89aabebbp-3, -0x1p-1, 0x1.57d69348cecap-1, -0x1.757208p-55, +-0x1.fe3b38d5c5dc2p-3, -0x1p-1, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, +0x1.f13c7d001a249p-3, -0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, +0x1.e0effc1174505p-3, -0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, +0x1.d0dfe53aba2fdp-3, -0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, +0x1.c10cd7041afccp-3, -0x1p0, 0x1.3fed9534556d4p-1, 0x1.369166p-55, +0x1.b1776d9b67013p-3, -0x1p0, 0x1.3affa292050b9p-1, 0x1.e3e25ep-56, +0x1.a22042ce0a2f9p-3, -0x1p0, 0x1.36058b10659f3p-1, -0x1.1fcb3ap-55, +0x1.9307ee031e2fdp-3, -0x1p0, 0x1.30ff7fce17035p-1, -0x1.efcc62p-57, +0x1.842f0435941afp-3, -0x1p0, 0x1.2bedb25faf3eap-1, -0x1.14981cp-58, +0x1.759617ee761f9p-3, -0x1p0, 0x1.26d054cdd12dfp-1, -0x1.5da742p-55, +0x1.673db93f41479p-3, -0x1p0, 0x1.21a799933eb59p-1, -0x1.3a7b16p-55, +0x1.592675bc57974p-3, -0x1p0, 0x1.1c73b39ae68c8p-1, 0x1.b25dd2p-55, +0x1.4b50d8778abbdp-3, -0x1p0, 0x1.1734d63dedb49p-1, -0x1.7eef2cp-55, +0x1.3dbd69fabf802p-3, -0x1p0, 0x1.11eb3541b4b23p-1, -0x1.ef23b6p-55, +0x1.306cb042aa3bap-3, -0x1p0, 0x1.0c9704d5d898fp-1, -0x1.8d3d7cp-55, +0x1.235f2eb9a470ap-3, -0x1p0, 0x1.073879922ffeep-1, -0x1.a5a014p-55, +0x1.169566329bcb7p-3, -0x1p0, 0x1.01cfc874c3eb7p-1, -0x1.34a35ep-56, +0x1.0a0fd4e41ab5ap-3, -0x1p0, 0x1.f8ba4dbf89abap-2, -0x1.2ec1fcp-60, +0x1.fb9decc6d55b8p-4, -0x1p0, 0x1.edc1952ef78d6p-2, -0x1.dd0f7cp-56, +0x1.e3a6873fa1279p-4, -0x1p0, 0x1.e2b5d3806f63bp-2, 0x1.e0d89p-58, +0x1.cc3a65bbc6327p-4, -0x1p0, 0x1.d79775b86e389p-2, 0x1.550ec8p-56, +0x1.b55a6f65f7058p-4, -0x1p0, 0x1.cc66e9931c45ep-2, 0x1.6850e4p-58, +0x1.9f07860181d1ep-4, -0x1p0, 0x1.c1249d8011ee7p-2, -0x1.813aaap-56, +0x1.894285e19c468p-4, -0x1p0, 0x1.b5d1009e15ccp-2, 0x1.5b362cp-57, +0x1.740c45e0e512p-4, -0x1p0, 0x1.aa6c82b6d3fcap-2, -0x1.d5f106p-56, +0x1.5f6597591b633p-4, -0x1p0, 0x1.9ef7943a8ed8ap-2, 0x1.6da812p-57, +0x1.4b4f461b0cbaap-4, -0x1p0, 0x1.9372a63bc93d7p-2, 0x1.684318p-57, +0x1.37ca1866b95cfp-4, -0x1p0, 0x1.87de2a6aea963p-2, -0x1.72cedcp-57, +0x1.24d6cee3afb2ap-4, -0x1p0, 0x1.7c3a9311dcce7p-2, 0x1.9a3f2p-62, +0x1.127624999ee1dp-4, -0x1p0, 0x1.7088530fa459fp-2, -0x1.44b19ep-56, +0x1.00a8cee920eabp-4, -0x1p0, 0x1.64c7ddd3f27c6p-2, 0x1.10d2b4p-58, +0x1.dedefb09791b4p-5, -0x1p0, 0x1.58f9a75ab1fddp-2, -0x1.efdc0cp-62, +0x1.bd95b4d43e819p-5, -0x1p0, 0x1.4d1e24278e76ap-2, 0x1.24172p-57, +0x1.9d7713b71eee1p-5, -0x1p0, 0x1.4135c94176601p-2, 0x1.0c97c4p-56, +0x1.7e8454b32ef34p-5, -0x1p0, 0x1.35410c2e18152p-2, -0x1.3cb002p-56, +0x1.60bea939d225ap-5, -0x1p0, 0x1.294062ed59f06p-2, -0x1.5d28dap-56, +0x1.44273720f48bcp-5, -0x1p0, 0x1.1d3443f4cdb3ep-2, -0x1.720d4p-57, +0x1.28bf1897b69ccp-5, -0x1p0, 0x1.111d262b1f677p-2, 0x1.824c2p-56, +0x1.0e875c1b8c3dap-5, -0x1p0, 0x1.04fb80e37fdaep-2, -0x1.412cdap-63, +0x1.eb0208db9e51bp-6, -0x1p0, 0x1.f19f97b215f1bp-3, -0x1.42deeep-57, +0x1.bb5a11138a4c9p-6, -0x1p0, 0x1.d934fe5454311p-3, 0x1.75b922p-57, +0x1.8e18a73634ee7p-6, -0x1p0, 0x1.c0b826a7e4f63p-3, -0x1.af1438p-62, +0x1.633f89e9a1a66p-6, -0x1p0, 0x1.a82a025b00451p-3, -0x1.87905ep-57, +0x1.3ad06011469fbp-6, -0x1p0, 0x1.8f8b83c69a60bp-3, -0x1.26d19ap-57, +0x1.14ccb8bdbf114p-6, -0x1p0, 0x1.76dd9de50bf31p-3, 0x1.1d5eeep-57, +0x1.e26c163ad15b3p-7, -0x1p0, 0x1.5e214448b3fc6p-3, 0x1.531ff6p-57, +0x1.a01b6cdbd995ep-7, -0x1p0, 0x1.45576b1293e5ap-3, -0x1.285a24p-58, +0x1.62aa03dd6ba58p-7, -0x1p0, 0x1.2c8106e8e613ap-3, 0x1.13000ap-58, +0x1.2a1a39a8a2fb7p-7, -0x1p0, 0x1.139f0cedaf577p-3, -0x1.523434p-57, +0x1.ecdc78f30165cp-8, -0x1p0, 0x1.f564e56a9730ep-4, 0x1.a27046p-59, +0x1.8f501492cc296p-8, -0x1p0, 0x1.c3785c79ec2d5p-4, -0x1.4f39dep-61, +0x1.3b92e176d6d31p-8, -0x1p0, 0x1.917a6bc29b42cp-4, -0x1.e2718cp-60, +0x1.e350342a4f6e6p-9, -0x1p0, 0x1.5f6d00a9aa419p-4, -0x1.f4022cp-59, +0x1.63252fe77c5ebp-9, -0x1p0, 0x1.2d52092ce19f6p-4, -0x1.9a088ap-59, +0x1.ed534e31ca57fp-10, -0x1p0, 0x1.f656e79f820ep-5, -0x1.2e1ebep-61, +0x1.3bc390d250439p-10, -0x1p0, 0x1.91f65f10dd814p-5, -0x1.912bdp-61, +0x1.6344004228d8bp-11, -0x1p0, 0x1.2d865759455cdp-5, 0x1.686f64p-61, +0x1.3bcfbd9979a27p-12, -0x1p0, 0x1.92155f7a3667ep-6, -0x1.b1d63p-64, +0x1.3bd2c8da49511p-14, -0x1p0, 0x1.921d1fcdec784p-7, 0x1.9878eap-61, +0.0, -0x1p0, 0.0, 0.0, +0x1.3bd2c8da49511p-14, -0x1p0, -0x1.921d1fcdec784p-7, -0x1.9878eap-61, +0x1.3bcfbd9979a27p-12, -0x1p0, -0x1.92155f7a3667ep-6, 0x1.b1d63p-64, +0x1.6344004228d8bp-11, -0x1p0, -0x1.2d865759455cdp-5, -0x1.686f64p-61, +0x1.3bc390d250439p-10, -0x1p0, -0x1.91f65f10dd814p-5, 0x1.912bdp-61, +0x1.ed534e31ca57fp-10, -0x1p0, -0x1.f656e79f820ep-5, 0x1.2e1ebep-61, +0x1.63252fe77c5ebp-9, -0x1p0, -0x1.2d52092ce19f6p-4, 0x1.9a088ap-59, +0x1.e350342a4f6e6p-9, -0x1p0, -0x1.5f6d00a9aa419p-4, 0x1.f4022cp-59, +0x1.3b92e176d6d31p-8, -0x1p0, -0x1.917a6bc29b42cp-4, 0x1.e2718cp-60, +0x1.8f501492cc296p-8, -0x1p0, -0x1.c3785c79ec2d5p-4, 0x1.4f39dep-61, +0x1.ecdc78f30165cp-8, -0x1p0, -0x1.f564e56a9730ep-4, -0x1.a27046p-59, +0x1.2a1a39a8a2fb7p-7, -0x1p0, -0x1.139f0cedaf577p-3, 0x1.523434p-57, +0x1.62aa03dd6ba58p-7, -0x1p0, -0x1.2c8106e8e613ap-3, -0x1.13000ap-58, +0x1.a01b6cdbd995ep-7, -0x1p0, -0x1.45576b1293e5ap-3, 0x1.285a24p-58, +0x1.e26c163ad15b3p-7, -0x1p0, -0x1.5e214448b3fc6p-3, -0x1.531ff6p-57, +0x1.14ccb8bdbf114p-6, -0x1p0, -0x1.76dd9de50bf31p-3, -0x1.1d5eeep-57, +0x1.3ad06011469fbp-6, -0x1p0, -0x1.8f8b83c69a60bp-3, 0x1.26d19ap-57, +0x1.633f89e9a1a66p-6, -0x1p0, -0x1.a82a025b00451p-3, 0x1.87905ep-57, +0x1.8e18a73634ee7p-6, -0x1p0, -0x1.c0b826a7e4f63p-3, 0x1.af1438p-62, +0x1.bb5a11138a4c9p-6, -0x1p0, -0x1.d934fe5454311p-3, -0x1.75b922p-57, +0x1.eb0208db9e51bp-6, -0x1p0, -0x1.f19f97b215f1bp-3, 0x1.42deeep-57, +0x1.0e875c1b8c3dap-5, -0x1p0, -0x1.04fb80e37fdaep-2, 0x1.412cdap-63, +0x1.28bf1897b69ccp-5, -0x1p0, -0x1.111d262b1f677p-2, -0x1.824c2p-56, +0x1.44273720f48bcp-5, -0x1p0, -0x1.1d3443f4cdb3ep-2, 0x1.720d4p-57, +0x1.60bea939d225ap-5, -0x1p0, -0x1.294062ed59f06p-2, 0x1.5d28dap-56, +0x1.7e8454b32ef34p-5, -0x1p0, -0x1.35410c2e18152p-2, 0x1.3cb002p-56, +0x1.9d7713b71eee1p-5, -0x1p0, -0x1.4135c94176601p-2, -0x1.0c97c4p-56, +0x1.bd95b4d43e819p-5, -0x1p0, -0x1.4d1e24278e76ap-2, -0x1.24172p-57, +0x1.dedefb09791b4p-5, -0x1p0, -0x1.58f9a75ab1fddp-2, 0x1.efdc0cp-62, +0x1.00a8cee920eabp-4, -0x1p0, -0x1.64c7ddd3f27c6p-2, -0x1.10d2b4p-58, +0x1.127624999ee1dp-4, -0x1p0, -0x1.7088530fa459fp-2, 0x1.44b19ep-56, +0x1.24d6cee3afb2ap-4, -0x1p0, -0x1.7c3a9311dcce7p-2, -0x1.9a3f2p-62, +0x1.37ca1866b95cfp-4, -0x1p0, -0x1.87de2a6aea963p-2, 0x1.72cedcp-57, +0x1.4b4f461b0cbaap-4, -0x1p0, -0x1.9372a63bc93d7p-2, -0x1.684318p-57, +0x1.5f6597591b633p-4, -0x1p0, -0x1.9ef7943a8ed8ap-2, -0x1.6da812p-57, +0x1.740c45e0e512p-4, -0x1p0, -0x1.aa6c82b6d3fcap-2, 0x1.d5f106p-56, +0x1.894285e19c468p-4, -0x1p0, -0x1.b5d1009e15ccp-2, -0x1.5b362cp-57, +0x1.9f07860181d1ep-4, -0x1p0, -0x1.c1249d8011ee7p-2, 0x1.813aaap-56, +0x1.b55a6f65f7058p-4, -0x1p0, -0x1.cc66e9931c45ep-2, -0x1.6850e4p-58, +0x1.cc3a65bbc6327p-4, -0x1p0, -0x1.d79775b86e389p-2, -0x1.550ec8p-56, +0x1.e3a6873fa1279p-4, -0x1p0, -0x1.e2b5d3806f63bp-2, -0x1.e0d89p-58, +0x1.fb9decc6d55b8p-4, -0x1p0, -0x1.edc1952ef78d6p-2, 0x1.dd0f7cp-56, +0x1.0a0fd4e41ab5ap-3, -0x1p0, -0x1.f8ba4dbf89abap-2, 0x1.2ec1fcp-60, +0x1.169566329bcb7p-3, -0x1p0, -0x1.01cfc874c3eb7p-1, 0x1.34a35ep-56, +0x1.235f2eb9a470ap-3, -0x1p0, -0x1.073879922ffeep-1, 0x1.a5a014p-55, +0x1.306cb042aa3bap-3, -0x1p0, -0x1.0c9704d5d898fp-1, 0x1.8d3d7cp-55, +0x1.3dbd69fabf802p-3, -0x1p0, -0x1.11eb3541b4b23p-1, 0x1.ef23b6p-55, +0x1.4b50d8778abbdp-3, -0x1p0, -0x1.1734d63dedb49p-1, 0x1.7eef2cp-55, +0x1.592675bc57974p-3, -0x1p0, -0x1.1c73b39ae68c8p-1, -0x1.b25dd2p-55, +0x1.673db93f41479p-3, -0x1p0, -0x1.21a799933eb59p-1, 0x1.3a7b16p-55, +0x1.759617ee761f9p-3, -0x1p0, -0x1.26d054cdd12dfp-1, 0x1.5da742p-55, +0x1.842f0435941afp-3, -0x1p0, -0x1.2bedb25faf3eap-1, 0x1.14981cp-58, +0x1.9307ee031e2fdp-3, -0x1p0, -0x1.30ff7fce17035p-1, 0x1.efcc62p-57, +0x1.a22042ce0a2f9p-3, -0x1p0, -0x1.36058b10659f3p-1, 0x1.1fcb3ap-55, +0x1.b1776d9b67013p-3, -0x1p0, -0x1.3affa292050b9p-1, -0x1.e3e25ep-56, +0x1.c10cd7041afccp-3, -0x1p0, -0x1.3fed9534556d4p-1, -0x1.369166p-55, +0x1.d0dfe53aba2fdp-3, -0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, +0x1.e0effc1174505p-3, -0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, +0x1.f13c7d001a249p-3, -0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, +-0x1.fe3b38d5c5dc2p-3, -0x1p-1, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, +-0x1.ed77c89aabebbp-3, -0x1p-1, -0x1.57d69348cecap-1, 0x1.757208p-55, +-0x1.dc79d7c0dc985p-3, -0x1p-1, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, +-0x1.cb420dfbffe59p-3, -0x1p-1, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, +-0x1.b9d1153aaa2bap-3, -0x1p-1, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, +-0x1.a827999fcef32p-3, -0x1p-1, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, +-0x1.9646497c1e0f6p-3, -0x1p-1, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, +-0x1.842dd5474b37bp-3, -0x1p-1, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, +-0x1.71deef9940631p-3, -0x1p-1, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, +-0x1.5f5a4d233b27fp-3, -0x1p-1, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, +-0x1.4ca0a4a8d5657p-3, -0x1p-1, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, +-0x1.39b2aef8f97a4p-3, -0x1p-1, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, +-0x1.269126e6c24e3p-3, -0x1p-1, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, +-0x1.133cc94247758p-3, -0x1p-1, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, +-0x1.ff6ca9a2ab6a2p-4, -0x1p-1, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, +-0x1.d7fd1490285cap-4, -0x1p-1, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, +-0x1.b02c58832cf96p-4, -0x1p-1, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, +-0x1.87fbfe70b81a7p-4, -0x1p-1, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, +-0x1.5f6d92fd79f5p-4, -0x1p-1, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, +-0x1.3682a66e896f5p-4, -0x1p-1, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, +-0x1.0d3ccc99f5ac6p-4, -0x1p-1, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, +-0x1.c73b39ae68c87p-5, -0x1p-1, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, +-0x1.734d63dedb48ap-5, -0x1p-1, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, +-0x1.1eb3541b4b228p-5, -0x1p-1, -0x1.b090a581502p-1, 0x1.926da2p-55, +-0x1.92e09abb131d4p-6, -0x1p-1, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, +-0x1.ce1e648bffb66p-7, -0x1p-1, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, +-0x1.cfc874c3eb6d9p-9, -0x1p-1, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, +0x1.d16c901d95181p-8, -0x1p-1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, +0x1.23e6ad10872a7p-6, -0x1p-1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, +0x1.d4a2c7f909c4ep-6, -0x1p-1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, +0x1.4344523c8e3b5p-5, -0x1p-1, -0x1.c678b3488739bp-1, -0x1.d86cacp-57, +0x1.9cc8b3671dd0fp-5, -0x1p-1, -0x1.c954b213411f5p-1, 0x1.2fb76p-58, +0x1.f6db13ff708cbp-5, -0x1p-1, -0x1.cc1f0f3fcfc5cp-1, -0x1.e57612p-56, +0x1.28bbfd87a8cffp-4, -0x1p-1, -0x1.ced7af43cc773p-1, 0x1.e7b6bap-58, +0x1.564df524b00dap-4, -0x1p-1, -0x1.d17e7743e35dcp-1, 0x1.101da2p-58, +0x1.8421af15c49d7p-4, -0x1p-1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, +0x1.b2356710db0a3p-4, -0x1p-1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, +0x1.e087565455a75p-4, -0x1p-1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, +-0x1.f0ea4c477339cp-4, -0x1p-2, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, +-0x1.c2214c3e9167bp-4, -0x1p-2, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, +-0x1.931f774fc9f18p-4, -0x1p-2, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, +-0x1.63e69d6ac7f74p-4, -0x1p-2, -0x1.e212104f686e5p-1, 0x1.014c76p-55, +-0x1.3478909e39da9p-4, -0x1p-2, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, +-0x1.04d72505d9805p-4, -0x1p-2, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, +-0x1.aa086170c0a8ep-5, -0x1p-2, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, +-0x1.4a03176acf82dp-5, -0x1p-2, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, +-0x1.d3443f4cdb3ddp-6, -0x1p-2, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, +-0x1.11d262b1f6776p-6, -0x1p-2, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, +-0x1.3ee038dff6b8p-8, -0x1p-2, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, +0x1.cc0d09bd41caap-8, -0x1p-2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, +0x1.36580d5d5e775p-6, -0x1p-2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, +0x1.fa3ecac0d84e8p-6, -0x1p-2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, +0x1.5f57f693feebep-5, -0x1p-2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, +0x1.c1d1f0e5967d5p-5, -0x1p-2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, +-0x1.db7677942fcc5p-5, -0x1p-3, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, +-0x1.78851122cff19p-5, -0x1p-3, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, +-0x1.155dac4a4f967p-5, -0x1p-3, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, +-0x1.64083747309d1p-6, -0x1p-3, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, +-0x1.39f0cedaf576bp-7, -0x1p-3, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, +0x1.536352ad19e39p-9, -0x1p-3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, +0x1.e43d1c309e958p-7, -0x1p-3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, +0x1.ba1650f592f5p-6, -0x1p-3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, +-0x1.7db402a6a9063p-6, -0x1p-4, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, +-0x1.6a9049670cfaep-7, -0x1p-4, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, +0x1.35230c0fbe402p-10, -0x1p-4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, +0x1.b82683bc89fbp-7, -0x1p-4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, +-0x1.6c32baca2ae69p-8, -0x1p-5, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, +0x1.b7aa821726608p-8, -0x1p-5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, +0x1.b78b80c84e1eep-9, -0x1p-6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, 0.0, 0.0, -0x1p0, 0.0, -0x1.b78b80c84e1eep-9, 0x1p-6, -0x1.fff62169b92dbp-1, -0x1.5dda3cp-55, -0x1.b7aa821726608p-8, 0x1p-5, -0x1.ffd886084cd0dp-1, 0x1.1354d4p-55, --0x1.a4f3514d75466p-6, 0x1p-4, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, +0x1.6c32baca2ae69p-8, 0x1p-5, -0x1.ffa72effef75dp-1, 0x1.8b4cdcp-55, -0x1.b82683bc89fbp-7, 0x1p-4, -0x1.ff621e3796d7ep-1, 0x1.c57bc2p-57, -0x1.35230c0fbe402p-10, 0x1p-4, -0x1.ff095658e71adp-1, -0x1.01a8cep-55, --0x1.a55beda63cc14p-5, 0x1p-3, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, --0x1.4125feacab7cep-5, 0x1p-3, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, +0x1.6a9049670cfaep-7, 0x1p-4, -0x1.fe9cdad01883ap-1, -0x1.521eccp-57, +0x1.7db402a6a9063p-6, 0x1p-4, -0x1.fe1cafcbd5b09p-1, -0x1.a23e32p-57, -0x1.ba1650f592f5p-6, 0x1p-3, -0x1.fd88da3d12526p-1, 0x1.87df62p-55, -0x1.e43d1c309e958p-7, 0x1p-3, -0x1.fce15fd6da67bp-1, 0x1.5dd6f8p-56, -0x1.536352ad19e39p-9, 0x1p-3, -0x1.fc26470e19fd3p-1, -0x1.1ec866p-55, --0x1.d8c1e624a1513p-4, 0x1p-2, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, --0x1.a6fdf22e33d8cp-4, 0x1p-2, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, --0x1.755129dad834cp-4, 0x1p-2, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, --0x1.43bd776e98073p-4, 0x1p-2, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, --0x1.1244c435e819dp-4, 0x1p-2, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, +0x1.39f0cedaf576bp-7, 0x1p-3, -0x1.fb5797195d741p-1, -0x1.1bfac6p-56, +0x1.64083747309d1p-6, 0x1p-3, -0x1.fa7557f08a517p-1, 0x1.7a0a8cp-55, +0x1.155dac4a4f967p-5, 0x1p-3, -0x1.f97f924c9099bp-1, 0x1.e2ae0ep-55, +0x1.78851122cff19p-5, 0x1p-3, -0x1.f8764fa714ba9p-1, -0x1.ab2566p-56, +0x1.db7677942fcc5p-5, 0x1p-3, -0x1.f7599a3a12077p-1, -0x1.84f31cp-55, -0x1.c1d1f0e5967d5p-5, 0x1p-2, -0x1.f6297cff75cbp-1, -0x1.562172p-56, -0x1.5f57f693feebep-5, 0x1p-2, -0x1.f4e603b0b2f2dp-1, 0x1.8ee01ep-56, -0x1.fa3ecac0d84e8p-6, 0x1p-2, -0x1.f38f3ac64e589p-1, 0x1.d7bafap-56, -0x1.36580d5d5e775p-6, 0x1p-2, -0x1.f2252f7763adap-1, 0x1.20cb8p-55, -0x1.cc0d09bd41caap-8, 0x1p-2, -0x1.f0a7efb9230d7p-1, -0x1.52c7acp-56, --0x1.f608fe39004a4p-3, 0x1p-1, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, --0x1.ddc5b3a9c1311p-3, 0x1p-1, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, --0x1.c597781664984p-3, 0x1p-1, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, --0x1.ad7f3a254c1f5p-3, 0x1p-1, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, --0x1.957de7a3cfd5dp-3, 0x1p-1, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, --0x1.7d946d7d133fdp-3, 0x1p-1, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, --0x1.65c3b7b0e312cp-3, 0x1p-1, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, --0x1.4e0cb14a9c046p-3, 0x1p-1, -0x1.e212104f686e5p-1, 0x1.014c76p-55, --0x1.367044581b074p-3, 0x1p-1, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, --0x1.1eef59e0b74c3p-3, 0x1p-1, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, --0x1.078ad9dc46632p-3, 0x1p-1, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, +0x1.3ee038dff6b8p-8, 0x1p-2, -0x1.ef178a3e473c2p-1, -0x1.6310a6p-55, +0x1.11d262b1f6776p-6, 0x1p-2, -0x1.ed740e7684963p-1, -0x1.e82c78p-56, +0x1.d3443f4cdb3ddp-6, 0x1p-2, -0x1.ebbd8c8df0b74p-1, -0x1.c6c8c6p-56, +0x1.4a03176acf82dp-5, 0x1p-2, -0x1.e9f4156c62ddap-1, -0x1.760b1ep-55, +0x1.aa086170c0a8ep-5, 0x1p-2, -0x1.e817bab4cd10dp-1, 0x1.d0afe6p-56, +0x1.04d72505d9805p-4, 0x1p-2, -0x1.e6288ec48e112p-1, 0x1.16b56ep-57, +0x1.3478909e39da9p-4, 0x1p-2, -0x1.e426a4b2bc17ep-1, -0x1.a87388p-55, +0x1.63e69d6ac7f74p-4, 0x1p-2, -0x1.e212104f686e5p-1, 0x1.014c76p-55, +0x1.931f774fc9f18p-4, 0x1p-2, -0x1.dfeae622dbe2bp-1, 0x1.514ea8p-55, +0x1.c2214c3e9167bp-4, 0x1p-2, -0x1.ddb13b6ccc23cp-1, -0x1.83c37cp-55, +0x1.f0ea4c477339cp-4, 0x1p-2, -0x1.db6526238a09bp-1, 0x1.adee7ep-56, -0x1.e087565455a75p-4, 0x1p-1, -0x1.d906bcf328d46p-1, -0x1.457e6p-56, -0x1.b2356710db0a3p-4, 0x1p-1, -0x1.d696173c9e68bp-1, 0x1.e8c61cp-56, -0x1.8421af15c49d7p-4, 0x1p-1, -0x1.d4134d14dc93ap-1, 0x1.4ef528p-55, @@ -1343,33 +1343,33 @@ template <> inline constexpr double kCosApproxTable[] = -0x1.d4a2c7f909c4ep-6, 0x1p-1, -0x1.c38b2f180bdb1p-1, 0x1.6e0b16p-56, -0x1.23e6ad10872a7p-6, 0x1p-1, -0x1.c08c426725549p-1, -0x1.b157fcp-58, -0x1.d16c901d95181p-8, 0x1p-1, -0x1.bd7c0ac6f952ap-1, 0x1.825a72p-55, --0x1.fc606f1678292p-2, 0x1p0, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, --0x1.f18f0cdba0025p-2, 0x1p0, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, --0x1.e6d1f6544ece3p-2, 0x1p0, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, --0x1.dc29957c969bbp-2, 0x1p0, -0x1.b090a581502p-1, 0x1.926da2p-55, --0x1.d19653842496fp-2, 0x1p0, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, --0x1.c71898ca32e6fp-2, 0x1p0, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, --0x1.bcb0ccd98294fp-2, 0x1p0, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, --0x1.b25f56645da43p-2, 0x1p0, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, --0x1.a8249b40a182cp-2, 0x1p0, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, --0x1.9e010063d1f96p-2, 0x1p0, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, --0x1.93f4e9df34c1bp-2, 0x1p0, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, --0x1.8a00badbf5e8ep-2, 0x1p0, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, --0x1.8024d59755257p-2, 0x1p0, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, --0x1.76619b5edc454p-2, 0x1p0, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, --0x1.6cb76c8c9ed8fp-2, 0x1p0, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, --0x1.6326a8838342ep-2, 0x1p0, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, --0x1.59afadab954d4p-2, 0x1p0, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, --0x1.5052d96e626c1p-2, 0x1p0, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, --0x1.471088335fce7p-2, 0x1p0, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, --0x1.3de9155c5a642p-2, 0x1p0, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, --0x1.34dcdb41f0f85p-2, 0x1p0, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, --0x1.2bec333018867p-2, 0x1p0, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, --0x1.23177562aaea3p-2, 0x1p0, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, --0x1.1a5ef902000d3p-2, 0x1p0, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, --0x1.11c3141f91b3ep-2, 0x1p0, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, --0x1.09441bb2aa0a2p-2, 0x1p0, -0x1.57d69348cecap-1, 0x1.757208p-55, --0x1.00e263951d11fp-2, 0x1p0, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, +0x1.cfc874c3eb6d9p-9, 0x1p-1, -0x1.ba5aa673590d2p-1, -0x1.7ea4e2p-55, +0x1.ce1e648bffb66p-7, 0x1p-1, -0x1.b728345196e3ep-1, 0x1.bc69f2p-55, +0x1.92e09abb131d4p-6, 0x1p-1, -0x1.b3e4d3ef55712p-1, 0x1.eb6b8ap-55, +0x1.1eb3541b4b228p-5, 0x1p-1, -0x1.b090a581502p-1, 0x1.926da2p-55, +0x1.734d63dedb48ap-5, 0x1p-1, -0x1.ad2bc9e21d511p-1, 0x1.47fbep-55, +0x1.c73b39ae68c87p-5, 0x1p-1, -0x1.a9b66290ea1a3p-1, -0x1.9f630ep-60, +0x1.0d3ccc99f5ac6p-4, 0x1p-1, -0x1.a63091b02fae2p-1, 0x1.e91114p-56, +0x1.3682a66e896f5p-4, 0x1p-1, -0x1.a29a7a0462782p-1, 0x1.128bbp-56, +0x1.5f6d92fd79f5p-4, 0x1p-1, -0x1.9ef43ef29af94p-1, -0x1.b1dfcap-56, +0x1.87fbfe70b81a7p-4, 0x1p-1, -0x1.9b3e047f38741p-1, 0x1.30ee28p-55, +0x1.b02c58832cf96p-4, 0x1p-1, -0x1.9777ef4c7d742p-1, 0x1.15479ap-55, +0x1.d7fd1490285cap-4, 0x1p-1, -0x1.93a22499263fbp-1, -0x1.3d419ap-55, +0x1.ff6ca9a2ab6a2p-4, 0x1p-1, -0x1.8fbcca3ef940dp-1, 0x1.6dfa98p-57, +0x1.133cc94247758p-3, 0x1p-1, -0x1.8bc806b151741p-1, 0x1.2c5e12p-55, +0x1.269126e6c24e3p-3, 0x1p-1, -0x1.87c400fba2ebfp-1, 0x1.2dabcp-55, +0x1.39b2aef8f97a4p-3, 0x1p-1, -0x1.83b0e0bff976ep-1, 0x1.6f420ep-56, +0x1.4ca0a4a8d5657p-3, 0x1p-1, -0x1.7f8ece3571771p-1, 0x1.9c8d8cp-55, +0x1.5f5a4d233b27fp-3, 0x1p-1, -0x1.7b5df226aafafp-1, 0x1.0f537ap-56, +0x1.71deef9940631p-3, 0x1p-1, -0x1.771e75f037261p-1, -0x1.5cfce8p-56, +0x1.842dd5474b37bp-3, 0x1p-1, -0x1.72d0837efff96p-1, -0x1.0d4efp-55, +0x1.9646497c1e0f6p-3, 0x1p-1, -0x1.6e74454eaa8afp-1, 0x1.dbc03cp-55, +0x1.a827999fcef32p-3, 0x1p-1, -0x1.6a09e667f3bcdp-1, 0x1.bdd34p-55, +0x1.b9d1153aaa2bap-3, 0x1p-1, -0x1.6591925f0783dp-1, -0x1.c3d64ep-55, +0x1.cb420dfbffe59p-3, 0x1p-1, -0x1.610b7551d2cdfp-1, 0x1.251b34p-56, +0x1.dc79d7c0dc985p-3, 0x1p-1, -0x1.5c77bbe65018cp-1, -0x1.069ea8p-55, +0x1.ed77c89aabebbp-3, 0x1p-1, -0x1.57d69348cecap-1, 0x1.757208p-55, +0x1.fe3b38d5c5dc2p-3, 0x1p-1, -0x1.5328292a35596p-1, 0x1.a12eb8p-56, -0x1.f13c7d001a249p-3, 0x1p0, -0x1.4e6cabbe3e5e9p-1, -0x1.3c293ep-57, -0x1.e0effc1174505p-3, 0x1p0, -0x1.49a449b9b0939p-1, 0x1.27ee16p-55, -0x1.d0dfe53aba2fdp-3, 0x1p0, -0x1.44cf325091dd6p-1, -0x1.8076a2p-57, @@ -1487,33 +1487,33 @@ template <> inline constexpr double kCosApproxTable[] = -0x1.d0dfe53aba2fdp-3, 0x1p0, 0x1.44cf325091dd6p-1, 0x1.8076a2p-57, -0x1.e0effc1174505p-3, 0x1p0, 0x1.49a449b9b0939p-1, -0x1.27ee16p-55, -0x1.f13c7d001a249p-3, 0x1p0, 0x1.4e6cabbe3e5e9p-1, 0x1.3c293ep-57, --0x1.00e263951d11fp-2, 0x1p0, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, --0x1.09441bb2aa0a2p-2, 0x1p0, 0x1.57d69348cecap-1, -0x1.757208p-55, --0x1.11c3141f91b3ep-2, 0x1p0, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, --0x1.1a5ef902000d3p-2, 0x1p0, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, --0x1.23177562aaea3p-2, 0x1p0, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, --0x1.2bec333018867p-2, 0x1p0, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, --0x1.34dcdb41f0f85p-2, 0x1p0, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, --0x1.3de9155c5a642p-2, 0x1p0, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, --0x1.471088335fce7p-2, 0x1p0, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, --0x1.5052d96e626c1p-2, 0x1p0, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, --0x1.59afadab954d4p-2, 0x1p0, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, --0x1.6326a8838342ep-2, 0x1p0, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, --0x1.6cb76c8c9ed8fp-2, 0x1p0, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, --0x1.76619b5edc454p-2, 0x1p0, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, --0x1.8024d59755257p-2, 0x1p0, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, --0x1.8a00badbf5e8ep-2, 0x1p0, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, --0x1.93f4e9df34c1bp-2, 0x1p0, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, --0x1.9e010063d1f96p-2, 0x1p0, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, --0x1.a8249b40a182cp-2, 0x1p0, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, --0x1.b25f56645da43p-2, 0x1p0, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, --0x1.bcb0ccd98294fp-2, 0x1p0, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, --0x1.c71898ca32e6fp-2, 0x1p0, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, --0x1.d19653842496fp-2, 0x1p0, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, --0x1.dc29957c969bbp-2, 0x1p0, 0x1.b090a581502p-1, -0x1.926da2p-55, --0x1.e6d1f6544ece3p-2, 0x1p0, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, --0x1.f18f0cdba0025p-2, 0x1p0, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, --0x1.fc606f1678292p-2, 0x1p0, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, +0x1.fe3b38d5c5dc2p-3, 0x1p-1, 0x1.5328292a35596p-1, -0x1.a12eb8p-56, +0x1.ed77c89aabebbp-3, 0x1p-1, 0x1.57d69348cecap-1, -0x1.757208p-55, +0x1.dc79d7c0dc985p-3, 0x1p-1, 0x1.5c77bbe65018cp-1, 0x1.069ea8p-55, +0x1.cb420dfbffe59p-3, 0x1p-1, 0x1.610b7551d2cdfp-1, -0x1.251b34p-56, +0x1.b9d1153aaa2bap-3, 0x1p-1, 0x1.6591925f0783dp-1, 0x1.c3d64ep-55, +0x1.a827999fcef32p-3, 0x1p-1, 0x1.6a09e667f3bcdp-1, -0x1.bdd34p-55, +0x1.9646497c1e0f6p-3, 0x1p-1, 0x1.6e74454eaa8afp-1, -0x1.dbc03cp-55, +0x1.842dd5474b37bp-3, 0x1p-1, 0x1.72d0837efff96p-1, 0x1.0d4efp-55, +0x1.71deef9940631p-3, 0x1p-1, 0x1.771e75f037261p-1, 0x1.5cfce8p-56, +0x1.5f5a4d233b27fp-3, 0x1p-1, 0x1.7b5df226aafafp-1, -0x1.0f537ap-56, +0x1.4ca0a4a8d5657p-3, 0x1p-1, 0x1.7f8ece3571771p-1, -0x1.9c8d8cp-55, +0x1.39b2aef8f97a4p-3, 0x1p-1, 0x1.83b0e0bff976ep-1, -0x1.6f420ep-56, +0x1.269126e6c24e3p-3, 0x1p-1, 0x1.87c400fba2ebfp-1, -0x1.2dabcp-55, +0x1.133cc94247758p-3, 0x1p-1, 0x1.8bc806b151741p-1, -0x1.2c5e12p-55, +0x1.ff6ca9a2ab6a2p-4, 0x1p-1, 0x1.8fbcca3ef940dp-1, -0x1.6dfa98p-57, +0x1.d7fd1490285cap-4, 0x1p-1, 0x1.93a22499263fbp-1, 0x1.3d419ap-55, +0x1.b02c58832cf96p-4, 0x1p-1, 0x1.9777ef4c7d742p-1, -0x1.15479ap-55, +0x1.87fbfe70b81a7p-4, 0x1p-1, 0x1.9b3e047f38741p-1, -0x1.30ee28p-55, +0x1.5f6d92fd79f5p-4, 0x1p-1, 0x1.9ef43ef29af94p-1, 0x1.b1dfcap-56, +0x1.3682a66e896f5p-4, 0x1p-1, 0x1.a29a7a0462782p-1, -0x1.128bbp-56, +0x1.0d3ccc99f5ac6p-4, 0x1p-1, 0x1.a63091b02fae2p-1, -0x1.e91114p-56, +0x1.c73b39ae68c87p-5, 0x1p-1, 0x1.a9b66290ea1a3p-1, 0x1.9f630ep-60, +0x1.734d63dedb48ap-5, 0x1p-1, 0x1.ad2bc9e21d511p-1, -0x1.47fbep-55, +0x1.1eb3541b4b228p-5, 0x1p-1, 0x1.b090a581502p-1, -0x1.926da2p-55, +0x1.92e09abb131d4p-6, 0x1p-1, 0x1.b3e4d3ef55712p-1, -0x1.eb6b8ap-55, +0x1.ce1e648bffb66p-7, 0x1p-1, 0x1.b728345196e3ep-1, -0x1.bc69f2p-55, +0x1.cfc874c3eb6d9p-9, 0x1p-1, 0x1.ba5aa673590d2p-1, 0x1.7ea4e2p-55, -0x1.d16c901d95181p-8, 0x1p-1, 0x1.bd7c0ac6f952ap-1, -0x1.825a72p-55, -0x1.23e6ad10872a7p-6, 0x1p-1, 0x1.c08c426725549p-1, 0x1.b157fcp-58, -0x1.d4a2c7f909c4ep-6, 0x1p-1, 0x1.c38b2f180bdb1p-1, -0x1.6e0b16p-56, @@ -1525,35 +1525,35 @@ template <> inline constexpr double kCosApproxTable[] = -0x1.8421af15c49d7p-4, 0x1p-1, 0x1.d4134d14dc93ap-1, -0x1.4ef528p-55, -0x1.b2356710db0a3p-4, 0x1p-1, 0x1.d696173c9e68bp-1, -0x1.e8c61cp-56, -0x1.e087565455a75p-4, 0x1p-1, 0x1.d906bcf328d46p-1, 0x1.457e6p-56, --0x1.078ad9dc46632p-3, 0x1p-1, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, --0x1.1eef59e0b74c3p-3, 0x1p-1, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, --0x1.367044581b074p-3, 0x1p-1, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, --0x1.4e0cb14a9c046p-3, 0x1p-1, 0x1.e212104f686e5p-1, -0x1.014c76p-55, --0x1.65c3b7b0e312cp-3, 0x1p-1, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, --0x1.7d946d7d133fdp-3, 0x1p-1, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, --0x1.957de7a3cfd5dp-3, 0x1p-1, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, --0x1.ad7f3a254c1f5p-3, 0x1p-1, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, --0x1.c597781664984p-3, 0x1p-1, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, --0x1.ddc5b3a9c1311p-3, 0x1p-1, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, --0x1.f608fe39004a4p-3, 0x1p-1, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, +0x1.f0ea4c477339cp-4, 0x1p-2, 0x1.db6526238a09bp-1, -0x1.adee7ep-56, +0x1.c2214c3e9167bp-4, 0x1p-2, 0x1.ddb13b6ccc23cp-1, 0x1.83c37cp-55, +0x1.931f774fc9f18p-4, 0x1p-2, 0x1.dfeae622dbe2bp-1, -0x1.514ea8p-55, +0x1.63e69d6ac7f74p-4, 0x1p-2, 0x1.e212104f686e5p-1, -0x1.014c76p-55, +0x1.3478909e39da9p-4, 0x1p-2, 0x1.e426a4b2bc17ep-1, 0x1.a87388p-55, +0x1.04d72505d9805p-4, 0x1p-2, 0x1.e6288ec48e112p-1, -0x1.16b56ep-57, +0x1.aa086170c0a8ep-5, 0x1p-2, 0x1.e817bab4cd10dp-1, -0x1.d0afe6p-56, +0x1.4a03176acf82dp-5, 0x1p-2, 0x1.e9f4156c62ddap-1, 0x1.760b1ep-55, +0x1.d3443f4cdb3ddp-6, 0x1p-2, 0x1.ebbd8c8df0b74p-1, 0x1.c6c8c6p-56, +0x1.11d262b1f6776p-6, 0x1p-2, 0x1.ed740e7684963p-1, 0x1.e82c78p-56, +0x1.3ee038dff6b8p-8, 0x1p-2, 0x1.ef178a3e473c2p-1, 0x1.6310a6p-55, -0x1.cc0d09bd41caap-8, 0x1p-2, 0x1.f0a7efb9230d7p-1, 0x1.52c7acp-56, -0x1.36580d5d5e775p-6, 0x1p-2, 0x1.f2252f7763adap-1, -0x1.20cb8p-55, -0x1.fa3ecac0d84e8p-6, 0x1p-2, 0x1.f38f3ac64e589p-1, -0x1.d7bafap-56, -0x1.5f57f693feebep-5, 0x1p-2, 0x1.f4e603b0b2f2dp-1, -0x1.8ee01ep-56, -0x1.c1d1f0e5967d5p-5, 0x1p-2, 0x1.f6297cff75cbp-1, 0x1.562172p-56, --0x1.1244c435e819dp-4, 0x1p-2, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, --0x1.43bd776e98073p-4, 0x1p-2, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, --0x1.755129dad834cp-4, 0x1p-2, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, --0x1.a6fdf22e33d8cp-4, 0x1p-2, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, --0x1.d8c1e624a1513p-4, 0x1p-2, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, +0x1.db7677942fcc5p-5, 0x1p-3, 0x1.f7599a3a12077p-1, 0x1.84f31cp-55, +0x1.78851122cff19p-5, 0x1p-3, 0x1.f8764fa714ba9p-1, 0x1.ab2566p-56, +0x1.155dac4a4f967p-5, 0x1p-3, 0x1.f97f924c9099bp-1, -0x1.e2ae0ep-55, +0x1.64083747309d1p-6, 0x1p-3, 0x1.fa7557f08a517p-1, -0x1.7a0a8cp-55, +0x1.39f0cedaf576bp-7, 0x1p-3, 0x1.fb5797195d741p-1, 0x1.1bfac6p-56, -0x1.536352ad19e39p-9, 0x1p-3, 0x1.fc26470e19fd3p-1, 0x1.1ec866p-55, -0x1.e43d1c309e958p-7, 0x1p-3, 0x1.fce15fd6da67bp-1, -0x1.5dd6f8p-56, -0x1.ba1650f592f5p-6, 0x1p-3, 0x1.fd88da3d12526p-1, -0x1.87df62p-55, --0x1.4125feacab7cep-5, 0x1p-3, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, --0x1.a55beda63cc14p-5, 0x1p-3, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, +0x1.7db402a6a9063p-6, 0x1p-4, 0x1.fe1cafcbd5b09p-1, 0x1.a23e32p-57, +0x1.6a9049670cfaep-7, 0x1p-4, 0x1.fe9cdad01883ap-1, 0x1.521eccp-57, -0x1.35230c0fbe402p-10, 0x1p-4, 0x1.ff095658e71adp-1, 0x1.01a8cep-55, -0x1.b82683bc89fbp-7, 0x1p-4, 0x1.ff621e3796d7ep-1, -0x1.c57bc2p-57, --0x1.a4f3514d75466p-6, 0x1p-4, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, +0x1.6c32baca2ae69p-8, 0x1p-5, 0x1.ffa72effef75dp-1, -0x1.8b4cdcp-55, -0x1.b7aa821726608p-8, 0x1p-5, 0x1.ffd886084cd0dp-1, -0x1.1354d4p-55, -0x1.b78b80c84e1eep-9, 0x1p-6, 0x1.fff62169b92dbp-1, 0x1.5dda3cp-55, }; diff --git a/npsr/trig/data/constants.h b/npsr/trig/data/constants.h index 358290f..89e9337 100644 --- a/npsr/trig/data/constants.h +++ b/npsr/trig/data/constants.h @@ -30,7 +30,7 @@ template <> inline constexpr double kPiMul2[] = { template inline constexpr double kPiDiv16Prec29[] = { 0x1.921fb54442d18p-3, 0x1.1a62633p-57, 0x1.45c06e0e68948p-89, }; template <> inline constexpr double kPiDiv16Prec29[] = { -0x1.921fb54p-3, 0x1.a626331p-61, 0x1.1701b839a252p-91, 0x1.10b461p-33, +0x1.921fb54p-3, 0x1.10b461p-33, 0x1.a626331p-61, 0x1.1701b839a252p-91, }; template inline constexpr char kInvPi = '_'; diff --git a/npsr/trig/extended-inl.h b/npsr/trig/extended-inl.h index cdce91a..725aa72 100644 --- a/npsr/trig/extended-inl.h +++ b/npsr/trig/extended-inl.h @@ -41,7 +41,7 @@ NPSR_INTRIN V Extended(V x) { // providing ~96-bit (F32) or ~192-bit (F64) precision for (4/π) × 2^exp VU u_exponent = GetBiasedExponent(x); VI i_table_idx = - BitCast(di, Add(ShiftLeft<1>(u_exponent), u_exponent)); // × 2 + 1 = × 3 + BitCast(di, Add(ShiftLeft<1>(u_exponent), u_exponent)); // 2·e + e = 3·e (3 words/entry) // Gather three parts of (4/π) × 2^exp from precomputed table // Generated by npsr/trig/data/reduction.h.sol @@ -212,7 +212,7 @@ NPSR_INTRIN V Extended(V x) { // PHASE 7: Convert to Radians // ============================================================================= - // Multiply by π with error compensation (Cody-Waite multiplication) + // Multiply by 2π with error compensation (Cody-Waite multiplication) constexpr auto kPiMul2 = data::kPiMul2; const V pi2_hi = Set(d, kPiMul2[0]); const V pi2_med = Set(d, kPiMul2[1]); @@ -233,6 +233,16 @@ NPSR_INTRIN V Extended(V x) { r_lo = Combine(d, DemoteTo(dh, r_lo_w0), DemoteTo(dh, r_lo_w1)); r_w0 = BitCast(d, r0); r_w1 = BitCast(d, r1); + } else if constexpr (!kNativeFMA) { + // F64 without FMA: `MulSub(pi2_hi, n, r)` sees only the already-rounded + // product and yields exactly zero, dropping the 0.5-ulp(r) rounding + // error of r. Near k*pi/2 the result is ~deriv*r, so that loss is worth + // 0.5 ulp of the final result. Recover it with the exact head product: + // head + rest == pi2_hi*n, and head - r is exact by Sterbenz. + V head, rest; + SplitMul(pi2_hi, n, head, rest); + r_lo = Add(Sub(head, r), rest); + r_lo = Add(Mul(pi2_med, n), r_lo); } else { r_lo = MulSub(pi2_hi, n, r); r_lo = MulAdd(pi2_med, n, r_lo); @@ -272,22 +282,33 @@ NPSR_INTRIN V Extended(V x) { // ============================================================================= // PHASE 10: Final Assembly // ============================================================================= - V res_lo = NegMulAdd(func_hi, r, deriv); - res_lo = MulAdd(res_lo, r_lo, func_lo); V res_hi_lo = MulAdd(sigma, r, func_hi); - V res_hi = MulAdd(deriv_hi, r, res_hi_lo); - + V res_hi, deriv_hi_r_cor; + if constexpr (!kNativeFMA && !kIsSingle) { + // Same FMA-idiom substitution as in Phase 7. res_hi = func_hi + sigma*r + + // deriv_hi*r must stay the faithfully-rounded head of the (res_hi, res_lo) + // pair: sigma is a signed power of two (see approx.h), so sigma*r is exact + // under a plain Mul and needs no capture, but deriv_hi*r would round under + // a decayed MulAdd and corrupt the head. SplitMul recovers that product + // rounding; the addition rounding is captured just below by Sub. + V dr, dr_rest; + SplitMul(deriv_hi, r, dr, dr_rest); + res_hi = Add(res_hi_lo, dr); + V dr_hi = Sub(res_hi, res_hi_lo); + deriv_hi_r_cor = Add(Sub(dr, dr_hi), dr_rest); + } else { + res_hi = MulAdd(deriv_hi, r, res_hi_lo); + deriv_hi_r_cor = MulAdd(deriv_hi, r, Sub(res_hi_lo, res_hi)); + } V sum_cor = MulAdd(sigma, r, Sub(func_hi, res_hi_lo)); - V deriv_hi_r_cor = MulAdd(deriv_hi, r, Sub(res_hi_lo, res_hi)); - deriv_hi_r_cor = Add(deriv_hi_r_cor, sum_cor); - res_lo = Add(res_lo, deriv_hi_r_cor); + V res_lo0 = Add(deriv_hi_r_cor, sum_cor); // Polynomial corrections V s2 = Set(d, kIsSingle ? 0x1.1110b8p-7f : 0x1.1110fabb3551cp-7); V s1 = Set(d, kIsSingle ? -0x1.555556p-3f : -0x1.5555555554448p-3); V sin_poly = MulAdd(s2, r2, s1); - sin_poly = Mul(sin_poly, r); sin_poly = Mul(sin_poly, r2); + sin_poly = Mul(sin_poly, r); V c1 = Set(d, kIsSingle ? 0x1.5554f8p-5f : 0x1.5555555554ccfp-5); const V neg_half = Set(d, static_cast(-0.5)); @@ -301,8 +322,22 @@ NPSR_INTRIN V Extended(V x) { } cos_poly = Mul(cos_poly, r2); - res_lo = MulAdd(sin_poly, deriv, res_lo); - res_lo = MulAdd(cos_poly, func_hi, res_lo); + V corr = NegMulAdd(func_hi, r, deriv); + V res_lo_rlo = MulAdd(corr, r_lo, func_lo); + // SVML pairs the correction terms differently per precision: F32 scales the + // sin term by corr (first-order cos at the reduced point) and accumulates + // the cos term onto the r_lo chain; F64 scales the sin term by deriv and + // accumulates the cos term onto it, adding the r_lo chain last. + V res_lo; + if constexpr (kIsSingle) { + V res_lo_sin = MulAdd(corr, sin_poly, res_lo0); + V res_lo_cos = MulAdd(func_hi, cos_poly, res_lo_rlo); + res_lo = Add(res_lo_cos, res_lo_sin); + } else { + V res_lo_sin = MulAdd(deriv, sin_poly, res_lo0); + V res_lo_cos = MulAdd(func_hi, cos_poly, res_lo_sin); + res_lo = Add(res_lo_cos, res_lo_rlo); + } return Add(res_hi, res_lo); } // NOLINTNEXTLINE(google-readability-namespace-comments) diff --git a/npsr/trig/high-inl.h b/npsr/trig/high-inl.h index 68cdd9f..cb34f86 100644 --- a/npsr/trig/high-inl.h +++ b/npsr/trig/high-inl.h @@ -81,7 +81,9 @@ NPSR_INTRIN V High(V x) { VW poly_up = WideCal(PromoteUpperTo(dw, n), PromoteUpperTo(dw, x_abs)); V poly = Combine(d, DemoteTo(dh, poly_up), DemoteTo(dh, poly_lo)); - // Extract octant sign information from quotient and flip the sign bit + // sin(r) was reduced around n·π, and sin/cos flip sign every π, so the sign + // is the parity of n, carried in bit 0 of n_biased. Shift it into the sign + // position and XOR to flip the result on odd n. poly = Xor(poly, BitCast(d, ShiftLeft(BitCast(du, n_biased)))); if constexpr (OP == Operation::kCos) { @@ -95,15 +97,16 @@ NPSR_INTRIN V High(V x) { /** * This function computes sin(x) or cos(x) for |x| < 2^24 using the Cody-Waite * reduction algorithm combined with table lookup and polynomial approximation, - * achieves < 1 ULP error for |x| < 2^24. + * achieves <= 1 ULP error for |x| < 2^24 (worst case reaches, but does not + * exceed, 1 ULP). * * Algorithm Overview: * 1. Range Reduction: Reduces input x to r where |r| < π/16 * - Computes n = round(x * 16/π) and r = x - n*π/16 - * - Uses multi-precision arithmetic (3 parts of π/16) for accuracy + * - Uses multi-word π/16 (3 words with FMA, 4 without) for accuracy * * 2. Table Lookup: Retrieves precomputed sin(n*π/16) and cos(n*π/16) - * - Includes high and low precision parts for cos values + * - Stores high and low parts for both sin and cos (lows packed 32:32) * * 3. Polynomial Approximation: Computes sin(r) and cos(r) * - sin(r) ≈ r * (1 + r²*P_sin(r²)) where P_sin is a minimax polynomial @@ -142,17 +145,20 @@ NPSR_INTRIN V High(V x) { // Note: cos_lo and sin_lo are packed together (32 bits each) to save memory. // cos_lo can be used as-is since it's in the upper bits, sin_lo needs // extraction. The precision loss is negligible for the final result. - // see data/lut-inl.h.sol for the table generation code. + // see data/kpi16-inl.h.sol for the table generation code. V sin_lo = BitCast(d, ShiftLeft<32>(BitCast(du, cos_lo))); // Step 3: Multi-precision computation of remainder r // r = x - n*(π/16)_high + // Both splits apply their parts in descending order through the same DAG. + // Without native FMA the non-tail parts carry 27/25/29 bits. The two + // leading products n*part are exact for |n| < 85445660 = ceil(2^24*16/π) + // (split and bound co-tuned so n*part0 just fits in 53 bits); part2 and + // the tail are rounded products, but their product rounding — like each + // subtraction's — is captured exactly by the idioms below, so the decayed + // mul+sub sequence loses nothing against the fused path. constexpr auto kPiDiv16Prec29 = data::kPiDiv16Prec29; V r_hi = NegMulAdd(n, Set(d, kPiDiv16Prec29[0]), x); - if constexpr (!kNativeFMA) { - // For F64, we need to handle the low precision part separately - r_hi = NegMulAdd(n, Set(d, kPiDiv16Prec29[3]), r_hi); - } const V pi16_med = Set(d, kPiDiv16Prec29[1]); const V pi16_lo = Set(d, kPiDiv16Prec29[2]); V r_med = NegMulAdd(n, pi16_med, r_hi); @@ -162,21 +168,31 @@ NPSR_INTRIN V High(V x) { V term = NegMulAdd(pi16_med, n, Sub(r_hi, r_med)); V r_lo = MulAdd(pi16_lo, n, Sub(r, r_med)); r_lo = Sub(term, r_lo); + if constexpr (!kNativeFMA) { + // Fourth piece (48 bits at 2^-91). Reuse the one rounded product in both + // the subtraction and its error capture so (r, r_lo) stays an exact + // double-double of the reduction even when r is tiny near k*π/2. + const V tail_prod = Mul(n, Set(d, kPiDiv16Prec29[3])); + const V r_prev = r; + r = Sub(r_prev, tail_prod); + r_lo = Add(r_lo, Sub(Sub(r_prev, r), tail_prod)); + } // Step 4: Polynomial approximation V r2 = Mul(r, r); - // Minimax polynomial for (sin(r)/r - 1) - // sin(r)/r = 1 - r²/3! + r⁴/5! - r⁶/7! + ... - // This polynomial computes the terms after 1 + // Minimax polynomial for (sin(r)/r - 1)/r² == (sin(r) - r)/r³ + // The Taylor form sin(r)/r - 1 = -r²/3! + r⁴/5! - ... fixes the leading + // coefficient at -1/3! = -1/6 (higher terms are minimax-adjusted); the + // stripped r² factor is reapplied downstream via MulAdd(r2, ...). V sin_poly = Set(d, 0x1.71c97d22a73ddp-19); sin_poly = MulAdd(sin_poly, r2, Set(d, -0x1.a01a00ed01edep-13)); sin_poly = MulAdd(sin_poly, r2, Set(d, 0x1.111111110e99dp-7)); sin_poly = MulAdd(sin_poly, r2, Set(d, -0x1.5555555555555p-3)); // Minimax polynomial for (cos(r) - 1)/r² - // cos(r) = 1 - r²/2! + r⁴/4! - r⁶/6! + ... - // This polynomial computes (cos(r) - 1)/r² + // From cos(r) = 1 - r²/2! + r⁴/4! - ..., the leading term is ≈ -1/2! = -1/2 + // (minimax-adjusted, so not exactly -1/2). V cos_poly = Set(d, 0x1.9ffd7d9d749bcp-16); cos_poly = MulAdd(cos_poly, r2, Set(d, -0x1.6c16c075d73f8p-10)); cos_poly = MulAdd(cos_poly, r2, Set(d, 0x1.555555554e8d6p-5)); @@ -192,7 +208,7 @@ NPSR_INTRIN V High(V x) { // // Where for small r (|r| < π/16): // cos(r) ≈ 1 + r²*cos_poly - // sin(r) ≈ r*(1 + sin_poly) ≈ r + r*sin_poly + // sin(r) ≈ r + r³*sin_poly // // SVML's efficient linear approximation: // sin(a+r) ≈ sin(a) + cos(a)*r + polynomial_corrections @@ -201,7 +217,7 @@ NPSR_INTRIN V High(V x) { // This is mathematically equivalent but computationally more efficient: // - Uses first-order linear terms directly: Sh + Ch*R, Ch - R*Sh // - Applies higher-order polynomial corrections separately - // - Fewer multiplications and better numerical stability + // - Better accuracy near the result's zeros (dominant term stays leading) // // Implementation follows SVML structure: // sin(n*π/16 + r) = sin_table + cos_table*remainder (+ corrections) @@ -210,13 +226,23 @@ NPSR_INTRIN V High(V x) { if constexpr (OP == Operation::kCos) { // Cosine reconstruction: cos_table - sin_table*remainder // Equivalent to: cos(a)*cos(r) - sin(a)*sin(r) but more efficient - V res_hi = NegMulAdd(r, sin_hi, cos_hi); // cos_hi - r*sin_hi - - // This captures the precision lost in the main computation - V r_sin_hi = Sub(cos_hi, res_hi); // Extract high part of multiplication - - // Handles rounding errors and adds sin_low contribution - V r_sin_low = MulSub(r, sin_hi, r_sin_hi); // Compute multiplication error + V res_hi, r_sin_low; + if constexpr (kNativeFMA) { + res_hi = NegMulAdd(r, sin_hi, cos_hi); // cos_hi - r*sin_hi + + // This captures the precision lost in the main computation + V r_sin_hi = Sub(cos_hi, res_hi); // Extract high part of multiplication + + // Handles rounding errors via the FMA product-error idiom + r_sin_low = MulSub(r, sin_hi, r_sin_hi); // Compute multiplication error + } else { + // Exact-by-construction head product replaces the FMA idiom + V r_sin, r_sin_rest; + SplitMul(r, sin_hi, r_sin, r_sin_rest); + res_hi = Sub(cos_hi, r_sin); + V r_sin_hi = Sub(cos_hi, res_hi); + r_sin_low = Add(Sub(r_sin, r_sin_hi), r_sin_rest); + } V sin_low_corr = MulAdd(r, sin_lo, r_sin_low); // Add sin_low term // This is used to apply the low-precision remainder correction @@ -245,13 +271,23 @@ NPSR_INTRIN V High(V x) { } else { // Sine reconstruction: sin_table + cos_table*remainder // Equivalent to: sin(a)*cos(r) + cos(a)*sin(r) but more efficient - V res_hi = MulAdd(r, cos_hi, sin_hi); // sin_hi + r*cos_hi - - // This captures the precision lost in the main computation - V r_cos_hi = Sub(res_hi, sin_hi); // Extract high part of multiplication - - // Handles rounding errors and adds cos_low contribution - V r_cos_low = MulSub(r, cos_hi, r_cos_hi); // Compute multiplication error + V res_hi, r_cos_low; + if constexpr (kNativeFMA) { + res_hi = MulAdd(r, cos_hi, sin_hi); // sin_hi + r*cos_hi + + // This captures the precision lost in the main computation + V r_cos_hi = Sub(res_hi, sin_hi); // Extract high part of multiplication + + // Handles rounding errors via the FMA product-error idiom + r_cos_low = MulSub(r, cos_hi, r_cos_hi); // Compute multiplication error + } else { + // Exact-by-construction head product replaces the FMA idiom + V r_cos, r_cos_rest; + SplitMul(r, cos_hi, r_cos, r_cos_rest); + res_hi = Add(sin_hi, r_cos); + V r_cos_hi = Sub(res_hi, sin_hi); + r_cos_low = Add(Sub(r_cos, r_cos_hi), r_cos_rest); + } V cos_low_corr = MulAdd(r, cos_lo, r_cos_low); // Add cos_low term // Intermediate term for r_low correction: cos_table - sin_table*r @@ -282,8 +318,11 @@ NPSR_INTRIN V High(V x) { // This unified approach works because: // - sin(x + π) = -sin(x) // - cos(x + π) = -cos(x) + // TODO(seiko2plus): x_sign_int and the Xor are dead code (always zero) and + // should be removed. The sign is bit 4 of n_biased alone; sin(-0.0) is + // handled in trig/inl.h under kSpecialCases. VU x_sign_int = ShiftLeft<63>(BitCast(du, x)); - // XOR with quadrant info in n_biased + // Fold in the π-period parity (bit 4 of n_biased); x_sign_int is 0 (dead). VU combined = Xor(BitCast(du, n_biased), ShiftLeft<4>(x_sign_int)); // Extract final sign VU sign = ShiftRight<4>(combined); diff --git a/npsr/trig/inl.h b/npsr/trig/inl.h index 2e22bd7..0c596eb 100644 --- a/npsr/trig/inl.h +++ b/npsr/trig/inl.h @@ -3,9 +3,9 @@ // configurable precision, special case handling, and algorithm selection // // The implementation automatically selects between three algorithms: -// 1. Low precision: ~1-4 ULP error, fastest +// 1. Low precision: ~2-3 ULP error, fastest // 2. High precision: ~1 ULP error, moderate speed -// 3. Extended precision: Exact for |x| > 2^24 (float) or 2^53 (double) +// 3. Extended precision: Payne-Hanek reduction for huge |x| (> 10^4 float / > 2^24 double) #if defined(NPSR_TRIG_INL_H_) == defined(HWY_TARGET_TOGGLE) // NOLINT #ifdef NPSR_TRIG_INL_H_ @@ -46,18 +46,19 @@ namespace npsr::HWY_NAMESPACE::trig { * * Thresholds for extended precision: * - Float: |x| > 10,000 (empirically chosen for accuracy) - * - Double: |x| > 2^24 (16,777,216 - where 53-bit mantissa loses precision) + * - Double: |x| > 2^24 (16,777,216 - beyond this the range reduction's + * multi-word n*π products stop being exactly representable) */ template -NPSR_INTRIN V Trig(Prec &prec, V x) { +NPSR_INTRIN V Trig(Prec& prec, V x) { using namespace hwy::HWY_NAMESPACE; constexpr bool kIsSingle = std::is_same_v, float>; const DFromV d; V ret; // Step 1: Select base algorithm based on accuracy requirements if constexpr (Prec::kLowAccuracy) { - // Low precision: Cody-Waite reduction with degree-9 polynomial - // Error: ~2 ULP and 3~ for non-fma + // Low precision: Cody-Waite reduction (degree-9 poly for f32, degree-15 for f64) + // Error: ~2 ULP (~3 ULP for f64 cosine) ret = Low(x); } else { // High precision: π/16 reduction with table lookup + polynomial @@ -78,11 +79,21 @@ NPSR_INTRIN V Trig(Prec &prec, V x) { // For |x| > threshold, standard algorithms lose precision due to // catastrophic cancellation in x - n*π reduction if constexpr (Prec::kLargeArgument) { - // Thresholds chosen based on when standard reduction loses accuracy: - // - Float: 10,000 is conservative but ensures < 1 ULP error - // - Double: 2^24 is where mantissa can't represent x and x-2π distinctly + // Thresholds chosen based on when the per-path range reduction breaks + // down (its n*π products stop being exactly representable), not on + // mantissa resolution: + // - Float: 10,000 is conservative but keeps the widened path < 1 ULP. + // - Double: beyond 2^24 the reduction's n*π products stop being exact + // (for the π/16 high-precision path the quotient |round(x*16/π)| would + // exceed round(2^24*16/π)), so x - n*π stops being faithful. + // - Double low-accuracy cosine: stays on its fast path + // until trunc(|x|/π) > 8388606; this is the largest double below that + // boundary (~8388607π) + constexpr bool kIsLowCos = + Prec::kLowAccuracy && OP == trig::Operation::kCos; + constexpr double kLargeF64 = kIsLowCos ? 0x1.921fb2200366fp+24 : 16777216.0; auto has_large_arg = - And(Gt(Abs(x), Set(d, kIsSingle ? 10000.0f : 16777216.0)), is_finite); + And(Gt(Abs(x), Set(d, kIsSingle ? 10000.0f : kLargeF64)), is_finite); // Extended precision is expensive, only use when necessary if (HWY_UNLIKELY(!AllFalse(d, has_large_arg))) { @@ -121,7 +132,7 @@ namespace npsr::HWY_NAMESPACE { * ``` */ template -NPSR_INTRIN V Sin(Prec &prec, V x) { +NPSR_INTRIN V Sin(Prec& prec, V x) { return trig::Trig(prec, x); } @@ -143,7 +154,7 @@ NPSR_INTRIN V Sin(Prec &prec, V x) { * ``` */ template -NPSR_INTRIN V Cos(Prec &prec, V x) { +NPSR_INTRIN V Cos(Prec& prec, V x) { return trig::Trig(prec, x); } diff --git a/npsr/trig/low-inl.h b/npsr/trig/low-inl.h index 6da18ae..fde3724 100644 --- a/npsr/trig/low-inl.h +++ b/npsr/trig/low-inl.h @@ -28,20 +28,12 @@ NPSR_INTRIN V PolyLow(V r, V r2) { poly = MulAdd(r2, poly, c5); poly = MulAdd(r2, poly, c3); if constexpr (OP == Operation::kCos) { - // Although this path handles cosine, we have already transformed the - // input using the identity: cos(x) = sin(x + π/2) This means we're no - // longer directly evaluating a cosine Taylor series; instead, we evaluate - // the sine approximation polynomial at (x + π/2). - // - // The sine approximation has the general form: - // sin(r) ≈ r + r³ · P(r²) - // - // So, we compute: - // r³ = r · r² - // sin(r) ≈ r + r³ · poly - // - // This formulation preserves accuracy by computing the highest order - // terms last, which benefits from FMA to reduce rounding error. + // cos was mapped to sin via cos(x) = sin(x + π/2) during reduction, so + // this evaluates the same sine polynomial sin(r) ≈ r + r³ · P(r²), not a + // cosine series. Reconstruct r + r³ · poly by forming r³ first (r3 = r²·r), + // then a single FMA — this is the order SVML uses for both sin and cos + // (R = X + X·X²·(...)). The sin branch below builds the same value with a + // different but mathematically equivalent association (poly·r², then ×r). V r3 = Mul(r2, r); poly = MulAdd(r3, poly, r); } else { @@ -54,15 +46,21 @@ NPSR_INTRIN V PolyLow(V r, V r2) { template )> NPSR_INTRIN V PolyLow(V r, V r2) { using namespace hn; - const DFromV d; - const V c15 = Set(d, -0x1.9f1517e9f65fp-41); - const V c13 = Set(d, 0x1.60e6bee01d83ep-33); - const V c11 = Set(d, -0x1.ae6355aaa4a53p-26); - const V c9 = Set(d, 0x1.71de3806add1ap-19); - const V c7 = Set(d, -0x1.a01a019a659ddp-13); - const V c5 = Set(d, 0x1.111111110a573p-7); - const V c3 = Set(d, -0x1.55555555554a8p-3); + // Both sin and cos evaluate sin(r) on r ∈ [−π/2, π/2]; cos merely reduces + // around (N + 0.5)·π instead of N·π, which does not change the fitted + // interval, so both want the same sin(r) minimax polynomial. The two sets + // differ from each other only at the last-ULP level (trailing-bit rounding), + // and each matches its Intel SVML counterpart (__svml_sin_d_la / + // __svml_cos_d_la) byte-for-byte. + constexpr bool kCos = OP == Operation::kCos; + const V c15 = Set(d, kCos ? -0x1.9f0d60811aac8p-41 : -0x1.9f1517e9f65fp-41); + const V c13 = Set(d, kCos ? 0x1.60e6857a2f220p-33 : 0x1.60e6bee01d83ep-33); + const V c11 = Set(d, kCos ? -0x1.ae63546002231p-26 : -0x1.ae6355aaa4a53p-26); + const V c9 = Set(d, kCos ? 0x1.71de38030fea0p-19 : 0x1.71de3806add1ap-19); + const V c7 = Set(d, kCos ? -0x1.a01a019a5b87bp-13 : -0x1.a01a019a659ddp-13); + const V c5 = Set(d, kCos ? 0x1.111111110a4a8p-7 : 0x1.111111110a573p-7); + const V c3 = Set(d, kCos ? -0x1.55555555554a7p-3 : -0x1.55555555554a8p-3); V poly = MulAdd(c15, r2, c13); poly = MulAdd(r2, poly, c11); poly = MulAdd(r2, poly, c9); @@ -110,31 +108,41 @@ NPSR_INTRIN V Low(V x) { // N' = N - 0.5 n = Sub(n, Set(d, static_cast(0.5))); } - // Use Cody-Waite method with triple-precision PI + // Cody-Waite reduction with multi-word π (3 words with FMA, 4 without) constexpr auto kPi = data::kPi; - V r = NegMulAdd(n, Set(d, kPi[0]), x_abs); r = NegMulAdd(n, Set(d, kPi[1]), r); V r_lo = NegMulAdd(n, Set(d, kPi[2]), r); + if constexpr (!kNativeFMA) { - if (!kIsSingle) { - r = r_lo; - } r_lo = NegMulAdd(n, Set(d, kPi[3]), r_lo); } - - if constexpr (kIsSingle) { + if constexpr (kIsSingle || !kNativeFMA) { + // The polynomial must consume the fully reduced value. The partial r has + // not yet subtracted the last π word(s), so it differs from the true + // remainder by ~n·(remaining π tail) — far too coarse to feed r² and the + // correction terms, so drop down to the fully reduced r_lo. r = r_lo; } + V r2 = Mul(r, r); V poly = PolyLow(r, r2); if constexpr (!kIsSingle) { + // f64 reconstruction. Non-FMA set r = r_lo above, so r2_corr = r³ and + // this is the standard r + r³·poly = sin(r). With FMA, r is the 2-word + // partial and r_lo the 3-word reduced value, so the result is + // r_lo·(1 + r²·poly) = r_lo·sin(r)/r ≈ sin(r_lo): sin(r)/r varies slowly + // and r ≈ r_lo (they differ by exactly n·π[2], ~2^-83), so the + // reconstruction error is sub-ULP and the residual is just the poly fit. V r2_corr = Mul(r2, r_lo); poly = MulAdd(r2_corr, poly, r_lo); } - // Extract octant sign information from quotient and flip the sign bit + // sin(r) was reduced around n·π, and sin/cos flip sign every π, so the sign + // is the parity of n. That parity lives in bit 0 of n_biased (the integer n + // sits in the low mantissa bits), so shifting it into the sign position and + // XOR-ing flips the result on odd n. poly = Xor(poly, BitCast(d, ShiftLeft(BitCast(du, n_biased)))); if constexpr (OP == Operation::kCos) {