diff options
author | Matti Picus <matti.picus@gmail.com> | 2022-03-23 09:14:07 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-23 09:14:07 -0600 |
commit | 4973914d951389846b4f523b97e66c59148e3ae3 (patch) | |
tree | ee13cce7aca3a3d54d3f5249ddbcfba385a7531b /numpy/core | |
parent | 982fcd381b71dc6668ad7841cd51dd6061d10c07 (diff) | |
parent | b3eed1459ccd97255e9868d43b4a8d937a5f9d4c (diff) | |
download | numpy-4973914d951389846b4f523b97e66c59148e3ae3.tar.gz |
Merge pull request #20991 from r-devulap/exp-log-svml
ENH: Use SVML for f64 exp and log
Diffstat (limited to 'numpy/core')
-rw-r--r-- | numpy/core/src/common/npy_svml.h | 4 | ||||
-rw-r--r-- | numpy/core/src/umath/loops_exponent_log.dispatch.c.src | 74 | ||||
-rw-r--r-- | numpy/core/src/umath/npy_simd_data.h | 4 | ||||
-rw-r--r-- | numpy/core/tests/data/umath-validation-set-exp.csv | 476 | ||||
-rw-r--r-- | numpy/core/tests/data/umath-validation-set-log.csv | 294 | ||||
-rw-r--r-- | numpy/core/tests/test_umath.py | 13 |
6 files changed, 468 insertions, 397 deletions
diff --git a/numpy/core/src/common/npy_svml.h b/numpy/core/src/common/npy_svml.h index 4292f7090..1111025d7 100644 --- a/numpy/core/src/common/npy_svml.h +++ b/numpy/core/src/common/npy_svml.h @@ -1,5 +1,7 @@ #if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) +extern __m512 __svml_expf16(__m512 x); extern __m512 __svml_exp2f16(__m512 x); +extern __m512 __svml_logf16(__m512 x); extern __m512 __svml_log2f16(__m512 x); extern __m512 __svml_log10f16(__m512 x); extern __m512 __svml_expm1f16(__m512 x); @@ -19,7 +21,9 @@ extern __m512 __svml_asinhf16(__m512 x); extern __m512 __svml_acoshf16(__m512 x); extern __m512 __svml_atanhf16(__m512 x); +extern __m512d __svml_exp8(__m512d x); extern __m512d __svml_exp28(__m512d x); +extern __m512d __svml_log8(__m512d x); extern __m512d __svml_log28(__m512d x); extern __m512d __svml_log108(__m512d x); extern __m512d __svml_expm18(__m512d x); diff --git a/numpy/core/src/umath/loops_exponent_log.dispatch.c.src b/numpy/core/src/umath/loops_exponent_log.dispatch.c.src index 2dd43fb85..8f123a48b 100644 --- a/numpy/core/src/umath/loops_exponent_log.dispatch.c.src +++ b/numpy/core/src/umath/loops_exponent_log.dispatch.c.src @@ -11,6 +11,7 @@ #include "numpy/npy_math.h" #include "simd/simd.h" +#include "npy_svml.h" #include "loops_utils.h" #include "loops.h" #include "lowlevel_strided_loops.h" @@ -459,11 +460,12 @@ simd_exp_FLOAT(npy_float * op, @vtype@ cvt_magic = _mm@vsize@_set1_ps(NPY_RINT_CVT_MAGICf); @vtype@ log2e = _mm@vsize@_set1_ps(NPY_LOG2Ef); @vtype@ inf = _mm@vsize@_set1_ps(NPY_INFINITYF); + @vtype@ ninf = _mm@vsize@_set1_ps(-1*NPY_INFINITYF); @vtype@ zeros_f = _mm@vsize@_set1_ps(0.0f); @vtype@ poly, num_poly, denom_poly, quadrant; @vtype@i vindex = _mm@vsize@_loadu_si@vsize@((@vtype@i*)&indexarr[0]); - @mask@ xmax_mask, xmin_mask, nan_mask, inf_mask; + @mask@ xmax_mask, xmin_mask, nan_mask, inf_mask, ninf_mask; @mask@ overflow_mask = @isa@_get_partial_load_mask_ps(0, num_lanes); @mask@ underflow_mask = @isa@_get_partial_load_mask_ps(0, num_lanes); @mask@ load_mask = @isa@_get_full_load_mask_ps(); @@ -490,9 +492,11 @@ simd_exp_FLOAT(npy_float * op, xmax_mask = _mm@vsize@_cmp_ps@vsub@(x, _mm@vsize@_set1_ps(xmax), _CMP_GE_OQ); xmin_mask = _mm@vsize@_cmp_ps@vsub@(x, _mm@vsize@_set1_ps(xmin), _CMP_LE_OQ); inf_mask = _mm@vsize@_cmp_ps@vsub@(x, inf, _CMP_EQ_OQ); + ninf_mask = _mm@vsize@_cmp_ps@vsub@(x, ninf, _CMP_EQ_OQ); overflow_mask = @or_masks@(overflow_mask, @xor_masks@(xmax_mask, inf_mask)); - underflow_mask = @or_masks@(underflow_mask, xmin_mask); + underflow_mask = @or_masks@(underflow_mask, + @xor_masks@(xmin_mask, ninf_mask)); x = @isa@_set_masked_lanes_ps(x, zeros_f, @or_masks@( @or_masks@(nan_mask, xmin_mask), xmax_mask)); @@ -688,6 +692,43 @@ simd_log_FLOAT(npy_float * op, #endif // @CHK@ /**end repeat**/ +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) +/**begin repeat + * #func = exp, log# + * #default_val = 0, 1# + */ +static void +simd_@func@_f64(const npyv_lanetype_f64 *src, npy_intp ssrc, + npyv_lanetype_f64 *dst, npy_intp sdst, npy_intp len) +{ + const int vstep = npyv_nlanes_f64; + for (; len > 0; len -= vstep, src += ssrc*vstep, dst += sdst*vstep) { + npyv_f64 x; +#if @default_val@ + if (ssrc == 1) { + x = npyv_load_till_f64(src, len, @default_val@); + } else { + x = npyv_loadn_till_f64(src, ssrc, len, @default_val@); + } +#else + if (ssrc == 1) { + x = npyv_load_tillz_f64(src, len); + } else { + x = npyv_loadn_tillz_f64(src, ssrc, len); + } +#endif + npyv_f64 out = __svml_@func@8(x); + if (sdst == 1) { + npyv_store_till_f64(dst, len, out); + } else { + npyv_storen_till_f64(dst, sdst, len, out); + } + } + npyv_cleanup(); +} +/**end repeat**/ + +#else #ifdef SIMD_AVX512F_NOCLANG_BUG /* * Vectorized implementation of exp double using AVX512 @@ -732,6 +773,7 @@ AVX512F_exp_DOUBLE(npy_double * op, __m512d mTH_max = _mm512_set1_pd(0x1.62e42fefa39efp+9); __m512d mTH_min = _mm512_set1_pd(-0x1.74910d52d3053p+9); __m512d mTH_inf = _mm512_set1_pd(NPY_INFINITY); + __m512d mTH_ninf = _mm512_set1_pd(-NPY_INFINITY); __m512d zeros_d = _mm512_set1_pd(0.0f); __m512d ones_d = _mm512_set1_pd(1.0f); __m256i vindex = _mm256_loadu_si256((__m256i*)&indexarr[0]); @@ -748,7 +790,7 @@ AVX512F_exp_DOUBLE(npy_double * op, __mmask8 overflow_mask = avx512_get_partial_load_mask_pd(0, num_lanes); __mmask8 underflow_mask = avx512_get_partial_load_mask_pd(0, num_lanes); __mmask8 load_mask = avx512_get_full_load_mask_pd(); - __mmask8 xmin_mask, xmax_mask, inf_mask, nan_mask, nearzero_mask; + __mmask8 xmin_mask, xmax_mask, inf_mask, ninf_mask, nan_mask, nearzero_mask; while (num_remaining_elements > 0) { if (num_remaining_elements < num_lanes) { @@ -769,6 +811,7 @@ AVX512F_exp_DOUBLE(npy_double * op, xmax_mask = _mm512_cmp_pd_mask(x, mTH_max, _CMP_GT_OQ); xmin_mask = _mm512_cmp_pd_mask(x, mTH_min, _CMP_LT_OQ); inf_mask = _mm512_cmp_pd_mask(x, mTH_inf, _CMP_EQ_OQ); + ninf_mask = _mm512_cmp_pd_mask(x, mTH_ninf, _CMP_EQ_OQ); __m512i x_abs = _mm512_and_epi64(_mm512_castpd_si512(x), _mm512_set1_epi64(0x7FFFFFFFFFFFFFFF)); nearzero_mask = _mm512_cmp_pd_mask(_mm512_castsi512_pd(x_abs), @@ -776,7 +819,8 @@ AVX512F_exp_DOUBLE(npy_double * op, nearzero_mask = _mm512_kxor(nearzero_mask, nan_mask); overflow_mask = _mm512_kor(overflow_mask, _mm512_kxor(xmax_mask, inf_mask)); - underflow_mask = _mm512_kor(underflow_mask, xmin_mask); + underflow_mask = _mm512_kor(underflow_mask, + _mm512_kxor(xmin_mask, ninf_mask)); x = avx512_set_masked_lanes_pd(x, zeros_d, _mm512_kor(_mm512_kor(nan_mask, xmin_mask), _mm512_kor(xmax_mask, nearzero_mask))); @@ -1080,7 +1124,8 @@ AVX512F_log_DOUBLE(npy_double * op, #undef WORKAROUND_LLVM__mm512_mask_mul_pd -#endif // AVX512F_NOCLANG_BUG +#endif // SIMD_AVX512F_NOCLANG_BUG +#endif // NPY_CAN_LINK_SVML #ifdef SIMD_AVX512_SKX /**begin repeat @@ -1293,17 +1338,34 @@ NPY_NO_EXPORT void NPY_CPU_DISPATCH_CURFX(FLOAT_@func@) NPY_NO_EXPORT void NPY_CPU_DISPATCH_CURFX(DOUBLE_@func@) (char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(data)) { +#if NPY_SIMD && defined(NPY_HAVE_AVX512_SKX) && defined(NPY_CAN_LINK_SVML) + const npy_double *src = (npy_double*)args[0]; + npy_double *dst = (npy_double*)args[1]; + const int lsize = sizeof(src[0]); + const npy_intp ssrc = steps[0] / lsize; + const npy_intp sdst = steps[1] / lsize; + const npy_intp len = dimensions[0]; + assert(steps[0] % lsize == 0 && steps[1] % lsize == 0); + if (!is_mem_overlap(src, steps[0], dst, steps[1], len) && + npyv_loadable_stride_f64(ssrc) && + npyv_storable_stride_f64(sdst)) { + simd_@func@_f64(src, ssrc, dst, sdst, len); + return; + } +#else #ifdef SIMD_AVX512F_NOCLANG_BUG if (IS_OUTPUT_BLOCKABLE_UNARY(sizeof(npy_double), sizeof(npy_double), 64)) { AVX512F_@func@_DOUBLE((npy_double*)args[1], (npy_double*)args[0], dimensions[0], steps[0]); return; } -#endif +#endif // SIMD_AVX512F_NOCLANG_BUG +#endif // NPY_CAN_LINK_SVML UNARY_LOOP { const npy_double in1 = *(npy_double *)ip1; *(npy_double *)op1 = @scalar@(in1); } } + /**end repeat**/ /**begin repeat diff --git a/numpy/core/src/umath/npy_simd_data.h b/numpy/core/src/umath/npy_simd_data.h index 62438d7a3..43640a2d6 100644 --- a/numpy/core/src/umath/npy_simd_data.h +++ b/numpy/core/src/umath/npy_simd_data.h @@ -15,6 +15,7 @@ #define NPY_TANG_A4 0x1.11115b7aa905ep-7 #define NPY_TANG_A5 0x1.6c1728d739765p-10 +#if !defined NPY_HAVE_AVX512_SKX || !defined NPY_CAN_LINK_SVML /* Lookup table for 2^(j/32) */ static npy_uint64 EXP_Table_top[32] = { 0x3FF0000000000000, @@ -85,6 +86,7 @@ static npy_uint64 EXP_Table_tail[32] = { 0x3CF9858F73A18F5E, 0x3C99D3E12DD8A18B, }; +#endif //#if !defined NPY_HAVE_AVX512_SKX || !defined NPY_CAN_LINK_SVML #endif #endif @@ -128,6 +130,7 @@ static npy_uint64 EXP_Table_tail[32] = { */ #if defined NPY_HAVE_AVX512F #if !(defined(__clang__) && (__clang_major__ < 10 || (__clang_major__ == 10 && __clang_minor__ < 1))) +#if !defined NPY_HAVE_AVX512_SKX || !defined NPY_CAN_LINK_SVML static npy_uint64 LOG_TABLE_TOP[64] = { 0x0000000000000000, 0x3F8FC0A8B1000000, @@ -261,6 +264,7 @@ static npy_uint64 LOG_TABLE_TAIL[64] = { 0x3D6F2CFB29AAA5F0, 0x3D66757006095FD2, }; +#endif //#if !defined NPY_HAVE_AVX512_SKX || !defined NPY_CAN_LINK_SVML #define NPY_TANG_LOG_A1 0x1.55555555554e6p-4 #define NPY_TANG_LOG_A2 0x1.9999999bac6d4p-7 diff --git a/numpy/core/tests/data/umath-validation-set-exp.csv b/numpy/core/tests/data/umath-validation-set-exp.csv index 7c5ef3b33..071fb3129 100644 --- a/numpy/core/tests/data/umath-validation-set-exp.csv +++ b/numpy/core/tests/data/umath-validation-set-exp.csv @@ -135,278 +135,278 @@ np.float32,0xc2867878,0x0effff15,3 np.float32,0xc2a2324a,0x04fffff4,3 #float64 ## near zero ## -np.float64,0x8000000000000000,0x3ff0000000000000,1 -np.float64,0x8010000000000000,0x3ff0000000000000,1 -np.float64,0x8000000000000001,0x3ff0000000000000,1 -np.float64,0x8360000000000000,0x3ff0000000000000,1 -np.float64,0x9a70000000000000,0x3ff0000000000000,1 -np.float64,0xb9b0000000000000,0x3ff0000000000000,1 -np.float64,0xb810000000000000,0x3ff0000000000000,1 -np.float64,0xbc30000000000000,0x3ff0000000000000,1 -np.float64,0xb6a0000000000000,0x3ff0000000000000,1 -np.float64,0x0000000000000000,0x3ff0000000000000,1 -np.float64,0x0010000000000000,0x3ff0000000000000,1 -np.float64,0x0000000000000001,0x3ff0000000000000,1 -np.float64,0x0360000000000000,0x3ff0000000000000,1 -np.float64,0x1a70000000000000,0x3ff0000000000000,1 -np.float64,0x3c30000000000000,0x3ff0000000000000,1 -np.float64,0x36a0000000000000,0x3ff0000000000000,1 -np.float64,0x39b0000000000000,0x3ff0000000000000,1 -np.float64,0x3810000000000000,0x3ff0000000000000,1 +np.float64,0x8000000000000000,0x3ff0000000000000,2 +np.float64,0x8010000000000000,0x3ff0000000000000,2 +np.float64,0x8000000000000001,0x3ff0000000000000,2 +np.float64,0x8360000000000000,0x3ff0000000000000,2 +np.float64,0x9a70000000000000,0x3ff0000000000000,2 +np.float64,0xb9b0000000000000,0x3ff0000000000000,2 +np.float64,0xb810000000000000,0x3ff0000000000000,2 +np.float64,0xbc30000000000000,0x3ff0000000000000,2 +np.float64,0xb6a0000000000000,0x3ff0000000000000,2 +np.float64,0x0000000000000000,0x3ff0000000000000,2 +np.float64,0x0010000000000000,0x3ff0000000000000,2 +np.float64,0x0000000000000001,0x3ff0000000000000,2 +np.float64,0x0360000000000000,0x3ff0000000000000,2 +np.float64,0x1a70000000000000,0x3ff0000000000000,2 +np.float64,0x3c30000000000000,0x3ff0000000000000,2 +np.float64,0x36a0000000000000,0x3ff0000000000000,2 +np.float64,0x39b0000000000000,0x3ff0000000000000,2 +np.float64,0x3810000000000000,0x3ff0000000000000,2 ## underflow ## -np.float64,0xc0c6276800000000,0x0000000000000000,1 -np.float64,0xc0c62d918ce2421d,0x0000000000000000,1 -np.float64,0xc0c62d918ce2421e,0x0000000000000000,1 -np.float64,0xc0c62d91a0000000,0x0000000000000000,1 -np.float64,0xc0c62d9180000000,0x0000000000000000,1 -np.float64,0xc0c62dea45ee3e06,0x0000000000000000,1 -np.float64,0xc0c62dea45ee3e07,0x0000000000000000,1 -np.float64,0xc0c62dea40000000,0x0000000000000000,1 -np.float64,0xc0c62dea60000000,0x0000000000000000,1 -np.float64,0xc0875f1120000000,0x0000000000000000,1 -np.float64,0xc0875f113c30b1c8,0x0000000000000000,1 -np.float64,0xc0875f1140000000,0x0000000000000000,1 -np.float64,0xc093480000000000,0x0000000000000000,1 -np.float64,0xffefffffffffffff,0x0000000000000000,1 -np.float64,0xc7efffffe0000000,0x0000000000000000,1 +np.float64,0xc0c6276800000000,0x0000000000000000,2 +np.float64,0xc0c62d918ce2421d,0x0000000000000000,2 +np.float64,0xc0c62d918ce2421e,0x0000000000000000,2 +np.float64,0xc0c62d91a0000000,0x0000000000000000,2 +np.float64,0xc0c62d9180000000,0x0000000000000000,2 +np.float64,0xc0c62dea45ee3e06,0x0000000000000000,2 +np.float64,0xc0c62dea45ee3e07,0x0000000000000000,2 +np.float64,0xc0c62dea40000000,0x0000000000000000,2 +np.float64,0xc0c62dea60000000,0x0000000000000000,2 +np.float64,0xc0875f1120000000,0x0000000000000000,2 +np.float64,0xc0875f113c30b1c8,0x0000000000000000,2 +np.float64,0xc0875f1140000000,0x0000000000000000,2 +np.float64,0xc093480000000000,0x0000000000000000,2 +np.float64,0xffefffffffffffff,0x0000000000000000,2 +np.float64,0xc7efffffe0000000,0x0000000000000000,2 ## overflow ## -np.float64,0x40862e52fefa39ef,0x7ff0000000000000,1 -np.float64,0x40872e42fefa39ef,0x7ff0000000000000,1 +np.float64,0x40862e52fefa39ef,0x7ff0000000000000,2 +np.float64,0x40872e42fefa39ef,0x7ff0000000000000,2 ## +/- INF, +/- NAN ## -np.float64,0x7ff0000000000000,0x7ff0000000000000,1 -np.float64,0xfff0000000000000,0x0000000000000000,1 -np.float64,0x7ff8000000000000,0x7ff8000000000000,1 -np.float64,0xfff8000000000000,0xfff8000000000000,1 +np.float64,0x7ff0000000000000,0x7ff0000000000000,2 +np.float64,0xfff0000000000000,0x0000000000000000,2 +np.float64,0x7ff8000000000000,0x7ff8000000000000,2 +np.float64,0xfff8000000000000,0xfff8000000000000,2 ## output denormal ## -np.float64,0xc087438520000000,0x0000000000000001,1 -np.float64,0xc08743853f2f4461,0x0000000000000001,1 -np.float64,0xc08743853f2f4460,0x0000000000000001,1 -np.float64,0xc087438540000000,0x0000000000000001,1 +np.float64,0xc087438520000000,0x0000000000000001,2 +np.float64,0xc08743853f2f4461,0x0000000000000001,2 +np.float64,0xc08743853f2f4460,0x0000000000000001,2 +np.float64,0xc087438540000000,0x0000000000000001,2 ## between -745.13321910 and 709.78271289 ## -np.float64,0xbff760cd14774bd9,0x3fcdb14ced00ceb6,1 -np.float64,0xbff760cd20000000,0x3fcdb14cd7993879,1 -np.float64,0xbff760cd00000000,0x3fcdb14d12fbd264,1 -np.float64,0xc07f1cf360000000,0x130c1b369af14fda,1 -np.float64,0xbeb0000000000000,0x3feffffe00001000,1 -np.float64,0xbd70000000000000,0x3fefffffffffe000,1 -np.float64,0xc084fd46e5c84952,0x0360000000000139,1 -np.float64,0xc084fd46e5c84953,0x035ffffffffffe71,1 -np.float64,0xc084fd46e0000000,0x0360000b9096d32c,1 -np.float64,0xc084fd4700000000,0x035fff9721d12104,1 -np.float64,0xc086232bc0000000,0x0010003af5e64635,1 -np.float64,0xc086232bdd7abcd2,0x001000000000007c,1 -np.float64,0xc086232bdd7abcd3,0x000ffffffffffe7c,1 -np.float64,0xc086232be0000000,0x000ffffaf57a6fc9,1 -np.float64,0xc086233920000000,0x000fe590e3b45eb0,1 -np.float64,0xc086233938000000,0x000fe56133493c57,1 -np.float64,0xc086233940000000,0x000fe5514deffbbc,1 -np.float64,0xc086234c98000000,0x000fbf1024c32ccb,1 -np.float64,0xc086234ca0000000,0x000fbf0065bae78d,1 -np.float64,0xc086234c80000000,0x000fbf3f623a7724,1 -np.float64,0xc086234ec0000000,0x000fbad237c846f9,1 -np.float64,0xc086234ec8000000,0x000fbac27cfdec97,1 -np.float64,0xc086234ee0000000,0x000fba934cfd3dc2,1 -np.float64,0xc086234ef0000000,0x000fba73d7f618d9,1 -np.float64,0xc086234f00000000,0x000fba54632dddc0,1 -np.float64,0xc0862356e0000000,0x000faae0945b761a,1 -np.float64,0xc0862356f0000000,0x000faac13eb9a310,1 -np.float64,0xc086235700000000,0x000faaa1e9567b0a,1 -np.float64,0xc086236020000000,0x000f98cd75c11ed7,1 -np.float64,0xc086236ca0000000,0x000f8081b4d93f89,1 -np.float64,0xc086236cb0000000,0x000f8062b3f4d6c5,1 -np.float64,0xc086236cc0000000,0x000f8043b34e6f8c,1 -np.float64,0xc086238d98000000,0x000f41220d9b0d2c,1 -np.float64,0xc086238da0000000,0x000f4112cc80a01f,1 -np.float64,0xc086238d80000000,0x000f414fd145db5b,1 -np.float64,0xc08624fd00000000,0x000cbfce8ea1e6c4,1 -np.float64,0xc086256080000000,0x000c250747fcd46e,1 -np.float64,0xc08626c480000000,0x000a34f4bd975193,1 -np.float64,0xbf50000000000000,0x3feff800ffeaac00,1 -np.float64,0xbe10000000000000,0x3fefffffff800000,1 -np.float64,0xbcd0000000000000,0x3feffffffffffff8,1 -np.float64,0xc055d589e0000000,0x38100004bf94f63e,1 -np.float64,0xc055d58a00000000,0x380ffff97f292ce8,1 -np.float64,0xbfd962d900000000,0x3fe585a4b00110e1,1 -np.float64,0x3ff4bed280000000,0x400d411e7a58a303,1 -np.float64,0x3fff0b3620000000,0x401bd7737ffffcf3,1 -np.float64,0x3ff0000000000000,0x4005bf0a8b145769,1 -np.float64,0x3eb0000000000000,0x3ff0000100000800,1 -np.float64,0x3d70000000000000,0x3ff0000000001000,1 -np.float64,0x40862e42e0000000,0x7fefff841808287f,1 -np.float64,0x40862e42fefa39ef,0x7fefffffffffff2a,1 -np.float64,0x40862e0000000000,0x7feef85a11e73f2d,1 -np.float64,0x4000000000000000,0x401d8e64b8d4ddae,1 -np.float64,0x4009242920000000,0x40372a52c383a488,1 -np.float64,0x4049000000000000,0x44719103e4080b45,1 -np.float64,0x4008000000000000,0x403415e5bf6fb106,1 -np.float64,0x3f50000000000000,0x3ff00400800aab55,1 -np.float64,0x3e10000000000000,0x3ff0000000400000,1 -np.float64,0x3cd0000000000000,0x3ff0000000000004,1 -np.float64,0x40562e40a0000000,0x47effed088821c3f,1 -np.float64,0x40562e42e0000000,0x47effff082e6c7ff,1 -np.float64,0x40562e4300000000,0x47f00000417184b8,1 -np.float64,0x3fe8000000000000,0x4000ef9db467dcf8,1 -np.float64,0x402b12e8d4f33589,0x412718f68c71a6fe,1 -np.float64,0x402b12e8d4f3358a,0x412718f68c71a70a,1 -np.float64,0x402b12e8c0000000,0x412718f59a7f472e,1 -np.float64,0x402b12e8e0000000,0x412718f70c0eac62,1 +np.float64,0xbff760cd14774bd9,0x3fcdb14ced00ceb6,2 +np.float64,0xbff760cd20000000,0x3fcdb14cd7993879,2 +np.float64,0xbff760cd00000000,0x3fcdb14d12fbd264,2 +np.float64,0xc07f1cf360000000,0x130c1b369af14fda,2 +np.float64,0xbeb0000000000000,0x3feffffe00001000,2 +np.float64,0xbd70000000000000,0x3fefffffffffe000,2 +np.float64,0xc084fd46e5c84952,0x0360000000000139,2 +np.float64,0xc084fd46e5c84953,0x035ffffffffffe71,2 +np.float64,0xc084fd46e0000000,0x0360000b9096d32c,2 +np.float64,0xc084fd4700000000,0x035fff9721d12104,2 +np.float64,0xc086232bc0000000,0x0010003af5e64635,2 +np.float64,0xc086232bdd7abcd2,0x001000000000007c,2 +np.float64,0xc086232bdd7abcd3,0x000ffffffffffe7c,2 +np.float64,0xc086232be0000000,0x000ffffaf57a6fc9,2 +np.float64,0xc086233920000000,0x000fe590e3b45eb0,2 +np.float64,0xc086233938000000,0x000fe56133493c57,2 +np.float64,0xc086233940000000,0x000fe5514deffbbc,2 +np.float64,0xc086234c98000000,0x000fbf1024c32ccb,2 +np.float64,0xc086234ca0000000,0x000fbf0065bae78d,2 +np.float64,0xc086234c80000000,0x000fbf3f623a7724,2 +np.float64,0xc086234ec0000000,0x000fbad237c846f9,2 +np.float64,0xc086234ec8000000,0x000fbac27cfdec97,2 +np.float64,0xc086234ee0000000,0x000fba934cfd3dc2,2 +np.float64,0xc086234ef0000000,0x000fba73d7f618d9,2 +np.float64,0xc086234f00000000,0x000fba54632dddc0,2 +np.float64,0xc0862356e0000000,0x000faae0945b761a,2 +np.float64,0xc0862356f0000000,0x000faac13eb9a310,2 +np.float64,0xc086235700000000,0x000faaa1e9567b0a,2 +np.float64,0xc086236020000000,0x000f98cd75c11ed7,2 +np.float64,0xc086236ca0000000,0x000f8081b4d93f89,2 +np.float64,0xc086236cb0000000,0x000f8062b3f4d6c5,2 +np.float64,0xc086236cc0000000,0x000f8043b34e6f8c,2 +np.float64,0xc086238d98000000,0x000f41220d9b0d2c,2 +np.float64,0xc086238da0000000,0x000f4112cc80a01f,2 +np.float64,0xc086238d80000000,0x000f414fd145db5b,2 +np.float64,0xc08624fd00000000,0x000cbfce8ea1e6c4,2 +np.float64,0xc086256080000000,0x000c250747fcd46e,2 +np.float64,0xc08626c480000000,0x000a34f4bd975193,2 +np.float64,0xbf50000000000000,0x3feff800ffeaac00,2 +np.float64,0xbe10000000000000,0x3fefffffff800000,2 +np.float64,0xbcd0000000000000,0x3feffffffffffff8,2 +np.float64,0xc055d589e0000000,0x38100004bf94f63e,2 +np.float64,0xc055d58a00000000,0x380ffff97f292ce8,2 +np.float64,0xbfd962d900000000,0x3fe585a4b00110e1,2 +np.float64,0x3ff4bed280000000,0x400d411e7a58a303,2 +np.float64,0x3fff0b3620000000,0x401bd7737ffffcf3,2 +np.float64,0x3ff0000000000000,0x4005bf0a8b145769,2 +np.float64,0x3eb0000000000000,0x3ff0000100000800,2 +np.float64,0x3d70000000000000,0x3ff0000000001000,2 +np.float64,0x40862e42e0000000,0x7fefff841808287f,2 +np.float64,0x40862e42fefa39ef,0x7fefffffffffff2a,2 +np.float64,0x40862e0000000000,0x7feef85a11e73f2d,2 +np.float64,0x4000000000000000,0x401d8e64b8d4ddae,2 +np.float64,0x4009242920000000,0x40372a52c383a488,2 +np.float64,0x4049000000000000,0x44719103e4080b45,2 +np.float64,0x4008000000000000,0x403415e5bf6fb106,2 +np.float64,0x3f50000000000000,0x3ff00400800aab55,2 +np.float64,0x3e10000000000000,0x3ff0000000400000,2 +np.float64,0x3cd0000000000000,0x3ff0000000000004,2 +np.float64,0x40562e40a0000000,0x47effed088821c3f,2 +np.float64,0x40562e42e0000000,0x47effff082e6c7ff,2 +np.float64,0x40562e4300000000,0x47f00000417184b8,2 +np.float64,0x3fe8000000000000,0x4000ef9db467dcf8,2 +np.float64,0x402b12e8d4f33589,0x412718f68c71a6fe,2 +np.float64,0x402b12e8d4f3358a,0x412718f68c71a70a,2 +np.float64,0x402b12e8c0000000,0x412718f59a7f472e,2 +np.float64,0x402b12e8e0000000,0x412718f70c0eac62,2 ##use 1th entry -np.float64,0x40631659AE147CB4,0x4db3a95025a4890f,1 -np.float64,0xC061B87D2E85A4E2,0x332640c8e2de2c51,1 -np.float64,0x405A4A50BE243AF4,0x496a45e4b7f0339a,1 -np.float64,0xC0839898B98EC5C6,0x0764027828830df4,1 +np.float64,0x40631659AE147CB4,0x4db3a95025a4890f,2 +np.float64,0xC061B87D2E85A4E2,0x332640c8e2de2c51,2 +np.float64,0x405A4A50BE243AF4,0x496a45e4b7f0339a,2 +np.float64,0xC0839898B98EC5C6,0x0764027828830df4,2 #use 2th entry -np.float64,0xC072428C44B6537C,0x2596ade838b96f3e,1 -np.float64,0xC053057C5E1AE9BF,0x3912c8fad18fdadf,1 -np.float64,0x407E89C78328BAA3,0x6bfe35d5b9a1a194,1 -np.float64,0x4083501B6DD87112,0x77a855503a38924e,1 +np.float64,0xC072428C44B6537C,0x2596ade838b96f3e,2 +np.float64,0xC053057C5E1AE9BF,0x3912c8fad18fdadf,2 +np.float64,0x407E89C78328BAA3,0x6bfe35d5b9a1a194,2 +np.float64,0x4083501B6DD87112,0x77a855503a38924e,2 #use 3th entry -np.float64,0x40832C6195F24540,0x7741e73c80e5eb2f,1 -np.float64,0xC083D4CD557C2EC9,0x06b61727c2d2508e,1 -np.float64,0x400C48F5F67C99BD,0x404128820f02b92e,1 -np.float64,0x4056E36D9B2DF26A,0x4830f52ff34a8242,1 +np.float64,0x40832C6195F24540,0x7741e73c80e5eb2f,2 +np.float64,0xC083D4CD557C2EC9,0x06b61727c2d2508e,2 +np.float64,0x400C48F5F67C99BD,0x404128820f02b92e,2 +np.float64,0x4056E36D9B2DF26A,0x4830f52ff34a8242,2 #use 4th entry -np.float64,0x4080FF700D8CBD06,0x70fa70df9bc30f20,1 -np.float64,0x406C276D39E53328,0x543eb8e20a8f4741,1 -np.float64,0xC070D6159BBD8716,0x27a4a0548c904a75,1 -np.float64,0xC052EBCF8ED61F83,0x391c0e92368d15e4,1 +np.float64,0x4080FF700D8CBD06,0x70fa70df9bc30f20,2 +np.float64,0x406C276D39E53328,0x543eb8e20a8f4741,2 +np.float64,0xC070D6159BBD8716,0x27a4a0548c904a75,2 +np.float64,0xC052EBCF8ED61F83,0x391c0e92368d15e4,2 #use 5th entry -np.float64,0xC061F892A8AC5FBE,0x32f807a89efd3869,1 -np.float64,0x4021D885D2DBA085,0x40bd4dc86d3e3270,1 -np.float64,0x40767AEEEE7D4FCF,0x605e22851ee2afb7,1 -np.float64,0xC0757C5D75D08C80,0x20f0751599b992a2,1 +np.float64,0xC061F892A8AC5FBE,0x32f807a89efd3869,2 +np.float64,0x4021D885D2DBA085,0x40bd4dc86d3e3270,2 +np.float64,0x40767AEEEE7D4FCF,0x605e22851ee2afb7,2 +np.float64,0xC0757C5D75D08C80,0x20f0751599b992a2,2 #use 6th entry -np.float64,0x405ACF7A284C4CE3,0x499a4e0b7a27027c,1 -np.float64,0xC085A6C9E80D7AF5,0x0175914009d62ec2,1 -np.float64,0xC07E4C02F86F1DAE,0x1439269b29a9231e,1 -np.float64,0x4080D80F9691CC87,0x7088a6cdafb041de,1 +np.float64,0x405ACF7A284C4CE3,0x499a4e0b7a27027c,2 +np.float64,0xC085A6C9E80D7AF5,0x0175914009d62ec2,2 +np.float64,0xC07E4C02F86F1DAE,0x1439269b29a9231e,2 +np.float64,0x4080D80F9691CC87,0x7088a6cdafb041de,2 #use 7th entry -np.float64,0x407FDFD84FBA0AC1,0x6deb1ae6f9bc4767,1 -np.float64,0x40630C06A1A2213D,0x4dac7a9d51a838b7,1 -np.float64,0x40685FDB30BB8B4F,0x5183f5cc2cac9e79,1 -np.float64,0x408045A2208F77F4,0x6ee299e08e2aa2f0,1 +np.float64,0x407FDFD84FBA0AC1,0x6deb1ae6f9bc4767,2 +np.float64,0x40630C06A1A2213D,0x4dac7a9d51a838b7,2 +np.float64,0x40685FDB30BB8B4F,0x5183f5cc2cac9e79,2 +np.float64,0x408045A2208F77F4,0x6ee299e08e2aa2f0,2 #use 8th entry -np.float64,0xC08104E391F5078B,0x0ed397b7cbfbd230,1 -np.float64,0xC031501CAEFAE395,0x3e6040fd1ea35085,1 -np.float64,0xC079229124F6247C,0x1babf4f923306b1e,1 -np.float64,0x407FB65F44600435,0x6db03beaf2512b8a,1 +np.float64,0xC08104E391F5078B,0x0ed397b7cbfbd230,2 +np.float64,0xC031501CAEFAE395,0x3e6040fd1ea35085,2 +np.float64,0xC079229124F6247C,0x1babf4f923306b1e,2 +np.float64,0x407FB65F44600435,0x6db03beaf2512b8a,2 #use 9th entry -np.float64,0xC07EDEE8E8E8A5AC,0x136536cec9cbef48,1 -np.float64,0x4072BB4086099A14,0x5af4d3c3008b56cc,1 -np.float64,0x4050442A2EC42CB4,0x45cd393bd8fad357,1 -np.float64,0xC06AC28FB3D419B4,0x2ca1b9d3437df85f,1 +np.float64,0xC07EDEE8E8E8A5AC,0x136536cec9cbef48,2 +np.float64,0x4072BB4086099A14,0x5af4d3c3008b56cc,2 +np.float64,0x4050442A2EC42CB4,0x45cd393bd8fad357,2 +np.float64,0xC06AC28FB3D419B4,0x2ca1b9d3437df85f,2 #use 10th entry -np.float64,0x40567FC6F0A68076,0x480c977fd5f3122e,1 -np.float64,0x40620A2F7EDA59BB,0x4cf278e96f4ce4d7,1 -np.float64,0xC085044707CD557C,0x034aad6c968a045a,1 -np.float64,0xC07374EA5AC516AA,0x23dd6afdc03e83d5,1 +np.float64,0x40567FC6F0A68076,0x480c977fd5f3122e,2 +np.float64,0x40620A2F7EDA59BB,0x4cf278e96f4ce4d7,2 +np.float64,0xC085044707CD557C,0x034aad6c968a045a,2 +np.float64,0xC07374EA5AC516AA,0x23dd6afdc03e83d5,2 #use 11th entry -np.float64,0x4073CC95332619C1,0x5c804b1498bbaa54,1 -np.float64,0xC0799FEBBE257F31,0x1af6a954c43b87d2,1 -np.float64,0x408159F19EA424F6,0x7200858efcbfc84d,1 -np.float64,0x404A81F6F24C0792,0x44b664a07ce5bbfa,1 +np.float64,0x4073CC95332619C1,0x5c804b1498bbaa54,2 +np.float64,0xC0799FEBBE257F31,0x1af6a954c43b87d2,2 +np.float64,0x408159F19EA424F6,0x7200858efcbfc84d,2 +np.float64,0x404A81F6F24C0792,0x44b664a07ce5bbfa,2 #use 12th entry -np.float64,0x40295FF1EFB9A741,0x4113c0e74c52d7b0,1 -np.float64,0x4073975F4CC411DA,0x5c32be40b4fec2c1,1 -np.float64,0x406E9DE52E82A77E,0x56049c9a3f1ae089,1 -np.float64,0x40748C2F52560ED9,0x5d93bc14fd4cd23b,1 +np.float64,0x40295FF1EFB9A741,0x4113c0e74c52d7b0,2 +np.float64,0x4073975F4CC411DA,0x5c32be40b4fec2c1,2 +np.float64,0x406E9DE52E82A77E,0x56049c9a3f1ae089,2 +np.float64,0x40748C2F52560ED9,0x5d93bc14fd4cd23b,2 #use 13th entry -np.float64,0x4062A553CDC4D04C,0x4d6266bfde301318,1 -np.float64,0xC079EC1D63598AB7,0x1a88cb184dab224c,1 -np.float64,0xC0725C1CB3167427,0x25725b46f8a081f6,1 -np.float64,0x407888771D9B45F9,0x6353b1ec6bd7ce80,1 +np.float64,0x4062A553CDC4D04C,0x4d6266bfde301318,2 +np.float64,0xC079EC1D63598AB7,0x1a88cb184dab224c,2 +np.float64,0xC0725C1CB3167427,0x25725b46f8a081f6,2 +np.float64,0x407888771D9B45F9,0x6353b1ec6bd7ce80,2 #use 14th entry -np.float64,0xC082CBA03AA89807,0x09b383723831ce56,1 -np.float64,0xC083A8961BB67DD7,0x0735b118d5275552,1 -np.float64,0xC076BC6ECA12E7E3,0x1f2222679eaef615,1 -np.float64,0xC072752503AA1A5B,0x254eb832242c77e1,1 +np.float64,0xC082CBA03AA89807,0x09b383723831ce56,2 +np.float64,0xC083A8961BB67DD7,0x0735b118d5275552,2 +np.float64,0xC076BC6ECA12E7E3,0x1f2222679eaef615,2 +np.float64,0xC072752503AA1A5B,0x254eb832242c77e1,2 #use 15th entry -np.float64,0xC058800792125DEC,0x371882372a0b48d4,1 -np.float64,0x4082909FD863E81C,0x7580d5f386920142,1 -np.float64,0xC071616F8FB534F9,0x26dbe20ef64a412b,1 -np.float64,0x406D1AB571CAA747,0x54ee0d55cb38ac20,1 +np.float64,0xC058800792125DEC,0x371882372a0b48d4,2 +np.float64,0x4082909FD863E81C,0x7580d5f386920142,2 +np.float64,0xC071616F8FB534F9,0x26dbe20ef64a412b,2 +np.float64,0x406D1AB571CAA747,0x54ee0d55cb38ac20,2 #use 16th entry -np.float64,0x406956428B7DAD09,0x52358682c271237f,1 -np.float64,0xC07EFC2D9D17B621,0x133b3e77c27a4d45,1 -np.float64,0xC08469BAC5BA3CCA,0x050863e5f42cc52f,1 -np.float64,0x407189D9626386A5,0x593cb1c0b3b5c1d3,1 +np.float64,0x406956428B7DAD09,0x52358682c271237f,2 +np.float64,0xC07EFC2D9D17B621,0x133b3e77c27a4d45,2 +np.float64,0xC08469BAC5BA3CCA,0x050863e5f42cc52f,2 +np.float64,0x407189D9626386A5,0x593cb1c0b3b5c1d3,2 #use 17th entry -np.float64,0x4077E652E3DEB8C6,0x6269a10dcbd3c752,1 -np.float64,0x407674C97DB06878,0x605485dcc2426ec2,1 -np.float64,0xC07CE9969CF4268D,0x16386cf8996669f2,1 -np.float64,0x40780EE32D5847C4,0x62a436bd1abe108d,1 +np.float64,0x4077E652E3DEB8C6,0x6269a10dcbd3c752,2 +np.float64,0x407674C97DB06878,0x605485dcc2426ec2,2 +np.float64,0xC07CE9969CF4268D,0x16386cf8996669f2,2 +np.float64,0x40780EE32D5847C4,0x62a436bd1abe108d,2 #use 18th entry -np.float64,0x4076C3AA5E1E8DA1,0x60c62f56a5e72e24,1 -np.float64,0xC0730AFC7239B9BE,0x24758ead095cec1e,1 -np.float64,0xC085CC2B9C420DDB,0x0109cdaa2e5694c1,1 -np.float64,0x406D0765CB6D7AA4,0x54e06f8dd91bd945,1 +np.float64,0x4076C3AA5E1E8DA1,0x60c62f56a5e72e24,2 +np.float64,0xC0730AFC7239B9BE,0x24758ead095cec1e,2 +np.float64,0xC085CC2B9C420DDB,0x0109cdaa2e5694c1,2 +np.float64,0x406D0765CB6D7AA4,0x54e06f8dd91bd945,2 #use 19th entry -np.float64,0xC082D011F3B495E7,0x09a6647661d279c2,1 -np.float64,0xC072826AF8F6AFBC,0x253acd3cd224507e,1 -np.float64,0x404EB9C4810CEA09,0x457933dbf07e8133,1 -np.float64,0x408284FBC97C58CE,0x755f6eb234aa4b98,1 +np.float64,0xC082D011F3B495E7,0x09a6647661d279c2,2 +np.float64,0xC072826AF8F6AFBC,0x253acd3cd224507e,2 +np.float64,0x404EB9C4810CEA09,0x457933dbf07e8133,2 +np.float64,0x408284FBC97C58CE,0x755f6eb234aa4b98,2 #use 20th entry -np.float64,0x40856008CF6EDC63,0x7d9c0b3c03f4f73c,1 -np.float64,0xC077CB2E9F013B17,0x1d9b3d3a166a55db,1 -np.float64,0xC0479CA3C20AD057,0x3bad40e081555b99,1 -np.float64,0x40844CD31107332A,0x7a821d70aea478e2,1 +np.float64,0x40856008CF6EDC63,0x7d9c0b3c03f4f73c,2 +np.float64,0xC077CB2E9F013B17,0x1d9b3d3a166a55db,2 +np.float64,0xC0479CA3C20AD057,0x3bad40e081555b99,2 +np.float64,0x40844CD31107332A,0x7a821d70aea478e2,2 #use 21th entry -np.float64,0xC07C8FCC0BFCC844,0x16ba1cc8c539d19b,1 -np.float64,0xC085C4E9A3ABA488,0x011ff675ba1a2217,1 -np.float64,0x4074D538B32966E5,0x5dfd9d78043c6ad9,1 -np.float64,0xC0630CA16902AD46,0x3231a446074cede6,1 +np.float64,0xC07C8FCC0BFCC844,0x16ba1cc8c539d19b,2 +np.float64,0xC085C4E9A3ABA488,0x011ff675ba1a2217,2 +np.float64,0x4074D538B32966E5,0x5dfd9d78043c6ad9,2 +np.float64,0xC0630CA16902AD46,0x3231a446074cede6,2 #use 22th entry -np.float64,0xC06C826733D7D0B7,0x2b5f1078314d41e1,1 -np.float64,0xC0520DF55B2B907F,0x396c13a6ce8e833e,1 -np.float64,0xC080712072B0F437,0x107eae02d11d98ea,1 -np.float64,0x40528A6150E19EFB,0x469fdabda02228c5,1 +np.float64,0xC06C826733D7D0B7,0x2b5f1078314d41e1,2 +np.float64,0xC0520DF55B2B907F,0x396c13a6ce8e833e,2 +np.float64,0xC080712072B0F437,0x107eae02d11d98ea,2 +np.float64,0x40528A6150E19EFB,0x469fdabda02228c5,2 #use 23th entry -np.float64,0xC07B1D74B6586451,0x18d1253883ae3b48,1 -np.float64,0x4045AFD7867DAEC0,0x43d7d634fc4c5d98,1 -np.float64,0xC07A08B91F9ED3E2,0x1a60973e6397fc37,1 -np.float64,0x407B3ECF0AE21C8C,0x673e03e9d98d7235,1 +np.float64,0xC07B1D74B6586451,0x18d1253883ae3b48,2 +np.float64,0x4045AFD7867DAEC0,0x43d7d634fc4c5d98,2 +np.float64,0xC07A08B91F9ED3E2,0x1a60973e6397fc37,2 +np.float64,0x407B3ECF0AE21C8C,0x673e03e9d98d7235,2 #use 24th entry -np.float64,0xC078AEB6F30CEABF,0x1c530b93ab54a1b3,1 -np.float64,0x4084495006A41672,0x7a775b6dc7e63064,1 -np.float64,0x40830B1C0EBF95DD,0x76e1e6eed77cfb89,1 -np.float64,0x407D93E8F33D8470,0x6a9adbc9e1e4f1e5,1 +np.float64,0xC078AEB6F30CEABF,0x1c530b93ab54a1b3,2 +np.float64,0x4084495006A41672,0x7a775b6dc7e63064,2 +np.float64,0x40830B1C0EBF95DD,0x76e1e6eed77cfb89,2 +np.float64,0x407D93E8F33D8470,0x6a9adbc9e1e4f1e5,2 #use 25th entry -np.float64,0x4066B11A09EFD9E8,0x504dd528065c28a7,1 -np.float64,0x408545823723AEEB,0x7d504a9b1844f594,1 -np.float64,0xC068C711F2CA3362,0x2e104f3496ea118e,1 -np.float64,0x407F317FCC3CA873,0x6cf0732c9948ebf4,1 +np.float64,0x4066B11A09EFD9E8,0x504dd528065c28a7,2 +np.float64,0x408545823723AEEB,0x7d504a9b1844f594,2 +np.float64,0xC068C711F2CA3362,0x2e104f3496ea118e,2 +np.float64,0x407F317FCC3CA873,0x6cf0732c9948ebf4,2 #use 26th entry -np.float64,0x407AFB3EBA2ED50F,0x66dc28a129c868d5,1 -np.float64,0xC075377037708ADE,0x21531a329f3d793e,1 -np.float64,0xC07C30066A1F3246,0x174448baa16ded2b,1 -np.float64,0xC06689A75DE2ABD3,0x2fad70662fae230b,1 +np.float64,0x407AFB3EBA2ED50F,0x66dc28a129c868d5,2 +np.float64,0xC075377037708ADE,0x21531a329f3d793e,2 +np.float64,0xC07C30066A1F3246,0x174448baa16ded2b,2 +np.float64,0xC06689A75DE2ABD3,0x2fad70662fae230b,2 #use 27th entry -np.float64,0x4081514E9FCCF1E0,0x71e673b9efd15f44,1 -np.float64,0xC0762C710AF68460,0x1ff1ed7d8947fe43,1 -np.float64,0xC0468102FF70D9C4,0x3be0c3a8ff3419a3,1 -np.float64,0xC07EA4CEEF02A83E,0x13b908f085102c61,1 +np.float64,0x4081514E9FCCF1E0,0x71e673b9efd15f44,2 +np.float64,0xC0762C710AF68460,0x1ff1ed7d8947fe43,2 +np.float64,0xC0468102FF70D9C4,0x3be0c3a8ff3419a3,2 +np.float64,0xC07EA4CEEF02A83E,0x13b908f085102c61,2 #use 28th entry -np.float64,0xC06290B04AE823C4,0x328a83da3c2e3351,1 -np.float64,0xC0770EB1D1C395FB,0x1eab281c1f1db5fe,1 -np.float64,0xC06F5D4D838A5BAE,0x29500ea32fb474ea,1 -np.float64,0x40723B3133B54C5D,0x5a3c82c7c3a2b848,1 +np.float64,0xC06290B04AE823C4,0x328a83da3c2e3351,2 +np.float64,0xC0770EB1D1C395FB,0x1eab281c1f1db5fe,2 +np.float64,0xC06F5D4D838A5BAE,0x29500ea32fb474ea,2 +np.float64,0x40723B3133B54C5D,0x5a3c82c7c3a2b848,2 #use 29th entry -np.float64,0x4085E6454CE3B4AA,0x7f20319b9638d06a,1 -np.float64,0x408389F2A0585D4B,0x7850667c58aab3d0,1 -np.float64,0xC0382798F9C8AE69,0x3dc1c79fe8739d6d,1 -np.float64,0xC08299D827608418,0x0a4335f76cdbaeb5,1 +np.float64,0x4085E6454CE3B4AA,0x7f20319b9638d06a,2 +np.float64,0x408389F2A0585D4B,0x7850667c58aab3d0,2 +np.float64,0xC0382798F9C8AE69,0x3dc1c79fe8739d6d,2 +np.float64,0xC08299D827608418,0x0a4335f76cdbaeb5,2 #use 30th entry -np.float64,0xC06F3DED43301BF1,0x2965670ae46750a8,1 -np.float64,0xC070CAF6BDD577D9,0x27b4aa4ffdd29981,1 -np.float64,0x4078529AD4B2D9F2,0x6305c12755d5e0a6,1 -np.float64,0xC055B14E75A31B96,0x381c2eda6d111e5d,1 +np.float64,0xC06F3DED43301BF1,0x2965670ae46750a8,2 +np.float64,0xC070CAF6BDD577D9,0x27b4aa4ffdd29981,2 +np.float64,0x4078529AD4B2D9F2,0x6305c12755d5e0a6,2 +np.float64,0xC055B14E75A31B96,0x381c2eda6d111e5d,2 #use 31th entry -np.float64,0x407B13EE414FA931,0x6700772c7544564d,1 -np.float64,0x407EAFDE9DE3EC54,0x6c346a0e49724a3c,1 -np.float64,0xC08362F398B9530D,0x07ffeddbadf980cb,1 -np.float64,0x407E865CDD9EEB86,0x6bf866cac5e0d126,1 +np.float64,0x407B13EE414FA931,0x6700772c7544564d,2 +np.float64,0x407EAFDE9DE3EC54,0x6c346a0e49724a3c,2 +np.float64,0xC08362F398B9530D,0x07ffeddbadf980cb,2 +np.float64,0x407E865CDD9EEB86,0x6bf866cac5e0d126,2 #use 32th entry -np.float64,0x407FB62DBC794C86,0x6db009f708ac62cb,1 -np.float64,0xC063D0BAA68CDDDE,0x31a3b2a51ce50430,1 -np.float64,0xC05E7706A2231394,0x34f24bead6fab5c9,1 -np.float64,0x4083E3A06FDE444E,0x79527b7a386d1937,1 +np.float64,0x407FB62DBC794C86,0x6db009f708ac62cb,2 +np.float64,0xC063D0BAA68CDDDE,0x31a3b2a51ce50430,2 +np.float64,0xC05E7706A2231394,0x34f24bead6fab5c9,2 +np.float64,0x4083E3A06FDE444E,0x79527b7a386d1937,2 diff --git a/numpy/core/tests/data/umath-validation-set-log.csv b/numpy/core/tests/data/umath-validation-set-log.csv index b8f6b0875..7717745d5 100644 --- a/numpy/core/tests/data/umath-validation-set-log.csv +++ b/numpy/core/tests/data/umath-validation-set-log.csv @@ -118,154 +118,154 @@ np.float32,0x3f4884e8,0xbe7a214a,4 np.float32,0x3f486945,0xbe7aae76,4 #float64 ## +ve denormal ## -np.float64,0x0000000000000001,0xc0874385446d71c3,1 -np.float64,0x0001000000000000,0xc086395a2079b70c,1 -np.float64,0x000fffffffffffff,0xc086232bdd7abcd2,1 -np.float64,0x0007ad63e2168cb6,0xc086290bc0b2980f,1 +np.float64,0x0000000000000001,0xc0874385446d71c3,2 +np.float64,0x0001000000000000,0xc086395a2079b70c,2 +np.float64,0x000fffffffffffff,0xc086232bdd7abcd2,2 +np.float64,0x0007ad63e2168cb6,0xc086290bc0b2980f,2 ## -ve denormal ## -np.float64,0x8000000000000001,0xfff8000000000001,1 -np.float64,0x8001000000000000,0xfff8000000000001,1 -np.float64,0x800fffffffffffff,0xfff8000000000001,1 -np.float64,0x8007ad63e2168cb6,0xfff8000000000001,1 +np.float64,0x8000000000000001,0xfff8000000000001,2 +np.float64,0x8001000000000000,0xfff8000000000001,2 +np.float64,0x800fffffffffffff,0xfff8000000000001,2 +np.float64,0x8007ad63e2168cb6,0xfff8000000000001,2 ## +/-0.0f, MAX, MIN## -np.float64,0x0000000000000000,0xfff0000000000000,1 -np.float64,0x8000000000000000,0xfff0000000000000,1 -np.float64,0x7fefffffffffffff,0x40862e42fefa39ef,1 -np.float64,0xffefffffffffffff,0xfff8000000000001,1 +np.float64,0x0000000000000000,0xfff0000000000000,2 +np.float64,0x8000000000000000,0xfff0000000000000,2 +np.float64,0x7fefffffffffffff,0x40862e42fefa39ef,2 +np.float64,0xffefffffffffffff,0xfff8000000000001,2 ## near 1.0f ## -np.float64,0x3ff0000000000000,0x0000000000000000,1 -np.float64,0x3fe8000000000000,0xbfd269621134db92,1 -np.float64,0x3ff0000000000001,0x3cafffffffffffff,1 -np.float64,0x3ff0000020000000,0x3e7fffffe000002b,1 -np.float64,0x3ff0000000000001,0x3cafffffffffffff,1 -np.float64,0x3fefffffe0000000,0xbe70000008000005,1 -np.float64,0x3fefffffffffffff,0xbca0000000000000,1 +np.float64,0x3ff0000000000000,0x0000000000000000,2 +np.float64,0x3fe8000000000000,0xbfd269621134db92,2 +np.float64,0x3ff0000000000001,0x3cafffffffffffff,2 +np.float64,0x3ff0000020000000,0x3e7fffffe000002b,2 +np.float64,0x3ff0000000000001,0x3cafffffffffffff,2 +np.float64,0x3fefffffe0000000,0xbe70000008000005,2 +np.float64,0x3fefffffffffffff,0xbca0000000000000,2 ## random numbers ## -np.float64,0x02500186f3d9da56,0xc0855b8abf135773,1 -np.float64,0x09200815a3951173,0xc082ff1ad7131bdc,1 -np.float64,0x0da029623b0243d4,0xc0816fc994695bb5,1 -np.float64,0x48703b8ac483a382,0x40579213a313490b,1 -np.float64,0x09207b74c87c9860,0xc082fee20ff349ef,1 -np.float64,0x62c077698e8df947,0x407821c996d110f0,1 -np.float64,0x2350b45e87c3cfb0,0xc073d6b16b51d072,1 -np.float64,0x3990a23f9ff2b623,0xc051aa60eadd8c61,1 -np.float64,0x0d011386a116c348,0xc081a6cc7ea3b8fb,1 -np.float64,0x1fe0f0303ebe273a,0xc0763870b78a81ca,1 -np.float64,0x0cd1260121d387da,0xc081b7668d61a9d1,1 -np.float64,0x1e6135a8f581d422,0xc077425ac10f08c2,1 -np.float64,0x622168db5fe52d30,0x4077b3c669b9fadb,1 -np.float64,0x69f188e1ec6d1718,0x407d1e2f18c63889,1 -np.float64,0x3aa1bf1d9c4dd1a3,0xc04d682e24bde479,1 -np.float64,0x6c81c4011ce4f683,0x407ee5190e8a8e6a,1 -np.float64,0x2191fa55aa5a5095,0xc0750c0c318b5e2d,1 -np.float64,0x32a1f602a32bf360,0xc06270caa493fc17,1 -np.float64,0x16023c90ba93249b,0xc07d0f88e0801638,1 -np.float64,0x1c525fe6d71fa9ff,0xc078af49c66a5d63,1 -np.float64,0x1a927675815d65b7,0xc079e5bdd7fe376e,1 -np.float64,0x41227b8fe70da028,0x402aa0c9f9a84c71,1 -np.float64,0x4962bb6e853fe87d,0x405a34aa04c83747,1 -np.float64,0x23d2cda00b26b5a4,0xc0737c13a06d00ea,1 -np.float64,0x2d13083fd62987fa,0xc06a25055aeb474e,1 -np.float64,0x10e31e4c9b4579a1,0xc0804e181929418e,1 -np.float64,0x26d3247d556a86a9,0xc0716774171da7e8,1 -np.float64,0x6603379398d0d4ac,0x407a64f51f8a887b,1 -np.float64,0x02d38af17d9442ba,0xc0852d955ac9dd68,1 -np.float64,0x6a2382b4818dd967,0x407d4129d688e5d4,1 -np.float64,0x2ee3c403c79b3934,0xc067a091fefaf8b6,1 -np.float64,0x6493a699acdbf1a4,0x4079663c8602bfc5,1 -np.float64,0x1c8413c4f0de3100,0xc0788c99697059b6,1 -np.float64,0x4573f1ed350d9622,0x404e9bd1e4c08920,1 -np.float64,0x2f34265c9200b69c,0xc067310cfea4e986,1 -np.float64,0x19b43e65fa22029b,0xc07a7f8877de22d6,1 -np.float64,0x0af48ab7925ed6bc,0xc0825c4fbc0e5ade,1 -np.float64,0x4fa49699cad82542,0x4065c76d2a318235,1 -np.float64,0x7204a15e56ade492,0x40815bb87484dffb,1 -np.float64,0x4734aa08a230982d,0x40542a4bf7a361a9,1 -np.float64,0x1ae4ed296c2fd749,0xc079ac4921f20abb,1 -np.float64,0x472514ea4370289c,0x4053ff372bd8f18f,1 -np.float64,0x53a54b3f73820430,0x406b5411fc5f2e33,1 -np.float64,0x64754de5a15684fa,0x407951592e99a5ab,1 -np.float64,0x69358e279868a7c3,0x407c9c671a882c31,1 -np.float64,0x284579ec61215945,0xc0706688e55f0927,1 -np.float64,0x68b5c58806447adc,0x407c43d6f4eff760,1 -np.float64,0x1945a83f98b0e65d,0xc07acc15eeb032cc,1 -np.float64,0x0fc5eb98a16578bf,0xc080b0d02eddca0e,1 -np.float64,0x6a75e208f5784250,0x407d7a7383bf8f05,1 -np.float64,0x0fe63a029c47645d,0xc080a59ca1e98866,1 -np.float64,0x37963ac53f065510,0xc057236281f7bdb6,1 -np.float64,0x135661bb07067ff7,0xc07ee924930c21e4,1 -np.float64,0x4b4699469d458422,0x405f73843756e887,1 -np.float64,0x1a66d73e4bf4881b,0xc07a039ba1c63adf,1 -np.float64,0x12a6b9b119a7da59,0xc07f62e49c6431f3,1 -np.float64,0x24c719aa8fd1bdb5,0xc072d26da4bf84d3,1 -np.float64,0x0fa6ff524ffef314,0xc080bb8514662e77,1 -np.float64,0x1db751d66fdd4a9a,0xc077b77cb50d7c92,1 -np.float64,0x4947374c516da82c,0x4059e9acfc7105bf,1 -np.float64,0x1b1771ab98f3afc8,0xc07989326b8e1f66,1 -np.float64,0x25e78805baac8070,0xc0720a818e6ef080,1 -np.float64,0x4bd7a148225d3687,0x406082d004ea3ee7,1 -np.float64,0x53d7d6b2bbbda00a,0x406b9a398967cbd5,1 -np.float64,0x6997fb9f4e1c685f,0x407ce0a703413eba,1 -np.float64,0x069802c2ff71b951,0xc083df39bf7acddc,1 -np.float64,0x4d683ac9890f66d8,0x4062ae21d8c2acf0,1 -np.float64,0x5a2825863ec14f4c,0x40722d718d549552,1 -np.float64,0x0398799a88f4db80,0xc084e93dab8e2158,1 -np.float64,0x5ed87a8b77e135a5,0x40756d7051777b33,1 -np.float64,0x5828cd6d79b9bede,0x4070cafb22fc6ca1,1 -np.float64,0x7b18ba2a5ec6f068,0x408481386b3ed6fe,1 -np.float64,0x4938fd60922198fe,0x4059c206b762ea7e,1 -np.float64,0x31b8f44fcdd1a46e,0xc063b2faa8b6434e,1 -np.float64,0x5729341c0d918464,0x407019cac0c4a7d7,1 -np.float64,0x13595e9228ee878e,0xc07ee7235a7d8088,1 -np.float64,0x17698b0dc9dd4135,0xc07c1627e3a5ad5f,1 -np.float64,0x63b977c283abb0cc,0x4078cf1ec6ed65be,1 -np.float64,0x7349cc0d4dc16943,0x4081cc697ce4cb53,1 -np.float64,0x4e49a80b732fb28d,0x4063e67e3c5cbe90,1 -np.float64,0x07ba14b848a8ae02,0xc0837ac032a094e0,1 -np.float64,0x3da9f17b691bfddc,0xc03929c25366acda,1 -np.float64,0x02ea39aa6c3ac007,0xc08525af6f21e1c4,1 -np.float64,0x3a6a42f04ed9563d,0xc04e98e825dca46b,1 -np.float64,0x1afa877cd7900be7,0xc0799d6648cb34a9,1 -np.float64,0x58ea986649e052c6,0x4071512e939ad790,1 -np.float64,0x691abbc04647f536,0x407c89aaae0fcb83,1 -np.float64,0x43aabc5063e6f284,0x4044b45d18106fd2,1 -np.float64,0x488b003c893e0bea,0x4057df012a2dafbe,1 -np.float64,0x77eb076ed67caee5,0x40836720de94769e,1 -np.float64,0x5c1b46974aba46f4,0x40738731ba256007,1 -np.float64,0x1a5b29ecb5d3c261,0xc07a0becc77040d6,1 -np.float64,0x5d8b6ccf868c6032,0x4074865c1865e2db,1 -np.float64,0x4cfb6690b4aaf5af,0x406216cd8c7e8ddb,1 -np.float64,0x76cbd8eb5c5fc39e,0x4083038dc66d682b,1 -np.float64,0x28bbd1fec5012814,0xc07014c2dd1b9711,1 -np.float64,0x33dc1b3a4fd6bf7a,0xc060bd0756e07d8a,1 -np.float64,0x52bbe89b37de99f3,0x406a10041aa7d343,1 -np.float64,0x07bc479d15eb2dd3,0xc0837a1a6e3a3b61,1 -np.float64,0x18fc5275711a901d,0xc07aff3e9d62bc93,1 -np.float64,0x114c9758e247dc71,0xc080299a7cf15b05,1 -np.float64,0x25ac8f6d60755148,0xc07233c4c0c511d4,1 -np.float64,0x260cae2bb9e9fd7e,0xc071f128c7e82eac,1 -np.float64,0x572ccdfe0241de82,0x40701bedc84bb504,1 -np.float64,0x0ddcef6c8d41f5ee,0xc0815a7e16d07084,1 -np.float64,0x6dad1d59c988af68,0x407fb4a0bc0142b1,1 -np.float64,0x025d200580d8b6d1,0xc08556c0bc32b1b2,1 -np.float64,0x7aad344b6aa74c18,0x40845bbc453f22be,1 -np.float64,0x5b5d9d6ad9d14429,0x4073036d2d21f382,1 -np.float64,0x49cd8d8dcdf19954,0x405b5c034f5c7353,1 -np.float64,0x63edb9483335c1e6,0x4078f2dd21378786,1 -np.float64,0x7b1dd64c9d2c26bd,0x408482b922017bc9,1 -np.float64,0x782e13e0b574be5f,0x40837e2a0090a5ad,1 -np.float64,0x592dfe18b9d6db2f,0x40717f777fbcb1ec,1 -np.float64,0x654e3232ac60d72c,0x4079e71a95a70446,1 -np.float64,0x7b8e42ad22091456,0x4084a9a6f1e61722,1 -np.float64,0x570e88dfd5860ae6,0x407006ae6c0d137a,1 -np.float64,0x294e98346cb98ef1,0xc06f5edaac12bd44,1 -np.float64,0x1adeaa4ab792e642,0xc079b1431d5e2633,1 -np.float64,0x7b6ead3377529ac8,0x40849eabc8c7683c,1 -np.float64,0x2b8eedae8a9b2928,0xc06c400054deef11,1 -np.float64,0x65defb45b2dcf660,0x407a4b53f181c05a,1 -np.float64,0x1baf582d475e7701,0xc07920bcad4a502c,1 -np.float64,0x461f39cf05a0f15a,0x405126368f984fa1,1 -np.float64,0x7e5f6f5dcfff005b,0x4085a37d610439b4,1 -np.float64,0x136f66e4d09bd662,0xc07ed8a2719f2511,1 -np.float64,0x65afd8983fb6ca1f,0x407a2a7f48bf7fc1,1 -np.float64,0x572fa7f95ed22319,0x40701d706cf82e6f,1 +np.float64,0x02500186f3d9da56,0xc0855b8abf135773,2 +np.float64,0x09200815a3951173,0xc082ff1ad7131bdc,2 +np.float64,0x0da029623b0243d4,0xc0816fc994695bb5,2 +np.float64,0x48703b8ac483a382,0x40579213a313490b,2 +np.float64,0x09207b74c87c9860,0xc082fee20ff349ef,2 +np.float64,0x62c077698e8df947,0x407821c996d110f0,2 +np.float64,0x2350b45e87c3cfb0,0xc073d6b16b51d072,2 +np.float64,0x3990a23f9ff2b623,0xc051aa60eadd8c61,2 +np.float64,0x0d011386a116c348,0xc081a6cc7ea3b8fb,2 +np.float64,0x1fe0f0303ebe273a,0xc0763870b78a81ca,2 +np.float64,0x0cd1260121d387da,0xc081b7668d61a9d1,2 +np.float64,0x1e6135a8f581d422,0xc077425ac10f08c2,2 +np.float64,0x622168db5fe52d30,0x4077b3c669b9fadb,2 +np.float64,0x69f188e1ec6d1718,0x407d1e2f18c63889,2 +np.float64,0x3aa1bf1d9c4dd1a3,0xc04d682e24bde479,2 +np.float64,0x6c81c4011ce4f683,0x407ee5190e8a8e6a,2 +np.float64,0x2191fa55aa5a5095,0xc0750c0c318b5e2d,2 +np.float64,0x32a1f602a32bf360,0xc06270caa493fc17,2 +np.float64,0x16023c90ba93249b,0xc07d0f88e0801638,2 +np.float64,0x1c525fe6d71fa9ff,0xc078af49c66a5d63,2 +np.float64,0x1a927675815d65b7,0xc079e5bdd7fe376e,2 +np.float64,0x41227b8fe70da028,0x402aa0c9f9a84c71,2 +np.float64,0x4962bb6e853fe87d,0x405a34aa04c83747,2 +np.float64,0x23d2cda00b26b5a4,0xc0737c13a06d00ea,2 +np.float64,0x2d13083fd62987fa,0xc06a25055aeb474e,2 +np.float64,0x10e31e4c9b4579a1,0xc0804e181929418e,2 +np.float64,0x26d3247d556a86a9,0xc0716774171da7e8,2 +np.float64,0x6603379398d0d4ac,0x407a64f51f8a887b,2 +np.float64,0x02d38af17d9442ba,0xc0852d955ac9dd68,2 +np.float64,0x6a2382b4818dd967,0x407d4129d688e5d4,2 +np.float64,0x2ee3c403c79b3934,0xc067a091fefaf8b6,2 +np.float64,0x6493a699acdbf1a4,0x4079663c8602bfc5,2 +np.float64,0x1c8413c4f0de3100,0xc0788c99697059b6,2 +np.float64,0x4573f1ed350d9622,0x404e9bd1e4c08920,2 +np.float64,0x2f34265c9200b69c,0xc067310cfea4e986,2 +np.float64,0x19b43e65fa22029b,0xc07a7f8877de22d6,2 +np.float64,0x0af48ab7925ed6bc,0xc0825c4fbc0e5ade,2 +np.float64,0x4fa49699cad82542,0x4065c76d2a318235,2 +np.float64,0x7204a15e56ade492,0x40815bb87484dffb,2 +np.float64,0x4734aa08a230982d,0x40542a4bf7a361a9,2 +np.float64,0x1ae4ed296c2fd749,0xc079ac4921f20abb,2 +np.float64,0x472514ea4370289c,0x4053ff372bd8f18f,2 +np.float64,0x53a54b3f73820430,0x406b5411fc5f2e33,2 +np.float64,0x64754de5a15684fa,0x407951592e99a5ab,2 +np.float64,0x69358e279868a7c3,0x407c9c671a882c31,2 +np.float64,0x284579ec61215945,0xc0706688e55f0927,2 +np.float64,0x68b5c58806447adc,0x407c43d6f4eff760,2 +np.float64,0x1945a83f98b0e65d,0xc07acc15eeb032cc,2 +np.float64,0x0fc5eb98a16578bf,0xc080b0d02eddca0e,2 +np.float64,0x6a75e208f5784250,0x407d7a7383bf8f05,2 +np.float64,0x0fe63a029c47645d,0xc080a59ca1e98866,2 +np.float64,0x37963ac53f065510,0xc057236281f7bdb6,2 +np.float64,0x135661bb07067ff7,0xc07ee924930c21e4,2 +np.float64,0x4b4699469d458422,0x405f73843756e887,2 +np.float64,0x1a66d73e4bf4881b,0xc07a039ba1c63adf,2 +np.float64,0x12a6b9b119a7da59,0xc07f62e49c6431f3,2 +np.float64,0x24c719aa8fd1bdb5,0xc072d26da4bf84d3,2 +np.float64,0x0fa6ff524ffef314,0xc080bb8514662e77,2 +np.float64,0x1db751d66fdd4a9a,0xc077b77cb50d7c92,2 +np.float64,0x4947374c516da82c,0x4059e9acfc7105bf,2 +np.float64,0x1b1771ab98f3afc8,0xc07989326b8e1f66,2 +np.float64,0x25e78805baac8070,0xc0720a818e6ef080,2 +np.float64,0x4bd7a148225d3687,0x406082d004ea3ee7,2 +np.float64,0x53d7d6b2bbbda00a,0x406b9a398967cbd5,2 +np.float64,0x6997fb9f4e1c685f,0x407ce0a703413eba,2 +np.float64,0x069802c2ff71b951,0xc083df39bf7acddc,2 +np.float64,0x4d683ac9890f66d8,0x4062ae21d8c2acf0,2 +np.float64,0x5a2825863ec14f4c,0x40722d718d549552,2 +np.float64,0x0398799a88f4db80,0xc084e93dab8e2158,2 +np.float64,0x5ed87a8b77e135a5,0x40756d7051777b33,2 +np.float64,0x5828cd6d79b9bede,0x4070cafb22fc6ca1,2 +np.float64,0x7b18ba2a5ec6f068,0x408481386b3ed6fe,2 +np.float64,0x4938fd60922198fe,0x4059c206b762ea7e,2 +np.float64,0x31b8f44fcdd1a46e,0xc063b2faa8b6434e,2 +np.float64,0x5729341c0d918464,0x407019cac0c4a7d7,2 +np.float64,0x13595e9228ee878e,0xc07ee7235a7d8088,2 +np.float64,0x17698b0dc9dd4135,0xc07c1627e3a5ad5f,2 +np.float64,0x63b977c283abb0cc,0x4078cf1ec6ed65be,2 +np.float64,0x7349cc0d4dc16943,0x4081cc697ce4cb53,2 +np.float64,0x4e49a80b732fb28d,0x4063e67e3c5cbe90,2 +np.float64,0x07ba14b848a8ae02,0xc0837ac032a094e0,2 +np.float64,0x3da9f17b691bfddc,0xc03929c25366acda,2 +np.float64,0x02ea39aa6c3ac007,0xc08525af6f21e1c4,2 +np.float64,0x3a6a42f04ed9563d,0xc04e98e825dca46b,2 +np.float64,0x1afa877cd7900be7,0xc0799d6648cb34a9,2 +np.float64,0x58ea986649e052c6,0x4071512e939ad790,2 +np.float64,0x691abbc04647f536,0x407c89aaae0fcb83,2 +np.float64,0x43aabc5063e6f284,0x4044b45d18106fd2,2 +np.float64,0x488b003c893e0bea,0x4057df012a2dafbe,2 +np.float64,0x77eb076ed67caee5,0x40836720de94769e,2 +np.float64,0x5c1b46974aba46f4,0x40738731ba256007,2 +np.float64,0x1a5b29ecb5d3c261,0xc07a0becc77040d6,2 +np.float64,0x5d8b6ccf868c6032,0x4074865c1865e2db,2 +np.float64,0x4cfb6690b4aaf5af,0x406216cd8c7e8ddb,2 +np.float64,0x76cbd8eb5c5fc39e,0x4083038dc66d682b,2 +np.float64,0x28bbd1fec5012814,0xc07014c2dd1b9711,2 +np.float64,0x33dc1b3a4fd6bf7a,0xc060bd0756e07d8a,2 +np.float64,0x52bbe89b37de99f3,0x406a10041aa7d343,2 +np.float64,0x07bc479d15eb2dd3,0xc0837a1a6e3a3b61,2 +np.float64,0x18fc5275711a901d,0xc07aff3e9d62bc93,2 +np.float64,0x114c9758e247dc71,0xc080299a7cf15b05,2 +np.float64,0x25ac8f6d60755148,0xc07233c4c0c511d4,2 +np.float64,0x260cae2bb9e9fd7e,0xc071f128c7e82eac,2 +np.float64,0x572ccdfe0241de82,0x40701bedc84bb504,2 +np.float64,0x0ddcef6c8d41f5ee,0xc0815a7e16d07084,2 +np.float64,0x6dad1d59c988af68,0x407fb4a0bc0142b1,2 +np.float64,0x025d200580d8b6d1,0xc08556c0bc32b1b2,2 +np.float64,0x7aad344b6aa74c18,0x40845bbc453f22be,2 +np.float64,0x5b5d9d6ad9d14429,0x4073036d2d21f382,2 +np.float64,0x49cd8d8dcdf19954,0x405b5c034f5c7353,2 +np.float64,0x63edb9483335c1e6,0x4078f2dd21378786,2 +np.float64,0x7b1dd64c9d2c26bd,0x408482b922017bc9,2 +np.float64,0x782e13e0b574be5f,0x40837e2a0090a5ad,2 +np.float64,0x592dfe18b9d6db2f,0x40717f777fbcb1ec,2 +np.float64,0x654e3232ac60d72c,0x4079e71a95a70446,2 +np.float64,0x7b8e42ad22091456,0x4084a9a6f1e61722,2 +np.float64,0x570e88dfd5860ae6,0x407006ae6c0d137a,2 +np.float64,0x294e98346cb98ef1,0xc06f5edaac12bd44,2 +np.float64,0x1adeaa4ab792e642,0xc079b1431d5e2633,2 +np.float64,0x7b6ead3377529ac8,0x40849eabc8c7683c,2 +np.float64,0x2b8eedae8a9b2928,0xc06c400054deef11,2 +np.float64,0x65defb45b2dcf660,0x407a4b53f181c05a,2 +np.float64,0x1baf582d475e7701,0xc07920bcad4a502c,2 +np.float64,0x461f39cf05a0f15a,0x405126368f984fa1,2 +np.float64,0x7e5f6f5dcfff005b,0x4085a37d610439b4,2 +np.float64,0x136f66e4d09bd662,0xc07ed8a2719f2511,2 +np.float64,0x65afd8983fb6ca1f,0x407a2a7f48bf7fc1,2 +np.float64,0x572fa7f95ed22319,0x40701d706cf82e6f,2 diff --git a/numpy/core/tests/test_umath.py b/numpy/core/tests/test_umath.py index 575807d89..dd0bb88ff 100644 --- a/numpy/core/tests/test_umath.py +++ b/numpy/core/tests/test_umath.py @@ -995,12 +995,13 @@ class TestExp: class TestSpecialFloats: def test_exp_values(self): - x = [np.nan, np.nan, np.inf, 0.] - y = [np.nan, -np.nan, np.inf, -np.inf] - for dt in ['f', 'd', 'g']: - xf = np.array(x, dtype=dt) - yf = np.array(y, dtype=dt) - assert_equal(np.exp(yf), xf) + with np.errstate(under='raise', over='raise'): + x = [np.nan, np.nan, np.inf, 0.] + y = [np.nan, -np.nan, np.inf, -np.inf] + for dt in ['f', 'd', 'g']: + xf = np.array(x, dtype=dt) + yf = np.array(y, dtype=dt) + assert_equal(np.exp(yf), xf) # See: https://github.com/numpy/numpy/issues/19192 @pytest.mark.xfail( |