diff --git a/libc/src/__support/FPUtil/dyadic_float.h b/libc/src/__support/FPUtil/dyadic_float.h index 439741d2c497c0..5449f5561d5696 100644 --- a/libc/src/__support/FPUtil/dyadic_float.h +++ b/libc/src/__support/FPUtil/dyadic_float.h @@ -49,8 +49,8 @@ template struct DyadicFloat { normalize(); } - constexpr DyadicFloat(bool s, int e, MantissaType m) - : sign(s ? Sign::NEG : Sign::POS), exponent(e), mantissa(m) { + constexpr DyadicFloat(Sign s, int e, MantissaType m) + : sign(s), exponent(e), mantissa(m) { normalize(); } diff --git a/libc/src/__support/str_to_float.h b/libc/src/__support/str_to_float.h index dd7dfc730ea2cc..8aeb3d2cea03dd 100644 --- a/libc/src/__support/str_to_float.h +++ b/libc/src/__support/str_to_float.h @@ -510,6 +510,7 @@ clinger_fast_path(ExpandedFloat init_num, RoundDirection round = RoundDirection::Nearest) { using FPBits = typename fputil::FPBits; using StorageType = typename FPBits::StorageType; + using Sign = fputil::Sign; StorageType mantissa = init_num.mantissa; int32_t exp10 = init_num.exponent; @@ -522,7 +523,7 @@ clinger_fast_path(ExpandedFloat init_num, T float_mantissa; if constexpr (cpp::is_same_v>) { float_mantissa = static_cast(fputil::DyadicFloat<128>( - false, 0, + Sign::POS, 0, fputil::DyadicFloat<128>::MantissaType( {uint64_t(mantissa), uint64_t(mantissa >> 64)}))); } else { diff --git a/libc/src/math/generic/exp.cpp b/libc/src/math/generic/exp.cpp index a7d1890ee4f9ac..a1b4d9a64f9690 100644 --- a/libc/src/math/generic/exp.cpp +++ b/libc/src/math/generic/exp.cpp @@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE { using fputil::DoubleDouble; using fputil::TripleDouble; using Float128 = typename fputil::DyadicFloat<128>; +using Sign = fputil::Sign; // log2(e) constexpr double LOG2_E = 0x1.71547652b82fep+0; @@ -99,14 +100,18 @@ Float128 poly_approx_f128(const Float128 &dx) { using MType = typename Float128::MantissaType; constexpr Float128 COEFFS_128[]{ - {false, -127, MType({0, 0x8000000000000000})}, // 1.0 - {false, -127, MType({0, 0x8000000000000000})}, // 1.0 - {false, -128, MType({0, 0x8000000000000000})}, // 0.5 - {false, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6 - {false, -132, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24 - {false, -134, MType({0x8888888888888889, 0x8888888888888888})}, // 1/120 - {false, -137, MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720 - {false, -140, MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040 + {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0 + {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0 + {Sign::POS, -128, MType({0, 0x8000000000000000})}, // 0.5 + {Sign::POS, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6 + {Sign::POS, -132, + MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24 + {Sign::POS, -134, + MType({0x8888888888888889, 0x8888888888888888})}, // 1/120 + {Sign::POS, -137, + MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720 + {Sign::POS, -140, + MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040 }; Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2], diff --git a/libc/src/math/generic/exp10.cpp b/libc/src/math/generic/exp10.cpp index b05d6ea7f48668..e441f2c0edc7dd 100644 --- a/libc/src/math/generic/exp10.cpp +++ b/libc/src/math/generic/exp10.cpp @@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE { using fputil::DoubleDouble; using fputil::TripleDouble; using Float128 = typename fputil::DyadicFloat<128>; +using Sign = fputil::Sign; // log2(10) constexpr double LOG2_10 = 0x1.a934f0979a371p+1; @@ -101,14 +102,14 @@ Float128 poly_approx_f128(const Float128 &dx) { using MType = typename Float128::MantissaType; constexpr Float128 COEFFS_128[]{ - {false, -127, MType({0, 0x8000000000000000})}, // 1.0 - {false, -126, MType({0xea56d62b82d30a2d, 0x935d8dddaaa8ac16})}, - {false, -126, MType({0x80a99ce75f4d5bdb, 0xa9a92639e753443a})}, - {false, -126, MType({0x6a4f9d7dbf6c9635, 0x82382c8ef1652304})}, - {false, -124, MType({0x345787019216c7af, 0x12bd7609fd98c44c})}, - {false, -127, MType({0xcc41ed7e0d27aee5, 0x450a7ff47535d889})}, - {false, -130, MType({0x8326bb91a6e7601d, 0xd3f6b844702d636b})}, - {false, -130, MType({0xfa7b46df314112a9, 0x45b937f0d05bb1cd})}, + {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0 + {Sign::POS, -126, MType({0xea56d62b82d30a2d, 0x935d8dddaaa8ac16})}, + {Sign::POS, -126, MType({0x80a99ce75f4d5bdb, 0xa9a92639e753443a})}, + {Sign::POS, -126, MType({0x6a4f9d7dbf6c9635, 0x82382c8ef1652304})}, + {Sign::POS, -124, MType({0x345787019216c7af, 0x12bd7609fd98c44c})}, + {Sign::POS, -127, MType({0xcc41ed7e0d27aee5, 0x450a7ff47535d889})}, + {Sign::POS, -130, MType({0x8326bb91a6e7601d, 0xd3f6b844702d636b})}, + {Sign::POS, -130, MType({0xfa7b46df314112a9, 0x45b937f0d05bb1cd})}, }; Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2], diff --git a/libc/src/math/generic/exp2.cpp b/libc/src/math/generic/exp2.cpp index ac34ba35232cb4..70bc4870806a9c 100644 --- a/libc/src/math/generic/exp2.cpp +++ b/libc/src/math/generic/exp2.cpp @@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE { using fputil::DoubleDouble; using fputil::TripleDouble; using Float128 = typename fputil::DyadicFloat<128>; +using Sign = fputil::Sign; // Error bounds: // Errors when using double precision. @@ -90,14 +91,14 @@ Float128 poly_approx_f128(const Float128 &dx) { using MType = typename Float128::MantissaType; constexpr Float128 COEFFS_128[]{ - {false, -127, MType({0, 0x8000000000000000})}, // 1.0 - {false, -128, MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})}, - {false, -128, MType({0xde2d60dd9c9a1d9f, 0x3d7f7bff058b1d50})}, - {false, -132, MType({0x9d3b15d9e7fb6897, 0xe35846b82505fc59})}, - {false, -134, MType({0x184462f6bcd2b9e7, 0x9d955b7dd273b94e})}, - {false, -137, MType({0x39ea1bb964c51a89, 0xaec3ff3c53398883})}, - {false, -138, MType({0x842c53418fa8ae61, 0x2861225f345c396a})}, - {false, -144, MType({0x7abeb5abd5ad2079, 0xffe5fe2d109a319d})}, + {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0 + {Sign::POS, -128, MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})}, + {Sign::POS, -128, MType({0xde2d60dd9c9a1d9f, 0x3d7f7bff058b1d50})}, + {Sign::POS, -132, MType({0x9d3b15d9e7fb6897, 0xe35846b82505fc59})}, + {Sign::POS, -134, MType({0x184462f6bcd2b9e7, 0x9d955b7dd273b94e})}, + {Sign::POS, -137, MType({0x39ea1bb964c51a89, 0xaec3ff3c53398883})}, + {Sign::POS, -138, MType({0x842c53418fa8ae61, 0x2861225f345c396a})}, + {Sign::POS, -144, MType({0x7abeb5abd5ad2079, 0xffe5fe2d109a319d})}, }; Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2], diff --git a/libc/src/math/generic/expm1.cpp b/libc/src/math/generic/expm1.cpp index 71c4663edd21a8..d9fccf98e8caac 100644 --- a/libc/src/math/generic/expm1.cpp +++ b/libc/src/math/generic/expm1.cpp @@ -38,6 +38,7 @@ namespace LIBC_NAMESPACE { using fputil::DoubleDouble; using fputil::TripleDouble; using Float128 = typename fputil::DyadicFloat<128>; +using Sign = fputil::Sign; // log2(e) constexpr double LOG2_E = 0x1.71547652b82fep+0; @@ -109,13 +110,17 @@ Float128 poly_approx_f128(const Float128 &dx) { using MType = typename Float128::MantissaType; constexpr Float128 COEFFS_128[]{ - {false, -127, MType({0, 0x8000000000000000})}, // 1.0 - {false, -128, MType({0, 0x8000000000000000})}, // 0.5 - {false, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6 - {false, -132, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24 - {false, -134, MType({0x8888888888888889, 0x8888888888888888})}, // 1/120 - {false, -137, MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720 - {false, -140, MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040 + {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0 + {Sign::POS, -128, MType({0, 0x8000000000000000})}, // 0.5 + {Sign::POS, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6 + {Sign::POS, -132, + MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24 + {Sign::POS, -134, + MType({0x8888888888888889, 0x8888888888888888})}, // 1/120 + {Sign::POS, -137, + MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720 + {Sign::POS, -140, + MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040 }; Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2], @@ -165,7 +170,7 @@ Float128 expm1_f128(double x, double kd, int idx1, int idx2) { Float128 exp_mid = fputil::quick_mul(exp_mid1, exp_mid2); int hi = static_cast(kd) >> 12; - Float128 minus_one{true, -127 - hi, MType({0, 0x8000000000000000})}; + Float128 minus_one{Sign::NEG, -127 - hi, MType({0, 0x8000000000000000})}; Float128 exp_mid_m1 = fputil::quick_add(exp_mid, minus_one); diff --git a/libc/src/math/generic/log.cpp b/libc/src/math/generic/log.cpp index 5b3f48c85614b7..2db6b7f48fd09f 100644 --- a/libc/src/math/generic/log.cpp +++ b/libc/src/math/generic/log.cpp @@ -24,6 +24,7 @@ namespace LIBC_NAMESPACE { // 128-bit precision dyadic floating point numbers. using Float128 = typename fputil::DyadicFloat<128>; using MType = typename Float128::MantissaType; +using Sign = fputil::Sign; namespace { @@ -36,7 +37,7 @@ constexpr double P_ERR = 0x1.0p-50; // log(2) with 128-bit prepcision generated by SageMath with: // sage: (s, m, e) = RealField(128)(2).log().sign_mantissa_exponent(); // sage: print("MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})"); -const Float128 LOG_2(/*sign=*/false, /*exponent=*/-128, /*mantissa=*/ +const Float128 LOG_2(Sign::POS, /*exponent=*/-128, /*mantissa=*/ MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})); alignas(64) const LogRR LOG_TABLE = { @@ -45,512 +46,512 @@ alignas(64) const LogRR LOG_TABLE = { // for i in range(128): // r = 2^-8 * ceil( 2^8 * (1 - 2^(-8)) / (1 + i*2^(-7)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); - // print("{false,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) % - // 2^64), + // print("{Sign::POS,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) + // % 2^64), // "})},"); /* .step_1= */ { - {false, 0, MType(0)}, - {false, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})}, - {false, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})}, - {false, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})}, - {false, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})}, - {false, -132, MType({0x521016bd904dc968, 0xa33576a16f1f4c64})}, - {false, -132, MType({0xbe97660a23cc540d, 0xc4a550a4fd9a19a8})}, - {false, -132, MType({0xe09f5fe2058d6006, 0xe65b9e6eed965c36})}, - {false, -131, MType({0x1fecdfa819b96098, 0x842cc5acf1d03445})}, - {false, -131, MType({0xa7c9859530a45153, 0x8cb9de8a32ab368a})}, - {false, -131, MType({0x976d3b5b45f6ca0b, 0x9defad3e8f73217a})}, - {false, -131, MType({0xe8b8b88a14ff0ce, 0xaf4ad26cbc8e5be7})}, - {false, -131, MType({0x6a677b4c8bec22e1, 0xb8069857560707a3})}, - {false, -131, MType({0xeaf51f66692844ba, 0xc99af2eaca4c4570})}, - {false, -131, MType({0xa8112e35a60e6375, 0xdb56446d6ad8deff})}, - {false, -131, MType({0x196ab34ce0bccd12, 0xe442c00de2591b47})}, - {false, -131, MType({0x4066e87f2c0f7340, 0xf639cc185088fe5d})}, - {false, -131, MType({0xc17bd40d8d9291ec, 0xff4489cedeab2ca6})}, - {false, -130, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, - {false, -130, MType({0x88713268840cbcc0, 0x8d515bf11fb94f1c})}, - {false, -130, MType({0x65c0da506a088484, 0x968b08643409ceb6})}, - {false, -130, MType({0x411a5b944aca8708, 0x9b2fe580ac80b17d})}, - {false, -130, MType({0xa9fb6cf0ecb411b7, 0xa489ec199dab06f2})}, - {false, -130, MType({0xcad2fb8d48054ae0, 0xa93f2f250dac67d1})}, - {false, -130, MType({0x2c3c2e77904afa78, 0xb2ba75f46099cf8b})}, - {false, -130, MType({0x34c7bc3d32750fde, 0xb780945bab55dce4})}, - {false, -130, MType({0x9a631e830fd30904, 0xc11e0b2a8d1e0ddb})}, - {false, -130, MType({0xaa8b6997a402bf30, 0xc5f57f59c7f46155})}, - {false, -130, MType({0x2c507fb7a3d0bf6a, 0xcad2d6e7b80bf914})}, - {false, -130, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, - {false, -130, MType({0x58a98f2ad65bee9b, 0xd98ec2bade71e539})}, - {false, -130, MType({0x4d57da945b5d0aaa, 0xde8439c1dec56877})}, - {false, -130, MType({0xc524848e3443e040, 0xe881bf932af3dac0})}, - {false, -130, MType({0x11d49f96cb88317b, 0xed89ed86a44a01aa})}, - {false, -130, MType({0x3b020fa1820c9492, 0xf29877ff38809091})}, - {false, -130, MType({0x54d2238f75f969b1, 0xf7ad6f26e7ff2ef7})}, - {false, -130, MType({0xca0cdf301431b60f, 0xfcc8e3659d9bcbec})}, - {false, -129, MType({0x62dda9d2270fa1f4, 0x8389c3026ac3139b})}, - {false, -129, MType({0x163ceae88f720f1e, 0x86216b3b0b17188b})}, - {false, -129, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, - {false, -129, MType({0xf7a5168126a58b9a, 0x8b5ae65d67db9acd})}, - {false, -129, MType({0x5147bdb6ddcaf59c, 0x8dfccb1ad35ca6ed})}, - {false, -129, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -129, MType({0x4a5004f3ef063313, 0x95f783e6e49a9cfa})}, - {false, -129, MType({0x2cdec34784707839, 0x98a78f0e9ae71d85})}, - {false, -129, MType({0xd878bbe3d392be25, 0x9b5b3bb5f088b766})}, - {false, -129, MType({0x5b035eae273a855f, 0x9e1293b9998c1daa})}, - {false, -129, MType({0xbb2438273918db7e, 0xa0cda11eaf46390d})}, - {false, -129, MType({0xf698298adddd7f32, 0xa38c6e138e20d831})}, - {false, -129, MType({0xe4f5275c2d15c21f, 0xa64f04f0b961df76})}, - {false, -129, MType({0x8164c759686a2209, 0xa9157039c51ebe70})}, - {false, -129, MType({0xf72ea07749ce6bd3, 0xabdfba9e468fd6f6})}, - {false, -129, MType({0x7dd6e688ebb13b03, 0xaeadeefacaf97d35})}, - {false, -129, MType({0x18ce51fff99479cd, 0xb1801859d56249dc})}, - {false, -129, MType({0x2756eba00bc33978, 0xb45641f4e350a0d3})}, - {false, -129, MType({0xbe1116c3466beb6d, 0xb730773578cb90b2})}, - {false, -129, MType({0x49dc60b2b059a60b, 0xba0ec3b633dd8b09})}, - {false, -129, MType({0x2efd17781bb3afec, 0xbcf13343e7d9ec7d})}, - {false, -129, MType({0x37eda996244bccb0, 0xbfd7d1dec0a8df6f})}, - {false, -129, MType({0x33337789d592e296, 0xc2c2abbb6e5fd56f})}, - {false, -129, MType({0x1a18fb8f9f9ef280, 0xc5b1cd44596fa51e})}, - {false, -129, MType({0x688ce7c1a75e341a, 0xc8a5431adfb44ca5})}, - {false, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, - {false, -129, MType({0xef2f3f4f861ad6a9, 0xce995f50af69d861})}, - {false, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, - {false, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, - {false, -129, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, - {false, -129, MType({0xad88bba7d0cee8e0, 0xd7a94a92466e833a})}, - {false, -129, MType({0x96c20cca6efe2ac5, 0xdab7d02231484a92})}, - {false, -129, MType({0xf40a666c87842843, 0xddcb08dc0717d85b})}, - {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, - {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, - {false, -129, MType({0x3eadb651b49ac53a, 0xe3ffce3a2aa64922})}, - {false, -129, MType({0x304e1653e71d9973, 0xe72178c0323a1a0f})}, - {false, -129, MType({0xe9a767a80d6d97e8, 0xea481236f7d35baf})}, - {false, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, - {false, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, - {false, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, - {false, -129, MType({0xac8d42f78d3e65d3, 0xf3da161eed6b9aaf})}, - {false, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, - {false, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, - {false, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, - {false, -129, MType({0x8f05924d258c14c5, 0xfd9ac57bd244217e})}, - {false, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, - {false, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, - {false, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, - {false, -128, MType({0x20f6fafe8fbb68b9, 0x83c5f8299e2b4091})}, - {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, - {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, - {false, -128, MType({0x1e005d06dbfa8f8, 0x87244c308e670a66})}, - {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, - {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, - {false, -128, MType({0x2eb628dba173c82d, 0x8a8e1fb794b09134})}, - {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, - {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, - {false, -128, MType({0xbddae1ccce247838, 0x8e03c24d73003959})}, - {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, - {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, - {false, -128, MType({0x9b92199ed1a4bab1, 0x918586c5f5e4bf01})}, - {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -128, MType({0xf3cbc416a2418012, 0x9513c36876083695})}, - {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, - {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, - {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, - {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, - {false, -128, MType({0xe549f9aaea3cb5e1, 0x9a81456cec642e0f})}, - {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, - {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, - {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, - {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, - {false, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, - {false, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, - {false, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, - {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, - {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, - {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, - {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, - {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, - {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, - {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, - {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, - {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, - {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, - {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, - {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, - {false, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, - {false, 0, MType(0)}, + {Sign::POS, 0, MType(0)}, + {Sign::POS, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})}, + {Sign::POS, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})}, + {Sign::POS, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})}, + {Sign::POS, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})}, + {Sign::POS, -132, MType({0x521016bd904dc968, 0xa33576a16f1f4c64})}, + {Sign::POS, -132, MType({0xbe97660a23cc540d, 0xc4a550a4fd9a19a8})}, + {Sign::POS, -132, MType({0xe09f5fe2058d6006, 0xe65b9e6eed965c36})}, + {Sign::POS, -131, MType({0x1fecdfa819b96098, 0x842cc5acf1d03445})}, + {Sign::POS, -131, MType({0xa7c9859530a45153, 0x8cb9de8a32ab368a})}, + {Sign::POS, -131, MType({0x976d3b5b45f6ca0b, 0x9defad3e8f73217a})}, + {Sign::POS, -131, MType({0xe8b8b88a14ff0ce, 0xaf4ad26cbc8e5be7})}, + {Sign::POS, -131, MType({0x6a677b4c8bec22e1, 0xb8069857560707a3})}, + {Sign::POS, -131, MType({0xeaf51f66692844ba, 0xc99af2eaca4c4570})}, + {Sign::POS, -131, MType({0xa8112e35a60e6375, 0xdb56446d6ad8deff})}, + {Sign::POS, -131, MType({0x196ab34ce0bccd12, 0xe442c00de2591b47})}, + {Sign::POS, -131, MType({0x4066e87f2c0f7340, 0xf639cc185088fe5d})}, + {Sign::POS, -131, MType({0xc17bd40d8d9291ec, 0xff4489cedeab2ca6})}, + {Sign::POS, -130, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, + {Sign::POS, -130, MType({0x88713268840cbcc0, 0x8d515bf11fb94f1c})}, + {Sign::POS, -130, MType({0x65c0da506a088484, 0x968b08643409ceb6})}, + {Sign::POS, -130, MType({0x411a5b944aca8708, 0x9b2fe580ac80b17d})}, + {Sign::POS, -130, MType({0xa9fb6cf0ecb411b7, 0xa489ec199dab06f2})}, + {Sign::POS, -130, MType({0xcad2fb8d48054ae0, 0xa93f2f250dac67d1})}, + {Sign::POS, -130, MType({0x2c3c2e77904afa78, 0xb2ba75f46099cf8b})}, + {Sign::POS, -130, MType({0x34c7bc3d32750fde, 0xb780945bab55dce4})}, + {Sign::POS, -130, MType({0x9a631e830fd30904, 0xc11e0b2a8d1e0ddb})}, + {Sign::POS, -130, MType({0xaa8b6997a402bf30, 0xc5f57f59c7f46155})}, + {Sign::POS, -130, MType({0x2c507fb7a3d0bf6a, 0xcad2d6e7b80bf914})}, + {Sign::POS, -130, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, + {Sign::POS, -130, MType({0x58a98f2ad65bee9b, 0xd98ec2bade71e539})}, + {Sign::POS, -130, MType({0x4d57da945b5d0aaa, 0xde8439c1dec56877})}, + {Sign::POS, -130, MType({0xc524848e3443e040, 0xe881bf932af3dac0})}, + {Sign::POS, -130, MType({0x11d49f96cb88317b, 0xed89ed86a44a01aa})}, + {Sign::POS, -130, MType({0x3b020fa1820c9492, 0xf29877ff38809091})}, + {Sign::POS, -130, MType({0x54d2238f75f969b1, 0xf7ad6f26e7ff2ef7})}, + {Sign::POS, -130, MType({0xca0cdf301431b60f, 0xfcc8e3659d9bcbec})}, + {Sign::POS, -129, MType({0x62dda9d2270fa1f4, 0x8389c3026ac3139b})}, + {Sign::POS, -129, MType({0x163ceae88f720f1e, 0x86216b3b0b17188b})}, + {Sign::POS, -129, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, + {Sign::POS, -129, MType({0xf7a5168126a58b9a, 0x8b5ae65d67db9acd})}, + {Sign::POS, -129, MType({0x5147bdb6ddcaf59c, 0x8dfccb1ad35ca6ed})}, + {Sign::POS, -129, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -129, MType({0x4a5004f3ef063313, 0x95f783e6e49a9cfa})}, + {Sign::POS, -129, MType({0x2cdec34784707839, 0x98a78f0e9ae71d85})}, + {Sign::POS, -129, MType({0xd878bbe3d392be25, 0x9b5b3bb5f088b766})}, + {Sign::POS, -129, MType({0x5b035eae273a855f, 0x9e1293b9998c1daa})}, + {Sign::POS, -129, MType({0xbb2438273918db7e, 0xa0cda11eaf46390d})}, + {Sign::POS, -129, MType({0xf698298adddd7f32, 0xa38c6e138e20d831})}, + {Sign::POS, -129, MType({0xe4f5275c2d15c21f, 0xa64f04f0b961df76})}, + {Sign::POS, -129, MType({0x8164c759686a2209, 0xa9157039c51ebe70})}, + {Sign::POS, -129, MType({0xf72ea07749ce6bd3, 0xabdfba9e468fd6f6})}, + {Sign::POS, -129, MType({0x7dd6e688ebb13b03, 0xaeadeefacaf97d35})}, + {Sign::POS, -129, MType({0x18ce51fff99479cd, 0xb1801859d56249dc})}, + {Sign::POS, -129, MType({0x2756eba00bc33978, 0xb45641f4e350a0d3})}, + {Sign::POS, -129, MType({0xbe1116c3466beb6d, 0xb730773578cb90b2})}, + {Sign::POS, -129, MType({0x49dc60b2b059a60b, 0xba0ec3b633dd8b09})}, + {Sign::POS, -129, MType({0x2efd17781bb3afec, 0xbcf13343e7d9ec7d})}, + {Sign::POS, -129, MType({0x37eda996244bccb0, 0xbfd7d1dec0a8df6f})}, + {Sign::POS, -129, MType({0x33337789d592e296, 0xc2c2abbb6e5fd56f})}, + {Sign::POS, -129, MType({0x1a18fb8f9f9ef280, 0xc5b1cd44596fa51e})}, + {Sign::POS, -129, MType({0x688ce7c1a75e341a, 0xc8a5431adfb44ca5})}, + {Sign::POS, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, + {Sign::POS, -129, MType({0xef2f3f4f861ad6a9, 0xce995f50af69d861})}, + {Sign::POS, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, + {Sign::POS, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, + {Sign::POS, -129, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, + {Sign::POS, -129, MType({0xad88bba7d0cee8e0, 0xd7a94a92466e833a})}, + {Sign::POS, -129, MType({0x96c20cca6efe2ac5, 0xdab7d02231484a92})}, + {Sign::POS, -129, MType({0xf40a666c87842843, 0xddcb08dc0717d85b})}, + {Sign::POS, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, + {Sign::POS, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, + {Sign::POS, -129, MType({0x3eadb651b49ac53a, 0xe3ffce3a2aa64922})}, + {Sign::POS, -129, MType({0x304e1653e71d9973, 0xe72178c0323a1a0f})}, + {Sign::POS, -129, MType({0xe9a767a80d6d97e8, 0xea481236f7d35baf})}, + {Sign::POS, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, + {Sign::POS, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, + {Sign::POS, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, + {Sign::POS, -129, MType({0xac8d42f78d3e65d3, 0xf3da161eed6b9aaf})}, + {Sign::POS, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, + {Sign::POS, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, + {Sign::POS, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, + {Sign::POS, -129, MType({0x8f05924d258c14c5, 0xfd9ac57bd244217e})}, + {Sign::POS, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, + {Sign::POS, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, + {Sign::POS, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, + {Sign::POS, -128, MType({0x20f6fafe8fbb68b9, 0x83c5f8299e2b4091})}, + {Sign::POS, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, + {Sign::POS, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, + {Sign::POS, -128, MType({0x1e005d06dbfa8f8, 0x87244c308e670a66})}, + {Sign::POS, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, + {Sign::POS, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, + {Sign::POS, -128, MType({0x2eb628dba173c82d, 0x8a8e1fb794b09134})}, + {Sign::POS, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, + {Sign::POS, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, + {Sign::POS, -128, MType({0xbddae1ccce247838, 0x8e03c24d73003959})}, + {Sign::POS, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, + {Sign::POS, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, + {Sign::POS, -128, MType({0x9b92199ed1a4bab1, 0x918586c5f5e4bf01})}, + {Sign::POS, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -128, MType({0xf3cbc416a2418012, 0x9513c36876083695})}, + {Sign::POS, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, + {Sign::POS, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, + {Sign::POS, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, + {Sign::POS, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, + {Sign::POS, -128, MType({0xe549f9aaea3cb5e1, 0x9a81456cec642e0f})}, + {Sign::POS, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, + {Sign::POS, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, + {Sign::POS, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, + {Sign::POS, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, + {Sign::POS, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, + {Sign::POS, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, + {Sign::POS, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, + {Sign::POS, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, + {Sign::POS, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, + {Sign::POS, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, + {Sign::POS, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, + {Sign::POS, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, + {Sign::POS, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, + {Sign::POS, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, + {Sign::POS, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, + {Sign::POS, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, + {Sign::POS, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, + {Sign::POS, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, + {Sign::POS, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, + {Sign::POS, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, + {Sign::POS, 0, MType(0)}, }, // -log(r) for the second step, generated by SageMath with: // // for i in range(-2^6, 2^7 + 1): // r = 2^-16 * round( 2^16 / (1 + i*2^(-14)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); - // print("{false," if s == -1 else "{true,", e, ", + // print("{Sign::POS," if s == -1 else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_2 = */ { - {true, -135, MType({0xa1c6f3fc242ef8d0, 0x803faacac419abf2})}, - {true, -136, MType({0xa225ebc02e6d9dd4, 0xfc834da16f0d9f57})}, - {true, -136, MType({0xc33f6ad340ae18a9, 0xf88735ccc7433381})}, - {true, -136, MType({0x70b2a4d38a242244, 0xf48b0e171249b6bc})}, - {true, -136, MType({0x1d54819048b811b0, 0xf08ed67fd190e280})}, - {true, -136, MType({0xaee5983701d2a02b, 0xec928f0686828706})}, - {true, -136, MType({0x40abb8ab72afa2d2, 0xe89637aab2828aed})}, - {true, -136, MType({0xdeb547a0d4a26ef9, 0xe499d06bd6eeead5})}, - {true, -136, MType({0x39c5bdfbcf6087a0, 0xe09d5949751fb909})}, - {true, -136, MType({0x53ea9bf152de635f, 0xdca0d2430e671d18})}, - {true, -136, MType({0x25b820436f5f4352, 0xd8a43b582411537e})}, - {true, -136, MType({0x3c2d13ea1d0be058, 0xd4a794883764ad41})}, - {true, -136, MType({0x4f3cfa62bcb3ce3a, 0xd0aaddd2c9a18f95})}, - {true, -136, MType({0xd0fff6cdf14a86c7, 0xccae17375c02737c})}, - {true, -136, MType({0x7587b5f0453ac3d2, 0xc8b140b56fbbe56a})}, - {true, -136, MType({0xb358ad16dfd0d085, 0xc4b45a4c85fc84e2})}, - {true, -136, MType({0x3c86fdce5dbe7314, 0xc0b763fc1fed041d})}, - {true, -136, MType({0x70764e46ac18a96d, 0xbcba5dc3beb027a6})}, - {true, -136, MType({0xc63be62b8f285882, 0xb8bd47a2e362c600})}, - {true, -136, MType({0x72e7b5a386e5e31b, 0xb3c0d59a244325a4})}, - {true, -136, MType({0xc3ea2cd93f316b34, 0xafc39bac66434f27})}, - {true, -136, MType({0x1dfb11a7cc892843, 0xabc651d491a7b438})}, - {true, -136, MType({0xfc679a28e9d9f212, 0xa7c8f8122773f38d})}, - {true, -136, MType({0xe7bc977eeec42254, 0xa3cb8e64a8a5bbe6})}, - {true, -136, MType({0xb20f215bd3b58c61, 0x9fce14cb9634cba6})}, - {true, -136, MType({0xabe2862508d67a98, 0x9bd08b467112f078})}, - {true, -136, MType({0xd1aacedcefe9d377, 0x97d2f1d4ba2c06f0})}, - {true, -136, MType({0xf1eb25e77d05f58d, 0x93d54875f265fa2c})}, - {true, -136, MType({0xcbef6fac33691e95, 0x8fd78f299aa0c375})}, - {true, -136, MType({0x2720640462a0f8ad, 0x8bd9c5ef33b669e0})}, - {true, -136, MType({0xe2f1775134c8da75, 0x87dbecc63e7b01ed})}, - {true, -136, MType({0xff67e201c8c50d67, 0x83de03ae3bbcad2e})}, - {true, -137, MType({0x3c742a7c76356396, 0xffc0154d588733c5})}, - {true, -137, MType({0xf90dd6b24aa686ec, 0xf7c4035e21a4052f})}, - {true, -137, MType({0xca47c52b7d7ffce2, 0xefc7d18dd4485b9e})}, - {true, -137, MType({0x3703617ad3d8311f, 0xe7cb7fdb71e0db36})}, - {true, -137, MType({0x7e4cfbd830393b88, 0xdfcf0e45fbce3e80})}, - {true, -137, MType({0x4f7a29cf0fc2c38e, 0xd7d27ccc736555af})}, - {true, -137, MType({0x7370ae83f9e72748, 0xcfd5cb6dd9ef05dd})}, - {true, -137, MType({0x671486eb4cd76f65, 0xc7d8fa2930a84850})}, - {true, -137, MType({0xe6dbb624f9739782, 0xbfdc08fd78c229b9})}, - {true, -137, MType({0x6b866e09e57d9079, 0xb7def7e9b361c979})}, - {true, -137, MType({0x97fa2fd0c9dc723e, 0xafe1c6ece1a058dd})}, - {true, -137, MType({0x983e80897cf1e60f, 0xa7e47606048b1a65})}, - {true, -137, MType({0x7199cd06ae5d39b3, 0x9fe705341d236102})}, - {true, -137, MType({0x43cd18a72a051a96, 0x97e974762c5e8f58})}, - {true, -137, MType({0x7b6d1248c3e1fd40, 0x8febc3cb332616ff})}, - {true, -137, MType({0xf5572a8814c703af, 0x87edf332325777c5})}, - {true, -138, MType({0x26828c92649a3a39, 0xffe0055455887de0})}, - {true, -138, MType({0x82c550bd1216d82a, 0xefe3e4643a640cf3})}, - {true, -138, MType({0xda6959f7f0e01bf0, 0xdfe7839214b4e8ae})}, - {true, -138, MType({0xda93e2fa85a8f214, 0xcfeae2dbe5d6736d})}, - {true, -138, MType({0xb47505bfa5a03b06, 0xbfee023faf0c2480})}, - {true, -138, MType({0xb1475a5180a43520, 0xaff0e1bb718186ad})}, - {true, -138, MType({0xa8740b91c95df537, 0x9ff3814d2e4a36b2})}, - {true, -138, MType({0x57d895d35921b59c, 0x8ff5e0f2e661e1c6})}, - {true, -139, MType({0x3c56c598c659c2a3, 0xfff0015535588833})}, - {true, -139, MType({0x2ef8ec33ed9d782a, 0xdff3c0e497ea4eb1})}, - {true, -139, MType({0x379eba7e6465ff63, 0xbff7008ff5e0c257})}, - {true, -139, MType({0x3f972b783fcab757, 0x9ff9c0535073a370})}, - {true, -140, MType({0xde026e271ee0549d, 0xfff8005551558885})}, - {true, -140, MType({0xeceb47ea01f6c632, 0xbffb8023febc0c25})}, - {true, -141, MType({0x7333c57857e1ed52, 0xfffc001554d55888})}, - {true, -142, MType({0x87dde026fa704374, 0xfffe000555455588})}, - {true, 0, MType({0x0, 0x0})}, - {false, -141, MType({0x44999abe2fe2cc65, 0x80010002aab2aac4})}, - {false, -140, MType({0x4eef381581464ccb, 0x8002000aaaeaac44})}, - {false, -140, MType({0xdfeb485085f6f454, 0xc004802401440c26})}, - {false, -139, MType({0x99abe3be3a1c6e93, 0x8004002aacaac445})}, - {false, -139, MType({0x6bc1e20eac8448b4, 0xa00640535a37a37a})}, - {false, -139, MType({0x979eedc064c242fd, 0xc00900900a20c275})}, - {false, -139, MType({0xc72446cc1bf728bd, 0xe00c40e4bd6e4efd})}, - {false, -138, MType({0xf381b821bbb569e5, 0x800800aabaac446e})}, - {false, -138, MType({0x569b26aaa485ea5c, 0x900a20f319a3e273})}, - {false, -138, MType({0x2dcf56c83c80b028, 0xa00c814d7c6a37f8})}, - {false, -138, MType({0x5f69768284463b9b, 0xb00f21bbe3e388ee})}, - {false, -138, MType({0xb48ea6c05e2773a1, 0xc0120240510c284c})}, - {false, -138, MType({0x14d9d76196d8043a, 0xd01522dcc4f87991})}, - {false, -138, MType({0xe016a611a4415d72, 0xe018839340d4f241})}, - {false, -138, MType({0x661e135f49a47c40, 0xf01c2465c5e61b6f})}, - {false, -137, MType({0xbe6bf0fa435e8383, 0x801002ab2ac4499a})}, - {false, -137, MType({0x9a31ba0cbc030353, 0x881213337898871e})}, - {false, -137, MType({0x54b57dfe0c4c840f, 0x901443cccd362c9f})}, - {false, -137, MType({0x7ad1e9c315328f7e, 0x98169478296fad41})}, - {false, -137, MType({0x1f3f686cf3d6be22, 0xa01905368e2389b3})}, - {false, -137, MType({0xf105b66ec4703ede, 0xa81b9608fc3c50ec})}, - {false, -137, MType({0x610848c68df4d233, 0xb01e46f074b0a0f3})}, - {false, -137, MType({0xd6aef30cd312169a, 0xb82117edf8832797})}, - {false, -137, MType({0xf3ac379608053d9d, 0xc024090288c2a339})}, - {false, -137, MType({0xe6e2acf8f4d4c24a, 0xc8271a2f2689e388})}, - {false, -137, MType({0xce6ae474d860359f, 0xd02a4b74d2ffca44})}, - {false, -137, MType({0x28bb3cd9f2a65fb5, 0xd82d9cd48f574c00})}, - {false, -137, MType({0x54f30dbef38a8066, 0xe0310e4f5ccf70e1})}, - {false, -137, MType({0x224a96f5a7471c46, 0xe8349fe63cb35564})}, - {false, -137, MType({0x6ea920591aa02e1b, 0xf038519a305a2b1b})}, - {false, -137, MType({0xd462b63756c87e80, 0xf83c236c39273972})}, - {false, -136, MType({0x338f77605fe77f2a, 0x80200aaeac44ef38})}, - {false, -136, MType({0x3ff51287882500ed, 0x842213b747fec7bb})}, - {false, -136, MType({0xcc394b3ef0ebeb12, 0x88242cd07084ed02})}, - {false, -136, MType({0x1ab9679b55f78a6b, 0x8c2655faa6a1323f})}, - {false, -136, MType({0x7025697d10af0436, 0x90288f366b237771})}, - {false, -136, MType({0x17e4b7ac6c600cb4, 0x942ad8843ee1a9cd})}, - {false, -136, MType({0x7013925a9a8da7f3, 0x982d31e4a2b7c418})}, - {false, -136, MType({0xfd1a09c848e3950e, 0x9c2f9b581787cf0d})}, - {false, -136, MType({0x84dd2de6e3d90a37, 0xa03214df1e39e1bd})}, - {false, -136, MType({0x318b2ddd9d0a33b4, 0xa4349e7a37bc21ed})}, - {false, -136, MType({0xbc031e6f5acfd4a8, 0xa8373829e502c47a})}, - {false, -136, MType({0x9dd91e52c79fd070, 0xac39e1eea7080dbc})}, - {false, -136, MType({0x4af78fa1cb48a12d, 0xb03c9bc8fecc51e3})}, - {false, -136, MType({0x72de1d99ce252efd, 0xb43f65b96d55f55a})}, - {false, -136, MType({0xefb1dbe721934877, 0xb74187bc8ccffa84})}, - {false, -136, MType({0xb4b080f230c87598, 0xbb446dd4d9bca499})}, - {false, -136, MType({0xda6a7cd19c7fa4f2, 0xbf476404a05f88f2})}, - {false, -136, MType({0xdf00e3783b50ecfb, 0xc34a6a4c61d5cc3c})}, - {false, -136, MType({0xda2e5e02ab4e183c, 0xc74d80ac9f42a52d})}, - {false, -136, MType({0xea5f6ee99d30c626, 0xcb50a725d9cf5ce6})}, - {false, -136, MType({0xa96d5956531d7d8b, 0xcf53ddb892ab4f55})}, - {false, -136, MType({0xa8fc636eb36afa75, 0xd35724654b0beb95})}, - {false, -136, MType({0xf67e2b827bfc4421, 0xd75a7b2c842cb451})}, - {false, -136, MType({0xa6d8c817516303e6, 0xdb5de20ebf4f4026})}, - {false, -136, MType({0x69b36ae5962e85f4, 0xdf61590c7dbb3a02})}, - {false, -136, MType({0x24693eec2a831cc3, 0xe364e02640be6188})}, - {false, -136, MType({0x94a339d56a55ab4a, 0xe768775c89ac8b70})}, - {false, -136, MType({0xfa9998fbf9703bf4, 0xeb6c1eafd9dfa1eb})}, - {false, -136, MType({0xcafdc27227b71eaa, 0xef6fd620b2b7a503})}, - {false, -136, MType({0x688d4282f6026aa3, 0xf3739daf959aaafc})}, - {false, -136, MType({0xe54e9e3804464cdd, 0xf777755d03f4e0b6})}, - {false, -136, MType({0xcb78b383f4b59dce, 0xfb7b5d297f388a12})}, - {false, -136, MType({0xee055fc515062c04, 0xff7f551588de024f})}, - {false, -135, MType({0x207812b43382acdd, 0x81c1ae90d131de38})}, - {false, -135, MType({0xdc90c4c4b61f3a87, 0x83c3baa726a721cc})}, - {false, -135, MType({0x1a03f13fb2c978b1, 0x85c5cece05941dbc})}, - {false, -135, MType({0xb36f282e83a7dc36, 0x87c7eb05aec1304f})}, - {false, -135, MType({0x6ad14c3dfa414391, 0x89ca0f4e62f9c476})}, - {false, -135, MType({0xe8dd4ea0d48b88e5, 0x8bcc3ba8630c51f4})}, - {false, -135, MType({0xc02515afe8caeb90, 0x8dce7013efca5d96})}, - {false, -135, MType({0x741ceaf3349f3cf1, 0x8fd0ac914a08795f})}, - {false, -135, MType({0x83f7cd4929d2c28c, 0x91d2f120b29e44bb})}, - {false, -135, MType({0x795d03ebc2fd03fa, 0x93d53dc26a666cb1})}, - {false, -135, MType({0xfaf74f1d1ad16acc, 0x95d79276b23eac12})}, - {false, -135, MType({0xe2de134f72fee429, 0x97d9ef3dcb07cbad})}, - {false, -135, MType({0x58d8dba6cadac5d5, 0x99dc5417f5a5a27d})}, - {false, -135, MType({0xf07d90bc5aae40a4, 0x9bdec10572ff15da})}, - {false, -135, MType({0x1deaf79d9fc40374, 0x9d6098046659ea6b})}, - {false, -135, MType({0x7ba63e6769b81999, 0x9f63131450b07988})}, - {false, -135, MType({0x59ebfc9335094e59, 0xa1659638404d5f92})}, - {false, -135, MType({0x16aae012b5026f71, 0xa36821707622f97a})}, - {false, -135, MType({0xff5d4f2c0e4b9cae, 0xa56ab4bd3326b378})}, - {false, -135, MType({0x855838b5119dcb28, 0xa76d501eb8510941})}, - {false, -135, MType({0x75f70cbbe9cf1603, 0xa96ff395469d8630})}, - {false, -135, MType({0x36a53ad4d5541cc9, 0xab729f211f0ac57e})}, - {false, -135, MType({0x4c5934ec32d20d9, 0xad7552c2829a7270})}, - {false, -135, MType({0x3977e89aec59bfa2, 0xaf780e79b2514889})}, - {false, -135, MType({0x913d4e3dc55c3e6e, 0xb17ad246ef3713bc})}, - {false, -135, MType({0x777b52a9e70d8bcc, 0xb37d9e2a7a56b09d})}, - {false, -135, MType({0x55de916fd30591de, 0xb580722494be0c91})}, - {false, -135, MType({0xe79cfb37be2861e4, 0xb7834e357f7e2600})}, - {false, -135, MType({0x90983104d3805389, 0xb986325d7bab0c89})}, - {false, -135, MType({0xb860504baa6f984d, 0xbb891e9cca5be12e})}, - {false, -135, MType({0x29178d6ff5712b96, 0xbd8c12f3acaad68b})}, - {false, -135, MType({0x7236fa47ba19a198, 0xbf8f0f6263b53102})}, - {false, -135, MType({0x4f34d64cafcc50e3, 0xc19213e9309b46f2})}, - {false, -135, MType({0x120cc62eb0a8db3e, 0xc3952088548080e4})}, - {false, -135, MType({0x11aa5084779060e3, 0xc5983540108b59be})}, - {false, -135, MType({0x1c35fd6236c8dcf1, 0xc79b5210a5e55ef5})}, - {false, -135, MType({0xed4576a7e4b878fe, 0xc99e76fa55bb30bd})}, - {false, -135, MType({0x6caf4bb8fd2c1131, 0xcb20d7fa3a336081})}, - {false, -135, MType({0x3f24a6cbb09c654f, 0xcd240b10753e78de})}, - {false, -135, MType({0x78bc003bb81e40f3, 0xcf2746407e0ff09f})}, - {false, -135, MType({0x56647301edfd8e8b, 0xd12a898a95dff002})}, - {false, -135, MType({0x28fe1c4d04ca4ed9, 0xd32dd4eefde9b2ef})}, - {false, -135, MType({0xe1ea9ea6cbf57379, 0xd531286df76b892a})}, - {false, -135, MType({0xa3832028141a5cc2, 0xd7348407c3a6d688})}, - {false, -135, MType({0x557421dd379d3ead, 0xd937e7bca3e0131b})}, - {false, -135, MType({0x3cff8e87a99bcaf0, 0xdb3b538cd95ecb67})}, - {false, -135, MType({0x99255ef34bd0801f, 0xdd3ec778a56da093})}, - {false, -135, MType({0x42b33220abfa15cd, 0xdf424380495a489c})}, - {false, -135, MType({0x503b378faa97dbc0, 0xe145c7a406758e83})}, - {false, -135, MType({0xbdf2ca006f59b544, 0xe34953e41e135282})}, - {false, -135, MType({0x1979190af37ed16f, 0xe54ce840d18a8a3e})}, - {false, -135, MType({0x31863ff7cf898c9c, 0xe75084ba623540f4})}, - {false, -135, MType({0xc983284f60293647, 0xe9542951117097b0})}, - {false, -135, MType({0x510a969ebe03f804, 0xeb57d605209cc57e})}, - {false, -135, MType({0x9f53bffc6d23fe30, 0xed5b8ad6d11d1797})}, - {false, -135, MType({0xb286c6e113337886, 0xef5f47c66457f199})}, - {false, -135, MType({0xb6ed80852ae6fd63, 0xf0e21acdd6e7d412})}, - {false, -135, MType({0xdf437fb0f616082d, 0xf2e5e5f25450c5a2})}, - {false, -135, MType({0xf237cff1acb306b3, 0xf4e9b935685dbe0b})}, - {false, -135, MType({0x52dbfafb4121a092, 0xf6ed94975480b696})}, - {false, -135, MType({0xd81648249cece4c, 0xf8f178185a2ebfd9})}, - {false, -135, MType({0xad95e6b0b96903d3, 0xfaf563b8bae001eb})}, - {false, -135, MType({0x176cd56887ac7fe9, 0xfcf95778b80fbc98})}, - {false, -135, MType({0x65f4c7397f1f478d, 0xfefd5358933c478c})}, + {Sign::NEG, -135, MType({0xa1c6f3fc242ef8d0, 0x803faacac419abf2})}, + {Sign::NEG, -136, MType({0xa225ebc02e6d9dd4, 0xfc834da16f0d9f57})}, + {Sign::NEG, -136, MType({0xc33f6ad340ae18a9, 0xf88735ccc7433381})}, + {Sign::NEG, -136, MType({0x70b2a4d38a242244, 0xf48b0e171249b6bc})}, + {Sign::NEG, -136, MType({0x1d54819048b811b0, 0xf08ed67fd190e280})}, + {Sign::NEG, -136, MType({0xaee5983701d2a02b, 0xec928f0686828706})}, + {Sign::NEG, -136, MType({0x40abb8ab72afa2d2, 0xe89637aab2828aed})}, + {Sign::NEG, -136, MType({0xdeb547a0d4a26ef9, 0xe499d06bd6eeead5})}, + {Sign::NEG, -136, MType({0x39c5bdfbcf6087a0, 0xe09d5949751fb909})}, + {Sign::NEG, -136, MType({0x53ea9bf152de635f, 0xdca0d2430e671d18})}, + {Sign::NEG, -136, MType({0x25b820436f5f4352, 0xd8a43b582411537e})}, + {Sign::NEG, -136, MType({0x3c2d13ea1d0be058, 0xd4a794883764ad41})}, + {Sign::NEG, -136, MType({0x4f3cfa62bcb3ce3a, 0xd0aaddd2c9a18f95})}, + {Sign::NEG, -136, MType({0xd0fff6cdf14a86c7, 0xccae17375c02737c})}, + {Sign::NEG, -136, MType({0x7587b5f0453ac3d2, 0xc8b140b56fbbe56a})}, + {Sign::NEG, -136, MType({0xb358ad16dfd0d085, 0xc4b45a4c85fc84e2})}, + {Sign::NEG, -136, MType({0x3c86fdce5dbe7314, 0xc0b763fc1fed041d})}, + {Sign::NEG, -136, MType({0x70764e46ac18a96d, 0xbcba5dc3beb027a6})}, + {Sign::NEG, -136, MType({0xc63be62b8f285882, 0xb8bd47a2e362c600})}, + {Sign::NEG, -136, MType({0x72e7b5a386e5e31b, 0xb3c0d59a244325a4})}, + {Sign::NEG, -136, MType({0xc3ea2cd93f316b34, 0xafc39bac66434f27})}, + {Sign::NEG, -136, MType({0x1dfb11a7cc892843, 0xabc651d491a7b438})}, + {Sign::NEG, -136, MType({0xfc679a28e9d9f212, 0xa7c8f8122773f38d})}, + {Sign::NEG, -136, MType({0xe7bc977eeec42254, 0xa3cb8e64a8a5bbe6})}, + {Sign::NEG, -136, MType({0xb20f215bd3b58c61, 0x9fce14cb9634cba6})}, + {Sign::NEG, -136, MType({0xabe2862508d67a98, 0x9bd08b467112f078})}, + {Sign::NEG, -136, MType({0xd1aacedcefe9d377, 0x97d2f1d4ba2c06f0})}, + {Sign::NEG, -136, MType({0xf1eb25e77d05f58d, 0x93d54875f265fa2c})}, + {Sign::NEG, -136, MType({0xcbef6fac33691e95, 0x8fd78f299aa0c375})}, + {Sign::NEG, -136, MType({0x2720640462a0f8ad, 0x8bd9c5ef33b669e0})}, + {Sign::NEG, -136, MType({0xe2f1775134c8da75, 0x87dbecc63e7b01ed})}, + {Sign::NEG, -136, MType({0xff67e201c8c50d67, 0x83de03ae3bbcad2e})}, + {Sign::NEG, -137, MType({0x3c742a7c76356396, 0xffc0154d588733c5})}, + {Sign::NEG, -137, MType({0xf90dd6b24aa686ec, 0xf7c4035e21a4052f})}, + {Sign::NEG, -137, MType({0xca47c52b7d7ffce2, 0xefc7d18dd4485b9e})}, + {Sign::NEG, -137, MType({0x3703617ad3d8311f, 0xe7cb7fdb71e0db36})}, + {Sign::NEG, -137, MType({0x7e4cfbd830393b88, 0xdfcf0e45fbce3e80})}, + {Sign::NEG, -137, MType({0x4f7a29cf0fc2c38e, 0xd7d27ccc736555af})}, + {Sign::NEG, -137, MType({0x7370ae83f9e72748, 0xcfd5cb6dd9ef05dd})}, + {Sign::NEG, -137, MType({0x671486eb4cd76f65, 0xc7d8fa2930a84850})}, + {Sign::NEG, -137, MType({0xe6dbb624f9739782, 0xbfdc08fd78c229b9})}, + {Sign::NEG, -137, MType({0x6b866e09e57d9079, 0xb7def7e9b361c979})}, + {Sign::NEG, -137, MType({0x97fa2fd0c9dc723e, 0xafe1c6ece1a058dd})}, + {Sign::NEG, -137, MType({0x983e80897cf1e60f, 0xa7e47606048b1a65})}, + {Sign::NEG, -137, MType({0x7199cd06ae5d39b3, 0x9fe705341d236102})}, + {Sign::NEG, -137, MType({0x43cd18a72a051a96, 0x97e974762c5e8f58})}, + {Sign::NEG, -137, MType({0x7b6d1248c3e1fd40, 0x8febc3cb332616ff})}, + {Sign::NEG, -137, MType({0xf5572a8814c703af, 0x87edf332325777c5})}, + {Sign::NEG, -138, MType({0x26828c92649a3a39, 0xffe0055455887de0})}, + {Sign::NEG, -138, MType({0x82c550bd1216d82a, 0xefe3e4643a640cf3})}, + {Sign::NEG, -138, MType({0xda6959f7f0e01bf0, 0xdfe7839214b4e8ae})}, + {Sign::NEG, -138, MType({0xda93e2fa85a8f214, 0xcfeae2dbe5d6736d})}, + {Sign::NEG, -138, MType({0xb47505bfa5a03b06, 0xbfee023faf0c2480})}, + {Sign::NEG, -138, MType({0xb1475a5180a43520, 0xaff0e1bb718186ad})}, + {Sign::NEG, -138, MType({0xa8740b91c95df537, 0x9ff3814d2e4a36b2})}, + {Sign::NEG, -138, MType({0x57d895d35921b59c, 0x8ff5e0f2e661e1c6})}, + {Sign::NEG, -139, MType({0x3c56c598c659c2a3, 0xfff0015535588833})}, + {Sign::NEG, -139, MType({0x2ef8ec33ed9d782a, 0xdff3c0e497ea4eb1})}, + {Sign::NEG, -139, MType({0x379eba7e6465ff63, 0xbff7008ff5e0c257})}, + {Sign::NEG, -139, MType({0x3f972b783fcab757, 0x9ff9c0535073a370})}, + {Sign::NEG, -140, MType({0xde026e271ee0549d, 0xfff8005551558885})}, + {Sign::NEG, -140, MType({0xeceb47ea01f6c632, 0xbffb8023febc0c25})}, + {Sign::NEG, -141, MType({0x7333c57857e1ed52, 0xfffc001554d55888})}, + {Sign::NEG, -142, MType({0x87dde026fa704374, 0xfffe000555455588})}, + {Sign::NEG, 0, MType({0x0, 0x0})}, + {Sign::POS, -141, MType({0x44999abe2fe2cc65, 0x80010002aab2aac4})}, + {Sign::POS, -140, MType({0x4eef381581464ccb, 0x8002000aaaeaac44})}, + {Sign::POS, -140, MType({0xdfeb485085f6f454, 0xc004802401440c26})}, + {Sign::POS, -139, MType({0x99abe3be3a1c6e93, 0x8004002aacaac445})}, + {Sign::POS, -139, MType({0x6bc1e20eac8448b4, 0xa00640535a37a37a})}, + {Sign::POS, -139, MType({0x979eedc064c242fd, 0xc00900900a20c275})}, + {Sign::POS, -139, MType({0xc72446cc1bf728bd, 0xe00c40e4bd6e4efd})}, + {Sign::POS, -138, MType({0xf381b821bbb569e5, 0x800800aabaac446e})}, + {Sign::POS, -138, MType({0x569b26aaa485ea5c, 0x900a20f319a3e273})}, + {Sign::POS, -138, MType({0x2dcf56c83c80b028, 0xa00c814d7c6a37f8})}, + {Sign::POS, -138, MType({0x5f69768284463b9b, 0xb00f21bbe3e388ee})}, + {Sign::POS, -138, MType({0xb48ea6c05e2773a1, 0xc0120240510c284c})}, + {Sign::POS, -138, MType({0x14d9d76196d8043a, 0xd01522dcc4f87991})}, + {Sign::POS, -138, MType({0xe016a611a4415d72, 0xe018839340d4f241})}, + {Sign::POS, -138, MType({0x661e135f49a47c40, 0xf01c2465c5e61b6f})}, + {Sign::POS, -137, MType({0xbe6bf0fa435e8383, 0x801002ab2ac4499a})}, + {Sign::POS, -137, MType({0x9a31ba0cbc030353, 0x881213337898871e})}, + {Sign::POS, -137, MType({0x54b57dfe0c4c840f, 0x901443cccd362c9f})}, + {Sign::POS, -137, MType({0x7ad1e9c315328f7e, 0x98169478296fad41})}, + {Sign::POS, -137, MType({0x1f3f686cf3d6be22, 0xa01905368e2389b3})}, + {Sign::POS, -137, MType({0xf105b66ec4703ede, 0xa81b9608fc3c50ec})}, + {Sign::POS, -137, MType({0x610848c68df4d233, 0xb01e46f074b0a0f3})}, + {Sign::POS, -137, MType({0xd6aef30cd312169a, 0xb82117edf8832797})}, + {Sign::POS, -137, MType({0xf3ac379608053d9d, 0xc024090288c2a339})}, + {Sign::POS, -137, MType({0xe6e2acf8f4d4c24a, 0xc8271a2f2689e388})}, + {Sign::POS, -137, MType({0xce6ae474d860359f, 0xd02a4b74d2ffca44})}, + {Sign::POS, -137, MType({0x28bb3cd9f2a65fb5, 0xd82d9cd48f574c00})}, + {Sign::POS, -137, MType({0x54f30dbef38a8066, 0xe0310e4f5ccf70e1})}, + {Sign::POS, -137, MType({0x224a96f5a7471c46, 0xe8349fe63cb35564})}, + {Sign::POS, -137, MType({0x6ea920591aa02e1b, 0xf038519a305a2b1b})}, + {Sign::POS, -137, MType({0xd462b63756c87e80, 0xf83c236c39273972})}, + {Sign::POS, -136, MType({0x338f77605fe77f2a, 0x80200aaeac44ef38})}, + {Sign::POS, -136, MType({0x3ff51287882500ed, 0x842213b747fec7bb})}, + {Sign::POS, -136, MType({0xcc394b3ef0ebeb12, 0x88242cd07084ed02})}, + {Sign::POS, -136, MType({0x1ab9679b55f78a6b, 0x8c2655faa6a1323f})}, + {Sign::POS, -136, MType({0x7025697d10af0436, 0x90288f366b237771})}, + {Sign::POS, -136, MType({0x17e4b7ac6c600cb4, 0x942ad8843ee1a9cd})}, + {Sign::POS, -136, MType({0x7013925a9a8da7f3, 0x982d31e4a2b7c418})}, + {Sign::POS, -136, MType({0xfd1a09c848e3950e, 0x9c2f9b581787cf0d})}, + {Sign::POS, -136, MType({0x84dd2de6e3d90a37, 0xa03214df1e39e1bd})}, + {Sign::POS, -136, MType({0x318b2ddd9d0a33b4, 0xa4349e7a37bc21ed})}, + {Sign::POS, -136, MType({0xbc031e6f5acfd4a8, 0xa8373829e502c47a})}, + {Sign::POS, -136, MType({0x9dd91e52c79fd070, 0xac39e1eea7080dbc})}, + {Sign::POS, -136, MType({0x4af78fa1cb48a12d, 0xb03c9bc8fecc51e3})}, + {Sign::POS, -136, MType({0x72de1d99ce252efd, 0xb43f65b96d55f55a})}, + {Sign::POS, -136, MType({0xefb1dbe721934877, 0xb74187bc8ccffa84})}, + {Sign::POS, -136, MType({0xb4b080f230c87598, 0xbb446dd4d9bca499})}, + {Sign::POS, -136, MType({0xda6a7cd19c7fa4f2, 0xbf476404a05f88f2})}, + {Sign::POS, -136, MType({0xdf00e3783b50ecfb, 0xc34a6a4c61d5cc3c})}, + {Sign::POS, -136, MType({0xda2e5e02ab4e183c, 0xc74d80ac9f42a52d})}, + {Sign::POS, -136, MType({0xea5f6ee99d30c626, 0xcb50a725d9cf5ce6})}, + {Sign::POS, -136, MType({0xa96d5956531d7d8b, 0xcf53ddb892ab4f55})}, + {Sign::POS, -136, MType({0xa8fc636eb36afa75, 0xd35724654b0beb95})}, + {Sign::POS, -136, MType({0xf67e2b827bfc4421, 0xd75a7b2c842cb451})}, + {Sign::POS, -136, MType({0xa6d8c817516303e6, 0xdb5de20ebf4f4026})}, + {Sign::POS, -136, MType({0x69b36ae5962e85f4, 0xdf61590c7dbb3a02})}, + {Sign::POS, -136, MType({0x24693eec2a831cc3, 0xe364e02640be6188})}, + {Sign::POS, -136, MType({0x94a339d56a55ab4a, 0xe768775c89ac8b70})}, + {Sign::POS, -136, MType({0xfa9998fbf9703bf4, 0xeb6c1eafd9dfa1eb})}, + {Sign::POS, -136, MType({0xcafdc27227b71eaa, 0xef6fd620b2b7a503})}, + {Sign::POS, -136, MType({0x688d4282f6026aa3, 0xf3739daf959aaafc})}, + {Sign::POS, -136, MType({0xe54e9e3804464cdd, 0xf777755d03f4e0b6})}, + {Sign::POS, -136, MType({0xcb78b383f4b59dce, 0xfb7b5d297f388a12})}, + {Sign::POS, -136, MType({0xee055fc515062c04, 0xff7f551588de024f})}, + {Sign::POS, -135, MType({0x207812b43382acdd, 0x81c1ae90d131de38})}, + {Sign::POS, -135, MType({0xdc90c4c4b61f3a87, 0x83c3baa726a721cc})}, + {Sign::POS, -135, MType({0x1a03f13fb2c978b1, 0x85c5cece05941dbc})}, + {Sign::POS, -135, MType({0xb36f282e83a7dc36, 0x87c7eb05aec1304f})}, + {Sign::POS, -135, MType({0x6ad14c3dfa414391, 0x89ca0f4e62f9c476})}, + {Sign::POS, -135, MType({0xe8dd4ea0d48b88e5, 0x8bcc3ba8630c51f4})}, + {Sign::POS, -135, MType({0xc02515afe8caeb90, 0x8dce7013efca5d96})}, + {Sign::POS, -135, MType({0x741ceaf3349f3cf1, 0x8fd0ac914a08795f})}, + {Sign::POS, -135, MType({0x83f7cd4929d2c28c, 0x91d2f120b29e44bb})}, + {Sign::POS, -135, MType({0x795d03ebc2fd03fa, 0x93d53dc26a666cb1})}, + {Sign::POS, -135, MType({0xfaf74f1d1ad16acc, 0x95d79276b23eac12})}, + {Sign::POS, -135, MType({0xe2de134f72fee429, 0x97d9ef3dcb07cbad})}, + {Sign::POS, -135, MType({0x58d8dba6cadac5d5, 0x99dc5417f5a5a27d})}, + {Sign::POS, -135, MType({0xf07d90bc5aae40a4, 0x9bdec10572ff15da})}, + {Sign::POS, -135, MType({0x1deaf79d9fc40374, 0x9d6098046659ea6b})}, + {Sign::POS, -135, MType({0x7ba63e6769b81999, 0x9f63131450b07988})}, + {Sign::POS, -135, MType({0x59ebfc9335094e59, 0xa1659638404d5f92})}, + {Sign::POS, -135, MType({0x16aae012b5026f71, 0xa36821707622f97a})}, + {Sign::POS, -135, MType({0xff5d4f2c0e4b9cae, 0xa56ab4bd3326b378})}, + {Sign::POS, -135, MType({0x855838b5119dcb28, 0xa76d501eb8510941})}, + {Sign::POS, -135, MType({0x75f70cbbe9cf1603, 0xa96ff395469d8630})}, + {Sign::POS, -135, MType({0x36a53ad4d5541cc9, 0xab729f211f0ac57e})}, + {Sign::POS, -135, MType({0x4c5934ec32d20d9, 0xad7552c2829a7270})}, + {Sign::POS, -135, MType({0x3977e89aec59bfa2, 0xaf780e79b2514889})}, + {Sign::POS, -135, MType({0x913d4e3dc55c3e6e, 0xb17ad246ef3713bc})}, + {Sign::POS, -135, MType({0x777b52a9e70d8bcc, 0xb37d9e2a7a56b09d})}, + {Sign::POS, -135, MType({0x55de916fd30591de, 0xb580722494be0c91})}, + {Sign::POS, -135, MType({0xe79cfb37be2861e4, 0xb7834e357f7e2600})}, + {Sign::POS, -135, MType({0x90983104d3805389, 0xb986325d7bab0c89})}, + {Sign::POS, -135, MType({0xb860504baa6f984d, 0xbb891e9cca5be12e})}, + {Sign::POS, -135, MType({0x29178d6ff5712b96, 0xbd8c12f3acaad68b})}, + {Sign::POS, -135, MType({0x7236fa47ba19a198, 0xbf8f0f6263b53102})}, + {Sign::POS, -135, MType({0x4f34d64cafcc50e3, 0xc19213e9309b46f2})}, + {Sign::POS, -135, MType({0x120cc62eb0a8db3e, 0xc3952088548080e4})}, + {Sign::POS, -135, MType({0x11aa5084779060e3, 0xc5983540108b59be})}, + {Sign::POS, -135, MType({0x1c35fd6236c8dcf1, 0xc79b5210a5e55ef5})}, + {Sign::POS, -135, MType({0xed4576a7e4b878fe, 0xc99e76fa55bb30bd})}, + {Sign::POS, -135, MType({0x6caf4bb8fd2c1131, 0xcb20d7fa3a336081})}, + {Sign::POS, -135, MType({0x3f24a6cbb09c654f, 0xcd240b10753e78de})}, + {Sign::POS, -135, MType({0x78bc003bb81e40f3, 0xcf2746407e0ff09f})}, + {Sign::POS, -135, MType({0x56647301edfd8e8b, 0xd12a898a95dff002})}, + {Sign::POS, -135, MType({0x28fe1c4d04ca4ed9, 0xd32dd4eefde9b2ef})}, + {Sign::POS, -135, MType({0xe1ea9ea6cbf57379, 0xd531286df76b892a})}, + {Sign::POS, -135, MType({0xa3832028141a5cc2, 0xd7348407c3a6d688})}, + {Sign::POS, -135, MType({0x557421dd379d3ead, 0xd937e7bca3e0131b})}, + {Sign::POS, -135, MType({0x3cff8e87a99bcaf0, 0xdb3b538cd95ecb67})}, + {Sign::POS, -135, MType({0x99255ef34bd0801f, 0xdd3ec778a56da093})}, + {Sign::POS, -135, MType({0x42b33220abfa15cd, 0xdf424380495a489c})}, + {Sign::POS, -135, MType({0x503b378faa97dbc0, 0xe145c7a406758e83})}, + {Sign::POS, -135, MType({0xbdf2ca006f59b544, 0xe34953e41e135282})}, + {Sign::POS, -135, MType({0x1979190af37ed16f, 0xe54ce840d18a8a3e})}, + {Sign::POS, -135, MType({0x31863ff7cf898c9c, 0xe75084ba623540f4})}, + {Sign::POS, -135, MType({0xc983284f60293647, 0xe9542951117097b0})}, + {Sign::POS, -135, MType({0x510a969ebe03f804, 0xeb57d605209cc57e})}, + {Sign::POS, -135, MType({0x9f53bffc6d23fe30, 0xed5b8ad6d11d1797})}, + {Sign::POS, -135, MType({0xb286c6e113337886, 0xef5f47c66457f199})}, + {Sign::POS, -135, MType({0xb6ed80852ae6fd63, 0xf0e21acdd6e7d412})}, + {Sign::POS, -135, MType({0xdf437fb0f616082d, 0xf2e5e5f25450c5a2})}, + {Sign::POS, -135, MType({0xf237cff1acb306b3, 0xf4e9b935685dbe0b})}, + {Sign::POS, -135, MType({0x52dbfafb4121a092, 0xf6ed94975480b696})}, + {Sign::POS, -135, MType({0xd81648249cece4c, 0xf8f178185a2ebfd9})}, + {Sign::POS, -135, MType({0xad95e6b0b96903d3, 0xfaf563b8bae001eb})}, + {Sign::POS, -135, MType({0x176cd56887ac7fe9, 0xfcf95778b80fbc98})}, + {Sign::POS, -135, MType({0x65f4c7397f1f478d, 0xfefd5358933c478c})}, }, // -log(r) for the third step, generated by SageMath with: // // for i in range(-80, 81): // r = 2^-21 * round( 2^21 / (1 + i*2^(-21)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); - // print("{false," if (s == -1) else "{true,", e, ", + // print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_3 = */ { - {true, -142, MType({0x374b294076d669c3, 0x9fff38014d52e45a})}, - {true, -142, MType({0x7f6f05dcdbeb776e, 0x9dff3cf940fad85a})}, - {true, -142, MType({0x3d55e21d41bbadf9, 0x9bff41e134f1cb36})}, - {true, -142, MType({0xccdba2d54aadbc5c, 0x99ff46b92936bcf4})}, - {true, -142, MType({0x71dd16d3073f79b2, 0x97ff4b811dc8ad9d})}, - {true, -142, MType({0x5837f3df1a58dd48, 0x95ff503912a69d37})}, - {true, -142, MType({0x93cad3bcdd26fd6d, 0x93ff54e107cf8bc9})}, - {true, -142, MType({0x2075312a827f14fa, 0x91ff5978fd42795b})}, - {true, -142, MType({0xe21764e139c98f60, 0x8fff5e00f2fe65f2})}, - {true, -142, MType({0xa492a29551751b4c, 0x8dff6278e9025197})}, - {true, -142, MType({0x1bc8f5f658f1c3a2, 0x8bff66e0df4d3c50})}, - {true, -142, MType({0xe39d3faf42340ed7, 0x89ff6b38d5de2622})}, - {true, -142, MType({0x7ff3326682c02485, 0x87ff6f80ccb40f16})}, - {true, -142, MType({0x5caf4fbe343cf928, 0x85ff73b8c3cdf731})}, - {true, -142, MType({0xcdb6e554348f7fe8, 0x83ff77e0bb2ade79})}, - {true, -142, MType({0xef009c2457de25d, 0x81ff7bf8b2c9c4f6})}, - {true, -143, MType({0x8883333c57b57c74, 0xffff000155535558})}, - {true, -143, MType({0xf32668f39c70d183, 0xfbff07f145931f44})}, - {true, -143, MType({0x459a73c6a6486fe3, 0xf7ff0fc13650e7bd})}, - {true, -143, MType({0x37b18cca7dd3a29f, 0xf3ff1771278aaecd})}, - {true, -143, MType({0x513f610d21bcfc78, 0xefff1f01193e7480})}, - {true, -143, MType({0xea190b95c0690b7b, 0xebff26710b6a38e1})}, - {true, -143, MType({0x2a150f64f0ad1743, 0xe7ff2dc0fe0bfbfd})}, - {true, -143, MType({0x90b5174e995e9d1, 0xe3ff34f0f121bddd})}, - {true, -143, MType({0x4ed512b9b93ea2bf, 0xdfff3c00e4a97e8c})}, - {true, -143, MType({0x934cea217ab794a2, 0xdbff42f0d8a13e15})}, - {true, -143, MType({0x3e4ebe948afd2c76, 0xd7ff49c0cd06fc83})}, - {true, -143, MType({0x87b7c0f5bcfee2e1, 0xd3ff5070c1d8b9df})}, - {true, -143, MType({0x776666228cb6371b, 0xcfff5700b7147634})}, - {true, -143, MType({0xe53a60f3514db358, 0xcbff5d70acb8318b})}, - {true, -143, MType({0x79149c3b6e57fa86, 0xc7ff63c0a2c1ebef})}, - {true, -143, MType({0xaad734c98416df2a, 0xc3ff69f0992fa568})}, - {true, -143, MType({0xc26573679ed28334, 0xbfff70008fff5e00})}, - {true, -143, MType({0xd7a3c6db6540809f, 0xbbff75f0872f15c0})}, - {true, -143, MType({0xd277bde645fb1aad, 0xb7ff7bc07ebcccb1})}, - {true, -143, MType({0x6ac80145a4087793, 0xb3ff817076a682dc})}, - {true, -143, MType({0x287c4db30271e265, 0xafff87006eea3849})}, - {true, -143, MType({0x637d6de42eeb151e, 0xabff8c706785ed00})}, - {true, -143, MType({0x43b5348b6b898a8c, 0xa7ff91c06077a10a})}, - {true, -143, MType({0xc10e7657978bd7f6, 0xa3ff96f059bd546e})}, - {true, -143, MType({0xa37503f457310e59, 0x9fff9c0053550735})}, - {true, -143, MType({0x82d5a40a3aa022ff, 0x9bffa0f04d3cb966})}, - {true, -143, MType({0xc71e0d3ee3df5f4d, 0x97ffa5c047726b08})}, - {true, -143, MType({0xa83ce0352bdbd79b, 0x93ffaa7041f41c23})}, - {true, -143, MType({0x2e21a18d4680e8e4, 0x8fffaf003cbfccbe})}, - {true, -143, MType({0x30bcb3e4e5dfbd28, 0x8bffb37037d37cdf})}, - {true, -143, MType({0x57ff51d75c66d64a, 0x87ffb7c0332d2c8d})}, - {true, -143, MType({0x1bdb87fdbe299f43, 0x83ffbbf02ecadbcf})}, - {true, -144, MType({0x88885dde02700703, 0xffff800055551555})}, - {true, -144, MType({0xd259ca803a0c1870, 0xf7ff87e04d94724c})}, - {true, -144, MType({0xe514130851c7070a, 0xefff8f80464fce8f})}, - {true, -144, MType({0x30a16898f3073a64, 0xe7ff96e03f832a2a})}, - {true, -144, MType({0xc4ed64517b2949ce, 0xdfff9e00392a8526})}, - {true, -144, MType({0x51e4fb4e32cf6350, 0xd7ffa4e03341df90})}, - {true, -144, MType({0x277672a88350bcce, 0xcfffab802dc53971})}, - {true, -144, MType({0x359153772a490f06, 0xc7ffb1e028b092d3})}, - {true, -144, MType({0xc265ece6b481a0e, 0xbfffb80023ffebc0})}, - {true, -144, MType({0xdb2781c03fa132f6, 0xb7ffbde01faf4440})}, - {true, -144, MType({0x7287c95c845ada33, 0xafffc3801bba9c5e})}, - {true, -144, MType({0x423b56b1263e5a77, 0xa7ffc8e0181df421})}, - {true, -144, MType({0x5a3752ca4c076fa3, 0x9fffce0014d54b91})}, - {true, -144, MType({0x6a71e2b27eb3f573, 0x97ffd2e011dca2b6})}, - {true, -144, MType({0xc2e21b72cff39d8f, 0x8fffd7800f2ff997})}, - {true, -144, MType({0x537ff612feb7ac9e, 0x87ffdbe00ccb503c})}, - {true, -145, MType({0x5888873333c57c18, 0xffffc00015554d55})}, - {true, -145, MType({0xfa51421842311c42, 0xefffc7c01193f9d1})}, - {true, -145, MType({0x2c4ed6de475b942c, 0xdfffcf000e4aa5fa})}, - {true, -145, MType({0xce77678cbb6fcb88, 0xcfffd5c00b7151d8})}, - {true, -145, MType({0xc26629a679ed3b, 0xbfffdc0008fffd78})}, - {true, -145, MType({0x23287cb9d3072728, 0xafffe1c006eea8e1})}, - {true, -145, MType({0xd5a37540fd057315, 0x9fffe7000535541c})}, - {true, -145, MType({0xf82e21c1fce36810, 0x8fffebc003cbff32})}, - {true, -146, MType({0x5588887ddde02702, 0xffffe00005555455})}, - {true, -146, MType({0x9ac4ed72adf5b295, 0xdfffe7800392aa14})}, - {true, -146, MType({0xc26648066b482, 0xbfffee00023fffaf})}, - {true, -146, MType({0x455a3754b292c077, 0x9ffff380014d552e})}, - {true, -147, MType({0x5558888833333c58, 0xfffff00001555535})}, - {true, -147, MType({0xe000c2665736679f, 0xbffff700008ffff5})}, - {true, -148, MType({0x5555888885ddde02, 0xfffff80000555551})}, - {true, -149, MType({0xd555588888733334, 0xfffffc0000155554})}, - {false, 0, MType({0x0, 0x0})}, - {false, -148, MType({0xeaaaac44444eeeef, 0x80000200000aaaaa})}, - {false, -147, MType({0xaaaac444459999ac, 0x80000400002aaaac})}, - {false, -147, MType({0x2000c2667596679f, 0xc00009000090000a})}, - {false, -146, MType({0xaaac44446eeef381, 0x8000080000aaaaba})}, - {false, -146, MType({0x655a3755f81815cc, 0xa0000c80014d557c})}, - {false, -146, MType({0xc26684c66b482, 0xc000120002400051})}, - {false, -146, MType({0xbac4ed7c40fb07eb, 0xe00018800392ab40})}, - {false, -145, MType({0xaac44449999abe2c, 0x8000100002aaab2a})}, - {false, -145, MType({0x82e21d79cbb6812, 0x9000144003cc00cd})}, - {false, -145, MType({0xd5a37569adb01dc3, 0xa00019000535568d})}, - {false, -145, MType({0x33287d01e8c9d1d9, 0xb0001e4006eeac74})}, - {false, -145, MType({0xc266a32679ed48, 0xc000240009000288})}, - {false, -145, MType({0xde77685122b2764b, 0xd0002a400b7158d1})}, - {false, -145, MType({0x2c4ed810a8063f03, 0xe00031000e4aaf5b})}, - {false, -145, MType({0xa5143e7be891c8f, 0xf00038401194062e})}, - {false, -144, MType({0xac4444eeef3813a1, 0x800020000aaaaeaa})}, - {false, -144, MType({0x5b7ff7fe1339025b, 0x880024200ccb5a6e})}, - {false, -144, MType({0x42e21e26caf39e33, 0x900028800f300668})}, - {false, -144, MType({0xf271e66fa5554bc6, 0x98002d2011dcb29e})}, - {false, -144, MType({0x5a3757e0615cc676, 0xa000320014d55f19})}, - {false, -144, MType({0xca3b5d8210ca5cab, 0xa8003720181e0bde})}, - {false, -144, MType({0xf287d25f3cb032bb, 0xb0003c801bbab8f6})}, - {false, -144, MType({0xe3278d840be28cdb, 0xb80042201faf6669})}, - {false, -144, MType({0xc266dfe6b482076, 0xc000480024001440})}, - {false, -144, MType({0x3d9166de380a6d3d, 0xc8004e2028b0c282})}, - {false, -144, MType({0xa7768b356ba61e4b, 0xd00054802dc57139})}, - {false, -144, MType({0xd9e51a1849db73c1, 0xd8005b203342206f})}, - {false, -144, MType({0xc4ed8a9d907eb521, 0xe0006200392ad02e})}, - {false, -144, MType({0xb8a197dea928acd7, 0xe80069203f838080})}, - {false, -144, MType({0x65144cf7dcc72d3b, 0xf000708046503170})}, - {false, -144, MType({0xda5a1108890d9f6a, 0xf80078204d94e308})}, - {false, -143, MType({0xc4445999abe2ce2c, 0x800040002aaacaaa})}, - {false, -143, MType({0x1fdbbb4f3bffc832, 0x840044102ecb2431})}, - {false, -143, MType({0x97ff8f39ec91b4ee, 0x88004840332d7e1d})}, - {false, -143, MType({0x74bcfcf0b3f0a95d, 0x8c004c9037d3d876})}, - {false, -143, MType({0x2e21f80ca6813aff, 0x900051003cc03342})}, - {false, -143, MType({0x6c3d4629170ce87f, 0x9400559041f48e87})}, - {false, -143, MType({0x71e84e3b80a8881, 0x98005a404772ea4d})}, - {false, -143, MType({0x6d62fdcbdd6bec3, 0x9c005f104d3d469a})}, - {false, -143, MType({0xa375a6b701dc77c0, 0xa00064005355a375})}, - {false, -143, MType({0x450f331826ad6b05, 0xa400691059be00e7})}, - {false, -143, MType({0x83b60ea8bd0aa459, 0xa8006e4060785ef6})}, - {false, -143, MType({0x277e691469dd13f5, 0xac0073906786bdab})}, - {false, -143, MType({0x287d6e0a0d1e25eb, 0xb00079006eeb1d0d})}, - {false, -143, MType({0xaec94b3be9b060f5, 0xb4007e9076a77d24})}, - {false, -143, MType({0x1279365fce280cce, 0xb80084407ebdddfa})}, - {false, -143, MType({0xdba5732f3e83e04a, 0xbc008a1087303f95})}, - {false, -143, MType({0xc26759679ed5b754, 0xc00090009000a200})}, - {false, -143, MType({0xaed95aca5edb5109, 0xc400961099310543})}, - {false, -143, MType({0xb917091d2687160f, 0xc8009c40a2c36967})}, - {false, -143, MType({0x293d1c2a0378e75d, 0xcc00a290acb9ce76})}, - {false, -143, MType({0x776977bf9766f5a7, 0xd000a900b7163478})}, - {false, -143, MType({0x4bbb31b14776a18b, 0xd400af90c1da9b78})}, - {false, -143, MType({0x7e5297d76c8564ba, 0xd800b640cd09037f})}, - {false, -143, MType({0x1751360f8461c447, 0xdc00bd10d8a36c98})}, - {false, -143, MType({0x4ed9dc3c63f44c41, 0xe000c400e4abd6cc})}, - {false, -143, MType({0x8d10a4466a5894d5, 0xe400cb10f1244226})}, - {false, -143, MType({0x6a1af81bb4e6510e, 0xe800d240fe0eaeb1})}, - {false, -143, MType({0xae1f97b0542a677a, 0xec00d9910b6d1c77})}, - {false, -143, MType({0x51469efe81d014cc, 0xf000e10119418b84})}, - {false, -143, MType({0x7bb98c06d77a18b4, 0xf400e891278dfbe2})}, - {false, -143, MType({0x85a344d0868bed17, 0xf800f04136546d9d})}, - {false, -143, MType({0xf7301d6990e307cc, 0xfc00f8114596e0c0})}, - {false, -142, MType({0x4446eef38140138f, 0x80008000aaabaaac})}, - {false, -142, MType({0x10f5e43296105497, 0x82008408b2cbe5b8})}, - {false, -142, MType({0xedbd4f83ef63f730, 0x84008820bb2d2189})}, - {false, -142, MType({0xfeb654fd541c638e, 0x86008c48c3d05e27})}, - {false, -142, MType({0x7ffadeb8882f7674, 0x88009080ccb69b98})}, - {false, -142, MType({0xc5a59fd36bd44397, 0x8a0094c8d5e0d9e1})}, - {false, -142, MType({0x3bd217701b27dddb, 0x8c009920df50190a})}, - {false, -142, MType({0x669c93b50e4a2595, 0x8e009d88e9055918})}, - {false, -142, MType({0xe22234cd39f29cd4, 0x9000a200f3019a12})}, - {false, -142, MType({0x6280efe8307d41d9, 0x9200a688fd45dc00})}, - {false, -142, MType({0xb3d7923a436f6fc4, 0x9400ab2107d31ee7})}, - {false, -142, MType({0xba45c3fca574c5a0, 0x9600afc912aa62cf})}, - {false, -142, MType({0x71ec0b6d8cd413d1, 0x9800b4811dcca7bf})}, - {false, -142, MType({0xeeebcfd0565c5006, 0x9a00b949293aedbd})}, - {false, -142, MType({0x5d675c6da8c98fc3, 0x9c00be2134f634d2})}, - {false, -142, MType({0x181e39398a2099a, 0x9e00c30940ff7d04})}, - {false, -142, MType({0x375f8195cc8b1d29, 0xa000c8014d57c65a})}, + {Sign::NEG, -142, MType({0x374b294076d669c3, 0x9fff38014d52e45a})}, + {Sign::NEG, -142, MType({0x7f6f05dcdbeb776e, 0x9dff3cf940fad85a})}, + {Sign::NEG, -142, MType({0x3d55e21d41bbadf9, 0x9bff41e134f1cb36})}, + {Sign::NEG, -142, MType({0xccdba2d54aadbc5c, 0x99ff46b92936bcf4})}, + {Sign::NEG, -142, MType({0x71dd16d3073f79b2, 0x97ff4b811dc8ad9d})}, + {Sign::NEG, -142, MType({0x5837f3df1a58dd48, 0x95ff503912a69d37})}, + {Sign::NEG, -142, MType({0x93cad3bcdd26fd6d, 0x93ff54e107cf8bc9})}, + {Sign::NEG, -142, MType({0x2075312a827f14fa, 0x91ff5978fd42795b})}, + {Sign::NEG, -142, MType({0xe21764e139c98f60, 0x8fff5e00f2fe65f2})}, + {Sign::NEG, -142, MType({0xa492a29551751b4c, 0x8dff6278e9025197})}, + {Sign::NEG, -142, MType({0x1bc8f5f658f1c3a2, 0x8bff66e0df4d3c50})}, + {Sign::NEG, -142, MType({0xe39d3faf42340ed7, 0x89ff6b38d5de2622})}, + {Sign::NEG, -142, MType({0x7ff3326682c02485, 0x87ff6f80ccb40f16})}, + {Sign::NEG, -142, MType({0x5caf4fbe343cf928, 0x85ff73b8c3cdf731})}, + {Sign::NEG, -142, MType({0xcdb6e554348f7fe8, 0x83ff77e0bb2ade79})}, + {Sign::NEG, -142, MType({0xef009c2457de25d, 0x81ff7bf8b2c9c4f6})}, + {Sign::NEG, -143, MType({0x8883333c57b57c74, 0xffff000155535558})}, + {Sign::NEG, -143, MType({0xf32668f39c70d183, 0xfbff07f145931f44})}, + {Sign::NEG, -143, MType({0x459a73c6a6486fe3, 0xf7ff0fc13650e7bd})}, + {Sign::NEG, -143, MType({0x37b18cca7dd3a29f, 0xf3ff1771278aaecd})}, + {Sign::NEG, -143, MType({0x513f610d21bcfc78, 0xefff1f01193e7480})}, + {Sign::NEG, -143, MType({0xea190b95c0690b7b, 0xebff26710b6a38e1})}, + {Sign::NEG, -143, MType({0x2a150f64f0ad1743, 0xe7ff2dc0fe0bfbfd})}, + {Sign::NEG, -143, MType({0x90b5174e995e9d1, 0xe3ff34f0f121bddd})}, + {Sign::NEG, -143, MType({0x4ed512b9b93ea2bf, 0xdfff3c00e4a97e8c})}, + {Sign::NEG, -143, MType({0x934cea217ab794a2, 0xdbff42f0d8a13e15})}, + {Sign::NEG, -143, MType({0x3e4ebe948afd2c76, 0xd7ff49c0cd06fc83})}, + {Sign::NEG, -143, MType({0x87b7c0f5bcfee2e1, 0xd3ff5070c1d8b9df})}, + {Sign::NEG, -143, MType({0x776666228cb6371b, 0xcfff5700b7147634})}, + {Sign::NEG, -143, MType({0xe53a60f3514db358, 0xcbff5d70acb8318b})}, + {Sign::NEG, -143, MType({0x79149c3b6e57fa86, 0xc7ff63c0a2c1ebef})}, + {Sign::NEG, -143, MType({0xaad734c98416df2a, 0xc3ff69f0992fa568})}, + {Sign::NEG, -143, MType({0xc26573679ed28334, 0xbfff70008fff5e00})}, + {Sign::NEG, -143, MType({0xd7a3c6db6540809f, 0xbbff75f0872f15c0})}, + {Sign::NEG, -143, MType({0xd277bde645fb1aad, 0xb7ff7bc07ebcccb1})}, + {Sign::NEG, -143, MType({0x6ac80145a4087793, 0xb3ff817076a682dc})}, + {Sign::NEG, -143, MType({0x287c4db30271e265, 0xafff87006eea3849})}, + {Sign::NEG, -143, MType({0x637d6de42eeb151e, 0xabff8c706785ed00})}, + {Sign::NEG, -143, MType({0x43b5348b6b898a8c, 0xa7ff91c06077a10a})}, + {Sign::NEG, -143, MType({0xc10e7657978bd7f6, 0xa3ff96f059bd546e})}, + {Sign::NEG, -143, MType({0xa37503f457310e59, 0x9fff9c0053550735})}, + {Sign::NEG, -143, MType({0x82d5a40a3aa022ff, 0x9bffa0f04d3cb966})}, + {Sign::NEG, -143, MType({0xc71e0d3ee3df5f4d, 0x97ffa5c047726b08})}, + {Sign::NEG, -143, MType({0xa83ce0352bdbd79b, 0x93ffaa7041f41c23})}, + {Sign::NEG, -143, MType({0x2e21a18d4680e8e4, 0x8fffaf003cbfccbe})}, + {Sign::NEG, -143, MType({0x30bcb3e4e5dfbd28, 0x8bffb37037d37cdf})}, + {Sign::NEG, -143, MType({0x57ff51d75c66d64a, 0x87ffb7c0332d2c8d})}, + {Sign::NEG, -143, MType({0x1bdb87fdbe299f43, 0x83ffbbf02ecadbcf})}, + {Sign::NEG, -144, MType({0x88885dde02700703, 0xffff800055551555})}, + {Sign::NEG, -144, MType({0xd259ca803a0c1870, 0xf7ff87e04d94724c})}, + {Sign::NEG, -144, MType({0xe514130851c7070a, 0xefff8f80464fce8f})}, + {Sign::NEG, -144, MType({0x30a16898f3073a64, 0xe7ff96e03f832a2a})}, + {Sign::NEG, -144, MType({0xc4ed64517b2949ce, 0xdfff9e00392a8526})}, + {Sign::NEG, -144, MType({0x51e4fb4e32cf6350, 0xd7ffa4e03341df90})}, + {Sign::NEG, -144, MType({0x277672a88350bcce, 0xcfffab802dc53971})}, + {Sign::NEG, -144, MType({0x359153772a490f06, 0xc7ffb1e028b092d3})}, + {Sign::NEG, -144, MType({0xc265ece6b481a0e, 0xbfffb80023ffebc0})}, + {Sign::NEG, -144, MType({0xdb2781c03fa132f6, 0xb7ffbde01faf4440})}, + {Sign::NEG, -144, MType({0x7287c95c845ada33, 0xafffc3801bba9c5e})}, + {Sign::NEG, -144, MType({0x423b56b1263e5a77, 0xa7ffc8e0181df421})}, + {Sign::NEG, -144, MType({0x5a3752ca4c076fa3, 0x9fffce0014d54b91})}, + {Sign::NEG, -144, MType({0x6a71e2b27eb3f573, 0x97ffd2e011dca2b6})}, + {Sign::NEG, -144, MType({0xc2e21b72cff39d8f, 0x8fffd7800f2ff997})}, + {Sign::NEG, -144, MType({0x537ff612feb7ac9e, 0x87ffdbe00ccb503c})}, + {Sign::NEG, -145, MType({0x5888873333c57c18, 0xffffc00015554d55})}, + {Sign::NEG, -145, MType({0xfa51421842311c42, 0xefffc7c01193f9d1})}, + {Sign::NEG, -145, MType({0x2c4ed6de475b942c, 0xdfffcf000e4aa5fa})}, + {Sign::NEG, -145, MType({0xce77678cbb6fcb88, 0xcfffd5c00b7151d8})}, + {Sign::NEG, -145, MType({0xc26629a679ed3b, 0xbfffdc0008fffd78})}, + {Sign::NEG, -145, MType({0x23287cb9d3072728, 0xafffe1c006eea8e1})}, + {Sign::NEG, -145, MType({0xd5a37540fd057315, 0x9fffe7000535541c})}, + {Sign::NEG, -145, MType({0xf82e21c1fce36810, 0x8fffebc003cbff32})}, + {Sign::NEG, -146, MType({0x5588887ddde02702, 0xffffe00005555455})}, + {Sign::NEG, -146, MType({0x9ac4ed72adf5b295, 0xdfffe7800392aa14})}, + {Sign::NEG, -146, MType({0xc26648066b482, 0xbfffee00023fffaf})}, + {Sign::NEG, -146, MType({0x455a3754b292c077, 0x9ffff380014d552e})}, + {Sign::NEG, -147, MType({0x5558888833333c58, 0xfffff00001555535})}, + {Sign::NEG, -147, MType({0xe000c2665736679f, 0xbffff700008ffff5})}, + {Sign::NEG, -148, MType({0x5555888885ddde02, 0xfffff80000555551})}, + {Sign::NEG, -149, MType({0xd555588888733334, 0xfffffc0000155554})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -148, MType({0xeaaaac44444eeeef, 0x80000200000aaaaa})}, + {Sign::POS, -147, MType({0xaaaac444459999ac, 0x80000400002aaaac})}, + {Sign::POS, -147, MType({0x2000c2667596679f, 0xc00009000090000a})}, + {Sign::POS, -146, MType({0xaaac44446eeef381, 0x8000080000aaaaba})}, + {Sign::POS, -146, MType({0x655a3755f81815cc, 0xa0000c80014d557c})}, + {Sign::POS, -146, MType({0xc26684c66b482, 0xc000120002400051})}, + {Sign::POS, -146, MType({0xbac4ed7c40fb07eb, 0xe00018800392ab40})}, + {Sign::POS, -145, MType({0xaac44449999abe2c, 0x8000100002aaab2a})}, + {Sign::POS, -145, MType({0x82e21d79cbb6812, 0x9000144003cc00cd})}, + {Sign::POS, -145, MType({0xd5a37569adb01dc3, 0xa00019000535568d})}, + {Sign::POS, -145, MType({0x33287d01e8c9d1d9, 0xb0001e4006eeac74})}, + {Sign::POS, -145, MType({0xc266a32679ed48, 0xc000240009000288})}, + {Sign::POS, -145, MType({0xde77685122b2764b, 0xd0002a400b7158d1})}, + {Sign::POS, -145, MType({0x2c4ed810a8063f03, 0xe00031000e4aaf5b})}, + {Sign::POS, -145, MType({0xa5143e7be891c8f, 0xf00038401194062e})}, + {Sign::POS, -144, MType({0xac4444eeef3813a1, 0x800020000aaaaeaa})}, + {Sign::POS, -144, MType({0x5b7ff7fe1339025b, 0x880024200ccb5a6e})}, + {Sign::POS, -144, MType({0x42e21e26caf39e33, 0x900028800f300668})}, + {Sign::POS, -144, MType({0xf271e66fa5554bc6, 0x98002d2011dcb29e})}, + {Sign::POS, -144, MType({0x5a3757e0615cc676, 0xa000320014d55f19})}, + {Sign::POS, -144, MType({0xca3b5d8210ca5cab, 0xa8003720181e0bde})}, + {Sign::POS, -144, MType({0xf287d25f3cb032bb, 0xb0003c801bbab8f6})}, + {Sign::POS, -144, MType({0xe3278d840be28cdb, 0xb80042201faf6669})}, + {Sign::POS, -144, MType({0xc266dfe6b482076, 0xc000480024001440})}, + {Sign::POS, -144, MType({0x3d9166de380a6d3d, 0xc8004e2028b0c282})}, + {Sign::POS, -144, MType({0xa7768b356ba61e4b, 0xd00054802dc57139})}, + {Sign::POS, -144, MType({0xd9e51a1849db73c1, 0xd8005b203342206f})}, + {Sign::POS, -144, MType({0xc4ed8a9d907eb521, 0xe0006200392ad02e})}, + {Sign::POS, -144, MType({0xb8a197dea928acd7, 0xe80069203f838080})}, + {Sign::POS, -144, MType({0x65144cf7dcc72d3b, 0xf000708046503170})}, + {Sign::POS, -144, MType({0xda5a1108890d9f6a, 0xf80078204d94e308})}, + {Sign::POS, -143, MType({0xc4445999abe2ce2c, 0x800040002aaacaaa})}, + {Sign::POS, -143, MType({0x1fdbbb4f3bffc832, 0x840044102ecb2431})}, + {Sign::POS, -143, MType({0x97ff8f39ec91b4ee, 0x88004840332d7e1d})}, + {Sign::POS, -143, MType({0x74bcfcf0b3f0a95d, 0x8c004c9037d3d876})}, + {Sign::POS, -143, MType({0x2e21f80ca6813aff, 0x900051003cc03342})}, + {Sign::POS, -143, MType({0x6c3d4629170ce87f, 0x9400559041f48e87})}, + {Sign::POS, -143, MType({0x71e84e3b80a8881, 0x98005a404772ea4d})}, + {Sign::POS, -143, MType({0x6d62fdcbdd6bec3, 0x9c005f104d3d469a})}, + {Sign::POS, -143, MType({0xa375a6b701dc77c0, 0xa00064005355a375})}, + {Sign::POS, -143, MType({0x450f331826ad6b05, 0xa400691059be00e7})}, + {Sign::POS, -143, MType({0x83b60ea8bd0aa459, 0xa8006e4060785ef6})}, + {Sign::POS, -143, MType({0x277e691469dd13f5, 0xac0073906786bdab})}, + {Sign::POS, -143, MType({0x287d6e0a0d1e25eb, 0xb00079006eeb1d0d})}, + {Sign::POS, -143, MType({0xaec94b3be9b060f5, 0xb4007e9076a77d24})}, + {Sign::POS, -143, MType({0x1279365fce280cce, 0xb80084407ebdddfa})}, + {Sign::POS, -143, MType({0xdba5732f3e83e04a, 0xbc008a1087303f95})}, + {Sign::POS, -143, MType({0xc26759679ed5b754, 0xc00090009000a200})}, + {Sign::POS, -143, MType({0xaed95aca5edb5109, 0xc400961099310543})}, + {Sign::POS, -143, MType({0xb917091d2687160f, 0xc8009c40a2c36967})}, + {Sign::POS, -143, MType({0x293d1c2a0378e75d, 0xcc00a290acb9ce76})}, + {Sign::POS, -143, MType({0x776977bf9766f5a7, 0xd000a900b7163478})}, + {Sign::POS, -143, MType({0x4bbb31b14776a18b, 0xd400af90c1da9b78})}, + {Sign::POS, -143, MType({0x7e5297d76c8564ba, 0xd800b640cd09037f})}, + {Sign::POS, -143, MType({0x1751360f8461c447, 0xdc00bd10d8a36c98})}, + {Sign::POS, -143, MType({0x4ed9dc3c63f44c41, 0xe000c400e4abd6cc})}, + {Sign::POS, -143, MType({0x8d10a4466a5894d5, 0xe400cb10f1244226})}, + {Sign::POS, -143, MType({0x6a1af81bb4e6510e, 0xe800d240fe0eaeb1})}, + {Sign::POS, -143, MType({0xae1f97b0542a677a, 0xec00d9910b6d1c77})}, + {Sign::POS, -143, MType({0x51469efe81d014cc, 0xf000e10119418b84})}, + {Sign::POS, -143, MType({0x7bb98c06d77a18b4, 0xf400e891278dfbe2})}, + {Sign::POS, -143, MType({0x85a344d0868bed17, 0xf800f04136546d9d})}, + {Sign::POS, -143, MType({0xf7301d6990e307cc, 0xfc00f8114596e0c0})}, + {Sign::POS, -142, MType({0x4446eef38140138f, 0x80008000aaabaaac})}, + {Sign::POS, -142, MType({0x10f5e43296105497, 0x82008408b2cbe5b8})}, + {Sign::POS, -142, MType({0xedbd4f83ef63f730, 0x84008820bb2d2189})}, + {Sign::POS, -142, MType({0xfeb654fd541c638e, 0x86008c48c3d05e27})}, + {Sign::POS, -142, MType({0x7ffadeb8882f7674, 0x88009080ccb69b98})}, + {Sign::POS, -142, MType({0xc5a59fd36bd44397, 0x8a0094c8d5e0d9e1})}, + {Sign::POS, -142, MType({0x3bd217701b27dddb, 0x8c009920df50190a})}, + {Sign::POS, -142, MType({0x669c93b50e4a2595, 0x8e009d88e9055918})}, + {Sign::POS, -142, MType({0xe22234cd39f29cd4, 0x9000a200f3019a12})}, + {Sign::POS, -142, MType({0x6280efe8307d41d9, 0x9200a688fd45dc00})}, + {Sign::POS, -142, MType({0xb3d7923a436f6fc4, 0x9400ab2107d31ee7})}, + {Sign::POS, -142, MType({0xba45c3fca574c5a0, 0x9600afc912aa62cf})}, + {Sign::POS, -142, MType({0x71ec0b6d8cd413d1, 0x9800b4811dcca7bf})}, + {Sign::POS, -142, MType({0xeeebcfd0565c5006, 0x9a00b949293aedbd})}, + {Sign::POS, -142, MType({0x5d675c6da8c98fc3, 0x9c00be2134f634d2})}, + {Sign::POS, -142, MType({0x181e39398a2099a, 0x9e00c30940ff7d04})}, + {Sign::POS, -142, MType({0x375f8195cc8b1d29, 0xa000c8014d57c65a})}, }, // -log(r) for the fourth step, generated by SageMath with: @@ -558,140 +559,140 @@ alignas(64) const LogRR LOG_TABLE = { // for i in range(-65, 65): // r = 2^-28 * round( 2^28 / (1 + i*2^(-28)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); - // print("{false," if (s == -1) else "{true,", e, ", + // print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_4 = */ { - {true, -149, MType({0x4cd24d68ff2f11ae, 0x81fffef7f002cb2b})}, - {true, -150, MType({0x455555888887ddde, 0xfffffe0000055555})}, - {true, -150, MType({0xf0fa101f52b3971f, 0xfbfffe0fe0051653})}, - {true, -150, MType({0x9c9329d659ed3734, 0xf7fffe1f8004d94a})}, - {true, -150, MType({0x4821006d9b58462e, 0xf3fffe2ee0049e31})}, - {true, -150, MType({0xf3a3f025142f8c21, 0xeffffe3e000464ff})}, - {true, -150, MType({0x9f1c53bcc1c4b11c, 0xebfffe4ce0042dae})}, - {true, -150, MType({0x4a8a8474a17fdd30, 0xe7fffe5b8003f835})}, - {true, -150, MType({0xf5eeda0cb0df586d, 0xe3fffe69e003c48b})}, - {true, -150, MType({0xa149aac4ed772adf, 0xdffffe78000392aa})}, - {true, -150, MType({0x4c9b4b5d54f0bc96, 0xdbfffe85e0036289})}, - {true, -150, MType({0xf7e40f15e50a759f, 0xd7fffe938003341f})}, - {true, -150, MType({0xa32447ae9b975e05, 0xd3fffea0e0030766})}, - {true, -150, MType({0x4e5c4567767ebdd5, 0xcffffeae0002dc55})}, - {true, -150, MType({0xf98c570073bbbd19, 0xcbfffebae002b2e3})}, - {true, -150, MType({0xa4b4c9b9915d03dd, 0xc7fffec780028b0a})}, - {true, -150, MType({0x4fd5e952cd845a28, 0xc3fffed3e00264c1})}, - {true, -150, MType({0xfaf0000c26664806, 0xbffffee000023fff})}, - {true, -150, MType({0xa60356a59a49b57f, 0xbbfffeebe0021cbe})}, - {true, -150, MType({0x5110345f27878a9b, 0xb7fffef78001faf5})}, - {true, -150, MType({0xfc16def8cc8a4f61, 0xb3ffff02e001da9b})}, - {true, -150, MType({0xa7179ab287cdcbd8, 0xafffff0e0001bbaa})}, - {true, -150, MType({0x5212aa4c57dea809, 0xabffff18e0019e19})}, - {true, -150, MType({0xfd084f063b5a0bf8, 0xa7ffff23800181df})}, - {true, -150, MType({0xa7f8c8a030ed3fab, 0xa3ffff2de00166f6})}, - {true, -150, MType({0x52e4555a37554b29, 0x9fffff3800014d55})}, - {true, -150, MType({0xfdcb31f44d5e9676, 0x9bffff41e00134f3})}, - {true, -150, MType({0xa8ad99ae71e48997, 0x97ffff4b80011dca})}, - {true, -150, MType({0x538bc648a3d12c90, 0x93ffff54e00107d1})}, - {true, -150, MType({0xfe65f002e21cc765, 0x8fffff5e0000f2ff})}, - {true, -150, MType({0xa93c4d9d2bcd821a, 0x8bffff66e000df4e})}, - {true, -150, MType({0x540f14577ff704b2, 0x87ffff6f8000ccb5})}, - {true, -150, MType({0xfede77f1ddba1731, 0x83ffff77e000bb2b})}, - {true, -151, MType({0x5355555888888333, 0xffffff0000015555})}, - {true, -151, MType({0xa8e7ba8d659ed7dc, 0xf7ffff0fc0013652})}, - {true, -151, MType({0xfe747e025142fc61, 0xefffff1f0001193f})}, - {true, -151, MType({0x53fbfb374a1800c7, 0xe7ffff2dc000fe0d})}, - {true, -151, MType({0xa97e8aac4ed77513, 0xdfffff3c0000e4aa})}, - {true, -151, MType({0xfefc81e15e50a947, 0xd7ffff49c000cd07})}, - {true, -151, MType({0x547633567767ed66, 0xcfffff570000b715})}, - {true, -151, MType({0xa9ebee8b9915d174, 0xc7ffff63c000a2c2})}, - {true, -151, MType({0xff5e0000c2666573, 0xbfffff7000008fff})}, - {true, -151, MType({0x54ccb135f2787966, 0xb7ffff7bc0007ebd})}, - {true, -151, MType({0xaa3848ab287cdd4e, 0xafffff8700006eea})}, - {true, -151, MType({0xffa109e063b5a12d, 0xa7ffff91c0006077})}, - {true, -151, MType({0x55073555a3755504, 0x9fffff9c00005355})}, - {true, -151, MType({0xaa6b088ae71e48d5, 0x97ffffa5c0004772})}, - {true, -151, MType({0xffccbe002e21cca2, 0x8fffffaf00003cbf})}, - {true, -151, MType({0x552c8d3577ff706a, 0x87ffffb7c000332d})}, - {true, -152, MType({0x551555558888885e, 0xffffff8000005555})}, - {true, -152, MType({0xffce8fc025142fe3, 0xefffff8f8000464f})}, - {true, -152, MType({0xaa8526aac4ed7764, 0xdfffff9e0000392a})}, - {true, -152, MType({0x5539711567767ee3, 0xcfffffab80002dc5})}, - {true, -152, MType({0xffebc0000c26665f, 0xbfffffb8000023ff})}, - {true, -152, MType({0xaa9c5e6ab287cdd9, 0xafffffc380001bba})}, - {true, -152, MType({0x554b91555a375553, 0x9fffffce000014d5})}, - {true, -152, MType({0xfff997c002e21ccb, 0x8fffffd780000f2f})}, - {true, -153, MType({0x554d555558888887, 0xffffffc000001555})}, - {true, -153, MType({0xaaa5fa2aac4ed777, 0xdfffffcf00000e4a})}, - {true, -153, MType({0xfffd780000c26666, 0xbfffffdc000008ff})}, - {true, -153, MType({0x55541cd555a37555, 0x9fffffe700000535})}, - {true, -154, MType({0x5554555555888888, 0xffffffe000000555})}, - {true, -154, MType({0xffffaf00000c2666, 0xbfffffee0000023f})}, - {true, -155, MType({0x5555355555588889, 0xfffffff000000155})}, - {true, -156, MType({0x5555515555558889, 0xfffffff800000055})}, - {false, 0, MType({0x0, 0x0})}, - {false, -155, MType({0xaaaaacaaaaaac444, 0x800000040000002a})}, - {false, -154, MType({0xaaaabaaaaaac4444, 0x80000008000000aa})}, - {false, -154, MType({0x5100000c2666, 0xc000001200000240})}, - {false, -153, MType({0xaaab2aaaaac44444, 0x80000010000002aa})}, - {false, -153, MType({0x55568dd555a37555, 0xa000001900000535})}, - {false, -153, MType({0x2880000c26667, 0xc000002400000900})}, - {false, -153, MType({0xaaaf5b2aac4ed778, 0xe000003100000e4a})}, - {false, -152, MType({0xaaaeaaaaac444445, 0x8000002000000aaa})}, - {false, -152, MType({0x6684002e21cce, 0x9000002880000f30})}, - {false, -152, MType({0x555f19555a375558, 0xa0000032000014d5})}, - {false, -152, MType({0xaab8f6eab287cde2, 0xb000003c80001bba})}, - {false, -152, MType({0x1440000c26666e, 0xc000004800002400})}, - {false, -152, MType({0x5571399567767efb, 0xd000005480002dc5})}, - {false, -152, MType({0xaad02eaac4ed778b, 0xe00000620000392a})}, - {false, -152, MType({0x3170402514301d, 0xf000007080004650})}, - {false, -151, MType({0xaacaaaaac444445a, 0x8000004000002aaa})}, - {false, -151, MType({0x557e1d7577ff70a7, 0x880000484000332d})}, - {false, -151, MType({0x3342002e21ccf8, 0x9000005100003cc0})}, - {false, -151, MType({0xaaea4ccae71e494d, 0x9800005a40004772})}, - {false, -151, MType({0x55a37555a37555a7, 0xa000006400005355})}, - {false, -151, MType({0x5ef62063b5a207, 0xa800006e40006078})}, - {false, -151, MType({0xab1d0cab287cde6e, 0xb000007900006eea})}, - {false, -151, MType({0x55ddf975f2787ade, 0xb800008440007ebd})}, - {false, -151, MType({0xa20000c2666759, 0xc000009000009000})}, - {false, -151, MType({0xab6966cb9915d3e1, 0xc800009c4000a2c2})}, - {false, -151, MType({0x563477567767f078, 0xd00000a90000b715})}, - {false, -151, MType({0x1037e215e50ad20, 0xd80000b64000cd08})}, - {false, -151, MType({0xabd6caac4ed779dc, 0xe00000c40000e4aa})}, - {false, -151, MType({0x56aeaf774a1806b0, 0xe80000d24000fe0d})}, - {false, -151, MType({0x18b82025143039f, 0xf00000e100011940})}, - {false, -151, MType({0xac6d9acd659ee0ad, 0xf80000f040013652})}, - {false, -150, MType({0xabaaaaac444446ef, 0x800000800000aaaa})}, - {false, -150, MType({0x1218811ddba1d9b, 0x840000882000bb2c})}, - {false, -150, MType({0x569b96577ff70c5f, 0x880000908000ccb5})}, - {false, -150, MType({0xac1907bd2bcd8b3b, 0x8c0000992000df4e})}, - {false, -150, MType({0x19a1002e21cd235, 0x900000a20000f300})}, - {false, -150, MType({0x571ee468a3d1394e, 0x940000ab200107d1})}, - {false, -150, MType({0xaca7bbae71e4988b, 0x980000b480011dca})}, - {false, -150, MType({0x234ce144d5ea7f0, 0x9c0000be200134f4})}, - {false, -150, MType({0x57c6555a37555f82, 0xa00000c800014d55})}, - {false, -150, MType({0xad5c8cc030ed5744, 0xa40000d2200166f6})}, - {false, -150, MType({0x2f7b1063b5a273b, 0xa80000dc800181e0})}, - {false, -150, MType({0x5898006c57dec76f, 0xac0000e720019e19})}, - {false, -150, MType({0xae3dbab287cdefe3, 0xb00000f20001bbaa})}, - {false, -150, MType({0x3e92118cc8a789f, 0xb40000fd2001da9c})}, - {false, -150, MType({0x599a765f2787b9aa, 0xb80001088001faf5})}, - {false, -150, MType({0xaf51fec59a49eb0a, 0xbc00011420021cbe})}, - {false, -150, MType({0x510000c266684c6, 0xc000012000024000})}, - {false, -150, MType({0x5ad4c172cd849ee9, 0xc400012c200264c1})}, - {false, -150, MType({0xb0a08bb9915d5179, 0xc800013880028b0a})}, - {false, -150, MType({0x673a92073bc1480, 0xcc0001452002b2e4})}, - {false, -150, MType({0x5c4e6567767f2009, 0xd00001520002dc55})}, - {false, -150, MType({0xb2310dce9b97cc1d, 0xd400015f20030766})}, - {false, -150, MType({0x81bf115e50af0c7, 0xd800016c80033420})}, - {false, -150, MType({0x5e0f5f7d54f14614, 0xdc00017a20036289})}, - {false, -150, MType({0xb40baac4ed77c410, 0xe0000188000392aa})}, - {false, -150, MType({0xa11262cb0e002c7, 0xe40001962003c48c})}, - {false, -150, MType({0x60202674a1809a47, 0xe80001a48003f835})}, - {false, -150, MType({0xb63901dcc1c582a0, 0xec0001b320042dae})}, - {false, -150, MType({0xc5c1025143073df, 0xf00001c200046500})}, - {false, -150, MType({0x6289aa8d9b594616, 0xf40001d120049e31})}, - {false, -150, MType({0xb8c22bd659ee5155, 0xf80001e08004d94a})}, - {false, -150, MType({0xf05f03f52b4cdae, 0xfc0001f020051654})}, - {false, -149, MType({0xb2aaaac44444999a, 0x800001000002aaaa})}, + {Sign::NEG, -149, MType({0x4cd24d68ff2f11ae, 0x81fffef7f002cb2b})}, + {Sign::NEG, -150, MType({0x455555888887ddde, 0xfffffe0000055555})}, + {Sign::NEG, -150, MType({0xf0fa101f52b3971f, 0xfbfffe0fe0051653})}, + {Sign::NEG, -150, MType({0x9c9329d659ed3734, 0xf7fffe1f8004d94a})}, + {Sign::NEG, -150, MType({0x4821006d9b58462e, 0xf3fffe2ee0049e31})}, + {Sign::NEG, -150, MType({0xf3a3f025142f8c21, 0xeffffe3e000464ff})}, + {Sign::NEG, -150, MType({0x9f1c53bcc1c4b11c, 0xebfffe4ce0042dae})}, + {Sign::NEG, -150, MType({0x4a8a8474a17fdd30, 0xe7fffe5b8003f835})}, + {Sign::NEG, -150, MType({0xf5eeda0cb0df586d, 0xe3fffe69e003c48b})}, + {Sign::NEG, -150, MType({0xa149aac4ed772adf, 0xdffffe78000392aa})}, + {Sign::NEG, -150, MType({0x4c9b4b5d54f0bc96, 0xdbfffe85e0036289})}, + {Sign::NEG, -150, MType({0xf7e40f15e50a759f, 0xd7fffe938003341f})}, + {Sign::NEG, -150, MType({0xa32447ae9b975e05, 0xd3fffea0e0030766})}, + {Sign::NEG, -150, MType({0x4e5c4567767ebdd5, 0xcffffeae0002dc55})}, + {Sign::NEG, -150, MType({0xf98c570073bbbd19, 0xcbfffebae002b2e3})}, + {Sign::NEG, -150, MType({0xa4b4c9b9915d03dd, 0xc7fffec780028b0a})}, + {Sign::NEG, -150, MType({0x4fd5e952cd845a28, 0xc3fffed3e00264c1})}, + {Sign::NEG, -150, MType({0xfaf0000c26664806, 0xbffffee000023fff})}, + {Sign::NEG, -150, MType({0xa60356a59a49b57f, 0xbbfffeebe0021cbe})}, + {Sign::NEG, -150, MType({0x5110345f27878a9b, 0xb7fffef78001faf5})}, + {Sign::NEG, -150, MType({0xfc16def8cc8a4f61, 0xb3ffff02e001da9b})}, + {Sign::NEG, -150, MType({0xa7179ab287cdcbd8, 0xafffff0e0001bbaa})}, + {Sign::NEG, -150, MType({0x5212aa4c57dea809, 0xabffff18e0019e19})}, + {Sign::NEG, -150, MType({0xfd084f063b5a0bf8, 0xa7ffff23800181df})}, + {Sign::NEG, -150, MType({0xa7f8c8a030ed3fab, 0xa3ffff2de00166f6})}, + {Sign::NEG, -150, MType({0x52e4555a37554b29, 0x9fffff3800014d55})}, + {Sign::NEG, -150, MType({0xfdcb31f44d5e9676, 0x9bffff41e00134f3})}, + {Sign::NEG, -150, MType({0xa8ad99ae71e48997, 0x97ffff4b80011dca})}, + {Sign::NEG, -150, MType({0x538bc648a3d12c90, 0x93ffff54e00107d1})}, + {Sign::NEG, -150, MType({0xfe65f002e21cc765, 0x8fffff5e0000f2ff})}, + {Sign::NEG, -150, MType({0xa93c4d9d2bcd821a, 0x8bffff66e000df4e})}, + {Sign::NEG, -150, MType({0x540f14577ff704b2, 0x87ffff6f8000ccb5})}, + {Sign::NEG, -150, MType({0xfede77f1ddba1731, 0x83ffff77e000bb2b})}, + {Sign::NEG, -151, MType({0x5355555888888333, 0xffffff0000015555})}, + {Sign::NEG, -151, MType({0xa8e7ba8d659ed7dc, 0xf7ffff0fc0013652})}, + {Sign::NEG, -151, MType({0xfe747e025142fc61, 0xefffff1f0001193f})}, + {Sign::NEG, -151, MType({0x53fbfb374a1800c7, 0xe7ffff2dc000fe0d})}, + {Sign::NEG, -151, MType({0xa97e8aac4ed77513, 0xdfffff3c0000e4aa})}, + {Sign::NEG, -151, MType({0xfefc81e15e50a947, 0xd7ffff49c000cd07})}, + {Sign::NEG, -151, MType({0x547633567767ed66, 0xcfffff570000b715})}, + {Sign::NEG, -151, MType({0xa9ebee8b9915d174, 0xc7ffff63c000a2c2})}, + {Sign::NEG, -151, MType({0xff5e0000c2666573, 0xbfffff7000008fff})}, + {Sign::NEG, -151, MType({0x54ccb135f2787966, 0xb7ffff7bc0007ebd})}, + {Sign::NEG, -151, MType({0xaa3848ab287cdd4e, 0xafffff8700006eea})}, + {Sign::NEG, -151, MType({0xffa109e063b5a12d, 0xa7ffff91c0006077})}, + {Sign::NEG, -151, MType({0x55073555a3755504, 0x9fffff9c00005355})}, + {Sign::NEG, -151, MType({0xaa6b088ae71e48d5, 0x97ffffa5c0004772})}, + {Sign::NEG, -151, MType({0xffccbe002e21cca2, 0x8fffffaf00003cbf})}, + {Sign::NEG, -151, MType({0x552c8d3577ff706a, 0x87ffffb7c000332d})}, + {Sign::NEG, -152, MType({0x551555558888885e, 0xffffff8000005555})}, + {Sign::NEG, -152, MType({0xffce8fc025142fe3, 0xefffff8f8000464f})}, + {Sign::NEG, -152, MType({0xaa8526aac4ed7764, 0xdfffff9e0000392a})}, + {Sign::NEG, -152, MType({0x5539711567767ee3, 0xcfffffab80002dc5})}, + {Sign::NEG, -152, MType({0xffebc0000c26665f, 0xbfffffb8000023ff})}, + {Sign::NEG, -152, MType({0xaa9c5e6ab287cdd9, 0xafffffc380001bba})}, + {Sign::NEG, -152, MType({0x554b91555a375553, 0x9fffffce000014d5})}, + {Sign::NEG, -152, MType({0xfff997c002e21ccb, 0x8fffffd780000f2f})}, + {Sign::NEG, -153, MType({0x554d555558888887, 0xffffffc000001555})}, + {Sign::NEG, -153, MType({0xaaa5fa2aac4ed777, 0xdfffffcf00000e4a})}, + {Sign::NEG, -153, MType({0xfffd780000c26666, 0xbfffffdc000008ff})}, + {Sign::NEG, -153, MType({0x55541cd555a37555, 0x9fffffe700000535})}, + {Sign::NEG, -154, MType({0x5554555555888888, 0xffffffe000000555})}, + {Sign::NEG, -154, MType({0xffffaf00000c2666, 0xbfffffee0000023f})}, + {Sign::NEG, -155, MType({0x5555355555588889, 0xfffffff000000155})}, + {Sign::NEG, -156, MType({0x5555515555558889, 0xfffffff800000055})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -155, MType({0xaaaaacaaaaaac444, 0x800000040000002a})}, + {Sign::POS, -154, MType({0xaaaabaaaaaac4444, 0x80000008000000aa})}, + {Sign::POS, -154, MType({0x5100000c2666, 0xc000001200000240})}, + {Sign::POS, -153, MType({0xaaab2aaaaac44444, 0x80000010000002aa})}, + {Sign::POS, -153, MType({0x55568dd555a37555, 0xa000001900000535})}, + {Sign::POS, -153, MType({0x2880000c26667, 0xc000002400000900})}, + {Sign::POS, -153, MType({0xaaaf5b2aac4ed778, 0xe000003100000e4a})}, + {Sign::POS, -152, MType({0xaaaeaaaaac444445, 0x8000002000000aaa})}, + {Sign::POS, -152, MType({0x6684002e21cce, 0x9000002880000f30})}, + {Sign::POS, -152, MType({0x555f19555a375558, 0xa0000032000014d5})}, + {Sign::POS, -152, MType({0xaab8f6eab287cde2, 0xb000003c80001bba})}, + {Sign::POS, -152, MType({0x1440000c26666e, 0xc000004800002400})}, + {Sign::POS, -152, MType({0x5571399567767efb, 0xd000005480002dc5})}, + {Sign::POS, -152, MType({0xaad02eaac4ed778b, 0xe00000620000392a})}, + {Sign::POS, -152, MType({0x3170402514301d, 0xf000007080004650})}, + {Sign::POS, -151, MType({0xaacaaaaac444445a, 0x8000004000002aaa})}, + {Sign::POS, -151, MType({0x557e1d7577ff70a7, 0x880000484000332d})}, + {Sign::POS, -151, MType({0x3342002e21ccf8, 0x9000005100003cc0})}, + {Sign::POS, -151, MType({0xaaea4ccae71e494d, 0x9800005a40004772})}, + {Sign::POS, -151, MType({0x55a37555a37555a7, 0xa000006400005355})}, + {Sign::POS, -151, MType({0x5ef62063b5a207, 0xa800006e40006078})}, + {Sign::POS, -151, MType({0xab1d0cab287cde6e, 0xb000007900006eea})}, + {Sign::POS, -151, MType({0x55ddf975f2787ade, 0xb800008440007ebd})}, + {Sign::POS, -151, MType({0xa20000c2666759, 0xc000009000009000})}, + {Sign::POS, -151, MType({0xab6966cb9915d3e1, 0xc800009c4000a2c2})}, + {Sign::POS, -151, MType({0x563477567767f078, 0xd00000a90000b715})}, + {Sign::POS, -151, MType({0x1037e215e50ad20, 0xd80000b64000cd08})}, + {Sign::POS, -151, MType({0xabd6caac4ed779dc, 0xe00000c40000e4aa})}, + {Sign::POS, -151, MType({0x56aeaf774a1806b0, 0xe80000d24000fe0d})}, + {Sign::POS, -151, MType({0x18b82025143039f, 0xf00000e100011940})}, + {Sign::POS, -151, MType({0xac6d9acd659ee0ad, 0xf80000f040013652})}, + {Sign::POS, -150, MType({0xabaaaaac444446ef, 0x800000800000aaaa})}, + {Sign::POS, -150, MType({0x1218811ddba1d9b, 0x840000882000bb2c})}, + {Sign::POS, -150, MType({0x569b96577ff70c5f, 0x880000908000ccb5})}, + {Sign::POS, -150, MType({0xac1907bd2bcd8b3b, 0x8c0000992000df4e})}, + {Sign::POS, -150, MType({0x19a1002e21cd235, 0x900000a20000f300})}, + {Sign::POS, -150, MType({0x571ee468a3d1394e, 0x940000ab200107d1})}, + {Sign::POS, -150, MType({0xaca7bbae71e4988b, 0x980000b480011dca})}, + {Sign::POS, -150, MType({0x234ce144d5ea7f0, 0x9c0000be200134f4})}, + {Sign::POS, -150, MType({0x57c6555a37555f82, 0xa00000c800014d55})}, + {Sign::POS, -150, MType({0xad5c8cc030ed5744, 0xa40000d2200166f6})}, + {Sign::POS, -150, MType({0x2f7b1063b5a273b, 0xa80000dc800181e0})}, + {Sign::POS, -150, MType({0x5898006c57dec76f, 0xac0000e720019e19})}, + {Sign::POS, -150, MType({0xae3dbab287cdefe3, 0xb00000f20001bbaa})}, + {Sign::POS, -150, MType({0x3e92118cc8a789f, 0xb40000fd2001da9c})}, + {Sign::POS, -150, MType({0x599a765f2787b9aa, 0xb80001088001faf5})}, + {Sign::POS, -150, MType({0xaf51fec59a49eb0a, 0xbc00011420021cbe})}, + {Sign::POS, -150, MType({0x510000c266684c6, 0xc000012000024000})}, + {Sign::POS, -150, MType({0x5ad4c172cd849ee9, 0xc400012c200264c1})}, + {Sign::POS, -150, MType({0xb0a08bb9915d5179, 0xc800013880028b0a})}, + {Sign::POS, -150, MType({0x673a92073bc1480, 0xcc0001452002b2e4})}, + {Sign::POS, -150, MType({0x5c4e6567767f2009, 0xd00001520002dc55})}, + {Sign::POS, -150, MType({0xb2310dce9b97cc1d, 0xd400015f20030766})}, + {Sign::POS, -150, MType({0x81bf115e50af0c7, 0xd800016c80033420})}, + {Sign::POS, -150, MType({0x5e0f5f7d54f14614, 0xdc00017a20036289})}, + {Sign::POS, -150, MType({0xb40baac4ed77c410, 0xe0000188000392aa})}, + {Sign::POS, -150, MType({0xa11262cb0e002c7, 0xe40001962003c48c})}, + {Sign::POS, -150, MType({0x60202674a1809a47, 0xe80001a48003f835})}, + {Sign::POS, -150, MType({0xb63901dcc1c582a0, 0xec0001b320042dae})}, + {Sign::POS, -150, MType({0xc5c1025143073df, 0xf00001c200046500})}, + {Sign::POS, -150, MType({0x6289aa8d9b594616, 0xf40001d120049e31})}, + {Sign::POS, -150, MType({0xb8c22bd659ee5155, 0xf80001e08004d94a})}, + {Sign::POS, -150, MType({0xf05f03f52b4cdae, 0xfc0001f020051654})}, + {Sign::POS, -149, MType({0xb2aaaac44444999a, 0x800001000002aaaa})}, }}; // > P = fpminimax((log(1 + x) - x)/x^2, 2, [|1, 128...|], @@ -700,9 +701,9 @@ alignas(64) const LogRR LOG_TABLE = { // > dirtyinfnorm(log(1 + x)/x - x*P, [-0x1.0002143p-29 , 0x1p-29]); // 0x1.99a3...p-121 const Float128 BIG_COEFFS[3]{ - {true, -129, MType({0xb59c58e5554d581c, 0x800000000006a710})}, - {false, -129, MType({0xde05c7c94ae9cbae, 0xaaaaaaaaaaaaaabd})}, - {true, -128, MType({0x0, 0x8000000000000000})}, + {Sign::NEG, -129, MType({0xb59c58e5554d581c, 0x800000000006a710})}, + {Sign::POS, -129, MType({0xde05c7c94ae9cbae, 0xaaaaaaaaaaaaaabd})}, + {Sign::NEG, -128, MType({0x0, 0x8000000000000000})}, }; // Reuse the output of the fast pass range reduction. diff --git a/libc/src/math/generic/log10.cpp b/libc/src/math/generic/log10.cpp index b7b49e2b3ac4b1..3a4d321fdb18c5 100644 --- a/libc/src/math/generic/log10.cpp +++ b/libc/src/math/generic/log10.cpp @@ -24,6 +24,7 @@ namespace LIBC_NAMESPACE { // 128-bit precision dyadic floating point numbers. using Float128 = typename fputil::DyadicFloat<128>; using MType = typename Float128::MantissaType; +using Sign = fputil::Sign; namespace { @@ -39,7 +40,7 @@ constexpr double P_ERR = 0x1.0p-51; // log10(2) with 128-bit prepcision generated by SageMath with: // sage: (s, m, e) = RealField(128)(2).log10().sign_exponent_mantissa(); // sage: print("MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})"); -const Float128 LOG10_2(/*sign=*/false, /*exponent=*/-129, /*mantissa=*/ +const Float128 LOG10_2(Sign::POS, /*exponent=*/-129, /*mantissa=*/ MType({0x8f8959ac0b7c9178, 0x9a209a84fbcff798})); const LogRR LOG10_TABLE = { @@ -48,652 +49,652 @@ const LogRR LOG10_TABLE = { // for i in range(128): // r = 2^-8 * ceil( 2^8 * (1 - 2^(-8)) / (1 + i*2^(-7)) ); // s, m, e = RealField(128)(r).log10().sign_mantissa_exponent(); - // print("{false,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) % - // 2^64), + // print("{Sign::POS,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) + // % 2^64), // "})},"); /* .step_1 = */ { - {false, 0, MType(0)}, - {false, -136, MType({0x65af394fe05eafd3, 0xdf3b5ebbda7e186b})}, - {false, -135, MType({0xa8fb8d87b30163b5, 0xe01d40572f029c16})}, - {false, -134, MType({0x6bb0170e5bb5d630, 0xa8c1263ac3f57eb3})}, - {false, -134, MType({0xfc2ea6eb0ea1370e, 0xe1e841bbc26204e5})}, - {false, -133, MType({0xdc8a199a4bb63382, 0x8dc2eb02274d6ff4})}, - {false, -133, MType({0x86b57ea610c7db33, 0xaacde920361dd054})}, - {false, -133, MType({0x5f034a40e6a2f09d, 0xc81618eb15421bab})}, - {false, -133, MType({0x594a31b2c5cc891c, 0xe59c7e66c5fedb4b})}, - {false, -133, MType({0x221efda58221904b, 0xf477584f97b654de})}, - {false, -132, MType({0x68a0dc47567691c9, 0x892e821975106e09})}, - {false, -132, MType({0x10bc94f44d216b49, 0x9841c66e17dfe7da})}, - {false, -132, MType({0xe303ea7e23c9d6fb, 0x9fd7be3318306cc5})}, - {false, -132, MType({0xce697dbaa00d4c7d, 0xaf1cb35bf494a8dd})}, - {false, -132, MType({0x9c216079dcf0ea96, 0xbe8380a2fa7eba5a})}, - {false, -132, MType({0x75278940eecfc3a9, 0xc643c7758283a271})}, - {false, -132, MType({0x2d3467d253e2d1fc, 0xd5de75ec27e4fe68})}, - {false, -132, MType({0xead4055dcdec7b22, 0xddb904e8f1272a95})}, - {false, -132, MType({0xe1e0dda0b3d375a4, 0xed88f6bb355fa196})}, - {false, -132, MType({0x38dc40c4fe11e608, 0xf57e8281ade9d92d})}, - {false, -131, MType({0x3bcdcfe7b23976cd, 0x82c2941bb20bbe1f})}, - {false, -131, MType({0x456350b0bda452a6, 0x86cb36632807cdcd})}, - {false, -131, MType({0x78185dcc37fda01a, 0x8eeaa306458b760a})}, - {false, -131, MType({0x307643adbbbde1b3, 0x9301839512fc1168})}, - {false, -131, MType({0x6c449d409f883fe3, 0x9b3dd1d550c41443})}, - {false, -131, MType({0x8ea7b30c8b4ad886, 0x9f6356aa03c34389})}, - {false, -131, MType({0x961c6e690d8879b4, 0xa7bd56cdde5d76a2})}, - {false, -131, MType({0x42643ced81ec14a, 0xabf1ea3e1d7bd7cf})}, - {false, -131, MType({0x4742fb3d0b5cdd19, 0xb02b9af74c2f879e})}, - {false, -131, MType({0xf7e2ab36f09e9014, 0xb8ae8671b3d7dd6c})}, - {false, -131, MType({0x8d3fc63485e7ff13, 0xbcf7dabd87c01afc})}, - {false, -131, MType({0xf3edc49375fbc5a5, 0xc1467f694d10a581})}, - {false, -131, MType({0x5fcd7d0ce937375f, 0xc9f3ef07e1f3fc5e})}, - {false, -131, MType({0x58252dada9f06111, 0xce52d50b94fa253a})}, - {false, -131, MType({0x62f01e5ff43708ab, 0xd2b74192fae43777})}, - {false, -131, MType({0x481d9b3131f52639, 0xd72142a84ca85abd})}, - {false, -131, MType({0xb305ced1419fe924, 0xdb90e68b8abf14af})}, - {false, -131, MType({0x849266a85513dc6d, 0xe48150cf32888b9c})}, - {false, -131, MType({0x80ecf3266b4dcf4, 0xe90234c65a15e533})}, - {false, -131, MType({0xe1e0dda0b3d375a4, 0xed88f6bb355fa196})}, - {false, -131, MType({0xce3537a3a211b25b, 0xf215a60b6557943f})}, - {false, -131, MType({0x5dab68307fedefcd, 0xf6a852513757dfbd})}, - {false, -131, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, - {false, -130, MType({0x18aa302171017dcb, 0x8242724a155219f3})}, - {false, -130, MType({0xabc7e698502d43c0, 0x849812d0ccbb5cbd})}, - {false, -130, MType({0xc339089a51663370, 0x86f0dab1ab5822b6})}, - {false, -130, MType({0x26f70b34ce5cf201, 0x894cd27d9f182c63})}, - {false, -130, MType({0x676f20a87ab433df, 0x8bac02e8ac3e09ac})}, - {false, -130, MType({0x6db4169cc4b83bc3, 0x8e0e74caae062e24})}, - {false, -130, MType({0xcd3fdb2fad0d1fd6, 0x907431201c7f651a})}, - {false, -130, MType({0x49d03e163250d1d4, 0x92dd410ad7bfe103})}, - {false, -130, MType({0x9ec7dc02d5e723b9, 0x9549add2f8a3c7e0})}, - {false, -130, MType({0x34698d03a5442573, 0x97b980e7a743d71c})}, - {false, -130, MType({0x522904d1e47f3de, 0x9a2cc3dff7548556})}, - {false, -130, MType({0x791a72646c87b976, 0x9ca3807bca9fe93f})}, - {false, -130, MType({0x3826f190d655d736, 0x9f1dc0a4b9cea286})}, - {false, -130, MType({0x544ab3e48199b299, 0xa19b8e6f03b60e45})}, - {false, -130, MType({0xbe775fa82961114e, 0xa41cf41a83643487})}, - {false, -130, MType({0x45798e5019e6c082, 0xa6a1fc13ad241953})}, - {false, -130, MType({0x91fb1ed0cdc4d1fb, 0xa92ab0f492b772bd})}, - {false, -130, MType({0x818b8b9cbbd17b72, 0xabb71d85ef05380d})}, - {false, -130, MType({0xa50c2fea60c5b3b2, 0xae474cc0397f0d4f})}, - {false, -130, MType({0x58ea34980ad8b720, 0xb0db49ccc1823c8e})}, - {false, -130, MType({0x4b5f71941be508a4, 0xb3732006d1fbbba5})}, - {false, -130, MType({0x9e405fb8bcb1ff1e, 0xb60edafcdd99ad1d})}, - {false, -130, MType({0x9e405fb8bcb1ff1e, 0xb60edafcdd99ad1d})}, - {false, -130, MType({0xf7e2ab36f09e9014, 0xb8ae8671b3d7dd6c})}, - {false, -130, MType({0xc669639640c305bb, 0xbb522e5dbf37f63b})}, - {false, -130, MType({0xa3dc9e464e98764b, 0xbdf9def04cf980ff})}, - {false, -130, MType({0xffd3256b59fa9c59, 0xc0a5a490dea95b5e})}, - {false, -130, MType({0xb0a2d48672a051a5, 0xc3558be085e3f4bc})}, - {false, -130, MType({0xb0a2d48672a051a5, 0xc3558be085e3f4bc})}, - {false, -130, MType({0xacb2ca5d4ca1c10e, 0xc609a1bb4aa98f59})}, - {false, -130, MType({0x43690b9e3cde0d02, 0xc8c1f3399ca7d33b})}, - {false, -130, MType({0x18b1fd60383f7e5a, 0xcb7e8db1cfe04827})}, - {false, -130, MType({0x248757e5f45af3d, 0xce3f7eb9a517c969})}, - {false, -130, MType({0x7c4acd605be48bc1, 0xd104d427de7fbcc4})}, - {false, -130, MType({0x7c4acd605be48bc1, 0xd104d427de7fbcc4})}, - {false, -130, MType({0x58ff63629a92652d, 0xd3ce9c15e10ec927})}, - {false, -130, MType({0x6b49be3bd8c89f10, 0xd69ce4e16303fcdd})}, - {false, -130, MType({0xe6dd603a881e9060, 0xd96fbd2e2814c9cc})}, - {false, -130, MType({0xe6dd603a881e9060, 0xd96fbd2e2814c9cc})}, - {false, -130, MType({0x89e281c98c1d705c, 0xdc4733e7cbcbfc8c})}, - {false, -130, MType({0xdc0db7cf0cce9f32, 0xdf2358439aa5dd12})}, - {false, -130, MType({0xfdf1c5b846db9deb, 0xe20439c27a7c01b8})}, - {false, -130, MType({0xfdf1c5b846db9deb, 0xe20439c27a7c01b8})}, - {false, -130, MType({0x3dd7eab48869c402, 0xe4e9e832e2da0c05})}, - {false, -130, MType({0x4e8fcc900b41daef, 0xe7d473b2e5db8f2a})}, - {false, -130, MType({0x4e8fcc900b41daef, 0xe7d473b2e5db8f2a})}, - {false, -130, MType({0x7593e1a9e917359a, 0xeac3ecb24a3ac7b4})}, - {false, -130, MType({0xe7741396b49e1ce5, 0xedb863f4b73f982d})}, - {false, -130, MType({0xe7741396b49e1ce5, 0xedb863f4b73f982d})}, - {false, -130, MType({0xc8ba4f8f47b85a5c, 0xf0b1ea93f34675a7})}, - {false, -130, MType({0x7007c1276821b705, 0xf3b09202359f9787})}, - {false, -130, MType({0x7007c1276821b705, 0xf3b09202359f9787})}, - {false, -130, MType({0x7ee19afe6db7e324, 0xf6b46c0c8c8fdea1})}, - {false, -130, MType({0xedf54f37f6d40420, 0xf9bd8add584687f0})}, - {false, -130, MType({0xedf54f37f6d40420, 0xf9bd8add584687f0})}, - {false, -130, MType({0xefe52ccf03e7dee1, 0xfccc00fedba4e6fb})}, - {false, -130, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, - {false, -130, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, - {false, -129, MType({0xe0b571f5c91b0446, 0x817c9fa643880404})}, - {false, -129, MType({0x7178594bef2def59, 0x830c17427ea55eca})}, - {false, -129, MType({0x7178594bef2def59, 0x830c17427ea55eca})}, - {false, -129, MType({0x9a741bb171158d2a, 0x849e6196487c1d1c})}, - {false, -129, MType({0x9a741bb171158d2a, 0x849e6196487c1d1c})}, - {false, -129, MType({0x1a618264446cb495, 0x863388eb55ebd295})}, - {false, -129, MType({0x71dbdbbec51d7657, 0x87cb97c3ff9eac18})}, - {false, -129, MType({0x71dbdbbec51d7657, 0x87cb97c3ff9eac18})}, - {false, -129, MType({0xabe0b522230f7d14, 0x896698dce4cff76c})}, - {false, -129, MType({0xabe0b522230f7d14, 0x896698dce4cff76c})}, - {false, -129, MType({0xd28e8adafea703b4, 0x8b04972e9d4d3011})}, - {false, -129, MType({0x208422d83be34b27, 0x8ca59def7b5cefc5})}, - {false, -129, MType({0x208422d83be34b27, 0x8ca59def7b5cefc5})}, - {false, -129, MType({0xc385cf49402af0e4, 0x8e49b8955e3ffb8a})}, - {false, -129, MType({0xc385cf49402af0e4, 0x8e49b8955e3ffb8a})}, - {false, -129, MType({0xda982a614e12c6dd, 0x8ff0f2d7960a075c})}, - {false, -129, MType({0xda982a614e12c6dd, 0x8ff0f2d7960a075c})}, - {false, -129, MType({0x38401fc1c1b5c2c, 0x919b58b0d999bbc8})}, - {false, -129, MType({0x38401fc1c1b5c2c, 0x919b58b0d999bbc8})}, - {false, -129, MType({0xa9b55d3f16da746a, 0x9348f6614f821394})}, - {false, -129, MType({0xa9b55d3f16da746a, 0x9348f6614f821394})}, - {false, -129, MType({0x88d2d1473d4f7f5, 0x94f9d870aac256a5})}, - {false, -129, MType({0x88d2d1473d4f7f5, 0x94f9d870aac256a5})}, - {false, -129, MType({0x7c1e117dea19e9e6, 0x96ae0bb05c35d5bd})}, - {false, -129, MType({0x7c1e117dea19e9e6, 0x96ae0bb05c35d5bd})}, - {false, -129, MType({0x336db0630f536fb9, 0x98659d3dd9b12532})}, - {false, 0, MType(0)}, + {Sign::POS, 0, MType(0)}, + {Sign::POS, -136, MType({0x65af394fe05eafd3, 0xdf3b5ebbda7e186b})}, + {Sign::POS, -135, MType({0xa8fb8d87b30163b5, 0xe01d40572f029c16})}, + {Sign::POS, -134, MType({0x6bb0170e5bb5d630, 0xa8c1263ac3f57eb3})}, + {Sign::POS, -134, MType({0xfc2ea6eb0ea1370e, 0xe1e841bbc26204e5})}, + {Sign::POS, -133, MType({0xdc8a199a4bb63382, 0x8dc2eb02274d6ff4})}, + {Sign::POS, -133, MType({0x86b57ea610c7db33, 0xaacde920361dd054})}, + {Sign::POS, -133, MType({0x5f034a40e6a2f09d, 0xc81618eb15421bab})}, + {Sign::POS, -133, MType({0x594a31b2c5cc891c, 0xe59c7e66c5fedb4b})}, + {Sign::POS, -133, MType({0x221efda58221904b, 0xf477584f97b654de})}, + {Sign::POS, -132, MType({0x68a0dc47567691c9, 0x892e821975106e09})}, + {Sign::POS, -132, MType({0x10bc94f44d216b49, 0x9841c66e17dfe7da})}, + {Sign::POS, -132, MType({0xe303ea7e23c9d6fb, 0x9fd7be3318306cc5})}, + {Sign::POS, -132, MType({0xce697dbaa00d4c7d, 0xaf1cb35bf494a8dd})}, + {Sign::POS, -132, MType({0x9c216079dcf0ea96, 0xbe8380a2fa7eba5a})}, + {Sign::POS, -132, MType({0x75278940eecfc3a9, 0xc643c7758283a271})}, + {Sign::POS, -132, MType({0x2d3467d253e2d1fc, 0xd5de75ec27e4fe68})}, + {Sign::POS, -132, MType({0xead4055dcdec7b22, 0xddb904e8f1272a95})}, + {Sign::POS, -132, MType({0xe1e0dda0b3d375a4, 0xed88f6bb355fa196})}, + {Sign::POS, -132, MType({0x38dc40c4fe11e608, 0xf57e8281ade9d92d})}, + {Sign::POS, -131, MType({0x3bcdcfe7b23976cd, 0x82c2941bb20bbe1f})}, + {Sign::POS, -131, MType({0x456350b0bda452a6, 0x86cb36632807cdcd})}, + {Sign::POS, -131, MType({0x78185dcc37fda01a, 0x8eeaa306458b760a})}, + {Sign::POS, -131, MType({0x307643adbbbde1b3, 0x9301839512fc1168})}, + {Sign::POS, -131, MType({0x6c449d409f883fe3, 0x9b3dd1d550c41443})}, + {Sign::POS, -131, MType({0x8ea7b30c8b4ad886, 0x9f6356aa03c34389})}, + {Sign::POS, -131, MType({0x961c6e690d8879b4, 0xa7bd56cdde5d76a2})}, + {Sign::POS, -131, MType({0x42643ced81ec14a, 0xabf1ea3e1d7bd7cf})}, + {Sign::POS, -131, MType({0x4742fb3d0b5cdd19, 0xb02b9af74c2f879e})}, + {Sign::POS, -131, MType({0xf7e2ab36f09e9014, 0xb8ae8671b3d7dd6c})}, + {Sign::POS, -131, MType({0x8d3fc63485e7ff13, 0xbcf7dabd87c01afc})}, + {Sign::POS, -131, MType({0xf3edc49375fbc5a5, 0xc1467f694d10a581})}, + {Sign::POS, -131, MType({0x5fcd7d0ce937375f, 0xc9f3ef07e1f3fc5e})}, + {Sign::POS, -131, MType({0x58252dada9f06111, 0xce52d50b94fa253a})}, + {Sign::POS, -131, MType({0x62f01e5ff43708ab, 0xd2b74192fae43777})}, + {Sign::POS, -131, MType({0x481d9b3131f52639, 0xd72142a84ca85abd})}, + {Sign::POS, -131, MType({0xb305ced1419fe924, 0xdb90e68b8abf14af})}, + {Sign::POS, -131, MType({0x849266a85513dc6d, 0xe48150cf32888b9c})}, + {Sign::POS, -131, MType({0x80ecf3266b4dcf4, 0xe90234c65a15e533})}, + {Sign::POS, -131, MType({0xe1e0dda0b3d375a4, 0xed88f6bb355fa196})}, + {Sign::POS, -131, MType({0xce3537a3a211b25b, 0xf215a60b6557943f})}, + {Sign::POS, -131, MType({0x5dab68307fedefcd, 0xf6a852513757dfbd})}, + {Sign::POS, -131, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, + {Sign::POS, -130, MType({0x18aa302171017dcb, 0x8242724a155219f3})}, + {Sign::POS, -130, MType({0xabc7e698502d43c0, 0x849812d0ccbb5cbd})}, + {Sign::POS, -130, MType({0xc339089a51663370, 0x86f0dab1ab5822b6})}, + {Sign::POS, -130, MType({0x26f70b34ce5cf201, 0x894cd27d9f182c63})}, + {Sign::POS, -130, MType({0x676f20a87ab433df, 0x8bac02e8ac3e09ac})}, + {Sign::POS, -130, MType({0x6db4169cc4b83bc3, 0x8e0e74caae062e24})}, + {Sign::POS, -130, MType({0xcd3fdb2fad0d1fd6, 0x907431201c7f651a})}, + {Sign::POS, -130, MType({0x49d03e163250d1d4, 0x92dd410ad7bfe103})}, + {Sign::POS, -130, MType({0x9ec7dc02d5e723b9, 0x9549add2f8a3c7e0})}, + {Sign::POS, -130, MType({0x34698d03a5442573, 0x97b980e7a743d71c})}, + {Sign::POS, -130, MType({0x522904d1e47f3de, 0x9a2cc3dff7548556})}, + {Sign::POS, -130, MType({0x791a72646c87b976, 0x9ca3807bca9fe93f})}, + {Sign::POS, -130, MType({0x3826f190d655d736, 0x9f1dc0a4b9cea286})}, + {Sign::POS, -130, MType({0x544ab3e48199b299, 0xa19b8e6f03b60e45})}, + {Sign::POS, -130, MType({0xbe775fa82961114e, 0xa41cf41a83643487})}, + {Sign::POS, -130, MType({0x45798e5019e6c082, 0xa6a1fc13ad241953})}, + {Sign::POS, -130, MType({0x91fb1ed0cdc4d1fb, 0xa92ab0f492b772bd})}, + {Sign::POS, -130, MType({0x818b8b9cbbd17b72, 0xabb71d85ef05380d})}, + {Sign::POS, -130, MType({0xa50c2fea60c5b3b2, 0xae474cc0397f0d4f})}, + {Sign::POS, -130, MType({0x58ea34980ad8b720, 0xb0db49ccc1823c8e})}, + {Sign::POS, -130, MType({0x4b5f71941be508a4, 0xb3732006d1fbbba5})}, + {Sign::POS, -130, MType({0x9e405fb8bcb1ff1e, 0xb60edafcdd99ad1d})}, + {Sign::POS, -130, MType({0x9e405fb8bcb1ff1e, 0xb60edafcdd99ad1d})}, + {Sign::POS, -130, MType({0xf7e2ab36f09e9014, 0xb8ae8671b3d7dd6c})}, + {Sign::POS, -130, MType({0xc669639640c305bb, 0xbb522e5dbf37f63b})}, + {Sign::POS, -130, MType({0xa3dc9e464e98764b, 0xbdf9def04cf980ff})}, + {Sign::POS, -130, MType({0xffd3256b59fa9c59, 0xc0a5a490dea95b5e})}, + {Sign::POS, -130, MType({0xb0a2d48672a051a5, 0xc3558be085e3f4bc})}, + {Sign::POS, -130, MType({0xb0a2d48672a051a5, 0xc3558be085e3f4bc})}, + {Sign::POS, -130, MType({0xacb2ca5d4ca1c10e, 0xc609a1bb4aa98f59})}, + {Sign::POS, -130, MType({0x43690b9e3cde0d02, 0xc8c1f3399ca7d33b})}, + {Sign::POS, -130, MType({0x18b1fd60383f7e5a, 0xcb7e8db1cfe04827})}, + {Sign::POS, -130, MType({0x248757e5f45af3d, 0xce3f7eb9a517c969})}, + {Sign::POS, -130, MType({0x7c4acd605be48bc1, 0xd104d427de7fbcc4})}, + {Sign::POS, -130, MType({0x7c4acd605be48bc1, 0xd104d427de7fbcc4})}, + {Sign::POS, -130, MType({0x58ff63629a92652d, 0xd3ce9c15e10ec927})}, + {Sign::POS, -130, MType({0x6b49be3bd8c89f10, 0xd69ce4e16303fcdd})}, + {Sign::POS, -130, MType({0xe6dd603a881e9060, 0xd96fbd2e2814c9cc})}, + {Sign::POS, -130, MType({0xe6dd603a881e9060, 0xd96fbd2e2814c9cc})}, + {Sign::POS, -130, MType({0x89e281c98c1d705c, 0xdc4733e7cbcbfc8c})}, + {Sign::POS, -130, MType({0xdc0db7cf0cce9f32, 0xdf2358439aa5dd12})}, + {Sign::POS, -130, MType({0xfdf1c5b846db9deb, 0xe20439c27a7c01b8})}, + {Sign::POS, -130, MType({0xfdf1c5b846db9deb, 0xe20439c27a7c01b8})}, + {Sign::POS, -130, MType({0x3dd7eab48869c402, 0xe4e9e832e2da0c05})}, + {Sign::POS, -130, MType({0x4e8fcc900b41daef, 0xe7d473b2e5db8f2a})}, + {Sign::POS, -130, MType({0x4e8fcc900b41daef, 0xe7d473b2e5db8f2a})}, + {Sign::POS, -130, MType({0x7593e1a9e917359a, 0xeac3ecb24a3ac7b4})}, + {Sign::POS, -130, MType({0xe7741396b49e1ce5, 0xedb863f4b73f982d})}, + {Sign::POS, -130, MType({0xe7741396b49e1ce5, 0xedb863f4b73f982d})}, + {Sign::POS, -130, MType({0xc8ba4f8f47b85a5c, 0xf0b1ea93f34675a7})}, + {Sign::POS, -130, MType({0x7007c1276821b705, 0xf3b09202359f9787})}, + {Sign::POS, -130, MType({0x7007c1276821b705, 0xf3b09202359f9787})}, + {Sign::POS, -130, MType({0x7ee19afe6db7e324, 0xf6b46c0c8c8fdea1})}, + {Sign::POS, -130, MType({0xedf54f37f6d40420, 0xf9bd8add584687f0})}, + {Sign::POS, -130, MType({0xedf54f37f6d40420, 0xf9bd8add584687f0})}, + {Sign::POS, -130, MType({0xefe52ccf03e7dee1, 0xfccc00fedba4e6fb})}, + {Sign::POS, -130, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, + {Sign::POS, -130, MType({0x1be2585c279c50a5, 0xffdfe15de3c01bac})}, + {Sign::POS, -129, MType({0xe0b571f5c91b0446, 0x817c9fa643880404})}, + {Sign::POS, -129, MType({0x7178594bef2def59, 0x830c17427ea55eca})}, + {Sign::POS, -129, MType({0x7178594bef2def59, 0x830c17427ea55eca})}, + {Sign::POS, -129, MType({0x9a741bb171158d2a, 0x849e6196487c1d1c})}, + {Sign::POS, -129, MType({0x9a741bb171158d2a, 0x849e6196487c1d1c})}, + {Sign::POS, -129, MType({0x1a618264446cb495, 0x863388eb55ebd295})}, + {Sign::POS, -129, MType({0x71dbdbbec51d7657, 0x87cb97c3ff9eac18})}, + {Sign::POS, -129, MType({0x71dbdbbec51d7657, 0x87cb97c3ff9eac18})}, + {Sign::POS, -129, MType({0xabe0b522230f7d14, 0x896698dce4cff76c})}, + {Sign::POS, -129, MType({0xabe0b522230f7d14, 0x896698dce4cff76c})}, + {Sign::POS, -129, MType({0xd28e8adafea703b4, 0x8b04972e9d4d3011})}, + {Sign::POS, -129, MType({0x208422d83be34b27, 0x8ca59def7b5cefc5})}, + {Sign::POS, -129, MType({0x208422d83be34b27, 0x8ca59def7b5cefc5})}, + {Sign::POS, -129, MType({0xc385cf49402af0e4, 0x8e49b8955e3ffb8a})}, + {Sign::POS, -129, MType({0xc385cf49402af0e4, 0x8e49b8955e3ffb8a})}, + {Sign::POS, -129, MType({0xda982a614e12c6dd, 0x8ff0f2d7960a075c})}, + {Sign::POS, -129, MType({0xda982a614e12c6dd, 0x8ff0f2d7960a075c})}, + {Sign::POS, -129, MType({0x38401fc1c1b5c2c, 0x919b58b0d999bbc8})}, + {Sign::POS, -129, MType({0x38401fc1c1b5c2c, 0x919b58b0d999bbc8})}, + {Sign::POS, -129, MType({0xa9b55d3f16da746a, 0x9348f6614f821394})}, + {Sign::POS, -129, MType({0xa9b55d3f16da746a, 0x9348f6614f821394})}, + {Sign::POS, -129, MType({0x88d2d1473d4f7f5, 0x94f9d870aac256a5})}, + {Sign::POS, -129, MType({0x88d2d1473d4f7f5, 0x94f9d870aac256a5})}, + {Sign::POS, -129, MType({0x7c1e117dea19e9e6, 0x96ae0bb05c35d5bd})}, + {Sign::POS, -129, MType({0x7c1e117dea19e9e6, 0x96ae0bb05c35d5bd})}, + {Sign::POS, -129, MType({0x336db0630f536fb9, 0x98659d3dd9b12532})}, + {Sign::POS, 0, MType(0)}, }, // -log10(r) for the second step, generated by SageMath with: // // for i in range(-2^6, 2^7 + 1): // r = 2^-16 * round( 2^16 / (1 + i*2^(-14)) ); // s, m, e = RealField(128)(r).log10().sign_mantissa_exponent(); - // print("{false," if s == -1 else "{true,", e, ", + // print("{Sign::POS," if s == -1 else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_2 = */ { - {true, -137, MType({0x7f1ce002fa34131b, 0xdeca729013cd7c31})}, - {true, -137, MType({0x639afa085dd8b4c7, 0xdb5475b44946d986})}, - {true, -137, MType({0x5512632fe9a58cb, 0xd7de6b0e10cab7d2})}, - {true, -137, MType({0xb5380a9953117d07, 0xd468529cfc6fb395})}, - {true, -137, MType({0x70af2d7d53be1f31, 0xd0f22c609e474741})}, - {true, -137, MType({0xccd499c49b74cc2, 0xcd7bf858885dcae2})}, - {true, -137, MType({0x5b51ddc3987ebfb8, 0xca05b6844cba73cf})}, - {true, -137, MType({0x49375f5189b3782b, 0xc68f66e37d5f545a})}, - {true, -137, MType({0xf6e57738865c712f, 0xc3190975ac495b7a})}, - {true, -137, MType({0xca02b10a8c712acd, 0xbfa29e3a6b70547e})}, - {true, -137, MType({0x78e5038210208151, 0xbc2c25314cc6e6b6})}, - {true, -137, MType({0xfa099ecd71ee0ea, 0xb8b59e59e23a9524})}, - {true, -137, MType({0xeeb445ccb8fb09ed, 0xb53f09b3bdb3be28})}, - {true, -137, MType({0xc352fff18a1c02fb, 0xb1c8673e71159b33})}, - {true, -137, MType({0x7949e03ecf9b390b, 0xae51b6f98e3e406e})}, - {true, -137, MType({0x2681f33f30aadedc, 0xaadaf8e4a7069c6c})}, - {true, -137, MType({0xf01d5496eea213b3, 0xa7642cff4d4277d6})}, - {true, -137, MType({0xe92ef555ff1de975, 0xa3ed534912c0751d})}, - {true, -137, MType({0xeb0c7519b3e7c1e0, 0xa0766bc1894a1022})}, - {true, -137, MType({0xf60d204ff0fe5296, 0x9c21b6e91e7f03a3})}, - {true, -137, MType({0x125c19a4f057c18b, 0x98aab0491050bea8})}, - {true, -137, MType({0x7e9383ce1bdf9575, 0x95339bd64cd953e7})}, - {true, -137, MType({0xbf274f4d8f770253, 0x91bc799065cc57d6})}, - {true, -137, MType({0x656bd9b758fe44ba, 0x8e454976ecd836ad})}, - {true, -137, MType({0xbfdd2c7f388fc014, 0x8ace0b8973a63413})}, - {true, -137, MType({0x83fbf6ed936c493a, 0x8756bfc78bda6ad0})}, - {true, -137, MType({0x71bfa9a18bec01cc, 0x83df6630c713cc76})}, - {true, -137, MType({0xf09d19f56dbfef72, 0x8067fec4b6ec2111})}, - {true, -138, MType({0x4c422713b1642228, 0xf9e11305d9f00dad})}, - {true, -138, MType({0xc3c7c5699b7a0a4, 0xf2f20cd5f58de39a})}, - {true, -138, MType({0xb8db7c69e3fa0797, 0xec02eaf8e3c656ff})}, - {true, -138, MType({0xa083eb05506ff7ed, 0xe513ad6dc7a3a553})}, - {true, -138, MType({0xc21595e745f1fa15, 0xde245433c425b5c5})}, - {true, -138, MType({0xb9d5bcdbfe719389, 0xd734df49fc42189b})}, - {true, -138, MType({0xa17a1e85e93461f4, 0xd0454eaf92e4068b})}, - {true, -138, MType({0xe3537584da333fda, 0xc955a263aaec6016})}, - {true, -138, MType({0x963177f24682c2, 0xc265da656731ace5})}, - {true, -138, MType({0x4ac037347bcfc50e, 0xbb75f6b3ea801b1e})}, - {true, -138, MType({0x901a736a4364cdfd, 0xb485f74e57997ec6})}, - {true, -138, MType({0xbb550acc3b9d7247, 0xad95dc33d1355117})}, - {true, -138, MType({0x663cf2b27e8f1ffb, 0xa6a5a5637a00afdc})}, - {true, -138, MType({0x5f89bd08feb39952, 0x9fb552dc749e5cca})}, - {true, -138, MType({0x23c2623c73f494db, 0x98c4e49de3a6bcdd})}, - {true, -138, MType({0x4937d3b5485af61e, 0x91d45aa6e9a7d7b0})}, - {true, -138, MType({0xdf14214e7a6d8111, 0x8ae3b4f6a92556d9})}, - {true, -138, MType({0xbf7cfc14999fb4bc, 0x83f2f38c44988544})}, - {true, -139, MType({0xa990c0ee569a8d51, 0xfa042ccdbce09d15})}, - {true, -139, MType({0xa38463e9d941e1c2, 0xec223b0b32227c9e})}, - {true, -139, MType({0xba0324530edaa03f, 0xde4011cf2daaff31})}, - {true, -139, MType({0x5e997a02dad7ace7, 0xd05db117f419b857})}, - {true, -139, MType({0x4a14676d4d0f817e, 0xc27b18e3c9f977c7})}, - {true, -139, MType({0x857c002ee7a1e473, 0xb4984930f3c0481c})}, - {true, -139, MType({0x5923b2eb72d8012a, 0xa6b541fdb5cf6d89})}, - {true, -139, MType({0x21cde8f85ca1f9fd, 0x98d203485473648b})}, - {true, -139, MType({0xbe08e08b1d212d4, 0x8aee8d0f13e3e09e})}, - {true, -140, MType({0x695023998e6bd7b0, 0xfa15bea0708795e1})}, - {true, -140, MType({0x634cea6750617a92, 0xde4df4140b42822f})}, - {true, -140, MType({0xfbd7e970aef9dbb8, 0xc285ba757feb2781})}, - {true, -140, MType({0x9aedc1c1ba7d0695, 0xa6bd11c1564a8ace})}, - {true, -140, MType({0x8d306ba207233c44, 0x8af3f9f41600120a})}, - {true, -141, MType({0x856a0a3a00fcf3c1, 0xde54e6148d030322})}, - {true, -141, MType({0xb3a2c1407cf6d38d, 0xa6c0fa00de35f314})}, - {true, -142, MType({0xd791cf6a70c3a504, 0xde585f4c5bbbcd3d})}, - {true, -143, MType({0x10a633f2c4a8ea22, 0xde5a1bf627b1f68f})}, - {true, 0, MType({0x0, 0x0})}, - {false, -143, MType({0xed4a68e5e6e83ddf, 0xde5d95658a729eab})}, - {false, -142, MType({0x3281f1872cdbee94, 0xde5f522b21e3e25a})}, - {false, -141, MType({0xf1466edaa96e356e, 0xa6c8cb3b7e5bbbfd})}, - {false, -141, MType({0x8a607fd695dfc3d9, 0xde62cbd21e895473})}, - {false, -140, MType({0xc36b8713ceefe2de, 0x8afed57032bebc7c})}, - {false, -140, MType({0x5c2e76c953e3e3e6, 0xa6ccb436a3c72fa4})}, - {false, -140, MType({0x8e4950fa5c943bbf, 0xc29b023fdcb2dccf})}, - {false, -140, MType({0x20fa8a73c585f634, 0xde69bf8f58005dfc})}, - {false, -140, MType({0xaa106d9b0a9717a, 0xfa38ec28905810a3})}, - {false, -139, MType({0x85d70e032de41aec, 0x8b04440780460c2a})}, - {false, -139, MType({0xbeee21cbb82a9a78, 0x98ec49a311cc30ab})}, - {false, -139, MType({0xabd7b0fdd8efe6f6, 0xa6d486e8ba5151a0})}, - {false, -139, MType({0x3221c56e2c1aa912, 0xb4bcfbda377d31cc})}, - {false, -139, MType({0x57b795a36d9c5f19, 0xc2a5a879470c7c37})}, - {false, -139, MType({0x131ec142c053ac3b, 0xd08e8cc7a6d0c580})}, - {false, -139, MType({0x35e3298f4bb2aa0a, 0xde77a8c714b08d28})}, - {false, -139, MType({0x7133dafdfc44f160, 0xec60fc794ea73ee4})}, - {false, -139, MType({0x74b37d23121c59d5, 0xfa4a87e012c533eb})}, - {false, -138, MType({0x93bf5f4207da8a4c, 0x841a257e8f97da22})}, - {false, -138, MType({0xfdb5990ec6057f4e, 0x8b0f22e919107c0c})}, - {false, -138, MType({0x2d408a58b1b202fe, 0x92043c3084f41481})}, - {false, -138, MType({0x1759381b61dfbf01, 0x98f97155b274b1ab})}, - {false, -138, MType({0x41e90a054df4b9f1, 0x9feec25980cedbbe})}, - {false, -138, MType({0xa1e66c6203725d50, 0xa6e42f3ccf49959d})}, - {false, -138, MType({0x8693d36ab45bd7ce, 0xadd9b8007d365d83})}, - {false, -138, MType({0x91e25bb40ad3f098, 0xb4cf5ca569f12da9})}, - {false, -138, MType({0xbdf94392c4cc7f6c, 0xbbc51d2c74e07cf0})}, - {false, -138, MType({0x6fe37973354a82f9, 0xc2baf9967d753f89})}, - {false, -138, MType({0x97647b4267bfd801, 0xc9b0f1e4632ae79b})}, - {false, -138, MType({0xdbf5c32a454f7bdf, 0xd0a70617058765ee})}, - {false, -138, MType({0xd6edfe04c37ba916, 0xd79d362f441b2a92})}, - {false, -138, MType({0x5ad3480ccfbe9890, 0xde93822dfe812587})}, - {false, -138, MType({0xc7d9ac765be7e325, 0xe589ea14145ec764})}, - {false, -138, MType({0x6d8f24b9a3ca011b, 0xec806de265640204})}, - {false, -138, MType({0xf9b654807dcdd5b2, 0xf3770d99d14b4928})}, - {false, -138, MType({0xf4513f4745663028, 0xfa6dc93b37d99326})}, - {false, -137, MType({0xa46e9a72d80da75f, 0x80b25063bc6f2cc6})}, - {false, -137, MType({0xee60992b51ffac4b, 0x842dca1fba19cce6})}, - {false, -137, MType({0x1977fa1c786886b3, 0x87a951d204deeaf3})}, - {false, -137, MType({0xe5f7c52cdf119d5, 0x8b24e77b0cb60a84})}, - {false, -137, MType({0x3bf9d70da1021a10, 0x8ea08b1b419bf221})}, - {false, -137, MType({0xfd0406b07523b8e6, 0x921c3cb31392ab94})}, - {false, -137, MType({0x453ee32c020f2a8, 0x9597fc42f2a18441})}, - {false, -137, MType({0xcfb3ec22066bf7f6, 0x9913c9cb4ed50d72})}, - {false, -137, MType({0x215c025bd493ecf9, 0x9c8fa54c983f1cb8})}, - {false, -137, MType({0x39c116b7ee3a83ec, 0x9f2c93192e68232b})}, - {false, -137, MType({0xf41f4b3ede2782f0, 0xa2a8870f24ac5f66})}, - {false, -137, MType({0x61196927723eb75c, 0xa62488ff3c735799})}, - {false, -137, MType({0xe615e836cb1edab, 0xa9a098e9e5e2a432})}, - {false, -137, MType({0x6981331c5fc71cfc, 0xad1cb6cf91252372})}, - {false, -137, MType({0x5f6a4faa054f11fa, 0xb098e2b0ae6af9c2})}, - {false, -137, MType({0x2a68bc681a74c28, 0xb4151c8dade99205})}, - {false, -137, MType({0x382ba24d90566403, 0xb7916466ffdb9ded})}, - {false, -137, MType({0x6ad1abe51dd22e00, 0xbb0dba3d14811652})}, - {false, -137, MType({0x456d3f7f59b13960, 0xbe8a1e105c1f3b85})}, - {false, -137, MType({0x738dd8b7d66e9058, 0xc2068fe1470095a4})}, - {false, -137, MType({0x68e123fed7ff11c6, 0xc5830fb04574f4f1})}, - {false, -137, MType({0x2f3bd09780c3aa11, 0xc8ff9d7dc7d17225})}, - {false, -137, MType({0x3b48887f1ce36935, 0xcc7c394a3e706ec5})}, - {false, -137, MType({0x47ddae655ecc4633, 0xcff8e31619b19578})}, - {false, -137, MType({0x37fa81eef4819c88, 0xd3759ae1c9f9da5b})}, - {false, -137, MType({0xff6c4a8d747c65ed, 0xd6f260adbfb37b55})}, - {false, -137, MType({0x921c29493a33318c, 0xda6f347a6b4e0070})}, - {false, -137, MType({0xda0631eb65e731d8, 0xddec16483d3e3c27})}, - {false, -137, MType({0xb3da6c07d110babc, 0xe1690617a5fe4bc2})}, - {false, -137, MType({0xf2485c7868b8835a, 0xe4e603e9160d97a6})}, - {false, -137, MType({0x67f5b7ed01344055, 0xe8630fbcfdf0d3ae})}, - {false, -137, MType({0xf820df445b1d0622, 0xebe02993ce31ff7b})}, - {false, -137, MType({0xadefc674b7eca5cd, 0xef5d516df76066d0})}, - {false, -137, MType({0xda6be6dc057d3235, 0xf2da874bea10a1e0})}, - {false, -137, MType({0x392bdde152ab5ff5, 0xf657cb2e16dc95a9})}, - {false, -137, MType({0x1bab58e2ec99cf73, 0xf9d51d14ee637444})}, - {false, -137, MType({0x9b51ef7e3388d692, 0xfd527d00e149bd3e})}, - {false, -136, MType({0xe914c6a7f3f22fa2, 0x8067f579301c9ef6})}, - {false, -136, MType({0xd22862eb2081c94, 0x8226b374edf088e2})}, - {false, -136, MType({0x29ebd0b476cd8fd8, 0x83e57873e27ad153})}, - {false, -136, MType({0x98feddc2806d01ed, 0x85a44476461854a0})}, - {false, -136, MType({0x471bfc261a401854, 0x8763177c512896af})}, - {false, -136, MType({0xb6f89c19b4cd1acd, 0x88b23a5b61430a16})}, - {false, -136, MType({0xb39aaf34163fb099, 0x8a7119a85909ebe9})}, - {false, -136, MType({0x1665f0f821541c36, 0x8c2ffff99357e887})}, - {false, -136, MType({0xa5051754e049c1cb, 0x8deeed4f489679a6})}, - {false, -136, MType({0x8c5a9a1c57b2e986, 0x8fade1a9b131c159})}, - {false, -136, MType({0x1d8448438a26a9ae, 0x916cdd0905988a35})}, - {false, -136, MType({0x8e3a0913ecd2fd02, 0x932bdf6d7e3c477d})}, - {false, -136, MType({0xbc881a45f47f1d36, 0x94eae8d753911550})}, - {false, -136, MType({0xf5e51c05499b06d0, 0x96a9f946be0db8d0})}, - {false, -136, MType({0xc1a43be81a243fde, 0x986910bbf62ba04f})}, - {false, -136, MType({0xaec3cfebe971beb7, 0x9a282f373466e378})}, - {false, -136, MType({0x2518b29328614989, 0x9be754b8b13e437c})}, - {false, -136, MType({0x39d6b147cbe803a4, 0x9da68140a5332b3a})}, - {false, -136, MType({0x87765e3004ae428d, 0x9f65b4cf48c9af6d})}, - {false, -136, MType({0x8f896ab28245bac, 0xa124ef64d4888ed6})}, - {false, -136, MType({0xf8880fb5ca630c87, 0xa2e4310180f93263})}, - {false, -136, MType({0xb179397cf82e935c, 0xa4a379a586a7ad62})}, - {false, -136, MType({0x95a8cb717197ad81, 0xa662c9511e22bda3})}, - {false, -136, MType({0xf6394a34b7f9a4a4, 0xa82220047ffbcba8})}, - {false, -136, MType({0xffafd8c2b57884e8, 0xa9e17dbfe4c6ead0})}, - {false, -136, MType({0xa970a643b8a6ac2b, 0xaba0e283851ad980})}, - {false, -136, MType({0xa89b49fb749d47e0, 0xad604e4f9991014e})}, - {false, -136, MType({0x66475ed2ac983305, 0xaf1fc1245ac5772e})}, - {false, -136, MType({0xb4fd6209364bb36f, 0xb06f5be1bf1918e7})}, - {false, -136, MType({0x8b5ce79b0965962a, 0xb22edb0636da31d6})}, - {false, -136, MType({0x6724232b07396427, 0xb3ee6133f7149769})}, - {false, -136, MType({0x2f02b14dcad8a49c, 0xb5adee6b386e62ae})}, - {false, -136, MType({0xbd6443a81f792e07, 0xb76d82ac339058db})}, - {false, -136, MType({0xea1cd9625749939a, 0xb92d1df72125eb7c})}, - {false, -136, MType({0x97775e3142198913, 0xbaecc04c39dd389b})}, - {false, -136, MType({0xc2a701b809a2bc39, 0xbcac69abb6670aeb})}, - {false, -136, MType({0x979b990f39e662e3, 0xbe6c1a15cf76d9f6})}, - {false, -136, MType({0x88395c463ddd82b2, 0xc02bd18abdc2ca45})}, - {false, -136, MType({0x66f451bd9ba5ed05, 0xc1eb900aba03ad8d})}, - {false, -136, MType({0x84cfb9413f6437a6, 0xc3ab5595fcf502d9})}, - {false, -136, MType({0xd2c1c8d32943ca42, 0xc56b222cbf54f6b6})}, - {false, -136, MType({0x67c0d1fd95192e6, 0xc72af5cf39e4635f})}, - {false, -136, MType({0xc298bf9edb6441f2, 0xc8ead07da566d0e3})}, - {false, -136, MType({0xc22d646addde3910, 0xcaaab2383aa27559})}, - {false, -136, MType({0x7c301e5c7d1ca40, 0xcc6a9aff32603504})}, - {false, -136, MType({0xfb444464df02505, 0xce2a8ad2c56ba27f})}, - {false, -136, MType({0x5f1df3591ae898f, 0xcfea81b32c92feec})}, - {false, -136, MType({0xb43caf8e7b891066, 0xd13a7f7c07506f7d})}, - {false, -136, MType({0x597fb13f0d0fdf19, 0xd2fa82b36a610c4f})}, - {false, -136, MType({0x3c21f1c60a60b0d6, 0xd4ba8cf83dd2a06b})}, - {false, -136, MType({0x2b7455909a0428a4, 0xd67a9e4aba7d7ce5})}, - {false, -136, MType({0x1438b60573d2da10, 0xd83ab6ab193ca223})}, - {false, -136, MType({0x49f86400c5ab2b11, 0xd9fad61992edc008})}, - {false, -136, MType({0xd3c313d148a23c35, 0xdbbafc9660713620})}, - {false, -136, MType({0xbc56852355e0f0d5, 0xdd7b2a21baaa13cc})}, + {Sign::NEG, -137, MType({0x7f1ce002fa34131b, 0xdeca729013cd7c31})}, + {Sign::NEG, -137, MType({0x639afa085dd8b4c7, 0xdb5475b44946d986})}, + {Sign::NEG, -137, MType({0x5512632fe9a58cb, 0xd7de6b0e10cab7d2})}, + {Sign::NEG, -137, MType({0xb5380a9953117d07, 0xd468529cfc6fb395})}, + {Sign::NEG, -137, MType({0x70af2d7d53be1f31, 0xd0f22c609e474741})}, + {Sign::NEG, -137, MType({0xccd499c49b74cc2, 0xcd7bf858885dcae2})}, + {Sign::NEG, -137, MType({0x5b51ddc3987ebfb8, 0xca05b6844cba73cf})}, + {Sign::NEG, -137, MType({0x49375f5189b3782b, 0xc68f66e37d5f545a})}, + {Sign::NEG, -137, MType({0xf6e57738865c712f, 0xc3190975ac495b7a})}, + {Sign::NEG, -137, MType({0xca02b10a8c712acd, 0xbfa29e3a6b70547e})}, + {Sign::NEG, -137, MType({0x78e5038210208151, 0xbc2c25314cc6e6b6})}, + {Sign::NEG, -137, MType({0xfa099ecd71ee0ea, 0xb8b59e59e23a9524})}, + {Sign::NEG, -137, MType({0xeeb445ccb8fb09ed, 0xb53f09b3bdb3be28})}, + {Sign::NEG, -137, MType({0xc352fff18a1c02fb, 0xb1c8673e71159b33})}, + {Sign::NEG, -137, MType({0x7949e03ecf9b390b, 0xae51b6f98e3e406e})}, + {Sign::NEG, -137, MType({0x2681f33f30aadedc, 0xaadaf8e4a7069c6c})}, + {Sign::NEG, -137, MType({0xf01d5496eea213b3, 0xa7642cff4d4277d6})}, + {Sign::NEG, -137, MType({0xe92ef555ff1de975, 0xa3ed534912c0751d})}, + {Sign::NEG, -137, MType({0xeb0c7519b3e7c1e0, 0xa0766bc1894a1022})}, + {Sign::NEG, -137, MType({0xf60d204ff0fe5296, 0x9c21b6e91e7f03a3})}, + {Sign::NEG, -137, MType({0x125c19a4f057c18b, 0x98aab0491050bea8})}, + {Sign::NEG, -137, MType({0x7e9383ce1bdf9575, 0x95339bd64cd953e7})}, + {Sign::NEG, -137, MType({0xbf274f4d8f770253, 0x91bc799065cc57d6})}, + {Sign::NEG, -137, MType({0x656bd9b758fe44ba, 0x8e454976ecd836ad})}, + {Sign::NEG, -137, MType({0xbfdd2c7f388fc014, 0x8ace0b8973a63413})}, + {Sign::NEG, -137, MType({0x83fbf6ed936c493a, 0x8756bfc78bda6ad0})}, + {Sign::NEG, -137, MType({0x71bfa9a18bec01cc, 0x83df6630c713cc76})}, + {Sign::NEG, -137, MType({0xf09d19f56dbfef72, 0x8067fec4b6ec2111})}, + {Sign::NEG, -138, MType({0x4c422713b1642228, 0xf9e11305d9f00dad})}, + {Sign::NEG, -138, MType({0xc3c7c5699b7a0a4, 0xf2f20cd5f58de39a})}, + {Sign::NEG, -138, MType({0xb8db7c69e3fa0797, 0xec02eaf8e3c656ff})}, + {Sign::NEG, -138, MType({0xa083eb05506ff7ed, 0xe513ad6dc7a3a553})}, + {Sign::NEG, -138, MType({0xc21595e745f1fa15, 0xde245433c425b5c5})}, + {Sign::NEG, -138, MType({0xb9d5bcdbfe719389, 0xd734df49fc42189b})}, + {Sign::NEG, -138, MType({0xa17a1e85e93461f4, 0xd0454eaf92e4068b})}, + {Sign::NEG, -138, MType({0xe3537584da333fda, 0xc955a263aaec6016})}, + {Sign::NEG, -138, MType({0x963177f24682c2, 0xc265da656731ace5})}, + {Sign::NEG, -138, MType({0x4ac037347bcfc50e, 0xbb75f6b3ea801b1e})}, + {Sign::NEG, -138, MType({0x901a736a4364cdfd, 0xb485f74e57997ec6})}, + {Sign::NEG, -138, MType({0xbb550acc3b9d7247, 0xad95dc33d1355117})}, + {Sign::NEG, -138, MType({0x663cf2b27e8f1ffb, 0xa6a5a5637a00afdc})}, + {Sign::NEG, -138, MType({0x5f89bd08feb39952, 0x9fb552dc749e5cca})}, + {Sign::NEG, -138, MType({0x23c2623c73f494db, 0x98c4e49de3a6bcdd})}, + {Sign::NEG, -138, MType({0x4937d3b5485af61e, 0x91d45aa6e9a7d7b0})}, + {Sign::NEG, -138, MType({0xdf14214e7a6d8111, 0x8ae3b4f6a92556d9})}, + {Sign::NEG, -138, MType({0xbf7cfc14999fb4bc, 0x83f2f38c44988544})}, + {Sign::NEG, -139, MType({0xa990c0ee569a8d51, 0xfa042ccdbce09d15})}, + {Sign::NEG, -139, MType({0xa38463e9d941e1c2, 0xec223b0b32227c9e})}, + {Sign::NEG, -139, MType({0xba0324530edaa03f, 0xde4011cf2daaff31})}, + {Sign::NEG, -139, MType({0x5e997a02dad7ace7, 0xd05db117f419b857})}, + {Sign::NEG, -139, MType({0x4a14676d4d0f817e, 0xc27b18e3c9f977c7})}, + {Sign::NEG, -139, MType({0x857c002ee7a1e473, 0xb4984930f3c0481c})}, + {Sign::NEG, -139, MType({0x5923b2eb72d8012a, 0xa6b541fdb5cf6d89})}, + {Sign::NEG, -139, MType({0x21cde8f85ca1f9fd, 0x98d203485473648b})}, + {Sign::NEG, -139, MType({0xbe08e08b1d212d4, 0x8aee8d0f13e3e09e})}, + {Sign::NEG, -140, MType({0x695023998e6bd7b0, 0xfa15bea0708795e1})}, + {Sign::NEG, -140, MType({0x634cea6750617a92, 0xde4df4140b42822f})}, + {Sign::NEG, -140, MType({0xfbd7e970aef9dbb8, 0xc285ba757feb2781})}, + {Sign::NEG, -140, MType({0x9aedc1c1ba7d0695, 0xa6bd11c1564a8ace})}, + {Sign::NEG, -140, MType({0x8d306ba207233c44, 0x8af3f9f41600120a})}, + {Sign::NEG, -141, MType({0x856a0a3a00fcf3c1, 0xde54e6148d030322})}, + {Sign::NEG, -141, MType({0xb3a2c1407cf6d38d, 0xa6c0fa00de35f314})}, + {Sign::NEG, -142, MType({0xd791cf6a70c3a504, 0xde585f4c5bbbcd3d})}, + {Sign::NEG, -143, MType({0x10a633f2c4a8ea22, 0xde5a1bf627b1f68f})}, + {Sign::NEG, 0, MType({0x0, 0x0})}, + {Sign::POS, -143, MType({0xed4a68e5e6e83ddf, 0xde5d95658a729eab})}, + {Sign::POS, -142, MType({0x3281f1872cdbee94, 0xde5f522b21e3e25a})}, + {Sign::POS, -141, MType({0xf1466edaa96e356e, 0xa6c8cb3b7e5bbbfd})}, + {Sign::POS, -141, MType({0x8a607fd695dfc3d9, 0xde62cbd21e895473})}, + {Sign::POS, -140, MType({0xc36b8713ceefe2de, 0x8afed57032bebc7c})}, + {Sign::POS, -140, MType({0x5c2e76c953e3e3e6, 0xa6ccb436a3c72fa4})}, + {Sign::POS, -140, MType({0x8e4950fa5c943bbf, 0xc29b023fdcb2dccf})}, + {Sign::POS, -140, MType({0x20fa8a73c585f634, 0xde69bf8f58005dfc})}, + {Sign::POS, -140, MType({0xaa106d9b0a9717a, 0xfa38ec28905810a3})}, + {Sign::POS, -139, MType({0x85d70e032de41aec, 0x8b04440780460c2a})}, + {Sign::POS, -139, MType({0xbeee21cbb82a9a78, 0x98ec49a311cc30ab})}, + {Sign::POS, -139, MType({0xabd7b0fdd8efe6f6, 0xa6d486e8ba5151a0})}, + {Sign::POS, -139, MType({0x3221c56e2c1aa912, 0xb4bcfbda377d31cc})}, + {Sign::POS, -139, MType({0x57b795a36d9c5f19, 0xc2a5a879470c7c37})}, + {Sign::POS, -139, MType({0x131ec142c053ac3b, 0xd08e8cc7a6d0c580})}, + {Sign::POS, -139, MType({0x35e3298f4bb2aa0a, 0xde77a8c714b08d28})}, + {Sign::POS, -139, MType({0x7133dafdfc44f160, 0xec60fc794ea73ee4})}, + {Sign::POS, -139, MType({0x74b37d23121c59d5, 0xfa4a87e012c533eb})}, + {Sign::POS, -138, MType({0x93bf5f4207da8a4c, 0x841a257e8f97da22})}, + {Sign::POS, -138, MType({0xfdb5990ec6057f4e, 0x8b0f22e919107c0c})}, + {Sign::POS, -138, MType({0x2d408a58b1b202fe, 0x92043c3084f41481})}, + {Sign::POS, -138, MType({0x1759381b61dfbf01, 0x98f97155b274b1ab})}, + {Sign::POS, -138, MType({0x41e90a054df4b9f1, 0x9feec25980cedbbe})}, + {Sign::POS, -138, MType({0xa1e66c6203725d50, 0xa6e42f3ccf49959d})}, + {Sign::POS, -138, MType({0x8693d36ab45bd7ce, 0xadd9b8007d365d83})}, + {Sign::POS, -138, MType({0x91e25bb40ad3f098, 0xb4cf5ca569f12da9})}, + {Sign::POS, -138, MType({0xbdf94392c4cc7f6c, 0xbbc51d2c74e07cf0})}, + {Sign::POS, -138, MType({0x6fe37973354a82f9, 0xc2baf9967d753f89})}, + {Sign::POS, -138, MType({0x97647b4267bfd801, 0xc9b0f1e4632ae79b})}, + {Sign::POS, -138, MType({0xdbf5c32a454f7bdf, 0xd0a70617058765ee})}, + {Sign::POS, -138, MType({0xd6edfe04c37ba916, 0xd79d362f441b2a92})}, + {Sign::POS, -138, MType({0x5ad3480ccfbe9890, 0xde93822dfe812587})}, + {Sign::POS, -138, MType({0xc7d9ac765be7e325, 0xe589ea14145ec764})}, + {Sign::POS, -138, MType({0x6d8f24b9a3ca011b, 0xec806de265640204})}, + {Sign::POS, -138, MType({0xf9b654807dcdd5b2, 0xf3770d99d14b4928})}, + {Sign::POS, -138, MType({0xf4513f4745663028, 0xfa6dc93b37d99326})}, + {Sign::POS, -137, MType({0xa46e9a72d80da75f, 0x80b25063bc6f2cc6})}, + {Sign::POS, -137, MType({0xee60992b51ffac4b, 0x842dca1fba19cce6})}, + {Sign::POS, -137, MType({0x1977fa1c786886b3, 0x87a951d204deeaf3})}, + {Sign::POS, -137, MType({0xe5f7c52cdf119d5, 0x8b24e77b0cb60a84})}, + {Sign::POS, -137, MType({0x3bf9d70da1021a10, 0x8ea08b1b419bf221})}, + {Sign::POS, -137, MType({0xfd0406b07523b8e6, 0x921c3cb31392ab94})}, + {Sign::POS, -137, MType({0x453ee32c020f2a8, 0x9597fc42f2a18441})}, + {Sign::POS, -137, MType({0xcfb3ec22066bf7f6, 0x9913c9cb4ed50d72})}, + {Sign::POS, -137, MType({0x215c025bd493ecf9, 0x9c8fa54c983f1cb8})}, + {Sign::POS, -137, MType({0x39c116b7ee3a83ec, 0x9f2c93192e68232b})}, + {Sign::POS, -137, MType({0xf41f4b3ede2782f0, 0xa2a8870f24ac5f66})}, + {Sign::POS, -137, MType({0x61196927723eb75c, 0xa62488ff3c735799})}, + {Sign::POS, -137, MType({0xe615e836cb1edab, 0xa9a098e9e5e2a432})}, + {Sign::POS, -137, MType({0x6981331c5fc71cfc, 0xad1cb6cf91252372})}, + {Sign::POS, -137, MType({0x5f6a4faa054f11fa, 0xb098e2b0ae6af9c2})}, + {Sign::POS, -137, MType({0x2a68bc681a74c28, 0xb4151c8dade99205})}, + {Sign::POS, -137, MType({0x382ba24d90566403, 0xb7916466ffdb9ded})}, + {Sign::POS, -137, MType({0x6ad1abe51dd22e00, 0xbb0dba3d14811652})}, + {Sign::POS, -137, MType({0x456d3f7f59b13960, 0xbe8a1e105c1f3b85})}, + {Sign::POS, -137, MType({0x738dd8b7d66e9058, 0xc2068fe1470095a4})}, + {Sign::POS, -137, MType({0x68e123fed7ff11c6, 0xc5830fb04574f4f1})}, + {Sign::POS, -137, MType({0x2f3bd09780c3aa11, 0xc8ff9d7dc7d17225})}, + {Sign::POS, -137, MType({0x3b48887f1ce36935, 0xcc7c394a3e706ec5})}, + {Sign::POS, -137, MType({0x47ddae655ecc4633, 0xcff8e31619b19578})}, + {Sign::POS, -137, MType({0x37fa81eef4819c88, 0xd3759ae1c9f9da5b})}, + {Sign::POS, -137, MType({0xff6c4a8d747c65ed, 0xd6f260adbfb37b55})}, + {Sign::POS, -137, MType({0x921c29493a33318c, 0xda6f347a6b4e0070})}, + {Sign::POS, -137, MType({0xda0631eb65e731d8, 0xddec16483d3e3c27})}, + {Sign::POS, -137, MType({0xb3da6c07d110babc, 0xe1690617a5fe4bc2})}, + {Sign::POS, -137, MType({0xf2485c7868b8835a, 0xe4e603e9160d97a6})}, + {Sign::POS, -137, MType({0x67f5b7ed01344055, 0xe8630fbcfdf0d3ae})}, + {Sign::POS, -137, MType({0xf820df445b1d0622, 0xebe02993ce31ff7b})}, + {Sign::POS, -137, MType({0xadefc674b7eca5cd, 0xef5d516df76066d0})}, + {Sign::POS, -137, MType({0xda6be6dc057d3235, 0xf2da874bea10a1e0})}, + {Sign::POS, -137, MType({0x392bdde152ab5ff5, 0xf657cb2e16dc95a9})}, + {Sign::POS, -137, MType({0x1bab58e2ec99cf73, 0xf9d51d14ee637444})}, + {Sign::POS, -137, MType({0x9b51ef7e3388d692, 0xfd527d00e149bd3e})}, + {Sign::POS, -136, MType({0xe914c6a7f3f22fa2, 0x8067f579301c9ef6})}, + {Sign::POS, -136, MType({0xd22862eb2081c94, 0x8226b374edf088e2})}, + {Sign::POS, -136, MType({0x29ebd0b476cd8fd8, 0x83e57873e27ad153})}, + {Sign::POS, -136, MType({0x98feddc2806d01ed, 0x85a44476461854a0})}, + {Sign::POS, -136, MType({0x471bfc261a401854, 0x8763177c512896af})}, + {Sign::POS, -136, MType({0xb6f89c19b4cd1acd, 0x88b23a5b61430a16})}, + {Sign::POS, -136, MType({0xb39aaf34163fb099, 0x8a7119a85909ebe9})}, + {Sign::POS, -136, MType({0x1665f0f821541c36, 0x8c2ffff99357e887})}, + {Sign::POS, -136, MType({0xa5051754e049c1cb, 0x8deeed4f489679a6})}, + {Sign::POS, -136, MType({0x8c5a9a1c57b2e986, 0x8fade1a9b131c159})}, + {Sign::POS, -136, MType({0x1d8448438a26a9ae, 0x916cdd0905988a35})}, + {Sign::POS, -136, MType({0x8e3a0913ecd2fd02, 0x932bdf6d7e3c477d})}, + {Sign::POS, -136, MType({0xbc881a45f47f1d36, 0x94eae8d753911550})}, + {Sign::POS, -136, MType({0xf5e51c05499b06d0, 0x96a9f946be0db8d0})}, + {Sign::POS, -136, MType({0xc1a43be81a243fde, 0x986910bbf62ba04f})}, + {Sign::POS, -136, MType({0xaec3cfebe971beb7, 0x9a282f373466e378})}, + {Sign::POS, -136, MType({0x2518b29328614989, 0x9be754b8b13e437c})}, + {Sign::POS, -136, MType({0x39d6b147cbe803a4, 0x9da68140a5332b3a})}, + {Sign::POS, -136, MType({0x87765e3004ae428d, 0x9f65b4cf48c9af6d})}, + {Sign::POS, -136, MType({0x8f896ab28245bac, 0xa124ef64d4888ed6})}, + {Sign::POS, -136, MType({0xf8880fb5ca630c87, 0xa2e4310180f93263})}, + {Sign::POS, -136, MType({0xb179397cf82e935c, 0xa4a379a586a7ad62})}, + {Sign::POS, -136, MType({0x95a8cb717197ad81, 0xa662c9511e22bda3})}, + {Sign::POS, -136, MType({0xf6394a34b7f9a4a4, 0xa82220047ffbcba8})}, + {Sign::POS, -136, MType({0xffafd8c2b57884e8, 0xa9e17dbfe4c6ead0})}, + {Sign::POS, -136, MType({0xa970a643b8a6ac2b, 0xaba0e283851ad980})}, + {Sign::POS, -136, MType({0xa89b49fb749d47e0, 0xad604e4f9991014e})}, + {Sign::POS, -136, MType({0x66475ed2ac983305, 0xaf1fc1245ac5772e})}, + {Sign::POS, -136, MType({0xb4fd6209364bb36f, 0xb06f5be1bf1918e7})}, + {Sign::POS, -136, MType({0x8b5ce79b0965962a, 0xb22edb0636da31d6})}, + {Sign::POS, -136, MType({0x6724232b07396427, 0xb3ee6133f7149769})}, + {Sign::POS, -136, MType({0x2f02b14dcad8a49c, 0xb5adee6b386e62ae})}, + {Sign::POS, -136, MType({0xbd6443a81f792e07, 0xb76d82ac339058db})}, + {Sign::POS, -136, MType({0xea1cd9625749939a, 0xb92d1df72125eb7c})}, + {Sign::POS, -136, MType({0x97775e3142198913, 0xbaecc04c39dd389b})}, + {Sign::POS, -136, MType({0xc2a701b809a2bc39, 0xbcac69abb6670aeb})}, + {Sign::POS, -136, MType({0x979b990f39e662e3, 0xbe6c1a15cf76d9f6})}, + {Sign::POS, -136, MType({0x88395c463ddd82b2, 0xc02bd18abdc2ca45})}, + {Sign::POS, -136, MType({0x66f451bd9ba5ed05, 0xc1eb900aba03ad8d})}, + {Sign::POS, -136, MType({0x84cfb9413f6437a6, 0xc3ab5595fcf502d9})}, + {Sign::POS, -136, MType({0xd2c1c8d32943ca42, 0xc56b222cbf54f6b6})}, + {Sign::POS, -136, MType({0x67c0d1fd95192e6, 0xc72af5cf39e4635f})}, + {Sign::POS, -136, MType({0xc298bf9edb6441f2, 0xc8ead07da566d0e3})}, + {Sign::POS, -136, MType({0xc22d646addde3910, 0xcaaab2383aa27559})}, + {Sign::POS, -136, MType({0x7c301e5c7d1ca40, 0xcc6a9aff32603504})}, + {Sign::POS, -136, MType({0xfb444464df02505, 0xce2a8ad2c56ba27f})}, + {Sign::POS, -136, MType({0x5f1df3591ae898f, 0xcfea81b32c92feec})}, + {Sign::POS, -136, MType({0xb43caf8e7b891066, 0xd13a7f7c07506f7d})}, + {Sign::POS, -136, MType({0x597fb13f0d0fdf19, 0xd2fa82b36a610c4f})}, + {Sign::POS, -136, MType({0x3c21f1c60a60b0d6, 0xd4ba8cf83dd2a06b})}, + {Sign::POS, -136, MType({0x2b7455909a0428a4, 0xd67a9e4aba7d7ce5})}, + {Sign::POS, -136, MType({0x1438b60573d2da10, 0xd83ab6ab193ca223})}, + {Sign::POS, -136, MType({0x49f86400c5ab2b11, 0xd9fad61992edc008})}, + {Sign::POS, -136, MType({0xd3c313d148a23c35, 0xdbbafc9660713620})}, + {Sign::POS, -136, MType({0xbc56852355e0f0d5, 0xdd7b2a21baaa13cc})}, }, // -log10(r) for the third step, generated by SageMath with: // // for i in range(-80, 81): // r = 2^-21 * round( 2^21 / (1 + i*2^(-21)) ); // s, m, e = RealField(128)(r).log10().sign_mantissa_exponent(); - // print("{false," if (s == -1) else "{true,", e, ", + // print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_3 = */ { - {true, -143, MType({0x54d7e49898ca0093, 0x8af8b9b322ba8c7d})}, - {true, -143, MType({0xc321bbf16665f29c, 0x893c06529deffc3d})}, - {true, -143, MType({0x8246df7140c3e4ae, 0x877f52e433ac7ec4})}, - {true, -143, MType({0x1deaa9e85780e4c1, 0x85c29f67e3ef35bc})}, - {true, -143, MType({0xcd8a5121a9162d0, 0x8405ebddaeb742cf})}, - {true, -143, MType({0xb10486fa4644308d, 0x824938459403c7a7})}, - {true, -143, MType({0x578a2f61eedd4be8, 0x808c849f93d3e5f0})}, - {true, -144, MType({0x715b4a491790e8a7, 0xfd9fa1d75c4d7ea6})}, - {true, -144, MType({0xefb6273a04c71573, 0xfa263a53c5f6eaf4})}, - {true, -144, MType({0x474d901560c17807, 0xf6acd2b464a25420})}, - {true, -144, MType({0x6b9a5deceb80ec57, 0xf3336af9384dfd7c})}, - {true, -144, MType({0x2665a32f7cc64f79, 0xefba032240f82a5d})}, - {true, -144, MType({0x17c8a67316659363, 0xec409b2f7e9f1e16})}, - {true, -144, MType({0xb62cdd3ef5c8673d, 0xe8c73320f1411bfa})}, - {true, -144, MType({0x4e4be6d5a4a07422, 0xe54dcaf698dc675e})}, - {true, -144, MType({0x32f86ff08c92e22, 0xe1d462b0756f4394})}, - {true, -144, MType({0xce31a0d27359396f, 0xde5afa4e86f7f3ee})}, - {true, -144, MType({0x7efc3180aee36373, 0xdae191d0cd74bbc1})}, - {true, -144, MType({0xbb894b1e0ce72fc4, 0xd768293748e3de5e})}, - {true, -144, MType({0x230f6c7270f8be, 0xd3eec081f9439f19})}, - {true, -144, MType({0x9f63aaa563e9a399, 0xd07557b0de924142})}, - {true, -144, MType({0xc2354e441015e7eb, 0xccfbeec3f8ce082d})}, - {true, -144, MType({0x67d22bcf5a452a4c, 0xc98285bb47f5372c})}, - {true, -144, MType({0x65c46fa3e3afea18, 0xc6091c96cc061190})}, - {true, -144, MType({0x67e63bbe1405c20d, 0xc28fb35684fedaab})}, - {true, -144, MType({0xf061a284212afbad, 0xbf1649fa72ddd5ce})}, - {true, -144, MType({0x57b0a1901625b539, 0xbb9ce08295a1464c})}, - {true, -144, MType({0xcc9d1c79d93a9a1e, 0xb82376eeed476f74})}, - {true, -144, MType({0x5440d7a131392da8, 0xb4aa0d3f79ce9499})}, - {true, -144, MType({0xca0572f7c9f7a7de, 0xb130a3743b34f90a})}, - {true, -144, MType({0xdfa464cb37fe6455, 0xadb7398d3178e019})}, - {true, -144, MType({0x1d26f48efb62e2e0, 0xaa3dcf8a5c988d17})}, - {true, -144, MType({0xe0e635a681d259e2, 0xa6c4656bbc924352})}, - {true, -144, MType({0x5f8b022f27cbda35, 0xa34afb315164461d})}, - {true, -144, MType({0xa40df5ca390a0465, 0x9fd190db1b0cd8c6})}, - {true, -144, MType({0x8fb76866f01c4f2d, 0x9c582669198a3e9e})}, - {true, -144, MType({0xda1f690c752fdeff, 0x98debbdb4cdabaf4})}, - {true, -144, MType({0x112db8a3dc07ee78, 0x95655131b4fc9119})}, - {true, -144, MType({0x9919c4c22125c79e, 0x91ebe66c51ee045a})}, - {true, -144, MType({0xac6aa27226204db3, 0x8e727b8b23ad5808})}, - {true, -144, MType({0x5bf708fead2b1780, 0x8af9108e2a38cf72})}, - {true, -144, MType({0x8ee54cbc53cd19ed, 0x877fa575658eade6})}, - {true, -144, MType({0x2ab59d38cc6e2c5, 0x84063a40d5ad36b4})}, - {true, -144, MType({0x4b0eaf0a99286378, 0x808ccef07a92ad29})}, - {true, -145, MType({0xa448b11f012c975c, 0xfa26c708a87aa929})}, - {true, -145, MType({0xb0a1d584117de73b, 0xf333eff8c556e089})}, - {true, -145, MType({0xe890f9fb57fdabb6, 0xec4118b14bb6870e})}, - {true, -145, MType({0x261d48c71e693130, 0xe54e41323b962355})}, - {true, -145, MType({0xefecdd48ed894c32, 0xde5b697b94f23bf7})}, - {true, -145, MType({0x7944b9957598a88a, 0xd768918d57c75792})}, - {true, -145, MType({0xa208bc0875093645, 0xd075b9678411fcbf})}, - {true, -145, MType({0xf6bb94d89da8b432, 0xc982e10a19ceb219})}, - {true, -145, MType({0xb07ebbab782457b0, 0xc290087518f9fe3b})}, - {true, -145, MType({0xb512652945eb9165, 0xbb9d2fa8819067be})}, - {true, -145, MType({0x96d57890e171eea5, 0xb4aa56a4538e753c})}, - {true, -145, MType({0x94c5854b9cd01726, 0xadb77d688ef0ad4e})}, - {true, -145, MType({0x9a7eb8811ec3e6bb, 0xa6c4a3f533b3968d})}, - {true, -145, MType({0x403bd2ab3e0fa2d7, 0x9fd1ca4a41d3b792})}, - {true, -145, MType({0xcad61d29db384b6b, 0x98def067b94d96f4})}, - {true, -145, MType({0x2bc55fd6b8a306ec, 0x91ec164d9a1dbb4d})}, - {true, -145, MType({0x11fd6995111a927, 0x8af93bfbe440ab33})}, - {true, -145, MType({0x959a26faac7e5494, 0x8406617297b2ed3d})}, - {true, -146, MType({0xc10eab7266ac6bc0, 0xfa270d6368e21007})}, - {true, -146, MType({0xbb178b90026b2b2, 0xec41577274ef0439})}, - {true, -146, MType({0xac3bfd925e6b33e1, 0xde5ba1125385c43b})}, - {true, -146, MType({0x9d0a01a95b355319, 0xd075ea43049f5d3b})}, - {true, -146, MType({0x31b3b7b20a6a6496, 0xc29033048834dc64})}, - {true, -146, MType({0x170da891504620f4, 0xb4aa7b56de3f4ee0})}, - {true, -146, MType({0x53289e84744549cb, 0xa6c4c33a06b7c1d9})}, - {true, -146, MType({0x45519048b0ce7e7f, 0x98df0aae01974279})}, - {true, -146, MType({0xa6118c42bf99407e, 0x8af951b2ced6dde8})}, - {true, -147, MType({0xe5b474cc5a64cf6, 0xfa273090dcdf429f})}, - {true, -147, MType({0xa74dab3bd6067bc7, 0xde5bbcddc0b533aa})}, - {true, -147, MType({0x9f73f4e37357341b, 0xc290484c4921a941})}, - {true, -147, MType({0x31bf5d5f815220e7, 0xa6c4d2dc7616bdb0})}, - {true, -147, MType({0x4b987ca5fca242d7, 0x8af95c8e47868b41})}, - {true, -148, MType({0x19be3fabd93832c5, 0xde5bcac37ac6587d})}, - {true, -148, MType({0x8fd43f0c9ce444d3, 0xa6c4daadaf3d75e0})}, - {true, -149, MType({0x61cd853e796bc2c, 0xde5bd1b658ad4676})}, - {true, -150, MType({0x87d6afabfba0644f, 0xde5bd52fc7d8545f})}, - {false, 0, MType({0x0, 0x0})}, - {false, -150, MType({0xa9bf32001043629d, 0xde5bdc22a69d9e19})}, - {false, -149, MType({0x8014f0f360272d82, 0xde5bdf9c1637d9ef})}, - {false, -148, MType({0xfe94a02fc639c0e3, 0xa6c4ea5024795bd2})}, - {false, -148, MType({0xbee710a5ace7c8d4, 0xde5be68ef5db7f99})}, - {false, -147, MType({0x1a778d8100437e4f, 0x8af972453faf11e8})}, - {false, -147, MType({0x97d773f8992f7051, 0xa6c4f221608e89fe})}, - {false, -147, MType({0xc9ee5841a3afa95, 0xc29072dbdd9a0dd5})}, - {false, -147, MType({0x7b644b13993cf4ef, 0xde5bf474b6df8331})}, - {false, -147, MType({0x3448f66e2bd7a0ca, 0xfa2776ebec6ccfdb})}, - {false, -146, MType({0x6a7ca5f1a87a1a3c, 0x8af97d20bf27eccd})}, - {false, -146, MType({0x245675fe3061108f, 0x98df3f3ab64b431d})}, - {false, -146, MType({0x64136e97019d0a3b, 0xa6c501c3dba75dc2})}, - {false, -146, MType({0x6cdadac4d6925bd4, 0xb4aac4bc2f432fa3})}, - {false, -146, MType({0x2899e23791d29632, 0xc2908823b125aba7})}, - {false, -146, MType({0x28039e1f0323a4c1, 0xd0764bfa6155c4b5})}, - {false, -146, MType({0xa2912e03afc8cc28, 0xde5c10403fda6db5})}, - {false, -146, MType({0x7681cc9f9e0d89f9, 0xec41d4f54cba9991})}, - {false, -146, MType({0x28dae4b7241255e1, 0xfa279a1987fd3b32})}, - {false, -145, MType({0xf2b412f8dceda28e, 0x8406afd678d4a2c0})}, - {false, -145, MType({0xbf5dccd967504857, 0x8af992d7c4e2d5b5})}, - {false, -145, MType({0x3716dbf950b07f85, 0x91ec7610a82cafed})}, - {false, -145, MType({0x69eebe0b8e5b18e1, 0x98df598122b5aadd})}, - {false, -145, MType({0xbb583ce65af56beb, 0x9fd23d2934813ffc})}, - {false, -145, MType({0xe22978efa7a962a0, 0xa6c52108dd92e8c1})}, - {false, -145, MType({0xe89bf3898ef27836, 0xadb805201dee1ea3})}, - {false, -145, MType({0x2c4c997ec90bab0b, 0xb4aae96ef5965b1a})}, - {false, -145, MType({0x5e3bcd6f21fe6224, 0xbb9dcdf5648f179c})}, - {false, -145, MType({0x82cd723bf1524680, 0xc290b2b36adbcda2})}, - {false, -145, MType({0xf1c8f574935e109b, 0xc98397a9087ff6a4})}, - {false, -145, MType({0x565959c2e4394a59, 0xd0767cd63d7f0c1c})}, - {false, -145, MType({0xaf0d4157bc4f05be, 0xd769623b09dc8781})}, - {false, -145, MType({0x4dd6f8576e9188b8, 0xde5c47d76d9be24e})}, - {false, -145, MType({0xd80c7f46484eee3d, 0xe54f2dab68c095fb})}, - {false, -145, MType({0x4667957512a6bd26, 0xec4213b6fb4e1c04})}, - {false, -145, MType({0xe505c36d95a074fa, 0xf334f9fa2547ede1})}, - {false, -145, MType({0x5368655f1ce3110b, 0xfa27e074e6b1850f})}, - {false, -144, MType({0xc23a5ac57f06c112, 0x808d63939fc72d83})}, - {false, -144, MType({0xdf39eb5890580f93, 0x8406d70897f0f4a2})}, - {false, -144, MType({0xcd896f3e43f38669, 0x87804a995bd7d4a2})}, - {false, -144, MType({0x83b16ff7eecace8c, 0x8af9be45eb7d8a41})}, - {false, -144, MType({0x21ec7ae8ffa1531d, 0x8e73320e46e3d23d})}, - {false, -144, MType({0xf227268d464ae907, 0x91eca5f26e0c6953})}, - {false, -144, MType({0x680017af3bbaf2d3, 0x956619f260f90c44})}, - {false, -144, MType({0x20c8069e4ae400de, 0x98df8e0e1fab77cd})}, - {false, -144, MType({0xe381c4651a67ee13, 0x9c590245aa2568ac})}, - {false, -144, MType({0xa0e23fffd718794e, 0x9fd2769900689ba2})}, - {false, -144, MType({0x73508b927f485b97, 0xa34beb082276cd6d})}, - {false, -144, MType({0x9ee5e19f2eecdb55, 0xa6c55f931051bacc})}, - {false, -144, MType({0x916daa3c6c8fdc9d, 0xaa3ed439c9fb207f})}, - {false, -144, MType({0xe265804b77126ed3, 0xadb848fc4f74bb45})}, - {false, -144, MType({0x52fd36ae943fd7b4, 0xb131bddaa0c047df})}, - {false, -144, MType({0xce16dd7f60311bf6, 0xb4ab32d4bddf830b})}, - {false, -144, MType({0x6846c7451d8105ac, 0xb824a7eaa6d4298b})}, - {false, -144, MType({0x5fd38e2b0650a884, 0xbb9e1d1c5b9ff81e})}, - {false, -144, MType({0x1cb619369e1c641f, 0xbf179269dc44ab85})}, - {false, -144, MType({0x3099a17e0461648c, 0xc29107d328c40080})}, - {false, -144, MType({0x56dbb75e4813a12b, 0xc60a7d58411fb3d0})}, - {false, -144, MType({0x748c47b1bbe45a07, 0xc983f2f925598236})}, - {false, -144, MType({0x986da1064b5913e1, 0xccfd68b5d5732873})}, - {false, -144, MType({0xfaf478d3d0b31300, 0xd076de8e516e6348})}, - {false, -144, MType({0xfe47f0b26ba754ff, 0xd3f05482994cef77})}, - {false, -144, MType({0x2e419b90d8e709b7, 0xd769ca92ad1089c2})}, - {false, -144, MType({0x406d82eaca788b6f, 0xdae340be8cbaeee9})}, - {false, -144, MType({0x140a2bff40e0d670, 0xde5cb706384ddbaf})}, - {false, -144, MType({0xb2089d06e51d8034, 0xe1d62d69afcb0cd5})}, - {false, -144, MType({0x4d0c626a636f2e4f, 0xe54fa3e8f3343f1f})}, - {false, -144, MType({0x416b93f8c6f48d30, 0xe8c91a84028b2f4e})}, - {false, -144, MType({0x152eda1dd615c6f5, 0xec42913addd19a25})}, - {false, -144, MType({0x781173186fc07a66, 0xefbc080d85093c66})}, - {false, -144, MType({0x43813830e974324d, 0xf3357efbf833d2d5})}, - {false, -144, MType({0x7a9ea2ef6e1f5d41, 0xf6aef60637531a34})}, - {false, -144, MType({0x4a3cd2525dccc623, 0xfa286d2c4268cf47})}, - {false, -144, MType({0x8e19004ae218d5d, 0xfda1e46e1976aed1})}, - {false, -143, MType({0x9b62aaca25d5d18a, 0x808dade5de3f3aca})}, - {false, -143, MType({0xbee9a8d43e00613c, 0x824a69a295c0f02b})}, - {false, -143, MType({0xd8d4b69c2056f729, 0x8407256d334155ed})}, - {false, -143, MType({0xe7cc28605d7bb77e, 0x85c3e145b6c14a72})}, - {false, -143, MType({0xff51b4bdc834a8f1, 0x87809d2c2041ac1c})}, - {false, -143, MType({0x47c0774aa81c3561, 0x893d59206fc3594e})}, - {false, -143, MType({0xfe4cf331ecb9eb62, 0x8afa1522a5473068})}, + {Sign::NEG, -143, MType({0x54d7e49898ca0093, 0x8af8b9b322ba8c7d})}, + {Sign::NEG, -143, MType({0xc321bbf16665f29c, 0x893c06529deffc3d})}, + {Sign::NEG, -143, MType({0x8246df7140c3e4ae, 0x877f52e433ac7ec4})}, + {Sign::NEG, -143, MType({0x1deaa9e85780e4c1, 0x85c29f67e3ef35bc})}, + {Sign::NEG, -143, MType({0xcd8a5121a9162d0, 0x8405ebddaeb742cf})}, + {Sign::NEG, -143, MType({0xb10486fa4644308d, 0x824938459403c7a7})}, + {Sign::NEG, -143, MType({0x578a2f61eedd4be8, 0x808c849f93d3e5f0})}, + {Sign::NEG, -144, MType({0x715b4a491790e8a7, 0xfd9fa1d75c4d7ea6})}, + {Sign::NEG, -144, MType({0xefb6273a04c71573, 0xfa263a53c5f6eaf4})}, + {Sign::NEG, -144, MType({0x474d901560c17807, 0xf6acd2b464a25420})}, + {Sign::NEG, -144, MType({0x6b9a5deceb80ec57, 0xf3336af9384dfd7c})}, + {Sign::NEG, -144, MType({0x2665a32f7cc64f79, 0xefba032240f82a5d})}, + {Sign::NEG, -144, MType({0x17c8a67316659363, 0xec409b2f7e9f1e16})}, + {Sign::NEG, -144, MType({0xb62cdd3ef5c8673d, 0xe8c73320f1411bfa})}, + {Sign::NEG, -144, MType({0x4e4be6d5a4a07422, 0xe54dcaf698dc675e})}, + {Sign::NEG, -144, MType({0x32f86ff08c92e22, 0xe1d462b0756f4394})}, + {Sign::NEG, -144, MType({0xce31a0d27359396f, 0xde5afa4e86f7f3ee})}, + {Sign::NEG, -144, MType({0x7efc3180aee36373, 0xdae191d0cd74bbc1})}, + {Sign::NEG, -144, MType({0xbb894b1e0ce72fc4, 0xd768293748e3de5e})}, + {Sign::NEG, -144, MType({0x230f6c7270f8be, 0xd3eec081f9439f19})}, + {Sign::NEG, -144, MType({0x9f63aaa563e9a399, 0xd07557b0de924142})}, + {Sign::NEG, -144, MType({0xc2354e441015e7eb, 0xccfbeec3f8ce082d})}, + {Sign::NEG, -144, MType({0x67d22bcf5a452a4c, 0xc98285bb47f5372c})}, + {Sign::NEG, -144, MType({0x65c46fa3e3afea18, 0xc6091c96cc061190})}, + {Sign::NEG, -144, MType({0x67e63bbe1405c20d, 0xc28fb35684fedaab})}, + {Sign::NEG, -144, MType({0xf061a284212afbad, 0xbf1649fa72ddd5ce})}, + {Sign::NEG, -144, MType({0x57b0a1901625b539, 0xbb9ce08295a1464c})}, + {Sign::NEG, -144, MType({0xcc9d1c79d93a9a1e, 0xb82376eeed476f74})}, + {Sign::NEG, -144, MType({0x5440d7a131392da8, 0xb4aa0d3f79ce9499})}, + {Sign::NEG, -144, MType({0xca0572f7c9f7a7de, 0xb130a3743b34f90a})}, + {Sign::NEG, -144, MType({0xdfa464cb37fe6455, 0xadb7398d3178e019})}, + {Sign::NEG, -144, MType({0x1d26f48efb62e2e0, 0xaa3dcf8a5c988d17})}, + {Sign::NEG, -144, MType({0xe0e635a681d259e2, 0xa6c4656bbc924352})}, + {Sign::NEG, -144, MType({0x5f8b022f27cbda35, 0xa34afb315164461d})}, + {Sign::NEG, -144, MType({0xa40df5ca390a0465, 0x9fd190db1b0cd8c6})}, + {Sign::NEG, -144, MType({0x8fb76866f01c4f2d, 0x9c582669198a3e9e})}, + {Sign::NEG, -144, MType({0xda1f690c752fdeff, 0x98debbdb4cdabaf4})}, + {Sign::NEG, -144, MType({0x112db8a3dc07ee78, 0x95655131b4fc9119})}, + {Sign::NEG, -144, MType({0x9919c4c22125c79e, 0x91ebe66c51ee045a})}, + {Sign::NEG, -144, MType({0xac6aa27226204db3, 0x8e727b8b23ad5808})}, + {Sign::NEG, -144, MType({0x5bf708fead2b1780, 0x8af9108e2a38cf72})}, + {Sign::NEG, -144, MType({0x8ee54cbc53cd19ed, 0x877fa575658eade6})}, + {Sign::NEG, -144, MType({0x2ab59d38cc6e2c5, 0x84063a40d5ad36b4})}, + {Sign::NEG, -144, MType({0x4b0eaf0a99286378, 0x808ccef07a92ad29})}, + {Sign::NEG, -145, MType({0xa448b11f012c975c, 0xfa26c708a87aa929})}, + {Sign::NEG, -145, MType({0xb0a1d584117de73b, 0xf333eff8c556e089})}, + {Sign::NEG, -145, MType({0xe890f9fb57fdabb6, 0xec4118b14bb6870e})}, + {Sign::NEG, -145, MType({0x261d48c71e693130, 0xe54e41323b962355})}, + {Sign::NEG, -145, MType({0xefecdd48ed894c32, 0xde5b697b94f23bf7})}, + {Sign::NEG, -145, MType({0x7944b9957598a88a, 0xd768918d57c75792})}, + {Sign::NEG, -145, MType({0xa208bc0875093645, 0xd075b9678411fcbf})}, + {Sign::NEG, -145, MType({0xf6bb94d89da8b432, 0xc982e10a19ceb219})}, + {Sign::NEG, -145, MType({0xb07ebbab782457b0, 0xc290087518f9fe3b})}, + {Sign::NEG, -145, MType({0xb512652945eb9165, 0xbb9d2fa8819067be})}, + {Sign::NEG, -145, MType({0x96d57890e171eea5, 0xb4aa56a4538e753c})}, + {Sign::NEG, -145, MType({0x94c5854b9cd01726, 0xadb77d688ef0ad4e})}, + {Sign::NEG, -145, MType({0x9a7eb8811ec3e6bb, 0xa6c4a3f533b3968d})}, + {Sign::NEG, -145, MType({0x403bd2ab3e0fa2d7, 0x9fd1ca4a41d3b792})}, + {Sign::NEG, -145, MType({0xcad61d29db384b6b, 0x98def067b94d96f4})}, + {Sign::NEG, -145, MType({0x2bc55fd6b8a306ec, 0x91ec164d9a1dbb4d})}, + {Sign::NEG, -145, MType({0x11fd6995111a927, 0x8af93bfbe440ab33})}, + {Sign::NEG, -145, MType({0x959a26faac7e5494, 0x8406617297b2ed3d})}, + {Sign::NEG, -146, MType({0xc10eab7266ac6bc0, 0xfa270d6368e21007})}, + {Sign::NEG, -146, MType({0xbb178b90026b2b2, 0xec41577274ef0439})}, + {Sign::NEG, -146, MType({0xac3bfd925e6b33e1, 0xde5ba1125385c43b})}, + {Sign::NEG, -146, MType({0x9d0a01a95b355319, 0xd075ea43049f5d3b})}, + {Sign::NEG, -146, MType({0x31b3b7b20a6a6496, 0xc29033048834dc64})}, + {Sign::NEG, -146, MType({0x170da891504620f4, 0xb4aa7b56de3f4ee0})}, + {Sign::NEG, -146, MType({0x53289e84744549cb, 0xa6c4c33a06b7c1d9})}, + {Sign::NEG, -146, MType({0x45519048b0ce7e7f, 0x98df0aae01974279})}, + {Sign::NEG, -146, MType({0xa6118c42bf99407e, 0x8af951b2ced6dde8})}, + {Sign::NEG, -147, MType({0xe5b474cc5a64cf6, 0xfa273090dcdf429f})}, + {Sign::NEG, -147, MType({0xa74dab3bd6067bc7, 0xde5bbcddc0b533aa})}, + {Sign::NEG, -147, MType({0x9f73f4e37357341b, 0xc290484c4921a941})}, + {Sign::NEG, -147, MType({0x31bf5d5f815220e7, 0xa6c4d2dc7616bdb0})}, + {Sign::NEG, -147, MType({0x4b987ca5fca242d7, 0x8af95c8e47868b41})}, + {Sign::NEG, -148, MType({0x19be3fabd93832c5, 0xde5bcac37ac6587d})}, + {Sign::NEG, -148, MType({0x8fd43f0c9ce444d3, 0xa6c4daadaf3d75e0})}, + {Sign::NEG, -149, MType({0x61cd853e796bc2c, 0xde5bd1b658ad4676})}, + {Sign::NEG, -150, MType({0x87d6afabfba0644f, 0xde5bd52fc7d8545f})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -150, MType({0xa9bf32001043629d, 0xde5bdc22a69d9e19})}, + {Sign::POS, -149, MType({0x8014f0f360272d82, 0xde5bdf9c1637d9ef})}, + {Sign::POS, -148, MType({0xfe94a02fc639c0e3, 0xa6c4ea5024795bd2})}, + {Sign::POS, -148, MType({0xbee710a5ace7c8d4, 0xde5be68ef5db7f99})}, + {Sign::POS, -147, MType({0x1a778d8100437e4f, 0x8af972453faf11e8})}, + {Sign::POS, -147, MType({0x97d773f8992f7051, 0xa6c4f221608e89fe})}, + {Sign::POS, -147, MType({0xc9ee5841a3afa95, 0xc29072dbdd9a0dd5})}, + {Sign::POS, -147, MType({0x7b644b13993cf4ef, 0xde5bf474b6df8331})}, + {Sign::POS, -147, MType({0x3448f66e2bd7a0ca, 0xfa2776ebec6ccfdb})}, + {Sign::POS, -146, MType({0x6a7ca5f1a87a1a3c, 0x8af97d20bf27eccd})}, + {Sign::POS, -146, MType({0x245675fe3061108f, 0x98df3f3ab64b431d})}, + {Sign::POS, -146, MType({0x64136e97019d0a3b, 0xa6c501c3dba75dc2})}, + {Sign::POS, -146, MType({0x6cdadac4d6925bd4, 0xb4aac4bc2f432fa3})}, + {Sign::POS, -146, MType({0x2899e23791d29632, 0xc2908823b125aba7})}, + {Sign::POS, -146, MType({0x28039e1f0323a4c1, 0xd0764bfa6155c4b5})}, + {Sign::POS, -146, MType({0xa2912e03afc8cc28, 0xde5c10403fda6db5})}, + {Sign::POS, -146, MType({0x7681cc9f9e0d89f9, 0xec41d4f54cba9991})}, + {Sign::POS, -146, MType({0x28dae4b7241255e1, 0xfa279a1987fd3b32})}, + {Sign::POS, -145, MType({0xf2b412f8dceda28e, 0x8406afd678d4a2c0})}, + {Sign::POS, -145, MType({0xbf5dccd967504857, 0x8af992d7c4e2d5b5})}, + {Sign::POS, -145, MType({0x3716dbf950b07f85, 0x91ec7610a82cafed})}, + {Sign::POS, -145, MType({0x69eebe0b8e5b18e1, 0x98df598122b5aadd})}, + {Sign::POS, -145, MType({0xbb583ce65af56beb, 0x9fd23d2934813ffc})}, + {Sign::POS, -145, MType({0xe22978efa7a962a0, 0xa6c52108dd92e8c1})}, + {Sign::POS, -145, MType({0xe89bf3898ef27836, 0xadb805201dee1ea3})}, + {Sign::POS, -145, MType({0x2c4c997ec90bab0b, 0xb4aae96ef5965b1a})}, + {Sign::POS, -145, MType({0x5e3bcd6f21fe6224, 0xbb9dcdf5648f179c})}, + {Sign::POS, -145, MType({0x82cd723bf1524680, 0xc290b2b36adbcda2})}, + {Sign::POS, -145, MType({0xf1c8f574935e109b, 0xc98397a9087ff6a4})}, + {Sign::POS, -145, MType({0x565959c2e4394a59, 0xd0767cd63d7f0c1c})}, + {Sign::POS, -145, MType({0xaf0d4157bc4f05be, 0xd769623b09dc8781})}, + {Sign::POS, -145, MType({0x4dd6f8576e9188b8, 0xde5c47d76d9be24e})}, + {Sign::POS, -145, MType({0xd80c7f46484eee3d, 0xe54f2dab68c095fb})}, + {Sign::POS, -145, MType({0x4667957512a6bd26, 0xec4213b6fb4e1c04})}, + {Sign::POS, -145, MType({0xe505c36d95a074fa, 0xf334f9fa2547ede1})}, + {Sign::POS, -145, MType({0x5368655f1ce3110b, 0xfa27e074e6b1850f})}, + {Sign::POS, -144, MType({0xc23a5ac57f06c112, 0x808d63939fc72d83})}, + {Sign::POS, -144, MType({0xdf39eb5890580f93, 0x8406d70897f0f4a2})}, + {Sign::POS, -144, MType({0xcd896f3e43f38669, 0x87804a995bd7d4a2})}, + {Sign::POS, -144, MType({0x83b16ff7eecace8c, 0x8af9be45eb7d8a41})}, + {Sign::POS, -144, MType({0x21ec7ae8ffa1531d, 0x8e73320e46e3d23d})}, + {Sign::POS, -144, MType({0xf227268d464ae907, 0x91eca5f26e0c6953})}, + {Sign::POS, -144, MType({0x680017af3bbaf2d3, 0x956619f260f90c44})}, + {Sign::POS, -144, MType({0x20c8069e4ae400de, 0x98df8e0e1fab77cd})}, + {Sign::POS, -144, MType({0xe381c4651a67ee13, 0x9c590245aa2568ac})}, + {Sign::POS, -144, MType({0xa0e23fffd718794e, 0x9fd2769900689ba2})}, + {Sign::POS, -144, MType({0x73508b927f485b97, 0xa34beb082276cd6d})}, + {Sign::POS, -144, MType({0x9ee5e19f2eecdb55, 0xa6c55f931051bacc})}, + {Sign::POS, -144, MType({0x916daa3c6c8fdc9d, 0xaa3ed439c9fb207f})}, + {Sign::POS, -144, MType({0xe265804b77126ed3, 0xadb848fc4f74bb45})}, + {Sign::POS, -144, MType({0x52fd36ae943fd7b4, 0xb131bddaa0c047df})}, + {Sign::POS, -144, MType({0xce16dd7f60311bf6, 0xb4ab32d4bddf830b})}, + {Sign::POS, -144, MType({0x6846c7451d8105ac, 0xb824a7eaa6d4298b})}, + {Sign::POS, -144, MType({0x5fd38e2b0650a884, 0xbb9e1d1c5b9ff81e})}, + {Sign::POS, -144, MType({0x1cb619369e1c641f, 0xbf179269dc44ab85})}, + {Sign::POS, -144, MType({0x3099a17e0461648c, 0xc29107d328c40080})}, + {Sign::POS, -144, MType({0x56dbb75e4813a12b, 0xc60a7d58411fb3d0})}, + {Sign::POS, -144, MType({0x748c47b1bbe45a07, 0xc983f2f925598236})}, + {Sign::POS, -144, MType({0x986da1064b5913e1, 0xccfd68b5d5732873})}, + {Sign::POS, -144, MType({0xfaf478d3d0b31300, 0xd076de8e516e6348})}, + {Sign::POS, -144, MType({0xfe47f0b26ba754ff, 0xd3f05482994cef77})}, + {Sign::POS, -144, MType({0x2e419b90d8e709b7, 0xd769ca92ad1089c2})}, + {Sign::POS, -144, MType({0x406d82eaca788b6f, 0xdae340be8cbaeee9})}, + {Sign::POS, -144, MType({0x140a2bff40e0d670, 0xde5cb706384ddbaf})}, + {Sign::POS, -144, MType({0xb2089d06e51d8034, 0xe1d62d69afcb0cd5})}, + {Sign::POS, -144, MType({0x4d0c626a636f2e4f, 0xe54fa3e8f3343f1f})}, + {Sign::POS, -144, MType({0x416b93f8c6f48d30, 0xe8c91a84028b2f4e})}, + {Sign::POS, -144, MType({0x152eda1dd615c6f5, 0xec42913addd19a25})}, + {Sign::POS, -144, MType({0x781173186fc07a66, 0xefbc080d85093c66})}, + {Sign::POS, -144, MType({0x43813830e974324d, 0xf3357efbf833d2d5})}, + {Sign::POS, -144, MType({0x7a9ea2ef6e1f5d41, 0xf6aef60637531a34})}, + {Sign::POS, -144, MType({0x4a3cd2525dccc623, 0xfa286d2c4268cf47})}, + {Sign::POS, -144, MType({0x8e19004ae218d5d, 0xfda1e46e1976aed1})}, + {Sign::POS, -143, MType({0x9b62aaca25d5d18a, 0x808dade5de3f3aca})}, + {Sign::POS, -143, MType({0xbee9a8d43e00613c, 0x824a69a295c0f02b})}, + {Sign::POS, -143, MType({0xd8d4b69c2056f729, 0x8407256d334155ed})}, + {Sign::POS, -143, MType({0xe7cc28605d7bb77e, 0x85c3e145b6c14a72})}, + {Sign::POS, -143, MType({0xff51b4bdc834a8f1, 0x87809d2c2041ac1c})}, + {Sign::POS, -143, MType({0x47c0774aa81c3561, 0x893d59206fc3594e})}, + {Sign::POS, -143, MType({0xfe4cf331ecb9eb62, 0x8afa1522a5473068})}, }, // -log10(r) for the fourth step, generated by SageMath with: // // for i in range(-65, 65): // r = 2^-28 * round( 2^28 / (1 + i*2^(-28)) ); // s, m, e = RealField(128)(r).log10().sign_mantissa_exponent(); - // print("{false," if (s == -1) else "{true,", e, ", + // print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_4 = */ { - {true, -151, MType({0xe471a82bbedbe0ae, 0xe1d5464122cf95a4})}, - {true, -151, MType({0xaf6e93be8e4c1764, 0xde5bd6ec7f7bc110})}, - {true, -151, MType({0xe44848f0a5779499, 0xdae26797a490f80e})}, - {true, -151, MType({0x90205533f4e70566, 0xd768f842920f3a98})}, - {true, -151, MType({0xc01844ace3729e48, 0xd3ef88ed47f688a6})}, - {true, -151, MType({0x8151a2324e41c7c4, 0xd0761997c646e232})}, - {true, -151, MType({0xe0edf74d88cacafd, 0xccfcaa420d004734})}, - {true, -151, MType({0xec0ecc3a5cd27e58, 0xc9833aec1c22b7a6})}, - {true, -151, MType({0xafd5a7e70a6bf214, 0xc609cb95f3ae3381})}, - {true, -151, MType({0x39640ff447f81ceb, 0xc2905c3f93a2babe})}, - {true, -151, MType({0x95db88b5422588b1, 0xbf16ece8fc004d55})}, - {true, -151, MType({0xd25d952f9beffeec, 0xbb9d7d922cc6eb40})}, - {true, -151, MType({0xfc0bb71b6ea03578, 0xb8240e3b25f69478})}, - {true, -151, MType({0x20076ee349cb7b20, 0xb4aa9ee3e78f48f7})}, - {true, -151, MType({0x4b723ba43353643d, 0xb1312f8c719108b4})}, - {true, -151, MType({0x8b6d9b2da7657754, 0xadb7c034c3fbd3a9})}, - {true, -151, MType({0xed1b0a01987ad9b4, 0xaa3e50dcdecfa9cf})}, - {true, -151, MType({0x7d9c03546f57fc11, 0xa6c4e184c20c8b20})}, - {true, -151, MType({0x4a12010d0b0c4727, 0xa34b722c6db27794})}, - {true, -151, MType({0x5f9e7bc4c0f1c851, 0x9fd202d3e1c16f24})}, - {true, -151, MType({0xcb62eac75cacde29, 0x9c58937b1e3971c9})}, - {true, -151, MType({0x9a80c413202be52a, 0x98df2422231a7f7d})}, - {true, -151, MType({0xda197c58c3a6e445, 0x9565b4c8f0649838})}, - {true, -151, MType({0x974e86fb759f3988, 0x91ec456f8617bbf4})}, - {true, -151, MType({0xdf415610dadf46b3, 0x8e72d615e433eaa9})}, - {true, -151, MType({0xbf135a610e7a1ddc, 0x8af966bc0ab92451})}, - {true, -151, MType({0x43e60366a1cb2e09, 0x877ff761f9a768e5})}, - {true, -151, MType({0x7adabf4e9c75efce, 0x84068807b0feb85d})}, - {true, -151, MType({0x7112faf87c6591ee, 0x808d18ad30bf12b3})}, - {true, -152, MType({0x676043ec6b994be5, 0xfa2752a4f1d0efc0})}, - {true, -152, MType({0x9fa73d186649999d, 0xf33473ef12f5cfb9})}, - {true, -152, MType({0xa53db362aa5cc6f0, 0xec419538c4ecc544})}, - {true, -152, MType({0x9266761de5e05f13, 0xe54eb68207b5d053})}, - {true, -152, MType({0x81645201b36e17ba, 0xde5bd7cadb50f0d8})}, - {true, -152, MType({0x8c7a112a9a2b2a52, 0xd768f9133fbe26c5})}, - {true, -152, MType({0xcdea7b1a0dc7ad42, 0xd0761a5b34fd720c})}, - {true, -152, MType({0x5ff854b66e7ded1f, 0xc9833ba2bb0ed2a0})}, - {true, -152, MType({0x5ce6604b0911c5ed, 0xc2905ce9d1f24872})}, - {true, -152, MType({0xdef75d8816cffc59, 0xbb9d7e3079a7d374})}, - {true, -152, MType({0x6e0982bd8d96ef, 0xb4aa9f76b22f739a})}, - {true, -152, MType({0xdb8d1eb50fa7375c, 0xadb7c0bc7b8928d3})}, - {true, -152, MType({0x8a9754fe0c0073a7, 0xa6c4e201d5b4f314})}, - {true, -152, MType({0x27cf61a19e032f69, 0x9fd20346c0b2d24e})}, - {true, -152, MType({0xcd77f7489d9ef50b, 0x98df248b3c82c672})}, - {true, -152, MType({0x95d3c600cf484f03, 0x91ec45cf4924cf74})}, - {true, -152, MType({0x9b257b3ce3f82109, 0x8af96712e698ed45})}, - {true, -152, MType({0xf7afc1d4792b015a, 0x8406885614df1fd7})}, - {true, -153, MType({0x8b6a840831c123d8, 0xfa275331a7eece3b})}, - {true, -153, MType({0x3ef142da7335b35a, 0xec4195b647c38612})}, - {true, -153, MType({0x3e79062c7cbb3b7d, 0xde5bd83a093c6718})}, - {true, -153, MType({0xbe870ed4ed5b755b, 0xd0761abcec597131})}, - {true, -153, MType({0xf3a098743d20fb64, 0xc2905d3ef11aa442})}, - {true, -153, MType({0x124ad974bd15fbca, 0xb4aa9fc017800030})}, - {true, -153, MType({0x4f0b030a9742eb00, 0xa6c4e2405f8984dd})}, - {true, -153, MType({0xde664133cead362d, 0x98df24bfc937322e})}, - {true, -153, MType({0xf4e1bab83f55f5a1, 0x8af9673e54890808})}, - {true, -154, MType({0x8e0522533c713e98, 0xfa27537802fe0c9f})}, - {true, -154, MType({0x129bc1c6f293726e, 0xde5bd871a03259cf})}, - {true, -154, MType({0xe09182166eeb17eb, 0xc2905d6980aef768})}, - {true, -154, MType({0x60f08720313daa3f, 0xa6c4e25fa473e535})}, - {true, -154, MType({0xfcc2ea566b3af38b, 0x8af967540b8122fc})}, - {true, -155, MType({0x3a25757e00f4e3a0, 0xde5bd88d6bad6110})}, - {true, -155, MType({0x55d3f9e70cf177b8, 0xa6c4e26f46e91b3e})}, - {true, -156, MType({0x3d4aac85125398d0, 0xde5bd89b516ae82a})}, - {true, -157, MType({0x9ab5a849a06f400d, 0xde5bd8a24449ac95})}, - {false, 0, MType({0x0, 0x0})}, - {false, -157, MType({0xd3cc88fd4ef34c2, 0xde5bd8b02a073729})}, - {false, -156, MType({0x225916c2b3f33c90, 0xde5bd8b71ce5fd51})}, - {false, -155, MType({0x17847f98acf08d54, 0xa6c4e28e8bd3930a})}, - {false, -155, MType({0x44397830931fddd, 0xde5bd8c502a38b5e})}, - {false, -154, MType({0xc2ab385913176984, 0x8af9677f79717409})}, - {false, -154, MType({0xe454dec82bde52e5, 0xa6c4e29e2e48d4cc})}, - {false, -154, MType({0xfe1522b0470d7d7f, 0xc2905dbe9fd7e82f})}, - {false, -154, MType({0xa6e2721f2afc3cce, 0xde5bd8e0ce1eae6a})}, - {false, -154, MType({0x75b3458eec3c106c, 0xfa275404b91d27b4})}, - {false, -153, MType({0x80bf0ff2f6cd9f93, 0x8af967953069aa22})}, - {false, -153, MType({0xf09cc73b7013b906, 0x98df2528e2a09a29})}, - {false, -153, MType({0x55ee1480619827c4, 0xa6c4e2bd7333640c})}, - {false, -153, MType({0x7c2e48d772250b3c, 0xb4aaa052e22207e5})}, - {false, -153, MType({0x2ed8ba8c6fa81c98, 0xc2905de92f6c85d1})}, - {false, -153, MType({0x3968c5214f33fc4f, 0xd0761b805b12ddeb})}, - {false, -153, MType({0x6759c94e2d017fad, 0xde5bd9186515104f})}, - {false, -153, MType({0x84272d014c70fe58, 0xec4196b14d731d19})}, - {false, -153, MType({0x5b4c5b5f180b9fe1, 0xfa27544b142d0465})}, - {false, -152, MType({0x5c22626110c254a4, 0x840688f2dca16327})}, - {false, -152, MType({0xb345ef5d90dd6545, 0x8af967c09e5a3178})}, - {false, -152, MType({0x98ce92087c5cb614, 0x91ec468ecf40ed34})}, - {false, -152, MType({0xf27a0a6056dcfe57, 0x98df255d6f559668})}, - {false, -152, MType({0xa6061afeb7929f24, 0x9fd2042c7e982d23})}, - {false, -152, MType({0x99308918494a4a20, 0xa6c4e2fbfd08b172})}, - {false, -152, MType({0xb1b71c7cca69a844, 0xadb7c1cbeaa72363})}, - {false, -152, MType({0xd5579f970cf000a9, 0xb4aaa09c47738304})}, - {false, -152, MType({0xe9cfdf6cf676df42, 0xbb9d7f6d136dd063})}, - {false, -152, MType({0xd4ddab9f8032bbab, 0xc2905e3e4e960b8e})}, - {false, -152, MType({0x7c3ed66ab6f39fe9, 0xc9833d0ff8ec3493})}, - {false, -152, MType({0xc5b134a5bb25cf2e, 0xd0761be212704b7f})}, - {false, -152, MType({0x96f29dc2c0d26ca0, 0xd768fab49b225061})}, - {false, -152, MType({0xd5c0ebcf0fa0221e, 0xde5bd98793024346})}, - {false, -152, MType({0x67d9fb7302d3c705, 0xe54eb85afa10243d})}, - {false, -152, MType({0x32fbabf2095106f1, 0xec41972ed04bf353})}, - {false, -152, MType({0x1ce3df2aa59b0889, 0xf334760315b5b096})}, - {false, -152, MType({0xb5079966dd5143e, 0xfa2754d7ca4d5c14})}, - {false, -151, MType({0x71ffb12505e19d89, 0x808d19d677097aed})}, - {false, -151, MType({0x4657417a9e657eae, 0x8406894140833efc})}, - {false, -151, MType({0x758de3f168f9f8c9, 0x877ff8ac4193fa3d})}, - {false, -151, MType({0xf2828ffc57f43581, 0x8af968177a3bacb7})}, - {false, -151, MType({0xb0143e5be77b1053, 0x8e72d782ea7a5672})}, - {false, -151, MType({0xa121e91e1d8769ef, 0x91ec46ee924ff774})}, - {false, -151, MType({0xb88a8b9e89e47b9c, 0x9565b65a71bc8fc4})}, - {false, -151, MType({0xe92d228646302a9c, 0x98df25c688c01f69})}, - {false, -151, MType({0x25e8abcbf5db5b8c, 0x9c589532d75aa66b})}, - {false, -151, MType({0x619c26b3c62a45c8, 0x9fd2049f5d8c24cf})}, - {false, -151, MType({0x8f2693cf6e34c6cc, 0xa34b740c1b549a9d})}, - {false, -151, MType({0xa166f4fe2ee6b59a, 0xa6c4e37910b407dc})}, - {false, -151, MType({0x8b3c4d6cd3003616, 0xaa3e52e63daa6c93})}, - {false, -151, MType({0x3f85a195af160c71, 0xadb7c253a237c8c9})}, - {false, -151, MType({0xb121f740a191f084, 0xb13131c13e5c1c84})}, - {false, -151, MType({0xd2f0558312b2e136, 0xb4aaa12f121767cc})}, - {false, -151, MType({0x97cfc4bff48d77de, 0xb824109d1d69aaa8})}, - {false, -151, MType({0xf29f4ea7c30c3ba5, 0xbb9d800b6052e51e})}, - {false, -151, MType({0xd63dfe3883eff4e9, 0xbf16ef79dad31736})}, - {false, -151, MType({0x358adfbdc6d0009f, 0xc2905ee88cea40f7})}, - {false, -151, MType({0x36500d0a51aa3b6, 0xc609ce5776986267})}, - {false, -151, MType({0x32ab7057c2155e78, 0xc9833dc697dd7b8d})}, - {false, -151, MType({0xb63d3e874add3ff0, 0xccfcad35f0b98c70})}, - {false, -151, MType({0x80f97ce0f6673948, 0xd0761ca5812c9518})}, - {false, -151, MType({0x85bf3e340580712d, 0xd3ef8c154936958b})}, - {false, -151, MType({0xb76d969d42ce9734, 0xd768fb8548d78dd0})}, - {false, -151, MType({0x8e39b8702d0373a, 0xdae26af5800f7def})}, - {false, -151, MType({0x6d0063a923dd0cc6, 0xde5bda65eede65ed})}, + {Sign::NEG, -151, MType({0xe471a82bbedbe0ae, 0xe1d5464122cf95a4})}, + {Sign::NEG, -151, MType({0xaf6e93be8e4c1764, 0xde5bd6ec7f7bc110})}, + {Sign::NEG, -151, MType({0xe44848f0a5779499, 0xdae26797a490f80e})}, + {Sign::NEG, -151, MType({0x90205533f4e70566, 0xd768f842920f3a98})}, + {Sign::NEG, -151, MType({0xc01844ace3729e48, 0xd3ef88ed47f688a6})}, + {Sign::NEG, -151, MType({0x8151a2324e41c7c4, 0xd0761997c646e232})}, + {Sign::NEG, -151, MType({0xe0edf74d88cacafd, 0xccfcaa420d004734})}, + {Sign::NEG, -151, MType({0xec0ecc3a5cd27e58, 0xc9833aec1c22b7a6})}, + {Sign::NEG, -151, MType({0xafd5a7e70a6bf214, 0xc609cb95f3ae3381})}, + {Sign::NEG, -151, MType({0x39640ff447f81ceb, 0xc2905c3f93a2babe})}, + {Sign::NEG, -151, MType({0x95db88b5422588b1, 0xbf16ece8fc004d55})}, + {Sign::NEG, -151, MType({0xd25d952f9beffeec, 0xbb9d7d922cc6eb40})}, + {Sign::NEG, -151, MType({0xfc0bb71b6ea03578, 0xb8240e3b25f69478})}, + {Sign::NEG, -151, MType({0x20076ee349cb7b20, 0xb4aa9ee3e78f48f7})}, + {Sign::NEG, -151, MType({0x4b723ba43353643d, 0xb1312f8c719108b4})}, + {Sign::NEG, -151, MType({0x8b6d9b2da7657754, 0xadb7c034c3fbd3a9})}, + {Sign::NEG, -151, MType({0xed1b0a01987ad9b4, 0xaa3e50dcdecfa9cf})}, + {Sign::NEG, -151, MType({0x7d9c03546f57fc11, 0xa6c4e184c20c8b20})}, + {Sign::NEG, -151, MType({0x4a12010d0b0c4727, 0xa34b722c6db27794})}, + {Sign::NEG, -151, MType({0x5f9e7bc4c0f1c851, 0x9fd202d3e1c16f24})}, + {Sign::NEG, -151, MType({0xcb62eac75cacde29, 0x9c58937b1e3971c9})}, + {Sign::NEG, -151, MType({0x9a80c413202be52a, 0x98df2422231a7f7d})}, + {Sign::NEG, -151, MType({0xda197c58c3a6e445, 0x9565b4c8f0649838})}, + {Sign::NEG, -151, MType({0x974e86fb759f3988, 0x91ec456f8617bbf4})}, + {Sign::NEG, -151, MType({0xdf415610dadf46b3, 0x8e72d615e433eaa9})}, + {Sign::NEG, -151, MType({0xbf135a610e7a1ddc, 0x8af966bc0ab92451})}, + {Sign::NEG, -151, MType({0x43e60366a1cb2e09, 0x877ff761f9a768e5})}, + {Sign::NEG, -151, MType({0x7adabf4e9c75efce, 0x84068807b0feb85d})}, + {Sign::NEG, -151, MType({0x7112faf87c6591ee, 0x808d18ad30bf12b3})}, + {Sign::NEG, -152, MType({0x676043ec6b994be5, 0xfa2752a4f1d0efc0})}, + {Sign::NEG, -152, MType({0x9fa73d186649999d, 0xf33473ef12f5cfb9})}, + {Sign::NEG, -152, MType({0xa53db362aa5cc6f0, 0xec419538c4ecc544})}, + {Sign::NEG, -152, MType({0x9266761de5e05f13, 0xe54eb68207b5d053})}, + {Sign::NEG, -152, MType({0x81645201b36e17ba, 0xde5bd7cadb50f0d8})}, + {Sign::NEG, -152, MType({0x8c7a112a9a2b2a52, 0xd768f9133fbe26c5})}, + {Sign::NEG, -152, MType({0xcdea7b1a0dc7ad42, 0xd0761a5b34fd720c})}, + {Sign::NEG, -152, MType({0x5ff854b66e7ded1f, 0xc9833ba2bb0ed2a0})}, + {Sign::NEG, -152, MType({0x5ce6604b0911c5ed, 0xc2905ce9d1f24872})}, + {Sign::NEG, -152, MType({0xdef75d8816cffc59, 0xbb9d7e3079a7d374})}, + {Sign::NEG, -152, MType({0x6e0982bd8d96ef, 0xb4aa9f76b22f739a})}, + {Sign::NEG, -152, MType({0xdb8d1eb50fa7375c, 0xadb7c0bc7b8928d3})}, + {Sign::NEG, -152, MType({0x8a9754fe0c0073a7, 0xa6c4e201d5b4f314})}, + {Sign::NEG, -152, MType({0x27cf61a19e032f69, 0x9fd20346c0b2d24e})}, + {Sign::NEG, -152, MType({0xcd77f7489d9ef50b, 0x98df248b3c82c672})}, + {Sign::NEG, -152, MType({0x95d3c600cf484f03, 0x91ec45cf4924cf74})}, + {Sign::NEG, -152, MType({0x9b257b3ce3f82109, 0x8af96712e698ed45})}, + {Sign::NEG, -152, MType({0xf7afc1d4792b015a, 0x8406885614df1fd7})}, + {Sign::NEG, -153, MType({0x8b6a840831c123d8, 0xfa275331a7eece3b})}, + {Sign::NEG, -153, MType({0x3ef142da7335b35a, 0xec4195b647c38612})}, + {Sign::NEG, -153, MType({0x3e79062c7cbb3b7d, 0xde5bd83a093c6718})}, + {Sign::NEG, -153, MType({0xbe870ed4ed5b755b, 0xd0761abcec597131})}, + {Sign::NEG, -153, MType({0xf3a098743d20fb64, 0xc2905d3ef11aa442})}, + {Sign::NEG, -153, MType({0x124ad974bd15fbca, 0xb4aa9fc017800030})}, + {Sign::NEG, -153, MType({0x4f0b030a9742eb00, 0xa6c4e2405f8984dd})}, + {Sign::NEG, -153, MType({0xde664133cead362d, 0x98df24bfc937322e})}, + {Sign::NEG, -153, MType({0xf4e1bab83f55f5a1, 0x8af9673e54890808})}, + {Sign::NEG, -154, MType({0x8e0522533c713e98, 0xfa27537802fe0c9f})}, + {Sign::NEG, -154, MType({0x129bc1c6f293726e, 0xde5bd871a03259cf})}, + {Sign::NEG, -154, MType({0xe09182166eeb17eb, 0xc2905d6980aef768})}, + {Sign::NEG, -154, MType({0x60f08720313daa3f, 0xa6c4e25fa473e535})}, + {Sign::NEG, -154, MType({0xfcc2ea566b3af38b, 0x8af967540b8122fc})}, + {Sign::NEG, -155, MType({0x3a25757e00f4e3a0, 0xde5bd88d6bad6110})}, + {Sign::NEG, -155, MType({0x55d3f9e70cf177b8, 0xa6c4e26f46e91b3e})}, + {Sign::NEG, -156, MType({0x3d4aac85125398d0, 0xde5bd89b516ae82a})}, + {Sign::NEG, -157, MType({0x9ab5a849a06f400d, 0xde5bd8a24449ac95})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -157, MType({0xd3cc88fd4ef34c2, 0xde5bd8b02a073729})}, + {Sign::POS, -156, MType({0x225916c2b3f33c90, 0xde5bd8b71ce5fd51})}, + {Sign::POS, -155, MType({0x17847f98acf08d54, 0xa6c4e28e8bd3930a})}, + {Sign::POS, -155, MType({0x44397830931fddd, 0xde5bd8c502a38b5e})}, + {Sign::POS, -154, MType({0xc2ab385913176984, 0x8af9677f79717409})}, + {Sign::POS, -154, MType({0xe454dec82bde52e5, 0xa6c4e29e2e48d4cc})}, + {Sign::POS, -154, MType({0xfe1522b0470d7d7f, 0xc2905dbe9fd7e82f})}, + {Sign::POS, -154, MType({0xa6e2721f2afc3cce, 0xde5bd8e0ce1eae6a})}, + {Sign::POS, -154, MType({0x75b3458eec3c106c, 0xfa275404b91d27b4})}, + {Sign::POS, -153, MType({0x80bf0ff2f6cd9f93, 0x8af967953069aa22})}, + {Sign::POS, -153, MType({0xf09cc73b7013b906, 0x98df2528e2a09a29})}, + {Sign::POS, -153, MType({0x55ee1480619827c4, 0xa6c4e2bd7333640c})}, + {Sign::POS, -153, MType({0x7c2e48d772250b3c, 0xb4aaa052e22207e5})}, + {Sign::POS, -153, MType({0x2ed8ba8c6fa81c98, 0xc2905de92f6c85d1})}, + {Sign::POS, -153, MType({0x3968c5214f33fc4f, 0xd0761b805b12ddeb})}, + {Sign::POS, -153, MType({0x6759c94e2d017fad, 0xde5bd9186515104f})}, + {Sign::POS, -153, MType({0x84272d014c70fe58, 0xec4196b14d731d19})}, + {Sign::POS, -153, MType({0x5b4c5b5f180b9fe1, 0xfa27544b142d0465})}, + {Sign::POS, -152, MType({0x5c22626110c254a4, 0x840688f2dca16327})}, + {Sign::POS, -152, MType({0xb345ef5d90dd6545, 0x8af967c09e5a3178})}, + {Sign::POS, -152, MType({0x98ce92087c5cb614, 0x91ec468ecf40ed34})}, + {Sign::POS, -152, MType({0xf27a0a6056dcfe57, 0x98df255d6f559668})}, + {Sign::POS, -152, MType({0xa6061afeb7929f24, 0x9fd2042c7e982d23})}, + {Sign::POS, -152, MType({0x99308918494a4a20, 0xa6c4e2fbfd08b172})}, + {Sign::POS, -152, MType({0xb1b71c7cca69a844, 0xadb7c1cbeaa72363})}, + {Sign::POS, -152, MType({0xd5579f970cf000a9, 0xb4aaa09c47738304})}, + {Sign::POS, -152, MType({0xe9cfdf6cf676df42, 0xbb9d7f6d136dd063})}, + {Sign::POS, -152, MType({0xd4ddab9f8032bbab, 0xc2905e3e4e960b8e})}, + {Sign::POS, -152, MType({0x7c3ed66ab6f39fe9, 0xc9833d0ff8ec3493})}, + {Sign::POS, -152, MType({0xc5b134a5bb25cf2e, 0xd0761be212704b7f})}, + {Sign::POS, -152, MType({0x96f29dc2c0d26ca0, 0xd768fab49b225061})}, + {Sign::POS, -152, MType({0xd5c0ebcf0fa0221e, 0xde5bd98793024346})}, + {Sign::POS, -152, MType({0x67d9fb7302d3c705, 0xe54eb85afa10243d})}, + {Sign::POS, -152, MType({0x32fbabf2095106f1, 0xec41972ed04bf353})}, + {Sign::POS, -152, MType({0x1ce3df2aa59b0889, 0xf334760315b5b096})}, + {Sign::POS, -152, MType({0xb5079966dd5143e, 0xfa2754d7ca4d5c14})}, + {Sign::POS, -151, MType({0x71ffb12505e19d89, 0x808d19d677097aed})}, + {Sign::POS, -151, MType({0x4657417a9e657eae, 0x8406894140833efc})}, + {Sign::POS, -151, MType({0x758de3f168f9f8c9, 0x877ff8ac4193fa3d})}, + {Sign::POS, -151, MType({0xf2828ffc57f43581, 0x8af968177a3bacb7})}, + {Sign::POS, -151, MType({0xb0143e5be77b1053, 0x8e72d782ea7a5672})}, + {Sign::POS, -151, MType({0xa121e91e1d8769ef, 0x91ec46ee924ff774})}, + {Sign::POS, -151, MType({0xb88a8b9e89e47b9c, 0x9565b65a71bc8fc4})}, + {Sign::POS, -151, MType({0xe92d228646302a9c, 0x98df25c688c01f69})}, + {Sign::POS, -151, MType({0x25e8abcbf5db5b8c, 0x9c589532d75aa66b})}, + {Sign::POS, -151, MType({0x619c26b3c62a45c8, 0x9fd2049f5d8c24cf})}, + {Sign::POS, -151, MType({0x8f2693cf6e34c6cc, 0xa34b740c1b549a9d})}, + {Sign::POS, -151, MType({0xa166f4fe2ee6b59a, 0xa6c4e37910b407dc})}, + {Sign::POS, -151, MType({0x8b3c4d6cd3003616, 0xaa3e52e63daa6c93})}, + {Sign::POS, -151, MType({0x3f85a195af160c71, 0xadb7c253a237c8c9})}, + {Sign::POS, -151, MType({0xb121f740a191f084, 0xb13131c13e5c1c84})}, + {Sign::POS, -151, MType({0xd2f0558312b2e136, 0xb4aaa12f121767cc})}, + {Sign::POS, -151, MType({0x97cfc4bff48d77de, 0xb824109d1d69aaa8})}, + {Sign::POS, -151, MType({0xf29f4ea7c30c3ba5, 0xbb9d800b6052e51e})}, + {Sign::POS, -151, MType({0xd63dfe3883eff4e9, 0xbf16ef79dad31736})}, + {Sign::POS, -151, MType({0x358adfbdc6d0009f, 0xc2905ee88cea40f7})}, + {Sign::POS, -151, MType({0x36500d0a51aa3b6, 0xc609ce5776986267})}, + {Sign::POS, -151, MType({0x32ab7057c2155e78, 0xc9833dc697dd7b8d})}, + {Sign::POS, -151, MType({0xb63d3e874add3ff0, 0xccfcad35f0b98c70})}, + {Sign::POS, -151, MType({0x80f97ce0f6673948, 0xd0761ca5812c9518})}, + {Sign::POS, -151, MType({0x85bf3e340580712d, 0xd3ef8c154936958b})}, + {Sign::POS, -151, MType({0xb76d969d42ce9734, 0xd768fb8548d78dd0})}, + {Sign::POS, -151, MType({0x8e39b8702d0373a, 0xdae26af5800f7def})}, + {Sign::POS, -151, MType({0x6d0063a923dd0cc6, 0xde5bda65eede65ed})}, }}; // > P = fpminimax(log10(1 + x)/x, 3, [|128...|], [-0x1.0002143p-29 , 0x1p-29]); @@ -701,10 +702,10 @@ const LogRR LOG10_TABLE = { // > dirtyinfnorm(log10(1 + x)/x - P, [-0x1.0002143p-29 , 0x1p-29]); // 0x1.64fb8...p-123 const Float128 BIG_COEFFS[4]{ - {true, -131, MType({0x6903c4ce1582517d, 0xde5bd8a9373f89a7})}, - {false, -130, MType({0xb8a21791624e2e8a, 0x943d3b1b7a1af679})}, - {true, -130, MType({0x355baaafabc25990, 0xde5bd8a937287195})}, - {false, -129, MType({0x355baaafad33dbd9, 0xde5bd8a937287195})}, + {Sign::NEG, -131, MType({0x6903c4ce1582517d, 0xde5bd8a9373f89a7})}, + {Sign::POS, -130, MType({0xb8a21791624e2e8a, 0x943d3b1b7a1af679})}, + {Sign::NEG, -130, MType({0x355baaafabc25990, 0xde5bd8a937287195})}, + {Sign::POS, -129, MType({0x355baaafad33dbd9, 0xde5bd8a937287195})}, }; // Reuse the output of the fast pass range reduction. diff --git a/libc/src/math/generic/log1p.cpp b/libc/src/math/generic/log1p.cpp index af651d3e5bca27..731fecae6f1b5c 100644 --- a/libc/src/math/generic/log1p.cpp +++ b/libc/src/math/generic/log1p.cpp @@ -23,6 +23,7 @@ namespace LIBC_NAMESPACE { // 128-bit precision dyadic floating point numbers. using Float128 = typename fputil::DyadicFloat<128>; using MType = typename Float128::MantissaType; +using Sign = fputil::Sign; namespace { @@ -32,7 +33,7 @@ constexpr double P_ERR = 0x1.0p-50; // log(2) with 128-bit prepcision generated by SageMath with: // sage: (s, m, e) = RealField(128)(2).log().sign_mantissa_exponent(); // sage: print("MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})"); -const Float128 LOG_2(/*sign=*/false, /*exponent=*/-128, /*mantissa=*/ +const Float128 LOG_2(Sign::POS, /*exponent=*/-128, /*mantissa=*/ MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})); // R1[i] = 2^-8 * nearestint( 2^8 / (1 + i * 2^-7) ) @@ -244,139 +245,139 @@ constexpr double P_COEFFS[6] = {-0x1p-1, // for i in range(129): // r = 2^-8 * round( 2^8 / (1 + i*2^(-7)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); -// print("{false,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) % +// print("{Sign::POS,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) % // 2^64), // "})},"); const Float128 LOG_R1[129] = { - {false, 0, MType(0)}, - {false, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})}, - {false, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})}, - {false, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})}, - {false, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})}, - {false, -132, MType({0x521016bd904dc968, 0xa33576a16f1f4c64})}, - {false, -132, MType({0x27cca0bcc06c2f92, 0xb3e4a796a5dac208})}, - {false, -132, MType({0xa9dda17056e45ed5, 0xd5779687d887e0d1})}, - {false, -132, MType({0x606d89093278a939, 0xf7518e0035c3dd83})}, - {false, -131, MType({0xa7c9859530a45153, 0x8cb9de8a32ab368a})}, - {false, -131, MType({0x976d3b5b45f6ca0b, 0x9defad3e8f73217a})}, - {false, -131, MType({0x3e858f08597b3a69, 0xa6988ae903f562ed})}, - {false, -131, MType({0x6a677b4c8bec22e1, 0xb8069857560707a3})}, - {false, -131, MType({0xeaf51f66692844ba, 0xc99af2eaca4c4570})}, - {false, -131, MType({0x46bbf837b4d320c6, 0xd273b2058de1bd49})}, - {false, -131, MType({0x196ab34ce0bccd12, 0xe442c00de2591b47})}, - {false, -131, MType({0x3f4e2e660317d55f, 0xed393b1c22351280})}, - {false, -131, MType({0xc17bd40d8d9291ec, 0xff4489cedeab2ca6})}, - {false, -130, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, - {false, -130, MType({0x88713268840cbcc0, 0x8d515bf11fb94f1c})}, - {false, -130, MType({0x65c0da506a088484, 0x968b08643409ceb6})}, - {false, -130, MType({0x411a5b944aca8708, 0x9b2fe580ac80b17d})}, - {false, -130, MType({0xa9fb6cf0ecb411b7, 0xa489ec199dab06f2})}, - {false, -130, MType({0xcad2fb8d48054ae0, 0xa93f2f250dac67d1})}, - {false, -130, MType({0x149767e410316d2c, 0xadfa035aa1ed8fdc})}, - {false, -130, MType({0x34c7bc3d32750fde, 0xb780945bab55dce4})}, - {false, -130, MType({0x8f6ebcfb2016a439, 0xbc4c6c2a226399ef})}, - {false, -130, MType({0xaa8b6997a402bf30, 0xc5f57f59c7f46155})}, - {false, -130, MType({0x2c507fb7a3d0bf6a, 0xcad2d6e7b80bf914})}, - {false, -130, MType({0xd0cb02f33f79c16c, 0xcfb6203844b3209a})}, - {false, -130, MType({0x58a98f2ad65bee9b, 0xd98ec2bade71e539})}, - {false, -130, MType({0x4d57da945b5d0aaa, 0xde8439c1dec56877})}, - {false, -130, MType({0x4e9a750b6b68781d, 0xe37fde37807b84e3})}, - {false, -130, MType({0xc524848e3443e040, 0xe881bf932af3dac0})}, - {false, -130, MType({0x3b020fa1820c9492, 0xf29877ff38809091})}, - {false, -130, MType({0x54d2238f75f969b1, 0xf7ad6f26e7ff2ef7})}, - {false, -130, MType({0xca0cdf301431b60f, 0xfcc8e3659d9bcbec})}, - {false, -129, MType({0xf5bd0b5b3479d5f4, 0x80f572b1363487b9})}, - {false, -129, MType({0x163ceae88f720f1e, 0x86216b3b0b17188b})}, - {false, -129, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, - {false, -129, MType({0xf7a5168126a58b9a, 0x8b5ae65d67db9acd})}, - {false, -129, MType({0x5147bdb6ddcaf59c, 0x8dfccb1ad35ca6ed})}, - {false, -129, MType({0xae91aeba609c8877, 0x90a22b6875c6a1f7})}, - {false, -129, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -129, MType({0x4a5004f3ef063313, 0x95f783e6e49a9cfa})}, - {false, -129, MType({0xd878bbe3d392be25, 0x9b5b3bb5f088b766})}, - {false, -129, MType({0x5b035eae273a855f, 0x9e1293b9998c1daa})}, - {false, -129, MType({0xbb2438273918db7e, 0xa0cda11eaf46390d})}, - {false, -129, MType({0xf698298adddd7f32, 0xa38c6e138e20d831})}, - {false, -129, MType({0xe4f5275c2d15c21f, 0xa64f04f0b961df76})}, - {false, -129, MType({0x8164c759686a2209, 0xa9157039c51ebe70})}, - {false, -129, MType({0xf72ea07749ce6bd3, 0xabdfba9e468fd6f6})}, - {false, -129, MType({0x7dd6e688ebb13b03, 0xaeadeefacaf97d35})}, - {false, -129, MType({0x18ce51fff99479cd, 0xb1801859d56249dc})}, - {false, -129, MType({0x2756eba00bc33978, 0xb45641f4e350a0d3})}, - {false, -129, MType({0xbe1116c3466beb6d, 0xb730773578cb90b2})}, - {false, -129, MType({0x49dc60b2b059a60b, 0xba0ec3b633dd8b09})}, - {false, -129, MType({0x2efd17781bb3afec, 0xbcf13343e7d9ec7d})}, - {false, -129, MType({0x37eda996244bccb0, 0xbfd7d1dec0a8df6f})}, - {false, -129, MType({0x33337789d592e296, 0xc2c2abbb6e5fd56f})}, - {false, -129, MType({0x1a18fb8f9f9ef280, 0xc5b1cd44596fa51e})}, - {false, -129, MType({0x688ce7c1a75e341a, 0xc8a5431adfb44ca5})}, - {false, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, - {false, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, - {false, -129, MType({0xef2f3f4f861ad6a9, 0xce995f50af69d861})}, - {false, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, - {false, -129, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, - {false, -129, MType({0xad88bba7d0cee8e0, 0xd7a94a92466e833a})}, - {false, -129, MType({0x96c20cca6efe2ac5, 0xdab7d02231484a92})}, - {false, -129, MType({0xf40a666c87842843, 0xddcb08dc0717d85b})}, - {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, - {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, - {false, -129, MType({0x3eadb651b49ac53a, 0xe3ffce3a2aa64922})}, - {false, -129, MType({0x304e1653e71d9973, 0xe72178c0323a1a0f})}, - {false, -129, MType({0xe9a767a80d6d97e8, 0xea481236f7d35baf})}, - {false, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, - {false, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, - {false, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, - {false, -129, MType({0xac8d42f78d3e65d3, 0xf3da161eed6b9aaf})}, - {false, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, - {false, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, - {false, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, - {false, -129, MType({0x8f05924d258c14c5, 0xfd9ac57bd244217e})}, - {false, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, - {false, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, - {false, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, - {false, -128, MType({0x20f6fafe8fbb68b9, 0x83c5f8299e2b4091})}, - {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, - {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, - {false, -128, MType({0x1e005d06dbfa8f8, 0x87244c308e670a66})}, - {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, - {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, - {false, -128, MType({0x2eb628dba173c82d, 0x8a8e1fb794b09134})}, - {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, - {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, - {false, -128, MType({0xbddae1ccce247838, 0x8e03c24d73003959})}, - {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, - {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, - {false, -128, MType({0x9b92199ed1a4bab1, 0x918586c5f5e4bf01})}, - {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, - {false, -128, MType({0xf3cbc416a2418012, 0x9513c36876083695})}, - {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, - {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, - {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, - {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, - {false, -128, MType({0xe549f9aaea3cb5e1, 0x9a81456cec642e0f})}, - {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, - {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, - {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, - {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, - {false, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, - {false, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, - {false, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, - {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, - {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, - {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, - {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, - {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, - {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, - {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, - {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, - {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, - {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, - {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, - {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, - {false, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, - {false, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, - {false, 0, MType(0)}, + {Sign::POS, 0, MType(0)}, + {Sign::POS, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})}, + {Sign::POS, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})}, + {Sign::POS, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})}, + {Sign::POS, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})}, + {Sign::POS, -132, MType({0x521016bd904dc968, 0xa33576a16f1f4c64})}, + {Sign::POS, -132, MType({0x27cca0bcc06c2f92, 0xb3e4a796a5dac208})}, + {Sign::POS, -132, MType({0xa9dda17056e45ed5, 0xd5779687d887e0d1})}, + {Sign::POS, -132, MType({0x606d89093278a939, 0xf7518e0035c3dd83})}, + {Sign::POS, -131, MType({0xa7c9859530a45153, 0x8cb9de8a32ab368a})}, + {Sign::POS, -131, MType({0x976d3b5b45f6ca0b, 0x9defad3e8f73217a})}, + {Sign::POS, -131, MType({0x3e858f08597b3a69, 0xa6988ae903f562ed})}, + {Sign::POS, -131, MType({0x6a677b4c8bec22e1, 0xb8069857560707a3})}, + {Sign::POS, -131, MType({0xeaf51f66692844ba, 0xc99af2eaca4c4570})}, + {Sign::POS, -131, MType({0x46bbf837b4d320c6, 0xd273b2058de1bd49})}, + {Sign::POS, -131, MType({0x196ab34ce0bccd12, 0xe442c00de2591b47})}, + {Sign::POS, -131, MType({0x3f4e2e660317d55f, 0xed393b1c22351280})}, + {Sign::POS, -131, MType({0xc17bd40d8d9291ec, 0xff4489cedeab2ca6})}, + {Sign::POS, -130, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, + {Sign::POS, -130, MType({0x88713268840cbcc0, 0x8d515bf11fb94f1c})}, + {Sign::POS, -130, MType({0x65c0da506a088484, 0x968b08643409ceb6})}, + {Sign::POS, -130, MType({0x411a5b944aca8708, 0x9b2fe580ac80b17d})}, + {Sign::POS, -130, MType({0xa9fb6cf0ecb411b7, 0xa489ec199dab06f2})}, + {Sign::POS, -130, MType({0xcad2fb8d48054ae0, 0xa93f2f250dac67d1})}, + {Sign::POS, -130, MType({0x149767e410316d2c, 0xadfa035aa1ed8fdc})}, + {Sign::POS, -130, MType({0x34c7bc3d32750fde, 0xb780945bab55dce4})}, + {Sign::POS, -130, MType({0x8f6ebcfb2016a439, 0xbc4c6c2a226399ef})}, + {Sign::POS, -130, MType({0xaa8b6997a402bf30, 0xc5f57f59c7f46155})}, + {Sign::POS, -130, MType({0x2c507fb7a3d0bf6a, 0xcad2d6e7b80bf914})}, + {Sign::POS, -130, MType({0xd0cb02f33f79c16c, 0xcfb6203844b3209a})}, + {Sign::POS, -130, MType({0x58a98f2ad65bee9b, 0xd98ec2bade71e539})}, + {Sign::POS, -130, MType({0x4d57da945b5d0aaa, 0xde8439c1dec56877})}, + {Sign::POS, -130, MType({0x4e9a750b6b68781d, 0xe37fde37807b84e3})}, + {Sign::POS, -130, MType({0xc524848e3443e040, 0xe881bf932af3dac0})}, + {Sign::POS, -130, MType({0x3b020fa1820c9492, 0xf29877ff38809091})}, + {Sign::POS, -130, MType({0x54d2238f75f969b1, 0xf7ad6f26e7ff2ef7})}, + {Sign::POS, -130, MType({0xca0cdf301431b60f, 0xfcc8e3659d9bcbec})}, + {Sign::POS, -129, MType({0xf5bd0b5b3479d5f4, 0x80f572b1363487b9})}, + {Sign::POS, -129, MType({0x163ceae88f720f1e, 0x86216b3b0b17188b})}, + {Sign::POS, -129, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})}, + {Sign::POS, -129, MType({0xf7a5168126a58b9a, 0x8b5ae65d67db9acd})}, + {Sign::POS, -129, MType({0x5147bdb6ddcaf59c, 0x8dfccb1ad35ca6ed})}, + {Sign::POS, -129, MType({0xae91aeba609c8877, 0x90a22b6875c6a1f7})}, + {Sign::POS, -129, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -129, MType({0x4a5004f3ef063313, 0x95f783e6e49a9cfa})}, + {Sign::POS, -129, MType({0xd878bbe3d392be25, 0x9b5b3bb5f088b766})}, + {Sign::POS, -129, MType({0x5b035eae273a855f, 0x9e1293b9998c1daa})}, + {Sign::POS, -129, MType({0xbb2438273918db7e, 0xa0cda11eaf46390d})}, + {Sign::POS, -129, MType({0xf698298adddd7f32, 0xa38c6e138e20d831})}, + {Sign::POS, -129, MType({0xe4f5275c2d15c21f, 0xa64f04f0b961df76})}, + {Sign::POS, -129, MType({0x8164c759686a2209, 0xa9157039c51ebe70})}, + {Sign::POS, -129, MType({0xf72ea07749ce6bd3, 0xabdfba9e468fd6f6})}, + {Sign::POS, -129, MType({0x7dd6e688ebb13b03, 0xaeadeefacaf97d35})}, + {Sign::POS, -129, MType({0x18ce51fff99479cd, 0xb1801859d56249dc})}, + {Sign::POS, -129, MType({0x2756eba00bc33978, 0xb45641f4e350a0d3})}, + {Sign::POS, -129, MType({0xbe1116c3466beb6d, 0xb730773578cb90b2})}, + {Sign::POS, -129, MType({0x49dc60b2b059a60b, 0xba0ec3b633dd8b09})}, + {Sign::POS, -129, MType({0x2efd17781bb3afec, 0xbcf13343e7d9ec7d})}, + {Sign::POS, -129, MType({0x37eda996244bccb0, 0xbfd7d1dec0a8df6f})}, + {Sign::POS, -129, MType({0x33337789d592e296, 0xc2c2abbb6e5fd56f})}, + {Sign::POS, -129, MType({0x1a18fb8f9f9ef280, 0xc5b1cd44596fa51e})}, + {Sign::POS, -129, MType({0x688ce7c1a75e341a, 0xc8a5431adfb44ca5})}, + {Sign::POS, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, + {Sign::POS, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})}, + {Sign::POS, -129, MType({0xef2f3f4f861ad6a9, 0xce995f50af69d861})}, + {Sign::POS, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})}, + {Sign::POS, -129, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})}, + {Sign::POS, -129, MType({0xad88bba7d0cee8e0, 0xd7a94a92466e833a})}, + {Sign::POS, -129, MType({0x96c20cca6efe2ac5, 0xdab7d02231484a92})}, + {Sign::POS, -129, MType({0xf40a666c87842843, 0xddcb08dc0717d85b})}, + {Sign::POS, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, + {Sign::POS, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})}, + {Sign::POS, -129, MType({0x3eadb651b49ac53a, 0xe3ffce3a2aa64922})}, + {Sign::POS, -129, MType({0x304e1653e71d9973, 0xe72178c0323a1a0f})}, + {Sign::POS, -129, MType({0xe9a767a80d6d97e8, 0xea481236f7d35baf})}, + {Sign::POS, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, + {Sign::POS, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})}, + {Sign::POS, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})}, + {Sign::POS, -129, MType({0xac8d42f78d3e65d3, 0xf3da161eed6b9aaf})}, + {Sign::POS, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, + {Sign::POS, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})}, + {Sign::POS, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})}, + {Sign::POS, -129, MType({0x8f05924d258c14c5, 0xfd9ac57bd244217e})}, + {Sign::POS, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, + {Sign::POS, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})}, + {Sign::POS, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})}, + {Sign::POS, -128, MType({0x20f6fafe8fbb68b9, 0x83c5f8299e2b4091})}, + {Sign::POS, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, + {Sign::POS, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})}, + {Sign::POS, -128, MType({0x1e005d06dbfa8f8, 0x87244c308e670a66})}, + {Sign::POS, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, + {Sign::POS, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})}, + {Sign::POS, -128, MType({0x2eb628dba173c82d, 0x8a8e1fb794b09134})}, + {Sign::POS, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, + {Sign::POS, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})}, + {Sign::POS, -128, MType({0xbddae1ccce247838, 0x8e03c24d73003959})}, + {Sign::POS, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, + {Sign::POS, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})}, + {Sign::POS, -128, MType({0x9b92199ed1a4bab1, 0x918586c5f5e4bf01})}, + {Sign::POS, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})}, + {Sign::POS, -128, MType({0xf3cbc416a2418012, 0x9513c36876083695})}, + {Sign::POS, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, + {Sign::POS, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})}, + {Sign::POS, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, + {Sign::POS, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})}, + {Sign::POS, -128, MType({0xe549f9aaea3cb5e1, 0x9a81456cec642e0f})}, + {Sign::POS, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, + {Sign::POS, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})}, + {Sign::POS, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, + {Sign::POS, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})}, + {Sign::POS, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, + {Sign::POS, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})}, + {Sign::POS, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})}, + {Sign::POS, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, + {Sign::POS, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})}, + {Sign::POS, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, + {Sign::POS, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})}, + {Sign::POS, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, + {Sign::POS, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})}, + {Sign::POS, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, + {Sign::POS, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})}, + {Sign::POS, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, + {Sign::POS, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})}, + {Sign::POS, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, + {Sign::POS, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})}, + {Sign::POS, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, + {Sign::POS, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})}, + {Sign::POS, 0, MType(0)}, }; // Logarithm range reduction - Step 2: @@ -429,197 +430,197 @@ constexpr double S2[198] = { // for i in range(-91, 97): // r = 2^-18 * round( 2^18 / (1 + i*2^(-14)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); -// print("{false," if (s == -1) else "{true,", e, ", +// print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); const Float128 LOG_R2[198] = { - {true, -135, MType({0xa0e061c5f7431c5e, 0xb67dab2a1a5742a4})}, - {true, -135, MType({0x5d5bfe7b969ed6ec, 0xb4807f24af682939})}, - {true, -135, MType({0x4d08702ddfabc23f, 0xb2834b35b4d54d5f})}, - {true, -135, MType({0xd4d366508b9953df, 0xb0860f5ceba9be95})}, - {true, -135, MType({0xac18a289f8f214a9, 0xae68f71aa09e8847})}, - {true, -135, MType({0xd5b42054abb88c45, 0xac6baaeed676e8f1})}, - {true, -135, MType({0x9809d58ee484964, 0xaa6e56d87cd632d6})}, - {true, -135, MType({0xb9e6fc7c72f06d73, 0xa870fad754bb8791})}, - {true, -135, MType({0x6f78d6d0105c00e2, 0xa67396eb1f231892})}, - {true, -135, MType({0x28f712629209148, 0xa4762b139d0626e7})}, - {true, -135, MType({0xc98d898ef172df02, 0xa258dfd10aedaa67})}, - {true, -135, MType({0xfcc37c3c3062bfa1, 0xa05b63a373e60a83})}, - {true, -135, MType({0x3eb450db05763c36, 0x9e5ddf89cf42f501})}, - {true, -135, MType({0x7146a86fd458b775, 0x9c605383ddf1b88c})}, - {true, -135, MType({0xc20a0c9281474436, 0x9a62bf9160dcb286})}, - {true, -135, MType({0xcdc57316ec4aebc3, 0x986523b218eb4ed6})}, - {true, -135, MType({0xc060dad74cef4273, 0x96677fe5c70207b9})}, - {true, -135, MType({0xed8def1a3e433499, 0x9449f92d2ff44633})}, - {true, -135, MType({0x3ce7a1f85c27b4fc, 0x924c45073220b5e0})}, - {true, -135, MType({0xf2ca893449f7f2cb, 0x904e88f368fea63f})}, - {true, -135, MType({0x8d77d9fabd2853cf, 0x8e50c4f1956699ed})}, - {true, -135, MType({0x93e828d75b58ded4, 0x8c52f901782e20ec})}, - {true, -135, MType({0x9f9605b053c5acf0, 0x8a552522d227d87a})}, - {true, -135, MType({0x62a149393bca7241, 0x8857495564236ae0})}, - {true, -135, MType({0xaea6b56ce89203d4, 0x86398719b66bac7c})}, - {true, -135, MType({0x242bd86d00609b2, 0x843b9aef044e4dcc})}, - {true, -135, MType({0xdaabf92774bac84e, 0x823da6d4c89c6927})}, - {true, -135, MType({0xa1c6f3fc242ef8d0, 0x803faacac419abf2})}, - {true, -136, MType({0xa225ebc02e6d9dd4, 0xfc834da16f0d9f57})}, - {true, -136, MType({0xc33f6ad340ae18a9, 0xf88735ccc7433381})}, - {true, -136, MType({0x70b2a4d38a242244, 0xf48b0e171249b6bc})}, - {true, -136, MType({0x1d54819048b811b0, 0xf08ed67fd190e280})}, - {true, -136, MType({0x9c21b650afe9ede0, 0xec52ca07ed95f236})}, - {true, -136, MType({0x935519c96d30e463, 0xe85671adecd28aac})}, - {true, -136, MType({0xba88f6f2e2672cfe, 0xe45a0970dc912ca7})}, - {true, -136, MType({0xb1a8b84657ae069, 0xe05d91503e298bc8})}, - {true, -136, MType({0xea3bff8d197b20a1, 0xdc61094b92ed70ef})}, - {true, -136, MType({0xcdbb931d6fecc249, 0xd86471625c28b9e5})}, - {true, -136, MType({0xd971d560d5f00820, 0xd467c9941b2158f5})}, - {true, -136, MType({0x75563561244c090b, 0xd06b11e051175493})}, - {true, -136, MType({0xdc393c9a3f3b380f, 0xcc6e4a467f44c6fa})}, - {true, -136, MType({0xe6abe6e9e4ee2096, 0xc831a4c6f6fa709d})}, - {true, -136, MType({0x3ce3c8228583a66e, 0xc434bc6124a0f16e})}, - {true, -136, MType({0xb96a79f5c5a4963a, 0xc037c413c61bfd93})}, - {true, -136, MType({0xaaef27337008679f, 0xbc3abbde5c8d9bde})}, - {true, -136, MType({0xa49a3fcaddc8bc5a, 0xb83da3c06911e509})}, - {true, -136, MType({0xe0254feb785362fa, 0xb4407bb96cbf035a})}, - {true, -136, MType({0x9893a4e25ab9dc95, 0xb04343c8e8a53245})}, - {true, -136, MType({0x5d8b0f40a3708915, 0xac45fbee5dcebe0b})}, - {true, -136, MType({0x5f4c11c2c7a58c69, 0xa848a4294d40035d})}, - {true, -136, MType({0xb348cc5df706ffba, 0xa44b3c7937f76efd})}, - {true, -136, MType({0x9159f2c55a18befd, 0xa04dc4dd9eed7d60})}, - {true, -136, MType({0xbdfdee41fe6a5a02, 0x9c1064563058bef3})}, - {true, -136, MType({0x4580ddf89853254d, 0x9812cbe346475a24})}, - {true, -136, MType({0xac75e10d61fc3ee8, 0x9415238353489ffb})}, - {true, -136, MType({0xcad9b30b29736155, 0x90176b35d83ce8e2})}, - {true, -136, MType({0x6f881deb98fc45f3, 0x8c19a2fa55fe9b14})}, - {true, -136, MType({0x70a04b63b7248c96, 0x881bcad04d622a3e})}, - {true, -136, MType({0xb4823fb48035eddd, 0x841de2b73f361722})}, - {true, -136, MType({0x3364ccb5b13cd47f, 0x801feaaeac42ef38})}, - {true, -137, MType({0xe306977b049f0ad5, 0xf843c56c2a969897})}, - {true, -137, MType({0xe3c4d9e9619bc045, 0xf0479599f617a843})}, - {true, -137, MType({0x4356d525b5e6432d, 0xe84b45e5bc76702c})}, - {true, -137, MType({0x7839dcd7989339ab, 0xe04ed64e7f14697a})}, - {true, -137, MType({0x4e21f045ecb76f23, 0xd85246d33f47230b})}, - {true, -137, MType({0x902e248dd4ba9b28, 0xd0559772fe5840b0})}, - {true, -137, MType({0xa44449067ef92e01, 0xc858c82cbd857a72})}, - {true, -137, MType({0x17926207cc22e4e6, 0xc05bd8ff7e009bd2})}, - {true, -137, MType({0x1c349622f3fa5d82, 0xb85ec9ea40ef8309})}, - {true, -137, MType({0x97fa2fd0c9dc723e, 0xafe1c6ece1a058dd})}, - {true, -137, MType({0x983e80897cf1e60f, 0xa7e47606048b1a65})}, - {true, -137, MType({0x7199cd06ae5d39b3, 0x9fe705341d236102})}, - {true, -137, MType({0x43cd18a72a051a96, 0x97e974762c5e8f58})}, - {true, -137, MType({0x7b6d1248c3e1fd40, 0x8febc3cb332616ff})}, - {true, -137, MType({0xf5572a8814c703af, 0x87edf332325777c5})}, - {true, -138, MType({0x26828c92649a3a39, 0xffe0055455887de0})}, - {true, -138, MType({0x82c550bd1216d82a, 0xefe3e4643a640cf3})}, - {true, -138, MType({0xda6959f7f0e01bf0, 0xdfe7839214b4e8ae})}, - {true, -138, MType({0xda93e2fa85a8f214, 0xcfeae2dbe5d6736d})}, - {true, -138, MType({0xb47505bfa5a03b06, 0xbfee023faf0c2480})}, - {true, -138, MType({0xb1475a5180a43520, 0xaff0e1bb718186ad})}, - {true, -138, MType({0xa8740b91c95df537, 0x9ff3814d2e4a36b2})}, - {true, -138, MType({0x57d895d35921b59c, 0x8ff5e0f2e661e1c6})}, - {true, -139, MType({0x3c56c598c659c2a3, 0xfff0015535588833})}, - {true, -139, MType({0x2ef8ec33ed9d782a, 0xdff3c0e497ea4eb1})}, - {true, -139, MType({0x379eba7e6465ff63, 0xbff7008ff5e0c257})}, - {true, -139, MType({0x3f972b783fcab757, 0x9ff9c0535073a370})}, - {true, -140, MType({0xde026e271ee0549d, 0xfff8005551558885})}, - {true, -140, MType({0xeceb47ea01f6c632, 0xbffb8023febc0c25})}, - {true, -141, MType({0x7333c57857e1ed52, 0xfffc001554d55888})}, - {true, -142, MType({0x87dde026fa704374, 0xfffe000555455588})}, - {false, 0, MType({0x0, 0x0})}, - {false, -141, MType({0x44999abe2fe2cc65, 0x80010002aab2aac4})}, - {false, -140, MType({0x4eef381581464ccb, 0x8002000aaaeaac44})}, - {false, -140, MType({0xdfeb485085f6f454, 0xc004802401440c26})}, - {false, -139, MType({0x99abe3be3a1c6e93, 0x8004002aacaac445})}, - {false, -139, MType({0x6bc1e20eac8448b4, 0xa00640535a37a37a})}, - {false, -139, MType({0x979eedc064c242fd, 0xc00900900a20c275})}, - {false, -139, MType({0xc72446cc1bf728bd, 0xe00c40e4bd6e4efd})}, - {false, -138, MType({0xf381b821bbb569e5, 0x800800aabaac446e})}, - {false, -138, MType({0x569b26aaa485ea5c, 0x900a20f319a3e273})}, - {false, -138, MType({0x2dcf56c83c80b028, 0xa00c814d7c6a37f8})}, - {false, -138, MType({0x5f69768284463b9b, 0xb00f21bbe3e388ee})}, - {false, -138, MType({0xb48ea6c05e2773a1, 0xc0120240510c284c})}, - {false, -138, MType({0x14d9d76196d8043a, 0xd01522dcc4f87991})}, - {false, -138, MType({0xe016a611a4415d72, 0xe018839340d4f241})}, - {false, -138, MType({0x661e135f49a47c40, 0xf01c2465c5e61b6f})}, - {false, -137, MType({0xbe6bf0fa435e8383, 0x801002ab2ac4499a})}, - {false, -137, MType({0x9a31ba0cbc030353, 0x881213337898871e})}, - {false, -137, MType({0x54b57dfe0c4c840f, 0x901443cccd362c9f})}, - {false, -137, MType({0x7ad1e9c315328f7e, 0x98169478296fad41})}, - {false, -137, MType({0x1f3f686cf3d6be22, 0xa01905368e2389b3})}, - {false, -137, MType({0xf105b66ec4703ede, 0xa81b9608fc3c50ec})}, - {false, -137, MType({0x610848c68df4d233, 0xb01e46f074b0a0f3})}, - {false, -137, MType({0x2e0efddf33a20464, 0xb7a0e9ed7613acb0})}, - {false, -137, MType({0xc2cdb3c750f127b4, 0xbfa3d9008e042ffb})}, - {false, -137, MType({0xbd9533786d3f4c49, 0xc7a6e82ba36a7073})}, - {false, -137, MType({0x82e237c9a4d450e3, 0xcfaa176fb76c8eb1})}, - {false, -137, MType({0xc00b46a4d0e3dfd0, 0xd7ad66cdcb3cbe14})}, - {false, -137, MType({0xea999c0df8546710, 0xdfb0d646e0194584})}, - {false, -137, MType({0xcec6c2a9ad974f4f, 0xe7b465dbf74c8032})}, - {false, -137, MType({0x2d2045da1570a07c, 0xefb8158e122cde5a})}, - {false, -137, MType({0x6752e9b2381e3edc, 0xf7bbe55e321ce603})}, - {false, -137, MType({0x3c1ed52728e00e40, 0xffbfd54d588b33c5})}, - {false, -136, MType({0x493b0d873fb9a340, 0x83e1f2ae43793dc3})}, - {false, -136, MType({0x29e38750c9d26893, 0x87e40ac65f6cc4a0})}, - {false, -136, MType({0xaab9e8327258ac3f, 0x8be632ef80e9a0df})}, - {false, -136, MType({0x28bc403d8a5f3c63, 0x8fe86b2a28bf51b3})}, - {false, -136, MType({0xf720c1c97227fcdc, 0x93eab376d7c36377})}, - {false, -136, MType({0x6ad9a3e3d11b66c1, 0x97ed0bd60ed17018})}, - {false, -136, MType({0xedb27b79c90b4019, 0x9bef74484ecb1f6c})}, - {false, -136, MType({0xa092a0d7ab21722a, 0x9fb1c4cd27012e19})}, - {false, -136, MType({0x535d52f0939a4d02, 0xa3b44c65b71c2d85})}, - {false, -136, MType({0x90a57e11edc1864e, 0xa7b6e412cadcb3dc})}, - {false, -136, MType({0x68e9c90160031159, 0xabb98bd4e33c4381})}, - {false, -136, MType({0xbf60594f929adeb8, 0xafbc43ac813a6ea3})}, - {false, -136, MType({0x8a42158886775205, 0xb3bf0b9a25dcd7a2})}, - {false, -136, MType({0x1ab45417663dee9e, 0xb7c1e39e522f316d})}, - {false, -136, MType({0x6c51ae3ce1aea68a, 0xbbc4cbb987433fe4})}, - {false, -136, MType({0x7c52ae8b40ebabb7, 0xbfc7c3ec4630d83c})}, - {false, -136, MType({0xa857126f7cfaaa67, 0xc3cacc371015e15d})}, - {false, -136, MType({0x14d05662cd29464a, 0xc7cde49a66165446})}, - {false, -136, MType({0x8379db06ef3cd6bb, 0xcb90da1644d29bb7})}, - {false, -136, MType({0x9025f4c67dd38bb6, 0xcf9411aa99ddb7de})}, - {false, -136, MType({0xd6f8a61c892032ee, 0xd3975958f681086d})}, - {false, -136, MType({0x9a2f20b4e2332d47, 0xd79ab121dbf8714c})}, - {false, -136, MType({0x3c767d61f51d375b, 0xdb9e1905cb85ea59})}, - {false, -136, MType({0xd4b2bd65bb25493c, 0xdfa1910546717fca})}, - {false, -136, MType({0xc96c1254a30ef91f, 0xe3a51920ce095292})}, - {false, -136, MType({0x73e324ce0946b214, 0xe7a8b158e3a198be})}, - {false, -136, MType({0xcacd125a12bac62c, 0xebac59ae08949dd8})}, - {false, -136, MType({0xcafdc27227b71eaa, 0xef6fd620b2b7a503})}, - {false, -136, MType({0x688d4282f6026aa3, 0xf3739daf959aaafc})}, - {false, -136, MType({0xe54e9e3804464cdd, 0xf777755d03f4e0b6})}, - {false, -136, MType({0xcb78b383f4b59dce, 0xfb7b5d297f388a12})}, - {false, -136, MType({0xee055fc515062c04, 0xff7f551588de024f})}, - {false, -135, MType({0x207812b43382acdd, 0x81c1ae90d131de38})}, - {false, -135, MType({0xdc90c4c4b61f3a87, 0x83c3baa726a721cc})}, - {false, -135, MType({0x1a03f13fb2c978b1, 0x85c5cece05941dbc})}, - {false, -135, MType({0xb36f282e83a7dc36, 0x87c7eb05aec1304f})}, - {false, -135, MType({0xd82a46616d4c393f, 0x89a9eccd56a980c0})}, - {false, -135, MType({0xbc6ff84713c9babd, 0x8bac18a640185360})}, - {false, -135, MType({0x9f7942a516fc2d8a, 0x8dae4c90b22574f4})}, - {false, -135, MType({0x15e50cfd9b29b427, 0x8fb0888ceda546ab})}, - {false, -135, MType({0x9f465296ae7dd49a, 0x91b2cc9b336f3718})}, - {false, -135, MType({0xb49c1eb9b348e6e4, 0x93b518bbc45dc268})}, - {false, -135, MType({0xdaa320cd64c9d9c7, 0x95b76ceee14e728e})}, - {false, -135, MType({0x75a91950ffe1e3b5, 0x9799a333de49b963})}, - {false, -135, MType({0x5c6abcbf43f03f14, 0x999c070ba32068cd})}, - {false, -135, MType({0x5a9e7f265d1ed157, 0x9b9e72f6b295ad4f})}, - {false, -135, MType({0xefeb98d02a195c17, 0x9da0e6f54d9318fd})}, - {false, -135, MType({0x2aa503a3110ab5a7, 0x9fa36307b5054ca8})}, - {false, -135, MType({0xd0fe7e05869eb825, 0xa1a5e72e29dbf808})}, - {false, -135, MType({0xe80a28f4e1e500d2, 0xa3884a68a750cb10})}, - {false, -135, MType({0x531064151ca6e30b, 0xa58ade36aeef9f0b})}, - {false, -135, MType({0x27c01ffa8e2e3c4b, 0xa78d7a1982c4b08f})}, - {false, -135, MType({0x7ba9408dc857d568, 0xa9901e1163cbbbf5})}, - {false, -135, MType({0x104d1e3331d3b4fa, 0xab92ca1e93038d76})}, - {false, -135, MType({0x9343c846fcdf9137, 0xad957e41516e0158})}, - {false, -135, MType({0x3977e89aec59bfa2, 0xaf780e79b2514889})}, - {false, -135, MType({0x913d4e3dc55c3e6e, 0xb17ad246ef3713bc})}, - {false, -135, MType({0x777b52a9e70d8bcc, 0xb37d9e2a7a56b09d})}, - {false, -135, MType({0x55de916fd30591de, 0xb580722494be0c91})}, - {false, -135, MType({0xe79cfb37be2861e4, 0xb7834e357f7e2600})}, - {false, -135, MType({0x90983104d3805389, 0xb986325d7bab0c89})}, - {false, -135, MType({0x59e3b2ec71ce64f4, 0xbb68ef9c254aa378})}, - {false, -135, MType({0xe83183bf3dd612ef, 0xbd6be3718c77636f})}, - {false, -135, MType({0xc4e3b0ac2fd52b7f, 0xbf6edf5ec44d9d35})}, + {Sign::NEG, -135, MType({0xa0e061c5f7431c5e, 0xb67dab2a1a5742a4})}, + {Sign::NEG, -135, MType({0x5d5bfe7b969ed6ec, 0xb4807f24af682939})}, + {Sign::NEG, -135, MType({0x4d08702ddfabc23f, 0xb2834b35b4d54d5f})}, + {Sign::NEG, -135, MType({0xd4d366508b9953df, 0xb0860f5ceba9be95})}, + {Sign::NEG, -135, MType({0xac18a289f8f214a9, 0xae68f71aa09e8847})}, + {Sign::NEG, -135, MType({0xd5b42054abb88c45, 0xac6baaeed676e8f1})}, + {Sign::NEG, -135, MType({0x9809d58ee484964, 0xaa6e56d87cd632d6})}, + {Sign::NEG, -135, MType({0xb9e6fc7c72f06d73, 0xa870fad754bb8791})}, + {Sign::NEG, -135, MType({0x6f78d6d0105c00e2, 0xa67396eb1f231892})}, + {Sign::NEG, -135, MType({0x28f712629209148, 0xa4762b139d0626e7})}, + {Sign::NEG, -135, MType({0xc98d898ef172df02, 0xa258dfd10aedaa67})}, + {Sign::NEG, -135, MType({0xfcc37c3c3062bfa1, 0xa05b63a373e60a83})}, + {Sign::NEG, -135, MType({0x3eb450db05763c36, 0x9e5ddf89cf42f501})}, + {Sign::NEG, -135, MType({0x7146a86fd458b775, 0x9c605383ddf1b88c})}, + {Sign::NEG, -135, MType({0xc20a0c9281474436, 0x9a62bf9160dcb286})}, + {Sign::NEG, -135, MType({0xcdc57316ec4aebc3, 0x986523b218eb4ed6})}, + {Sign::NEG, -135, MType({0xc060dad74cef4273, 0x96677fe5c70207b9})}, + {Sign::NEG, -135, MType({0xed8def1a3e433499, 0x9449f92d2ff44633})}, + {Sign::NEG, -135, MType({0x3ce7a1f85c27b4fc, 0x924c45073220b5e0})}, + {Sign::NEG, -135, MType({0xf2ca893449f7f2cb, 0x904e88f368fea63f})}, + {Sign::NEG, -135, MType({0x8d77d9fabd2853cf, 0x8e50c4f1956699ed})}, + {Sign::NEG, -135, MType({0x93e828d75b58ded4, 0x8c52f901782e20ec})}, + {Sign::NEG, -135, MType({0x9f9605b053c5acf0, 0x8a552522d227d87a})}, + {Sign::NEG, -135, MType({0x62a149393bca7241, 0x8857495564236ae0})}, + {Sign::NEG, -135, MType({0xaea6b56ce89203d4, 0x86398719b66bac7c})}, + {Sign::NEG, -135, MType({0x242bd86d00609b2, 0x843b9aef044e4dcc})}, + {Sign::NEG, -135, MType({0xdaabf92774bac84e, 0x823da6d4c89c6927})}, + {Sign::NEG, -135, MType({0xa1c6f3fc242ef8d0, 0x803faacac419abf2})}, + {Sign::NEG, -136, MType({0xa225ebc02e6d9dd4, 0xfc834da16f0d9f57})}, + {Sign::NEG, -136, MType({0xc33f6ad340ae18a9, 0xf88735ccc7433381})}, + {Sign::NEG, -136, MType({0x70b2a4d38a242244, 0xf48b0e171249b6bc})}, + {Sign::NEG, -136, MType({0x1d54819048b811b0, 0xf08ed67fd190e280})}, + {Sign::NEG, -136, MType({0x9c21b650afe9ede0, 0xec52ca07ed95f236})}, + {Sign::NEG, -136, MType({0x935519c96d30e463, 0xe85671adecd28aac})}, + {Sign::NEG, -136, MType({0xba88f6f2e2672cfe, 0xe45a0970dc912ca7})}, + {Sign::NEG, -136, MType({0xb1a8b84657ae069, 0xe05d91503e298bc8})}, + {Sign::NEG, -136, MType({0xea3bff8d197b20a1, 0xdc61094b92ed70ef})}, + {Sign::NEG, -136, MType({0xcdbb931d6fecc249, 0xd86471625c28b9e5})}, + {Sign::NEG, -136, MType({0xd971d560d5f00820, 0xd467c9941b2158f5})}, + {Sign::NEG, -136, MType({0x75563561244c090b, 0xd06b11e051175493})}, + {Sign::NEG, -136, MType({0xdc393c9a3f3b380f, 0xcc6e4a467f44c6fa})}, + {Sign::NEG, -136, MType({0xe6abe6e9e4ee2096, 0xc831a4c6f6fa709d})}, + {Sign::NEG, -136, MType({0x3ce3c8228583a66e, 0xc434bc6124a0f16e})}, + {Sign::NEG, -136, MType({0xb96a79f5c5a4963a, 0xc037c413c61bfd93})}, + {Sign::NEG, -136, MType({0xaaef27337008679f, 0xbc3abbde5c8d9bde})}, + {Sign::NEG, -136, MType({0xa49a3fcaddc8bc5a, 0xb83da3c06911e509})}, + {Sign::NEG, -136, MType({0xe0254feb785362fa, 0xb4407bb96cbf035a})}, + {Sign::NEG, -136, MType({0x9893a4e25ab9dc95, 0xb04343c8e8a53245})}, + {Sign::NEG, -136, MType({0x5d8b0f40a3708915, 0xac45fbee5dcebe0b})}, + {Sign::NEG, -136, MType({0x5f4c11c2c7a58c69, 0xa848a4294d40035d})}, + {Sign::NEG, -136, MType({0xb348cc5df706ffba, 0xa44b3c7937f76efd})}, + {Sign::NEG, -136, MType({0x9159f2c55a18befd, 0xa04dc4dd9eed7d60})}, + {Sign::NEG, -136, MType({0xbdfdee41fe6a5a02, 0x9c1064563058bef3})}, + {Sign::NEG, -136, MType({0x4580ddf89853254d, 0x9812cbe346475a24})}, + {Sign::NEG, -136, MType({0xac75e10d61fc3ee8, 0x9415238353489ffb})}, + {Sign::NEG, -136, MType({0xcad9b30b29736155, 0x90176b35d83ce8e2})}, + {Sign::NEG, -136, MType({0x6f881deb98fc45f3, 0x8c19a2fa55fe9b14})}, + {Sign::NEG, -136, MType({0x70a04b63b7248c96, 0x881bcad04d622a3e})}, + {Sign::NEG, -136, MType({0xb4823fb48035eddd, 0x841de2b73f361722})}, + {Sign::NEG, -136, MType({0x3364ccb5b13cd47f, 0x801feaaeac42ef38})}, + {Sign::NEG, -137, MType({0xe306977b049f0ad5, 0xf843c56c2a969897})}, + {Sign::NEG, -137, MType({0xe3c4d9e9619bc045, 0xf0479599f617a843})}, + {Sign::NEG, -137, MType({0x4356d525b5e6432d, 0xe84b45e5bc76702c})}, + {Sign::NEG, -137, MType({0x7839dcd7989339ab, 0xe04ed64e7f14697a})}, + {Sign::NEG, -137, MType({0x4e21f045ecb76f23, 0xd85246d33f47230b})}, + {Sign::NEG, -137, MType({0x902e248dd4ba9b28, 0xd0559772fe5840b0})}, + {Sign::NEG, -137, MType({0xa44449067ef92e01, 0xc858c82cbd857a72})}, + {Sign::NEG, -137, MType({0x17926207cc22e4e6, 0xc05bd8ff7e009bd2})}, + {Sign::NEG, -137, MType({0x1c349622f3fa5d82, 0xb85ec9ea40ef8309})}, + {Sign::NEG, -137, MType({0x97fa2fd0c9dc723e, 0xafe1c6ece1a058dd})}, + {Sign::NEG, -137, MType({0x983e80897cf1e60f, 0xa7e47606048b1a65})}, + {Sign::NEG, -137, MType({0x7199cd06ae5d39b3, 0x9fe705341d236102})}, + {Sign::NEG, -137, MType({0x43cd18a72a051a96, 0x97e974762c5e8f58})}, + {Sign::NEG, -137, MType({0x7b6d1248c3e1fd40, 0x8febc3cb332616ff})}, + {Sign::NEG, -137, MType({0xf5572a8814c703af, 0x87edf332325777c5})}, + {Sign::NEG, -138, MType({0x26828c92649a3a39, 0xffe0055455887de0})}, + {Sign::NEG, -138, MType({0x82c550bd1216d82a, 0xefe3e4643a640cf3})}, + {Sign::NEG, -138, MType({0xda6959f7f0e01bf0, 0xdfe7839214b4e8ae})}, + {Sign::NEG, -138, MType({0xda93e2fa85a8f214, 0xcfeae2dbe5d6736d})}, + {Sign::NEG, -138, MType({0xb47505bfa5a03b06, 0xbfee023faf0c2480})}, + {Sign::NEG, -138, MType({0xb1475a5180a43520, 0xaff0e1bb718186ad})}, + {Sign::NEG, -138, MType({0xa8740b91c95df537, 0x9ff3814d2e4a36b2})}, + {Sign::NEG, -138, MType({0x57d895d35921b59c, 0x8ff5e0f2e661e1c6})}, + {Sign::NEG, -139, MType({0x3c56c598c659c2a3, 0xfff0015535588833})}, + {Sign::NEG, -139, MType({0x2ef8ec33ed9d782a, 0xdff3c0e497ea4eb1})}, + {Sign::NEG, -139, MType({0x379eba7e6465ff63, 0xbff7008ff5e0c257})}, + {Sign::NEG, -139, MType({0x3f972b783fcab757, 0x9ff9c0535073a370})}, + {Sign::NEG, -140, MType({0xde026e271ee0549d, 0xfff8005551558885})}, + {Sign::NEG, -140, MType({0xeceb47ea01f6c632, 0xbffb8023febc0c25})}, + {Sign::NEG, -141, MType({0x7333c57857e1ed52, 0xfffc001554d55888})}, + {Sign::NEG, -142, MType({0x87dde026fa704374, 0xfffe000555455588})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -141, MType({0x44999abe2fe2cc65, 0x80010002aab2aac4})}, + {Sign::POS, -140, MType({0x4eef381581464ccb, 0x8002000aaaeaac44})}, + {Sign::POS, -140, MType({0xdfeb485085f6f454, 0xc004802401440c26})}, + {Sign::POS, -139, MType({0x99abe3be3a1c6e93, 0x8004002aacaac445})}, + {Sign::POS, -139, MType({0x6bc1e20eac8448b4, 0xa00640535a37a37a})}, + {Sign::POS, -139, MType({0x979eedc064c242fd, 0xc00900900a20c275})}, + {Sign::POS, -139, MType({0xc72446cc1bf728bd, 0xe00c40e4bd6e4efd})}, + {Sign::POS, -138, MType({0xf381b821bbb569e5, 0x800800aabaac446e})}, + {Sign::POS, -138, MType({0x569b26aaa485ea5c, 0x900a20f319a3e273})}, + {Sign::POS, -138, MType({0x2dcf56c83c80b028, 0xa00c814d7c6a37f8})}, + {Sign::POS, -138, MType({0x5f69768284463b9b, 0xb00f21bbe3e388ee})}, + {Sign::POS, -138, MType({0xb48ea6c05e2773a1, 0xc0120240510c284c})}, + {Sign::POS, -138, MType({0x14d9d76196d8043a, 0xd01522dcc4f87991})}, + {Sign::POS, -138, MType({0xe016a611a4415d72, 0xe018839340d4f241})}, + {Sign::POS, -138, MType({0x661e135f49a47c40, 0xf01c2465c5e61b6f})}, + {Sign::POS, -137, MType({0xbe6bf0fa435e8383, 0x801002ab2ac4499a})}, + {Sign::POS, -137, MType({0x9a31ba0cbc030353, 0x881213337898871e})}, + {Sign::POS, -137, MType({0x54b57dfe0c4c840f, 0x901443cccd362c9f})}, + {Sign::POS, -137, MType({0x7ad1e9c315328f7e, 0x98169478296fad41})}, + {Sign::POS, -137, MType({0x1f3f686cf3d6be22, 0xa01905368e2389b3})}, + {Sign::POS, -137, MType({0xf105b66ec4703ede, 0xa81b9608fc3c50ec})}, + {Sign::POS, -137, MType({0x610848c68df4d233, 0xb01e46f074b0a0f3})}, + {Sign::POS, -137, MType({0x2e0efddf33a20464, 0xb7a0e9ed7613acb0})}, + {Sign::POS, -137, MType({0xc2cdb3c750f127b4, 0xbfa3d9008e042ffb})}, + {Sign::POS, -137, MType({0xbd9533786d3f4c49, 0xc7a6e82ba36a7073})}, + {Sign::POS, -137, MType({0x82e237c9a4d450e3, 0xcfaa176fb76c8eb1})}, + {Sign::POS, -137, MType({0xc00b46a4d0e3dfd0, 0xd7ad66cdcb3cbe14})}, + {Sign::POS, -137, MType({0xea999c0df8546710, 0xdfb0d646e0194584})}, + {Sign::POS, -137, MType({0xcec6c2a9ad974f4f, 0xe7b465dbf74c8032})}, + {Sign::POS, -137, MType({0x2d2045da1570a07c, 0xefb8158e122cde5a})}, + {Sign::POS, -137, MType({0x6752e9b2381e3edc, 0xf7bbe55e321ce603})}, + {Sign::POS, -137, MType({0x3c1ed52728e00e40, 0xffbfd54d588b33c5})}, + {Sign::POS, -136, MType({0x493b0d873fb9a340, 0x83e1f2ae43793dc3})}, + {Sign::POS, -136, MType({0x29e38750c9d26893, 0x87e40ac65f6cc4a0})}, + {Sign::POS, -136, MType({0xaab9e8327258ac3f, 0x8be632ef80e9a0df})}, + {Sign::POS, -136, MType({0x28bc403d8a5f3c63, 0x8fe86b2a28bf51b3})}, + {Sign::POS, -136, MType({0xf720c1c97227fcdc, 0x93eab376d7c36377})}, + {Sign::POS, -136, MType({0x6ad9a3e3d11b66c1, 0x97ed0bd60ed17018})}, + {Sign::POS, -136, MType({0xedb27b79c90b4019, 0x9bef74484ecb1f6c})}, + {Sign::POS, -136, MType({0xa092a0d7ab21722a, 0x9fb1c4cd27012e19})}, + {Sign::POS, -136, MType({0x535d52f0939a4d02, 0xa3b44c65b71c2d85})}, + {Sign::POS, -136, MType({0x90a57e11edc1864e, 0xa7b6e412cadcb3dc})}, + {Sign::POS, -136, MType({0x68e9c90160031159, 0xabb98bd4e33c4381})}, + {Sign::POS, -136, MType({0xbf60594f929adeb8, 0xafbc43ac813a6ea3})}, + {Sign::POS, -136, MType({0x8a42158886775205, 0xb3bf0b9a25dcd7a2})}, + {Sign::POS, -136, MType({0x1ab45417663dee9e, 0xb7c1e39e522f316d})}, + {Sign::POS, -136, MType({0x6c51ae3ce1aea68a, 0xbbc4cbb987433fe4})}, + {Sign::POS, -136, MType({0x7c52ae8b40ebabb7, 0xbfc7c3ec4630d83c})}, + {Sign::POS, -136, MType({0xa857126f7cfaaa67, 0xc3cacc371015e15d})}, + {Sign::POS, -136, MType({0x14d05662cd29464a, 0xc7cde49a66165446})}, + {Sign::POS, -136, MType({0x8379db06ef3cd6bb, 0xcb90da1644d29bb7})}, + {Sign::POS, -136, MType({0x9025f4c67dd38bb6, 0xcf9411aa99ddb7de})}, + {Sign::POS, -136, MType({0xd6f8a61c892032ee, 0xd3975958f681086d})}, + {Sign::POS, -136, MType({0x9a2f20b4e2332d47, 0xd79ab121dbf8714c})}, + {Sign::POS, -136, MType({0x3c767d61f51d375b, 0xdb9e1905cb85ea59})}, + {Sign::POS, -136, MType({0xd4b2bd65bb25493c, 0xdfa1910546717fca})}, + {Sign::POS, -136, MType({0xc96c1254a30ef91f, 0xe3a51920ce095292})}, + {Sign::POS, -136, MType({0x73e324ce0946b214, 0xe7a8b158e3a198be})}, + {Sign::POS, -136, MType({0xcacd125a12bac62c, 0xebac59ae08949dd8})}, + {Sign::POS, -136, MType({0xcafdc27227b71eaa, 0xef6fd620b2b7a503})}, + {Sign::POS, -136, MType({0x688d4282f6026aa3, 0xf3739daf959aaafc})}, + {Sign::POS, -136, MType({0xe54e9e3804464cdd, 0xf777755d03f4e0b6})}, + {Sign::POS, -136, MType({0xcb78b383f4b59dce, 0xfb7b5d297f388a12})}, + {Sign::POS, -136, MType({0xee055fc515062c04, 0xff7f551588de024f})}, + {Sign::POS, -135, MType({0x207812b43382acdd, 0x81c1ae90d131de38})}, + {Sign::POS, -135, MType({0xdc90c4c4b61f3a87, 0x83c3baa726a721cc})}, + {Sign::POS, -135, MType({0x1a03f13fb2c978b1, 0x85c5cece05941dbc})}, + {Sign::POS, -135, MType({0xb36f282e83a7dc36, 0x87c7eb05aec1304f})}, + {Sign::POS, -135, MType({0xd82a46616d4c393f, 0x89a9eccd56a980c0})}, + {Sign::POS, -135, MType({0xbc6ff84713c9babd, 0x8bac18a640185360})}, + {Sign::POS, -135, MType({0x9f7942a516fc2d8a, 0x8dae4c90b22574f4})}, + {Sign::POS, -135, MType({0x15e50cfd9b29b427, 0x8fb0888ceda546ab})}, + {Sign::POS, -135, MType({0x9f465296ae7dd49a, 0x91b2cc9b336f3718})}, + {Sign::POS, -135, MType({0xb49c1eb9b348e6e4, 0x93b518bbc45dc268})}, + {Sign::POS, -135, MType({0xdaa320cd64c9d9c7, 0x95b76ceee14e728e})}, + {Sign::POS, -135, MType({0x75a91950ffe1e3b5, 0x9799a333de49b963})}, + {Sign::POS, -135, MType({0x5c6abcbf43f03f14, 0x999c070ba32068cd})}, + {Sign::POS, -135, MType({0x5a9e7f265d1ed157, 0x9b9e72f6b295ad4f})}, + {Sign::POS, -135, MType({0xefeb98d02a195c17, 0x9da0e6f54d9318fd})}, + {Sign::POS, -135, MType({0x2aa503a3110ab5a7, 0x9fa36307b5054ca8})}, + {Sign::POS, -135, MType({0xd0fe7e05869eb825, 0xa1a5e72e29dbf808})}, + {Sign::POS, -135, MType({0xe80a28f4e1e500d2, 0xa3884a68a750cb10})}, + {Sign::POS, -135, MType({0x531064151ca6e30b, 0xa58ade36aeef9f0b})}, + {Sign::POS, -135, MType({0x27c01ffa8e2e3c4b, 0xa78d7a1982c4b08f})}, + {Sign::POS, -135, MType({0x7ba9408dc857d568, 0xa9901e1163cbbbf5})}, + {Sign::POS, -135, MType({0x104d1e3331d3b4fa, 0xab92ca1e93038d76})}, + {Sign::POS, -135, MType({0x9343c846fcdf9137, 0xad957e41516e0158})}, + {Sign::POS, -135, MType({0x3977e89aec59bfa2, 0xaf780e79b2514889})}, + {Sign::POS, -135, MType({0x913d4e3dc55c3e6e, 0xb17ad246ef3713bc})}, + {Sign::POS, -135, MType({0x777b52a9e70d8bcc, 0xb37d9e2a7a56b09d})}, + {Sign::POS, -135, MType({0x55de916fd30591de, 0xb580722494be0c91})}, + {Sign::POS, -135, MType({0xe79cfb37be2861e4, 0xb7834e357f7e2600})}, + {Sign::POS, -135, MType({0x90983104d3805389, 0xb986325d7bab0c89})}, + {Sign::POS, -135, MType({0x59e3b2ec71ce64f4, 0xbb68ef9c254aa378})}, + {Sign::POS, -135, MType({0xe83183bf3dd612ef, 0xbd6be3718c77636f})}, + {Sign::POS, -135, MType({0xc4e3b0ac2fd52b7f, 0xbf6edf5ec44d9d35})}, }; // Logarithm range reduction - Step 3: @@ -658,148 +659,148 @@ constexpr double S3[139] = { // for i in range(-69, 70): // r = 2^-21 * round( 2^21 / (1 + i*2^(-21)) ); // s, m, e = RealField(128)(r).log().sign_mantissa_exponent(); -// print("{false," if (s == -1) else "{true,", e, ", +// print("{Sign::POS," if (s == -1) else "{Sign::NEG,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); const Float128 LOG_R3[139] = { - {true, -142, MType({0xe39d3faf42340ed7, 0x89ff6b38d5de2622})}, - {true, -142, MType({0x7ff3326682c02485, 0x87ff6f80ccb40f16})}, - {true, -142, MType({0x5caf4fbe343cf928, 0x85ff73b8c3cdf731})}, - {true, -142, MType({0xcdb6e554348f7fe8, 0x83ff77e0bb2ade79})}, - {true, -142, MType({0xef009c2457de25d, 0x81ff7bf8b2c9c4f6})}, - {true, -143, MType({0x8883333c57b57c74, 0xffff000155535558})}, - {true, -143, MType({0xf32668f39c70d183, 0xfbff07f145931f44})}, - {true, -143, MType({0x459a73c6a6486fe3, 0xf7ff0fc13650e7bd})}, - {true, -143, MType({0x37b18cca7dd3a29f, 0xf3ff1771278aaecd})}, - {true, -143, MType({0x513f610d21bcfc78, 0xefff1f01193e7480})}, - {true, -143, MType({0xea190b95c0690b7b, 0xebff26710b6a38e1})}, - {true, -143, MType({0x2a150f64f0ad1743, 0xe7ff2dc0fe0bfbfd})}, - {true, -143, MType({0x90b5174e995e9d1, 0xe3ff34f0f121bddd})}, - {true, -143, MType({0x4ed512b9b93ea2bf, 0xdfff3c00e4a97e8c})}, - {true, -143, MType({0x934cea217ab794a2, 0xdbff42f0d8a13e15})}, - {true, -143, MType({0x3e4ebe948afd2c76, 0xd7ff49c0cd06fc83})}, - {true, -143, MType({0x87b7c0f5bcfee2e1, 0xd3ff5070c1d8b9df})}, - {true, -143, MType({0x776666228cb6371b, 0xcfff5700b7147634})}, - {true, -143, MType({0xe53a60f3514db358, 0xcbff5d70acb8318b})}, - {true, -143, MType({0x79149c3b6e57fa86, 0xc7ff63c0a2c1ebef})}, - {true, -143, MType({0xaad734c98416df2a, 0xc3ff69f0992fa568})}, - {true, -143, MType({0xc26573679ed28334, 0xbfff70008fff5e00})}, - {true, -143, MType({0xd7a3c6db6540809f, 0xbbff75f0872f15c0})}, - {true, -143, MType({0xd277bde645fb1aad, 0xb7ff7bc07ebcccb1})}, - {true, -143, MType({0x6ac80145a4087793, 0xb3ff817076a682dc})}, - {true, -143, MType({0x287c4db30271e265, 0xafff87006eea3849})}, - {true, -143, MType({0x637d6de42eeb151e, 0xabff8c706785ed00})}, - {true, -143, MType({0x43b5348b6b898a8c, 0xa7ff91c06077a10a})}, - {true, -143, MType({0xc10e7657978bd7f6, 0xa3ff96f059bd546e})}, - {true, -143, MType({0xa37503f457310e59, 0x9fff9c0053550735})}, - {true, -143, MType({0x82d5a40a3aa022ff, 0x9bffa0f04d3cb966})}, - {true, -143, MType({0xc71e0d3ee3df5f4d, 0x97ffa5c047726b08})}, - {true, -143, MType({0xa83ce0352bdbd79b, 0x93ffaa7041f41c23})}, - {true, -143, MType({0x2e21a18d4680e8e4, 0x8fffaf003cbfccbe})}, - {true, -143, MType({0x30bcb3e4e5dfbd28, 0x8bffb37037d37cdf})}, - {true, -143, MType({0x57ff51d75c66d64a, 0x87ffb7c0332d2c8d})}, - {true, -143, MType({0x1bdb87fdbe299f43, 0x83ffbbf02ecadbcf})}, - {true, -144, MType({0x88885dde02700703, 0xffff800055551555})}, - {true, -144, MType({0xd259ca803a0c1870, 0xf7ff87e04d94724c})}, - {true, -144, MType({0xe514130851c7070a, 0xefff8f80464fce8f})}, - {true, -144, MType({0x30a16898f3073a64, 0xe7ff96e03f832a2a})}, - {true, -144, MType({0xc4ed64517b2949ce, 0xdfff9e00392a8526})}, - {true, -144, MType({0x51e4fb4e32cf6350, 0xd7ffa4e03341df90})}, - {true, -144, MType({0x277672a88350bcce, 0xcfffab802dc53971})}, - {true, -144, MType({0x359153772a490f06, 0xc7ffb1e028b092d3})}, - {true, -144, MType({0xc265ece6b481a0e, 0xbfffb80023ffebc0})}, - {true, -144, MType({0xdb2781c03fa132f6, 0xb7ffbde01faf4440})}, - {true, -144, MType({0x7287c95c845ada33, 0xafffc3801bba9c5e})}, - {true, -144, MType({0x423b56b1263e5a77, 0xa7ffc8e0181df421})}, - {true, -144, MType({0x5a3752ca4c076fa3, 0x9fffce0014d54b91})}, - {true, -144, MType({0x6a71e2b27eb3f573, 0x97ffd2e011dca2b6})}, - {true, -144, MType({0xc2e21b72cff39d8f, 0x8fffd7800f2ff997})}, - {true, -144, MType({0x537ff612feb7ac9e, 0x87ffdbe00ccb503c})}, - {true, -145, MType({0x5888873333c57c18, 0xffffc00015554d55})}, - {true, -145, MType({0xfa51421842311c42, 0xefffc7c01193f9d1})}, - {true, -145, MType({0x2c4ed6de475b942c, 0xdfffcf000e4aa5fa})}, - {true, -145, MType({0xce77678cbb6fcb88, 0xcfffd5c00b7151d8})}, - {true, -145, MType({0xc26629a679ed3b, 0xbfffdc0008fffd78})}, - {true, -145, MType({0x23287cb9d3072728, 0xafffe1c006eea8e1})}, - {true, -145, MType({0xd5a37540fd057315, 0x9fffe7000535541c})}, - {true, -145, MType({0xf82e21c1fce36810, 0x8fffebc003cbff32})}, - {true, -146, MType({0x5588887ddde02702, 0xffffe00005555455})}, - {true, -146, MType({0x9ac4ed72adf5b295, 0xdfffe7800392aa14})}, - {true, -146, MType({0xc26648066b482, 0xbfffee00023fffaf})}, - {true, -146, MType({0x455a3754b292c077, 0x9ffff380014d552e})}, - {true, -147, MType({0x5558888833333c58, 0xfffff00001555535})}, - {true, -147, MType({0xe000c2665736679f, 0xbffff700008ffff5})}, - {true, -148, MType({0x5555888885ddde02, 0xfffff80000555551})}, - {true, -149, MType({0xd555588888733334, 0xfffffc0000155554})}, - {false, 0, MType({0x0, 0x0})}, - {false, -148, MType({0xeaaaac44444eeeef, 0x80000200000aaaaa})}, - {false, -147, MType({0xaaaac444459999ac, 0x80000400002aaaac})}, - {false, -147, MType({0x2000c2667596679f, 0xc00009000090000a})}, - {false, -146, MType({0xaaac44446eeef381, 0x8000080000aaaaba})}, - {false, -146, MType({0x655a3755f81815cc, 0xa0000c80014d557c})}, - {false, -146, MType({0xc26684c66b482, 0xc000120002400051})}, - {false, -146, MType({0xbac4ed7c40fb07eb, 0xe00018800392ab40})}, - {false, -145, MType({0xaac44449999abe2c, 0x8000100002aaab2a})}, - {false, -145, MType({0x82e21d79cbb6812, 0x9000144003cc00cd})}, - {false, -145, MType({0xd5a37569adb01dc3, 0xa00019000535568d})}, - {false, -145, MType({0x33287d01e8c9d1d9, 0xb0001e4006eeac74})}, - {false, -145, MType({0xc266a32679ed48, 0xc000240009000288})}, - {false, -145, MType({0xde77685122b2764b, 0xd0002a400b7158d1})}, - {false, -145, MType({0x2c4ed810a8063f03, 0xe00031000e4aaf5b})}, - {false, -145, MType({0xa5143e7be891c8f, 0xf00038401194062e})}, - {false, -144, MType({0xac4444eeef3813a1, 0x800020000aaaaeaa})}, - {false, -144, MType({0x5b7ff7fe1339025b, 0x880024200ccb5a6e})}, - {false, -144, MType({0x42e21e26caf39e33, 0x900028800f300668})}, - {false, -144, MType({0xf271e66fa5554bc6, 0x98002d2011dcb29e})}, - {false, -144, MType({0x5a3757e0615cc676, 0xa000320014d55f19})}, - {false, -144, MType({0xca3b5d8210ca5cab, 0xa8003720181e0bde})}, - {false, -144, MType({0xf287d25f3cb032bb, 0xb0003c801bbab8f6})}, - {false, -144, MType({0xe3278d840be28cdb, 0xb80042201faf6669})}, - {false, -144, MType({0xc266dfe6b482076, 0xc000480024001440})}, - {false, -144, MType({0x3d9166de380a6d3d, 0xc8004e2028b0c282})}, - {false, -144, MType({0xa7768b356ba61e4b, 0xd00054802dc57139})}, - {false, -144, MType({0xd9e51a1849db73c1, 0xd8005b203342206f})}, - {false, -144, MType({0xc4ed8a9d907eb521, 0xe0006200392ad02e})}, - {false, -144, MType({0xb8a197dea928acd7, 0xe80069203f838080})}, - {false, -144, MType({0x65144cf7dcc72d3b, 0xf000708046503170})}, - {false, -144, MType({0xda5a1108890d9f6a, 0xf80078204d94e308})}, - {false, -143, MType({0xc4445999abe2ce2c, 0x800040002aaacaaa})}, - {false, -143, MType({0x1fdbbb4f3bffc832, 0x840044102ecb2431})}, - {false, -143, MType({0x97ff8f39ec91b4ee, 0x88004840332d7e1d})}, - {false, -143, MType({0x74bcfcf0b3f0a95d, 0x8c004c9037d3d876})}, - {false, -143, MType({0x2e21f80ca6813aff, 0x900051003cc03342})}, - {false, -143, MType({0x6c3d4629170ce87f, 0x9400559041f48e87})}, - {false, -143, MType({0x71e84e3b80a8881, 0x98005a404772ea4d})}, - {false, -143, MType({0x6d62fdcbdd6bec3, 0x9c005f104d3d469a})}, - {false, -143, MType({0xa375a6b701dc77c0, 0xa00064005355a375})}, - {false, -143, MType({0x450f331826ad6b05, 0xa400691059be00e7})}, - {false, -143, MType({0x83b60ea8bd0aa459, 0xa8006e4060785ef6})}, - {false, -143, MType({0x277e691469dd13f5, 0xac0073906786bdab})}, - {false, -143, MType({0x287d6e0a0d1e25eb, 0xb00079006eeb1d0d})}, - {false, -143, MType({0xaec94b3be9b060f5, 0xb4007e9076a77d24})}, - {false, -143, MType({0x1279365fce280cce, 0xb80084407ebdddfa})}, - {false, -143, MType({0xdba5732f3e83e04a, 0xbc008a1087303f95})}, - {false, -143, MType({0xc26759679ed5b754, 0xc00090009000a200})}, - {false, -143, MType({0xaed95aca5edb5109, 0xc400961099310543})}, - {false, -143, MType({0xb917091d2687160f, 0xc8009c40a2c36967})}, - {false, -143, MType({0x293d1c2a0378e75d, 0xcc00a290acb9ce76})}, - {false, -143, MType({0x776977bf9766f5a7, 0xd000a900b7163478})}, - {false, -143, MType({0x4bbb31b14776a18b, 0xd400af90c1da9b78})}, - {false, -143, MType({0x7e5297d76c8564ba, 0xd800b640cd09037f})}, - {false, -143, MType({0x1751360f8461c447, 0xdc00bd10d8a36c98})}, - {false, -143, MType({0x4ed9dc3c63f44c41, 0xe000c400e4abd6cc})}, - {false, -143, MType({0x8d10a4466a5894d5, 0xe400cb10f1244226})}, - {false, -143, MType({0x6a1af81bb4e6510e, 0xe800d240fe0eaeb1})}, - {false, -143, MType({0xae1f97b0542a677a, 0xec00d9910b6d1c77})}, - {false, -143, MType({0x51469efe81d014cc, 0xf000e10119418b84})}, - {false, -143, MType({0x7bb98c06d77a18b4, 0xf400e891278dfbe2})}, - {false, -143, MType({0x85a344d0868bed17, 0xf800f04136546d9d})}, - {false, -143, MType({0xf7301d6990e307cc, 0xfc00f8114596e0c0})}, - {false, -142, MType({0x4446eef38140138f, 0x80008000aaabaaac})}, - {false, -142, MType({0x10f5e43296105497, 0x82008408b2cbe5b8})}, - {false, -142, MType({0xedbd4f83ef63f730, 0x84008820bb2d2189})}, - {false, -142, MType({0xfeb654fd541c638e, 0x86008c48c3d05e27})}, - {false, -142, MType({0x7ffadeb8882f7674, 0x88009080ccb69b98})}, - {false, -142, MType({0xc5a59fd36bd44397, 0x8a0094c8d5e0d9e1})}, + {Sign::NEG, -142, MType({0xe39d3faf42340ed7, 0x89ff6b38d5de2622})}, + {Sign::NEG, -142, MType({0x7ff3326682c02485, 0x87ff6f80ccb40f16})}, + {Sign::NEG, -142, MType({0x5caf4fbe343cf928, 0x85ff73b8c3cdf731})}, + {Sign::NEG, -142, MType({0xcdb6e554348f7fe8, 0x83ff77e0bb2ade79})}, + {Sign::NEG, -142, MType({0xef009c2457de25d, 0x81ff7bf8b2c9c4f6})}, + {Sign::NEG, -143, MType({0x8883333c57b57c74, 0xffff000155535558})}, + {Sign::NEG, -143, MType({0xf32668f39c70d183, 0xfbff07f145931f44})}, + {Sign::NEG, -143, MType({0x459a73c6a6486fe3, 0xf7ff0fc13650e7bd})}, + {Sign::NEG, -143, MType({0x37b18cca7dd3a29f, 0xf3ff1771278aaecd})}, + {Sign::NEG, -143, MType({0x513f610d21bcfc78, 0xefff1f01193e7480})}, + {Sign::NEG, -143, MType({0xea190b95c0690b7b, 0xebff26710b6a38e1})}, + {Sign::NEG, -143, MType({0x2a150f64f0ad1743, 0xe7ff2dc0fe0bfbfd})}, + {Sign::NEG, -143, MType({0x90b5174e995e9d1, 0xe3ff34f0f121bddd})}, + {Sign::NEG, -143, MType({0x4ed512b9b93ea2bf, 0xdfff3c00e4a97e8c})}, + {Sign::NEG, -143, MType({0x934cea217ab794a2, 0xdbff42f0d8a13e15})}, + {Sign::NEG, -143, MType({0x3e4ebe948afd2c76, 0xd7ff49c0cd06fc83})}, + {Sign::NEG, -143, MType({0x87b7c0f5bcfee2e1, 0xd3ff5070c1d8b9df})}, + {Sign::NEG, -143, MType({0x776666228cb6371b, 0xcfff5700b7147634})}, + {Sign::NEG, -143, MType({0xe53a60f3514db358, 0xcbff5d70acb8318b})}, + {Sign::NEG, -143, MType({0x79149c3b6e57fa86, 0xc7ff63c0a2c1ebef})}, + {Sign::NEG, -143, MType({0xaad734c98416df2a, 0xc3ff69f0992fa568})}, + {Sign::NEG, -143, MType({0xc26573679ed28334, 0xbfff70008fff5e00})}, + {Sign::NEG, -143, MType({0xd7a3c6db6540809f, 0xbbff75f0872f15c0})}, + {Sign::NEG, -143, MType({0xd277bde645fb1aad, 0xb7ff7bc07ebcccb1})}, + {Sign::NEG, -143, MType({0x6ac80145a4087793, 0xb3ff817076a682dc})}, + {Sign::NEG, -143, MType({0x287c4db30271e265, 0xafff87006eea3849})}, + {Sign::NEG, -143, MType({0x637d6de42eeb151e, 0xabff8c706785ed00})}, + {Sign::NEG, -143, MType({0x43b5348b6b898a8c, 0xa7ff91c06077a10a})}, + {Sign::NEG, -143, MType({0xc10e7657978bd7f6, 0xa3ff96f059bd546e})}, + {Sign::NEG, -143, MType({0xa37503f457310e59, 0x9fff9c0053550735})}, + {Sign::NEG, -143, MType({0x82d5a40a3aa022ff, 0x9bffa0f04d3cb966})}, + {Sign::NEG, -143, MType({0xc71e0d3ee3df5f4d, 0x97ffa5c047726b08})}, + {Sign::NEG, -143, MType({0xa83ce0352bdbd79b, 0x93ffaa7041f41c23})}, + {Sign::NEG, -143, MType({0x2e21a18d4680e8e4, 0x8fffaf003cbfccbe})}, + {Sign::NEG, -143, MType({0x30bcb3e4e5dfbd28, 0x8bffb37037d37cdf})}, + {Sign::NEG, -143, MType({0x57ff51d75c66d64a, 0x87ffb7c0332d2c8d})}, + {Sign::NEG, -143, MType({0x1bdb87fdbe299f43, 0x83ffbbf02ecadbcf})}, + {Sign::NEG, -144, MType({0x88885dde02700703, 0xffff800055551555})}, + {Sign::NEG, -144, MType({0xd259ca803a0c1870, 0xf7ff87e04d94724c})}, + {Sign::NEG, -144, MType({0xe514130851c7070a, 0xefff8f80464fce8f})}, + {Sign::NEG, -144, MType({0x30a16898f3073a64, 0xe7ff96e03f832a2a})}, + {Sign::NEG, -144, MType({0xc4ed64517b2949ce, 0xdfff9e00392a8526})}, + {Sign::NEG, -144, MType({0x51e4fb4e32cf6350, 0xd7ffa4e03341df90})}, + {Sign::NEG, -144, MType({0x277672a88350bcce, 0xcfffab802dc53971})}, + {Sign::NEG, -144, MType({0x359153772a490f06, 0xc7ffb1e028b092d3})}, + {Sign::NEG, -144, MType({0xc265ece6b481a0e, 0xbfffb80023ffebc0})}, + {Sign::NEG, -144, MType({0xdb2781c03fa132f6, 0xb7ffbde01faf4440})}, + {Sign::NEG, -144, MType({0x7287c95c845ada33, 0xafffc3801bba9c5e})}, + {Sign::NEG, -144, MType({0x423b56b1263e5a77, 0xa7ffc8e0181df421})}, + {Sign::NEG, -144, MType({0x5a3752ca4c076fa3, 0x9fffce0014d54b91})}, + {Sign::NEG, -144, MType({0x6a71e2b27eb3f573, 0x97ffd2e011dca2b6})}, + {Sign::NEG, -144, MType({0xc2e21b72cff39d8f, 0x8fffd7800f2ff997})}, + {Sign::NEG, -144, MType({0x537ff612feb7ac9e, 0x87ffdbe00ccb503c})}, + {Sign::NEG, -145, MType({0x5888873333c57c18, 0xffffc00015554d55})}, + {Sign::NEG, -145, MType({0xfa51421842311c42, 0xefffc7c01193f9d1})}, + {Sign::NEG, -145, MType({0x2c4ed6de475b942c, 0xdfffcf000e4aa5fa})}, + {Sign::NEG, -145, MType({0xce77678cbb6fcb88, 0xcfffd5c00b7151d8})}, + {Sign::NEG, -145, MType({0xc26629a679ed3b, 0xbfffdc0008fffd78})}, + {Sign::NEG, -145, MType({0x23287cb9d3072728, 0xafffe1c006eea8e1})}, + {Sign::NEG, -145, MType({0xd5a37540fd057315, 0x9fffe7000535541c})}, + {Sign::NEG, -145, MType({0xf82e21c1fce36810, 0x8fffebc003cbff32})}, + {Sign::NEG, -146, MType({0x5588887ddde02702, 0xffffe00005555455})}, + {Sign::NEG, -146, MType({0x9ac4ed72adf5b295, 0xdfffe7800392aa14})}, + {Sign::NEG, -146, MType({0xc26648066b482, 0xbfffee00023fffaf})}, + {Sign::NEG, -146, MType({0x455a3754b292c077, 0x9ffff380014d552e})}, + {Sign::NEG, -147, MType({0x5558888833333c58, 0xfffff00001555535})}, + {Sign::NEG, -147, MType({0xe000c2665736679f, 0xbffff700008ffff5})}, + {Sign::NEG, -148, MType({0x5555888885ddde02, 0xfffff80000555551})}, + {Sign::NEG, -149, MType({0xd555588888733334, 0xfffffc0000155554})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -148, MType({0xeaaaac44444eeeef, 0x80000200000aaaaa})}, + {Sign::POS, -147, MType({0xaaaac444459999ac, 0x80000400002aaaac})}, + {Sign::POS, -147, MType({0x2000c2667596679f, 0xc00009000090000a})}, + {Sign::POS, -146, MType({0xaaac44446eeef381, 0x8000080000aaaaba})}, + {Sign::POS, -146, MType({0x655a3755f81815cc, 0xa0000c80014d557c})}, + {Sign::POS, -146, MType({0xc26684c66b482, 0xc000120002400051})}, + {Sign::POS, -146, MType({0xbac4ed7c40fb07eb, 0xe00018800392ab40})}, + {Sign::POS, -145, MType({0xaac44449999abe2c, 0x8000100002aaab2a})}, + {Sign::POS, -145, MType({0x82e21d79cbb6812, 0x9000144003cc00cd})}, + {Sign::POS, -145, MType({0xd5a37569adb01dc3, 0xa00019000535568d})}, + {Sign::POS, -145, MType({0x33287d01e8c9d1d9, 0xb0001e4006eeac74})}, + {Sign::POS, -145, MType({0xc266a32679ed48, 0xc000240009000288})}, + {Sign::POS, -145, MType({0xde77685122b2764b, 0xd0002a400b7158d1})}, + {Sign::POS, -145, MType({0x2c4ed810a8063f03, 0xe00031000e4aaf5b})}, + {Sign::POS, -145, MType({0xa5143e7be891c8f, 0xf00038401194062e})}, + {Sign::POS, -144, MType({0xac4444eeef3813a1, 0x800020000aaaaeaa})}, + {Sign::POS, -144, MType({0x5b7ff7fe1339025b, 0x880024200ccb5a6e})}, + {Sign::POS, -144, MType({0x42e21e26caf39e33, 0x900028800f300668})}, + {Sign::POS, -144, MType({0xf271e66fa5554bc6, 0x98002d2011dcb29e})}, + {Sign::POS, -144, MType({0x5a3757e0615cc676, 0xa000320014d55f19})}, + {Sign::POS, -144, MType({0xca3b5d8210ca5cab, 0xa8003720181e0bde})}, + {Sign::POS, -144, MType({0xf287d25f3cb032bb, 0xb0003c801bbab8f6})}, + {Sign::POS, -144, MType({0xe3278d840be28cdb, 0xb80042201faf6669})}, + {Sign::POS, -144, MType({0xc266dfe6b482076, 0xc000480024001440})}, + {Sign::POS, -144, MType({0x3d9166de380a6d3d, 0xc8004e2028b0c282})}, + {Sign::POS, -144, MType({0xa7768b356ba61e4b, 0xd00054802dc57139})}, + {Sign::POS, -144, MType({0xd9e51a1849db73c1, 0xd8005b203342206f})}, + {Sign::POS, -144, MType({0xc4ed8a9d907eb521, 0xe0006200392ad02e})}, + {Sign::POS, -144, MType({0xb8a197dea928acd7, 0xe80069203f838080})}, + {Sign::POS, -144, MType({0x65144cf7dcc72d3b, 0xf000708046503170})}, + {Sign::POS, -144, MType({0xda5a1108890d9f6a, 0xf80078204d94e308})}, + {Sign::POS, -143, MType({0xc4445999abe2ce2c, 0x800040002aaacaaa})}, + {Sign::POS, -143, MType({0x1fdbbb4f3bffc832, 0x840044102ecb2431})}, + {Sign::POS, -143, MType({0x97ff8f39ec91b4ee, 0x88004840332d7e1d})}, + {Sign::POS, -143, MType({0x74bcfcf0b3f0a95d, 0x8c004c9037d3d876})}, + {Sign::POS, -143, MType({0x2e21f80ca6813aff, 0x900051003cc03342})}, + {Sign::POS, -143, MType({0x6c3d4629170ce87f, 0x9400559041f48e87})}, + {Sign::POS, -143, MType({0x71e84e3b80a8881, 0x98005a404772ea4d})}, + {Sign::POS, -143, MType({0x6d62fdcbdd6bec3, 0x9c005f104d3d469a})}, + {Sign::POS, -143, MType({0xa375a6b701dc77c0, 0xa00064005355a375})}, + {Sign::POS, -143, MType({0x450f331826ad6b05, 0xa400691059be00e7})}, + {Sign::POS, -143, MType({0x83b60ea8bd0aa459, 0xa8006e4060785ef6})}, + {Sign::POS, -143, MType({0x277e691469dd13f5, 0xac0073906786bdab})}, + {Sign::POS, -143, MType({0x287d6e0a0d1e25eb, 0xb00079006eeb1d0d})}, + {Sign::POS, -143, MType({0xaec94b3be9b060f5, 0xb4007e9076a77d24})}, + {Sign::POS, -143, MType({0x1279365fce280cce, 0xb80084407ebdddfa})}, + {Sign::POS, -143, MType({0xdba5732f3e83e04a, 0xbc008a1087303f95})}, + {Sign::POS, -143, MType({0xc26759679ed5b754, 0xc00090009000a200})}, + {Sign::POS, -143, MType({0xaed95aca5edb5109, 0xc400961099310543})}, + {Sign::POS, -143, MType({0xb917091d2687160f, 0xc8009c40a2c36967})}, + {Sign::POS, -143, MType({0x293d1c2a0378e75d, 0xcc00a290acb9ce76})}, + {Sign::POS, -143, MType({0x776977bf9766f5a7, 0xd000a900b7163478})}, + {Sign::POS, -143, MType({0x4bbb31b14776a18b, 0xd400af90c1da9b78})}, + {Sign::POS, -143, MType({0x7e5297d76c8564ba, 0xd800b640cd09037f})}, + {Sign::POS, -143, MType({0x1751360f8461c447, 0xdc00bd10d8a36c98})}, + {Sign::POS, -143, MType({0x4ed9dc3c63f44c41, 0xe000c400e4abd6cc})}, + {Sign::POS, -143, MType({0x8d10a4466a5894d5, 0xe400cb10f1244226})}, + {Sign::POS, -143, MType({0x6a1af81bb4e6510e, 0xe800d240fe0eaeb1})}, + {Sign::POS, -143, MType({0xae1f97b0542a677a, 0xec00d9910b6d1c77})}, + {Sign::POS, -143, MType({0x51469efe81d014cc, 0xf000e10119418b84})}, + {Sign::POS, -143, MType({0x7bb98c06d77a18b4, 0xf400e891278dfbe2})}, + {Sign::POS, -143, MType({0x85a344d0868bed17, 0xf800f04136546d9d})}, + {Sign::POS, -143, MType({0xf7301d6990e307cc, 0xfc00f8114596e0c0})}, + {Sign::POS, -142, MType({0x4446eef38140138f, 0x80008000aaabaaac})}, + {Sign::POS, -142, MType({0x10f5e43296105497, 0x82008408b2cbe5b8})}, + {Sign::POS, -142, MType({0xedbd4f83ef63f730, 0x84008820bb2d2189})}, + {Sign::POS, -142, MType({0xfeb654fd541c638e, 0x86008c48c3d05e27})}, + {Sign::POS, -142, MType({0x7ffadeb8882f7674, 0x88009080ccb69b98})}, + {Sign::POS, -142, MType({0xc5a59fd36bd44397, 0x8a0094c8d5e0d9e1})}, }; // Minimax polynomial generated by Sollya with: @@ -809,10 +810,10 @@ const Float128 LOG_R3[139] = { // > dirtyinfnorm(log(1 + x)/x - 1 - x*P, [-0x1.01928p-22 , 0x1p-22]); // 0x1.ce1e...p-116 const Float128 BIG_COEFFS[4]{ - {false, -130, MType({0x7ed78465d460315b, 0xccccccd74818e397})}, - {true, -129, MType({0xc6388a23871ce156, 0x80000000000478b0})}, - {false, -129, MType({0xaa807bd867763262, 0xaaaaaaaaaaaaaaaa})}, - {true, -128, MType({0x0, 0x8000000000000000})}, + {Sign::POS, -130, MType({0x7ed78465d460315b, 0xccccccd74818e397})}, + {Sign::NEG, -129, MType({0xc6388a23871ce156, 0x80000000000478b0})}, + {Sign::POS, -129, MType({0xaa807bd867763262, 0xaaaaaaaaaaaaaaaa})}, + {Sign::NEG, -128, MType({0x0, 0x8000000000000000})}, }; LIBC_INLINE double log1p_accurate(int e_x, int index, diff --git a/libc/src/math/generic/log2.cpp b/libc/src/math/generic/log2.cpp index 261078f7107426..5b7fb65d773851 100644 --- a/libc/src/math/generic/log2.cpp +++ b/libc/src/math/generic/log2.cpp @@ -24,6 +24,7 @@ namespace LIBC_NAMESPACE { // 128-bit precision dyadic floating point numbers. using Float128 = typename fputil::DyadicFloat<128>; using MType = typename Float128::MantissaType; +using Sign = fputil::Sign; namespace { @@ -170,652 +171,652 @@ const LogRR LOG2_TABLE = { // for i in range(1, 127): // r = 2^-8 * ceil( 2^8 * (1 - 2^(-8)) / (1 + i*2^(-7)) ); // s, m, e = RealField(128)(r).log2().sign_mantissa_exponent(); - // print("{false,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) % - // 2^64), + // print("{Sign::POS,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) + // % 2^64), // "})},"); /* .step_1 = */ { - {false, 0, MType(0)}, - {false, -134, MType({0xe8c251630adb856a, 0xb963dd107b993ada})}, - {false, -133, MType({0xa41b08fbe05f82d0, 0xba1f7430f9aab1b2})}, - {false, -132, MType({0x1f06c085bc1b865d, 0x8c25c7262b57c149})}, - {false, -132, MType({0x2e1c07f0438ebac0, 0xbb9ca64ecac6aaef})}, - {false, -132, MType({0xaacc0e21d6541224, 0xeb75e8f8ff5ff022})}, - {false, -131, MType({0x31514aef39ce6303, 0x8dd9953002a4e866})}, - {false, -131, MType({0x50799beaaab2940c, 0xa62b07f3457c4070})}, - {false, -131, MType({0xda288fc615a727dc, 0xbeb024b67dda6339})}, - {false, -131, MType({0x22dbbaced44516ce, 0xcb0657cd5dbe4f6f})}, - {false, -131, MType({0xd939dceecdd9ce05, 0xe3da945b878e27d0})}, - {false, -131, MType({0x9596a8e2e84c8f45, 0xfce4aee0e88b2749})}, - {false, -130, MType({0x243efd9325954cfe, 0x84bf1c673032495d})}, - {false, -130, MType({0x91d79938e7226384, 0x916d6e1559a4b696})}, - {false, -130, MType({0x22563c9ed9462091, 0x9e37db2866f2850b})}, - {false, -130, MType({0x3a53ca1181015ada, 0xa4a7c31dc6f9a5d5})}, - {false, -130, MType({0x3eb8023eed65d601, 0xb19d45fa1be70855})}, - {false, -130, MType({0xce5cabbd2d753d9b, 0xb823018e3cfc25f0})}, - {false, -130, MType({0x54dbf16fb0695ee3, 0xc544c055fde99333})}, - {false, -130, MType({0x5196a85a067c6739, 0xcbe0e589e3f6042d})}, - {false, -130, MType({0xf349845e48955078, 0xd930124bea9a2c66})}, - {false, -130, MType({0x815ef705cfaef035, 0xdfe33d3fffa66037})}, - {false, -130, MType({0x2ba704dcaa76f41d, 0xed61169f220e97f2})}, - {false, -130, MType({0x2062f36bc14d0d93, 0xf42be9e9b09b3def})}, - {false, -129, MType({0x132880194144b02b, 0x80ecdde7d30ea2ed})}, - {false, -129, MType({0x54880de63812fd49, 0x845e706cafd1bf61})}, - {false, -129, MType({0xa87c02eaf36e2c29, 0x8b4e029b1f8ac391})}, - {false, -129, MType({0x9804237ec8d9431d, 0x8ecc164ea93841ae})}, - {false, -129, MType({0x20f81ca95d9e7968, 0x924e69589e6b6268})}, - {false, -129, MType({0x124bc6f1acf95dc4, 0x995ff71b8773432d})}, - {false, -129, MType({0x5a5e8e21bff3336b, 0x9cef470aacfb7bf9})}, - {false, -129, MType({0x4e53fa3329f65894, 0xa08300be1f651473})}, - {false, -129, MType({0x2742d7296a39eed6, 0xa7b7dd96762cc3c7})}, - {false, -129, MType({0xf359c5544bc5e134, 0xab591735abc724e4})}, - {false, -129, MType({0x6b6c874dd96e1d75, 0xaefee78f75707221})}, - {false, -129, MType({0x21006678c0a5c390, 0xb2a95a4cc313bb59})}, - {false, -129, MType({0x6d40900b25024b32, 0xb6587b432e47501b})}, - {false, -129, MType({0x89e2eb553b279b3d, 0xbdc4f8167955698f})}, - {false, -129, MType({0xd58525aad392ca50, 0xc1826c8608fe9951})}, - {false, -129, MType({0x54dbf16fb0695ee3, 0xc544c055fde99333})}, - {false, -129, MType({0x88d5eae3326327bb, 0xc90c004926e9dbfb})}, - {false, -129, MType({0x46dfa05bddfded8c, 0xccd83954b6359379})}, - {false, -129, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, - {false, -129, MType({0x7b11f1c5160c515c, 0xd85b3fa7a3407fa8})}, - {false, -129, MType({0x1339e5677ec44dd0, 0xdc3be2bd8d837f7f})}, - {false, -129, MType({0xea2b8c7bb0ee9c8b, 0xe021c2cf17ed9bdb})}, - {false, -129, MType({0xaec562332791fe38, 0xe40cee16a2ff21c4})}, - {false, -129, MType({0x71682ebacca79cfa, 0xe7fd7308d6895b14})}, - {false, -129, MType({0xa5ad5ce9fb5a7bb6, 0xebf36055e1abc61e})}, - {false, -129, MType({0x3225190531a852c5, 0xefeec4eac371584e})}, - {false, -129, MType({0xda8ad649da21eab0, 0xf3efaff29c559a77})}, - {false, -129, MType({0x4c3e2ea7c15c3d1e, 0xf7f630d808fc2ada})}, - {false, -129, MType({0xbcb9bfa9852e0d35, 0xfc02574686680cc6})}, - {false, -128, MType({0xce032f41d1e774e8, 0x800a1995f0019518})}, - {false, -128, MType({0x9b39ffeebc29372a, 0x8215ea5cd3e4c4c7})}, - {false, -128, MType({0x87f95f1befb6f806, 0x8424a6335c777e0b})}, - {false, -128, MType({0xb987b42e3bb332a1, 0x8636557862acb7ce})}, - {false, -128, MType({0x139a7ba83bf2d136, 0x884b00aef726cec5})}, - {false, -128, MType({0x50799beaaab2941, 0x8a62b07f3457c407})}, - {false, -128, MType({0x8bd744617e9b7d52, 0x8c7d6db7169e0cda})}, - {false, -128, MType({0x46ad444333ceb10, 0x8e9b414b5a92a606})}, - {false, -128, MType({0xef4c737fba4f5d66, 0x90bc345861bf3d52})}, - {false, -128, MType({0xae441c09d761c549, 0x92e050231df57d6f})}, - {false, -128, MType({0x6e36aa9ce90a3879, 0x95079e1a0382dc79})}, - {false, -128, MType({0xefca1a184e93809, 0x973227d6027ebd8a})}, - {false, -128, MType({0xefca1a184e93809, 0x973227d6027ebd8a})}, - {false, -128, MType({0x124bc6f1acf95dc4, 0x995ff71b8773432d})}, - {false, -128, MType({0x352bea51e58ea9e8, 0x9b9115db83a3dd2d})}, - {false, -128, MType({0x266d6cdc959153bc, 0x9dc58e347d37696d})}, - {false, -128, MType({0x4527d82c8214ddca, 0x9ffd6a73a78eaf35})}, - {false, -128, MType({0x404cabb76d600e3c, 0xa238b5160413106e})}, - {false, -128, MType({0x404cabb76d600e3c, 0xa238b5160413106e})}, - {false, -128, MType({0xcab7d2ec23f0eef3, 0xa47778c98bcc86a1})}, - {false, -128, MType({0x761c48dd859de2d3, 0xa6b9c06e6211646b})}, - {false, -128, MType({0x7fd3b7d7e5d148bb, 0xa8ff971810a5e181})}, - {false, -128, MType({0xc27c6780d92b4d11, 0xab49080ecda53208})}, - {false, -128, MType({0xdb502402c94092cd, 0xad961ed0cb91d406})}, - {false, -128, MType({0xdb502402c94092cd, 0xad961ed0cb91d406})}, - {false, -128, MType({0x3432ef6b732b6843, 0xafe6e71393eeda29})}, - {false, -128, MType({0xbb324da7e046e792, 0xb23b6cc56cc84c99})}, - {false, -128, MType({0xb21709ce430c8e24, 0xb493bc0ec9954243})}, - {false, -128, MType({0xb21709ce430c8e24, 0xb493bc0ec9954243})}, - {false, -128, MType({0xe91ad16ecff10111, 0xb6efe153c7e319f6})}, - {false, -128, MType({0xce31e481cd797e79, 0xb94fe935b83e3eb5})}, - {false, -128, MType({0xda3e961a96c580fa, 0xbbb3e094b3d228d3})}, - {false, -128, MType({0xda3e961a96c580fa, 0xbbb3e094b3d228d3})}, - {false, -128, MType({0xf396598aae91499a, 0xbe1bd4913f3fda43})}, - {false, -128, MType({0xae4cceb0f621941b, 0xc087d28dfb2febb8})}, - {false, -128, MType({0xae4cceb0f621941b, 0xc087d28dfb2febb8})}, - {false, -128, MType({0x6c1855c42078f81b, 0xc2f7e831632b6670})}, - {false, -128, MType({0x169535fb8bf577c8, 0xc56c23679b4d206e})}, - {false, -128, MType({0x169535fb8bf577c8, 0xc56c23679b4d206e})}, - {false, -128, MType({0x3b24cecc60217942, 0xc7e492644d64237e})}, - {false, -128, MType({0x3dc2687fcf939696, 0xca6143a49626d820})}, - {false, -128, MType({0x3dc2687fcf939696, 0xca6143a49626d820})}, - {false, -128, MType({0xa62e6add1a901a0, 0xcce245f1031e41fa})}, - {false, -128, MType({0x5bb6e23138ad51e1, 0xcf67a85fa1f89a04})}, - {false, -128, MType({0x5bb6e23138ad51e1, 0xcf67a85fa1f89a04})}, - {false, -128, MType({0x7fc60a5103092bae, 0xd1f17a5621fb01ac})}, - {false, -128, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, - {false, -128, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, - {false, -128, MType({0x8e2d7d378127d823, 0xd712ac0cf811659d})}, - {false, -128, MType({0x5c1a7f14b168b365, 0xd9aa2c3b0ea3cbc1})}, - {false, -128, MType({0x5c1a7f14b168b365, 0xd9aa2c3b0ea3cbc1})}, - {false, -128, MType({0xb7579f0f8d3d514b, 0xdc465cd155a90942})}, - {false, -128, MType({0xb7579f0f8d3d514b, 0xdc465cd155a90942})}, - {false, -128, MType({0xb087205eb55aea85, 0xdee74ee64b0c38d3})}, - {false, -128, MType({0x424a2623d60dfb16, 0xe18d13ee805a4de3})}, - {false, -128, MType({0x424a2623d60dfb16, 0xe18d13ee805a4de3})}, - {false, -128, MType({0x4d3a591ae6854787, 0xe437bdbf5254459c})}, - {false, -128, MType({0x4d3a591ae6854787, 0xe437bdbf5254459c})}, - {false, -128, MType({0x8dcdb6b24c5c5cdf, 0xe6e75e91b9cca551})}, - {false, -128, MType({0x33ac7d9ebba8a53c, 0xe99c090536ece983})}, - {false, -128, MType({0x33ac7d9ebba8a53c, 0xe99c090536ece983})}, - {false, -128, MType({0xfb2eede4b59d8959, 0xec55d022d80e3d27})}, - {false, -128, MType({0xfb2eede4b59d8959, 0xec55d022d80e3d27})}, - {false, -128, MType({0x308b454666de8f99, 0xef14c7605d60654c})}, - {false, -128, MType({0x308b454666de8f99, 0xef14c7605d60654c})}, - {false, -128, MType({0x8383cb0ce23bebd4, 0xf1d902a37aaa5085})}, - {false, -128, MType({0x8383cb0ce23bebd4, 0xf1d902a37aaa5085})}, - {false, -128, MType({0x64fc87b4a41f7b70, 0xf4a2964538813c67})}, - {false, -128, MType({0x64fc87b4a41f7b70, 0xf4a2964538813c67})}, - {false, -128, MType({0x3f5d7d82b65c5686, 0xf77197157665f689})}, - {false, -128, MType({0x3f5d7d82b65c5686, 0xf77197157665f689})}, - {false, -128, MType({0x6476077b9fbd41ae, 0xfa461a5e8f4b759d})}, - {false, -128, MType({0x6476077b9fbd41ae, 0xfa461a5e8f4b759d})}, - {false, -128, MType({0xe3909ffd0d61778, 0xfd2035e9221ef5d0})}, - {false, 0, MType(0)}, + {Sign::POS, 0, MType(0)}, + {Sign::POS, -134, MType({0xe8c251630adb856a, 0xb963dd107b993ada})}, + {Sign::POS, -133, MType({0xa41b08fbe05f82d0, 0xba1f7430f9aab1b2})}, + {Sign::POS, -132, MType({0x1f06c085bc1b865d, 0x8c25c7262b57c149})}, + {Sign::POS, -132, MType({0x2e1c07f0438ebac0, 0xbb9ca64ecac6aaef})}, + {Sign::POS, -132, MType({0xaacc0e21d6541224, 0xeb75e8f8ff5ff022})}, + {Sign::POS, -131, MType({0x31514aef39ce6303, 0x8dd9953002a4e866})}, + {Sign::POS, -131, MType({0x50799beaaab2940c, 0xa62b07f3457c4070})}, + {Sign::POS, -131, MType({0xda288fc615a727dc, 0xbeb024b67dda6339})}, + {Sign::POS, -131, MType({0x22dbbaced44516ce, 0xcb0657cd5dbe4f6f})}, + {Sign::POS, -131, MType({0xd939dceecdd9ce05, 0xe3da945b878e27d0})}, + {Sign::POS, -131, MType({0x9596a8e2e84c8f45, 0xfce4aee0e88b2749})}, + {Sign::POS, -130, MType({0x243efd9325954cfe, 0x84bf1c673032495d})}, + {Sign::POS, -130, MType({0x91d79938e7226384, 0x916d6e1559a4b696})}, + {Sign::POS, -130, MType({0x22563c9ed9462091, 0x9e37db2866f2850b})}, + {Sign::POS, -130, MType({0x3a53ca1181015ada, 0xa4a7c31dc6f9a5d5})}, + {Sign::POS, -130, MType({0x3eb8023eed65d601, 0xb19d45fa1be70855})}, + {Sign::POS, -130, MType({0xce5cabbd2d753d9b, 0xb823018e3cfc25f0})}, + {Sign::POS, -130, MType({0x54dbf16fb0695ee3, 0xc544c055fde99333})}, + {Sign::POS, -130, MType({0x5196a85a067c6739, 0xcbe0e589e3f6042d})}, + {Sign::POS, -130, MType({0xf349845e48955078, 0xd930124bea9a2c66})}, + {Sign::POS, -130, MType({0x815ef705cfaef035, 0xdfe33d3fffa66037})}, + {Sign::POS, -130, MType({0x2ba704dcaa76f41d, 0xed61169f220e97f2})}, + {Sign::POS, -130, MType({0x2062f36bc14d0d93, 0xf42be9e9b09b3def})}, + {Sign::POS, -129, MType({0x132880194144b02b, 0x80ecdde7d30ea2ed})}, + {Sign::POS, -129, MType({0x54880de63812fd49, 0x845e706cafd1bf61})}, + {Sign::POS, -129, MType({0xa87c02eaf36e2c29, 0x8b4e029b1f8ac391})}, + {Sign::POS, -129, MType({0x9804237ec8d9431d, 0x8ecc164ea93841ae})}, + {Sign::POS, -129, MType({0x20f81ca95d9e7968, 0x924e69589e6b6268})}, + {Sign::POS, -129, MType({0x124bc6f1acf95dc4, 0x995ff71b8773432d})}, + {Sign::POS, -129, MType({0x5a5e8e21bff3336b, 0x9cef470aacfb7bf9})}, + {Sign::POS, -129, MType({0x4e53fa3329f65894, 0xa08300be1f651473})}, + {Sign::POS, -129, MType({0x2742d7296a39eed6, 0xa7b7dd96762cc3c7})}, + {Sign::POS, -129, MType({0xf359c5544bc5e134, 0xab591735abc724e4})}, + {Sign::POS, -129, MType({0x6b6c874dd96e1d75, 0xaefee78f75707221})}, + {Sign::POS, -129, MType({0x21006678c0a5c390, 0xb2a95a4cc313bb59})}, + {Sign::POS, -129, MType({0x6d40900b25024b32, 0xb6587b432e47501b})}, + {Sign::POS, -129, MType({0x89e2eb553b279b3d, 0xbdc4f8167955698f})}, + {Sign::POS, -129, MType({0xd58525aad392ca50, 0xc1826c8608fe9951})}, + {Sign::POS, -129, MType({0x54dbf16fb0695ee3, 0xc544c055fde99333})}, + {Sign::POS, -129, MType({0x88d5eae3326327bb, 0xc90c004926e9dbfb})}, + {Sign::POS, -129, MType({0x46dfa05bddfded8c, 0xccd83954b6359379})}, + {Sign::POS, -129, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, + {Sign::POS, -129, MType({0x7b11f1c5160c515c, 0xd85b3fa7a3407fa8})}, + {Sign::POS, -129, MType({0x1339e5677ec44dd0, 0xdc3be2bd8d837f7f})}, + {Sign::POS, -129, MType({0xea2b8c7bb0ee9c8b, 0xe021c2cf17ed9bdb})}, + {Sign::POS, -129, MType({0xaec562332791fe38, 0xe40cee16a2ff21c4})}, + {Sign::POS, -129, MType({0x71682ebacca79cfa, 0xe7fd7308d6895b14})}, + {Sign::POS, -129, MType({0xa5ad5ce9fb5a7bb6, 0xebf36055e1abc61e})}, + {Sign::POS, -129, MType({0x3225190531a852c5, 0xefeec4eac371584e})}, + {Sign::POS, -129, MType({0xda8ad649da21eab0, 0xf3efaff29c559a77})}, + {Sign::POS, -129, MType({0x4c3e2ea7c15c3d1e, 0xf7f630d808fc2ada})}, + {Sign::POS, -129, MType({0xbcb9bfa9852e0d35, 0xfc02574686680cc6})}, + {Sign::POS, -128, MType({0xce032f41d1e774e8, 0x800a1995f0019518})}, + {Sign::POS, -128, MType({0x9b39ffeebc29372a, 0x8215ea5cd3e4c4c7})}, + {Sign::POS, -128, MType({0x87f95f1befb6f806, 0x8424a6335c777e0b})}, + {Sign::POS, -128, MType({0xb987b42e3bb332a1, 0x8636557862acb7ce})}, + {Sign::POS, -128, MType({0x139a7ba83bf2d136, 0x884b00aef726cec5})}, + {Sign::POS, -128, MType({0x50799beaaab2941, 0x8a62b07f3457c407})}, + {Sign::POS, -128, MType({0x8bd744617e9b7d52, 0x8c7d6db7169e0cda})}, + {Sign::POS, -128, MType({0x46ad444333ceb10, 0x8e9b414b5a92a606})}, + {Sign::POS, -128, MType({0xef4c737fba4f5d66, 0x90bc345861bf3d52})}, + {Sign::POS, -128, MType({0xae441c09d761c549, 0x92e050231df57d6f})}, + {Sign::POS, -128, MType({0x6e36aa9ce90a3879, 0x95079e1a0382dc79})}, + {Sign::POS, -128, MType({0xefca1a184e93809, 0x973227d6027ebd8a})}, + {Sign::POS, -128, MType({0xefca1a184e93809, 0x973227d6027ebd8a})}, + {Sign::POS, -128, MType({0x124bc6f1acf95dc4, 0x995ff71b8773432d})}, + {Sign::POS, -128, MType({0x352bea51e58ea9e8, 0x9b9115db83a3dd2d})}, + {Sign::POS, -128, MType({0x266d6cdc959153bc, 0x9dc58e347d37696d})}, + {Sign::POS, -128, MType({0x4527d82c8214ddca, 0x9ffd6a73a78eaf35})}, + {Sign::POS, -128, MType({0x404cabb76d600e3c, 0xa238b5160413106e})}, + {Sign::POS, -128, MType({0x404cabb76d600e3c, 0xa238b5160413106e})}, + {Sign::POS, -128, MType({0xcab7d2ec23f0eef3, 0xa47778c98bcc86a1})}, + {Sign::POS, -128, MType({0x761c48dd859de2d3, 0xa6b9c06e6211646b})}, + {Sign::POS, -128, MType({0x7fd3b7d7e5d148bb, 0xa8ff971810a5e181})}, + {Sign::POS, -128, MType({0xc27c6780d92b4d11, 0xab49080ecda53208})}, + {Sign::POS, -128, MType({0xdb502402c94092cd, 0xad961ed0cb91d406})}, + {Sign::POS, -128, MType({0xdb502402c94092cd, 0xad961ed0cb91d406})}, + {Sign::POS, -128, MType({0x3432ef6b732b6843, 0xafe6e71393eeda29})}, + {Sign::POS, -128, MType({0xbb324da7e046e792, 0xb23b6cc56cc84c99})}, + {Sign::POS, -128, MType({0xb21709ce430c8e24, 0xb493bc0ec9954243})}, + {Sign::POS, -128, MType({0xb21709ce430c8e24, 0xb493bc0ec9954243})}, + {Sign::POS, -128, MType({0xe91ad16ecff10111, 0xb6efe153c7e319f6})}, + {Sign::POS, -128, MType({0xce31e481cd797e79, 0xb94fe935b83e3eb5})}, + {Sign::POS, -128, MType({0xda3e961a96c580fa, 0xbbb3e094b3d228d3})}, + {Sign::POS, -128, MType({0xda3e961a96c580fa, 0xbbb3e094b3d228d3})}, + {Sign::POS, -128, MType({0xf396598aae91499a, 0xbe1bd4913f3fda43})}, + {Sign::POS, -128, MType({0xae4cceb0f621941b, 0xc087d28dfb2febb8})}, + {Sign::POS, -128, MType({0xae4cceb0f621941b, 0xc087d28dfb2febb8})}, + {Sign::POS, -128, MType({0x6c1855c42078f81b, 0xc2f7e831632b6670})}, + {Sign::POS, -128, MType({0x169535fb8bf577c8, 0xc56c23679b4d206e})}, + {Sign::POS, -128, MType({0x169535fb8bf577c8, 0xc56c23679b4d206e})}, + {Sign::POS, -128, MType({0x3b24cecc60217942, 0xc7e492644d64237e})}, + {Sign::POS, -128, MType({0x3dc2687fcf939696, 0xca6143a49626d820})}, + {Sign::POS, -128, MType({0x3dc2687fcf939696, 0xca6143a49626d820})}, + {Sign::POS, -128, MType({0xa62e6add1a901a0, 0xcce245f1031e41fa})}, + {Sign::POS, -128, MType({0x5bb6e23138ad51e1, 0xcf67a85fa1f89a04})}, + {Sign::POS, -128, MType({0x5bb6e23138ad51e1, 0xcf67a85fa1f89a04})}, + {Sign::POS, -128, MType({0x7fc60a5103092bae, 0xd1f17a5621fb01ac})}, + {Sign::POS, -128, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, + {Sign::POS, -128, MType({0xbfe9dbebf2e8a45e, 0xd47fcb8c0852f0c0})}, + {Sign::POS, -128, MType({0x8e2d7d378127d823, 0xd712ac0cf811659d})}, + {Sign::POS, -128, MType({0x5c1a7f14b168b365, 0xd9aa2c3b0ea3cbc1})}, + {Sign::POS, -128, MType({0x5c1a7f14b168b365, 0xd9aa2c3b0ea3cbc1})}, + {Sign::POS, -128, MType({0xb7579f0f8d3d514b, 0xdc465cd155a90942})}, + {Sign::POS, -128, MType({0xb7579f0f8d3d514b, 0xdc465cd155a90942})}, + {Sign::POS, -128, MType({0xb087205eb55aea85, 0xdee74ee64b0c38d3})}, + {Sign::POS, -128, MType({0x424a2623d60dfb16, 0xe18d13ee805a4de3})}, + {Sign::POS, -128, MType({0x424a2623d60dfb16, 0xe18d13ee805a4de3})}, + {Sign::POS, -128, MType({0x4d3a591ae6854787, 0xe437bdbf5254459c})}, + {Sign::POS, -128, MType({0x4d3a591ae6854787, 0xe437bdbf5254459c})}, + {Sign::POS, -128, MType({0x8dcdb6b24c5c5cdf, 0xe6e75e91b9cca551})}, + {Sign::POS, -128, MType({0x33ac7d9ebba8a53c, 0xe99c090536ece983})}, + {Sign::POS, -128, MType({0x33ac7d9ebba8a53c, 0xe99c090536ece983})}, + {Sign::POS, -128, MType({0xfb2eede4b59d8959, 0xec55d022d80e3d27})}, + {Sign::POS, -128, MType({0xfb2eede4b59d8959, 0xec55d022d80e3d27})}, + {Sign::POS, -128, MType({0x308b454666de8f99, 0xef14c7605d60654c})}, + {Sign::POS, -128, MType({0x308b454666de8f99, 0xef14c7605d60654c})}, + {Sign::POS, -128, MType({0x8383cb0ce23bebd4, 0xf1d902a37aaa5085})}, + {Sign::POS, -128, MType({0x8383cb0ce23bebd4, 0xf1d902a37aaa5085})}, + {Sign::POS, -128, MType({0x64fc87b4a41f7b70, 0xf4a2964538813c67})}, + {Sign::POS, -128, MType({0x64fc87b4a41f7b70, 0xf4a2964538813c67})}, + {Sign::POS, -128, MType({0x3f5d7d82b65c5686, 0xf77197157665f689})}, + {Sign::POS, -128, MType({0x3f5d7d82b65c5686, 0xf77197157665f689})}, + {Sign::POS, -128, MType({0x6476077b9fbd41ae, 0xfa461a5e8f4b759d})}, + {Sign::POS, -128, MType({0x6476077b9fbd41ae, 0xfa461a5e8f4b759d})}, + {Sign::POS, -128, MType({0xe3909ffd0d61778, 0xfd2035e9221ef5d0})}, + {Sign::POS, 0, MType(0)}, }, // -log2(r) for the second step, generated by SageMath with: // // for i in range(-2^6, 2^7 + 1): // r = 2^-16 * round( 2^16 / (1 + i*2^(-14)) ); // s, m, e = RealField(128)(r).log2().sign_mantissa_exponent(); - // print("{true," if s == 1 else "{false,", e, ", + // print("{Sign::NEG," if s == 1 else "{Sign::POS,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_2 = */ { - {true, -135, MType({0xb5cfed58337e848a, 0xb906155918954401})}, - {true, -135, MType({0xffaf2ac1b1d20910, 0xb6264958a3c7fa2b})}, - {true, -135, MType({0x52521a3950ea2ed8, 0xb34671e439aa448e})}, - {true, -135, MType({0xf87e1abdee10fd95, 0xb0668efb7ef48ab7})}, - {true, -135, MType({0xfbd43bbcc24c5e43, 0xad86a09e185af0e8})}, - {true, -135, MType({0x2f4f5d48f9796742, 0xaaa6a6cbaa8d57ce})}, - {true, -135, MType({0x3477fd67c1cab6b3, 0xa7c6a183da375c3d})}, - {true, -135, MType({0x7b4d33eb381fe558, 0xa4e690c64c0056f0})}, - {true, -135, MType({0x3ce25e48cb498dea, 0xa2067492a48b5c43})}, - {true, -135, MType({0x70b0fcc9e4330983, 0x9f264ce888773bed})}, - {true, -135, MType({0xbc9e4267d3189b22, 0x9c4619c79c5e80bf})}, - {true, -135, MType({0x5fb3d896326615c4, 0x9965db2f84d7705f})}, - {true, -135, MType({0x178b58311e96d323, 0x9685911fe6740b02})}, - {true, -135, MType({0x6bf8b6cf73d847, 0x93a53b9865c20b2a})}, - {true, -135, MType({0x7019f6e64a580a02, 0x90c4da98a74ae561})}, - {true, -135, MType({0xcb5733cf0eb4191d, 0x8de46e204f93c7f6})}, - {true, -135, MType({0x56148d4fc5e415b6, 0x8b03f62f031d9ab8})}, - {true, -135, MType({0xfe5370f425872623, 0x882372c46664feaf})}, - {true, -135, MType({0x21b72a1457ee70d6, 0x8542e3e01de24ddf})}, - {true, -135, MType({0xabff4f89968bed0b, 0x81aa211f1e332fcf})}, - {true, -136, MType({0x86410a676480a5a7, 0xfd92f0cf88d75f24})}, - {true, -136, MType({0x44280889021970e4, 0xf7d1886b2a876289})}, - {true, -136, MType({0x32eb139d9812090d, 0xf21009106a42bc14})}, - {true, -136, MType({0xbef9dd41e8e42810, 0xec4e72be90cd2d2d})}, - {true, -136, MType({0x689d08ca6c7c3eb1, 0xe68cc574e6e1e5d7})}, - {true, -136, MType({0x1ef259a7f69821d, 0xe0cb0132b5338423})}, - {true, -136, MType({0xe22cea71b7bb8467, 0xdb0925f7446c13a9})}, - {true, -136, MType({0xe5bb27303f542fe, 0xd54733c1dd2d0d04})}, - {true, -136, MType({0x57453c8d5dc64ce1, 0xcf852a91c80f553f})}, - {true, -136, MType({0x6cc7add1fc09ef92, 0xc9c30a664da33d56})}, - {true, -136, MType({0xe678d7280de1c07f, 0xc400d33eb67081a7})}, - {true, -136, MType({0x419bbeb2239bdc39, 0xbe3e851a4af6496d})}, - {true, -136, MType({0xd4676d1d81755809, 0xb87c1ff853ab2631})}, - {true, -136, MType({0xb69dfef7ac2e2890, 0xb2b9a3d818fd1349})}, - {true, -136, MType({0x9f72fa0a8fccabc0, 0xacf710b8e3517548})}, - {true, -136, MType({0xb8bfe6a3addb988e, 0xa7346699fb051978})}, - {true, -136, MType({0x67862c8ec9dcd60d, 0xa171a57aa86c3551})}, - {true, -136, MType({0x9bd3370909e28a6, 0x9baecd5a33d265ee})}, - {true, -136, MType({0xa96bc611b991419b, 0x95ebde37e57aaf84})}, - {true, -136, MType({0xa50bb80f203f0d62, 0x9028d813059f7cdc})}, - {true, -136, MType({0x4d36cd474f65a317, 0x8a65baeadc729ec5})}, - {true, -136, MType({0x779be241ef4874a3, 0x84a286beb21d4b8c})}, - {true, -137, MType({0xe76a962fa65ace3, 0xfdbe771b9d803cea})}, - {true, -137, MType({0xd3d35627464a5267, 0xf237b2aef4e62e5a})}, - {true, -137, MType({0x162ef4b0e838c363, 0xe6b0c035fa8b328c})}, - {true, -137, MType({0x77bb10b976b3b9ca, 0xdb299faf3e7cd74f})}, - {true, -137, MType({0x209853cee70bc58b, 0xcfa2511950b77014})}, - {true, -137, MType({0x63f9b57cbaf2e58d, 0xc41ad472c12614d3})}, - {true, -137, MType({0x4fca1c931bd6e6d6, 0xb89329ba1fa2a0fd})}, - {true, -137, MType({0x26d26e434a53490a, 0xad0b50edfbf5b265})}, - {true, -137, MType({0xc55e079078dc86a0, 0xa1834a0ce5d6a82d})}, - {true, -137, MType({0xf05b9d5bd28f540b, 0x95fb15156ceba1b5})}, - {true, -137, MType({0x8ef87f1a11cdb727, 0x8a72b20620c97d84})}, - {true, -138, MType({0x9d6870114c1183cf, 0xfdd441bb21e7b069})}, - {true, -138, MType({0x63d514fff97e86f3, 0xe6c2c33499ba16c4})}, - {true, -138, MType({0x11a381901eadd883, 0xcfb0e875c7cc5929})}, - {true, -138, MType({0xa9d69d37bc0a5bac, 0xb89eb17bcabe1857})}, - {true, -138, MType({0x2dc97c9ffefd2497, 0xa18c1e43c10c6898})}, - {true, -138, MType({0xdcdc8afcb2ac09a, 0x8a792ecac911cf92})}, - {true, -139, MType({0xdd454eb3a1489470, 0xe6cbc61c020c8446})}, - {true, -139, MType({0x878035864d84b319, 0xb8a476150dfe4470})}, - {true, -139, MType({0x7ce595cc53b8342c, 0x8a7c6d7af1de7942})}, - {true, -140, MType({0x4710b59049899141, 0xb8a7588fd29b1baa})}, - {true, -141, MType({0x5957f633309d74e3, 0xb8a8c9d8be9ae994})}, - {false, 0, MType({0x0, 0x0})}, - {false, -141, MType({0x8268aba030b1adf6, 0xb8abac81ab576f3b})}, - {false, -140, MType({0x1511cba2fb213a10, 0xb8ad1de1ac9ea6a5})}, - {false, -139, MType({0x6379fb9fd9bc6235, 0x8a82eb7708262500})}, - {false, -139, MType({0xb6fe1bf601ee27d5, 0xb8b000b8c65957cc})}, - {false, -139, MType({0x8c6e60693a14e6d0, 0xe6ddcebbd72d3f7f})}, - {false, -138, MType({0xe9bcfd0c62eaa2ca, 0x8a862ac30095c084})}, - {false, -138, MType({0x73b214209a5234a7, 0xa19dca8e85918b6d})}, - {false, -138, MType({0x347d4ca3109fe4db, 0xb8b5c6c35e142a9b})}, - {false, -138, MType({0x37a62c48783bb066, 0xcfce1f646dca7745})}, - {false, -138, MType({0x794b6437fb56344, 0xe6e6d4749883fbe3})}, - {false, -138, MType({0x1cb9a45ed90318e6, 0xfdffe5f6c232f658})}, - {false, -137, MType({0xbc118e5dbbef7dbc, 0x8a8ca9f6e7762d0f})}, - {false, -137, MType({0xb4c0fb9535907cf8, 0x96198f2e5173e93b})}, - {false, -137, MType({0xc051d2c5f00a9bb9, 0xa1a6a2a3113fe246})}, - {false, -137, MType({0x553269878c1e5110, 0xad33e4569918a8d5})}, - {false, -137, MType({0xbc906750b0ce372c, 0xb8c1544a5b4e2caf})}, - {false, -137, MType({0x4c50eaa63be294b6, 0xc44ef27fca41bdd8})}, - {false, -137, MType({0xb6cb28db8c065b44, 0xcfdcbef858660da1})}, - {false, -137, MType({0x70479336830ceb05, 0xdb6ab9b5783f2fc5})}, - {false, -137, MType({0x2a458c831f6aeb49, 0xe6f8e2b89c629b7a})}, - {false, -137, MType({0x6489ba5bd391e206, 0xf2873a0337772c8a})}, - {false, -137, MType({0x13f6fda510aeec3b, 0xfe15bf96bc35246b})}, - {false, -136, MType({0x2f9a0ef9e8250836, 0x84d239ba4eb315a9})}, - {false, -136, MType({0x389019e822b70f1e, 0x8a99aacf26f2a8a7})}, - {false, -136, MType({0x308beeffa12cf669, 0x9061330aa04f87ae})}, - {false, -136, MType({0x9886a71b25a2085d, 0x9628d26d7448a43f})}, - {false, -136, MType({0x70ba9cebe0b969c3, 0x9bf088f85c65a56b})}, - {false, -136, MType({0xcd855dc705ea2bea, 0xa1b856ac1236e85b})}, - {false, -136, MType({0x7736196b11afb331, 0xa7803b894f5580e0})}, - {false, -136, MType({0x94c99761b8eab3d8, 0xad483790cd6339fa})}, - {false, -136, MType({0x6194b8c040814736, 0xb3104ac3460a9668})}, - {false, -136, MType({0xedde8d24c7a999cc, 0xb8d8752172fed130})}, - {false, -136, MType({0xea6b01ebde42f1d0, 0xbea0b6ac0dfbde2f})}, - {false, -136, MType({0x7ef732b69334cf50, 0xc4690f63d0c66aa1})}, - {false, -136, MType({0x2ba86275fcfc2d72, 0xca317f49752bddae})}, - {false, -136, MType({0xb56ea44e185bf99f, 0xcffa065db50258f6})}, - {false, -136, MType({0x1d5c3bbeb6902bfe, 0xd5c2a4a14a28b920})}, - {false, -136, MType({0xa2f2bb9e156b0f37, 0xdb8b5a14ee86965f})}, - {false, -136, MType({0xd166eb8da06ab5ef, 0xe15426b95c0c4506})}, - {false, -136, MType({0x97dc7bae4219de0f, 0xe71d0a8f4cb2d60f})}, - {false, -136, MType({0x6c9a8e7698f416c4, 0xece605977a7c17a8})}, - {false, -136, MType({0x7b3a20aa5289695e, 0xf2af17d29f7295c0})}, - {false, -136, MType({0xddcf578ee2c2897b, 0xf878414175a99a93})}, - {false, -136, MType({0xe10ebd96c3ec30ec, 0xfe4181e4b73d2f37})}, - {false, -135, MType({0xa9b7baecb34ba577, 0x82056cde8f290e13})}, - {false, -135, MType({0x2da910dc61c182da, 0x8430f56d5e1edfd1})}, - {false, -135, MType({0xfaca09dc7e0ba8b5, 0x8715b5a8f27bed90})}, - {false, -135, MType({0xd723876173c0947, 0x89fa818019a2cace})}, - {false, -135, MType({0x4e6651df154e8f8c, 0x8cdf58f330b64515})}, - {false, -135, MType({0xee54b77d3bc34b6d, 0x8fc43c0294dd8af3})}, - {false, -135, MType({0xad07dde9b5f92cce, 0x92a92aaea3442c3d})}, - {false, -135, MType({0x261aacf944b638f0, 0x958e24f7b91a1a53})}, - {false, -135, MType({0x232f5d64a85b219d, 0x98732ade3393a868})}, - {false, -135, MType({0xf3a958bb706093fc, 0x9b583c626fe98bc9})}, - {false, -135, MType({0xc9eaa059e7b0333a, 0x9e3d5984cb58dc25})}, - {false, -135, MType({0x1e154029663243c0, 0xa1228245a32313cf})}, - {false, -135, MType({0x16515200e283d006, 0xa407b6a5548e1006})}, - {false, -135, MType({0xf498168a3337ca4f, 0xa6ecf6a43ce4113d})}, - {false, -135, MType({0x8a04a89f0548a10f, 0xa9d24242b973bb63})}, - {false, -135, MType({0xafaad01f25772805, 0xacb7998127901623})}, - {false, -135, MType({0xc4f47950543fe0b8, 0xaf9cfc5fe4908d31})}, - {false, -135, MType({0x338655e677d0d3ec, 0xb2826adf4dd0f08e})}, - {false, -135, MType({0xf8ac2ce19d009541, 0xb567e4ffc0b174cc})}, - {false, -135, MType({0x344d5e7dd7b2f465, 0xb84d6ac19a96b35c})}, - {false, -135, MType({0xbd6a217fb4598ec7, 0xbb32fc2538e9aaca})}, - {false, -135, MType({0xbc21ff368f562b75, 0xbe18992af917bf0e})}, - {false, -135, MType({0x4944139ccbf2cb9a, 0xc0fe41d33892b9cc})}, - {false, -135, MType({0x1369970c8b67e6b5, 0xc3e3f61e54d0ca9c})}, - {false, -135, MType({0x99b370e2d04a530, 0xc6c9b60cab4c8752})}, - {false, -135, MType({0xb81c3d48aff589f, 0xc9af819e9984ec44})}, - {false, -135, MType({0x9f22b80993be311b, 0xcc9558d47cfd5c90})}, - {false, -135, MType({0xac29209c8d8985ae, 0xcf7b3baeb33da265})}, - {false, -135, MType({0x3cbb6a520292351d, 0xd2612a2d99d1ef47})}, - {false, -135, MType({0x43de9ae40507ef24, 0xd54724518e4adc56})}, - {false, -135, MType({0x69677b902ea4df3a, 0xd82d2a1aee3d6a97})}, - {false, -135, MType({0xdb7a3aff74967bd5, 0xdb133b8a17430339})}, - {false, -135, MType({0x25990c82a0066ac6, 0xddf9589f66f977de})}, - {false, -135, MType({0xd424aacf4babf55, 0xe0df815b3b0302dd})}, - {false, -135, MType({0xf8e3e7eb5a7bdebb, 0xe30c278d9936c595})}, - {false, -135, MType({0x5ef8bf5adf5deebe, 0xe5f264adb62d5810})}, - {false, -135, MType({0x331d19965368fc82, 0xe8d8ad75590bdf92})}, - {false, -135, MType({0x901c30c427e358b8, 0xebbf01e4df85219e})}, - {false, -135, MType({0xaeac7e9857253b06, 0xeea561fca7504dc1})}, - {false, -135, MType({0xe2113e5893ab5b40, 0xf18bcdbd0e28fdd7})}, - {false, -135, MType({0x9a4efc80ae977826, 0xf472452671cf3654})}, - {false, -135, MType({0x6bf3ba8319332c9f, 0xf758c83930076689})}, - {false, -135, MType({0x1d732d302e75018b, 0xfa3f56f5a69a68ed})}, - {false, -135, MType({0xba179c5dbcceec01, 0xfd25f15c33558362})}, - {false, -134, MType({0x5543f53b8ad85039, 0x80064bb69a0533c0})}, - {false, -134, MType({0xe971a5565b93cb67, 0x8179a4948347996b})}, - {false, -134, MType({0x5b399644ba714691, 0x82ed0348045f379d})}, - {false, -134, MType({0x5079f1e0ec4b8496, 0x846067d14c3b8982})}, - {false, -134, MType({0x6aba4990a32e8873, 0x85d3d23089ce40b0})}, - {false, -134, MType({0xe16770c3a404291c, 0x87474265ec0b4548})}, - {false, -134, MType({0x1edb7ffb1d6b3eab, 0x88bab871a1e8b61c})}, - {false, -134, MType({0x603243e1ba7c7865, 0x8a2e3453da5ee8cd})}, - {false, -134, MType({0x57ea5c03ea4621dd, 0x8ba1b60cc46869f6})}, - {false, -134, MType({0xd3534cbf43bd7fd8, 0x8d153d9c8f01fd4a})}, - {false, -134, MType({0x62c8c8075dc91cd5, 0x8e88cb03692a9dbc})}, - {false, -134, MType({0x4bb70a5e3db7b85, 0x8ffc5e4181e37d9e})}, - {false, -134, MType({0xd3875ba32159547a, 0x916ff757083006c7})}, - {false, -134, MType({0x5c94c80e7a8f66b1, 0x9286adfca91ba28d})}, - {false, -134, MType({0x52d313c47b4f91db, 0x93fa514ba0517623})}, - {false, -134, MType({0x80829e9f3957a4c3, 0x956dfa72866fc57d})}, - {false, -134, MType({0x1cd4917972015ae7, 0x96e1a9718a824be5})}, - {false, -134, MType({0x1af23c29ef3032da, 0x98555e48db96fcd2})}, - {false, -134, MType({0xe7f7bf240be67b80, 0x99c918f8a8be040e})}, - {false, -134, MType({0x2bbe3cd4f7d868fa, 0x9b3cd9812109c5dc})}, - {false, -134, MType({0x8c75d6a4c5ae460d, 0x9cb09fe2738edf14})}, - {false, -134, MType({0x750fb989c9a06186, 0x9e246c1ccf642550})}, - {false, -134, MType({0xde787e244901bdf9, 0x9f983e3063a2a709})}, - {false, -134, MType({0x1ba3205ff729efa4, 0xa10c161d5f65abc0})}, - {false, -134, MType({0xa864d2a038fb19cd, 0xa27ff3e3f1cab41b})}, - {false, -134, MType({0xfb21f083a5fec56d, 0xa3f3d78449f17a11})}, - {false, -134, MType({0x594c5552bcc377f5, 0xa567c0fe96fbf109})}, - {false, -134, MType({0xaeb35a353fc5a503, 0xa6dbb053080e45fc})}, - {false, -134, MType({0x67a5c05130c0f330, 0xa84fa581cc4edf9f})}, - {false, -134, MType({0x4de5cafde1caf46f, 0xa9c3a08b12e65e81})}, - {false, -134, MType({0x686fce3d160e88fd, 0xab37a16f0aff9d32})}, - {false, -134, MType({0xde1375b3af6749a6, 0xacaba82de3c7b066})}, - {false, -134, MType({0x243569048ac4affe, 0xadc2b114c632da56})}, - {false, -134, MType({0xd6796227dcd39551, 0xaf36c21319b80ea2})}, - {false, -134, MType({0xabc9265386172074, 0xb0aad8eccfb38d51})}, - {false, -134, MType({0xcaac9f17896f2ce, 0xb21ef5a2175ac65e})}, - {false, -134, MType({0x1c65a3c7f828972b, 0xb39318331fe56492})}, - {false, -134, MType({0xabdc66446a4286d9, 0xb50740a0188d4daa})}, - {false, -134, MType({0x2f3bbe8e8d72abec, 0xb67b6ee9308ea27b})}, - {false, -134, MType({0xb67dbdd7f03d168c, 0xb7efa30e9727bf11})}, + {Sign::NEG, -135, MType({0xb5cfed58337e848a, 0xb906155918954401})}, + {Sign::NEG, -135, MType({0xffaf2ac1b1d20910, 0xb6264958a3c7fa2b})}, + {Sign::NEG, -135, MType({0x52521a3950ea2ed8, 0xb34671e439aa448e})}, + {Sign::NEG, -135, MType({0xf87e1abdee10fd95, 0xb0668efb7ef48ab7})}, + {Sign::NEG, -135, MType({0xfbd43bbcc24c5e43, 0xad86a09e185af0e8})}, + {Sign::NEG, -135, MType({0x2f4f5d48f9796742, 0xaaa6a6cbaa8d57ce})}, + {Sign::NEG, -135, MType({0x3477fd67c1cab6b3, 0xa7c6a183da375c3d})}, + {Sign::NEG, -135, MType({0x7b4d33eb381fe558, 0xa4e690c64c0056f0})}, + {Sign::NEG, -135, MType({0x3ce25e48cb498dea, 0xa2067492a48b5c43})}, + {Sign::NEG, -135, MType({0x70b0fcc9e4330983, 0x9f264ce888773bed})}, + {Sign::NEG, -135, MType({0xbc9e4267d3189b22, 0x9c4619c79c5e80bf})}, + {Sign::NEG, -135, MType({0x5fb3d896326615c4, 0x9965db2f84d7705f})}, + {Sign::NEG, -135, MType({0x178b58311e96d323, 0x9685911fe6740b02})}, + {Sign::NEG, -135, MType({0x6bf8b6cf73d847, 0x93a53b9865c20b2a})}, + {Sign::NEG, -135, MType({0x7019f6e64a580a02, 0x90c4da98a74ae561})}, + {Sign::NEG, -135, MType({0xcb5733cf0eb4191d, 0x8de46e204f93c7f6})}, + {Sign::NEG, -135, MType({0x56148d4fc5e415b6, 0x8b03f62f031d9ab8})}, + {Sign::NEG, -135, MType({0xfe5370f425872623, 0x882372c46664feaf})}, + {Sign::NEG, -135, MType({0x21b72a1457ee70d6, 0x8542e3e01de24ddf})}, + {Sign::NEG, -135, MType({0xabff4f89968bed0b, 0x81aa211f1e332fcf})}, + {Sign::NEG, -136, MType({0x86410a676480a5a7, 0xfd92f0cf88d75f24})}, + {Sign::NEG, -136, MType({0x44280889021970e4, 0xf7d1886b2a876289})}, + {Sign::NEG, -136, MType({0x32eb139d9812090d, 0xf21009106a42bc14})}, + {Sign::NEG, -136, MType({0xbef9dd41e8e42810, 0xec4e72be90cd2d2d})}, + {Sign::NEG, -136, MType({0x689d08ca6c7c3eb1, 0xe68cc574e6e1e5d7})}, + {Sign::NEG, -136, MType({0x1ef259a7f69821d, 0xe0cb0132b5338423})}, + {Sign::NEG, -136, MType({0xe22cea71b7bb8467, 0xdb0925f7446c13a9})}, + {Sign::NEG, -136, MType({0xe5bb27303f542fe, 0xd54733c1dd2d0d04})}, + {Sign::NEG, -136, MType({0x57453c8d5dc64ce1, 0xcf852a91c80f553f})}, + {Sign::NEG, -136, MType({0x6cc7add1fc09ef92, 0xc9c30a664da33d56})}, + {Sign::NEG, -136, MType({0xe678d7280de1c07f, 0xc400d33eb67081a7})}, + {Sign::NEG, -136, MType({0x419bbeb2239bdc39, 0xbe3e851a4af6496d})}, + {Sign::NEG, -136, MType({0xd4676d1d81755809, 0xb87c1ff853ab2631})}, + {Sign::NEG, -136, MType({0xb69dfef7ac2e2890, 0xb2b9a3d818fd1349})}, + {Sign::NEG, -136, MType({0x9f72fa0a8fccabc0, 0xacf710b8e3517548})}, + {Sign::NEG, -136, MType({0xb8bfe6a3addb988e, 0xa7346699fb051978})}, + {Sign::NEG, -136, MType({0x67862c8ec9dcd60d, 0xa171a57aa86c3551})}, + {Sign::NEG, -136, MType({0x9bd3370909e28a6, 0x9baecd5a33d265ee})}, + {Sign::NEG, -136, MType({0xa96bc611b991419b, 0x95ebde37e57aaf84})}, + {Sign::NEG, -136, MType({0xa50bb80f203f0d62, 0x9028d813059f7cdc})}, + {Sign::NEG, -136, MType({0x4d36cd474f65a317, 0x8a65baeadc729ec5})}, + {Sign::NEG, -136, MType({0x779be241ef4874a3, 0x84a286beb21d4b8c})}, + {Sign::NEG, -137, MType({0xe76a962fa65ace3, 0xfdbe771b9d803cea})}, + {Sign::NEG, -137, MType({0xd3d35627464a5267, 0xf237b2aef4e62e5a})}, + {Sign::NEG, -137, MType({0x162ef4b0e838c363, 0xe6b0c035fa8b328c})}, + {Sign::NEG, -137, MType({0x77bb10b976b3b9ca, 0xdb299faf3e7cd74f})}, + {Sign::NEG, -137, MType({0x209853cee70bc58b, 0xcfa2511950b77014})}, + {Sign::NEG, -137, MType({0x63f9b57cbaf2e58d, 0xc41ad472c12614d3})}, + {Sign::NEG, -137, MType({0x4fca1c931bd6e6d6, 0xb89329ba1fa2a0fd})}, + {Sign::NEG, -137, MType({0x26d26e434a53490a, 0xad0b50edfbf5b265})}, + {Sign::NEG, -137, MType({0xc55e079078dc86a0, 0xa1834a0ce5d6a82d})}, + {Sign::NEG, -137, MType({0xf05b9d5bd28f540b, 0x95fb15156ceba1b5})}, + {Sign::NEG, -137, MType({0x8ef87f1a11cdb727, 0x8a72b20620c97d84})}, + {Sign::NEG, -138, MType({0x9d6870114c1183cf, 0xfdd441bb21e7b069})}, + {Sign::NEG, -138, MType({0x63d514fff97e86f3, 0xe6c2c33499ba16c4})}, + {Sign::NEG, -138, MType({0x11a381901eadd883, 0xcfb0e875c7cc5929})}, + {Sign::NEG, -138, MType({0xa9d69d37bc0a5bac, 0xb89eb17bcabe1857})}, + {Sign::NEG, -138, MType({0x2dc97c9ffefd2497, 0xa18c1e43c10c6898})}, + {Sign::NEG, -138, MType({0xdcdc8afcb2ac09a, 0x8a792ecac911cf92})}, + {Sign::NEG, -139, MType({0xdd454eb3a1489470, 0xe6cbc61c020c8446})}, + {Sign::NEG, -139, MType({0x878035864d84b319, 0xb8a476150dfe4470})}, + {Sign::NEG, -139, MType({0x7ce595cc53b8342c, 0x8a7c6d7af1de7942})}, + {Sign::NEG, -140, MType({0x4710b59049899141, 0xb8a7588fd29b1baa})}, + {Sign::NEG, -141, MType({0x5957f633309d74e3, 0xb8a8c9d8be9ae994})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -141, MType({0x8268aba030b1adf6, 0xb8abac81ab576f3b})}, + {Sign::POS, -140, MType({0x1511cba2fb213a10, 0xb8ad1de1ac9ea6a5})}, + {Sign::POS, -139, MType({0x6379fb9fd9bc6235, 0x8a82eb7708262500})}, + {Sign::POS, -139, MType({0xb6fe1bf601ee27d5, 0xb8b000b8c65957cc})}, + {Sign::POS, -139, MType({0x8c6e60693a14e6d0, 0xe6ddcebbd72d3f7f})}, + {Sign::POS, -138, MType({0xe9bcfd0c62eaa2ca, 0x8a862ac30095c084})}, + {Sign::POS, -138, MType({0x73b214209a5234a7, 0xa19dca8e85918b6d})}, + {Sign::POS, -138, MType({0x347d4ca3109fe4db, 0xb8b5c6c35e142a9b})}, + {Sign::POS, -138, MType({0x37a62c48783bb066, 0xcfce1f646dca7745})}, + {Sign::POS, -138, MType({0x794b6437fb56344, 0xe6e6d4749883fbe3})}, + {Sign::POS, -138, MType({0x1cb9a45ed90318e6, 0xfdffe5f6c232f658})}, + {Sign::POS, -137, MType({0xbc118e5dbbef7dbc, 0x8a8ca9f6e7762d0f})}, + {Sign::POS, -137, MType({0xb4c0fb9535907cf8, 0x96198f2e5173e93b})}, + {Sign::POS, -137, MType({0xc051d2c5f00a9bb9, 0xa1a6a2a3113fe246})}, + {Sign::POS, -137, MType({0x553269878c1e5110, 0xad33e4569918a8d5})}, + {Sign::POS, -137, MType({0xbc906750b0ce372c, 0xb8c1544a5b4e2caf})}, + {Sign::POS, -137, MType({0x4c50eaa63be294b6, 0xc44ef27fca41bdd8})}, + {Sign::POS, -137, MType({0xb6cb28db8c065b44, 0xcfdcbef858660da1})}, + {Sign::POS, -137, MType({0x70479336830ceb05, 0xdb6ab9b5783f2fc5})}, + {Sign::POS, -137, MType({0x2a458c831f6aeb49, 0xe6f8e2b89c629b7a})}, + {Sign::POS, -137, MType({0x6489ba5bd391e206, 0xf2873a0337772c8a})}, + {Sign::POS, -137, MType({0x13f6fda510aeec3b, 0xfe15bf96bc35246b})}, + {Sign::POS, -136, MType({0x2f9a0ef9e8250836, 0x84d239ba4eb315a9})}, + {Sign::POS, -136, MType({0x389019e822b70f1e, 0x8a99aacf26f2a8a7})}, + {Sign::POS, -136, MType({0x308beeffa12cf669, 0x9061330aa04f87ae})}, + {Sign::POS, -136, MType({0x9886a71b25a2085d, 0x9628d26d7448a43f})}, + {Sign::POS, -136, MType({0x70ba9cebe0b969c3, 0x9bf088f85c65a56b})}, + {Sign::POS, -136, MType({0xcd855dc705ea2bea, 0xa1b856ac1236e85b})}, + {Sign::POS, -136, MType({0x7736196b11afb331, 0xa7803b894f5580e0})}, + {Sign::POS, -136, MType({0x94c99761b8eab3d8, 0xad483790cd6339fa})}, + {Sign::POS, -136, MType({0x6194b8c040814736, 0xb3104ac3460a9668})}, + {Sign::POS, -136, MType({0xedde8d24c7a999cc, 0xb8d8752172fed130})}, + {Sign::POS, -136, MType({0xea6b01ebde42f1d0, 0xbea0b6ac0dfbde2f})}, + {Sign::POS, -136, MType({0x7ef732b69334cf50, 0xc4690f63d0c66aa1})}, + {Sign::POS, -136, MType({0x2ba86275fcfc2d72, 0xca317f49752bddae})}, + {Sign::POS, -136, MType({0xb56ea44e185bf99f, 0xcffa065db50258f6})}, + {Sign::POS, -136, MType({0x1d5c3bbeb6902bfe, 0xd5c2a4a14a28b920})}, + {Sign::POS, -136, MType({0xa2f2bb9e156b0f37, 0xdb8b5a14ee86965f})}, + {Sign::POS, -136, MType({0xd166eb8da06ab5ef, 0xe15426b95c0c4506})}, + {Sign::POS, -136, MType({0x97dc7bae4219de0f, 0xe71d0a8f4cb2d60f})}, + {Sign::POS, -136, MType({0x6c9a8e7698f416c4, 0xece605977a7c17a8})}, + {Sign::POS, -136, MType({0x7b3a20aa5289695e, 0xf2af17d29f7295c0})}, + {Sign::POS, -136, MType({0xddcf578ee2c2897b, 0xf878414175a99a93})}, + {Sign::POS, -136, MType({0xe10ebd96c3ec30ec, 0xfe4181e4b73d2f37})}, + {Sign::POS, -135, MType({0xa9b7baecb34ba577, 0x82056cde8f290e13})}, + {Sign::POS, -135, MType({0x2da910dc61c182da, 0x8430f56d5e1edfd1})}, + {Sign::POS, -135, MType({0xfaca09dc7e0ba8b5, 0x8715b5a8f27bed90})}, + {Sign::POS, -135, MType({0xd723876173c0947, 0x89fa818019a2cace})}, + {Sign::POS, -135, MType({0x4e6651df154e8f8c, 0x8cdf58f330b64515})}, + {Sign::POS, -135, MType({0xee54b77d3bc34b6d, 0x8fc43c0294dd8af3})}, + {Sign::POS, -135, MType({0xad07dde9b5f92cce, 0x92a92aaea3442c3d})}, + {Sign::POS, -135, MType({0x261aacf944b638f0, 0x958e24f7b91a1a53})}, + {Sign::POS, -135, MType({0x232f5d64a85b219d, 0x98732ade3393a868})}, + {Sign::POS, -135, MType({0xf3a958bb706093fc, 0x9b583c626fe98bc9})}, + {Sign::POS, -135, MType({0xc9eaa059e7b0333a, 0x9e3d5984cb58dc25})}, + {Sign::POS, -135, MType({0x1e154029663243c0, 0xa1228245a32313cf})}, + {Sign::POS, -135, MType({0x16515200e283d006, 0xa407b6a5548e1006})}, + {Sign::POS, -135, MType({0xf498168a3337ca4f, 0xa6ecf6a43ce4113d})}, + {Sign::POS, -135, MType({0x8a04a89f0548a10f, 0xa9d24242b973bb63})}, + {Sign::POS, -135, MType({0xafaad01f25772805, 0xacb7998127901623})}, + {Sign::POS, -135, MType({0xc4f47950543fe0b8, 0xaf9cfc5fe4908d31})}, + {Sign::POS, -135, MType({0x338655e677d0d3ec, 0xb2826adf4dd0f08e})}, + {Sign::POS, -135, MType({0xf8ac2ce19d009541, 0xb567e4ffc0b174cc})}, + {Sign::POS, -135, MType({0x344d5e7dd7b2f465, 0xb84d6ac19a96b35c})}, + {Sign::POS, -135, MType({0xbd6a217fb4598ec7, 0xbb32fc2538e9aaca})}, + {Sign::POS, -135, MType({0xbc21ff368f562b75, 0xbe18992af917bf0e})}, + {Sign::POS, -135, MType({0x4944139ccbf2cb9a, 0xc0fe41d33892b9cc})}, + {Sign::POS, -135, MType({0x1369970c8b67e6b5, 0xc3e3f61e54d0ca9c})}, + {Sign::POS, -135, MType({0x99b370e2d04a530, 0xc6c9b60cab4c8752})}, + {Sign::POS, -135, MType({0xb81c3d48aff589f, 0xc9af819e9984ec44})}, + {Sign::POS, -135, MType({0x9f22b80993be311b, 0xcc9558d47cfd5c90})}, + {Sign::POS, -135, MType({0xac29209c8d8985ae, 0xcf7b3baeb33da265})}, + {Sign::POS, -135, MType({0x3cbb6a520292351d, 0xd2612a2d99d1ef47})}, + {Sign::POS, -135, MType({0x43de9ae40507ef24, 0xd54724518e4adc56})}, + {Sign::POS, -135, MType({0x69677b902ea4df3a, 0xd82d2a1aee3d6a97})}, + {Sign::POS, -135, MType({0xdb7a3aff74967bd5, 0xdb133b8a17430339})}, + {Sign::POS, -135, MType({0x25990c82a0066ac6, 0xddf9589f66f977de})}, + {Sign::POS, -135, MType({0xd424aacf4babf55, 0xe0df815b3b0302dd})}, + {Sign::POS, -135, MType({0xf8e3e7eb5a7bdebb, 0xe30c278d9936c595})}, + {Sign::POS, -135, MType({0x5ef8bf5adf5deebe, 0xe5f264adb62d5810})}, + {Sign::POS, -135, MType({0x331d19965368fc82, 0xe8d8ad75590bdf92})}, + {Sign::POS, -135, MType({0x901c30c427e358b8, 0xebbf01e4df85219e})}, + {Sign::POS, -135, MType({0xaeac7e9857253b06, 0xeea561fca7504dc1})}, + {Sign::POS, -135, MType({0xe2113e5893ab5b40, 0xf18bcdbd0e28fdd7})}, + {Sign::POS, -135, MType({0x9a4efc80ae977826, 0xf472452671cf3654})}, + {Sign::POS, -135, MType({0x6bf3ba8319332c9f, 0xf758c83930076689})}, + {Sign::POS, -135, MType({0x1d732d302e75018b, 0xfa3f56f5a69a68ed})}, + {Sign::POS, -135, MType({0xba179c5dbcceec01, 0xfd25f15c33558362})}, + {Sign::POS, -134, MType({0x5543f53b8ad85039, 0x80064bb69a0533c0})}, + {Sign::POS, -134, MType({0xe971a5565b93cb67, 0x8179a4948347996b})}, + {Sign::POS, -134, MType({0x5b399644ba714691, 0x82ed0348045f379d})}, + {Sign::POS, -134, MType({0x5079f1e0ec4b8496, 0x846067d14c3b8982})}, + {Sign::POS, -134, MType({0x6aba4990a32e8873, 0x85d3d23089ce40b0})}, + {Sign::POS, -134, MType({0xe16770c3a404291c, 0x87474265ec0b4548})}, + {Sign::POS, -134, MType({0x1edb7ffb1d6b3eab, 0x88bab871a1e8b61c})}, + {Sign::POS, -134, MType({0x603243e1ba7c7865, 0x8a2e3453da5ee8cd})}, + {Sign::POS, -134, MType({0x57ea5c03ea4621dd, 0x8ba1b60cc46869f6})}, + {Sign::POS, -134, MType({0xd3534cbf43bd7fd8, 0x8d153d9c8f01fd4a})}, + {Sign::POS, -134, MType({0x62c8c8075dc91cd5, 0x8e88cb03692a9dbc})}, + {Sign::POS, -134, MType({0x4bb70a5e3db7b85, 0x8ffc5e4181e37d9e})}, + {Sign::POS, -134, MType({0xd3875ba32159547a, 0x916ff757083006c7})}, + {Sign::POS, -134, MType({0x5c94c80e7a8f66b1, 0x9286adfca91ba28d})}, + {Sign::POS, -134, MType({0x52d313c47b4f91db, 0x93fa514ba0517623})}, + {Sign::POS, -134, MType({0x80829e9f3957a4c3, 0x956dfa72866fc57d})}, + {Sign::POS, -134, MType({0x1cd4917972015ae7, 0x96e1a9718a824be5})}, + {Sign::POS, -134, MType({0x1af23c29ef3032da, 0x98555e48db96fcd2})}, + {Sign::POS, -134, MType({0xe7f7bf240be67b80, 0x99c918f8a8be040e})}, + {Sign::POS, -134, MType({0x2bbe3cd4f7d868fa, 0x9b3cd9812109c5dc})}, + {Sign::POS, -134, MType({0x8c75d6a4c5ae460d, 0x9cb09fe2738edf14})}, + {Sign::POS, -134, MType({0x750fb989c9a06186, 0x9e246c1ccf642550})}, + {Sign::POS, -134, MType({0xde787e244901bdf9, 0x9f983e3063a2a709})}, + {Sign::POS, -134, MType({0x1ba3205ff729efa4, 0xa10c161d5f65abc0})}, + {Sign::POS, -134, MType({0xa864d2a038fb19cd, 0xa27ff3e3f1cab41b})}, + {Sign::POS, -134, MType({0xfb21f083a5fec56d, 0xa3f3d78449f17a11})}, + {Sign::POS, -134, MType({0x594c5552bcc377f5, 0xa567c0fe96fbf109})}, + {Sign::POS, -134, MType({0xaeb35a353fc5a503, 0xa6dbb053080e45fc})}, + {Sign::POS, -134, MType({0x67a5c05130c0f330, 0xa84fa581cc4edf9f})}, + {Sign::POS, -134, MType({0x4de5cafde1caf46f, 0xa9c3a08b12e65e81})}, + {Sign::POS, -134, MType({0x686fce3d160e88fd, 0xab37a16f0aff9d32})}, + {Sign::POS, -134, MType({0xde1375b3af6749a6, 0xacaba82de3c7b066})}, + {Sign::POS, -134, MType({0x243569048ac4affe, 0xadc2b114c632da56})}, + {Sign::POS, -134, MType({0xd6796227dcd39551, 0xaf36c21319b80ea2})}, + {Sign::POS, -134, MType({0xabc9265386172074, 0xb0aad8eccfb38d51})}, + {Sign::POS, -134, MType({0xcaac9f17896f2ce, 0xb21ef5a2175ac65e})}, + {Sign::POS, -134, MType({0x1c65a3c7f828972b, 0xb39318331fe56492})}, + {Sign::POS, -134, MType({0xabdc66446a4286d9, 0xb50740a0188d4daa})}, + {Sign::POS, -134, MType({0x2f3bbe8e8d72abec, 0xb67b6ee9308ea27b})}, + {Sign::POS, -134, MType({0xb67dbdd7f03d168c, 0xb7efa30e9727bf11})}, }, // -log2(r) for the third step, generated by SageMath with: // // for i in range(-80, 81): // r = 2^-21 * round( 2^21 / (1 + i*2^(-21)) ); // s, m, e = RealField(128)(r).log2().sign_mantissa_exponent(); - // print("{true," if (s == 1) else "{false,", e, ", + // print("{Sign::NEG," if (s == 1) else "{Sign::POS,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_3 = */ { - {true, -142, MType({0x26f2c63c0827ccbb, 0xe6d3a96b978fc16e})}, - {true, -142, MType({0x4b56fe667c8ec091, 0xe3f107a9fbfc50ca})}, - {true, -142, MType({0x647d76181aec10fc, 0xe10e65d14b937265})}, - {true, -142, MType({0x99e8f4d5379eca79, 0xde2bc3e18653b4f5})}, - {true, -142, MType({0xf07da89990c20623, 0xdb4921daac3ba730})}, - {true, -142, MType({0x4a8121848531851a, 0xd8667fbcbd49d7cd})}, - {true, -142, MType({0x679a4d854ae13619, 0xd583dd87b97cd580})}, - {true, -142, MType({0xe4d174072487a514, 0xd2a13b3ba0d32eff})}, - {true, -142, MType({0x3c90319d969b54be, 0xcfbe98d8734b7301})}, - {true, -142, MType({0xc6a173b09ba301e6, 0xccdbf65e30e43039})}, - {true, -142, MType({0xb8317428d7d8d06b, 0xc9f953ccd99bf55e})}, - {true, -142, MType({0x23cdb51bcc2061cd, 0xc716b1246d715125})}, - {true, -142, MType({0xf964fc78084fd515, 0xc4340e64ec62d241})}, - {true, -142, MType({0x6474fb15ccbb015, 0xc1516b8e566f076a})}, - {true, -142, MType({0xf525ef6d0b75b1c3, 0xbe6ec8a0ab947f51})}, - {true, -142, MType({0x4e13532df7ee8da7, 0xbb8c259bebd1c8ae})}, - {true, -142, MType({0x76832500d72a9027, 0xb8a9828017257233})}, - {true, -142, MType({0xb14a3d285e592ba0, 0xb5c6df4d2d8e0a95})}, - {true, -142, MType({0x1e9e9dc9711f6e20, 0xb2e43c032f0a2089})}, - {true, -142, MType({0xbc176e974f255fac, 0xb00198a21b9842c1})}, - {true, -142, MType({0x64acf87fc0f648e6, 0xad1ef529f336fff3})}, - {true, -142, MType({0xd0b8a1574433e1f8, 0xaa3c519ab5e4e6d1})}, - {true, -142, MType({0x95f4e785371c69a9, 0xa759adf463a08610})}, - {true, -142, MType({0x277d5db00363a46f, 0xa4770a36fc686c63})}, - {true, -142, MType({0xd5cea669485ec36c, 0xa1946662803b287c})}, - {true, -142, MType({0xcec66fda04833322, 0x9eb1c276ef174910})}, - {true, -142, MType({0x1da36f6ebe3851db, 0x9bcf1e7448fb5cd2})}, - {true, -142, MType({0xab055d83abfc0d82, 0x98ec7a5a8de5f273})}, - {true, -142, MType({0x3cecf110dbda68e9, 0x9609d629bdd598a8})}, - {true, -142, MType({0x76bbdb565a37e84b, 0x932731e1d8c8de22})}, - {true, -142, MType({0xd934c38857eee4f3, 0x90448d82debe5194})}, - {true, -142, MType({0xc27b427b4fbfc7db, 0x8d61e90ccfb481b1})}, - {true, -142, MType({0x6e13de502b142b39, 0x8a7f447faba9fd2b})}, - {true, -142, MType({0xf4e406206614e2ba, 0x879c9fdb729d52b3})}, - {true, -142, MType({0x4d320daa3312ea6c, 0x84b9fb20248d10fd})}, - {true, -142, MType({0x4aa528fc9d433c1a, 0x81d7564dc177c6b9})}, - {true, -143, MType({0x3c8ad047559b1622, 0xfde962c892b80533})}, - {true, -143, MType({0xacf765a8fc5bcc31, 0xf82418c77870a69f})}, - {true, -143, MType({0xbe238832edd27f20, 0xf25ece9834168f1a})}, - {true, -143, MType({0x2644bfca329b708, 0xec99843ac5a6dc07})}, - {true, -143, MType({0xc6d05a788e614744, 0xe6d439af2d1eaac6})}, - {true, -143, MType({0x133fe9cc57a8c1d0, 0xe10eeef56a7b18bc})}, - {true, -143, MType({0xaa4cb429195fb5dd, 0xdb49a40d7db94348})}, - {true, -143, MType({0x951ef239abbb959, 0xd58458f766d647ce})}, - {true, -143, MType({0x686c430c89143d35, 0xcfbf0db325cf43ad})}, - {true, -143, MType({0xba79c248afd42c12, 0xc9f9c240baa15447})}, - {true, -143, MType({0xad19e0a92f115327, 0xc43476a0254996fd})}, - {true, -143, MType({0xa8ad6ac3b0c99520, 0xbe6f2ad165c5292f})}, - {true, -143, MType({0xd0567d4a9cc5e6a1, 0xb8a9ded47c11283d})}, - {true, -143, MType({0x1f87c654b231443, 0xb2e492a9682ab188})}, - {true, -143, MType({0xd6380b08358051bc, 0xad1f46502a0ee26d})}, - {true, -143, MType({0xa07b024d26d391f6, 0xa759f9c8c1bad84e})}, - {true, -143, MType({0x6ee868cb69e3a7d8, 0xa194ad132f2bb089})}, - {true, -143, MType({0xa6869eff6682f73, 0x9bcf602f725e887d})}, - {true, -143, MType({0xf6a44d559ccf3f61, 0x960a131d8b507d87})}, - {true, -143, MType({0x72066e1d30a8e210, 0x9044c5dd79fead08})}, - {true, -143, MType({0x75ba3245b1b856af, 0x8a7f786f3e66345c})}, - {true, -143, MType({0xb5ac020473ab198f, 0x84ba2ad2d88430e1})}, - {true, -144, MType({0x41127e3a88eb6741, 0xfde9ba1090ab7feb})}, - {true, -144, MType({0xbf80787522aca1c4, 0xf25f1e1f1baffdea})}, - {true, -144, MType({0xaf00688b14fa3adc, 0xe6d481d15210167b})}, - {true, -144, MType({0x4d72837c8ab4d1e5, 0xdb49e52733c60457})}, - {true, -144, MType({0x4e38ac27bb252090, 0xcfbf4820c0cc0236})}, - {true, -144, MType({0xda3661f9292f59e8, 0xc434aabdf91c4ad0})}, - {true, -144, MType({0x8fd0af9bdfd21488, 0xb8aa0cfedcb118de})}, - {true, -144, MType({0x82ee19a9abf0bfa5, 0xad1f6ee36b84a716})}, - {true, -144, MType({0x3cf68d5b5369a251, 0xa194d06ba591302f})}, - {true, -144, MType({0xbcd34f38c977647e, 0x960a31978ad0eede})}, - {true, -144, MType({0x76eee9c9605e2143, 0x8a7f92671b3e1dda})}, - {true, -145, MType({0xaa6a3887f0c803ab, 0xfde9e5b4ada5efae})}, - {true, -145, MType({0x6e25927e582ac191, 0xe6d4a5e27b136f13})}, - {true, -145, MType({0xe2ebcac2f3a8e9eb, 0xcfbf65579eb92f4a})}, - {true, -145, MType({0x9d9acc22d5690751, 0xb8aa2414188ba5bb})}, - {true, -145, MType({0x1e12604b6d4132ef, 0xa194e217e87f47cb})}, - {true, -145, MType({0xcf340d2acb9b92a9, 0x8a7f9f630e888add})}, - {true, -146, MType({0xdc5e49fbde3c520, 0xe6d4b7eb1537c8ae})}, - {true, -146, MType({0xc074c9557c01188, 0xb8aa2f9eb95b9332})}, - {true, -146, MType({0xf0f82818ff9b654f, 0x8a7fa5e109656009})}, - {true, -147, MType({0xd4cd612078bbe9b0, 0xb8aa35640a7c33eb})}, - {true, -148, MType({0xf08cf68f42e09fa0, 0xb8aa3846b33aaecf})}, - {false, 0, MType({0x0, 0x0})}, - {false, -148, MType({0x68bd0facdf0ddaaf, 0xb8aa3e0c0513f9b1})}, - {false, -147, MType({0x192af653dd41575b, 0xb8aa40eeae2ec9b3})}, - {false, -146, MType({0x3b5c89842e540a51, 0x8a7fb2dd018e4892})}, - {false, -146, MType({0x34ad8ebdd8b2750c, 0xb8aa46b400c0bee3})}, - {false, -146, MType({0x70b12bd698e5be74, 0xe6d4dbfc54c5dd1b})}, - {false, -145, MType({0x8c7e424efbd90e1, 0x8a7fb95afeda5c46})}, - {false, -145, MType({0x31b8eba774a1de77, 0xa19505707dd23344})}, - {false, -145, MType({0xee400e8c68838733, 0xb8aa523ea755fe32})}, - {false, -145, MType({0xe71fa0b5603bc2f, 0xcfbf9fc57b7147be})}, - {false, -145, MType({0x7763c919d8ac65f1, 0xe6d4ee04fa2f9a92})}, - {false, -145, MType({0x232b270bb6046ec1, 0xfdea3cfd239c815e})}, - {false, -144, MType({0x106f39197e068972, 0x8a7fc656fbe1c368})}, - {false, -144, MType({0x4a4a6f4012941bd9, 0x960a6e8bbb581acc})}, - {false, -144, MType({0x5bb34c1120b3e54b, 0xa195171cd0370c34})}, - {false, -144, MType({0x6bb6731392a3147a, 0xad1fc00a3a845cf9})}, - {false, -144, MType({0x2be1268dcee3c8fc, 0xb8aa6953fa45d275})}, - {false, -144, MType({0xd84158d5d50251a9, 0xc43512fa0f813201})}, - {false, -144, MType({0x3765bda15d0ef0fa, 0xcfbfbcfc7a3c40fa})}, - {false, -144, MType({0x9a5ddb55f9cc27d9, 0xdb4a675b3a7cc4b9})}, - {false, -144, MType({0xdcba1c593d918775, 0xe6d512165048829b})}, - {false, -144, MType({0x648be060e1e30a95, 0xf25fbd2dbba53ffd})}, - {false, -144, MType({0x22658dc2f1bcf6e8, 0xfdea68a17c98c23b})}, - {false, -143, MType({0x48ad5162fb4a236e, 0x84ba8a38c9946759})}, - {false, -143, MType({0xdb7fe3789405ce3a, 0x8a7fe04effad9560})}, - {false, -143, MType({0x91b56e2e4f2e5ed8, 0x90453693609acde3})}, - {false, -143, MType({0xf8998880c3bb4d76, 0x960a8d05ec5ef390})}, - {false, -143, MType({0xe2b878052f67efee, 0x9bcfe3a6a2fce918})}, - {false, -143, MType({0x67df399193f707c0, 0xa1953a758477912b})}, - {false, -143, MType({0xe51b89e4d5d095e1, 0xa75a917290d1ce78})}, - {false, -143, MType({0xfcbbee4edbf9f47d, 0xad1fe89dc80e83b1})}, - {false, -143, MType({0x964fbd58b168371b, 0xb2e53ff72a309387})}, - {false, -143, MType({0xdea7276ca7acd135, 0xb8aa977eb73ae0aa})}, - {false, -143, MType({0x47d33f7e7afc83a6, 0xbe6fef346f304dcd})}, - {false, -143, MType({0x892603b377909123, 0xc43547185213bda0})}, - {false, -143, MType({0x9f32660aa06239fb, 0xc9fa9f2a5fe812d6})}, - {false, -143, MType({0xcbcc5504d7407f6c, 0xcfbff76a98b03021})}, - {false, -143, MType({0x9608c44d06402ebe, 0xd5854fd8fc6ef834})}, - {false, -143, MType({0xca3db5604a863477, 0xdb4aa8758b274dc1})}, - {false, -143, MType({0x7a024036206c37d6, 0xe110014044dc137c})}, - {false, -143, MType({0xfc2e9be890ff7ee3, 0xe6d55a3929902c17})}, - {false, -143, MType({0xecdc275c60da1b53, 0xec9ab36039467a47})}, - {false, -143, MType({0x2d6571e94056607f, 0xf2600cb57401e0c0})}, - {false, -143, MType({0xe4664401fd1ca2a7, 0xf8256638d9c54234})}, - {false, -143, MType({0x7dbba7dcb50b3fd7, 0xfdeabfea6a93815a})}, - {false, -142, MType({0xd541f90d853c794b, 0x81d80ce51337c072})}, - {false, -142, MType({0xb08f65392ce8b75b, 0x84bab9ec06ae11c5})}, - {false, -142, MType({0x6e969a29f8462436, 0x879d670a0fae2600})}, - {false, -142, MType({0xcfc8cbcaa2bf130c, 0x8a80143f2e396e7d})}, - {false, -142, MType({0xb737e48c19421e68, 0x8d62c18b62515c98})}, - {false, -142, MType({0x2a9689b997c50c0b, 0x90456eeeabf761ac})}, - {false, -142, MType({0x52381fccc774d66b, 0x93281c690b2cef13})}, - {false, -142, MType({0x7910cec1dd92dc10, 0x960ac9fa7ff37629})}, - {false, -142, MType({0xcb5866bbaff34cb, 0x98ed77a30a4c684a})}, - {false, -142, MType({0x9d5c02c80c702d11, 0x9bd02562aa3936d0})}, - {false, -142, MType({0xdddad0536b56e775, 0x9eb2d3395fbb5318})}, - {false, -142, MType({0xa3a9505d7f71247a, 0xa19581272ad42e7e})}, - {false, -142, MType({0xe6dfbd5d210830d7, 0xa4782f2c0b853a5d})}, - {false, -142, MType({0xc2372f447bdcfa45, 0xa75add4801cfe812})}, - {false, -142, MType({0x73099fd532c14b05, 0xaa3d8b7b0db5a8f9})}, - {false, -142, MType({0x5951eef483de2c37, 0xad2039c52f37ee6e})}, - {false, -142, MType({0xf7abe6ff6da76f1e, 0xb002e826665829cd})}, - {false, -142, MType({0xf354411ed47c5d7b, 0xb2e5969eb317cc74})}, - {false, -142, MType({0x1428a99ba8f5911f, 0xb5c8452e157847c0})}, - {false, -142, MType({0x44a7c4330edff2c8, 0xb8aaf3d48d7b0d0c})}, - {false, -142, MType({0x91f1306a84e4e07b, 0xbb8da2921b218db6})}, - {false, -142, MType({0x2bc58de40cdf7b6a, 0xbe705166be6d3b1c})}, - {false, -142, MType({0x648680b254df1d99, 0xc1530052775f869a})}, - {false, -142, MType({0xb136b5ace0d6f74d, 0xc435af5545f9e18e})}, - {false, -142, MType({0xa979e6c434fad480, 0xc7185e6f2a3dbd56})}, - {false, -142, MType({0x794df5600c90a5a, 0xc9fb0da0242c8b50})}, - {false, -142, MType({0xa86d80814ac18cf1, 0xccddbce833c7bcd8})}, - {false, -142, MType({0x8b8ac57a9cca2d56, 0xcfc06c475910c34e})}, - {false, -142, MType({0xd314c7e03140001f, 0xd2a31bbd9409100f})}, - {false, -142, MType({0xc3d4c40e20b5ec89, 0xd585cb4ae4b2147a})}, - {false, -142, MType({0xc5351d729060644e, 0xd8687aef4b0d41ed})}, - {false, -142, MType({0x614162e1e12e445d, 0xdb4b2aaac71c09c7})}, - {false, -142, MType({0x44a652eadf8ede85, 0xde2dda7d58dfdd66})}, - {false, -142, MType({0x3eb1e02af3e52c3c, 0xe1108a67005a2e29})}, - {false, -142, MType({0x415335a253a82aa2, 0xe3f33a67bd8c6d6f})}, - {false, -142, MType({0x611abb0833305fe1, 0xe6d5ea7f90780c97})}, + {Sign::NEG, -142, MType({0x26f2c63c0827ccbb, 0xe6d3a96b978fc16e})}, + {Sign::NEG, -142, MType({0x4b56fe667c8ec091, 0xe3f107a9fbfc50ca})}, + {Sign::NEG, -142, MType({0x647d76181aec10fc, 0xe10e65d14b937265})}, + {Sign::NEG, -142, MType({0x99e8f4d5379eca79, 0xde2bc3e18653b4f5})}, + {Sign::NEG, -142, MType({0xf07da89990c20623, 0xdb4921daac3ba730})}, + {Sign::NEG, -142, MType({0x4a8121848531851a, 0xd8667fbcbd49d7cd})}, + {Sign::NEG, -142, MType({0x679a4d854ae13619, 0xd583dd87b97cd580})}, + {Sign::NEG, -142, MType({0xe4d174072487a514, 0xd2a13b3ba0d32eff})}, + {Sign::NEG, -142, MType({0x3c90319d969b54be, 0xcfbe98d8734b7301})}, + {Sign::NEG, -142, MType({0xc6a173b09ba301e6, 0xccdbf65e30e43039})}, + {Sign::NEG, -142, MType({0xb8317428d7d8d06b, 0xc9f953ccd99bf55e})}, + {Sign::NEG, -142, MType({0x23cdb51bcc2061cd, 0xc716b1246d715125})}, + {Sign::NEG, -142, MType({0xf964fc78084fd515, 0xc4340e64ec62d241})}, + {Sign::NEG, -142, MType({0x6474fb15ccbb015, 0xc1516b8e566f076a})}, + {Sign::NEG, -142, MType({0xf525ef6d0b75b1c3, 0xbe6ec8a0ab947f51})}, + {Sign::NEG, -142, MType({0x4e13532df7ee8da7, 0xbb8c259bebd1c8ae})}, + {Sign::NEG, -142, MType({0x76832500d72a9027, 0xb8a9828017257233})}, + {Sign::NEG, -142, MType({0xb14a3d285e592ba0, 0xb5c6df4d2d8e0a95})}, + {Sign::NEG, -142, MType({0x1e9e9dc9711f6e20, 0xb2e43c032f0a2089})}, + {Sign::NEG, -142, MType({0xbc176e974f255fac, 0xb00198a21b9842c1})}, + {Sign::NEG, -142, MType({0x64acf87fc0f648e6, 0xad1ef529f336fff3})}, + {Sign::NEG, -142, MType({0xd0b8a1574433e1f8, 0xaa3c519ab5e4e6d1})}, + {Sign::NEG, -142, MType({0x95f4e785371c69a9, 0xa759adf463a08610})}, + {Sign::NEG, -142, MType({0x277d5db00363a46f, 0xa4770a36fc686c63})}, + {Sign::NEG, -142, MType({0xd5cea669485ec36c, 0xa1946662803b287c})}, + {Sign::NEG, -142, MType({0xcec66fda04833322, 0x9eb1c276ef174910})}, + {Sign::NEG, -142, MType({0x1da36f6ebe3851db, 0x9bcf1e7448fb5cd2})}, + {Sign::NEG, -142, MType({0xab055d83abfc0d82, 0x98ec7a5a8de5f273})}, + {Sign::NEG, -142, MType({0x3cecf110dbda68e9, 0x9609d629bdd598a8})}, + {Sign::NEG, -142, MType({0x76bbdb565a37e84b, 0x932731e1d8c8de22})}, + {Sign::NEG, -142, MType({0xd934c38857eee4f3, 0x90448d82debe5194})}, + {Sign::NEG, -142, MType({0xc27b427b4fbfc7db, 0x8d61e90ccfb481b1})}, + {Sign::NEG, -142, MType({0x6e13de502b142b39, 0x8a7f447faba9fd2b})}, + {Sign::NEG, -142, MType({0xf4e406206614e2ba, 0x879c9fdb729d52b3})}, + {Sign::NEG, -142, MType({0x4d320daa3312ea6c, 0x84b9fb20248d10fd})}, + {Sign::NEG, -142, MType({0x4aa528fc9d433c1a, 0x81d7564dc177c6b9})}, + {Sign::NEG, -143, MType({0x3c8ad047559b1622, 0xfde962c892b80533})}, + {Sign::NEG, -143, MType({0xacf765a8fc5bcc31, 0xf82418c77870a69f})}, + {Sign::NEG, -143, MType({0xbe238832edd27f20, 0xf25ece9834168f1a})}, + {Sign::NEG, -143, MType({0x2644bfca329b708, 0xec99843ac5a6dc07})}, + {Sign::NEG, -143, MType({0xc6d05a788e614744, 0xe6d439af2d1eaac6})}, + {Sign::NEG, -143, MType({0x133fe9cc57a8c1d0, 0xe10eeef56a7b18bc})}, + {Sign::NEG, -143, MType({0xaa4cb429195fb5dd, 0xdb49a40d7db94348})}, + {Sign::NEG, -143, MType({0x951ef239abbb959, 0xd58458f766d647ce})}, + {Sign::NEG, -143, MType({0x686c430c89143d35, 0xcfbf0db325cf43ad})}, + {Sign::NEG, -143, MType({0xba79c248afd42c12, 0xc9f9c240baa15447})}, + {Sign::NEG, -143, MType({0xad19e0a92f115327, 0xc43476a0254996fd})}, + {Sign::NEG, -143, MType({0xa8ad6ac3b0c99520, 0xbe6f2ad165c5292f})}, + {Sign::NEG, -143, MType({0xd0567d4a9cc5e6a1, 0xb8a9ded47c11283d})}, + {Sign::NEG, -143, MType({0x1f87c654b231443, 0xb2e492a9682ab188})}, + {Sign::NEG, -143, MType({0xd6380b08358051bc, 0xad1f46502a0ee26d})}, + {Sign::NEG, -143, MType({0xa07b024d26d391f6, 0xa759f9c8c1bad84e})}, + {Sign::NEG, -143, MType({0x6ee868cb69e3a7d8, 0xa194ad132f2bb089})}, + {Sign::NEG, -143, MType({0xa6869eff6682f73, 0x9bcf602f725e887d})}, + {Sign::NEG, -143, MType({0xf6a44d559ccf3f61, 0x960a131d8b507d87})}, + {Sign::NEG, -143, MType({0x72066e1d30a8e210, 0x9044c5dd79fead08})}, + {Sign::NEG, -143, MType({0x75ba3245b1b856af, 0x8a7f786f3e66345c})}, + {Sign::NEG, -143, MType({0xb5ac020473ab198f, 0x84ba2ad2d88430e1})}, + {Sign::NEG, -144, MType({0x41127e3a88eb6741, 0xfde9ba1090ab7feb})}, + {Sign::NEG, -144, MType({0xbf80787522aca1c4, 0xf25f1e1f1baffdea})}, + {Sign::NEG, -144, MType({0xaf00688b14fa3adc, 0xe6d481d15210167b})}, + {Sign::NEG, -144, MType({0x4d72837c8ab4d1e5, 0xdb49e52733c60457})}, + {Sign::NEG, -144, MType({0x4e38ac27bb252090, 0xcfbf4820c0cc0236})}, + {Sign::NEG, -144, MType({0xda3661f9292f59e8, 0xc434aabdf91c4ad0})}, + {Sign::NEG, -144, MType({0x8fd0af9bdfd21488, 0xb8aa0cfedcb118de})}, + {Sign::NEG, -144, MType({0x82ee19a9abf0bfa5, 0xad1f6ee36b84a716})}, + {Sign::NEG, -144, MType({0x3cf68d5b5369a251, 0xa194d06ba591302f})}, + {Sign::NEG, -144, MType({0xbcd34f38c977647e, 0x960a31978ad0eede})}, + {Sign::NEG, -144, MType({0x76eee9c9605e2143, 0x8a7f92671b3e1dda})}, + {Sign::NEG, -145, MType({0xaa6a3887f0c803ab, 0xfde9e5b4ada5efae})}, + {Sign::NEG, -145, MType({0x6e25927e582ac191, 0xe6d4a5e27b136f13})}, + {Sign::NEG, -145, MType({0xe2ebcac2f3a8e9eb, 0xcfbf65579eb92f4a})}, + {Sign::NEG, -145, MType({0x9d9acc22d5690751, 0xb8aa2414188ba5bb})}, + {Sign::NEG, -145, MType({0x1e12604b6d4132ef, 0xa194e217e87f47cb})}, + {Sign::NEG, -145, MType({0xcf340d2acb9b92a9, 0x8a7f9f630e888add})}, + {Sign::NEG, -146, MType({0xdc5e49fbde3c520, 0xe6d4b7eb1537c8ae})}, + {Sign::NEG, -146, MType({0xc074c9557c01188, 0xb8aa2f9eb95b9332})}, + {Sign::NEG, -146, MType({0xf0f82818ff9b654f, 0x8a7fa5e109656009})}, + {Sign::NEG, -147, MType({0xd4cd612078bbe9b0, 0xb8aa35640a7c33eb})}, + {Sign::NEG, -148, MType({0xf08cf68f42e09fa0, 0xb8aa3846b33aaecf})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -148, MType({0x68bd0facdf0ddaaf, 0xb8aa3e0c0513f9b1})}, + {Sign::POS, -147, MType({0x192af653dd41575b, 0xb8aa40eeae2ec9b3})}, + {Sign::POS, -146, MType({0x3b5c89842e540a51, 0x8a7fb2dd018e4892})}, + {Sign::POS, -146, MType({0x34ad8ebdd8b2750c, 0xb8aa46b400c0bee3})}, + {Sign::POS, -146, MType({0x70b12bd698e5be74, 0xe6d4dbfc54c5dd1b})}, + {Sign::POS, -145, MType({0x8c7e424efbd90e1, 0x8a7fb95afeda5c46})}, + {Sign::POS, -145, MType({0x31b8eba774a1de77, 0xa19505707dd23344})}, + {Sign::POS, -145, MType({0xee400e8c68838733, 0xb8aa523ea755fe32})}, + {Sign::POS, -145, MType({0xe71fa0b5603bc2f, 0xcfbf9fc57b7147be})}, + {Sign::POS, -145, MType({0x7763c919d8ac65f1, 0xe6d4ee04fa2f9a92})}, + {Sign::POS, -145, MType({0x232b270bb6046ec1, 0xfdea3cfd239c815e})}, + {Sign::POS, -144, MType({0x106f39197e068972, 0x8a7fc656fbe1c368})}, + {Sign::POS, -144, MType({0x4a4a6f4012941bd9, 0x960a6e8bbb581acc})}, + {Sign::POS, -144, MType({0x5bb34c1120b3e54b, 0xa195171cd0370c34})}, + {Sign::POS, -144, MType({0x6bb6731392a3147a, 0xad1fc00a3a845cf9})}, + {Sign::POS, -144, MType({0x2be1268dcee3c8fc, 0xb8aa6953fa45d275})}, + {Sign::POS, -144, MType({0xd84158d5d50251a9, 0xc43512fa0f813201})}, + {Sign::POS, -144, MType({0x3765bda15d0ef0fa, 0xcfbfbcfc7a3c40fa})}, + {Sign::POS, -144, MType({0x9a5ddb55f9cc27d9, 0xdb4a675b3a7cc4b9})}, + {Sign::POS, -144, MType({0xdcba1c593d918775, 0xe6d512165048829b})}, + {Sign::POS, -144, MType({0x648be060e1e30a95, 0xf25fbd2dbba53ffd})}, + {Sign::POS, -144, MType({0x22658dc2f1bcf6e8, 0xfdea68a17c98c23b})}, + {Sign::POS, -143, MType({0x48ad5162fb4a236e, 0x84ba8a38c9946759})}, + {Sign::POS, -143, MType({0xdb7fe3789405ce3a, 0x8a7fe04effad9560})}, + {Sign::POS, -143, MType({0x91b56e2e4f2e5ed8, 0x90453693609acde3})}, + {Sign::POS, -143, MType({0xf8998880c3bb4d76, 0x960a8d05ec5ef390})}, + {Sign::POS, -143, MType({0xe2b878052f67efee, 0x9bcfe3a6a2fce918})}, + {Sign::POS, -143, MType({0x67df399193f707c0, 0xa1953a758477912b})}, + {Sign::POS, -143, MType({0xe51b89e4d5d095e1, 0xa75a917290d1ce78})}, + {Sign::POS, -143, MType({0xfcbbee4edbf9f47d, 0xad1fe89dc80e83b1})}, + {Sign::POS, -143, MType({0x964fbd58b168371b, 0xb2e53ff72a309387})}, + {Sign::POS, -143, MType({0xdea7276ca7acd135, 0xb8aa977eb73ae0aa})}, + {Sign::POS, -143, MType({0x47d33f7e7afc83a6, 0xbe6fef346f304dcd})}, + {Sign::POS, -143, MType({0x892603b377909123, 0xc43547185213bda0})}, + {Sign::POS, -143, MType({0x9f32660aa06239fb, 0xc9fa9f2a5fe812d6})}, + {Sign::POS, -143, MType({0xcbcc5504d7407f6c, 0xcfbff76a98b03021})}, + {Sign::POS, -143, MType({0x9608c44d06402ebe, 0xd5854fd8fc6ef834})}, + {Sign::POS, -143, MType({0xca3db5604a863477, 0xdb4aa8758b274dc1})}, + {Sign::POS, -143, MType({0x7a024036206c37d6, 0xe110014044dc137c})}, + {Sign::POS, -143, MType({0xfc2e9be890ff7ee3, 0xe6d55a3929902c17})}, + {Sign::POS, -143, MType({0xecdc275c60da1b53, 0xec9ab36039467a47})}, + {Sign::POS, -143, MType({0x2d6571e94056607f, 0xf2600cb57401e0c0})}, + {Sign::POS, -143, MType({0xe4664401fd1ca2a7, 0xf8256638d9c54234})}, + {Sign::POS, -143, MType({0x7dbba7dcb50b3fd7, 0xfdeabfea6a93815a})}, + {Sign::POS, -142, MType({0xd541f90d853c794b, 0x81d80ce51337c072})}, + {Sign::POS, -142, MType({0xb08f65392ce8b75b, 0x84bab9ec06ae11c5})}, + {Sign::POS, -142, MType({0x6e969a29f8462436, 0x879d670a0fae2600})}, + {Sign::POS, -142, MType({0xcfc8cbcaa2bf130c, 0x8a80143f2e396e7d})}, + {Sign::POS, -142, MType({0xb737e48c19421e68, 0x8d62c18b62515c98})}, + {Sign::POS, -142, MType({0x2a9689b997c50c0b, 0x90456eeeabf761ac})}, + {Sign::POS, -142, MType({0x52381fccc774d66b, 0x93281c690b2cef13})}, + {Sign::POS, -142, MType({0x7910cec1dd92dc10, 0x960ac9fa7ff37629})}, + {Sign::POS, -142, MType({0xcb5866bbaff34cb, 0x98ed77a30a4c684a})}, + {Sign::POS, -142, MType({0x9d5c02c80c702d11, 0x9bd02562aa3936d0})}, + {Sign::POS, -142, MType({0xdddad0536b56e775, 0x9eb2d3395fbb5318})}, + {Sign::POS, -142, MType({0xa3a9505d7f71247a, 0xa19581272ad42e7e})}, + {Sign::POS, -142, MType({0xe6dfbd5d210830d7, 0xa4782f2c0b853a5d})}, + {Sign::POS, -142, MType({0xc2372f447bdcfa45, 0xa75add4801cfe812})}, + {Sign::POS, -142, MType({0x73099fd532c14b05, 0xaa3d8b7b0db5a8f9})}, + {Sign::POS, -142, MType({0x5951eef483de2c37, 0xad2039c52f37ee6e})}, + {Sign::POS, -142, MType({0xf7abe6ff6da76f1e, 0xb002e826665829cd})}, + {Sign::POS, -142, MType({0xf354411ed47c5d7b, 0xb2e5969eb317cc74})}, + {Sign::POS, -142, MType({0x1428a99ba8f5911f, 0xb5c8452e157847c0})}, + {Sign::POS, -142, MType({0x44a7c4330edff2c8, 0xb8aaf3d48d7b0d0c})}, + {Sign::POS, -142, MType({0x91f1306a84e4e07b, 0xbb8da2921b218db6})}, + {Sign::POS, -142, MType({0x2bc58de40cdf7b6a, 0xbe705166be6d3b1c})}, + {Sign::POS, -142, MType({0x648680b254df1d99, 0xc1530052775f869a})}, + {Sign::POS, -142, MType({0xb136b5ace0d6f74d, 0xc435af5545f9e18e})}, + {Sign::POS, -142, MType({0xa979e6c434fad480, 0xc7185e6f2a3dbd56})}, + {Sign::POS, -142, MType({0x794df5600c90a5a, 0xc9fb0da0242c8b50})}, + {Sign::POS, -142, MType({0xa86d80814ac18cf1, 0xccddbce833c7bcd8})}, + {Sign::POS, -142, MType({0x8b8ac57a9cca2d56, 0xcfc06c475910c34e})}, + {Sign::POS, -142, MType({0xd314c7e03140001f, 0xd2a31bbd9409100f})}, + {Sign::POS, -142, MType({0xc3d4c40e20b5ec89, 0xd585cb4ae4b2147a})}, + {Sign::POS, -142, MType({0xc5351d729060644e, 0xd8687aef4b0d41ed})}, + {Sign::POS, -142, MType({0x614162e1e12e445d, 0xdb4b2aaac71c09c7})}, + {Sign::POS, -142, MType({0x44a652eadf8ede85, 0xde2dda7d58dfdd66})}, + {Sign::POS, -142, MType({0x3eb1e02af3e52c3c, 0xe1108a67005a2e29})}, + {Sign::POS, -142, MType({0x415335a253a82aa2, 0xe3f33a67bd8c6d6f})}, + {Sign::POS, -142, MType({0x611abb0833305fe1, 0xe6d5ea7f90780c97})}, }, // -log2(r) for the fourth step, generated by SageMath with: // // for i in range(-65, 65): // r = 2^-28 * round( 2^28 / (1 + i*2^(-28)) ); // s, m, e = RealField(128)(r).log2().sign_mantissa_exponent(); - // print("{true," if (s == 1) else "{false,", e, ", + // print("{Sign::NEG," if (s == 1) else "{Sign::POS,", e, ", // MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})},"); /* .step_4 = */ { - {true, -149, MType({0xef1bffe565ce0a46, 0xbb8ce2990b5d0b90})}, - {true, -149, MType({0xbea3244560ca3d99, 0xb8aa39b807a576e4})}, - {true, -149, MType({0x8b91f71ceefa31a2, 0xb5c790d6d5c354df})}, - {true, -149, MType({0x9096e3d684001c0e, 0xb2e4e7f575b6a57b})}, - {true, -149, MType({0x86054c794367f36, 0xb0023f13e77f68b3})}, - {true, -149, MType({0x2d9cb33094afe4de, 0xad1f96322b1d9e80})}, - {true, -149, MType({0x3afa673cfb3698f3, 0xaa3ced50409146dd})}, - {true, -149, MType({0x6b27d8033e4c6450, 0xa75a446e27da61c4})}, - {true, -149, MType({0xf8d36b84d52a477b, 0xa4779b8be0f8ef2f})}, - {true, -149, MType({0x1eab86ae37c03565, 0xa194f2a96becef1a})}, - {true, -149, MType({0x175e8d56deb4ce2c, 0x9eb249c6c8b6617d})}, - {true, -149, MType({0x1d9ae241436519da, 0x9bcfa0e3f7554653})}, - {true, -149, MType({0x6c0ee71adfe44325, 0x98ecf800f7c99d96})}, - {true, -149, MType({0x3d68fc7c2efb522f, 0x960a4f1dca136741})}, - {true, -149, MType({0xcc5781e8ac28e749, 0x9327a63a6e32a34d})}, - {true, -149, MType({0x5388d5ced3a0f5af, 0x9044fd56e42751b6})}, - {true, -149, MType({0xdab5588224c7e4a, 0x8d6254732bf17275})}, - {true, -149, MType({0x356d5d5915c94a70, 0x8a7fab8f45910584})}, - {true, -149, MType({0x57d48712c69a6a7, 0x879d02ab31060ade})}, - {true, -149, MType({0xb88970eae5341d60, 0x84ba59c6ee50827c})}, - {true, -149, MType({0x89402fcbbfe331bb, 0x81d7b0e27d706c5a})}, - {true, -150, MType({0x649fba0879ca348b, 0xfdea0ffbbccb90e3})}, - {true, -150, MType({0xdccd9edfbab6f777, 0xf824be3222612d78})}, - {true, -150, MType({0xf066b9aa4636478e, 0xf25f6c682ba1ae69})}, - {true, -150, MType({0x14c7b3cb21578781, 0xec9a1a9dd88d13ab})}, - {true, -150, MType({0xbf4d347b528f56e1, 0xe6d4c8d329235d30})}, - {true, -150, MType({0x6553e0c9e1b70799, 0xe10f77081d648aef})}, - {true, -150, MType({0x7c385b9bd80c1375, 0xdb4a253cb5509cdb})}, - {true, -150, MType({0x795745ac402f919d, 0xd584d370f0e792e9})}, - {true, -150, MType({0xd20d3d8c2625ac1b, 0xcfbf81a4d0296d0d})}, - {true, -150, MType({0xfbb6dfa297551554, 0xc9fa2fd853162b3c})}, - {true, -150, MType({0x6bb0c62ca2867d91, 0xc434de0b79adcd6b})}, - {true, -150, MType({0x9757893d57e40877, 0xbe6f8c3e43f0538d})}, - {true, -150, MType({0xf407bebdc8f8c28e, 0xb8aa3a70b1ddbd97})}, - {true, -150, MType({0xf71dfa6d08b016be, 0xb2e4e8a2c3760b7e})}, - {true, -150, MType({0x15f6cde02b5543ce, 0xad1f96d478b93d37})}, - {true, -150, MType({0xc5eec8824692d1e9, 0xa75a4505d1a752b4})}, - {true, -150, MType({0x7c6277947172081a, 0xa194f336ce404bec})}, - {true, -150, MType({0xaeae662dc45a61ce, 0x9bcfa1676e8428d2})}, - {true, -150, MType({0xd22f1d3b59110455, 0x960a4f97b272e95b})}, - {true, -150, MType({0x5c4123804ab83462, 0x9044fdc79a0c8d7c})}, - {true, -150, MType({0xc240fd95b5cecb89, 0x8a7fabf725511528})}, - {true, -150, MType({0x798b2deab82fadc4, 0x84ba5a2654408055})}, - {true, -151, MType({0xeef86988e2227ddb, 0xfdea10aa4db59ded})}, - {true, -151, MType({0x62e1207c0209b090, 0xf25f6d073a400203})}, - {true, -151, MType({0x3989789113ec7bee, 0xe6d4c9636e202cd4})}, - {true, -151, MType({0x5daa65565e562909, 0xdb4a25bee9561e49})}, - {true, -151, MType({0xb9fcd6062a84acbd, 0xcfbf8219abe1d64b})}, - {true, -151, MType({0x3939b586c46792b3, 0xc434de73b5c354c4})}, - {true, -151, MType({0xc619ea6a7a9ee85e, 0xb8aa3acd06fa999b})}, - {true, -151, MType({0x4b5656ef9e7a27fd, 0xad1f97259f87a4bb})}, - {true, -151, MType({0xb3a7d90083f7239c, 0xa194f37d7f6a760b})}, - {true, -151, MType({0xe9c74a3381c0f016, 0x960a4fd4a6a30d75})}, - {true, -151, MType({0xd86d7fcaf12ed012, 0x8a7fac2b15316ae2})}, - {true, -152, MType({0xd4a6956a5c863e0f, 0xfdea1101962b1c76})}, - {true, -152, MType({0x1462ef192f547877, 0xe6d4c9ab909eeed1})}, - {true, -152, MType({0x45819d2f1d72eb8b, 0xcfbf825419be4ca6})}, - {true, -152, MType({0x3d742790eedbe719, 0xb8aa3afb318935c8})}, - {true, -152, MType({0xd1ac0d7b70d74492, 0xa194f3a0d7ffaa08})}, - {true, -152, MType({0xd79ac58375f83d0c, 0x8a7fac450d21a939})}, - {true, -153, MType({0x49637b2bac367e87, 0xe6d4c9cfa1de665a})}, - {true, -153, MType({0x1cc4b5eedcc78b35, 0xb8aa3b1246d08f69})}, - {true, -153, MType({0xd43bf48a42745836, 0x8a7fac520919cd43})}, - {true, -154, MType({0x3557bdcf592619eb, 0xb8aa3b1dd1743f1c})}, - {true, -155, MType({0x6bdc2e83d3ebb0c4, 0xb8aa3b2396c617ae})}, - {false, 0, MType({0x0, 0x0})}, - {false, -155, MType({0x2d5b40050e44e8ab, 0xb8aa3b2f2169ca44})}, - {false, -154, MType({0xb8560371b8f04afe, 0xb8aa3b34e6bba447})}, - {false, -153, MType({0xc79a43ccc70459cc, 0x8a7fac6c010a1f14})}, - {false, -153, MType({0x22c25632f519f77f, 0xb8aa3b40715f59c0})}, - {false, -153, MType({0x42c10a314e35fb9e, 0xe6d4ca17c45d8282})}, - {false, -152, MType({0xbe5a212ed7b949e4, 0x8a7fac78fd024cdb})}, - {false, -152, MType({0x12dcf94ef5c5b918, 0xa194f3e7892a4fde})}, - {false, -152, MType({0x49781013e57110ce, 0xb8aa3b5786a6ca76})}, - {false, -152, MType({0x8cba70c085c12cb3, 0xcfbf82c8f577bcd2})}, - {false, -152, MType({0x7332f3fb09328b8, 0xe6d4ca3bd59d2721})}, - {false, -152, MType({0xe37168243a9d8b14, 0xfdea11b02717098f})}, - {false, -151, MType({0xa602205479b93722, 0x8a7fac92f4f2b226})}, - {false, -151, MType({0xb5bd735852c0d583, 0x960a504e8f041bc3})}, - {false, -151, MType({0x363248630b0d812d, 0xa194f40ae1bfc1b6})}, - {false, -151, MType({0x3ca83f0e02b823c0, 0xad1f97c7ed25a415})}, - {false, -151, MType({0xde66fb46974bc4fd, 0xb8aa3b85b135c2f7})}, - {false, -151, MType({0x30b6254e23c69fc2, 0xc434df442df01e75})}, - {false, -151, MType({0x48dd69ba009b370c, 0xcfbf83036354b6a4})}, - {false, -151, MType({0x3c24797383b16af5, 0xdb4a26c351638b9c})}, - {false, -151, MType({0x1fd309b800678db7, 0xe6d4ca83f81c9d74})}, - {false, -151, MType({0x930d418c79378a3, 0xf25f6e45577fec43})}, - {false, -151, MType({0xd85967b2783a12c, 0xfdea12076f8d7820})}, - {false, -150, MType({0x210c898c360016ed, 0x84ba5ae52022a091})}, - {false, -150, MType({0x5e19883eef2605ab, 0x8a7facc6e4d3a3b0})}, - {false, -150, MType({0x488dacc6629300ae, 0x9044fea905d9c579})}, - {false, -150, MType({0x6b0cdebd3264e3e3, 0x960a508b833505f7})}, - {false, -150, MType({0x503b07e7ff788dc2, 0x9bcfa26e5ce56536})}, - {false, -150, MType({0x82bc1435696a69d1, 0xa194f45192eae341})}, - {false, -150, MType({0x8d33f1be0e96fb1f, 0xa75a463525458024})}, - {false, -150, MType({0xfa4690c48c1b66c9, 0xad1f981913f53bea})}, - {false, -150, MType({0x5497e3b57dd5fe75, 0xb2e4e9fd5efa16a0})}, - {false, -150, MType({0x26cbdf277e66cad5, 0xb8aa3be206541050})}, - {false, -150, MType({0xfb8679db27301625, 0xbe6f8dc70a032905})}, - {false, -150, MType({0x5d6bacbb1056f6aa, 0xc434dfac6a0760cd})}, - {false, -150, MType({0xd71f72dbd0c3d936, 0xc9fa31922660b7b1})}, - {false, -150, MType({0xf345c97bfe230ba2, 0xcfbf83783f0f2dbe})}, - {false, -150, MType({0x3c82b0042ce54751, 0xd584d55eb412c300})}, - {false, -150, MType({0x3d7a2806f0403bae, 0xdb4a2745856b7781})}, - {false, -150, MType({0x80d03540da2f18ae, 0xe10f792cb3194b4d})}, - {false, -150, MType({0x9128dd987b73194f, 0xe6d4cb143d1c3e70})}, - {false, -150, MType({0xf928291e63940e14, 0xec9a1cfc237450f5})}, - {false, -150, MType({0x4372220d20e0e78a, 0xf25f6ee4662182e9})}, - {false, -150, MType({0xfaaad4c9407040c7, 0xf824c0cd0523d455})}, - {false, -150, MType({0xa9764fe14e20e9e4, 0xfdea12b6007b4547})}, - {false, -149, MType({0xed3c5206ea4d3942, 0x81d7b24fac13eae4})}, - {false, -149, MType({0xc2af218aea6da27, 0x84ba5b448614c2f4})}, - {false, -149, MType({0xf6d912ac383aaeba, 0x879d04398e402ad6})}, - {false, -149, MType({0x7298bf5cca8b3d95, 0x8a7fad2ec4962293})}, - {false, -149, MType({0x44bc04daa8808214, 0x8d6256242916aa2f})}, - {false, -149, MType({0x3294f0eb14683198, 0x9044ff19bbc1c1b0})}, - {false, -149, MType({0x17592684ff600c3, 0x9327a80f7c97691c})}, - {false, -149, MType({0x76aff9419c43e8b9, 0x960a51056b97a078})}, - {false, -149, MType({0x5796367b39d26c63, 0x98ecf9fb88c267cb})}, - {false, -149, MType({0x697a5c2e6888ddaa, 0x9bcfa2f1d417bf1a})}, - {false, -149, MType({0x71ae7d8967b5a2b7, 0x9eb24be84d97a66b})}, - {false, -149, MType({0x3584aecf760e7b39, 0xa194f4def5421dc4})}, - {false, -149, MType({0x7a4f0558d1b0c59e, 0xa4779dd5cb17252a})}, - {false, -149, MType({0x55f9792b821c455, 0xa75a46cccf16bca4})}, - {false, -149, MType({0x9c087cff664ee311, 0xaa3cefc40140e436})}, - {false, -149, MType({0x39bce36188dfc04, 0xad1f98bb61959be8})}, - {false, -149, MType({0x16ba4e30a9d9d21, 0xb00241b2f014e3be})}, - {false, -149, MType({0x5aca1bc777a54d5e, 0xb2e4eaaaacbebbbe})}, - {false, -149, MType({0xd5094eb99a35d1f0, 0xb5c793a2979323ee})}, - {false, -149, MType({0x357b5aa4ac49738d, 0xb8aa3c9ab0921c55})}, + {Sign::NEG, -149, MType({0xef1bffe565ce0a46, 0xbb8ce2990b5d0b90})}, + {Sign::NEG, -149, MType({0xbea3244560ca3d99, 0xb8aa39b807a576e4})}, + {Sign::NEG, -149, MType({0x8b91f71ceefa31a2, 0xb5c790d6d5c354df})}, + {Sign::NEG, -149, MType({0x9096e3d684001c0e, 0xb2e4e7f575b6a57b})}, + {Sign::NEG, -149, MType({0x86054c794367f36, 0xb0023f13e77f68b3})}, + {Sign::NEG, -149, MType({0x2d9cb33094afe4de, 0xad1f96322b1d9e80})}, + {Sign::NEG, -149, MType({0x3afa673cfb3698f3, 0xaa3ced50409146dd})}, + {Sign::NEG, -149, MType({0x6b27d8033e4c6450, 0xa75a446e27da61c4})}, + {Sign::NEG, -149, MType({0xf8d36b84d52a477b, 0xa4779b8be0f8ef2f})}, + {Sign::NEG, -149, MType({0x1eab86ae37c03565, 0xa194f2a96becef1a})}, + {Sign::NEG, -149, MType({0x175e8d56deb4ce2c, 0x9eb249c6c8b6617d})}, + {Sign::NEG, -149, MType({0x1d9ae241436519da, 0x9bcfa0e3f7554653})}, + {Sign::NEG, -149, MType({0x6c0ee71adfe44325, 0x98ecf800f7c99d96})}, + {Sign::NEG, -149, MType({0x3d68fc7c2efb522f, 0x960a4f1dca136741})}, + {Sign::NEG, -149, MType({0xcc5781e8ac28e749, 0x9327a63a6e32a34d})}, + {Sign::NEG, -149, MType({0x5388d5ced3a0f5af, 0x9044fd56e42751b6})}, + {Sign::NEG, -149, MType({0xdab5588224c7e4a, 0x8d6254732bf17275})}, + {Sign::NEG, -149, MType({0x356d5d5915c94a70, 0x8a7fab8f45910584})}, + {Sign::NEG, -149, MType({0x57d48712c69a6a7, 0x879d02ab31060ade})}, + {Sign::NEG, -149, MType({0xb88970eae5341d60, 0x84ba59c6ee50827c})}, + {Sign::NEG, -149, MType({0x89402fcbbfe331bb, 0x81d7b0e27d706c5a})}, + {Sign::NEG, -150, MType({0x649fba0879ca348b, 0xfdea0ffbbccb90e3})}, + {Sign::NEG, -150, MType({0xdccd9edfbab6f777, 0xf824be3222612d78})}, + {Sign::NEG, -150, MType({0xf066b9aa4636478e, 0xf25f6c682ba1ae69})}, + {Sign::NEG, -150, MType({0x14c7b3cb21578781, 0xec9a1a9dd88d13ab})}, + {Sign::NEG, -150, MType({0xbf4d347b528f56e1, 0xe6d4c8d329235d30})}, + {Sign::NEG, -150, MType({0x6553e0c9e1b70799, 0xe10f77081d648aef})}, + {Sign::NEG, -150, MType({0x7c385b9bd80c1375, 0xdb4a253cb5509cdb})}, + {Sign::NEG, -150, MType({0x795745ac402f919d, 0xd584d370f0e792e9})}, + {Sign::NEG, -150, MType({0xd20d3d8c2625ac1b, 0xcfbf81a4d0296d0d})}, + {Sign::NEG, -150, MType({0xfbb6dfa297551554, 0xc9fa2fd853162b3c})}, + {Sign::NEG, -150, MType({0x6bb0c62ca2867d91, 0xc434de0b79adcd6b})}, + {Sign::NEG, -150, MType({0x9757893d57e40877, 0xbe6f8c3e43f0538d})}, + {Sign::NEG, -150, MType({0xf407bebdc8f8c28e, 0xb8aa3a70b1ddbd97})}, + {Sign::NEG, -150, MType({0xf71dfa6d08b016be, 0xb2e4e8a2c3760b7e})}, + {Sign::NEG, -150, MType({0x15f6cde02b5543ce, 0xad1f96d478b93d37})}, + {Sign::NEG, -150, MType({0xc5eec8824692d1e9, 0xa75a4505d1a752b4})}, + {Sign::NEG, -150, MType({0x7c6277947172081a, 0xa194f336ce404bec})}, + {Sign::NEG, -150, MType({0xaeae662dc45a61ce, 0x9bcfa1676e8428d2})}, + {Sign::NEG, -150, MType({0xd22f1d3b59110455, 0x960a4f97b272e95b})}, + {Sign::NEG, -150, MType({0x5c4123804ab83462, 0x9044fdc79a0c8d7c})}, + {Sign::NEG, -150, MType({0xc240fd95b5cecb89, 0x8a7fabf725511528})}, + {Sign::NEG, -150, MType({0x798b2deab82fadc4, 0x84ba5a2654408055})}, + {Sign::NEG, -151, MType({0xeef86988e2227ddb, 0xfdea10aa4db59ded})}, + {Sign::NEG, -151, MType({0x62e1207c0209b090, 0xf25f6d073a400203})}, + {Sign::NEG, -151, MType({0x3989789113ec7bee, 0xe6d4c9636e202cd4})}, + {Sign::NEG, -151, MType({0x5daa65565e562909, 0xdb4a25bee9561e49})}, + {Sign::NEG, -151, MType({0xb9fcd6062a84acbd, 0xcfbf8219abe1d64b})}, + {Sign::NEG, -151, MType({0x3939b586c46792b3, 0xc434de73b5c354c4})}, + {Sign::NEG, -151, MType({0xc619ea6a7a9ee85e, 0xb8aa3acd06fa999b})}, + {Sign::NEG, -151, MType({0x4b5656ef9e7a27fd, 0xad1f97259f87a4bb})}, + {Sign::NEG, -151, MType({0xb3a7d90083f7239c, 0xa194f37d7f6a760b})}, + {Sign::NEG, -151, MType({0xe9c74a3381c0f016, 0x960a4fd4a6a30d75})}, + {Sign::NEG, -151, MType({0xd86d7fcaf12ed012, 0x8a7fac2b15316ae2})}, + {Sign::NEG, -152, MType({0xd4a6956a5c863e0f, 0xfdea1101962b1c76})}, + {Sign::NEG, -152, MType({0x1462ef192f547877, 0xe6d4c9ab909eeed1})}, + {Sign::NEG, -152, MType({0x45819d2f1d72eb8b, 0xcfbf825419be4ca6})}, + {Sign::NEG, -152, MType({0x3d742790eedbe719, 0xb8aa3afb318935c8})}, + {Sign::NEG, -152, MType({0xd1ac0d7b70d74492, 0xa194f3a0d7ffaa08})}, + {Sign::NEG, -152, MType({0xd79ac58375f83d0c, 0x8a7fac450d21a939})}, + {Sign::NEG, -153, MType({0x49637b2bac367e87, 0xe6d4c9cfa1de665a})}, + {Sign::NEG, -153, MType({0x1cc4b5eedcc78b35, 0xb8aa3b1246d08f69})}, + {Sign::NEG, -153, MType({0xd43bf48a42745836, 0x8a7fac520919cd43})}, + {Sign::NEG, -154, MType({0x3557bdcf592619eb, 0xb8aa3b1dd1743f1c})}, + {Sign::NEG, -155, MType({0x6bdc2e83d3ebb0c4, 0xb8aa3b2396c617ae})}, + {Sign::POS, 0, MType({0x0, 0x0})}, + {Sign::POS, -155, MType({0x2d5b40050e44e8ab, 0xb8aa3b2f2169ca44})}, + {Sign::POS, -154, MType({0xb8560371b8f04afe, 0xb8aa3b34e6bba447})}, + {Sign::POS, -153, MType({0xc79a43ccc70459cc, 0x8a7fac6c010a1f14})}, + {Sign::POS, -153, MType({0x22c25632f519f77f, 0xb8aa3b40715f59c0})}, + {Sign::POS, -153, MType({0x42c10a314e35fb9e, 0xe6d4ca17c45d8282})}, + {Sign::POS, -152, MType({0xbe5a212ed7b949e4, 0x8a7fac78fd024cdb})}, + {Sign::POS, -152, MType({0x12dcf94ef5c5b918, 0xa194f3e7892a4fde})}, + {Sign::POS, -152, MType({0x49781013e57110ce, 0xb8aa3b5786a6ca76})}, + {Sign::POS, -152, MType({0x8cba70c085c12cb3, 0xcfbf82c8f577bcd2})}, + {Sign::POS, -152, MType({0x7332f3fb09328b8, 0xe6d4ca3bd59d2721})}, + {Sign::POS, -152, MType({0xe37168243a9d8b14, 0xfdea11b02717098f})}, + {Sign::POS, -151, MType({0xa602205479b93722, 0x8a7fac92f4f2b226})}, + {Sign::POS, -151, MType({0xb5bd735852c0d583, 0x960a504e8f041bc3})}, + {Sign::POS, -151, MType({0x363248630b0d812d, 0xa194f40ae1bfc1b6})}, + {Sign::POS, -151, MType({0x3ca83f0e02b823c0, 0xad1f97c7ed25a415})}, + {Sign::POS, -151, MType({0xde66fb46974bc4fd, 0xb8aa3b85b135c2f7})}, + {Sign::POS, -151, MType({0x30b6254e23c69fc2, 0xc434df442df01e75})}, + {Sign::POS, -151, MType({0x48dd69ba009b370c, 0xcfbf83036354b6a4})}, + {Sign::POS, -151, MType({0x3c24797383b16af5, 0xdb4a26c351638b9c})}, + {Sign::POS, -151, MType({0x1fd309b800678db7, 0xe6d4ca83f81c9d74})}, + {Sign::POS, -151, MType({0x930d418c79378a3, 0xf25f6e45577fec43})}, + {Sign::POS, -151, MType({0xd85967b2783a12c, 0xfdea12076f8d7820})}, + {Sign::POS, -150, MType({0x210c898c360016ed, 0x84ba5ae52022a091})}, + {Sign::POS, -150, MType({0x5e19883eef2605ab, 0x8a7facc6e4d3a3b0})}, + {Sign::POS, -150, MType({0x488dacc6629300ae, 0x9044fea905d9c579})}, + {Sign::POS, -150, MType({0x6b0cdebd3264e3e3, 0x960a508b833505f7})}, + {Sign::POS, -150, MType({0x503b07e7ff788dc2, 0x9bcfa26e5ce56536})}, + {Sign::POS, -150, MType({0x82bc1435696a69d1, 0xa194f45192eae341})}, + {Sign::POS, -150, MType({0x8d33f1be0e96fb1f, 0xa75a463525458024})}, + {Sign::POS, -150, MType({0xfa4690c48c1b66c9, 0xad1f981913f53bea})}, + {Sign::POS, -150, MType({0x5497e3b57dd5fe75, 0xb2e4e9fd5efa16a0})}, + {Sign::POS, -150, MType({0x26cbdf277e66cad5, 0xb8aa3be206541050})}, + {Sign::POS, -150, MType({0xfb8679db27301625, 0xbe6f8dc70a032905})}, + {Sign::POS, -150, MType({0x5d6bacbb1056f6aa, 0xc434dfac6a0760cd})}, + {Sign::POS, -150, MType({0xd71f72dbd0c3d936, 0xc9fa31922660b7b1})}, + {Sign::POS, -150, MType({0xf345c97bfe230ba2, 0xcfbf83783f0f2dbe})}, + {Sign::POS, -150, MType({0x3c82b0042ce54751, 0xd584d55eb412c300})}, + {Sign::POS, -150, MType({0x3d7a2806f0403bae, 0xdb4a2745856b7781})}, + {Sign::POS, -150, MType({0x80d03540da2f18ae, 0xe10f792cb3194b4d})}, + {Sign::POS, -150, MType({0x9128dd987b73194f, 0xe6d4cb143d1c3e70})}, + {Sign::POS, -150, MType({0xf928291e63940e14, 0xec9a1cfc237450f5})}, + {Sign::POS, -150, MType({0x4372220d20e0e78a, 0xf25f6ee4662182e9})}, + {Sign::POS, -150, MType({0xfaaad4c9407040c7, 0xf824c0cd0523d455})}, + {Sign::POS, -150, MType({0xa9764fe14e20e9e4, 0xfdea12b6007b4547})}, + {Sign::POS, -149, MType({0xed3c5206ea4d3942, 0x81d7b24fac13eae4})}, + {Sign::POS, -149, MType({0xc2af218aea6da27, 0x84ba5b448614c2f4})}, + {Sign::POS, -149, MType({0xf6d912ac383aaeba, 0x879d04398e402ad6})}, + {Sign::POS, -149, MType({0x7298bf5cca8b3d95, 0x8a7fad2ec4962293})}, + {Sign::POS, -149, MType({0x44bc04daa8808214, 0x8d6256242916aa2f})}, + {Sign::POS, -149, MType({0x3294f0eb14683198, 0x9044ff19bbc1c1b0})}, + {Sign::POS, -149, MType({0x17592684ff600c3, 0x9327a80f7c97691c})}, + {Sign::POS, -149, MType({0x76aff9419c43e8b9, 0x960a51056b97a078})}, + {Sign::POS, -149, MType({0x5796367b39d26c63, 0x98ecf9fb88c267cb})}, + {Sign::POS, -149, MType({0x697a5c2e6888ddaa, 0x9bcfa2f1d417bf1a})}, + {Sign::POS, -149, MType({0x71ae7d8967b5a2b7, 0x9eb24be84d97a66b})}, + {Sign::POS, -149, MType({0x3584aecf760e7b39, 0xa194f4def5421dc4})}, + {Sign::POS, -149, MType({0x7a4f0558d1b0c59e, 0xa4779dd5cb17252a})}, + {Sign::POS, -149, MType({0x55f9792b821c455, 0xa75a46cccf16bca4})}, + {Sign::POS, -149, MType({0x9c087cff664ee311, 0xaa3cefc40140e436})}, + {Sign::POS, -149, MType({0x39bce36188dfc04, 0xad1f98bb61959be8})}, + {Sign::POS, -149, MType({0x16ba4e30a9d9d21, 0xb00241b2f014e3be})}, + {Sign::POS, -149, MType({0x5aca1bc777a54d5e, 0xb2e4eaaaacbebbbe})}, + {Sign::POS, -149, MType({0xd5094eb99a35d1f0, 0xb5c793a2979323ee})}, + {Sign::POS, -149, MType({0x357b5aa4ac49738d, 0xb8aa3c9ab0921c55})}, }}; // > P = fpminimax(log2(1 + x)/x, 3, [|128...|], [-0x1.0002143p-29 , 0x1p-29]); @@ -823,10 +824,10 @@ const LogRR LOG2_TABLE = { // > dirtyinfnorm(log2(1 + x)/x - P, [-0x1.0002143p-29 , 0x1p-29]); // 0x1.27ad5...p-121 const Float128 BIG_COEFFS[4]{ - {true, -129, MType({0x3eccf6940d66bbcc, 0xb8aa3b295c2b21e3})}, - {false, -129, MType({0xee39a6d649394bb1, 0xf6384ee1d01febc9})}, - {true, -128, MType({0xbe87fed067ea2ad5, 0xb8aa3b295c17f0bb})}, - {false, -127, MType({0xbe87fed0691d3e3f, 0xb8aa3b295c17f0bb})}, + {Sign::NEG, -129, MType({0x3eccf6940d66bbcc, 0xb8aa3b295c2b21e3})}, + {Sign::POS, -129, MType({0xee39a6d649394bb1, 0xf6384ee1d01febc9})}, + {Sign::NEG, -128, MType({0xbe87fed067ea2ad5, 0xb8aa3b295c17f0bb})}, + {Sign::POS, -127, MType({0xbe87fed0691d3e3f, 0xb8aa3b295c17f0bb})}, }; // Reuse the output of the fast pass range reduction. diff --git a/libc/src/math/generic/log_range_reduction.h b/libc/src/math/generic/log_range_reduction.h index f04012c1d58376..8c9b7d2eabebef 100644 --- a/libc/src/math/generic/log_range_reduction.h +++ b/libc/src/math/generic/log_range_reduction.h @@ -37,6 +37,7 @@ log_range_reduction(double m_x, const LogRR &log_table, fputil::DyadicFloat<128> &sum) { using Float128 = typename fputil::DyadicFloat<128>; using MType = typename Float128::MantissaType; + using Sign = fputil::Sign; int64_t v = static_cast(m_x * 0x1.0p60); // ulp = 2^-60 @@ -79,10 +80,10 @@ log_range_reduction(double m_x, const LogRR &log_table, // |vv4| < 2^-28, ulp = 2^-125 Int128 vv4 = (spv4 << 28) + sv4; - return (vv4 < 0) ? Float128(true, -125, + return (vv4 < 0) ? Float128(Sign::NEG, -125, MType({static_cast(-vv4), static_cast((-vv4) >> 64)})) - : Float128(false, -125, + : Float128(Sign::POS, -125, MType({static_cast(vv4), static_cast(vv4 >> 64)})); } diff --git a/libc/test/src/__support/FPUtil/dyadic_float_test.cpp b/libc/test/src/__support/FPUtil/dyadic_float_test.cpp index 8fafa767ae38e3..3d70fb926b0f1e 100644 --- a/libc/test/src/__support/FPUtil/dyadic_float_test.cpp +++ b/libc/test/src/__support/FPUtil/dyadic_float_test.cpp @@ -15,9 +15,10 @@ using Float128 = LIBC_NAMESPACE::fputil::DyadicFloat<128>; using Float192 = LIBC_NAMESPACE::fputil::DyadicFloat<192>; using Float256 = LIBC_NAMESPACE::fputil::DyadicFloat<256>; +using Sign = LIBC_NAMESPACE::fputil::Sign; TEST(LlvmLibcDyadicFloatTest, BasicConversions) { - Float128 x(/*sign*/ false, /*exponent*/ 0, + Float128 x(Sign::POS, /*exponent*/ 0, /*mantissa*/ Float128::MantissaType(1)); volatile float xf = float(x); volatile double xd = double(x); @@ -37,7 +38,7 @@ TEST(LlvmLibcDyadicFloatTest, BasicConversions) { } TEST(LlvmLibcDyadicFloatTest, QuickAdd) { - Float192 x(/*sign*/ false, /*exponent*/ 0, + Float192 x(Sign::POS, /*exponent*/ 0, /*mantissa*/ Float192::MantissaType(0x123456)); volatile double xd = double(x); ASSERT_FP_EQ(0x1.23456p20, xd); @@ -52,7 +53,7 @@ TEST(LlvmLibcDyadicFloatTest, QuickAdd) { } TEST(LlvmLibcDyadicFloatTest, QuickMul) { - Float256 x(/*sign*/ false, /*exponent*/ 0, + Float256 x(Sign::POS, /*exponent*/ 0, /*mantissa*/ Float256::MantissaType(0x123456)); volatile double xd = double(x); ASSERT_FP_EQ(0x1.23456p20, xd);