From 893190aa88fb58a31083b833922d513b396cfe6b Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Thu, 24 Jul 2025 15:34:18 -0700
Subject: [PATCH 01/23] clean up source files

---
 mkl_umath/src/mkl_umath_loops.c.src | 1926 +++++++--------------------
 mkl_umath/src/mkl_umath_loops.h.src |  261 +---
 mkl_umath/tests/test_basic.py       |   70 +-
 3 files changed, 527 insertions(+), 1730 deletions(-)

diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 09c6a86..81ee830 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -128,8 +128,8 @@
 /* for pointers p1, and p2 pointing at contiguous arrays n-elements of size s, are arrays disjoint or same
  *  when these conditions are not met VML functions may produce incorrect output
  */
-#define DISJOINT_OR_SAME(p1, p2, n, s) (((p1) == (p2)) || ((p2) + (n)*(s) < (p1)) || ((p1) + (n)*(s) < (p2)) )
-#define DISJOINT_OR_SAME_TWO_DTYPES(p1, p2, n, s1, s2) (((p1) == (p2)) || ((p2) + (n)*(s2) < (p1)) || ((p1) + (n)*(s1) < (p2)) )
+#define DISJOINT_OR_SAME(p1, p2, n, s) (((p1) == (p2)) || ((p2) + (n)*(s) < (p1)) || ((p1) + (n)*(s) < (p2)))
+#define DISJOINT_OR_SAME_TWO_DTYPES(p1, p2, n, s1, s2) (((p1) == (p2)) || ((p2) + (n)*(s2) < (p1)) || ((p1) + (n)*(s1) < (p2)))
 
 /*
  * include vectorized functions and dispatchers
@@ -224,890 +224,10 @@ divmod@c@(@type@ a, @type@ b, @type@ *modulus)
 
 /**begin repeat
  * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = sqrtf, sqrt#
- */
-
-void
-mkl_umath_@TYPE@_sqrt(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Sqrt, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Sqrt(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #A = F, #
- *  #c = s, d#
- *  #scalarf = expf, exp#
- */
-
-void
-mkl_umath_@TYPE@_exp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-    int ignore_fpstatus = 0;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        ignore_fpstatus = 1;
-        CHUNKED_VML_CALL2(v@c@Exp, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Exp(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            const int invalid_cases = npy_isnan(in1) || in1 == NPY_INFINITY || in1 == -NPY_INFINITY;
-            ignore_fpstatus |= invalid_cases;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-    if(ignore_fpstatus) {
-        feclearexcept(FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID);
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = exp2f, exp2#
- */
-
-void
-mkl_umath_@TYPE@_exp2(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-    int ignore_fpstatus = 0;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        ignore_fpstatus = 1;
-        CHUNKED_VML_CALL2(v@c@Exp2, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Exp2(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            const int invalid_cases = npy_isnan(in1) || in1 == NPY_INFINITY || in1 == -NPY_INFINITY;
-            ignore_fpstatus |= invalid_cases;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-    if(ignore_fpstatus) {
-        feclearexcept(FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID);
-    }    
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = expm1f, expm1#
- */
-
-void
-mkl_umath_@TYPE@_expm1(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@c@Expm1, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Expm1(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = logf, log#
- */
-
-void
-mkl_umath_@TYPE@_log(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Ln, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Ln(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = log2f, log2#
- */
-
-void
-mkl_umath_@TYPE@_log2(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-    int ignore_fpstatus = 0;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        ignore_fpstatus = 1;
-        CHUNKED_VML_CALL2(v@c@Log2, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Log2(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            const int invalid_cases = in1 < 0 || in1 == 0 || npy_isnan(in1) || in1 == -NPY_INFINITY;
-            ignore_fpstatus |= invalid_cases;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-    if(ignore_fpstatus) {
-        feclearexcept(FE_DIVBYZERO | FE_INVALID);
-    }    
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = log10f, log10#
- */
-
-void
-mkl_umath_@TYPE@_log10(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Log10, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Log10(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = log1pf, log1p#
- */
-
-void
-mkl_umath_@TYPE@_log1p(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Log1p, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Log1p(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = cosf, cos#
- */
-
-void
-mkl_umath_@TYPE@_cos(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Cos, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Cos(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = sinf, sin#
- */
-
-void
-mkl_umath_@TYPE@_sin(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Sin, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Sin(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = tanf, tan#
- */
-
-void
-mkl_umath_@TYPE@_tan(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Tan, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Tan(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = acosf, acos#
- */
-
-void
-mkl_umath_@TYPE@_arccos(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Acos, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Acos(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = asinf, asin#
- */
-
-void
-mkl_umath_@TYPE@_arcsin(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Asin, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Asin(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = atanf, atan#
- */
-
-void
-mkl_umath_@TYPE@_arctan(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Atan, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Atan(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = coshf, cosh#
- */
-
-void
-mkl_umath_@TYPE@_cosh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Cosh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Cosh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = sinhf, sinh#
- */
-
-void
-mkl_umath_@TYPE@_sinh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Sinh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Sinh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = tanhf, tanh#
- */
-
-void
-mkl_umath_@TYPE@_tanh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Tanh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Tanh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = acoshf, acosh#
- */
-
-void
-mkl_umath_@TYPE@_arccosh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Acosh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Acosh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = asinhf, asinh#
- */
-
-void
-mkl_umath_@TYPE@_arcsinh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Asinh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Asinh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = atanhf, atanh#
- */
-
-void
-mkl_umath_@TYPE@_arctanh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Atanh, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Atanh(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = fabsf, fabs#
- */
-
-void
-mkl_umath_@TYPE@_fabs(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Abs, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Abs(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = floorf, floor#
- */
-
-void
-mkl_umath_@TYPE@_floor(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Floor, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Floor(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = ceilf, ceil#
- */
-
-void
-mkl_umath_@TYPE@_ceil(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Ceil, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Ceil(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = rintf, rint#
- */
-
-void
-mkl_umath_@TYPE@_rint(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Rint, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Rint(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = truncf, trunc#
- */
-
-void
-mkl_umath_@TYPE@_trunc(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if( can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Trunc, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Trunc(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = s, d#
- *  #scalarf = cbrtf, cbrt#
- */
-
-void
-mkl_umath_@TYPE@_cbrt(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
-        CHUNKED_VML_CALL2(v@c@Cbrt, dimensions[0], @type@, args[0], args[1]);
-        /* v@c@Cbrt(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
-        UNARY_LOOP_DISPATCH(
-            @type@, @type@
-            ,
-            can_vectorize
-            ,
-            const @type@ in1 = *(@type@ *)ip1;
-            *(@type@ *)op1 = @scalarf@(in1);
-        )
-    }
-}
-
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #dtype = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = f, #
- *  #C = F, #
- *  #trf = , #
+ * #type = npy_float, npy_double#
+ * #TYPE = FLOAT, DOUBLE#
+ * #c = f, # 
+ * #s = s, d#
  */
 
 /*
@@ -1128,13 +248,13 @@ pairwise_sum_@TYPE@(char *a, npy_intp n, npy_intp stride)
     if (n < 8) {
         npy_intp i;
         /*
-         * Start with -0 to preserve -0 values.  The reason is that summing
+         * Start with -0 to preserve -0 values. The reason is that summing
          * only -0 should return -0, but `0 + -0 == 0` while `-0 + -0 == -0`.
          */
         @type@ res = -0.0;
 
         for (i = 0; i < n; i++) {
-            res += @trf@(*((@dtype@*)(a + i * stride)));
+            res += (*((@type@*)(a + i * stride)));
         }
         return res;
     }
@@ -1147,26 +267,26 @@ pairwise_sum_@TYPE@(char *a, npy_intp n, npy_intp stride)
          * 8 times unroll reduces blocksize to 16 and allows vectorization with
          * avx without changing summation ordering
          */
-        r[0] = @trf@(*((@dtype@ *)(a + 0 * stride)));
-        r[1] = @trf@(*((@dtype@ *)(a + 1 * stride)));
-        r[2] = @trf@(*((@dtype@ *)(a + 2 * stride)));
-        r[3] = @trf@(*((@dtype@ *)(a + 3 * stride)));
-        r[4] = @trf@(*((@dtype@ *)(a + 4 * stride)));
-        r[5] = @trf@(*((@dtype@ *)(a + 5 * stride)));
-        r[6] = @trf@(*((@dtype@ *)(a + 6 * stride)));
-        r[7] = @trf@(*((@dtype@ *)(a + 7 * stride)));
+        r[0] = (*((@type@ *)(a + 0 * stride)));
+        r[1] = (*((@type@ *)(a + 1 * stride)));
+        r[2] = (*((@type@ *)(a + 2 * stride)));
+        r[3] = (*((@type@ *)(a + 3 * stride)));
+        r[4] = (*((@type@ *)(a + 4 * stride)));
+        r[5] = (*((@type@ *)(a + 5 * stride)));
+        r[6] = (*((@type@ *)(a + 6 * stride)));
+        r[7] = (*((@type@ *)(a + 7 * stride)));
 
         for (i = 8; i < n - (n % 8); i += 8) {
             /* small blocksizes seems to mess with hardware prefetch */
-            NPY_PREFETCH(a + (i + 512/(npy_intp)sizeof(@dtype@))*stride, 0, 3);
-            r[0] += @trf@(*((@dtype@ *)(a + (i + 0) * stride)));
-            r[1] += @trf@(*((@dtype@ *)(a + (i + 1) * stride)));
-            r[2] += @trf@(*((@dtype@ *)(a + (i + 2) * stride)));
-            r[3] += @trf@(*((@dtype@ *)(a + (i + 3) * stride)));
-            r[4] += @trf@(*((@dtype@ *)(a + (i + 4) * stride)));
-            r[5] += @trf@(*((@dtype@ *)(a + (i + 5) * stride)));
-            r[6] += @trf@(*((@dtype@ *)(a + (i + 6) * stride)));
-            r[7] += @trf@(*((@dtype@ *)(a + (i + 7) * stride)));
+            NPY_PREFETCH(a + (i + 512/(npy_intp)sizeof(@type@))*stride, 0, 3);
+            r[0] += (*((@type@ *)(a + (i + 0) * stride)));
+            r[1] += (*((@type@ *)(a + (i + 1) * stride)));
+            r[2] += (*((@type@ *)(a + (i + 2) * stride)));
+            r[3] += (*((@type@ *)(a + (i + 3) * stride)));
+            r[4] += (*((@type@ *)(a + (i + 4) * stride)));
+            r[5] += (*((@type@ *)(a + (i + 5) * stride)));
+            r[6] += (*((@type@ *)(a + (i + 6) * stride)));
+            r[7] += (*((@type@ *)(a + (i + 7) * stride)));
         }
 
         /* accumulate now to avoid stack spills for single peel loop */
@@ -1175,7 +295,7 @@ pairwise_sum_@TYPE@(char *a, npy_intp n, npy_intp stride)
 
         /* do non multiple of 8 rest */
         for (; i < n; i++) {
-            res += @trf@(*((@dtype@ *)(a + i * stride)));
+            res += (*((@type@ *)(a + i * stride)));
         }
         return res;
     }
@@ -1189,37 +309,23 @@ pairwise_sum_@TYPE@(char *a, npy_intp n, npy_intp stride)
     }
 }
 
-/**end repeat**/
-
-/**begin repeat
- * Float types
- *  #type = npy_float, npy_double#
- *  #TYPE = FLOAT, DOUBLE#
- *  #c = f, #
- *  #s = s, d#
- *  #SUPPORTED_BY_VML = 1, 1#
- */
-
 /**begin repeat1
- * Arithmetic
- * # kind = add#
- * # OP = +#
- * # PW = 1#
- * # VML = Add#
+ * # kind = add, subtract#
+ * # OP = +, -#
+ * # PW = 1, 0#
+ * # VML = Add, Sub#
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    if(IS_BINARY_CONT(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
+    if (IS_BINARY_CONT(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
                 DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
+                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
             CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
             /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-        } else
-#endif
-        {
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1240,14 +346,15 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
                     @type@ *op1_shifted = op1 + peel;
                     @type@ *ip2_shifted = ip2 + peel;
 
-                    if( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
-                        DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1) ) {
+                    if (DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
+                        DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1)) {
                         NPY_ASSUME_ALIGNED(ip1_aligned, 64)
                         NPY_PRAGMA_VECTOR
                         for(j = 0; j < j_max; j++) {
                             op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
                         }
-                    } else {
+                    } 
+                    else {
                         NPY_ASSUME_ALIGNED(ip1_aligned, 64)
                         for(j = 0; j < j_max; j++) {
                             op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
@@ -1262,183 +369,14 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
                 op1[i] = ip1[i] @OP@ ip2[i];
             }
         }
-    } else if(IS_BINARY_CONT_S1(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], 1.0, *(@type@*)args[0], 0.0, 1.0);
-            /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], 1.0, *(@type@*)args[0], 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
-            @type@ *ip1 = (@type@*)args[0];
-            @type@ *ip2 = (@type@*)args[1];
-            @type@ *op1 = (@type@*)args[2];
-            const npy_intp vsize = 64;
-            const npy_intp n = dimensions[0];
-            const npy_intp peel = npy_aligned_block_offset(ip2, sizeof(@type@), vsize, n);
-            const npy_intp blocked_end = npy_blocked_end(peel, sizeof(@type@), vsize, n);
-            npy_intp i;
-
-            const @type@ ip1c = ip1[0];
-            for(i = 0; i < peel; i++) {
-                op1[i] = ip1c @OP@ ip2[i];
-            }
-
-            {
-                npy_intp j, j_max = blocked_end - peel;
-                if (j_max > 0) {
-                    @type@ *ip2_aligned = ip2 + peel;
-                    @type@ *op1_shifted = op1 + peel;
-
-                    NPY_ASSUME_ALIGNED(ip2_aligned, 64)
-                    for(j = 0; j < j_max; j++) {
-                        op1_shifted[j] = ip1c @OP@ ip2_aligned[j];
-                    }
-
-                    i = blocked_end;
-                }
-            }
-
-            for(; i < n; i++) {
-                op1[i] = ip1c @OP@ ip2[i];
-            }
-        }
-    } else if(IS_BINARY_CONT_S2(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, *(@type@*)args[1], 0.0, 1.0);
-            /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], 1.0, *(@type@*)args[1], 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
-            @type@ *ip1 = (@type@*)args[0];
-            @type@ *ip2 = (@type@*)args[1];
-            @type@ *op1 = (@type@*)args[2];
-            const npy_intp vsize = 64;
-            const npy_intp n = dimensions[0];
-            const npy_intp peel = npy_aligned_block_offset(ip1, sizeof(@type@), vsize, n);
-            const npy_intp blocked_end = npy_blocked_end(peel, sizeof(@type@), vsize, n);
-            npy_intp i;
-
-            const @type@ ip2c = ip2[0];
-            for(i = 0; i < peel; i++) {
-                op1[i] = ip1[i] @OP@ ip2c;
-            }
-
-            if (blocked_end > peel) {
-                npy_intp j, j_max = blocked_end - peel;
-                if (j_max > 0) {
-                    @type@ *op1_shifted = op1 + peel;
-                    @type@ *ip1_aligned = ip1 + peel;
-
-                    NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-                    for(j = 0; j < j_max; j++) {
-                        op1_shifted[j] = ip1_aligned[j] @OP@ ip2c;
-                    }
-
-                    i = blocked_end;
-                }
-            }
-
-            for(; i < n; i++) {
-                op1[i] = ip1[i] @OP@ ip2c;
-            }
-        }
-    } else if (IS_BINARY_REDUCE) {
-#if @PW@
-        @type@ * iop1 = (@type@ *)args[0];
-        npy_intp n = dimensions[0];
-
-        *iop1 @OP@= pairwise_sum_@TYPE@(args[1], n, steps[1]);
-#else
-        BINARY_REDUCE_LOOP(@type@) {
-            io1 @OP@= *(@type@ *)ip2;
-        }
-        *((@type@ *)iop1) = io1;
-#endif
-    } else {
-        BINARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1) = in1 @OP@ in2;
-        }
-    }
-}
-/**end repeat1**/
-
-/**begin repeat1
- * Arithmetic
- * # kind = subtract#
- * # OP = -#
- * # PW = 0#
- * # VML = Sub#
- */
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    if(IS_BINARY_CONT(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
-            /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-        } else
-#endif
-        {
-            @type@ *ip1 = (@type@*)args[0];
-            @type@ *ip2 = (@type@*)args[1];
-            @type@ *op1 = (@type@*)args[2];
-            const npy_intp vsize = 64;
-            const npy_intp n = dimensions[0];
-            const npy_intp peel = npy_aligned_block_offset(ip1, sizeof(@type@), vsize, n);
-            const npy_intp blocked_end = npy_blocked_end(peel, sizeof(@type@), vsize, n);
-            npy_intp i;
-
-            for(i = 0; i < peel; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
-            }
-
-            {
-                npy_intp j, j_max = blocked_end - peel;
-                if (j_max > 0) {
-                    @type@ *ip1_aligned = ip1 + peel;
-                    @type@ *ip2_shifted = ip2 + peel;
-                    @type@ *op1_shifted = op1 + peel;
-
-            if( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
-            DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1) ) {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            NPY_PRAGMA_VECTOR
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            } else {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            }
-
-                    i = blocked_end;
-                }
-            }
-
-            for(; i < n; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
-            }
-        }
-    } else if(IS_BINARY_CONT_S1(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
+    } 
+    else if (IS_BINARY_CONT_S1(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], -1.0, *(@type@*)args[0], 0.0, 1.0);
-            /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], -1.0, *(@type@*)args[0], 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
+            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], @OP@1.0, *(@type@*)args[0], 0.0, 1.0);
+            /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], @OP@1.0, *(@type@*)args[0], 0.0, 1.0, (@type@*) args[2]); */
+        } 
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1472,15 +410,14 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
                 op1[i] = ip1c @OP@ ip2[i];
             }
         }
-    } else if(IS_BINARY_CONT_S2(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, -(*(@type@*)args[1]), 0.0, 1.0);
-            /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], 1.0, -*(@type@*)args[1], 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
+    } 
+    else if (IS_BINARY_CONT_S2(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
+               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@))) {
+            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0);
+            /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0, (@type@*) args[2]); */
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1514,7 +451,8 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
                 op1[i] = ip1[i] @OP@ ip2c;
             }
         }
-    } else if (IS_BINARY_REDUCE) {
+    } 
+    else if (IS_BINARY_REDUCE) {
 #if @PW@
         @type@ * iop1 = (@type@ *)args[0];
         npy_intp n = dimensions[0];
@@ -1526,7 +464,8 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         }
         *((@type@ *)iop1) = io1;
 #endif
-    } else {
+    } 
+    else {
         BINARY_LOOP {
             const @type@ in1 = *(@type@ *)ip1;
             const @type@ in2 = *(@type@ *)ip2;
@@ -1536,26 +475,17 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 }
 /**end repeat1**/
 
-/**begin repeat1
- * Arithmetic
- * # kind = multiply#
- * # OP = *#
- * # PW = 0#
- * # VML = Mul#
- */
 void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    if(IS_BINARY_CONT(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
-            /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-        } else
-#endif
-        {
+    if (IS_BINARY_CONT(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
+                DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
+                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+            CHUNKED_VML_CALL3(v@s@Mul, dimensions[0], @type@, args[0], args[1], args[2]);
+            /* v@s@Mul(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1566,47 +496,47 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
             npy_intp i;
 
             for(i = 0; i < peel; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
+                op1[i] = ip1[i] * ip2[i];
             }
 
             {
                 npy_intp j, j_max = blocked_end - peel;
                 if (j_max > 0) {
                     @type@ *ip1_aligned = ip1 + peel;
-                    @type@ *ip2_shifted = ip2 + peel;
                     @type@ *op1_shifted = op1 + peel;
+                    @type@ *ip2_shifted = ip2 + peel;
 
-            if( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
-            DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1) ) {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            NPY_PRAGMA_VECTOR
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            } else {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            }
+                    if ( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
+                        DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1)) {
+                        NPY_ASSUME_ALIGNED(ip1_aligned, 64)
+                        NPY_PRAGMA_VECTOR
+                        for(j = 0; j < j_max; j++) {
+                            op1_shifted[j] = ip1_aligned[j] * ip2_shifted[j];
+                        }
+                    } 
+                    else {
+                        NPY_ASSUME_ALIGNED(ip1_aligned, 64)
+                        for(j = 0; j < j_max; j++) {
+                            op1_shifted[j] = ip1_aligned[j] * ip2_shifted[j];
+                        }
+                    }
 
                     i = blocked_end;
                 }
             }
 
             for(; i < n; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
+                op1[i] = ip1[i] * ip2[i];
             }
         }
-    } else if(IS_BINARY_CONT_S1(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
+    } 
+    else if (IS_BINARY_CONT_S1(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
+               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], *(@type@*)args[0], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], *(@type@*)args[0], 0.0, 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1618,7 +548,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
             const @type@ ip1c = ip1[0];
             for(i = 0; i < peel; i++) {
-                op1[i] = ip1c @OP@ ip2[i];
+                op1[i] = ip1c * ip2[i];
             }
 
             {
@@ -1629,7 +559,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
                     NPY_ASSUME_ALIGNED(ip2_aligned, 64)
                     for(j = 0; j < j_max; j++) {
-                        op1_shifted[j] = ip1c @OP@ ip2_aligned[j];
+                        op1_shifted[j] = ip1c * ip2_aligned[j];
                     }
 
                     i = blocked_end;
@@ -1637,18 +567,17 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
             }
 
             for(; i < n; i++) {
-                op1[i] = ip1c @OP@ ip2[i];
+                op1[i] = ip1c * ip2[i];
             }
         }
-    } else if(IS_BINARY_CONT_S2(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) ) {
+    } 
+    else if (IS_BINARY_CONT_S2(@type@, @type@)) {
+        if (dimensions[0] > VML_ASM_THRESHOLD &&
+               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@))) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], *(@type@*)args[1], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], *(@type@*)args[1], 0.0, 0.0, 1.0, (@type@*) args[2]); */
-        } else
-#endif
-        {
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1660,7 +589,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
             const @type@ ip2c = ip2[0];
             for(i = 0; i < peel; i++) {
-                op1[i] = ip1[i] @OP@ ip2c;
+                op1[i] = ip1[i] * ip2c;
             }
 
             {
@@ -1671,7 +600,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
                     NPY_ASSUME_ALIGNED(ip1_aligned, 64)
                     for(j = 0; j < j_max; j++) {
-                        op1_shifted[j] = ip1_aligned[j] @OP@ ip2c;
+                        op1_shifted[j] = ip1_aligned[j] * ip2c;
                     }
 
                     i = blocked_end;
@@ -1679,51 +608,36 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
             }
 
             for(; i < n; i++) {
-                op1[i] = ip1[i] @OP@ ip2c;
+                op1[i] = ip1[i] * ip2c;
             }
         }
-    } else if (IS_BINARY_REDUCE) {
-#if @PW@
-        @type@ * iop1 = (@type@ *)args[0];
-        npy_intp n = dimensions[0];
-
-        *iop1 @OP@= pairwise_sum_@TYPE@(args[1], n, steps[1]);
-#else
+    } 
+    else if (IS_BINARY_REDUCE) {
         BINARY_REDUCE_LOOP(@type@) {
-            io1 @OP@= *(@type@ *)ip2;
+            io1 *= *(@type@ *)ip2;
         }
         *((@type@ *)iop1) = io1;
-#endif
-    } else {
+    } 
+    else {
         BINARY_LOOP {
             const @type@ in1 = *(@type@ *)ip1;
             const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1) = in1 @OP@ in2;
+            *((@type@ *)op1) = in1 * in2;
         }
     }
 }
-/**end repeat1**/
 
-/**begin repeat1
- * Arithmetic
- * # kind = divide#
- * # OP = /#
- * # PW = 0#
- * # VML = Div#
- */
 void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+mkl_umath_@TYPE@_divide(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    if(IS_BINARY_CONT(@type@, @type@)) {
-#if @SUPPORTED_BY_VML@
-        if(dimensions[0] > VML_D_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@)) ) {
-            CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
-            /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-        } else
-#endif
-        {
+    if (IS_BINARY_CONT(@type@, @type@)) {
+        if (dimensions[0] > VML_D_THRESHOLD &&
+                DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
+                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+            CHUNKED_VML_CALL3(v@s@Div, dimensions[0], @type@, args[0], args[1], args[2]);
+            /* v@s@Div(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+        }
+        else {
             @type@ *ip1 = (@type@*)args[0];
             @type@ *ip2 = (@type@*)args[1];
             @type@ *op1 = (@type@*)args[2];
@@ -1735,7 +649,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
         NPY_PRAGMA_NOVECTOR
             for(i = 0; i < peel; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
+                op1[i] = ip1[i] / ip2[i];
             }
 
             {
@@ -1743,21 +657,24 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         j_max &= (~0xf);
         const npy_intp blocked_end = j_max + peel;
                 if (j_max > 0) {
-                    @type@ *ip1_aligned = ip1 + peel, *op1_shifted = op1 + peel, *ip2_shifted = ip2 + peel;
-
-            if( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
-            DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1) ) {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            NPY_PRAGMA_VECTOR
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            } else {
-            NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-            for(j = 0; j < j_max; j++) {
-                op1_shifted[j] = ip1_aligned[j] @OP@ ip2_shifted[j];
-            }
-            }
+                    @type@ *ip1_aligned = ip1 + peel;
+                    @type@ *op1_shifted = op1 + peel;
+                    @type@ *ip2_shifted = ip2 + peel;
+
+                    if (DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
+                        DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1)) {
+                        NPY_ASSUME_ALIGNED(ip1_aligned, 64)
+                        NPY_PRAGMA_VECTOR
+                        for(j = 0; j < j_max; j++) {
+                            op1_shifted[j] = ip1_aligned[j] / ip2_shifted[j];
+                        }
+                    } 
+                    else {
+                        NPY_ASSUME_ALIGNED(ip1_aligned, 64)
+                        for(j = 0; j < j_max; j++) {
+                            op1_shifted[j] = ip1_aligned[j] / ip2_shifted[j];
+                        }
+                    }
 
                     i = blocked_end;
                 }
@@ -1765,10 +682,11 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
         NPY_PRAGMA_NOVECTOR
             for(; i < n; i++) {
-                op1[i] = ip1[i] @OP@ ip2[i];
+                op1[i] = ip1[i] / ip2[i];
             }
         }
-    } else if(IS_BINARY_CONT_S1(@type@, @type@)) {
+    } 
+    else if (IS_BINARY_CONT_S1(@type@, @type@)) {
         @type@ *ip1 = (@type@*)args[0];
         @type@ *ip2 = (@type@*)args[1];
         @type@ *op1 = (@type@*)args[2];
@@ -1781,7 +699,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         const @type@ ip1c = ip1[0];
     NPY_PRAGMA_NOVECTOR
         for(i = 0; i < peel; i++) {
-            op1[i] = ip1c @OP@ ip2[i];
+            op1[i] = ip1c / ip2[i];
         }
 
         {
@@ -1791,7 +709,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
                 NPY_ASSUME_ALIGNED(ip2_aligned, 64)
                 for(j = 0; j < j_max; j++) {
-                    op1_shifted[j] = ip1c @OP@ ip2_aligned[j];
+                    op1_shifted[j] = ip1c / ip2_aligned[j];
                 }
 
                 i = blocked_end;
@@ -1800,9 +718,10 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
     NPY_PRAGMA_NOVECTOR
         for(; i < n; i++) {
-            op1[i] = ip1c @OP@ ip2[i];
+            op1[i] = ip1c / ip2[i];
         }
-    } else if(IS_BINARY_CONT_S2(@type@, @type@)) {
+    } 
+    else if (IS_BINARY_CONT_S2(@type@, @type@)) {
         @type@ *ip1 = (@type@*)args[0];
         @type@ *ip2 = (@type@*)args[1];
         @type@ *op1 = (@type@*)args[2];
@@ -1815,48 +734,304 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         const @type@ ip2c = ip2[0];
     NPY_PRAGMA_NOVECTOR
         for(i = 0; i < peel; i++) {
-            op1[i] = ip1[i] @OP@ ip2c;
+            op1[i] = ip1[i] / ip2c;
+        }
+
+        {
+            npy_intp j, j_max = blocked_end - peel;
+            if (j_max > 0) {
+                @type@ *ip1_aligned = ip1 + peel, *op1_shifted = op1 + peel;
+
+                NPY_ASSUME_ALIGNED(ip1_aligned, 64)
+                for(j = 0; j < j_max; j++) {
+                    op1_shifted[j] = ip1_aligned[j] / ip2c;
+                }
+
+                i = blocked_end;
+            }
+        }
+
+    NPY_PRAGMA_NOVECTOR
+        for(; i < n; i++) {
+            op1[i] = ip1[i] / ip2c;
+        }
+    } 
+    else if (IS_BINARY_REDUCE) {
+        BINARY_REDUCE_LOOP(@type@) {
+            io1 /= *(@type@ *)ip2;
+        }
+        *((@type@ *)iop1) = io1;
+    } 
+    else {
+        BINARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ in2 = *(@type@ *)ip2;
+            *((@type@ *)op1) = in1 / in2;
+        }
+    }
+}
+
+/**begin repeat1
+ * #kind = fmax, fmin#
+ * #VML = Fmax, Fmin#
+ * #OP = >=, <=#
+ **/
+void
+mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        if (IS_BINARY_REDUCE) {
+            BINARY_REDUCE_LOOP(@type@) {
+                const @type@ in2 = *(@type@ *)ip2;
+                /* Order of operations important for MSVC 2015 */
+                io1 = (io1 @OP@ in2 || isnan(in2)) ? io1 : in2;
+            }
+            *((@type@ *)iop1) = io1;
+        }
+        else {
+            BINARY_LOOP {
+                const @type@ in1 = *(@type@ *)ip1;
+                const @type@ in2 = *(@type@ *)ip2;
+                /* Order of operations important for MSVC 2015 */
+                *((@type@ *)op1) = (in1 @OP@ in2 || isnan(in2)) ? in1 : in2;
+            }
+        }
+        feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
+    }
+}
+/**end repeat1**/
+
+/**begin repeat1
+ * # kind = copysign, nextafter#
+ * # VML = CopySign, NextAfter#
+ */
+void
+mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ in2 = *(@type@ *)ip2;
+            *((@type@ *)op1)= @kind@@c@(in1, in2);
+        }
+    }
+}
+/**end repeat1**/
+
+void
+mkl_umath_@TYPE@_remainder(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
+    int ignore_fpstatus = 0;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        ignore_fpstatus = 1;
+        CHUNKED_VML_CALL3(v@s@Remainder, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@Remainder(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ in2 = *(@type@ *)ip2;
+            int invalid_cases = !npy_isnan(in1) && in2 == 0;
+            invalid_cases |= (in1 == NPY_INFINITY || in1 == -NPY_INFINITY) && !npy_isnan(in2);
+            invalid_cases |= (in1 != NPY_INFINITY && in1 != -NPY_INFINITY) && (in2 == NPY_INFINITY || in2 == -NPY_INFINITY);
+            ignore_fpstatus |= invalid_cases;
+            divmod@c@(in1, in2, (@type@ *)op1);
         }
+    }
+    if (ignore_fpstatus) {
+        feclearexcept(FE_UNDERFLOW | FE_INVALID);
+    }
+}
+
+/**begin repeat1
+ * # kind = cos, sin, tan, arccos, arcsin, arctan, cosh, sinh, tanh, arccosh, arcsinh, arctanh, fabs, floor, ceil, rint, trunc, cbrt, sqrt, expm1, log, log1p, log10#
+ * # func = cos, sin, tan, acos, asin, atan, cosh, sinh, tanh, acosh, asinh, atanh, fabs, floor, ceil, rint, trunc, cbrt, sqrt, expm1, log, log1p, log10#
+ * # VML = Cos, Sin, Tan, Acos, Asin, Atan, Cosh, Sinh, Tanh, Acosh, Asinh, Atanh, Abs, Floor, Ceil, Rint, Trunc, Cbrt, Sqrt, Expm1, Ln, Log1p, Log10#
+ */
+void
+mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
+    {
+        CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    }
+    else {
+        UNARY_LOOP_DISPATCH(
+            @type@, @type@
+            ,
+            can_vectorize
+            ,
+            const @type@ in1 = *(@type@ *)ip1;
+            *(@type@ *)op1 = @func@@c@(in1);
+        )
+    }
+}
+/**end repeat1**/
+
+/**begin repeat1
+ * # kind = exp, exp2#
+ * # VML = Exp, Exp2#
+ */
+void
+mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
+    int ignore_fpstatus = 0;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
+    {
+        ignore_fpstatus = 1;
+        CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@Exp(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    } 
+    else {
+        UNARY_LOOP_DISPATCH(
+            @type@, @type@
+            ,
+            can_vectorize
+            ,
+            const @type@ in1 = *(@type@ *)ip1;
+            const int invalid_cases = npy_isnan(in1) || in1 == NPY_INFINITY || in1 == -NPY_INFINITY;
+            ignore_fpstatus |= invalid_cases;
+            *(@type@ *)op1 = @kind@@c@(in1);
+        )
+    }
+    if (ignore_fpstatus) {
+        feclearexcept(FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID);
+    }
+}
+/**end repeat1**/
+
+void
+mkl_umath_@TYPE@_log2(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
+    int ignore_fpstatus = 0;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
+    {
+        ignore_fpstatus = 1;
+        CHUNKED_VML_CALL2(v@s@Log2, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@Log2(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    } 
+    else {
+        UNARY_LOOP_DISPATCH(
+            @type@, @type@
+            ,
+            can_vectorize
+            ,
+            const @type@ in1 = *(@type@ *)ip1;
+            const int invalid_cases = in1 < 0 || in1 == 0 || npy_isnan(in1) || in1 == -NPY_INFINITY;
+            ignore_fpstatus |= invalid_cases;
+            *(@type@ *)op1 = log2@c@(in1);
+        )
+    }
+    if (ignore_fpstatus) {
+        feclearexcept(FE_DIVBYZERO | FE_INVALID);
+    }    
+}
+
+void
+mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
 
-        {
-            npy_intp j, j_max = blocked_end - peel;
-            if (j_max > 0) {
-                @type@ *ip1_aligned = ip1 + peel, *op1_shifted = op1 + peel;
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL2(v@s@Abs, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@Abs(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    }
+    else {
+        UNARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ tmp = in1 > 0 ? in1 : -in1;
+            /* add 0 to clear -0.0 */
+            *((@type@ *)op1) = tmp + 0;
+        }
+    }
+    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
+}
 
-                NPY_ASSUME_ALIGNED(ip1_aligned, 64)
-                for(j = 0; j < j_max; j++) {
-                    op1_shifted[j] = ip1_aligned[j] @OP@ ip2c;
-                }
+void
+mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
 
-                i = blocked_end;
-            }
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL2(v@s@Inv, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@Inv(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    }
+    else {
+        UNARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            *((@type@ *)op1) = 1/in1;
         }
+    }
+}
 
-    NPY_PRAGMA_NOVECTOR
-        for(; i < n; i++) {
-            op1[i] = ip1[i] @OP@ ip2c;
-        }
-    } else if (IS_BINARY_REDUCE) {
-#if @PW@
-        @type@ * iop1 = (@type@ *)args[0];
-        npy_intp n = dimensions[0];
+void
+mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
 
-        *iop1 @OP@= pairwise_sum_@TYPE@(args[1], n, steps[1]);
-#else
-        BINARY_REDUCE_LOOP(@type@) {
-            io1 @OP@= *(@type@ *)ip2;
-        }
-        *((@type@ *)iop1) = io1;
-#endif
-    } else {
-        BINARY_LOOP {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL2(v@s@Sqr, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@Sqr(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    }
+    else {
+        UNARY_LOOP {
             const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1) = in1 @OP@ in2;
+            *((@type@ *)op1) = in1*in1;
         }
     }
 }
-/**end repeat1**/
+
+/* TODO: USE MKL */
+void
+mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    UNARY_LOOP_TWO_OUT {
+        const @type@ in1 = *(@type@ *)ip1;
+        *((@type@ *)op1) = modf@c@(in1, (@type@ *)op2);
+    }
+}
 
 /**begin repeat1
  * #kind = equal, not_equal, less, less_equal, greater, greater_equal,
@@ -1912,69 +1087,13 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 }
 /**end repeat1**/
 
-void
-mkl_umath_@TYPE@_spacing(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    UNARY_LOOP {
-        const @type@ in1 = *(@type@ *)ip1;
-        *((@type@ *)op1) = (spacing@c@(in1));
-    }
-}
-
-void
-mkl_umath_@TYPE@_copysign(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-#if @SUPPORTED_BY_VML@    
-    const int contig = IS_BINARY_CONT(@type@, @type@);
-    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
-    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL3(v@s@CopySign, dimensions[0], @type@, args[0], args[1], args[2]);
-        /* v@s@CopySign(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-    } else    
-#endif    
-    {
-        BINARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1)= copysign@c@(in1, in2);
-        }
-    }
-}
-
-void
-mkl_umath_@TYPE@_nextafter(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-#if @SUPPORTED_BY_VML@    
-    const int contig = IS_BINARY_CONT(@type@, @type@);
-    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
-    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL3(v@s@NextAfter, dimensions[0], @type@, args[0], args[1], args[2]);
-        /* v@s@NextAfter(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-    } else    
-#endif
-    {
-        BINARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1)= nextafter@c@(in1, in2);
-        }
-    }
-}
-
 /**begin repeat1
  * #kind = maximum, minimum#
- * #OP =  >=, <=#
+ * #OP = >=, <=#
  **/
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    /*  */
     if (IS_BINARY_REDUCE) {
         {
             BINARY_REDUCE_LOOP(@type@) {
@@ -1998,130 +1117,6 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 }
 /**end repeat1**/
 
-/**begin repeat1
- * #kind = fmax, fmin#
- * #VML = Fmax, Fmin#
- * #OP =  >=, <=#
- **/
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-#if @SUPPORTED_BY_VML@    
-    const int contig = IS_BINARY_CONT(@type@, @type@);
-    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
-    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
-        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-    } else
-#endif      
-    {
-        if (IS_BINARY_REDUCE) {
-            BINARY_REDUCE_LOOP(@type@) {
-                const @type@ in2 = *(@type@ *)ip2;
-                /* Order of operations important for MSVC 2015 */
-                io1 = (io1 @OP@ in2 || isnan(in2)) ? io1 : in2;
-            }
-            *((@type@ *)iop1) = io1;
-        }
-        else {
-            BINARY_LOOP {
-                const @type@ in1 = *(@type@ *)ip1;
-                const @type@ in2 = *(@type@ *)ip2;
-                /* Order of operations important for MSVC 2015 */
-                *((@type@ *)op1) = (in1 @OP@ in2 || isnan(in2)) ? in1 : in2;
-            }
-        }
-        feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-    }
-}
-/**end repeat1**/
-
-void
-mkl_umath_@TYPE@_remainder(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-#if @SUPPORTED_BY_VML@    
-    const int contig = IS_BINARY_CONT(@type@, @type@);
-    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
-    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
-    int ignore_fpstatus = 0;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        ignore_fpstatus = 1;
-        CHUNKED_VML_CALL3(v@s@Remainder, dimensions[0], @type@, args[0], args[1], args[2]);
-        /* v@s@Remainder(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
-    } else    
-#endif      
-    {    
-        BINARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            int invalid_cases = !npy_isnan(in1) && in2 == 0;
-            invalid_cases |= (in1 == NPY_INFINITY || in1 == -NPY_INFINITY) && !npy_isnan(in2);
-            invalid_cases |= (in1 != NPY_INFINITY && in1 != -NPY_INFINITY) && (in2 == NPY_INFINITY || in2 == -NPY_INFINITY);
-            ignore_fpstatus |= invalid_cases;
-            divmod@c@(in1, in2, (@type@ *)op1);
-        }
-    }
-    if(ignore_fpstatus) {
-        feclearexcept(FE_UNDERFLOW | FE_INVALID);
-    }     
-}
-
-void
-mkl_umath_@TYPE@_divmod(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    BINARY_LOOP_TWO_OUT {
-        const @type@ in1 = *(@type@ *)ip1;
-        const @type@ in2 = *(@type@ *)ip2;
-        *((@type@ *)op1) = divmod@c@(in1, in2, (@type@ *)op2);
-    }
-}
-
-void
-mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
-{
-#if @SUPPORTED_BY_VML@
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@s@Sqr, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@Sqr(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else
-#endif
-    {
-        UNARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            *((@type@ *)op1) = in1*in1;
-        }
-    }
-}
-
-void
-mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
-{
-#if @SUPPORTED_BY_VML@
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@s@Inv, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@Inv(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else
-#endif
-    {
-        UNARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            *((@type@ *)op1) = 1/in1;
-        }
-    }
-}
 
 void
 mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
@@ -2133,27 +1128,12 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
 }
 
 void
-mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+mkl_umath_@TYPE@_spacing(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-#if @SUPPORTED_BY_VML@
-    const int contig = IS_UNARY_CONT(@type@, @type@);
-    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
-    const int can_vectorize = contig && disjoint_or_same;
-
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@s@Abs, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@Abs(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else
-#endif
-    {
-        UNARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ tmp = in1 > 0 ? in1 : -in1;
-            /* add 0 to clear -0.0 */
-            *((@type@ *)op1) = tmp + 0;
-        }
+    UNARY_LOOP {
+        const @type@ in1 = *(@type@ *)ip1;
+        *((@type@ *)op1) = (spacing@c@(in1));
     }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
 }
 
 void
@@ -2186,13 +1166,13 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
     }
 }
 
-/* TODO: USE MKL */
 void
-mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+mkl_umath_@TYPE@_divmod(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    UNARY_LOOP_TWO_OUT {
+    BINARY_LOOP_TWO_OUT {
         const @type@ in1 = *(@type@ *)ip1;
-        *((@type@ *)op1) = modf@c@(in1, (@type@ *)op2);
+        const @type@ in2 = *(@type@ *)ip2;
+        *((@type@ *)op1) = divmod@c@(in1, in2, (@type@ *)op2);
     }
 }
 
@@ -2276,7 +1256,6 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
     }
 }
 #endif
-
 /**end repeat**/
 
 /*
@@ -2316,8 +1295,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 #endif
 #endif
 static void
-pairwise_sum_@TYPE@(@ftype@ *rr, @ftype@ * ri, char * a, npy_intp n,
-                    npy_intp stride)
+pairwise_sum_@TYPE@(@ftype@ *rr, @ftype@ * ri, char * a, npy_intp n, npy_intp stride)
 {
     assert(n % 2 == 0);
     if (n < 8) {
@@ -2389,7 +1367,6 @@ pairwise_sum_@TYPE@(@ftype@ *rr, @ftype@ * ri, char * a, npy_intp n,
 
 /* TODO: USE MKL */
 /**begin repeat1
- * arithmetic
  * #kind = add, subtract#
  * #OP = +, -#
  * #PW = 1, 0#
@@ -2566,7 +1543,8 @@ mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_i
             const @ftype@ d = in1r + in1i*r;
             ((@ftype@ *)op1)[0] = 1/d;
             ((@ftype@ *)op1)[1] = -r/d;
-        } else {
+        } 
+        else {
             const @ftype@ r = in1r/in1i;
             const @ftype@ d = in1r*r + in1i;
             ((@ftype@ *)op1)[0] = r/d;
@@ -2581,10 +1559,11 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
     const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
     const int can_vectorize = contig && disjoint_or_same;
 
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         CHUNKED_VML_CALL2(v@s@Conj, dimensions[0], @type@, args[0], args[1]);
         /* v@s@Conj(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
+    } 
+    else {
         UNARY_LOOP {
             const @ftype@ in1r = ((@ftype@ *)ip1)[0];
             const @ftype@ in1i = ((@ftype@ *)ip1)[1];
@@ -2602,18 +1581,19 @@ mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_int
     const int can_vectorize = contig && disjoint_or_same;
     int ignore_fpstatus = 0;
     
-    if(can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         ignore_fpstatus = 1;
         CHUNKED_VML_CALL2(v@s@Abs, dimensions[0], @type@, args[0], args[1]);
         /* v@s@Abs(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
-    } else {
+    } 
+    else {
         UNARY_LOOP {
             const @ftype@ in1r = ((@ftype@ *)ip1)[0];
             const @ftype@ in1i = ((@ftype@ *)ip1)[1];
             *((@ftype@ *)op1) = hypot@c@(in1r, in1i);
         }
     }
-    if(ignore_fpstatus) {
+    if (ignore_fpstatus) {
         feclearexcept(FE_INVALID);
     }
 }
@@ -2660,12 +1640,12 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
         UNARY_LOOP {
             const @ftype@ in1r = ((@ftype@ *)ip1)[0];
             const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-            ((@ftype@ *)op1)[0] = CGT(in1r, in1i, 0.0, 0.0) ?  1 :
+            ((@ftype@ *)op1)[0] = CGT(in1r, in1i, 0.0, 0.0) ? 1 :
                                 (CLT(in1r, in1i, 0.0, 0.0) ? -1 :
-                                (CEQ(in1r, in1i, 0.0, 0.0) ?  0 : NPY_NAN@C@));
+                                (CEQ(in1r, in1i, 0.0, 0.0) ? 0 : NPY_NAN@C@));
             ((@ftype@ *)op1)[1] = 0;
         }
-        feclearexcept(FE_INVALID);    
+        feclearexcept(FE_INVALID);
     #endif
 }
 
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index be25745..286f301 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -53,214 +53,19 @@
  *  #TYPE = FLOAT, DOUBLE#
  */
 
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_sqrt(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_exp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_exp2(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_expm1(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_log(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_log2(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_log10(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_log1p(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_cos(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_sin(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_tan(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arccos(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arcsin(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arctan(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_cosh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_sinh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_tanh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arccosh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arcsinh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_arctanh(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_fabs(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_floor(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_ceil(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_rint(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_trunc(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_cbrt(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
 /**begin repeat1
- * Arithmetic
- * # kind = add, subtract, multiply, divide#
+ * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
+            copysign, cos, cosh, divide, divmod, isfinite, isinf, isnan, equal, exp, exp2, expm1, fabs, 
+            floor, fmax, fmin, frexp, greater, greater_equal, ldexp, less, less_equal, log, log2, log10, 
+            log1p, logical_and, logical_not, logical_or, logical_xor, maximum, minimum, multiply, modf, 
+            negative, nextafter, not_equal, positive, reciprocal, remainder, rint, sign, signbit, sin,
+            sinh, spacing, sqrt, square, subtract, tan, tanh, trunc#
  */
 MKL_UMATH_API
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
 /**end repeat1**/
 
-/**begin repeat1
- * Arithmetic
- * # kind = equal, not_equal, less, less_equal, greater, greater_equal,
- *        logical_and, logical_or#
- */
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-/**end repeat1**/
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_logical_xor(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_logical_not(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-/**begin repeat1
- * #kind = isnan, isinf, isfinite, signbit#
- **/
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-/**end repeat1**/
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_spacing(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_copysign(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_nextafter(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-/**begin repeat1
- * #kind = maximum, minimum, fmax, fmin#
- **/
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-/**end repeat1**/
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_remainder(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_divmod(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_negative(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_positive(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_frexp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_ldexp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
 #ifdef USE_NUMPY_2
 MKL_UMATH_API
 void
@@ -292,57 +97,9 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * arithmetic
- * #kind = add, subtract#
- */
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-/**end repeat1**/
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_divide(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-
-
-/**begin repeat1
- * arithmetic
- * #kind = greater, greater_equal, less, less_equal, equal, 
-           not_equal, logical_and, logical_or, logical_xor, logical_not,
-	   isnan, isinf, isfinite#
- */
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
-/**end repeat1**/
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-MKL_UMATH_API
-void
-mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data));
-
-/**begin repeat1
- * arithmetic
- * #kind = maximum, minimum, fmax, fmin#
+ * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal, fmax, fmin, greater, greater_equal, 
+            less, less_equal, logical_and, logical_not, logical_or, logical_xor, maximum, minimum, multiply,
+            not_equal, reciprocal, sign, square, subtract#
  */
 MKL_UMATH_API
 void
diff --git a/mkl_umath/tests/test_basic.py b/mkl_umath/tests/test_basic.py
index af30e67..9c2133f 100644
--- a/mkl_umath/tests/test_basic.py
+++ b/mkl_umath/tests/test_basic.py
@@ -60,6 +60,7 @@ def get_args(args_str, size, low, high):
 for umath in umaths:
     mkl_umath = getattr(mu, umath)
     types = mkl_umath.types
+    size_mkl = 8192 + 1
     for type_ in types:
         args_str = type_[:type_.find("->")]
         if umath in ["arccos", "arcsin", "arctanh"]:
@@ -70,9 +71,12 @@ def get_args(args_str, size, low, high):
             low = 1; high = 10
         else:
             low = -10; high = 10
-        # when size > 8192, mkl is used (if supported), 
+        
+        if umath in ["add", "subtract", "multiply"]:
+            size_mkl = 10**5 + 1
+        # when size > size_mkl, mkl is used (if supported), 
         # otherwise it falls back on numpy algorithm
-        args_mkl = get_args(args_str, 8200, low, high)
+        args_mkl = get_args(args_str, size_mkl, low, high)
         args_fall_back = get_args(args_str, 100, low, high)
         mkl_cases[(umath, type_)] = args_mkl
         fall_back_cases[(umath, type_)] = args_fall_back     
@@ -93,7 +97,7 @@ def test_mkl_umath(case):
     mkl_res = mkl_umath(*args)
     np_res = np_umath(*args)
        
-    assert np.allclose(mkl_res, np_res), f"Results for '{umath}': mkl_res: {mkl_res}, np_res: {np_res}"
+    assert np.allclose(mkl_res, np_res), f"Results for '{umath}' do not match"
 
 
 @pytest.mark.parametrize("case", test_fall_back, ids=get_id)
@@ -105,8 +109,64 @@ def test_fall_back_umath(case):
     
     mkl_res = mkl_umath(*args)
     np_res = np_umath(*args)
-       
-    assert np.allclose(mkl_res, np_res), f"Results for '{umath}': mkl_res: {mkl_res}, np_res: {np_res}"    
+
+    assert np.allclose(mkl_res, np_res), f"Results for '{umath}' do not match"    
+
+
+@pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide"])
+@pytest.mark.parametrize("size", [10**5 + 1, 100])
+@pytest.mark.parametrize("dtype", [np.float32, np.float64])
+def test_scalar(func, size, dtype):
+    a = np.random.uniform(-10, 10, size).astype(dtype)
+
+    # testing implementation in IS_BINARY_CONT_S1 branch
+    mkl_res = getattr(mu, func)(a, 1.0)
+    np_res = getattr(np, func)(a, 1.0)
+    assert np.allclose(mkl_res, np_res), f"Results for '{func}(array, scalar)' do not match"
+
+    # testing implementation in IS_BINARY_CONT_S2 branch
+    mkl_res = getattr(mu, func)(1.0, a)
+    np_res = getattr(np, func)(1.0, a)
+    assert np.allclose(mkl_res, np_res), f"Results for '{func}(scalar, array)' do not match"
+
+
+@pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide"])
+@pytest.mark.parametrize("dtype", [np.float32, np.float64])
+def test_strided(func, dtype):
+    # testing implementation in rthe final else branch
+    a = np.random.uniform(-10, 10, 100)[::2].astype(dtype)
+    b = np.random.uniform(-10, 10, 100)[::2].astype(dtype)
+
+    mkl_res = getattr(mu, func)(a, b)
+    np_res = getattr(np, func)(a, b)
+    assert np.allclose(mkl_res, np_res), f"Results for '{func}[strided]' do not match"
+
+
+@pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide", "maximum", "minimum", "fmax", "fmin"])
+@pytest.mark.parametrize("dtype", [np.float32, np.float64])
+def test_reduce_float(func, dtype):
+    # testing implementation in IS_BINARY_REDUCE branch
+    a = np.random.uniform(-10, 10, 50).astype(dtype)
+    mkl_func = getattr(mu, func)
+    np_func = getattr(np, func)
+
+    mkl_res = mkl_func.reduce(a)
+    np_res = np_func.reduce(a)
+    assert np.allclose(mkl_res, np_res), f"Results for '{func}[reduce]' do not match"
+
+
+@pytest.mark.parametrize("func", ["add", "subtract"])
+@pytest.mark.parametrize("dtype", [np.complex64, np.complex128])
+def test_reduce_complex(func, dtype):
+    # testing implementation in IS_BINARY_REDUCE branch
+    a = np.random.uniform(-10, 10, 100) + 1j * np.random.uniform(-10, 10, 100)
+    a = a.astype(dtype)
+    mkl_func = getattr(mu, func)
+    np_func = getattr(np, func)
+
+    mkl_res = mkl_func.reduce(a)
+    np_res = np_func.reduce(a)
+    assert np.allclose(mkl_res, np_res), f"Results for '{func}[reduce]' do not match"
 
 
 def test_patch():

From fbcacbc1f8ea0eb1bb3f3ef8f5e50610f3bf33d3 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Thu, 24 Jul 2025 15:34:18 -0700
Subject: [PATCH 02/23] add MKL for complex add, subtract, multiply, divide

---
 CHANGELOG.md                        |  11 +-
 mkl_umath/src/mkl_umath_loops.c.src | 162 ++++++++++++++++------------
 2 files changed, 102 insertions(+), 71 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ff78768..3038e08 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,13 +4,14 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
-## [dev] (MM/DD/YYYY)
+## [dev] - YYYY-MM-DD
 
 ### Added
 * Added mkl implementation for floating point data-types of `exp2`, `log2`, `fabs`, `copysign`, `nextafter`, `fmax`, `fmin` and `remainder` functions [gh-81](https://github.com/IntelPython/mkl_umath/pull/81)
 * Added mkl implementation for complex data-types of `conjugate` and `absolute` functions [gh-86](https://github.com/IntelPython/mkl_umath/pull/86)
+* Added mkl implementation for complex data-types of `add`, `subtract`, `multiply` and `divide` functions [gh-88](https://github.com/IntelPython/mkl_umath/pull/88)
 
-## [0.2.0] (06/03/2025)
+## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
 
 ### Added
@@ -25,12 +26,12 @@ This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-
 * Fixed a bug for `mkl_umath.is_patched` function [gh-66](https://github.com/IntelPython/mkl_umath/pull/66)
 
 
-## [0.1.5] (04/09/2025)
+## [0.1.5] - 2025-04-09
 
 ### Fixed
 * Fixed failures to import `mkl_umath` from virtual environment on Linux
 
-## [0.1.4] (04/09/2025)
+## [0.1.4] - 2025-04-09
 
 ### Added
 * Added support for `mkl_umath` out-of-the-box in virtual environments on Windows
@@ -38,7 +39,7 @@ This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-
 ### Fixed
 * Fixed a bug in in-place addition with negative zeros
 
-## [0.1.2] (10/11/2024)
+## [0.1.2] - 2024-10-11
 
 ### Added
 * Added support for building with NumPy 2.0 and older
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 81ee830..aa4b927 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -318,10 +318,11 @@ pairwise_sum_@TYPE@(char *a, npy_intp n, npy_intp stride)
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+
     if (IS_BINARY_CONT(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-                DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1 && disjoint_or_same2) {
             CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
             /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
         }
@@ -371,8 +372,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         }
     } 
     else if (IS_BINARY_CONT_S1(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same2) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], @OP@1.0, *(@type@*)args[0], 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], @OP@1.0, *(@type@*)args[0], 0.0, 1.0, (@type@*) args[2]); */
         } 
@@ -412,8 +412,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         }
     } 
     else if (IS_BINARY_CONT_S2(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0, (@type@*) args[2]); */
         }
@@ -478,10 +477,11 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 void
 mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+
     if (IS_BINARY_CONT(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-                DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1 && disjoint_or_same2) {
             CHUNKED_VML_CALL3(v@s@Mul, dimensions[0], @type@, args[0], args[1], args[2]);
             /* v@s@Mul(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
         }
@@ -531,8 +531,7 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
         }
     } 
     else if (IS_BINARY_CONT_S1(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same2) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], *(@type@*)args[0], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], *(@type@*)args[0], 0.0, 0.0, 1.0, (@type@*) args[2]); */
         }
@@ -572,8 +571,7 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
         }
     } 
     else if (IS_BINARY_CONT_S2(@type@, @type@)) {
-        if (dimensions[0] > VML_ASM_THRESHOLD &&
-               DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1) {
             CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], *(@type@*)args[1], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], *(@type@*)args[1], 0.0, 0.0, 1.0, (@type@*) args[2]); */
         }
@@ -630,10 +628,11 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
 void
 mkl_umath_@TYPE@_divide(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+
     if (IS_BINARY_CONT(@type@, @type@)) {
-        if (dimensions[0] > VML_D_THRESHOLD &&
-                DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@)) &&
-                DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@))) {
+        if (dimensions[0] > VML_D_THRESHOLD && disjoint_or_same1 && disjoint_or_same2) {
             CHUNKED_VML_CALL3(v@s@Div, dimensions[0], @type@, args[0], args[1], args[2]);
             /* v@s@Div(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
         }
@@ -1365,83 +1364,114 @@ pairwise_sum_@TYPE@(@ftype@ *rr, @ftype@ * ri, char * a, npy_intp n, npy_intp st
     }
 }
 
-/* TODO: USE MKL */
 /**begin repeat1
  * #kind = add, subtract#
  * #OP = +, -#
  * #PW = 1, 0#
+ * #VML = Add, Sub# 
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    if (IS_BINARY_REDUCE && @PW@) {
-        npy_intp n = dimensions[0];
-        @ftype@ * or = ((@ftype@ *)args[0]);
-        @ftype@ * oi = ((@ftype@ *)args[0]) + 1;
-        @ftype@ rr, ri;
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
 
-        pairwise_sum_@TYPE@(&rr, &ri, args[1], n * 2, steps[1] / 2);
-        *or @OP@= rr;
-        *oi @OP@= ri;
-        return;
+    if (can_vectorize && dimensions[0] > VML_ASM_THRESHOLD) {
+        CHUNKED_VML_CALL3(v@s@@VML@, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
     }
-    else {
-        BINARY_LOOP {
-            const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-            const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-            const @ftype@ in2r = ((@ftype@ *)ip2)[0];
-            const @ftype@ in2i = ((@ftype@ *)ip2)[1];
-            ((@ftype@ *)op1)[0] = in1r @OP@ in2r;
-            ((@ftype@ *)op1)[1] = in1i @OP@ in2i;
+    else { 
+        if (IS_BINARY_REDUCE && @PW@) {
+            npy_intp n = dimensions[0];
+            @ftype@ * or = ((@ftype@ *)args[0]);
+            @ftype@ * oi = ((@ftype@ *)args[0]) + 1;
+            @ftype@ rr, ri;
+
+            pairwise_sum_@TYPE@(&rr, &ri, args[1], n * 2, steps[1] / 2);
+            *or @OP@= rr;
+            *oi @OP@= ri;
+            return;
+        } 
+        else {
+            BINARY_LOOP {
+                const @ftype@ in1r = ((@ftype@ *)ip1)[0];
+                const @ftype@ in1i = ((@ftype@ *)ip1)[1];
+                const @ftype@ in2r = ((@ftype@ *)ip2)[0];
+                const @ftype@ in2i = ((@ftype@ *)ip2)[1];
+                ((@ftype@ *)op1)[0] = in1r @OP@ in2r;
+                ((@ftype@ *)op1)[1] = in1i @OP@ in2i;
+            }
         }
     }
 }
 /**end repeat1**/
 
-/* TODO: USE MKL */
 void
 mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    BINARY_LOOP {
-        const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        const @ftype@ in2r = ((@ftype@ *)ip2)[0];
-        const @ftype@ in2i = ((@ftype@ *)ip2)[1];
-        ((@ftype@ *)op1)[0] = in1r*in2r - in1i*in2i;
-        ((@ftype@ *)op1)[1] = in1r*in2i + in1i*in2r;
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;
+
+    if (can_vectorize && dimensions[0] > VML_ASM_THRESHOLD) {
+        CHUNKED_VML_CALL3(v@s@Mul, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@Mul(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const @ftype@ in1r = ((@ftype@ *)ip1)[0];
+            const @ftype@ in1i = ((@ftype@ *)ip1)[1];
+            const @ftype@ in2r = ((@ftype@ *)ip2)[0];
+            const @ftype@ in2i = ((@ftype@ *)ip2)[1];
+            ((@ftype@ *)op1)[0] = in1r*in2r - in1i*in2i;
+            ((@ftype@ *)op1)[1] = in1r*in2i + in1i*in2r;
+        }
     }
 }
 
-/* TODO: USE MKL */
 void
 mkl_umath_@TYPE@_divide(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    BINARY_LOOP {
-        const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        const @ftype@ in2r = ((@ftype@ *)ip2)[0];
-        const @ftype@ in2i = ((@ftype@ *)ip2)[1];
-        const @ftype@ in2r_abs = fabs@c@(in2r);
-        const @ftype@ in2i_abs = fabs@c@(in2i);
-        if (in2r_abs >= in2i_abs) {
-            if (in2r_abs == 0 && in2i_abs == 0) {
-                /* divide by zero should yield a complex inf or nan */
-                ((@ftype@ *)op1)[0] = in1r/in2r_abs;
-                ((@ftype@ *)op1)[1] = in1i/in2i_abs;
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2;    
+
+    if (can_vectorize && dimensions[0] > VML_D_THRESHOLD) {
+        CHUNKED_VML_CALL3(v@s@Div, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@Div(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {       
+        BINARY_LOOP {
+            const @ftype@ in1r = ((@ftype@ *)ip1)[0];
+            const @ftype@ in1i = ((@ftype@ *)ip1)[1];
+            const @ftype@ in2r = ((@ftype@ *)ip2)[0];
+            const @ftype@ in2i = ((@ftype@ *)ip2)[1];
+            const @ftype@ in2r_abs = fabs@c@(in2r);
+            const @ftype@ in2i_abs = fabs@c@(in2i);
+            if (in2r_abs >= in2i_abs) {
+                if (in2r_abs == 0 && in2i_abs == 0) {
+                    /* divide by zero should yield a complex inf or nan */
+                    ((@ftype@ *)op1)[0] = in1r/in2r_abs;
+                    ((@ftype@ *)op1)[1] = in1i/in2i_abs;
+                }
+                else {
+                    const @ftype@ rat = in2i/in2r;
+                    const @ftype@ scl = 1.0@c@/(in2r + in2i*rat);
+                    ((@ftype@ *)op1)[0] = (in1r + in1i*rat)*scl;
+                    ((@ftype@ *)op1)[1] = (in1i - in1r*rat)*scl;
+                }
             }
             else {
-                const @ftype@ rat = in2i/in2r;
-                const @ftype@ scl = 1.0@c@/(in2r + in2i*rat);
-                ((@ftype@ *)op1)[0] = (in1r + in1i*rat)*scl;
-                ((@ftype@ *)op1)[1] = (in1i - in1r*rat)*scl;
+                const @ftype@ rat = in2r/in2i;
+                const @ftype@ scl = 1.0@c@/(in2i + in2r*rat);
+                ((@ftype@ *)op1)[0] = (in1r*rat + in1i)*scl;
+                ((@ftype@ *)op1)[1] = (in1i*rat - in1r)*scl;
             }
         }
-        else {
-            const @ftype@ rat = in2r/in2i;
-            const @ftype@ scl = 1.0@c@/(in2i + in2r*rat);
-            ((@ftype@ *)op1)[0] = (in1r*rat + in1i)*scl;
-            ((@ftype@ *)op1)[1] = (in1i*rat - in1r)*scl;
-        }
     }
 }
 

From b08ed9dcc58c1fdb45cf17cfc1586d864a14609e Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:25:40 -0700
Subject: [PATCH 03/23] drop support for maximum and minimum

---
 CHANGELOG.md                        |  3 ++
 mkl_umath/generate_umath.py         | 14 ++------
 mkl_umath/src/mkl_umath_loops.c.src | 54 -----------------------------
 mkl_umath/src/mkl_umath_loops.h.src |  4 +--
 mkl_umath/tests/test_basic.py       |  2 +-
 5 files changed, 8 insertions(+), 69 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3038e08..9a03a6d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added mkl implementation for complex data-types of `conjugate` and `absolute` functions [gh-86](https://github.com/IntelPython/mkl_umath/pull/86)
 * Added mkl implementation for complex data-types of `add`, `subtract`, `multiply` and `divide` functions [gh-88](https://github.com/IntelPython/mkl_umath/pull/88)
 
+### Changed 
+* Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
 
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 4633f48..f83b013 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -532,18 +532,8 @@ def english_upper(s):
           None,
           TD(inexactvec + cmplxvec, out='?'),
           ),
-'maximum':
-    Ufunc(2, 1, ReorderableNone,
-          docstrings.get('numpy._core.umath.maximum'),
-          None,
-          TD(inexactvec + cmplxvec),
-          ),
-'minimum':
-    Ufunc(2, 1, ReorderableNone,
-          docstrings.get('numpy._core.umath.minimum'),
-          None,
-          TD(inexactvec + cmplxvec),
-          ),
+# 'maximum':
+# 'minimum':
 # 'clip':
 'fmax':
     Ufunc(2, 1, ReorderableNone,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index aa4b927..1890dcd 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1086,37 +1086,6 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 }
 /**end repeat1**/
 
-/**begin repeat1
- * #kind = maximum, minimum#
- * #OP = >=, <=#
- **/
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    if (IS_BINARY_REDUCE) {
-        {
-            BINARY_REDUCE_LOOP(@type@) {
-                const @type@ in2 = *(@type@ *)ip2;
-                /* Order of operations important for MSVC 2015 */
-                io1 = (io1 @OP@ in2 || isnan(io1)) ? io1 : in2;
-            }
-            *((@type@ *)iop1) = io1;
-        }
-    }
-    else {
-        BINARY_LOOP {
-            @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            /* Order of operations important for MSVC 2015 */
-            in1 = (in1 @OP@ in2 || isnan(in1)) ? in1 : in2;
-            *((@type@ *)op1) = in1;
-        }
-    }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-}
-/**end repeat1**/
-
-
 void
 mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
@@ -1679,29 +1648,6 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
     #endif
 }
 
-/**begin repeat1
- * #kind = maximum, minimum#
- * #OP = CGE, CLE#
- */
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    BINARY_LOOP {
-        @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        const @ftype@ in2r = ((@ftype@ *)ip2)[0];
-        const @ftype@ in2i = ((@ftype@ *)ip2)[1];
-        if ( !(isnan(in1r) || isnan(in1i) || @OP@(in1r, in1i, in2r, in2i))) {
-            in1r = in2r;
-            in1i = in2i;
-        }
-        ((@ftype@ *)op1)[0] = in1r;
-        ((@ftype@ *)op1)[1] = in1i;
-    }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-}
-/**end repeat1**/
-
 /**begin repeat1
  * #kind = fmax, fmin#
  * #OP = CGE, CLE#
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 286f301..a9f7d63 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -57,7 +57,7 @@
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
             copysign, cos, cosh, divide, divmod, isfinite, isinf, isnan, equal, exp, exp2, expm1, fabs, 
             floor, fmax, fmin, frexp, greater, greater_equal, ldexp, less, less_equal, log, log2, log10, 
-            log1p, logical_and, logical_not, logical_or, logical_xor, maximum, minimum, multiply, modf, 
+            log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, not_equal, positive, reciprocal, remainder, rint, sign, signbit, sin,
             sinh, spacing, sqrt, square, subtract, tan, tanh, trunc#
  */
@@ -98,7 +98,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 
 /**begin repeat1
  * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal, fmax, fmin, greater, greater_equal, 
-            less, less_equal, logical_and, logical_not, logical_or, logical_xor, maximum, minimum, multiply,
+            less, less_equal, logical_and, logical_not, logical_or, logical_xor, multiply,
             not_equal, reciprocal, sign, square, subtract#
  */
 MKL_UMATH_API
diff --git a/mkl_umath/tests/test_basic.py b/mkl_umath/tests/test_basic.py
index 9c2133f..9660662 100644
--- a/mkl_umath/tests/test_basic.py
+++ b/mkl_umath/tests/test_basic.py
@@ -142,7 +142,7 @@ def test_strided(func, dtype):
     assert np.allclose(mkl_res, np_res), f"Results for '{func}[strided]' do not match"
 
 
-@pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide", "maximum", "minimum", "fmax", "fmin"])
+@pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide", "fmax", "fmin"])
 @pytest.mark.parametrize("dtype", [np.float32, np.float64])
 def test_reduce_float(func, dtype):
     # testing implementation in IS_BINARY_REDUCE branch

From e4f8a3f19702bd67f89bd1ced2858c808c2f5cf4 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:31:07 -0700
Subject: [PATCH 04/23] drop support for complex loop fmax and fmin

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         |  4 ++--
 mkl_umath/src/mkl_umath_loops.c.src | 25 -------------------------
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 4 files changed, 4 insertions(+), 28 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a03a6d..6915313 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for COMPLEX LOOPs of `fmax` and `fmin` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index f83b013..f784092 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -539,13 +539,13 @@ def english_upper(s):
     Ufunc(2, 1, ReorderableNone,
           docstrings.get('numpy._core.umath.fmax'),
           None,
-          TD(inexactvec + cmplxvec),
+          TD(inexactvec),
           ),
 'fmin':
     Ufunc(2, 1, ReorderableNone,
           docstrings.get('numpy._core.umath.fmin'),
           None,
-          TD(inexactvec + cmplxvec),
+          TD(inexactvec),
           ),
 # 'logaddexp':
 # 'logaddexp2':
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 1890dcd..9bad560 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1648,31 +1648,6 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
     #endif
 }
 
-/**begin repeat1
- * #kind = fmax, fmin#
- * #OP = CGE, CLE#
- */
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    BINARY_LOOP {
-        const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        const @ftype@ in2r = ((@ftype@ *)ip2)[0];
-        const @ftype@ in2i = ((@ftype@ *)ip2)[1];
-        if (isnan(in2r) || isnan(in2i) || @OP@(in1r, in1i, in2r, in2i)) {
-            ((@ftype@ *)op1)[0] = in1r;
-            ((@ftype@ *)op1)[1] = in1i;
-        }
-        else {
-            ((@ftype@ *)op1)[0] = in2r;
-            ((@ftype@ *)op1)[1] = in2i;
-        }
-    }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-}
-/**end repeat1**/
-
 /**end repeat**/
 
 #undef CGE
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index a9f7d63..d0d08ea 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -97,7 +97,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal, fmax, fmin, greater, greater_equal, 
+ * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal, greater, greater_equal, 
             less, less_equal, logical_and, logical_not, logical_or, logical_xor, multiply,
             not_equal, reciprocal, sign, square, subtract#
  */

From 4c24e4dcce4c51c29d360e43d88668ca77e8c2bb Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:37:17 -0700
Subject: [PATCH 05/23] drop support for comparison functions

---
 CHANGELOG.md                        |  2 ++
 mkl_umath/generate_umath.py         | 32 ++++++-----------------------
 mkl_umath/src/mkl_umath_loops.c.src | 21 ++++---------------
 mkl_umath/src/mkl_umath_loops.h.src | 18 +++++-----------
 4 files changed, 17 insertions(+), 56 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6915313..12aedac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for COMPLEX LOOPs of `fmax` and `fmin` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for FLOAT LOOPs of `equal` and `not_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for `less`, `less_equal`, `greater`, `greater_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index f784092..af0861f 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -472,41 +472,21 @@ def english_upper(s):
           None,
           TD(inexactvec + cmplxvec),
           ),
-'greater':
-    Ufunc(2, 1, None,
-          docstrings.get('numpy._core.umath.greater'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
-'greater_equal':
-    Ufunc(2, 1, None,
-          docstrings.get('numpy._core.umath.greater_equal'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
-'less':
-    Ufunc(2, 1, None,
-          docstrings.get('numpy._core.umath.less'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
-'less_equal':
-    Ufunc(2, 1, None,
-          docstrings.get('numpy._core.umath.less_equal'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
+# 'greater':
+# 'greater_equal':
+# 'less':
+# 'less_equal':
 'equal':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.equal'),
           None,
-          TD(inexactvec + cmplxvec, out='?'),
+          TD(cmplxvec, out='?'),
           ),
 'not_equal':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.not_equal'),
           None,
-          TD(inexactvec + cmplxvec, out='?'),
+          TD(cmplxvec, out='?'),
           ),
 'logical_and':
     Ufunc(2, 1, True_,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 9bad560..2821446 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1033,9 +1033,8 @@ mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *s
 }
 
 /**begin repeat1
- * #kind = equal, not_equal, less, less_equal, greater, greater_equal,
- *        logical_and, logical_or#
- * #OP = ==, !=, <, <=, >, >=, &&, ||#
+ * #kind = logical_and, logical_or#
+ * #OP = &&, ||#
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
@@ -1233,14 +1232,6 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 /* TODO: USE MKL for pow, exp, ln, log10, sqrt, trigonometric functions and hyperbolic functions */
 
-#define CGE(xr,xi,yr,yi) ((xr > yr && !isnan(xi) && !isnan(yi)) \
-                          || (xr == yr && xi >= yi))
-#define CLE(xr,xi,yr,yi) ((xr < yr && !isnan(xi) && !isnan(yi)) \
-                          || (xr == yr && xi <= yi))
-#define CGT(xr,xi,yr,yi) ((xr > yr && !isnan(xi) && !isnan(yi)) \
-                          || (xr == yr && xi > yi))
-#define CLT(xr,xi,yr,yi) ((xr < yr && !isnan(xi) && !isnan(yi)) \
-                          || (xr == yr && xi < yi))
 #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi)
 #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi)
 
@@ -1445,8 +1436,8 @@ mkl_umath_@TYPE@_divide(char **args, const npy_intp *dimensions, const npy_intp
 }
 
 /**begin repeat1
- * #kind= greater, greater_equal, less, less_equal, equal, not_equal#
- * #OP = CGT, CGE, CLT, CLE, CEQ, CNE#
+ * #kind= equal, not_equal#
+ * #OP = CEQ, CNE#
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
@@ -1650,10 +1641,6 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
 
 /**end repeat**/
 
-#undef CGE
-#undef CLE
-#undef CGT
-#undef CLT
 #undef CEQ
 #undef CNE
 
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index d0d08ea..866e039 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -55,10 +55,10 @@
 
 /**begin repeat1
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
-            copysign, cos, cosh, divide, divmod, isfinite, isinf, isnan, equal, exp, exp2, expm1, fabs, 
-            floor, fmax, fmin, frexp, greater, greater_equal, ldexp, less, less_equal, log, log2, log10, 
+            copysign, cos, cosh, divide, divmod, isfinite, isinf, isnan, exp, exp2, expm1, fabs, 
+            floor, fmax, fmin, frexp, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
-            negative, nextafter, not_equal, positive, reciprocal, remainder, rint, sign, signbit, sin,
+            negative, nextafter, positive, reciprocal, remainder, rint, sign, signbit, sin,
             sinh, spacing, sqrt, square, subtract, tan, tanh, trunc#
  */
 MKL_UMATH_API
@@ -84,10 +84,6 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  *****************************************************************************
  */
 
-#define CGE(xr,xi,yr,yi) (xr > yr || (xr == yr && xi >= yi));
-#define CLE(xr,xi,yr,yi) (xr < yr || (xr == yr && xi <= yi));
-#define CGT(xr,xi,yr,yi) (xr > yr || (xr == yr && xi > yi));
-#define CLT(xr,xi,yr,yi) (xr < yr || (xr == yr && xi < yi));
 #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi);
 #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi);
 
@@ -97,8 +93,8 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal, greater, greater_equal, 
-            less, less_equal, logical_and, logical_not, logical_or, logical_xor, multiply,
+ * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal,
+            logical_and, logical_not, logical_or, logical_xor, multiply,
             not_equal, reciprocal, sign, square, subtract#
  */
 MKL_UMATH_API
@@ -108,10 +104,6 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
 /**end repeat**/
 
-#undef CGE
-#undef CLE
-#undef CGT
-#undef CLT
 #undef CEQ
 #undef CNE
 

From 3f1c2433197827a5d8e64c050d1d2df4810afd49 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:45:45 -0700
Subject: [PATCH 06/23] drop support for isnan, isinf, isfinite

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         | 21 +++------------------
 mkl_umath/src/mkl_umath_loops.c.src | 21 ++-------------------
 mkl_umath/src/mkl_umath_loops.h.src |  4 ++--
 4 files changed, 8 insertions(+), 39 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12aedac..d54b565 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Dropped support for COMPLEX LOOPs of `fmax` and `fmin` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for FLOAT LOOPs of `equal` and `not_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `less`, `less_equal`, `greater`, `greater_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for `isinf`, `isnan` and `isfinite` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index af0861f..f2abf8d 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -705,25 +705,10 @@ def english_upper(s):
           ),
 # 'divmod':
 # 'hypot':
-'isnan':
-    Ufunc(1, 1, None,
-          docstrings.get('numpy._core.umath.isnan'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
+# 'isnan':
 # 'isnat':
-'isinf':
-    Ufunc(1, 1, None,
-          docstrings.get('numpy._core.umath.isinf'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
-'isfinite':
-    Ufunc(1, 1, None,
-          docstrings.get('numpy._core.umath.isfinite'),
-          None,
-          TD(inexactvec + cmplxvec, out='?'),
-          ),
+# 'isinf':
+# 'isfinite':
 # 'signbit':
 'copysign':
     Ufunc(2, 1, None,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 2821446..9cec841 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1069,8 +1069,8 @@ mkl_umath_@TYPE@_logical_not(char **args, const npy_intp *dimensions, const npy_
 }
 
 /**begin repeat1
- * #kind = isnan, isinf, isfinite, signbit#
- * #func = isnan, isinf, isfinite, signbit#
+ * #kind = signbit#
+ * #func = signbit#
  **/
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
@@ -1494,23 +1494,6 @@ mkl_umath_@TYPE@_logical_not(char **args, const npy_intp *dimensions, const npy_
     }
 }
 
-/**begin repeat1
- * #kind = isnan, isinf, isfinite#
- * #func = isnan, isinf, isfinite#
- * #OP = ||, ||, &&#
- **/
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    UNARY_LOOP {
-        const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        *((npy_bool *)op1) = @func@(in1r) @OP@ @func@(in1i);
-    }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-}
-/**end repeat1**/
-
 void
 mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
 {
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 866e039..e8c2dd8 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -55,7 +55,7 @@
 
 /**begin repeat1
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
-            copysign, cos, cosh, divide, divmod, isfinite, isinf, isnan, exp, exp2, expm1, fabs, 
+            copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
             floor, fmax, fmin, frexp, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, positive, reciprocal, remainder, rint, sign, signbit, sin,
@@ -93,7 +93,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, conjugate, divide, isfinite, isinf, isnan, equal,
+ * # kind = absolute, add, conjugate, divide, equal,
             logical_and, logical_not, logical_or, logical_xor, multiply,
             not_equal, reciprocal, sign, square, subtract#
  */

From d8b183c028bd67ba767f1d7314772571f371e813 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:52:36 -0700
Subject: [PATCH 07/23] drop support for complex loop sign and reciprocal

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         |  4 +-
 mkl_umath/src/mkl_umath_loops.c.src | 79 -----------------------------
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 4 files changed, 4 insertions(+), 82 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d54b565..48e7a1b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Dropped support for FLOAT LOOPs of `equal` and `not_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `less`, `less_equal`, `greater`, `greater_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `isinf`, `isnan` and `isfinite` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for COMPLEX LOOPs of `sign` and `reciprocal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index f2abf8d..21d27dc 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -440,7 +440,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.reciprocal'),
           None,
-          TD(inexactvec + cmplxvec),
+          TD(inexactvec),
           ),
 # '_ones_like':
 # 'power':
@@ -470,7 +470,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.sign'),
           None,
-          TD(inexactvec + cmplxvec),
+          TD(inexactvec),
           ),
 # 'greater':
 # 'greater_equal':
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 9cec841..69431a7 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -42,12 +42,6 @@
 #include "blocking_utils.h"
 #include "mkl_umath_loops.h"
 
-// NPY_2_0_API_VERSION 0x00000012 is defined in numpy-2
-// inside numpy/_core/include/numpy/numpyconfig.h
-#if NPY_API_VERSION >= 0x00000012 
-    #define USE_NUMPY_2
-#endif
-
 /* Adapated from NumPy's source code.
  * https://github.com/numpy/numpy/blob/main/LICENSE.txt */
 
@@ -1505,27 +1499,6 @@ mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
-void
-mkl_umath_@TYPE@_reciprocal(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(data))
-{
-    UNARY_LOOP {
-        const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-        const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-        if (fabs@c@(in1i) <= fabs@c@(in1r)) {
-            const @ftype@ r = in1i/in1r;
-            const @ftype@ d = in1r + in1i*r;
-            ((@ftype@ *)op1)[0] = 1/d;
-            ((@ftype@ *)op1)[1] = -r/d;
-        } 
-        else {
-            const @ftype@ r = in1r/in1i;
-            const @ftype@ d = in1r*r + in1i;
-            ((@ftype@ *)op1)[0] = r/d;
-            ((@ftype@ *)op1)[1] = -1/d;
-        }
-    }
-}
-
 void
 mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func)) {
     const int contig = IS_UNARY_CONT(@type@, @type@);
@@ -1570,58 +1543,6 @@ mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_int
         feclearexcept(FE_INVALID);
     }
 }
-
-void
-mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    #ifdef USE_NUMPY_2
-        UNARY_LOOP {
-            const @ftype@ in_r = ((@ftype@ *)ip1)[0];
-            const @ftype@ in_i = ((@ftype@ *)ip1)[1];
-            const @ftype@ in_abs = hypot@c@(in_r, in_i);
-            if (NPY_UNLIKELY(npy_isnan(in_abs))) {
-                ((@ftype@ *)op1)[0] = NPY_NAN@C@;
-                ((@ftype@ *)op1)[1] = NPY_NAN@C@;
-            }
-            else if (NPY_UNLIKELY(npy_isinf(in_abs))) {
-                if (npy_isinf(in_r)) {
-                    if (npy_isinf(in_i)) {
-                        ((@ftype@ *)op1)[0] = NPY_NAN@C@;
-                        ((@ftype@ *)op1)[1] = NPY_NAN@C@;
-                    }
-                    else {
-                        ((@ftype@ *)op1)[0] = in_r > 0 ? 1.: -1.;
-                        ((@ftype@ *)op1)[1] = 0.;
-                    }
-                }
-                else {
-                    ((@ftype@ *)op1)[0] = 0.;
-                    ((@ftype@ *)op1)[1] = in_i > 0 ? 1.: -1.;
-                }
-            }
-            else if (NPY_UNLIKELY(in_abs == 0)) {
-                ((@ftype@ *)op1)[0] = 0.@C@;
-                ((@ftype@ *)op1)[1] = 0.@C@;
-            }
-            else{
-                ((@ftype@ *)op1)[0] = in_r / in_abs;
-                ((@ftype@ *)op1)[1] = in_i / in_abs;
-            }
-        }
-    #else
-        /* fixme: sign of nan is currently 0 */
-        UNARY_LOOP {
-            const @ftype@ in1r = ((@ftype@ *)ip1)[0];
-            const @ftype@ in1i = ((@ftype@ *)ip1)[1];
-            ((@ftype@ *)op1)[0] = CGT(in1r, in1i, 0.0, 0.0) ? 1 :
-                                (CLT(in1r, in1i, 0.0, 0.0) ? -1 :
-                                (CEQ(in1r, in1i, 0.0, 0.0) ? 0 : NPY_NAN@C@));
-            ((@ftype@ *)op1)[1] = 0;
-        }
-        feclearexcept(FE_INVALID);
-    #endif
-}
-
 /**end repeat**/
 
 #undef CEQ
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index e8c2dd8..90319ff 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -95,7 +95,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 /**begin repeat1
  * # kind = absolute, add, conjugate, divide, equal,
             logical_and, logical_not, logical_or, logical_xor, multiply,
-            not_equal, reciprocal, sign, square, subtract#
+            not_equal, square, subtract#
  */
 MKL_UMATH_API
 void

From badff1ff4000a11ea881f09ee46a4757b678b16e Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:54:43 -0700
Subject: [PATCH 08/23] drop support for spacing

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         |  7 +------
 mkl_umath/src/mkl_umath_loops.c.src | 22 ----------------------
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 4 files changed, 3 insertions(+), 29 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48e7a1b..b9ce93a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Dropped support for `less`, `less_equal`, `greater`, `greater_equal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `isinf`, `isnan` and `isfinite` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for COMPLEX LOOPs of `sign` and `reciprocal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for `spacing` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 21d27dc..17c9207 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -722,12 +722,7 @@ def english_upper(s):
           None,
           TD(inexactvec),
           ),
-'spacing':
-    Ufunc(1, 1, None,
-          docstrings.get('numpy._core.umath.spacing'),
-          None,
-          TD(inexactvec),
-          ),
+# 'spacing':
 'modf':
     Ufunc(1, 2, None,
           docstrings.get('numpy._core.umath.modf'),
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 69431a7..1559da4 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -136,19 +136,6 @@
 #include "fast_loop_macros.h"
 #include <stdio.h>
 
-static inline npy_double spacing(npy_double x) {
-    if (isinf(x))
-    return ((npy_double) NAN);
-    return copysign(nextafter(fabs(x), ((npy_double) INFINITY)), x) - x;
-}
-
-static inline npy_float spacingf(npy_float x) {
-    if (isinff(x))
-    return ((npy_float) NAN);
-
-    return copysignf(nextafterf(fabsf(x), INFINITY), x) - x;
-}
-
 #if defined(_MSC_VER) && defined(__INTEL_COMPILER)
 extern __inline float __cdecl ldexpf( float _X, int _Y) { 
     return (float)ldexp(_X, _Y); 
@@ -1088,15 +1075,6 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
     }
 }
 
-void
-mkl_umath_@TYPE@_spacing(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    UNARY_LOOP {
-        const @type@ in1 = *(@type@ *)ip1;
-        *((@type@ *)op1) = (spacing@c@(in1));
-    }
-}
-
 void
 mkl_umath_@TYPE@_negative(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 90319ff..5bffbd6 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -59,7 +59,7 @@
             floor, fmax, fmin, frexp, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, positive, reciprocal, remainder, rint, sign, signbit, sin,
-            sinh, spacing, sqrt, square, subtract, tan, tanh, trunc#
+            sinh, sqrt, square, subtract, tan, tanh, trunc#
  */
 MKL_UMATH_API
 void

From c5770907866ac85c32adedae59e64609a64110ba Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 08:58:10 -0700
Subject: [PATCH 09/23] drop support for frexp

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         | 10 +---------
 mkl_umath/src/mkl_umath_loops.c.src |  9 ---------
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 4 files changed, 3 insertions(+), 19 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b9ce93a..8d1e073 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Dropped support for `isinf`, `isnan` and `isfinite` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for COMPLEX LOOPs of `sign` and `reciprocal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `spacing` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Dropped support for `frexp` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 17c9207..e6fa961 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -735,15 +735,7 @@ def english_upper(s):
           None,
           ldexp_signature,
           ),
-'frexp' :
-    Ufunc(1, 2, None,
-          docstrings.get('numpy._core.umath.frexp'),
-          None,
-          [
-              TypeDescription('f', None, 'f', 'fi'),
-              TypeDescription('d', None, 'd', 'di'),
-          ],
-          ),
+# 'frexp' :
 # 'gcd':
 # 'lcm':
 # 'bitwise_count':
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 1559da4..39bc3c1 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1115,15 +1115,6 @@ mkl_umath_@TYPE@_divmod(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
-void
-mkl_umath_@TYPE@_frexp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    UNARY_LOOP_TWO_OUT {
-        const @type@ in1 = *(@type@ *)ip1;
-        *((@type@ *)op1) = frexp@c@(in1, (int *)op2);
-    }
-}
-
 void
 mkl_umath_@TYPE@_ldexp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 5bffbd6..4384afe 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -56,7 +56,7 @@
 /**begin repeat1
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
             copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
-            floor, fmax, fmin, frexp, ldexp, log, log2, log10, 
+            floor, fmax, fmin, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, positive, reciprocal, remainder, rint, sign, signbit, sin,
             sinh, sqrt, square, subtract, tan, tanh, trunc#

From 7512672b024198ee42ebfaebe606fc39322c409d Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 09:07:30 -0700
Subject: [PATCH 10/23] expose signbit

---
 mkl_umath/generate_umath.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index e6fa961..814db7e 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -709,7 +709,12 @@ def english_upper(s):
 # 'isnat':
 # 'isinf':
 # 'isfinite':
-# 'signbit':
+'signbit':
+    Ufunc(1, 1, None,
+          docstrings.get('numpy._core.umath.signbit'),
+          None,
+          TD(inexactvec, out='?'),
+          ),
 'copysign':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.copysign'),

From fb25e29ffdaa7e5f7c400052900e1bce0f698e23 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 09:08:46 -0700
Subject: [PATCH 11/23] drop support signbit

---
 mkl_umath/generate_umath.py         |  7 +------
 mkl_umath/src/mkl_umath_loops.c.src | 17 -----------------
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 3 files changed, 2 insertions(+), 24 deletions(-)

diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 814db7e..e6fa961 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -709,12 +709,7 @@ def english_upper(s):
 # 'isnat':
 # 'isinf':
 # 'isfinite':
-'signbit':
-    Ufunc(1, 1, None,
-          docstrings.get('numpy._core.umath.signbit'),
-          None,
-          TD(inexactvec, out='?'),
-          ),
+# 'signbit':
 'copysign':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.copysign'),
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 39bc3c1..ee62e62 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1049,23 +1049,6 @@ mkl_umath_@TYPE@_logical_not(char **args, const npy_intp *dimensions, const npy_
     }
 }
 
-/**begin repeat1
- * #kind = signbit#
- * #func = signbit#
- **/
-void
-mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
-{
-    {
-        UNARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            *((npy_bool *)op1) = @func@(in1) != 0;
-        }
-    }
-    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
-}
-/**end repeat1**/
-
 void
 mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 4384afe..f1b097d 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -58,7 +58,7 @@
             copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
             floor, fmax, fmin, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
-            negative, nextafter, positive, reciprocal, remainder, rint, sign, signbit, sin,
+            negative, nextafter, positive, reciprocal, remainder, rint, sign, sin,
             sinh, sqrt, square, subtract, tan, tanh, trunc#
  */
 MKL_UMATH_API

From 58e899045c6165cea68ba1d2a8e8c1ac4fa8198c Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 10:15:00 -0700
Subject: [PATCH 12/23] add support floor_divide and enable support divmod

---
 CHANGELOG.md                        |  2 ++
 mkl_umath/generate_umath.py         | 14 ++++++++++++--
 mkl_umath/src/mkl_umath_loops.c.src | 11 +++++++++++
 mkl_umath/src/mkl_umath_loops.h.src |  2 +-
 4 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d1e073..62d6bbc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added mkl implementation for floating point data-types of `exp2`, `log2`, `fabs`, `copysign`, `nextafter`, `fmax`, `fmin` and `remainder` functions [gh-81](https://github.com/IntelPython/mkl_umath/pull/81)
 * Added mkl implementation for complex data-types of `conjugate` and `absolute` functions [gh-86](https://github.com/IntelPython/mkl_umath/pull/86)
 * Added mkl implementation for complex data-types of `add`, `subtract`, `multiply` and `divide` functions [gh-88](https://github.com/IntelPython/mkl_umath/pull/88)
+* Added support for `floor_divide` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Enabled support for `divmod` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index e6fa961..773d72f 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -416,7 +416,12 @@ def english_upper(s):
           TD(inexactvec + cmplxvec),
           ),
 # 'true_divide': aliased to divide
-# 'floor_divide':
+'floor_divide':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.floor_divide'),
+          None,
+          TD(inexactvec),
+          ),
 'divide':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.divide'),
@@ -703,7 +708,12 @@ def english_upper(s):
           None,
           TD(inexactvec),
           ),
-# 'divmod':
+'divmod':
+    Ufunc(2, 2, None,
+          docstrings.get('numpy._core.umath.divmod'),
+          None,
+          TD(inexactvec),
+          ),
 # 'hypot':
 # 'isnan':
 # 'isnat':
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index ee62e62..c2b37f3 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1098,6 +1098,17 @@ mkl_umath_@TYPE@_divmod(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
+void
+mkl_umath_@TYPE@_floor_divide(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    BINARY_LOOP {
+        const @type@ in1 = *(@type@ *)ip1;
+        const @type@ in2 = *(@type@ *)ip2;
+        @type@ mod;
+        *((@type@ *)op1) = divmod@c@(in1, in2, &mod);
+    }
+}
+
 void
 mkl_umath_@TYPE@_ldexp(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index f1b097d..98ec6e7 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -56,7 +56,7 @@
 /**begin repeat1
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
             copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
-            floor, fmax, fmin, ldexp, log, log2, log10, 
+            floor, floor_divide, fmax, fmin, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, positive, reciprocal, remainder, rint, sign, sin,
             sinh, sqrt, square, subtract, tan, tanh, trunc#

From aa6bacc617adaf48c84c7143d904e1945c3c2bc5 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 10:28:03 -0700
Subject: [PATCH 13/23] add support atan2, hypot, fmod

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         | 21 ++++++++++++++++++---
 mkl_umath/src/mkl_umath_loops.c.src |  9 +++++----
 mkl_umath/src/mkl_umath_loops.h.src |  4 ++--
 4 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 62d6bbc..eb5f320 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added mkl implementation for complex data-types of `add`, `subtract`, `multiply` and `divide` functions [gh-88](https://github.com/IntelPython/mkl_umath/pull/88)
 * Added support for `floor_divide` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Enabled support for `divmod` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for floating point data-types of `arctan2`, `hypot`, `fmod` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 773d72f..17dc5d8 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -434,7 +434,12 @@ def english_upper(s):
           None,
           TD(inexactvec + cmplxvec),
           ),
-# 'fmod':
+'fmod':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.fmod'),
+          None,
+          TD(inexactvec),
+          ),
 'square':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.square'),
@@ -701,7 +706,12 @@ def english_upper(s):
           None,
           TD(inexactvec),
           ),
-# 'arctan2':
+'arctan2':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.arctan2'),
+          None,
+          TD(inexactvec),
+          ),
 'remainder':
     Ufunc(2, 1, None,
           docstrings.get('numpy._core.umath.remainder'),
@@ -714,7 +724,12 @@ def english_upper(s):
           None,
           TD(inexactvec),
           ),
-# 'hypot':
+'hypot':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.hypot'),
+          None,
+          TD(inexactvec),
+          ),
 # 'isnan':
 # 'isnat':
 # 'isinf':
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index c2b37f3..824e46e 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -201,7 +201,7 @@ divmod@c@(@type@ a, @type@ b, @type@ *modulus)
  **                             FLOAT LOOPS                                 **
  *****************************************************************************
  */
-/* TODO: Use MKL for pow, arctan2, fmod, hypot, i0 */
+/* TODO: Use MKL for pow, i0 */
 
 /**begin repeat
  * Float types
@@ -791,8 +791,9 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 /**end repeat1**/
 
 /**begin repeat1
- * # kind = copysign, nextafter#
- * # VML = CopySign, NextAfter#
+ * # kind = arctan2, copysign, fmod, hypot, nextafter#
+ * # func = atan2, copysign, fmod, hypot, nextafter#
+ * # VML = Atan2, CopySign, Fmod, Hypot, NextAfter#
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
@@ -810,7 +811,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
         BINARY_LOOP {
             const @type@ in1 = *(@type@ *)ip1;
             const @type@ in2 = *(@type@ *)ip2;
-            *((@type@ *)op1)= @kind@@c@(in1, in2);
+            *((@type@ *)op1)= @func@@c@(in1, in2);
         }
     }
 }
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 98ec6e7..fa2bb8b 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -54,9 +54,9 @@
  */
 
 /**begin repeat1
- * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, cbrt, ceil, conjugate, 
+ * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctan2, arctanh, cbrt, ceil, conjugate, 
             copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
-            floor, floor_divide, fmax, fmin, ldexp, log, log2, log10, 
+            floor, floor_divide, fmax, fmin, fmod, hypot, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
             negative, nextafter, positive, reciprocal, remainder, rint, sign, sin,
             sinh, sqrt, square, subtract, tan, tanh, trunc#

From 71f6e7e8262a78b49057a60b5e02391dc5e403f7 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 11:01:18 -0700
Subject: [PATCH 14/23] add support for complex loop exp, log, log10, and sqrt

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         |  8 ++++----
 mkl_umath/src/mkl_umath_loops.c.src | 30 ++++++++++++++++++++++++++++-
 mkl_umath/src/mkl_umath_loops.h.src |  4 ++--
 4 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index eb5f320..214b772 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added support for `floor_divide` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Enabled support for `divmod` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for floating point data-types of `arctan2`, `hypot`, `fmod` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for complex data-types of `exp`, `log`, `log10`, and `sqrt` functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index 17dc5d8..d834f8f 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -626,7 +626,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.exp'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'exp2':
     Ufunc(1, 1, None,
@@ -644,7 +644,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.log'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'log2':
     Ufunc(1, 1, None,
@@ -656,7 +656,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.log10'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'log1p':
     Ufunc(1, 1, None,
@@ -668,7 +668,7 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.sqrt'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'cbrt':
     Ufunc(1, 1, None,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 824e46e..5956fa6 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1188,7 +1188,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  **                           COMPLEX LOOPS                                 **
  *****************************************************************************
  */
-/* TODO: USE MKL for pow, exp, ln, log10, sqrt, trigonometric functions and hyperbolic functions */
+/* TODO: USE MKL for pow, trigonometric functions and hyperbolic functions */
 
 #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi)
 #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi)
@@ -1463,6 +1463,34 @@ mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
+/**begin repeat1
+ * # kind = exp, log, log10, sqrt#
+ * # func = cexp, clog, clog10, csqrt#
+ * # VML = Exp, Ln, Log10, Sqrt#
+ */
+void
+mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same;
+
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
+        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+    } else {
+        UNARY_LOOP_DISPATCH(
+            @type@, @type@
+            ,
+            can_vectorize
+            ,
+            const @type@ in1 = *(@type@ *)ip1;
+            *(@type@ *)op1 = @func@@c@(in1);
+        )
+    }
+}
+/**end repeat1**/
+
 void
 mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func)) {
     const int contig = IS_UNARY_CONT(@type@, @type@);
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index fa2bb8b..cf524ff 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -93,9 +93,9 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, conjugate, divide, equal,
+ * # kind = absolute, add, conjugate, divide, equal, exp, log, log10,
             logical_and, logical_not, logical_or, logical_xor, multiply,
-            not_equal, square, subtract#
+            not_equal, sqrt, square, subtract#
  */
 MKL_UMATH_API
 void

From e5865d9d6f9f7fdd804a21bd4bd6143785df4092 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 11:10:26 -0700
Subject: [PATCH 15/23] add support trigonometric and hyperbolic

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         | 24 +++++++++----------
 mkl_umath/src/mkl_umath_loops.c.src | 37 ++++++++++++-----------------
 mkl_umath/src/mkl_umath_loops.h.src |  4 ++--
 4 files changed, 30 insertions(+), 36 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 214b772..0ea2a47 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Enabled support for `divmod` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for floating point data-types of `arctan2`, `hypot`, `fmod` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for complex data-types of `exp`, `log`, `log10`, and `sqrt` functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for complex data-types of trigonometric and hyperbolic functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index d834f8f..b315d17 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -554,73 +554,73 @@ def english_upper(s):
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arccos'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'arccosh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arccosh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'arcsin':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arcsin'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'arcsinh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arcsinh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'arctan':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arctan'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'arctanh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.arctanh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'cos':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.cos'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'sin':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.sin'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'tan':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.tan'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'cosh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.cosh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'sinh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.sinh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'tanh':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.tanh'),
           None,
-          TD(inexactvec),
+          TD(inexactvec + cmplxvec),
           ),
 'exp':
     Ufunc(1, 1, None,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 5956fa6..c3673a0 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -487,7 +487,7 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
                     @type@ *op1_shifted = op1 + peel;
                     @type@ *ip2_shifted = ip2 + peel;
 
-                    if ( DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
+                    if (DISJOINT_OR_SAME(op1_shifted, ip1_aligned, j_max, 1) &&
                         DISJOINT_OR_SAME(op1_shifted, ip2_shifted, j_max, 1)) {
                         NPY_ASSUME_ALIGNED(ip1_aligned, 64)
                         NPY_PRAGMA_VECTOR
@@ -859,8 +859,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
     const int disjoint_or_same = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
     const int can_vectorize = contig && disjoint_or_same;
 
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
         /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
     }
@@ -889,8 +888,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
     const int can_vectorize = contig && disjoint_or_same;
     int ignore_fpstatus = 0;
 
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         ignore_fpstatus = 1;
         CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
         /* v@s@Exp(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
@@ -921,8 +919,7 @@ mkl_umath_@TYPE@_log2(char **args, const npy_intp *dimensions, const npy_intp *s
     const int can_vectorize = contig && disjoint_or_same;
     int ignore_fpstatus = 0;
 
-    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD)
-    {
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         ignore_fpstatus = 1;
         CHUNKED_VML_CALL2(v@s@Log2, dimensions[0], @type@, args[0], args[1]);
         /* v@s@Log2(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
@@ -1021,12 +1018,10 @@ mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *s
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    {
-        BINARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            const @type@ in2 = *(@type@ *)ip2;
-            *((npy_bool *)op1) = in1 @OP@ in2;
-        }
+    BINARY_LOOP {
+        const @type@ in1 = *(@type@ *)ip1;
+        const @type@ in2 = *(@type@ *)ip2;
+        *((npy_bool *)op1) = in1 @OP@ in2;
     }
 }
 /**end repeat1**/
@@ -1062,11 +1057,9 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
 void
 mkl_umath_@TYPE@_negative(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    {
-        UNARY_LOOP {
-            const @type@ in1 = *(@type@ *)ip1;
-            *((@type@ *)op1) = -in1;
-        }
+    UNARY_LOOP {
+        const @type@ in1 = *(@type@ *)ip1;
+        *((@type@ *)op1) = -in1;
     }
 }
 
@@ -1188,7 +1181,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  **                           COMPLEX LOOPS                                 **
  *****************************************************************************
  */
-/* TODO: USE MKL for pow, trigonometric functions and hyperbolic functions */
+/* TODO: USE MKL for pow function */
 
 #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi)
 #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi)
@@ -1464,9 +1457,9 @@ mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp
 }
 
 /**begin repeat1
- * # kind = exp, log, log10, sqrt#
- * # func = cexp, clog, clog10, csqrt#
- * # VML = Exp, Ln, Log10, Sqrt#
+ * # kind = cos, sin, tan, arccos, arcsin, arctan, cosh, sinh, tanh, arccosh, arcsinh, arctanh, exp, log, log10, sqrt#
+ * # func = ccos, csin, ctan, cacos, casin, catan, ccosh, csinh, ctanh, cacosh, casinh, catanh, cexp, clog, clog10, csqrt#
+ * # VML = Cos, Sin, Tan, Acos, Asin, Atan, Cosh, Sinh, Tanh, Acosh, Asinh, Atanh, Exp, Ln, Log10, Sqrt#
  */
 void
 mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index cf524ff..7ea6c2e 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -93,9 +93,9 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, conjugate, divide, equal, exp, log, log10,
+ * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, conjugate, cos, cosh, divide, equal, exp, log, log10,
             logical_and, logical_not, logical_or, logical_xor, multiply,
-            not_equal, sqrt, square, subtract#
+            not_equal, sin, sinh, sqrt, square, subtract, tan, tanh#
  */
 MKL_UMATH_API
 void

From d996bd558bcb247e93018e0e0523535eeb86e462 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 12:17:04 -0700
Subject: [PATCH 16/23] fix compile warning: incompatible pointer types passing
 'npy_cdouble *' (aka '_Complex double *') to parameter of type 'const
 MKL_Complex16 *' (aka 'const struct _MKL_Complex16 *')
 [-Wincompatible-pointer-types]

---
 CHANGELOG.md                        |  1 +
 mkl_umath/src/mkl_umath_loops.c.src | 40 ++++++++++++++++++++---------
 2 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0ea2a47..c1cf2fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Dropped support for COMPLEX LOOPs of `sign` and `reciprocal` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `spacing` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Dropped support for `frexp` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Introduced `mkl_type = MKL_Complex8, MKL_Complex16` for COMPLEX LOOPS to avoid a compiling warning [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ## [0.2.0] - 2025-06-03
 This release updates `mkl_umath` to be aligned with both numpy-1.26.x and numpy-2.x.x.
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index c3673a0..afd5bb8 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -82,6 +82,21 @@
         }                                                                       \
     } while (0)
 
+#define CHUNKED_ABS_COMPLEX_CALL(vml_func, n, type, ftype, in1, op1)                          \
+    do {                                                                        \
+        npy_intp _n_ = (n);                                                     \
+        const npy_intp _chunk_size = MKL_INT_MAX;                               \
+        type *in1p = (type *) (in1);                                            \
+        ftype *op1p = (ftype *) (op1);                                            \
+        while (_n_ > 0) {                                                       \
+            npy_intp _current_chunk = (_n_ > _chunk_size) ? _chunk_size : _n_;  \
+            vml_func((MKL_INT) _current_chunk, in1p, op1p);                     \
+            _n_ -= _current_chunk;                                              \
+            in1p += _current_chunk;                                             \
+            op1p += _current_chunk;                                             \
+        }                                                                       \
+    } while (0)
+
 #define CHUNKED_VML_CALL3(vml_func, n, type, in1, in2, op1)                     \
     do  {                                                                       \
         npy_intp _n_ = (n);                                                     \
@@ -99,8 +114,7 @@
         }                                                                       \
     } while(0)
 
-
-#define CHUNKED_VML_LINEARFRAC_CALL(vml_func, n, type, in1, op1, scaleA, shiftA, scaleB, shiftB) \
+#define CHUNKED_LINEARFRAC_CALL(vml_func, n, type, in1, op1, scaleA, shiftA, scaleB, shiftB) \
      do {                                                                                        \
         npy_intp _n_ = (n);                                                                      \
         const npy_intp _chunk_size = MKL_INT_MAX;                                                \
@@ -354,7 +368,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
     } 
     else if (IS_BINARY_CONT_S1(@type@, @type@)) {
         if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same2) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], @OP@1.0, *(@type@*)args[0], 0.0, 1.0);
+            CHUNKED_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], @OP@1.0, *(@type@*)args[0], 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], @OP@1.0, *(@type@*)args[0], 0.0, 1.0, (@type@*) args[2]); */
         } 
         else {
@@ -394,7 +408,7 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
     } 
     else if (IS_BINARY_CONT_S2(@type@, @type@)) {
         if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0);
+            CHUNKED_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], 1.0, @OP@(*(@type@*)args[1]), 0.0, 1.0, (@type@*) args[2]); */
         }
         else {
@@ -513,7 +527,7 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
     } 
     else if (IS_BINARY_CONT_S1(@type@, @type@)) {
         if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same2) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], *(@type@*)args[0], 0.0, 0.0, 1.0);
+            CHUNKED_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[1], args[2], *(@type@*)args[0], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[1], (@type@*) args[1], *(@type@*)args[0], 0.0, 0.0, 1.0, (@type@*) args[2]); */
         }
         else {
@@ -553,7 +567,7 @@ mkl_umath_@TYPE@_multiply(char **args, const npy_intp *dimensions, const npy_int
     } 
     else if (IS_BINARY_CONT_S2(@type@, @type@)) {
         if (dimensions[0] > VML_ASM_THRESHOLD && disjoint_or_same1) {
-            CHUNKED_VML_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], *(@type@*)args[1], 0.0, 0.0, 1.0);
+            CHUNKED_LINEARFRAC_CALL(v@s@LinearFrac, dimensions[0], @type@, args[0], args[2], *(@type@*)args[1], 0.0, 0.0, 1.0);
             /* v@s@LinearFrac(dimensions[0], (@type@*) args[0], (@type@*) args[0], *(@type@*)args[1], 0.0, 0.0, 1.0, (@type@*) args[2]); */
         }
         else {
@@ -1191,6 +1205,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  * #TYPE = CFLOAT, CDOUBLE#
  * #ftype = npy_float, npy_double#
  * #type = npy_cfloat, npy_cdouble# 
+ * #mkl_type = MKL_Complex8, MKL_Complex16# 
  * #c = f, #
  * #C = F, # 
  * #s = c, z#
@@ -1469,8 +1484,8 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
     const int can_vectorize = contig && disjoint_or_same;
 
     if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@@VML@(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+        CHUNKED_VML_CALL2(v@s@@VML@, dimensions[0], @mkl_type@, args[0], args[1]);
+        /* v@s@@VML@(dimensions[0], (@mkl_type@*) args[0], (@mkl_type@*) args[1]); */
     } else {
         UNARY_LOOP_DISPATCH(
             @type@, @type@
@@ -1491,8 +1506,8 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
     const int can_vectorize = contig && disjoint_or_same;
 
     if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
-        CHUNKED_VML_CALL2(v@s@Conj, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@Conj(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+        CHUNKED_VML_CALL2(v@s@Conj, dimensions[0], @mkl_type@, args[0], args[1]);
+        /* v@s@Conj(dimensions[0], (@mkl_type@*) args[0], (@mkl_type@*) args[1]); */
     } 
     else {
         UNARY_LOOP {
@@ -1507,6 +1522,7 @@ mkl_umath_@TYPE@_conjugate(char **args, const npy_intp *dimensions, const npy_in
 void
 mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
+    // input is complex @type@ and output is float @ftype@
     const int contig = IS_UNARY_CONT(@type@, @ftype@);
     const int disjoint_or_same = DISJOINT_OR_SAME_TWO_DTYPES(args[0], args[1], dimensions[0], sizeof(@type@), sizeof(@ftype@));
     const int can_vectorize = contig && disjoint_or_same;
@@ -1514,8 +1530,8 @@ mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_int
     
     if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
         ignore_fpstatus = 1;
-        CHUNKED_VML_CALL2(v@s@Abs, dimensions[0], @type@, args[0], args[1]);
-        /* v@s@Abs(dimensions[0], (@type@*) args[0], (@type@*) args[1]); */
+        CHUNKED_ABS_COMPLEX_CALL(v@s@Abs, dimensions[0], @mkl_type@, @ftype@, args[0], args[1]);
+        /* v@s@Abs(dimensions[0], (@mkl_type@*) args[0], (@ftype@*) args[1]); */
     } 
     else {
         UNARY_LOOP {

From c95162a1af642502889f4e18d97ccbb582caa3f5 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 16:09:19 -0700
Subject: [PATCH 17/23] add support power

---
 CHANGELOG.md                        |  3 +-
 mkl_umath/generate_umath.py         |  7 ++-
 mkl_umath/src/mkl_umath_loops.c.src | 68 ++++++++++++++++++++++++++++-
 mkl_umath/src/mkl_umath_loops.h.src |  4 +-
 mkl_umath/tests/test_basic.py       | 49 +++++++++++++++++----
 5 files changed, 116 insertions(+), 15 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1cf2fa..e4855be 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,9 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added mkl implementation for complex data-types of `add`, `subtract`, `multiply` and `divide` functions [gh-88](https://github.com/IntelPython/mkl_umath/pull/88)
 * Added support for `floor_divide` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Enabled support for `divmod` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
-* Added oneMKL implementation for floating point data-types of `arctan2`, `hypot`, `fmod` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for floating point data-types of `arctan2`, `hypot`, `fmod` functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for complex data-types of `exp`, `log`, `log10`, and `sqrt` functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for complex data-types of trigonometric and hyperbolic functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for `power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index b315d17..a3aa6d8 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -453,7 +453,12 @@ def english_upper(s):
           TD(inexactvec),
           ),
 # '_ones_like':
-# 'power':
+'power':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.power'),
+          None,
+          TD(inexactvec + cmplxvec),
+          ),
 # 'float_power':
 'absolute':
     Ufunc(1, 1, None,
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index afd5bb8..4ac4845 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -114,6 +114,22 @@
         }                                                                       \
     } while(0)
 
+#define CHUNKED_POWX_CALL(vml_func, n, type, in1, in2, op1)                     \
+    do  {                                                                       \
+        npy_intp _n_ = (n);                                                     \
+        const npy_intp _chunk_size = MKL_INT_MAX;                               \
+        type *in1p = (type *) (in1);                                            \
+        type in2_val = *((type *) (in2));                                       \
+        type *op1p = (type *) (op1);                                            \
+        while (_n_ > 0) {                                                       \
+            npy_intp _current_chunk = (_n_ > _chunk_size) ? _chunk_size : _n_;  \
+            vml_func((MKL_INT) _current_chunk, in1p, in2_val, op1p);            \
+            _n_ -= _current_chunk;                                              \
+            in1p += _current_chunk;                                             \
+            op1p += _current_chunk;                                             \
+        }                                                                       \
+    } while(0)
+
 #define CHUNKED_LINEARFRAC_CALL(vml_func, n, type, in1, op1, scaleA, shiftA, scaleB, shiftB) \
      do {                                                                                        \
         npy_intp _n_ = (n);                                                                      \
@@ -215,7 +231,6 @@ divmod@c@(@type@ a, @type@ b, @type@ *modulus)
  **                             FLOAT LOOPS                                 **
  *****************************************************************************
  */
-/* TODO: Use MKL for pow, i0 */
 
 /**begin repeat
  * Float types
@@ -804,6 +819,31 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 }
 /**end repeat1**/
 
+void
+mkl_umath_@TYPE@_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int contig_scalar = IS_BINARY_CONT_S2(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int large_array = dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD;
+    
+    if (contig && disjoint_or_same1 && disjoint_or_same2 && large_array) {
+        CHUNKED_VML_CALL3(v@s@Pow, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@Pow(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    } else if (contig_scalar && disjoint_or_same1 && large_array) {
+        CHUNKED_POWX_CALL(v@s@Powx, dimensions[0], @type@, args[0], args[1], args[2]);
+        /* v@s@Powx(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ in2 = *(@type@ *)ip2;
+            *((@type@ *)op1)= pow@c@(in1, in2);
+        }
+    }
+}
+
 /**begin repeat1
  * # kind = arctan2, copysign, fmod, hypot, nextafter#
  * # func = atan2, copysign, fmod, hypot, nextafter#
@@ -1195,7 +1235,6 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  **                           COMPLEX LOOPS                                 **
  *****************************************************************************
  */
-/* TODO: USE MKL for pow function */
 
 #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi)
 #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi)
@@ -1471,6 +1510,31 @@ mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
+void
+mkl_umath_@TYPE@_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(@type@, @type@);
+    const int contig_scalar = IS_BINARY_CONT_S2(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int large_array = dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD;
+    
+    if (contig && disjoint_or_same1 && disjoint_or_same2 && large_array) {
+        CHUNKED_VML_CALL3(v@s@Pow, dimensions[0], @mkl_type@, args[0], args[1], args[2]);
+        /* v@s@Pow(dimensions[0], (@mkl_type@*) args[0], (@mkl_type@*) args[1], (@mkl_type@*) args[2]); */
+    } else if (contig_scalar && disjoint_or_same1 && large_array) {
+        CHUNKED_POWX_CALL(v@s@Powx, dimensions[0], @mkl_type@, args[0], args[1], args[2]);
+        /* v@s@Powx(dimensions[0], (@mkl_type@*) args[0], (@mkl_type@*) args[1], (@mkl_type@*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const @type@ in1 = *(@type@ *)ip1;
+            const @type@ in2 = *(@type@ *)ip2;
+            *((@type@ *)op1)= cpow@c@(in1, in2);
+        }
+    }
+}
+
 /**begin repeat1
  * # kind = cos, sin, tan, arccos, arcsin, arctan, cosh, sinh, tanh, arccosh, arcsinh, arctanh, exp, log, log10, sqrt#
  * # func = ccos, csin, ctan, cacos, casin, catan, ccosh, csinh, ctanh, cacosh, casinh, catanh, cexp, clog, clog10, csqrt#
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index 7ea6c2e..a7abc07 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -58,7 +58,7 @@
             copysign, cos, cosh, divide, divmod, exp, exp2, expm1, fabs, 
             floor, floor_divide, fmax, fmin, fmod, hypot, ldexp, log, log2, log10, 
             log1p, logical_and, logical_not, logical_or, logical_xor, multiply, modf, 
-            negative, nextafter, positive, reciprocal, remainder, rint, sign, sin,
+            negative, nextafter, positive, power, reciprocal, remainder, rint, sign, sin,
             sinh, sqrt, square, subtract, tan, tanh, trunc#
  */
 MKL_UMATH_API
@@ -95,7 +95,7 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 /**begin repeat1
  * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, conjugate, cos, cosh, divide, equal, exp, log, log10,
             logical_and, logical_not, logical_or, logical_xor, multiply,
-            not_equal, sin, sinh, sqrt, square, subtract, tan, tanh#
+            not_equal, power, sin, sinh, sqrt, square, subtract, tan, tanh#
  */
 MKL_UMATH_API
 void
diff --git a/mkl_umath/tests/test_basic.py b/mkl_umath/tests/test_basic.py
index 9660662..bae6457 100644
--- a/mkl_umath/tests/test_basic.py
+++ b/mkl_umath/tests/test_basic.py
@@ -93,11 +93,19 @@ def test_mkl_umath(case):
     args = test_mkl[case]
     mkl_umath = getattr(mu, umath)
     np_umath = getattr(np, umath)
-    
-    mkl_res = mkl_umath(*args)
-    np_res = np_umath(*args)
-       
-    assert np.allclose(mkl_res, np_res), f"Results for '{umath}' do not match"
+
+    if umath == "power":
+        # Negative values raised to a non-integral value will return nan.
+        equal_nan = True
+        with np.errstate(invalid='ignore'):
+            mkl_res = mkl_umath(*args)
+            np_res = np_umath(*args)
+    else:
+        equal_nan = False
+        mkl_res = mkl_umath(*args)
+        np_res = np_umath(*args)
+
+    assert np.allclose(mkl_res, np_res, equal_nan=equal_nan), f"Results for '{umath}' do not match"
 
 
 @pytest.mark.parametrize("case", test_fall_back, ids=get_id)
@@ -106,11 +114,19 @@ def test_fall_back_umath(case):
     args = test_fall_back[case]
     mkl_umath = getattr(mu, umath)
     np_umath = getattr(np, umath)
-    
-    mkl_res = mkl_umath(*args)
-    np_res = np_umath(*args)
 
-    assert np.allclose(mkl_res, np_res), f"Results for '{umath}' do not match"    
+    if umath == "power":
+        # Negative values raised to a non-integral value will return nan.
+        equal_nan = True
+        with np.errstate(invalid='ignore'):
+            mkl_res = mkl_umath(*args)
+            np_res = np_umath(*args)
+    else:
+        equal_nan = False
+        mkl_res = mkl_umath(*args)
+        np_res = np_umath(*args)
+
+    assert np.allclose(mkl_res, np_res, equal_nan=equal_nan), f"Results for '{umath}' do not match"
 
 
 @pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide"])
@@ -130,6 +146,21 @@ def test_scalar(func, size, dtype):
     assert np.allclose(mkl_res, np_res), f"Results for '{func}(scalar, array)' do not match"
 
 
+@pytest.mark.parametrize("dtype", [np.float32, np.float64, np.complex64, np.complex128])
+@pytest.mark.parametrize("pow", [2.5, 3])
+def test_power_scalar(dtype, pow):
+    size = 10**5
+    a = np.random.uniform(-10, 10, size).astype(dtype)
+    if np.issubdtype(dtype, np.complexfloating):
+        a += 1j * np.random.uniform(-10, 10, size)
+
+    # testing implementation in IS_BINARY_CONT_S1 branch
+    with np.errstate(invalid='ignore'):
+        mkl_res = mu.power(a, pow)
+        np_res = np.power(a, pow)
+    assert np.allclose(mkl_res, np_res, equal_nan=True), f"Results for 'power(array, scalar)' do not match"
+
+
 @pytest.mark.parametrize("func", ["add", "subtract", "multiply", "divide"])
 @pytest.mark.parametrize("dtype", [np.float32, np.float64])
 def test_strided(func, dtype):

From 7a3a58af690c1d0be44d7e38e2c1d541581aba76 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Thu, 31 Jul 2025 12:20:14 -0700
Subject: [PATCH 18/23] add support modf

---
 CHANGELOG.md                        |  1 +
 mkl_umath/src/mkl_umath_loops.c.src | 37 +++++++++++++++++++++++++----
 2 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4855be..47cab49 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added oneMKL implementation for complex data-types of `exp`, `log`, `log10`, and `sqrt` functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for complex data-types of trigonometric and hyperbolic functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for `power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for floating point data-types of `modf` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 4ac4845..2d34682 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -97,6 +97,23 @@
         }                                                                       \
     } while (0)
 
+#define CHUNKED_MODF_CALL(vml_func, n, type, in1, op1, op2)                     \
+    do  {                                                                       \
+        npy_intp _n_ = (n);                                                     \
+        const npy_intp _chunk_size = MKL_INT_MAX;                               \
+        type *in1p = (type *) (in1);                                            \
+        type *op1p = (type *) (op1);                                            \
+        type *op2p = (type *) (op2);                                            \
+        while (_n_ > 0) {                                                       \
+            npy_intp _current_chunk = (_n_ > _chunk_size) ? _chunk_size : _n_;  \
+            vml_func((MKL_INT) _current_chunk, in1p, op1p, op2p);               \
+            _n_ -= _current_chunk;                                              \
+            in1p += _current_chunk;                                             \
+            op1p += _current_chunk;                                             \
+            op2p += _current_chunk;                                             \
+        }                                                                       \
+    } while(0)
+
 #define CHUNKED_VML_CALL3(vml_func, n, type, in1, in2, op1)                     \
     do  {                                                                       \
         npy_intp _n_ = (n);                                                     \
@@ -1055,13 +1072,25 @@ mkl_umath_@TYPE@_square(char **args, const npy_intp *dimensions, const npy_intp
     }
 }
 
-/* TODO: USE MKL */
 void
 mkl_umath_@TYPE@_modf(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
 {
-    UNARY_LOOP_TWO_OUT {
-        const @type@ in1 = *(@type@ *)ip1;
-        *((@type@ *)op1) = modf@c@(in1, (@type@ *)op2);
+    const int contig = IS_UNARY_CONT(@type@, @type@);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[1], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(@type@));
+    const int disjoint_or_same3 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(@type@));
+    const int can_vectorize = contig && disjoint_or_same1 && disjoint_or_same2 && disjoint_or_same3;
+    
+    if (can_vectorize && dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD) {
+        // order of MKL output is different than NumPy, so first pass args[2] and then args[1]
+        CHUNKED_MODF_CALL(v@s@Modf, dimensions[0], @type@, args[0], args[2], args[1]);
+        /* v@s@Modf(dimensions[0], (@type@*) args[0], (@type@*) args[1], (@type@*) args[2]); */
+    }
+    else {
+        UNARY_LOOP_TWO_OUT {
+            const @type@ in1 = *(@type@ *)ip1;
+            *((@type@ *)op1) = modf@c@(in1, (@type@ *)op2);
+        }
     }
 }
 

From 9100d81bdf8deb2f652f5d6d4997fcaafbfada0d Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Thu, 31 Jul 2025 13:04:43 -0700
Subject: [PATCH 19/23] add support float_power

---
 CHANGELOG.md                        |  1 +
 mkl_umath/generate_umath.py         |  7 +++-
 mkl_umath/src/mkl_umath_loops.c.src | 50 +++++++++++++++++++++++++++++
 mkl_umath/src/mkl_umath_loops.h.src | 12 +++++--
 mkl_umath/tests/test_basic.py       | 11 ++++---
 5 files changed, 73 insertions(+), 8 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47cab49..0aed3e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added oneMKL implementation for complex data-types of trigonometric and hyperbolic functions [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for `power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for floating point data-types of `modf` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Added oneMKL implementation for `float_power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/generate_umath.py b/mkl_umath/generate_umath.py
index a3aa6d8..a4e24cf 100644
--- a/mkl_umath/generate_umath.py
+++ b/mkl_umath/generate_umath.py
@@ -459,7 +459,12 @@ def english_upper(s):
           None,
           TD(inexactvec + cmplxvec),
           ),
-# 'float_power':
+'float_power':
+    Ufunc(2, 1, None,
+          docstrings.get('numpy._core.umath.float_power'),
+          None,
+          TD('dD'),
+          ),
 'absolute':
     Ufunc(1, 1, None,
           docstrings.get('numpy._core.umath.absolute'),
diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index 2d34682..a163f87 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1259,6 +1259,31 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 #endif
 /**end repeat**/
 
+void
+mkl_umath_DOUBLE_float_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(npy_double, npy_double);
+    const int contig_scalar = IS_BINARY_CONT_S2(npy_double, npy_double);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(npy_double));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(npy_double));
+    const int large_array = dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD;
+    
+    if (contig && disjoint_or_same1 && disjoint_or_same2 && large_array) {
+        CHUNKED_VML_CALL3(vdPow, dimensions[0], npy_double, args[0], args[1], args[2]);
+        /* vdPow(dimensions[0], (npy_double*) args[0], (npy_double*) args[1], (npy_double*) args[2]); */
+    } else if (contig_scalar && disjoint_or_same1 && large_array) {
+        CHUNKED_POWX_CALL(vdPowx, dimensions[0], npy_double, args[0], args[1], args[2]);
+        /* vdPowx(dimensions[0], (npy_double*) args[0], (npy_double*) args[1], (npy_double*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const npy_double in1 = *(npy_double *)ip1;
+            const npy_double in2 = *(npy_double *)ip2;
+            *((npy_double *)op1)= pow(in1, in2);
+        }
+    }
+}
+
 /*
  *****************************************************************************
  **                           COMPLEX LOOPS                                 **
@@ -1639,6 +1664,31 @@ mkl_umath_@TYPE@_absolute(char **args, const npy_intp *dimensions, const npy_int
 }
 /**end repeat**/
 
+void
+mkl_umath_CDOUBLE_float_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func))
+{
+    const int contig = IS_BINARY_CONT(npy_cdouble, npy_cdouble);
+    const int contig_scalar = IS_BINARY_CONT_S2(npy_cdouble, npy_cdouble);
+    const int disjoint_or_same1 = DISJOINT_OR_SAME(args[0], args[2], dimensions[0], sizeof(npy_cdouble));
+    const int disjoint_or_same2 = DISJOINT_OR_SAME(args[1], args[2], dimensions[0], sizeof(npy_cdouble));
+    const int large_array = dimensions[0] > VML_TRANSCEDENTAL_THRESHOLD;
+    
+    if (contig && disjoint_or_same1 && disjoint_or_same2 && large_array) {
+        CHUNKED_VML_CALL3(vzPow, dimensions[0], MKL_Complex16, args[0], args[1], args[2]);
+        /* vzPow(dimensions[0], (MKL_Complex16*) args[0], (MKL_Complex16*) args[1], (MKL_Complex16*) args[2]); */
+    } else if (contig_scalar && disjoint_or_same1 && large_array) {
+        CHUNKED_POWX_CALL(vzPowx, dimensions[0], MKL_Complex16, args[0], args[1], args[2]);
+        /* vzPowx(dimensions[0], (MKL_Complex16*) args[0], (MKL_Complex16*) args[1], (MKL_Complex16*) args[2]); */
+    }
+    else {
+        BINARY_LOOP {
+            const npy_cdouble in1 = *(npy_cdouble *)ip1;
+            const npy_cdouble in2 = *(npy_cdouble *)ip2;
+            *((npy_cdouble *)op1)= cpow(in1, in2);
+        }
+    }
+}
+
 #undef CEQ
 #undef CNE
 
diff --git a/mkl_umath/src/mkl_umath_loops.h.src b/mkl_umath/src/mkl_umath_loops.h.src
index a7abc07..2cd3580 100644
--- a/mkl_umath/src/mkl_umath_loops.h.src
+++ b/mkl_umath/src/mkl_umath_loops.h.src
@@ -78,6 +78,10 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
 
 /**end repeat**/
 
+MKL_UMATH_API
+void 
+mkl_umath_DOUBLE_float_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
+
 /*
  *****************************************************************************
  **                           COMPLEX LOOPS                                 **
@@ -93,8 +97,8 @@ mkl_umath_@TYPE@_ldexp_long(char **args, const npy_intp *dimensions, const npy_i
  */
 
 /**begin repeat1
- * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, conjugate, cos, cosh, divide, equal, exp, log, log10,
-            logical_and, logical_not, logical_or, logical_xor, multiply,
+ * # kind = absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctanh, conjugate, cos, cosh, divide,
+            equal, exp, log, log10, logical_and, logical_not, logical_or, logical_xor, multiply,
             not_equal, power, sin, sinh, sqrt, square, subtract, tan, tanh#
  */
 MKL_UMATH_API
@@ -104,6 +108,10 @@ mkl_umath_@TYPE@_@kind@(char **args, const npy_intp *dimensions, const npy_intp
 
 /**end repeat**/
 
+MKL_UMATH_API
+void
+mkl_umath_CDOUBLE_float_power(char **args, const npy_intp *dimensions, const npy_intp *steps, void *NPY_UNUSED(func));
+
 #undef CEQ
 #undef CNE
 
diff --git a/mkl_umath/tests/test_basic.py b/mkl_umath/tests/test_basic.py
index bae6457..35f86b0 100644
--- a/mkl_umath/tests/test_basic.py
+++ b/mkl_umath/tests/test_basic.py
@@ -94,7 +94,7 @@ def test_mkl_umath(case):
     mkl_umath = getattr(mu, umath)
     np_umath = getattr(np, umath)
 
-    if umath == "power":
+    if umath in ["power", "float_power"]:
         # Negative values raised to a non-integral value will return nan.
         equal_nan = True
         with np.errstate(invalid='ignore'):
@@ -115,7 +115,7 @@ def test_fall_back_umath(case):
     mkl_umath = getattr(mu, umath)
     np_umath = getattr(np, umath)
 
-    if umath == "power":
+    if umath in ["power", "float_power"]:
         # Negative values raised to a non-integral value will return nan.
         equal_nan = True
         with np.errstate(invalid='ignore'):
@@ -147,8 +147,9 @@ def test_scalar(func, size, dtype):
 
 
 @pytest.mark.parametrize("dtype", [np.float32, np.float64, np.complex64, np.complex128])
+@pytest.mark.parametrize("func", ["power", "float_power"])
 @pytest.mark.parametrize("pow", [2.5, 3])
-def test_power_scalar(dtype, pow):
+def test_power_scalar(dtype, func, pow):
     size = 10**5
     a = np.random.uniform(-10, 10, size).astype(dtype)
     if np.issubdtype(dtype, np.complexfloating):
@@ -156,8 +157,8 @@ def test_power_scalar(dtype, pow):
 
     # testing implementation in IS_BINARY_CONT_S1 branch
     with np.errstate(invalid='ignore'):
-        mkl_res = mu.power(a, pow)
-        np_res = np.power(a, pow)
+        mkl_res = getattr(mu, func)(a, pow)
+        np_res = getattr(mu, func)(a, pow)
     assert np.allclose(mkl_res, np_res, equal_nan=True), f"Results for 'power(array, scalar)' do not match"
 
 

From 58599822a1392db0664f6215f6698827ec91392a Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Wed, 30 Jul 2025 06:18:00 -0700
Subject: [PATCH 20/23] add numpy tests

---
 mkl_umath/src/mkl_umath_loops.c.src           |    1 +
 .../third_party/numpy/data/astype_copy.pkl    |  Bin 0 -> 716 bytes
 .../data/generate_umath_validation_data.cpp   |  170 +
 .../numpy/data/recarray_from_file.fits        |  Bin 0 -> 8640 bytes
 .../data/umath-validation-set-README.txt      |   15 +
 .../data/umath-validation-set-arccos.csv      | 1429 +++++
 .../data/umath-validation-set-arccosh.csv     | 1429 +++++
 .../data/umath-validation-set-arcsin.csv      | 1429 +++++
 .../data/umath-validation-set-arcsinh.csv     | 1429 +++++
 .../data/umath-validation-set-arctan.csv      | 1429 +++++
 .../data/umath-validation-set-arctanh.csv     | 1429 +++++
 .../numpy/data/umath-validation-set-cbrt.csv  | 1429 +++++
 .../numpy/data/umath-validation-set-cos.csv   | 1375 +++++
 .../numpy/data/umath-validation-set-cosh.csv  | 1429 +++++
 .../numpy/data/umath-validation-set-exp.csv   |  412 ++
 .../numpy/data/umath-validation-set-exp2.csv  | 1429 +++++
 .../numpy/data/umath-validation-set-expm1.csv | 1429 +++++
 .../numpy/data/umath-validation-set-log.csv   |  271 +
 .../numpy/data/umath-validation-set-log10.csv | 1629 ++++++
 .../numpy/data/umath-validation-set-log1p.csv | 1429 +++++
 .../numpy/data/umath-validation-set-log2.csv  | 1629 ++++++
 .../numpy/data/umath-validation-set-sin.csv   | 1370 +++++
 .../numpy/data/umath-validation-set-sinh.csv  | 1429 +++++
 .../numpy/data/umath-validation-set-tan.csv   | 1429 +++++
 .../numpy/data/umath-validation-set-tanh.csv  | 1429 +++++
 .../tests/third_party/numpy/test_umath.py     | 4938 +++++++++++++++++
 .../third_party/numpy/test_umath_accuracy.py  |  132 +
 .../third_party/numpy/test_umath_complex.py   |  634 +++
 28 files changed, 32582 insertions(+)
 create mode 100644 mkl_umath/tests/third_party/numpy/data/astype_copy.pkl
 create mode 100644 mkl_umath/tests/third_party/numpy/data/generate_umath_validation_data.cpp
 create mode 100644 mkl_umath/tests/third_party/numpy/data/recarray_from_file.fits
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-README.txt
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccos.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccosh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsin.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsinh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctan.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctanh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-cbrt.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-cos.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-cosh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp2.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-expm1.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-log.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-log10.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-log1p.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-log2.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-sin.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-sinh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-tan.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/data/umath-validation-set-tanh.csv
 create mode 100644 mkl_umath/tests/third_party/numpy/test_umath.py
 create mode 100644 mkl_umath/tests/third_party/numpy/test_umath_accuracy.py
 create mode 100644 mkl_umath/tests/third_party/numpy/test_umath_complex.py

diff --git a/mkl_umath/src/mkl_umath_loops.c.src b/mkl_umath/src/mkl_umath_loops.c.src
index a163f87..986fe35 100644
--- a/mkl_umath/src/mkl_umath_loops.c.src
+++ b/mkl_umath/src/mkl_umath_loops.c.src
@@ -1163,6 +1163,7 @@ mkl_umath_@TYPE@_sign(char **args, const npy_intp *dimensions, const npy_intp *s
         const @type@ in1 = *(@type@ *)ip1;
         *((@type@ *)op1) = in1 > 0 ? 1 : (in1 < 0 ? -1 : (in1 == 0 ? 0 : in1));
     }
+    feclearexcept(FE_ALL_EXCEPT); /* clear floatstatus */
 }
 
 void
diff --git a/mkl_umath/tests/third_party/numpy/data/astype_copy.pkl b/mkl_umath/tests/third_party/numpy/data/astype_copy.pkl
new file mode 100644
index 0000000000000000000000000000000000000000..7397c978297b3f64c7e6540b23f448f280e30bcc
GIT binary patch
diff --git a/mkl_umath/tests/third_party/numpy/data/generate_umath_validation_data.cpp b/mkl_umath/tests/third_party/numpy/data/generate_umath_validation_data.cpp
new file mode 100644
index 0000000..88ff45e
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/generate_umath_validation_data.cpp
@@ -0,0 +1,170 @@
+#include <algorithm>
+#include <fstream>
+#include <iostream>
+#include <math.h>
+#include <random>
+#include <cstdio>
+#include <ctime>
+#include <vector>
+
+struct ufunc {
+    std::string name;
+    double (*f32func)(double);
+    long double (*f64func)(long double);
+    float f32ulp;
+    float f64ulp;
+};
+
+template <typename T>
+T
+RandomFloat(T a, T b)
+{
+    T random = ((T)rand()) / (T)RAND_MAX;
+    T diff = b - a;
+    T r = random * diff;
+    return a + r;
+}
+
+template <typename T>
+void
+append_random_array(std::vector<T> &arr, T min, T max, size_t N)
+{
+    for (size_t ii = 0; ii < N; ++ii)
+        arr.emplace_back(RandomFloat<T>(min, max));
+}
+
+template <typename T1, typename T2>
+std::vector<T1>
+computeTrueVal(const std::vector<T1> &in, T2 (*mathfunc)(T2))
+{
+    std::vector<T1> out;
+    for (T1 elem : in) {
+        T2 elem_d = (T2)elem;
+        T1 out_elem = (T1)mathfunc(elem_d);
+        out.emplace_back(out_elem);
+    }
+    return out;
+}
+
+/*
+ * FP range:
+ * [-inf, -maxflt, -1., -minflt, -minden, 0., minden, minflt, 1., maxflt, inf]
+ */
+
+#define MINDEN std::numeric_limits<T>::denorm_min()
+#define MINFLT std::numeric_limits<T>::min()
+#define MAXFLT std::numeric_limits<T>::max()
+#define INF std::numeric_limits<T>::infinity()
+#define qNAN std::numeric_limits<T>::quiet_NaN()
+#define sNAN std::numeric_limits<T>::signaling_NaN()
+
+template <typename T>
+std::vector<T>
+generate_input_vector(std::string func)
+{
+    std::vector<T> input = {MINDEN,  -MINDEN, MINFLT, -MINFLT, MAXFLT,
+                            -MAXFLT, INF,     -INF,   qNAN,    sNAN,
+                            -1.0,    1.0,     0.0,    -0.0};
+
+    // [-1.0, 1.0]
+    if ((func == "arcsin") || (func == "arccos") || (func == "arctanh")) {
+        append_random_array<T>(input, -1.0, 1.0, 700);
+    }
+    // (0.0, INF]
+    else if ((func == "log2") || (func == "log10")) {
+        append_random_array<T>(input, 0.0, 1.0, 200);
+        append_random_array<T>(input, MINDEN, MINFLT, 200);
+        append_random_array<T>(input, MINFLT, 1.0, 200);
+        append_random_array<T>(input, 1.0, MAXFLT, 200);
+    }
+    // (-1.0, INF]
+    else if (func == "log1p") {
+        append_random_array<T>(input, -1.0, 1.0, 200);
+        append_random_array<T>(input, -MINFLT, -MINDEN, 100);
+        append_random_array<T>(input, -1.0, -MINFLT, 100);
+        append_random_array<T>(input, MINDEN, MINFLT, 100);
+        append_random_array<T>(input, MINFLT, 1.0, 100);
+        append_random_array<T>(input, 1.0, MAXFLT, 100);
+    }
+    // [1.0, INF]
+    else if (func == "arccosh") {
+        append_random_array<T>(input, 1.0, 2.0, 400);
+        append_random_array<T>(input, 2.0, MAXFLT, 300);
+    }
+    // [-INF, INF]
+    else {
+        append_random_array<T>(input, -1.0, 1.0, 100);
+        append_random_array<T>(input, MINDEN, MINFLT, 100);
+        append_random_array<T>(input, -MINFLT, -MINDEN, 100);
+        append_random_array<T>(input, MINFLT, 1.0, 100);
+        append_random_array<T>(input, -1.0, -MINFLT, 100);
+        append_random_array<T>(input, 1.0, MAXFLT, 100);
+        append_random_array<T>(input, -MAXFLT, -100.0, 100);
+    }
+
+    std::random_shuffle(input.begin(), input.end());
+    return input;
+}
+
+int
+main()
+{
+    srand(42);
+    std::vector<struct ufunc> umathfunc = {
+            {"sin", sin, sin, 1.49, 1.00},
+            {"cos", cos, cos, 1.49, 1.00},
+            {"tan", tan, tan, 3.91, 1.00},
+            {"arcsin", asin, asin, 3.12, 1.00},
+            {"arccos", acos, acos, 2.1, 1.00},
+            {"arctan", atan, atan, 2.3, 1.00},
+            {"sinh", sinh, sinh, 1.55, 1.00},
+            {"cosh", cosh, cosh, 2.48, 1.00},
+            {"tanh", tanh, tanh, 1.38, 2.00},
+            {"arcsinh", asinh, asinh, 1.01, 1.00},
+            {"arccosh", acosh, acosh, 1.16, 1.00},
+            {"arctanh", atanh, atanh, 1.45, 1.00},
+            {"cbrt", cbrt, cbrt, 1.94, 2.00},
+            //{"exp",exp,exp,3.76,1.00},
+            {"exp2", exp2, exp2, 1.01, 1.00},
+            {"expm1", expm1, expm1, 2.62, 1.00},
+            //{"log",log,log,1.84,1.00},
+            {"log10", log10, log10, 3.5, 1.00},
+            {"log1p", log1p, log1p, 1.96, 1.0},
+            {"log2", log2, log2, 2.12, 1.00},
+    };
+
+    for (int ii = 0; ii < umathfunc.size(); ++ii) {
+        // ignore sin/cos
+        if ((umathfunc[ii].name != "sin") && (umathfunc[ii].name != "cos")) {
+            std::string fileName =
+                    "umath-validation-set-" + umathfunc[ii].name + ".csv";
+            std::ofstream txtOut;
+            txtOut.open(fileName, std::ofstream::trunc);
+            txtOut << "dtype,input,output,ulperrortol" << std::endl;
+
+            // Single Precision
+            auto f32in = generate_input_vector<float>(umathfunc[ii].name);
+            auto f32out = computeTrueVal<float, double>(f32in,
+                                                        umathfunc[ii].f32func);
+            for (int jj = 0; jj < f32in.size(); ++jj) {
+                txtOut << "np.float32" << std::hex << ",0x"
+                       << *reinterpret_cast<uint32_t *>(&f32in[jj]) << ",0x"
+                       << *reinterpret_cast<uint32_t *>(&f32out[jj]) << ","
+                       << ceil(umathfunc[ii].f32ulp) << std::endl;
+            }
+
+            // Double Precision
+            auto f64in = generate_input_vector<double>(umathfunc[ii].name);
+            auto f64out = computeTrueVal<double, long double>(
+                    f64in, umathfunc[ii].f64func);
+            for (int jj = 0; jj < f64in.size(); ++jj) {
+                txtOut << "np.float64" << std::hex << ",0x"
+                       << *reinterpret_cast<uint64_t *>(&f64in[jj]) << ",0x"
+                       << *reinterpret_cast<uint64_t *>(&f64out[jj]) << ","
+                       << ceil(umathfunc[ii].f64ulp) << std::endl;
+            }
+            txtOut.close();
+        }
+    }
+    return 0;
+}
diff --git a/mkl_umath/tests/third_party/numpy/data/recarray_from_file.fits b/mkl_umath/tests/third_party/numpy/data/recarray_from_file.fits
new file mode 100644
index 0000000000000000000000000000000000000000..ca48ee85153645a7510e201d574e9b119c089dce
GIT binary patch
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-README.txt b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-README.txt
new file mode 100644
index 0000000..cfc9e41
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-README.txt
@@ -0,0 +1,15 @@
+Steps to validate transcendental functions:
+1) Add a file 'umath-validation-set-<ufuncname>.txt', where ufuncname is name of
+   the function in NumPy you want to validate
+2) The file should contain 4 columns: dtype,input,expected output,ulperror
+    a. dtype: one of np.float16, np.float32, np.float64
+    b. input: floating point input to ufunc in hex. Example: 0x414570a4
+       represents 12.340000152587890625
+    c. expected output: floating point output for the corresponding input in hex.
+       This should be computed using a high(er) precision library and then rounded to
+       same format as the input.
+    d. ulperror: expected maximum ulp error of the function. This
+       should be same across all rows of the same dtype. Otherwise, the function is
+       tested for the maximum ulp error among all entries of that dtype.
+3) Add file umath-validation-set-<ufuncname>.txt to the test file test_umath_accuracy.py
+   which will then validate your ufunc.
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccos.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccos.csv
new file mode 100644
index 0000000..82c8595
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccos.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xbddd7f50,0x3fd6eec2,3
+np.float32,0xbe32a20c,0x3fdf8182,3
+np.float32,0xbf607c09,0x4028f84f,3
+np.float32,0x3f25d906,0x3f5db544,3
+np.float32,0x3f01cec8,0x3f84febf,3
+np.float32,0x3f1d5c6e,0x3f68a735,3
+np.float32,0xbf0cab89,0x4009c36d,3
+np.float32,0xbf176b40,0x400d0941,3
+np.float32,0x3f3248b2,0x3f4ce6d4,3
+np.float32,0x3f390b48,0x3f434e0d,3
+np.float32,0xbe261698,0x3fddea43,3
+np.float32,0x3f0e1154,0x3f7b848b,3
+np.float32,0xbf379a3c,0x4017b764,3
+np.float32,0xbeda6f2c,0x4000bd62,3
+np.float32,0xbf6a0c3f,0x402e5d5a,3
+np.float32,0x3ef1d700,0x3f8a17b7,3
+np.float32,0xbf6f4f65,0x4031d30d,3
+np.float32,0x3f2c9eee,0x3f54adfd,3
+np.float32,0x3f3cfb18,0x3f3d8a1e,3
+np.float32,0x3ba80800,0x3fc867d2,3
+np.float32,0x3e723b08,0x3faa7e4d,3
+np.float32,0xbf65820f,0x402bb054,3
+np.float32,0xbee64e7a,0x40026410,3
+np.float32,0x3cb15140,0x3fc64a87,3
+np.float32,0x3f193660,0x3f6ddf2a,3
+np.float32,0xbf0e5b52,0x400a44f7,3
+np.float32,0x3ed55f14,0x3f920a4b,3
+np.float32,0x3dd11a80,0x3fbbf85c,3
+np.float32,0xbf4f5c4b,0x4020f4f9,3
+np.float32,0x3f787532,0x3e792e87,3
+np.float32,0x3f40e6ac,0x3f37a74f,3
+np.float32,0x3f1c1318,0x3f6a47b6,3
+np.float32,0xbe3c48d8,0x3fe0bb70,3
+np.float32,0xbe94d4bc,0x3feed08e,3
+np.float32,0xbe5c3688,0x3fe4ce26,3
+np.float32,0xbf6fe026,0x403239cb,3
+np.float32,0x3ea5983c,0x3f9ee7bf,3
+np.float32,0x3f1471e6,0x3f73c5bb,3
+np.float32,0x3f0e2622,0x3f7b6b87,3
+np.float32,0xbf597180,0x40257ad1,3
+np.float32,0xbeb5321c,0x3ff75d34,3
+np.float32,0x3f5afcd2,0x3f0b6012,3
+np.float32,0xbef2ff88,0x40042e14,3
+np.float32,0xbedc747e,0x400104f5,3
+np.float32,0xbee0c2f4,0x40019dfc,3
+np.float32,0xbf152cd8,0x400c57dc,3
+np.float32,0xbf6cf9e2,0x40303bbe,3
+np.float32,0x3ed9cd74,0x3f90d1a1,3
+np.float32,0xbf754406,0x4036767f,3
+np.float32,0x3f59c5c2,0x3f0db42f,3
+np.float32,0x3f2eefd8,0x3f518684,3
+np.float32,0xbf156bf9,0x400c6b49,3
+np.float32,0xbd550790,0x3fcfb8dc,3
+np.float32,0x3ede58fc,0x3f8f8f77,3
+np.float32,0xbf00ac19,0x40063c4b,3
+np.float32,0x3f4d25ba,0x3f24280e,3
+np.float32,0xbe9568be,0x3feef73c,3
+np.float32,0x3f67d154,0x3ee05547,3
+np.float32,0x3f617226,0x3efcb4f4,3
+np.float32,0xbf3ab41a,0x4018d6cc,3
+np.float32,0xbf3186fe,0x401592cd,3
+np.float32,0x3de3ba50,0x3fbacca9,3
+np.float32,0x3e789f98,0x3fa9ab97,3
+np.float32,0x3f016e08,0x3f8536d8,3
+np.float32,0x3e8b618c,0x3fa5c571,3
+np.float32,0x3eff97bc,0x3f8628a9,3
+np.float32,0xbf6729f0,0x402ca32f,3
+np.float32,0xbebec146,0x3ff9eddc,3
+np.float32,0x3ddb2e60,0x3fbb563a,3
+np.float32,0x3caa8e40,0x3fc66595,3
+np.float32,0xbf5973f2,0x40257bfa,3
+np.float32,0xbdd82c70,0x3fd69916,3
+np.float32,0xbedf4c82,0x400169ef,3
+np.float32,0x3ef8f22c,0x3f881184,3
+np.float32,0xbf1d74d4,0x400eedc9,3
+np.float32,0x3f2e10a6,0x3f52b790,3
+np.float32,0xbf08ecc0,0x4008a628,3
+np.float32,0x3ecb7db4,0x3f94be9f,3
+np.float32,0xbf052ded,0x40078bfc,3
+np.float32,0x3f2ee78a,0x3f5191e4,3
+np.float32,0xbf56f4e1,0x40245194,3
+np.float32,0x3f600a3e,0x3f014a25,3
+np.float32,0x3f3836f8,0x3f44808b,3
+np.float32,0x3ecabfbc,0x3f94f25c,3
+np.float32,0x3c70f500,0x3fc72dec,3
+np.float32,0x3f17c444,0x3f6fabf0,3
+np.float32,0xbf4c22a5,0x401f9a09,3
+np.float32,0xbe4205dc,0x3fe1765a,3
+np.float32,0x3ea49138,0x3f9f2d36,3
+np.float32,0xbece0082,0x3ffe106b,3
+np.float32,0xbe387578,0x3fe03eef,3
+np.float32,0xbf2b6466,0x40137a30,3
+np.float32,0xbe9dadb2,0x3ff12204,3
+np.float32,0xbf56b3f2,0x402433bb,3
+np.float32,0xbdf9b4d8,0x3fd8b51f,3
+np.float32,0x3f58a596,0x3f0fd4b4,3
+np.float32,0xbedf5748,0x40016b6e,3
+np.float32,0x3f446442,0x3f32476f,3
+np.float32,0x3f5be886,0x3f099658,3
+np.float32,0x3ea1e44c,0x3f9fe1de,3
+np.float32,0xbf11e9b8,0x400b585f,3
+np.float32,0xbf231f8f,0x4010befb,3
+np.float32,0xbf4395ea,0x401c2dd0,3
+np.float32,0x3e9e7784,0x3fa0c8a6,3
+np.float32,0xbe255184,0x3fddd14c,3
+np.float32,0x3f70d25e,0x3eb13148,3
+np.float32,0x3f220cdc,0x3f62a722,3
+np.float32,0xbd027bf0,0x3fcd23e7,3
+np.float32,0x3e4ef8b8,0x3faf02d2,3
+np.float32,0xbf76fc6b,0x40380728,3
+np.float32,0xbf57e761,0x4024c1cd,3
+np.float32,0x3ed4fc20,0x3f922580,3
+np.float32,0xbf09b64a,0x4008e1db,3
+np.float32,0x3f21ca62,0x3f62fcf5,3
+np.float32,0xbe55f610,0x3fe40170,3
+np.float32,0xbc0def80,0x3fca2bbb,3
+np.float32,0xbebc8764,0x3ff9547b,3
+np.float32,0x3ec1b200,0x3f9766d1,3
+np.float32,0xbf4ee44e,0x4020c1ee,3
+np.float32,0xbea85852,0x3ff3f22a,3
+np.float32,0xbf195c0c,0x400da3d3,3
+np.float32,0xbf754b5d,0x40367ce8,3
+np.float32,0xbdcbfe50,0x3fd5d52b,3
+np.float32,0xbf1adb87,0x400e1be3,3
+np.float32,0xbf6f8491,0x4031f898,3
+np.float32,0xbf6f9ae7,0x4032086e,3
+np.float32,0xbf52b3f0,0x40226790,3
+np.float32,0xbf698452,0x402e09f4,3
+np.float32,0xbf43dc9a,0x401c493a,3
+np.float32,0xbf165f7f,0x400cb664,3
+np.float32,0x3e635468,0x3fac682f,3
+np.float32,0xbe8cf2b6,0x3fecc28a,3
+np.float32,0x7f7fffff,0x7fc00000,3
+np.float32,0xbf4c6513,0x401fb597,3
+np.float32,0xbf02b8f8,0x4006d47e,3
+np.float32,0x3ed3759c,0x3f9290c8,3
+np.float32,0xbf2a7a5f,0x40132b98,3
+np.float32,0xbae65000,0x3fc9496f,3
+np.float32,0x3f65f5ea,0x3ee8ef07,3
+np.float32,0xbe7712fc,0x3fe84106,3
+np.float32,0xbb9ff700,0x3fc9afd2,3
+np.float32,0x3d8d87a0,0x3fc03592,3
+np.float32,0xbefc921c,0x40058c23,3
+np.float32,0xbf286566,0x401279d8,3
+np.float32,0x3f53857e,0x3f192eaf,3
+np.float32,0xbee9b0f4,0x4002dd90,3
+np.float32,0x3f4041f8,0x3f38a14a,3
+np.float32,0x3f54ea96,0x3f16b02d,3
+np.float32,0x3ea50ef8,0x3f9f0c01,3
+np.float32,0xbeaad2dc,0x3ff49a4a,3
+np.float32,0xbec428c8,0x3ffb636f,3
+np.float32,0xbda46178,0x3fd358c7,3
+np.float32,0xbefacfc4,0x40054b7f,3
+np.float32,0xbf7068f9,0x40329c85,3
+np.float32,0x3f70b850,0x3eb1caa7,3
+np.float32,0x7fa00000,0x7fe00000,3
+np.float32,0x80000000,0x3fc90fdb,3
+np.float32,0x3f68d5c8,0x3edb7cf3,3
+np.float32,0x3d9443d0,0x3fbfc98a,3
+np.float32,0xff7fffff,0x7fc00000,3
+np.float32,0xbeee7ba8,0x40038a5e,3
+np.float32,0xbf0aaaba,0x40092a73,3
+np.float32,0x3f36a4e8,0x3f46c0ee,3
+np.float32,0x3ed268e4,0x3f92da82,3
+np.float32,0xbee6002c,0x4002591b,3
+np.float32,0xbe8f2752,0x3fed5576,3
+np.float32,0x3f525912,0x3f1b40e0,3
+np.float32,0xbe8e151e,0x3fed0e16,3
+np.float32,0x1,0x3fc90fdb,3
+np.float32,0x3ee23b84,0x3f8e7ae1,3
+np.float32,0xbf5961ca,0x40257361,3
+np.float32,0x3f6bbca0,0x3ecd14cd,3
+np.float32,0x3e27b230,0x3fb4014d,3
+np.float32,0xbf183bb8,0x400d49fc,3
+np.float32,0x3f57759c,0x3f120b68,3
+np.float32,0xbd6994c0,0x3fd05d84,3
+np.float32,0xbf1dd684,0x400f0cc8,3
+np.float32,0xbececc1c,0x3ffe480a,3
+np.float32,0xbf48855f,0x401e206d,3
+np.float32,0x3f28c922,0x3f59d382,3
+np.float32,0xbf65c094,0x402bd3b0,3
+np.float32,0x3f657d42,0x3eeb11dd,3
+np.float32,0xbed32d4e,0x3fff7b15,3
+np.float32,0xbf31af02,0x4015a0b1,3
+np.float32,0x3d89eb00,0x3fc06f7f,3
+np.float32,0x3dac2830,0x3fbe4a17,3
+np.float32,0x3f7f7cb6,0x3d81a7df,3
+np.float32,0xbedbb570,0x4000ea82,3
+np.float32,0x3db37830,0x3fbdd4a8,3
+np.float32,0xbf376f48,0x4017a7fd,3
+np.float32,0x3f319f12,0x3f4dd2c9,3
+np.float32,0x7fc00000,0x7fc00000,3
+np.float32,0x3f1b4f70,0x3f6b3e31,3
+np.float32,0x3e33c880,0x3fb278d1,3
+np.float32,0x3f2796e0,0x3f5b69bd,3
+np.float32,0x3f4915d6,0x3f2ad4d0,3
+np.float32,0x3e4db120,0x3faf2ca0,3
+np.float32,0x3ef03dd4,0x3f8a8ba9,3
+np.float32,0x3e96ca88,0x3fa2cbf7,3
+np.float32,0xbeb136ce,0x3ff64d2b,3
+np.float32,0xbf2f3938,0x4014c75e,3
+np.float32,0x3f769dde,0x3e8b0d76,3
+np.float32,0x3f67cec8,0x3ee06148,3
+np.float32,0x3f0a1ade,0x3f80204e,3
+np.float32,0x3e4b9718,0x3faf7144,3
+np.float32,0x3cccb480,0x3fc5dcf3,3
+np.float32,0x3caeb740,0x3fc654f0,3
+np.float32,0x3f684e0e,0x3ede0678,3
+np.float32,0x3f0ba93c,0x3f7e6663,3
+np.float32,0xbf12bbc4,0x400b985e,3
+np.float32,0xbf2a8e1a,0x40133235,3
+np.float32,0x3f42029c,0x3f35f5c5,3
+np.float32,0x3eed1728,0x3f8b6f9c,3
+np.float32,0xbe5779ac,0x3fe432fd,3
+np.float32,0x3f6ed8b8,0x3ebc7e4b,3
+np.float32,0x3eea25b0,0x3f8c43c7,3
+np.float32,0x3f1988a4,0x3f6d786b,3
+np.float32,0xbe751674,0x3fe7ff8a,3
+np.float32,0xbe9f7418,0x3ff1997d,3
+np.float32,0x3dca11d0,0x3fbc6979,3
+np.float32,0x3f795226,0x3e6a6cab,3
+np.float32,0xbea780e0,0x3ff3b926,3
+np.float32,0xbed92770,0x4000901e,3
+np.float32,0xbf3e9f8c,0x401a49f8,3
+np.float32,0x3f0f7054,0x3f79ddb2,3
+np.float32,0x3a99d400,0x3fc8e966,3
+np.float32,0xbef082b0,0x4003d3c6,3
+np.float32,0xbf0d0790,0x4009defb,3
+np.float32,0xbf1649da,0x400cafb4,3
+np.float32,0xbea5aca8,0x3ff33d5c,3
+np.float32,0xbf4e1843,0x40206ba1,3
+np.float32,0xbe3d7d5c,0x3fe0e2ad,3
+np.float32,0xbf0e802d,0x400a500e,3
+np.float32,0xbf0de8f0,0x400a2295,3
+np.float32,0xbf3016ba,0x4015137e,3
+np.float32,0x3f36b1ea,0x3f46ae5d,3
+np.float32,0xbd27f170,0x3fce4fc7,3
+np.float32,0x3e96ec54,0x3fa2c31f,3
+np.float32,0x3eb4dfdc,0x3f9ad87d,3
+np.float32,0x3f5cac6c,0x3f0815cc,3
+np.float32,0xbf0489aa,0x40075bf1,3
+np.float32,0x3df010c0,0x3fba05f5,3
+np.float32,0xbf229f4a,0x4010956a,3
+np.float32,0x3f75e474,0x3e905a99,3
+np.float32,0xbcece6a0,0x3fccc397,3
+np.float32,0xbdb41528,0x3fd454e7,3
+np.float32,0x3ec8b2f8,0x3f958118,3
+np.float32,0x3f5eaa70,0x3f041a1d,3
+np.float32,0xbf32e1cc,0x40160b91,3
+np.float32,0xbe8e6026,0x3fed219c,3
+np.float32,0x3e6b3160,0x3fab65e3,3
+np.float32,0x3e6d7460,0x3fab1b81,3
+np.float32,0xbf13fbde,0x400bfa3b,3
+np.float32,0xbe8235ec,0x3fe9f9e3,3
+np.float32,0x3d71c4a0,0x3fc18096,3
+np.float32,0x3eb769d0,0x3f9a2aa0,3
+np.float32,0xbf68cb3b,0x402d99e4,3
+np.float32,0xbd917610,0x3fd22932,3
+np.float32,0x3d3cba60,0x3fc3297f,3
+np.float32,0xbf383cbe,0x4017f1cc,3
+np.float32,0xbeee96d0,0x40038e34,3
+np.float32,0x3ec89cb4,0x3f958725,3
+np.float32,0x3ebf92d8,0x3f97f95f,3
+np.float32,0x3f30f3da,0x3f4ec021,3
+np.float32,0xbd26b560,0x3fce45e4,3
+np.float32,0xbec0eb12,0x3ffa8330,3
+np.float32,0x3f6d592a,0x3ec4a6c1,3
+np.float32,0x3ea6d39c,0x3f9e9463,3
+np.float32,0x3e884184,0x3fa6951e,3
+np.float32,0x3ea566c4,0x3f9ef4d1,3
+np.float32,0x3f0c8f4c,0x3f7d5380,3
+np.float32,0x3f28e1ba,0x3f59b2cb,3
+np.float32,0x3f798538,0x3e66e1c3,3
+np.float32,0xbe2889b8,0x3fde39b8,3
+np.float32,0x3f3da05e,0x3f3c949c,3
+np.float32,0x3f24d700,0x3f5f073e,3
+np.float32,0xbe5b5768,0x3fe4b198,3
+np.float32,0xbed3b03a,0x3fff9f05,3
+np.float32,0x3e8a1c4c,0x3fa619eb,3
+np.float32,0xbf075d24,0x40083030,3
+np.float32,0x3f765648,0x3e8d1f52,3
+np.float32,0xbf70fc5e,0x403308bb,3
+np.float32,0x3f557ae8,0x3f15ab76,3
+np.float32,0x3f02f7ea,0x3f84521c,3
+np.float32,0x3f7ebbde,0x3dcbc5c5,3
+np.float32,0xbefbdfc6,0x40057285,3
+np.float32,0x3ec687ac,0x3f9617d9,3
+np.float32,0x3e4831c8,0x3fafe01b,3
+np.float32,0x3e25cde0,0x3fb43ea8,3
+np.float32,0x3e4f2ab8,0x3faefc70,3
+np.float32,0x3ea60ae4,0x3f9ec973,3
+np.float32,0xbf1ed55f,0x400f5dde,3
+np.float32,0xbf5ad4aa,0x40262479,3
+np.float32,0x3e8b3594,0x3fa5d0de,3
+np.float32,0x3f3a77aa,0x3f413c80,3
+np.float32,0xbf07512b,0x40082ca9,3
+np.float32,0x3f33d990,0x3f4ab5e5,3
+np.float32,0x3f521556,0x3f1bb78f,3
+np.float32,0xbecf6036,0x3ffe7086,3
+np.float32,0x3db91bd0,0x3fbd7a11,3
+np.float32,0x3ef63a74,0x3f88d839,3
+np.float32,0xbf2f1116,0x4014b99c,3
+np.float32,0xbf17fdc0,0x400d36b9,3
+np.float32,0xbe87df2c,0x3feb7117,3
+np.float32,0x80800000,0x3fc90fdb,3
+np.float32,0x3ee24c1c,0x3f8e7641,3
+np.float32,0x3f688dce,0x3edcd644,3
+np.float32,0xbf0f4e1c,0x400a8e1b,3
+np.float32,0x0,0x3fc90fdb,3
+np.float32,0x3f786eba,0x3e7999d4,3
+np.float32,0xbf404f80,0x401aeca8,3
+np.float32,0xbe9ffb6a,0x3ff1bd18,3
+np.float32,0x3f146bfc,0x3f73ccfd,3
+np.float32,0xbe47d630,0x3fe233ee,3
+np.float32,0xbe95847c,0x3feefe7c,3
+np.float32,0xbf135df0,0x400bc9e5,3
+np.float32,0x3ea19f3c,0x3f9ff411,3
+np.float32,0x3f235e20,0x3f60f247,3
+np.float32,0xbec789ec,0x3ffc4def,3
+np.float32,0x3f04b656,0x3f834db6,3
+np.float32,0x3dfaf440,0x3fb95679,3
+np.float32,0xbe4a7f28,0x3fe28abe,3
+np.float32,0x3ed4850c,0x3f92463b,3
+np.float32,0x3ec4ba5c,0x3f9694dd,3
+np.float32,0xbce24ca0,0x3fcc992b,3
+np.float32,0xbf5b7c6e,0x402675a0,3
+np.float32,0xbea3ce2a,0x3ff2bf04,3
+np.float32,0x3db02c60,0x3fbe0998,3
+np.float32,0x3c47b780,0x3fc78069,3
+np.float32,0x3ed33b20,0x3f92a0d5,3
+np.float32,0xbf4556d7,0x401cdcde,3
+np.float32,0xbe1b6e28,0x3fdc90ec,3
+np.float32,0xbf3289b7,0x4015ecd0,3
+np.float32,0x3df3f240,0x3fb9c76d,3
+np.float32,0x3eefa7d0,0x3f8ab61d,3
+np.float32,0xbe945838,0x3feeb006,3
+np.float32,0xbf0b1386,0x400949a3,3
+np.float32,0x3f77e546,0x3e812cc1,3
+np.float32,0x3e804ba0,0x3fa8a480,3
+np.float32,0x3f43dcea,0x3f331a06,3
+np.float32,0x3eb87450,0x3f99e33c,3
+np.float32,0x3e5f4898,0x3facecea,3
+np.float32,0x3f646640,0x3eeff10e,3
+np.float32,0x3f1aa832,0x3f6c1051,3
+np.float32,0xbebf6bfa,0x3ffa1bdc,3
+np.float32,0xbb77f300,0x3fc98bd4,3
+np.float32,0x3f3587fe,0x3f485645,3
+np.float32,0x3ef85f34,0x3f883b8c,3
+np.float32,0x3f50e584,0x3f1dc82c,3
+np.float32,0x3f1d30a8,0x3f68deb0,3
+np.float32,0x3ee75a78,0x3f8d0c86,3
+np.float32,0x3f2c023a,0x3f5581e1,3
+np.float32,0xbf074e34,0x40082bca,3
+np.float32,0xbead71f0,0x3ff54c6d,3
+np.float32,0xbf39ed88,0x40188e69,3
+np.float32,0x3f5d2fe6,0x3f07118b,3
+np.float32,0xbf1f79f8,0x400f9267,3
+np.float32,0x3e900c58,0x3fa48e99,3
+np.float32,0xbf759cb2,0x4036c47b,3
+np.float32,0x3f63329c,0x3ef5359c,3
+np.float32,0xbf5d6755,0x40276709,3
+np.float32,0x3f2ce31c,0x3f54519a,3
+np.float32,0x7f800000,0x7fc00000,3
+np.float32,0x3f1bf50e,0x3f6a6d9a,3
+np.float32,0x3f258334,0x3f5e25d8,3
+np.float32,0xbf661a3f,0x402c06ac,3
+np.float32,0x3d1654c0,0x3fc45cef,3
+np.float32,0xbef14a36,0x4003f009,3
+np.float32,0xbf356051,0x4016ec3a,3
+np.float32,0x3f6ccc42,0x3ec79193,3
+np.float32,0xbf2fe3d6,0x401501f9,3
+np.float32,0x3deedc80,0x3fba195b,3
+np.float32,0x3f2e5a28,0x3f52533e,3
+np.float32,0x3e6b68b8,0x3fab5ec8,3
+np.float32,0x3e458240,0x3fb037b7,3
+np.float32,0xbf24bab0,0x401144cb,3
+np.float32,0x3f600f4c,0x3f013fb2,3
+np.float32,0x3f021a04,0x3f84d316,3
+np.float32,0x3f741732,0x3e9cc948,3
+np.float32,0x3f0788aa,0x3f81a5b0,3
+np.float32,0x3f28802c,0x3f5a347c,3
+np.float32,0x3c9eb400,0x3fc69500,3
+np.float32,0x3e5d11e8,0x3fad357a,3
+np.float32,0x3d921250,0x3fbfecb9,3
+np.float32,0x3f354866,0x3f48b066,3
+np.float32,0xbf72cf43,0x40346d84,3
+np.float32,0x3eecdbb8,0x3f8b805f,3
+np.float32,0xbee585d0,0x400247fd,3
+np.float32,0x3e3607a8,0x3fb22fc6,3
+np.float32,0xbf0cb7d6,0x4009c71c,3
+np.float32,0xbf56b230,0x402432ec,3
+np.float32,0xbf4ced02,0x401fee29,3
+np.float32,0xbf3a325c,0x4018a776,3
+np.float32,0x3ecae8bc,0x3f94e732,3
+np.float32,0xbe48c7e8,0x3fe252bd,3
+np.float32,0xbe175d7c,0x3fdc0d5b,3
+np.float32,0x3ea78dac,0x3f9e632d,3
+np.float32,0xbe7434a8,0x3fe7e279,3
+np.float32,0x3f1f9e02,0x3f65c7b9,3
+np.float32,0xbe150f2c,0x3fdbc2c2,3
+np.float32,0x3ee13480,0x3f8ec423,3
+np.float32,0x3ecb7d54,0x3f94beb9,3
+np.float32,0x3f1cef42,0x3f693181,3
+np.float32,0xbf1ec06a,0x400f5730,3
+np.float32,0xbe112acc,0x3fdb44e8,3
+np.float32,0xbe77b024,0x3fe85545,3
+np.float32,0x3ec86fe0,0x3f959353,3
+np.float32,0x3f36b326,0x3f46ac9a,3
+np.float32,0x3e581a70,0x3fadd829,3
+np.float32,0xbf032c0c,0x4006f5f9,3
+np.float32,0xbf43b1fd,0x401c38b1,3
+np.float32,0x3f3701b4,0x3f463c5c,3
+np.float32,0x3f1a995a,0x3f6c22f1,3
+np.float32,0xbf05de0b,0x4007bf97,3
+np.float32,0x3d4bd960,0x3fc2b063,3
+np.float32,0x3f0e1618,0x3f7b7ed0,3
+np.float32,0x3edfd420,0x3f8f2628,3
+np.float32,0xbf6662fe,0x402c3047,3
+np.float32,0x3ec0690c,0x3f97bf9b,3
+np.float32,0xbeaf4146,0x3ff5c7a0,3
+np.float32,0x3f5e7764,0x3f04816d,3
+np.float32,0xbedd192c,0x40011bc5,3
+np.float32,0x3eb76350,0x3f9a2c5e,3
+np.float32,0xbed8108c,0x400069a5,3
+np.float32,0xbe59f31c,0x3fe48401,3
+np.float32,0xbea3e1e6,0x3ff2c439,3
+np.float32,0x3e26d1f8,0x3fb41db5,3
+np.float32,0x3f3a0a7c,0x3f41dba5,3
+np.float32,0x3ebae068,0x3f993ce4,3
+np.float32,0x3f2d8e30,0x3f536942,3
+np.float32,0xbe838bbe,0x3fea5247,3
+np.float32,0x3ebe4420,0x3f98538f,3
+np.float32,0xbcc59b80,0x3fcc265c,3
+np.float32,0x3eebb5c8,0x3f8bd334,3
+np.float32,0xbafc3400,0x3fc94ee8,3
+np.float32,0xbf63ddc1,0x402ac683,3
+np.float32,0xbeabdf80,0x3ff4e18f,3
+np.float32,0x3ea863f0,0x3f9e2a78,3
+np.float32,0x3f45b292,0x3f303bc1,3
+np.float32,0xbe68aa60,0x3fe666bf,3
+np.float32,0x3eb9de18,0x3f998239,3
+np.float32,0xbf719d85,0x4033815e,3
+np.float32,0x3edef9a8,0x3f8f62db,3
+np.float32,0xbd7781c0,0x3fd0cd1e,3
+np.float32,0x3f0b3b90,0x3f7ee92a,3
+np.float32,0xbe3eb3b4,0x3fe10a27,3
+np.float32,0xbf31a4c4,0x40159d23,3
+np.float32,0x3e929434,0x3fa3e5b0,3
+np.float32,0xbeb1a90e,0x3ff66b9e,3
+np.float32,0xbeba9b5e,0x3ff8d048,3
+np.float32,0xbf272a84,0x4012119e,3
+np.float32,0x3f1ebbd0,0x3f66e889,3
+np.float32,0x3ed3cdc8,0x3f927893,3
+np.float32,0xbf50dfce,0x40219b58,3
+np.float32,0x3f0c02de,0x3f7dfb62,3
+np.float32,0xbf694de3,0x402de8d2,3
+np.float32,0xbeaeb13e,0x3ff5a14f,3
+np.float32,0xbf61aa7a,0x40299702,3
+np.float32,0xbf13d159,0x400bed35,3
+np.float32,0xbeecd034,0x40034e0b,3
+np.float32,0xbe50c2e8,0x3fe35761,3
+np.float32,0x3f714406,0x3eae8e57,3
+np.float32,0xbf1ca486,0x400eabd8,3
+np.float32,0x3f5858cc,0x3f106497,3
+np.float32,0x3f670288,0x3ee41c84,3
+np.float32,0xbf20bd2c,0x400ff9f5,3
+np.float32,0xbe29afd8,0x3fde5eff,3
+np.float32,0xbf635e6a,0x402a80f3,3
+np.float32,0x3e82b7b0,0x3fa80446,3
+np.float32,0x3e982e7c,0x3fa26ece,3
+np.float32,0x3d9f0e00,0x3fbf1c6a,3
+np.float32,0x3e8299b4,0x3fa80c07,3
+np.float32,0xbf0529c1,0x40078ac3,3
+np.float32,0xbf403b8a,0x401ae519,3
+np.float32,0xbe57e09c,0x3fe44027,3
+np.float32,0x3ea1c8f4,0x3f9fe913,3
+np.float32,0xbe216a94,0x3fdd52d0,3
+np.float32,0x3f59c442,0x3f0db709,3
+np.float32,0xbd636260,0x3fd02bdd,3
+np.float32,0xbdbbc788,0x3fd4d08d,3
+np.float32,0x3dd19560,0x3fbbf0a3,3
+np.float32,0x3f060ad4,0x3f828641,3
+np.float32,0x3b102e00,0x3fc8c7c4,3
+np.float32,0x3f42b3b8,0x3f34e5a6,3
+np.float32,0x3f0255ac,0x3f84b071,3
+np.float32,0xbf014898,0x40066996,3
+np.float32,0x3e004dc0,0x3fb8fb51,3
+np.float32,0xbf594ff8,0x40256af2,3
+np.float32,0x3efafddc,0x3f877b80,3
+np.float32,0xbf5f0780,0x40283899,3
+np.float32,0x3ee95e54,0x3f8c7bcc,3
+np.float32,0x3eba2f0c,0x3f996c80,3
+np.float32,0x3f37721c,0x3f459b68,3
+np.float32,0x3e2be780,0x3fb378bf,3
+np.float32,0x3e550270,0x3fae3d69,3
+np.float32,0x3e0f9500,0x3fb70e0a,3
+np.float32,0xbf51974a,0x4021eaf4,3
+np.float32,0x3f393832,0x3f430d05,3
+np.float32,0x3f3df16a,0x3f3c1bd8,3
+np.float32,0xbd662340,0x3fd041ed,3
+np.float32,0x3f7e8418,0x3ddc9fce,3
+np.float32,0xbf392734,0x40184672,3
+np.float32,0x3ee3b278,0x3f8e124e,3
+np.float32,0x3eed4808,0x3f8b61d2,3
+np.float32,0xbf6fccbd,0x40322beb,3
+np.float32,0x3e3ecdd0,0x3fb1123b,3
+np.float32,0x3f4419e0,0x3f32bb45,3
+np.float32,0x3f595e00,0x3f0e7914,3
+np.float32,0xbe8c1486,0x3fec88c6,3
+np.float32,0xbf800000,0x40490fdb,3
+np.float32,0xbdaf5020,0x3fd4084d,3
+np.float32,0xbf407660,0x401afb63,3
+np.float32,0x3f0c3aa8,0x3f7db8b8,3
+np.float32,0xbcdb5980,0x3fcc7d5b,3
+np.float32,0x3f4738d4,0x3f2dd1ed,3
+np.float32,0x3f4d7064,0x3f23ab14,3
+np.float32,0xbeb1d576,0x3ff67774,3
+np.float32,0xbf507166,0x40216bb3,3
+np.float32,0x3e86484c,0x3fa71813,3
+np.float32,0x3f09123e,0x3f80bd35,3
+np.float32,0xbe9abe0e,0x3ff05cb2,3
+np.float32,0x3f3019dc,0x3f4fed21,3
+np.float32,0xbe99e00e,0x3ff0227d,3
+np.float32,0xbf155ec5,0x400c6739,3
+np.float32,0x3f5857ba,0x3f106698,3
+np.float32,0x3edf619c,0x3f8f45fb,3
+np.float32,0xbf5ab76a,0x40261664,3
+np.float32,0x3e54b5a8,0x3fae4738,3
+np.float32,0xbee92772,0x4002ca40,3
+np.float32,0x3f2fd610,0x3f504a7a,3
+np.float32,0xbf38521c,0x4017f97e,3
+np.float32,0xff800000,0x7fc00000,3
+np.float32,0x3e2da348,0x3fb34077,3
+np.float32,0x3f2f85fa,0x3f50b894,3
+np.float32,0x3e88f9c8,0x3fa66551,3
+np.float32,0xbf61e570,0x4029b648,3
+np.float32,0xbeab362c,0x3ff4b4a1,3
+np.float32,0x3ec6c310,0x3f9607bd,3
+np.float32,0x3f0d7bda,0x3f7c3810,3
+np.float32,0xbeba5d36,0x3ff8bf99,3
+np.float32,0x3f4b0554,0x3f27adda,3
+np.float32,0x3f60f5dc,0x3efebfb3,3
+np.float32,0x3f36ce2c,0x3f468603,3
+np.float32,0xbe70afac,0x3fe76e8e,3
+np.float32,0x3f673350,0x3ee339b5,3
+np.float32,0xbe124cf0,0x3fdb698c,3
+np.float32,0xbf1243dc,0x400b73d0,3
+np.float32,0x3f3c8850,0x3f3e3407,3
+np.float32,0x3ea02f24,0x3fa05500,3
+np.float32,0xbeffed34,0x400607db,3
+np.float32,0x3f5c75c2,0x3f08817c,3
+np.float32,0x3f4b2fbe,0x3f27682d,3
+np.float32,0x3ee47c34,0x3f8dd9f9,3
+np.float32,0x3f50d48c,0x3f1de584,3
+np.float32,0x3f12dc5e,0x3f75b628,3
+np.float32,0xbefe7e4a,0x4005d2f4,3
+np.float32,0xbec2e846,0x3ffb0cbc,3
+np.float32,0xbedc3036,0x4000fb80,3
+np.float32,0xbf48aedc,0x401e311f,3
+np.float32,0x3f6e032e,0x3ec11363,3
+np.float32,0xbf60de15,0x40292b72,3
+np.float32,0x3f06585e,0x3f8258ba,3
+np.float32,0x3ef49b98,0x3f894e66,3
+np.float32,0x3cc5fe00,0x3fc5f7cf,3
+np.float32,0xbf7525c5,0x40365c2c,3
+np.float32,0x3f64f9f8,0x3eed5fb2,3
+np.float32,0x3e8849c0,0x3fa692fb,3
+np.float32,0x3e50c878,0x3faec79e,3
+np.float32,0x3ed61530,0x3f91d831,3
+np.float32,0xbf54872e,0x40233724,3
+np.float32,0xbf52ee7f,0x4022815e,3
+np.float32,0xbe708c24,0x3fe769fc,3
+np.float32,0xbf26fc54,0x40120260,3
+np.float32,0x3f226e8a,0x3f6228db,3
+np.float32,0xbef30406,0x40042eb8,3
+np.float32,0x3f5d996c,0x3f063f5f,3
+np.float32,0xbf425f9c,0x401bb618,3
+np.float32,0x3e4bb260,0x3faf6dc9,3
+np.float32,0xbe52d5a4,0x3fe39b29,3
+np.float32,0xbe169cf0,0x3fdbf505,3
+np.float32,0xbedfc422,0x40017a8e,3
+np.float32,0x3d8ffef0,0x3fc00e05,3
+np.float32,0xbf12bdab,0x400b98f2,3
+np.float32,0x3f295d0a,0x3f590e88,3
+np.float32,0x3f49d8e4,0x3f2998aa,3
+np.float32,0xbef914f4,0x40050c12,3
+np.float32,0xbf4ea2b5,0x4020a61e,3
+np.float32,0xbf3a89e5,0x4018c762,3
+np.float32,0x3e8707b4,0x3fa6e67a,3
+np.float32,0x3ac55400,0x3fc8de86,3
+np.float32,0x800000,0x3fc90fdb,3
+np.float32,0xbeb9762c,0x3ff8819b,3
+np.float32,0xbebbe23c,0x3ff92815,3
+np.float32,0xbf598c88,0x402587a1,3
+np.float32,0x3e95d864,0x3fa30b4a,3
+np.float32,0x3f7f6f40,0x3d882486,3
+np.float32,0xbf53658c,0x4022b604,3
+np.float32,0xbf2a35f2,0x401314ad,3
+np.float32,0x3eb14380,0x3f9bcf28,3
+np.float32,0x3f0e0c64,0x3f7b8a7a,3
+np.float32,0x3d349920,0x3fc36a9a,3
+np.float32,0xbec2092c,0x3ffad071,3
+np.float32,0xbe1d08e8,0x3fdcc4e0,3
+np.float32,0xbf008968,0x40063243,3
+np.float32,0xbefad582,0x40054c51,3
+np.float32,0xbe52d010,0x3fe39a72,3
+np.float32,0x3f4afdac,0x3f27ba6b,3
+np.float32,0x3f6c483c,0x3eca4408,3
+np.float32,0xbef3cb68,0x40044b0c,3
+np.float32,0x3e94687c,0x3fa36b6f,3
+np.float32,0xbf64ae5c,0x402b39bb,3
+np.float32,0xbf0022b4,0x40061497,3
+np.float32,0x80000001,0x3fc90fdb,3
+np.float32,0x3f25bcd0,0x3f5dda4b,3
+np.float32,0x3ed91b40,0x3f9102d7,3
+np.float32,0x3f800000,0x0,3
+np.float32,0xbebc6aca,0x3ff94cca,3
+np.float32,0x3f239e9a,0x3f609e7d,3
+np.float32,0xbf7312be,0x4034a305,3
+np.float32,0x3efd16d0,0x3f86e148,3
+np.float32,0x3f52753a,0x3f1b0f72,3
+np.float32,0xbde58960,0x3fd7702c,3
+np.float32,0x3ef88580,0x3f883099,3
+np.float32,0x3eebaefc,0x3f8bd51e,3
+np.float32,0x3e877d2c,0x3fa6c807,3
+np.float32,0x3f1a0324,0x3f6cdf32,3
+np.float32,0xbedfe20a,0x40017eb6,3
+np.float32,0x3f205a3c,0x3f64d69d,3
+np.float32,0xbeed5b7c,0x400361b0,3
+np.float32,0xbf69ba10,0x402e2ad0,3
+np.float32,0x3c4fe200,0x3fc77014,3
+np.float32,0x3f043310,0x3f839a69,3
+np.float32,0xbeaf359a,0x3ff5c485,3
+np.float32,0x3db3f110,0x3fbdcd12,3
+np.float32,0x3e24af88,0x3fb462ed,3
+np.float32,0xbf34e858,0x4016c1c8,3
+np.float32,0x3f3334f2,0x3f4b9cd0,3
+np.float32,0xbf145882,0x400c16a2,3
+np.float32,0xbf541c38,0x40230748,3
+np.float32,0x3eba7e10,0x3f99574b,3
+np.float32,0xbe34c6e0,0x3fdfc731,3
+np.float32,0xbe957abe,0x3feefbf0,3
+np.float32,0xbf595a59,0x40256fdb,3
+np.float32,0xbdedc7b8,0x3fd7f4f0,3
+np.float32,0xbf627c02,0x402a06a9,3
+np.float32,0x3f339b78,0x3f4b0d18,3
+np.float32,0xbf2df6d2,0x40145929,3
+np.float32,0x3f617726,0x3efc9fd8,3
+np.float32,0xbee3a8fc,0x40020561,3
+np.float32,0x3efe9f68,0x3f867043,3
+np.float32,0xbf2c3e76,0x4013c3ba,3
+np.float32,0xbf218f28,0x40103d84,3
+np.float32,0xbf1ea847,0x400f4f7f,3
+np.float32,0x3ded9160,0x3fba2e31,3
+np.float32,0x3bce1b00,0x3fc841bf,3
+np.float32,0xbe90566e,0x3feda46a,3
+np.float32,0xbf5ea2ba,0x4028056b,3
+np.float32,0x3f538e62,0x3f191ee6,3
+np.float32,0xbf59e054,0x4025af74,3
+np.float32,0xbe8c98ba,0x3fecab24,3
+np.float32,0x3ee7bdb0,0x3f8cf0b7,3
+np.float32,0xbf2eb828,0x40149b2b,3
+np.float32,0xbe5eb904,0x3fe52068,3
+np.float32,0xbf16b422,0x400cd08d,3
+np.float32,0x3f1ab9b4,0x3f6bfa58,3
+np.float32,0x3dc23040,0x3fbce82a,3
+np.float32,0xbf29d9e7,0x4012f5e5,3
+np.float32,0xbf38f30a,0x40183393,3
+np.float32,0x3e88e798,0x3fa66a09,3
+np.float32,0x3f1d07e6,0x3f69124f,3
+np.float32,0xbe1d3d34,0x3fdccb7e,3
+np.float32,0xbf1715be,0x400ceec2,3
+np.float32,0x3f7a0eac,0x3e5d11f7,3
+np.float32,0xbe764924,0x3fe82707,3
+np.float32,0xbf01a1f8,0x4006837c,3
+np.float32,0x3f2be730,0x3f55a661,3
+np.float32,0xbf7bb070,0x403d4ce5,3
+np.float32,0xbd602110,0x3fd011c9,3
+np.float32,0x3f5d080c,0x3f07609d,3
+np.float32,0xbda20400,0x3fd332d1,3
+np.float32,0x3f1c62da,0x3f69e308,3
+np.float32,0xbf2c6916,0x4013d223,3
+np.float32,0xbf44f8fd,0x401cb816,3
+np.float32,0x3f4da392,0x3f235539,3
+np.float32,0x3e9e8aa0,0x3fa0c3a0,3
+np.float32,0x3e9633c4,0x3fa2f366,3
+np.float32,0xbf0422ab,0x40073ddd,3
+np.float32,0x3f518386,0x3f1cb603,3
+np.float32,0x3f24307a,0x3f5fe096,3
+np.float32,0xbdfb4220,0x3fd8ce24,3
+np.float32,0x3f179d28,0x3f6fdc7d,3
+np.float32,0xbecc2df0,0x3ffd911e,3
+np.float32,0x3f3dff0c,0x3f3c0782,3
+np.float32,0xbf58c4d8,0x4025295b,3
+np.float32,0xbdcf8438,0x3fd60dd3,3
+np.float32,0xbeeaf1b2,0x40030aa7,3
+np.float32,0xbf298a28,0x4012db45,3
+np.float32,0x3f6c4dec,0x3eca2678,3
+np.float32,0x3f4d1ac8,0x3f243a59,3
+np.float32,0x3f62cdfa,0x3ef6e8f8,3
+np.float32,0xbee8acce,0x4002b909,3
+np.float32,0xbd5f2af0,0x3fd00a15,3
+np.float32,0x3f5fde8e,0x3f01a453,3
+np.float32,0x3e95233c,0x3fa33aa4,3
+np.float32,0x3ecd2a60,0x3f9449be,3
+np.float32,0x3f10aa86,0x3f78619d,3
+np.float32,0x3f3888e8,0x3f440a70,3
+np.float32,0x3eeb5bfc,0x3f8bec7d,3
+np.float32,0xbe12d654,0x3fdb7ae6,3
+np.float32,0x3eca3110,0x3f951931,3
+np.float32,0xbe2d1b7c,0x3fdece05,3
+np.float32,0xbf29e9db,0x4012fb3a,3
+np.float32,0xbf0c50b8,0x4009a845,3
+np.float32,0xbed9f0e4,0x4000abef,3
+np.float64,0x3fd078ec5ba0f1d8,0x3ff4f7c00595a4d3,1
+np.float64,0xbfdbc39743b7872e,0x400027f85bce43b2,1
+np.float64,0xbfacd2707c39a4e0,0x3ffa08ae1075d766,1
+np.float64,0xbfc956890f32ad14,0x3ffc52308e7285fd,1
+np.float64,0xbf939c2298273840,0x3ff9706d18e6ea6b,1
+np.float64,0xbfe0d7048961ae09,0x4000fff4406bd395,1
+np.float64,0xbfe9d19b86f3a337,0x4004139bc683a69f,1
+np.float64,0x3fd35c7f90a6b900,0x3ff437220e9123f8,1
+np.float64,0x3fdddca171bbb944,0x3ff15da61e61ec08,1
+np.float64,0x3feb300de9f6601c,0x3fe1c6fadb68cdca,1
+np.float64,0xbfef1815327e302a,0x400739808fc6f964,1
+np.float64,0xbfe332d78e6665af,0x4001b6c4ef922f7c,1
+np.float64,0xbfedbf4dfb7b7e9c,0x40061cefed62a58b,1
+np.float64,0xbfd8dcc7e3b1b990,0x3fff84307713c2c3,1
+np.float64,0xbfedaf161c7b5e2c,0x400612027c1b2b25,1
+np.float64,0xbfed9bde897b37bd,0x4006053f05bd7d26,1
+np.float64,0xbfe081ebc26103d8,0x4000e70755eb66e0,1
+np.float64,0xbfe0366f9c606cdf,0x4000d11212f29afd,1
+np.float64,0xbfc7c115212f822c,0x3ffc1e8c9d58f7db,1
+np.float64,0x3fd8dd9a78b1bb34,0x3ff2bf8d0f4c9376,1
+np.float64,0xbfe54eff466a9dfe,0x4002655950b611f4,1
+np.float64,0xbfe4aad987e955b3,0x40022efb19882518,1
+np.float64,0x3f70231ca0204600,0x3ff911d834e7abf4,1
+np.float64,0x3fede01d047bc03a,0x3fd773cecbd8561b,1
+np.float64,0xbfd6a00d48ad401a,0x3ffee9fd7051633f,1
+np.float64,0x3fd44f3d50a89e7c,0x3ff3f74dd0fc9c91,1
+np.float64,0x3fe540f0d0ea81e2,0x3feb055a7c7d43d6,1
+np.float64,0xbf3ba2e200374800,0x3ff923b582650c6c,1
+np.float64,0x3fe93b2d3f72765a,0x3fe532fa15331072,1
+np.float64,0x3fee8ce5a17d19cc,0x3fd35666eefbe336,1
+np.float64,0x3fe55d5f8feabac0,0x3feadf3dcfe251d4,1
+np.float64,0xbfd1d2ede8a3a5dc,0x3ffda600041ac884,1
+np.float64,0xbfee41186e7c8231,0x40067a625cc6f64d,1
+np.float64,0x3fe521a8b9ea4352,0x3feb2f1a6c8084e5,1
+np.float64,0x3fc65378ef2ca6f0,0x3ff653dfe81ee9f2,1
+np.float64,0x3fdaba0fbcb57420,0x3ff23d630995c6ba,1
+np.float64,0xbfe6b7441d6d6e88,0x4002e182539a2994,1
+np.float64,0x3fda00b6dcb4016c,0x3ff2703d516f28e7,1
+np.float64,0xbfe8699f01f0d33e,0x400382326920ea9e,1
+np.float64,0xbfef5889367eb112,0x4007832af5983793,1
+np.float64,0x3fefb57c8aff6afa,0x3fc14700ab38dcef,1
+np.float64,0xbfda0dfdaab41bfc,0x3fffd75b6fd497f6,1
+np.float64,0xbfb059c36620b388,0x3ffa27c528b97a42,1
+np.float64,0xbfdd450ab1ba8a16,0x40005dcac6ab50fd,1
+np.float64,0xbfe54d6156ea9ac2,0x400264ce9f3f0fb9,1
+np.float64,0xbfe076e94760edd2,0x4000e3d1374884da,1
+np.float64,0xbfc063286720c650,0x3ffb2fd1d6bff0ef,1
+np.float64,0xbfe24680f2e48d02,0x40016ddfbb5bcc0e,1
+np.float64,0xbfdc9351d2b926a4,0x400044e3756fb765,1
+np.float64,0x3fefb173d8ff62e8,0x3fc1bd5626f80850,1
+np.float64,0x3fe77c117a6ef822,0x3fe7e57089bad2ec,1
+np.float64,0xbfddbcebf7bb79d8,0x40006eadb60406b3,1
+np.float64,0xbfecf6625ff9ecc5,0x40059e6c6961a6db,1
+np.float64,0x3fdc8950b8b912a0,0x3ff1bcfb2e27795b,1
+np.float64,0xbfeb2fa517765f4a,0x4004b00aee3e6888,1
+np.float64,0x3fd0efc88da1df90,0x3ff4d8f7cbd8248a,1
+np.float64,0xbfe6641a2becc834,0x4002c43362c1bd0f,1
+np.float64,0xbfe28aec0fe515d8,0x400182c91d4df039,1
+np.float64,0xbfd5ede8d0abdbd2,0x3ffeba7baef05ae8,1
+np.float64,0xbfbd99702a3b32e0,0x3ffafca21c1053f1,1
+np.float64,0x3f96f043f82de080,0x3ff8c6384d5eb610,1
+np.float64,0xbfe5badbc9eb75b8,0x400289c8cd5873d1,1
+np.float64,0x3fe5c6bf95eb8d80,0x3fea5093e9a3e43e,1
+np.float64,0x3fb1955486232ab0,0x3ff8086d4c3e71d5,1
+np.float64,0xbfea145f397428be,0x4004302237a35871,1
+np.float64,0xbfdabe685db57cd0,0x400003e2e29725fb,1
+np.float64,0xbfefc79758ff8f2f,0x400831814e23bfc8,1
+np.float64,0x3fd7edb66cafdb6c,0x3ff3006c5123bfaf,1
+np.float64,0xbfeaf7644bf5eec8,0x400495a7963ce4ed,1
+np.float64,0x3fdf838d78bf071c,0x3ff0e527eed73800,1
+np.float64,0xbfd1a0165ba3402c,0x3ffd98c5ab76d375,1
+np.float64,0x3fd75b67a9aeb6d0,0x3ff327c8d80b17cf,1
+np.float64,0x3fc2aa9647255530,0x3ff6ca854b157df1,1
+np.float64,0xbfe0957fd4612b00,0x4000ecbf3932becd,1
+np.float64,0x3fda1792c0b42f24,0x3ff269fbb2360487,1
+np.float64,0x3fd480706ca900e0,0x3ff3ea53a6aa3ae8,1
+np.float64,0xbfd0780ed9a0f01e,0x3ffd4bfd544c7d47,1
+np.float64,0x3feeec0cd77dd81a,0x3fd0a8a241fdb441,1
+np.float64,0x3fcfa933e93f5268,0x3ff5223478621a6b,1
+np.float64,0x3fdad2481fb5a490,0x3ff236b86c6b2b49,1
+np.float64,0x3fe03b129de07626,0x3ff09f21fb868451,1
+np.float64,0xbfc01212cd202424,0x3ffb259a07159ae9,1
+np.float64,0x3febdb912df7b722,0x3fe0768e20dac8c9,1
+np.float64,0xbfbf2148763e4290,0x3ffb154c361ce5bf,1
+np.float64,0xbfb1a7eb1e234fd8,0x3ffa3cb37ac4a176,1
+np.float64,0xbfe26ad1ec64d5a4,0x400178f480ecce8d,1
+np.float64,0x3fe6d1cd1b6da39a,0x3fe8dc20ec4dad3b,1
+np.float64,0xbfede0e53dfbc1ca,0x4006340d3bdd7c97,1
+np.float64,0xbfe8fd1bd9f1fa38,0x4003bc3477f93f40,1
+np.float64,0xbfe329d0f26653a2,0x4001b3f345af5648,1
+np.float64,0xbfe4bb20eee97642,0x40023451404d6d08,1
+np.float64,0x3fb574832e2ae900,0x3ff7ca4bed0c7110,1
+np.float64,0xbfdf3c098fbe7814,0x4000a525bb72d659,1
+np.float64,0x3fa453e6d428a7c0,0x3ff87f512bb9b0c6,1
+np.float64,0x3faaec888435d920,0x3ff84a7d9e4def63,1
+np.float64,0xbfcdc240df3b8480,0x3ffce30ece754e7f,1
+np.float64,0xbf8c3220f0386440,0x3ff95a600ae6e157,1
+np.float64,0x3fe806076c700c0e,0x3fe71784a96c76eb,1
+np.float64,0x3fedf9b0e17bf362,0x3fd6e35fc0a7b6c3,1
+np.float64,0xbfe1b48422636908,0x400141bd8ed251bc,1
+np.float64,0xbfe82e2817705c50,0x40036b5a5556d021,1
+np.float64,0xbfc8ef8ff931df20,0x3ffc450ffae7ce58,1
+np.float64,0xbfe919fa94f233f5,0x4003c7cce4697fe8,1
+np.float64,0xbfc3ace4a72759c8,0x3ffb9a197bb22651,1
+np.float64,0x3fe479f71ee8f3ee,0x3fec0bd2f59097aa,1
+np.float64,0xbfeeb54a967d6a95,0x4006da12c83649c5,1
+np.float64,0x3fe5e74ea8ebce9e,0x3fea2407cef0f08c,1
+np.float64,0x3fb382baf2270570,0x3ff7e98213b921ba,1
+np.float64,0xbfdd86fd3cbb0dfa,0x40006712952ddbcf,1
+np.float64,0xbfd250eb52a4a1d6,0x3ffdc6d56253b1cd,1
+np.float64,0x3fea30c4ed74618a,0x3fe3962deba4f30e,1
+np.float64,0x3fc895963d312b30,0x3ff60a5d52fcbccc,1
+np.float64,0x3fe9cc4f6273989e,0x3fe442740942c80f,1
+np.float64,0xbfe8769f5cf0ed3f,0x4003873b4cb5bfce,1
+np.float64,0xbfe382f3726705e7,0x4001cfeb3204d110,1
+np.float64,0x3fbfe9a9163fd350,0x3ff7220bd2b97c8f,1
+np.float64,0xbfca6162bb34c2c4,0x3ffc743f939358f1,1
+np.float64,0x3fe127a014e24f40,0x3ff0147c4bafbc39,1
+np.float64,0x3fee9cdd2a7d39ba,0x3fd2e9ef45ab122f,1
+np.float64,0x3fa9ffb97c33ff80,0x3ff851e69fa3542c,1
+np.float64,0x3fd378f393a6f1e8,0x3ff42faafa77de56,1
+np.float64,0xbfe4df1e1669be3c,0x400240284df1c321,1
+np.float64,0x3fed0ed79bfa1db0,0x3fdba89060aa96fb,1
+np.float64,0x3fdef2ee52bde5dc,0x3ff10e942244f4f1,1
+np.float64,0xbfdab38f3ab5671e,0x40000264d8d5b49b,1
+np.float64,0x3fbe95a96e3d2b50,0x3ff73774cb59ce2d,1
+np.float64,0xbfe945653af28aca,0x4003d9657bf129c2,1
+np.float64,0xbfb18f3f2a231e80,0x3ffa3b27cba23f50,1
+np.float64,0xbfef50bf22fea17e,0x40077998a850082c,1
+np.float64,0xbfc52b8c212a5718,0x3ffbca8d6560a2da,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x3fc1e3a02d23c740,0x3ff6e3a5fcac12a4,1
+np.float64,0xbfeb5e4ea5f6bc9d,0x4004c65abef9426f,1
+np.float64,0xbfe425b132684b62,0x400203c29608b00d,1
+np.float64,0xbfbfa1c19e3f4380,0x3ffb1d6367711158,1
+np.float64,0x3fbba2776e3744f0,0x3ff766f6df586fad,1
+np.float64,0xbfb5d0951e2ba128,0x3ffa7f712480b25e,1
+np.float64,0xbfe949fdab7293fb,0x4003db4530a18507,1
+np.float64,0xbfcf13519b3e26a4,0x3ffd0e6f0a6c38ee,1
+np.float64,0x3f91e6d72823cdc0,0x3ff8da5f08909b6e,1
+np.float64,0x3f78a2e360314600,0x3ff909586727caef,1
+np.float64,0xbfe1ae7e8fe35cfd,0x40013fef082caaa3,1
+np.float64,0x3fe97a6dd1f2f4dc,0x3fe4cb4b99863478,1
+np.float64,0xbfcc1e1e69383c3c,0x3ffcad250a949843,1
+np.float64,0x3faccb797c399700,0x3ff83b8066b49330,1
+np.float64,0x3fe7a2647a6f44c8,0x3fe7acceae6ec425,1
+np.float64,0xbfec3bfcf0f877fa,0x4005366af5a7175b,1
+np.float64,0xbfe2310b94646217,0x400167588fceb228,1
+np.float64,0x3feb167372762ce6,0x3fe1f74c0288fad8,1
+np.float64,0xbfb722b4ee2e4568,0x3ffa94a81b94dfca,1
+np.float64,0x3fc58da9712b1b50,0x3ff66cf8f072aa14,1
+np.float64,0xbfe7fff9d6effff4,0x400359d01b8141de,1
+np.float64,0xbfd56691c5aacd24,0x3ffe9686697797e8,1
+np.float64,0x3fe3ab0557e7560a,0x3fed1593959ef8e8,1
+np.float64,0x3fdd458995ba8b14,0x3ff1883d6f22a322,1
+np.float64,0x3fe7bbed2cef77da,0x3fe786d618094cda,1
+np.float64,0x3fa31a30c4263460,0x3ff88920b936fd79,1
+np.float64,0x8010000000000000,0x3ff921fb54442d18,1
+np.float64,0xbfdc5effbdb8be00,0x40003d95fe0dff11,1
+np.float64,0x3febfdad7e77fb5a,0x3fe030b5297dbbdd,1
+np.float64,0x3fe4f3f3b2e9e7e8,0x3feb6bc59eeb2be2,1
+np.float64,0xbfe44469fd6888d4,0x40020daa5488f97a,1
+np.float64,0xbfe19fddb0e33fbc,0x40013b8c902b167b,1
+np.float64,0x3fa36ad17c26d5a0,0x3ff8869b3e828134,1
+np.float64,0x3fcf23e6c93e47d0,0x3ff5336491a65d1e,1
+np.float64,0xffefffffffffffff,0x7ff8000000000000,1
+np.float64,0xbfe375f4cee6ebea,0x4001cbd2ba42e8b5,1
+np.float64,0xbfaef1215c3de240,0x3ffa19ab02081189,1
+np.float64,0xbfec39c59c78738b,0x4005353dc38e3d78,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfec09bb7b781377,0x40051c0a5754cb3a,1
+np.float64,0x3fe8301f2870603e,0x3fe6d783c5ef0944,1
+np.float64,0xbfed418c987a8319,0x4005cbae1b8693d1,1
+np.float64,0xbfdc16e7adb82dd0,0x4000338b634eaf03,1
+np.float64,0x3fd5d361bdaba6c4,0x3ff390899300a54c,1
+np.float64,0xbff0000000000000,0x400921fb54442d18,1
+np.float64,0x3fd5946232ab28c4,0x3ff3a14767813f29,1
+np.float64,0x3fe833e5fef067cc,0x3fe6d1be720edf2d,1
+np.float64,0x3fedf746a67bee8e,0x3fd6f127fdcadb7b,1
+np.float64,0x3fd90353d3b206a8,0x3ff2b54f7d369ba9,1
+np.float64,0x3fec4b4b72f89696,0x3fdf1b38d2e93532,1
+np.float64,0xbfe9c67596f38ceb,0x40040ee5f524ce03,1
+np.float64,0x3fd350d91aa6a1b4,0x3ff43a303c0da27f,1
+np.float64,0x3fd062603ba0c4c0,0x3ff4fd9514b935d8,1
+np.float64,0xbfe24c075f64980e,0x40016f8e9f2663b3,1
+np.float64,0x3fdaa546eeb54a8c,0x3ff2431a88fef1d5,1
+np.float64,0x3fe92b8151f25702,0x3fe54c67e005cbf9,1
+np.float64,0xbfe1be8b8a637d17,0x400144c078f67c6e,1
+np.float64,0xbfe468a1d7e8d144,0x40021964b118cbf4,1
+np.float64,0xbfdc6de4fab8dbca,0x40003fa9e27893d8,1
+np.float64,0xbfe3c2788ae784f1,0x4001e407ba3aa956,1
+np.float64,0xbfe2bf1542e57e2a,0x400192d4a9072016,1
+np.float64,0xbfe6982f4c6d305e,0x4002d681b1991bbb,1
+np.float64,0x3fdbceb1c4b79d64,0x3ff1f0f117b9d354,1
+np.float64,0x3fdb3705e7b66e0c,0x3ff21af01ca27ace,1
+np.float64,0x3fe3e6358ee7cc6c,0x3fecca4585053983,1
+np.float64,0xbfe16d6a9a62dad5,0x40012c7988aee247,1
+np.float64,0xbfce66e4413ccdc8,0x3ffcf83b08043a0c,1
+np.float64,0xbfeb6cd46876d9a9,0x4004cd61733bfb79,1
+np.float64,0xbfdb1cdd64b639ba,0x400010e6cf087cb7,1
+np.float64,0xbfe09e4e30e13c9c,0x4000ef5277c47721,1
+np.float64,0xbfee88dd127d11ba,0x4006b3cd443643ac,1
+np.float64,0xbf911e06c8223c00,0x3ff966744064fb05,1
+np.float64,0xbfe8f22bc471e458,0x4003b7d5513af295,1
+np.float64,0x3fe3d7329567ae66,0x3fecdd6c241f83ee,1
+np.float64,0x3fc8a9404b315280,0x3ff607dc175edf3f,1
+np.float64,0x3fe7eb80ad6fd702,0x3fe73f8fdb3e6a6c,1
+np.float64,0x3fef0931e37e1264,0x3fcf7fde80a3c5ab,1
+np.float64,0x3fe2ed3c3fe5da78,0x3fee038334cd1860,1
+np.float64,0x3fe251fdb8e4a3fc,0x3feec26dc636ac31,1
+np.float64,0x3feb239436764728,0x3fe1de9462455da7,1
+np.float64,0xbfe63fd7eeec7fb0,0x4002b78cfa3d2fa6,1
+np.float64,0x3fdd639cb5bac738,0x3ff17fc7d92b3eee,1
+np.float64,0x3fd0a7a13fa14f44,0x3ff4eba95c559c84,1
+np.float64,0x3fe804362d70086c,0x3fe71a44cd91ffa4,1
+np.float64,0xbfe0fecf6e61fd9f,0x40010bac8edbdc4f,1
+np.float64,0x3fcb74acfd36e958,0x3ff5ac84437f1b7c,1
+np.float64,0x3fe55053e1eaa0a8,0x3feaf0bf76304c30,1
+np.float64,0x3fc06b508d20d6a0,0x3ff7131da17f3902,1
+np.float64,0x3fdd78750fbaf0ec,0x3ff179e97fbf7f65,1
+np.float64,0x3fe44cb946689972,0x3fec46859b5da6be,1
+np.float64,0xbfeb165a7ff62cb5,0x4004a41c9cc9589e,1
+np.float64,0x3fe01ffb2b603ff6,0x3ff0aed52bf1c3c1,1
+np.float64,0x3f983c60a83078c0,0x3ff8c107805715ab,1
+np.float64,0x3fd8b5ff13b16c00,0x3ff2ca4a837a476a,1
+np.float64,0x3fc80510a1300a20,0x3ff61cc3b4af470b,1
+np.float64,0xbfd3935b06a726b6,0x3ffe1b3a2066f473,1
+np.float64,0xbfdd4a1f31ba943e,0x40005e81979ed445,1
+np.float64,0xbfa76afdd42ed600,0x3ff9dd63ffba72d2,1
+np.float64,0x3fe7e06d496fc0da,0x3fe7503773566707,1
+np.float64,0xbfea5fbfe874bf80,0x40045106af6c538f,1
+np.float64,0x3fee000c487c0018,0x3fd6bef1f8779d88,1
+np.float64,0xbfb39f4ee2273ea0,0x3ffa5c3f2b3888ab,1
+np.float64,0x3feb9247b0772490,0x3fe1092d2905efce,1
+np.float64,0x3fdaa39b4cb54738,0x3ff243901da0da17,1
+np.float64,0x3fcd5b2b493ab658,0x3ff56e262e65b67d,1
+np.float64,0x3fcf82512f3f04a0,0x3ff52738847c55f2,1
+np.float64,0x3fe2af5e0c655ebc,0x3fee4ffab0c82348,1
+np.float64,0xbfec0055d0f800ac,0x4005172d325933e8,1
+np.float64,0x3fe71da9336e3b52,0x3fe86f2e12f6e303,1
+np.float64,0x3fbefab0723df560,0x3ff731188ac716ec,1
+np.float64,0xbfe11dca28623b94,0x400114d3d4ad370d,1
+np.float64,0x3fbcbda8ca397b50,0x3ff755281078abd4,1
+np.float64,0x3fe687c7126d0f8e,0x3fe945099a7855cc,1
+np.float64,0xbfecde510579bca2,0x400590606e244591,1
+np.float64,0xbfd72de681ae5bce,0x3fff0ff797ad1755,1
+np.float64,0xbfe7c0f7386f81ee,0x40034226e0805309,1
+np.float64,0x3fd8d55619b1aaac,0x3ff2c1cb3267b14e,1
+np.float64,0x3fecd7a2ad79af46,0x3fdcabbffeaa279e,1
+np.float64,0x3fee7fb1a8fcff64,0x3fd3ae620286fe19,1
+np.float64,0xbfc5f3a3592be748,0x3ffbe3ed204d9842,1
+np.float64,0x3fec9e5527793caa,0x3fddb00bc8687e4b,1
+np.float64,0x3fc35dc70f26bb90,0x3ff6b3ded7191e33,1
+np.float64,0x3fda91c07ab52380,0x3ff24878848fec8f,1
+np.float64,0xbfe12cde1fe259bc,0x4001194ab99d5134,1
+np.float64,0xbfd35ab736a6b56e,0x3ffe0c5ce8356d16,1
+np.float64,0x3fc9c94123339280,0x3ff5e3239f3ad795,1
+np.float64,0xbfe72f54926e5ea9,0x40030c95d1d02b56,1
+np.float64,0xbfee283186fc5063,0x40066786bd0feb79,1
+np.float64,0xbfe7b383f56f6708,0x40033d23ef0e903d,1
+np.float64,0x3fd6037327ac06e8,0x3ff383bf2f311ddb,1
+np.float64,0x3fe0e344b561c68a,0x3ff03cd90fd4ba65,1
+np.float64,0xbfef0ff54b7e1feb,0x400730fa5fce381e,1
+np.float64,0x3fd269929da4d324,0x3ff476b230136d32,1
+np.float64,0xbfbc5fb9f638bf70,0x3ffae8e63a4e3234,1
+np.float64,0xbfe2e8bc84e5d179,0x40019fb5874f4310,1
+np.float64,0xbfd7017413ae02e8,0x3fff040d843c1531,1
+np.float64,0x3fefd362fa7fa6c6,0x3fbababc3ddbb21d,1
+np.float64,0x3fecb62ed3f96c5e,0x3fdd44ba77ccff94,1
+np.float64,0xbfb16fad5222df58,0x3ffa392d7f02b522,1
+np.float64,0x3fbcf4abc639e950,0x3ff751b23c40e27f,1
+np.float64,0x3fe128adbce2515c,0x3ff013dc91db04b5,1
+np.float64,0x3fa5dd9d842bbb40,0x3ff87300c88d512f,1
+np.float64,0xbfe61efcaf6c3dfa,0x4002ac27117f87c9,1
+np.float64,0x3feffe1233fffc24,0x3f9638d3796a4954,1
+np.float64,0xbfe78548b66f0a92,0x40032c0447b7bfe2,1
+np.float64,0x3fe7bd38416f7a70,0x3fe784e86d6546b6,1
+np.float64,0x3fe0d6bc5961ad78,0x3ff0443899e747ac,1
+np.float64,0xbfd0bb6e47a176dc,0x3ffd5d6dff390d41,1
+np.float64,0xbfec1d16b8f83a2e,0x40052620378d3b78,1
+np.float64,0x3fe9bbec20f377d8,0x3fe45e167c7a3871,1
+np.float64,0xbfeed81d9dfdb03b,0x4006f9dec2db7310,1
+np.float64,0xbfe1e35179e3c6a3,0x40014fd1b1186ac0,1
+np.float64,0xbfc9c7e605338fcc,0x3ffc60a6bd1a7126,1
+np.float64,0x3feec92810fd9250,0x3fd1afde414ab338,1
+np.float64,0xbfeb9f1d90773e3b,0x4004e606b773f5b0,1
+np.float64,0x3fcbabdf6b3757c0,0x3ff5a573866404af,1
+np.float64,0x3fe9f4e1fff3e9c4,0x3fe3fd7b6712dd7b,1
+np.float64,0xbfe6c0175ded802e,0x4002e4a4dc12f3fe,1
+np.float64,0xbfeefc96f37df92e,0x40071d367cd721ff,1
+np.float64,0xbfeaab58dc7556b2,0x400472ce37e31e50,1
+np.float64,0xbfc62668772c4cd0,0x3ffbea5e6c92010a,1
+np.float64,0x3fafe055fc3fc0a0,0x3ff822ce6502519a,1
+np.float64,0x3fd7b648ffaf6c90,0x3ff30f5a42f11418,1
+np.float64,0xbfe934fe827269fd,0x4003d2b9fed9e6ad,1
+np.float64,0xbfe6d691f2edad24,0x4002eca6a4b1797b,1
+np.float64,0x3fc7e62ced2fcc58,0x3ff620b1f44398b7,1
+np.float64,0xbfc89be9f33137d4,0x3ffc3a67a497f59c,1
+np.float64,0xbfe7793d536ef27a,0x40032794bf14dd64,1
+np.float64,0x3fde55a02dbcab40,0x3ff13b5f82d223e4,1
+np.float64,0xbfc8eabd7b31d57c,0x3ffc4472a81cb6d0,1
+np.float64,0x3fddcb5468bb96a8,0x3ff162899c381f2e,1
+np.float64,0xbfec7554d8f8eaaa,0x40055550e18ec463,1
+np.float64,0x3fd0b6e8b6a16dd0,0x3ff4e7b4781a50e3,1
+np.float64,0x3fedaae01b7b55c0,0x3fd8964916cdf53d,1
+np.float64,0x3fe0870f8a610e20,0x3ff072e7db95c2a2,1
+np.float64,0xbfec3e3ce2787c7a,0x4005379d0f6be873,1
+np.float64,0xbfe65502586caa04,0x4002beecff89147f,1
+np.float64,0xbfe0df39a961be74,0x4001025e36d1c061,1
+np.float64,0xbfb5d8edbe2bb1d8,0x3ffa7ff72b7d6a2b,1
+np.float64,0xbfde89574bbd12ae,0x40008ba4cd74544d,1
+np.float64,0xbfe72938f0ee5272,0x40030a5efd1acb6d,1
+np.float64,0xbfcd500d133aa01c,0x3ffcd462f9104689,1
+np.float64,0x3fe0350766606a0e,0x3ff0a2a3664e2c14,1
+np.float64,0xbfc892fb573125f8,0x3ffc3944641cc69d,1
+np.float64,0xbfba7dc7c634fb90,0x3ffaca9a6a0ffe61,1
+np.float64,0xbfeac94478759289,0x40048068a8b83e45,1
+np.float64,0xbfe8f60c1af1ec18,0x4003b961995b6e51,1
+np.float64,0x3fea1c0817743810,0x3fe3ba28c1643cf7,1
+np.float64,0xbfe42a0fefe85420,0x4002052aadd77f01,1
+np.float64,0x3fd2c61c56a58c38,0x3ff45e84cb9a7fa9,1
+np.float64,0xbfd83fb7cdb07f70,0x3fff59ab4790074c,1
+np.float64,0x3fd95e630fb2bcc8,0x3ff29c8bee1335ad,1
+np.float64,0x3feee88f387dd11e,0x3fd0c3ad3ded4094,1
+np.float64,0x3fe061291160c252,0x3ff0890010199bbc,1
+np.float64,0xbfdc7db3b5b8fb68,0x400041dea3759443,1
+np.float64,0x3fee23b320fc4766,0x3fd5ee73d7aa5c56,1
+np.float64,0xbfdc25c590b84b8c,0x4000359cf98a00b4,1
+np.float64,0xbfd63cbfd2ac7980,0x3ffecf7b9cf99b3c,1
+np.float64,0xbfbeb3c29a3d6788,0x3ffb0e66ecc0fc3b,1
+np.float64,0xbfd2f57fd6a5eb00,0x3ffdf1d7c79e1532,1
+np.float64,0xbfab3eda9c367db0,0x3ff9fc0c875f42e9,1
+np.float64,0xbfe12df1c6e25be4,0x4001199c673e698c,1
+np.float64,0x3fef8ab23a7f1564,0x3fc5aff358c59f1c,1
+np.float64,0x3fe562f50feac5ea,0x3fead7bce205f7d9,1
+np.float64,0x3fdc41adbeb8835c,0x3ff1d0f71341b8f2,1
+np.float64,0x3fe2748967e4e912,0x3fee9837f970ff9e,1
+np.float64,0xbfdaa89d57b5513a,0x400000e3889ba4cf,1
+np.float64,0x3fdf2a137dbe5428,0x3ff0fecfbecbbf86,1
+np.float64,0xbfea1fdcd2f43fba,0x4004351974b32163,1
+np.float64,0xbfe34a93a3e69528,0x4001be323946a3e0,1
+np.float64,0x3fe929bacff25376,0x3fe54f47bd7f4cf2,1
+np.float64,0xbfd667fbd6accff8,0x3ffedb04032b3a1a,1
+np.float64,0xbfeb695796f6d2af,0x4004cbb08ec6f525,1
+np.float64,0x3fd204df2ea409c0,0x3ff490f51e6670f5,1
+np.float64,0xbfd89a2757b1344e,0x3fff722127b988c4,1
+np.float64,0xbfd0787187a0f0e4,0x3ffd4c16dbe94f32,1
+np.float64,0x3fd44239bfa88474,0x3ff3fabbfb24b1fa,1
+np.float64,0xbfeb0b3489f61669,0x40049ee33d811d33,1
+np.float64,0x3fdcf04eaab9e09c,0x3ff1a02a29996c4e,1
+np.float64,0x3fd4c51e4fa98a3c,0x3ff3d8302c68fc9a,1
+np.float64,0x3fd1346645a268cc,0x3ff4c72b4970ecaf,1
+np.float64,0x3fd6a89d09ad513c,0x3ff357af6520afac,1
+np.float64,0xbfba0f469a341e90,0x3ffac3a8f41bed23,1
+np.float64,0xbfe13f8ddce27f1c,0x40011ed557719fd6,1
+np.float64,0x3fd43e5e26a87cbc,0x3ff3fbc040fc30dc,1
+np.float64,0x3fe838125a707024,0x3fe6cb5c987248f3,1
+np.float64,0x3fe128c30c625186,0x3ff013cff238dd1b,1
+np.float64,0xbfcd4718833a8e30,0x3ffcd33c96bde6f9,1
+np.float64,0x3fe43fcd08e87f9a,0x3fec573997456ec1,1
+np.float64,0xbfe9a29104734522,0x4003ffd502a1b57f,1
+np.float64,0xbfe4709d7968e13b,0x40021bfc5cd55af4,1
+np.float64,0x3fd21c3925a43874,0x3ff48adf48556cbb,1
+np.float64,0x3fe9a521b2734a44,0x3fe4844fc054e839,1
+np.float64,0xbfdfa6a912bf4d52,0x4000b4730ad8521e,1
+np.float64,0x3fe3740702e6e80e,0x3fed5b106283b6ed,1
+np.float64,0x3fd0a3aa36a14754,0x3ff4ecb02a5e3f49,1
+np.float64,0x3fdcb903d0b97208,0x3ff1afa5d692c5b9,1
+np.float64,0xbfe7d67839efacf0,0x40034a3146abf6f2,1
+np.float64,0x3f9981c6d8330380,0x3ff8bbf1853d7b90,1
+np.float64,0xbfe9d4191673a832,0x400414a9ab453c5d,1
+np.float64,0x3fef0a1e5c7e143c,0x3fcf70b02a54c415,1
+np.float64,0xbfd996dee6b32dbe,0x3fffb6cf707ad8e4,1
+np.float64,0x3fe19bef17e337de,0x3fef9e70d4fcedae,1
+np.float64,0x3fe34a59716694b2,0x3fed8f6d5cfba474,1
+np.float64,0x3fdf27e27cbe4fc4,0x3ff0ff70500e0c7c,1
+np.float64,0xbfe19df87fe33bf1,0x40013afb401de24c,1
+np.float64,0xbfbdfd97ba3bfb30,0x3ffb02ef8c225e57,1
+np.float64,0xbfe3d3417267a683,0x4001e95ed240b0f8,1
+np.float64,0x3fe566498b6acc94,0x3fead342957d4910,1
+np.float64,0x3ff0000000000000,0x0,1
+np.float64,0x3feb329bd8766538,0x3fe1c2225aafe3b4,1
+np.float64,0xbfc19ca703233950,0x3ffb575b5df057b9,1
+np.float64,0x3fe755027d6eaa04,0x3fe81eb99c262e00,1
+np.float64,0xbfe6c2b8306d8570,0x4002e594199f9eec,1
+np.float64,0x3fd69438e6ad2870,0x3ff35d2275ae891d,1
+np.float64,0x3fda3e7285b47ce4,0x3ff25f5573dd47ae,1
+np.float64,0x3fe7928a166f2514,0x3fe7c4490ef4b9a9,1
+np.float64,0xbfd4eb71b9a9d6e4,0x3ffe75e8ccb74be1,1
+np.float64,0xbfcc3a07f1387410,0x3ffcb0b8af914a5b,1
+np.float64,0xbfe6e80225edd004,0x4002f2e26eae8999,1
+np.float64,0xbfb347728a268ee8,0x3ffa56bd526a12db,1
+np.float64,0x3fe5140ead6a281e,0x3feb4132c9140a1c,1
+np.float64,0xbfc147f125228fe4,0x3ffb4cab18b9050f,1
+np.float64,0xbfcb9145b537228c,0x3ffc9b1b6227a8c9,1
+np.float64,0xbfda84ef4bb509de,0x3ffff7f8a674e17d,1
+np.float64,0x3fd2eb6bbfa5d6d8,0x3ff454c225529d7e,1
+np.float64,0x3fe18c95f1e3192c,0x3fefb0cf0efba75a,1
+np.float64,0x3fe78606efef0c0e,0x3fe7d6c3a092d64c,1
+np.float64,0x3fbad5119a35aa20,0x3ff773dffe3ce660,1
+np.float64,0x3fd0cf5903a19eb4,0x3ff4e15fd21fdb42,1
+np.float64,0xbfd85ce90bb0b9d2,0x3fff618ee848e974,1
+np.float64,0x3fe90e11b9f21c24,0x3fe57be62f606f4a,1
+np.float64,0x3fd7a2040faf4408,0x3ff314ce85457ec2,1
+np.float64,0xbfd73fba69ae7f74,0x3fff14bff3504811,1
+np.float64,0x3fa04b4bd42096a0,0x3ff89f9b52f521a2,1
+np.float64,0xbfd7219ce5ae433a,0x3fff0cac0b45cc18,1
+np.float64,0xbfe0cf4661e19e8d,0x4000fdadb14e3c22,1
+np.float64,0x3fd07469fea0e8d4,0x3ff4f8eaa9b2394a,1
+np.float64,0x3f9b05c5d8360b80,0x3ff8b5e10672db5c,1
+np.float64,0x3fe4c25b916984b8,0x3febad29bd0e25e2,1
+np.float64,0xbfde8b4891bd1692,0x40008beb88d5c409,1
+np.float64,0xbfe199a7efe33350,0x400139b089aee21c,1
+np.float64,0x3fecdad25cf9b5a4,0x3fdc9d062867e8c3,1
+np.float64,0xbfe979b277f2f365,0x4003eedb061e25a4,1
+np.float64,0x3fc8c7311f318e60,0x3ff6040b9aeaad9d,1
+np.float64,0x3fd2b605b8a56c0c,0x3ff462b9a955c224,1
+np.float64,0x3fc073b6ad20e770,0x3ff7120e9f2fd63c,1
+np.float64,0xbfec60ede678c1dc,0x40054a3863e24dc2,1
+np.float64,0x3fe225171be44a2e,0x3feef910dca420ea,1
+np.float64,0xbfd7529762aea52e,0x3fff19d00661f650,1
+np.float64,0xbfd781783daf02f0,0x3fff2667b90be461,1
+np.float64,0x3fe3f6ec6d67edd8,0x3fecb4e814a2e33a,1
+np.float64,0x3fece6702df9cce0,0x3fdc6719d92a50d2,1
+np.float64,0xbfb5c602ce2b8c08,0x3ffa7ec761ba856a,1
+np.float64,0xbfd61f0153ac3e02,0x3ffec78e3b1a6c4d,1
+np.float64,0xbfec3462b2f868c5,0x400532630bbd7050,1
+np.float64,0xbfdd248485ba490a,0x400059391c07c1bb,1
+np.float64,0xbfd424921fa84924,0x3ffe416a85d1dcdf,1
+np.float64,0x3fbb23a932364750,0x3ff76eef79209f7f,1
+np.float64,0x3fca248b0f344918,0x3ff5d77c5c1b4e5e,1
+np.float64,0xbfe69af4a4ed35ea,0x4002d77c2e4fbd4e,1
+np.float64,0x3fdafe3cdcb5fc78,0x3ff22a9be6efbbf2,1
+np.float64,0xbfebba3377f77467,0x4004f3836e1fe71a,1
+np.float64,0xbfe650fae06ca1f6,0x4002bd851406377c,1
+np.float64,0x3fda630007b4c600,0x3ff2554f1832bd94,1
+np.float64,0xbfda8107d9b50210,0x3ffff6e6209659f3,1
+np.float64,0x3fea759a02f4eb34,0x3fe31d1a632c9aae,1
+np.float64,0x3fbf88149e3f1030,0x3ff728313aa12ccb,1
+np.float64,0x3f7196d2a0232e00,0x3ff910647e1914c1,1
+np.float64,0x3feeae51d17d5ca4,0x3fd2709698d31f6f,1
+np.float64,0xbfd73cd663ae79ac,0x3fff13f96300b55a,1
+np.float64,0x3fd4fc5f06a9f8c0,0x3ff3c99359854b97,1
+np.float64,0x3fb29f5d6e253ec0,0x3ff7f7c20e396b20,1
+np.float64,0xbfd757c82aaeaf90,0x3fff1b34c6141e98,1
+np.float64,0x3fc56fd4cf2adfa8,0x3ff670c145122909,1
+np.float64,0x3fc609a2f52c1348,0x3ff65d3ef3cade2c,1
+np.float64,0xbfe1de631163bcc6,0x40014e5528fadb73,1
+np.float64,0xbfe7eb4a726fd695,0x40035202f49d95c4,1
+np.float64,0xbfc9223771324470,0x3ffc4b84d5e263b9,1
+np.float64,0x3fee91a8a87d2352,0x3fd3364befde8de6,1
+np.float64,0x3fbc9784fe392f10,0x3ff7578e29f6a1b2,1
+np.float64,0xbfec627c2c78c4f8,0x40054b0ff2cb9c55,1
+np.float64,0xbfb8b406a6316810,0x3ffaadd97062fb8c,1
+np.float64,0xbfecf98384f9f307,0x4005a043d9110d79,1
+np.float64,0xbfe5834bab6b0698,0x400276f114aebee4,1
+np.float64,0xbfd90f391eb21e72,0x3fff91e26a8f48f3,1
+np.float64,0xbfee288ce2fc511a,0x400667cb09aa04b3,1
+np.float64,0x3fd5aa5e32ab54bc,0x3ff39b7080a52214,1
+np.float64,0xbfee7ef907fcfdf2,0x4006ab96a8eba4c5,1
+np.float64,0x3fd6097973ac12f4,0x3ff3822486978bd1,1
+np.float64,0xbfe02d14b8e05a2a,0x4000ce5be53047b1,1
+np.float64,0xbf9c629a6838c540,0x3ff993897728c3f9,1
+np.float64,0xbfee2024667c4049,0x40066188782fb1f0,1
+np.float64,0xbfa42a88fc285510,0x3ff9c35a4bbce104,1
+np.float64,0x3fa407af5c280f60,0x3ff881b360d8eea1,1
+np.float64,0x3fed0ba42cfa1748,0x3fdbb7d55609175f,1
+np.float64,0xbfdd0b5844ba16b0,0x400055b0bb59ebb2,1
+np.float64,0x3fd88d97e6b11b30,0x3ff2d53c1ecb8f8c,1
+np.float64,0xbfeb7a915ef6f523,0x4004d410812eb84c,1
+np.float64,0xbfb5f979ca2bf2f0,0x3ffa8201d73cd4ca,1
+np.float64,0x3fb3b65dd6276cc0,0x3ff7e64576199505,1
+np.float64,0x3fcd47a7793a8f50,0x3ff570a7b672f160,1
+np.float64,0xbfa41dd30c283ba0,0x3ff9c2f488127eb3,1
+np.float64,0x3fe4b1ea1f6963d4,0x3febc2bed7760427,1
+np.float64,0xbfdd0f81d2ba1f04,0x400056463724b768,1
+np.float64,0x3fd15d93f7a2bb28,0x3ff4bc7a24eacfd7,1
+np.float64,0xbfe3213af8e64276,0x4001b14579dfded3,1
+np.float64,0x3fd90dfbeab21bf8,0x3ff2b26a6c2c3bb3,1
+np.float64,0xbfd02d54bca05aaa,0x3ffd38ab3886b203,1
+np.float64,0x3fc218dcad2431b8,0x3ff6dced56d5b417,1
+np.float64,0x3fea5edf71f4bdbe,0x3fe3455ee09f27e6,1
+np.float64,0x3fa74319042e8640,0x3ff867d224545438,1
+np.float64,0x3fd970ad92b2e15c,0x3ff2979084815dc1,1
+np.float64,0x3fce0a4bf73c1498,0x3ff557a4df32df3e,1
+np.float64,0x3fef5c8e10feb91c,0x3fc99ca0eeaaebe4,1
+np.float64,0xbfedae997ffb5d33,0x400611af18f407ab,1
+np.float64,0xbfbcf07d6239e0f8,0x3ffaf201177a2d36,1
+np.float64,0xbfc3c52541278a4c,0x3ffb9d2af0408e4a,1
+np.float64,0x3fe4ef44e4e9de8a,0x3feb71f7331255e5,1
+np.float64,0xbfccd9f5f539b3ec,0x3ffcc53a99339592,1
+np.float64,0xbfda32c745b4658e,0x3fffe16e8727ef89,1
+np.float64,0xbfef54932a7ea926,0x40077e4605e61ca1,1
+np.float64,0x3fe9d4ae3573a95c,0x3fe4344a069a3fd0,1
+np.float64,0x3fda567e73b4acfc,0x3ff258bd77a663c7,1
+np.float64,0xbfd5bcac5eab7958,0x3ffead6379c19c52,1
+np.float64,0xbfee5e56f97cbcae,0x40069131fc54018d,1
+np.float64,0x3fc2d4413925a880,0x3ff6c54163816298,1
+np.float64,0xbfe9ddf6e873bbee,0x400418d8c722f7c5,1
+np.float64,0x3fdaf2a683b5e54c,0x3ff22dcda599d69c,1
+np.float64,0xbfca69789f34d2f0,0x3ffc7547ff10b1a6,1
+np.float64,0x3fed076f62fa0ede,0x3fdbcbda03c1d72a,1
+np.float64,0xbfcb38326f367064,0x3ffc8fb55dadeae5,1
+np.float64,0x3fe1938705e3270e,0x3fefa88130c5adda,1
+np.float64,0x3feaffae3b75ff5c,0x3fe221e3da537c7e,1
+np.float64,0x3fefc94acb7f9296,0x3fbd9a360ace67b4,1
+np.float64,0xbfe8bddeb0f17bbe,0x4003a316685c767e,1
+np.float64,0x3fbe10fbee3c21f0,0x3ff73fceb10650f5,1
+np.float64,0x3fde9126c1bd224c,0x3ff12a742f734d0a,1
+np.float64,0xbfe9686c91f2d0d9,0x4003e7bc6ee77906,1
+np.float64,0xbfb1ba4892237490,0x3ffa3dda064c2509,1
+np.float64,0xbfe2879100e50f22,0x400181c1a5b16f0f,1
+np.float64,0x3fd1cd40b6a39a80,0x3ff49f70e3064e95,1
+np.float64,0xbfc965869132cb0c,0x3ffc5419f3b43701,1
+np.float64,0x3fea7a6f2874f4de,0x3fe31480fb2dd862,1
+np.float64,0x3fc3bc56892778b0,0x3ff6a7e8fa0e8b0e,1
+np.float64,0x3fec1ed451f83da8,0x3fdfd78e564b8ad7,1
+np.float64,0x3feb77d16df6efa2,0x3fe13d083344e45e,1
+np.float64,0xbfe822e7c67045d0,0x400367104a830cf6,1
+np.float64,0x8000000000000001,0x3ff921fb54442d18,1
+np.float64,0xbfd4900918a92012,0x3ffe5dc0e19737b4,1
+np.float64,0x3fed184187fa3084,0x3fdb7b7a39f234f4,1
+np.float64,0x3fecef846179df08,0x3fdc3cb2228c3682,1
+np.float64,0xbfe2d2aed165a55e,0x400198e21c5b861b,1
+np.float64,0x7ff0000000000000,0x7ff8000000000000,1
+np.float64,0xbfee9409a07d2813,0x4006bd358232d073,1
+np.float64,0xbfecedc2baf9db86,0x4005995df566fc21,1
+np.float64,0x3fe6d857396db0ae,0x3fe8d2cb8794aa99,1
+np.float64,0xbf9a579e7834af40,0x3ff98b5cc8021e1c,1
+np.float64,0x3fc664fefb2cca00,0x3ff651a664ccf8fa,1
+np.float64,0xbfe8a7aa0e714f54,0x40039a5b4df938a0,1
+np.float64,0xbfdf27d380be4fa8,0x4000a241074dbae6,1
+np.float64,0x3fe00ddf55e01bbe,0x3ff0b94eb1ea1851,1
+np.float64,0x3feb47edbff68fdc,0x3fe199822d075959,1
+np.float64,0x3fb4993822293270,0x3ff7d80c838186d0,1
+np.float64,0xbfca2cd1473459a4,0x3ffc6d88c8de3d0d,1
+np.float64,0xbfea7d9c7674fb39,0x40045e4559e9e52d,1
+np.float64,0x3fe0dce425e1b9c8,0x3ff04099cab23289,1
+np.float64,0x3fd6bb7e97ad76fc,0x3ff352a30434499c,1
+np.float64,0x3fd4a4f16da949e4,0x3ff3e0b07432c9aa,1
+np.float64,0x8000000000000000,0x3ff921fb54442d18,1
+np.float64,0x3fe688f5b56d11ec,0x3fe9435f63264375,1
+np.float64,0xbfdf5a427ebeb484,0x4000a97a6c5d4abc,1
+np.float64,0xbfd1f3483fa3e690,0x3ffdae6c8a299383,1
+np.float64,0xbfeac920db759242,0x4004805862be51ec,1
+np.float64,0x3fef5bc711feb78e,0x3fc9ac40fba5b93b,1
+np.float64,0x3fe4bd9e12e97b3c,0x3febb363c787d381,1
+np.float64,0x3fef6a59ab7ed4b4,0x3fc880f1324eafce,1
+np.float64,0x3fc07a362120f470,0x3ff7113cf2c672b3,1
+np.float64,0xbfe4d6dbe2e9adb8,0x40023d6f6bea44b7,1
+np.float64,0xbfec2d6a15785ad4,0x40052eb425cc37a2,1
+np.float64,0x3fc90dae05321b60,0x3ff5fb10015d2934,1
+np.float64,0xbfa9239f74324740,0x3ff9eb2d057068ea,1
+np.float64,0xbfeb4fc8baf69f92,0x4004bf5e17fb08a4,1
+np.float64,0x0,0x3ff921fb54442d18,1
+np.float64,0x3faaf1884c35e320,0x3ff84a5591dbe1f3,1
+np.float64,0xbfed842561fb084b,0x4005f5c0a19116ce,1
+np.float64,0xbfc64850c32c90a0,0x3ffbeeac2ee70f9a,1
+np.float64,0x3fd7d879f5afb0f4,0x3ff306254c453436,1
+np.float64,0xbfdabaa586b5754c,0x4000035e6ac83a2b,1
+np.float64,0xbfebfeefa977fddf,0x4005167446fb9faf,1
+np.float64,0xbfe9383462727069,0x4003d407aa6a1577,1
+np.float64,0x3fe108dfb6e211c0,0x3ff026ac924b281d,1
+np.float64,0xbf85096df02a12c0,0x3ff94c0e60a22ede,1
+np.float64,0xbfe3121cd566243a,0x4001ac8f90db5882,1
+np.float64,0xbfd227f62aa44fec,0x3ffdbc26bb175dcc,1
+np.float64,0x3fd931af2cb26360,0x3ff2a8b62dfe003c,1
+np.float64,0xbfd9b794e3b36f2a,0x3fffbfbc89ec013d,1
+np.float64,0x3fc89b2e6f313660,0x3ff609a6e67f15f2,1
+np.float64,0x3fc0b14a8f216298,0x3ff70a4b6905aad2,1
+np.float64,0xbfeda11a657b4235,0x400608b3f9fff574,1
+np.float64,0xbfed2ee9ec7a5dd4,0x4005c040b7c02390,1
+np.float64,0xbfef7819d8fef034,0x4007ac6bf75cf09d,1
+np.float64,0xbfcc4720fb388e40,0x3ffcb2666a00b336,1
+np.float64,0xbfe05dec4be0bbd8,0x4000dc8a25ca3760,1
+np.float64,0x3fb093416e212680,0x3ff81897b6d8b374,1
+np.float64,0xbfc6ab89332d5714,0x3ffbfb4559d143e7,1
+np.float64,0x3fc51948512a3290,0x3ff67bb9df662c0a,1
+np.float64,0x3fed4d94177a9b28,0x3fda76c92f0c0132,1
+np.float64,0x3fdd195fbeba32c0,0x3ff194a5586dd18e,1
+np.float64,0x3fe3f82799e7f050,0x3fecb354c2faf55c,1
+np.float64,0x3fecac2169f95842,0x3fdd7222296cb7a7,1
+np.float64,0x3fe3d3f36fe7a7e6,0x3fece18f45e30dd7,1
+np.float64,0x3fe31ff63d663fec,0x3fedc46c77d30c6a,1
+np.float64,0xbfe3120c83e62419,0x4001ac8a7c4aa742,1
+np.float64,0x3fe7c1a7976f8350,0x3fe77e4a9307c9f8,1
+np.float64,0x3fe226fe9de44dfe,0x3feef6c0f3cb00fa,1
+np.float64,0x3fd5c933baab9268,0x3ff3933e8a37de42,1
+np.float64,0x3feaa98496f5530a,0x3fe2c003832ebf21,1
+np.float64,0xbfc6f80a2f2df014,0x3ffc04fd54cb1317,1
+np.float64,0x3fde5e18d0bcbc30,0x3ff138f7b32a2ca3,1
+np.float64,0xbfe30c8dd566191c,0x4001aad4af935a78,1
+np.float64,0x3fbe8d196e3d1a30,0x3ff737fec8149ecc,1
+np.float64,0x3feaee6731f5dcce,0x3fe241fa42cce22d,1
+np.float64,0x3fef9cc46cff3988,0x3fc3f17b708dbdbb,1
+np.float64,0xbfdb181bdeb63038,0x4000103ecf405602,1
+np.float64,0xbfc58de0ed2b1bc0,0x3ffbd704c14e15cd,1
+np.float64,0xbfee05d5507c0bab,0x40064e480faba6d8,1
+np.float64,0x3fe27d0ffa64fa20,0x3fee8dc71ef79f2c,1
+np.float64,0xbfe4f7ad4c69ef5a,0x400248456cd09a07,1
+np.float64,0xbfe4843e91e9087d,0x4002225f3e139c84,1
+np.float64,0x3fe7158b9c6e2b18,0x3fe87ae845c5ba96,1
+np.float64,0xbfea64316074c863,0x400452fd2bc23a44,1
+np.float64,0xbfc9f3ae4133e75c,0x3ffc663d482afa42,1
+np.float64,0xbfd5e18513abc30a,0x3ffeb72fc76d7071,1
+np.float64,0xbfd52f6438aa5ec8,0x3ffe87e5b18041e5,1
+np.float64,0xbfea970650f52e0d,0x400469a4a6758154,1
+np.float64,0xbfe44321b7e88644,0x40020d404a2141b1,1
+np.float64,0x3fdf5a39bbbeb474,0x3ff0f10453059dbd,1
+np.float64,0xbfa1d4069423a810,0x3ff9b0a2eacd2ce2,1
+np.float64,0xbfc36d16a326da2c,0x3ffb92077d41d26a,1
+np.float64,0x1,0x3ff921fb54442d18,1
+np.float64,0x3feb232a79764654,0x3fe1df5beeb249d0,1
+np.float64,0xbfed2003d5fa4008,0x4005b737c2727583,1
+np.float64,0x3fd5b093a3ab6128,0x3ff399ca2db1d96d,1
+np.float64,0x3fca692c3d34d258,0x3ff5ceb86b79223e,1
+np.float64,0x3fd6bbdf89ad77c0,0x3ff3528916df652d,1
+np.float64,0xbfefdadd46ffb5bb,0x40085ee735e19f19,1
+np.float64,0x3feb69fb2676d3f6,0x3fe157ee0c15691e,1
+np.float64,0x3fe44c931f689926,0x3fec46b6f5e3f265,1
+np.float64,0xbfc43ddbcb287bb8,0x3ffbac71d268d74d,1
+np.float64,0x3fe6e16d43edc2da,0x3fe8c5cf0f0daa66,1
+np.float64,0x3fe489efc76913e0,0x3febf704ca1ac2a6,1
+np.float64,0xbfe590aadceb2156,0x40027b764205cf78,1
+np.float64,0xbf782e8aa0305d00,0x3ff93a29e81928ab,1
+np.float64,0x3fedcb80cffb9702,0x3fd7e5d1f98a418b,1
+np.float64,0x3fe075858060eb0c,0x3ff07d23ab46b60f,1
+np.float64,0x3fe62a68296c54d0,0x3fe9c77f7068043b,1
+np.float64,0x3feff16a3c7fe2d4,0x3fae8e8a739cc67a,1
+np.float64,0xbfd6ed93e3addb28,0x3ffefebab206fa99,1
+np.float64,0x3fe40d8ccf681b1a,0x3fec97e9cd29966d,1
+np.float64,0x3fd6408210ac8104,0x3ff3737a7d374107,1
+np.float64,0x3fec8023b8f90048,0x3fde35ebfb2b3afd,1
+np.float64,0xbfe13babd4627758,0x40011dae5c07c56b,1
+np.float64,0xbfd2183e61a4307c,0x3ffdb80dd747cfbe,1
+np.float64,0x3feae8eb1d75d1d6,0x3fe24c1f6e42ae77,1
+np.float64,0xbfea559b9c74ab37,0x40044c8e5e123b20,1
+np.float64,0xbfd12c9d57a2593a,0x3ffd7ac6222f561c,1
+np.float64,0x3fe32eb697e65d6e,0x3fedb202693875b6,1
+np.float64,0xbfde0808c3bc1012,0x4000794bd8616ea3,1
+np.float64,0x3fe14958a06292b2,0x3ff0007b40ac648a,1
+np.float64,0x3fe3d388a6e7a712,0x3fece21751a6dd7c,1
+np.float64,0x3fe7ad7897ef5af2,0x3fe79c5b3da302a7,1
+np.float64,0x3fec75527e78eaa4,0x3fde655de0cf0508,1
+np.float64,0x3fea920d4c75241a,0x3fe2ea48f031d908,1
+np.float64,0x7fefffffffffffff,0x7ff8000000000000,1
+np.float64,0xbfc17a68cb22f4d0,0x3ffb530925f41aa0,1
+np.float64,0xbfe1c93166e39263,0x400147f3cb435dec,1
+np.float64,0x3feb97c402f72f88,0x3fe0fe5b561bf869,1
+np.float64,0x3fb58ff5162b1ff0,0x3ff7c8933fa969dc,1
+np.float64,0x3fe68e2beded1c58,0x3fe93c075283703b,1
+np.float64,0xbf94564cc828aca0,0x3ff97355e5ee35db,1
+np.float64,0x3fd31061c9a620c4,0x3ff44b150ec96998,1
+np.float64,0xbfc7d0c89f2fa190,0x3ffc208bf4eddc4d,1
+np.float64,0x3fe5736f1d6ae6de,0x3feac18f84992d1e,1
+np.float64,0x3fdb62e480b6c5c8,0x3ff20ecfdc4afe7c,1
+np.float64,0xbfc417228b282e44,0x3ffba78afea35979,1
+np.float64,0x3f8f5ba1303eb780,0x3ff8e343714630ff,1
+np.float64,0x3fe8e99126f1d322,0x3fe5b6511d4c0798,1
+np.float64,0xbfe2ec08a1e5d812,0x4001a0bb28a85875,1
+np.float64,0x3fea3b46cf74768e,0x3fe383dceaa74296,1
+np.float64,0xbfe008b5ed60116c,0x4000c3d62c275d40,1
+np.float64,0xbfcd9f8a4b3b3f14,0x3ffcde98d6484202,1
+np.float64,0xbfdb5fb112b6bf62,0x40001a22137ef1c9,1
+np.float64,0xbfe9079565f20f2b,0x4003c0670c92e401,1
+np.float64,0xbfce250dc53c4a1c,0x3ffcefc2b3dc3332,1
+np.float64,0x3fe9ba85d373750c,0x3fe4607131b28773,1
+np.float64,0x10000000000000,0x3ff921fb54442d18,1
+np.float64,0xbfeb9ef42c773de8,0x4004e5f239203ad8,1
+np.float64,0xbfd6bf457dad7e8a,0x3ffef2563d87b18d,1
+np.float64,0x3fe4de9aa5e9bd36,0x3feb87f97defb04a,1
+np.float64,0x3fedb4f67cfb69ec,0x3fd8603c465bffac,1
+np.float64,0x3fe7b6d9506f6db2,0x3fe78e670c7bdb67,1
+np.float64,0x3fe071717460e2e2,0x3ff07f84472d9cc5,1
+np.float64,0xbfed2e79dbfa5cf4,0x4005bffc6f9ad24f,1
+np.float64,0x3febb8adc377715c,0x3fe0bcebfbd45900,1
+np.float64,0xbfee2cffd87c5a00,0x40066b20a037c478,1
+np.float64,0x3fef7e358d7efc6c,0x3fc6d0ba71a542a8,1
+np.float64,0xbfef027eef7e04fe,0x400723291cb00a7a,1
+np.float64,0x3fac96da34392dc0,0x3ff83d260a936c6a,1
+np.float64,0x3fe9dba94a73b752,0x3fe428736b94885e,1
+np.float64,0x3fed37581efa6eb0,0x3fdae49dcadf1d90,1
+np.float64,0xbfe6e61037edcc20,0x4002f23031b8d522,1
+np.float64,0xbfdea7204dbd4e40,0x40008fe1f37918b7,1
+np.float64,0x3feb9f8edb773f1e,0x3fe0eef20bd4387b,1
+np.float64,0x3feeb0b6ed7d616e,0x3fd25fb3b7a525d6,1
+np.float64,0xbfd7ce9061af9d20,0x3fff3b25d531aa2b,1
+np.float64,0xbfc806b509300d6c,0x3ffc2768743a8360,1
+np.float64,0xbfa283882c250710,0x3ff9b61fda28914a,1
+np.float64,0x3fdec70050bd8e00,0x3ff11b1d769b578f,1
+np.float64,0xbfc858a44930b148,0x3ffc31d6758b4721,1
+np.float64,0x3fdc321150b86424,0x3ff1d5504c3c91e4,1
+np.float64,0x3fd9416870b282d0,0x3ff2a46f3a850f5b,1
+np.float64,0x3fdd756968baead4,0x3ff17ac510a5573f,1
+np.float64,0xbfedfd632cfbfac6,0x400648345a2f89b0,1
+np.float64,0x3fd6874285ad0e84,0x3ff36098ebff763f,1
+np.float64,0x3fe6daacc9edb55a,0x3fe8cf75fae1e35f,1
+np.float64,0x3fe53f19766a7e32,0x3feb07d0e97cd55b,1
+np.float64,0x3fd13cc36ca27988,0x3ff4c4ff801b1faa,1
+np.float64,0x3fe4f21cbce9e43a,0x3feb6e34a72ef529,1
+np.float64,0xbfc21c1cc9243838,0x3ffb67726394ca89,1
+np.float64,0x3fe947a3f2728f48,0x3fe51eae4660e23c,1
+np.float64,0xbfce78cd653cf19c,0x3ffcfa89194b3f5e,1
+np.float64,0x3fe756f049eeade0,0x3fe81be7f2d399e2,1
+np.float64,0xbfcc727cf138e4f8,0x3ffcb7f547841bb0,1
+np.float64,0xbfc2d8d58f25b1ac,0x3ffb7f496cc72458,1
+np.float64,0xbfcfd0e4653fa1c8,0x3ffd26e1309bc80b,1
+np.float64,0xbfe2126c106424d8,0x40015e0e01db6a4a,1
+np.float64,0x3fe580e4306b01c8,0x3feaaf683ce51aa5,1
+np.float64,0x3fcea8a1b93d5140,0x3ff543456c0d28c7,1
+np.float64,0xfff0000000000000,0x7ff8000000000000,1
+np.float64,0xbfd9d5da72b3abb4,0x3fffc8013113f968,1
+np.float64,0xbfe1fdfcea63fbfa,0x400157def2e4808d,1
+np.float64,0xbfc0022e0720045c,0x3ffb239963e7cbf2,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccosh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccosh.csv
new file mode 100644
index 0000000..1b3eda4
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arccosh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x3f83203f,0x3e61d9d6,2
+np.float32,0x3f98dea1,0x3f1d1af6,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0x7eba99af,0x42b0d032,2
+np.float32,0x3fc95a13,0x3f833650,2
+np.float32,0x3fce9a45,0x3f8771e1,2
+np.float32,0x3fc1bd96,0x3f797811,2
+np.float32,0x7eba2391,0x42b0ceed,2
+np.float32,0x7d4e8f15,0x42acdb8c,2
+np.float32,0x3feca42e,0x3f9cc88e,2
+np.float32,0x7e2b314e,0x42af412e,2
+np.float32,0x7f7fffff,0x42b2d4fc,2
+np.float32,0x3f803687,0x3d6c4380,2
+np.float32,0x3fa0edbd,0x3f33e706,2
+np.float32,0x3faa8074,0x3f4b3d3c,2
+np.float32,0x3fa0c49e,0x3f337af3,2
+np.float32,0x3f8c9ec4,0x3ee18812,2
+np.float32,0x7efef78e,0x42b17006,2
+np.float32,0x3fc75720,0x3f818aa4,2
+np.float32,0x7f52d4c8,0x42b27198,2
+np.float32,0x3f88f21e,0x3ebe52b0,2
+np.float32,0x3ff7a042,0x3fa3a07a,2
+np.float32,0x7f52115c,0x42b26fbd,2
+np.float32,0x3fc6bf6f,0x3f810b42,2
+np.float32,0x3fd105d0,0x3f895649,2
+np.float32,0x3fee7c2a,0x3f9df66e,2
+np.float32,0x7f0ff9a5,0x42b1ae4f,2
+np.float32,0x7e81f075,0x42b016e7,2
+np.float32,0x3fa57d65,0x3f3f70c6,2
+np.float32,0x80800000,0xffc00000,2
+np.float32,0x7da239f5,0x42adc2bf,2
+np.float32,0x3f9e432c,0x3f2cbd80,2
+np.float32,0x3ff2839b,0x3fa07ee4,2
+np.float32,0x3fec8aef,0x3f9cb850,2
+np.float32,0x7d325893,0x42ac905b,2
+np.float32,0x3fa27431,0x3f37dade,2
+np.float32,0x3fce7408,0x3f8753ae,2
+np.float32,0x3fde6684,0x3f93353f,2
+np.float32,0x3feb9a3e,0x3f9c1cff,2
+np.float32,0x7deb34bb,0x42ae80f0,2
+np.float32,0x3fed9300,0x3f9d61b7,2
+np.float32,0x7f35e253,0x42b225fb,2
+np.float32,0x7e6db57f,0x42afe93f,2
+np.float32,0x3fa41f08,0x3f3c10bc,2
+np.float32,0x3fb0d4da,0x3f590de3,2
+np.float32,0x3fb5c690,0x3f632351,2
+np.float32,0x3fcde9ce,0x3f86e638,2
+np.float32,0x3f809c7b,0x3dc81161,2
+np.float32,0x3fd77291,0x3f8e3226,2
+np.float32,0x3fc21a06,0x3f7a1a82,2
+np.float32,0x3fba177e,0x3f6b8139,2
+np.float32,0x7f370dff,0x42b22944,2
+np.float32,0x3fe5bfcc,0x3f9841c1,2
+np.float32,0x3feb0caa,0x3f9bc139,2
+np.float32,0x7f4fe5c3,0x42b26a6c,2
+np.float32,0x7f1e1419,0x42b1de28,2
+np.float32,0x7f5e3c96,0x42b28c92,2
+np.float32,0x3f8cd313,0x3ee3521e,2
+np.float32,0x3fa97824,0x3f48e049,2
+np.float32,0x7d8ca281,0x42ad799e,2
+np.float32,0x3f96b51b,0x3f165193,2
+np.float32,0x3f81328a,0x3e0bf504,2
+np.float32,0x3ff60bf3,0x3fa2ab45,2
+np.float32,0x3ff9b629,0x3fa4e107,2
+np.float32,0x3fecacfc,0x3f9cce37,2
+np.float32,0x3fba8804,0x3f6c5600,2
+np.float32,0x3f81f752,0x3e333fdd,2
+np.float32,0x3fb5b262,0x3f62fb46,2
+np.float32,0x3fa21bc0,0x3f36f7e6,2
+np.float32,0x3fbc87bb,0x3f7011dc,2
+np.float32,0x3fe18b32,0x3f9565ae,2
+np.float32,0x7dfb6dd5,0x42aea316,2
+np.float32,0x3fb7c602,0x3f670ee3,2
+np.float32,0x7efeb6a2,0x42b16f84,2
+np.float32,0x3fa56180,0x3f3f2ca4,2
+np.float32,0x3f8dcaff,0x3eeb9ac0,2
+np.float32,0x7e876238,0x42b02beb,2
+np.float32,0x7f0bb67d,0x42b19eec,2
+np.float32,0x3faca01c,0x3f4fffa5,2
+np.float32,0x3fdb57ee,0x3f9108b8,2
+np.float32,0x3fe3bade,0x3f96e4b7,2
+np.float32,0x7f7aa2dd,0x42b2ca25,2
+np.float32,0x3fed92ec,0x3f9d61aa,2
+np.float32,0x7eb789b1,0x42b0c7b9,2
+np.float32,0x7f7f16e4,0x42b2d329,2
+np.float32,0x3fb6647e,0x3f645b84,2
+np.float32,0x3f99335e,0x3f1e1d96,2
+np.float32,0x7e690a11,0x42afdf17,2
+np.float32,0x7dff2f95,0x42aeaaae,2
+np.float32,0x7f70adfd,0x42b2b564,2
+np.float32,0x3fe92252,0x3f9a80fe,2
+np.float32,0x3fef54ce,0x3f9e7fe5,2
+np.float32,0x3ff24eaa,0x3fa05df9,2
+np.float32,0x7f04565a,0x42b18328,2
+np.float32,0x3fcb8b80,0x3f85007f,2
+np.float32,0x3fcd4d0a,0x3f866983,2
+np.float32,0x3fbe7d82,0x3f73a911,2
+np.float32,0x3f8a7a8a,0x3ecdc8f6,2
+np.float32,0x3f912441,0x3f030d56,2
+np.float32,0x3f9b29d6,0x3f23f663,2
+np.float32,0x3fab7f36,0x3f4d7c6c,2
+np.float32,0x7dfedafc,0x42aeaa04,2
+np.float32,0x3fe190c0,0x3f956982,2
+np.float32,0x3f927515,0x3f07e0bb,2
+np.float32,0x3ff6442a,0x3fa2cd7e,2
+np.float32,0x7f6656d0,0x42b29ee8,2
+np.float32,0x3fe29aa0,0x3f96201f,2
+np.float32,0x3fa4a247,0x3f3d5687,2
+np.float32,0x3fa1cf19,0x3f363226,2
+np.float32,0x3fc20037,0x3f79ed36,2
+np.float32,0x7cc1241a,0x42ab5645,2
+np.float32,0x3fafd540,0x3f56f25a,2
+np.float32,0x7e5b3f5f,0x42afbfdb,2
+np.float32,0x7f48de5f,0x42b258d0,2
+np.float32,0x3fce1ca0,0x3f870e85,2
+np.float32,0x7ee40bb2,0x42b136e4,2
+np.float32,0x7ecdb133,0x42b10212,2
+np.float32,0x3f9f181c,0x3f2f02ca,2
+np.float32,0x3f936cbf,0x3f0b4f63,2
+np.float32,0x3fa4f8ea,0x3f3e2c2f,2
+np.float32,0x3fcc03e2,0x3f8561ac,2
+np.float32,0x3fb801f2,0x3f67831b,2
+np.float32,0x7e141dad,0x42aef70c,2
+np.float32,0x3fe8c04e,0x3f9a4087,2
+np.float32,0x3f8548d5,0x3e929f37,2
+np.float32,0x7f148d7d,0x42b1be56,2
+np.float32,0x3fd2c9a2,0x3f8ab1ed,2
+np.float32,0x7eb374fd,0x42b0bc36,2
+np.float32,0x7f296d36,0x42b201a7,2
+np.float32,0x3ff138e2,0x3f9fb09d,2
+np.float32,0x3ff42898,0x3fa18347,2
+np.float32,0x7da8c5e1,0x42add700,2
+np.float32,0x7dcf72c4,0x42ae40a4,2
+np.float32,0x7ea571fc,0x42b09296,2
+np.float32,0x3fc0953d,0x3f776ba3,2
+np.float32,0x7f1773dd,0x42b1c83c,2
+np.float32,0x7ef53b68,0x42b15c17,2
+np.float32,0x3f85d69f,0x3e9a0f3a,2
+np.float32,0x7e8b9a05,0x42b03ba0,2
+np.float32,0x3ff07d20,0x3f9f3ad2,2
+np.float32,0x7e8da32c,0x42b0430a,2
+np.float32,0x7ef96004,0x42b164ab,2
+np.float32,0x3fdfaa62,0x3f941837,2
+np.float32,0x7f0057c5,0x42b17377,2
+np.float32,0x3fb2663f,0x3f5c5065,2
+np.float32,0x3fd3d8c3,0x3f8b8055,2
+np.float32,0x1,0xffc00000,2
+np.float32,0x3fd536c1,0x3f8c8862,2
+np.float32,0x3f91b953,0x3f053619,2
+np.float32,0x3fb3305c,0x3f5deee1,2
+np.float32,0x7ecd86b9,0x42b101a8,2
+np.float32,0x3fbf71c5,0x3f75624d,2
+np.float32,0x3ff5f0f4,0x3fa29ad2,2
+np.float32,0x3fe50389,0x3f97c328,2
+np.float32,0x3fa325a1,0x3f399e69,2
+np.float32,0x3fe4397a,0x3f973a9f,2
+np.float32,0x3f8684c6,0x3ea2b784,2
+np.float32,0x7f25ae00,0x42b1f634,2
+np.float32,0x3ff7cbf7,0x3fa3badb,2
+np.float32,0x7f73f0e0,0x42b2bc48,2
+np.float32,0x3fc88b70,0x3f828b92,2
+np.float32,0x3fb01c16,0x3f578886,2
+np.float32,0x7e557623,0x42afb229,2
+np.float32,0x3fcbcd5b,0x3f8535b4,2
+np.float32,0x7f7157e4,0x42b2b6cd,2
+np.float32,0x7f51d9d4,0x42b26f36,2
+np.float32,0x7f331a3b,0x42b21e17,2
+np.float32,0x7f777fb5,0x42b2c3b2,2
+np.float32,0x3f832001,0x3e61d11f,2
+np.float32,0x7f2cd055,0x42b20bca,2
+np.float32,0x3f89831f,0x3ec42f76,2
+np.float32,0x7f21da33,0x42b1ea3d,2
+np.float32,0x3f99e416,0x3f20330a,2
+np.float32,0x7f2c8ea1,0x42b20b07,2
+np.float32,0x7f462c98,0x42b251e6,2
+np.float32,0x7f4fdb3f,0x42b26a52,2
+np.float32,0x3fcc1338,0x3f856e07,2
+np.float32,0x3f823673,0x3e3e20da,2
+np.float32,0x7dbfe89d,0x42ae18c6,2
+np.float32,0x3fc9b04c,0x3f837d38,2
+np.float32,0x7dba3213,0x42ae094d,2
+np.float32,0x7ec5a483,0x42b0eda1,2
+np.float32,0x3fbc4d14,0x3f6fa543,2
+np.float32,0x3fc85ce2,0x3f8264f1,2
+np.float32,0x7f77c816,0x42b2c447,2
+np.float32,0x3f9c9281,0x3f280492,2
+np.float32,0x7f49b3e2,0x42b25aef,2
+np.float32,0x3fa7e4da,0x3f45347c,2
+np.float32,0x7e0c9df5,0x42aedc72,2
+np.float32,0x7f21fd1a,0x42b1eaab,2
+np.float32,0x7f7c63ad,0x42b2cdb6,2
+np.float32,0x7f4eb80a,0x42b26783,2
+np.float32,0x7e98038c,0x42b0673c,2
+np.float32,0x7e89ba08,0x42b034b4,2
+np.float32,0x3ffc06ba,0x3fa64094,2
+np.float32,0x3fae63f6,0x3f53db36,2
+np.float32,0x3fbc2d30,0x3f6f6a1c,2
+np.float32,0x7de0e5e5,0x42ae69fe,2
+np.float32,0x7e09ed18,0x42aed28d,2
+np.float32,0x3fea78f8,0x3f9b6129,2
+np.float32,0x7dfe0bcc,0x42aea863,2
+np.float32,0x7ee21d03,0x42b13289,2
+np.float32,0x3fcc3aed,0x3f858dfc,2
+np.float32,0x3fe6b3ba,0x3f98e4ea,2
+np.float32,0x3f90f25f,0x3f025225,2
+np.float32,0x7f1bcaf4,0x42b1d6b3,2
+np.float32,0x3f83ac81,0x3e74c20e,2
+np.float32,0x3f98681d,0x3f1bae16,2
+np.float32,0x3fe1f2d9,0x3f95ad08,2
+np.float32,0x3fa279d7,0x3f37e951,2
+np.float32,0x3feb922a,0x3f9c17c4,2
+np.float32,0x7f1c72e8,0x42b1d8da,2
+np.float32,0x3fea156b,0x3f9b2038,2
+np.float32,0x3fed6bda,0x3f9d48aa,2
+np.float32,0x3fa86142,0x3f46589c,2
+np.float32,0x3ff16bc2,0x3f9fd072,2
+np.float32,0x3fbebf65,0x3f74207b,2
+np.float32,0x7e7b78b5,0x42b00610,2
+np.float32,0x3ff51ab8,0x3fa217f0,2
+np.float32,0x3f8361bb,0x3e6adf07,2
+np.float32,0x7edbceed,0x42b1240e,2
+np.float32,0x7f10e2c0,0x42b1b18a,2
+np.float32,0x3fa7bc58,0x3f44d4ef,2
+np.float32,0x3f813bde,0x3e0e1138,2
+np.float32,0x7f30d5b9,0x42b21791,2
+np.float32,0x3fb4f450,0x3f61806a,2
+np.float32,0x7eee02c4,0x42b14cca,2
+np.float32,0x7ec74b62,0x42b0f1e4,2
+np.float32,0x3ff96bca,0x3fa4b498,2
+np.float32,0x7f50e304,0x42b26cda,2
+np.float32,0x7eb14c57,0x42b0b603,2
+np.float32,0x7c3f0733,0x42a9edbf,2
+np.float32,0x7ea57acb,0x42b092b1,2
+np.float32,0x7f2788dc,0x42b1fbe7,2
+np.float32,0x3fa39f14,0x3f3ad09b,2
+np.float32,0x3fc3a7e0,0x3f7ccfa0,2
+np.float32,0x3fe70a73,0x3f991eb0,2
+np.float32,0x7f4831f7,0x42b25718,2
+np.float32,0x3fe947d0,0x3f9a999c,2
+np.float32,0x7ef2b1c7,0x42b156c4,2
+np.float32,0x3fede0ea,0x3f9d937f,2
+np.float32,0x3f9fef8e,0x3f314637,2
+np.float32,0x3fc313c5,0x3f7bcebd,2
+np.float32,0x7ee99337,0x42b14328,2
+np.float32,0x7eb9042e,0x42b0cbd5,2
+np.float32,0x3fc9d3dc,0x3f839a69,2
+np.float32,0x3fb2c018,0x3f5d091d,2
+np.float32,0x3fcc4e8f,0x3f859dc5,2
+np.float32,0x3fa9363b,0x3f484819,2
+np.float32,0x7f72ce2e,0x42b2b9e4,2
+np.float32,0x7e639326,0x42afd2f1,2
+np.float32,0x7f4595d3,0x42b25060,2
+np.float32,0x7f6d0ac4,0x42b2ad97,2
+np.float32,0x7f1bda0d,0x42b1d6e5,2
+np.float32,0x3fd85ffd,0x3f8ee0ed,2
+np.float32,0x3f91d53f,0x3f059c8e,2
+np.float32,0x7d06e103,0x42ac0155,2
+np.float32,0x3fb83126,0x3f67de6e,2
+np.float32,0x7d81ce1f,0x42ad5097,2
+np.float32,0x7f79cb3b,0x42b2c86b,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0x3fdbfffd,0x3f918137,2
+np.float32,0x7f4ecb1c,0x42b267b2,2
+np.float32,0x3fc2c122,0x3f7b3ed3,2
+np.float32,0x7f415854,0x42b24544,2
+np.float32,0x7e3d988b,0x42af7575,2
+np.float32,0x3f83ca99,0x3e789fcb,2
+np.float32,0x7f274f70,0x42b1fb38,2
+np.float32,0x7f0d20e6,0x42b1a416,2
+np.float32,0x3fdf3a1d,0x3f93c9c1,2
+np.float32,0x7efaa13e,0x42b1673d,2
+np.float32,0x3fb20b15,0x3f5b9434,2
+np.float32,0x3f86af9f,0x3ea4c664,2
+np.float32,0x3fe4fcb0,0x3f97be8a,2
+np.float32,0x3f920683,0x3f065085,2
+np.float32,0x3fa4b278,0x3f3d7e8b,2
+np.float32,0x3f8077a8,0x3daef77f,2
+np.float32,0x7e865be4,0x42b02807,2
+np.float32,0x3fcea7e2,0x3f877c9f,2
+np.float32,0x7e7e9db1,0x42b00c6d,2
+np.float32,0x3f9819aa,0x3f1aba7e,2
+np.float32,0x7f2b6c4b,0x42b207a7,2
+np.float32,0x7ef85e3e,0x42b16299,2
+np.float32,0x3fbd8290,0x3f71df8b,2
+np.float32,0x3fbbb615,0x3f6e8c8c,2
+np.float32,0x7f1bc7f5,0x42b1d6a9,2
+np.float32,0x3fbb4fea,0x3f6dcdad,2
+np.float32,0x3fb67e09,0x3f648dd1,2
+np.float32,0x3fc83495,0x3f824374,2
+np.float32,0x3fe52980,0x3f97dcbc,2
+np.float32,0x3f87d893,0x3eb25d7c,2
+np.float32,0x3fdb805a,0x3f9125c0,2
+np.float32,0x3fb33f0f,0x3f5e0ce1,2
+np.float32,0x3facc524,0x3f50516b,2
+np.float32,0x3ff40484,0x3fa16d0e,2
+np.float32,0x3ff078bf,0x3f9f3811,2
+np.float32,0x7f736747,0x42b2bb27,2
+np.float32,0x7f55768b,0x42b277f3,2
+np.float32,0x80000001,0xffc00000,2
+np.float32,0x7f6463d1,0x42b29a8e,2
+np.float32,0x3f8f8b59,0x3ef9d792,2
+np.float32,0x3f8a6f4d,0x3ecd5bf4,2
+np.float32,0x3fe958d9,0x3f9aa4ca,2
+np.float32,0x7f1e2ce2,0x42b1de78,2
+np.float32,0x3fb8584a,0x3f682a05,2
+np.float32,0x7dea3dc6,0x42ae7ed5,2
+np.float32,0x7f53a815,0x42b27399,2
+np.float32,0x7e0cf986,0x42aeddbf,2
+np.float32,0x7f3afb71,0x42b23422,2
+np.float32,0x3fd87d6e,0x3f8ef685,2
+np.float32,0x3ffcaa46,0x3fa6a0d7,2
+np.float32,0x7eecd276,0x42b14a3a,2
+np.float32,0x3ffc30b4,0x3fa65951,2
+np.float32,0x7e9c85e2,0x42b07634,2
+np.float32,0x3f95d862,0x3f1383de,2
+np.float32,0x7ef21410,0x42b15577,2
+np.float32,0x3fbfa1b5,0x3f75b86e,2
+np.float32,0x3fd6d90f,0x3f8dc086,2
+np.float32,0x0,0xffc00000,2
+np.float32,0x7e885dcd,0x42b02f9f,2
+np.float32,0x3fb3e057,0x3f5f54bf,2
+np.float32,0x7f40afdd,0x42b24385,2
+np.float32,0x3fb795c2,0x3f66b120,2
+np.float32,0x3fba7c11,0x3f6c3f73,2
+np.float32,0x3ffef620,0x3fa7f828,2
+np.float32,0x7d430508,0x42acbe1e,2
+np.float32,0x3f8d2892,0x3ee6369f,2
+np.float32,0x3fbea139,0x3f73e9d5,2
+np.float32,0x3ffaa928,0x3fa571b9,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x7f16f9ce,0x42b1c69f,2
+np.float32,0x3fa8f753,0x3f47b657,2
+np.float32,0x3fd48a63,0x3f8c06ac,2
+np.float32,0x7f13419e,0x42b1b9d9,2
+np.float32,0x3fdf1526,0x3f93afde,2
+np.float32,0x3f903c8b,0x3eff3be8,2
+np.float32,0x7f085323,0x42b1925b,2
+np.float32,0x7cdbe309,0x42ab98ac,2
+np.float32,0x3fba2cfd,0x3f6ba9f1,2
+np.float32,0x7f5a805d,0x42b283e4,2
+np.float32,0x7f6753dd,0x42b2a119,2
+np.float32,0x3fed9f02,0x3f9d6964,2
+np.float32,0x3f96422c,0x3f14ddba,2
+np.float32,0x7f22f2a9,0x42b1edb1,2
+np.float32,0x3fe3fcfd,0x3f97119d,2
+np.float32,0x7e018ad0,0x42aeb271,2
+np.float32,0x7db896f5,0x42ae04de,2
+np.float32,0x7e55c795,0x42afb2ec,2
+np.float32,0x7f58ef8d,0x42b28036,2
+np.float32,0x7f24a16a,0x42b1f2f3,2
+np.float32,0x3fcf714c,0x3f881b09,2
+np.float32,0x3fcdd056,0x3f86d200,2
+np.float32,0x7f02fad0,0x42b17de0,2
+np.float32,0x7eeab877,0x42b145a9,2
+np.float32,0x3fd6029d,0x3f8d20f7,2
+np.float32,0x3fd4f8cd,0x3f8c59d6,2
+np.float32,0x3fb29d4a,0x3f5cc1a5,2
+np.float32,0x3fb11e2d,0x3f59a77a,2
+np.float32,0x7eded576,0x42b12b0e,2
+np.float32,0x7f26c2a5,0x42b1f988,2
+np.float32,0x3fb6165b,0x3f63c151,2
+np.float32,0x7f3bca47,0x42b23657,2
+np.float32,0x7d8c93bf,0x42ad7968,2
+np.float32,0x3f8ede02,0x3ef47176,2
+np.float32,0x3fbef762,0x3f7485b9,2
+np.float32,0x7f1419af,0x42b1bcc6,2
+np.float32,0x7d9e8c79,0x42adb701,2
+np.float32,0x3fa26336,0x3f37af63,2
+np.float32,0x7f5f5590,0x42b28f18,2
+np.float32,0x3fddc93a,0x3f92c651,2
+np.float32,0x3ff0a5fc,0x3f9f547f,2
+np.float32,0x3fb2f6b8,0x3f5d790e,2
+np.float32,0x3ffe59a4,0x3fa79d2c,2
+np.float32,0x7e4df848,0x42af9fde,2
+np.float32,0x3fb0ab3b,0x3f58b678,2
+np.float32,0x7ea54d47,0x42b09225,2
+np.float32,0x3fdd6404,0x3f927eb2,2
+np.float32,0x3f846dc0,0x3e864caa,2
+np.float32,0x7d046aee,0x42abf7e7,2
+np.float32,0x7f7c5a05,0x42b2cda3,2
+np.float32,0x3faf6126,0x3f55fb21,2
+np.float32,0x7f36a910,0x42b22829,2
+np.float32,0x3fdc7b36,0x3f91d938,2
+np.float32,0x3fff443e,0x3fa82577,2
+np.float32,0x7ee7154a,0x42b13daa,2
+np.float32,0x3f944742,0x3f0e435c,2
+np.float32,0x7f5b510a,0x42b285cc,2
+np.float32,0x3f9bc940,0x3f25c4d2,2
+np.float32,0x3fee4782,0x3f9dd4ea,2
+np.float32,0x3fcfc2dd,0x3f885aea,2
+np.float32,0x7eab65cf,0x42b0a4af,2
+np.float32,0x3f9cf908,0x3f292689,2
+np.float32,0x7ed35501,0x42b10feb,2
+np.float32,0x7dabb70a,0x42addfd9,2
+np.float32,0x7f348919,0x42b2222b,2
+np.float32,0x3fb137d4,0x3f59dd17,2
+np.float32,0x7e7b36c9,0x42b0058a,2
+np.float32,0x7e351fa4,0x42af5e0d,2
+np.float32,0x3f973c0c,0x3f18011e,2
+np.float32,0xff800000,0xffc00000,2
+np.float32,0x3f9b0a4b,0x3f239a33,2
+np.float32,0x3f87c4cf,0x3eb17e7e,2
+np.float32,0x7ef67760,0x42b15eaa,2
+np.float32,0x3fc4d2c8,0x3f7ed20f,2
+np.float32,0x7e940dac,0x42b059b8,2
+np.float32,0x7f6e6a52,0x42b2b08d,2
+np.float32,0x3f838752,0x3e6fe4b2,2
+np.float32,0x3fd8f046,0x3f8f4a94,2
+np.float32,0x3fa82112,0x3f45c223,2
+np.float32,0x3fd49b16,0x3f8c1345,2
+np.float32,0x7f02a941,0x42b17ca1,2
+np.float32,0x3f8a9d2c,0x3ecf1768,2
+np.float32,0x7c9372e3,0x42aacc0f,2
+np.float32,0x3fd260b3,0x3f8a619a,2
+np.float32,0x3f8a1b88,0x3eca27cb,2
+np.float32,0x7d25d510,0x42ac6b1c,2
+np.float32,0x7ef5a578,0x42b15cf5,2
+np.float32,0x3fe6625d,0x3f98ae9a,2
+np.float32,0x3ff53240,0x3fa22658,2
+np.float32,0x3f8bb2e6,0x3ed944cf,2
+np.float32,0x7f4679b1,0x42b252ad,2
+np.float32,0x3fa8db30,0x3f4774fc,2
+np.float32,0x7ee5fafd,0x42b13b37,2
+np.float32,0x3fc405e0,0x3f7d71fb,2
+np.float32,0x3f9303cd,0x3f09ddfd,2
+np.float32,0x7f486e67,0x42b257b2,2
+np.float32,0x7e73f12b,0x42aff680,2
+np.float32,0x3fe80f8b,0x3f99cbe4,2
+np.float32,0x3f84200a,0x3e81a3f3,2
+np.float32,0x3fa14e5c,0x3f34e3ce,2
+np.float32,0x3fda22ec,0x3f9029bb,2
+np.float32,0x3f801772,0x3d1aef98,2
+np.float32,0x7eaa1428,0x42b0a0bb,2
+np.float32,0x3feae0b3,0x3f9ba4aa,2
+np.float32,0x7ea439b4,0x42b08ecc,2
+np.float32,0x3fa28b1c,0x3f381579,2
+np.float32,0x7e8af247,0x42b03937,2
+np.float32,0x3fd19216,0x3f89c2b7,2
+np.float32,0x7f6ea033,0x42b2b100,2
+np.float32,0x3fad4fbf,0x3f518224,2
+np.float32,0x3febd940,0x3f9c45bd,2
+np.float32,0x7f4643a3,0x42b25221,2
+np.float32,0x7ec34478,0x42b0e771,2
+np.float32,0x7f18c83b,0x42b1ccb5,2
+np.float32,0x3fc665ad,0x3f80bf94,2
+np.float32,0x3ff0a999,0x3f9f56c4,2
+np.float32,0x3faf1cd2,0x3f5568fe,2
+np.float32,0x7ecd9dc6,0x42b101e1,2
+np.float32,0x3faad282,0x3f4bf754,2
+np.float32,0x3ff905a0,0x3fa47771,2
+np.float32,0x7f596481,0x42b28149,2
+np.float32,0x7f1cb31f,0x42b1d9ac,2
+np.float32,0x7e266719,0x42af32a6,2
+np.float32,0x7eccce06,0x42b0ffdb,2
+np.float32,0x3f9b6f71,0x3f24c102,2
+np.float32,0x3f80e4ba,0x3df1d6bc,2
+np.float32,0x3f843d51,0x3e836a60,2
+np.float32,0x7f70bd88,0x42b2b585,2
+np.float32,0x3fe4cc96,0x3f979e18,2
+np.float32,0x3ff737c7,0x3fa36151,2
+np.float32,0x3ff1197e,0x3f9f9cf4,2
+np.float32,0x7f08e190,0x42b19471,2
+np.float32,0x3ff1542e,0x3f9fc1b2,2
+np.float32,0x3ff6673c,0x3fa2e2d2,2
+np.float32,0xbf800000,0xffc00000,2
+np.float32,0x7e3f9ba7,0x42af7add,2
+np.float32,0x7f658ff6,0x42b29d2d,2
+np.float32,0x3f93441c,0x3f0ac0d9,2
+np.float32,0x7f526a74,0x42b27096,2
+np.float32,0x7f5b00c8,0x42b28511,2
+np.float32,0x3ff212f8,0x3fa038cf,2
+np.float32,0x7e0bd60d,0x42aed998,2
+np.float32,0x7f71ef7f,0x42b2b80e,2
+np.float32,0x7f7a897e,0x42b2c9f1,2
+np.float32,0x7e8b76a6,0x42b03b1e,2
+np.float32,0x7efa0da3,0x42b1660f,2
+np.float32,0x3fce9166,0x3f876ae0,2
+np.float32,0x3fc4163d,0x3f7d8e30,2
+np.float32,0x3fdb3784,0x3f90f16b,2
+np.float32,0x7c5f177b,0x42aa3d30,2
+np.float32,0x3fc6276d,0x3f808af5,2
+np.float32,0x7bac9cc2,0x42a856f4,2
+np.float32,0x3fe5876f,0x3f981bea,2
+np.float32,0x3fef60e3,0x3f9e878a,2
+np.float32,0x3fb23cd8,0x3f5bfb06,2
+np.float32,0x3fe114e2,0x3f951402,2
+np.float32,0x7ca8ef04,0x42ab11b4,2
+np.float32,0x7d93c2ad,0x42ad92ec,2
+np.float32,0x3fe5bb8a,0x3f983ee6,2
+np.float32,0x7f0182fd,0x42b1781b,2
+np.float32,0x7da63bb2,0x42adcf3d,2
+np.float32,0x3fac46b7,0x3f4f399e,2
+np.float32,0x7f7a5d8f,0x42b2c997,2
+np.float32,0x7f76572e,0x42b2c14b,2
+np.float32,0x7f42d53e,0x42b24931,2
+np.float32,0x7f7ffd00,0x42b2d4f6,2
+np.float32,0x3fc346c3,0x3f7c2756,2
+np.float32,0x7f1f6ae3,0x42b1e27a,2
+np.float32,0x3f87fb56,0x3eb3e2ee,2
+np.float32,0x3fed17a2,0x3f9d12b4,2
+np.float32,0x7f5ea903,0x42b28d8c,2
+np.float32,0x3f967f82,0x3f15a4ab,2
+np.float32,0x7d3b540c,0x42aca984,2
+np.float32,0x7f56711a,0x42b27a4a,2
+np.float32,0x7f122223,0x42b1b5ee,2
+np.float32,0x3fd6fa34,0x3f8dd919,2
+np.float32,0x3fadd62e,0x3f52a7b3,2
+np.float32,0x3fb7bf0c,0x3f67015f,2
+np.float32,0x7edf4ba7,0x42b12c1d,2
+np.float32,0x7e33cc65,0x42af5a4b,2
+np.float32,0x3fa6be17,0x3f427831,2
+np.float32,0x3fa07aa8,0x3f32b7d4,2
+np.float32,0x3fa4a3af,0x3f3d5a01,2
+np.float32,0x3fdbb267,0x3f9149a8,2
+np.float32,0x7ed45e25,0x42b1126c,2
+np.float32,0x3fe3f432,0x3f970ba6,2
+np.float32,0x7f752080,0x42b2bec3,2
+np.float32,0x3f872747,0x3eaa62ea,2
+np.float32,0x7e52175d,0x42afaa03,2
+np.float32,0x3fdc766c,0x3f91d5ce,2
+np.float32,0x7ecd6841,0x42b1015c,2
+np.float32,0x7f3d6c40,0x42b23ac6,2
+np.float32,0x3fb80c14,0x3f6796b9,2
+np.float32,0x3ff6ad56,0x3fa30d68,2
+np.float32,0x3fda44c3,0x3f90423e,2
+np.float32,0x3fdcba0c,0x3f9205fc,2
+np.float32,0x7e14a720,0x42aef8e6,2
+np.float32,0x3fe9e489,0x3f9b0047,2
+np.float32,0x7e69f933,0x42afe123,2
+np.float32,0x3ff3ee6d,0x3fa15f71,2
+np.float32,0x3f8538cd,0x3e91c1a7,2
+np.float32,0x3fdc3f07,0x3f91ae46,2
+np.float32,0x3fba2ef0,0x3f6bada2,2
+np.float32,0x7da64cd8,0x42adcf71,2
+np.float32,0x3fc34bd2,0x3f7c301d,2
+np.float32,0x3fa273aa,0x3f37d984,2
+np.float32,0x3ff0338c,0x3f9f0c86,2
+np.float32,0x7ed62cef,0x42b116c3,2
+np.float32,0x3f911e7e,0x3f02f7c6,2
+np.float32,0x7c8514c9,0x42aa9792,2
+np.float32,0x3fea2a74,0x3f9b2df5,2
+np.float32,0x3fe036f8,0x3f947a25,2
+np.float32,0x7c5654bf,0x42aa28ad,2
+np.float32,0x3fd9e423,0x3f8ffc32,2
+np.float32,0x7eec0439,0x42b1487b,2
+np.float32,0x3fc580f4,0x3f7ffb62,2
+np.float32,0x3fb0e316,0x3f592bbe,2
+np.float32,0x7c4cfb7d,0x42aa11d8,2
+np.float32,0x3faf9704,0x3f566e00,2
+np.float32,0x3fa7cf8a,0x3f45023d,2
+np.float32,0x7f7b724d,0x42b2cbcc,2
+np.float32,0x7f05bfe3,0x42b18897,2
+np.float32,0x3f90bde3,0x3f018bf3,2
+np.float32,0x7c565479,0x42aa28ad,2
+np.float32,0x3f94b517,0x3f0fb8e5,2
+np.float32,0x3fd6aadd,0x3f8d9e3c,2
+np.float32,0x7f09b37c,0x42b1977f,2
+np.float32,0x7f2b45ea,0x42b20734,2
+np.float32,0x3ff1d15e,0x3fa00fe9,2
+np.float32,0x3f99bce6,0x3f1fbd6c,2
+np.float32,0x7ecd1f76,0x42b100a7,2
+np.float32,0x7f443e2b,0x42b24ce2,2
+np.float32,0x7da7d6a5,0x42add428,2
+np.float32,0x7ebe0193,0x42b0d975,2
+np.float32,0x7ee13c43,0x42b1308b,2
+np.float32,0x3f8adf1b,0x3ed18e0c,2
+np.float32,0x7f76ce65,0x42b2c242,2
+np.float32,0x7e34f43d,0x42af5d92,2
+np.float32,0x7f306b76,0x42b2165d,2
+np.float32,0x7e1fd07f,0x42af1df7,2
+np.float32,0x3fab9a41,0x3f4db909,2
+np.float32,0x3fc23d1a,0x3f7a5803,2
+np.float32,0x3f8b7403,0x3ed70245,2
+np.float32,0x3f8c4dd6,0x3edebbae,2
+np.float32,0x3fe5f411,0x3f9864cd,2
+np.float32,0x3f88128b,0x3eb4e508,2
+np.float32,0x3fcb09de,0x3f84976f,2
+np.float32,0x7f32f2f5,0x42b21da6,2
+np.float32,0x3fe75610,0x3f9950f6,2
+np.float32,0x3f993edf,0x3f1e408d,2
+np.float32,0x3fc4a9d7,0x3f7e8be9,2
+np.float32,0x7f74551a,0x42b2bd1a,2
+np.float32,0x7de87129,0x42ae7ae2,2
+np.float32,0x7f18bbbd,0x42b1cc8c,2
+np.float32,0x7e7e1dd4,0x42b00b6c,2
+np.float32,0x3ff6e55b,0x3fa32f64,2
+np.float32,0x3fa634c8,0x3f412df3,2
+np.float32,0x3fd0fb7c,0x3f894e49,2
+np.float32,0x3ff4f6a6,0x3fa201d7,2
+np.float32,0x7f69d418,0x42b2a69a,2
+np.float32,0x7cb9632d,0x42ab414a,2
+np.float32,0x3fc57d36,0x3f7ff503,2
+np.float32,0x7e9e2ed7,0x42b07b9b,2
+np.float32,0x7f2e6868,0x42b2107d,2
+np.float32,0x3fa3169a,0x3f39785d,2
+np.float32,0x7f03cde0,0x42b18117,2
+np.float32,0x7f6d75d2,0x42b2ae7f,2
+np.float32,0x3ff483f2,0x3fa1bb75,2
+np.float32,0x7f1b39f7,0x42b1d4d6,2
+np.float32,0x3f8c7a7d,0x3ee0481e,2
+np.float32,0x3f989095,0x3f1c2b19,2
+np.float32,0x3fa4cbfd,0x3f3dbd87,2
+np.float32,0x7f75b00f,0x42b2bfef,2
+np.float32,0x3f940724,0x3f0d6756,2
+np.float32,0x7f5e5a1a,0x42b28cd6,2
+np.float32,0x800000,0xffc00000,2
+np.float32,0x7edd1d29,0x42b12716,2
+np.float32,0x3fa3e9e4,0x3f3b8c16,2
+np.float32,0x7e46d70e,0x42af8dd5,2
+np.float32,0x3f824745,0x3e40ec1e,2
+np.float32,0x3fd67623,0x3f8d770a,2
+np.float32,0x3fe9a6f3,0x3f9ad7fa,2
+np.float32,0x3fdda67c,0x3f92adc1,2
+np.float32,0x7ccb6c9a,0x42ab70d4,2
+np.float32,0x3ffd364a,0x3fa6f2fe,2
+np.float32,0x7e02424c,0x42aeb545,2
+np.float32,0x3fb6d2f2,0x3f6534a1,2
+np.float32,0x3fe1fe26,0x3f95b4cc,2
+np.float32,0x7e93ac57,0x42b05867,2
+np.float32,0x7f7b3433,0x42b2cb4d,2
+np.float32,0x3fb76803,0x3f66580d,2
+np.float32,0x3f9af881,0x3f23661b,2
+np.float32,0x3fd58062,0x3f8cbf98,2
+np.float32,0x80000000,0xffc00000,2
+np.float32,0x7f1af8f4,0x42b1d3ff,2
+np.float32,0x3fe66bba,0x3f98b4dc,2
+np.float32,0x7f6bd7bf,0x42b2aaff,2
+np.float32,0x3f84f79a,0x3e8e2e49,2
+np.float32,0x7e475b06,0x42af8f28,2
+np.float32,0x3faff89b,0x3f573d5e,2
+np.float32,0x7de5aa77,0x42ae74bb,2
+np.float32,0x3f8e9e42,0x3ef26cd2,2
+np.float32,0x3fb1cec3,0x3f5b1740,2
+np.float32,0x3f8890d6,0x3eba4821,2
+np.float32,0x3f9b39e9,0x3f242547,2
+np.float32,0x3fc895a4,0x3f829407,2
+np.float32,0x7f77943c,0x42b2c3dc,2
+np.float32,0x7f390d58,0x42b22ed2,2
+np.float32,0x3fe7e160,0x3f99ad58,2
+np.float32,0x3f93d2a0,0x3f0cb205,2
+np.float32,0x7f29499b,0x42b2013c,2
+np.float32,0x3f8c11b2,0x3edca10f,2
+np.float32,0x7e898ef8,0x42b03413,2
+np.float32,0x3fdff942,0x3f944f34,2
+np.float32,0x7f3d602f,0x42b23aa5,2
+np.float32,0x3f8a50f3,0x3ecc345b,2
+np.float32,0x3fa1f86d,0x3f369ce4,2
+np.float32,0x3f97ad95,0x3f19681d,2
+np.float32,0x3ffad1e0,0x3fa589e5,2
+np.float32,0x3fa70590,0x3f432311,2
+np.float32,0x7e6840cb,0x42afdd5c,2
+np.float32,0x3fd4036d,0x3f8ba0aa,2
+np.float32,0x7f7cc953,0x42b2ce84,2
+np.float32,0x7f228e1e,0x42b1ec74,2
+np.float32,0x7e37a866,0x42af652a,2
+np.float32,0x3fda22d0,0x3f9029a7,2
+np.float32,0x7f736bff,0x42b2bb31,2
+np.float32,0x3f9833b6,0x3f1b0b8e,2
+np.float32,0x7f466001,0x42b2526a,2
+np.float32,0xff7fffff,0xffc00000,2
+np.float32,0x7dd62bcd,0x42ae50f8,2
+np.float32,0x7f1d2bfe,0x42b1db36,2
+np.float32,0x7ecffe9e,0x42b107c5,2
+np.float32,0x7ebefe0a,0x42b0dc1b,2
+np.float32,0x7f45c63d,0x42b250dd,2
+np.float32,0x7f601af0,0x42b290db,2
+np.float32,0x3fcbb88a,0x3f8524e5,2
+np.float32,0x7ede55ff,0x42b129e8,2
+np.float32,0x7ea5dd5a,0x42b093e2,2
+np.float32,0x3ff53857,0x3fa22a12,2
+np.float32,0x3f8dbd6a,0x3eeb28a4,2
+np.float32,0x3fd1b467,0x3f89dd2c,2
+np.float32,0x3fe0423f,0x3f9481fc,2
+np.float32,0x3f84b421,0x3e8a6174,2
+np.float32,0x7f4efc97,0x42b2682c,2
+np.float32,0x7f601b33,0x42b290dc,2
+np.float32,0x3f94f240,0x3f108719,2
+np.float32,0x7decd251,0x42ae8471,2
+np.float32,0x3fdc457c,0x3f91b2e2,2
+np.float32,0x3f92a966,0x3f089c5a,2
+np.float32,0x3fc9732f,0x3f834afc,2
+np.float32,0x3f97948f,0x3f19194e,2
+np.float32,0x7f0824a1,0x42b191ac,2
+np.float32,0x7f0365a5,0x42b17f81,2
+np.float32,0x3f800000,0x0,2
+np.float32,0x7f0054c6,0x42b1736b,2
+np.float32,0x3fe86544,0x3f9a0484,2
+np.float32,0x7e95f844,0x42b0604e,2
+np.float32,0x3fce8602,0x3f8761e2,2
+np.float32,0x3fc726c8,0x3f81621d,2
+np.float32,0x3fcf6b03,0x3f88161b,2
+np.float32,0x3fceb843,0x3f87898a,2
+np.float32,0x3fe2f8b2,0x3f966071,2
+np.float32,0x7f3c8e7f,0x42b2386d,2
+np.float32,0x3fcee13a,0x3f87a9d2,2
+np.float32,0x3fc4df27,0x3f7ee73c,2
+np.float32,0x3ffde486,0x3fa758e3,2
+np.float32,0x3fa91be0,0x3f480b17,2
+np.float32,0x7f2a5a7d,0x42b20472,2
+np.float32,0x7e278d80,0x42af362d,2
+np.float32,0x3f96d091,0x3f16a9d5,2
+np.float32,0x7e925225,0x42b053b2,2
+np.float32,0x7f7ef83a,0x42b2d2ec,2
+np.float32,0x7eb4923a,0x42b0bf61,2
+np.float32,0x7e98bf19,0x42b069b3,2
+np.float32,0x3fac93a2,0x3f4fe410,2
+np.float32,0x7f46389c,0x42b25205,2
+np.float32,0x3f9fd447,0x3f30fd54,2
+np.float32,0x3fef42d4,0x3f9e7483,2
+np.float32,0x7f482174,0x42b256ed,2
+np.float32,0x3f97aedb,0x3f196c1e,2
+np.float32,0x7f764edd,0x42b2c13a,2
+np.float32,0x3f9117b5,0x3f02de5c,2
+np.float32,0x3fc7984e,0x3f81c12d,2
+np.float64,0x3ff1e2cb7463c597,0x3fdec6caf39e0c0e,1
+np.float64,0x3ffe4f89789c9f13,0x3ff40f4b1da0f3e9,1
+np.float64,0x7f6a5c9ac034b935,0x408605e51703c145,1
+np.float64,0x7fdcb6ece3b96dd9,0x40862d6521e16d60,1
+np.float64,0x3ff6563e182cac7c,0x3feb9d8210f3fa88,1
+np.float64,0x7fde32025f3c6404,0x40862dcc1d1a9b7f,1
+np.float64,0x7fd755ed35aeabd9,0x40862bbc5522b779,1
+np.float64,0x3ff5c81f4bcb903e,0x3fea71f10b954ea3,1
+np.float64,0x3fffe805d35fd00c,0x3ff50463a1ba2938,1
+np.float64,0x7fd045a1c1a08b43,0x408628d9f431f2f5,1
+np.float64,0x3ff49f7dd9893efc,0x3fe7c6736e17ea8e,1
+np.float64,0x7fccfbc1fd39f783,0x408627eca79acf51,1
+np.float64,0x3ff1af0a00035e14,0x3fdd1c0e7d5706ea,1
+np.float64,0x7fe7bd17162f7a2d,0x4086316af683502b,1
+np.float64,0x3ff0941b8d012837,0x3fd128d274065ac0,1
+np.float64,0x3ffa0c5d98b418bb,0x3ff11af9c8edd17f,1
+np.float64,0x3ffad9733355b2e6,0x3ff1b6d1307acb42,1
+np.float64,0x3ffabb2a33d57654,0x3ff1a0442b034e50,1
+np.float64,0x3ff36118b0c6c231,0x3fe472b7dfb23516,1
+np.float64,0x3ff2441d3664883a,0x3fe0d61145608f0c,1
+np.float64,0x7fe039862d20730b,0x40862e5f8ed752d3,1
+np.float64,0x7fb1dde24023bbc4,0x40861e824cdb0664,1
+np.float64,0x7face6335839cc66,0x40861ccf90a26e16,1
+np.float64,0x3ffb5d0e1af6ba1c,0x3ff2170f6f42fafe,1
+np.float64,0x3ff5c2c6a50b858d,0x3fea665aabf04407,1
+np.float64,0x3ffabb409db57681,0x3ff1a054ea32bfc3,1
+np.float64,0x3ff1e054e983c0aa,0x3fdeb30c17286cb6,1
+np.float64,0x7fe467f73268cfed,0x4086303529e52e9b,1
+np.float64,0x7fe0e86bf961d0d7,0x40862eb40788b04a,1
+np.float64,0x3ffb743542f6e86a,0x3ff227b4ea5acee0,1
+np.float64,0x3ff2de6826e5bcd0,0x3fe2e31fcde0a96c,1
+np.float64,0x7fd6b27ccfad64f9,0x40862b8385697c31,1
+np.float64,0x7fe0918e8d21231c,0x40862e8a82d9517a,1
+np.float64,0x7fd0ca0395a19406,0x4086291a0696ed33,1
+np.float64,0x3ffb042496960849,0x3ff1d658c928abfc,1
+np.float64,0x3ffcd0409799a081,0x3ff31877df0cb245,1
+np.float64,0x7fe429bd06685379,0x4086301c9f259934,1
+np.float64,0x3ff933076092660f,0x3ff06d2e5f4d9ab7,1
+np.float64,0x7feaefcb28f5df95,0x4086326dccf88e6f,1
+np.float64,0x7fb5f2c1f82be583,0x40862027ac02a39d,1
+np.float64,0x3ffb5d9e3bd6bb3c,0x3ff21777501d097e,1
+np.float64,0x10000000000000,0xfff8000000000000,1
+np.float64,0x3ff70361596e06c3,0x3fecf675ceda7e19,1
+np.float64,0x3ff71a21b5ee3444,0x3fed224fa048d9a9,1
+np.float64,0x3ffb102b86762057,0x3ff1df2cc9390518,1
+np.float64,0x7feaaeb35c355d66,0x4086325a60704a90,1
+np.float64,0x7fd9a3d0a93347a0,0x40862c7d300fc076,1
+np.float64,0x7fabcf159c379e2a,0x40861c80cdbbff27,1
+np.float64,0x7fd1c066ec2380cd,0x4086298c3006fee6,1
+np.float64,0x3ff3d5ae2d67ab5c,0x3fe5bc16447428db,1
+np.float64,0x3ff4b76add696ed6,0x3fe800f5bbf21376,1
+np.float64,0x3ff60d89ee0c1b14,0x3feb063fdebe1a68,1
+np.float64,0x7f1d2648003a4c8f,0x4085eaf9238af95a,1
+np.float64,0x7fe8b45f6df168be,0x408631bca5abf6d6,1
+np.float64,0x7fe9ea5308f3d4a5,0x4086321ea2bd3af9,1
+np.float64,0x7fcb6ba5a636d74a,0x4086277b208075ed,1
+np.float64,0x3ff621cfd74c43a0,0x3feb30d59baf5919,1
+np.float64,0x3ff7bc8ca0af7919,0x3fee524da8032896,1
+np.float64,0x7fda22dd0c3445b9,0x40862ca47326d063,1
+np.float64,0x7fd02ed4b2a05da8,0x408628ceb6919421,1
+np.float64,0x3ffe64309fdcc861,0x3ff41c1b18940709,1
+np.float64,0x3ffee4042abdc808,0x3ff46a6005bccb41,1
+np.float64,0x3ff078145b00f029,0x3fceeb3d6bfae0eb,1
+np.float64,0x7fda20fd20b441f9,0x40862ca3e03b990b,1
+np.float64,0x3ffa9e9e9af53d3d,0x3ff18ade3cbee789,1
+np.float64,0x3ff0a1062501420c,0x3fd1e32de6d18c0d,1
+np.float64,0x3ff3bdf118477be2,0x3fe57ad89b7fdf8b,1
+np.float64,0x3ff101c0d5c20382,0x3fd6965d3539be47,1
+np.float64,0x7feba3b53b774769,0x408632a28c7aca4d,1
+np.float64,0x3ff598db5d4b31b7,0x3fea0aa65c0b421a,1
+np.float64,0x3ff5fdfbb72bfbf8,0x3feae55accde4a5e,1
+np.float64,0x7fe5bae53aab75c9,0x408630b5e7a5b92a,1
+np.float64,0x3ff8f668afd1ecd2,0x3ff03af686666c9c,1
+np.float64,0x3ff5ba72dd2b74e6,0x3fea5441f223c093,1
+np.float64,0x3ff8498147109302,0x3fef4e45d501601d,1
+np.float64,0x7feddcfa5efbb9f4,0x4086334106a6e76b,1
+np.float64,0x7fd1a30200234603,0x4086297ee5cc562c,1
+np.float64,0x3ffffa8ee07ff51e,0x3ff50f1dc46f1303,1
+np.float64,0x7fef7ed00ebefd9f,0x408633ae01dabe52,1
+np.float64,0x3ffb6e062276dc0c,0x3ff22344c58c2016,1
+np.float64,0x7fcf2b59943e56b2,0x4086288190dd5eeb,1
+np.float64,0x3ffa589f9254b13f,0x3ff155cc081eee0b,1
+np.float64,0x3ff05415ca60a82c,0x3fc9e45565baef0a,1
+np.float64,0x7feb34bed576697d,0x408632822d5a178c,1
+np.float64,0x3ff3993845c73270,0x3fe51423baf246c3,1
+np.float64,0x3ff88367aaf106d0,0x3fefb2d9ca9f1192,1
+np.float64,0x7fef364304fe6c85,0x4086339b7ed82997,1
+np.float64,0x7fcba2c317374585,0x4086278b24e42934,1
+np.float64,0x3ff1aef885e35df1,0x3fdd1b79f55b20c0,1
+np.float64,0x7fe19367886326ce,0x40862f035f867445,1
+np.float64,0x3ff3c8295e279053,0x3fe5970aa670d32e,1
+np.float64,0x3ff6edda164ddbb4,0x3feccca9eb59d6b9,1
+np.float64,0x7fdeaea940bd5d52,0x40862dece02d151b,1
+np.float64,0x7fea9d6324353ac5,0x408632552ddf0d4f,1
+np.float64,0x7fe60e39e66c1c73,0x408630d45b1ad0c4,1
+np.float64,0x7fde06325abc0c64,0x40862dc07910038c,1
+np.float64,0x7f9ec89d303d9139,0x408617c55ea4c576,1
+np.float64,0x3ff9801930530032,0x3ff0abe5be046051,1
+np.float64,0x3ff4d5859689ab0b,0x3fe849a7f7a19fa3,1
+np.float64,0x3ff38afbc48715f8,0x3fe4ebb7710cbab9,1
+np.float64,0x3ffd88a0e77b1142,0x3ff3916964407e21,1
+np.float64,0x1,0xfff8000000000000,1
+np.float64,0x3ff5db59e58bb6b4,0x3fea9b6b5ccc116f,1
+np.float64,0x3ffd4b05b15a960c,0x3ff369792f661a90,1
+np.float64,0x7fdcebc4fb39d789,0x40862d73cd623378,1
+np.float64,0x3ff5b56f944b6adf,0x3fea4955d6b06ca3,1
+np.float64,0x7fd4e4abf2a9c957,0x40862ad9e9da3c61,1
+np.float64,0x7fe08e0d6aa11c1a,0x40862e88d17ef277,1
+np.float64,0x3ff0dfc97da1bf93,0x3fd50f9004136d8f,1
+np.float64,0x7fdec38eaebd871c,0x40862df2511e26b4,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x3ff21865504430cb,0x3fe033fe3cf3947a,1
+np.float64,0x7fdc139708b8272d,0x40862d371cfbad03,1
+np.float64,0x7fe1fe3be3a3fc77,0x40862f336e3ba63a,1
+np.float64,0x7fd9fa2493b3f448,0x40862c97f2960be9,1
+np.float64,0x3ff0a027db414050,0x3fd1d6e54a707c87,1
+np.float64,0x3ff568b16f4ad163,0x3fe99f5c6d7b6e18,1
+np.float64,0x3ffe2f82877c5f05,0x3ff3fb54bd0da753,1
+np.float64,0x7fbaf5778435eaee,0x408621ccc9e2c1be,1
+np.float64,0x7fc5aaf8362b55ef,0x40862598e7072a49,1
+np.float64,0x7fe0ebfdd4a1d7fb,0x40862eb5b7bf99d5,1
+np.float64,0x7fd8efeb5931dfd6,0x40862c444636f408,1
+np.float64,0x3ff361a308c6c346,0x3fe4744cae63e6df,1
+np.float64,0x7fef287d39be50f9,0x40863397f65c807e,1
+np.float64,0x7fe72c4a14ae5893,0x4086313992e52082,1
+np.float64,0x3ffd1be44cba37c8,0x3ff34a9a45239eb9,1
+np.float64,0x3ff50369c18a06d4,0x3fe8b69319f091f1,1
+np.float64,0x3ffb333c25766678,0x3ff1f8c78eeb28f1,1
+np.float64,0x7fe12050416240a0,0x40862ece4e2f2f24,1
+np.float64,0x7fe348f5526691ea,0x40862fc16fbe7b6c,1
+np.float64,0x3ff343cc4d068799,0x3fe41c2a30cab7d2,1
+np.float64,0x7fd1b0daaa2361b4,0x408629852b3104ff,1
+np.float64,0x3ff6a41f37ad483e,0x3fec3b36ee6c6d4a,1
+np.float64,0x3ffad9439435b287,0x3ff1b6add9a1b3d7,1
+np.float64,0x7fbeb9a2f23d7345,0x408622d89ac1eaba,1
+np.float64,0x3ffab3d39fb567a7,0x3ff19ac75b4427f3,1
+np.float64,0x3ff890003ed12000,0x3fefc8844471c6ad,1
+np.float64,0x3ffc9f595e593eb2,0x3ff2f7a8699f06d8,1
+np.float64,0x7fe2224ef6e4449d,0x40862f43684a154a,1
+np.float64,0x3ffa67ba08d4cf74,0x3ff161525778df99,1
+np.float64,0x7fe87e24b570fc48,0x408631ab02b159fb,1
+np.float64,0x7fd6e99be92dd337,0x40862b96dba73685,1
+np.float64,0x7fe90f39fdf21e73,0x408631d9dbd36c1e,1
+np.float64,0x3ffb7806abd6f00e,0x3ff22a719b0f4c46,1
+np.float64,0x3ffa511ba3d4a238,0x3ff1500c124f6e17,1
+np.float64,0x3ff5d7a569abaf4b,0x3fea937391c280e8,1
+np.float64,0x7fc4279d20284f39,0x40862504a5cdcb96,1
+np.float64,0x3ffe8791b1fd0f24,0x3ff431f1ed7eaba0,1
+np.float64,0x7fe3b2f5276765e9,0x40862fecf15e2535,1
+np.float64,0x7feeab0e7abd561c,0x408633778044cfbc,1
+np.float64,0x7fdba88531375109,0x40862d1860306d7a,1
+np.float64,0x7fe7b19b3def6335,0x4086316716d6890b,1
+np.float64,0x3ff9e9437413d287,0x3ff0ff89431c748c,1
+np.float64,0x3ff960716a52c0e3,0x3ff092498028f802,1
+np.float64,0x3ff271bf56a4e37f,0x3fe1786fc8dd775d,1
+np.float64,0x3fff2a6578be54cb,0x3ff494bbe303eeb5,1
+np.float64,0x3ffd842eb5fb085e,0x3ff38e8b7ba42bc5,1
+np.float64,0x3ff91600e5d22c02,0x3ff0553c6a6b3d93,1
+np.float64,0x3ff9153f45f22a7e,0x3ff0549c0eaecf95,1
+np.float64,0x7fe0ab319da15662,0x40862e96da3b19f9,1
+np.float64,0x3ff06acd1f60d59a,0x3fcd2aca543d2772,1
+np.float64,0x3ffb3e7a54d67cf4,0x3ff200f288cd391b,1
+np.float64,0x3ffd01356f1a026b,0x3ff339003462a56c,1
+np.float64,0x3ffacd35def59a6c,0x3ff1adb8d32b3ec0,1
+np.float64,0x3ff6f953264df2a6,0x3fece2f992948d6e,1
+np.float64,0x3ff0fa91f5a1f524,0x3fd64609a28f1590,1
+np.float64,0x7fd1b7610ca36ec1,0x408629881e03dc7d,1
+np.float64,0x3ff4317fb7c86300,0x3fe6b086ed265887,1
+np.float64,0x3ff3856198070ac3,0x3fe4dbb6bc88b9e3,1
+np.float64,0x7fed7fc4573aff88,0x40863327e7013a81,1
+np.float64,0x3ffe53cbbf5ca798,0x3ff411f07a29b1f4,1
+np.float64,0x3ff092195b012433,0x3fd10b1c0b4b14fe,1
+np.float64,0x3ff1a3171163462e,0x3fdcb5c301d5d40d,1
+np.float64,0x3ffa1401f1742804,0x3ff120eb319e9faa,1
+np.float64,0x7fd352f6f426a5ed,0x40862a3a048feb6d,1
+np.float64,0x7fd4ee246fa9dc48,0x40862add895d808f,1
+np.float64,0x3ff0675cfa00ceba,0x3fccb2222c5493ca,1
+np.float64,0x3ffe5cb38f3cb967,0x3ff417773483d161,1
+np.float64,0x7fe11469ea2228d3,0x40862ec8bd3e497f,1
+np.float64,0x3fff13cba67e2798,0x3ff4872fe2c26104,1
+np.float64,0x3ffb73d3d316e7a8,0x3ff2276f08612ea2,1
+np.float64,0x7febfb70f237f6e1,0x408632bbc9450721,1
+np.float64,0x3ff84a0d87b0941b,0x3fef4f3b707e3145,1
+np.float64,0x7fd71fd5082e3fa9,0x40862ba9b4091172,1
+np.float64,0x3ff560737d8ac0e7,0x3fe98cc9c9ba2f61,1
+np.float64,0x3ff46a266ae8d44d,0x3fe74190e5234822,1
+np.float64,0x7fe8cc9225719923,0x408631c477db9708,1
+np.float64,0x3ff871de5930e3bc,0x3fef948f7d00fbef,1
+np.float64,0x3ffd0bc7895a178f,0x3ff33ffc18357721,1
+np.float64,0x3ff66099f9ccc134,0x3febb2bc775b4720,1
+np.float64,0x7fe91f1be9723e37,0x408631deec3a5c9e,1
+np.float64,0x7fd60462f12c08c5,0x40862b4537e1c1c6,1
+np.float64,0x3ff053100ba0a620,0x3fc9bc0c21e2284f,1
+np.float64,0x7fd864c611b0c98b,0x40862c1724506255,1
+np.float64,0x7fd191decb2323bd,0x408629771bfb68cc,1
+np.float64,0x3ff792a1656f2543,0x3fee054f2e135fcf,1
+np.float64,0x7fd03625cea06c4b,0x408628d253b840e3,1
+np.float64,0x7fc3967716272ced,0x408624ca35451042,1
+np.float64,0x7fe6636cb32cc6d8,0x408630f3073a22a7,1
+np.float64,0x3ffc2d3976585a73,0x3ff2a9d4c0dae607,1
+np.float64,0x3fffd10ee79fa21e,0x3ff4f70db69888be,1
+np.float64,0x3ff1d4fcae23a9f9,0x3fde57675007b23c,1
+np.float64,0x3ffa5da19e14bb43,0x3ff1599f74d1c113,1
+np.float64,0x3ff7f4eb0d6fe9d6,0x3feeb85189659e99,1
+np.float64,0x7fbcca44d8399489,0x408622536234f7c1,1
+np.float64,0x7fef5f97ec3ebf2f,0x408633a60fdde0d7,1
+np.float64,0x7fde4a66da3c94cd,0x40862dd290ebc184,1
+np.float64,0x3ff072957a40e52b,0x3fce34d913d87613,1
+np.float64,0x3ff2bc4c9dc57899,0x3fe27497e6ebe27d,1
+np.float64,0x7fd7d152b4afa2a4,0x40862be63469eecd,1
+np.float64,0x3ff957d768f2afaf,0x3ff08b4ad8062a73,1
+np.float64,0x7fe4bc5f45a978be,0x40863055fd66e4eb,1
+np.float64,0x7fc90de345321bc6,0x408626c24ce7e370,1
+np.float64,0x3ff2d7a37d85af47,0x3fe2cd6a40b544a0,1
+np.float64,0x7fe536ea1f6a6dd3,0x40863084bade76a3,1
+np.float64,0x3fff970c9cdf2e19,0x3ff4d524572356dd,1
+np.float64,0x3ffe173ae63c2e76,0x3ff3ec1ee35ad28c,1
+np.float64,0x3ff714025cce2805,0x3fed168aedff4a2b,1
+np.float64,0x7fce7b414c3cf682,0x40862853dcdd19d4,1
+np.float64,0x3ff019623f2032c4,0x3fbc7c602df0bbaf,1
+np.float64,0x3ff72f57fd0e5eb0,0x3fed4ae75f697432,1
+np.float64,0x3ff283778e8506ef,0x3fe1b5c5725b0dfd,1
+np.float64,0x3ff685a29aed0b45,0x3febfdfdedd581e2,1
+np.float64,0x3ff942d24fb285a4,0x3ff07a224c3ecfaf,1
+np.float64,0x3ff2e4a9f465c954,0x3fe2f71905399e8f,1
+np.float64,0x7fdfa1c7fa3f438f,0x40862e2b4e06f098,1
+np.float64,0x3ff49b59c26936b4,0x3fe7bc41c8c1e59d,1
+np.float64,0x3ff2102d3704205a,0x3fe014bf7e28924e,1
+np.float64,0x3ff88de3b8311bc8,0x3fefc4e3e0a15a89,1
+np.float64,0x7fea5ba25374b744,0x40863241519c9b66,1
+np.float64,0x3fffe5df637fcbbf,0x3ff5032488f570f9,1
+np.float64,0x7fe67cfefe6cf9fd,0x408630fc25333cb4,1
+np.float64,0x3ff090bf2b01217e,0x3fd0f6fcf1092b4a,1
+np.float64,0x7fecd75bc5f9aeb7,0x408632f9b6c2e013,1
+np.float64,0x7fe15df38c62bbe6,0x40862eeae5ac944b,1
+np.float64,0x3ff4757875a8eaf1,0x3fe75e0eafbe28ce,1
+np.float64,0x7fecca8a51b99514,0x408632f627c23923,1
+np.float64,0x3ff91ca529d2394a,0x3ff05abb327fd1ca,1
+np.float64,0x3ffb962993b72c53,0x3ff23ff831717579,1
+np.float64,0x3ffd548a2c7aa914,0x3ff36fac7f56d716,1
+np.float64,0x7fbafb5cb035f6b8,0x408621ce898a02fb,1
+np.float64,0x3ff1d86daca3b0db,0x3fde73536c29218c,1
+np.float64,0x7fa8d0f8f431a1f1,0x40861b97a03c3a18,1
+np.float64,0x3ff44f1067489e21,0x3fe6fcbd8144ab2a,1
+np.float64,0x7fec062b07380c55,0x408632bed9c6ce85,1
+np.float64,0x3ff7e11e0fcfc23c,0x3fee94ada7efaac4,1
+np.float64,0x7fe77505c1aeea0b,0x4086315287dda0ba,1
+np.float64,0x7fc465af2728cb5d,0x4086251d236107f7,1
+np.float64,0x3ffe811c4a7d0238,0x3ff42df7e8b6cf2d,1
+np.float64,0x7fe05a471260b48d,0x40862e6fa502738b,1
+np.float64,0x7fec32cd9778659a,0x408632cb8d98c5a3,1
+np.float64,0x7fd203a220a40743,0x408629aa43b010c0,1
+np.float64,0x7fed71f7d17ae3ef,0x4086332428207101,1
+np.float64,0x3ff3918999e72313,0x3fe4fe5e8991402f,1
+np.float64,0x3ff3ecae38c7d95c,0x3fe5fa787d887981,1
+np.float64,0x7fd65345b82ca68a,0x40862b61aed8c64e,1
+np.float64,0x3ff1efdd01c3dfba,0x3fdf2eae36139204,1
+np.float64,0x3ffba9344f375268,0x3ff24d7fdcfc313b,1
+np.float64,0x7fd0469b35208d35,0x408628da6ed24bdd,1
+np.float64,0x7fe525782daa4aef,0x4086307e240c8b30,1
+np.float64,0x3ff8e473d371c8e8,0x3ff02beebd4171c7,1
+np.float64,0x3ff59a43898b3487,0x3fea0dc0a6acea0a,1
+np.float64,0x7fef50c7263ea18d,0x408633a247d7cd42,1
+np.float64,0x7fe8b5a301f16b45,0x408631bd0e71c855,1
+np.float64,0x3ff209369de4126d,0x3fdff4264334446b,1
+np.float64,0x3ffbe2ff4437c5fe,0x3ff2763b356814c7,1
+np.float64,0x3ff55938156ab270,0x3fe97c70514f91bf,1
+np.float64,0x3fff5d8bf81ebb18,0x3ff4b333b230672a,1
+np.float64,0x3ff16a317bc2d463,0x3fdab84e7faa468f,1
+np.float64,0x3ff7e64f8dafcc9f,0x3fee9e0bd57e9566,1
+np.float64,0x7fef4dc065be9b80,0x408633a181e25abb,1
+np.float64,0x3ff64a24a62c9449,0x3feb849ced76437e,1
+np.float64,0x7fc3cb85ef27970b,0x408624dfc39c8f74,1
+np.float64,0x7fec2162a77842c4,0x408632c69b0d43b6,1
+np.float64,0x7feccee6dc399dcd,0x408632f75de98c46,1
+np.float64,0x7faff4f5f43fe9eb,0x40861d9d89be14c9,1
+np.float64,0x7fee82df60fd05be,0x4086336cfdeb7317,1
+np.float64,0x3ffe54588d9ca8b1,0x3ff41247eb2f75ca,1
+np.float64,0x3ffe5615b55cac2c,0x3ff4135c4eb11620,1
+np.float64,0x3ffdaf9a6a1b5f35,0x3ff3aa70e50d1692,1
+np.float64,0x3ff69c045f4d3809,0x3fec2b00734e2cde,1
+np.float64,0x7fd049239aa09246,0x408628dbad6dd995,1
+np.float64,0x3ff2acbe8465597d,0x3fe24138652195e1,1
+np.float64,0x3ffb288302365106,0x3ff1f0f86ca7e5d1,1
+np.float64,0x3fff6fe8d87edfd2,0x3ff4be136acf53c5,1
+np.float64,0x3ffc87c8bfb90f92,0x3ff2e7bbd65867cb,1
+np.float64,0x3ff173327ca2e665,0x3fdb0b945abb00d7,1
+np.float64,0x3ff9a5cf7a134b9f,0x3ff0ca2450f07c78,1
+np.float64,0x7faf782b043ef055,0x40861d7e0e9b35ef,1
+np.float64,0x3ffa0874975410e9,0x3ff117ee3dc8f5ba,1
+np.float64,0x7fc710fc7f2e21f8,0x40862618fed167fb,1
+np.float64,0x7feb73f4c876e7e9,0x40863294ae3ac1eb,1
+np.float64,0x8000000000000000,0xfff8000000000000,1
+np.float64,0x7fb46615c028cc2b,0x40861f91bade4dad,1
+np.float64,0x7fc26b064624d60c,0x4086244c1b76c938,1
+np.float64,0x3ff06ab9fa40d574,0x3fcd282fd971d1b4,1
+np.float64,0x3ff61da7410c3b4e,0x3feb28201031af02,1
+np.float64,0x3ffec7ba1b9d8f74,0x3ff459342511f952,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x7fe5d570422baae0,0x408630bfa75008c9,1
+np.float64,0x3ffa895832f512b0,0x3ff17ad41555dccb,1
+np.float64,0x7fd343ac21a68757,0x40862a33ad59947a,1
+np.float64,0x3ffc1eeb37383dd6,0x3ff29ff29e55a006,1
+np.float64,0x7fee3c5c507c78b8,0x4086335a6b768090,1
+np.float64,0x7fe96d774a32daee,0x408631f7b9937e36,1
+np.float64,0x7fb878362430f06b,0x40862106603497b6,1
+np.float64,0x7fec0a79c03814f3,0x408632c01479905e,1
+np.float64,0x3ffa2f143c145e28,0x3ff135e25d902e1a,1
+np.float64,0x3ff14ccff80299a0,0x3fd9a0cd3397b14c,1
+np.float64,0x3ff97980dcb2f302,0x3ff0a6942a8133ab,1
+np.float64,0x3ff872e2d1f0e5c6,0x3fef96526eb2f756,1
+np.float64,0x7fdf1c9b46be3936,0x40862e0957fee329,1
+np.float64,0x7fcab6525d356ca4,0x408627458791f029,1
+np.float64,0x3ff964e74a52c9ce,0x3ff095e8845d523c,1
+np.float64,0x3ffb3aa23c967544,0x3ff1fe282d897c13,1
+np.float64,0x7fdd8a36afbb146c,0x40862d9f2b05f61b,1
+np.float64,0x3ffea39f42fd473e,0x3ff4432a48176399,1
+np.float64,0x7fea614f68b4c29e,0x408632430a750385,1
+np.float64,0x7feeafb86abd5f70,0x40863378b79f70cf,1
+np.float64,0x3ff80bc94eb01792,0x3feee138e9d626bd,1
+np.float64,0x7fcaca74743594e8,0x4086274b8ce4d1e1,1
+np.float64,0x3ff8b14815316290,0x3ff000b3526c8321,1
+np.float64,0x7fc698eb5f2d31d6,0x408625eeec86cd2b,1
+np.float64,0x7fe15429a3e2a852,0x40862ee6621205b8,1
+np.float64,0x7fee37f81b7c6fef,0x4086335941ed80dd,1
+np.float64,0x3ff8097ab3f012f6,0x3feedd1bafc3196e,1
+np.float64,0x7fe7c889ceaf9113,0x4086316ed13f2394,1
+np.float64,0x7fceca94513d9528,0x4086286893a06824,1
+np.float64,0x3ff593a103cb2742,0x3fe9ff1af4f63cc9,1
+np.float64,0x7fee237d24bc46f9,0x40863353d4142c87,1
+np.float64,0x3ffbf71e4777ee3c,0x3ff2844c0ed9f4d9,1
+np.float64,0x3ff490c65c09218d,0x3fe7a2216d9f69fd,1
+np.float64,0x3fff5ceaf1feb9d6,0x3ff4b2d430a90110,1
+np.float64,0x3ff55baecceab75e,0x3fe98203980666c4,1
+np.float64,0x3ff511bc306a2378,0x3fe8d81ce7be7b50,1
+np.float64,0x3ff38f83dcc71f08,0x3fe4f89f130d5f87,1
+np.float64,0x3ff73a3676ee746d,0x3fed5f98a65107ee,1
+np.float64,0x7fc27e50c824fca1,0x408624547828bc49,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x3fff38959ebe712b,0x3ff49d362c7ba16a,1
+np.float64,0x3ffad6d23a75ada4,0x3ff1b4dda6394ed0,1
+np.float64,0x3ffe77c6c2dcef8e,0x3ff4283698835ecb,1
+np.float64,0x3fff5feb413ebfd6,0x3ff4b49bcbdb3aa9,1
+np.float64,0x3ff0d30aa161a615,0x3fd4751bcdd7d727,1
+np.float64,0x3ff51e07e00a3c10,0x3fe8f4bd1408d694,1
+np.float64,0x8010000000000000,0xfff8000000000000,1
+np.float64,0x7fd231d2fe2463a5,0x408629beaceafcba,1
+np.float64,0x3fff6b4aee1ed696,0x3ff4bb58544bf8eb,1
+np.float64,0x3ff91fcd2f323f9a,0x3ff05d56e33db6b3,1
+np.float64,0x3ff3b889ab477113,0x3fe56bdeab74cce5,1
+np.float64,0x3ff99bfe30d337fc,0x3ff0c24bbf265561,1
+np.float64,0x3ffbe9e5eaf7d3cc,0x3ff27b0fe60f827a,1
+np.float64,0x7fd65678e92cacf1,0x40862b62d44fe8b6,1
+np.float64,0x7fd9cc477233988e,0x40862c89c638ee48,1
+np.float64,0x3ffc123c72d82479,0x3ff297294d05cbc0,1
+np.float64,0x3ff58abad58b1576,0x3fe9eb65da2a867a,1
+np.float64,0x7fe534887b2a6910,0x40863083d4ec2877,1
+np.float64,0x7fe1d3dcb123a7b8,0x40862f208116c55e,1
+np.float64,0x7fd4d570dba9aae1,0x40862ad412c413cd,1
+np.float64,0x3fffce7d3fdf9cfa,0x3ff4f58f02451928,1
+np.float64,0x3ffa76901c74ed20,0x3ff16c9a5851539c,1
+np.float64,0x7fdd88ffa23b11fe,0x40862d9ed6c6f426,1
+np.float64,0x3ff09fdbb9e13fb7,0x3fd1d2ae4fcbf713,1
+np.float64,0x7fe64567772c8ace,0x408630e845dbc290,1
+np.float64,0x7fb1a849ba235092,0x40861e6a291535b2,1
+np.float64,0x3ffaddb105f5bb62,0x3ff1b9f68f4c419b,1
+np.float64,0x7fd2fc3d5025f87a,0x40862a15cbc1df75,1
+np.float64,0x7fdea7d872bd4fb0,0x40862deb190b2c50,1
+np.float64,0x7fd50ea97eaa1d52,0x40862ae9edc4c812,1
+np.float64,0x3fff659c245ecb38,0x3ff4b7fb18b31aea,1
+np.float64,0x3ff3f1fbb7c7e3f7,0x3fe608bd9d76268c,1
+np.float64,0x3ff76869d9aed0d4,0x3fedb6c23d3a317b,1
+np.float64,0x7fedd4efe93ba9df,0x4086333edeecaa43,1
+np.float64,0x3ff9a5bd4eb34b7a,0x3ff0ca15d02bc960,1
+np.float64,0x3ffd9359cc5b26b4,0x3ff39850cb1a6b6c,1
+np.float64,0x7fe912d0427225a0,0x408631db00e46272,1
+np.float64,0x3ffb3802fe567006,0x3ff1fc4093646465,1
+np.float64,0x3ff02cc38a205987,0x3fc2e8182802a07b,1
+np.float64,0x3ffda953dd1b52a8,0x3ff3a66c504cf207,1
+np.float64,0x7fe0a487e4a1490f,0x40862e93a6f20152,1
+np.float64,0x7fed265ed1fa4cbd,0x4086330f838ae431,1
+np.float64,0x7fd0000114200001,0x408628b76ec48b5c,1
+np.float64,0x3ff2c262786584c5,0x3fe288860d354b0f,1
+np.float64,0x8000000000000001,0xfff8000000000000,1
+np.float64,0x3ffdae9f075b5d3e,0x3ff3a9d006ae55c1,1
+np.float64,0x3ffb69c72156d38e,0x3ff22037cbb85e5b,1
+np.float64,0x7feeae255f7d5c4a,0x408633784e89bc05,1
+np.float64,0x7feb13927c362724,0x408632786630c55d,1
+np.float64,0x7fef49e072be93c0,0x408633a08451d476,1
+np.float64,0x3fff23d6337e47ac,0x3ff490ceb6e634ae,1
+np.float64,0x3ffba82cf8f7505a,0x3ff24cc51c73234d,1
+np.float64,0x7fe948719ef290e2,0x408631ec0b36476e,1
+np.float64,0x3ff41926c5e8324e,0x3fe670e14bbda8cd,1
+np.float64,0x3ff91f09c1523e14,0x3ff05cb5731878da,1
+np.float64,0x3ff6ae6afccd5cd6,0x3fec4fbeca764086,1
+np.float64,0x3ff927f7e0f24ff0,0x3ff06413eeb8eb1e,1
+np.float64,0x3ff19dd2b9e33ba5,0x3fdc882f97994600,1
+np.float64,0x7fe8e502c5b1ca05,0x408631cc56526fff,1
+np.float64,0x7feb49f70fb693ed,0x4086328868486fcd,1
+np.float64,0x3ffd942d535b285a,0x3ff398d8d89f52ca,1
+np.float64,0x7fc3b9c5c627738b,0x408624d893e692ca,1
+np.float64,0x7fea0780ff340f01,0x408632279fa46704,1
+np.float64,0x7fe4c90066a99200,0x4086305adb47a598,1
+np.float64,0x7fdb209113364121,0x40862cf0ab64fd7d,1
+np.float64,0x3ff38617e5470c30,0x3fe4ddc0413b524f,1
+np.float64,0x7fea1b5b803436b6,0x4086322db767f091,1
+np.float64,0x7fe2004898e40090,0x40862f3457795dc5,1
+np.float64,0x3ff3c4360ac7886c,0x3fe58c29843a4c75,1
+np.float64,0x3ff504bc168a0978,0x3fe8b9ada7f698e6,1
+np.float64,0x3ffd3e936fda7d27,0x3ff3615912c5b4ac,1
+np.float64,0x3ffbdc52fb97b8a6,0x3ff2718dae5f1f2b,1
+np.float64,0x3fffef6d84ffdedb,0x3ff508adbc8556cf,1
+np.float64,0x3ff23b65272476ca,0x3fe0b646ed2579eb,1
+np.float64,0x7fe4633068a8c660,0x408630334a4b7ff7,1
+np.float64,0x3ff769b754aed36f,0x3fedb932af0223f9,1
+np.float64,0x7fe7482d92ee905a,0x408631432de1b057,1
+np.float64,0x3ff5dd682aabbad0,0x3fea9fd5e506a86d,1
+np.float64,0x7fd68399a2ad0732,0x40862b72ed89805d,1
+np.float64,0x3ffad7acc3d5af5a,0x3ff1b57fe632c948,1
+np.float64,0x3ffc68e43698d1c8,0x3ff2d2be6f758761,1
+np.float64,0x3ff4e517fbc9ca30,0x3fe86eddf5e63a58,1
+np.float64,0x3ff34c63c56698c8,0x3fe435b74ccd6a13,1
+np.float64,0x7fea9456c17528ad,0x4086325275237015,1
+np.float64,0x7fee6573f2fccae7,0x4086336543760346,1
+np.float64,0x7fd5496fb9aa92de,0x40862b0023235667,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x3ffb70e31256e1c6,0x3ff22552f54b13e0,1
+np.float64,0x3ff66a33988cd467,0x3febc656da46a1ca,1
+np.float64,0x3fff0af2eb1e15e6,0x3ff481dec325f5c8,1
+np.float64,0x3ff6a0233d0d4046,0x3fec33400958eda1,1
+np.float64,0x7fdb11e2d5b623c5,0x40862cec55e405f9,1
+np.float64,0x3ffb8a015ad71402,0x3ff2374d7b563a72,1
+np.float64,0x3ff1807d8ce300fb,0x3fdb849e4bce8335,1
+np.float64,0x3ffefd535e3dfaa6,0x3ff479aaac6ffe79,1
+np.float64,0x3ff701e23a6e03c4,0x3fecf39072d96fc7,1
+np.float64,0x3ff4ac809f895901,0x3fe7e6598f2335a5,1
+np.float64,0x3ff0309f26a0613e,0x3fc3b3f4b2783690,1
+np.float64,0x3ff241dd0ce483ba,0x3fe0cde2cb639144,1
+np.float64,0x3ffabce63fb579cc,0x3ff1a18fe2a2da59,1
+np.float64,0x3ffd84b967db0973,0x3ff38ee4f240645d,1
+np.float64,0x7fc3f88b9a27f116,0x408624f1e10cdf3f,1
+np.float64,0x7fe1d5fd5923abfa,0x40862f2175714a3a,1
+np.float64,0x7fe487b145690f62,0x4086304190700183,1
+np.float64,0x7fe7997feaef32ff,0x4086315eeefdddd2,1
+np.float64,0x3ff8f853b671f0a8,0x3ff03c907353a8da,1
+np.float64,0x7fca4c23b5349846,0x408627257ace5778,1
+np.float64,0x7fe0c9bf3a21937d,0x40862ea576c3ea43,1
+np.float64,0x7fc442b389288566,0x4086250f5f126ec9,1
+np.float64,0x7fc6d382ed2da705,0x40862603900431b0,1
+np.float64,0x7fe40b069068160c,0x4086301066468124,1
+np.float64,0x3ff7f62a146fec54,0x3feeba8dfc4363fe,1
+np.float64,0x3ff721e8e94e43d2,0x3fed313a6755d34f,1
+np.float64,0x7fe579feaf2af3fc,0x4086309ddefb6112,1
+np.float64,0x3ffe2c6bde5c58d8,0x3ff3f9665dc9a16e,1
+np.float64,0x7fcf9998ed3f3331,0x4086289dab274788,1
+np.float64,0x7fdb03af2236075d,0x40862ce82252e490,1
+np.float64,0x7fe72799392e4f31,0x40863137f428ee71,1
+np.float64,0x7f9f2190603e4320,0x408617dc5b3b3c3c,1
+np.float64,0x3ff69c56d52d38ae,0x3fec2ba59fe938b2,1
+np.float64,0x7fdcde27bf39bc4e,0x40862d70086cd06d,1
+np.float64,0x3ff654d6b8eca9ae,0x3feb9aa0107609a6,1
+np.float64,0x7fdf69d967bed3b2,0x40862e1d1c2b94c2,1
+np.float64,0xffefffffffffffff,0xfff8000000000000,1
+np.float64,0x7fedfd073f3bfa0d,0x40863349980c2c8b,1
+np.float64,0x7f7c1856803830ac,0x40860bf312b458c7,1
+np.float64,0x7fe9553f1bb2aa7d,0x408631f0173eadd5,1
+np.float64,0x3ff6e92efc2dd25e,0x3fecc38f98e7e1a7,1
+np.float64,0x7fe9719ac532e335,0x408631f906cd79c3,1
+np.float64,0x3ff60e56ae4c1cad,0x3feb07ef8637ec7e,1
+np.float64,0x3ff0d0803501a100,0x3fd455c0af195a9c,1
+np.float64,0x7fe75248a3eea490,0x40863146a614aec1,1
+np.float64,0x7fdff61ead3fec3c,0x40862e408643d7aa,1
+np.float64,0x7fed4ac7a4fa958e,0x408633197b5cf6ea,1
+np.float64,0x7fe58d44562b1a88,0x408630a5098d1bbc,1
+np.float64,0x7fd89dcdb1b13b9a,0x40862c29c2979288,1
+np.float64,0x3ff205deda240bbe,0x3fdfda67c84fd3a8,1
+np.float64,0x7fdf84c15abf0982,0x40862e23f361923d,1
+np.float64,0x3ffe012b3afc0256,0x3ff3de3dfa5f47ce,1
+np.float64,0x3ffe2f3512dc5e6a,0x3ff3fb245206398e,1
+np.float64,0x7fed6174c2bac2e9,0x4086331faa699617,1
+np.float64,0x3ff1f30f8783e61f,0x3fdf47e06f2c40d1,1
+np.float64,0x3ff590da9eab21b5,0x3fe9f8f7b4baf3c2,1
+np.float64,0x3ffb3ca1eb967944,0x3ff1ff9baf66d704,1
+np.float64,0x7fe50ba9a5aa1752,0x408630745ab7fd3c,1
+np.float64,0x3ff43743a4a86e87,0x3fe6bf7ae80b1dda,1
+np.float64,0x3ff47e1a24e8fc34,0x3fe773acca44c7d6,1
+np.float64,0x3ff589ede9eb13dc,0x3fe9e99f28fab3a4,1
+np.float64,0x3ff72f2cbf8e5e5a,0x3fed4a94e7edbf24,1
+np.float64,0x3ffa4f9bbc549f38,0x3ff14ee60aea45d3,1
+np.float64,0x3ff975dae732ebb6,0x3ff0a3a1fbd7284a,1
+np.float64,0x7fbcf14ee039e29d,0x4086225e33f3793e,1
+np.float64,0x3ff10e027f621c05,0x3fd71cce2452b4e0,1
+np.float64,0x3ff33ea193067d43,0x3fe40cbac4daaddc,1
+np.float64,0x7fbef8f2263df1e3,0x408622e905c8e1b4,1
+np.float64,0x3fff7f5bfe3efeb8,0x3ff4c732e83df253,1
+np.float64,0x3ff5700a6b4ae015,0x3fe9afdd7b8b82b0,1
+np.float64,0x3ffd5099da5aa134,0x3ff36d1bf26e55bf,1
+np.float64,0x3ffed8e0f89db1c2,0x3ff4639ff065107a,1
+np.float64,0x3fff9d0c463f3a18,0x3ff4d8a9f297cf52,1
+np.float64,0x3ff23db5b2e47b6b,0x3fe0bebdd48f961a,1
+np.float64,0x3ff042bff1e08580,0x3fc713bf24cc60ef,1
+np.float64,0x7feb4fe97a769fd2,0x4086328a26675646,1
+np.float64,0x3ffeafbfeedd5f80,0x3ff44a955a553b1c,1
+np.float64,0x3ff83fb524507f6a,0x3fef3d1729ae0976,1
+np.float64,0x3ff1992294433245,0x3fdc5f5ce53dd197,1
+np.float64,0x7fe89fe629b13fcb,0x408631b601a83867,1
+np.float64,0x7fe53e4d74aa7c9a,0x40863087839b52f1,1
+np.float64,0x3ff113713e6226e2,0x3fd757631ca7cd09,1
+np.float64,0x7fd4a0b7a629416e,0x40862abfba27a09b,1
+np.float64,0x3ff184c6e2a3098e,0x3fdbab2e3966ae57,1
+np.float64,0x3ffafbbf77f5f77f,0x3ff1d02bb331d9f9,1
+np.float64,0x3ffc6099a358c134,0x3ff2cd16941613d1,1
+np.float64,0x3ffb7c441ef6f888,0x3ff22d7b12e31432,1
+np.float64,0x3ff625ba5eec4b75,0x3feb39060e55fb79,1
+np.float64,0x7fde879acbbd0f35,0x40862de2aab4d72d,1
+np.float64,0x7f930aed982615da,0x408613edb6df8528,1
+np.float64,0x7fa4b82dac29705a,0x40861a261c0a9aae,1
+np.float64,0x7fced5c16b3dab82,0x4086286b7a73e611,1
+np.float64,0x7fe133749d2266e8,0x40862ed73a41b112,1
+np.float64,0x3ff2d8146ea5b029,0x3fe2ced55dbf997d,1
+np.float64,0x3ff60dac77ac1b59,0x3feb0688b0e54c7b,1
+np.float64,0x3ff275d9b024ebb3,0x3fe186b87258b834,1
+np.float64,0x3ff533e6500a67cd,0x3fe92746c8b50ddd,1
+np.float64,0x7fe370896666e112,0x40862fd1ca144736,1
+np.float64,0x7fee7695357ced29,0x40863369c459420e,1
+np.float64,0x7fd1e0528023c0a4,0x4086299a85caffd0,1
+np.float64,0x7fd05c7b24a0b8f5,0x408628e52824386f,1
+np.float64,0x3ff11dcc3b023b98,0x3fd7c56c8cef1be1,1
+np.float64,0x7fc9d9fae933b3f5,0x408627027404bc5f,1
+np.float64,0x7fe2359981246b32,0x40862f4be675e90d,1
+np.float64,0x3ffb10a949962152,0x3ff1df88f83b8cde,1
+np.float64,0x3ffa65b53654cb6a,0x3ff15fc8956ccc87,1
+np.float64,0x3ff0000000000000,0x0,1
+np.float64,0x7fad97ef703b2fde,0x40861d002f3d02da,1
+np.float64,0x3ff57aaf93aaf55f,0x3fe9c7b01f194edb,1
+np.float64,0x7fe9ecd73f33d9ad,0x4086321f69917205,1
+np.float64,0x3ff0dcb79c61b96f,0x3fd4eac86a7a9c38,1
+np.float64,0x7fee9c12ffbd3825,0x4086337396cd706d,1
+np.float64,0x3ff52c40af4a5881,0x3fe915a8a7de8f00,1
+np.float64,0x3ffbcfff59779ffe,0x3ff268e523fe8dda,1
+np.float64,0x7fe014cb4b602996,0x40862e4d5de42a03,1
+np.float64,0x7fae2370e83c46e1,0x40861d258dd5b3ee,1
+np.float64,0x7fe9e33602f3c66b,0x4086321c704ac2bb,1
+np.float64,0x3ff648acd74c915a,0x3feb8195ca53bcaa,1
+np.float64,0x7fe385f507670be9,0x40862fda95ebaf44,1
+np.float64,0x3ffb0e382c361c70,0x3ff1ddbea963e0a7,1
+np.float64,0x3ff47d6b6ae8fad7,0x3fe771f80ad37cd2,1
+np.float64,0x3ffca7d538f94faa,0x3ff2fd5f62e851ac,1
+np.float64,0x3ff83e949c107d29,0x3fef3b1c5bbac99b,1
+np.float64,0x7fc6fb933a2df725,0x408626118e51a286,1
+np.float64,0x7fe43a1454e87428,0x4086302318512d9b,1
+np.float64,0x7fe51fe32aaa3fc5,0x4086307c07271348,1
+np.float64,0x3ff35e563966bcac,0x3fe46aa2856ef85f,1
+np.float64,0x3ff84dd4e4909baa,0x3fef55d86d1d5c2e,1
+np.float64,0x7febe3d84077c7b0,0x408632b507686f03,1
+np.float64,0x3ff6aca2e32d5946,0x3fec4c32a2368ee3,1
+np.float64,0x7fe7070e3e6e0e1b,0x4086312caddb0454,1
+np.float64,0x7fd3657f2aa6cafd,0x40862a41acf47e70,1
+np.float64,0x3ff61534456c2a68,0x3feb1663900af13b,1
+np.float64,0x3ff8bc556eb178ab,0x3ff00a16b5403f88,1
+np.float64,0x3ffa7782e3f4ef06,0x3ff16d529c94a438,1
+np.float64,0x7fc15785ed22af0b,0x408623d0cd94fb86,1
+np.float64,0x3ff2e3eeb6e5c7dd,0x3fe2f4c4876d3edf,1
+np.float64,0x3ff2e4e17e85c9c3,0x3fe2f7c9e437b22e,1
+np.float64,0x7feb3aaf67f6755e,0x40863283ec4a0d76,1
+np.float64,0x7fe89efcf7313df9,0x408631b5b5e41263,1
+np.float64,0x3ffcc6fad4f98df6,0x3ff31245778dff6d,1
+np.float64,0x3ff356114466ac22,0x3fe45253d040a024,1
+np.float64,0x3ff81c70d2d038e2,0x3feefed71ebac776,1
+np.float64,0x7fdb75c96136eb92,0x40862d09a603f03e,1
+np.float64,0x3ff340f91b8681f2,0x3fe413bb6e6d4a54,1
+np.float64,0x3fff906079df20c1,0x3ff4d13869d16bc7,1
+np.float64,0x3ff226a42d644d48,0x3fe0698d316f1ac0,1
+np.float64,0x3ff948abc3b29158,0x3ff07eeb0b3c81ba,1
+np.float64,0x3ffc25df1fb84bbe,0x3ff2a4c13ad4edad,1
+np.float64,0x7fe07ea3b960fd46,0x40862e815b4cf43d,1
+np.float64,0x3ff497d3dae92fa8,0x3fe7b3917bf10311,1
+np.float64,0x7fea561db1f4ac3a,0x4086323fa4aef2a9,1
+np.float64,0x7fd1b49051236920,0x40862986d8759ce5,1
+np.float64,0x7f7ba3bd6037477a,0x40860bd19997fd90,1
+np.float64,0x3ff01126dd00224e,0x3fb76b67938dfb11,1
+np.float64,0x3ff29e1105053c22,0x3fe2102a4c5fa102,1
+np.float64,0x3ff9de2a6553bc55,0x3ff0f6cfe4dea30e,1
+np.float64,0x7fc558e7d42ab1cf,0x4086257a608fc055,1
+np.float64,0x3ff79830a74f3061,0x3fee0f93db153d65,1
+np.float64,0x7fe2661648e4cc2c,0x40862f6117a71eb2,1
+np.float64,0x3ff140cf4262819e,0x3fd92aefedae1ab4,1
+np.float64,0x3ff5f36251abe6c5,0x3feaced481ceaee3,1
+np.float64,0x7fc80911d5301223,0x4086266d4757f768,1
+np.float64,0x3ff9079a6c320f35,0x3ff04949d21ebe1e,1
+np.float64,0x3ffde8d2e09bd1a6,0x3ff3cedca8a5db5d,1
+np.float64,0x3ffadd1de375ba3c,0x3ff1b989790e8d93,1
+np.float64,0x3ffdbc40ee1b7882,0x3ff3b286b1c7da57,1
+np.float64,0x3ff8ff514771fea2,0x3ff04264add00971,1
+np.float64,0x7fefd7d0e63fafa1,0x408633c47d9f7ae4,1
+np.float64,0x3ffc47798c588ef3,0x3ff2bbe441fa783a,1
+np.float64,0x7fe6ebc55b6dd78a,0x408631232d9abf31,1
+np.float64,0xbff0000000000000,0xfff8000000000000,1
+np.float64,0x7fd378e4afa6f1c8,0x40862a49a8f98cb4,1
+np.float64,0x0,0xfff8000000000000,1
+np.float64,0x3ffe88ed7efd11db,0x3ff432c7ecb95492,1
+np.float64,0x3ff4f5509289eaa1,0x3fe8955a11656323,1
+np.float64,0x7fda255b41344ab6,0x40862ca53676a23e,1
+np.float64,0x3ffebe85b9bd7d0c,0x3ff453992cd55dea,1
+np.float64,0x3ff5d6180b8bac30,0x3fea901c2160c3bc,1
+np.float64,0x3ffcdfb8fcf9bf72,0x3ff322c83b3bc735,1
+np.float64,0x3ff3c91c26679238,0x3fe599a652b7cf59,1
+np.float64,0x7fc389f7a62713ee,0x408624c518edef93,1
+np.float64,0x3ffe1245ba1c248c,0x3ff3e901b2c4a47a,1
+np.float64,0x7fe1e76e95e3cedc,0x40862f29446f9eff,1
+np.float64,0x3ff02ae4f92055ca,0x3fc28221abd63daa,1
+np.float64,0x7fbf648a143ec913,0x40862304a0619d03,1
+np.float64,0x3ff2be7ef8657cfe,0x3fe27bcc6c97522e,1
+np.float64,0x3ffa7595e514eb2c,0x3ff16bdc64249ad1,1
+np.float64,0x3ff4ee130049dc26,0x3fe884354cbad8c9,1
+np.float64,0x3ff19211fc232424,0x3fdc2160bf3eae40,1
+np.float64,0x3ffec215aedd842c,0x3ff455c4cdd50c32,1
+np.float64,0x7fe7cb50ffaf96a1,0x4086316fc06a53af,1
+np.float64,0x3fffa679161f4cf2,0x3ff4de30ba7ac5b8,1
+np.float64,0x7fdcb459763968b2,0x40862d646a21011d,1
+np.float64,0x3ff9f338d6d3e672,0x3ff1075835d8f64e,1
+np.float64,0x3ff8de3319d1bc66,0x3ff026ae858c0458,1
+np.float64,0x7fee0199d33c0333,0x4086334ad03ac683,1
+np.float64,0x3ffc06076c380c0f,0x3ff28eaec3814faa,1
+np.float64,0x3ffe9e2e235d3c5c,0x3ff43fd4d2191a7f,1
+np.float64,0x3ffd93b06adb2761,0x3ff398888239cde8,1
+np.float64,0x7fefe4b71cffc96d,0x408633c7ba971b92,1
+np.float64,0x7fb2940352252806,0x40861ed244bcfed6,1
+np.float64,0x3ffba4647e3748c9,0x3ff24a15f02e11b9,1
+np.float64,0x7fd2d9543725b2a7,0x40862a0708446596,1
+np.float64,0x7fc04997f120932f,0x4086235055d35251,1
+np.float64,0x3ff6d14313ada286,0x3fec94b177f5d3fc,1
+np.float64,0x3ff279fc8684f3f9,0x3fe19511c3e5b9a8,1
+np.float64,0x3ff42f4609085e8c,0x3fe6aabe526ce2bc,1
+np.float64,0x7fc1c6c62a238d8b,0x408624037de7f6ec,1
+np.float64,0x7fe31ff4b8e63fe8,0x40862fb05b40fd16,1
+np.float64,0x7fd2a8825fa55104,0x408629f234d460d6,1
+np.float64,0x3ffe8c1d725d183b,0x3ff434bdc444143f,1
+np.float64,0x3ff0e9dc3e21d3b8,0x3fd58676e2c13fc9,1
+np.float64,0x3ffed03172fda063,0x3ff45e59f7aa6c8b,1
+np.float64,0x7fd74621962e8c42,0x40862bb6e90d66f8,1
+np.float64,0x3ff1faa29663f545,0x3fdf833a2c5efde1,1
+np.float64,0x7fda02834db40506,0x40862c9a860d6747,1
+np.float64,0x7f709b2fc021365f,0x408607be328eb3eb,1
+np.float64,0x7fec0d58aa381ab0,0x408632c0e61a1af6,1
+np.float64,0x3ff524d1720a49a3,0x3fe90479968d40fd,1
+np.float64,0x7fd64cb3b32c9966,0x40862b5f53c4b0b4,1
+np.float64,0x3ff9593e3ed2b27c,0x3ff08c6eea5f6e8b,1
+np.float64,0x3ff7de8b1f6fbd16,0x3fee9007abcfdf7b,1
+np.float64,0x7fe8d816d6b1b02d,0x408631c82e38a894,1
+np.float64,0x7fd726bbe22e4d77,0x40862bac16ee8d52,1
+np.float64,0x7fa70b07d42e160f,0x40861affcc4265e2,1
+np.float64,0x7fe18b4091e31680,0x40862effa8bce66f,1
+np.float64,0x3ff830253010604a,0x3fef21b2eaa75758,1
+np.float64,0x3fffcade407f95bc,0x3ff4f3734b24c419,1
+np.float64,0x3ff8c17cecb182fa,0x3ff00e75152d7bda,1
+np.float64,0x7fdad9b9d035b373,0x40862cdbabb793ba,1
+np.float64,0x3ff9f9e154f3f3c2,0x3ff10c8dfdbd2510,1
+np.float64,0x3ff465e162e8cbc3,0x3fe736c751c75b73,1
+np.float64,0x3ff9b4cd8493699b,0x3ff0d616235544b8,1
+np.float64,0x7fe557c4a56aaf88,0x4086309114ed12d9,1
+np.float64,0x7fe5999133eb3321,0x408630a9991a9b54,1
+np.float64,0x7fe7c9009e2f9200,0x4086316ef9359a47,1
+np.float64,0x3ff8545cabd0a8ba,0x3fef6141f1030c36,1
+np.float64,0x3ffa1f1712943e2e,0x3ff129849d492ce3,1
+np.float64,0x7fea803a14750073,0x4086324c652c276c,1
+np.float64,0x3ff5b6f97fcb6df3,0x3fea4cb0b97b18e9,1
+np.float64,0x7fc2efdfc425dfbf,0x40862485036a5c6e,1
+np.float64,0x7fe2c78e5be58f1c,0x40862f8b0a5e7baf,1
+np.float64,0x7fe80d7fff301aff,0x40863185e234060a,1
+np.float64,0x3ffd895d457b12ba,0x3ff391e2cac7a3f8,1
+np.float64,0x3ff44c9764a8992f,0x3fe6f6690396c232,1
+np.float64,0x3ff731688b8e62d1,0x3fed4ed70fac3839,1
+np.float64,0x3ff060200460c040,0x3fcbad4a07d97f0e,1
+np.float64,0x3ffbd2f70a17a5ee,0x3ff26afb46ade929,1
+np.float64,0x7febe9e841f7d3d0,0x408632b6c465ddd9,1
+np.float64,0x3ff2532f8be4a65f,0x3fe10c6cd8d64cf4,1
+np.float64,0x7fefffffffffffff,0x408633ce8fb9f87e,1
+np.float64,0x3ff3a1ae3a47435c,0x3fe52c00210cc459,1
+np.float64,0x7fe9c34ae6b38695,0x408632128d150149,1
+np.float64,0x3fff311029fe6220,0x3ff498b852f30bff,1
+np.float64,0x3ffd4485a1ba890c,0x3ff3653b6fa701cd,1
+np.float64,0x7fd52718b1aa4e30,0x40862af330d9c68c,1
+np.float64,0x3ff10b695a4216d3,0x3fd7009294e367b7,1
+np.float64,0x3ffdf73de59bee7c,0x3ff3d7fa96d2c1ae,1
+np.float64,0x3ff2f1c75965e38f,0x3fe320aaff3db882,1
+np.float64,0x3ff2a56a5a854ad5,0x3fe228cc4ad7e7a5,1
+np.float64,0x7fe60cd1cf6c19a3,0x408630d3d87a04b3,1
+np.float64,0x3ff89fa65c113f4c,0x3fefe3543773180c,1
+np.float64,0x3ffd253130ba4a62,0x3ff350b76ba692a0,1
+np.float64,0x7feaad7051f55ae0,0x40863259ff932d62,1
+np.float64,0x7fd9cc37cf33986f,0x40862c89c15f963b,1
+np.float64,0x3ff8c08de771811c,0x3ff00daa9c17acd7,1
+np.float64,0x7fea58b25d34b164,0x408632406d54cc6f,1
+np.float64,0x7fe5f161fd2be2c3,0x408630c9ddf272a5,1
+np.float64,0x3ff5840dbf8b081c,0x3fe9dc9117b4cbc7,1
+np.float64,0x3ff3fd762307faec,0x3fe6277cd530c640,1
+np.float64,0x3ff9095c98b212b9,0x3ff04abff170ac24,1
+np.float64,0x7feaac66017558cb,0x40863259afb4f8ce,1
+np.float64,0x7fd78f96bcaf1f2c,0x40862bd00175fdf9,1
+np.float64,0x3ffaca27e0959450,0x3ff1ab72b8f8633e,1
+np.float64,0x3ffb7f18cb96fe32,0x3ff22f81bcb8907b,1
+np.float64,0x3ffcce48d1199c92,0x3ff317276f62c0b2,1
+np.float64,0x3ffcb9a7f3797350,0x3ff30958e0d6a34d,1
+np.float64,0x7fda569ef6b4ad3d,0x40862cb43b33275a,1
+np.float64,0x7fde9f0893bd3e10,0x40862de8cc036283,1
+np.float64,0x3ff428be3928517c,0x3fe699bb5ab58904,1
+np.float64,0x7fa4d3344029a668,0x40861a3084989291,1
+np.float64,0x3ff03607bd006c0f,0x3fc4c4840cf35f48,1
+np.float64,0x3ff2b1335c056267,0x3fe25000846b75a2,1
+np.float64,0x7fe0cb8bd8e19717,0x40862ea65237d496,1
+np.float64,0x3fff4b1b7b9e9637,0x3ff4a83fb08e7b24,1
+np.float64,0x7fe7526140aea4c2,0x40863146ae86069c,1
+np.float64,0x7fbfcfb7c23f9f6f,0x4086231fc246ede5,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsin.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsin.csv
new file mode 100644
index 0000000..75d5707
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsin.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xbe7d3a7c,0xbe7fe217,4
+np.float32,0x3dc102f0,0x3dc14c60,4
+np.float32,0xbe119c28,0xbe121aef,4
+np.float32,0xbe51cd68,0xbe534c75,4
+np.float32,0x3c04a300,0x3c04a35f,4
+np.float32,0xbf4f0b62,0xbf712a69,4
+np.float32,0x3ef61a5c,0x3f005cf6,4
+np.float32,0xbf13024c,0xbf1c97df,4
+np.float32,0x3e93b580,0x3e95d6b5,4
+np.float32,0x3e44e7b8,0x3e4623a5,4
+np.float32,0xbe35df20,0xbe36d773,4
+np.float32,0x3eecd2c0,0x3ef633cf,4
+np.float32,0x3f2772ba,0x3f36862a,4
+np.float32,0x3e211ea8,0x3e21cac5,4
+np.float32,0x3e3b3d90,0x3e3c4cc6,4
+np.float32,0x3f37c962,0x3f4d018c,4
+np.float32,0x3e92ad88,0x3e94c31a,4
+np.float32,0x3f356ffc,0x3f49a766,4
+np.float32,0x3f487ba2,0x3f665254,4
+np.float32,0x3f061c46,0x3f0d27ae,4
+np.float32,0xbee340a2,0xbeeb7722,4
+np.float32,0xbe85aede,0xbe874026,4
+np.float32,0x3f34cf9a,0x3f48c474,4
+np.float32,0x3e29a690,0x3e2a6fbd,4
+np.float32,0xbeb29428,0xbeb669d1,4
+np.float32,0xbe606d40,0xbe624370,4
+np.float32,0x3dae6860,0x3dae9e85,4
+np.float32,0xbf04872b,0xbf0b4d25,4
+np.float32,0x3f2080e2,0x3f2d7ab0,4
+np.float32,0xbec77dcc,0xbecceb27,4
+np.float32,0x3e0dda10,0x3e0e4f38,4
+np.float32,0xbefaf970,0xbf03262c,4
+np.float32,0x3f576a0c,0x3f7ffee6,4
+np.float32,0x3f222382,0x3f2f95d6,4
+np.float32,0x7fc00000,0x7fc00000,4
+np.float32,0x3e41c468,0x3e42f14e,4
+np.float32,0xbf2f64dd,0xbf4139a8,4
+np.float32,0xbf60ef90,0xbf895956,4
+np.float32,0xbf67c855,0xbf90eff0,4
+np.float32,0xbed35aee,0xbed9df00,4
+np.float32,0xbf2c7d92,0xbf3d448f,4
+np.float32,0x3f7b1604,0x3faff122,4
+np.float32,0xbf7c758b,0xbfb3bf87,4
+np.float32,0x3ecda1c8,0x3ed39acf,4
+np.float32,0x3f3af8ae,0x3f519fcb,4
+np.float32,0xbf16e6a3,0xbf2160fd,4
+np.float32,0x3f0c97d2,0x3f14d668,4
+np.float32,0x3f0a8060,0x3f1257b9,4
+np.float32,0x3f27905a,0x3f36ad57,4
+np.float32,0x3eeaeba4,0x3ef40efe,4
+np.float32,0x3e58dde0,0x3e5a8580,4
+np.float32,0xbf0cabe2,0xbf14ee6b,4
+np.float32,0xbe805ca8,0xbe81bf03,4
+np.float32,0x3f5462ba,0x3f7a7b85,4
+np.float32,0xbee235d0,0xbeea4d8b,4
+np.float32,0xbe880cb0,0xbe89b426,4
+np.float32,0x80000001,0x80000001,4
+np.float32,0x3f208c00,0x3f2d88f6,4
+np.float32,0xbf34f3d2,0xbf48f7a2,4
+np.float32,0x3f629428,0x3f8b1763,4
+np.float32,0xbf52a900,0xbf776b4a,4
+np.float32,0xbd17f8d0,0xbd1801be,4
+np.float32,0xbef7cada,0xbf0153d1,4
+np.float32,0x3f7d3b90,0x3fb63967,4
+np.float32,0xbd6a20b0,0xbd6a4160,4
+np.float32,0x3f740496,0x3fa1beb7,4
+np.float32,0x3ed8762c,0x3edf7dd9,4
+np.float32,0x3f53b066,0x3f793d42,4
+np.float32,0xbe9de718,0xbea084f9,4
+np.float32,0x3ea3ae90,0x3ea69b4b,4
+np.float32,0x3f1b8f00,0x3f273183,4
+np.float32,0x3f5cd6ac,0x3f852ead,4
+np.float32,0x3f29d510,0x3f39b169,4
+np.float32,0x3ee2a934,0x3eeace33,4
+np.float32,0x3eecac94,0x3ef608c2,4
+np.float32,0xbea915e2,0xbeac5203,4
+np.float32,0xbd316e90,0xbd317cc8,4
+np.float32,0xbf70b495,0xbf9c97b6,4
+np.float32,0xbe80d976,0xbe823ff3,4
+np.float32,0x3e9205f8,0x3e94143f,4
+np.float32,0x3f49247e,0x3f676296,4
+np.float32,0x3d9030c0,0x3d904f50,4
+np.float32,0x3e4df058,0x3e4f5a5c,4
+np.float32,0xbe1fd360,0xbe207b58,4
+np.float32,0xbf69dc7c,0xbf937006,4
+np.float32,0x3f36babe,0x3f4b7df3,4
+np.float32,0xbe8c9758,0xbe8e6bb7,4
+np.float32,0xbf4de72d,0xbf6f3c20,4
+np.float32,0xbecdad68,0xbed3a780,4
+np.float32,0xbf73e2cf,0xbfa18702,4
+np.float32,0xbece16a8,0xbed41a75,4
+np.float32,0x3f618a96,0x3f89fc6d,4
+np.float32,0xbf325853,0xbf454ea9,4
+np.float32,0x3f138568,0x3f1d3828,4
+np.float32,0xbf56a6e9,0xbf7e9748,4
+np.float32,0x3ef5d594,0x3f0035bf,4
+np.float32,0xbf408220,0xbf59dfaa,4
+np.float32,0xbed120e6,0xbed76dd5,4
+np.float32,0xbf6dbda5,0xbf986cee,4
+np.float32,0x3f744a38,0x3fa23282,4
+np.float32,0xbe4b56d8,0xbe4cb329,4
+np.float32,0x3f54c5f2,0x3f7b2d97,4
+np.float32,0xbd8b1c90,0xbd8b3801,4
+np.float32,0x3ee19a48,0x3ee9a03b,4
+np.float32,0x3f48460e,0x3f65fc3d,4
+np.float32,0x3eb541c0,0x3eb9461e,4
+np.float32,0xbea7d098,0xbeaaf98c,4
+np.float32,0xbda99e40,0xbda9d00c,4
+np.float32,0xbefb2ca6,0xbf03438d,4
+np.float32,0x3f4256be,0x3f5cab0b,4
+np.float32,0xbdbdb198,0xbdbdf74d,4
+np.float32,0xbf325b5f,0xbf4552e9,4
+np.float32,0xbf704d1a,0xbf9c00b4,4
+np.float32,0x3ebb1d04,0x3ebf8cf8,4
+np.float32,0xbed03566,0xbed66bf1,4
+np.float32,0x3e8fcee8,0x3e91c501,4
+np.float32,0xbf2e1eec,0xbf3f7b9d,4
+np.float32,0x3f33c4d2,0x3f474cac,4
+np.float32,0x3f598ef4,0x3f8201b4,4
+np.float32,0x3e09bb30,0x3e0a2660,4
+np.float32,0x3ed4e228,0x3edb8cdb,4
+np.float32,0x3eb7a190,0x3ebbd0a1,4
+np.float32,0xbd9ae630,0xbd9b0c18,4
+np.float32,0x3f43020e,0x3f5db2d7,4
+np.float32,0xbec06ac0,0xbec542d4,4
+np.float32,0x3f3dfde0,0x3f561674,4
+np.float32,0xbf64084a,0xbf8cabe6,4
+np.float32,0xbd6f95b0,0xbd6fb8b7,4
+np.float32,0x3f268640,0x3f354e2d,4
+np.float32,0xbe72b4bc,0xbe7509b2,4
+np.float32,0xbf3414fa,0xbf47bd5a,4
+np.float32,0xbf375218,0xbf4c566b,4
+np.float32,0x3f203c1a,0x3f2d2273,4
+np.float32,0xbd503530,0xbd504c2b,4
+np.float32,0xbc45e540,0xbc45e67b,4
+np.float32,0xbf175c4f,0xbf21f2c6,4
+np.float32,0x3f7432a6,0x3fa20b2b,4
+np.float32,0xbf43367f,0xbf5e03d8,4
+np.float32,0x3eb3997c,0x3eb780c4,4
+np.float32,0x3e5574c8,0x3e570878,4
+np.float32,0xbf04b57b,0xbf0b8349,4
+np.float32,0x3f6216d8,0x3f8a914b,4
+np.float32,0xbf57a237,0xbf80337d,4
+np.float32,0xbee1403a,0xbee93bee,4
+np.float32,0xbeaf9b9a,0xbeb33f3b,4
+np.float32,0xbf109374,0xbf19a223,4
+np.float32,0xbeae6824,0xbeb1f810,4
+np.float32,0xbcff9320,0xbcff9dbe,4
+np.float32,0x3ed205c0,0x3ed868a9,4
+np.float32,0x3d897c30,0x3d8996ad,4
+np.float32,0xbf2899d2,0xbf380d4c,4
+np.float32,0xbf54cb0b,0xbf7b36c2,4
+np.float32,0x3ea8e8ec,0x3eac2262,4
+np.float32,0x3ef5e1a0,0x3f003c9d,4
+np.float32,0xbf00c81e,0xbf06f1e2,4
+np.float32,0xbf346775,0xbf483181,4
+np.float32,0x3f7a4fe4,0x3fae077c,4
+np.float32,0x3f00776e,0x3f06948f,4
+np.float32,0xbe0a3078,0xbe0a9cbc,4
+np.float32,0xbeba0b06,0xbebe66be,4
+np.float32,0xbdff4e38,0xbdfff8b2,4
+np.float32,0xbe927f70,0xbe9492ff,4
+np.float32,0x3ebb07e0,0x3ebf7642,4
+np.float32,0x3ebcf8e0,0x3ec18c95,4
+np.float32,0x3f49bdfc,0x3f685b51,4
+np.float32,0x3cbc29c0,0x3cbc2dfd,4
+np.float32,0xbe9e951a,0xbea13bf1,4
+np.float32,0xbe8c237c,0xbe8df33d,4
+np.float32,0x3e17f198,0x3e1881c4,4
+np.float32,0xbd0b5220,0xbd0b5902,4
+np.float32,0xbf34c4a2,0xbf48b4f5,4
+np.float32,0xbedaa814,0xbee1ea94,4
+np.float32,0x3ebf5d6c,0x3ec42053,4
+np.float32,0x3cd04b40,0x3cd050ff,4
+np.float32,0xbec33fe0,0xbec85244,4
+np.float32,0xbf00b27a,0xbf06d8d8,4
+np.float32,0x3f15d7be,0x3f201243,4
+np.float32,0xbe3debd0,0xbe3f06f7,4
+np.float32,0xbea81704,0xbeab4418,4
+np.float32,0x1,0x1,4
+np.float32,0x3f49e6ba,0x3f689d8b,4
+np.float32,0x3f351030,0x3f491fc0,4
+np.float32,0x3e607de8,0x3e625482,4
+np.float32,0xbe8dbbe4,0xbe8f9c0e,4
+np.float32,0x3edbf350,0x3ee35924,4
+np.float32,0xbf0c84c4,0xbf14bf9c,4
+np.float32,0x3eb218b0,0x3eb5e61a,4
+np.float32,0x3e466dd0,0x3e47b138,4
+np.float32,0xbe8ece94,0xbe90ba01,4
+np.float32,0xbe82ec2a,0xbe84649a,4
+np.float32,0xbf7e1f10,0xbfb98b9e,4
+np.float32,0xbf2d00ea,0xbf3df688,4
+np.float32,0x3db7cdd0,0x3db80d36,4
+np.float32,0xbe388b98,0xbe398f25,4
+np.float32,0xbd86cb40,0xbd86e436,4
+np.float32,0x7f7fffff,0x7fc00000,4
+np.float32,0x3f472a60,0x3f6436c6,4
+np.float32,0xbf5b2c1d,0xbf838d87,4
+np.float32,0x3f0409ea,0x3f0abad8,4
+np.float32,0x3f47dd0e,0x3f6553f0,4
+np.float32,0x3e3eab00,0x3e3fc98a,4
+np.float32,0xbf7c2a7f,0xbfb2e19b,4
+np.float32,0xbeda0048,0xbee13112,4
+np.float32,0x3f46600a,0x3f62f5b2,4
+np.float32,0x3f45aef4,0x3f61de43,4
+np.float32,0x3dd40a50,0x3dd46bc4,4
+np.float32,0xbf6cdd0b,0xbf974191,4
+np.float32,0x3f78de4c,0x3faac725,4
+np.float32,0x3f3c39a4,0x3f53777f,4
+np.float32,0xbe2a30ec,0xbe2afc0b,4
+np.float32,0xbf3c0ef0,0xbf533887,4
+np.float32,0x3ecb6548,0x3ed12a53,4
+np.float32,0x3eb994e8,0x3ebde7fc,4
+np.float32,0x3d4c1ee0,0x3d4c3487,4
+np.float32,0xbf52cb6d,0xbf77a7eb,4
+np.float32,0x3eb905d4,0x3ebd4e80,4
+np.float32,0x3e712428,0x3e736d72,4
+np.float32,0xbf79ee6e,0xbfad22be,4
+np.float32,0x3de6f8b0,0x3de776c1,4
+np.float32,0x3e9b2898,0x3e9da325,4
+np.float32,0x3ea09b20,0x3ea35d20,4
+np.float32,0x3d0ea9a0,0x3d0eb103,4
+np.float32,0xbd911500,0xbd913423,4
+np.float32,0x3e004618,0x3e009c97,4
+np.float32,0x3f5e0e5a,0x3f86654c,4
+np.float32,0x3f2e6300,0x3f3fd88b,4
+np.float32,0x3e0cf5d0,0x3e0d68c3,4
+np.float32,0x3d6a16c0,0x3d6a376c,4
+np.float32,0x3f7174aa,0x3f9db53c,4
+np.float32,0xbe04bba0,0xbe051b81,4
+np.float32,0xbe6fdcb4,0xbe721c92,4
+np.float32,0x3f4379f0,0x3f5e6c31,4
+np.float32,0xbf680098,0xbf913257,4
+np.float32,0xbf3c31ca,0xbf536bea,4
+np.float32,0x3f59db58,0x3f824a4e,4
+np.float32,0xbf3ffc84,0xbf591554,4
+np.float32,0x3d1d5160,0x3d1d5b48,4
+np.float32,0x3f6c64ae,0x3f96a3da,4
+np.float32,0xbf1b49fd,0xbf26daaa,4
+np.float32,0x3ec80be0,0x3ecd8576,4
+np.float32,0x3f3becc0,0x3f530629,4
+np.float32,0xbea93890,0xbeac76c1,4
+np.float32,0x3f5b3acc,0x3f839bbd,4
+np.float32,0xbf5d6818,0xbf85bef9,4
+np.float32,0x3f794266,0x3fab9fa6,4
+np.float32,0xbee8eb7c,0xbef1cf3b,4
+np.float32,0xbf360a06,0xbf4a821e,4
+np.float32,0x3f441cf6,0x3f5f693d,4
+np.float32,0x3e60de40,0x3e62b742,4
+np.float32,0xbebb3d7e,0xbebfafdc,4
+np.float32,0x3e56a3a0,0x3e583e28,4
+np.float32,0x3f375bfe,0x3f4c6499,4
+np.float32,0xbf384d7d,0xbf4dbf9a,4
+np.float32,0x3efb03a4,0x3f032c06,4
+np.float32,0x3f1d5d10,0x3f29794d,4
+np.float32,0xbe25f7dc,0xbe26b41d,4
+np.float32,0x3f6d2f88,0x3f97aebb,4
+np.float32,0xbe9fa100,0xbea255cb,4
+np.float32,0xbf21dafa,0xbf2f382a,4
+np.float32,0x3d3870e0,0x3d3880d9,4
+np.float32,0x3eeaf00c,0x3ef413f4,4
+np.float32,0xbc884ea0,0xbc88503c,4
+np.float32,0xbf7dbdad,0xbfb80b6d,4
+np.float32,0xbf4eb713,0xbf709b46,4
+np.float32,0xbf1c0ad4,0xbf27cd92,4
+np.float32,0x3f323088,0x3f451737,4
+np.float32,0x3e405d88,0x3e4183e1,4
+np.float32,0x3d7ad580,0x3d7afdb4,4
+np.float32,0xbf207338,0xbf2d6927,4
+np.float32,0xbecf7948,0xbed59e1a,4
+np.float32,0x3f16ff94,0x3f217fde,4
+np.float32,0xbdf19588,0xbdf225dd,4
+np.float32,0xbf4d9654,0xbf6eb442,4
+np.float32,0xbf390b9b,0xbf4ed220,4
+np.float32,0xbe155a74,0xbe15e354,4
+np.float32,0x3f519e4c,0x3f759850,4
+np.float32,0xbee3f08c,0xbeec3b84,4
+np.float32,0xbf478be7,0xbf64d23b,4
+np.float32,0xbefdee50,0xbf04d92a,4
+np.float32,0x3e8def78,0x3e8fd1bc,4
+np.float32,0x3e3df2a8,0x3e3f0dee,4
+np.float32,0xbf413e22,0xbf5afd97,4
+np.float32,0xbf1b8bc4,0xbf272d71,4
+np.float32,0xbf31e5be,0xbf44af22,4
+np.float32,0x3de7e080,0x3de86010,4
+np.float32,0xbf5ddf7e,0xbf863645,4
+np.float32,0x3f3eba6a,0x3f57306e,4
+np.float32,0xff7fffff,0x7fc00000,4
+np.float32,0x3ec22d5c,0x3ec72973,4
+np.float32,0x80800000,0x80800000,4
+np.float32,0x3f032e0c,0x3f09ba82,4
+np.float32,0x3d74bd60,0x3d74e2b7,4
+np.float32,0xbea0d61e,0xbea39b42,4
+np.float32,0xbefdfa78,0xbf04e02a,4
+np.float32,0x3e5cb220,0x3e5e70ec,4
+np.float32,0xbe239e54,0xbe2452a4,4
+np.float32,0x3f452738,0x3f61090e,4
+np.float32,0x3e99a2e0,0x3e9c0a66,4
+np.float32,0x3e4394d8,0x3e44ca5f,4
+np.float32,0x3f4472e2,0x3f5fef14,4
+np.float32,0xbf46bc70,0xbf638814,4
+np.float32,0xbf0b910f,0xbf139c7a,4
+np.float32,0x3f36b4a6,0x3f4b753f,4
+np.float32,0x3e0bf478,0x3e0c64f6,4
+np.float32,0x3ce02480,0x3ce02ba9,4
+np.float32,0xbd904b10,0xbd9069b1,4
+np.float32,0xbf7f5d72,0xbfc00b70,4
+np.float32,0x3f62127e,0x3f8a8ca8,4
+np.float32,0xbf320253,0xbf44d6e4,4
+np.float32,0x3f2507be,0x3f335833,4
+np.float32,0x3f299284,0x3f395887,4
+np.float32,0xbd8211b0,0xbd82281d,4
+np.float32,0xbd3374c0,0xbd338376,4
+np.float32,0x3f36c56a,0x3f4b8d30,4
+np.float32,0xbf51f704,0xbf76331f,4
+np.float32,0xbe9871ca,0xbe9acab2,4
+np.float32,0xbe818d8c,0xbe82fa0f,4
+np.float32,0x3f08b958,0x3f103c18,4
+np.float32,0x3f22559a,0x3f2fd698,4
+np.float32,0xbf11f388,0xbf1b4db8,4
+np.float32,0x3ebe1990,0x3ec2c359,4
+np.float32,0xbe75ab38,0xbe7816b6,4
+np.float32,0x3e96102c,0x3e984c99,4
+np.float32,0xbe80d9d2,0xbe824052,4
+np.float32,0x3ef47588,0x3efeda7f,4
+np.float32,0xbe45e524,0xbe4725ea,4
+np.float32,0x3f7f9e7a,0x3fc213ff,4
+np.float32,0x3f1d3c36,0x3f294faa,4
+np.float32,0xbf3c58db,0xbf53a591,4
+np.float32,0x3f0d3d20,0x3f159c69,4
+np.float32,0x3f744be6,0x3fa23552,4
+np.float32,0x3f2e0cea,0x3f3f630e,4
+np.float32,0x3e193c10,0x3e19cff7,4
+np.float32,0xbf4150ac,0xbf5b19dd,4
+np.float32,0xbf145f72,0xbf1e4355,4
+np.float32,0xbb76cc00,0xbb76cc26,4
+np.float32,0x3f756780,0x3fa41b3e,4
+np.float32,0x3ea9b868,0x3eacfe3c,4
+np.float32,0x3d07c920,0x3d07cf7f,4
+np.float32,0xbf2263d4,0xbf2fe8ff,4
+np.float32,0x3e53b3f8,0x3e553daa,4
+np.float32,0xbf785be8,0xbfa9b5ba,4
+np.float32,0x3f324f7a,0x3f454254,4
+np.float32,0xbf2188f2,0xbf2ece5b,4
+np.float32,0xbe33781c,0xbe3466a2,4
+np.float32,0xbd3cf120,0xbd3d024c,4
+np.float32,0x3f06b18a,0x3f0dd70f,4
+np.float32,0x3f40d63e,0x3f5a5f6a,4
+np.float32,0x3f752340,0x3fa3a41e,4
+np.float32,0xbe1cf1c0,0xbe1d90bc,4
+np.float32,0xbf02d948,0xbf0957d7,4
+np.float32,0x3f73bed0,0x3fa14bf7,4
+np.float32,0x3d914920,0x3d916864,4
+np.float32,0x7fa00000,0x7fe00000,4
+np.float32,0xbe67a5d8,0xbe69aba7,4
+np.float32,0x3f689c4a,0x3f91eb9f,4
+np.float32,0xbf196e00,0xbf248601,4
+np.float32,0xbf50dacb,0xbf7444fe,4
+np.float32,0x3f628b86,0x3f8b0e1e,4
+np.float32,0x3f6ee2f2,0x3f99fe7f,4
+np.float32,0x3ee5df40,0x3eee6492,4
+np.float32,0x3f501746,0x3f72f41b,4
+np.float32,0xbf1f0f18,0xbf2ba164,4
+np.float32,0xbf1a8bfd,0xbf25ec01,4
+np.float32,0xbd4926f0,0xbd493ba9,4
+np.float32,0xbf4e364f,0xbf6fc17b,4
+np.float32,0x3e50c578,0x3e523ed4,4
+np.float32,0x3f65bf10,0x3f8e95ce,4
+np.float32,0xbe8d75a2,0xbe8f52f2,4
+np.float32,0xbf3f557e,0xbf581962,4
+np.float32,0xbeff2bfc,0xbf05903a,4
+np.float32,0x3f5e8bde,0x3f86e3d8,4
+np.float32,0xbf7a0012,0xbfad4b9b,4
+np.float32,0x3edefce0,0x3ee6b790,4
+np.float32,0xbf0003de,0xbf060f09,4
+np.float32,0x3efc4650,0x3f03e548,4
+np.float32,0x3f4582e4,0x3f6198f5,4
+np.float32,0x3f10086c,0x3f18f9d0,4
+np.float32,0x3f1cd304,0x3f28ca77,4
+np.float32,0x3f683366,0x3f916e8d,4
+np.float32,0xbed49392,0xbedb3675,4
+np.float32,0xbf6fe5f6,0xbf9b6c0e,4
+np.float32,0xbf59b416,0xbf8224f6,4
+np.float32,0x3d20c960,0x3d20d3f4,4
+np.float32,0x3f6b00d6,0x3f94dbe7,4
+np.float32,0x3f6c26ae,0x3f965352,4
+np.float32,0xbf370ea6,0xbf4bf5dd,4
+np.float32,0x3dfe7230,0x3dff1af1,4
+np.float32,0xbefc21a8,0xbf03d038,4
+np.float32,0x3f16a990,0x3f21156a,4
+np.float32,0xbef8ac0c,0xbf01d48f,4
+np.float32,0x3f170de8,0x3f21919d,4
+np.float32,0x3db9ef80,0x3dba3122,4
+np.float32,0x3d696400,0x3d698461,4
+np.float32,0x3f007aa2,0x3f069843,4
+np.float32,0x3f22827c,0x3f3010a9,4
+np.float32,0x3f3650dc,0x3f4ae6f1,4
+np.float32,0xbf1d8037,0xbf29a5e1,4
+np.float32,0xbf08fdc4,0xbf108d0e,4
+np.float32,0xbd8df350,0xbd8e1079,4
+np.float32,0xbf36bb32,0xbf4b7e98,4
+np.float32,0x3f2e3756,0x3f3f9ced,4
+np.float32,0x3d5a6f20,0x3d5a89aa,4
+np.float32,0x3f55d568,0x3f7d1889,4
+np.float32,0x3e1ed110,0x3e1f75d9,4
+np.float32,0x3e7386b8,0x3e75e1dc,4
+np.float32,0x3f48ea0e,0x3f670434,4
+np.float32,0x3e921fb0,0x3e942f14,4
+np.float32,0xbf0d4d0b,0xbf15af7f,4
+np.float32,0x3f179ed2,0x3f224549,4
+np.float32,0xbf3a328e,0xbf507e6d,4
+np.float32,0xbf74591a,0xbfa24b6e,4
+np.float32,0x3ec7d1c4,0x3ecd4657,4
+np.float32,0xbf6ecbed,0xbf99de85,4
+np.float32,0x3db0bd00,0x3db0f559,4
+np.float32,0x7f800000,0x7fc00000,4
+np.float32,0x3e0373b8,0x3e03d0d6,4
+np.float32,0xbf439784,0xbf5e9a04,4
+np.float32,0xbef97a9e,0xbf024ac6,4
+np.float32,0x3e4d71a8,0x3e4ed90a,4
+np.float32,0xbf14d868,0xbf1ed7e3,4
+np.float32,0xbf776870,0xbfa7ce37,4
+np.float32,0xbe32a500,0xbe339038,4
+np.float32,0xbf326d8a,0xbf456c3d,4
+np.float32,0xbe9b758c,0xbe9df3e7,4
+np.float32,0x3d9515a0,0x3d95376a,4
+np.float32,0x3e3f7320,0x3e40953e,4
+np.float32,0xbee57e7e,0xbeedf84f,4
+np.float32,0x3e821e94,0x3e838ffd,4
+np.float32,0x3f74beaa,0x3fa2f721,4
+np.float32,0xbe9b7672,0xbe9df4d9,4
+np.float32,0x3f4041fc,0x3f597e71,4
+np.float32,0xbe9ea7c4,0xbea14f92,4
+np.float32,0xbf800000,0xbfc90fdb,4
+np.float32,0x3e04fb90,0x3e055bfd,4
+np.float32,0xbf14d3d6,0xbf1ed245,4
+np.float32,0xbe84ebec,0xbe86763e,4
+np.float32,0x3f08e568,0x3f107039,4
+np.float32,0x3d8dc9e0,0x3d8de6ef,4
+np.float32,0x3ea4549c,0x3ea74a94,4
+np.float32,0xbebd2806,0xbec1bf51,4
+np.float32,0x3f311a26,0x3f439498,4
+np.float32,0xbf3d2222,0xbf54cf7e,4
+np.float32,0x3e00c500,0x3e011c81,4
+np.float32,0xbe35ed1c,0xbe36e5a9,4
+np.float32,0xbd4ec020,0xbd4ed6a0,4
+np.float32,0x3e1eb088,0x3e1f54eb,4
+np.float32,0x3cf94840,0x3cf9521a,4
+np.float32,0xbf010c5d,0xbf0740e0,4
+np.float32,0xbf3bd63b,0xbf52e502,4
+np.float32,0x3f233f30,0x3f310542,4
+np.float32,0x3ea24128,0x3ea519d7,4
+np.float32,0x3f478b38,0x3f64d124,4
+np.float32,0x3f1e0c6c,0x3f2a57ec,4
+np.float32,0xbf3ad294,0xbf51680a,4
+np.float32,0x3ede0554,0x3ee5a4b4,4
+np.float32,0x3e451a98,0x3e46577d,4
+np.float32,0x3f520164,0x3f764542,4
+np.float32,0x0,0x0,4
+np.float32,0xbd056cd0,0xbd0572db,4
+np.float32,0xbf58b018,0xbf812f5e,4
+np.float32,0x3e036eb0,0x3e03cbc3,4
+np.float32,0x3d1377a0,0x3d137fc9,4
+np.float32,0xbf692d3a,0xbf929a2c,4
+np.float32,0xbec60fb8,0xbecb5dea,4
+np.float32,0x3ed23340,0x3ed89a8e,4
+np.float32,0x3c87f040,0x3c87f1d9,4
+np.float32,0x3dac62f0,0x3dac9737,4
+np.float32,0xbed97c16,0xbee09f02,4
+np.float32,0xbf2d5f3c,0xbf3e769c,4
+np.float32,0xbc3b7c40,0xbc3b7d4c,4
+np.float32,0x3ed998ec,0x3ee0bedd,4
+np.float32,0x3dd86630,0x3dd8cdcb,4
+np.float32,0x3e8b4304,0x3e8d09ea,4
+np.float32,0x3f51e6b0,0x3f761697,4
+np.float32,0x3ec51f24,0x3eca5923,4
+np.float32,0xbf647430,0xbf8d2307,4
+np.float32,0x3f253d9c,0x3f339eb2,4
+np.float32,0x3dc969d0,0x3dc9bd4b,4
+np.float32,0xbc2f1300,0xbc2f13da,4
+np.float32,0xbf170007,0xbf21806d,4
+np.float32,0x3f757d10,0x3fa4412e,4
+np.float32,0xbe7864ac,0xbe7ae564,4
+np.float32,0x3f2ffe90,0x3f420cfb,4
+np.float32,0xbe576138,0xbe590012,4
+np.float32,0xbf517a21,0xbf755959,4
+np.float32,0xbf159cfe,0xbf1fc9d5,4
+np.float32,0xbf638b2a,0xbf8c22cf,4
+np.float32,0xff800000,0x7fc00000,4
+np.float32,0x3ed19ca0,0x3ed7f569,4
+np.float32,0x3f7c4460,0x3fb32d26,4
+np.float32,0x3ebfae6c,0x3ec477ab,4
+np.float32,0x3dd452d0,0x3dd4b4a8,4
+np.float32,0x3f471482,0x3f6413fb,4
+np.float32,0xbf49d704,0xbf6883fe,4
+np.float32,0xbd42c4e0,0xbd42d7af,4
+np.float32,0xbeb02994,0xbeb3d668,4
+np.float32,0x3f4d1fd8,0x3f6dedd2,4
+np.float32,0x3efb591c,0x3f035d11,4
+np.float32,0x80000000,0x80000000,4
+np.float32,0xbf50f782,0xbf7476ad,4
+np.float32,0x3d7232c0,0x3d7256f0,4
+np.float32,0x3f649460,0x3f8d46bb,4
+np.float32,0x3f5561bc,0x3f7c46a9,4
+np.float32,0x3e64f6a0,0x3e66ea5d,4
+np.float32,0x3e5b0470,0x3e5cb8f9,4
+np.float32,0xbe9b6b2c,0xbe9de904,4
+np.float32,0x3f6c33f4,0x3f966486,4
+np.float32,0x3f5cee54,0x3f854613,4
+np.float32,0x3ed3e044,0x3eda716e,4
+np.float32,0xbf3cac7f,0xbf542131,4
+np.float32,0x3c723500,0x3c723742,4
+np.float32,0x3de59900,0x3de614d3,4
+np.float32,0xbdf292f8,0xbdf32517,4
+np.float32,0x3f05c8b2,0x3f0cc59b,4
+np.float32,0xbf1ab182,0xbf261b14,4
+np.float32,0xbda396f0,0xbda3c39a,4
+np.float32,0xbf270ed0,0xbf360231,4
+np.float32,0x3f2063e6,0x3f2d557e,4
+np.float32,0x3c550280,0x3c550409,4
+np.float32,0xbe103b48,0xbe10b679,4
+np.float32,0xbebae390,0xbebf4f40,4
+np.float32,0x3f3bc868,0x3f52d0aa,4
+np.float32,0xbd62f880,0xbd631647,4
+np.float32,0xbe7a38f4,0xbe7cc833,4
+np.float32,0x3f09d796,0x3f118f39,4
+np.float32,0xbf5fa558,0xbf8802d0,4
+np.float32,0x3f111cc8,0x3f1a48b0,4
+np.float32,0x3e831958,0x3e849356,4
+np.float32,0xbf614dbd,0xbf89bc3b,4
+np.float32,0xbd521510,0xbd522cac,4
+np.float32,0x3f05af22,0x3f0ca7a0,4
+np.float32,0xbf1ac60e,0xbf2634df,4
+np.float32,0xbf6bd05e,0xbf95e3fe,4
+np.float32,0xbd1fa6e0,0xbd1fb13b,4
+np.float32,0xbeb82f7a,0xbebc68b1,4
+np.float32,0xbd92aaf8,0xbd92cb23,4
+np.float32,0xbe073a54,0xbe079fbf,4
+np.float32,0xbf198655,0xbf24a468,4
+np.float32,0x3f62f6d8,0x3f8b81ba,4
+np.float32,0x3eef4310,0x3ef8f4f9,4
+np.float32,0x3e8988e0,0x3e8b3eae,4
+np.float32,0xbf3ddba5,0xbf55e367,4
+np.float32,0x3dc6d2e0,0x3dc7232b,4
+np.float32,0xbf31040e,0xbf437601,4
+np.float32,0x3f1bb74a,0x3f276442,4
+np.float32,0xbf0075d2,0xbf0692b3,4
+np.float32,0xbf606ce0,0xbf88d0ff,4
+np.float32,0xbf083856,0xbf0fa39d,4
+np.float32,0xbdb25b20,0xbdb2950a,4
+np.float32,0xbeb86860,0xbebca5ae,4
+np.float32,0x3de83160,0x3de8b176,4
+np.float32,0xbf33a98f,0xbf472664,4
+np.float32,0x3e7795f8,0x3e7a1058,4
+np.float32,0x3e0ca6f8,0x3e0d192a,4
+np.float32,0xbf1aef60,0xbf2668c3,4
+np.float32,0xbda53b58,0xbda5695e,4
+np.float32,0xbf178096,0xbf221fc5,4
+np.float32,0xbf0a4159,0xbf120ccf,4
+np.float32,0x3f7bca36,0x3fb1d0df,4
+np.float32,0xbef94360,0xbf022b26,4
+np.float32,0xbef16f36,0xbefb6ad6,4
+np.float32,0x3f53a7e6,0x3f792e25,4
+np.float32,0xbf7c536f,0xbfb35993,4
+np.float32,0xbe84aaa0,0xbe8632a2,4
+np.float32,0x3ecb3998,0x3ed0fab9,4
+np.float32,0x3f539304,0x3f79090a,4
+np.float32,0xbf3c7816,0xbf53d3b3,4
+np.float32,0xbe7a387c,0xbe7cc7b7,4
+np.float32,0x3f7000e4,0x3f9b92b1,4
+np.float32,0x3e08fd70,0x3e0966e5,4
+np.float32,0x3db97ba0,0x3db9bcc8,4
+np.float32,0xbee99056,0xbef2886a,4
+np.float32,0xbf0668da,0xbf0d819e,4
+np.float32,0x3e58a408,0x3e5a4a51,4
+np.float32,0x3f3440b8,0x3f47faed,4
+np.float32,0xbf19a2ce,0xbf24c7ff,4
+np.float32,0xbe75e990,0xbe7856ee,4
+np.float32,0x3f3c865c,0x3f53e8cb,4
+np.float32,0x3e5e03d0,0x3e5fcac9,4
+np.float32,0x3edb8e34,0x3ee2e932,4
+np.float32,0xbf7e1f5f,0xbfb98ce4,4
+np.float32,0xbf7372ff,0xbfa0d0ae,4
+np.float32,0xbf3ee850,0xbf577548,4
+np.float32,0x3ef19658,0x3efb9737,4
+np.float32,0xbe8088de,0xbe81ecaf,4
+np.float32,0x800000,0x800000,4
+np.float32,0xbde39dd8,0xbde4167a,4
+np.float32,0xbf065d7a,0xbf0d7441,4
+np.float32,0xbde52c78,0xbde5a79b,4
+np.float32,0xbe3a28c0,0xbe3b333e,4
+np.float32,0x3f6e8b3c,0x3f998516,4
+np.float32,0x3f3485c2,0x3f485c39,4
+np.float32,0x3e6f2c68,0x3e71673e,4
+np.float32,0xbe4ec9cc,0xbe50385e,4
+np.float32,0xbf1c3bb0,0xbf280b39,4
+np.float32,0x3ec8ea18,0x3ece76f7,4
+np.float32,0x3e26b5f8,0x3e2774c9,4
+np.float32,0x3e1e4a38,0x3e1eed5c,4
+np.float32,0xbee7a106,0xbef05c6b,4
+np.float32,0xbf305928,0xbf4289d8,4
+np.float32,0x3f0c431c,0x3f147118,4
+np.float32,0xbe57ba6c,0xbe595b52,4
+np.float32,0x3eabc9cc,0x3eaf2fc7,4
+np.float32,0xbef1ed24,0xbefbf9ae,4
+np.float32,0xbf61b576,0xbf8a29cc,4
+np.float32,0x3e9c1ff4,0x3e9ea6cb,4
+np.float32,0x3f6c53b2,0x3f968dbe,4
+np.float32,0x3e2d1b80,0x3e2df156,4
+np.float32,0x3e9f2f70,0x3ea1de4a,4
+np.float32,0xbf5861ee,0xbf80e61a,4
+np.float32,0x3f429144,0x3f5d0505,4
+np.float32,0x3e235cc8,0x3e24103e,4
+np.float32,0xbf354879,0xbf496f6a,4
+np.float32,0xbf20a146,0xbf2da447,4
+np.float32,0x3e8d8968,0x3e8f6785,4
+np.float32,0x3f3fbc94,0x3f58b4c1,4
+np.float32,0x3f2c5f50,0x3f3d1b9f,4
+np.float32,0x3f7bf0f8,0x3fb23d23,4
+np.float32,0xbf218282,0xbf2ec60f,4
+np.float32,0x3f2545aa,0x3f33a93e,4
+np.float32,0xbf4b17be,0xbf6a9018,4
+np.float32,0xbb9df700,0xbb9df728,4
+np.float32,0x3f685d54,0x3f91a06c,4
+np.float32,0x3efdfe2c,0x3f04e24c,4
+np.float32,0x3ef1c5a0,0x3efbccd9,4
+np.float32,0xbf41d731,0xbf5be76e,4
+np.float32,0x3ebd1360,0x3ec1a919,4
+np.float32,0xbf706bd4,0xbf9c2d58,4
+np.float32,0x3ea525e4,0x3ea8279d,4
+np.float32,0xbe51f1b0,0xbe537186,4
+np.float32,0x3f5e8cf6,0x3f86e4f4,4
+np.float32,0xbdad2520,0xbdad5a19,4
+np.float32,0xbf5c5704,0xbf84b0e5,4
+np.float32,0x3f47b54e,0x3f65145e,4
+np.float32,0x3eb4fc78,0x3eb8fc0c,4
+np.float32,0x3dca1450,0x3dca68a1,4
+np.float32,0x3eb02a74,0x3eb3d757,4
+np.float32,0x3f74ae6a,0x3fa2db75,4
+np.float32,0x3f800000,0x3fc90fdb,4
+np.float32,0xbdb46a00,0xbdb4a5f2,4
+np.float32,0xbe9f2ba6,0xbea1da4e,4
+np.float32,0x3f0afa70,0x3f12e8f7,4
+np.float32,0xbf677b20,0xbf909547,4
+np.float32,0x3eff9188,0x3f05cacf,4
+np.float32,0x3f720562,0x3f9e911b,4
+np.float32,0xbf7180d8,0xbf9dc794,4
+np.float32,0xbee7d076,0xbef0919d,4
+np.float32,0x3f0432ce,0x3f0aea95,4
+np.float32,0x3f3bc4c8,0x3f52cb54,4
+np.float32,0xbea72f30,0xbeaa4ebe,4
+np.float32,0x3e90ed00,0x3e92ef33,4
+np.float32,0xbda63670,0xbda6654a,4
+np.float32,0xbf5a6f85,0xbf82d7e0,4
+np.float32,0x3e6e8808,0x3e70be34,4
+np.float32,0xbf4f3822,0xbf71768f,4
+np.float32,0x3e5c8a68,0x3e5e483f,4
+np.float32,0xbf0669d4,0xbf0d82c4,4
+np.float32,0xbf79f77c,0xbfad37b0,4
+np.float32,0x3f25c82c,0x3f345453,4
+np.float32,0x3f1b2948,0x3f26b188,4
+np.float32,0x3ef7e288,0x3f016159,4
+np.float32,0x3c274280,0x3c27433e,4
+np.float32,0xbf4c8fa0,0xbf6cfd5e,4
+np.float32,0x3ea4ccb4,0x3ea7c966,4
+np.float32,0xbf7b157e,0xbfafefca,4
+np.float32,0xbee4c2b0,0xbeed264d,4
+np.float32,0xbc1fd640,0xbc1fd6e6,4
+np.float32,0x3e892308,0x3e8ad4f6,4
+np.float32,0xbf3f69c7,0xbf5837ed,4
+np.float32,0x3ec879e8,0x3ecdfd05,4
+np.float32,0x3f07a8c6,0x3f0efa30,4
+np.float32,0x3f67b880,0x3f90dd4d,4
+np.float32,0x3e8a11c8,0x3e8bccd5,4
+np.float32,0x3f7df6fc,0x3fb8e935,4
+np.float32,0xbef3e498,0xbefe3599,4
+np.float32,0xbf18ad7d,0xbf2395d8,4
+np.float32,0x3f2bce74,0x3f3c57f5,4
+np.float32,0xbf38086e,0xbf4d5c2e,4
+np.float32,0x3f772d7a,0x3fa75c35,4
+np.float32,0xbf3b6e24,0xbf524c00,4
+np.float32,0xbdd39108,0xbdd3f1d4,4
+np.float32,0xbf691f6b,0xbf928974,4
+np.float32,0x3f146188,0x3f1e45e4,4
+np.float32,0xbf56045b,0xbf7d6e03,4
+np.float32,0xbf4b2ee4,0xbf6ab622,4
+np.float32,0xbf3fa3f6,0xbf588f9d,4
+np.float32,0x3f127bb0,0x3f1bf398,4
+np.float32,0x3ed858a0,0x3edf5d3e,4
+np.float32,0xbd6de3b0,0xbd6e05fa,4
+np.float32,0xbecc662c,0xbed24261,4
+np.float32,0xbd6791d0,0xbd67b170,4
+np.float32,0xbf146016,0xbf1e441e,4
+np.float32,0xbf61f04c,0xbf8a6841,4
+np.float32,0xbe7f16d0,0xbe80e6e7,4
+np.float32,0xbebf93e6,0xbec45b10,4
+np.float32,0xbe8a59fc,0xbe8c17d1,4
+np.float32,0xbebc7a0c,0xbec10426,4
+np.float32,0xbf2a682e,0xbf3a7649,4
+np.float32,0xbe18d0cc,0xbe19637b,4
+np.float32,0x3d7f5100,0x3d7f7b66,4
+np.float32,0xbf10f5fa,0xbf1a1998,4
+np.float32,0x3f25e956,0x3f347fdc,4
+np.float32,0x3e6e8658,0x3e70bc78,4
+np.float32,0x3f21a5de,0x3f2ef3a5,4
+np.float32,0xbf4e71d4,0xbf702607,4
+np.float32,0xbf49d6b6,0xbf688380,4
+np.float32,0xbdb729c0,0xbdb7687c,4
+np.float32,0xbf63e1f4,0xbf8c81c7,4
+np.float32,0x3dda6cb0,0x3ddad73e,4
+np.float32,0x3ee1bc40,0x3ee9c612,4
+np.float32,0x3ebdb5f8,0x3ec2581b,4
+np.float32,0x3f7d9576,0x3fb77646,4
+np.float32,0x3e087140,0x3e08d971,4
+np.float64,0xbfdba523cfb74a48,0xbfdc960ddd9c0506,1
+np.float64,0x3fb51773622a2ee0,0x3fb51d93f77089d5,1
+np.float64,0x3fc839f6d33073f0,0x3fc85f9a47dfe8e6,1
+np.float64,0xbfecba2d82f9745b,0xbff1d55416c6c993,1
+np.float64,0x3fd520fe47aa41fc,0x3fd58867f1179634,1
+np.float64,0x3fe1b369c56366d4,0x3fe2c1ac9dd2c45a,1
+np.float64,0xbfec25a7cd784b50,0xbff133417389b12d,1
+np.float64,0xbfd286342ea50c68,0xbfd2cb0bca22e66d,1
+np.float64,0x3fd5f6fe5eabedfc,0x3fd66bad16680d08,1
+np.float64,0xbfe863a87570c751,0xbfebbb9b637eb6dc,1
+np.float64,0x3fc97f5b4d32feb8,0x3fc9ab5066d8eaec,1
+np.float64,0xbfcb667af936ccf4,0xbfcb9d3017047a1d,1
+np.float64,0xbfd1b7b9afa36f74,0xbfd1f3c175706154,1
+np.float64,0x3fef97385b7f2e70,0x3ff6922a1a6c709f,1
+np.float64,0xbfd13e4205a27c84,0xbfd1757c993cdb74,1
+np.float64,0xbfd18d88aca31b12,0xbfd1c7dd75068f7d,1
+np.float64,0x3fe040ce0f60819c,0x3fe10c59d2a27089,1
+np.float64,0xbfddc7deddbb8fbe,0xbfdef9de5baecdda,1
+np.float64,0xbfcf6e96193edd2c,0xbfcfc1bb7396b9a3,1
+np.float64,0x3fd544f494aa89e8,0x3fd5ae850e2b37dd,1
+np.float64,0x3fe15b381fe2b670,0x3fe25841c7bfe2af,1
+np.float64,0xbfde793420bcf268,0xbfdfc2ddc7b4a341,1
+np.float64,0x3fd0d5db30a1abb8,0x3fd1092cef4aa4fb,1
+np.float64,0x3fe386a08c670d42,0x3fe50059bbf7f491,1
+np.float64,0xbfe0aae3a96155c8,0xbfe1880ef13e95ce,1
+np.float64,0xbfe80eeb03f01dd6,0xbfeb39e9f107e944,1
+np.float64,0xbfd531af3caa635e,0xbfd59a178f17552a,1
+np.float64,0x3fcced14ab39da28,0x3fcd2d9a806337ef,1
+np.float64,0xbfdb4c71bcb698e4,0xbfdc33d9d9daf708,1
+np.float64,0xbfde7375ecbce6ec,0xbfdfbc5611bc48ff,1
+np.float64,0x3fecc5707a798ae0,0x3ff1e2268d778017,1
+np.float64,0x3fe8f210a1f1e422,0x3fec9b3349a5baa2,1
+np.float64,0x3fe357f9b8e6aff4,0x3fe4c5a0b89a9228,1
+np.float64,0xbfe0f863b761f0c8,0xbfe1e3283494c3d4,1
+np.float64,0x3fd017c395a02f88,0x3fd044761f2f4a66,1
+np.float64,0x3febeb4746f7d68e,0x3ff0f6b955e7feb6,1
+np.float64,0xbfbdaaeeae3b55e0,0xbfbdbc0950109261,1
+np.float64,0xbfea013095f40261,0xbfee5b8fe8ad8593,1
+np.float64,0xbfe9f87b7973f0f7,0xbfee4ca3a8438d72,1
+np.float64,0x3fd37f77cfa6fef0,0x3fd3d018c825f057,1
+np.float64,0x3fb0799cee20f340,0x3fb07c879e7cb63f,1
+np.float64,0xbfdcfd581cb9fab0,0xbfde15e35314b52d,1
+np.float64,0xbfd49781b8a92f04,0xbfd4f6fa1516fefc,1
+np.float64,0x3fb3fcb6d627f970,0x3fb401ed44a713a8,1
+np.float64,0x3fd5737ef8aae6fc,0x3fd5dfe42d4416c7,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfe56ae780ead5cf,0xbfe776ea5721b900,1
+np.float64,0x3fd4567786a8acf0,0x3fd4b255421c161a,1
+np.float64,0x3fef6fb58cfedf6c,0x3ff62012dfcf0a33,1
+np.float64,0xbfd1dbcd3da3b79a,0xbfd2194fd628f74d,1
+np.float64,0x3fd9350016b26a00,0x3fd9e8b01eb023e9,1
+np.float64,0xbfe4fb3a69e9f675,0xbfe6e1d2c9eca56c,1
+np.float64,0x3fe9fe0f73f3fc1e,0x3fee5631cfd39772,1
+np.float64,0xbfd51c1bc6aa3838,0xbfd5833b3bd53543,1
+np.float64,0x3fc64158e12c82b0,0x3fc65e7352f237d7,1
+np.float64,0x3fd0d8ee1ba1b1dc,0x3fd10c5c99a16f0e,1
+np.float64,0x3fd5554e15aaaa9c,0x3fd5bfdb9ec9e873,1
+np.float64,0x3fe61ce209ec39c4,0x3fe869bc4c28437d,1
+np.float64,0xbfe4e42c8c69c859,0xbfe6c356dac7e2db,1
+np.float64,0xbfe157021062ae04,0xbfe2533ed39f4212,1
+np.float64,0x3fe844066cf0880c,0x3feb8aea0b7bd0a4,1
+np.float64,0x3fe55016586aa02c,0x3fe752e4b2a67b9f,1
+np.float64,0x3fdabce619b579cc,0x3fdb95809bc789d9,1
+np.float64,0x3fee03bae37c0776,0x3ff3778ba38ca882,1
+np.float64,0xbfeb2f5844f65eb0,0xbff03dd1b767d3c8,1
+np.float64,0x3fedcfdbaffb9fb8,0x3ff32e81d0639164,1
+np.float64,0x3fe06fc63ee0df8c,0x3fe142fc27f92eaf,1
+np.float64,0x3fe7ce90fd6f9d22,0x3fead8f832bbbf5d,1
+np.float64,0xbfbc0015ce380028,0xbfbc0e7470e06e86,1
+np.float64,0xbfe9b3de90f367bd,0xbfedd857931dfc6b,1
+np.float64,0xbfcb588f5936b120,0xbfcb8ef0124a4f21,1
+np.float64,0x3f8d376a503a6f00,0x3f8d37ab43e7988d,1
+np.float64,0xbfdb123a40b62474,0xbfdbf38b6cf5db92,1
+np.float64,0xbfee7da6be7cfb4e,0xbff433042cd9d5eb,1
+np.float64,0xbfc4c9e01b2993c0,0xbfc4e18dbafe37ef,1
+np.float64,0x3fedd42faffba860,0x3ff334790cd18a19,1
+np.float64,0x3fe9cdf772f39bee,0x3fee044f87b856ab,1
+np.float64,0x3fe0245881e048b2,0x3fe0eb5a1f739c8d,1
+np.float64,0xbfe4712bd9e8e258,0xbfe62cb3d82034aa,1
+np.float64,0x3fe9a16b46f342d6,0x3fedb972b2542551,1
+np.float64,0xbfe57ab4536af568,0xbfe78c34b03569c2,1
+np.float64,0x3fb6d6ceb22dada0,0x3fb6de976964d6dd,1
+np.float64,0x3fc3ac23a3275848,0x3fc3c02de53919b8,1
+np.float64,0xbfccb531e7396a64,0xbfccf43ec69f6281,1
+np.float64,0xbfd2f07fc8a5e100,0xbfd33a35a8c41b62,1
+np.float64,0xbfe3e5dd04e7cbba,0xbfe57940157c27ba,1
+np.float64,0x3feefe40757dfc80,0x3ff51bc72b846af6,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x3fecb7b766796f6e,0x3ff1d28972a0fc7e,1
+np.float64,0xbfea1bf1357437e2,0xbfee89a6532bfd71,1
+np.float64,0xbfca3983b7347308,0xbfca696463b791ef,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0xbf886b45d030d680,0xbf886b6bbc04314b,1
+np.float64,0x3fd5224bb5aa4498,0x3fd589c92e82218f,1
+np.float64,0xbfec799874f8f331,0xbff18d5158b8e640,1
+np.float64,0xbf88124410302480,0xbf88126863350a16,1
+np.float64,0xbfe37feaaa66ffd6,0xbfe4f7e24382e79d,1
+np.float64,0x3fd777eca1aeefd8,0x3fd8076ead6d55dc,1
+np.float64,0x3fecaaeb3af955d6,0x3ff1c4159fa3e965,1
+np.float64,0xbfeb81e4e6f703ca,0xbff08d4e4c77fada,1
+np.float64,0xbfd7d0a0edafa142,0xbfd866e37010312e,1
+np.float64,0x3feda48c00fb4918,0x3ff2f3fd33c36307,1
+np.float64,0x3feb87ecc4770fda,0x3ff09336e490deda,1
+np.float64,0xbfefd78ad27faf16,0xbff78abbafb50ac1,1
+np.float64,0x3fe58e918c6b1d24,0x3fe7a70b38cbf016,1
+np.float64,0x3fda163b95b42c78,0x3fdade86b88ba4ee,1
+np.float64,0x3fe8fc1aaf71f836,0x3fecab3f93b59df5,1
+np.float64,0xbf8de56f903bcac0,0xbf8de5b527cec797,1
+np.float64,0xbfec112db2f8225b,0xbff11dd648de706f,1
+np.float64,0x3fc3214713264290,0x3fc333b1c862f7d0,1
+np.float64,0xbfeb5e5836f6bcb0,0xbff06ac364b49177,1
+np.float64,0x3fc23d9777247b30,0x3fc24d8ae3bcb615,1
+np.float64,0xbfdf0eed65be1dda,0xbfe036cea9b9dfb6,1
+np.float64,0xbfb2d5c85a25ab90,0xbfb2da24bb409ff3,1
+np.float64,0xbfecdda0c3f9bb42,0xbff1fdf94fc6e89e,1
+np.float64,0x3fdfe79154bfcf24,0x3fe0b338e0476a9d,1
+np.float64,0xbfd712ac6bae2558,0xbfd79abde21f287b,1
+np.float64,0x3fea3f148a747e2a,0x3feec6bed9d4fa04,1
+np.float64,0x3fd4879e4ca90f3c,0x3fd4e632fa4e2edd,1
+np.float64,0x3fe9137a9e7226f6,0x3fecd0c441088d6a,1
+np.float64,0xbfc75bf4ef2eb7e8,0xbfc77da8347d742d,1
+np.float64,0xbfd94090a0b28122,0xbfd9f5458816ed5a,1
+np.float64,0x3fde439cbcbc8738,0x3fdf85fbf496b61f,1
+np.float64,0xbfe18bacdce3175a,0xbfe29210e01237f7,1
+np.float64,0xbfd58ec413ab1d88,0xbfd5fcd838f0a934,1
+np.float64,0xbfeae5af2d75cb5e,0xbfeff1de1b4a06be,1
+np.float64,0x3fb64d1a162c9a30,0x3fb65458fb831354,1
+np.float64,0x3fc18b1e15231640,0x3fc1994c6ffd7a6a,1
+np.float64,0xbfd7b881bcaf7104,0xbfd84ce89a9ee8c7,1
+np.float64,0x3feb916a40f722d4,0x3ff09c8aa851d7c4,1
+np.float64,0x3fdab5fbb5b56bf8,0x3fdb8de43961bbde,1
+np.float64,0x3fe4f35402e9e6a8,0x3fe6d75dc5082894,1
+np.float64,0x3fe2fdb2e5e5fb66,0x3fe454e32a5d2182,1
+np.float64,0x3fe8607195f0c0e4,0x3febb6a4c3bf6a5c,1
+np.float64,0x3fd543ca9aaa8794,0x3fd5ad49203ae572,1
+np.float64,0x3fe8e05ca1f1c0ba,0x3fec7eff123dcc58,1
+np.float64,0x3fe298b6ca65316e,0x3fe3d81d2927c4dd,1
+np.float64,0x3fcfecea733fd9d8,0x3fd0220f1d0faf78,1
+np.float64,0xbfe2e739f065ce74,0xbfe439004e73772a,1
+np.float64,0xbfd1ae6b82a35cd8,0xbfd1ea129a5ee756,1
+np.float64,0xbfeb7edff576fdc0,0xbff08a5a638b8a8b,1
+np.float64,0x3fe5b645ff6b6c8c,0x3fe7dcee1faefe3f,1
+np.float64,0xbfd478427ba8f084,0xbfd4d5fc7c239e60,1
+np.float64,0xbfe39904e3e7320a,0xbfe517972b30b1e5,1
+np.float64,0xbfd3b75b6ba76eb6,0xbfd40acf20a6e074,1
+np.float64,0x3fd596267aab2c4c,0x3fd604b01faeaf75,1
+np.float64,0x3fe134463762688c,0x3fe229fc36784a72,1
+np.float64,0x3fd25dadf7a4bb5c,0x3fd2a0b9e04ea060,1
+np.float64,0xbfc05d3e0b20ba7c,0xbfc068bd2bb9966f,1
+np.float64,0x3f8cf517b039ea00,0x3f8cf556ed74b163,1
+np.float64,0x3fda87361cb50e6c,0x3fdb5a75af897e7f,1
+np.float64,0x3fe53e1926ea7c32,0x3fe73acf01b8ff31,1
+np.float64,0x3fe2e94857e5d290,0x3fe43b8cc820f9c7,1
+np.float64,0x3fd81fe6acb03fcc,0x3fd8bc623c0068cf,1
+np.float64,0xbfddf662c3bbecc6,0xbfdf2e76dc90786e,1
+np.float64,0x3fece174fbf9c2ea,0x3ff2026a1a889580,1
+np.float64,0xbfdc83c5b8b9078c,0xbfdd8dcf6ee3b7da,1
+np.float64,0x3feaf5448f75ea8a,0x3ff0075b108bcd0d,1
+np.float64,0xbfebf32f7ef7e65f,0xbff0fed42aaa826a,1
+np.float64,0x3fe389e5e8e713cc,0x3fe5047ade055ccb,1
+np.float64,0x3f635cdcc026ba00,0x3f635cddeea082ce,1
+np.float64,0x3fae580f543cb020,0x3fae5c9d5108a796,1
+np.float64,0x3fec9fafce793f60,0x3ff1b77bec654f00,1
+np.float64,0x3fb19d226e233a40,0x3fb1a0b32531f7ee,1
+np.float64,0xbfdf9a71e7bf34e4,0xbfe086cef88626c7,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0xbfef170ba2fe2e17,0xbff54ed4675f5b8a,1
+np.float64,0xbfcc6e2f8f38dc60,0xbfccab65fc34d183,1
+np.float64,0x3fee756c4bfcead8,0x3ff4258782c137e6,1
+np.float64,0xbfd461c218a8c384,0xbfd4be3e391f0ff4,1
+np.float64,0xbfe3b64686e76c8d,0xbfe53caa16d6c90f,1
+np.float64,0xbfc1c65d8d238cbc,0xbfc1d51e58f82403,1
+np.float64,0x3fe6e06c63edc0d8,0x3fe97cb832eeb6a2,1
+np.float64,0xbfc9fc20b933f840,0xbfca2ab004312d85,1
+np.float64,0xbfe29aa6df65354e,0xbfe3da7ecf3ba466,1
+np.float64,0x3fea4df7d1749bf0,0x3feee0d448bd4746,1
+np.float64,0xbfedec6161fbd8c3,0xbff3563e1d943aa2,1
+np.float64,0x3fdb6f0437b6de08,0x3fdc5a1888b1213d,1
+np.float64,0xbfe270cbd3e4e198,0xbfe3a72ac27a0b0c,1
+np.float64,0xbfdfff8068bfff00,0xbfe0c1088e3b8983,1
+np.float64,0xbfd28edbe6a51db8,0xbfd2d416c8ed363e,1
+np.float64,0xbfb4e35f9229c6c0,0xbfb4e9531d2a737f,1
+np.float64,0xbfee6727e97cce50,0xbff40e7717576e46,1
+np.float64,0xbfddb5fbddbb6bf8,0xbfdee5aad78f5361,1
+np.float64,0xbfdf9d3e9dbf3a7e,0xbfe0886b191f2957,1
+np.float64,0x3fa57e77042afce0,0x3fa5801518ea9342,1
+np.float64,0x3f95c4e4882b89c0,0x3f95c55003c8e714,1
+np.float64,0x3fd9b10f61b36220,0x3fda6fe5d635a8aa,1
+np.float64,0xbfe2973411652e68,0xbfe3d641fe9885fd,1
+np.float64,0xbfee87bd5a7d0f7b,0xbff443bea81b3fff,1
+np.float64,0x3f9ea064c83d40c0,0x3f9ea19025085b2f,1
+np.float64,0xbfe4b823dfe97048,0xbfe689623d30dc75,1
+np.float64,0xbfa06a326c20d460,0xbfa06aeacbcd3eb8,1
+np.float64,0x3fe1e5c4c1e3cb8a,0x3fe2fe44b822f20e,1
+np.float64,0x3f99dafaa833b600,0x3f99dbaec10a1a0a,1
+np.float64,0xbfed7cb3877af967,0xbff2bfe9e556aaf9,1
+np.float64,0x3fd604f2e2ac09e4,0x3fd67a89408ce6ba,1
+np.float64,0x3fec57b60f78af6c,0x3ff16881f46d60f7,1
+np.float64,0xbfea2e3a17745c74,0xbfeea95c7190fd42,1
+np.float64,0xbfd60a7c37ac14f8,0xbfd6806ed642de35,1
+np.float64,0xbfe544b9726a8973,0xbfe743ac399d81d7,1
+np.float64,0xbfd13520faa26a42,0xbfd16c02034a8fe0,1
+np.float64,0xbfea9ea59ff53d4b,0xbfef70538ee12e00,1
+np.float64,0x3fd66633f8accc68,0x3fd6e23c13ab0e9e,1
+np.float64,0xbfe4071bd3e80e38,0xbfe5a3c9ba897d81,1
+np.float64,0xbfbe1659fa3c2cb0,0xbfbe2831d4fed196,1
+np.float64,0xbfd3312777a6624e,0xbfd37df09b9baeba,1
+np.float64,0x3fd13997caa27330,0x3fd170a4900c8907,1
+np.float64,0xbfe7cbc235ef9784,0xbfead4c4d6cbf129,1
+np.float64,0xbfe1456571628acb,0xbfe23e4ec768c8e2,1
+np.float64,0xbfedf1a044fbe340,0xbff35da96773e176,1
+np.float64,0x3fce38b1553c7160,0x3fce8270709774f9,1
+np.float64,0xbfecb01761f9602f,0xbff1c9e9d382f1f8,1
+np.float64,0xbfe0a03560e1406b,0xbfe17b8d5a1ca662,1
+np.float64,0x3fe50f37cbea1e70,0x3fe6fc55e1ae7da6,1
+np.float64,0xbfe12d64a0625aca,0xbfe221d3a7834e43,1
+np.float64,0xbf6fb288403f6500,0xbf6fb28d6f389db6,1
+np.float64,0x3fda831765b50630,0x3fdb55eecae58ca9,1
+np.float64,0x3fe1a0fe4c6341fc,0x3fe2ab9564304425,1
+np.float64,0xbfef2678a77e4cf1,0xbff56ff42b2797bb,1
+np.float64,0xbfab269c1c364d40,0xbfab29df1cd48779,1
+np.float64,0x3fe8ec82a271d906,0x3fec92567d7a6675,1
+np.float64,0xbfc235115f246a24,0xbfc244ee567682ea,1
+np.float64,0x3feef5bf8d7deb80,0x3ff50ad4875ee9bd,1
+np.float64,0x3fe768b5486ed16a,0x3fea421356160e65,1
+np.float64,0xbfd4255684a84aae,0xbfd47e8baf7ec7f6,1
+np.float64,0x3fc7f67f2b2fed00,0x3fc81ae83cf92dd5,1
+np.float64,0x3fe9b1b19a736364,0x3fedd4b0e24ee741,1
+np.float64,0x3fb27eb9e624fd70,0x3fb282dacd89ce28,1
+np.float64,0xbfd490b710a9216e,0xbfd4efcdeb213458,1
+np.float64,0xbfd1347b2ca268f6,0xbfd16b55dece2d38,1
+np.float64,0x3fc6a5668d2d4ad0,0x3fc6c41452c0c087,1
+np.float64,0xbfca7b209f34f640,0xbfcaac710486f6bd,1
+np.float64,0x3fc23a1a47247438,0x3fc24a047fd4c27a,1
+np.float64,0x3fdb1413a8b62828,0x3fdbf595e2d994bc,1
+np.float64,0xbfea69b396f4d367,0xbfef11bdd2b0709a,1
+np.float64,0x3fd14c9958a29934,0x3fd1846161b10422,1
+np.float64,0xbfe205f44be40be8,0xbfe325283aa3c6a8,1
+np.float64,0x3fecd03c9ef9a07a,0x3ff1ee85aaf52a01,1
+np.float64,0x3fe34281d7e68504,0x3fe4aab63e6de816,1
+np.float64,0xbfe120e2376241c4,0xbfe213023ab03939,1
+np.float64,0xbfe951edc4f2a3dc,0xbfed3615e38576f8,1
+np.float64,0x3fe5a2286f6b4450,0x3fe7c196e0ec10ed,1
+np.float64,0xbfed7a3e1f7af47c,0xbff2bcc0793555d2,1
+np.float64,0x3fe050274960a04e,0x3fe11e2e256ea5cc,1
+np.float64,0xbfcfa71f653f4e40,0xbfcffc11483d6a06,1
+np.float64,0x3f6ead2e403d5a00,0x3f6ead32f314c052,1
+np.float64,0x3fe3a2a026674540,0x3fe523bfe085f6ec,1
+np.float64,0xbfe294a62e65294c,0xbfe3d31ebd0b4ca2,1
+np.float64,0xbfb4894d06291298,0xbfb48ef4b8e256b8,1
+np.float64,0xbfc0c042c1218084,0xbfc0cc98ac2767c4,1
+np.float64,0xbfc6a32cb52d4658,0xbfc6c1d1597ed06b,1
+np.float64,0xbfd30f7777a61eee,0xbfd35aa39fee34eb,1
+np.float64,0x3fe7fc2c2eeff858,0x3feb1d8a558b5537,1
+np.float64,0x7fefffffffffffff,0x7ff8000000000000,1
+np.float64,0xbfdadf917bb5bf22,0xbfdbbbae9a9f67a0,1
+np.float64,0xbfcf0395e13e072c,0xbfcf5366015f7362,1
+np.float64,0xbfe8644c9170c899,0xbfebbc98e74a227d,1
+np.float64,0x3fc3b2d8e52765b0,0x3fc3c6f7d44cffaa,1
+np.float64,0x3fc57407b92ae810,0x3fc58e12ccdd47a1,1
+np.float64,0x3fd56a560daad4ac,0x3fd5d62b8dfcc058,1
+np.float64,0x3fd595deefab2bbc,0x3fd6046420b2f79b,1
+np.float64,0xbfd5360f50aa6c1e,0xbfd59ebaacd815b8,1
+np.float64,0x3fdfb6aababf6d54,0x3fe0970b8aac9f61,1
+np.float64,0x3ff0000000000000,0x3ff921fb54442d18,1
+np.float64,0xbfeb3a8958f67513,0xbff04872e8278c79,1
+np.float64,0x3f9e1ea6683c3d40,0x3f9e1fc326186705,1
+np.float64,0x3fe6b6d5986d6dac,0x3fe94175bd60b19d,1
+np.float64,0xbfee4d90b77c9b21,0xbff3e60e9134edc2,1
+np.float64,0x3fd806ce0cb00d9c,0x3fd8a14c4855a8f5,1
+np.float64,0x3fd54acc75aa9598,0x3fd5b4b72fcbb5df,1
+np.float64,0xbfe59761f16b2ec4,0xbfe7b2fa5d0244ac,1
+np.float64,0xbfcd4fa3513a9f48,0xbfcd92d0814a5383,1
+np.float64,0xbfdc827523b904ea,0xbfdd8c577b53053c,1
+np.float64,0xbfd4bb7f34a976fe,0xbfd51d00d9a99360,1
+np.float64,0xbfe818bc87f03179,0xbfeb48d1ea0199c5,1
+np.float64,0xbfa8a2e15c3145c0,0xbfa8a5510ba0e45c,1
+np.float64,0xbfb6d15f422da2c0,0xbfb6d922689da015,1
+np.float64,0x3fcd04eaab3a09d8,0x3fcd46131746ef08,1
+np.float64,0x3fcfb5cfbb3f6ba0,0x3fd0059d308237f3,1
+np.float64,0x3fe8dcf609f1b9ec,0x3fec7997973010b6,1
+np.float64,0xbfdf1834d7be306a,0xbfe03c1d4e2b48f0,1
+np.float64,0x3fee82ae50fd055c,0x3ff43b545066fe1a,1
+np.float64,0xbfde039c08bc0738,0xbfdf3d6ed4d2ee5c,1
+np.float64,0x3fec07389bf80e72,0x3ff1137ed0acd161,1
+np.float64,0xbfef44c010fe8980,0xbff5b488ad22a4c5,1
+np.float64,0x3f76e722e02dce00,0x3f76e72ab2759d88,1
+np.float64,0xbfcaa9e6053553cc,0xbfcadc41125fca93,1
+np.float64,0x3fed6088147ac110,0x3ff29c06c4ef35fc,1
+np.float64,0x3fd32bd836a657b0,0x3fd3785fdb75909f,1
+np.float64,0xbfeedbb1d97db764,0xbff4d87f6c82a93c,1
+np.float64,0xbfe40f31d5e81e64,0xbfe5ae292cf258a2,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xbfeb2b25bc76564c,0xbff039d81388550c,1
+np.float64,0x3fec5008fa78a012,0x3ff1604195801da3,1
+np.float64,0x3fce2d4f293c5aa0,0x3fce76b99c2db4da,1
+np.float64,0xbfdc435412b886a8,0xbfdd45e7b7813f1e,1
+np.float64,0x3fdf2c9d06be593c,0x3fe047cb03c141b6,1
+np.float64,0x3fddefc61ebbdf8c,0x3fdf26fb8fad9fae,1
+np.float64,0x3fab50218436a040,0x3fab537395eaf3bb,1
+np.float64,0xbfd5b95a8fab72b6,0xbfd62a191a59343a,1
+np.float64,0x3fdbf803b4b7f008,0x3fdcf211578e98c3,1
+np.float64,0xbfec8c255979184b,0xbff1a1bee108ed30,1
+np.float64,0x3fe33cdaffe679b6,0x3fe4a3a318cd994f,1
+np.float64,0x3fd8cf585cb19eb0,0x3fd97a408bf3c38c,1
+np.float64,0x3fe919dde07233bc,0x3fecdb0ea13a2455,1
+np.float64,0xbfd5ba35e4ab746c,0xbfd62b024805542d,1
+np.float64,0x3fd2f933e7a5f268,0x3fd343527565e97c,1
+np.float64,0xbfe5b9f8ddeb73f2,0xbfe7e1f772c3e438,1
+np.float64,0x3fe843cd92f0879c,0x3feb8a92d68eae3e,1
+np.float64,0xbfd096b234a12d64,0xbfd0c7beca2c6605,1
+np.float64,0xbfef3363da7e66c8,0xbff58c98dde6c27c,1
+np.float64,0x3fd51b01ddaa3604,0x3fd582109d89ead1,1
+np.float64,0x3fea0f10ff741e22,0x3fee736c2d2a2067,1
+np.float64,0x3fc276e7b724edd0,0x3fc28774520bc6d4,1
+np.float64,0xbfef9abc9f7f3579,0xbff69d49762b1889,1
+np.float64,0x3fe1539ec0e2a73e,0x3fe24f370b7687d0,1
+np.float64,0x3fad72350c3ae460,0x3fad765e7766682a,1
+np.float64,0x3fa289a47c251340,0x3fa28aae12f41646,1
+np.float64,0xbfe5c488e5eb8912,0xbfe7f05d7e7dcddb,1
+np.float64,0xbfc22ef1d7245de4,0xbfc23ebeb990a1b8,1
+np.float64,0x3fe59a0b80eb3418,0x3fe7b695fdcba1de,1
+np.float64,0xbfe9cad619f395ac,0xbfedff0514d91e2c,1
+np.float64,0x3fc8bc74eb3178e8,0x3fc8e48cb22da666,1
+np.float64,0xbfc5389a3f2a7134,0xbfc551cd6febc544,1
+np.float64,0x3fce82feb33d0600,0x3fceceecce2467ef,1
+np.float64,0x3fda346791b468d0,0x3fdaff95154a4ca6,1
+np.float64,0x3fd04501fea08a04,0x3fd073397b32607e,1
+np.float64,0xbfb6be498a2d7c90,0xbfb6c5f93aeb0e57,1
+np.float64,0x3fe1f030dd63e062,0x3fe30ad8fb97cce0,1
+np.float64,0xbfee3fb36dfc7f67,0xbff3d0a5e380b86f,1
+np.float64,0xbfa876773c30ecf0,0xbfa878d9d3df6a3f,1
+np.float64,0x3fdb58296eb6b054,0x3fdc40ceffb17f82,1
+np.float64,0xbfea16b5d8742d6c,0xbfee809b99fd6adc,1
+np.float64,0xbfdc5062b6b8a0c6,0xbfdd547623275fdb,1
+np.float64,0x3fef6db242fedb64,0x3ff61ab4cdaef467,1
+np.float64,0xbfc9f778f933eef0,0xbfca25eef1088167,1
+np.float64,0xbfd22063eba440c8,0xbfd260c8766c69cf,1
+np.float64,0x3fdd2379f2ba46f4,0x3fde40b025cb1ffa,1
+np.float64,0xbfea967af2f52cf6,0xbfef61a178774636,1
+np.float64,0x3fe4f5b49fe9eb6a,0x3fe6da8311a5520e,1
+np.float64,0x3feccde17b799bc2,0x3ff1ebd0ea228b71,1
+np.float64,0x3fe1bb76506376ec,0x3fe2cb56fca01840,1
+np.float64,0xbfef94e583ff29cb,0xbff68aeab8ba75a2,1
+np.float64,0x3fed024a55fa0494,0x3ff228ea5d456e9d,1
+np.float64,0xbfe877b2a8f0ef65,0xbfebdaa1a4712459,1
+np.float64,0x3fef687a8d7ed0f6,0x3ff60cf5fef8d448,1
+np.float64,0xbfeeb2dc8afd65b9,0xbff48dda6a906cd6,1
+np.float64,0x3fdb2e28aeb65c50,0x3fdc12620655eb7a,1
+np.float64,0x3fedc1863afb830c,0x3ff31ae823315e83,1
+np.float64,0xbfe6b1bb546d6376,0xbfe93a38163e3a59,1
+np.float64,0x3fe479c78468f390,0x3fe637e5c0fc5730,1
+np.float64,0x3fbad1fade35a3f0,0x3fbade9a43ca05cf,1
+np.float64,0xbfe2d1c563e5a38b,0xbfe41e712785900c,1
+np.float64,0xbfc08c33ed211868,0xbfc09817a752d500,1
+np.float64,0xbfecce0935f99c12,0xbff1ebfe84524037,1
+np.float64,0x3fce4ef0e73c9de0,0x3fce995638a3dc48,1
+np.float64,0xbfd2fb2343a5f646,0xbfd345592517ca18,1
+np.float64,0x3fd848f7cdb091f0,0x3fd8e8bee5f7b49a,1
+np.float64,0x3fe532b7d2ea6570,0x3fe72b9ac747926a,1
+np.float64,0x3fd616aadcac2d54,0x3fd68d692c5cad42,1
+np.float64,0x3fd7720eb3aee41c,0x3fd801206a0e1e43,1
+np.float64,0x3fee835a35fd06b4,0x3ff43c7175eb7a54,1
+np.float64,0xbfe2e8f70b65d1ee,0xbfe43b2800a947a7,1
+np.float64,0xbfed38f45d7a71e9,0xbff26acd6bde7174,1
+np.float64,0xbfc0c62661218c4c,0xbfc0d28964d66120,1
+np.float64,0x3fe97940bef2f282,0x3fed76b986a74ee3,1
+np.float64,0x3fc96f7dc532def8,0x3fc99b20044c8fcf,1
+np.float64,0xbfd60201eeac0404,0xbfd677675efaaedc,1
+np.float64,0x3fe63c0867ec7810,0x3fe894f060200140,1
+np.float64,0xbfef6144b37ec289,0xbff5fa589a515ba8,1
+np.float64,0xbfde2da0c8bc5b42,0xbfdf6d0b59e3232a,1
+np.float64,0xbfd7401612ae802c,0xbfd7cb74ddd413b9,1
+np.float64,0x3fe41c012de83802,0x3fe5be9d87da3f82,1
+np.float64,0x3fdf501609bea02c,0x3fe05c1d96a2270b,1
+np.float64,0x3fcf9fa1233f3f40,0x3fcff45598e72f07,1
+np.float64,0x3fd4e3895ea9c714,0x3fd547580d8392a2,1
+np.float64,0x3fe1e8ff5fe3d1fe,0x3fe3022a0b86a2ab,1
+np.float64,0xbfe0aa55956154ab,0xbfe18768823da589,1
+np.float64,0x3fb2a0aa26254150,0x3fb2a4e1faff1c93,1
+np.float64,0x3fd3823417a70468,0x3fd3d2f808dbb167,1
+np.float64,0xbfaed323643da640,0xbfaed7e9bef69811,1
+np.float64,0x3fe661e8c4ecc3d2,0x3fe8c9c535f43c16,1
+np.float64,0xbfa429777c2852f0,0xbfa42acd38ba02a6,1
+np.float64,0x3fb5993ea22b3280,0x3fb59fd353e47397,1
+np.float64,0x3fee62d21efcc5a4,0x3ff40788f9278ade,1
+np.float64,0xbf813fb810227f80,0xbf813fc56d8f3c53,1
+np.float64,0x3fd56205deaac40c,0x3fd5cd59671ef193,1
+np.float64,0x3fd31a4de5a6349c,0x3fd365fe401b66e8,1
+np.float64,0xbfec7cc7a478f98f,0xbff190cf69703ca4,1
+np.float64,0xbf755881a02ab100,0xbf755887f52e7794,1
+np.float64,0x3fdd1c92e6ba3924,0x3fde38efb4e8605c,1
+np.float64,0x3fdf49da80be93b4,0x3fe0588af8dd4a34,1
+np.float64,0x3fe1fcdbf2e3f9b8,0x3fe31a27b9d273f2,1
+np.float64,0x3fe2a0f18be541e4,0x3fe3e23b159ce20f,1
+np.float64,0xbfed0f1561fa1e2b,0xbff23820fc0a54ca,1
+np.float64,0x3fe34a006c669400,0x3fe4b419b9ed2b83,1
+np.float64,0xbfd51be430aa37c8,0xbfd583005a4d62e7,1
+np.float64,0x3fe5ec4e336bd89c,0x3fe826caad6b0f65,1
+np.float64,0xbfdad71b1fb5ae36,0xbfdbb25bef8b53d8,1
+np.float64,0xbfe8eac2d871d586,0xbfec8f8cac7952f9,1
+np.float64,0xbfe1d5aef663ab5e,0xbfe2eae14b7ccdfd,1
+np.float64,0x3fec11d3157823a6,0x3ff11e8279506753,1
+np.float64,0xbfe67ff1166cffe2,0xbfe8f3e61c1dfd32,1
+np.float64,0xbfd101eecda203de,0xbfd136e0e9557022,1
+np.float64,0x3fde6c9e5cbcd93c,0x3fdfb48ee7efe134,1
+np.float64,0x3fec3ede9c787dbe,0x3ff14dead1e5cc1c,1
+np.float64,0x3fe7a022086f4044,0x3fea93ce2980b161,1
+np.float64,0xbfc3b2b1b7276564,0xbfc3c6d02d60bb21,1
+np.float64,0x7ff0000000000000,0x7ff8000000000000,1
+np.float64,0x3fe60b5647ec16ac,0x3fe8517ef0544b40,1
+np.float64,0xbfd20ab654a4156c,0xbfd24a2f1b8e4932,1
+np.float64,0xbfe4aa1e2f69543c,0xbfe677005cbd2646,1
+np.float64,0xbfc831cc0b306398,0xbfc8574910d0b86d,1
+np.float64,0xbfc3143495262868,0xbfc3267961b79198,1
+np.float64,0x3fc14d64c1229ac8,0x3fc15afea90a319d,1
+np.float64,0x3fc0a5a207214b48,0x3fc0b1bd2f15c1b0,1
+np.float64,0xbfc0b8351521706c,0xbfc0c4792672d6db,1
+np.float64,0xbfdc383600b8706c,0xbfdd398429e163bd,1
+np.float64,0x3fd9e17321b3c2e8,0x3fdaa4c4d140a622,1
+np.float64,0xbfd44f079ea89e10,0xbfd4aa7d6deff4ab,1
+np.float64,0xbfc3de52a927bca4,0xbfc3f2f8f65f4c3f,1
+np.float64,0x3fe7779d566eef3a,0x3fea57f8592dbaad,1
+np.float64,0xbfe309039e661207,0xbfe462f47f9a64e5,1
+np.float64,0x3fd8e06d08b1c0dc,0x3fd98cc946e440a6,1
+np.float64,0x3fdde66c9ebbccd8,0x3fdf1c68009a8dc1,1
+np.float64,0x3fd4369c6ba86d38,0x3fd490bf460a69e4,1
+np.float64,0xbfe132252fe2644a,0xbfe22775e109cc2e,1
+np.float64,0x3fee15483c7c2a90,0x3ff39111de89036f,1
+np.float64,0xbfc1d5ee8123abdc,0xbfc1e4d66c6871a5,1
+np.float64,0x3fc851c52b30a388,0x3fc877d93fb4ae1a,1
+np.float64,0x3fdaade707b55bd0,0x3fdb85001661fffe,1
+np.float64,0xbfe79fb7f96f3f70,0xbfea9330ec27ac10,1
+np.float64,0xbfe8b0f725f161ee,0xbfec3411c0e4517a,1
+np.float64,0xbfea79f5f374f3ec,0xbfef2e9dd9270488,1
+np.float64,0x3fe0b5fe5b616bfc,0x3fe19512a36a4534,1
+np.float64,0xbfad7c622c3af8c0,0xbfad808fea96a804,1
+np.float64,0xbfe3e24dbce7c49c,0xbfe574b4c1ea9818,1
+np.float64,0xbfe80b038af01607,0xbfeb33fec279576a,1
+np.float64,0xbfef69e2ea7ed3c6,0xbff610a5593a18bc,1
+np.float64,0x3fdcc0bb39b98178,0x3fddd1f8c9a46430,1
+np.float64,0xbfba39976a347330,0xbfba4563bb5369a4,1
+np.float64,0xbfebf9768ef7f2ed,0xbff10548ab725f74,1
+np.float64,0xbfec21c066f84381,0xbff12f2803ba052f,1
+np.float64,0xbfca216a6b3442d4,0xbfca50c5e1e5748e,1
+np.float64,0x3fd5e40da4abc81c,0x3fd65783f9a22946,1
+np.float64,0x3fc235ca17246b98,0x3fc245a8f453173f,1
+np.float64,0x3fecb5b867796b70,0x3ff1d046a0bfda69,1
+np.float64,0x3fcb457fef368b00,0x3fcb7b6daa8165a7,1
+np.float64,0xbfa5ed6f7c2bdae0,0xbfa5ef27244e2e42,1
+np.float64,0x3fecf618a1f9ec32,0x3ff21a86cc104542,1
+np.float64,0x3fe9d95413f3b2a8,0x3fee178dcafa11fc,1
+np.float64,0xbfe93a5357f274a7,0xbfed0f9a565da84a,1
+np.float64,0xbfeb9e45ff773c8c,0xbff0a93cab8e258d,1
+np.float64,0x3fcbd9d0bd37b3a0,0x3fcc134e87cae241,1
+np.float64,0x3fe55d4db76aba9c,0x3fe764a0e028475a,1
+np.float64,0xbfc8a6fc71314df8,0xbfc8ceaafbfc59a7,1
+np.float64,0x3fe0615fa660c2c0,0x3fe1323611c4cbc2,1
+np.float64,0x3fb965558632cab0,0x3fb9700b84de20ab,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x3fe76776c6eeceee,0x3fea40403e24a9f1,1
+np.float64,0x3fe3b7f672676fec,0x3fe53ece71a1a1b1,1
+np.float64,0xbfa9b82ba4337050,0xbfa9baf15394ca64,1
+np.float64,0xbfe31faf49663f5e,0xbfe47f31b1ca73dc,1
+np.float64,0xbfcc4c6beb3898d8,0xbfcc88c5f814b2c1,1
+np.float64,0x3fd481530aa902a8,0x3fd4df8df03bc155,1
+np.float64,0x3fd47593b8a8eb28,0x3fd4d327ab78a1a8,1
+np.float64,0x3fd70e6ccbae1cd8,0x3fd7962fe8b63d46,1
+np.float64,0x3fd25191f7a4a324,0x3fd2941623c88e02,1
+np.float64,0x3fd0603ef0a0c07c,0x3fd08f64e97588dc,1
+np.float64,0xbfc653bae52ca774,0xbfc6711e5e0d8ea9,1
+np.float64,0xbfd11db8fea23b72,0xbfd153b63c6e8812,1
+np.float64,0xbfea9bde25f537bc,0xbfef6b52268e139a,1
+np.float64,0x1,0x1,1
+np.float64,0xbfefd3806d7fa701,0xbff776dcef9583ca,1
+np.float64,0xbfe0fb8cfde1f71a,0xbfe1e6e2e774a8f8,1
+np.float64,0x3fea384534f4708a,0x3feebadaa389be0d,1
+np.float64,0x3feff761c97feec4,0x3ff866157b9d072d,1
+np.float64,0x3fe7131ccb6e263a,0x3fe9c58b4389f505,1
+np.float64,0x3fe9084f7872109e,0x3fecbed0355dbc8f,1
+np.float64,0x3f708e89e0211d00,0x3f708e8cd4946b9e,1
+np.float64,0xbfe39185f067230c,0xbfe50e1cd178244d,1
+np.float64,0x3fd67cc1a9acf984,0x3fd6fa514784b48c,1
+np.float64,0xbfecaef005f95de0,0xbff1c89c9c3ef94a,1
+np.float64,0xbfe12eec81e25dd9,0xbfe223a4285bba9a,1
+np.float64,0x3fbe7f9faa3cff40,0x3fbe92363525068d,1
+np.float64,0xbfe1950b2b632a16,0xbfe29d45fc1e4ce9,1
+np.float64,0x3fe45049e6e8a094,0x3fe6020de759e383,1
+np.float64,0x3fe4d10c8969a21a,0x3fe6aa1fe42cbeb9,1
+np.float64,0xbfe9d04658f3a08d,0xbfee08370a0dbf0c,1
+np.float64,0x3fe14fb314e29f66,0x3fe24a8d73663521,1
+np.float64,0xbfef4abfe4fe9580,0xbff5c2c1ff1250ca,1
+np.float64,0xbfe6162b366c2c56,0xbfe86073ac3c6243,1
+np.float64,0x3feffe781e7ffcf0,0x3ff8d2cbedd6a1b5,1
+np.float64,0xbff0000000000000,0xbff921fb54442d18,1
+np.float64,0x3fc1dc45ad23b888,0x3fc1eb3d9bddda58,1
+np.float64,0xbfe793f6fcef27ee,0xbfea81c93d65aa64,1
+np.float64,0x3fdef6d2bbbdeda4,0x3fe029079d42efb5,1
+np.float64,0xbfdf0ac479be1588,0xbfe0346dbc95963f,1
+np.float64,0xbfd33927d7a67250,0xbfd38653f90a5b73,1
+np.float64,0xbfe248b072e49161,0xbfe37631ef6572e1,1
+np.float64,0xbfc8ceb6af319d6c,0xbfc8f7288657f471,1
+np.float64,0x3fdd7277fcbae4f0,0x3fde99886e6766ef,1
+np.float64,0xbfe0d30c6561a619,0xbfe1b72f90bf53d6,1
+np.float64,0xbfcb0fe07d361fc0,0xbfcb448e2eae9542,1
+np.float64,0xbfe351f57fe6a3eb,0xbfe4be13eef250f2,1
+np.float64,0x3fe85ec02cf0bd80,0x3febb407e2e52e4c,1
+np.float64,0x3fc8bc59b53178b0,0x3fc8e470f65800ec,1
+np.float64,0xbfd278d447a4f1a8,0xbfd2bd133c9c0620,1
+np.float64,0x3feda5cfd87b4ba0,0x3ff2f5ab4324f43f,1
+np.float64,0xbfd2b32a36a56654,0xbfd2fa09c36afd34,1
+np.float64,0xbfed4a81cb7a9504,0xbff28077a4f4fff4,1
+np.float64,0x3fdf079bf9be0f38,0x3fe0329f7fb13f54,1
+np.float64,0x3fd14097f6a28130,0x3fd177e9834ec23f,1
+np.float64,0xbfaeab11843d5620,0xbfaeafc5531eb6b5,1
+np.float64,0xbfac3f8c14387f20,0xbfac433893d53360,1
+np.float64,0xbfc139d7ed2273b0,0xbfc14743adbbe660,1
+np.float64,0x3fe78cb02cef1960,0x3fea7707f76edba9,1
+np.float64,0x3fefe16b41ffc2d6,0x3ff7bff36a7aa7b8,1
+np.float64,0x3fec5260d378a4c2,0x3ff162c588b0da38,1
+np.float64,0x3fedb146f17b628e,0x3ff304f90d3a15d1,1
+np.float64,0x3fd1fd45f7a3fa8c,0x3fd23c2dc3929e20,1
+np.float64,0x3fe0898a5ee11314,0x3fe1610c63e726eb,1
+np.float64,0x3fe7719946eee332,0x3fea4f205eecb59f,1
+np.float64,0x3fe955218972aa44,0x3fed3b530c1f7651,1
+np.float64,0x3fe0ccbf4461997e,0x3fe1afc7b4587836,1
+np.float64,0xbfe9204314f24086,0xbfece5605780e346,1
+np.float64,0xbfe552017feaa403,0xbfe755773cbd74d5,1
+np.float64,0x3fd8ce4b32b19c98,0x3fd9791c8dd44eae,1
+np.float64,0x3fef89acd9ff135a,0x3ff668f78adf7ced,1
+np.float64,0x3fc9d713ad33ae28,0x3fca04da6c293bbd,1
+np.float64,0xbfe22d9c4de45b38,0xbfe3553effadcf92,1
+np.float64,0x3fa5cda38c2b9b40,0x3fa5cf53c5787482,1
+np.float64,0x3fa878ebdc30f1e0,0x3fa87b4f2bf1d4c3,1
+np.float64,0x3fe8030353700606,0x3feb27e196928789,1
+np.float64,0x3fb50607222a0c10,0x3fb50c188ce391e6,1
+np.float64,0x3fd9ba4ab4b37494,0x3fda79fa8bd40f45,1
+np.float64,0x3fb564598e2ac8b0,0x3fb56abe42d1ba13,1
+np.float64,0xbfd1177c83a22efa,0xbfd14d3d7ef30cc4,1
+np.float64,0xbfd952cec7b2a59e,0xbfda09215d17c0ac,1
+np.float64,0x3fe1d8066663b00c,0x3fe2edb35770b8dd,1
+np.float64,0xbfc89427a3312850,0xbfc8bb7a7c389497,1
+np.float64,0xbfe86ebfd3f0dd80,0xbfebccc2ba0f506c,1
+np.float64,0x3fc390578b2720b0,0x3fc3a40cb7f5f728,1
+np.float64,0xbfd122f9b8a245f4,0xbfd15929dc57a897,1
+np.float64,0x3f8d0636d03a0c80,0x3f8d06767de576df,1
+np.float64,0xbfe4b55d8b696abb,0xbfe685be537a9637,1
+np.float64,0xbfdfd51cf9bfaa3a,0xbfe0a894fcff0c76,1
+np.float64,0xbfd37c1f52a6f83e,0xbfd3cc9593c37aad,1
+np.float64,0x3fd0e8283ea1d050,0x3fd11c25c800785a,1
+np.float64,0x3fd3160784a62c10,0x3fd36183a6c2880c,1
+np.float64,0x3fd4c66e57a98cdc,0x3fd5288fe3394eff,1
+np.float64,0x3fee2f7e3afc5efc,0x3ff3b8063eb30cdc,1
+np.float64,0xbfe526773a6a4cee,0xbfe71b4364215b18,1
+np.float64,0x3fea01181e740230,0x3fee5b65eccfd130,1
+np.float64,0xbfe51c03f76a3808,0xbfe70d5919d37587,1
+np.float64,0x3fd97e1375b2fc28,0x3fda3845da40b22b,1
+np.float64,0x3fd5c14a14ab8294,0x3fd632890d07ed03,1
+np.float64,0xbfec9b474279368e,0xbff1b28f50584fe3,1
+np.float64,0x3fe0139ca860273a,0x3fe0d7fc377f001c,1
+np.float64,0x3fdb080c9db61018,0x3fdbe85056358fa0,1
+np.float64,0xbfdd72ceb1bae59e,0xbfde99ea171661eb,1
+np.float64,0xbfe64e934fec9d26,0xbfe8aec2ef24be63,1
+np.float64,0x3fd1036a93a206d4,0x3fd1386adabe01bd,1
+np.float64,0x3febc9d4a5f793aa,0x3ff0d4c069f1e67d,1
+np.float64,0xbfe547a16fea8f43,0xbfe747902fe6fb4d,1
+np.float64,0x3fc289b0f9251360,0x3fc29a709de6bdd9,1
+np.float64,0xbfe694494a6d2892,0xbfe9108f3dc133e2,1
+np.float64,0x3fd827dfe4b04fc0,0x3fd8c4fe40532b91,1
+np.float64,0xbfe8b89418f17128,0xbfec400c5a334b2e,1
+np.float64,0x3fed5605147aac0a,0x3ff28ed1f612814a,1
+np.float64,0xbfed36af31fa6d5e,0xbff26804e1f71af0,1
+np.float64,0x3fdbb01c02b76038,0x3fdca2381558bbf0,1
+np.float64,0x3fe2a951666552a2,0x3fe3ec88f780f9e6,1
+np.float64,0x3fe662defbecc5be,0x3fe8cb1dbfca98ab,1
+np.float64,0x3fd098b1b3a13164,0x3fd0c9d064e4eaf2,1
+np.float64,0x3fefa10edeff421e,0x3ff6b1c6187b18a8,1
+np.float64,0xbfec4feb7a789fd7,0xbff16021ef37a219,1
+np.float64,0x3fd8e415bbb1c82c,0x3fd990c1f8b786bd,1
+np.float64,0xbfead5a09275ab41,0xbfefd44fab5b4f6e,1
+np.float64,0xbfe8666c16f0ccd8,0xbfebbfe0c9f2a9ae,1
+np.float64,0x3fdc962132b92c44,0x3fdda2525a6f406c,1
+np.float64,0xbfe2037f03e406fe,0xbfe3222ec2a3449e,1
+np.float64,0xbfec82c27e790585,0xbff197626ea9df1e,1
+np.float64,0x3fd2b4e03ca569c0,0x3fd2fbd3c7fda23e,1
+np.float64,0xbfe9b0dee5f361be,0xbfedd34f6d3dfe8a,1
+np.float64,0x3feef45cd17de8ba,0x3ff508180687b591,1
+np.float64,0x3f82c39bf0258700,0x3f82c3ad24c3b3f1,1
+np.float64,0xbfca848cfd350918,0xbfcab612ce258546,1
+np.float64,0x3fd6442aaaac8854,0x3fd6bdea54016e48,1
+np.float64,0x3fe550799e6aa0f4,0x3fe75369c9ea5b1e,1
+np.float64,0xbfe0e9d5a361d3ac,0xbfe1d20011139d89,1
+np.float64,0x3fbfc9ff1e3f9400,0x3fbfdf0ea6885c80,1
+np.float64,0xbfa187e8b4230fd0,0xbfa188c95072092e,1
+np.float64,0x3fcd28c9533a5190,0x3fcd6ae879c21b47,1
+np.float64,0x3fc6227ec52c4500,0x3fc63f1fbb441d29,1
+np.float64,0x3fe9b7a2ed736f46,0x3feddeab49b2d176,1
+np.float64,0x3fd4aee93da95dd4,0x3fd50fb3b71e0339,1
+np.float64,0xbfe164dacf62c9b6,0xbfe263bb2f7dd5d9,1
+np.float64,0x3fec62e525f8c5ca,0x3ff17496416d9921,1
+np.float64,0x3fdd363ee0ba6c7c,0x3fde55c6a49a5f86,1
+np.float64,0x3fe65cbf75ecb97e,0x3fe8c28d31ff3ebd,1
+np.float64,0xbfe76d27ca6eda50,0xbfea4899e3661425,1
+np.float64,0xbfc305738d260ae8,0xbfc3178dcfc9d30f,1
+np.float64,0xbfd3aa2a54a75454,0xbfd3fcf1e1ce8328,1
+np.float64,0x3fd1609fc9a2c140,0x3fd1992efa539b9f,1
+np.float64,0xbfac1291bc382520,0xbfac162cc7334b4d,1
+np.float64,0xbfedb461ea7b68c4,0xbff309247850455d,1
+np.float64,0xbfe8d2adf8f1a55c,0xbfec6947be90ba92,1
+np.float64,0xbfd7128965ae2512,0xbfd79a9855bcfc5a,1
+np.float64,0x3fe8deb09471bd62,0x3fec7c56b3aee531,1
+np.float64,0xbfe5f4d329ebe9a6,0xbfe8327ea8189af8,1
+np.float64,0xbfd3b46ac9a768d6,0xbfd407b80b12ff17,1
+np.float64,0x3fec899d7cf9133a,0x3ff19ef26baca36f,1
+np.float64,0xbfec192fd5783260,0xbff126306e507fd0,1
+np.float64,0x3fe945bdaef28b7c,0x3fed222f787310bf,1
+np.float64,0xbfeff9635d7ff2c7,0xbff87d6773f318eb,1
+np.float64,0xbfd604b81cac0970,0xbfd67a4aa852559a,1
+np.float64,0x3fcd1cc9d53a3990,0x3fcd5e962e237c24,1
+np.float64,0xbfed77b0fffaef62,0xbff2b97a1c9b6483,1
+np.float64,0xbfc9c69325338d28,0xbfc9f401500402fb,1
+np.float64,0xbfdf97e246bf2fc4,0xbfe0855601ea9db3,1
+np.float64,0x3fc7e6304f2fcc60,0x3fc80a4e718504cd,1
+np.float64,0x3fec3b599e7876b4,0x3ff14a2d1b9c68e6,1
+np.float64,0xbfe98618e1f30c32,0xbfed8bfbb31c394a,1
+np.float64,0xbfe59b3c0feb3678,0xbfe7b832d6df81de,1
+np.float64,0xbfe54ce2fe6a99c6,0xbfe74e9a85be4116,1
+np.float64,0x3fc9db49cb33b690,0x3fca092737ef500a,1
+np.float64,0xbfb4a922ae295248,0xbfb4aee4e39078a9,1
+np.float64,0xbfd0e542e0a1ca86,0xbfd11925208d66af,1
+np.float64,0x3fd70543f2ae0a88,0x3fd78c5e9238a3ee,1
+np.float64,0x3fd67f7a7facfef4,0x3fd6fd3998df8545,1
+np.float64,0xbfe40b643d6816c8,0xbfe5a947e427f298,1
+np.float64,0xbfcd85f69b3b0bec,0xbfcdcaa24b75f1a3,1
+np.float64,0x3fec705fb4f8e0c0,0x3ff1833c82163ee2,1
+np.float64,0x3fb37650ea26eca0,0x3fb37b20c16fb717,1
+np.float64,0x3fe5ebfa55ebd7f4,0x3fe826578d716e70,1
+np.float64,0x3fe991dfe5f323c0,0x3fed9f8a4bf1f588,1
+np.float64,0xbfd658bd0aacb17a,0xbfd6d3dd06e54900,1
+np.float64,0xbfc24860252490c0,0xbfc258701a0b9290,1
+np.float64,0xbfefb8d763ff71af,0xbff705b6ea4a569d,1
+np.float64,0x3fb8fcb4ae31f970,0x3fb906e809e7899f,1
+np.float64,0x3fce6343cb3cc688,0x3fceae41d1629625,1
+np.float64,0xbfd43d5a11a87ab4,0xbfd497da25687e07,1
+np.float64,0xbfe9568851f2ad11,0xbfed3d9e5fe83a76,1
+np.float64,0x3fe1b66153e36cc2,0x3fe2c53c7e016271,1
+np.float64,0x3fef27452bfe4e8a,0x3ff571b3486ed416,1
+np.float64,0x3fca87c0a7350f80,0x3fcab958a7bb82d4,1
+np.float64,0xbfd8776a8fb0eed6,0xbfd91afaf2f50edf,1
+np.float64,0x3fe9522a76f2a454,0x3fed3679264e1525,1
+np.float64,0x3fea14ff2cf429fe,0x3fee7da6431cc316,1
+np.float64,0x3fe970618bf2e0c4,0x3fed68154d54dd97,1
+np.float64,0x3fd3410cfca68218,0x3fd38e9b21792240,1
+np.float64,0xbf6a8070c0350100,0xbf6a8073c7c34517,1
+np.float64,0xbfbe449de23c8938,0xbfbe56c8e5e4d98b,1
+np.float64,0x3fedbc92e27b7926,0x3ff314313216d8e6,1
+np.float64,0xbfe3be4706677c8e,0xbfe546d3ceb85aea,1
+np.float64,0x3fe30cd6d76619ae,0x3fe467b6f2664a8d,1
+np.float64,0x3fd7d69b21afad38,0x3fd86d54284d05ad,1
+np.float64,0xbfe501001fea0200,0xbfe6e978afcff4d9,1
+np.float64,0xbfe44ba3d8e89748,0xbfe5fc0a31cd1e3e,1
+np.float64,0x3fec52f7c078a5f0,0x3ff16367acb209b2,1
+np.float64,0xbfcb19efcb3633e0,0xbfcb4ed9235a7d47,1
+np.float64,0xbfab86796c370cf0,0xbfab89df7bf15710,1
+np.float64,0xbfb962feda32c600,0xbfb96db1e1679c98,1
+np.float64,0x3fe0dd14e861ba2a,0x3fe1c2fc72810567,1
+np.float64,0x3fe41bcc6de83798,0x3fe5be59b7f9003b,1
+np.float64,0x3fc82f4c4f305e98,0x3fc854bd9798939f,1
+np.float64,0xbfcd143a613a2874,0xbfcd55cbd1619d84,1
+np.float64,0xbfd52da61baa5b4c,0xbfd595d0b3543439,1
+np.float64,0xbfb71b4a8e2e3698,0xbfb7235a4ab8432f,1
+np.float64,0xbfec141a19782834,0xbff120e1e39fc856,1
+np.float64,0xbfdba9319db75264,0xbfdc9a8ca2578bb2,1
+np.float64,0xbfbce5d74639cbb0,0xbfbcf5a4878cfa51,1
+np.float64,0x3fde67f7b3bccff0,0x3fdfaf45a9f843ad,1
+np.float64,0xbfe12d87bc625b10,0xbfe221fd4476eb71,1
+np.float64,0x3fe35b8f6be6b71e,0x3fe4ca20f65179e1,1
+np.float64,0xbfdbada1d3b75b44,0xbfdc9f78b19f93d1,1
+np.float64,0xbfc60159c52c02b4,0xbfc61d79b879f598,1
+np.float64,0x3fd6b81c38ad7038,0x3fd739c27bfa16d8,1
+np.float64,0xbfd646a253ac8d44,0xbfd6c08c19612bbb,1
+np.float64,0xbfe6babef0ed757e,0xbfe94703d0bfa311,1
+np.float64,0xbfed5671f1faace4,0xbff28f5a3f3683d0,1
+np.float64,0x3fc01d1e85203a40,0x3fc02817ec0dfd38,1
+np.float64,0xbfe9188a61f23115,0xbfecd8eb5da84223,1
+np.float64,0x3fdca3bab9b94774,0x3fddb1868660c239,1
+np.float64,0xbfa255750c24aaf0,0xbfa25675f7b36343,1
+np.float64,0x3fb3602db626c060,0x3fb364ed2d5b2876,1
+np.float64,0xbfd30a14bda6142a,0xbfd354ff703b8862,1
+np.float64,0xbfe1cfe381639fc7,0xbfe2e3e720b968c8,1
+np.float64,0xbfd2af6a4fa55ed4,0xbfd2f61e190bcd1f,1
+np.float64,0xbfe93c50937278a1,0xbfed12d64bb10d73,1
+np.float64,0x3fddd8bc44bbb178,0x3fdf0ced7f9005cc,1
+np.float64,0x3fdb2bc73cb65790,0x3fdc0fc0e18e425e,1
+np.float64,0xbfd073f6aba0e7ee,0xbfd0a3cb5468a961,1
+np.float64,0x3fed4bad7b7a975a,0x3ff281ebeb75e414,1
+np.float64,0xbfdc75b50bb8eb6a,0xbfdd7e1a7631cb22,1
+np.float64,0x3fd458a90fa8b154,0x3fd4b4a5817248ce,1
+np.float64,0x3feead5db57d5abc,0x3ff484286fab55ff,1
+np.float64,0x3fb3894382271280,0x3fb38e217b4e7905,1
+np.float64,0xffefffffffffffff,0x7ff8000000000000,1
+np.float64,0xbfe428212ae85042,0xbfe5ce36f226bea8,1
+np.float64,0xbfc08b39f7211674,0xbfc0971b93ebc7ad,1
+np.float64,0xbfc2e7cf5525cfa0,0xbfc2f994eb72b623,1
+np.float64,0xbfdb0d85afb61b0c,0xbfdbee5a2de3c5db,1
+np.float64,0xfff0000000000000,0x7ff8000000000000,1
+np.float64,0xbfd0d36af7a1a6d6,0xbfd106a5f05ef6ff,1
+np.float64,0xbfc333d0912667a0,0xbfc3467162b7289a,1
+np.float64,0x3fcdababc53b5758,0x3fcdf16458c20fa8,1
+np.float64,0x3fd0821b38a10438,0x3fd0b26e3e0b9185,1
+np.float64,0x0,0x0,1
+np.float64,0x3feb7f70edf6fee2,0x3ff08ae81854bf20,1
+np.float64,0x3fe6e075716dc0ea,0x3fe97cc5254be6ff,1
+np.float64,0x3fea13b682f4276e,0x3fee7b6f18073b5b,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsinh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsinh.csv
new file mode 100644
index 0000000..9eedb1a
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arcsinh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xbf24142a,0xbf1a85ef,2
+np.float32,0x3e71cf91,0x3e6f9e37,2
+np.float32,0xe52a7,0xe52a7,2
+np.float32,0x3ef1e074,0x3ee9add9,2
+np.float32,0x806160ac,0x806160ac,2
+np.float32,0x7e2d59a2,0x42af4798,2
+np.float32,0xbf32cac9,0xbf26bf96,2
+np.float32,0x3f081701,0x3f026142,2
+np.float32,0x3f23cc88,0x3f1a499c,2
+np.float32,0xbf090d94,0xbf033ad0,2
+np.float32,0x803af2fc,0x803af2fc,2
+np.float32,0x807eb17e,0x807eb17e,2
+np.float32,0x5c0d8e,0x5c0d8e,2
+np.float32,0x3f7b79d2,0x3f5e6b1d,2
+np.float32,0x806feeae,0x806feeae,2
+np.float32,0x3e4b423a,0x3e49f274,2
+np.float32,0x3f49e5ac,0x3f394a41,2
+np.float32,0x3f18cd4e,0x3f10ef35,2
+np.float32,0xbed75734,0xbed17322,2
+np.float32,0x7f591151,0x42b28085,2
+np.float32,0xfefe9da6,0xc2b16f51,2
+np.float32,0xfeac90fc,0xc2b0a82a,2
+np.float32,0x805c198e,0x805c198e,2
+np.float32,0x7f66d6df,0x42b2a004,2
+np.float32,0x505438,0x505438,2
+np.float32,0xbf39a209,0xbf2c5255,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0xc84cb,0xc84cb,2
+np.float32,0x7f07d6f5,0x42b19088,2
+np.float32,0x79d7e4,0x79d7e4,2
+np.float32,0xff32f6a0,0xc2b21db1,2
+np.float32,0x7c005c05,0x42a9222e,2
+np.float32,0x3ec449aa,0x3ebfc5ae,2
+np.float32,0x800ec323,0x800ec323,2
+np.float32,0xff1c904c,0xc2b1d93a,2
+np.float32,0x7f4eca52,0x42b267b0,2
+np.float32,0x3ee06540,0x3ed9c514,2
+np.float32,0x6aab4,0x6aab4,2
+np.float32,0x3e298d8c,0x3e28c99e,2
+np.float32,0xbf38d162,0xbf2ba94a,2
+np.float32,0x2d9083,0x2d9083,2
+np.float32,0x7eae5032,0x42b0ad52,2
+np.float32,0x3ead5b3c,0x3eaa3443,2
+np.float32,0x806fef66,0x806fef66,2
+np.float32,0x3f5b614e,0x3f46ca71,2
+np.float32,0xbf4c906a,0xbf3b60fc,2
+np.float32,0x8049453e,0x8049453e,2
+np.float32,0x3d305220,0x3d304432,2
+np.float32,0x2e1a89,0x2e1a89,2
+np.float32,0xbf4e74ec,0xbf3cdacf,2
+np.float32,0x807a827a,0x807a827a,2
+np.float32,0x80070745,0x80070745,2
+np.float32,0xbe1ba2fc,0xbe1b0b28,2
+np.float32,0xbe5131d0,0xbe4fc421,2
+np.float32,0x5bfd98,0x5bfd98,2
+np.float32,0xbd8e1a48,0xbd8dfd27,2
+np.float32,0x8006c160,0x8006c160,2
+np.float32,0x346490,0x346490,2
+np.float32,0xbdbdf060,0xbdbdaaf0,2
+np.float32,0x3ea9d0c4,0x3ea6d8c7,2
+np.float32,0xbf2aaa28,0xbf200916,2
+np.float32,0xbf160c26,0xbf0e9047,2
+np.float32,0x80081fd4,0x80081fd4,2
+np.float32,0x7db44283,0x42adf8b6,2
+np.float32,0xbf1983f8,0xbf118bf5,2
+np.float32,0x2c4a35,0x2c4a35,2
+np.float32,0x6165a7,0x6165a7,2
+np.float32,0xbe776b44,0xbe75129f,2
+np.float32,0xfe81841a,0xc2b0153b,2
+np.float32,0xbf7d1b2f,0xbf5f9461,2
+np.float32,0x80602d36,0x80602d36,2
+np.float32,0xfe8d5046,0xc2b041dd,2
+np.float32,0xfe5037bc,0xc2afa56d,2
+np.float32,0x4bbea6,0x4bbea6,2
+np.float32,0xfea039de,0xc2b0822d,2
+np.float32,0x7ea627a4,0x42b094c7,2
+np.float32,0x3f556198,0x3f423591,2
+np.float32,0xfedbae04,0xc2b123c1,2
+np.float32,0xbe30432c,0xbe2f6744,2
+np.float32,0x80202c77,0x80202c77,2
+np.float32,0xff335cc1,0xc2b21ed5,2
+np.float32,0x3e1e1ebe,0x3e1d7f95,2
+np.float32,0x8021c9c0,0x8021c9c0,2
+np.float32,0x7dc978,0x7dc978,2
+np.float32,0xff6cfabc,0xc2b2ad75,2
+np.float32,0x7f2bd542,0x42b208e0,2
+np.float32,0x53bf33,0x53bf33,2
+np.float32,0x804e04bb,0x804e04bb,2
+np.float32,0x3f30d2f9,0x3f2521ca,2
+np.float32,0x3dfde876,0x3dfd4316,2
+np.float32,0x46f8b1,0x46f8b1,2
+np.float32,0xbd5f9e20,0xbd5f81ba,2
+np.float32,0x807d6a22,0x807d6a22,2
+np.float32,0xff3881da,0xc2b22d50,2
+np.float32,0x1b1cb5,0x1b1cb5,2
+np.float32,0x3f75f2d0,0x3f5a7435,2
+np.float32,0xfee39c1a,0xc2b135e9,2
+np.float32,0x7f79f14a,0x42b2c8b9,2
+np.float32,0x8000e2d1,0x8000e2d1,2
+np.float32,0xab779,0xab779,2
+np.float32,0xbede6690,0xbed7f102,2
+np.float32,0x76e20d,0x76e20d,2
+np.float32,0x3ed714cb,0x3ed135e9,2
+np.float32,0xbeaa6f44,0xbea76f31,2
+np.float32,0x7f7dc8b1,0x42b2d089,2
+np.float32,0x108cb2,0x108cb2,2
+np.float32,0x7d37ba82,0x42ac9f94,2
+np.float32,0x3f31d068,0x3f25f221,2
+np.float32,0x8010a331,0x8010a331,2
+np.float32,0x3f2fdc7c,0x3f2456cd,2
+np.float32,0x7f7a9a67,0x42b2ca13,2
+np.float32,0x3f2acb31,0x3f202492,2
+np.float32,0x7f54fa94,0x42b276c9,2
+np.float32,0x3ebf8a70,0x3ebb553c,2
+np.float32,0x7f75b1a7,0x42b2bff2,2
+np.float32,0x7daebe07,0x42ade8cc,2
+np.float32,0xbd3a3ef0,0xbd3a2e86,2
+np.float32,0x8078ec9e,0x8078ec9e,2
+np.float32,0x3eda206a,0x3ed403ec,2
+np.float32,0x3f7248f2,0x3f57cd77,2
+np.float32,0x805d55ba,0x805d55ba,2
+np.float32,0xff30dc3e,0xc2b217a3,2
+np.float32,0xbe12b27c,0xbe123333,2
+np.float32,0xbf6ed9cf,0xbf554cd0,2
+np.float32,0xbed9eb5c,0xbed3d31c,2
+np.float32,0xbf1c9aea,0xbf14307b,2
+np.float32,0x3f540ac4,0x3f412de2,2
+np.float32,0x800333ac,0x800333ac,2
+np.float32,0x3f74cdb4,0x3f59a09a,2
+np.float32,0xbf41dc41,0xbf32ee6f,2
+np.float32,0xff2c7804,0xc2b20ac4,2
+np.float32,0x514493,0x514493,2
+np.float32,0xbddf1220,0xbddea1cf,2
+np.float32,0xfeaf74de,0xc2b0b0ab,2
+np.float32,0xfe5dfb30,0xc2afc633,2
+np.float32,0xbf4785c4,0xbf376bdb,2
+np.float32,0x80191cd3,0x80191cd3,2
+np.float32,0xfe44f708,0xc2af88fb,2
+np.float32,0x3d4cd8a0,0x3d4cc2ca,2
+np.float32,0x7f572eff,0x42b27c0f,2
+np.float32,0x8031bacb,0x8031bacb,2
+np.float32,0x7f2ea684,0x42b21133,2
+np.float32,0xbea1976a,0xbe9f05bb,2
+np.float32,0x3d677b41,0x3d675bc1,2
+np.float32,0x3f61bf24,0x3f4b9870,2
+np.float32,0x7ef55ddf,0x42b15c5f,2
+np.float32,0x3eabcb20,0x3ea8b91c,2
+np.float32,0xff73d9ec,0xc2b2bc18,2
+np.float32,0x77b9f5,0x77b9f5,2
+np.float32,0x4c6c6c,0x4c6c6c,2
+np.float32,0x7ed09c94,0x42b10949,2
+np.float32,0xdeeec,0xdeeec,2
+np.float32,0x7eac5858,0x42b0a782,2
+np.float32,0x7e190658,0x42af07bd,2
+np.float32,0xbe3c8980,0xbe3b7ce2,2
+np.float32,0x8059e86e,0x8059e86e,2
+np.float32,0xff201836,0xc2b1e4a5,2
+np.float32,0xbeac109c,0xbea8fafb,2
+np.float32,0x7edd1e2b,0x42b12718,2
+np.float32,0x639cd8,0x639cd8,2
+np.float32,0x3f5e4cae,0x3f490059,2
+np.float32,0x3d84c185,0x3d84a9c4,2
+np.float32,0xbe8c1130,0xbe8a605b,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x3f1da5e4,0x3f151404,2
+np.float32,0x7f75a873,0x42b2bfdf,2
+np.float32,0xbd873540,0xbd871c28,2
+np.float32,0xbe8e5e10,0xbe8c9808,2
+np.float32,0x7f004bf2,0x42b17347,2
+np.float32,0x800000,0x800000,2
+np.float32,0xbf6d6b79,0xbf544095,2
+np.float32,0x7ed7b563,0x42b11a6a,2
+np.float32,0x80693745,0x80693745,2
+np.float32,0x3ee0f608,0x3eda49a8,2
+np.float32,0xfe1285a4,0xc2aef181,2
+np.float32,0x72d946,0x72d946,2
+np.float32,0x6a0dca,0x6a0dca,2
+np.float32,0x3f5c9df6,0x3f47ba99,2
+np.float32,0xff002af6,0xc2b172c4,2
+np.float32,0x3f4ac98f,0x3f39fd0a,2
+np.float32,0x8066acf7,0x8066acf7,2
+np.float32,0xbcaa4e60,0xbcaa4b3c,2
+np.float32,0x80162813,0x80162813,2
+np.float32,0xff34b318,0xc2b222a2,2
+np.float32,0x7f1ce33c,0x42b1da49,2
+np.float32,0x3f0e55ab,0x3f07ddb0,2
+np.float32,0x7c75d996,0x42aa6eec,2
+np.float32,0xbf221bc6,0xbf18dc89,2
+np.float32,0x3f5a1a4c,0x3f45d1d4,2
+np.float32,0x7f2451b8,0x42b1f1fb,2
+np.float32,0x3ec55ca0,0x3ec0c655,2
+np.float32,0x3f752dc2,0x3f59e600,2
+np.float32,0xbe33f638,0xbe330c4d,2
+np.float32,0x3e2a9148,0x3e29c9d8,2
+np.float32,0x3f3362a1,0x3f273c01,2
+np.float32,0x5f83b3,0x5f83b3,2
+np.float32,0x3e362488,0x3e353216,2
+np.float32,0x140bcf,0x140bcf,2
+np.float32,0x7e3e96df,0x42af7822,2
+np.float32,0xbebc7082,0xbeb86ce6,2
+np.float32,0xbe92a92e,0xbe90b9d2,2
+np.float32,0xff3d8afc,0xc2b23b19,2
+np.float32,0x804125e3,0x804125e3,2
+np.float32,0x3f3675d1,0x3f29bedb,2
+np.float32,0xff70bb09,0xc2b2b57f,2
+np.float32,0x3f29681c,0x3f1efcd2,2
+np.float32,0xbdc70380,0xbdc6b3a8,2
+np.float32,0x54e0dd,0x54e0dd,2
+np.float32,0x3d545de0,0x3d54458c,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0x8014a4c2,0x8014a4c2,2
+np.float32,0xbe93f58a,0xbe91f938,2
+np.float32,0x17de33,0x17de33,2
+np.float32,0xfefb679a,0xc2b168d2,2
+np.float32,0xbf23423e,0xbf19d511,2
+np.float32,0x7e893fa1,0x42b032ec,2
+np.float32,0x3f44fe2d,0x3f356bda,2
+np.float32,0xbebb2e78,0xbeb73e8f,2
+np.float32,0x3f5632e0,0x3f42d633,2
+np.float32,0x3ddd8698,0x3ddd1896,2
+np.float32,0x80164ea7,0x80164ea7,2
+np.float32,0x80087b37,0x80087b37,2
+np.float32,0xbf06ab1e,0xbf011f95,2
+np.float32,0x3db95524,0x3db9149f,2
+np.float32,0x7aa1fbb3,0x42a570a1,2
+np.float32,0xbd84fc48,0xbd84e467,2
+np.float32,0x3d65c6f5,0x3d65a826,2
+np.float32,0xfe987800,0xc2b068c4,2
+np.float32,0x7ec59532,0x42b0ed7a,2
+np.float32,0x3ea0232c,0x3e9da29a,2
+np.float32,0x80292a08,0x80292a08,2
+np.float32,0x734cfe,0x734cfe,2
+np.float32,0x3f3b6d63,0x3f2dc596,2
+np.float32,0x3f27bcc1,0x3f1d97e6,2
+np.float32,0xfe1da554,0xc2af16f9,2
+np.float32,0x7c91f5,0x7c91f5,2
+np.float32,0xfe4e78cc,0xc2afa11e,2
+np.float32,0x7e4b4e08,0x42af9933,2
+np.float32,0xfe0949ec,0xc2aed02e,2
+np.float32,0x7e2f057f,0x42af4c81,2
+np.float32,0xbf200ae0,0xbf171ce1,2
+np.float32,0x3ebcc244,0x3eb8b99e,2
+np.float32,0xbf68f58d,0xbf50f7aa,2
+np.float32,0x4420b1,0x4420b1,2
+np.float32,0x3f5b61bf,0x3f46cac7,2
+np.float32,0x3fec78,0x3fec78,2
+np.float32,0x7f4183c8,0x42b245b7,2
+np.float32,0xbf10587c,0xbf099ee2,2
+np.float32,0x0,0x0,2
+np.float32,0x7ec84dc3,0x42b0f47a,2
+np.float32,0x3f5fbd7b,0x3f4a166d,2
+np.float32,0xbd884eb8,0xbd883502,2
+np.float32,0xfe3f10a4,0xc2af7969,2
+np.float32,0xff3f4920,0xc2b23fc9,2
+np.float32,0x8013900f,0x8013900f,2
+np.float32,0x8003529d,0x8003529d,2
+np.float32,0xbf032384,0xbefbfb3c,2
+np.float32,0xff418c7c,0xc2b245ce,2
+np.float32,0xbec0aad0,0xbebc633b,2
+np.float32,0xfdbff178,0xc2ae18de,2
+np.float32,0x68ab15,0x68ab15,2
+np.float32,0xbdfc4a88,0xbdfba848,2
+np.float32,0xbf5adec6,0xbf466747,2
+np.float32,0x807d5dcc,0x807d5dcc,2
+np.float32,0x61d144,0x61d144,2
+np.float32,0x807e3a03,0x807e3a03,2
+np.float32,0x1872f2,0x1872f2,2
+np.float32,0x7f2a272c,0x42b203d8,2
+np.float32,0xfe7f8314,0xc2b00e3a,2
+np.float32,0xbe42aeac,0xbe418737,2
+np.float32,0x8024b614,0x8024b614,2
+np.float32,0xbe41b6b8,0xbe40939a,2
+np.float32,0xa765c,0xa765c,2
+np.float32,0x7ea74f4b,0x42b09853,2
+np.float32,0x7f7ef631,0x42b2d2e7,2
+np.float32,0x7eaef5e6,0x42b0af38,2
+np.float32,0xff733d85,0xc2b2bacf,2
+np.float32,0x537ac0,0x537ac0,2
+np.float32,0xbeca4790,0xbec55b1d,2
+np.float32,0x80117314,0x80117314,2
+np.float32,0xfe958536,0xc2b05ec5,2
+np.float32,0x8066ecc2,0x8066ecc2,2
+np.float32,0xbf56baf3,0xbf433e82,2
+np.float32,0x1f7fd7,0x1f7fd7,2
+np.float32,0x3e942104,0x3e9222fc,2
+np.float32,0xfeaffe82,0xc2b0b23c,2
+np.float32,0xfe0e02b0,0xc2aee17e,2
+np.float32,0xbf800000,0xbf61a1b3,2
+np.float32,0x800b7e49,0x800b7e49,2
+np.float32,0x6c514f,0x6c514f,2
+np.float32,0xff800000,0xff800000,2
+np.float32,0x7f7d9a45,0x42b2d02b,2
+np.float32,0x800c9c69,0x800c9c69,2
+np.float32,0x274b14,0x274b14,2
+np.float32,0xbf4b22b0,0xbf3a42e2,2
+np.float32,0x63e5ae,0x63e5ae,2
+np.float32,0xbe18facc,0xbe186a90,2
+np.float32,0x7e137351,0x42aef4bd,2
+np.float32,0x80518ffd,0x80518ffd,2
+np.float32,0xbf0a8ffc,0xbf048f0d,2
+np.float32,0x841d,0x841d,2
+np.float32,0x7edfdc9e,0x42b12d69,2
+np.float32,0xfd1092b0,0xc2ac24de,2
+np.float32,0x7e2c9bdf,0x42af4566,2
+np.float32,0x7f7fffff,0x42b2d4fc,2
+np.float32,0x3f4954a6,0x3f38d853,2
+np.float32,0xbe83efd2,0xbe8284c3,2
+np.float32,0x800e8e02,0x800e8e02,2
+np.float32,0x78ad39,0x78ad39,2
+np.float32,0x7eb0f967,0x42b0b514,2
+np.float32,0xbe39aa94,0xbe38a9ee,2
+np.float32,0x80194e7b,0x80194e7b,2
+np.float32,0x3cf3a340,0x3cf39a0f,2
+np.float32,0x3ed3117a,0x3ecd8173,2
+np.float32,0x7f530b11,0x42b2721c,2
+np.float32,0xff756ba2,0xc2b2bf60,2
+np.float32,0x15ea25,0x15ea25,2
+np.float32,0x803cbb64,0x803cbb64,2
+np.float32,0x3f34722d,0x3f281a2c,2
+np.float32,0x3ddd88e0,0x3ddd1adb,2
+np.float32,0x3f54244c,0x3f41418b,2
+np.float32,0x3e0adb98,0x3e0a6f8b,2
+np.float32,0x80800000,0x80800000,2
+np.float32,0x58902b,0x58902b,2
+np.float32,0xfe3b50b8,0xc2af6f43,2
+np.float32,0xfe0846d0,0xc2aecc64,2
+np.float32,0xbe0299d0,0xbe023fd4,2
+np.float32,0x18dde6,0x18dde6,2
+np.float32,0x8039fe8b,0x8039fe8b,2
+np.float32,0x8015d179,0x8015d179,2
+np.float32,0x3f551322,0x3f41f947,2
+np.float32,0x2ab387,0x2ab387,2
+np.float32,0xbf7e311e,0xbf6059d0,2
+np.float32,0xbdba58a8,0xbdba1713,2
+np.float32,0xbf1d008a,0xbf148724,2
+np.float32,0xbf6b9c97,0xbf52ec98,2
+np.float32,0x802acf04,0x802acf04,2
+np.float32,0x1,0x1,2
+np.float32,0xbe9e16d6,0xbe9bade3,2
+np.float32,0xbf048a14,0xbefe78c7,2
+np.float32,0x7e432ad3,0x42af8449,2
+np.float32,0xbdcc7fe0,0xbdcc2944,2
+np.float32,0x6dfc27,0x6dfc27,2
+np.float32,0xfef6eed8,0xc2b15fa1,2
+np.float32,0xbeeff6e8,0xbee7f2e4,2
+np.float32,0x7e3a6ca8,0x42af6cd2,2
+np.float32,0xff2c82e8,0xc2b20ae4,2
+np.float32,0x3e9f8d74,0x3e9d13b0,2
+np.float32,0x7ea36191,0x42b08c29,2
+np.float32,0x7f734bed,0x42b2baed,2
+np.float32,0x7f2df96d,0x42b20f37,2
+np.float32,0x5036fd,0x5036fd,2
+np.float32,0x806eab38,0x806eab38,2
+np.float32,0xbe9db90e,0xbe9b5446,2
+np.float32,0xfeef6fac,0xc2b14fd9,2
+np.float32,0xc2bf7,0xc2bf7,2
+np.float32,0xff53ec3d,0xc2b2743d,2
+np.float32,0x7e837637,0x42b01cde,2
+np.float32,0xbefb5934,0xbef23662,2
+np.float32,0x3f6cec80,0x3f53e371,2
+np.float32,0x3e86e7de,0x3e85643f,2
+np.float32,0x3f09cb42,0x3f03e1ef,2
+np.float32,0xbec3d236,0xbebf5620,2
+np.float32,0xfedef246,0xc2b12b50,2
+np.float32,0xbf08d6a8,0xbf030a62,2
+np.float32,0x8036cbf9,0x8036cbf9,2
+np.float32,0x3f74d3e3,0x3f59a512,2
+np.float32,0x6a600c,0x6a600c,2
+np.float32,0xfd1295b0,0xc2ac2bf1,2
+np.float32,0xbeb61142,0xbeb26efa,2
+np.float32,0x80216556,0x80216556,2
+np.float32,0xbf1fa0f6,0xbf16c30a,2
+np.float32,0x3e0af8e1,0x3e0a8c90,2
+np.float32,0x80434709,0x80434709,2
+np.float32,0x49efd9,0x49efd9,2
+np.float32,0x7f7cce6c,0x42b2ce8f,2
+np.float32,0x6e5450,0x6e5450,2
+np.float32,0x7f0fc115,0x42b1ad86,2
+np.float32,0x632db0,0x632db0,2
+np.float32,0x3f6f4c2a,0x3f55a064,2
+np.float32,0x7ec4f273,0x42b0ebd3,2
+np.float32,0x61ae1e,0x61ae1e,2
+np.float32,0x5f47c4,0x5f47c4,2
+np.float32,0xbf3c8f62,0xbf2eaf54,2
+np.float32,0xfca38900,0xc2ab0113,2
+np.float32,0x3ec89d52,0x3ec3ce78,2
+np.float32,0xbe0e3f70,0xbe0dcb53,2
+np.float32,0x805d3156,0x805d3156,2
+np.float32,0x3eee33f8,0x3ee65a4e,2
+np.float32,0xbeda7e9a,0xbed45a90,2
+np.float32,0x7e2fac7b,0x42af4e69,2
+np.float32,0x7efd0e28,0x42b16c2c,2
+np.float32,0x3f0c7b17,0x3f063e46,2
+np.float32,0xbf395bec,0xbf2c198f,2
+np.float32,0xfdf1c3f8,0xc2ae8f05,2
+np.float32,0xbe11f4e4,0xbe117783,2
+np.float32,0x7eddc901,0x42b128a3,2
+np.float32,0x3f4bad09,0x3f3aaf33,2
+np.float32,0xfefb5d76,0xc2b168bd,2
+np.float32,0x3ed3a4cf,0x3ece09a3,2
+np.float32,0x7ec582e4,0x42b0ed4a,2
+np.float32,0x3dc2268a,0x3dc1dc64,2
+np.float32,0x3ef9b17c,0x3ef0b9c9,2
+np.float32,0x2748ac,0x2748ac,2
+np.float32,0xfed6a602,0xc2b117e4,2
+np.float32,0xbefc9c36,0xbef35832,2
+np.float32,0x7e0476,0x7e0476,2
+np.float32,0x804be1a0,0x804be1a0,2
+np.float32,0xbefbc1c2,0xbef2943a,2
+np.float32,0xbd4698f0,0xbd46850a,2
+np.float32,0x688627,0x688627,2
+np.float32,0x3f7f7685,0x3f61406f,2
+np.float32,0x827fb,0x827fb,2
+np.float32,0x3f503264,0x3f3e34fd,2
+np.float32,0x7f5458d1,0x42b27543,2
+np.float32,0x800ac01f,0x800ac01f,2
+np.float32,0x6188dd,0x6188dd,2
+np.float32,0x806ac0ba,0x806ac0ba,2
+np.float32,0xbe14493c,0xbe13c5cc,2
+np.float32,0x3f77542c,0x3f5b72ae,2
+np.float32,0xfeaacab6,0xc2b0a2df,2
+np.float32,0x7f2893d5,0x42b1ff15,2
+np.float32,0x66b528,0x66b528,2
+np.float32,0xbf653e24,0xbf4e3573,2
+np.float32,0x801a2853,0x801a2853,2
+np.float32,0x3f3d8c98,0x3f2f7b04,2
+np.float32,0xfdffbad8,0xc2aeabc5,2
+np.float32,0x3dd50f,0x3dd50f,2
+np.float32,0x3f325a4c,0x3f266353,2
+np.float32,0xfcc48ec0,0xc2ab5f3f,2
+np.float32,0x3e6f5b9a,0x3e6d3ae5,2
+np.float32,0x3dbcd62b,0x3dbc91ee,2
+np.float32,0xbf7458d9,0xbf594c1c,2
+np.float32,0xff5adb24,0xc2b284b9,2
+np.float32,0x807b246d,0x807b246d,2
+np.float32,0x3f800000,0x3f61a1b3,2
+np.float32,0x231a28,0x231a28,2
+np.float32,0xbdc66258,0xbdc61341,2
+np.float32,0x3c84b4b4,0x3c84b338,2
+np.float32,0xbf215894,0xbf183783,2
+np.float32,0xff4ee298,0xc2b267ec,2
+np.float32,0x801ef52e,0x801ef52e,2
+np.float32,0x1040b0,0x1040b0,2
+np.float32,0xff545582,0xc2b2753b,2
+np.float32,0x3f3b9dda,0x3f2decaf,2
+np.float32,0x730f99,0x730f99,2
+np.float32,0xff7fffff,0xc2b2d4fc,2
+np.float32,0xff24cc5e,0xc2b1f379,2
+np.float32,0xbe9b456a,0xbe98fc0b,2
+np.float32,0x188fb,0x188fb,2
+np.float32,0x3f5c7ce2,0x3f47a18a,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x806ea4da,0x806ea4da,2
+np.float32,0xfe810570,0xc2b01345,2
+np.float32,0x8036af89,0x8036af89,2
+np.float32,0x8043cec6,0x8043cec6,2
+np.float32,0x80342bb3,0x80342bb3,2
+np.float32,0x1a2bd4,0x1a2bd4,2
+np.float32,0x3f6248c2,0x3f4bff9a,2
+np.float32,0x8024eb35,0x8024eb35,2
+np.float32,0x7ea55872,0x42b09247,2
+np.float32,0x806d6e56,0x806d6e56,2
+np.float32,0x25c21a,0x25c21a,2
+np.float32,0x3f4e95f3,0x3f3cf483,2
+np.float32,0x15ca38,0x15ca38,2
+np.float32,0x803f01b2,0x803f01b2,2
+np.float32,0xbe731634,0xbe70dc10,2
+np.float32,0x3e80cee4,0x3e7ef933,2
+np.float32,0x3ef6dda5,0x3eee2e7b,2
+np.float32,0x3f3dfdc2,0x3f2fd5ed,2
+np.float32,0xff0492a7,0xc2b18411,2
+np.float32,0xbf1d0adf,0xbf148ff3,2
+np.float32,0xfcf75460,0xc2abd4e3,2
+np.float32,0x3f46fca6,0x3f36ffa6,2
+np.float32,0xbe63b5c0,0xbe61dfb3,2
+np.float32,0xff019bec,0xc2b1787d,2
+np.float32,0x801f14a9,0x801f14a9,2
+np.float32,0x3f176cfa,0x3f0fc051,2
+np.float32,0x3f69d976,0x3f51a015,2
+np.float32,0x3f4917cb,0x3f38a87a,2
+np.float32,0x3b2a0bea,0x3b2a0bdd,2
+np.float32,0xbf41d857,0xbf32eb50,2
+np.float32,0xbf08841a,0xbf02c18f,2
+np.float32,0x7ec86f14,0x42b0f4d0,2
+np.float32,0xbf7d15d1,0xbf5f9090,2
+np.float32,0xbd080550,0xbd07feea,2
+np.float32,0xbf6f1bef,0xbf557d26,2
+np.float32,0xfebc282c,0xc2b0d473,2
+np.float32,0x3e68d2f5,0x3e66dd03,2
+np.float32,0x3f3ed8fe,0x3f3085d5,2
+np.float32,0xff2f78ae,0xc2b2139a,2
+np.float32,0xff647a70,0xc2b29ac1,2
+np.float32,0xfd0859a0,0xc2ac06e2,2
+np.float32,0x3ea578a8,0x3ea2b7e1,2
+np.float32,0x6c58c6,0x6c58c6,2
+np.float32,0xff23f26a,0xc2b1f0d2,2
+np.float32,0x800902a4,0x800902a4,2
+np.float32,0xfe8ba64e,0xc2b03bcd,2
+np.float32,0x3f091143,0x3f033e0f,2
+np.float32,0x8017c4bd,0x8017c4bd,2
+np.float32,0xbf708fd4,0xbf568c8c,2
+np.float32,0x3be1d8,0x3be1d8,2
+np.float32,0x80091f07,0x80091f07,2
+np.float32,0x68eabe,0x68eabe,2
+np.float32,0xfe9ab2c8,0xc2b07033,2
+np.float32,0x3eabe752,0x3ea8d3d7,2
+np.float32,0xbf7adcb2,0xbf5dfaf5,2
+np.float32,0x801ecc01,0x801ecc01,2
+np.float32,0xbf5570a9,0xbf424123,2
+np.float32,0x3e89eecd,0x3e88510e,2
+np.float32,0xfeb2feee,0xc2b0bae4,2
+np.float32,0xbeb25ec2,0xbeaef22b,2
+np.float32,0x201e49,0x201e49,2
+np.float32,0x800a35f6,0x800a35f6,2
+np.float32,0xbf02d449,0xbefb6e2a,2
+np.float32,0x3f062bea,0x3f00aef6,2
+np.float32,0x7f5219ff,0x42b26fd2,2
+np.float32,0xbd4561d0,0xbd454e47,2
+np.float32,0x3f6c4789,0x3f536a4b,2
+np.float32,0x7f58b06d,0x42b27fa1,2
+np.float32,0x7f132f39,0x42b1b999,2
+np.float32,0x3e05dcb4,0x3e057bd8,2
+np.float32,0x7f526045,0x42b2707d,2
+np.float32,0x3f6117d0,0x3f4b1adb,2
+np.float32,0xbf21f47d,0xbf18bb57,2
+np.float32,0x1a26d6,0x1a26d6,2
+np.float32,0x46b114,0x46b114,2
+np.float32,0x3eb24518,0x3eaed9ef,2
+np.float32,0xfe2139c8,0xc2af2278,2
+np.float32,0xbf7c36fb,0xbf5ef1f6,2
+np.float32,0x3f193834,0x3f114af7,2
+np.float32,0xff3ea650,0xc2b23e14,2
+np.float32,0xfeeb3bca,0xc2b146c7,2
+np.float32,0x7e8b8ca0,0x42b03b6f,2
+np.float32,0x3eed903d,0x3ee5c5d2,2
+np.float32,0xbdc73740,0xbdc6e72a,2
+np.float32,0x7e500307,0x42afa4ec,2
+np.float32,0xe003c,0xe003c,2
+np.float32,0x3e612bb4,0x3e5f64fd,2
+np.float32,0xfd81e248,0xc2ad50e6,2
+np.float32,0x766a4f,0x766a4f,2
+np.float32,0x3e8708c9,0x3e858414,2
+np.float32,0xbf206c58,0xbf176f7f,2
+np.float32,0x7e93aeb0,0x42b0586f,2
+np.float32,0xfd9d36b8,0xc2adb2ad,2
+np.float32,0xff1f4e0e,0xc2b1e21d,2
+np.float32,0x3f22bd5a,0x3f1964f8,2
+np.float32,0x7f6a517a,0x42b2a7ad,2
+np.float32,0xff6ca773,0xc2b2acc1,2
+np.float32,0x7f6bf453,0x42b2ab3d,2
+np.float32,0x3edfdd64,0x3ed9489f,2
+np.float32,0xbeafc5ba,0xbeac7daa,2
+np.float32,0x7d862039,0x42ad615b,2
+np.float32,0xbe9d2002,0xbe9ac1fc,2
+np.float32,0xbdcc54c0,0xbdcbfe5b,2
+np.float32,0xbf1bc0aa,0xbf13762a,2
+np.float32,0xbf4679ce,0xbf36984b,2
+np.float32,0x3ef45696,0x3eebe713,2
+np.float32,0xff6eb999,0xc2b2b137,2
+np.float32,0xbe4b2e4c,0xbe49dee8,2
+np.float32,0x3f498951,0x3f3901b7,2
+np.float32,0xbe9692f4,0xbe947be1,2
+np.float32,0xbf44ce26,0xbf3545c8,2
+np.float32,0x805787a8,0x805787a8,2
+np.float32,0xbf342650,0xbf27dc26,2
+np.float32,0x3edafbf0,0x3ed4cdd2,2
+np.float32,0x3f6fb858,0x3f55ef63,2
+np.float32,0xff227d0a,0xc2b1ec3f,2
+np.float32,0xfeb9a202,0xc2b0cd89,2
+np.float32,0x7f5b12c1,0x42b2853b,2
+np.float32,0x584578,0x584578,2
+np.float32,0x7ec0b76f,0x42b0e0b5,2
+np.float32,0x3f57f54b,0x3f442f10,2
+np.float32,0x7eef3620,0x42b14f5d,2
+np.float32,0x4525b5,0x4525b5,2
+np.float32,0x801bd407,0x801bd407,2
+np.float32,0xbed1f166,0xbecc7703,2
+np.float32,0x3f57e732,0x3f442449,2
+np.float32,0x80767cd5,0x80767cd5,2
+np.float32,0xbef1a7d2,0xbee97aa3,2
+np.float32,0x3dd5b1af,0x3dd54ee6,2
+np.float32,0x960c,0x960c,2
+np.float32,0x7c392d41,0x42a9ddd1,2
+np.float32,0x3f5c9a34,0x3f47b7c1,2
+np.float32,0x3f5cecee,0x3f47f667,2
+np.float32,0xbee482ce,0xbedd8899,2
+np.float32,0x8066ba7e,0x8066ba7e,2
+np.float32,0x7ed76127,0x42b119a2,2
+np.float32,0x805ca40b,0x805ca40b,2
+np.float32,0x7f5ed5d1,0x42b28df3,2
+np.float32,0xfe9e1b1e,0xc2b07b5b,2
+np.float32,0x3f0201a2,0x3ef9f6c4,2
+np.float32,0xbf2e6430,0xbf232039,2
+np.float32,0x80326b4d,0x80326b4d,2
+np.float32,0x3f11dc7c,0x3f0af06e,2
+np.float32,0xbe89c42e,0xbe8827e6,2
+np.float32,0x3f3c69f8,0x3f2e9133,2
+np.float32,0x806326a9,0x806326a9,2
+np.float32,0x3f1c5286,0x3f13f2b6,2
+np.float32,0xff5c0ead,0xc2b28786,2
+np.float32,0xff32b952,0xc2b21d01,2
+np.float32,0x7dd27c4e,0x42ae4815,2
+np.float32,0xbf7a6816,0xbf5da7a2,2
+np.float32,0xfeac72f8,0xc2b0a7d1,2
+np.float32,0x335ad7,0x335ad7,2
+np.float32,0xbe682da4,0xbe663bcc,2
+np.float32,0x3f2df244,0x3f22c208,2
+np.float32,0x80686e8e,0x80686e8e,2
+np.float32,0x7f50120f,0x42b26ad9,2
+np.float32,0x3dbc596a,0x3dbc15b3,2
+np.float32,0xbf4f2868,0xbf3d666d,2
+np.float32,0x80000001,0x80000001,2
+np.float32,0xff66c059,0xc2b29fd2,2
+np.float32,0xfe8bbcaa,0xc2b03c1f,2
+np.float32,0x3ece6a51,0x3ec93271,2
+np.float32,0x7f06cd26,0x42b18c9a,2
+np.float32,0x7e41e6dc,0x42af80f5,2
+np.float32,0x7d878334,0x42ad669f,2
+np.float32,0xfe8c5c4c,0xc2b03e67,2
+np.float32,0x337a05,0x337a05,2
+np.float32,0x3e63801d,0x3e61ab58,2
+np.float32,0x62c315,0x62c315,2
+np.float32,0x802aa888,0x802aa888,2
+np.float32,0x80038b43,0x80038b43,2
+np.float32,0xff5c1271,0xc2b2878f,2
+np.float32,0xff4184a5,0xc2b245b9,2
+np.float32,0x7ef58f4b,0x42b15cc6,2
+np.float32,0x7f42d8ac,0x42b2493a,2
+np.float32,0x806609f2,0x806609f2,2
+np.float32,0x801e763b,0x801e763b,2
+np.float32,0x7f2bc073,0x42b208a2,2
+np.float32,0x801d7d7f,0x801d7d7f,2
+np.float32,0x7d415dc1,0x42acb9c2,2
+np.float32,0xbf624ff9,0xbf4c0502,2
+np.float32,0xbf603afd,0xbf4a74e2,2
+np.float32,0x8007fe42,0x8007fe42,2
+np.float32,0x800456db,0x800456db,2
+np.float32,0x620871,0x620871,2
+np.float32,0x3e9c6c1e,0x3e9a15fa,2
+np.float32,0x4245d,0x4245d,2
+np.float32,0x8035bde9,0x8035bde9,2
+np.float32,0xbf597418,0xbf45533c,2
+np.float32,0x3c730f80,0x3c730d38,2
+np.float32,0x3f7cd8ed,0x3f5f6540,2
+np.float32,0x807e49c3,0x807e49c3,2
+np.float32,0x3d6584c0,0x3d65660c,2
+np.float32,0xff42a744,0xc2b248b8,2
+np.float32,0xfedc6f56,0xc2b12583,2
+np.float32,0x806263a4,0x806263a4,2
+np.float32,0x175a17,0x175a17,2
+np.float32,0x3f1e8537,0x3f15d208,2
+np.float32,0x4055b5,0x4055b5,2
+np.float32,0x438aa6,0x438aa6,2
+np.float32,0x8038507f,0x8038507f,2
+np.float32,0xbed75348,0xbed16f85,2
+np.float32,0x7f07b7d6,0x42b19012,2
+np.float32,0xfe8b9d30,0xc2b03bac,2
+np.float32,0x805c501c,0x805c501c,2
+np.float32,0x3ef22b1d,0x3ee9f159,2
+np.float32,0x802b6759,0x802b6759,2
+np.float32,0x45281a,0x45281a,2
+np.float32,0xbf7e9970,0xbf60a3cf,2
+np.float32,0xbf14d152,0xbf0d8062,2
+np.float32,0x3d9ff950,0x3d9fcfc8,2
+np.float32,0x7865d9,0x7865d9,2
+np.float32,0xbee67fa4,0xbedf58eb,2
+np.float32,0x7dc822d1,0x42ae2e44,2
+np.float32,0x3f3af0fe,0x3f2d612c,2
+np.float32,0xbefea106,0xbef5274e,2
+np.float32,0xbf758a3f,0xbf5a28c5,2
+np.float32,0xbf331bdd,0xbf270209,2
+np.float32,0x7f51c901,0x42b26f0d,2
+np.float32,0x3f67c33b,0x3f5014d8,2
+np.float32,0xbbc9d980,0xbbc9d92c,2
+np.float32,0xbc407540,0xbc40741e,2
+np.float32,0x7eed9a3c,0x42b14be9,2
+np.float32,0x1be0fe,0x1be0fe,2
+np.float32,0xbf6b4913,0xbf52af1f,2
+np.float32,0xbda8eba8,0xbda8bac6,2
+np.float32,0x8004bcea,0x8004bcea,2
+np.float32,0xff6f6afe,0xc2b2b2b3,2
+np.float32,0xbf205810,0xbf175e50,2
+np.float32,0x80651944,0x80651944,2
+np.float32,0xbec73016,0xbec27a3f,2
+np.float32,0x5701b9,0x5701b9,2
+np.float32,0xbf1062ce,0xbf09a7df,2
+np.float32,0x3e0306ae,0x3e02abd1,2
+np.float32,0x7bfc62,0x7bfc62,2
+np.float32,0xbf48dd3c,0xbf387a6b,2
+np.float32,0x8009573e,0x8009573e,2
+np.float32,0x660a2c,0x660a2c,2
+np.float32,0xff2280da,0xc2b1ec4b,2
+np.float32,0xbf7034fe,0xbf564a54,2
+np.float32,0xbeeb448e,0xbee3b045,2
+np.float32,0xff4e949c,0xc2b2672b,2
+np.float32,0xbf3c4486,0xbf2e7309,2
+np.float32,0x7eb086d8,0x42b0b3c8,2
+np.float32,0x7eac8aca,0x42b0a817,2
+np.float32,0xfd3d2d60,0xc2acae8b,2
+np.float32,0xbf363226,0xbf2987bd,2
+np.float32,0x7f02e524,0x42b17d8c,2
+np.float32,0x8049a148,0x8049a148,2
+np.float32,0x147202,0x147202,2
+np.float32,0x8031d3f6,0x8031d3f6,2
+np.float32,0xfe78bf68,0xc2b0007d,2
+np.float32,0x7ebd16d0,0x42b0d6fb,2
+np.float32,0xbdaed2e8,0xbdae9cbb,2
+np.float32,0x802833ae,0x802833ae,2
+np.float32,0x7f62adf6,0x42b296b5,2
+np.float32,0xff2841c0,0xc2b1fe1b,2
+np.float32,0xbeb2c47e,0xbeaf523b,2
+np.float32,0x7e42a36e,0x42af82e6,2
+np.float32,0x41ea29,0x41ea29,2
+np.float32,0xbcaaa800,0xbcaaa4d7,2
+np.float64,0x3fed71f27ebae3e5,0x3fea5c6095012ca6,1
+np.float64,0x224dc392449b9,0x224dc392449b9,1
+np.float64,0x3fdf897a7d3f12f5,0x3fde620339360992,1
+np.float64,0xbfe1f99a5123f334,0xbfe124a57cfaf556,1
+np.float64,0xbfd9725c3bb2e4b8,0xbfd8d1e3f75110c7,1
+np.float64,0x3fe38977546712ee,0x3fe27d9d37f4b91f,1
+np.float64,0xbfc36c29e526d854,0xbfc3594743ee45c4,1
+np.float64,0xbfe5cbec332b97d8,0xbfe4638802316849,1
+np.float64,0x2ff35efe5fe6d,0x2ff35efe5fe6d,1
+np.float64,0x7fd3f828e227f051,0x40862a7d4a40b1e0,1
+np.float64,0xffd06fc11620df82,0xc08628ee8f1bf6c8,1
+np.float64,0x3fe5321bf4aa6438,0x3fe3e3d9fa453199,1
+np.float64,0xffd07a323ca0f464,0xc08628f3a2930f8c,1
+np.float64,0x3fdf7abe7abef57c,0x3fde54cb193d49cb,1
+np.float64,0x40941f1881285,0x40941f1881285,1
+np.float64,0xffef18defc7e31bd,0xc0863393f2c9f061,1
+np.float64,0xbfe379f871e6f3f1,0xbfe270620cb68347,1
+np.float64,0xffec829848f90530,0xc08632e210edaa2b,1
+np.float64,0x80070c00574e1801,0x80070c00574e1801,1
+np.float64,0xffce7654b23ceca8,0xc086285291e89975,1
+np.float64,0x7fc9932daa33265a,0x408626ec6cc2b807,1
+np.float64,0x355ee98c6abde,0x355ee98c6abde,1
+np.float64,0x3fac54962c38a920,0x3fac50e40b6c19f2,1
+np.float64,0x800857984af0af31,0x800857984af0af31,1
+np.float64,0x7fea6a3d55f4d47a,0x40863245bf39f179,1
+np.float64,0x3fdb8fab33371f56,0x3fdac5ffc9e1c347,1
+np.float64,0x800a887a7bf510f5,0x800a887a7bf510f5,1
+np.float64,0xbfbdbda3c63b7b48,0xbfbdac9dd5a2d3e8,1
+np.float64,0xbfd4a2457b29448a,0xbfd44acb3b316d6d,1
+np.float64,0x7fd5329a502a6534,0x40862af789b528b5,1
+np.float64,0x3fd96a7bceb2d4f8,0x3fd8ca92104d6cd6,1
+np.float64,0x3fde6a0cd6bcd41a,0x3fdd5f4b85abf749,1
+np.float64,0xbfc7faaff32ff560,0xbfc7d7560b8c4a52,1
+np.float64,0x7fec381b2f787035,0x408632cd0e9c095c,1
+np.float64,0x1fc2eb543f85e,0x1fc2eb543f85e,1
+np.float64,0x7ac6000af58c1,0x7ac6000af58c1,1
+np.float64,0xffe060a87920c150,0xc0862e72c37d5a4e,1
+np.float64,0xbfb7d8c89e2fb190,0xbfb7cffd3c3f8e3a,1
+np.float64,0x3fd91033deb22068,0x3fd87695b067aa1e,1
+np.float64,0x3fec1aff01b835fe,0x3fe95d5cbd729af7,1
+np.float64,0x7fb97f69ec32fed3,0x4086215aaae5c697,1
+np.float64,0x7feaf1e4e5f5e3c9,0x4086326e6ca6a2bb,1
+np.float64,0x800537e44d0a6fc9,0x800537e44d0a6fc9,1
+np.float64,0x800b2a0d0d36541a,0x800b2a0d0d36541a,1
+np.float64,0x3fe2193846e43270,0x3fe140308550138e,1
+np.float64,0x5e2a0a32bc542,0x5e2a0a32bc542,1
+np.float64,0xffe5888b09eb1116,0xc08630a348783aa3,1
+np.float64,0xbfceb9b5033d736c,0xbfce701049c10435,1
+np.float64,0x7fe5d68589abad0a,0x408630c00ce63f23,1
+np.float64,0x8009b5457ff36a8b,0x8009b5457ff36a8b,1
+np.float64,0xbfb5518c2e2aa318,0xbfb54b42638ca718,1
+np.float64,0x3f9c58469838b080,0x3f9c575974fbcd7b,1
+np.float64,0x3fe8db4b4731b697,0x3fe6dc9231587966,1
+np.float64,0x8007d0f77f4fa1f0,0x8007d0f77f4fa1f0,1
+np.float64,0x7fe79eef542f3dde,0x40863160c673c67f,1
+np.float64,0xffbdc0b6163b8170,0xc0862296be4bf032,1
+np.float64,0x3fbb8d3312371a66,0x3fbb7fa76fb4cf8d,1
+np.float64,0xffd8a0eedbb141de,0xc0862c2ac6e512f0,1
+np.float64,0x7fee99d8d87d33b1,0x4086337301c4c8df,1
+np.float64,0xffe7479b552e8f36,0xc0863142fba0f0ec,1
+np.float64,0xffedf8ef4abbf1de,0xc08633488068fe69,1
+np.float64,0x895c4d9f12b8a,0x895c4d9f12b8a,1
+np.float64,0x29b4caf05369a,0x29b4caf05369a,1
+np.float64,0xbfefb90d657f721b,0xbfec01efa2425b35,1
+np.float64,0xde07c3bdbc0f9,0xde07c3bdbc0f9,1
+np.float64,0x7feae9fd02f5d3f9,0x4086326c1368ed5a,1
+np.float64,0x3feab792da756f26,0x3fe84f6e15338ed7,1
+np.float64,0xbfeff8ed72fff1db,0xbfec2f35da06daaf,1
+np.float64,0x8004b2c132896583,0x8004b2c132896583,1
+np.float64,0xbf9fcb00103f9600,0xbf9fc9b1751c569e,1
+np.float64,0x4182b72e83058,0x4182b72e83058,1
+np.float64,0x90820d812105,0x90820d812105,1
+np.float64,0xbfdec9a0ba3d9342,0xbfddb585df607ce1,1
+np.float64,0x7fdc0a69a03814d2,0x40862d347f201b63,1
+np.float64,0xbfef0708937e0e11,0xbfeb82d27f8ea97f,1
+np.float64,0xffda57e4ddb4afca,0xc0862cb49e2e0c4c,1
+np.float64,0xbfa30b9af4261730,0xbfa30a7b4a633060,1
+np.float64,0x7feb57fcc4b6aff9,0x4086328c83957a0b,1
+np.float64,0x7fe6759153eceb22,0x408630f980433963,1
+np.float64,0x7fdd3278c8ba64f1,0x40862d87445243e9,1
+np.float64,0xd3b8e6b9a771d,0xd3b8e6b9a771d,1
+np.float64,0x6267dc88c4cfc,0x6267dc88c4cfc,1
+np.float64,0x7fedd3cf00bba79d,0x4086333e91712ff5,1
+np.float64,0xffbe512ce03ca258,0xc08622bd39314cea,1
+np.float64,0xbfe71742ca6e2e86,0xbfe572ccbf2d010d,1
+np.float64,0x8002fb048c65f60a,0x8002fb048c65f60a,1
+np.float64,0x800d9d9ddf7b3b3c,0x800d9d9ddf7b3b3c,1
+np.float64,0xbfeaf6230df5ec46,0xbfe87f5d751ec3d5,1
+np.float64,0xbfe69973a42d32e8,0xbfe50c680f7002fe,1
+np.float64,0x3fe309cf87e613a0,0x3fe21048714ce1ac,1
+np.float64,0x800435d17a286ba4,0x800435d17a286ba4,1
+np.float64,0x7fefffffffffffff,0x408633ce8fb9f87e,1
+np.float64,0x3fe36ade1766d5bc,0x3fe26379fb285dde,1
+np.float64,0x3f98d8d94831b1c0,0x3f98d839885dc527,1
+np.float64,0xbfd08f7ae5211ef6,0xbfd0618ab5293e1e,1
+np.float64,0xbfcf630bd53ec618,0xbfcf14a0cd20704d,1
+np.float64,0xbfe58f0ca6eb1e1a,0xbfe4312225df8e28,1
+np.float64,0xffef4f6406be9ec7,0xc08633a1ed1d27e5,1
+np.float64,0x7fe10120b3e20240,0x40862ebfaf94e6e8,1
+np.float64,0xffe96c52fbb2d8a5,0xc08631f75d9a59a0,1
+np.float64,0xbfe448a333e89146,0xbfe31fee44c3ec43,1
+np.float64,0x80045ff4e788bfeb,0x80045ff4e788bfeb,1
+np.float64,0x7fefaa2f823f545e,0x408633b8fea29524,1
+np.float64,0xffea6b8bf234d717,0xc0863246248e5960,1
+np.float64,0xbfdb085d80b610bc,0xbfda498b15b43eec,1
+np.float64,0xbfd5e12da3abc25c,0xbfd57970e2b8aecc,1
+np.float64,0x3fcc84928a390925,0x3fcc497c417a89f3,1
+np.float64,0xbfdcb713bf396e28,0xbfdbd46c5e731fd9,1
+np.float64,0xffdf50c0453ea180,0xc0862e16b5562f25,1
+np.float64,0x800342c2f7268587,0x800342c2f7268587,1
+np.float64,0x7feb8b6d743716da,0x4086329b8248de2c,1
+np.float64,0x800a9b18b4953632,0x800a9b18b4953632,1
+np.float64,0xffedaf0d12fb5e19,0xc0863334af82de1a,1
+np.float64,0x800aebda4ab5d7b5,0x800aebda4ab5d7b5,1
+np.float64,0xbfa9f5848433eb10,0xbfa9f2ac7ac065d4,1
+np.float64,0x3fea375928f46eb2,0x3fe7ec9f10eeac7d,1
+np.float64,0x3fd6c213fead8428,0x3fd64dcc1eff5f1b,1
+np.float64,0xbfa0476f44208ee0,0xbfa046bb986007ac,1
+np.float64,0x6c8e18aed91c4,0x6c8e18aed91c4,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x7fea86b5ba350d6a,0x4086324e59f13027,1
+np.float64,0x2316c3b0462d9,0x2316c3b0462d9,1
+np.float64,0x3fec4e3281389c65,0x3fe983c5c9d65940,1
+np.float64,0x3fbb87c47f772,0x3fbb87c47f772,1
+np.float64,0x8004af00fdc95e03,0x8004af00fdc95e03,1
+np.float64,0xbfd316db9ba62db8,0xbfd2d12765b9d155,1
+np.float64,0x3fec1a7a99f834f6,0x3fe95cf941889b3d,1
+np.float64,0x3feff7e1477fefc3,0x3fec2e782392d4b9,1
+np.float64,0xbfc683ea042d07d4,0xbfc66698cfa5026e,1
+np.float64,0x3fdbc8aaa9b79154,0x3fdafa50e6fc3fff,1
+np.float64,0xfb3b630ff676d,0xfb3b630ff676d,1
+np.float64,0x7fe715ef8eae2bde,0x40863131d794b41f,1
+np.float64,0x7fefa06c11bf40d7,0x408633b686c7996a,1
+np.float64,0x80002a40f5205483,0x80002a40f5205483,1
+np.float64,0x7fe95f3c74b2be78,0x408631f33e37bf76,1
+np.float64,0x3fb2977b32252ef0,0x3fb2934eaf5a4be8,1
+np.float64,0x3fc0f3dbc821e7b8,0x3fc0e745288c84c3,1
+np.float64,0x3fda98da56b531b5,0x3fd9e2b19447dacc,1
+np.float64,0x3f95b9d5202b73aa,0x3f95b96a53282949,1
+np.float64,0x3fdc1ace7738359d,0x3fdb4597d31df7ff,1
+np.float64,0xffeac5bb2e358b76,0xc0863261452ab66c,1
+np.float64,0xbfefb1b78f7f636f,0xbfebfcb9be100ced,1
+np.float64,0xf5c9e191eb93c,0xf5c9e191eb93c,1
+np.float64,0x3fe83a977630752f,0x3fe65d0df90ff6ef,1
+np.float64,0x3fc317515d262ea0,0x3fc3056072b719f0,1
+np.float64,0x7fe2dcfab225b9f4,0x40862f94257c28a2,1
+np.float64,0xca2b115794562,0xca2b115794562,1
+np.float64,0x3fd495301aa92a60,0x3fd43e57108761d5,1
+np.float64,0x800ccc4293199885,0x800ccc4293199885,1
+np.float64,0xc8d3173d91a63,0xc8d3173d91a63,1
+np.float64,0xbf2541bb7e4a8,0xbf2541bb7e4a8,1
+np.float64,0xbfe9a330df334662,0xbfe779816573f5be,1
+np.float64,0xffd5e4c8252bc990,0xc0862b39b3ca5d72,1
+np.float64,0x3fe90f3a53721e75,0x3fe70585ae09531d,1
+np.float64,0xbfe2b5ddc7a56bbc,0xbfe1c7fa91a675ed,1
+np.float64,0xbf981a0360303400,0xbf9819719345073a,1
+np.float64,0x19174b0e322ea,0x19174b0e322ea,1
+np.float64,0xbfd2f71a1725ee34,0xbfd2b2b6f7cd10b1,1
+np.float64,0x80056e83236add07,0x80056e83236add07,1
+np.float64,0x7fe4bc41d9697883,0x40863055f20ce0cb,1
+np.float64,0xffe76e06c46edc0d,0xc086315024b25559,1
+np.float64,0x3fe3c4f0f96789e2,0x3fe2b04b584609bf,1
+np.float64,0x3fe6cfc533ed9f8a,0x3fe538b4d784d5ee,1
+np.float64,0x7fd234a640a4694c,0x408629bfead4f0b2,1
+np.float64,0x3fdbc49c9ab78939,0x3fdaf698a83d08e2,1
+np.float64,0x3fe4c5336ee98a66,0x3fe388c6ddb60e0a,1
+np.float64,0xf4b9497be9729,0xf4b9497be9729,1
+np.float64,0x3fb312be12262580,0x3fb30e3c847c1d16,1
+np.float64,0x3fe9554218f2aa84,0x3fe73c8b311c7a98,1
+np.float64,0xff899816a0333040,0xc08610bfb2cd8559,1
+np.float64,0x8006008ad52c0116,0x8006008ad52c0116,1
+np.float64,0x3fd7d47be4afa8f8,0x3fd74fa71ec17fd0,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0xdf2a9943be553,0xdf2a9943be553,1
+np.float64,0xbfeb86bf1eb70d7e,0xbfe8ed797580ba5c,1
+np.float64,0x800e2c0c28bc5818,0x800e2c0c28bc5818,1
+np.float64,0xbfe2be65d4657ccc,0xbfe1cf578dec2323,1
+np.float64,0xbfedea3a5afbd475,0xbfeab490bf05e585,1
+np.float64,0xbfe04b1583a0962b,0xbfdf523dfd7be25c,1
+np.float64,0x75929bb4eb254,0x75929bb4eb254,1
+np.float64,0x3fd7b4968caf692d,0x3fd731c0938ff97c,1
+np.float64,0x60bd8fd2c17b3,0x60bd8fd2c17b3,1
+np.float64,0xbfdaf15e70b5e2bc,0xbfda345a95ce18fe,1
+np.float64,0x7fdd7c35c2baf86b,0x40862d9b5f40c6b2,1
+np.float64,0x7feeb4d2ab7d69a4,0x4086337a0c0dffaf,1
+np.float64,0xffe65b5a1decb6b4,0xc08630f024420efb,1
+np.float64,0x7feb272b30764e55,0x4086327e2e553aa2,1
+np.float64,0x3fd27513e8a4ea28,0x3fd235ea49670f6a,1
+np.float64,0x3fe6541a6aeca834,0x3fe4d3a5b69fd1b6,1
+np.float64,0xbfe0c6ca0f618d94,0xbfe017058259efdb,1
+np.float64,0x7fc1bf07b7237e0e,0x4086240000fa5a52,1
+np.float64,0x7fe96af9c0f2d5f3,0x408631f6f0f4faa2,1
+np.float64,0x3fe0728be7a0e518,0x3fdf9881a5869de9,1
+np.float64,0xffe8ea4441b1d488,0xc08631ce0685ae7e,1
+np.float64,0xffd0b973f02172e8,0xc08629121e7fdf85,1
+np.float64,0xffe37b907a26f720,0xc0862fd6529401a0,1
+np.float64,0x3fe0ee826461dd05,0x3fe03a2a424a1b40,1
+np.float64,0xbfe8073c92300e79,0xbfe6340cbd179ac1,1
+np.float64,0x800768383f8ed071,0x800768383f8ed071,1
+np.float64,0x8002e467c7c5c8d0,0x8002e467c7c5c8d0,1
+np.float64,0xbfd8d53ea5b1aa7e,0xbfd83fa7243289d7,1
+np.float64,0xffebefce2bb7df9c,0xc08632b874f4f8dc,1
+np.float64,0xffe3be9eb9277d3d,0xc0862ff1ac70ad0b,1
+np.float64,0xffe2f8a82e65f150,0xc0862f9fd9e77d86,1
+np.float64,0xbfa01d151c203a30,0xbfa01c66dc13a70a,1
+np.float64,0x800877062d30ee0d,0x800877062d30ee0d,1
+np.float64,0xaade16a755bc3,0xaade16a755bc3,1
+np.float64,0xbfeb1abc70363579,0xbfe89b52c3b003aa,1
+np.float64,0x80097d0b2ad2fa17,0x80097d0b2ad2fa17,1
+np.float64,0x8001499907429333,0x8001499907429333,1
+np.float64,0x3fe8db2aaf71b656,0x3fe6dc7873f1b235,1
+np.float64,0x5cfeadc4b9fd6,0x5cfeadc4b9fd6,1
+np.float64,0xff3f77d1fe7ef,0xff3f77d1fe7ef,1
+np.float64,0xffeecd56f9bd9aad,0xc08633806cb1163d,1
+np.float64,0xbf96f3ca582de7a0,0xbf96f34c6b8e1c85,1
+np.float64,0x7ed6b44afdad7,0x7ed6b44afdad7,1
+np.float64,0x80071808da4e3012,0x80071808da4e3012,1
+np.float64,0x3feb8aee2bf715dc,0x3fe8f0a55516615c,1
+np.float64,0x800038f62e2071ed,0x800038f62e2071ed,1
+np.float64,0x3fb13f9af2227f30,0x3fb13c456ced8e08,1
+np.float64,0xffd584d1812b09a4,0xc0862b165558ec0c,1
+np.float64,0x800b20c30fb64186,0x800b20c30fb64186,1
+np.float64,0x80024f9646e49f2d,0x80024f9646e49f2d,1
+np.float64,0xffefffffffffffff,0xc08633ce8fb9f87e,1
+np.float64,0x3fdddbcb5bbbb797,0x3fdcde981111f650,1
+np.float64,0xffed14077f3a280e,0xc086330a795ad634,1
+np.float64,0x800fec2da7ffd85b,0x800fec2da7ffd85b,1
+np.float64,0x3fe8205ffc7040c0,0x3fe6482318d217f9,1
+np.float64,0x3013e5226027d,0x3013e5226027d,1
+np.float64,0xffe4e5aad469cb55,0xc0863065dc2fb4e3,1
+np.float64,0x5cb0f7b2b9620,0x5cb0f7b2b9620,1
+np.float64,0xbfeb4537d2768a70,0xbfe8bbb2c1d3bff9,1
+np.float64,0xbfd859e297b0b3c6,0xbfd7cc807948bf9d,1
+np.float64,0x71f00b8ce3e02,0x71f00b8ce3e02,1
+np.float64,0xf5c1b875eb837,0xf5c1b875eb837,1
+np.float64,0xa0f35c8141e8,0xa0f35c8141e8,1
+np.float64,0xffe24860b42490c1,0xc0862f54222f616e,1
+np.float64,0xffcd9ae8583b35d0,0xc08628181e643a42,1
+np.float64,0x7fe9b710c7736e21,0x4086320ec033490f,1
+np.float64,0x3fd2b9ca1d257394,0x3fd277e631f0c0b3,1
+np.float64,0x23559bfc46ab4,0x23559bfc46ab4,1
+np.float64,0x8002adf75e455bef,0x8002adf75e455bef,1
+np.float64,0xbfefa4d75cbf49af,0xbfebf392e51d6a1a,1
+np.float64,0xffcfef263e3fde4c,0xc08628b336adb611,1
+np.float64,0x80061acaa8ec3596,0x80061acaa8ec3596,1
+np.float64,0x7fc1b33be0236677,0x408623faaddcc17e,1
+np.float64,0x7fe3a84083675080,0x40862fe8972e41e1,1
+np.float64,0xbfe756c1276ead82,0xbfe5a6318b061e1b,1
+np.float64,0xbfae4b71b43c96e0,0xbfae46ed0b6203a4,1
+np.float64,0x800421c6d0a8438e,0x800421c6d0a8438e,1
+np.float64,0x8009ad56fe335aae,0x8009ad56fe335aae,1
+np.float64,0xbfe71afc976e35f9,0xbfe575d21f3d7193,1
+np.float64,0x7fec0bbe4c38177c,0x408632c0710f1d8a,1
+np.float64,0x750e1daeea1c4,0x750e1daeea1c4,1
+np.float64,0x800501d4240a03a9,0x800501d4240a03a9,1
+np.float64,0x800794955cef292b,0x800794955cef292b,1
+np.float64,0x3fdf8a87f5bf1510,0x3fde62f4f00cfa19,1
+np.float64,0xbfebebdbc7f7d7b8,0xbfe939e51ba1340c,1
+np.float64,0xbfe3a16217a742c4,0xbfe292039dd08a71,1
+np.float64,0x3fed6cd04c3ad9a1,0x3fea58995973f74b,1
+np.float64,0xffcad8787335b0f0,0xc086274fbb35dd37,1
+np.float64,0x3fcb178e3d362f1c,0x3fcae4c9f3e6dddc,1
+np.float64,0xbfcadc669435b8cc,0xbfcaaae7cf075420,1
+np.float64,0x7fe0e3906321c720,0x40862eb1bacc5c43,1
+np.float64,0xff8ad5edb035abc0,0xc0861120b6404d0b,1
+np.float64,0x3fe175a21562eb44,0x3fe0b13120a46549,1
+np.float64,0xbfeb4c4a5f769895,0xbfe8c1147f1c9d8f,1
+np.float64,0x7fca22f4e63445e9,0x40862718e9b4094e,1
+np.float64,0x3fe4269d0c684d3a,0x3fe3032aa2015c53,1
+np.float64,0x3fef551c09beaa38,0x3febbabe03f49c83,1
+np.float64,0xffd843df9fb087c0,0xc0862c0c52d5e5d9,1
+np.float64,0x7fc497e2ca292fc5,0x40862530bbd9fcc7,1
+np.float64,0x3fee02919efc0523,0x3feac655588a4acd,1
+np.float64,0x7fed1e52c0fa3ca5,0x4086330d4ddd8a2c,1
+np.float64,0xba04d4ef7409b,0xba04d4ef7409b,1
+np.float64,0x3fee22d0937c45a2,0x3feaddd4ca66b447,1
+np.float64,0xffeb2558cf764ab1,0xc086327da4e84053,1
+np.float64,0xbfe103d987e207b3,0xbfe04d04818ad1ff,1
+np.float64,0x3f9fd7fed03faffe,0x3f9fd6ae9a45be84,1
+np.float64,0x800a53ec4c34a7d9,0x800a53ec4c34a7d9,1
+np.float64,0xbfe2feb17f65fd63,0xbfe206b9d33a78a2,1
+np.float64,0x989bdd613139,0x989bdd613139,1
+np.float64,0xbfdd0ad3fb3a15a8,0xbfdc20c32a530741,1
+np.float64,0xbfc4222163284444,0xbfc40d1c612784b5,1
+np.float64,0xc30cf5c78619f,0xc30cf5c78619f,1
+np.float64,0x3fe913bd6732277b,0x3fe70912f76bad71,1
+np.float64,0x98f175f531e2f,0x98f175f531e2f,1
+np.float64,0x3fed8c1f717b183f,0x3fea6f9fb3af3423,1
+np.float64,0x7fee46b085bc8d60,0x4086335d269eb7e9,1
+np.float64,0x8007480f564e901f,0x8007480f564e901f,1
+np.float64,0xc9b96e179372e,0xc9b96e179372e,1
+np.float64,0x3fe44deac4289bd6,0x3fe32463a74a69e7,1
+np.float64,0x80021d6c5c243ad9,0x80021d6c5c243ad9,1
+np.float64,0xbfebc805a6f7900b,0xbfe91edcf65a1c19,1
+np.float64,0x80044748adc88e92,0x80044748adc88e92,1
+np.float64,0x4007ee44800fe,0x4007ee44800fe,1
+np.float64,0xbfe24307a4648610,0xbfe1648ad5c47b6f,1
+np.float64,0xbfee6d3a93fcda75,0xbfeb13e1a3196e78,1
+np.float64,0x3fe49a287f293451,0x3fe364a11b9f0068,1
+np.float64,0x80052b37ceaa5670,0x80052b37ceaa5670,1
+np.float64,0xbfd42be893a857d2,0xbfd3da05dac7c286,1
+np.float64,0xffb4bbe4ac2977c8,0xc0861fb31bda6956,1
+np.float64,0xbfc732a4142e6548,0xbfc7129a4eafa399,1
+np.float64,0x7fd0696791a0d2ce,0x408628eb7756cb9c,1
+np.float64,0x3fe46c8f8d68d91f,0x3fe33e3df16187c1,1
+np.float64,0x3fe3a28f1ce7451e,0x3fe293043238d08c,1
+np.float64,0xffedc4eb723b89d6,0xc086333a92258c15,1
+np.float64,0x8000d15b4c41a2b7,0x8000d15b4c41a2b7,1
+np.float64,0xffeb73450236e689,0xc08632947b0148ab,1
+np.float64,0xffe68cf4722d19e8,0xc0863101d08d77bd,1
+np.float64,0x800c70eb4698e1d7,0x800c70eb4698e1d7,1
+np.float64,0xffa94387ff529,0xffa94387ff529,1
+np.float64,0x7fe3835d996706ba,0x40862fd985ff8e7d,1
+np.float64,0x3fe55e476feabc8e,0x3fe408a15594ec52,1
+np.float64,0xffc69672222d2ce4,0xc08625ee0c4c0f6a,1
+np.float64,0xbf9d900b883b2020,0xbf9d8efe811d36df,1
+np.float64,0xbfdb9b9755b7372e,0xbfdad0f2aa2cb110,1
+np.float64,0xffeade6073b5bcc0,0xc08632689f17a25d,1
+np.float64,0xffd1d6a6baa3ad4e,0xc086299630a93a7b,1
+np.float64,0x7fd05ba25620b744,0x408628e4be1ef845,1
+np.float64,0xbfc7d422d52fa844,0xbfc7b170a61531bf,1
+np.float64,0x3fd5196797aa32d0,0x3fd4bc0f0e7d8e1d,1
+np.float64,0x617594a4c2eb3,0x617594a4c2eb3,1
+np.float64,0x7fd779bc4caef378,0x40862bc89271b882,1
+np.float64,0xffd2fb262ba5f64c,0xc0862a15561e9524,1
+np.float64,0x72fd661ae5fad,0x72fd661ae5fad,1
+np.float64,0x3fecf441f339e884,0x3fe9ff880d584f64,1
+np.float64,0x7fc3a8968827512c,0x408624d198b05c61,1
+np.float64,0x3fe7a25c56ef44b9,0x3fe5e32509a7c32d,1
+np.float64,0x7fd117d514222fa9,0x4086293ec640d5f2,1
+np.float64,0x3fe37dfe5ee6fbfc,0x3fe273d1bcaa1ef0,1
+np.float64,0xbfed4cd19d7a99a3,0xbfea41064cba4c8b,1
+np.float64,0x8003ff12aaa7fe26,0x8003ff12aaa7fe26,1
+np.float64,0x3fcbc3d1193787a2,0x3fcb8d39e3e88264,1
+np.float64,0xe9ba1a91d3744,0xe9ba1a91d3744,1
+np.float64,0x8002ab71998556e4,0x8002ab71998556e4,1
+np.float64,0x800110057922200c,0x800110057922200c,1
+np.float64,0xbfe3b7af19a76f5e,0xbfe2a502fc0a2882,1
+np.float64,0x7fd9de9d5e33bd3a,0x40862c8f73cccabf,1
+np.float64,0xbfba0f0a86341e18,0xbfba0392f44c2771,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x7fe5d162e96ba2c5,0x408630be2b15e01b,1
+np.float64,0x800b7f0eac76fe1e,0x800b7f0eac76fe1e,1
+np.float64,0xff98bed150317da0,0xc086160633164f5f,1
+np.float64,0x3fef91fd70ff23fb,0x3febe629709d0ae7,1
+np.float64,0x7fe5bea7f16b7d4f,0x408630b749f445e9,1
+np.float64,0xbfe3dc428467b885,0xbfe2c41ea93fab07,1
+np.float64,0xbfeba1fbfcf743f8,0xbfe9021b52851bb9,1
+np.float64,0x7fd2fb2108a5f641,0x40862a1553f45830,1
+np.float64,0x7feb8199a4370332,0x40863298a7169dad,1
+np.float64,0x800f97ff8d7f2fff,0x800f97ff8d7f2fff,1
+np.float64,0x3fd5e20b6b2bc417,0x3fd57a42bd1c0993,1
+np.float64,0x8006b4072dad680f,0x8006b4072dad680f,1
+np.float64,0x605dccf2c0bba,0x605dccf2c0bba,1
+np.float64,0x3fc705ed142e0bda,0x3fc6e69971d86f73,1
+np.float64,0xffd2ba1aad257436,0xc08629f9bc918f8b,1
+np.float64,0x8002954e23c52a9d,0x8002954e23c52a9d,1
+np.float64,0xbfecc65da7798cbb,0xbfe9dd745be18562,1
+np.float64,0x7fc66110482cc220,0x408625db0db57ef8,1
+np.float64,0x3fcd09446d3a1289,0x3fcccaf2dd0a41ea,1
+np.float64,0x3febe7095437ce13,0x3fe93642d1e73b2a,1
+np.float64,0x8004773c7da8ee7a,0x8004773c7da8ee7a,1
+np.float64,0x8001833241230665,0x8001833241230665,1
+np.float64,0x3fe6a262db6d44c6,0x3fe513b3dab5adce,1
+np.float64,0xe6282cc1cc506,0xe6282cc1cc506,1
+np.float64,0x800b9d8553973b0b,0x800b9d8553973b0b,1
+np.float64,0x3fdfbe0c7b3f7c19,0x3fde912375d867a8,1
+np.float64,0x7fd5ac11ebab5823,0x40862b24dfc6d08e,1
+np.float64,0x800e4b7cb1fc96f9,0x800e4b7cb1fc96f9,1
+np.float64,0x3fe14706da628e0e,0x3fe0883aec2a917a,1
+np.float64,0x7fc963f97532c7f2,0x408626dd9b0cafe1,1
+np.float64,0xbfe9c250b5b384a2,0xbfe791c5eabcb05d,1
+np.float64,0x3fe8d16e6c71a2dd,0x3fe6d4c7a33a0bf4,1
+np.float64,0x3fe474ae4628e95d,0x3fe34515c93f4733,1
+np.float64,0x3fbf3257ee3e64b0,0x3fbf1eb530e126ea,1
+np.float64,0x8005f089b3abe114,0x8005f089b3abe114,1
+np.float64,0x3fece07bccf9c0f8,0x3fe9f0dc228124d5,1
+np.float64,0xbfc52521632a4a44,0xbfc50ccebdf59c2c,1
+np.float64,0x7fdf53beb13ea77c,0x40862e177918195e,1
+np.float64,0x8003d9f6ad07b3ee,0x8003d9f6ad07b3ee,1
+np.float64,0xffeacf96bbb59f2d,0xc086326436b38b1a,1
+np.float64,0xdccaea29b995e,0xdccaea29b995e,1
+np.float64,0x5948d21eb291b,0x5948d21eb291b,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0x7fef6d2c543eda58,0x408633a98593cdf5,1
+np.float64,0x7feda454f47b48a9,0x40863331cb6dc9f7,1
+np.float64,0x3fdd377cecba6ef8,0x3fdc4968f74a9c83,1
+np.float64,0x800644096d4c8814,0x800644096d4c8814,1
+np.float64,0xbfe33ca15ae67942,0xbfe23be5de832bd8,1
+np.float64,0xffce9582bd3d2b04,0xc086285abdf9bf9d,1
+np.float64,0x3fe6621e86acc43d,0x3fe4df231bfa93e1,1
+np.float64,0xee7d19e9dcfa3,0xee7d19e9dcfa3,1
+np.float64,0x800be5997277cb33,0x800be5997277cb33,1
+np.float64,0x82069041040e,0x82069041040e,1
+np.float64,0x800d6efdc19addfc,0x800d6efdc19addfc,1
+np.float64,0x7fb27770ee24eee1,0x40861ec5ed91b839,1
+np.float64,0x3fd506064caa0c0d,0x3fd4a9a66353fefd,1
+np.float64,0xbfeca9b36bf95367,0xbfe9c81f03ba37b8,1
+np.float64,0xffeab1b7bab5636f,0xc086325b47f61f2b,1
+np.float64,0xffc99f5b2e333eb8,0xc08626f03b08b412,1
+np.float64,0x3fbf1a71bc3e34e3,0x3fbf06fbcaa5de58,1
+np.float64,0x3fe75015736ea02b,0x3fe5a0cd8d763d8d,1
+np.float64,0xffe6a7442fad4e88,0xc086310b20addba4,1
+np.float64,0x3fe5d62ff86bac60,0x3fe46c033195bf28,1
+np.float64,0x7fd0b1f0362163df,0x4086290e857dc1be,1
+np.float64,0xbe0353737c06b,0xbe0353737c06b,1
+np.float64,0x7fec912d8739225a,0x408632e627704635,1
+np.float64,0xded8ba2fbdb18,0xded8ba2fbdb18,1
+np.float64,0x7fec0b53fdf816a7,0x408632c052bc1bd2,1
+np.float64,0x7fe9640d12b2c819,0x408631f4c2ba54d8,1
+np.float64,0x800be714eeb7ce2a,0x800be714eeb7ce2a,1
+np.float64,0xbfcf444a793e8894,0xbfcef6c126b54853,1
+np.float64,0xffeb20cf1bf6419e,0xc086327c4e6ffe80,1
+np.float64,0xc07de22180fd,0xc07de22180fd,1
+np.float64,0xffed129d387a253a,0xc086330a15ad0adb,1
+np.float64,0x3fd9e94fedb3d2a0,0x3fd94049924706a8,1
+np.float64,0x7fe6ba488c2d7490,0x40863111d51e7861,1
+np.float64,0xbfebbdf25db77be5,0xbfe91740ad7ba521,1
+np.float64,0x7fbc6c3c4838d878,0x40862239160cb613,1
+np.float64,0xbfefa82ecebf505e,0xbfebf5f31957dffd,1
+np.float64,0x800bebeb7ad7d7d7,0x800bebeb7ad7d7d7,1
+np.float64,0x7fecccc6f8f9998d,0x408632f6c6da8aac,1
+np.float64,0xcbe4926197ca,0xcbe4926197ca,1
+np.float64,0x2c5d9fd858bb5,0x2c5d9fd858bb5,1
+np.float64,0xbfe9fb021073f604,0xbfe7bddc61f1151a,1
+np.float64,0xbfebb18572f7630b,0xbfe90ddc5002313f,1
+np.float64,0x13bb0d3227763,0x13bb0d3227763,1
+np.float64,0x3feefa5e5cbdf4bd,0x3feb79b9e8ce16bf,1
+np.float64,0x3fc97f086132fe10,0x3fc9549fc8e15ecb,1
+np.float64,0xffe70887c06e110f,0xc086312d30fd31cf,1
+np.float64,0xa00c113540182,0xa00c113540182,1
+np.float64,0x800950984772a131,0x800950984772a131,1
+np.float64,0x1,0x1,1
+np.float64,0x3fd83b4026b07680,0x3fd7afdc659d9a34,1
+np.float64,0xbfe32348fbe64692,0xbfe226292a706a1a,1
+np.float64,0x800b894dcc77129c,0x800b894dcc77129c,1
+np.float64,0xeb2ca419d6595,0xeb2ca419d6595,1
+np.float64,0xbff0000000000000,0xbfec34366179d427,1
+np.float64,0x3feb269e99f64d3d,0x3fe8a4634b927a21,1
+np.float64,0xbfe83149d7706294,0xbfe655a2b245254e,1
+np.float64,0xbfe6eef3ca6ddde8,0xbfe5521310e24d16,1
+np.float64,0x3fea89a4b7b51349,0x3fe82c1fc69edcec,1
+np.float64,0x800f2a8bf17e5518,0x800f2a8bf17e5518,1
+np.float64,0x800f71fac29ee3f6,0x800f71fac29ee3f6,1
+np.float64,0xe7cb31f1cf966,0xe7cb31f1cf966,1
+np.float64,0x3b0f8752761f2,0x3b0f8752761f2,1
+np.float64,0x3fea27dea3744fbd,0x3fe7e0a4705476b2,1
+np.float64,0xbfa97c019c32f800,0xbfa97950c1257b92,1
+np.float64,0xffeff13647ffe26c,0xc08633cadc7105ed,1
+np.float64,0x3feee162353dc2c4,0x3feb67c2da0fbce8,1
+np.float64,0x80088c0807911810,0x80088c0807911810,1
+np.float64,0x3fe936ab1db26d56,0x3fe72489bc69719d,1
+np.float64,0xa2f84bd545f0a,0xa2f84bd545f0a,1
+np.float64,0xbfed445ed27a88be,0xbfea3acac0aaf482,1
+np.float64,0x800faf3e69df5e7d,0x800faf3e69df5e7d,1
+np.float64,0x3fc145a330228b46,0x3fc13853f11b1c90,1
+np.float64,0xbfe25ec5abe4bd8c,0xbfe17c9e9b486f07,1
+np.float64,0x3fe119b160e23363,0x3fe0604b10178966,1
+np.float64,0x7fe0cbf2836197e4,0x40862ea6831e5f4a,1
+np.float64,0x3fe75dd3b4eebba8,0x3fe5abe80fd628fb,1
+np.float64,0x3f7c391000387220,0x3f7c39015d8f3a36,1
+np.float64,0x899d9cad133b4,0x899d9cad133b4,1
+np.float64,0x3fe5f0e34febe1c6,0x3fe4820cefe138fc,1
+np.float64,0x7fe060dfdba0c1bf,0x40862e72de8afcd0,1
+np.float64,0xbfae42f7103c85f0,0xbfae3e7630819c60,1
+np.float64,0x35f1f2c06be5,0x35f1f2c06be5,1
+np.float64,0xffc5194d362a329c,0xc086256266c8b7ad,1
+np.float64,0xbfda034f1b34069e,0xbfd95860a44c43ad,1
+np.float64,0x32bcebca6579e,0x32bcebca6579e,1
+np.float64,0xbfd1751ebca2ea3e,0xbfd13f79f45bf75c,1
+np.float64,0x3fee4fa1e5bc9f44,0x3feafe69e0d6c1c7,1
+np.float64,0x7f9c03cd5038079a,0x4086170459172900,1
+np.float64,0x7fc5fb6d6d2bf6da,0x408625b6651cfc73,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xffd1a8162ca3502c,0xc0862981333931ad,1
+np.float64,0x7fc415c198282b82,0x408624fd8c155d1b,1
+np.float64,0xffda37fbe7b46ff8,0xc0862caae7865c43,1
+np.float64,0xbfef4312257e8624,0xbfebadd89f3ee31c,1
+np.float64,0xbfec45e1fd788bc4,0xbfe97d8b14db6274,1
+np.float64,0xbfe6fdcfd26dfba0,0xbfe55e25b770d00a,1
+np.float64,0x7feb66d424f6cda7,0x40863290d9ff7ea2,1
+np.float64,0x8b08a29916115,0x8b08a29916115,1
+np.float64,0xffe12ca25c625944,0xc0862ed40d769f72,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x804925e100925,0x804925e100925,1
+np.float64,0xcebf3e019d9,0xcebf3e019d9,1
+np.float64,0xbfd5d75d4aabaeba,0xbfd57027671dedf7,1
+np.float64,0x800b829ecd37053e,0x800b829ecd37053e,1
+np.float64,0x800b1205daf6240c,0x800b1205daf6240c,1
+np.float64,0x3fdf7e9889befd31,0x3fde583fdff406c3,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x3fdc09760d3812ec,0x3fdb35b55c8090c6,1
+np.float64,0x800c4d99e4f89b34,0x800c4d99e4f89b34,1
+np.float64,0xffbaa6772e354cf0,0xc08621b535badb2f,1
+np.float64,0xbfc91188fd322310,0xbfc8e933b5d25ea7,1
+np.float64,0xffc1b947f4237290,0xc08623fd69164251,1
+np.float64,0x3fc6ab3b252d5678,0x3fc68d50bbac106d,1
+np.float64,0xffac8eb968391d70,0xc0861cb734833355,1
+np.float64,0xffe29a35c365346b,0xc0862f77a1aed6d8,1
+np.float64,0x3fde14b9543c2973,0x3fdd122697779015,1
+np.float64,0xbf10f5400021e000,0xbf10f53fffef1383,1
+np.float64,0xffe0831aa3e10635,0xc0862e838553d0ca,1
+np.float64,0x3fccbadbcf3975b8,0x3fcc7e768d0154ec,1
+np.float64,0x3fe092ef66e125df,0x3fdfd212a7116c9b,1
+np.float64,0xbfd727f039ae4fe0,0xbfd6adad040b2334,1
+np.float64,0xbfe4223b93a84477,0xbfe2ff7587364db4,1
+np.float64,0x3f4e5c3a003cb874,0x3f4e5c39b75c70f7,1
+np.float64,0x800e76b1a87ced63,0x800e76b1a87ced63,1
+np.float64,0x3fed2b7368fa56e7,0x3fea2863b9131b8c,1
+np.float64,0xffadb76ec43b6ee0,0xc0861d08ae79f20c,1
+np.float64,0x800b6a0cd1f6d41a,0x800b6a0cd1f6d41a,1
+np.float64,0xffee6aa943fcd552,0xc0863366a24250d5,1
+np.float64,0xbfe68cbc4e6d1978,0xbfe502040591aa5b,1
+np.float64,0xff859a38002b3480,0xc0860f64726235cc,1
+np.float64,0x3474d13e68e9b,0x3474d13e68e9b,1
+np.float64,0xffc11d49f6223a94,0xc08623b5c2df9712,1
+np.float64,0x800d82d019bb05a0,0x800d82d019bb05a0,1
+np.float64,0xbfe2af0192255e03,0xbfe1c20e38106388,1
+np.float64,0x3fe97d13c032fa28,0x3fe75bba11a65f86,1
+np.float64,0x7fcd457e133a8afb,0x40862800e80f5863,1
+np.float64,0x9d7254cf3ae4b,0x9d7254cf3ae4b,1
+np.float64,0x8003047675a608ee,0x8003047675a608ee,1
+np.float64,0x3fead6cd7d75ad9a,0x3fe8676138e5ff93,1
+np.float64,0x3fea6ee3b0f4ddc7,0x3fe817838a2bcbe3,1
+np.float64,0x3feed0edea7da1dc,0x3feb5bea3cb12fe2,1
+np.float64,0x88003fe510008,0x88003fe510008,1
+np.float64,0x3fe64cadc56c995c,0x3fe4cd8ead87fc79,1
+np.float64,0xaae30c5955c62,0xaae30c5955c62,1
+np.float64,0x7fc8c97cae3192f8,0x408626ac579f4fc5,1
+np.float64,0xbfc2bc0e8b25781c,0xbfc2ab188fdab7dc,1
+np.float64,0xc8f8e5e791f1d,0xc8f8e5e791f1d,1
+np.float64,0x3fecfaa5d6f9f54c,0x3fea0444dabe5a15,1
+np.float64,0xbfeb93740ff726e8,0xbfe8f71a9ab13baf,1
+np.float64,0xffd951236c32a246,0xc0862c633a4661eb,1
+np.float64,0x3fddbc5fcd3b78c0,0x3fdcc21c1a0a9246,1
+np.float64,0xbfd242443da48488,0xbfd20512d91f7924,1
+np.float64,0x2a3689b2546d2,0x2a3689b2546d2,1
+np.float64,0xffe24c67382498ce,0xc0862f55e4ea6283,1
+np.float64,0x800cbfce22197f9c,0x800cbfce22197f9c,1
+np.float64,0x8002269428044d29,0x8002269428044d29,1
+np.float64,0x7fd44babbd289756,0x40862a9e79b51c3b,1
+np.float64,0x3feea056a27d40ad,0x3feb38dcddb682f0,1
+np.float64,0xffeca8174b39502e,0xc08632ec8f88a5b2,1
+np.float64,0x7fbe0853a03c10a6,0x408622a9e8d53a9e,1
+np.float64,0xbfa9704b2432e090,0xbfa96d9dfc8c0cc2,1
+np.float64,0x800bda28fab7b452,0x800bda28fab7b452,1
+np.float64,0xbfb0ffa2f621ff48,0xbfb0fc71f405e82a,1
+np.float64,0xbfe66c04216cd808,0xbfe4e73ea3b58cf6,1
+np.float64,0x3fe336ea5d266dd5,0x3fe236ffcf078c62,1
+np.float64,0xbfe7729ae6aee536,0xbfe5bcad4b8ac62d,1
+np.float64,0x558cfc96ab1a0,0x558cfc96ab1a0,1
+np.float64,0xbfe7d792aaefaf26,0xbfe60de1b8f0279d,1
+np.float64,0xffd19ef6bda33dee,0xc086297d0ffee3c7,1
+np.float64,0x666b3ab4ccd68,0x666b3ab4ccd68,1
+np.float64,0xffa3d89e3c27b140,0xc08619cdeb2c1e49,1
+np.float64,0xbfb1728f7f62f,0xbfb1728f7f62f,1
+np.float64,0x3fc76319f32ec634,0x3fc74247bd005e20,1
+np.float64,0xbfbf1caee23e3960,0xbfbf0934c13d70e2,1
+np.float64,0x7fe79626f32f2c4d,0x4086315dcc68a5cb,1
+np.float64,0xffee78c4603cf188,0xc086336a572c05c2,1
+np.float64,0x3fce546eda3ca8de,0x3fce0d8d737fd31d,1
+np.float64,0xa223644d4446d,0xa223644d4446d,1
+np.float64,0x3fecea878b79d510,0x3fe9f850d50973f6,1
+np.float64,0x3fc20e0ea1241c1d,0x3fc1fedda87c5e75,1
+np.float64,0xffd1c5a99ca38b54,0xc086298e8e94cd47,1
+np.float64,0x7feb2c299d765852,0x4086327fa6db2808,1
+np.float64,0xcaf9d09595f3a,0xcaf9d09595f3a,1
+np.float64,0xbfe293bf21e5277e,0xbfe1aa7f6ac274ef,1
+np.float64,0xbfbaa3c8ce354790,0xbfba97891df19c01,1
+np.float64,0x3faf5784543eaf09,0x3faf5283acc7d71d,1
+np.float64,0x7fc014f8f62029f1,0x40862336531c662d,1
+np.float64,0xbfe0d9ac2d61b358,0xbfe027bce36699ca,1
+np.float64,0x8003e112ff27c227,0x8003e112ff27c227,1
+np.float64,0xffec0d4151381a82,0xc08632c0df718dd0,1
+np.float64,0x7fa2156fb0242ade,0x4086190f7587d708,1
+np.float64,0xd698358dad307,0xd698358dad307,1
+np.float64,0xbfed8d1b0efb1a36,0xbfea70588ef9ba18,1
+np.float64,0xbfd2cae6a92595ce,0xbfd28851e2185dee,1
+np.float64,0xffe7a36764ef46ce,0xc086316249c9287a,1
+np.float64,0xbfdb8ad8e5b715b2,0xbfdac19213c14315,1
+np.float64,0x3b5dba6076bc,0x3b5dba6076bc,1
+np.float64,0x800e6e8347bcdd07,0x800e6e8347bcdd07,1
+np.float64,0x800bea9f3fb7d53f,0x800bea9f3fb7d53f,1
+np.float64,0x7fb6d0e5fc2da1cb,0x4086207714c4ab85,1
+np.float64,0x0,0x0,1
+np.float64,0xbfe2aa1e1465543c,0xbfe1bdd550ef2966,1
+np.float64,0x7fd3f6a47fa7ed48,0x40862a7caea33055,1
+np.float64,0x800094e292c129c6,0x800094e292c129c6,1
+np.float64,0x800e1500ecbc2a02,0x800e1500ecbc2a02,1
+np.float64,0xbfd8ff6f97b1fee0,0xbfd866f84346ecdc,1
+np.float64,0x681457d0d028c,0x681457d0d028c,1
+np.float64,0x3feed0b5987da16b,0x3feb5bc1ab424984,1
+np.float64,0x3fdbcb34cdb79668,0x3fdafca540f32c06,1
+np.float64,0xbfdc9eacdcb93d5a,0xbfdbbe274aa8aeb0,1
+np.float64,0xffe6e35d526dc6ba,0xc08631203df38ed2,1
+np.float64,0x3fcac1cc65358398,0x3fca90de41889613,1
+np.float64,0xbfebf07a55b7e0f5,0xbfe93d6007db0c67,1
+np.float64,0xbfd7a7b1e7af4f64,0xbfd725a9081c22cb,1
+np.float64,0x800232bd7de4657c,0x800232bd7de4657c,1
+np.float64,0x7fb1dae43c23b5c7,0x40861e80f5c0a64e,1
+np.float64,0x8013ded70027c,0x8013ded70027c,1
+np.float64,0x7fc4373a59286e74,0x4086250ad60575d0,1
+np.float64,0xbfe9980fd6733020,0xbfe770d1352d0ed3,1
+np.float64,0x8008a66b8dd14cd7,0x8008a66b8dd14cd7,1
+np.float64,0xbfaebc67f83d78d0,0xbfaeb7b015848478,1
+np.float64,0xffd0c52762218a4e,0xc0862917b564afc6,1
+np.float64,0xbfd503860aaa070c,0xbfd4a74618441561,1
+np.float64,0x5bdacabcb7b5a,0x5bdacabcb7b5a,1
+np.float64,0xf3623cffe6c48,0xf3623cffe6c48,1
+np.float64,0x7fe16c6c7ea2d8d8,0x40862ef18d90201f,1
+np.float64,0x3ff0000000000000,0x3fec34366179d427,1
+np.float64,0x7fe19cbc84233978,0x40862f079dcbc169,1
+np.float64,0x3fcfd3d6933fa7ad,0x3fcf822187907f6b,1
+np.float64,0x8007d65d672facbc,0x8007d65d672facbc,1
+np.float64,0xffca6115aa34c22c,0xc086272bd7728750,1
+np.float64,0xbfe77ab1556ef562,0xbfe5c332fb55b66e,1
+np.float64,0x8001ed797c23daf4,0x8001ed797c23daf4,1
+np.float64,0x7fdd3d16cb3a7a2d,0x40862d8a2c869281,1
+np.float64,0x75f36beaebe6e,0x75f36beaebe6e,1
+np.float64,0xffda3c2798b47850,0xc0862cac2d3435df,1
+np.float64,0xbfa37cc3c426f980,0xbfa37b8f9d3ec4b7,1
+np.float64,0x80030ea8bd061d52,0x80030ea8bd061d52,1
+np.float64,0xffe41f7617683eec,0xc08630188a3e135e,1
+np.float64,0x800e40590dfc80b2,0x800e40590dfc80b2,1
+np.float64,0x3fea950d80f52a1c,0x3fe834e74481e66f,1
+np.float64,0xffec95e39a792bc6,0xc08632e779150084,1
+np.float64,0xbfd54310ecaa8622,0xbfd4e39c4d767002,1
+np.float64,0xffd40c9971a81932,0xc0862a85764eb2f4,1
+np.float64,0xb0a2230761445,0xb0a2230761445,1
+np.float64,0x80092973661252e7,0x80092973661252e7,1
+np.float64,0x7fb13b030a227605,0x40861e380aeb5549,1
+np.float64,0x3fbd5d8db23abb1b,0x3fbd4d2a0b94af36,1
+np.float64,0xbfd6cb8567ad970a,0xbfd656b19ab8fa61,1
+np.float64,0xbfe7c0fd346f81fa,0xbfe5fbc28807c794,1
+np.float64,0xffd586579eab0cb0,0xc0862b16e65c0754,1
+np.float64,0x8000e52da461ca5c,0x8000e52da461ca5c,1
+np.float64,0x3fc69d17112d3a2e,0x3fc67f63fe1fea1c,1
+np.float64,0x3fd36ba892a6d750,0x3fd3225be1fa87af,1
+np.float64,0x7fe2850598e50a0a,0x40862f6e7fcd6c1a,1
+np.float64,0x80074a4dacce949c,0x80074a4dacce949c,1
+np.float64,0x3fe25eea4d64bdd5,0x3fe17cbe5fefbd4e,1
+np.float64,0xbfe250c08be4a181,0xbfe17074c520e5de,1
+np.float64,0x8000f5665481eacd,0x8000f5665481eacd,1
+np.float64,0x7fdb3172f83662e5,0x40862cf5a46764f1,1
+np.float64,0x7fd8ed82d631db05,0x40862c4380658afa,1
+np.float64,0xffec5163feb8a2c7,0xc08632d4366aab06,1
+np.float64,0x800ff14ac6ffe296,0x800ff14ac6ffe296,1
+np.float64,0xbfc7cc7aea2f98f4,0xbfc7a9e9cb38f023,1
+np.float64,0xbfd50cdfc32a19c0,0xbfd4b0282b452fb2,1
+np.float64,0xbfec256d75b84adb,0xbfe965328c1860b2,1
+np.float64,0xffe860c4cdb0c189,0xc08631a164b7059a,1
+np.float64,0xbfe23de164247bc3,0xbfe16011bffa4651,1
+np.float64,0xcc96b39d992d7,0xcc96b39d992d7,1
+np.float64,0xbfec43acf938875a,0xbfe97be3a13b50c3,1
+np.float64,0xc4f587bb89eb1,0xc4f587bb89eb1,1
+np.float64,0xbfcd971d9a3b2e3c,0xbfcd5537ad15dab4,1
+np.float64,0xffcaf00d8035e01c,0xc0862756bf2cdf8f,1
+np.float64,0x8008c26f93f184e0,0x8008c26f93f184e0,1
+np.float64,0xfff0000000000000,0xfff0000000000000,1
+np.float64,0xbfd13552c3a26aa6,0xbfd101e5e252eb7b,1
+np.float64,0x7fe497235e292e46,0x4086304792fb423a,1
+np.float64,0x7fd6dc0192adb802,0x40862b921a5e935d,1
+np.float64,0xf16d49a1e2da9,0xf16d49a1e2da9,1
+np.float64,0xffef6b1b71bed636,0xc08633a8feed0178,1
+np.float64,0x7fe15ec62f62bd8b,0x40862eeb46b193dc,1
+np.float64,0x3fef4369ec7e86d4,0x3febae1768be52cc,1
+np.float64,0x4f84e8e89f09e,0x4f84e8e89f09e,1
+np.float64,0xbfe19e71ade33ce4,0xbfe0d4fad05e0ebc,1
+np.float64,0xbfe7e1df1defc3be,0xbfe616233e15b3d0,1
+np.float64,0x7fe9349afdb26935,0x408631e5c1c5c6cd,1
+np.float64,0xff90c35ac82186c0,0xc08612e896a06467,1
+np.float64,0xbfe88bf8807117f1,0xbfe69dc786464422,1
+np.float64,0x3feaf9ff6475f3fe,0x3fe8825132410d18,1
+np.float64,0x9ff487a33fe91,0x9ff487a33fe91,1
+np.float64,0x7fedb30159bb6602,0x40863335c0419322,1
+np.float64,0x800bddf6ed77bbee,0x800bddf6ed77bbee,1
+np.float64,0x3fd919df133233be,0x3fd87f963b9584ce,1
+np.float64,0x7fd64da3b52c9b46,0x40862b5fa9dd3b6d,1
+np.float64,0xbfce288db43c511c,0xbfcde2d953407ae8,1
+np.float64,0x3fe88bc72771178e,0x3fe69da05e9e9b4e,1
+np.float64,0x800feafe259fd5fc,0x800feafe259fd5fc,1
+np.float64,0x3febbbff4a7777ff,0x3fe915c78f6a280f,1
+np.float64,0xbfefbde4417f7bc9,0xbfec055f4fb2cd21,1
+np.float64,0xf13ca103e2794,0xf13ca103e2794,1
+np.float64,0x3fe6423884ec8471,0x3fe4c4f97eaa876a,1
+np.float64,0x800ca01c8cb94039,0x800ca01c8cb94039,1
+np.float64,0x3fbc5073f638a0e0,0x3fbc41c163ac0001,1
+np.float64,0xbfda0d83cfb41b08,0xbfd961d4cacc82cf,1
+np.float64,0x800f37b8f17e6f72,0x800f37b8f17e6f72,1
+np.float64,0x7fe0b08cd7216119,0x40862e996becb771,1
+np.float64,0xffd4222a40a84454,0xc0862a8e0c984917,1
+np.float64,0x7feb3df98ff67bf2,0x40863284e3a86ee6,1
+np.float64,0x8001d5d291e3aba6,0x8001d5d291e3aba6,1
+np.float64,0xbfd3c21629a7842c,0xbfd3750095a5894a,1
+np.float64,0xbfd069eb48a0d3d6,0xbfd03d2b1c2ae9db,1
+np.float64,0xffeb1be2973637c4,0xc086327ada954662,1
+np.float64,0x3fc659f97e2cb3f3,0x3fc63d497a451f10,1
+np.float64,0xbfeb624bc776c498,0xbfe8d1cf7c0626ca,1
+np.float64,0xffeedf26e23dbe4d,0xc08633850baab425,1
+np.float64,0xffe70da48a6e1b48,0xc086312ef75d5036,1
+np.float64,0x2b4f4830569ea,0x2b4f4830569ea,1
+np.float64,0xffe82e7fcfb05cff,0xc0863190d4771f75,1
+np.float64,0x3fcc2c1fd5385840,0x3fcbf3211ddc5123,1
+np.float64,0x7fe22ced5a6459da,0x40862f481629ee6a,1
+np.float64,0x7fe13d2895e27a50,0x40862edbbc411899,1
+np.float64,0x3fd54c4280aa9884,0x3fd4ec55a946c5d7,1
+np.float64,0xffd75b8e01aeb71c,0xc0862bbe42d76e5e,1
+np.float64,0x7f1d5376fe3ab,0x7f1d5376fe3ab,1
+np.float64,0x3fe6ec6c902dd8d9,0x3fe55004f35192bd,1
+np.float64,0x5634504aac68b,0x5634504aac68b,1
+np.float64,0x3feedb0d83bdb61b,0x3feb633467467ce6,1
+np.float64,0x3fddb1c0dcbb6380,0x3fdcb87a02daf1fa,1
+np.float64,0xbfa832da443065b0,0xbfa8308c70257209,1
+np.float64,0x87a9836b0f531,0x87a9836b0f531,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctan.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctan.csv
new file mode 100644
index 0000000..c03e144
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctan.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x3f338252,0x3f1c8d9c,3
+np.float32,0x7e569df2,0x3fc90fdb,3
+np.float32,0xbf347e25,0xbf1d361f,3
+np.float32,0xbf0a654e,0xbefdbfd2,3
+np.float32,0x8070968e,0x8070968e,3
+np.float32,0x803cfb27,0x803cfb27,3
+np.float32,0x8024362e,0x8024362e,3
+np.float32,0xfd55dca0,0xbfc90fdb,3
+np.float32,0x592b82,0x592b82,3
+np.float32,0x802eb8e1,0x802eb8e1,3
+np.float32,0xbc5fef40,0xbc5febae,3
+np.float32,0x3f1f6ce8,0x3f0e967c,3
+np.float32,0x20bedc,0x20bedc,3
+np.float32,0xbf058860,0xbef629c7,3
+np.float32,0x311504,0x311504,3
+np.float32,0xbd23f560,0xbd23defa,3
+np.float32,0x800ff4e8,0x800ff4e8,3
+np.float32,0x355009,0x355009,3
+np.float32,0x3f7be42e,0x3f46fdb3,3
+np.float32,0xbf225f7c,0xbf10b364,3
+np.float32,0x8074fa9e,0x8074fa9e,3
+np.float32,0xbea4b418,0xbe9f59ce,3
+np.float32,0xbe909c14,0xbe8cf045,3
+np.float32,0x80026bee,0x80026bee,3
+np.float32,0x3d789c20,0x3d784e25,3
+np.float32,0x7f56a4ba,0x3fc90fdb,3
+np.float32,0xbf70d141,0xbf413db7,3
+np.float32,0xbf2c4886,0xbf17a505,3
+np.float32,0x7e2993bf,0x3fc90fdb,3
+np.float32,0xbe2c8a30,0xbe2aef28,3
+np.float32,0x803f82d9,0x803f82d9,3
+np.float32,0x3f062fbc,0x3ef730a1,3
+np.float32,0x3f349ee0,0x3f1d4bfa,3
+np.float32,0x3eccfb69,0x3ec2f9e8,3
+np.float32,0x7e8a85dd,0x3fc90fdb,3
+np.float32,0x25331,0x25331,3
+np.float32,0x464f19,0x464f19,3
+np.float32,0x8035c818,0x8035c818,3
+np.float32,0x802e5799,0x802e5799,3
+np.float32,0x64e1c0,0x64e1c0,3
+np.float32,0x701cc2,0x701cc2,3
+np.float32,0x265c57,0x265c57,3
+np.float32,0x807a053f,0x807a053f,3
+np.float32,0x3bd2c412,0x3bd2c354,3
+np.float32,0xff28f1c8,0xbfc90fdb,3
+np.float32,0x7f08f08b,0x3fc90fdb,3
+np.float32,0x800c50e4,0x800c50e4,3
+np.float32,0x369674,0x369674,3
+np.float32,0xbf5b7db3,0xbf3571bf,3
+np.float32,0x7edcf5e2,0x3fc90fdb,3
+np.float32,0x800e5d4b,0x800e5d4b,3
+np.float32,0x80722554,0x80722554,3
+np.float32,0x693f33,0x693f33,3
+np.float32,0x800844e4,0x800844e4,3
+np.float32,0xbf111b82,0xbf0402ec,3
+np.float32,0x7df9c9ac,0x3fc90fdb,3
+np.float32,0xbf6619a6,0xbf3b6f57,3
+np.float32,0x8002fafe,0x8002fafe,3
+np.float32,0xfe1e67f8,0xbfc90fdb,3
+np.float32,0x3f7f4bf8,0x3f48b5b7,3
+np.float32,0x7f017b20,0x3fc90fdb,3
+np.float32,0x2d9b07,0x2d9b07,3
+np.float32,0x803aa174,0x803aa174,3
+np.float32,0x7d530336,0x3fc90fdb,3
+np.float32,0x80662195,0x80662195,3
+np.float32,0xfd5ebcf0,0xbfc90fdb,3
+np.float32,0xbe7b8dcc,0xbe76ab59,3
+np.float32,0x7f2bacaf,0x3fc90fdb,3
+np.float32,0x3f194fc4,0x3f0a229e,3
+np.float32,0x7ee21cdf,0x3fc90fdb,3
+np.float32,0x3f5a17fc,0x3f34a307,3
+np.float32,0x7f100c58,0x3fc90fdb,3
+np.float32,0x7e9128f5,0x3fc90fdb,3
+np.float32,0xbf2107c6,0xbf0fbdb4,3
+np.float32,0xbd29c800,0xbd29af22,3
+np.float32,0xbf5af499,0xbf3522a6,3
+np.float32,0x801bde44,0x801bde44,3
+np.float32,0xfeb4761a,0xbfc90fdb,3
+np.float32,0x3d88aa1b,0x3d887650,3
+np.float32,0x7eba5e0b,0x3fc90fdb,3
+np.float32,0x803906bd,0x803906bd,3
+np.float32,0x80101512,0x80101512,3
+np.float32,0x7e898f83,0x3fc90fdb,3
+np.float32,0x806406d3,0x806406d3,3
+np.float32,0x7ed20fc0,0x3fc90fdb,3
+np.float32,0x20827d,0x20827d,3
+np.float32,0x3f361359,0x3f1e43fe,3
+np.float32,0xfe4ef8d8,0xbfc90fdb,3
+np.float32,0x805e7d2d,0x805e7d2d,3
+np.float32,0xbe4316b0,0xbe40c745,3
+np.float32,0xbf0a1c06,0xbefd4e5a,3
+np.float32,0x3e202860,0x3e1edee1,3
+np.float32,0xbeb32a2c,0xbeac5899,3
+np.float32,0xfe528838,0xbfc90fdb,3
+np.float32,0x2f73e2,0x2f73e2,3
+np.float32,0xbe16e010,0xbe15cc27,3
+np.float32,0x3f50d6c5,0x3f2f2d75,3
+np.float32,0xbe88a6a2,0xbe8589c7,3
+np.float32,0x3ee36060,0x3ed5fb36,3
+np.float32,0x6c978b,0x6c978b,3
+np.float32,0x7f1b735f,0x3fc90fdb,3
+np.float32,0x3dad8256,0x3dad1885,3
+np.float32,0x807f5094,0x807f5094,3
+np.float32,0x65c358,0x65c358,3
+np.float32,0xff315ce4,0xbfc90fdb,3
+np.float32,0x7411a6,0x7411a6,3
+np.float32,0x80757b04,0x80757b04,3
+np.float32,0x3eec73a6,0x3edd82f4,3
+np.float32,0xfe9f69e8,0xbfc90fdb,3
+np.float32,0x801f4fa8,0x801f4fa8,3
+np.float32,0xbf6f2fae,0xbf405f79,3
+np.float32,0xfea206b6,0xbfc90fdb,3
+np.float32,0x3f257301,0x3f12e1ee,3
+np.float32,0x7ea6a506,0x3fc90fdb,3
+np.float32,0x80800000,0x80800000,3
+np.float32,0xff735c2d,0xbfc90fdb,3
+np.float32,0x80197f95,0x80197f95,3
+np.float32,0x7f4a354f,0x3fc90fdb,3
+np.float32,0xff320c00,0xbfc90fdb,3
+np.float32,0x3f2659de,0x3f138484,3
+np.float32,0xbe5451bc,0xbe515a52,3
+np.float32,0x3f6e228c,0x3f3fcf7c,3
+np.float32,0x66855a,0x66855a,3
+np.float32,0x8034b3a3,0x8034b3a3,3
+np.float32,0xbe21a2fc,0xbe20505d,3
+np.float32,0x7f79e2dc,0x3fc90fdb,3
+np.float32,0xbe19a8e0,0xbe18858c,3
+np.float32,0x10802c,0x10802c,3
+np.float32,0xfeee579e,0xbfc90fdb,3
+np.float32,0x3f3292c8,0x3f1becc0,3
+np.float32,0xbf595a71,0xbf34350a,3
+np.float32,0xbf7c3373,0xbf4725f4,3
+np.float32,0xbdd30938,0xbdd24b36,3
+np.float32,0x153a17,0x153a17,3
+np.float32,0x807282a0,0x807282a0,3
+np.float32,0xfe817322,0xbfc90fdb,3
+np.float32,0x3f1b3628,0x3f0b8771,3
+np.float32,0x41be8f,0x41be8f,3
+np.float32,0x7f4a8343,0x3fc90fdb,3
+np.float32,0x3dc4ea2b,0x3dc44fae,3
+np.float32,0x802aac25,0x802aac25,3
+np.float32,0xbf20e1d7,0xbf0fa284,3
+np.float32,0xfd91a1b0,0xbfc90fdb,3
+np.float32,0x3f0d5476,0x3f012265,3
+np.float32,0x21c916,0x21c916,3
+np.float32,0x807df399,0x807df399,3
+np.float32,0x7e207b4c,0x3fc90fdb,3
+np.float32,0x8055f8ff,0x8055f8ff,3
+np.float32,0x7edf3b01,0x3fc90fdb,3
+np.float32,0x803a8df3,0x803a8df3,3
+np.float32,0x3ce3b002,0x3ce3a101,3
+np.float32,0x3f62dd54,0x3f39a248,3
+np.float32,0xff33ae10,0xbfc90fdb,3
+np.float32,0x7e3de69d,0x3fc90fdb,3
+np.float32,0x8024581e,0x8024581e,3
+np.float32,0xbf4ac99d,0xbf2b807a,3
+np.float32,0x3f157d19,0x3f074d8c,3
+np.float32,0xfed383f4,0xbfc90fdb,3
+np.float32,0xbf5a39fa,0xbf34b6b8,3
+np.float32,0x800d757d,0x800d757d,3
+np.float32,0x807d606b,0x807d606b,3
+np.float32,0x3e828f89,0x3e7fac2d,3
+np.float32,0x7a6604,0x7a6604,3
+np.float32,0x7dc7e72b,0x3fc90fdb,3
+np.float32,0x80144146,0x80144146,3
+np.float32,0x7c2eed69,0x3fc90fdb,3
+np.float32,0x3f5b4d8c,0x3f3555fc,3
+np.float32,0xfd8b7778,0xbfc90fdb,3
+np.float32,0xfc9d9140,0xbfc90fdb,3
+np.float32,0xbea265d4,0xbe9d4232,3
+np.float32,0xbe9344d0,0xbe8f65da,3
+np.float32,0x3f71f19a,0x3f41d65b,3
+np.float32,0x804a3f59,0x804a3f59,3
+np.float32,0x3e596290,0x3e563476,3
+np.float32,0x3e994ee4,0x3e94f546,3
+np.float32,0xbc103e00,0xbc103d0c,3
+np.float32,0xbf1cd896,0xbf0cb889,3
+np.float32,0x7f52b080,0x3fc90fdb,3
+np.float32,0xff584452,0xbfc90fdb,3
+np.float32,0x58b26b,0x58b26b,3
+np.float32,0x3f23cd4c,0x3f11b799,3
+np.float32,0x707d7,0x707d7,3
+np.float32,0xff732cff,0xbfc90fdb,3
+np.float32,0x3e41c2a6,0x3e3f7f0f,3
+np.float32,0xbf7058e9,0xbf40fdcf,3
+np.float32,0x7dca9857,0x3fc90fdb,3
+np.float32,0x7f0eb44b,0x3fc90fdb,3
+np.float32,0x8000405c,0x8000405c,3
+np.float32,0x4916ab,0x4916ab,3
+np.float32,0x4811a8,0x4811a8,3
+np.float32,0x3d69bf,0x3d69bf,3
+np.float32,0xfeadcf1e,0xbfc90fdb,3
+np.float32,0x3e08dbbf,0x3e080d58,3
+np.float32,0xff031f88,0xbfc90fdb,3
+np.float32,0xbe09cab8,0xbe08f818,3
+np.float32,0x21d7cd,0x21d7cd,3
+np.float32,0x3f23230d,0x3f113ea9,3
+np.float32,0x7e8a48d4,0x3fc90fdb,3
+np.float32,0x413869,0x413869,3
+np.float32,0x7e832990,0x3fc90fdb,3
+np.float32,0x800f5c09,0x800f5c09,3
+np.float32,0x7f5893b6,0x3fc90fdb,3
+np.float32,0x7f06b5b1,0x3fc90fdb,3
+np.float32,0xbe1cbee8,0xbe1b89d6,3
+np.float32,0xbf279f14,0xbf1468a8,3
+np.float32,0xfea86060,0xbfc90fdb,3
+np.float32,0x3e828174,0x3e7f91bb,3
+np.float32,0xff682c82,0xbfc90fdb,3
+np.float32,0x4e20f3,0x4e20f3,3
+np.float32,0x7f17d7e9,0x3fc90fdb,3
+np.float32,0x80671f92,0x80671f92,3
+np.float32,0x7f6dd100,0x3fc90fdb,3
+np.float32,0x3f219a4d,0x3f102695,3
+np.float32,0x803c9808,0x803c9808,3
+np.float32,0x3c432ada,0x3c43287d,3
+np.float32,0xbd3db450,0xbd3d91a2,3
+np.float32,0x3baac135,0x3baac0d0,3
+np.float32,0xff7fffe1,0xbfc90fdb,3
+np.float32,0xfe38a6f4,0xbfc90fdb,3
+np.float32,0x3dfb0a04,0x3df9cb04,3
+np.float32,0x800b05c2,0x800b05c2,3
+np.float32,0x644163,0x644163,3
+np.float32,0xff03a025,0xbfc90fdb,3
+np.float32,0x3f7d506c,0x3f47b641,3
+np.float32,0xff0e682a,0xbfc90fdb,3
+np.float32,0x3e09b7b0,0x3e08e567,3
+np.float32,0x7f72a216,0x3fc90fdb,3
+np.float32,0x7f800000,0x3fc90fdb,3
+np.float32,0x8050a281,0x8050a281,3
+np.float32,0x7edafa2f,0x3fc90fdb,3
+np.float32,0x3f4e0df6,0x3f2d7f2f,3
+np.float32,0xbf6728e0,0xbf3c050f,3
+np.float32,0x3e904ce4,0x3e8ca6eb,3
+np.float32,0x0,0x0,3
+np.float32,0xfd215070,0xbfc90fdb,3
+np.float32,0x7e406b15,0x3fc90fdb,3
+np.float32,0xbf2803c9,0xbf14af18,3
+np.float32,0x5950c8,0x5950c8,3
+np.float32,0xbeddcec8,0xbed14faa,3
+np.float32,0xbec6457e,0xbebd2aa5,3
+np.float32,0xbf42843c,0xbf2656db,3
+np.float32,0x3ee9cba8,0x3edb5163,3
+np.float32,0xbe30c954,0xbe2f0f90,3
+np.float32,0xbeee6b44,0xbedf216f,3
+np.float32,0xbe35d818,0xbe33f7cd,3
+np.float32,0xbe47c630,0xbe454bc6,3
+np.float32,0x801b146f,0x801b146f,3
+np.float32,0x7f6788da,0x3fc90fdb,3
+np.float32,0x3eaef088,0x3ea8927d,3
+np.float32,0x3eb5983e,0x3eae81fc,3
+np.float32,0x40b51d,0x40b51d,3
+np.float32,0xfebddd04,0xbfc90fdb,3
+np.float32,0x3e591aee,0x3e55efea,3
+np.float32,0xbe2b6b48,0xbe29d81f,3
+np.float32,0xff4a8826,0xbfc90fdb,3
+np.float32,0x3e791df0,0x3e745eac,3
+np.float32,0x7c8f681f,0x3fc90fdb,3
+np.float32,0xfe7a15c4,0xbfc90fdb,3
+np.float32,0x3c8963,0x3c8963,3
+np.float32,0x3f0afa0a,0x3efea5cc,3
+np.float32,0xbf0d2680,0xbf00ff29,3
+np.float32,0x3dc306b0,0x3dc27096,3
+np.float32,0x7f4cf105,0x3fc90fdb,3
+np.float32,0xbe196060,0xbe183ea4,3
+np.float32,0x5caf1c,0x5caf1c,3
+np.float32,0x801f2852,0x801f2852,3
+np.float32,0xbe01aa0c,0xbe00fa53,3
+np.float32,0x3f0cfd32,0x3f00df7a,3
+np.float32,0x7d82038e,0x3fc90fdb,3
+np.float32,0x7f7b927f,0x3fc90fdb,3
+np.float32,0xbe93b2e4,0xbe8fcb7f,3
+np.float32,0x1ffe8c,0x1ffe8c,3
+np.float32,0x3faaf6,0x3faaf6,3
+np.float32,0x3e32b1b8,0x3e30e9ab,3
+np.float32,0x802953c0,0x802953c0,3
+np.float32,0xfe5d9844,0xbfc90fdb,3
+np.float32,0x3e1a59d0,0x3e193292,3
+np.float32,0x801c6edc,0x801c6edc,3
+np.float32,0x1ecf41,0x1ecf41,3
+np.float32,0xfe56b09c,0xbfc90fdb,3
+np.float32,0x7e878351,0x3fc90fdb,3
+np.float32,0x3f401e2c,0x3f24cfcb,3
+np.float32,0xbf204a40,0xbf0f35bb,3
+np.float32,0x3e155a98,0x3e144ee1,3
+np.float32,0xbf34f929,0xbf1d8838,3
+np.float32,0x801bbf70,0x801bbf70,3
+np.float32,0x7e7c9730,0x3fc90fdb,3
+np.float32,0x7cc23432,0x3fc90fdb,3
+np.float32,0xbf351638,0xbf1d9b97,3
+np.float32,0x80152094,0x80152094,3
+np.float32,0x3f2d731c,0x3f187219,3
+np.float32,0x804ab0b7,0x804ab0b7,3
+np.float32,0x37d6db,0x37d6db,3
+np.float32,0xbf3ccc56,0xbf22acbf,3
+np.float32,0x3e546f8c,0x3e5176e7,3
+np.float32,0xbe90e87e,0xbe8d3707,3
+np.float32,0x48256c,0x48256c,3
+np.float32,0x7e2468d0,0x3fc90fdb,3
+np.float32,0x807af47e,0x807af47e,3
+np.float32,0x3ed4b221,0x3ec996f0,3
+np.float32,0x3d3b1956,0x3d3af811,3
+np.float32,0xbe69d93c,0xbe65e7f0,3
+np.float32,0xff03ff14,0xbfc90fdb,3
+np.float32,0x801e79dc,0x801e79dc,3
+np.float32,0x3f467c53,0x3f28d63d,3
+np.float32,0x3eab6baa,0x3ea56a1c,3
+np.float32,0xbf15519c,0xbf072d1c,3
+np.float32,0x7f0bd8e8,0x3fc90fdb,3
+np.float32,0xbe1e0d1c,0xbe1cd053,3
+np.float32,0x8016edab,0x8016edab,3
+np.float32,0x7ecaa09b,0x3fc90fdb,3
+np.float32,0x3f72e6d9,0x3f4257a8,3
+np.float32,0xbefe787e,0xbeec29a4,3
+np.float32,0xbee989e8,0xbedb1af9,3
+np.float32,0xbe662db0,0xbe626a45,3
+np.float32,0x495bf7,0x495bf7,3
+np.float32,0x26c379,0x26c379,3
+np.float32,0x7f54d41a,0x3fc90fdb,3
+np.float32,0x801e7dd9,0x801e7dd9,3
+np.float32,0x80000000,0x80000000,3
+np.float32,0xfa3d3000,0xbfc90fdb,3
+np.float32,0xfa3cb800,0xbfc90fdb,3
+np.float32,0x264894,0x264894,3
+np.float32,0xff6de011,0xbfc90fdb,3
+np.float32,0x7e9045b2,0x3fc90fdb,3
+np.float32,0x3f2253a8,0x3f10aaf4,3
+np.float32,0xbd462bf0,0xbd460469,3
+np.float32,0x7f1796af,0x3fc90fdb,3
+np.float32,0x3e718858,0x3e6d3279,3
+np.float32,0xff437d7e,0xbfc90fdb,3
+np.float32,0x805ae7cb,0x805ae7cb,3
+np.float32,0x807e32e9,0x807e32e9,3
+np.float32,0x3ee0bafc,0x3ed3c453,3
+np.float32,0xbf721dee,0xbf41edc3,3
+np.float32,0xfec9f792,0xbfc90fdb,3
+np.float32,0x7f050720,0x3fc90fdb,3
+np.float32,0x182261,0x182261,3
+np.float32,0x3e39e678,0x3e37e5be,3
+np.float32,0x7e096e4b,0x3fc90fdb,3
+np.float32,0x103715,0x103715,3
+np.float32,0x3f7e7741,0x3f484ae4,3
+np.float32,0x3e29aea5,0x3e28277c,3
+np.float32,0x58c183,0x58c183,3
+np.float32,0xff72fdb2,0xbfc90fdb,3
+np.float32,0xbd9a9420,0xbd9a493c,3
+np.float32,0x7f1e07e7,0x3fc90fdb,3
+np.float32,0xff79f522,0xbfc90fdb,3
+np.float32,0x7c7d0e96,0x3fc90fdb,3
+np.float32,0xbeba9e8e,0xbeb2f504,3
+np.float32,0xfd880a80,0xbfc90fdb,3
+np.float32,0xff7f2a33,0xbfc90fdb,3
+np.float32,0x3e861ae0,0x3e83289c,3
+np.float32,0x7f0161c1,0x3fc90fdb,3
+np.float32,0xfe844ff8,0xbfc90fdb,3
+np.float32,0xbebf4b98,0xbeb7128e,3
+np.float32,0x652bee,0x652bee,3
+np.float32,0xff188a4b,0xbfc90fdb,3
+np.float32,0xbf800000,0xbf490fdb,3
+np.float32,0x80418711,0x80418711,3
+np.float32,0xbeb712d4,0xbeafd1f6,3
+np.float32,0xbf7cee28,0xbf478491,3
+np.float32,0xfe66c59c,0xbfc90fdb,3
+np.float32,0x4166a2,0x4166a2,3
+np.float32,0x3dfa1a2c,0x3df8deb5,3
+np.float32,0xbdbfbcb8,0xbdbf2e0f,3
+np.float32,0xfe60ef70,0xbfc90fdb,3
+np.float32,0xfe009444,0xbfc90fdb,3
+np.float32,0xfeb27aa0,0xbfc90fdb,3
+np.float32,0xbe99f7bc,0xbe95902b,3
+np.float32,0x8043d28d,0x8043d28d,3
+np.float32,0xfe5328c4,0xbfc90fdb,3
+np.float32,0x8017b27e,0x8017b27e,3
+np.float32,0x3ef1d2cf,0x3ee1ebd7,3
+np.float32,0x805ddd90,0x805ddd90,3
+np.float32,0xbf424263,0xbf262d17,3
+np.float32,0xfc99dde0,0xbfc90fdb,3
+np.float32,0xbf7ec13b,0xbf487015,3
+np.float32,0xbef727ea,0xbee64377,3
+np.float32,0xff15ce95,0xbfc90fdb,3
+np.float32,0x1fbba4,0x1fbba4,3
+np.float32,0x3f3b2368,0x3f2198a9,3
+np.float32,0xfefda26e,0xbfc90fdb,3
+np.float32,0x801519ad,0x801519ad,3
+np.float32,0x80473fa2,0x80473fa2,3
+np.float32,0x7e7a8bc1,0x3fc90fdb,3
+np.float32,0x3e8a9289,0x3e87548a,3
+np.float32,0x3ed68987,0x3ecb2872,3
+np.float32,0x805bca66,0x805bca66,3
+np.float32,0x8079c4e3,0x8079c4e3,3
+np.float32,0x3a2510,0x3a2510,3
+np.float32,0x7eedc598,0x3fc90fdb,3
+np.float32,0x80681956,0x80681956,3
+np.float32,0xff64c778,0xbfc90fdb,3
+np.float32,0x806bbc46,0x806bbc46,3
+np.float32,0x433643,0x433643,3
+np.float32,0x705b92,0x705b92,3
+np.float32,0xff359392,0xbfc90fdb,3
+np.float32,0xbee78672,0xbed96fa7,3
+np.float32,0x3e21717b,0x3e202010,3
+np.float32,0xfea13c34,0xbfc90fdb,3
+np.float32,0x2c8895,0x2c8895,3
+np.float32,0x3ed33290,0x3ec84f7c,3
+np.float32,0x3e63031e,0x3e5f662e,3
+np.float32,0x7e30907b,0x3fc90fdb,3
+np.float32,0xbe293708,0xbe27b310,3
+np.float32,0x3ed93738,0x3ecd6ea3,3
+np.float32,0x9db7e,0x9db7e,3
+np.float32,0x3f7cd1b8,0x3f47762c,3
+np.float32,0x3eb5143c,0x3eae0cb0,3
+np.float32,0xbe69b234,0xbe65c2d7,3
+np.float32,0x3f6e74de,0x3f3ffb97,3
+np.float32,0x5d0559,0x5d0559,3
+np.float32,0x3e1e8c30,0x3e1d4c70,3
+np.float32,0xbf2d1878,0xbf1833ef,3
+np.float32,0xff2adf82,0xbfc90fdb,3
+np.float32,0x8012e2c1,0x8012e2c1,3
+np.float32,0x7f031be3,0x3fc90fdb,3
+np.float32,0x805ff94e,0x805ff94e,3
+np.float32,0x3e9d5b27,0x3e98aa31,3
+np.float32,0x3f56d5cf,0x3f32bc9e,3
+np.float32,0x3eaa0412,0x3ea4267f,3
+np.float32,0xbe899ea4,0xbe86712f,3
+np.float32,0x800f2f48,0x800f2f48,3
+np.float32,0x3f1c2269,0x3f0c33ea,3
+np.float32,0x3f4a5f64,0x3f2b3f28,3
+np.float32,0x80739318,0x80739318,3
+np.float32,0x806e9b47,0x806e9b47,3
+np.float32,0x3c8cd300,0x3c8ccf73,3
+np.float32,0x7f39a39d,0x3fc90fdb,3
+np.float32,0x3ec95d61,0x3ebfd9dc,3
+np.float32,0xff351ff8,0xbfc90fdb,3
+np.float32,0xff3a8f58,0xbfc90fdb,3
+np.float32,0x7f313ec0,0x3fc90fdb,3
+np.float32,0x803aed13,0x803aed13,3
+np.float32,0x7f771d9b,0x3fc90fdb,3
+np.float32,0x8045a6d6,0x8045a6d6,3
+np.float32,0xbc85f280,0xbc85ef72,3
+np.float32,0x7e9c68f5,0x3fc90fdb,3
+np.float32,0xbf0f9379,0xbf02d975,3
+np.float32,0x7e97bcb1,0x3fc90fdb,3
+np.float32,0x804a07d5,0x804a07d5,3
+np.float32,0x802e6117,0x802e6117,3
+np.float32,0x7ed5e388,0x3fc90fdb,3
+np.float32,0x80750455,0x80750455,3
+np.float32,0xff4a8325,0xbfc90fdb,3
+np.float32,0xbedb6866,0xbecf497c,3
+np.float32,0x52ea3b,0x52ea3b,3
+np.float32,0xff773172,0xbfc90fdb,3
+np.float32,0xbeaa8ff0,0xbea4a46e,3
+np.float32,0x7eef2058,0x3fc90fdb,3
+np.float32,0x3f712472,0x3f4169d3,3
+np.float32,0xff6c8608,0xbfc90fdb,3
+np.float32,0xbf6eaa41,0xbf40182a,3
+np.float32,0x3eb03c24,0x3ea9bb34,3
+np.float32,0xfe118cd4,0xbfc90fdb,3
+np.float32,0x3e5b03b0,0x3e57c378,3
+np.float32,0x7f34d92d,0x3fc90fdb,3
+np.float32,0x806c3418,0x806c3418,3
+np.float32,0x7f3074e3,0x3fc90fdb,3
+np.float32,0x8002df02,0x8002df02,3
+np.float32,0x3f6df63a,0x3f3fb7b7,3
+np.float32,0xfd2b4100,0xbfc90fdb,3
+np.float32,0x80363d5c,0x80363d5c,3
+np.float32,0xbeac1f98,0xbea60bd6,3
+np.float32,0xff7fffff,0xbfc90fdb,3
+np.float32,0x80045097,0x80045097,3
+np.float32,0xfe011100,0xbfc90fdb,3
+np.float32,0x80739ef5,0x80739ef5,3
+np.float32,0xff3976ed,0xbfc90fdb,3
+np.float32,0xbe18e3a0,0xbe17c49e,3
+np.float32,0xbe289294,0xbe2712f6,3
+np.float32,0x3f1d41e7,0x3f0d050e,3
+np.float32,0x39364a,0x39364a,3
+np.float32,0x8072b77e,0x8072b77e,3
+np.float32,0x3f7cfec0,0x3f478cf6,3
+np.float32,0x2f68f6,0x2f68f6,3
+np.float32,0xbf031fb8,0xbef25c84,3
+np.float32,0xbf0b842c,0xbeff7afc,3
+np.float32,0x3f081e7e,0x3efa3676,3
+np.float32,0x7f7fffff,0x3fc90fdb,3
+np.float32,0xff15da0e,0xbfc90fdb,3
+np.float32,0x3d2001b2,0x3d1fece1,3
+np.float32,0x7f76efef,0x3fc90fdb,3
+np.float32,0x3f2405dd,0x3f11dfb7,3
+np.float32,0xa0319,0xa0319,3
+np.float32,0x3e23d2bd,0x3e227255,3
+np.float32,0xbd4d4c50,0xbd4d205e,3
+np.float32,0x382344,0x382344,3
+np.float32,0x21bbf,0x21bbf,3
+np.float32,0xbf209e82,0xbf0f7239,3
+np.float32,0xff03bf9f,0xbfc90fdb,3
+np.float32,0x7b1789,0x7b1789,3
+np.float32,0xff314944,0xbfc90fdb,3
+np.float32,0x1a63eb,0x1a63eb,3
+np.float32,0x803dc983,0x803dc983,3
+np.float32,0x3f0ff558,0x3f0323dc,3
+np.float32,0x3f544f2c,0x3f313f58,3
+np.float32,0xff032948,0xbfc90fdb,3
+np.float32,0x7f4933cc,0x3fc90fdb,3
+np.float32,0x7f14c5ed,0x3fc90fdb,3
+np.float32,0x803aeebf,0x803aeebf,3
+np.float32,0xbf0d4c0f,0xbf011bf5,3
+np.float32,0xbeaf8de2,0xbea91f57,3
+np.float32,0xff3ae030,0xbfc90fdb,3
+np.float32,0xbb362d00,0xbb362ce1,3
+np.float32,0x3d1f79e0,0x3d1f6544,3
+np.float32,0x3f56e9d9,0x3f32c860,3
+np.float32,0x3f723e5e,0x3f41fee2,3
+np.float32,0x4c0179,0x4c0179,3
+np.float32,0xfee36132,0xbfc90fdb,3
+np.float32,0x619ae6,0x619ae6,3
+np.float32,0xfde5d670,0xbfc90fdb,3
+np.float32,0xff079ac5,0xbfc90fdb,3
+np.float32,0x3e974fbd,0x3e931fae,3
+np.float32,0x8020ae6b,0x8020ae6b,3
+np.float32,0x6b5af1,0x6b5af1,3
+np.float32,0xbeb57cd6,0xbeae69a3,3
+np.float32,0x806e7eb2,0x806e7eb2,3
+np.float32,0x7e666edb,0x3fc90fdb,3
+np.float32,0xbf458c18,0xbf283ff0,3
+np.float32,0x3e50518e,0x3e4d8399,3
+np.float32,0x3e9ce224,0x3e983b98,3
+np.float32,0x3e6bc067,0x3e67b6c6,3
+np.float32,0x13783d,0x13783d,3
+np.float32,0xff3d518c,0xbfc90fdb,3
+np.float32,0xfeba5968,0xbfc90fdb,3
+np.float32,0xbf0b9f76,0xbeffa50f,3
+np.float32,0xfe174900,0xbfc90fdb,3
+np.float32,0x3f38bb0a,0x3f200527,3
+np.float32,0x7e94a77d,0x3fc90fdb,3
+np.float32,0x29d776,0x29d776,3
+np.float32,0xbf4e058d,0xbf2d7a15,3
+np.float32,0xbd94abc8,0xbd946923,3
+np.float32,0xbee62db0,0xbed85124,3
+np.float32,0x800000,0x800000,3
+np.float32,0xbef1df7e,0xbee1f636,3
+np.float32,0xbcf3cd20,0xbcf3bab5,3
+np.float32,0x80007b05,0x80007b05,3
+np.float32,0x3d9b3f2e,0x3d9af351,3
+np.float32,0xbf714a68,0xbf417dee,3
+np.float32,0xbf2a2d37,0xbf163069,3
+np.float32,0x8055104f,0x8055104f,3
+np.float32,0x7f5c40d7,0x3fc90fdb,3
+np.float32,0x1,0x1,3
+np.float32,0xff35f3a6,0xbfc90fdb,3
+np.float32,0xd9c7c,0xd9c7c,3
+np.float32,0xbf440cfc,0xbf274f22,3
+np.float32,0x8050ac43,0x8050ac43,3
+np.float32,0x63ee16,0x63ee16,3
+np.float32,0x7d90419b,0x3fc90fdb,3
+np.float32,0xfee22198,0xbfc90fdb,3
+np.float32,0xc2ead,0xc2ead,3
+np.float32,0x7f5cd6a6,0x3fc90fdb,3
+np.float32,0x3f6fab7e,0x3f40a184,3
+np.float32,0x3ecf998c,0x3ec53a73,3
+np.float32,0x7e5271f0,0x3fc90fdb,3
+np.float32,0x67c016,0x67c016,3
+np.float32,0x2189c8,0x2189c8,3
+np.float32,0x27d892,0x27d892,3
+np.float32,0x3f0d02c4,0x3f00e3c0,3
+np.float32,0xbf69ebca,0xbf3d8862,3
+np.float32,0x3e60c0d6,0x3e5d3ebb,3
+np.float32,0x3f45206c,0x3f27fc66,3
+np.float32,0xbf6b47dc,0xbf3e4592,3
+np.float32,0xfe9be2e2,0xbfc90fdb,3
+np.float32,0x7fa00000,0x7fe00000,3
+np.float32,0xff271562,0xbfc90fdb,3
+np.float32,0x3e2e5270,0x3e2caaaf,3
+np.float32,0x80222934,0x80222934,3
+np.float32,0xbd01d220,0xbd01c701,3
+np.float32,0x223aa0,0x223aa0,3
+np.float32,0x3f4b5a7e,0x3f2bd967,3
+np.float32,0x3f217d85,0x3f101200,3
+np.float32,0xbf57663a,0xbf331144,3
+np.float32,0x3f219862,0x3f102536,3
+np.float32,0x28a28c,0x28a28c,3
+np.float32,0xbf3f55f4,0xbf244f86,3
+np.float32,0xbf3de287,0xbf236092,3
+np.float32,0xbf1c1ce2,0xbf0c2fe3,3
+np.float32,0x80000001,0x80000001,3
+np.float32,0x3db695d0,0x3db61a90,3
+np.float32,0x6c39bf,0x6c39bf,3
+np.float32,0x7e33a12f,0x3fc90fdb,3
+np.float32,0x67623a,0x67623a,3
+np.float32,0x3e45dc54,0x3e4373b6,3
+np.float32,0x7f62fa68,0x3fc90fdb,3
+np.float32,0x3f0e1d01,0x3f01bbe5,3
+np.float32,0x3f13dc69,0x3f0615f5,3
+np.float32,0x246703,0x246703,3
+np.float32,0xbf1055b5,0xbf036d07,3
+np.float32,0x7f46d3d0,0x3fc90fdb,3
+np.float32,0x3d2b8086,0x3d2b66e5,3
+np.float32,0xbf03be44,0xbef35776,3
+np.float32,0x3f800000,0x3f490fdb,3
+np.float32,0xbec8d226,0xbebf613d,3
+np.float32,0x3d8faf00,0x3d8f72d4,3
+np.float32,0x170c4e,0x170c4e,3
+np.float32,0xff14c0f0,0xbfc90fdb,3
+np.float32,0xff16245d,0xbfc90fdb,3
+np.float32,0x7f44ce6d,0x3fc90fdb,3
+np.float32,0xbe8175d8,0xbe7d9aeb,3
+np.float32,0x3df7a4a1,0x3df67254,3
+np.float32,0xfe2cc46c,0xbfc90fdb,3
+np.float32,0x3f284e63,0x3f14e335,3
+np.float32,0x7e46e5d6,0x3fc90fdb,3
+np.float32,0x397be4,0x397be4,3
+np.float32,0xbf2560bc,0xbf12d50b,3
+np.float32,0x3ed9b8c1,0x3ecddc60,3
+np.float32,0xfec18c5a,0xbfc90fdb,3
+np.float32,0x64894d,0x64894d,3
+np.float32,0x36a65d,0x36a65d,3
+np.float32,0x804ffcd7,0x804ffcd7,3
+np.float32,0x800f79e4,0x800f79e4,3
+np.float32,0x5d45ac,0x5d45ac,3
+np.float32,0x6cdda0,0x6cdda0,3
+np.float32,0xbf7f2077,0xbf489fe5,3
+np.float32,0xbf152f78,0xbf0713a1,3
+np.float32,0x807bf344,0x807bf344,3
+np.float32,0x3f775023,0x3f44a4d8,3
+np.float32,0xbf3edf67,0xbf240365,3
+np.float32,0x7eed729c,0x3fc90fdb,3
+np.float32,0x14cc29,0x14cc29,3
+np.float32,0x7edd7b6b,0x3fc90fdb,3
+np.float32,0xbf3c6e2c,0xbf226fb7,3
+np.float32,0x51b9ad,0x51b9ad,3
+np.float32,0x3f617ee8,0x3f38dd7c,3
+np.float32,0xff800000,0xbfc90fdb,3
+np.float32,0x7f440ea0,0x3fc90fdb,3
+np.float32,0x3e639893,0x3e5ff49e,3
+np.float32,0xbd791bb0,0xbd78cd3c,3
+np.float32,0x8059fcbc,0x8059fcbc,3
+np.float32,0xbf7d1214,0xbf4796bd,3
+np.float32,0x3ef368fa,0x3ee33788,3
+np.float32,0xbecec0f4,0xbec48055,3
+np.float32,0xbc83d940,0xbc83d656,3
+np.float32,0xbce01220,0xbce003d4,3
+np.float32,0x803192a5,0x803192a5,3
+np.float32,0xbe40e0c0,0xbe3ea4f0,3
+np.float32,0xfb692600,0xbfc90fdb,3
+np.float32,0x3f1bec65,0x3f0c0c88,3
+np.float32,0x7f042798,0x3fc90fdb,3
+np.float32,0xbe047374,0xbe03b83b,3
+np.float32,0x7f7c6630,0x3fc90fdb,3
+np.float32,0x7f58dae3,0x3fc90fdb,3
+np.float32,0x80691c92,0x80691c92,3
+np.float32,0x7dbe76,0x7dbe76,3
+np.float32,0xbf231384,0xbf11339d,3
+np.float32,0xbef4acf8,0xbee43f8b,3
+np.float32,0x3ee9f9d0,0x3edb7793,3
+np.float32,0x3f0064f6,0x3eee04a8,3
+np.float32,0x313732,0x313732,3
+np.float32,0xfd58cf80,0xbfc90fdb,3
+np.float32,0x3f7a2bc9,0x3f461d30,3
+np.float32,0x7f7681af,0x3fc90fdb,3
+np.float32,0x7f504211,0x3fc90fdb,3
+np.float32,0xfeae0c00,0xbfc90fdb,3
+np.float32,0xbee14396,0xbed436d1,3
+np.float32,0x7fc00000,0x7fc00000,3
+np.float32,0x693406,0x693406,3
+np.float32,0x3eb4a679,0x3eadab1b,3
+np.float32,0x550505,0x550505,3
+np.float32,0xfd493d10,0xbfc90fdb,3
+np.float32,0x3f4fc907,0x3f2e8b2c,3
+np.float32,0x80799aa4,0x80799aa4,3
+np.float32,0xff1ea89b,0xbfc90fdb,3
+np.float32,0xff424510,0xbfc90fdb,3
+np.float32,0x7f68d026,0x3fc90fdb,3
+np.float32,0xbea230ca,0xbe9d1200,3
+np.float32,0x7ea585da,0x3fc90fdb,3
+np.float32,0x3f3db211,0x3f23414c,3
+np.float32,0xfea4d964,0xbfc90fdb,3
+np.float32,0xbf17fe18,0xbf092984,3
+np.float32,0x7cc8a2,0x7cc8a2,3
+np.float32,0xff0330ba,0xbfc90fdb,3
+np.float32,0x3f769835,0x3f444592,3
+np.float32,0xeb0ac,0xeb0ac,3
+np.float32,0x7f7e45de,0x3fc90fdb,3
+np.float32,0xbdb510a8,0xbdb49873,3
+np.float32,0x3ebf900b,0x3eb74e9c,3
+np.float32,0xbf21bbce,0xbf103e89,3
+np.float32,0xbf3f4682,0xbf24459d,3
+np.float32,0x7eb6e9c8,0x3fc90fdb,3
+np.float32,0xbf42532d,0xbf2637be,3
+np.float32,0xbd3b2600,0xbd3b04b4,3
+np.float32,0x3f1fa9aa,0x3f0ec23e,3
+np.float32,0x7ed6a0f1,0x3fc90fdb,3
+np.float32,0xff4759a1,0xbfc90fdb,3
+np.float32,0x6d26e3,0x6d26e3,3
+np.float32,0xfe1108e0,0xbfc90fdb,3
+np.float32,0xfdf76900,0xbfc90fdb,3
+np.float32,0xfec66f22,0xbfc90fdb,3
+np.float32,0xbf3d097f,0xbf22d458,3
+np.float32,0x3d85be25,0x3d858d99,3
+np.float32,0x7f36739f,0x3fc90fdb,3
+np.float32,0x7bc0a304,0x3fc90fdb,3
+np.float32,0xff48dd90,0xbfc90fdb,3
+np.float32,0x48cab0,0x48cab0,3
+np.float32,0x3ed3943c,0x3ec8a2ef,3
+np.float32,0xbf61488e,0xbf38bede,3
+np.float32,0x3f543df5,0x3f313525,3
+np.float32,0x5cf2ca,0x5cf2ca,3
+np.float32,0x572686,0x572686,3
+np.float32,0x80369c7c,0x80369c7c,3
+np.float32,0xbd2c1d20,0xbd2c0338,3
+np.float32,0x3e255428,0x3e23ea0b,3
+np.float32,0xbeba9ee0,0xbeb2f54c,3
+np.float32,0x8015c165,0x8015c165,3
+np.float32,0x3d31f488,0x3d31d7e6,3
+np.float32,0x3f68591c,0x3f3cac43,3
+np.float32,0xf5ed5,0xf5ed5,3
+np.float32,0xbf3b1d34,0xbf21949e,3
+np.float32,0x1f0343,0x1f0343,3
+np.float32,0x3f0e52b5,0x3f01e4ef,3
+np.float32,0x7f57c596,0x3fc90fdb,3
+np.float64,0x7fd8e333ddb1c667,0x3ff921fb54442d18,1
+np.float64,0x800bcc9cdad7993a,0x800bcc9cdad7993a,1
+np.float64,0x3fcd6f81df3adf00,0x3fcceebbafc5d55e,1
+np.float64,0x3fed7338a57ae671,0x3fe7ce3e5811fc0a,1
+np.float64,0x7fe64994fcac9329,0x3ff921fb54442d18,1
+np.float64,0xfa5a6345f4b4d,0xfa5a6345f4b4d,1
+np.float64,0xe9dcd865d3b9b,0xe9dcd865d3b9b,1
+np.float64,0x7fea6cffabf4d9fe,0x3ff921fb54442d18,1
+np.float64,0xa9e1de6153c3c,0xa9e1de6153c3c,1
+np.float64,0xab6bdc5356d7c,0xab6bdc5356d7c,1
+np.float64,0x80062864a02c50ca,0x80062864a02c50ca,1
+np.float64,0xbfdac03aa7b58076,0xbfd9569f3230128d,1
+np.float64,0xbfe61b77752c36ef,0xbfe3588f51b8be8f,1
+np.float64,0x800bc854c8d790aa,0x800bc854c8d790aa,1
+np.float64,0x3feed1a2da3da346,0x3fe887f9b8ea031f,1
+np.float64,0x3fe910d3697221a7,0x3fe54365a53d840e,1
+np.float64,0x7fe7ab4944ef5692,0x3ff921fb54442d18,1
+np.float64,0x3fa462f1a028c5e3,0x3fa460303a6a4e69,1
+np.float64,0x800794f1a3af29e4,0x800794f1a3af29e4,1
+np.float64,0x3fee6fe7fafcdfd0,0x3fe854f863816d55,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x7f336472fe66d,0x7f336472fe66d,1
+np.float64,0xffb1623ac822c478,0xbff921fb54442d18,1
+np.float64,0x3fbacd68ce359ad2,0x3fbab480b3638846,1
+np.float64,0xffd5c02706ab804e,0xbff921fb54442d18,1
+np.float64,0xbfd4daf03d29b5e0,0xbfd42928f069c062,1
+np.float64,0x800c6e85dbd8dd0c,0x800c6e85dbd8dd0c,1
+np.float64,0x800e3599c5bc6b34,0x800e3599c5bc6b34,1
+np.float64,0x2c0d654c581ad,0x2c0d654c581ad,1
+np.float64,0xbfdd3eb13fba7d62,0xbfdb6e8143302de7,1
+np.float64,0x800b60cb8776c197,0x800b60cb8776c197,1
+np.float64,0x80089819ad113034,0x80089819ad113034,1
+np.float64,0x29fe721453fcf,0x29fe721453fcf,1
+np.float64,0x3fe8722f4df0e45f,0x3fe4e026d9eadb4d,1
+np.float64,0xffd1fbcd01a3f79a,0xbff921fb54442d18,1
+np.float64,0x7fc74e1e982e9c3c,0x3ff921fb54442d18,1
+np.float64,0x800c09d3d15813a8,0x800c09d3d15813a8,1
+np.float64,0xbfeee4578b3dc8af,0xbfe891ab3d6c3ce4,1
+np.float64,0xffdd01a6f33a034e,0xbff921fb54442d18,1
+np.float64,0x7fcc130480382608,0x3ff921fb54442d18,1
+np.float64,0xffcbb6bd1d376d7c,0xbff921fb54442d18,1
+np.float64,0xc068a53780d15,0xc068a53780d15,1
+np.float64,0xbfc974f15532e9e4,0xbfc92100b355f3e7,1
+np.float64,0x3fe6da79442db4f3,0x3fe3d87393b082e7,1
+np.float64,0xd9d9be4db3b38,0xd9d9be4db3b38,1
+np.float64,0x5ea50a20bd4a2,0x5ea50a20bd4a2,1
+np.float64,0xbfe5597f7d2ab2ff,0xbfe2d3ccc544b52b,1
+np.float64,0x80019364e4e326cb,0x80019364e4e326cb,1
+np.float64,0x3fed2902c3fa5206,0x3fe7a5e1df07e5c1,1
+np.float64,0xbfa7b72b5c2f6e50,0xbfa7b2d545b3cc1f,1
+np.float64,0xffdb60dd43b6c1ba,0xbff921fb54442d18,1
+np.float64,0x81a65d8b034cc,0x81a65d8b034cc,1
+np.float64,0x8000c30385818608,0x8000c30385818608,1
+np.float64,0x6022f5f4c045f,0x6022f5f4c045f,1
+np.float64,0x8007a2bb810f4578,0x8007a2bb810f4578,1
+np.float64,0x7fdc68893238d111,0x3ff921fb54442d18,1
+np.float64,0x7fd443454ea8868a,0x3ff921fb54442d18,1
+np.float64,0xffe6b04209ed6084,0xbff921fb54442d18,1
+np.float64,0x7fcd9733d13b2e67,0x3ff921fb54442d18,1
+np.float64,0xf5ee80a9ebdd0,0xf5ee80a9ebdd0,1
+np.float64,0x3fe3788e8de6f11e,0x3fe17dec7e6843a0,1
+np.float64,0x3fee36f62f7c6dec,0x3fe836f832515b43,1
+np.float64,0xf6cb49aded969,0xf6cb49aded969,1
+np.float64,0x3fd2b15ea4a562bc,0x3fd22fdc09920e67,1
+np.float64,0x7fccf6aef139ed5d,0x3ff921fb54442d18,1
+np.float64,0x3fd396b8ce272d72,0x3fd3026118857bd4,1
+np.float64,0x7fe53d3c80ea7a78,0x3ff921fb54442d18,1
+np.float64,0x3feae88fc4f5d120,0x3fe65fb04b18ef7a,1
+np.float64,0x3fedc643747b8c86,0x3fe7fafa6c20e25a,1
+np.float64,0xffdb2dc0df365b82,0xbff921fb54442d18,1
+np.float64,0xbfa2af3658255e70,0xbfa2ad17348f4253,1
+np.float64,0x3f8aa77b30354ef6,0x3f8aa71892336a69,1
+np.float64,0xbfdd1b1efbba363e,0xbfdb510dcd186820,1
+np.float64,0x800f50d99c5ea1b3,0x800f50d99c5ea1b3,1
+np.float64,0xff6ed602403dac00,0xbff921fb54442d18,1
+np.float64,0x800477d71aa8efaf,0x800477d71aa8efaf,1
+np.float64,0xbfe729a9e86e5354,0xbfe40ca78d9eefcf,1
+np.float64,0x3fd81ab2d4303566,0x3fd70d7e3937ea22,1
+np.float64,0xb617cbab6c2fa,0xb617cbab6c2fa,1
+np.float64,0x7fefffffffffffff,0x3ff921fb54442d18,1
+np.float64,0xffa40933ac281260,0xbff921fb54442d18,1
+np.float64,0xbfe1ede621e3dbcc,0xbfe057bb2b341ced,1
+np.float64,0xbfec700f03b8e01e,0xbfe73fb190bc722e,1
+np.float64,0x6e28af02dc517,0x6e28af02dc517,1
+np.float64,0x3fe37ad37ae6f5a7,0x3fe17f94674818a9,1
+np.float64,0x8000cbdeeae197bf,0x8000cbdeeae197bf,1
+np.float64,0x3fe8fd1f01f1fa3e,0x3fe5372bbec5d72c,1
+np.float64,0x3f8f9229103f2452,0x3f8f918531894256,1
+np.float64,0x800536858e0a6d0c,0x800536858e0a6d0c,1
+np.float64,0x7fe82bb4f9f05769,0x3ff921fb54442d18,1
+np.float64,0xffc1c2fb592385f8,0xbff921fb54442d18,1
+np.float64,0x7f924ddfc0249bbf,0x3ff921fb54442d18,1
+np.float64,0xffd5e125c52bc24c,0xbff921fb54442d18,1
+np.float64,0xbfef0d8738be1b0e,0xbfe8a6ef17b16c10,1
+np.float64,0x3fc9c8875233910f,0x3fc9715e708503cb,1
+np.float64,0xbfe2d926f4e5b24e,0xbfe108956e61cbb3,1
+np.float64,0x7fd61c496dac3892,0x3ff921fb54442d18,1
+np.float64,0x7fed545c6b7aa8b8,0x3ff921fb54442d18,1
+np.float64,0x8003746fea86e8e1,0x8003746fea86e8e1,1
+np.float64,0x3fdf515e75bea2bd,0x3fdd201a5585caa3,1
+np.float64,0xffda87c8ee350f92,0xbff921fb54442d18,1
+np.float64,0xffc675d8e22cebb0,0xbff921fb54442d18,1
+np.float64,0xffcdc173433b82e8,0xbff921fb54442d18,1
+np.float64,0xffed9df1517b3be2,0xbff921fb54442d18,1
+np.float64,0x3fd6a2eec72d45de,0x3fd5c1f1d7dcddcf,1
+np.float64,0xffec116a66f822d4,0xbff921fb54442d18,1
+np.float64,0x8007c2a2458f8545,0x8007c2a2458f8545,1
+np.float64,0x3fe4ee80d969dd02,0x3fe2895076094668,1
+np.float64,0x3fe3cae7116795ce,0x3fe1b9c07e0d03a7,1
+np.float64,0xbfd81bf8d8b037f2,0xbfd70e9bbbb4ca57,1
+np.float64,0x800c88ccd1f9119a,0x800c88ccd1f9119a,1
+np.float64,0xffdab2aee2b5655e,0xbff921fb54442d18,1
+np.float64,0x3fe743d227ee87a4,0x3fe41dcaef186d96,1
+np.float64,0x3fb060fd0220c1fa,0x3fb05b47f56ebbb4,1
+np.float64,0xbfd3f03772a7e06e,0xbfd3541522377291,1
+np.float64,0x190a5ae03216,0x190a5ae03216,1
+np.float64,0x3fe48c71916918e4,0x3fe24442f45b3183,1
+np.float64,0x800862470590c48e,0x800862470590c48e,1
+np.float64,0x7fd3ced89d279db0,0x3ff921fb54442d18,1
+np.float64,0x3feb3d9b4ab67b37,0x3fe69140cf2623f7,1
+np.float64,0xbc3f296b787e5,0xbc3f296b787e5,1
+np.float64,0xbfed6b905dfad721,0xbfe7ca1881a8c0fd,1
+np.float64,0xbfe621c2aaac4386,0xbfe35cd1969a82db,1
+np.float64,0x8009e7b17593cf63,0x8009e7b17593cf63,1
+np.float64,0x80045f580ca8beb1,0x80045f580ca8beb1,1
+np.float64,0xbfea2e177e745c2f,0xbfe5f13971633339,1
+np.float64,0x3fee655787fccab0,0x3fe84f6b98b6de26,1
+np.float64,0x3fc9cde92f339bd0,0x3fc9768a88b2c97c,1
+np.float64,0x3fc819c3b3303388,0x3fc7d25e1526e731,1
+np.float64,0x3fd3e848d2a7d090,0x3fd34cd9e6af558f,1
+np.float64,0x3fe19dacac633b5a,0x3fe01a6b4d27adc2,1
+np.float64,0x800b190da316321c,0x800b190da316321c,1
+np.float64,0xd5c69711ab8d3,0xd5c69711ab8d3,1
+np.float64,0xbfdc31bed7b8637e,0xbfda8ea3c1309d6d,1
+np.float64,0xbfd02ba007a05740,0xbfcfad86f0d756dc,1
+np.float64,0x3fe874473d70e88e,0x3fe4e1793cd82123,1
+np.float64,0xffb465585c28cab0,0xbff921fb54442d18,1
+np.float64,0xbfb5d8e13e2bb1c0,0xbfb5cb5c7807fc4d,1
+np.float64,0xffe80f933bf01f26,0xbff921fb54442d18,1
+np.float64,0x7feea783f5fd4f07,0x3ff921fb54442d18,1
+np.float64,0xbfae6665f43cccd0,0xbfae5d45b0a6f90a,1
+np.float64,0x800bd6ef5a77addf,0x800bd6ef5a77addf,1
+np.float64,0x800d145babda28b8,0x800d145babda28b8,1
+np.float64,0x39de155473bc3,0x39de155473bc3,1
+np.float64,0x3fefbd6bb1ff7ad8,0x3fe9008e73a3296e,1
+np.float64,0x3fc40bca3d281798,0x3fc3e2710e167007,1
+np.float64,0x3fcae0918335c120,0x3fca7e09e704a678,1
+np.float64,0x51287fbea2511,0x51287fbea2511,1
+np.float64,0x7fa6bc33a82d7866,0x3ff921fb54442d18,1
+np.float64,0xe72a2bebce546,0xe72a2bebce546,1
+np.float64,0x3fe1c8fd686391fa,0x3fe03b9622aeb4e3,1
+np.float64,0x3fe2a73ac3654e76,0x3fe0e36bc1ee4ac4,1
+np.float64,0x59895218b312b,0x59895218b312b,1
+np.float64,0xc6dc25c78db85,0xc6dc25c78db85,1
+np.float64,0xbfc06cfac520d9f4,0xbfc0561f85d2c907,1
+np.float64,0xbfea912dc4f5225c,0xbfe62c3b1c01c793,1
+np.float64,0x3fb78ce89a2f19d0,0x3fb77bfcb65a67d3,1
+np.float64,0xbfece5cdea39cb9c,0xbfe78103d24099e5,1
+np.float64,0x30d3054e61a61,0x30d3054e61a61,1
+np.float64,0xbfd3fe26fba7fc4e,0xbfd360c8447c4f7a,1
+np.float64,0x800956072a92ac0f,0x800956072a92ac0f,1
+np.float64,0x7fe639b3b6ec7366,0x3ff921fb54442d18,1
+np.float64,0x800ee30240bdc605,0x800ee30240bdc605,1
+np.float64,0x7fef6af0d2bed5e1,0x3ff921fb54442d18,1
+np.float64,0xffefce8725ff9d0d,0xbff921fb54442d18,1
+np.float64,0x3fe2e311da65c624,0x3fe10ff1623089dc,1
+np.float64,0xbfe7e5cbe56fcb98,0xbfe486c3daeda67c,1
+np.float64,0x80095bc14472b783,0x80095bc14472b783,1
+np.float64,0xffef0cb4553e1968,0xbff921fb54442d18,1
+np.float64,0xe3e60567c7cc1,0xe3e60567c7cc1,1
+np.float64,0xffde919f06bd233e,0xbff921fb54442d18,1
+np.float64,0x3fe3f9632e27f2c6,0x3fe1db49ebd21c4e,1
+np.float64,0x9dee9a233bdd4,0x9dee9a233bdd4,1
+np.float64,0xbfe3bb0602e7760c,0xbfe1ae41b6d4c488,1
+np.float64,0x3fc46945a128d288,0x3fc43da54c6c6a2a,1
+np.float64,0x7fdef149ac3de292,0x3ff921fb54442d18,1
+np.float64,0x800a96c76d752d8f,0x800a96c76d752d8f,1
+np.float64,0x3f971a32382e3464,0x3f9719316b9e9baf,1
+np.float64,0x7fe97bcf15b2f79d,0x3ff921fb54442d18,1
+np.float64,0x7fea894558f5128a,0x3ff921fb54442d18,1
+np.float64,0x3fc9e3be1933c780,0x3fc98b847c3923eb,1
+np.float64,0x3f7accac40359959,0x3f7acc9330741b64,1
+np.float64,0xa80c136950183,0xa80c136950183,1
+np.float64,0x3fe408732b2810e6,0x3fe1e61e7cbc8824,1
+np.float64,0xffa775bc042eeb80,0xbff921fb54442d18,1
+np.float64,0x3fbf04bd223e0980,0x3fbede37b8fc697e,1
+np.float64,0x7fd999b34c333366,0x3ff921fb54442d18,1
+np.float64,0xe72146dfce429,0xe72146dfce429,1
+np.float64,0x4f511ee49ea24,0x4f511ee49ea24,1
+np.float64,0xffb3e6e58827cdc8,0xbff921fb54442d18,1
+np.float64,0x3fd1f180cfa3e300,0x3fd17e85b2871de2,1
+np.float64,0x97c8e45b2f91d,0x97c8e45b2f91d,1
+np.float64,0xbfeeb20e88fd641d,0xbfe8778f878440bf,1
+np.float64,0xbfe1fc6dee23f8dc,0xbfe062c815a93cde,1
+np.float64,0xab4bf71f5697f,0xab4bf71f5697f,1
+np.float64,0xa9675a2952cec,0xa9675a2952cec,1
+np.float64,0xbfef3ea4a33e7d49,0xbfe8c02743ebc1b6,1
+np.float64,0x3fe22a2eafa4545d,0x3fe08577afca52a9,1
+np.float64,0x3fe8a08daaf1411c,0x3fe4fd5a34f05305,1
+np.float64,0xbfc6cda77b2d9b50,0xbfc6910bcfa0cf4f,1
+np.float64,0x3fec398394387307,0x3fe7211dd5276500,1
+np.float64,0x3fe36c95c626d92c,0x3fe1752e5aa2357b,1
+np.float64,0xffd8b9e7073173ce,0xbff921fb54442d18,1
+np.float64,0xffe19f043ae33e08,0xbff921fb54442d18,1
+np.float64,0x800e3640709c6c81,0x800e3640709c6c81,1
+np.float64,0x3fe7d6c20aafad84,0x3fe47d1a3307d9c8,1
+np.float64,0x80093fd63b727fad,0x80093fd63b727fad,1
+np.float64,0xffe1a671a4634ce3,0xbff921fb54442d18,1
+np.float64,0xbfe53a6b386a74d6,0xbfe2be41859cb10d,1
+np.float64,0xbfed149a097a2934,0xbfe79ab7e3e93c1c,1
+np.float64,0x7fc2769a5724ed34,0x3ff921fb54442d18,1
+np.float64,0xffd01e4e99a03c9e,0xbff921fb54442d18,1
+np.float64,0xa61f38434c3e7,0xa61f38434c3e7,1
+np.float64,0x800ad4ac5195a959,0x800ad4ac5195a959,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x80034a45b6c6948c,0x80034a45b6c6948c,1
+np.float64,0x6350b218c6a17,0x6350b218c6a17,1
+np.float64,0xfff0000000000000,0xbff921fb54442d18,1
+np.float64,0x3fe363e759e6c7cf,0x3fe16ed58d80f9ce,1
+np.float64,0xffe3b98e59e7731c,0xbff921fb54442d18,1
+np.float64,0x3fdbf7b40337ef68,0x3fda5df7ad3c80f9,1
+np.float64,0xbfe9cdf784739bef,0xbfe5b74f346ef93d,1
+np.float64,0xbfc321bea326437c,0xbfc2fdc0d4ff7561,1
+np.float64,0xbfe40f77d2a81ef0,0xbfe1eb28c4ae4dde,1
+np.float64,0x7fe071806960e300,0x3ff921fb54442d18,1
+np.float64,0x7fd269006ea4d200,0x3ff921fb54442d18,1
+np.float64,0x80017a56e0e2f4af,0x80017a56e0e2f4af,1
+np.float64,0x8004b4ea09a969d5,0x8004b4ea09a969d5,1
+np.float64,0xbfedbb01e63b7604,0xbfe7f4f0e84297df,1
+np.float64,0x3fe44454826888a9,0x3fe210ff6d005706,1
+np.float64,0xbfe0e77e6ea1cefd,0xbfdf1a977da33402,1
+np.float64,0xbfed6d4c8c3ada99,0xbfe7cb0932093f60,1
+np.float64,0x1d74cb9e3ae9a,0x1d74cb9e3ae9a,1
+np.float64,0x80082a785d1054f1,0x80082a785d1054f1,1
+np.float64,0x3fe58393266b0726,0x3fe2f0d8e91d4887,1
+np.float64,0xffe4028899680510,0xbff921fb54442d18,1
+np.float64,0x783a2e5af0746,0x783a2e5af0746,1
+np.float64,0x7fcdce88e73b9d11,0x3ff921fb54442d18,1
+np.float64,0x3fc58672a72b0ce5,0x3fc5535e090e56e2,1
+np.float64,0x800889c839b11391,0x800889c839b11391,1
+np.float64,0xffe5e05c466bc0b8,0xbff921fb54442d18,1
+np.float64,0xbfcbef6ebe37dedc,0xbfcb810752468f49,1
+np.float64,0xffe9408563b2810a,0xbff921fb54442d18,1
+np.float64,0xbfee4738367c8e70,0xbfe83f8e5dd7602f,1
+np.float64,0xbfe4aeb587295d6b,0xbfe25c7a0c76a454,1
+np.float64,0xffc9aea0a7335d40,0xbff921fb54442d18,1
+np.float64,0xe1e02199c3c04,0xe1e02199c3c04,1
+np.float64,0xbfbd9400783b2800,0xbfbd729345d1d14f,1
+np.float64,0x7a5418bcf4a84,0x7a5418bcf4a84,1
+np.float64,0x3fdc1c2fa5b83860,0x3fda7c935965ae72,1
+np.float64,0x80076a9f58ced53f,0x80076a9f58ced53f,1
+np.float64,0x3fedc4bf957b897f,0x3fe7fa2a83148f1c,1
+np.float64,0x800981b8a9d30372,0x800981b8a9d30372,1
+np.float64,0xffe1082311621046,0xbff921fb54442d18,1
+np.float64,0xe0091f89c0124,0xe0091f89c0124,1
+np.float64,0xbfce8d674f3d1ad0,0xbfcdfdbf2ddaa0ca,1
+np.float64,0x800516e72eaa2dcf,0x800516e72eaa2dcf,1
+np.float64,0xffe61ee64c6c3dcc,0xbff921fb54442d18,1
+np.float64,0x7fed2683cafa4d07,0x3ff921fb54442d18,1
+np.float64,0xffd4faf27729f5e4,0xbff921fb54442d18,1
+np.float64,0x7fe308fa842611f4,0x3ff921fb54442d18,1
+np.float64,0x3fc612a62b2c2550,0x3fc5db9ddbd4e159,1
+np.float64,0xbfe5b01e766b603d,0xbfe30f72a875e988,1
+np.float64,0x3fc2dd8b9a25bb17,0x3fc2bb06246b9f78,1
+np.float64,0x8170908102e12,0x8170908102e12,1
+np.float64,0x800c1c8a8a583915,0x800c1c8a8a583915,1
+np.float64,0xffe5d91e8b6bb23c,0xbff921fb54442d18,1
+np.float64,0xffd140adee22815c,0xbff921fb54442d18,1
+np.float64,0xbfe2f1f5f8e5e3ec,0xbfe11afa5d749952,1
+np.float64,0xbfed6d1d587ada3b,0xbfe7caef9ecf7651,1
+np.float64,0x3fe9b85e67f370bd,0x3fe5aa3474768982,1
+np.float64,0x7fdc8932edb91265,0x3ff921fb54442d18,1
+np.float64,0x7fd136bc54a26d78,0x3ff921fb54442d18,1
+np.float64,0x800a1ea12a343d43,0x800a1ea12a343d43,1
+np.float64,0x3fec6a5c1b78d4b8,0x3fe73c82235c3f8f,1
+np.float64,0x800fbf6a00df7ed4,0x800fbf6a00df7ed4,1
+np.float64,0xbfd0e6e0cda1cdc2,0xbfd0864bf8cad294,1
+np.float64,0x3fc716df482e2dbf,0x3fc6d7fbfd4a8470,1
+np.float64,0xbfe75990936eb321,0xbfe42bffec3fa0d7,1
+np.float64,0x3fd58e54a02b1ca9,0x3fd4cace1107a5cc,1
+np.float64,0xbfc9c04136338084,0xbfc9696ad2591d54,1
+np.float64,0xdd1f0147ba3e0,0xdd1f0147ba3e0,1
+np.float64,0x5c86a940b90e,0x5c86a940b90e,1
+np.float64,0xbfecae3b8e795c77,0xbfe7624d4988c612,1
+np.float64,0xffd0370595206e0c,0xbff921fb54442d18,1
+np.float64,0xbfdc26d443384da8,0xbfda857ecd33ba9f,1
+np.float64,0xbfd1c849d9a39094,0xbfd15849449cc378,1
+np.float64,0xffee04acdb3c0959,0xbff921fb54442d18,1
+np.float64,0xbfded1056dbda20a,0xbfdcb83b30e1528c,1
+np.float64,0x7fb7b826622f704c,0x3ff921fb54442d18,1
+np.float64,0xbfee4df8ae7c9bf1,0xbfe8431df9dfd05d,1
+np.float64,0x7fe7f3670e2fe6cd,0x3ff921fb54442d18,1
+np.float64,0x8008ac9ae0d15936,0x8008ac9ae0d15936,1
+np.float64,0x800dce9f3b3b9d3f,0x800dce9f3b3b9d3f,1
+np.float64,0x7fbb19db203633b5,0x3ff921fb54442d18,1
+np.float64,0x3fe56c7f302ad8fe,0x3fe2e0eec3ad45fd,1
+np.float64,0x7fe82c05c570580b,0x3ff921fb54442d18,1
+np.float64,0xc0552b7780aa6,0xc0552b7780aa6,1
+np.float64,0x39d40e3073a83,0x39d40e3073a83,1
+np.float64,0x3fd8db54d731b6aa,0x3fd7b589b3ee9b20,1
+np.float64,0xffcdd355233ba6ac,0xbff921fb54442d18,1
+np.float64,0x3fbe97b3a43d2f67,0x3fbe72bca9be0348,1
+np.float64,0xbff0000000000000,0xbfe921fb54442d18,1
+np.float64,0xbfb4f55e6229eac0,0xbfb4e96df18a75a7,1
+np.float64,0xbfc66399ba2cc734,0xbfc62a3298bd96fc,1
+np.float64,0x3fd00988bb201311,0x3fcf6d67a9374c38,1
+np.float64,0x7fe471867d28e30c,0x3ff921fb54442d18,1
+np.float64,0xbfe38e0e64271c1d,0xbfe18d9888b7523b,1
+np.float64,0x8009dc127573b825,0x8009dc127573b825,1
+np.float64,0x800047bde4608f7d,0x800047bde4608f7d,1
+np.float64,0xffeede42c77dbc85,0xbff921fb54442d18,1
+np.float64,0xd8cf6d13b19ee,0xd8cf6d13b19ee,1
+np.float64,0xbfd08fb302a11f66,0xbfd034b1f8235e23,1
+np.float64,0x7fdb404c0b368097,0x3ff921fb54442d18,1
+np.float64,0xbfd6ba0438ad7408,0xbfd5d673e3276ec1,1
+np.float64,0xffd9568027b2ad00,0xbff921fb54442d18,1
+np.float64,0xbfb313b73e262770,0xbfb30ab4acb4fa67,1
+np.float64,0xbfe2dc1a15e5b834,0xbfe10ac5f8f3acd3,1
+np.float64,0xbfee426bf4bc84d8,0xbfe83d061df91edd,1
+np.float64,0xd9142c2fb2286,0xd9142c2fb2286,1
+np.float64,0x7feb0d11dff61a23,0x3ff921fb54442d18,1
+np.float64,0x800fea5b509fd4b7,0x800fea5b509fd4b7,1
+np.float64,0x3fe1a8818da35103,0x3fe022ba1bdf366e,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0xbfd8fc6de6b1f8dc,0xbfd7d24726ed8dcc,1
+np.float64,0xf4b3dc2de967c,0xf4b3dc2de967c,1
+np.float64,0x8af0409b15e08,0x8af0409b15e08,1
+np.float64,0x3fb21e6934243cd2,0x3fb216b065f8709a,1
+np.float64,0x3fc53069392a60d2,0x3fc4ffa931211fb9,1
+np.float64,0xffc955812c32ab04,0xbff921fb54442d18,1
+np.float64,0xbfe3de42b1a7bc86,0xbfe1c7bd1324de75,1
+np.float64,0x1dc149a03b82a,0x1dc149a03b82a,1
+np.float64,0x8001bc5a24a378b5,0x8001bc5a24a378b5,1
+np.float64,0x3da14c407b44,0x3da14c407b44,1
+np.float64,0x80025e8da924bd1c,0x80025e8da924bd1c,1
+np.float64,0xbfcb0141c9360284,0xbfca9d572ea5e1f3,1
+np.float64,0xc90036fd92007,0xc90036fd92007,1
+np.float64,0x138312c427063,0x138312c427063,1
+np.float64,0x800dda3a963bb475,0x800dda3a963bb475,1
+np.float64,0x3fe9339934f26732,0x3fe558e723291f78,1
+np.float64,0xbfea8357027506ae,0xbfe6240826faaf48,1
+np.float64,0x7fe04735cae08e6b,0x3ff921fb54442d18,1
+np.float64,0x3fe29aca3c653594,0x3fe0da214c8bc6a4,1
+np.float64,0x3fbe1f09a03c3e13,0x3fbdfbbefef0155b,1
+np.float64,0x816ee4ad02ddd,0x816ee4ad02ddd,1
+np.float64,0xffddd1b31d3ba366,0xbff921fb54442d18,1
+np.float64,0x3fe2e01e0625c03c,0x3fe10dc0bd6677c2,1
+np.float64,0x3fec6bcf1978d79e,0x3fe73d518cddeb7c,1
+np.float64,0x7fe01aaaf8603555,0x3ff921fb54442d18,1
+np.float64,0xdf300cc5be602,0xdf300cc5be602,1
+np.float64,0xbfe71c01a36e3804,0xbfe403af80ce47b8,1
+np.float64,0xffa5be00ac2b7c00,0xbff921fb54442d18,1
+np.float64,0xbfda9ba711b5374e,0xbfd93775e3ac6bda,1
+np.float64,0xbfe56d8a27eadb14,0xbfe2e1a7185e8e6d,1
+np.float64,0x800f1bc937be3792,0x800f1bc937be3792,1
+np.float64,0x800a61d93c74c3b3,0x800a61d93c74c3b3,1
+np.float64,0x7fe71a52fcae34a5,0x3ff921fb54442d18,1
+np.float64,0x7fb4aef256295de4,0x3ff921fb54442d18,1
+np.float64,0x3fe6c1e861ed83d1,0x3fe3c828f281a7ef,1
+np.float64,0x3fba128402342508,0x3fb9fb94cf141860,1
+np.float64,0x3fee55a7ecfcab50,0x3fe8472a9af893ee,1
+np.float64,0x3fe586f31b2b0de6,0x3fe2f32bce9e91bc,1
+np.float64,0xbfbb1d1442363a28,0xbfbb034c7729d5f2,1
+np.float64,0xc78b4d3f8f16a,0xc78b4d3f8f16a,1
+np.float64,0x7fdbc277d4b784ef,0x3ff921fb54442d18,1
+np.float64,0xbfa728ca2c2e5190,0xbfa724c04e73ccbd,1
+np.float64,0x7fefc7b2143f8f63,0x3ff921fb54442d18,1
+np.float64,0x3fd153a3dda2a748,0x3fd0ebccd33a4dca,1
+np.float64,0xbfe18a6eace314de,0xbfe00ba32ec89d30,1
+np.float64,0x7feef518537dea30,0x3ff921fb54442d18,1
+np.float64,0x8005f007cd4be010,0x8005f007cd4be010,1
+np.float64,0x7fd890b840b12170,0x3ff921fb54442d18,1
+np.float64,0x7feed0582ebda0af,0x3ff921fb54442d18,1
+np.float64,0x1013f53220280,0x1013f53220280,1
+np.float64,0xbfe77273986ee4e7,0xbfe43c375a8bf6de,1
+np.float64,0x7fe3ab8918675711,0x3ff921fb54442d18,1
+np.float64,0xbfc6ad515b2d5aa4,0xbfc671b2f7f86624,1
+np.float64,0x7fcd86231d3b0c45,0x3ff921fb54442d18,1
+np.float64,0xffe2523299a4a464,0xbff921fb54442d18,1
+np.float64,0x7fcadc5a1b35b8b3,0x3ff921fb54442d18,1
+np.float64,0x3fe5e020c4ebc042,0x3fe330418eec75bd,1
+np.float64,0x7fe332a9dc266553,0x3ff921fb54442d18,1
+np.float64,0xfa11dc21f425,0xfa11dc21f425,1
+np.float64,0xbec800177d900,0xbec800177d900,1
+np.float64,0x3fcadd057835ba0b,0x3fca7aa42face8bc,1
+np.float64,0xbfe6b9a206ad7344,0xbfe3c2a9719803de,1
+np.float64,0x3fbb4250b63684a0,0x3fbb281e9cefc519,1
+np.float64,0x7fef8787517f0f0e,0x3ff921fb54442d18,1
+np.float64,0x8001315c2d6262b9,0x8001315c2d6262b9,1
+np.float64,0xbfd94e3cf2b29c7a,0xbfd819257d36f56c,1
+np.float64,0xf1f325abe3e65,0xf1f325abe3e65,1
+np.float64,0x7fd6c07079ad80e0,0x3ff921fb54442d18,1
+np.float64,0x7fe328b075a65160,0x3ff921fb54442d18,1
+np.float64,0x7fe7998f812f331e,0x3ff921fb54442d18,1
+np.float64,0xffe026bb65604d76,0xbff921fb54442d18,1
+np.float64,0xffd6c06de8ad80dc,0xbff921fb54442d18,1
+np.float64,0x3fcd5a37bf3ab46f,0x3fccda82935d98ce,1
+np.float64,0xffc3e5a45227cb48,0xbff921fb54442d18,1
+np.float64,0x3febf7dd8177efbc,0x3fe6fc0bb999883e,1
+np.float64,0x7fd7047ea92e08fc,0x3ff921fb54442d18,1
+np.float64,0x35b3fc406b680,0x35b3fc406b680,1
+np.float64,0x7fd52e97632a5d2e,0x3ff921fb54442d18,1
+np.float64,0x3fd464d401a8c9a8,0x3fd3be2967fc97c3,1
+np.float64,0x800e815b2ebd02b6,0x800e815b2ebd02b6,1
+np.float64,0x3fca8428af350850,0x3fca257b466b8970,1
+np.float64,0x8007b7526f6f6ea6,0x8007b7526f6f6ea6,1
+np.float64,0x82f60a8f05ec2,0x82f60a8f05ec2,1
+np.float64,0x3fb71a5d0a2e34c0,0x3fb70a629ef8e2a2,1
+np.float64,0x7fc8570c7d30ae18,0x3ff921fb54442d18,1
+np.float64,0x7fe5528e77eaa51c,0x3ff921fb54442d18,1
+np.float64,0xffc20dbbf1241b78,0xbff921fb54442d18,1
+np.float64,0xeb13368fd6267,0xeb13368fd6267,1
+np.float64,0x7fe7d529056faa51,0x3ff921fb54442d18,1
+np.float64,0x3fecd02eabf9a05d,0x3fe77516f0ba1ac4,1
+np.float64,0x800fcba6a09f974d,0x800fcba6a09f974d,1
+np.float64,0x7fe7e8e015afd1bf,0x3ff921fb54442d18,1
+np.float64,0xbfd271a382a4e348,0xbfd1f513a191c595,1
+np.float64,0x9f1014013e21,0x9f1014013e21,1
+np.float64,0x3fc05da47f20bb49,0x3fc04708a13a3a47,1
+np.float64,0x3fe0f427dda1e850,0x3fdf2e60ba8678b9,1
+np.float64,0xbfecb29fa539653f,0xbfe764bc791c45dd,1
+np.float64,0x45881ec68b104,0x45881ec68b104,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x3fe9c67ee1338cfe,0x3fe5b2c7b3df6ce8,1
+np.float64,0x7fedb8fef6bb71fd,0x3ff921fb54442d18,1
+np.float64,0x3fe54f6aaaea9ed6,0x3fe2ccd1df2abaa9,1
+np.float64,0x7feff58a1bbfeb13,0x3ff921fb54442d18,1
+np.float64,0x7fe3b62827276c4f,0x3ff921fb54442d18,1
+np.float64,0x3fe5feb682ebfd6d,0x3fe345105bc6d980,1
+np.float64,0x3fe49f38d9693e72,0x3fe2518b2824757f,1
+np.float64,0x8006bfd27c6d7fa6,0x8006bfd27c6d7fa6,1
+np.float64,0x3fc13409e2226814,0x3fc119ce0c01a5a2,1
+np.float64,0x95f8c7212bf19,0x95f8c7212bf19,1
+np.float64,0x3fd9f0fa6133e1f5,0x3fd8a567515edecf,1
+np.float64,0x3fef95cbe5ff2b98,0x3fe8ec88c768ba0b,1
+np.float64,0x3fbed28bba3da510,0x3fbeacbf136e51c2,1
+np.float64,0xbfd3987aeca730f6,0xbfd303fca58e3e60,1
+np.float64,0xbfed0f90cbfa1f22,0xbfe797f59249410d,1
+np.float64,0xffe55d8cbf2abb19,0xbff921fb54442d18,1
+np.float64,0x3feb4d9fc6769b40,0x3fe69a88131a1f1f,1
+np.float64,0x80085569acd0aad4,0x80085569acd0aad4,1
+np.float64,0x20557a6e40ab0,0x20557a6e40ab0,1
+np.float64,0x3fead2fd5df5a5fb,0x3fe653091f33b27f,1
+np.float64,0x3fe7b9983eaf7330,0x3fe46a50c4b5235e,1
+np.float64,0xffdad237ffb5a470,0xbff921fb54442d18,1
+np.float64,0xbfe5cc39a4eb9874,0xbfe322ad3a903f93,1
+np.float64,0x800ad6eecb35adde,0x800ad6eecb35adde,1
+np.float64,0xffec620f6438c41e,0xbff921fb54442d18,1
+np.float64,0xbfe5ef29122bde52,0xbfe33a7dfcc255e2,1
+np.float64,0x3fd451e7d0a8a3d0,0x3fd3acfa4939af10,1
+np.float64,0x8003ea93c127d528,0x8003ea93c127d528,1
+np.float64,0x800b48d37c9691a7,0x800b48d37c9691a7,1
+np.float64,0x3fe7e202acafc405,0x3fe484558246069b,1
+np.float64,0x80070c9b686e1938,0x80070c9b686e1938,1
+np.float64,0xbfda90bbc6352178,0xbfd92e25fcd12288,1
+np.float64,0x800e1ffebb1c3ffe,0x800e1ffebb1c3ffe,1
+np.float64,0x3ff0000000000000,0x3fe921fb54442d18,1
+np.float64,0xffd8cfdd46319fba,0xbff921fb54442d18,1
+np.float64,0x7fd8cd4182319a82,0x3ff921fb54442d18,1
+np.float64,0x3fed8bb778bb176f,0x3fe7db7c77c4c694,1
+np.float64,0x3fc74a70302e94e0,0x3fc709e95d6defec,1
+np.float64,0x3fe87269d070e4d4,0x3fe4e04bcc4a2137,1
+np.float64,0x7fb48223f6290447,0x3ff921fb54442d18,1
+np.float64,0xffe8ec444b71d888,0xbff921fb54442d18,1
+np.float64,0x7fde17d280bc2fa4,0x3ff921fb54442d18,1
+np.float64,0x3fd1cbde01a397bc,0x3fd15b9bb7b3147b,1
+np.float64,0x800883a64451074d,0x800883a64451074d,1
+np.float64,0x7fe3160a3f262c13,0x3ff921fb54442d18,1
+np.float64,0xbfe051d4d9a0a3aa,0xbfde2ecf14dc75fb,1
+np.float64,0xbfd89de689b13bce,0xbfd780176d1a28a3,1
+np.float64,0x3fecde2bf779bc58,0x3fe77ccf10bdd8e2,1
+np.float64,0xffe75774dc6eaee9,0xbff921fb54442d18,1
+np.float64,0x7fe834414d706882,0x3ff921fb54442d18,1
+np.float64,0x1,0x1,1
+np.float64,0xbfea5e4e4a74bc9c,0xbfe60e0601711835,1
+np.float64,0xffec248d4cb8491a,0xbff921fb54442d18,1
+np.float64,0xffd9942c2c332858,0xbff921fb54442d18,1
+np.float64,0xa9db36a553b67,0xa9db36a553b67,1
+np.float64,0x7fec630718b8c60d,0x3ff921fb54442d18,1
+np.float64,0xbfd062188f20c432,0xbfd009ecd652be89,1
+np.float64,0x8001b84e3023709d,0x8001b84e3023709d,1
+np.float64,0xbfe9e26d7cb3c4db,0xbfe5c3b157ecf668,1
+np.float64,0xbfef66ddf33ecdbc,0xbfe8d4b1f6410a24,1
+np.float64,0x3fd8d7109431ae21,0x3fd7b1d4860719a2,1
+np.float64,0xffee0f53107c1ea5,0xbff921fb54442d18,1
+np.float64,0x80000b4fd60016a0,0x80000b4fd60016a0,1
+np.float64,0xbfd99ff6e5333fee,0xbfd85fb3cbdaa049,1
+np.float64,0xbfe9cfd268339fa5,0xbfe5b86ef021a1b1,1
+np.float64,0xe32eace1c65d6,0xe32eace1c65d6,1
+np.float64,0xffc81f6627303ecc,0xbff921fb54442d18,1
+np.float64,0x7fe98dadde331b5b,0x3ff921fb54442d18,1
+np.float64,0xbfbcebd11e39d7a0,0xbfbccc8ec47883c7,1
+np.float64,0x7fe164880f22c90f,0x3ff921fb54442d18,1
+np.float64,0x800467c0cae8cf82,0x800467c0cae8cf82,1
+np.float64,0x800071e4b140e3ca,0x800071e4b140e3ca,1
+np.float64,0xbfc87a7eae30f4fc,0xbfc82fbc55bb0f24,1
+np.float64,0xffb2e0e23225c1c8,0xbff921fb54442d18,1
+np.float64,0x20ef338041df,0x20ef338041df,1
+np.float64,0x7fe6de71ca6dbce3,0x3ff921fb54442d18,1
+np.float64,0x5d1fa026ba3f5,0x5d1fa026ba3f5,1
+np.float64,0xffd112a9ce222554,0xbff921fb54442d18,1
+np.float64,0x3fb351f66626a3ed,0x3fb3489ab578c452,1
+np.float64,0x7fef7b2bd3bef657,0x3ff921fb54442d18,1
+np.float64,0xffe144f5d4e289eb,0xbff921fb54442d18,1
+np.float64,0xffd63a6750ac74ce,0xbff921fb54442d18,1
+np.float64,0x7fd2d8bb25a5b175,0x3ff921fb54442d18,1
+np.float64,0x3fec5920a078b242,0x3fe732dcffcf6521,1
+np.float64,0x80009a8b7f813518,0x80009a8b7f813518,1
+np.float64,0x3fdea220893d4441,0x3fdc921edf6bf3d8,1
+np.float64,0x8006cee2208d9dc5,0x8006cee2208d9dc5,1
+np.float64,0xdd0b0081ba17,0xdd0b0081ba17,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfdac33955358672,0xbfd9592bce7daf1f,1
+np.float64,0x7fe8301d7170603a,0x3ff921fb54442d18,1
+np.float64,0xbfc1d34d8523a69c,0xbfc1b62449af9684,1
+np.float64,0x800c62239458c447,0x800c62239458c447,1
+np.float64,0xffd398c009a73180,0xbff921fb54442d18,1
+np.float64,0xbfe0c6d9ee218db4,0xbfdee777557f4401,1
+np.float64,0x3feccdd373799ba7,0x3fe773c9c2263f89,1
+np.float64,0xbfd21898bda43132,0xbfd1a2be8545fcc5,1
+np.float64,0x3fd77019b62ee033,0x3fd67793cabdf267,1
+np.float64,0x7fa609cad42c1395,0x3ff921fb54442d18,1
+np.float64,0x7fb4eaea5a29d5d4,0x3ff921fb54442d18,1
+np.float64,0x3fc570dc9a2ae1b9,0x3fc53e5f6218a799,1
+np.float64,0x800344ae8466895e,0x800344ae8466895e,1
+np.float64,0xbfc7c985252f930c,0xbfc784d60fa27bac,1
+np.float64,0xffaa2929fc345250,0xbff921fb54442d18,1
+np.float64,0xffe63e5ee9ac7cbe,0xbff921fb54442d18,1
+np.float64,0x73f0280ce7e06,0x73f0280ce7e06,1
+np.float64,0xffc525f8822a4bf0,0xbff921fb54442d18,1
+np.float64,0x7fd744d00aae899f,0x3ff921fb54442d18,1
+np.float64,0xbfe0fe590761fcb2,0xbfdf3e493e8b1f32,1
+np.float64,0xfae04ae7f5c0a,0xfae04ae7f5c0a,1
+np.float64,0xef821939df043,0xef821939df043,1
+np.float64,0x7fef6135843ec26a,0x3ff921fb54442d18,1
+np.float64,0xbfebf34dcbf7e69c,0xbfe6f97588a8f911,1
+np.float64,0xbfeec0b498fd8169,0xbfe87f2eceeead12,1
+np.float64,0x7fb67161b42ce2c2,0x3ff921fb54442d18,1
+np.float64,0x3fdcfd998639fb33,0x3fdb38934927c096,1
+np.float64,0xffda5960bc34b2c2,0xbff921fb54442d18,1
+np.float64,0xbfe11f8c71223f19,0xbfdf71fe770c96ab,1
+np.float64,0x3fe4ac1bab695838,0x3fe25aa4517b8322,1
+np.float64,0x3f730458a02608b1,0x3f73044fabb5e999,1
+np.float64,0x3fdb14ffcdb62a00,0x3fd99ea6c241a3ed,1
+np.float64,0xbfc93208cd326410,0xbfc8e09d78b6d4db,1
+np.float64,0x19e734dc33ce8,0x19e734dc33ce8,1
+np.float64,0x3fe5e98428abd308,0x3fe336a6a085eb55,1
+np.float64,0x7fec672a1378ce53,0x3ff921fb54442d18,1
+np.float64,0x800f8bd8d4ff17b2,0x800f8bd8d4ff17b2,1
+np.float64,0xbfe5a12e4e6b425c,0xbfe30533f99d5d06,1
+np.float64,0x75a34cb0eb46a,0x75a34cb0eb46a,1
+np.float64,0x7fe1d21d16a3a439,0x3ff921fb54442d18,1
+np.float64,0x7ff0000000000000,0x3ff921fb54442d18,1
+np.float64,0xffe0f50db261ea1b,0xbff921fb54442d18,1
+np.float64,0xbfd9dc22feb3b846,0xbfd8937ec965a501,1
+np.float64,0x8009d68e48d3ad1d,0x8009d68e48d3ad1d,1
+np.float64,0xbfe2eba620e5d74c,0xbfe1164d7d273c60,1
+np.float64,0x992efa09325e0,0x992efa09325e0,1
+np.float64,0x3fdab640ea356c82,0x3fd94e20cab88db2,1
+np.float64,0x69a6f04ad34df,0x69a6f04ad34df,1
+np.float64,0x3fe397df25272fbe,0x3fe194bd1a3a6192,1
+np.float64,0xebcce9fdd799d,0xebcce9fdd799d,1
+np.float64,0x3fbb49490c369292,0x3fbb2f02eccc497d,1
+np.float64,0xffd871f980b0e3f4,0xbff921fb54442d18,1
+np.float64,0x800348f6966691ee,0x800348f6966691ee,1
+np.float64,0xbfebc270a7f784e1,0xbfe6dda8d0d80f26,1
+np.float64,0xffd6d559b1adaab4,0xbff921fb54442d18,1
+np.float64,0x3fec3635c0b86c6c,0x3fe71f420256e43e,1
+np.float64,0x7fbc82ad7039055a,0x3ff921fb54442d18,1
+np.float64,0x7f873050602e60a0,0x3ff921fb54442d18,1
+np.float64,0x3fca44b8c3348970,0x3fc9e8a1a1a2d96e,1
+np.float64,0x3fe0fc308fe1f861,0x3fdf3aeb469ea225,1
+np.float64,0x7fefc27de8bf84fb,0x3ff921fb54442d18,1
+np.float64,0x8005f3f3916be7e8,0x8005f3f3916be7e8,1
+np.float64,0xbfd4278c7c284f18,0xbfd38678988873b6,1
+np.float64,0x435eafc486bd7,0x435eafc486bd7,1
+np.float64,0xbfd01f5199203ea4,0xbfcf96631f2108a3,1
+np.float64,0xffd5ee9185abdd24,0xbff921fb54442d18,1
+np.float64,0xffedb363257b66c5,0xbff921fb54442d18,1
+np.float64,0x800d68e6e11ad1ce,0x800d68e6e11ad1ce,1
+np.float64,0xbfcf687f8e3ed100,0xbfceccb771b0d39a,1
+np.float64,0x7feb3b9ef2f6773d,0x3ff921fb54442d18,1
+np.float64,0x3fe15ec5ca62bd8c,0x3fdfd3fab9d96f81,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0xd2386f81a470e,0xd2386f81a470e,1
+np.float64,0xb9feed4573fde,0xb9feed4573fde,1
+np.float64,0x3fe7ed25c9efda4c,0x3fe48b7b72db4014,1
+np.float64,0xbfe01478726028f1,0xbfddcd1f5a2efc59,1
+np.float64,0x9946d02f328da,0x9946d02f328da,1
+np.float64,0xbfe3bb67f06776d0,0xbfe1ae88aa81c5a6,1
+np.float64,0xbfd3fd8a4c27fb14,0xbfd3603982e3b78d,1
+np.float64,0xffd5c3ab912b8758,0xbff921fb54442d18,1
+np.float64,0xffd5f502b12bea06,0xbff921fb54442d18,1
+np.float64,0xbfc64981ec2c9304,0xbfc610e0382b1fa6,1
+np.float64,0xffec42e3413885c6,0xbff921fb54442d18,1
+np.float64,0x80084eb4ed109d6a,0x80084eb4ed109d6a,1
+np.float64,0xbfd17cac9fa2f95a,0xbfd112020588a4b3,1
+np.float64,0xbfd06c1359a0d826,0xbfd0134a28aa9a66,1
+np.float64,0x7fdc3d7c03b87af7,0x3ff921fb54442d18,1
+np.float64,0x7bdf5aaaf7bec,0x7bdf5aaaf7bec,1
+np.float64,0xbfee3cd966fc79b3,0xbfe83a14bc07ac3b,1
+np.float64,0x7fec910da3f9221a,0x3ff921fb54442d18,1
+np.float64,0xffb4ea667029d4d0,0xbff921fb54442d18,1
+np.float64,0x800103d7cce207b0,0x800103d7cce207b0,1
+np.float64,0x7fbb229a6c364534,0x3ff921fb54442d18,1
+np.float64,0x0,0x0,1
+np.float64,0xffd8fccd0331f99a,0xbff921fb54442d18,1
+np.float64,0xbfd0784ae1a0f096,0xbfd01ebff62e39ad,1
+np.float64,0xbfed2ec9b3ba5d93,0xbfe7a9099410bc76,1
+np.float64,0x800690b8d16d2172,0x800690b8d16d2172,1
+np.float64,0x7fc061b26520c364,0x3ff921fb54442d18,1
+np.float64,0x8007ec47054fd88f,0x8007ec47054fd88f,1
+np.float64,0x775546b6eeaa9,0x775546b6eeaa9,1
+np.float64,0x8005e00fb56bc020,0x8005e00fb56bc020,1
+np.float64,0xbfe510f8d0ea21f2,0xbfe2a16862b5a37f,1
+np.float64,0xffd87a6bf3b0f4d8,0xbff921fb54442d18,1
+np.float64,0x800906e3d0520dc8,0x800906e3d0520dc8,1
+np.float64,0x2296f000452f,0x2296f000452f,1
+np.float64,0xbfe3189fa2e63140,0xbfe1378c0e005be4,1
+np.float64,0xb4d2447f69a49,0xb4d2447f69a49,1
+np.float64,0xffd056a24a20ad44,0xbff921fb54442d18,1
+np.float64,0xbfe3b23fe4e76480,0xbfe1a7e5840fcbeb,1
+np.float64,0x80018ee270831dc6,0x80018ee270831dc6,1
+np.float64,0x800df89f245bf13e,0x800df89f245bf13e,1
+np.float64,0x3fee1409d7bc2814,0x3fe824779d133232,1
+np.float64,0xbfef8d81667f1b03,0xbfe8e85523620368,1
+np.float64,0xffd8a6519b314ca4,0xbff921fb54442d18,1
+np.float64,0x7fc7bc86f32f790d,0x3ff921fb54442d18,1
+np.float64,0xffea6159e674c2b3,0xbff921fb54442d18,1
+np.float64,0x3fe153c3fba2a788,0x3fdfc2f74769d300,1
+np.float64,0xffc4261ef3284c3c,0xbff921fb54442d18,1
+np.float64,0x7fe8a8961ff1512b,0x3ff921fb54442d18,1
+np.float64,0xbfe3fb1fd167f640,0xbfe1dc89dcb7ecdf,1
+np.float64,0x3fd88577c2b10af0,0x3fd76acc09660704,1
+np.float64,0x3fe128ec27e251d8,0x3fdf808fc7ebcd8f,1
+np.float64,0xbfed6ca7c4fad950,0xbfe7caafe9a3e213,1
+np.float64,0xbf9a3912b8347220,0xbf9a379b3349352e,1
+np.float64,0xbfd724d7bcae49b0,0xbfd6351efa2a5fc5,1
+np.float64,0xbfed59700a7ab2e0,0xbfe7c043014c694c,1
+np.float64,0x8002ad435bc55a87,0x8002ad435bc55a87,1
+np.float64,0xffe46ed345a8dda6,0xbff921fb54442d18,1
+np.float64,0x7fd2f1d1d825e3a3,0x3ff921fb54442d18,1
+np.float64,0xbfea0265e23404cc,0xbfe5d6fb3fd30464,1
+np.float64,0xbfd17e049122fc0a,0xbfd113421078bbae,1
+np.float64,0xffea03b986b40772,0xbff921fb54442d18,1
+np.float64,0x800b55331a16aa67,0x800b55331a16aa67,1
+np.float64,0xbfc6fcafbf2df960,0xbfc6be9ecd0ebc1f,1
+np.float64,0xd6a36017ad46c,0xd6a36017ad46c,1
+np.float64,0xbfe9ba86dfb3750e,0xbfe5ab840cb0ef86,1
+np.float64,0x75c4a108eb895,0x75c4a108eb895,1
+np.float64,0x8008d6bc8051ad79,0x8008d6bc8051ad79,1
+np.float64,0xbfd3dc5984a7b8b4,0xbfd341f78e0528ec,1
+np.float64,0xffe1cbb01aa39760,0xbff921fb54442d18,1
+np.float64,0x3fc7e292f52fc526,0x3fc79d0ce9365767,1
+np.float64,0xbfcbeae2bd37d5c4,0xbfcb7cb034f82467,1
+np.float64,0x8000f0c62e21e18d,0x8000f0c62e21e18d,1
+np.float64,0xbfe23d8bc6247b18,0xbfe09418ee35c3c7,1
+np.float64,0x717394bae2e73,0x717394bae2e73,1
+np.float64,0xffa2ef1cc425de40,0xbff921fb54442d18,1
+np.float64,0x3fd938c229b27184,0x3fd806900735c99d,1
+np.float64,0x800bf3ec8a77e7d9,0x800bf3ec8a77e7d9,1
+np.float64,0xffeef41dd57de83b,0xbff921fb54442d18,1
+np.float64,0x8008df97e5b1bf30,0x8008df97e5b1bf30,1
+np.float64,0xffe9ab9d0db35739,0xbff921fb54442d18,1
+np.float64,0x99ff391333fe7,0x99ff391333fe7,1
+np.float64,0x3fb864b4a630c969,0x3fb851e883ea2cf9,1
+np.float64,0x22c1230a45825,0x22c1230a45825,1
+np.float64,0xff2336fbfe467,0xff2336fbfe467,1
+np.float64,0xbfd488f4cea911ea,0xbfd3def0490f5414,1
+np.float64,0x3fa379c78426f38f,0x3fa377607370800b,1
+np.float64,0xbfb0873302210e68,0xbfb08155b78dfd53,1
+np.float64,0xbfdf9ff7c2bf3ff0,0xbfdd5f658e357ad2,1
+np.float64,0x800978719192f0e4,0x800978719192f0e4,1
+np.float64,0xbfba8759ea350eb0,0xbfba6f325013b9e5,1
+np.float64,0xbfdd3e6b06ba7cd6,0xbfdb6e472b6091b0,1
+np.float64,0x7fe0c334a7a18668,0x3ff921fb54442d18,1
+np.float64,0xbfeb971feb772e40,0xbfe6c4e0f61404d1,1
+np.float64,0x3fe2a50968e54a13,0x3fe0e1c8b8d96e85,1
+np.float64,0x800fa9c5515f538b,0x800fa9c5515f538b,1
+np.float64,0x800f8532fbbf0a66,0x800f8532fbbf0a66,1
+np.float64,0x167d6f1e2cfaf,0x167d6f1e2cfaf,1
+np.float64,0xffee88e769fd11ce,0xbff921fb54442d18,1
+np.float64,0xbfeecc8529fd990a,0xbfe885520cdad8ea,1
+np.float64,0xffefffffffffffff,0xbff921fb54442d18,1
+np.float64,0xbfef6a566afed4ad,0xbfe8d6767b4c4235,1
+np.float64,0xffec12415af82482,0xbff921fb54442d18,1
+np.float64,0x3678a20a6cf15,0x3678a20a6cf15,1
+np.float64,0xffe468d54ee8d1aa,0xbff921fb54442d18,1
+np.float64,0x800ad6006795ac01,0x800ad6006795ac01,1
+np.float64,0x8001d5b61063ab6d,0x8001d5b61063ab6d,1
+np.float64,0x800dfcd1863bf9a3,0x800dfcd1863bf9a3,1
+np.float64,0xc9fbff6f93f80,0xc9fbff6f93f80,1
+np.float64,0xffe55c20f9eab842,0xbff921fb54442d18,1
+np.float64,0xbfcb596b6536b2d8,0xbfcaf1b339c5c615,1
+np.float64,0xbfe092689ea124d1,0xbfde94fa58946e51,1
+np.float64,0x3fe9ec733af3d8e6,0x3fe5c9bf5dee2623,1
+np.float64,0x3fe30f3d83261e7b,0x3fe1309fd6620e03,1
+np.float64,0xffd31d7f84263b00,0xbff921fb54442d18,1
+np.float64,0xbfe88d2d3e711a5a,0xbfe4f12b5a136178,1
+np.float64,0xffc81e4ce1303c98,0xbff921fb54442d18,1
+np.float64,0xffe5b96ebfab72dd,0xbff921fb54442d18,1
+np.float64,0x512f0502a25e1,0x512f0502a25e1,1
+np.float64,0x7fa3a376982746ec,0x3ff921fb54442d18,1
+np.float64,0x80005b5f2f60b6bf,0x80005b5f2f60b6bf,1
+np.float64,0xc337cc69866fa,0xc337cc69866fa,1
+np.float64,0x3fe7719c4caee339,0x3fe43bab42b19e64,1
+np.float64,0x7fde7ec1d93cfd83,0x3ff921fb54442d18,1
+np.float64,0x3fd2f38f3825e71e,0x3fd26cc7b1dd0acb,1
+np.float64,0x7fce298b993c5316,0x3ff921fb54442d18,1
+np.float64,0x56ae3b2cad5c8,0x56ae3b2cad5c8,1
+np.float64,0x3fe9299f2bf2533e,0x3fe552bddd999e72,1
+np.float64,0x7feff3a4823fe748,0x3ff921fb54442d18,1
+np.float64,0xbfd05c670aa0b8ce,0xbfd00494d78e9e97,1
+np.float64,0xffe745323eae8a64,0xbff921fb54442d18,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctanh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctanh.csv
new file mode 100644
index 0000000..68ecaab
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-arctanh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x3ee82930,0x3efa60fd,2
+np.float32,0x3f0aa640,0x3f1b3e13,2
+np.float32,0x3ec1a21c,0x3ecbbf8d,2
+np.float32,0x3cdb1740,0x3cdb24a1,2
+np.float32,0xbf28b6f3,0xbf4a86ac,2
+np.float32,0xbe490dcc,0xbe4bb2eb,2
+np.float32,0x80000001,0x80000001,2
+np.float32,0xbf44f9dd,0xbf826ce1,2
+np.float32,0xbf1d66c4,0xbf37786b,2
+np.float32,0x3f0ad26a,0x3f1b7c9b,2
+np.float32,0x3f7b6c54,0x4016aab0,2
+np.float32,0xbf715bb8,0xbfe1a0bc,2
+np.float32,0xbee8a562,0xbefafd6a,2
+np.float32,0x3db94d00,0x3db9cf16,2
+np.float32,0x3ee2970c,0x3ef368b3,2
+np.float32,0x3f3f8614,0x3f77fdca,2
+np.float32,0xbf1fb5f0,0xbf3b3789,2
+np.float32,0x3f798dc0,0x400b96bb,2
+np.float32,0x3e975d64,0x3e9c0573,2
+np.float32,0xbe3f1908,0xbe415d1f,2
+np.float32,0x3f2cea38,0x3f52192e,2
+np.float32,0x3e82f1ac,0x3e85eaa1,2
+np.float32,0x3eab6b30,0x3eb24acd,2
+np.float32,0xbe9bb90c,0xbea0cf5f,2
+np.float32,0xbf43e847,0xbf81202f,2
+np.float32,0xbd232fa0,0xbd2345c0,2
+np.float32,0xbbabbc00,0xbbabbc67,2
+np.float32,0xbf0b2975,0xbf1bf808,2
+np.float32,0xbef5ab0a,0xbf05d305,2
+np.float32,0x3f2cad16,0x3f51a8e2,2
+np.float32,0xbef75940,0xbf06eb08,2
+np.float32,0xbf0c1216,0xbf1d4325,2
+np.float32,0x3e7bdc08,0x3e8090c2,2
+np.float32,0x3da14e10,0x3da1a3c5,2
+np.float32,0x3f627412,0x3fb2bf21,2
+np.float32,0xbd6d08c0,0xbd6d4ca0,2
+np.float32,0x3f3e2368,0x3f74df8b,2
+np.float32,0xbe0df104,0xbe0edc77,2
+np.float32,0x3e8a265c,0x3e8da833,2
+np.float32,0xbdccdbb0,0xbdcd8ba8,2
+np.float32,0x3eb080c4,0x3eb80a44,2
+np.float32,0x3e627800,0x3e6645fe,2
+np.float32,0xbd8be0b0,0xbd8c1886,2
+np.float32,0xbf3282ac,0xbf5cae8c,2
+np.float32,0xbe515910,0xbe545707,2
+np.float32,0xbf2e64ac,0xbf54d637,2
+np.float32,0x3e0fc230,0x3e10b6de,2
+np.float32,0x3eb13ca0,0x3eb8df94,2
+np.float32,0x3f07a3ca,0x3f170572,2
+np.float32,0x3f2c7026,0x3f513935,2
+np.float32,0x3f3c4ec8,0x3f70d67c,2
+np.float32,0xbee9cce8,0xbefc724f,2
+np.float32,0xbe53ca60,0xbe56e3f3,2
+np.float32,0x3dd9e9a0,0x3ddabd98,2
+np.float32,0x3f38b8d4,0x3f69319b,2
+np.float32,0xbe176dc4,0xbe188c1d,2
+np.float32,0xbf322f2e,0xbf5c0c51,2
+np.float32,0xbe9b8676,0xbea097a2,2
+np.float32,0xbca44280,0xbca44823,2
+np.float32,0xbe2b0248,0xbe2ca036,2
+np.float32,0x3d101e80,0x3d102dbd,2
+np.float32,0xbf4eb610,0xbf8f526d,2
+np.float32,0xbec32a50,0xbecd89d1,2
+np.float32,0x3d549100,0x3d54c1ee,2
+np.float32,0x3f78e55e,0x40087025,2
+np.float32,0x3e592798,0x3e5c802d,2
+np.float32,0x3de045d0,0x3de12cfb,2
+np.float32,0xbdad28e0,0xbdad92f7,2
+np.float32,0x3e9a69e0,0x3e9f5e59,2
+np.float32,0x3e809778,0x3e836716,2
+np.float32,0xbf3278d9,0xbf5c9b6d,2
+np.float32,0x3f39fa00,0x3f6bd4a5,2
+np.float32,0xbec8143c,0xbed34ffa,2
+np.float32,0x3ddb7f40,0x3ddc57e6,2
+np.float32,0x3f0e8342,0x3f20c634,2
+np.float32,0x3f353dda,0x3f6213a4,2
+np.float32,0xbe96b400,0xbe9b4bea,2
+np.float32,0x3e626580,0x3e66328a,2
+np.float32,0xbde091c8,0xbde179df,2
+np.float32,0x3eb47b5c,0x3ebc91ca,2
+np.float32,0xbf282182,0xbf497f2f,2
+np.float32,0x3ea9f64c,0x3eb0a748,2
+np.float32,0x3f28dd4e,0x3f4aca86,2
+np.float32,0xbf71de18,0xbfe3f587,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0xbf6696a6,0xbfbcf11a,2
+np.float32,0xbc853ae0,0xbc853de2,2
+np.float32,0xbeced246,0xbedb51b8,2
+np.float32,0x3f3472a4,0x3f607e00,2
+np.float32,0xbee90124,0xbefb7117,2
+np.float32,0x3eb45b90,0x3ebc6d7c,2
+np.float32,0xbe53ead0,0xbe5705d6,2
+np.float32,0x3f630c80,0x3fb420e2,2
+np.float32,0xbf408cd0,0xbf7a56a2,2
+np.float32,0x3dda4ed0,0x3ddb23f1,2
+np.float32,0xbf37ae88,0xbf67096b,2
+np.float32,0xbdd48c28,0xbdd550c9,2
+np.float32,0xbf5745b0,0xbf9cb4a4,2
+np.float32,0xbf44e6fc,0xbf8255c1,2
+np.float32,0x3f5c8e6a,0x3fa65020,2
+np.float32,0xbea45fe8,0xbeaa6630,2
+np.float32,0x3f08bdee,0x3f188ef5,2
+np.float32,0x3ec77e74,0x3ed29f4b,2
+np.float32,0xbf1a1d3c,0xbf324029,2
+np.float32,0x3cad7340,0x3cad79e3,2
+np.float32,0xbf4fac2e,0xbf90b72a,2
+np.float32,0x3f58516e,0x3f9e8330,2
+np.float32,0x3f442008,0x3f816391,2
+np.float32,0xbf6e0c6c,0xbfd42854,2
+np.float32,0xbf266f7a,0xbf4689b2,2
+np.float32,0x3eb7e2f0,0x3ec077ba,2
+np.float32,0xbf320fd0,0xbf5bcf83,2
+np.float32,0xbf6a76b9,0xbfc80a11,2
+np.float32,0xbf2a91b4,0xbf4dd526,2
+np.float32,0x3f176e30,0x3f2e150e,2
+np.float32,0xbdcccad0,0xbdcd7a9c,2
+np.float32,0x3f60a8a4,0x3faebbf7,2
+np.float32,0x3d9706f0,0x3d974d40,2
+np.float32,0x3ef3cd34,0x3f049d58,2
+np.float32,0xbf73c615,0xbfed79fe,2
+np.float32,0x3df1b170,0x3df2d31b,2
+np.float32,0x3f632a46,0x3fb466c7,2
+np.float32,0xbf3ea18e,0xbf75f9ce,2
+np.float32,0xbf3ea05c,0xbf75f71f,2
+np.float32,0xbdd76750,0xbdd83403,2
+np.float32,0xbca830c0,0xbca836cd,2
+np.float32,0x3f1d4162,0x3f373c59,2
+np.float32,0x3c115700,0x3c1157fa,2
+np.float32,0x3dae8ab0,0x3daef758,2
+np.float32,0xbcad5020,0xbcad56bf,2
+np.float32,0x3ee299c4,0x3ef36c15,2
+np.float32,0xbf7f566c,0xc054c3bd,2
+np.float32,0x3f0cc698,0x3f1e4557,2
+np.float32,0xbe75c648,0xbe7aaa04,2
+np.float32,0x3ea29238,0x3ea86417,2
+np.float32,0x3f09d9c0,0x3f1a1d61,2
+np.float32,0x3f67275c,0x3fbe74b3,2
+np.float32,0x3e1a4e18,0x3e1b7d3a,2
+np.float32,0xbef6e3fc,0xbf069e98,2
+np.float32,0xbf6038ac,0xbfadc9fd,2
+np.float32,0xbe46bdd4,0xbe494b7f,2
+np.float32,0xbf4df1f4,0xbf8e3a98,2
+np.float32,0x3d094dc0,0x3d095aed,2
+np.float32,0x3f44c7d2,0x3f822fa3,2
+np.float32,0xbea30816,0xbea8e737,2
+np.float32,0xbe3c27c4,0xbe3e511b,2
+np.float32,0x3f3bb47c,0x3f6f8789,2
+np.float32,0xbe423760,0xbe4498c3,2
+np.float32,0x3ece1a74,0x3eda7634,2
+np.float32,0x3f14d1f6,0x3f2a1a89,2
+np.float32,0xbf4d9e8f,0xbf8dc4c1,2
+np.float32,0xbe92968e,0xbe96cd7f,2
+np.float32,0x3e99e6c0,0x3e9ece26,2
+np.float32,0xbf397361,0xbf6ab878,2
+np.float32,0xbf4fcea4,0xbf90e99f,2
+np.float32,0x3de37640,0x3de46779,2
+np.float32,0x3eb1b604,0x3eb9698c,2
+np.float32,0xbf52d0a2,0xbf957361,2
+np.float32,0xbe20435c,0xbe21975a,2
+np.float32,0x3f437a58,0x3f809bf1,2
+np.float32,0x3f27d1cc,0x3f48f335,2
+np.float32,0x3f7d4ff2,0x4027d1e2,2
+np.float32,0xbef732e4,0xbf06d205,2
+np.float32,0x3f4a0ae6,0x3f88e18e,2
+np.float32,0x3f800000,0x7f800000,2
+np.float32,0x3e3e56a0,0x3e4093ba,2
+np.float32,0xbed2fcfa,0xbee0517d,2
+np.float32,0xbe0e0114,0xbe0eecd7,2
+np.float32,0xbe808574,0xbe8353db,2
+np.float32,0x3f572e2a,0x3f9c8c86,2
+np.float32,0x80800000,0x80800000,2
+np.float32,0x3f3f3c82,0x3f775703,2
+np.float32,0xbf6e2482,0xbfd4818b,2
+np.float32,0xbf3943b0,0xbf6a5439,2
+np.float32,0x3f6e42ac,0x3fd4f1ea,2
+np.float32,0x3eb676c4,0x3ebed619,2
+np.float32,0xbe5e56c4,0xbe61ef6c,2
+np.float32,0x3eea200c,0x3efcdb65,2
+np.float32,0x3e3d2c78,0x3e3f5ef8,2
+np.float32,0xbdfd8fb0,0xbdfede71,2
+np.float32,0xbee69c8a,0xbef86e89,2
+np.float32,0x3e9efca0,0x3ea46a1c,2
+np.float32,0x3e4c2498,0x3e4ee9ee,2
+np.float32,0xbf3cc93c,0xbf71e21d,2
+np.float32,0x3ee0d77c,0x3ef13d2b,2
+np.float32,0xbefbcd2a,0xbf09d6a3,2
+np.float32,0x3f6dbe5c,0x3fd30a3e,2
+np.float32,0x3dae63e0,0x3daed03f,2
+np.float32,0xbd5001e0,0xbd502fb9,2
+np.float32,0x3f59632a,0x3fa067c8,2
+np.float32,0x3f0d355a,0x3f1ee452,2
+np.float32,0x3f2cbe5c,0x3f51c896,2
+np.float32,0x3c5e6e80,0x3c5e7200,2
+np.float32,0xbe8ac49c,0xbe8e52f0,2
+np.float32,0x3f54e576,0x3f98c0e6,2
+np.float32,0xbeaa0762,0xbeb0ba7c,2
+np.float32,0x3ec81e88,0x3ed35c21,2
+np.float32,0x3f5a6738,0x3fa23fb6,2
+np.float32,0xbf24a682,0xbf43784a,2
+np.float32,0x1,0x1,2
+np.float32,0x3ee6bc24,0x3ef89630,2
+np.float32,0x3f19444a,0x3f30ecf5,2
+np.float32,0x3ec1fc70,0x3ecc28fc,2
+np.float32,0xbf706e14,0xbfdd92fb,2
+np.float32,0x3eccb630,0x3ed8cd98,2
+np.float32,0xbcdf7aa0,0xbcdf88d3,2
+np.float32,0xbe450da8,0xbe478a8e,2
+np.float32,0x3ec9c210,0x3ed54c0b,2
+np.float32,0xbf3b86ca,0xbf6f24d1,2
+np.float32,0x3edcc7a0,0x3eec3a5c,2
+np.float32,0x3f075d5c,0x3f16a39a,2
+np.float32,0xbf5719ce,0xbf9c69de,2
+np.float32,0x3f62cb22,0x3fb3885a,2
+np.float32,0x3f639216,0x3fb55c93,2
+np.float32,0xbf473ee7,0xbf85413a,2
+np.float32,0xbf01b66c,0xbf0eea86,2
+np.float32,0x3e872d80,0x3e8a74f8,2
+np.float32,0xbf60957e,0xbfae925c,2
+np.float32,0xbf6847b2,0xbfc1929b,2
+np.float32,0x3f78bb94,0x4007b363,2
+np.float32,0xbf47efdb,0xbf8622db,2
+np.float32,0xbe1f2308,0xbe206fd6,2
+np.float32,0xbf414926,0xbf7c0a7e,2
+np.float32,0x3eecc268,0x3f00194d,2
+np.float32,0x3eb086d0,0x3eb81120,2
+np.float32,0xbef1af80,0xbf033ff5,2
+np.float32,0xbf454e56,0xbf82d4aa,2
+np.float32,0x3e622560,0x3e65ef20,2
+np.float32,0x3f50d2b2,0x3f926a83,2
+np.float32,0x3eb2c45c,0x3eba9d2c,2
+np.float32,0x3e42d1a0,0x3e4538c9,2
+np.float32,0xbf24cc5c,0xbf43b8e3,2
+np.float32,0x3e8c6464,0x3e90141a,2
+np.float32,0xbf3abff2,0xbf6d79c5,2
+np.float32,0xbec8f2e6,0xbed456fa,2
+np.float32,0xbf787b38,0xc00698b4,2
+np.float32,0xbf58d5cd,0xbf9f6c03,2
+np.float32,0x3df4ee20,0x3df61ba8,2
+np.float32,0xbf34581e,0xbf604951,2
+np.float32,0xbeba5cf4,0xbec35119,2
+np.float32,0xbf76c22d,0xbfffc51c,2
+np.float32,0x3ef63b2c,0x3f0630b4,2
+np.float32,0x3eeadb64,0x3efdc877,2
+np.float32,0x3dfd8c70,0x3dfedb24,2
+np.float32,0x3f441600,0x3f81576d,2
+np.float32,0x3f23a0d8,0x3f41bbf6,2
+np.float32,0x3cb84d40,0x3cb85536,2
+np.float32,0xbf25cb5c,0xbf456e38,2
+np.float32,0xbc108540,0xbc108636,2
+np.float32,0xbc5b9140,0xbc5b949e,2
+np.float32,0xbf62ff40,0xbfb401dd,2
+np.float32,0x3e8e0710,0x3e91d93e,2
+np.float32,0x3f1b6ae0,0x3f344dfd,2
+np.float32,0xbf4dbbbe,0xbf8dedea,2
+np.float32,0x3f1a5fb2,0x3f32a880,2
+np.float32,0xbe56bd00,0xbe59f8cb,2
+np.float32,0xbf490a5c,0xbf87902d,2
+np.float32,0xbf513072,0xbf92f717,2
+np.float32,0x3e73ee28,0x3e78b542,2
+np.float32,0x3f0a4c7a,0x3f1abf2c,2
+np.float32,0x3e10d5c8,0x3e11d00b,2
+np.float32,0xbf771aac,0xc001207e,2
+np.float32,0x3efe2f54,0x3f0b6a46,2
+np.float32,0xbea5f3ea,0xbeac291f,2
+np.float32,0xbf1a73e8,0xbf32c845,2
+np.float32,0x3ebcc82c,0x3ec61c4f,2
+np.float32,0xbf24f492,0xbf43fd9a,2
+np.float32,0x3ecbd908,0x3ed7c691,2
+np.float32,0x3f461c5e,0x3f83d3f0,2
+np.float32,0x3eed0524,0x3f0043c1,2
+np.float32,0x3d06e840,0x3d06f4bf,2
+np.float32,0x3eb6c974,0x3ebf34d7,2
+np.float32,0xbf1c85e1,0xbf36100f,2
+np.float32,0x3ed697d0,0x3ee4ad04,2
+np.float32,0x3eab0484,0x3eb1d733,2
+np.float32,0xbf3b02f2,0xbf6e0935,2
+np.float32,0xbeeab154,0xbefd9334,2
+np.float32,0xbf695372,0xbfc49881,2
+np.float32,0x3e8aaa7c,0x3e8e36be,2
+np.float32,0xbf208754,0xbf3c8f7b,2
+np.float32,0xbe0dbf28,0xbe0ea9a1,2
+np.float32,0x3ca780c0,0x3ca786ba,2
+np.float32,0xbeb320b4,0xbebb065e,2
+np.float32,0x3f13c698,0x3f288821,2
+np.float32,0xbe8cbbec,0xbe9072c4,2
+np.float32,0x3f1ed534,0x3f39c8df,2
+np.float32,0x3e1ca450,0x3e1de190,2
+np.float32,0x3f54be1c,0x3f988134,2
+np.float32,0x3f34e4ee,0x3f6161b4,2
+np.float32,0xbf7e6913,0xc038b246,2
+np.float32,0x3d3c3f20,0x3d3c6119,2
+np.float32,0x3ca9dc80,0x3ca9e2bc,2
+np.float32,0xbf577ea2,0xbf9d161a,2
+np.float32,0xbedb22c8,0xbeea3644,2
+np.float32,0x3f22a044,0x3f400bfa,2
+np.float32,0xbe214b8c,0xbe22a637,2
+np.float32,0x3e8cd300,0x3e908bbc,2
+np.float32,0xbec4d214,0xbecf7a58,2
+np.float32,0x3e9399a4,0x3e97e7e4,2
+np.float32,0xbee6a1a2,0xbef874ed,2
+np.float32,0xbf323742,0xbf5c1bfd,2
+np.float32,0x3f48b882,0x3f8725ac,2
+np.float32,0xbf4d4dba,0xbf8d532e,2
+np.float32,0xbf59640a,0xbfa0695a,2
+np.float32,0xbf2ad562,0xbf4e4f03,2
+np.float32,0x3e317d98,0x3e334d03,2
+np.float32,0xbf6a5b71,0xbfc7b5a2,2
+np.float32,0x3e87b434,0x3e8b05cf,2
+np.float32,0xbf1c344c,0xbf358dee,2
+np.float32,0x3e449428,0x3e470c65,2
+np.float32,0xbf2c0f2f,0xbf508808,2
+np.float32,0xbec5b5ac,0xbed0859c,2
+np.float32,0xbf4aa956,0xbf89b4b1,2
+np.float32,0x3f6dd374,0x3fd35717,2
+np.float32,0x3f45f76c,0x3f83a5ef,2
+np.float32,0xbed1fba8,0xbedf1bd5,2
+np.float32,0xbd26b2d0,0xbd26ca66,2
+np.float32,0xbe9817c2,0xbe9cd1c3,2
+np.float32,0x3e725988,0x3e770875,2
+np.float32,0xbf1a8ded,0xbf32f132,2
+np.float32,0xbe695860,0xbe6d83d3,2
+np.float32,0x3d8cecd0,0x3d8d25ea,2
+np.float32,0x3f574706,0x3f9cb6ec,2
+np.float32,0xbf5c5a1f,0xbfa5eaf3,2
+np.float32,0x3e7a7c88,0x3e7fab83,2
+np.float32,0xff800000,0xffc00000,2
+np.float32,0x3f66396a,0x3fbbfbb0,2
+np.float32,0x3ed6e588,0x3ee50b53,2
+np.float32,0xbb56d500,0xbb56d532,2
+np.float32,0x3ebd23fc,0x3ec6869a,2
+np.float32,0xbf70d490,0xbfdf4af5,2
+np.float32,0x3e514f88,0x3e544d15,2
+np.float32,0x3e660f98,0x3e6a0dac,2
+np.float32,0xbf034da1,0xbf1110bb,2
+np.float32,0xbf60d9be,0xbfaf2714,2
+np.float32,0x3df67b10,0x3df7ae64,2
+np.float32,0xbeeedc0a,0xbf017010,2
+np.float32,0xbe149224,0xbe15a072,2
+np.float32,0x3f455084,0x3f82d759,2
+np.float32,0x3f210f9e,0x3f3d7093,2
+np.float32,0xbeaea3e0,0xbeb5edd3,2
+np.float32,0x3e0724b0,0x3e07efad,2
+np.float32,0x3f09a784,0x3f19d6ac,2
+np.float32,0xbf044340,0xbf125ee8,2
+np.float32,0xbf71adc9,0xbfe315fe,2
+np.float32,0x3efd3870,0x3f0ac6a8,2
+np.float32,0xbf53c7a6,0xbf96f6df,2
+np.float32,0xbf3cf784,0xbf7247af,2
+np.float32,0x3e0ce9e0,0x3e0dd035,2
+np.float32,0xbd3051a0,0xbd306d89,2
+np.float32,0x3ecab804,0x3ed66f77,2
+np.float32,0x3e984350,0x3e9d0189,2
+np.float32,0x3edd1c00,0x3eeca20b,2
+np.float32,0xbe8e22a0,0xbe91f71b,2
+np.float32,0x3ebebc18,0x3ec85fd6,2
+np.float32,0xba275c00,0xba275c01,2
+np.float32,0x3f1d8190,0x3f37a385,2
+np.float32,0x3f17343e,0x3f2dbbfe,2
+np.float32,0x3caa8000,0x3caa864e,2
+np.float32,0x3e7a7308,0x3e7fa168,2
+np.float32,0x3f7359a6,0x3feb3e1a,2
+np.float32,0xbf7ad15a,0xc012a743,2
+np.float32,0xbf122efb,0xbf262812,2
+np.float32,0xbf03ba04,0xbf11a3fa,2
+np.float32,0x3ed7a90c,0x3ee5f8d4,2
+np.float32,0xbe23e318,0xbe254eed,2
+np.float32,0xbe2866f4,0xbe29f20a,2
+np.float32,0xbeaedff2,0xbeb631d0,2
+np.float32,0x0,0x0,2
+np.float32,0x3ef2a034,0x3f03dafd,2
+np.float32,0x3f35806c,0x3f62994e,2
+np.float32,0xbf655e19,0xbfb9c718,2
+np.float32,0x3f5d54ce,0x3fa7d4f4,2
+np.float32,0x3f33e64a,0x3f5f67e3,2
+np.float32,0x3ebf4010,0x3ec8f923,2
+np.float32,0xbe050dc8,0xbe05cf70,2
+np.float32,0x3f61693e,0x3fb063b0,2
+np.float32,0xbd94ac00,0xbd94ef12,2
+np.float32,0x3e9de008,0x3ea32f61,2
+np.float32,0xbe3d042c,0xbe3f3540,2
+np.float32,0x3e8fdfc0,0x3e93d9e4,2
+np.float32,0x3f28bc48,0x3f4a9019,2
+np.float32,0x3edea928,0x3eee8b09,2
+np.float32,0xbf05f673,0xbf14b362,2
+np.float32,0xbf360730,0xbf63a914,2
+np.float32,0xbe3fb454,0xbe41fe0a,2
+np.float32,0x3f6d99a8,0x3fd28552,2
+np.float32,0xbf3ae866,0xbf6dd052,2
+np.float32,0x3f5b1164,0x3fa37aec,2
+np.float32,0xbf64a451,0xbfb7f61b,2
+np.float32,0xbdd79bd0,0xbdd86919,2
+np.float32,0x3e89fc00,0x3e8d7a85,2
+np.float32,0x3f4bf690,0x3f8b77ea,2
+np.float32,0x3cbdf280,0x3cbdfb38,2
+np.float32,0x3f138f98,0x3f2835b4,2
+np.float32,0xbe33967c,0xbe3576bc,2
+np.float32,0xbf298164,0xbf4bedda,2
+np.float32,0x3e9955cc,0x3e9e2edb,2
+np.float32,0xbf79b383,0xc00c56c0,2
+np.float32,0x3ea0834c,0x3ea61aea,2
+np.float32,0xbf511184,0xbf92c89a,2
+np.float32,0x3f4d9fba,0x3f8dc666,2
+np.float32,0x3f3387c2,0x3f5ead80,2
+np.float32,0x3e3f7360,0x3e41babb,2
+np.float32,0xbf3cc4d6,0xbf71d879,2
+np.float32,0x3f2e4402,0x3f54994e,2
+np.float32,0x3e6a7118,0x3e6eabff,2
+np.float32,0xbf05d83e,0xbf1489cc,2
+np.float32,0xbdce4fd8,0xbdcf039a,2
+np.float32,0xbf03e2f4,0xbf11dbaf,2
+np.float32,0x3f1ea0a0,0x3f397375,2
+np.float32,0x3f7aff54,0x4013cb1b,2
+np.float32,0x3f5ef158,0x3fab1801,2
+np.float32,0xbe33bcc8,0xbe359e40,2
+np.float32,0xbf04dd0e,0xbf133111,2
+np.float32,0xbf14f887,0xbf2a54d1,2
+np.float32,0x3f75c37a,0x3ff9196e,2
+np.float32,0x3f35c3c8,0x3f6320f2,2
+np.float32,0x3f53bb94,0x3f96e3c3,2
+np.float32,0x3f4d473e,0x3f8d4a19,2
+np.float32,0xbdfe19e0,0xbdff6ac9,2
+np.float32,0xbf7f0cc4,0xc049342d,2
+np.float32,0xbdbfc778,0xbdc057bb,2
+np.float32,0xbf7575b7,0xbff73067,2
+np.float32,0xbe9df488,0xbea34609,2
+np.float32,0xbefbd3c6,0xbf09daff,2
+np.float32,0x3f19962c,0x3f316cbd,2
+np.float32,0x3f7acec6,0x40129732,2
+np.float32,0xbf5db7de,0xbfa89a21,2
+np.float32,0x3f62f444,0x3fb3e830,2
+np.float32,0xbf522adb,0xbf94737f,2
+np.float32,0xbef6ceb2,0xbf0690ba,2
+np.float32,0xbf57c41e,0xbf9d8db0,2
+np.float32,0x3eb3360c,0x3ebb1eb0,2
+np.float32,0x3f29327e,0x3f4b618e,2
+np.float32,0xbf08d099,0xbf18a916,2
+np.float32,0x3ea21014,0x3ea7d369,2
+np.float32,0x3f39e516,0x3f6ba861,2
+np.float32,0x3e7c4f28,0x3e80ce08,2
+np.float32,0xbec5a7f8,0xbed07582,2
+np.float32,0xbf0b1b46,0xbf1be3e7,2
+np.float32,0xbef0e0ec,0xbf02bb2e,2
+np.float32,0x3d835a30,0x3d838869,2
+np.float32,0x3f08aa40,0x3f18736e,2
+np.float32,0x3eb0e4c8,0x3eb87bcd,2
+np.float32,0x3eb3821c,0x3ebb7564,2
+np.float32,0xbe3a7320,0xbe3c8d5a,2
+np.float32,0x3e43f8c0,0x3e466b10,2
+np.float32,0x3e914288,0x3e955b69,2
+np.float32,0x3ec7d800,0x3ed308e7,2
+np.float32,0x3e603df8,0x3e63eef2,2
+np.float32,0x3f225cac,0x3f3f9ac6,2
+np.float32,0x3e3db8f0,0x3e3ff06b,2
+np.float32,0x3f358d78,0x3f62b38c,2
+np.float32,0xbed9bd64,0xbee88158,2
+np.float32,0x800000,0x800000,2
+np.float32,0x3f1adfce,0x3f337230,2
+np.float32,0xbefdc346,0xbf0b229d,2
+np.float32,0xbf091018,0xbf190208,2
+np.float32,0xbf800000,0xff800000,2
+np.float32,0x3f27c2c4,0x3f48d8db,2
+np.float32,0x3ef59c80,0x3f05c993,2
+np.float32,0x3e18a340,0x3e19c893,2
+np.float32,0x3f209610,0x3f3ca7c5,2
+np.float32,0x3f69cc22,0x3fc60087,2
+np.float32,0xbf66cf07,0xbfbd8721,2
+np.float32,0xbf768098,0xbffdfcc4,2
+np.float32,0x3df27a40,0x3df39ec4,2
+np.float32,0x3daf5bd0,0x3dafca02,2
+np.float32,0x3f53f2be,0x3f973b41,2
+np.float32,0xbf7edcbc,0xc0436ce3,2
+np.float32,0xbdf61db8,0xbdf74fae,2
+np.float32,0x3e2c9328,0x3e2e3cb2,2
+np.float32,0x3f1a4570,0x3f327f41,2
+np.float32,0xbf766306,0xbffd32f1,2
+np.float32,0xbf468b9d,0xbf845f0f,2
+np.float32,0x3e398970,0x3e3b9bb1,2
+np.float32,0xbbefa900,0xbbefaa18,2
+np.float32,0xbf54c989,0xbf9893ad,2
+np.float32,0x3f262cf6,0x3f46169d,2
+np.float32,0x3f638a8a,0x3fb54a98,2
+np.float32,0xbeb36c78,0xbebb5cb8,2
+np.float32,0xbeac4d42,0xbeb34993,2
+np.float32,0x3f1d1942,0x3f36fbf2,2
+np.float32,0xbf5d49ba,0xbfa7bf07,2
+np.float32,0xbf182b5c,0xbf2f38d0,2
+np.float32,0x3f41a742,0x3f7ce5ef,2
+np.float32,0x3f0b9a6c,0x3f1c9898,2
+np.float32,0x3e847494,0x3e8788f3,2
+np.float32,0xbde41608,0xbde50941,2
+np.float32,0x3f693944,0x3fc44b5a,2
+np.float32,0x3f0386b2,0x3f115e37,2
+np.float32,0x3f3a08b0,0x3f6bf3c1,2
+np.float32,0xbf78ee64,0xc0089977,2
+np.float32,0xbf013a11,0xbf0e436e,2
+np.float32,0x3f00668e,0x3f0d2836,2
+np.float32,0x3e6d9850,0x3e720081,2
+np.float32,0x3eacf578,0x3eb4075d,2
+np.float32,0x3f18aef8,0x3f3004b4,2
+np.float32,0x3de342f0,0x3de43385,2
+np.float32,0x3e56cee8,0x3e5a0b85,2
+np.float32,0xbf287912,0xbf4a1966,2
+np.float32,0x3e92c948,0x3e9704c2,2
+np.float32,0x3c07d080,0x3c07d14c,2
+np.float32,0xbe90f6a0,0xbe9508e0,2
+np.float32,0x3e8b4f28,0x3e8ee884,2
+np.float32,0xbf35b56c,0xbf6303ff,2
+np.float32,0xbef512b8,0xbf057027,2
+np.float32,0x3e36c630,0x3e38c0cd,2
+np.float32,0x3f0b3ca8,0x3f1c134a,2
+np.float32,0x3e4cd610,0x3e4fa2c5,2
+np.float32,0xbf5a8372,0xbfa273a3,2
+np.float32,0xbecaad3c,0xbed662ae,2
+np.float32,0xbec372d2,0xbecddeac,2
+np.float32,0x3f6fb2b2,0x3fda8a22,2
+np.float32,0x3f365f28,0x3f645b5a,2
+np.float32,0xbecd00fa,0xbed926a4,2
+np.float32,0xbebafa32,0xbec40672,2
+np.float32,0xbf235b73,0xbf4146c4,2
+np.float32,0x3f7a4658,0x400f6e2c,2
+np.float32,0x3f35e824,0x3f636a54,2
+np.float32,0x3cb87640,0x3cb87e3c,2
+np.float32,0xbf296288,0xbf4bb6ee,2
+np.float32,0x7f800000,0xffc00000,2
+np.float32,0xbf4de86e,0xbf8e2d1a,2
+np.float32,0xbf4ace12,0xbf89e5f3,2
+np.float32,0x3d65a300,0x3d65e0b5,2
+np.float32,0xbe10c534,0xbe11bf21,2
+np.float32,0xbeba3c1c,0xbec32b3e,2
+np.float32,0x3e87eaf8,0x3e8b40b8,2
+np.float32,0x3d5c3bc0,0x3d5c722d,2
+np.float32,0x3e8c14b8,0x3e8fbdf8,2
+np.float32,0xbf06c6f0,0xbf15d327,2
+np.float32,0xbe0f1e30,0xbe100f96,2
+np.float32,0xbee244b0,0xbef30251,2
+np.float32,0x3f2a21b0,0x3f4d0c1d,2
+np.float32,0xbf5f7f81,0xbfac408e,2
+np.float32,0xbe3dba2c,0xbe3ff1b2,2
+np.float32,0x3f3ffc22,0x3f790abf,2
+np.float32,0x3edc3dac,0x3eeb90fd,2
+np.float32,0x7f7fffff,0xffc00000,2
+np.float32,0x3ecfaaac,0x3edc5485,2
+np.float32,0x3f0affbe,0x3f1bbcd9,2
+np.float32,0x3f5f2264,0x3fab7dca,2
+np.float32,0x3f37394c,0x3f66186c,2
+np.float32,0xbe6b2f6c,0xbe6f74e3,2
+np.float32,0x3f284772,0x3f49c1f1,2
+np.float32,0xbdf27bc8,0xbdf3a051,2
+np.float32,0xbc8b14e0,0xbc8b184c,2
+np.float32,0x3f6a867c,0x3fc83b07,2
+np.float32,0x3f1ec876,0x3f39b429,2
+np.float32,0x3f6fd9a8,0x3fdb28d6,2
+np.float32,0xbf473cca,0xbf853e8c,2
+np.float32,0x3e23eff8,0x3e255c23,2
+np.float32,0x3ebefdfc,0x3ec8ac5d,2
+np.float32,0x3f6c8c22,0x3fced2b1,2
+np.float32,0x3f168388,0x3f2cad44,2
+np.float32,0xbece2410,0xbeda81ac,2
+np.float32,0x3f5532f0,0x3f993eea,2
+np.float32,0x3ef1938c,0x3f032dfa,2
+np.float32,0xbef05268,0xbf025fba,2
+np.float32,0x3f552e4a,0x3f993754,2
+np.float32,0x3e9ed068,0x3ea4392d,2
+np.float32,0xbe1a0c24,0xbe1b39be,2
+np.float32,0xbf2623aa,0xbf46068c,2
+np.float32,0xbe1cc300,0xbe1e00fc,2
+np.float32,0xbe9c0576,0xbea12397,2
+np.float32,0xbd827338,0xbd82a07e,2
+np.float32,0x3f0fc31a,0x3f229786,2
+np.float32,0x3e577810,0x3e5abc7d,2
+np.float32,0x3e0e1cb8,0x3e0f0906,2
+np.float32,0x3e84d344,0x3e87ee73,2
+np.float32,0xbf39c45e,0xbf6b6337,2
+np.float32,0x3edfb25c,0x3eefd273,2
+np.float32,0x3e016398,0x3e021596,2
+np.float32,0xbefeb1be,0xbf0bc0de,2
+np.float32,0x3f37e104,0x3f677196,2
+np.float32,0x3f545316,0x3f97d500,2
+np.float32,0xbefc165a,0xbf0a06ed,2
+np.float32,0xbf0923e6,0xbf191dcd,2
+np.float32,0xbf386508,0xbf68831f,2
+np.float32,0xbf3d4630,0xbf72f4e1,2
+np.float32,0x3f3dbe82,0x3f73ff13,2
+np.float32,0xbf703de4,0xbfdcc7e2,2
+np.float32,0xbf531482,0xbf95dd1a,2
+np.float32,0xbf0af1b6,0xbf1ba8f4,2
+np.float32,0xbec8fd9c,0xbed463a4,2
+np.float32,0xbe230320,0xbe24691a,2
+np.float32,0xbf7de541,0xc02faf38,2
+np.float32,0x3efd2360,0x3f0ab8b7,2
+np.float32,0x3db7f350,0x3db87291,2
+np.float32,0x3e74c510,0x3e799924,2
+np.float32,0x3da549c0,0x3da5a5fc,2
+np.float32,0x3e8a3bc4,0x3e8dbf4a,2
+np.float32,0xbf69f086,0xbfc66e84,2
+np.float32,0x3f323f8e,0x3f5c2c17,2
+np.float32,0x3ec0ae3c,0x3ecaa334,2
+np.float32,0xbebe8966,0xbec824fc,2
+np.float32,0x3f34691e,0x3f606b13,2
+np.float32,0x3f13790e,0x3f2813f5,2
+np.float32,0xbf61c027,0xbfb12618,2
+np.float32,0x3e90c690,0x3e94d4a1,2
+np.float32,0xbefce8f0,0xbf0a920e,2
+np.float32,0xbf5c0e8a,0xbfa559a7,2
+np.float32,0x3f374f60,0x3f6645b6,2
+np.float32,0x3f25f6fa,0x3f45b967,2
+np.float32,0x3f2421aa,0x3f42963a,2
+np.float32,0x3ebfa328,0x3ec96c57,2
+np.float32,0x3e3bef28,0x3e3e1685,2
+np.float32,0x3ea3fa3c,0x3ea9f4dd,2
+np.float32,0x3f362b8e,0x3f63f2b2,2
+np.float32,0xbedcef18,0xbeec6ada,2
+np.float32,0xbdd29c88,0xbdd35bd0,2
+np.float32,0x3f261aea,0x3f45f76f,2
+np.float32,0xbe62c470,0xbe66965e,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0xbee991aa,0xbefc277b,2
+np.float32,0xbf571960,0xbf9c6923,2
+np.float32,0xbe6fb410,0xbe743b41,2
+np.float32,0x3eb1bed0,0x3eb9738d,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x3eddcbe4,0x3eed7a69,2
+np.float32,0xbf2a81ba,0xbf4db86d,2
+np.float32,0x3f74da54,0x3ff38737,2
+np.float32,0xbeb6bff4,0xbebf29f4,2
+np.float32,0x3f445752,0x3f81a698,2
+np.float32,0x3ed081b4,0x3edd5618,2
+np.float32,0xbee73802,0xbef931b4,2
+np.float32,0xbd13f2a0,0xbd14031c,2
+np.float32,0xbb4d1200,0xbb4d122c,2
+np.float32,0xbee8777a,0xbefac393,2
+np.float32,0x3f42047c,0x3f7dc06c,2
+np.float32,0xbd089270,0xbd089f67,2
+np.float32,0xbf628c16,0xbfb2f66b,2
+np.float32,0x3e72e098,0x3e77978d,2
+np.float32,0x3ed967cc,0x3ee818e4,2
+np.float32,0x3e284c80,0x3e29d6d9,2
+np.float32,0x3f74e8ba,0x3ff3dbef,2
+np.float32,0x3f013e86,0x3f0e4969,2
+np.float32,0xbf610d4f,0xbfaf983c,2
+np.float32,0xbf3c8d36,0xbf715eba,2
+np.float32,0xbedbc756,0xbeeaffdb,2
+np.float32,0x3e143ec8,0x3e154b4c,2
+np.float32,0xbe1c9808,0xbe1dd4fc,2
+np.float32,0xbe887a1e,0xbe8bdac5,2
+np.float32,0xbe85c4bc,0xbe88f17a,2
+np.float32,0x3f35967e,0x3f62c5b4,2
+np.float32,0x3ea2c4a4,0x3ea89c2d,2
+np.float32,0xbc8703c0,0xbc8706e1,2
+np.float32,0xbf13d52c,0xbf289dff,2
+np.float32,0xbf63bb56,0xbfb5bf29,2
+np.float32,0xbf61c5ef,0xbfb13319,2
+np.float32,0xbf128410,0xbf26a675,2
+np.float32,0x3f03fcf2,0x3f11ff13,2
+np.float32,0xbe49c924,0xbe4c75cd,2
+np.float32,0xbf211a9c,0xbf3d82c5,2
+np.float32,0x3f7e9d52,0x403d1b42,2
+np.float32,0x3edfefd4,0x3ef01e71,2
+np.float32,0x3ebc5bd8,0x3ec59efb,2
+np.float32,0x3d7b02e0,0x3d7b537f,2
+np.float32,0xbf1163ba,0xbf24fb43,2
+np.float32,0x3f5072f2,0x3f91dbf1,2
+np.float32,0xbee700ce,0xbef8ec60,2
+np.float32,0x3f534168,0x3f962359,2
+np.float32,0x3e6d6c40,0x3e71d1ef,2
+np.float32,0x3def9d70,0x3df0b7a8,2
+np.float32,0x3e89cf80,0x3e8d4a8a,2
+np.float32,0xbf687ca7,0xbfc2290f,2
+np.float32,0x3f35e134,0x3f635c51,2
+np.float32,0x3e59eef8,0x3e5d50fa,2
+np.float32,0xbf65c9e1,0xbfbada61,2
+np.float32,0xbf759292,0xbff7e43d,2
+np.float32,0x3f4635a0,0x3f83f372,2
+np.float32,0x3f29baaa,0x3f4c53f1,2
+np.float32,0x3f6b15a6,0x3fc9fe04,2
+np.float32,0x3edabc88,0x3ee9b922,2
+np.float32,0x3ef382e0,0x3f046d4d,2
+np.float32,0xbe351310,0xbe36ff7f,2
+np.float32,0xbf05c935,0xbf14751c,2
+np.float32,0xbf0e7c50,0xbf20bc24,2
+np.float32,0xbf69bc94,0xbfc5d1b8,2
+np.float32,0xbed41aca,0xbee1aa23,2
+np.float32,0x3f518c08,0x3f938162,2
+np.float32,0xbf3d7974,0xbf73661a,2
+np.float32,0x3f1951a6,0x3f3101c9,2
+np.float32,0xbeb3f436,0xbebbf787,2
+np.float32,0xbf77a190,0xc0031d43,2
+np.float32,0x3eb5b3cc,0x3ebdf6e7,2
+np.float32,0xbed534b4,0xbee2fed2,2
+np.float32,0xbe53e1b8,0xbe56fc56,2
+np.float32,0x3f679e20,0x3fbfb91c,2
+np.float32,0xff7fffff,0xffc00000,2
+np.float32,0xbf7b9bcb,0xc0180073,2
+np.float32,0xbf5635e8,0xbf9aea15,2
+np.float32,0xbe5a3318,0xbe5d9856,2
+np.float32,0xbe003284,0xbe00df9a,2
+np.float32,0x3eb119a4,0x3eb8b7d6,2
+np.float32,0xbf3bccf8,0xbf6fbc84,2
+np.float32,0x3f36f600,0x3f658ea8,2
+np.float32,0x3f1ea834,0x3f397fc2,2
+np.float32,0xbe7cfb54,0xbe8129b3,2
+np.float32,0xbe9b3746,0xbea0406a,2
+np.float32,0x3edc0f90,0x3eeb586c,2
+np.float32,0x3e1842e8,0x3e19660c,2
+np.float32,0xbd8f10b0,0xbd8f4c70,2
+np.float32,0xbf064aca,0xbf1527a2,2
+np.float32,0x3e632e58,0x3e6705be,2
+np.float32,0xbef28ba4,0xbf03cdbb,2
+np.float32,0x3f27b21e,0x3f48bbaf,2
+np.float32,0xbe6f30d4,0xbe73b06e,2
+np.float32,0x3f3e6cb0,0x3f75834b,2
+np.float32,0xbf264aa5,0xbf4649f0,2
+np.float32,0xbf690775,0xbfc3b978,2
+np.float32,0xbf3e4a38,0xbf753632,2
+np.float64,0x3fe12bbe8c62577e,0x3fe32de8e5f961b0,1
+np.float64,0x3fc9b8909b337120,0x3fca1366da00efff,1
+np.float64,0x3feaee4245f5dc84,0x3ff3a011ea0432f3,1
+np.float64,0xbfe892c000f12580,0xbff03e5adaed6f0c,1
+np.float64,0xbf9be8de4837d1c0,0xbf9beaa367756bd1,1
+np.float64,0x3fe632e58fec65cc,0x3feb5ccc5114ca38,1
+np.float64,0x3fe78a0ef7ef141e,0x3fee1b4521d8eb6c,1
+np.float64,0x3feec27a65fd84f4,0x3fff643c8318e81e,1
+np.float64,0x3fbed6efce3dade0,0x3fbefd76cff00111,1
+np.float64,0xbfe3a05fab6740c0,0xbfe6db078aeeb0ca,1
+np.float64,0x3fdca11a56b94234,0x3fdece9e6eacff1b,1
+np.float64,0x3fe0fb15aae1f62c,0x3fe2e9e095ec2089,1
+np.float64,0x3fede12abf7bc256,0x3ffafd0ff4142807,1
+np.float64,0x3feb919edcf7233e,0x3ff4c9aa0bc2432f,1
+np.float64,0x3fd39633b5a72c68,0x3fd43c2e6d5f441c,1
+np.float64,0x3fd9efcbfeb3df98,0x3fdb83f03e58f91c,1
+np.float64,0x3fe2867a36650cf4,0x3fe525858c8ce72e,1
+np.float64,0x3fdacbb8f3b59770,0x3fdc8cd431b6e3ff,1
+np.float64,0x3fcc120503382408,0x3fcc88a8fa43e1c6,1
+np.float64,0xbfd99ff4eab33fea,0xbfdb24a20ae3687d,1
+np.float64,0xbfe8caf0157195e0,0xbff083b8dd0941d3,1
+np.float64,0x3fddc9bf92bb9380,0x3fe022aac0f761d5,1
+np.float64,0x3fe2dbb66e65b76c,0x3fe5a6e7caf3f1f2,1
+np.float64,0x3fe95f5c4a72beb8,0x3ff1444697e96138,1
+np.float64,0xbfc6b163d92d62c8,0xbfc6ef6e006658a1,1
+np.float64,0x3fdf1b2616be364c,0x3fe0fcbd2848c9e8,1
+np.float64,0xbfdca1ccf7b9439a,0xbfdecf7dc0eaa663,1
+np.float64,0x3fe078d6a260f1ae,0x3fe236a7c66ef6c2,1
+np.float64,0x3fdf471bb9be8e38,0x3fe11990ec74e704,1
+np.float64,0xbfe417626be82ec5,0xbfe79c9aa5ed2e2f,1
+np.float64,0xbfeb9cf5677739eb,0xbff4dfc24c012c90,1
+np.float64,0x3f8d9142b03b2280,0x3f8d91c9559d4779,1
+np.float64,0x3fb052c67220a590,0x3fb05873c90d1cd6,1
+np.float64,0x3fd742e2c7ae85c4,0x3fd860128947d15d,1
+np.float64,0x3fec2e2a2bf85c54,0x3ff60eb554bb8d71,1
+np.float64,0xbfeb2b8bc8f65718,0xbff40b734679497a,1
+np.float64,0x3fe25f8e0d64bf1c,0x3fe4eb381d077803,1
+np.float64,0x3fe56426256ac84c,0x3fe9dafbe79370f0,1
+np.float64,0x3feecc1e5d7d983c,0x3fffa49bedc7aa25,1
+np.float64,0xbfc88ce94b3119d4,0xbfc8dbba0fdee2d2,1
+np.float64,0xbfabcf51ac379ea0,0xbfabd6552aa63da3,1
+np.float64,0xbfccc8b849399170,0xbfcd48d6ff057a4d,1
+np.float64,0x3fd2f831e8a5f064,0x3fd38e67b0dda905,1
+np.float64,0x3fcafdcd6135fb98,0x3fcb670ae2ef4d36,1
+np.float64,0x3feda6042efb4c08,0x3ffa219442ac4ea5,1
+np.float64,0x3fed382b157a7056,0x3ff8bc01bc6d10bc,1
+np.float64,0x3fed858a50fb0b14,0x3ff9b1c05cb6cc0f,1
+np.float64,0x3fcc3960653872c0,0x3fccb2045373a3d1,1
+np.float64,0xbfec5177e478a2f0,0xbff65eb4557d94eb,1
+np.float64,0x3feafe0d5e75fc1a,0x3ff3bb4a260a0dcb,1
+np.float64,0x3fe08bc87ee11790,0x3fe25078aac99d31,1
+np.float64,0xffefffffffffffff,0xfff8000000000000,1
+np.float64,0x3f79985ce0333100,0x3f799872b591d1cb,1
+np.float64,0xbfd4001cf9a8003a,0xbfd4b14b9035b94f,1
+np.float64,0x3fe54a17e6ea9430,0x3fe9ac0f18682343,1
+np.float64,0xbfb4e07fea29c100,0xbfb4ec6520dd0689,1
+np.float64,0xbfed2b6659fa56cd,0xbff895ed57dc1450,1
+np.float64,0xbfe81fc8b5f03f92,0xbfef6b95e72a7a7c,1
+np.float64,0xbfe6aced16ed59da,0xbfec4ce131ee3704,1
+np.float64,0xbfe599f30ceb33e6,0xbfea3d07c1cd78e2,1
+np.float64,0xbfe0ff278b61fe4f,0xbfe2ef8b5efa89ed,1
+np.float64,0xbfe3e9406467d281,0xbfe750e43e841736,1
+np.float64,0x3fcc6b52cf38d6a8,0x3fcce688f4fb2cf1,1
+np.float64,0xbfc890e8133121d0,0xbfc8dfdfee72d258,1
+np.float64,0x3fe46e81dbe8dd04,0x3fe82e09783811a8,1
+np.float64,0x3fd94455e5b288ac,0x3fdab7cef2de0b1f,1
+np.float64,0xbfe82151fff042a4,0xbfef6f254c9696ca,1
+np.float64,0x3fcee1ac1d3dc358,0x3fcf80a6ed07070a,1
+np.float64,0x3fcce8f90939d1f0,0x3fcd6ad18d34f8b5,1
+np.float64,0x3fd6afe56fad5fcc,0x3fd7b7567526b1fb,1
+np.float64,0x3fb1a77092234ee0,0x3fb1ae9fe0d176fc,1
+np.float64,0xbfeb758b0d76eb16,0xbff493d105652edc,1
+np.float64,0xbfb857c24e30af88,0xbfb86aa4da3be53f,1
+np.float64,0x3fe89064eff120ca,0x3ff03b7c5b3339a8,1
+np.float64,0xbfc1bd2fef237a60,0xbfc1da99893473ed,1
+np.float64,0xbfe5ad6e2eeb5adc,0xbfea60ed181b5c05,1
+np.float64,0x3fd5a66358ab4cc8,0x3fd6899e640aeb1f,1
+np.float64,0xbfe198e832e331d0,0xbfe3c8c9496d0de5,1
+np.float64,0xbfdaa5c0d7b54b82,0xbfdc5ed7d3c5ce49,1
+np.float64,0x3fcceccb6939d998,0x3fcd6ed88c2dd3a5,1
+np.float64,0xbfe44413eae88828,0xbfe7e6cd32b34046,1
+np.float64,0xbfc7cbeccf2f97d8,0xbfc8139a2626edae,1
+np.float64,0x3fbf31e4fa3e63d0,0x3fbf59c6e863255e,1
+np.float64,0x3fdf03fa05be07f4,0x3fe0ed953f7989ad,1
+np.float64,0x3fe7f4eaceefe9d6,0x3fef092ca7e2ac39,1
+np.float64,0xbfc084e9d92109d4,0xbfc09ca10fd6aaea,1
+np.float64,0xbf88cfbf70319f80,0xbf88d00effa6d897,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfa0176e9c202ee0,0xbfa018ca0a6ceef3,1
+np.float64,0xbfd88d0815b11a10,0xbfd9dfc6c6bcbe4e,1
+np.float64,0x3fe89f7730713eee,0x3ff04de52fb536f3,1
+np.float64,0xbfedc9707bfb92e1,0xbffaa25fcf9dd6da,1
+np.float64,0x3fe936d1a6726da4,0x3ff10e40c2d94bc9,1
+np.float64,0x3fdb64aec7b6c95c,0x3fdd473177317b3f,1
+np.float64,0xbfee4f9aaefc9f35,0xbffcdd212667003c,1
+np.float64,0x3fe3730067e6e600,0x3fe692b0a0babf5f,1
+np.float64,0xbfc257e58924afcc,0xbfc27871f8c218d7,1
+np.float64,0x3fe62db12dec5b62,0x3feb52c61b97d9f6,1
+np.float64,0xbfe3ff491367fe92,0xbfe774f1b3a96fd6,1
+np.float64,0x3fea43255274864a,0x3ff28b0c4b7b8d21,1
+np.float64,0xbfea37923c746f24,0xbff27962159f2072,1
+np.float64,0x3fcd0ac3c73a1588,0x3fcd8e6f8de41755,1
+np.float64,0xbfdccafde6b995fc,0xbfdf030fea8a0630,1
+np.float64,0x3fdba35268b746a4,0x3fdd94094f6f50c1,1
+np.float64,0x3fc68ea1d92d1d40,0x3fc6cb8d07cbb0e4,1
+np.float64,0xbfb88b1f6e311640,0xbfb89e7af4e58778,1
+np.float64,0xbfedc7cadffb8f96,0xbffa9c3766227956,1
+np.float64,0x3fe7928d3eef251a,0x3fee2dcf2ac7961b,1
+np.float64,0xbfeff42ede7fe85e,0xc00cef6b0f1e8323,1
+np.float64,0xbfebf07fa477e0ff,0xbff5893f99e15236,1
+np.float64,0x3fe3002ab9660056,0x3fe5defba550c583,1
+np.float64,0x3feb8f4307f71e86,0x3ff4c517ec8d6de9,1
+np.float64,0x3fd3c16f49a782e0,0x3fd46becaacf74da,1
+np.float64,0x3fc7613df12ec278,0x3fc7a52b2a3c3368,1
+np.float64,0xbfe33af560e675eb,0xbfe63a6528ff1587,1
+np.float64,0xbfde86495abd0c92,0xbfe09bd7ba05b461,1
+np.float64,0x3fe1e7fb4ee3cff6,0x3fe43b04311c0ab6,1
+np.float64,0xbfc528b6bd2a516c,0xbfc55ae0a0c184c8,1
+np.float64,0xbfd81025beb0204c,0xbfd94dd72d804613,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0x3fc1151c47222a38,0x3fc12f5aad80a6bf,1
+np.float64,0x3feafa136775f426,0x3ff3b46854da0b3a,1
+np.float64,0x3fed2da0747a5b40,0x3ff89c85b658459e,1
+np.float64,0x3fda2a4b51b45498,0x3fdbca0d908ddbbd,1
+np.float64,0xbfd04cf518a099ea,0xbfd0aae0033b9e4c,1
+np.float64,0xbfb9065586320ca8,0xbfb91adb7e31f322,1
+np.float64,0xbfd830b428b06168,0xbfd973ca3c484d8d,1
+np.float64,0x3fc952f7ed32a5f0,0x3fc9a9994561fc1a,1
+np.float64,0xbfeb06c83c760d90,0xbff3ca77b326df20,1
+np.float64,0xbfeb1c98ac763931,0xbff3f0d0900f6149,1
+np.float64,0x3fdf061dbebe0c3c,0x3fe0eefb32b48d17,1
+np.float64,0xbf9acbaf28359760,0xbf9acd4024be9fec,1
+np.float64,0x3fec0adde2f815bc,0x3ff5c1628423794d,1
+np.float64,0xbfc4bc750d2978ec,0xbfc4eba43f590b94,1
+np.float64,0x3fdbe47878b7c8f0,0x3fdde44a2b500d73,1
+np.float64,0x3fe160d18162c1a4,0x3fe378cff08f18f0,1
+np.float64,0x3fc3b58dfd276b18,0x3fc3de01d3802de9,1
+np.float64,0x3fa860343430c060,0x3fa864ecd07ec962,1
+np.float64,0x3fcaebfb4b35d7f8,0x3fcb546512d1b4c7,1
+np.float64,0x3fe3fda558e7fb4a,0x3fe772412e5776de,1
+np.float64,0xbfe8169f2c702d3e,0xbfef5666c9a10f6d,1
+np.float64,0x3feda78e9efb4f1e,0x3ffa270712ded769,1
+np.float64,0xbfda483161b49062,0xbfdbedfbf2e850ba,1
+np.float64,0x3fd7407cf3ae80f8,0x3fd85d4f52622743,1
+np.float64,0xbfd63de4d4ac7bca,0xbfd73550a33e3c32,1
+np.float64,0xbfd9c30b90b38618,0xbfdb4e7695c856f3,1
+np.float64,0x3fcd70c00b3ae180,0x3fcdfa0969e0a119,1
+np.float64,0x3feb4f127f769e24,0x3ff44bf42514e0f4,1
+np.float64,0xbfec1db44af83b69,0xbff5ea54aed1f8e9,1
+np.float64,0x3fd68ff051ad1fe0,0x3fd792d0ed6d6122,1
+np.float64,0x3fe0a048a5614092,0x3fe26c80a826b2a2,1
+np.float64,0x3fd59f3742ab3e70,0x3fd6818563fcaf80,1
+np.float64,0x3fca26ecf9344dd8,0x3fca867ceb5d7ba8,1
+np.float64,0x3fdc1d547ab83aa8,0x3fde2a9cea866484,1
+np.float64,0xbfc78df6312f1bec,0xbfc7d3719b698a39,1
+np.float64,0x3fe754e72b6ea9ce,0x3feda89ea844a2e5,1
+np.float64,0x3fe740c1a4ee8184,0x3fed7dc56ec0c425,1
+np.float64,0x3fe77566a9eeeace,0x3fedee6f408df6de,1
+np.float64,0xbfbbf5bf8e37eb80,0xbfbc126a223781b4,1
+np.float64,0xbfe0acb297615965,0xbfe27d86681ca2b5,1
+np.float64,0xbfc20a0487241408,0xbfc228f5f7d52ce8,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x3fef98a4dbff314a,0x40043cfb60bd46fa,1
+np.float64,0x3fd059102ca0b220,0x3fd0b7d2be6d7822,1
+np.float64,0x3fe89f18a1f13e32,0x3ff04d714bbbf400,1
+np.float64,0x3fd45b6275a8b6c4,0x3fd516a44a276a4b,1
+np.float64,0xbfe04463e86088c8,0xbfe1ef9dfc9f9a53,1
+np.float64,0xbfe086e279610dc5,0xbfe249c9c1040a13,1
+np.float64,0x3f89c9b110339380,0x3f89ca0a641454b5,1
+np.float64,0xbfb5f5b4322beb68,0xbfb6038dc3fd1516,1
+np.float64,0x3fe6eae76f6dd5ce,0x3feccabae04d5c14,1
+np.float64,0x3fa9ef6c9c33dee0,0x3fa9f51c9a8c8a2f,1
+np.float64,0xbfe171b45f62e368,0xbfe390ccc4c01bf6,1
+np.float64,0x3fb2999442253330,0x3fb2a1fc006804b5,1
+np.float64,0x3fd124bf04a24980,0x3fd1927abb92472d,1
+np.float64,0xbfe6e05938edc0b2,0xbfecb519ba78114f,1
+np.float64,0x3fed466ee6fa8cde,0x3ff8e75405b50490,1
+np.float64,0xbfb999aa92333358,0xbfb9afa4f19f80a2,1
+np.float64,0xbfe98969ed7312d4,0xbff17d887b0303e7,1
+np.float64,0x3fe782843e6f0508,0x3fee0adbeebe3486,1
+np.float64,0xbfe232fcc26465fa,0xbfe4a90a68d46040,1
+np.float64,0x3fd190a90fa32154,0x3fd206f56ffcdca2,1
+np.float64,0xbfc4f8b75929f170,0xbfc5298b2d4e7740,1
+np.float64,0xbfba3a63d63474c8,0xbfba520835c2fdc2,1
+np.float64,0xbfb7708eea2ee120,0xbfb781695ec17846,1
+np.float64,0x3fed9fb7a5fb3f70,0x3ffa0b717bcd1609,1
+np.float64,0xbfc1b158cd2362b0,0xbfc1ce87345f3473,1
+np.float64,0x3f963478082c6900,0x3f96355c3000953b,1
+np.float64,0x3fc5050e532a0a20,0x3fc536397f38f616,1
+np.float64,0x3fe239f9eee473f4,0x3fe4b360da3b2faa,1
+np.float64,0xbfd66bd80eacd7b0,0xbfd769a29fd784c0,1
+np.float64,0x3fc57cdad52af9b8,0x3fc5b16b937f5f72,1
+np.float64,0xbfd3c36a0aa786d4,0xbfd46e1cd0b4eddc,1
+np.float64,0x3feff433487fe866,0x400cf0ea1def3161,1
+np.float64,0xbfed5577807aaaef,0xbff915e8f6bfdf22,1
+np.float64,0xbfca0dd3eb341ba8,0xbfca6c4d11836cb6,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xbf974deaa82e9be0,0xbf974ef26a3130d1,1
+np.float64,0xbfe7f425e1efe84c,0xbfef076cb00d649d,1
+np.float64,0xbfe4413605e8826c,0xbfe7e20448b8a4b1,1
+np.float64,0xbfdfad202cbf5a40,0xbfe15cd9eb2be707,1
+np.float64,0xbfe43261ee6864c4,0xbfe7c952c951fe33,1
+np.float64,0xbfec141225782824,0xbff5d54d33861d98,1
+np.float64,0x3fd0f47abaa1e8f4,0x3fd15e8691a7f1c2,1
+np.float64,0x3fd378f0baa6f1e0,0x3fd41bea4a599081,1
+np.float64,0xbfb52523462a4a48,0xbfb5317fa7f436e2,1
+np.float64,0x3fcb30797d3660f0,0x3fcb9c174ea401ff,1
+np.float64,0xbfd48480dea90902,0xbfd5446e02c8b329,1
+np.float64,0xbfee4ae3ab7c95c7,0xbffcc650340ba274,1
+np.float64,0xbfeab086d075610e,0xbff3387f4e83ae26,1
+np.float64,0x3fa17cddf422f9c0,0x3fa17e9bf1b25736,1
+np.float64,0xbfe3064536e60c8a,0xbfe5e86aa5244319,1
+np.float64,0x3feb2882c5765106,0x3ff40604c7d97d44,1
+np.float64,0xbfa6923ff42d2480,0xbfa695ff57b2fc3f,1
+np.float64,0xbfa8bdbdcc317b80,0xbfa8c2ada0d94aa7,1
+np.float64,0x3fe7f16b8e6fe2d8,0x3fef013948c391a6,1
+np.float64,0x3fe4e7169f69ce2e,0x3fe8fceef835050a,1
+np.float64,0x3fed877638fb0eec,0x3ff9b83694127959,1
+np.float64,0xbfe0cc9ecf61993e,0xbfe2a978234cbde5,1
+np.float64,0xbfe977e79672efcf,0xbff16589ea494a38,1
+np.float64,0xbfe240130ae48026,0xbfe4bc69113e0d7f,1
+np.float64,0x3feb1e9b70763d36,0x3ff3f4615938a491,1
+np.float64,0xbfdf197dfcbe32fc,0xbfe0fba78a0fc816,1
+np.float64,0xbfee0f8543fc1f0a,0xbffbb9d9a4ee5387,1
+np.float64,0x3fe88d2191f11a44,0x3ff037843b5b6313,1
+np.float64,0xbfd11bb850a23770,0xbfd188c1cef40007,1
+np.float64,0xbfa1b36e9c2366e0,0xbfa1b53d1d8a8bc4,1
+np.float64,0xbfea2d70d9f45ae2,0xbff26a0629e36b3e,1
+np.float64,0xbfd9188703b2310e,0xbfda83f9ddc18348,1
+np.float64,0xbfee194894fc3291,0xbffbe3c83b61e7cb,1
+np.float64,0xbfe093b4a9e1276a,0xbfe25b4ad6f8f83d,1
+np.float64,0x3fea031489f4062a,0x3ff22accc000082e,1
+np.float64,0xbfc6c0827b2d8104,0xbfc6ff0a94326381,1
+np.float64,0x3fef5cd340feb9a6,0x4002659c5a1b34af,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0x3fd97cb533b2f96c,0x3fdafab28aaae8e3,1
+np.float64,0x3fe2123334642466,0x3fe478bd83a8ce02,1
+np.float64,0xbfd9a69637b34d2c,0xbfdb2c87c6b6fb8c,1
+np.float64,0x3fc58def7f2b1be0,0x3fc5c2ff724a9f61,1
+np.float64,0xbfedd5da1f7babb4,0xbffad15949b7fb22,1
+np.float64,0x3fe90e92a0721d26,0x3ff0d9b64323efb8,1
+np.float64,0x3fd34b9442a69728,0x3fd3e9f8fe80654e,1
+np.float64,0xbfc5f509ab2bea14,0xbfc62d2ad325c59f,1
+np.float64,0x3feb245634f648ac,0x3ff3fe91a46acbe1,1
+np.float64,0x3fd101e539a203cc,0x3fd16cf52ae6d203,1
+np.float64,0xbfc51e9ba72a3d38,0xbfc5507d00521ba3,1
+np.float64,0x3fe5fe1683ebfc2e,0x3feaf7dd8b1f92b0,1
+np.float64,0x3fc362e59126c5c8,0x3fc389601814170b,1
+np.float64,0x3fea34dbd77469b8,0x3ff27542eb721e7e,1
+np.float64,0xbfc13ed241227da4,0xbfc159d42c0a35a9,1
+np.float64,0xbfe6df118cedbe23,0xbfecb27bb5d3f784,1
+np.float64,0x3fd92895f6b2512c,0x3fda96f5f94b625e,1
+np.float64,0xbfe7ea3aa76fd476,0xbfeef0e93939086e,1
+np.float64,0xbfc855498330aa94,0xbfc8a1ff690c9533,1
+np.float64,0x3fd9f27b3ab3e4f8,0x3fdb8726979afc3b,1
+np.float64,0x3fc65d52232cbaa8,0x3fc698ac4367afba,1
+np.float64,0x3fd1271dd0a24e3c,0x3fd195087649d54e,1
+np.float64,0xbfe983445df30689,0xbff175158b773b90,1
+np.float64,0xbfe0d9b13261b362,0xbfe2bb8908fc9e6e,1
+np.float64,0x3fd7671f2aaece40,0x3fd889dccbf21629,1
+np.float64,0x3fe748aebfee915e,0x3fed8e970d94c17d,1
+np.float64,0x3fea756e4e74eadc,0x3ff2d947ef3a54f4,1
+np.float64,0x3fde22311cbc4464,0x3fe05b4ce9df1fdd,1
+np.float64,0x3fe2b55ec1e56abe,0x3fe56c6849e3985a,1
+np.float64,0x3fed7b47437af68e,0x3ff98f8e82de99a0,1
+np.float64,0x3fec8184b179030a,0x3ff6d03aaf0135ba,1
+np.float64,0x3fc9ea825533d508,0x3fca4776d7190e71,1
+np.float64,0xbfe8ddd58b71bbab,0xbff09b770ed7bc9a,1
+np.float64,0xbfed41741bfa82e8,0xbff8d81c2a9fc615,1
+np.float64,0x3fe0a73888e14e72,0x3fe27602ad9a3726,1
+np.float64,0xbfe9d0a565f3a14b,0xbff1e1897b628f66,1
+np.float64,0x3fda12b381b42568,0x3fdbadbec22fbd5a,1
+np.float64,0x3fef0081187e0102,0x4000949eff8313c2,1
+np.float64,0x3fef6942b67ed286,0x4002b7913eb1ee76,1
+np.float64,0x3fda10f882b421f0,0x3fdbababa2d6659d,1
+np.float64,0x3fe5828971eb0512,0x3fea122b5088315a,1
+np.float64,0x3fe9d4b53ff3a96a,0x3ff1e75c148bda01,1
+np.float64,0x3fe95d246bf2ba48,0x3ff1414a61a136ec,1
+np.float64,0x3f9e575eb83caec0,0x3f9e59a4f17179e3,1
+np.float64,0x3fdb0a20b5b61440,0x3fdcd8a56178a17f,1
+np.float64,0xbfdef425e3bde84c,0xbfe0e33eeacf3861,1
+np.float64,0x3fd6afcf6bad5fa0,0x3fd7b73d47288347,1
+np.float64,0x3fe89256367124ac,0x3ff03dd9f36ce40e,1
+np.float64,0x3fe7e560fcefcac2,0x3feee5ef8688b60b,1
+np.float64,0x3fedef55e1fbdeac,0x3ffb350ee1df986b,1
+np.float64,0xbfe44b926de89725,0xbfe7f3539910c41f,1
+np.float64,0x3fc58310f32b0620,0x3fc5b7cfdba15bd0,1
+np.float64,0x3f736d256026da00,0x3f736d2eebe91a90,1
+np.float64,0x3feb012d2076025a,0x3ff3c0b5d21a7259,1
+np.float64,0xbfe466a6c468cd4e,0xbfe820c9c197601f,1
+np.float64,0x3fe1aba8aa635752,0x3fe3e3b73920f64c,1
+np.float64,0x3fe5597c336ab2f8,0x3fe9c7bc4b765b15,1
+np.float64,0x3fe1004ac5e20096,0x3fe2f12116e99821,1
+np.float64,0x3fecbc67477978ce,0x3ff76377434dbdad,1
+np.float64,0x3fe0e64515e1cc8a,0x3fe2ccf5447c1579,1
+np.float64,0x3febcfa874f79f50,0x3ff54528f0822144,1
+np.float64,0x3fc36915ed26d228,0x3fc38fb5b28d3f72,1
+np.float64,0xbfe01213e5e02428,0xbfe1ac0e1e7418f1,1
+np.float64,0x3fcd97875b3b2f10,0x3fce22fe3fc98702,1
+np.float64,0xbfe30383c5e60708,0xbfe5e427e62cc957,1
+np.float64,0xbfde339bf9bc6738,0xbfe0667f337924f5,1
+np.float64,0xbfda7c1c49b4f838,0xbfdc2c8801ce654a,1
+np.float64,0x3fb6b3489e2d6690,0x3fb6c29650387b92,1
+np.float64,0xbfe1fd4d76e3fa9b,0xbfe45a1f60077678,1
+np.float64,0xbf67c5e0402f8c00,0xbf67c5e49fce115a,1
+np.float64,0xbfd4f9aa2da9f354,0xbfd5c759603d0b9b,1
+np.float64,0x3fe83c227bf07844,0x3fefada9f1bd7fa9,1
+np.float64,0xbf97f717982fee20,0xbf97f836701a8cd5,1
+np.float64,0x3fe9688a2472d114,0x3ff150aa575e7d51,1
+np.float64,0xbfc5a9779d2b52f0,0xbfc5df56509c48b1,1
+np.float64,0xbfe958d5f472b1ac,0xbff13b813f9bee20,1
+np.float64,0xbfd7b3b944af6772,0xbfd8e276c2b2920f,1
+np.float64,0x3fed10198e7a2034,0x3ff8469c817572f0,1
+np.float64,0xbfeeecc4517dd989,0xc000472b1f858be3,1
+np.float64,0xbfdbcce47eb799c8,0xbfddc734aa67812b,1
+np.float64,0xbfd013ee24a027dc,0xbfd06df3089384ca,1
+np.float64,0xbfd215f2bfa42be6,0xbfd29774ffe26a74,1
+np.float64,0x3fdfd0ae67bfa15c,0x3fe1746e3a963a9f,1
+np.float64,0xbfc84aa10b309544,0xbfc896f0d25b723a,1
+np.float64,0xbfcd0c627d3a18c4,0xbfcd9024c73747a9,1
+np.float64,0x3fd87df6dbb0fbec,0x3fd9ce1dde757f31,1
+np.float64,0xbfdad85e05b5b0bc,0xbfdc9c2addb6ce47,1
+np.float64,0xbfee4f8977fc9f13,0xbffcdccd68e514b3,1
+np.float64,0x3fa5c290542b8520,0x3fa5c5ebdf09ca70,1
+np.float64,0xbfd7e401d2afc804,0xbfd91a7e4eb5a026,1
+np.float64,0xbfe33ff73b667fee,0xbfe6423cc6eb07d7,1
+np.float64,0x3fdfb7d6c4bf6fac,0x3fe163f2e8175177,1
+np.float64,0xbfd515d69eaa2bae,0xbfd5e6eedd6a1598,1
+np.float64,0x3fb322232e264440,0x3fb32b49d91c3cbe,1
+np.float64,0xbfe20ac39e641587,0xbfe46dd4b3803f19,1
+np.float64,0x3fe282dc18e505b8,0x3fe520152120c297,1
+np.float64,0xbfc905a4cd320b48,0xbfc95929b74865fb,1
+np.float64,0x3fe0ae3b83615c78,0x3fe27fa1dafc825b,1
+np.float64,0xbfc1bfed0f237fdc,0xbfc1dd6466225cdf,1
+np.float64,0xbfeca4d47d7949a9,0xbff72761a34fb682,1
+np.float64,0xbfe8cf8c48f19f18,0xbff0897ebc003626,1
+np.float64,0xbfe1aaf0a36355e2,0xbfe3e2ae7b17a286,1
+np.float64,0x3fe2ca442e659488,0x3fe58c3a2fb4f14a,1
+np.float64,0xbfda3c2deeb4785c,0xbfdbdf89fe96a243,1
+np.float64,0xbfdc12bfecb82580,0xbfde1d81dea3c221,1
+np.float64,0xbfe2d6d877e5adb1,0xbfe59f73e22c1fc7,1
+np.float64,0x3fe5f930636bf260,0x3feaee96a462e4de,1
+np.float64,0x3fcf3c0ea53e7820,0x3fcfe0b0f92be7e9,1
+np.float64,0xbfa5bb90f42b7720,0xbfa5bee9424004cc,1
+np.float64,0xbfe2fb3a3265f674,0xbfe5d75b988bb279,1
+np.float64,0x3fcaec7aab35d8f8,0x3fcb54ea582fff6f,1
+np.float64,0xbfd8d3228db1a646,0xbfda322297747fbc,1
+np.float64,0x3fedd2e0ad7ba5c2,0x3ffac6002b65c424,1
+np.float64,0xbfd9edeca2b3dbda,0xbfdb81b2b7785e33,1
+np.float64,0xbfef5febb17ebfd7,0xc002796b15950960,1
+np.float64,0x3fde22f787bc45f0,0x3fe05bcc624b9ba2,1
+np.float64,0xbfc716a4ab2e2d48,0xbfc758073839dd44,1
+np.float64,0xbf9bed852837db00,0xbf9bef4b2a3f3bdc,1
+np.float64,0x3fef8f88507f1f10,0x4003e5e566444571,1
+np.float64,0xbfdc1bbed6b8377e,0xbfde28a64e174e60,1
+np.float64,0x3fe02d30eae05a62,0x3fe1d064ec027cd3,1
+np.float64,0x3fd9dbb500b3b76c,0x3fdb6bea40162279,1
+np.float64,0x3fe353ff1d66a7fe,0x3fe661b3358c925e,1
+np.float64,0x3fac3ebfb4387d80,0x3fac4618effff2b0,1
+np.float64,0x3fe63cf0ba6c79e2,0x3feb7030cff5f434,1
+np.float64,0x3fd0e915f8a1d22c,0x3fd152464597b510,1
+np.float64,0xbfd36987cda6d310,0xbfd40af049d7621e,1
+np.float64,0xbfdc5b4dc7b8b69c,0xbfde7790a35da2bc,1
+np.float64,0x3feee7ff4a7dcffe,0x40003545989e07c7,1
+np.float64,0xbfeb2c8308765906,0xbff40d2e6469249e,1
+np.float64,0x3fe535a894ea6b52,0x3fe98781648550d0,1
+np.float64,0xbfef168eb9fe2d1d,0xc000f274ed3cd312,1
+np.float64,0x3fc3e2d98927c5b0,0x3fc40c6991b8900c,1
+np.float64,0xbfcd8fe3e73b1fc8,0xbfce1aec7f9b7f7d,1
+np.float64,0xbfd55d8c3aaabb18,0xbfd6378132ee4892,1
+np.float64,0xbfe424a66168494d,0xbfe7b289d72c98b3,1
+np.float64,0x3fd81af13eb035e4,0x3fd95a6a9696ab45,1
+np.float64,0xbfe3016722e602ce,0xbfe5e0e46db228cd,1
+np.float64,0x3fe9a20beff34418,0x3ff19faca17fc468,1
+np.float64,0xbfe2124bc7e42498,0xbfe478e19927e723,1
+np.float64,0x3fd96f8622b2df0c,0x3fdaeb08da6b08ae,1
+np.float64,0x3fecd6796579acf2,0x3ff7a7d02159e181,1
+np.float64,0x3fe60015df6c002c,0x3feafba6f2682a61,1
+np.float64,0x3fc7181cf72e3038,0x3fc7598c2cc3c3b4,1
+np.float64,0xbfce6e2e0b3cdc5c,0xbfcf0621b3e37115,1
+np.float64,0xbfe52a829e6a5505,0xbfe973a785980af9,1
+np.float64,0x3fed4bbac37a9776,0x3ff8f7a0e68a2bbe,1
+np.float64,0x3fabdfaacc37bf60,0x3fabe6bab42bd246,1
+np.float64,0xbfcd9598cb3b2b30,0xbfce20f3c4c2c261,1
+np.float64,0x3fd717d859ae2fb0,0x3fd82e88eca09ab1,1
+np.float64,0x3fe28ccb18e51996,0x3fe52f071d2694fd,1
+np.float64,0xbfe43f064ae87e0c,0xbfe7de5eab36b5b9,1
+np.float64,0x7fefffffffffffff,0xfff8000000000000,1
+np.float64,0xbfb39b045a273608,0xbfb3a4dd3395fdd5,1
+np.float64,0xbfb3358bae266b18,0xbfb33ece5e95970a,1
+np.float64,0xbfeeafb6717d5f6d,0xbffeec3f9695b575,1
+np.float64,0xbfe7a321afef4644,0xbfee522dd80f41f4,1
+np.float64,0x3fe3a17e5be742fc,0x3fe6dcd32af51e92,1
+np.float64,0xbfc61694bd2c2d28,0xbfc64fbbd835f6e7,1
+np.float64,0xbfd795906faf2b20,0xbfd8bf89b370655c,1
+np.float64,0xbfe4b39b59e96736,0xbfe8a3c5c645b6e3,1
+np.float64,0x3fd310af3ba62160,0x3fd3a9442e825e1c,1
+np.float64,0xbfd45198a6a8a332,0xbfd50bc10311a0a3,1
+np.float64,0x3fd0017eaaa002fc,0x3fd05a472a837999,1
+np.float64,0xbfea974d98752e9b,0xbff30f67f1835183,1
+np.float64,0xbf978f60582f1ec0,0xbf979070e1c2b59d,1
+np.float64,0x3fe1c715d4e38e2c,0x3fe40b479e1241a2,1
+np.float64,0xbfccb965cd3972cc,0xbfcd38b40c4a352d,1
+np.float64,0xbfd9897048b312e0,0xbfdb09d55624c2a3,1
+np.float64,0x3fe7f5de4befebbc,0x3fef0b56be259f9c,1
+np.float64,0x3fcc6c6d4338d8d8,0x3fcce7b20ed68a78,1
+np.float64,0xbfe63884046c7108,0xbfeb67a3b945c3ee,1
+np.float64,0xbfce64e2ad3cc9c4,0xbfcefc47fae2e81f,1
+np.float64,0x3fefeb57b27fd6b0,0x400ab2eac6321cfb,1
+np.float64,0x3fe679627e6cf2c4,0x3febe6451b6ee0c4,1
+np.float64,0x3fc5f710172bee20,0x3fc62f40f85cb040,1
+np.float64,0x3fc34975e52692e8,0x3fc36f58588c7fa2,1
+np.float64,0x3fe8a3784cf146f0,0x3ff052ced9bb9406,1
+np.float64,0x3fd11a607ca234c0,0x3fd1874f876233fe,1
+np.float64,0x3fb2d653f625aca0,0x3fb2df0f4c9633f3,1
+np.float64,0x3fe555f39eeaabe8,0x3fe9c15ee962a28c,1
+np.float64,0xbfea297e3bf452fc,0xbff264107117f709,1
+np.float64,0x3fe1581cdde2b03a,0x3fe36c79acedf99c,1
+np.float64,0x3fd4567063a8ace0,0x3fd51123dbd9106f,1
+np.float64,0x3fa3883aec271080,0x3fa38aa86ec71218,1
+np.float64,0x3fe40e5d7de81cba,0x3fe78dbb9b568850,1
+np.float64,0xbfe9a2f7347345ee,0xbff1a0f4faa05041,1
+np.float64,0x3f9eef03a83dde00,0x3f9ef16caa0c1478,1
+np.float64,0xbfcb4641d1368c84,0xbfcbb2e7ff8c266d,1
+np.float64,0xbfa8403b2c308070,0xbfa844e148b735b7,1
+np.float64,0xbfe1875cd6e30eba,0xbfe3afadc08369f5,1
+np.float64,0xbfdd3c3d26ba787a,0xbfdf919b3e296766,1
+np.float64,0x3fcd6c4c853ad898,0x3fcdf55647b518b8,1
+np.float64,0xbfe360a173e6c143,0xbfe6759eb3a08cf2,1
+np.float64,0x3fe5a13147eb4262,0x3fea4a5a060f5adb,1
+np.float64,0x3feb3cdd7af679ba,0x3ff42aae0cf61234,1
+np.float64,0x3fe5205128ea40a2,0x3fe9618f3d0c54af,1
+np.float64,0x3fce35343f3c6a68,0x3fcec9c4e612b050,1
+np.float64,0xbfc345724d268ae4,0xbfc36b3ce6338e6a,1
+np.float64,0x3fedc4fc0e7b89f8,0x3ffa91c1d775c1f7,1
+np.float64,0x3fe41fbf21683f7e,0x3fe7aa6c174a0e65,1
+np.float64,0xbfc7a1a5d32f434c,0xbfc7e7d27a4c5241,1
+np.float64,0x3fd3e33eaca7c67c,0x3fd4915264441e2f,1
+np.float64,0x3feb3f02f6f67e06,0x3ff42e942249e596,1
+np.float64,0x3fdb75fcb0b6ebf8,0x3fdd5c63f98b6275,1
+np.float64,0x3fd6476603ac8ecc,0x3fd74020b164cf38,1
+np.float64,0x3fed535372faa6a6,0x3ff90f3791821841,1
+np.float64,0x3fe8648ead70c91e,0x3ff006a62befd7ed,1
+np.float64,0x3fd0f90760a1f210,0x3fd1636b39bb1525,1
+np.float64,0xbfca052443340a48,0xbfca633d6e777ae0,1
+np.float64,0xbfa6a5e3342d4bc0,0xbfa6a9ac6a488f5f,1
+np.float64,0x3fd5598038aab300,0x3fd632f35c0c3d52,1
+np.float64,0xbfdf66218fbecc44,0xbfe12df83b19f300,1
+np.float64,0x3fe78e15b56f1c2c,0x3fee240d12489cd1,1
+np.float64,0x3fe3d6a7b3e7ad50,0x3fe7329dcf7401e2,1
+np.float64,0xbfddb8e97bbb71d2,0xbfe017ed6d55a673,1
+np.float64,0xbfd57afd55aaf5fa,0xbfd658a9607c3370,1
+np.float64,0xbfdba4c9abb74994,0xbfdd95d69e5e8814,1
+np.float64,0xbfe71d8090ee3b01,0xbfed3390be6d2eef,1
+np.float64,0xbfc738ac0f2e7158,0xbfc77b3553b7c026,1
+np.float64,0x3f873656302e6c80,0x3f873697556ae011,1
+np.float64,0x3fe559491d6ab292,0x3fe9c7603b12c608,1
+np.float64,0xbfe262776864c4ef,0xbfe4ef905dda8599,1
+np.float64,0x3fe59d8917eb3b12,0x3fea439f44b7573f,1
+np.float64,0xbfd4b5afb5a96b60,0xbfd57b4e3df4dbc8,1
+np.float64,0x3fe81158447022b0,0x3fef4a3cea3eb6a9,1
+np.float64,0xbfeb023441f60468,0xbff3c27f0fc1a4dc,1
+np.float64,0x3fefb212eaff6426,0x40055fc6d949cf44,1
+np.float64,0xbfe1300ac1e26016,0xbfe333f297a1260e,1
+np.float64,0xbfeae0a2f575c146,0xbff388d58c380b8c,1
+np.float64,0xbfeddd8e55fbbb1d,0xbffaef045b2e21d9,1
+np.float64,0x3fec7c6c1d78f8d8,0x3ff6c3ebb019a8e5,1
+np.float64,0xbfe27e071f64fc0e,0xbfe518d2ff630f33,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x3fc5872abf2b0e58,0x3fc5bc083105db76,1
+np.float64,0x3fe65114baeca22a,0x3feb9745b82ef15a,1
+np.float64,0xbfc783abe52f0758,0xbfc7c8cb23f93e79,1
+np.float64,0x3fe4b7a5dd696f4c,0x3fe8aab9d492f0ca,1
+np.float64,0xbf91a8e8a82351e0,0xbf91a95b6ae806f1,1
+np.float64,0xbfee482eb77c905d,0xbffcb952830e715a,1
+np.float64,0x3fba0eee2a341de0,0x3fba261d495e3a1b,1
+np.float64,0xbfeb8876ae7710ed,0xbff4b7f7f4343506,1
+np.float64,0xbfe4d29e46e9a53c,0xbfe8d9547a601ba7,1
+np.float64,0xbfe12413b8e24828,0xbfe3232656541d10,1
+np.float64,0x3fc0bd8f61217b20,0x3fc0d63f937f0aa4,1
+np.float64,0xbfd3debafda7bd76,0xbfd48c534e5329e4,1
+np.float64,0x3fc0f92de921f258,0x3fc112eb7d47349b,1
+np.float64,0xbfe576b95f6aed72,0xbfe9fca859239b3c,1
+np.float64,0x3fd10e520da21ca4,0x3fd17a546e4152f7,1
+np.float64,0x3fcef917eb3df230,0x3fcf998677a8fa8f,1
+np.float64,0x3fdfcf863abf9f0c,0x3fe173a98af1cb13,1
+np.float64,0x3fc28c4b4f251898,0x3fc2adf43792e917,1
+np.float64,0x3fceb837ad3d7070,0x3fcf54a63b7d8c5c,1
+np.float64,0x3fc0140a05202818,0x3fc029e4f75330cb,1
+np.float64,0xbfd76c3362aed866,0xbfd88fb9e790b4e8,1
+np.float64,0xbfe475300868ea60,0xbfe8395334623e1f,1
+np.float64,0x3fea70b9b4f4e174,0x3ff2d1dad92173ba,1
+np.float64,0xbfe2edbd4965db7a,0xbfe5c29449a9365d,1
+np.float64,0xbfddf86f66bbf0de,0xbfe0408439cada9b,1
+np.float64,0xbfb443cdfa288798,0xbfb44eae796ad3ea,1
+np.float64,0xbf96a8a0482d5140,0xbf96a992b6ef073b,1
+np.float64,0xbfd279db2fa4f3b6,0xbfd3043db6acbd9e,1
+np.float64,0x3fe5d99088ebb322,0x3feab30be14e1605,1
+np.float64,0xbfe1a917abe35230,0xbfe3e0063d0f5f63,1
+np.float64,0x3fc77272f52ee4e8,0x3fc7b6f8ab6f4591,1
+np.float64,0x3fd6b62146ad6c44,0x3fd7be77eef8390a,1
+np.float64,0xbfe39fd9bc673fb4,0xbfe6da30dc4eadde,1
+np.float64,0x3fe35545c066aa8c,0x3fe663b5873e4d4b,1
+np.float64,0xbfcbbeffb3377e00,0xbfcc317edf7f6992,1
+np.float64,0xbfe28a58366514b0,0xbfe52b5734579ffa,1
+np.float64,0xbfbf0c87023e1910,0xbfbf33d970a0dfa5,1
+np.float64,0xbfd31144cba6228a,0xbfd3a9e84f9168f9,1
+np.float64,0xbfe5c044056b8088,0xbfea83d607c1a88a,1
+np.float64,0x3fdaabdf18b557c0,0x3fdc663ee8eddc83,1
+np.float64,0xbfeb883006f71060,0xbff4b76feff615be,1
+np.float64,0xbfebaef41d775de8,0xbff5034111440754,1
+np.float64,0x3fd9b6eb3bb36dd8,0x3fdb3fff5071dacf,1
+np.float64,0x3fe4e33c45e9c678,0x3fe8f637779ddedf,1
+np.float64,0x3fe52213a06a4428,0x3fe964adeff5c14e,1
+np.float64,0x3fe799254cef324a,0x3fee3c3ecfd3cdc5,1
+np.float64,0x3fd0533f35a0a680,0x3fd0b19a003469d3,1
+np.float64,0x3fec7ef5c7f8fdec,0x3ff6ca0abe055048,1
+np.float64,0xbfd1b5da82a36bb6,0xbfd22f357acbee79,1
+np.float64,0xbfd8f9c652b1f38c,0xbfda5faacbce9cf9,1
+np.float64,0x3fc8fc818b31f900,0x3fc94fa9a6aa53c8,1
+np.float64,0x3fcf42cc613e8598,0x3fcfe7dc128f33f2,1
+np.float64,0x3fd393a995a72754,0x3fd4396127b19305,1
+np.float64,0x3fec7b7df9f8f6fc,0x3ff6c1ae51753ef2,1
+np.float64,0x3fc07f175b20fe30,0x3fc096b55c11568c,1
+np.float64,0xbf979170082f22e0,0xbf979280d9555f44,1
+np.float64,0xbfb9d110c633a220,0xbfb9e79ba19b3c4a,1
+np.float64,0x3fedcd7d417b9afa,0x3ffab19734e86d58,1
+np.float64,0xbfec116f27f822de,0xbff5cf9425cb415b,1
+np.float64,0xbfec4fa0bef89f42,0xbff65a771982c920,1
+np.float64,0x3f94d4452829a880,0x3f94d501789ad11c,1
+np.float64,0xbfefe5ede27fcbdc,0xc009c440d3c2a4ce,1
+np.float64,0xbfe7e5f7b5efcbf0,0xbfeee74449aee1db,1
+np.float64,0xbfeb71dc8976e3b9,0xbff48cd84ea54ed2,1
+np.float64,0xbfe4cdb65f699b6c,0xbfe8d0d3bce901ef,1
+np.float64,0x3fb78ef1ee2f1de0,0x3fb7a00e7d183c48,1
+np.float64,0x3fb681864a2d0310,0x3fb6906fe64b4cd7,1
+np.float64,0xbfd2ad3b31a55a76,0xbfd33c57b5985399,1
+np.float64,0x3fdcdaaa95b9b554,0x3fdf16b99628db1e,1
+np.float64,0x3fa4780b7428f020,0x3fa47ad6ce9b8081,1
+np.float64,0x3fc546b0ad2a8d60,0x3fc579b361b3b18f,1
+np.float64,0x3feaf98dd6f5f31c,0x3ff3b38189c3539c,1
+np.float64,0x3feb0b2eca76165e,0x3ff3d22797083f9a,1
+np.float64,0xbfdc02ae3ab8055c,0xbfde099ecb5dbacf,1
+np.float64,0x3fd248bf17a49180,0x3fd2ceb77b346d1d,1
+np.float64,0x3fe349d666e693ac,0x3fe651b9933a8853,1
+np.float64,0xbfca526fc534a4e0,0xbfcab3e83f0d9b93,1
+np.float64,0x3fc156421722ac88,0x3fc171b38826563b,1
+np.float64,0xbfe4244569e8488b,0xbfe7b1e93e7d4f92,1
+np.float64,0x3fe010faabe021f6,0x3fe1aa961338886d,1
+np.float64,0xbfc52dacb72a5b58,0xbfc55ffa50eba380,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x3fea1d4865f43a90,0x3ff251b839eb4817,1
+np.float64,0xbfa0f65c8421ecc0,0xbfa0f7f37c91be01,1
+np.float64,0x3fcab29c0b356538,0x3fcb1863edbee184,1
+np.float64,0x3fe7949162ef2922,0x3fee323821958b88,1
+np.float64,0x3fdaf9288ab5f250,0x3fdcc400190a4839,1
+np.float64,0xbfe13ece6be27d9d,0xbfe348ba07553179,1
+np.float64,0x3f8a0c4fd0341880,0x3f8a0cabdf710185,1
+np.float64,0x3fdd0442a2ba0884,0x3fdf4b016c4da452,1
+np.float64,0xbfaf06d2343e0da0,0xbfaf1090b1600422,1
+np.float64,0xbfd3b65225a76ca4,0xbfd45fa49ae76cca,1
+np.float64,0x3fef5d75fefebaec,0x400269a5e7c11891,1
+np.float64,0xbfe048e35ce091c6,0xbfe1f5af45dd64f8,1
+np.float64,0xbfe27d4599e4fa8b,0xbfe517b07843d04c,1
+np.float64,0xbfe6f2a637ede54c,0xbfecdaa730462576,1
+np.float64,0x3fc63fbb752c7f78,0x3fc67a2854974109,1
+np.float64,0x3fedda6bfbfbb4d8,0x3ffae2e6131f3475,1
+np.float64,0x3fe7a6f5286f4dea,0x3fee5a9b1ef46016,1
+np.float64,0xbfd4ea8bcea9d518,0xbfd5b66ab7e5cf00,1
+np.float64,0x3fdc116568b822cc,0x3fde1bd4d0d9fd6c,1
+np.float64,0x3fdc45cb1bb88b98,0x3fde5cd1d2751032,1
+np.float64,0x3feabd932f757b26,0x3ff34e06e56a62a1,1
+np.float64,0xbfae5dbe0c3cbb80,0xbfae66e062ac0d65,1
+np.float64,0xbfdb385a00b670b4,0xbfdd10fedf3a58a7,1
+np.float64,0xbfebb14755f7628f,0xbff507e123a2b47c,1
+np.float64,0x3fe6de2fdfedbc60,0x3fecb0ae6e131da2,1
+np.float64,0xbfd86de640b0dbcc,0xbfd9bb4dbf0bf6af,1
+np.float64,0x3fe39e86d9e73d0e,0x3fe6d811c858d5d9,1
+np.float64,0x7ff0000000000000,0xfff8000000000000,1
+np.float64,0x3fa8101684302020,0x3fa814a12176e937,1
+np.float64,0x3fefdd5ad37fbab6,0x4008a08c0b76fbb5,1
+np.float64,0x3fe645c727ec8b8e,0x3feb814ebc470940,1
+np.float64,0x3fe3ba79dce774f4,0x3fe70500db564cb6,1
+np.float64,0xbfe0e5a254e1cb44,0xbfe2cc13940c6d9a,1
+np.float64,0x3fe2cac62465958c,0x3fe58d008c5e31f8,1
+np.float64,0xbfd3ffb531a7ff6a,0xbfd4b0d88cff2040,1
+np.float64,0x3fe0929104612522,0x3fe259bc42dce788,1
+np.float64,0x1,0x1,1
+np.float64,0xbfe7db77e6efb6f0,0xbfeecf93e8a61cb3,1
+np.float64,0xbfe37e9559e6fd2a,0xbfe6a514e29cb7aa,1
+np.float64,0xbfc53a843f2a7508,0xbfc56d2e9ad8b716,1
+np.float64,0xbfedb04485fb6089,0xbffa4615d4334ec3,1
+np.float64,0xbfc44349b1288694,0xbfc46f484b6f1cd6,1
+np.float64,0xbfe265188264ca31,0xbfe4f37d61cd9e17,1
+np.float64,0xbfd030351da0606a,0xbfd08c2537287ee1,1
+np.float64,0x3fd8fb131db1f628,0x3fda613363ca601e,1
+np.float64,0xbff0000000000000,0xfff0000000000000,1
+np.float64,0xbfe48d9a60691b35,0xbfe862c02d8fec1e,1
+np.float64,0x3fd185e050a30bc0,0x3fd1fb4c614ddb07,1
+np.float64,0xbfe4a5807e694b01,0xbfe88b8ff2d6caa7,1
+np.float64,0xbfc934d7ad3269b0,0xbfc98a405d25a666,1
+np.float64,0xbfea0e3c62741c79,0xbff23b4bd3a7b15d,1
+np.float64,0x3fe7244071ee4880,0x3fed41b27ba6bb22,1
+np.float64,0xbfd419f81ba833f0,0xbfd4cdf71b4533a3,1
+np.float64,0xbfe1e73a34e3ce74,0xbfe439eb15fa6baf,1
+np.float64,0x3fcdd9a63f3bb350,0x3fce68e1c401eff0,1
+np.float64,0x3fd1b5960ba36b2c,0x3fd22eeb566f1976,1
+np.float64,0x3fe9ad18e0735a32,0x3ff1af23c534260d,1
+np.float64,0xbfd537918aaa6f24,0xbfd60ccc8df0962b,1
+np.float64,0x3fcba3d3c73747a8,0x3fcc14fd5e5c49ad,1
+np.float64,0x3fd367e3c0a6cfc8,0x3fd40921b14e288e,1
+np.float64,0x3fe94303c6f28608,0x3ff11e62db2db6ac,1
+np.float64,0xbfcc5f77fd38bef0,0xbfccda110c087519,1
+np.float64,0xbfd63b74d7ac76ea,0xbfd7328af9f37402,1
+np.float64,0xbfe5321289ea6425,0xbfe9811ce96609ad,1
+np.float64,0xbfde910879bd2210,0xbfe0a2cd0ed1d368,1
+np.float64,0xbfcc9d9bad393b38,0xbfcd1b722a0b1371,1
+np.float64,0xbfe6dd39e16dba74,0xbfecaeb7c8c069f6,1
+np.float64,0xbfe98316eff3062e,0xbff174d7347d48bf,1
+np.float64,0xbfda88f8d1b511f2,0xbfdc3c0e75dad903,1
+np.float64,0x3fd400d8c2a801b0,0x3fd4b21bacff1f5d,1
+np.float64,0xbfe1ed335863da66,0xbfe4429e45e99779,1
+np.float64,0xbf3423a200284800,0xbf3423a20acb0342,1
+np.float64,0xbfe97bc59672f78b,0xbff16ad1adc44a33,1
+np.float64,0xbfeeca60d7fd94c2,0xbfff98d7f18f7728,1
+np.float64,0x3fd1eb13b2a3d628,0x3fd268e6ff4d56ce,1
+np.float64,0xbfa5594c242ab2a0,0xbfa55c77d6740a39,1
+np.float64,0x3fe72662006e4cc4,0x3fed462a9dedbfee,1
+np.float64,0x3fef4bb221fe9764,0x4001fe4f4cdfedb2,1
+np.float64,0xbfe938d417f271a8,0xbff110e78724ca2b,1
+np.float64,0xbfcc29ab2f385358,0xbfcca182140ef541,1
+np.float64,0x3fe18cd42c6319a8,0x3fe3b77e018165e7,1
+np.float64,0xbfec6c5cae78d8b9,0xbff69d8e01309b48,1
+np.float64,0xbfd5723da7aae47c,0xbfd64ecde17da471,1
+np.float64,0xbfe3096722e612ce,0xbfe5ed43634f37ff,1
+np.float64,0xbfdacaceb1b5959e,0xbfdc8bb826bbed39,1
+np.float64,0x3fc59a57cb2b34b0,0x3fc5cfc4a7c9bac8,1
+np.float64,0x3f84adce10295b80,0x3f84adfc1f1f6e97,1
+np.float64,0x3fdd5b28bbbab650,0x3fdfb8b906d77df4,1
+np.float64,0x3fdebf94c6bd7f28,0x3fe0c10188e1bc7c,1
+np.float64,0x3fdb30c612b6618c,0x3fdd07bf18597821,1
+np.float64,0x3fe7eeb3176fdd66,0x3feefb0be694b855,1
+np.float64,0x0,0x0,1
+np.float64,0xbfe10057e9e200b0,0xbfe2f13365e5b1c9,1
+np.float64,0xbfeb61a82376c350,0xbff46e665d3a60f5,1
+np.float64,0xbfe7f54aec6fea96,0xbfef0a0759f726dc,1
+np.float64,0xbfe4f6da3de9edb4,0xbfe9187d85bd1ab5,1
+np.float64,0xbfeb8be1b3f717c4,0xbff4be8efaab2e75,1
+np.float64,0x3fed40bc31fa8178,0x3ff8d5ec4a7f3e9b,1
+np.float64,0xbfe40f8711681f0e,0xbfe78fa5c62b191b,1
+np.float64,0x3fd1034d94a2069c,0x3fd16e78e9efb85b,1
+np.float64,0x3fc74db15b2e9b60,0x3fc790f26e894098,1
+np.float64,0x3fd912a88cb22550,0x3fda7d0ab3b21308,1
+np.float64,0x3fd8948a3bb12914,0x3fd9e8950c7874c8,1
+np.float64,0xbfa7ada5242f5b50,0xbfa7b1f8db50c104,1
+np.float64,0x3feeb2e1c27d65c4,0x3fff000b7d09c9b7,1
+np.float64,0x3fe9d46cbbf3a8da,0x3ff1e6f405265a6e,1
+np.float64,0xbfe2480b77e49017,0xbfe4c83b9b37bf0c,1
+np.float64,0x3fe950ea9372a1d6,0x3ff130e62468bf2c,1
+np.float64,0x3fefa7272a7f4e4e,0x4004d8c9bf31ab58,1
+np.float64,0xbfe7309209ee6124,0xbfed5b94acef917a,1
+np.float64,0x3fd05e8c64a0bd18,0x3fd0bdb11e0903c6,1
+np.float64,0x3fd9236043b246c0,0x3fda90ccbe4bab1e,1
+np.float64,0xbfdc3d6805b87ad0,0xbfde5266e17154c3,1
+np.float64,0x3fe5e6bad76bcd76,0x3feacbc306c63445,1
+np.float64,0x3ff0000000000000,0x7ff0000000000000,1
+np.float64,0xbfde3d7390bc7ae8,0xbfe06cd480bd0196,1
+np.float64,0xbfd3e2e3c0a7c5c8,0xbfd490edc0a45e26,1
+np.float64,0x3fe39871d76730e4,0x3fe6ce54d1719953,1
+np.float64,0x3fdff00ebcbfe01c,0x3fe1894b6655a6d0,1
+np.float64,0x3f91b7ad58236f40,0x3f91b8213bcb8b0b,1
+np.float64,0xbfd99f48f7b33e92,0xbfdb23d544f62591,1
+np.float64,0x3fae3512cc3c6a20,0x3fae3e10939fd7b5,1
+np.float64,0x3fcc4cf3db3899e8,0x3fccc698a15176d6,1
+np.float64,0xbfd0927e39a124fc,0xbfd0f5522e2bc030,1
+np.float64,0x3fcee859633dd0b0,0x3fcf87bdef7a1e82,1
+np.float64,0xbfe2a8b69565516d,0xbfe5593437b6659a,1
+np.float64,0x3fecf61e20f9ec3c,0x3ff7fda16b0209d4,1
+np.float64,0xbfbf37571e3e6eb0,0xbfbf5f4e1379a64c,1
+np.float64,0xbfd54e1b75aa9c36,0xbfd626223b68971a,1
+np.float64,0x3fe1035a56e206b4,0x3fe2f5651ca0f4b0,1
+np.float64,0x3fe4992989e93254,0x3fe876751afa70dc,1
+np.float64,0x3fc8c313d3318628,0x3fc913faf15d1562,1
+np.float64,0x3f99f6ba8833ed80,0x3f99f8274fb94828,1
+np.float64,0xbfd4a58af0a94b16,0xbfd56947c276e04f,1
+np.float64,0x3fc66f8c872cdf18,0x3fc6ab7a14372a73,1
+np.float64,0x3fc41eee0d283de0,0x3fc449ff1ff0e7a6,1
+np.float64,0x3fefd04d287fa09a,0x4007585010cfa9b0,1
+np.float64,0x3fce9e746f3d3ce8,0x3fcf39514bbe5070,1
+np.float64,0xbfe8056f72700adf,0xbfef2ee2c13e67ba,1
+np.float64,0x3fdd6b1ec0bad63c,0x3fdfccf2ba144fa8,1
+np.float64,0x3fd92ee432b25dc8,0x3fda9e6b96b2b142,1
+np.float64,0xbfc4d18f9529a320,0xbfc50150fb4de0cc,1
+np.float64,0xbfe09939a7613274,0xbfe262d703c317af,1
+np.float64,0xbfd130b132a26162,0xbfd19f5a00ae29c4,1
+np.float64,0x3fa06e21d420dc40,0x3fa06f93aba415fb,1
+np.float64,0x3fc5c48fbd2b8920,0x3fc5fb3bfad3bf55,1
+np.float64,0xbfdfa2bacbbf4576,0xbfe155f839825308,1
+np.float64,0x3fe3e1fa0f67c3f4,0x3fe745081dd4fd03,1
+np.float64,0x3fdae58289b5cb04,0x3fdcac1f6789130a,1
+np.float64,0xbf8ed3ba103da780,0xbf8ed452a9cc1442,1
+np.float64,0xbfec06b46f780d69,0xbff5b86f30d70908,1
+np.float64,0xbfe990c13b732182,0xbff187a90ae611f8,1
+np.float64,0xbfdd46c738ba8d8e,0xbfdf9eee0a113230,1
+np.float64,0x3fe08b83f3611708,0x3fe2501b1c77035c,1
+np.float64,0xbfd501b65baa036c,0xbfd5d05de3fceac8,1
+np.float64,0xbfcf4fa21f3e9f44,0xbfcff5829582c0b6,1
+np.float64,0xbfefbc0bfbff7818,0xc005eca1a2c56b38,1
+np.float64,0xbfe1ba6959e374d2,0xbfe3f8f88d128ce5,1
+np.float64,0xbfd4e74ee3a9ce9e,0xbfd5b2cabeb45e6c,1
+np.float64,0xbfe77c38eaeef872,0xbfedfd332d6f1c75,1
+np.float64,0x3fa9b5e4fc336bc0,0x3fa9bb6f6b80b4af,1
+np.float64,0xbfecba63917974c7,0xbff75e44df7f8e81,1
+np.float64,0x3fd6cf17b2ad9e30,0x3fd7db0b93b7f2b5,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cbrt.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cbrt.csv
new file mode 100644
index 0000000..ad141cb
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cbrt.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x3ee7054c,0x3f4459ea,2
+np.float32,0x7d1e2489,0x54095925,2
+np.float32,0x7ee5edf5,0x549b992b,2
+np.float32,0x380607,0x2a425e72,2
+np.float32,0x34a8f3,0x2a3e6603,2
+np.float32,0x3eee2844,0x3f465a45,2
+np.float32,0x59e49c,0x2a638d0a,2
+np.float32,0xbf72c77a,0xbf7b83d4,2
+np.float32,0x7f2517b4,0x54af8bf0,2
+np.float32,0x80068a69,0xa9bdfe8b,2
+np.float32,0xbe8e3578,0xbf270775,2
+np.float32,0xbe4224dc,0xbf131119,2
+np.float32,0xbe0053b8,0xbf001be2,2
+np.float32,0x70e8d,0x29c2ddc5,2
+np.float32,0xff63f7b5,0xd4c37b7f,2
+np.float32,0x3f00bbed,0x3f4b9335,2
+np.float32,0x3f135f4e,0x3f54f5d4,2
+np.float32,0xbe13a488,0xbf063d13,2
+np.float32,0x3f14ec78,0x3f55b478,2
+np.float32,0x7ec35cfb,0x54935fbf,2
+np.float32,0x7d41c589,0x5412f904,2
+np.float32,0x3ef8a16e,0x3f4937f7,2
+np.float32,0x3f5d8464,0x3f73f279,2
+np.float32,0xbeec85ac,0xbf45e5cb,2
+np.float32,0x7f11f722,0x54a87cb1,2
+np.float32,0x8032c085,0xaa3c1219,2
+np.float32,0x80544bac,0xaa5eb9f2,2
+np.float32,0x3e944a10,0x3f296065,2
+np.float32,0xbf29fe50,0xbf5f5796,2
+np.float32,0x7e204d8d,0x545b03d5,2
+np.float32,0xfe1d0254,0xd4598127,2
+np.float32,0x80523129,0xaa5cdba9,2
+np.float32,0x806315fa,0xaa6b0eaf,2
+np.float32,0x3ed3d2a4,0x3f3ec117,2
+np.float32,0x7ee15007,0x549a8cc0,2
+np.float32,0x801ffb5e,0xaa213d4f,2
+np.float32,0x807f9f4a,0xaa7fbf76,2
+np.float32,0xbe45e854,0xbf1402d3,2
+np.float32,0x3d9e2e70,0x3eda0b64,2
+np.float32,0x51f404,0x2a5ca4d7,2
+np.float32,0xbe26a8b0,0xbf0bc54d,2
+np.float32,0x22c99a,0x2a25d2a7,2
+np.float32,0xbf71248b,0xbf7af2d5,2
+np.float32,0x7219fe,0x2a76608e,2
+np.float32,0x7f16fd7d,0x54aa6610,2
+np.float32,0x80716faa,0xaa75e5b9,2
+np.float32,0xbe24f9a4,0xbf0b4c65,2
+np.float32,0x800000,0x2a800000,2
+np.float32,0x80747456,0xaa780f27,2
+np.float32,0x68f9e8,0x2a6fa035,2
+np.float32,0x3f6a297e,0x3f7880d8,2
+np.float32,0x3f28b973,0x3f5ec8f6,2
+np.float32,0x7f58c577,0x54c03a70,2
+np.float32,0x804befcc,0xaa571b4f,2
+np.float32,0x3e2be027,0x3f0d36cf,2
+np.float32,0xfe7e80a4,0xd47f7ff7,2
+np.float32,0xfe9d444a,0xd489181b,2
+np.float32,0x3db3e790,0x3ee399d6,2
+np.float32,0xbf154c3e,0xbf55e23e,2
+np.float32,0x3d1096b7,0x3ea7f4aa,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x804e2521,0xaa592c06,2
+np.float32,0xbeda2f00,0xbf40a513,2
+np.float32,0x3f191788,0x3f57ae30,2
+np.float32,0x3ed24ade,0x3f3e4b34,2
+np.float32,0x807fadb4,0xaa7fc917,2
+np.float32,0xbe0a06dc,0xbf034234,2
+np.float32,0x3f250bba,0x3f5d276d,2
+np.float32,0x7e948b00,0x548682c8,2
+np.float32,0xfe65ecdc,0xd476fed2,2
+np.float32,0x6fdbdd,0x2a74c095,2
+np.float32,0x800112de,0xa9500fa6,2
+np.float32,0xfe63225c,0xd475fdee,2
+np.float32,0x7f3d9acd,0x54b7d648,2
+np.float32,0xfc46f480,0xd3bacf87,2
+np.float32,0xfe5deaac,0xd47417ff,2
+np.float32,0x60ce53,0x2a693d93,2
+np.float32,0x6a6e2f,0x2a70ba2c,2
+np.float32,0x7f43f0f1,0x54b9dcd0,2
+np.float32,0xbf6170c9,0xbf756104,2
+np.float32,0xbe5c9f74,0xbf197852,2
+np.float32,0xff1502b0,0xd4a9a693,2
+np.float32,0x8064f6af,0xaa6c886e,2
+np.float32,0xbf380564,0xbf6552e5,2
+np.float32,0xfeb9b7dc,0xd490e85f,2
+np.float32,0x7f34f941,0x54b5010d,2
+np.float32,0xbe9d4ca0,0xbf2cbd5f,2
+np.float32,0x3f6e43d2,0x3f79f240,2
+np.float32,0xbdad0530,0xbee0a8f2,2
+np.float32,0x3da18459,0x3edb9105,2
+np.float32,0xfd968340,0xd42a3808,2
+np.float32,0x3ea03e64,0x3f2dcf96,2
+np.float32,0x801d2f5b,0xaa1c6525,2
+np.float32,0xbf47d92d,0xbf6bb7e9,2
+np.float32,0x55a6b9,0x2a5fe9fb,2
+np.float32,0x77a7c2,0x2a7a4fb8,2
+np.float32,0xfebbc16e,0xd4916f88,2
+np.float32,0x3f5d3d6e,0x3f73d86a,2
+np.float32,0xfccd2b60,0xd3edcacb,2
+np.float32,0xbd026460,0xbea244b0,2
+np.float32,0x3e55bd,0x2a4968e4,2
+np.float32,0xbe7b5708,0xbf20490d,2
+np.float32,0xfe413cf4,0xd469171f,2
+np.float32,0x7710e3,0x2a79e657,2
+np.float32,0xfc932520,0xd3d4d9ca,2
+np.float32,0xbf764a1b,0xbf7cb8aa,2
+np.float32,0x6b1923,0x2a713aca,2
+np.float32,0xfe4dcd04,0xd46e092d,2
+np.float32,0xff3085ac,0xd4b381f8,2
+np.float32,0x3f72c438,0x3f7b82b4,2
+np.float32,0xbf6f0c6e,0xbf7a3852,2
+np.float32,0x801d2b1b,0xaa1c5d8d,2
+np.float32,0x3e9db91e,0x3f2ce50d,2
+np.float32,0x3f684f9d,0x3f77d8c5,2
+np.float32,0x7dc784,0x2a7e82cc,2
+np.float32,0x7d2c88e9,0x540d64f8,2
+np.float32,0x807fb708,0xaa7fcf51,2
+np.float32,0x8003c49a,0xa99e16e0,2
+np.float32,0x3ee4f5b8,0x3f43c3ff,2
+np.float32,0xfe992c5e,0xd487e4ec,2
+np.float32,0x4b4dfa,0x2a568216,2
+np.float32,0x3d374c80,0x3eb5c6a8,2
+np.float32,0xbd3a4700,0xbeb6c15c,2
+np.float32,0xbf13cb80,0xbf5529e5,2
+np.float32,0xbe7306d4,0xbf1e7f91,2
+np.float32,0xbf800000,0xbf800000,2
+np.float32,0xbea42efe,0xbf2f394e,2
+np.float32,0x3e1981d0,0x3f07fe2c,2
+np.float32,0x3f17ea1d,0x3f572047,2
+np.float32,0x7dc1e0,0x2a7e7efe,2
+np.float32,0x80169c08,0xaa0fa320,2
+np.float32,0x3f3e1972,0x3f67d248,2
+np.float32,0xfe5d3c88,0xd473d815,2
+np.float32,0xbf677448,0xbf778aac,2
+np.float32,0x7e799b7d,0x547dd9e4,2
+np.float32,0x3f00bb2c,0x3f4b92cf,2
+np.float32,0xbeb29f9c,0xbf343798,2
+np.float32,0xbd6b7830,0xbec59a86,2
+np.float32,0x807a524a,0xaa7c282a,2
+np.float32,0xbe0a7a04,0xbf0366ab,2
+np.float32,0x80237470,0xaa26e061,2
+np.float32,0x3ccbc0f6,0x3e95744f,2
+np.float32,0x3edec6bc,0x3f41fcb6,2
+np.float32,0x3f635198,0x3f760efa,2
+np.float32,0x800eca4f,0xa9f960d8,2
+np.float32,0x3f800000,0x3f800000,2
+np.float32,0xff4eeb9e,0xd4bd456a,2
+np.float32,0x56f4e,0x29b29e70,2
+np.float32,0xff5383a0,0xd4bea95c,2
+np.float32,0x3f4c3a77,0x3f6d6d94,2
+np.float32,0x3f6c324a,0x3f79388c,2
+np.float32,0xbebdc092,0xbf37e27c,2
+np.float32,0xff258956,0xd4afb42e,2
+np.float32,0xdc78c,0x29f39012,2
+np.float32,0xbf2db06a,0xbf60f2f5,2
+np.float32,0xbe3c5808,0xbf119660,2
+np.float32,0xbf1ba866,0xbf58e0f4,2
+np.float32,0x80377640,0xaa41b79d,2
+np.float32,0x4fdc4d,0x2a5abfea,2
+np.float32,0x7f5e7560,0x54c1e516,2
+np.float32,0xfeb4d3f2,0xd48f9fde,2
+np.float32,0x3f12a622,0x3f549c7d,2
+np.float32,0x7f737ed7,0x54c7d2dc,2
+np.float32,0xa0ddc,0x29db456d,2
+np.float32,0xfe006740,0xd44b6689,2
+np.float32,0x3f17dfd4,0x3f571b6c,2
+np.float32,0x67546e,0x2a6e5dd1,2
+np.float32,0xff0d0f11,0xd4a693e2,2
+np.float32,0xbd170090,0xbeaa6738,2
+np.float32,0x5274a0,0x2a5d1806,2
+np.float32,0x3e154fe0,0x3f06be1a,2
+np.float32,0x7ddb302e,0x5440f0a7,2
+np.float32,0x3f579d10,0x3f71c2af,2
+np.float32,0xff2bc5bb,0xd4b1e20c,2
+np.float32,0xfee8fa6a,0xd49c4872,2
+np.float32,0xbea551b0,0xbf2fa07b,2
+np.float32,0xfeabc75c,0xd48d3004,2
+np.float32,0x7f50a5a8,0x54bdcbd1,2
+np.float32,0x50354b,0x2a5b110d,2
+np.float32,0x7d139f13,0x54063b6b,2
+np.float32,0xbeee1b08,0xbf465699,2
+np.float32,0xfe5e1650,0xd47427fe,2
+np.float32,0x7f7fffff,0x54cb2ff5,2
+np.float32,0xbf52ede8,0xbf6fff35,2
+np.float32,0x804bba81,0xaa56e8f1,2
+np.float32,0x6609e2,0x2a6d5e94,2
+np.float32,0x692621,0x2a6fc1d6,2
+np.float32,0xbf288bb6,0xbf5eb4d3,2
+np.float32,0x804f28c4,0xaa5a1b82,2
+np.float32,0xbdaad2a8,0xbedfb46e,2
+np.float32,0x5e04f8,0x2a66fb13,2
+np.float32,0x804c10da,0xaa573a81,2
+np.float32,0xbe412764,0xbf12d0fd,2
+np.float32,0x801c35cc,0xaa1aa250,2
+np.float32,0x6364d4,0x2a6b4cf9,2
+np.float32,0xbf6d3cea,0xbf79962f,2
+np.float32,0x7e5a9935,0x5472defb,2
+np.float32,0xbe73a38c,0xbf1ea19c,2
+np.float32,0xbd35e950,0xbeb550f2,2
+np.float32,0x46cc16,0x2a5223d6,2
+np.float32,0x3f005288,0x3f4b5b97,2
+np.float32,0x8034e8b7,0xaa3eb2be,2
+np.float32,0xbea775fc,0xbf3061cf,2
+np.float32,0xea0e9,0x29f87751,2
+np.float32,0xbf38faaf,0xbf65b89d,2
+np.float32,0xbedf3184,0xbf421bb0,2
+np.float32,0xbe04250c,0xbf015def,2
+np.float32,0x7f56dae8,0x54bfa901,2
+np.float32,0xfebe3e04,0xd492132e,2
+np.float32,0x3e4dc326,0x3f15f19e,2
+np.float32,0x803da197,0xaa48a621,2
+np.float32,0x7eeb35aa,0x549cc7c6,2
+np.float32,0xfebb3eb6,0xd4914dc0,2
+np.float32,0xfed17478,0xd496d5e2,2
+np.float32,0x80243694,0xaa280ed2,2
+np.float32,0x8017e666,0xaa1251d3,2
+np.float32,0xbf07e942,0xbf4f4a3e,2
+np.float32,0xbf578fa6,0xbf71bdab,2
+np.float32,0x7ed8d80f,0x549896b6,2
+np.float32,0x3f2277ae,0x3f5bff11,2
+np.float32,0x7e6f195b,0x547a3cd4,2
+np.float32,0xbf441559,0xbf6a3a91,2
+np.float32,0x7f1fb427,0x54ad9d8d,2
+np.float32,0x71695f,0x2a75e12d,2
+np.float32,0xbd859588,0xbece19a1,2
+np.float32,0x7f5702fc,0x54bfb4eb,2
+np.float32,0x3f040008,0x3f4d4842,2
+np.float32,0x3de00ca5,0x3ef4df89,2
+np.float32,0x3eeabb03,0x3f45658c,2
+np.float32,0x3dfe5e65,0x3eff7480,2
+np.float32,0x1,0x26a14518,2
+np.float32,0x8065e400,0xaa6d4130,2
+np.float32,0xff50e1bb,0xd4bdde07,2
+np.float32,0xbe88635a,0xbf24b7e9,2
+np.float32,0x3f46bfab,0x3f6b4908,2
+np.float32,0xbd85c3c8,0xbece3168,2
+np.float32,0xbe633f64,0xbf1afdb1,2
+np.float32,0xff2c7706,0xd4b21f2a,2
+np.float32,0xbf02816c,0xbf4c812a,2
+np.float32,0x80653aeb,0xaa6cbdab,2
+np.float32,0x3eef1d10,0x3f469e24,2
+np.float32,0x3d9944bf,0x3ed7c36a,2
+np.float32,0x1b03d4,0x2a186b2b,2
+np.float32,0x3f251b7c,0x3f5d2e76,2
+np.float32,0x3edebab0,0x3f41f937,2
+np.float32,0xfefc2148,0xd4a073ff,2
+np.float32,0x7448ee,0x2a77f051,2
+np.float32,0x3bb8a400,0x3e3637ee,2
+np.float32,0x57df36,0x2a61d527,2
+np.float32,0xfd8b9098,0xd425fccb,2
+np.float32,0x7f67627e,0x54c4744d,2
+np.float32,0x801165d7,0xaa039fba,2
+np.float32,0x53aae5,0x2a5e2bfd,2
+np.float32,0x8014012b,0xaa09e4f1,2
+np.float32,0x3f7a2d53,0x3f7e0b4b,2
+np.float32,0x3f5fb700,0x3f74c052,2
+np.float32,0x7f192a06,0x54ab366c,2
+np.float32,0x3f569611,0x3f71603b,2
+np.float32,0x25e2dc,0x2a2a9b65,2
+np.float32,0x8036465e,0xaa405342,2
+np.float32,0x804118e1,0xaa4c5785,2
+np.float32,0xbef08d3e,0xbf4703e1,2
+np.float32,0x3447e2,0x2a3df0be,2
+np.float32,0xbf2a350b,0xbf5f6f8c,2
+np.float32,0xbec87e3e,0xbf3b4a73,2
+np.float32,0xbe99a4a8,0xbf2b6412,2
+np.float32,0x2ea2ae,0x2a36d77e,2
+np.float32,0xfcb69600,0xd3e4b9e3,2
+np.float32,0x717700,0x2a75eb06,2
+np.float32,0xbf4e81ce,0xbf6e4ecc,2
+np.float32,0xbe2021ac,0xbf09ebee,2
+np.float32,0xfef94eee,0xd49fda31,2
+np.float32,0x8563e,0x29ce0015,2
+np.float32,0x7f5d0ca5,0x54c17c0f,2
+np.float32,0x3f16459a,0x3f56590f,2
+np.float32,0xbe12f7bc,0xbf0608a0,2
+np.float32,0x3f10fd3d,0x3f53ce5f,2
+np.float32,0x3ca5e1b0,0x3e8b8d96,2
+np.float32,0xbe5288e0,0xbf17181f,2
+np.float32,0xbf7360f6,0xbf7bb8c9,2
+np.float32,0x7e989d33,0x5487ba88,2
+np.float32,0x3ea7b5dc,0x3f307839,2
+np.float32,0x7e8da0c9,0x548463f0,2
+np.float32,0xfeaf7888,0xd48e3122,2
+np.float32,0x7d90402d,0x5427d321,2
+np.float32,0x72e309,0x2a76f0ee,2
+np.float32,0xbe1faa34,0xbf09c998,2
+np.float32,0xbf2b1652,0xbf5fd1f4,2
+np.float32,0x8051eb0c,0xaa5c9cca,2
+np.float32,0x7edf02bf,0x549a058e,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0x3f67f873,0x3f77b9c1,2
+np.float32,0x3f276b63,0x3f5e358c,2
+np.float32,0x7eeb4bf2,0x549cccb9,2
+np.float32,0x3bfa2c,0x2a46d675,2
+np.float32,0x3e133c50,0x3f061d75,2
+np.float32,0x3ca302c0,0x3e8abe4a,2
+np.float32,0x802e152e,0xaa361dd5,2
+np.float32,0x3f504810,0x3f6efd0a,2
+np.float32,0xbf43e0b5,0xbf6a2599,2
+np.float32,0x80800000,0xaa800000,2
+np.float32,0x3f1c0980,0x3f590e03,2
+np.float32,0xbf0084f6,0xbf4b7638,2
+np.float32,0xfee72d32,0xd49be10d,2
+np.float32,0x3f3c00ed,0x3f66f763,2
+np.float32,0x80511e81,0xaa5be492,2
+np.float32,0xfdd1b8a0,0xd43e1f0d,2
+np.float32,0x7d877474,0x54245785,2
+np.float32,0x7f110bfe,0x54a82207,2
+np.float32,0xff800000,0xff800000,2
+np.float32,0x6b6a2,0x29bfa706,2
+np.float32,0xbf5bdfd9,0xbf7357b7,2
+np.float32,0x8025bfa3,0xaa2a6676,2
+np.float32,0x3a3581,0x2a44dd3a,2
+np.float32,0x542c2a,0x2a5e9e2f,2
+np.float32,0xbe1d5650,0xbf091d57,2
+np.float32,0x3e97760d,0x3f2a935e,2
+np.float32,0x7f5dcde2,0x54c1b460,2
+np.float32,0x800bde1e,0xa9e7bbaf,2
+np.float32,0x3e6b9e61,0x3f1cdf07,2
+np.float32,0x7d46c003,0x54143884,2
+np.float32,0x80073fbb,0xa9c49e67,2
+np.float32,0x503c23,0x2a5b1748,2
+np.float32,0x7eb7b070,0x549060c8,2
+np.float32,0xe9d8f,0x29f86456,2
+np.float32,0xbeedd4f0,0xbf464320,2
+np.float32,0x3f40d5d6,0x3f68eda1,2
+np.float32,0xff201f28,0xd4adc44b,2
+np.float32,0xbdf61e98,0xbefca9c7,2
+np.float32,0x3e8a0dc9,0x3f2562e3,2
+np.float32,0xbc0c0c80,0xbe515f61,2
+np.float32,0x2b3c15,0x2a3248e3,2
+np.float32,0x42a7bb,0x2a4df592,2
+np.float32,0x7f337947,0x54b480af,2
+np.float32,0xfec21db4,0xd4930f4b,2
+np.float32,0x7f4fdbf3,0x54bd8e94,2
+np.float32,0x1e2253,0x2a1e1286,2
+np.float32,0x800c4c80,0xa9ea819e,2
+np.float32,0x7e96f5b7,0x54873c88,2
+np.float32,0x7ce4e131,0x53f69ed4,2
+np.float32,0xbead8372,0xbf327b63,2
+np.float32,0x3e15ca7e,0x3f06e2f3,2
+np.float32,0xbf63e17b,0xbf7642da,2
+np.float32,0xff5bdbdb,0xd4c122f9,2
+np.float32,0x3f44411e,0x3f6a4bfd,2
+np.float32,0xfd007da0,0xd40029d2,2
+np.float32,0xbe940168,0xbf2944b7,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x3d28e356,0x3eb0e1b8,2
+np.float32,0x3eb9fcd8,0x3f36a918,2
+np.float32,0x4f6410,0x2a5a51eb,2
+np.float32,0xbdf18e30,0xbefb1775,2
+np.float32,0x32edbd,0x2a3c49e3,2
+np.float32,0x801f70a5,0xaa2052da,2
+np.float32,0x8045a045,0xaa50f98c,2
+np.float32,0xbdd6cb00,0xbef17412,2
+np.float32,0x3f118f2c,0x3f541557,2
+np.float32,0xbe65c378,0xbf1b8f95,2
+np.float32,0xfd9a9060,0xd42bbb8b,2
+np.float32,0x3f04244f,0x3f4d5b0f,2
+np.float32,0xff05214b,0xd4a3656f,2
+np.float32,0xfe342cd0,0xd463b706,2
+np.float32,0x3f3409a8,0x3f63a836,2
+np.float32,0x80205db2,0xaa21e1e5,2
+np.float32,0xbf37c982,0xbf653a03,2
+np.float32,0x3f36ce8f,0x3f64d17e,2
+np.float32,0x36ffda,0x2a412d61,2
+np.float32,0xff569752,0xd4bf94e6,2
+np.float32,0x802fdb0f,0xaa386c3a,2
+np.float32,0x7ec55a87,0x5493df71,2
+np.float32,0x7f2234c7,0x54ae847e,2
+np.float32,0xbf02df76,0xbf4cb23d,2
+np.float32,0x3d68731a,0x3ec4c156,2
+np.float32,0x8146,0x2921cd8e,2
+np.float32,0x80119364,0xaa041235,2
+np.float32,0xfe6c1c00,0xd47930b5,2
+np.float32,0x8070da44,0xaa757996,2
+np.float32,0xfefbf50c,0xd4a06a9d,2
+np.float32,0xbf01b6a8,0xbf4c170a,2
+np.float32,0x110702,0x2a02aedb,2
+np.float32,0xbf063cd4,0xbf4e6f87,2
+np.float32,0x3f1ff178,0x3f5ad9dd,2
+np.float32,0xbf76dcd4,0xbf7cead0,2
+np.float32,0x80527281,0xaa5d1620,2
+np.float32,0xfea96df8,0xd48c8a7f,2
+np.float32,0x68db02,0x2a6f88b0,2
+np.float32,0x62d971,0x2a6adec7,2
+np.float32,0x3e816fe0,0x3f21df04,2
+np.float32,0x3f586379,0x3f720cc0,2
+np.float32,0x804a3718,0xaa5577ff,2
+np.float32,0x2e2506,0x2a3632b2,2
+np.float32,0x3f297d,0x2a4a4bf3,2
+np.float32,0xbe37aba8,0xbf105f88,2
+np.float32,0xbf18b264,0xbf577ea7,2
+np.float32,0x7f50d02d,0x54bdd8b5,2
+np.float32,0xfee296dc,0xd49ad757,2
+np.float32,0x7ec5137e,0x5493cdb1,2
+np.float32,0x3f4811f4,0x3f6bce3a,2
+np.float32,0xfdff32a0,0xd44af991,2
+np.float32,0x3f6ef140,0x3f7a2ed6,2
+np.float32,0x250838,0x2a2950b5,2
+np.float32,0x25c28e,0x2a2a6ada,2
+np.float32,0xbe875e50,0xbf244e90,2
+np.float32,0x3e3bdff8,0x3f11776a,2
+np.float32,0x3e9fe493,0x3f2daf17,2
+np.float32,0x804d8599,0xaa5897d9,2
+np.float32,0x3f0533da,0x3f4de759,2
+np.float32,0xbe63023c,0xbf1aefc8,2
+np.float32,0x80636e5e,0xaa6b547f,2
+np.float32,0xff112958,0xd4a82d5d,2
+np.float32,0x3e924112,0x3f28991f,2
+np.float32,0xbe996ffc,0xbf2b507a,2
+np.float32,0x802a7cda,0xaa314081,2
+np.float32,0x8022b524,0xaa25b21e,2
+np.float32,0x3f0808c8,0x3f4f5a43,2
+np.float32,0xbef0ec2a,0xbf471e0b,2
+np.float32,0xff4c2345,0xd4bc6b3c,2
+np.float32,0x25ccc8,0x2a2a7a3b,2
+np.float32,0x7f4467d6,0x54ba0260,2
+np.float32,0x7f506539,0x54bdb846,2
+np.float32,0x412ab4,0x2a4c6a2a,2
+np.float32,0x80672c4a,0xaa6e3ef0,2
+np.float32,0xbddfb7f8,0xbef4c0ac,2
+np.float32,0xbf250bb9,0xbf5d276c,2
+np.float32,0x807dca65,0xaa7e84bd,2
+np.float32,0xbf63b8e0,0xbf763438,2
+np.float32,0xbeed1b0c,0xbf460f6b,2
+np.float32,0x8021594f,0xaa238136,2
+np.float32,0xbebc74c8,0xbf377710,2
+np.float32,0x3e9f8e3b,0x3f2d8fce,2
+np.float32,0x7f50ca09,0x54bdd6d8,2
+np.float32,0x805797c1,0xaa6197df,2
+np.float32,0x3de198f9,0x3ef56f98,2
+np.float32,0xf154d,0x29fb0392,2
+np.float32,0xff7fffff,0xd4cb2ff5,2
+np.float32,0xfed22fa8,0xd49702c4,2
+np.float32,0xbf733736,0xbf7baa64,2
+np.float32,0xbf206a8a,0xbf5b1108,2
+np.float32,0xbca49680,0xbe8b3078,2
+np.float32,0xfecba794,0xd4956e1a,2
+np.float32,0x80126582,0xaa061886,2
+np.float32,0xfee5cc82,0xd49b919f,2
+np.float32,0xbf7ad6ae,0xbf7e4491,2
+np.float32,0x7ea88c81,0x548c4c0c,2
+np.float32,0xbf493a0d,0xbf6c4255,2
+np.float32,0xbf06dda0,0xbf4ec1d4,2
+np.float32,0xff3f6e84,0xd4b86cf6,2
+np.float32,0x3e4fe093,0x3f1674b0,2
+np.float32,0x8048ad60,0xaa53fbde,2
+np.float32,0x7ebb7112,0x54915ac5,2
+np.float32,0x5bd191,0x2a652a0d,2
+np.float32,0xfe3121d0,0xd4626cfb,2
+np.float32,0x7e4421c6,0x546a3f83,2
+np.float32,0x19975b,0x2a15b14f,2
+np.float32,0x801c8087,0xaa1b2a64,2
+np.float32,0xfdf6e950,0xd448c0f6,2
+np.float32,0x74e711,0x2a786083,2
+np.float32,0xbf2b2f2e,0xbf5fdccb,2
+np.float32,0x7ed19ece,0x5496e00b,2
+np.float32,0x7f6f8322,0x54c6ba63,2
+np.float32,0x3e90316d,0x3f27cd69,2
+np.float32,0x7ecb42ce,0x54955571,2
+np.float32,0x3f6d49be,0x3f799aaf,2
+np.float32,0x8053d327,0xaa5e4f9a,2
+np.float32,0x7ebd7361,0x5491df3e,2
+np.float32,0xfdb6eed0,0xd435a7aa,2
+np.float32,0x7f3e79f4,0x54b81e4b,2
+np.float32,0xfe83afa6,0xd4813794,2
+np.float32,0x37c443,0x2a421246,2
+np.float32,0xff075a10,0xd4a44cd8,2
+np.float32,0x3ebc5fe0,0x3f377047,2
+np.float32,0x739694,0x2a77714e,2
+np.float32,0xfe832946,0xd4810b91,2
+np.float32,0x7f2638e6,0x54aff235,2
+np.float32,0xfe87f7a6,0xd4829a3f,2
+np.float32,0x3f50f3f8,0x3f6f3eb8,2
+np.float32,0x3eafa3d0,0x3f333548,2
+np.float32,0xbec26ee6,0xbf39626f,2
+np.float32,0x7e6f924f,0x547a66ff,2
+np.float32,0x7f0baa46,0x54a606f8,2
+np.float32,0xbf6dfc49,0xbf79d939,2
+np.float32,0x7f005709,0x54a1699d,2
+np.float32,0x7ee3d7ef,0x549b2057,2
+np.float32,0x803709a4,0xaa4138d7,2
+np.float32,0x3f7bf49a,0x3f7ea509,2
+np.float32,0x509db7,0x2a5b6ff5,2
+np.float32,0x7eb1b0d4,0x548ec9ff,2
+np.float32,0x7eb996ec,0x5490dfce,2
+np.float32,0xbf1fcbaa,0xbf5ac89e,2
+np.float32,0x3e2c9a98,0x3f0d69cc,2
+np.float32,0x3ea77994,0x3f306312,2
+np.float32,0x3f3cbfe4,0x3f67457c,2
+np.float32,0x8422a,0x29cd5a30,2
+np.float32,0xbd974558,0xbed6d264,2
+np.float32,0xfecee77a,0xd496387f,2
+np.float32,0x3f51876b,0x3f6f76f1,2
+np.float32,0x3b1a25,0x2a45ddad,2
+np.float32,0xfe9912f0,0xd487dd67,2
+np.float32,0x3f3ab13d,0x3f666d99,2
+np.float32,0xbf35565a,0xbf64341b,2
+np.float32,0x7d4e84aa,0x54162091,2
+np.float32,0x4c2570,0x2a574dea,2
+np.float32,0x7e82dca6,0x5480f26b,2
+np.float32,0x7f5503e7,0x54bf1c8d,2
+np.float32,0xbeb85034,0xbf361c59,2
+np.float32,0x80460a69,0xaa516387,2
+np.float32,0x805fbbab,0xaa68602c,2
+np.float32,0x7d4b4c1b,0x541557b8,2
+np.float32,0xbefa9a0a,0xbf49bfbc,2
+np.float32,0x3dbd233f,0x3ee76e09,2
+np.float32,0x58b6df,0x2a628d50,2
+np.float32,0xfcdcc180,0xd3f3aad9,2
+np.float32,0x423a37,0x2a4d8487,2
+np.float32,0xbed8b32a,0xbf403507,2
+np.float32,0x3f68e85d,0x3f780f0b,2
+np.float32,0x7ee13c4b,0x549a883d,2
+np.float32,0xff2ed4c5,0xd4b2eec1,2
+np.float32,0xbf54dadc,0xbf70b99a,2
+np.float32,0x3f78b0af,0x3f7d8a32,2
+np.float32,0x3f377372,0x3f651635,2
+np.float32,0xfdaa6178,0xd43166bc,2
+np.float32,0x8060c337,0xaa6934a6,2
+np.float32,0x7ec752c2,0x54945cf6,2
+np.float32,0xbd01a760,0xbea1f624,2
+np.float32,0x6f6599,0x2a746a35,2
+np.float32,0x3f6315b0,0x3f75f95b,2
+np.float32,0x7f2baf32,0x54b1da44,2
+np.float32,0x3e400353,0x3f1286d8,2
+np.float32,0x40d3bf,0x2a4c0f15,2
+np.float32,0x7f733aca,0x54c7c03d,2
+np.float32,0x7e5c5407,0x5473828b,2
+np.float32,0x80191703,0xaa14b56a,2
+np.float32,0xbf4fc144,0xbf6ec970,2
+np.float32,0xbf1137a7,0xbf53eacd,2
+np.float32,0x80575410,0xaa615db3,2
+np.float32,0xbd0911d0,0xbea4fe07,2
+np.float32,0x3e98534a,0x3f2ae643,2
+np.float32,0x3f3b089a,0x3f669185,2
+np.float32,0x4fc752,0x2a5aacc1,2
+np.float32,0xbef44ddc,0xbf480b6e,2
+np.float32,0x80464217,0xaa519af4,2
+np.float32,0x80445fae,0xaa4fb6de,2
+np.float32,0x80771cf4,0xaa79eec8,2
+np.float32,0xfd9182e8,0xd4284fed,2
+np.float32,0xff0a5d16,0xd4a58288,2
+np.float32,0x3f33e169,0x3f63973e,2
+np.float32,0x8021a247,0xaa23f820,2
+np.float32,0xbf362522,0xbf648ab8,2
+np.float32,0x3f457cd7,0x3f6ac95e,2
+np.float32,0xbcadf400,0xbe8dc7e2,2
+np.float32,0x80237210,0xaa26dca7,2
+np.float32,0xbf1293c9,0xbf54939f,2
+np.float32,0xbc5e73c0,0xbe744a37,2
+np.float32,0x3c03f980,0x3e4d44df,2
+np.float32,0x7da46f,0x2a7e6b20,2
+np.float32,0x5d4570,0x2a665dd0,2
+np.float32,0x3e93fbac,0x3f294287,2
+np.float32,0x7e6808fd,0x5477bfa4,2
+np.float32,0xff5aa9a6,0xd4c0c925,2
+np.float32,0xbf5206ba,0xbf6fa767,2
+np.float32,0xbf6e513e,0xbf79f6f1,2
+np.float32,0x3ed01c0f,0x3f3da20f,2
+np.float32,0xff47d93d,0xd4bb1704,2
+np.float32,0x7f466cfd,0x54baa514,2
+np.float32,0x665e10,0x2a6d9fc8,2
+np.float32,0x804d0629,0xaa5820e8,2
+np.float32,0x7e0beaa0,0x54514e7e,2
+np.float32,0xbf7fcb6c,0xbf7fee78,2
+np.float32,0x3f6c5b03,0x3f7946dd,2
+np.float32,0x3e941504,0x3f294c30,2
+np.float32,0xbf2749ad,0xbf5e26a1,2
+np.float32,0xfec2a00a,0xd493302d,2
+np.float32,0x3f15a358,0x3f560bce,2
+np.float32,0x3f15c4e7,0x3f561bcd,2
+np.float32,0xfedc8692,0xd499728c,2
+np.float32,0x7e8f6902,0x5484f180,2
+np.float32,0x7f663d62,0x54c42136,2
+np.float32,0x8027ea62,0xaa2d99b4,2
+np.float32,0x3f3d093d,0x3f67636d,2
+np.float32,0x7f118c33,0x54a85382,2
+np.float32,0x803e866a,0xaa499d43,2
+np.float32,0x80053632,0xa9b02407,2
+np.float32,0xbf36dd66,0xbf64d7af,2
+np.float32,0xbf560358,0xbf71292b,2
+np.float32,0x139a8,0x29596bc0,2
+np.float32,0xbe04f75c,0xbf01a26c,2
+np.float32,0xfe1c3268,0xd45920fa,2
+np.float32,0x7ec77f72,0x5494680c,2
+np.float32,0xbedde724,0xbf41bbba,2
+np.float32,0x3e81dbe0,0x3f220bfd,2
+np.float32,0x800373ac,0xa99989d4,2
+np.float32,0x3f7f859a,0x3f7fd72d,2
+np.float32,0x3eb9dc7e,0x3f369e80,2
+np.float32,0xff5f8eb7,0xd4c236b1,2
+np.float32,0xff1c03cb,0xd4ac44ac,2
+np.float32,0x18cfe1,0x2a14285b,2
+np.float32,0x7f21b075,0x54ae54fd,2
+np.float32,0xff490bd8,0xd4bb7680,2
+np.float32,0xbf15dc22,0xbf5626de,2
+np.float32,0xfe1d5a10,0xd459a9a3,2
+np.float32,0x750544,0x2a7875e4,2
+np.float32,0x8023d5df,0xaa2778b3,2
+np.float32,0x3e42aa08,0x3f1332b2,2
+np.float32,0x3ecaa751,0x3f3bf60d,2
+np.float32,0x0,0x0,2
+np.float32,0x80416da6,0xaa4cb011,2
+np.float32,0x3f4ea9ae,0x3f6e5e22,2
+np.float32,0x2113f4,0x2a230f8e,2
+np.float32,0x3f35c2e6,0x3f64619a,2
+np.float32,0xbf50db8a,0xbf6f3564,2
+np.float32,0xff4d5cea,0xd4bccb8a,2
+np.float32,0x7ee54420,0x549b72d2,2
+np.float32,0x64ee68,0x2a6c81f7,2
+np.float32,0x5330da,0x2a5dbfc2,2
+np.float32,0x80047f88,0xa9a7b467,2
+np.float32,0xbda01078,0xbedae800,2
+np.float32,0xfe96d05a,0xd487315f,2
+np.float32,0x8003cc10,0xa99e7ef4,2
+np.float32,0x8007b4ac,0xa9c8aa3d,2
+np.float32,0x5d4bcf,0x2a66630e,2
+np.float32,0xfdd0c0b0,0xd43dd403,2
+np.float32,0xbf7a1d82,0xbf7e05f0,2
+np.float32,0x74ca33,0x2a784c0f,2
+np.float32,0x804f45e5,0xaa5a3640,2
+np.float32,0x7e6d16aa,0x547988c4,2
+np.float32,0x807d5762,0xaa7e3714,2
+np.float32,0xfecf93d0,0xd4966229,2
+np.float32,0xfecbd25c,0xd4957890,2
+np.float32,0xff7db31c,0xd4ca93b0,2
+np.float32,0x3dac9e18,0x3ee07c4a,2
+np.float32,0xbf4b2d28,0xbf6d0509,2
+np.float32,0xbd4f4c50,0xbebd62e0,2
+np.float32,0xbd2eac40,0xbeb2e0ee,2
+np.float32,0x3d01b69b,0x3ea1fc7b,2
+np.float32,0x7ec63902,0x549416ed,2
+np.float32,0xfcc47700,0xd3ea616d,2
+np.float32,0xbf5ddec2,0xbf7413a1,2
+np.float32,0xff6a6110,0xd4c54c52,2
+np.float32,0xfdfae2a0,0xd449d335,2
+np.float32,0x7e54868c,0x547099cd,2
+np.float32,0x802b5b88,0xaa327413,2
+np.float32,0x80440e72,0xaa4f647a,2
+np.float32,0x3e313c94,0x3f0eaad5,2
+np.float32,0x3ebb492a,0x3f3715a2,2
+np.float32,0xbef56286,0xbf4856d5,2
+np.float32,0x3f0154ba,0x3f4be3a0,2
+np.float32,0xff2df86c,0xd4b2a376,2
+np.float32,0x3ef6a850,0x3f48af57,2
+np.float32,0x3d8d33e1,0x3ed1f22d,2
+np.float32,0x4dd9b9,0x2a58e615,2
+np.float32,0x7f1caf83,0x54ac83c9,2
+np.float32,0xbf7286b3,0xbf7b6d73,2
+np.float32,0x80064f88,0xa9bbbd9f,2
+np.float32,0xbf1f55fa,0xbf5a92db,2
+np.float32,0x546a81,0x2a5ed516,2
+np.float32,0xbe912880,0xbf282d0a,2
+np.float32,0x5df587,0x2a66ee6e,2
+np.float32,0x801f706c,0xaa205279,2
+np.float32,0x58cb6d,0x2a629ece,2
+np.float32,0xfe754f8c,0xd47c62da,2
+np.float32,0xbefb6f4c,0xbf49f8e7,2
+np.float32,0x80000001,0xa6a14518,2
+np.float32,0xbf067837,0xbf4e8df4,2
+np.float32,0x3e8e715c,0x3f271ee4,2
+np.float32,0x8009de9b,0xa9d9ebc8,2
+np.float32,0xbf371ff1,0xbf64f36e,2
+np.float32,0x7f5ce661,0x54c170e4,2
+np.float32,0x3f3c47d1,0x3f671467,2
+np.float32,0xfea5e5a6,0xd48b8eb2,2
+np.float32,0xff62b17f,0xd4c31e15,2
+np.float32,0xff315932,0xd4b3c98f,2
+np.float32,0xbf1c3ca8,0xbf5925b9,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0xfdf20868,0xd4476c3b,2
+np.float32,0x5b790e,0x2a64e052,2
+np.float32,0x3f5ddf4e,0x3f7413d4,2
+np.float32,0x7f1a3182,0x54ab9861,2
+np.float32,0x3f4b906e,0x3f6d2b9d,2
+np.float32,0x7ebac760,0x54912edb,2
+np.float32,0x7f626d3f,0x54c30a7e,2
+np.float32,0x3e27b058,0x3f0c0edc,2
+np.float32,0x8041e69c,0xaa4d2de8,2
+np.float32,0x3f42cee0,0x3f69b84a,2
+np.float32,0x7ec5fe83,0x5494085b,2
+np.float32,0x9d3e6,0x29d99cde,2
+np.float32,0x3edc50c0,0x3f41452d,2
+np.float32,0xbf2c463a,0xbf60562c,2
+np.float32,0x800bfa33,0xa9e871e8,2
+np.float32,0x7c9f2c,0x2a7dba4d,2
+np.float32,0x7f2ef9fd,0x54b2fb73,2
+np.float32,0x80741847,0xaa77cdb9,2
+np.float32,0x7e9c462a,0x5488ce1b,2
+np.float32,0x3ea47ec1,0x3f2f55a9,2
+np.float32,0x7f311c43,0x54b3b4f5,2
+np.float32,0x3d8f4c73,0x3ed2facd,2
+np.float32,0x806d7bd2,0xaa7301ef,2
+np.float32,0xbf633d24,0xbf760799,2
+np.float32,0xff4f9a3f,0xd4bd7a99,2
+np.float32,0x3f6021ca,0x3f74e73d,2
+np.float32,0x7e447015,0x546a5eac,2
+np.float32,0x6bff3c,0x2a71e711,2
+np.float32,0xe9c9f,0x29f85f06,2
+np.float32,0x8009fe14,0xa9dad277,2
+np.float32,0x807cf79c,0xaa7df644,2
+np.float32,0xff440e1b,0xd4b9e608,2
+np.float32,0xbddf9a50,0xbef4b5db,2
+np.float32,0x7f3b1c39,0x54b706fc,2
+np.float32,0x3c7471a0,0x3e7c16a7,2
+np.float32,0x8065b02b,0xaa6d18ee,2
+np.float32,0x7f63a3b2,0x54c36379,2
+np.float32,0xbe9c9d92,0xbf2c7d33,2
+np.float32,0x3d93aad3,0x3ed51a2e,2
+np.float32,0xbf41b040,0xbf694571,2
+np.float32,0x80396b9e,0xaa43f899,2
+np.float64,0x800fa025695f404b,0xaaa4000ff64bb00c,2
+np.float64,0xbfecc00198f98003,0xbfeee0b623fbd94b,2
+np.float64,0x7f9eeb60b03dd6c0,0x55291bf8554bb303,2
+np.float64,0x3fba74485634e890,0x3fde08710bdb148d,2
+np.float64,0xbfdd9a75193b34ea,0xbfe8bf711660a2f5,2
+np.float64,0xbfcf92e17a3f25c4,0xbfe4119eda6f3773,2
+np.float64,0xbfe359e2ba66b3c6,0xbfeb0f7ae97ea142,2
+np.float64,0x20791a5640f24,0x2a9441f13d262bed,2
+np.float64,0x3fe455fbfae8abf8,0x3feb830d63e1022c,2
+np.float64,0xbd112b7b7a226,0x2aa238c097ec269a,2
+np.float64,0x93349ba126694,0x2aa0c363cd74465a,2
+np.float64,0x20300cd440602,0x2a9432b4f4081209,2
+np.float64,0x3fdcfae677b9f5cc,0x3fe892a9ee56fe8d,2
+np.float64,0xbfefaae3f7bf55c8,0xbfefe388066132c4,2
+np.float64,0x1a7d6eb634faf,0x2a92ed9851d29ab5,2
+np.float64,0x7fd5308d39aa6119,0x553be444e30326c6,2
+np.float64,0xff811c7390223900,0xd5205cb404952fa7,2
+np.float64,0x80083d24aff07a4a,0xaaa0285cf764d898,2
+np.float64,0x800633810ccc6703,0xaa9d65341419586b,2
+np.float64,0x800ff456223fe8ac,0xaaa423bbcc24dff1,2
+np.float64,0x7fde5c99aebcb932,0x553f71be7d6d9daa,2
+np.float64,0x3fed961c4b3b2c39,0x3fef2ca146270cac,2
+np.float64,0x7fe744d30c6e89a5,0x554220a4cdc78e62,2
+np.float64,0x3fd8f527c7b1ea50,0x3fe76101085be1cb,2
+np.float64,0xbfc96a14b232d428,0xbfe2ab1a8962606c,2
+np.float64,0xffe85f540cf0bea7,0xd54268dff964519a,2
+np.float64,0x800e3be0fe7c77c2,0xaaa3634efd7f020b,2
+np.float64,0x3feb90d032f721a0,0x3fee72a4579e8b12,2
+np.float64,0xffe05674aaa0ace9,0xd5401c9e3fb4abcf,2
+np.float64,0x3fefc2e32c3f85c6,0x3fefeb940924bf42,2
+np.float64,0xbfecfd89e9f9fb14,0xbfeef6addf73ee49,2
+np.float64,0xf5862717eb0c5,0x2aa3e1428780382d,2
+np.float64,0xffc3003b32260078,0xd53558f92202dcdb,2
+np.float64,0x3feb4c152c36982a,0x3fee5940f7da0825,2
+np.float64,0x3fe7147b002e28f6,0x3fecb2948f46d1e3,2
+np.float64,0x7fe00ad9b4a015b2,0x5540039d15e1da54,2
+np.float64,0x8010000000000000,0xaaa428a2f98d728b,2
+np.float64,0xbfd3a41bfea74838,0xbfe595ab45b1be91,2
+np.float64,0x7fdbfd6e5537fadc,0x553e9a6e1107b8d0,2
+np.float64,0x800151d9d9a2a3b4,0xaa918cd8fb63f40f,2
+np.float64,0x7fe6828401ad0507,0x5541eda05dcd1fcf,2
+np.float64,0x3fdae1e7a1b5c3d0,0x3fe7f711e72ecc35,2
+np.float64,0x7fdf4936133e926b,0x553fc29c8d5edea3,2
+np.float64,0x80079de12d4f3bc3,0xaa9f7b06a9286da4,2
+np.float64,0x3fe1261cade24c39,0x3fe9fe09488e417a,2
+np.float64,0xbfc20dce21241b9c,0xbfe0a842fb207a28,2
+np.float64,0x3fe3285dfa2650bc,0x3feaf85215f59ef9,2
+np.float64,0x7fe42b93aea85726,0x554148c3c3bb35e3,2
+np.float64,0xffe6c74e7f6d8e9c,0xd541ffd13fa36dbd,2
+np.float64,0x3fe73ea139ee7d42,0x3fecc402242ab7d3,2
+np.float64,0xffbd4b46be3a9690,0xd53392de917c72e4,2
+np.float64,0x800caed8df395db2,0xaaa2a811a02e6be4,2
+np.float64,0x800aacdb6c9559b7,0xaaa19d6fbc8feebf,2
+np.float64,0x839fb4eb073f7,0x2aa0264b98327c12,2
+np.float64,0xffd0157ba9a02af8,0xd5397157a11c0d05,2
+np.float64,0x7fddc8ff173b91fd,0x553f3e7663fb2ac7,2
+np.float64,0x67b365facf66d,0x2a9dd4d838b0d853,2
+np.float64,0xffe12e7fc7225cff,0xd5406272a83a8e1b,2
+np.float64,0x7fea5b19a034b632,0x5542e567658b3e36,2
+np.float64,0x124989d824932,0x2a90ba8dc7a39532,2
+np.float64,0xffe12ef098225de0,0xd54062968450a078,2
+np.float64,0x3fea2f44a3f45e8a,0x3fedee3c461f4716,2
+np.float64,0x3fe6b033e66d6068,0x3fec88c8035e06b1,2
+np.float64,0x3fe928a2ccf25146,0x3fed88d4cde7a700,2
+np.float64,0x3feead27e97d5a50,0x3fef8d7537d82e60,2
+np.float64,0x8003ab80b6875702,0xaa98adfedd7715a9,2
+np.float64,0x45a405828b481,0x2a9a1fa99a4eff1e,2
+np.float64,0x8002ddebad85bbd8,0xaa96babfda4e0031,2
+np.float64,0x3fc278c32824f186,0x3fe0c8e7c979fbd5,2
+np.float64,0x2e10fffc5c221,0x2a96c30a766d06fa,2
+np.float64,0xffd6ba8c2ead7518,0xd53c8d1d92bc2788,2
+np.float64,0xbfeb5ec3a036bd87,0xbfee602bbf0a0d01,2
+np.float64,0x3fed5bd58f7ab7ab,0x3fef181bf591a4a7,2
+np.float64,0x7feb5274a5b6a4e8,0x55431fcf81876218,2
+np.float64,0xaf8fd6cf5f1fb,0x2aa1c6edbb1e2aaf,2
+np.float64,0x7fece718f179ce31,0x55437c74efb90933,2
+np.float64,0xbfa3c42d0c278860,0xbfd5a16407c77e73,2
+np.float64,0x800b5cff0576b9fe,0xaaa1fc4ecb0dec4f,2
+np.float64,0x800be89ae557d136,0xaaa244d115fc0963,2
+np.float64,0x800d2578f5ba4af2,0xaaa2e18a3a3fc134,2
+np.float64,0x80090ff93e321ff3,0xaaa0add578e3cc3c,2
+np.float64,0x28c5a240518c,0x2a81587cccd7e202,2
+np.float64,0x7fec066929780cd1,0x55434971435d1069,2
+np.float64,0x7fc84d4d15309a99,0x55372c204515694f,2
+np.float64,0xffe070a75de0e14e,0xd54025365046dad2,2
+np.float64,0x7fe5b27cc36b64f9,0x5541b5b822f0b6ca,2
+np.float64,0x3fdea35ac8bd46b6,0x3fe9086a0fb792c2,2
+np.float64,0xbfe79996f7af332e,0xbfece9571d37a5b3,2
+np.float64,0xffdfb47f943f6900,0xd53fe6c14c3366db,2
+np.float64,0xc015cf63802ba,0x2aa2517164d075f4,2
+np.float64,0x7feba98948375312,0x5543340b5b1f1181,2
+np.float64,0x8008678e6550cf1d,0xaaa043e7cea90da5,2
+np.float64,0x3fb11b92fa223726,0x3fd9f8b53be4d90b,2
+np.float64,0x7fc9b18cf0336319,0x55379b42da882047,2
+np.float64,0xbfe5043e736a087d,0xbfebd0c67db7a8e3,2
+np.float64,0x7fde88546a3d10a8,0x553f80cfe5bcf5fe,2
+np.float64,0x8006a6c82dcd4d91,0xaa9e171d182ba049,2
+np.float64,0xbfa0f707ac21ee10,0xbfd48e5d3faa1699,2
+np.float64,0xbfe7716bffaee2d8,0xbfecd8e6abfb8964,2
+np.float64,0x9511ccab2a23a,0x2aa0d56d748f0313,2
+np.float64,0x8003ddb9b847bb74,0xaa991ca06fd9d308,2
+np.float64,0x80030710fac60e23,0xaa9725845ac95fe8,2
+np.float64,0xffece5bbaeb9cb76,0xd5437c2670f894f4,2
+np.float64,0x3fd9be5c72b37cb9,0x3fe79f2e932a5708,2
+np.float64,0x1f050cca3e0a3,0x2a93f36499fe5228,2
+np.float64,0x3fd5422becaa8458,0x3fe6295d6150df58,2
+np.float64,0xffd72c050e2e580a,0xd53cbc52d73b495f,2
+np.float64,0xbfe66d5235ecdaa4,0xbfec6ca27e60bf23,2
+np.float64,0x17ac49a42f58a,0x2a923b5b757087a0,2
+np.float64,0xffd39edc40273db8,0xd53b2f7bb99b96bf,2
+np.float64,0x7fde6cf009bcd9df,0x553f77614eb30d75,2
+np.float64,0x80042b4c3fa85699,0xaa99c05fbdd057db,2
+np.float64,0xbfde5547f8bcaa90,0xbfe8f3147d67a940,2
+np.float64,0xbfdd02f9bf3a05f4,0xbfe894f2048aa3fe,2
+np.float64,0xbfa20ec82c241d90,0xbfd4fd02ee55aac7,2
+np.float64,0x8002f670f8c5ece3,0xaa96fad7e53dd479,2
+np.float64,0x80059f24d7eb3e4a,0xaa9c7312dae0d7bc,2
+np.float64,0x7fe6ae7423ad5ce7,0x5541f9430be53062,2
+np.float64,0xe135ea79c26be,0x2aa350d8f8c526e1,2
+np.float64,0x3fec188ce4f8311a,0x3feea44d21c23f68,2
+np.float64,0x800355688286aad2,0xaa97e6ca51eb8357,2
+np.float64,0xa2d6530b45acb,0x2aa15635bbd366e8,2
+np.float64,0x600e0150c01c1,0x2a9d1456ea6c239c,2
+np.float64,0x8009c30863338611,0xaaa118f94b188bcf,2
+np.float64,0x3fe7e4c0dfefc982,0x3fed07e8480b8c07,2
+np.float64,0xbfddac6407bb58c8,0xbfe8c46f63a50225,2
+np.float64,0xbc85e977790bd,0x2aa2344636ed713d,2
+np.float64,0xfff0000000000000,0xfff0000000000000,2
+np.float64,0xffcd1570303a2ae0,0xd5389a27d5148701,2
+np.float64,0xbf937334d026e660,0xbfd113762e4e29a7,2
+np.float64,0x3fdbfdaa9b37fb55,0x3fe84a425fdff7df,2
+np.float64,0xffc10800f5221000,0xd5349535ffe12030,2
+np.float64,0xaf40f3755e81f,0x2aa1c443af16cd27,2
+np.float64,0x800f7da34f7efb47,0xaaa3f14bf25fc89f,2
+np.float64,0xffe4a60125a94c02,0xd5416b764a294128,2
+np.float64,0xbf8e25aa903c4b40,0xbfcf5ebc275b4789,2
+np.float64,0x3fca681bbb34d038,0x3fe2e882bcaee320,2
+np.float64,0xbfd0f3c9c1a1e794,0xbfe48d0df7b47572,2
+np.float64,0xffeb99b49d373368,0xd5433060dc641910,2
+np.float64,0x3fe554fb916aa9f8,0x3febf437cf30bd67,2
+np.float64,0x80079518d0af2a32,0xaa9f6ee87044745a,2
+np.float64,0x5e01a8a0bc036,0x2a9cdf0badf222c3,2
+np.float64,0xbfea9831b3f53064,0xbfee1601ee953ab3,2
+np.float64,0xbfc369d1a826d3a4,0xbfe110b675c311e0,2
+np.float64,0xa82e640d505cd,0x2aa1863d4e523b9c,2
+np.float64,0x3fe506d70a2a0dae,0x3febd1eba3aa83fa,2
+np.float64,0xcbacba7197598,0x2aa2adeb9927f1f2,2
+np.float64,0xc112d6038225b,0x2aa25978f12038b0,2
+np.float64,0xffa7f5f44c2febf0,0xd52d0ede02d4e18b,2
+np.float64,0x8006f218e34de433,0xaa9e870cf373b4eb,2
+np.float64,0xffe6d9a5d06db34b,0xd54204a4adc608c7,2
+np.float64,0x7fe717210eae2e41,0x554214bf3e2b5228,2
+np.float64,0xbfdd4b45cdba968c,0xbfe8a94c7f225f8e,2
+np.float64,0x883356571066b,0x2aa055ab0b2a8833,2
+np.float64,0x3fe307fc02a60ff8,0x3feae9175053288f,2
+np.float64,0x3fefa985f77f530c,0x3fefe31289446615,2
+np.float64,0x8005698a98aad316,0xaa9c17814ff7d630,2
+np.float64,0x3fea77333c74ee66,0x3fee098ba70e10fd,2
+np.float64,0xbfd1d00b0023a016,0xbfe4e497fd1cbea1,2
+np.float64,0x80009b0c39813619,0xaa8b130a6909cc3f,2
+np.float64,0x3fdbeb896fb7d714,0x3fe84502ba5437f8,2
+np.float64,0x3fb6e7e3562dcfc7,0x3fdca00d35c389ad,2
+np.float64,0xb2d46ebf65a8e,0x2aa1e2fe158d0838,2
+np.float64,0xbfd5453266aa8a64,0xbfe62a6a74c8ef6e,2
+np.float64,0x7fe993aa07732753,0x5542b5438bf31cb7,2
+np.float64,0xbfda5a098cb4b414,0xbfe7ce6d4d606203,2
+np.float64,0xbfe40c3ce068187a,0xbfeb61a32c57a6d0,2
+np.float64,0x3fcf17671d3e2ed0,0x3fe3f753170ab686,2
+np.float64,0xbfe4f814b6e9f02a,0xbfebcb67c60b7b08,2
+np.float64,0x800efedf59fdfdbf,0xaaa3ba4ed44ad45a,2
+np.float64,0x800420b556e8416b,0xaa99aa7fb14edeab,2
+np.float64,0xbf6e4ae6403c9600,0xbfc3cb2b29923989,2
+np.float64,0x3fda5c760a34b8ec,0x3fe7cf2821c52391,2
+np.float64,0x7f898faac0331f55,0x5522b44a01408188,2
+np.float64,0x3fd55af4b7aab5e9,0x3fe631f6d19503b3,2
+np.float64,0xbfa30a255c261450,0xbfd55caf0826361d,2
+np.float64,0x7fdfb801343f7001,0x553fe7ee50b9199a,2
+np.float64,0x7fa89ee91c313dd1,0x552d528ca2a4d659,2
+np.float64,0xffea72921d34e524,0xd542eb01af2e470d,2
+np.float64,0x3feddf0f33fbbe1e,0x3fef462b67fc0a91,2
+np.float64,0x3fe36700b566ce01,0x3feb1596caa8eff7,2
+np.float64,0x7fe6284a25ac5093,0x5541d58be3956601,2
+np.float64,0xffda16f7c8b42df0,0xd53de4f722485205,2
+np.float64,0x7f9355b94026ab72,0x552578cdeb41d2ca,2
+np.float64,0xffd3a9b022275360,0xd53b347b02dcea21,2
+np.float64,0x3fcb7f4f4a36fe9f,0x3fe32a40e9f6c1aa,2
+np.float64,0x7fdb958836372b0f,0x553e746103f92111,2
+np.float64,0x3fd37761c0a6eec4,0x3fe5853c5654027e,2
+np.float64,0x3fe449f1a2e893e4,0x3feb7d9e4eacc356,2
+np.float64,0x80077dfbef0efbf9,0xaa9f4ed788d2fadd,2
+np.float64,0x4823aa7890476,0x2a9a6eb4b653bad5,2
+np.float64,0xbfede01a373bc034,0xbfef468895fbcd29,2
+np.float64,0xbfe2bac5f125758c,0xbfeac4811c4dd66f,2
+np.float64,0x3fec10373af8206e,0x3feea14529e0f178,2
+np.float64,0x3fe305e30ca60bc6,0x3feae81a2f9d0302,2
+np.float64,0xa9668c5f52cd2,0x2aa1910e3a8f2113,2
+np.float64,0xbfd98b1717b3162e,0xbfe78f75995335d2,2
+np.float64,0x800fa649c35f4c94,0xaaa402ae79026a8f,2
+np.float64,0xbfb07dacf620fb58,0xbfd9a7d33d93a30f,2
+np.float64,0x80015812f382b027,0xaa91a843e9c85c0e,2
+np.float64,0x3fc687d96c2d0fb3,0x3fe1ef0ac16319c5,2
+np.float64,0xbfecad2ecd795a5e,0xbfeed9f786697af0,2
+np.float64,0x1608c1242c119,0x2a91cd11e9b4ccd2,2
+np.float64,0x6df775e8dbeef,0x2a9e6ba8c71130eb,2
+np.float64,0xffe96e9332b2dd26,0xd542ac342d06299b,2
+np.float64,0x7fecb6a3b8396d46,0x5543718af8162472,2
+np.float64,0x800d379f893a6f3f,0xaaa2ea36bbcb9308,2
+np.float64,0x3f924cdb202499b6,0x3fd0bb90af8d1f79,2
+np.float64,0x0,0x0,2
+np.float64,0x7feaf3b365f5e766,0x5543099a160e2427,2
+np.float64,0x3fea169ed0742d3e,0x3fede4d526e404f8,2
+np.float64,0x7feaf5f2f775ebe5,0x55430a2196c5f35a,2
+np.float64,0xbfc80d4429301a88,0xbfe2541f2ddd3334,2
+np.float64,0xffc75203b32ea408,0xd536db2837068689,2
+np.float64,0xffed2850e63a50a1,0xd5438b1217b72b8a,2
+np.float64,0x7fc16b0e7f22d61c,0x5534bcd0bfddb6f0,2
+np.float64,0x7feee8ed09fdd1d9,0x5543ed5b3ca483ab,2
+np.float64,0x7fb6c7ee662d8fdc,0x5531fffb5d46dafb,2
+np.float64,0x3fd77cebf8aef9d8,0x3fe6e9242e2bd29d,2
+np.float64,0x3f81c33f70238680,0x3fca4c7f3c9848f7,2
+np.float64,0x3fd59fea92ab3fd5,0x3fe649c1558cadd5,2
+np.float64,0xffeba82d4bf7505a,0xd54333bad387f7bd,2
+np.float64,0xffd37630e1a6ec62,0xd53b1ca62818c670,2
+np.float64,0xffec2c1e70b8583c,0xd5435213dcd27c22,2
+np.float64,0x7fec206971f840d2,0x55434f6660a8ae41,2
+np.float64,0x3fed2964adba52c9,0x3fef0642fe72e894,2
+np.float64,0xffd08e30d6211c62,0xd539b060e0ae02da,2
+np.float64,0x3e5f976c7cbf4,0x2a992e6ff991a122,2
+np.float64,0xffe6eee761adddce,0xd5420a393c67182f,2
+np.float64,0xbfe8ec9a31f1d934,0xbfed714426f58147,2
+np.float64,0x7fefffffffffffff,0x554428a2f98d728b,2
+np.float64,0x3fb3ae8b2c275d16,0x3fdb36b81b18a546,2
+np.float64,0x800f73df4dfee7bf,0xaaa3ed1a3e2cf49c,2
+np.float64,0xffd0c8873b21910e,0xd539ce6a3eab5dfd,2
+np.float64,0x3facd6c49439ad80,0x3fd8886f46335df1,2
+np.float64,0x3935859c726b2,0x2a98775f6438dbb1,2
+np.float64,0x7feed879fbfdb0f3,0x5543e9d1ac239469,2
+np.float64,0xbfe84dd990f09bb3,0xbfed323af09543b1,2
+np.float64,0xbfe767cc5a6ecf98,0xbfecd4f39aedbacb,2
+np.float64,0xffd8bd91d5b17b24,0xd53d5eb3734a2609,2
+np.float64,0xbfe13edeb2a27dbe,0xbfea0a856f0b9656,2
+np.float64,0xd933dd53b267c,0x2aa3158784e428c9,2
+np.float64,0xbfef6fef987edfdf,0xbfefcfb1c160462b,2
+np.float64,0x8009eeda4893ddb5,0xaaa13268a41045b1,2
+np.float64,0xab48c7a156919,0x2aa1a1a9c124c87d,2
+np.float64,0xa997931d532f3,0x2aa192bfe5b7bbb4,2
+np.float64,0xffe39ce8b1e739d1,0xd5411fa1c5c2cbd8,2
+np.float64,0x7e7ac2f6fcf59,0x2a9fdf6f263a9e9f,2
+np.float64,0xbfee1e35a6fc3c6b,0xbfef5c25d32b4047,2
+np.float64,0xffe5589c626ab138,0xd5419d220cc9a6da,2
+np.float64,0x7fe12509bf224a12,0x55405f7036dc5932,2
+np.float64,0xa6f15ba94de2c,0x2aa17b3367b1fc1b,2
+np.float64,0x3fca8adbfa3515b8,0x3fe2f0ca775749e5,2
+np.float64,0xbfcb03aa21360754,0xbfe30d5b90ca41f7,2
+np.float64,0x3fefafb2da7f5f66,0x3fefe5251aead4e7,2
+np.float64,0xffd90a59d23214b4,0xd53d7cf63a644f0e,2
+np.float64,0x3fba499988349333,0x3fddf84154fab7e5,2
+np.float64,0x800a76a0bc54ed42,0xaaa17f68cf67f2fa,2
+np.float64,0x3fea33d15bb467a3,0x3fedeff7f445b2ff,2
+np.float64,0x8005d9b0726bb362,0xaa9cd48624afeca9,2
+np.float64,0x7febf42e9a77e85c,0x55434541d8073376,2
+np.float64,0xbfedfc4469bbf889,0xbfef505989f7ee7d,2
+np.float64,0x8001211f1422423f,0xaa90a9889d865349,2
+np.float64,0x800e852f7fdd0a5f,0xaaa3845f11917f8e,2
+np.float64,0xffefd613c87fac27,0xd5441fd17ec669b4,2
+np.float64,0x7fed2a74543a54e8,0x55438b8c637da8b8,2
+np.float64,0xb83d50ff707aa,0x2aa210b4fc11e4b2,2
+np.float64,0x10000000000000,0x2aa428a2f98d728b,2
+np.float64,0x474ad9208e97,0x2a84e5a31530368a,2
+np.float64,0xffd0c5498ea18a94,0xd539ccc0e5cb425e,2
+np.float64,0x8001a8e9c82351d4,0xaa92f1aee6ca5b7c,2
+np.float64,0xd28db1e5a51b6,0x2aa2e328c0788f4a,2
+np.float64,0x3bf734ac77ee7,0x2a98da65c014b761,2
+np.float64,0x3fe56e17c96adc30,0x3febff2b6b829b7a,2
+np.float64,0x7783113eef063,0x2a9f46c3f09eb42c,2
+np.float64,0x3fd69d4e42ad3a9d,0x3fe69f83a21679f4,2
+np.float64,0x3fd34f4841a69e90,0x3fe5766b3c771616,2
+np.float64,0x3febb49895b76931,0x3fee7fcb603416c9,2
+np.float64,0x7fe8d6cb55f1ad96,0x554286c3b3bf4313,2
+np.float64,0xbfe67c6ba36cf8d8,0xbfec730218f2e284,2
+np.float64,0xffef9d97723f3b2e,0xd54413e38b6c29be,2
+np.float64,0x12d8cd2a25b1b,0x2a90e5ccd37b8563,2
+np.float64,0x81fe019103fc0,0x2aa01524155e73c5,2
+np.float64,0x7fe95d546f72baa8,0x5542a7fabfd425ff,2
+np.float64,0x800e742f1f9ce85e,0xaaa37cbe09e1f874,2
+np.float64,0xffd96bd3a732d7a8,0xd53da3086071264a,2
+np.float64,0x4ef2691e9de4e,0x2a9b3d316047fd6d,2
+np.float64,0x1a91684c3522e,0x2a92f25913c213de,2
+np.float64,0x3d5151b87aa2b,0x2a9909dbd9a44a84,2
+np.float64,0x800d9049435b2093,0xaaa31424e32d94a2,2
+np.float64,0xffe5b25fcc2b64bf,0xd541b5b0416b40b5,2
+np.float64,0xffe0eb784c21d6f0,0xd5404d083c3d6bc6,2
+np.float64,0x8007ceefbf0f9de0,0xaa9fbe0d739368b4,2
+np.float64,0xb78529416f0b,0x2a8ca3b29b5b3f18,2
+np.float64,0x7fba61130034c225,0x5532e6d4ca0f2918,2
+np.float64,0x3fba8d67ae351acf,0x3fde11efd6239b09,2
+np.float64,0x3fe7f24c576fe498,0x3fed0d63947a854d,2
+np.float64,0x2bb58dec576b3,0x2a965de7fca12aff,2
+np.float64,0xbfe86ceec4f0d9de,0xbfed3ea7f1d084e2,2
+np.float64,0x7fd1a7f7bca34fee,0x553a3f01b67fad2a,2
+np.float64,0x3fd9a43acfb34874,0x3fe7972dc5d8dfd6,2
+np.float64,0x7fd9861acdb30c35,0x553dad3b1bbb3b4d,2
+np.float64,0xffecc0c388398186,0xd54373d3b903deec,2
+np.float64,0x3fa6f86e9c2df0e0,0x3fd6bdbe40fcf710,2
+np.float64,0x800ddd99815bbb33,0xaaa33820d2f889bb,2
+np.float64,0x7fe087089b610e10,0x55402c868348a6d3,2
+np.float64,0x3fdf43d249be87a5,0x3fe933d29fbf7c23,2
+np.float64,0x7fe4f734c7a9ee69,0x5541822e56c40725,2
+np.float64,0x3feb39a9d3b67354,0x3fee526bf1f69f0e,2
+np.float64,0x3fe61454a0ec28a9,0x3fec46d7c36f7566,2
+np.float64,0xbfeafaa0a375f541,0xbfee3af2e49d457a,2
+np.float64,0x3fda7378e1b4e6f0,0x3fe7d613a3f92c40,2
+np.float64,0xe3e31c5fc7c64,0x2aa3645c12e26171,2
+np.float64,0xbfe97a556df2f4ab,0xbfeda8aa84cf3544,2
+np.float64,0xff612f9c80225f00,0xd514a51e5a2a8a97,2
+np.float64,0x800c51c8a0f8a391,0xaaa279fe7d40b50b,2
+np.float64,0xffd6f9d2312df3a4,0xd53ca783a5f8d110,2
+np.float64,0xbfead48bd7f5a918,0xbfee2cb2f89c5e57,2
+np.float64,0x800f5949e89eb294,0xaaa3e1a67a10cfef,2
+np.float64,0x800faf292b7f5e52,0xaaa40675e0c96cfd,2
+np.float64,0xbfedc238453b8470,0xbfef3c179d2d0209,2
+np.float64,0x3feb0443c5760888,0x3fee3e8bf29089c2,2
+np.float64,0xb26f69e164ded,0x2aa1df9f3dd7d765,2
+np.float64,0x3fcacdc053359b80,0x3fe300a67765b667,2
+np.float64,0x3fe8b274647164e8,0x3fed5a4cd4da8155,2
+np.float64,0x291e6782523ce,0x2a95ea7ac1b13a68,2
+np.float64,0xbfc4fc094e29f814,0xbfe1838671fc8513,2
+np.float64,0x3fbf1301f23e2600,0x3fdfb03a6f13e597,2
+np.float64,0xffeb36554ab66caa,0xd543193d8181e4f9,2
+np.float64,0xbfd969a52db2d34a,0xbfe78528ae61f16d,2
+np.float64,0x800cccd04d3999a1,0xaaa2b6b7a2d2d2d6,2
+np.float64,0x808eb4cb011d7,0x2aa005effecb2b4a,2
+np.float64,0x7fe839b3f9b07367,0x55425f61e344cd6d,2
+np.float64,0xbfeb25b6ed764b6e,0xbfee4b0234fee365,2
+np.float64,0xffefffffffffffff,0xd54428a2f98d728b,2
+np.float64,0xbfe01305da60260c,0xbfe9700b784af7e9,2
+np.float64,0xffcbf36b0a37e6d8,0xd538474b1d74ffe1,2
+np.float64,0xffaeebe3e83dd7c0,0xd52fa2e8dabf7209,2
+np.float64,0xbfd9913bf0b32278,0xbfe7915907aab13c,2
+np.float64,0xbfe7d125d9efa24c,0xbfecfff563177706,2
+np.float64,0xbfee98d23cbd31a4,0xbfef867ae393e446,2
+np.float64,0x3fe30efb67e61df6,0x3feaec6344633d11,2
+np.float64,0x1,0x2990000000000000,2
+np.float64,0x7fd5524fd3aaa49f,0x553bf30d18ab877e,2
+np.float64,0xc98b403f93168,0x2aa29d2fadb13c07,2
+np.float64,0xffe57080046ae100,0xd541a3b1b687360e,2
+np.float64,0x7fe20bade5e4175b,0x5540a79b94294f40,2
+np.float64,0x3fe155400a22aa80,0x3fea15c45f5b5837,2
+np.float64,0x7fe428dc8f6851b8,0x554147fd2ce93cc1,2
+np.float64,0xffefb77eb67f6efc,0xd544195dcaff4980,2
+np.float64,0x3fe49e733b293ce6,0x3feba394b833452a,2
+np.float64,0x38e01e3e71c05,0x2a986b2c955bad21,2
+np.float64,0x7fe735eb376e6bd5,0x55421cc51290d92d,2
+np.float64,0xbfd81d8644b03b0c,0xbfe71ce6d6fbd51a,2
+np.float64,0x8009a32325134647,0xaaa10645d0e6b0d7,2
+np.float64,0x56031ab8ac064,0x2a9c074be40b1f80,2
+np.float64,0xff8989aa30331340,0xd522b2d319a0ac6e,2
+np.float64,0xbfd6c183082d8306,0xbfe6ab8ffb3a8293,2
+np.float64,0x7ff8000000000000,0x7ff8000000000000,2
+np.float64,0xbfe17b68b1e2f6d2,0xbfea28dac8e0c457,2
+np.float64,0x3fbb50e42236a1c8,0x3fde5b090d51e3bd,2
+np.float64,0xffc2bb7cbf2576f8,0xd5353f1b3571c17f,2
+np.float64,0xbfe7576bca6eaed8,0xbfecce388241f47c,2
+np.float64,0x3fe7b52b04ef6a56,0x3fecf495bef99e7e,2
+np.float64,0xffe5511af82aa236,0xd5419b11524e8350,2
+np.float64,0xbfe66d5edf2cdabe,0xbfec6ca7d7b5be8c,2
+np.float64,0xc84a0ba790942,0x2aa29346f16a2cb4,2
+np.float64,0x6db5e7a0db6be,0x2a9e659c0e8244a0,2
+np.float64,0x7fef8f7b647f1ef6,0x554410e67af75d27,2
+np.float64,0xbfe2b4ada7e5695c,0xbfeac1997ec5a064,2
+np.float64,0xbfe99372e03326e6,0xbfedb2662b287543,2
+np.float64,0x3fa45d352428ba6a,0x3fd5d8a895423abb,2
+np.float64,0x3fa029695c2052d3,0x3fd439f858998886,2
+np.float64,0xffe0a9bd3261537a,0xd54037d0cd8bfcda,2
+np.float64,0xbfef83e09a7f07c1,0xbfefd66a4070ce73,2
+np.float64,0x7fee3dcc31fc7b97,0x5543c8503869407e,2
+np.float64,0xffbd16f1603a2de0,0xd533872fa5be978b,2
+np.float64,0xbfe8173141b02e62,0xbfed1c478614c6f4,2
+np.float64,0xbfef57aa277eaf54,0xbfefc77fdab27771,2
+np.float64,0x7fe883a02f31073f,0x554271ff0e3208da,2
+np.float64,0xe3adb63bc75b7,0x2aa362d833d0e41c,2
+np.float64,0x8001c430bac38862,0xaa93575026d26510,2
+np.float64,0x12fb347225f67,0x2a90f00eb9edb3fe,2
+np.float64,0x3fe53f83cbaa7f08,0x3febead40de452c2,2
+np.float64,0xbfe7f67227efece4,0xbfed0f10e32ad220,2
+np.float64,0xb8c5b45d718b7,0x2aa2152912cda86d,2
+np.float64,0x3fd23bb734a4776e,0x3fe50e5d3008c095,2
+np.float64,0x8001fd558ee3faac,0xaa941faa1f7ed450,2
+np.float64,0xffe6bbeda9ed77db,0xd541fcd185a63afa,2
+np.float64,0x4361d79086c3c,0x2a99d692237c30b7,2
+np.float64,0xbfd012f004a025e0,0xbfe43093e290fd0d,2
+np.float64,0xffe1d8850423b10a,0xd54097cf79d8d01e,2
+np.float64,0x3fccf4df7939e9bf,0x3fe37f8cf8be6436,2
+np.float64,0x8000546bc6c0a8d8,0xaa861bb3588556f2,2
+np.float64,0xbfecb4d6ba7969ae,0xbfeedcb6239135fe,2
+np.float64,0xbfaeb425cc3d6850,0xbfd90cfc103bb896,2
+np.float64,0x800ec037ec7d8070,0xaaa39eae8bde9774,2
+np.float64,0xbfeeaf863dfd5f0c,0xbfef8e4514772a8a,2
+np.float64,0xffec67c6c4b8cf8d,0xd5435fad89f900cf,2
+np.float64,0x3fda4498da348932,0x3fe7c7f6b3f84048,2
+np.float64,0xbfd05fd3dea0bfa8,0xbfe4509265a9b65f,2
+np.float64,0x3fe42cc713a8598e,0x3feb706ba9cd533c,2
+np.float64,0xec22d4d7d845b,0x2aa39f8cccb9711c,2
+np.float64,0x7fda30606c3460c0,0x553deea865065196,2
+np.float64,0xbfd58cba8bab1976,0xbfe64327ce32d611,2
+np.float64,0xadd521c75baa4,0x2aa1b7efce201a98,2
+np.float64,0x7fed43c1027a8781,0x55439131832b6429,2
+np.float64,0x800bee278fb7dc4f,0xaaa247a71e776db4,2
+np.float64,0xbfe9be5dd2737cbc,0xbfedc2f9501755b0,2
+np.float64,0x8003f4854447e90b,0xaa994d9b5372b13b,2
+np.float64,0xbfe5d0f867eba1f1,0xbfec29f8dd8b33a4,2
+np.float64,0x3fd79102d5af2206,0x3fe6efaa7a1efddb,2
+np.float64,0xbfeae783c835cf08,0xbfee33cdb4a44e81,2
+np.float64,0x3fcf1713e83e2e28,0x3fe3f7414753ddfb,2
+np.float64,0xffe5ab3cff2b567a,0xd541b3bf0213274a,2
+np.float64,0x7fe0fc65d8a1f8cb,0x554052761ac96386,2
+np.float64,0x7e81292efd026,0x2a9fdff8c01ae86f,2
+np.float64,0x80091176039222ec,0xaaa0aebf0565dfa6,2
+np.float64,0x800d2bf5ab5a57ec,0xaaa2e4a4c31e7e29,2
+np.float64,0xffd1912ea923225e,0xd53a33b2856726ab,2
+np.float64,0x800869918ed0d323,0xaaa0453408e1295d,2
+np.float64,0xffba0898fa341130,0xd532d19b202a9646,2
+np.float64,0xbfe09fac29613f58,0xbfe9b9687b5811a1,2
+np.float64,0xbfbd4ae82e3a95d0,0xbfdf1220f6f0fdfa,2
+np.float64,0xffea11d27bb423a4,0xd542d3d3e1522474,2
+np.float64,0xbfe6b05705ad60ae,0xbfec88d6bcab2683,2
+np.float64,0x3fe624a3f2ec4948,0x3fec4dcc78ddf871,2
+np.float64,0x53483018a6907,0x2a9bba8f92006b69,2
+np.float64,0xbfec0a6eeb7814de,0xbfee9f2a741248d7,2
+np.float64,0x3fe8c8ce6371919d,0x3fed63250c643482,2
+np.float64,0xbfe26b0ef964d61e,0xbfea9e511db83437,2
+np.float64,0xffa0408784208110,0xd52987f62c369ae9,2
+np.float64,0xffc153abc322a758,0xd534b384b5c5fe63,2
+np.float64,0xbfbdce88a63b9d10,0xbfdf4065ef0b01d4,2
+np.float64,0xffed4a4136fa9482,0xd54392a450f8b0af,2
+np.float64,0x8007aa18748f5432,0xaa9f8bd2226d4299,2
+np.float64,0xbfdab4d3e8b569a8,0xbfe7e9a5402540e5,2
+np.float64,0x7fe68914f92d1229,0x5541ef5e78fa35de,2
+np.float64,0x800a538bb1b4a718,0xaaa16bc487711295,2
+np.float64,0xffe02edbc8605db7,0xd5400f8f713df890,2
+np.float64,0xffe8968053712d00,0xd54276b9cc7f460a,2
+np.float64,0x800a4ce211d499c5,0xaaa1680491deb40c,2
+np.float64,0x3f988080f8310102,0x3fd2713691e99329,2
+np.float64,0xf64e42a7ec9c9,0x2aa3e6a7af780878,2
+np.float64,0xff73cc7100279900,0xd51b4478c3409618,2
+np.float64,0x71e6722ce3ccf,0x2a9ec76ddf296ce0,2
+np.float64,0x8006ca16ab0d942e,0xaa9e4bfd862af570,2
+np.float64,0x8000000000000000,0x8000000000000000,2
+np.float64,0xbfed373e02ba6e7c,0xbfef0b2b7bb767b3,2
+np.float64,0xa6cb0f694d962,0x2aa179dd16b0242b,2
+np.float64,0x7fec14626cf828c4,0x55434ca55b7c85d5,2
+np.float64,0x3fcda404513b4808,0x3fe3a68e8d977752,2
+np.float64,0xbfeb94995f772933,0xbfee74091d288b81,2
+np.float64,0x3fce2299a13c4530,0x3fe3c2603f28d23b,2
+np.float64,0xffd07f4534a0fe8a,0xd539a8a6ebc5a603,2
+np.float64,0x7fdb1c651e3638c9,0x553e478a6385c86b,2
+np.float64,0x3fec758336f8eb06,0x3feec5f3b92c8b28,2
+np.float64,0x796fc87cf2dfa,0x2a9f7184a4ad8c49,2
+np.float64,0x3fef9ba866ff3750,0x3fefde6a446fc2cd,2
+np.float64,0x964d26c72c9a5,0x2aa0e143f1820179,2
+np.float64,0xbfef6af750bed5ef,0xbfefce04870a97bd,2
+np.float64,0x3fe2f3961aa5e72c,0x3feadf769321a3ff,2
+np.float64,0xbfd6b706e9ad6e0e,0xbfe6a8141c5c3b5d,2
+np.float64,0x7fe0ecc40a21d987,0x55404d72c2b46a82,2
+np.float64,0xbfe560d19deac1a3,0xbfebf962681a42a4,2
+np.float64,0xbfea37170ab46e2e,0xbfedf136ee9df02b,2
+np.float64,0xbfebf78947b7ef12,0xbfee9847ef160257,2
+np.float64,0x800551f8312aa3f1,0xaa9bee7d3aa5491b,2
+np.float64,0xffed2513897a4a26,0xd5438a58c4ae28ec,2
+np.float64,0x7fd962d75cb2c5ae,0x553d9f8a0c2016f3,2
+np.float64,0x3fefdd8512bfbb0a,0x3feff47d8da7424d,2
+np.float64,0xbfefa5b43bff4b68,0xbfefe1ca42867af0,2
+np.float64,0xbfc8a2853531450c,0xbfe279bb7b965729,2
+np.float64,0x800c8843bc391088,0xaaa2951344e7b29b,2
+np.float64,0x7fe22587bae44b0e,0x5540af8bb58cfe86,2
+np.float64,0xbfe159fae822b3f6,0xbfea182394eafd8d,2
+np.float64,0xbfe6fdfd50edfbfa,0xbfeca93f2a3597d0,2
+np.float64,0xbfe5cd5afaeb9ab6,0xbfec286a8ce0470f,2
+np.float64,0xbfc84bb97f309774,0xbfe263ef0f8f1f6e,2
+np.float64,0x7fd9c1e548b383ca,0x553dc4556874ecb9,2
+np.float64,0x7fda43d33bb487a5,0x553df60f61532fc0,2
+np.float64,0xbfe774bd25eee97a,0xbfecda42e8578c1f,2
+np.float64,0x800df1f5ab9be3ec,0xaaa34184712e69db,2
+np.float64,0xbff0000000000000,0xbff0000000000000,2
+np.float64,0x3fe14ec21b629d84,0x3fea128244215713,2
+np.float64,0x7fc1ce7843239cf0,0x5534e3fa8285b7b8,2
+np.float64,0xbfe922b204724564,0xbfed86818687d649,2
+np.float64,0x3fc58924fb2b1248,0x3fe1aa715ff6ebbf,2
+np.float64,0x8008b637e4d16c70,0xaaa0760b53abcf46,2
+np.float64,0xffbf55bd4c3eab78,0xd53404a23091a842,2
+np.float64,0x9f6b4a753ed6a,0x2aa136ef9fef9596,2
+np.float64,0xbfd11da7f8a23b50,0xbfe49deb493710d8,2
+np.float64,0x800a2f07fcd45e10,0xaaa157237c98b4f6,2
+np.float64,0x3fdd4defa4ba9bdf,0x3fe8aa0bcf895f4f,2
+np.float64,0x7fe9b0ab05f36155,0x5542bc5335414473,2
+np.float64,0x3fe89c97de313930,0x3fed51a1189b8982,2
+np.float64,0x3fdd45c8773a8b91,0x3fe8a7c2096fbf5a,2
+np.float64,0xbfeb6f64daf6deca,0xbfee665167ef43ad,2
+np.float64,0xffdf9da1c4bf3b44,0xd53fdf141944a983,2
+np.float64,0x3fde092ed0bc125c,0x3fe8de25bfbfc2db,2
+np.float64,0xbfcb21f96b3643f4,0xbfe3147904c258cf,2
+np.float64,0x800c9c934f993927,0xaaa29f17c43f021b,2
+np.float64,0x9b91814d37230,0x2aa11329e59bf6b0,2
+np.float64,0x3fe28a7e0b6514fc,0x3feaad6d23e2eadd,2
+np.float64,0xffecf38395f9e706,0xd5437f3ee1cd61e4,2
+np.float64,0x3fcade92a935bd25,0x3fe3049f4c1da1d0,2
+np.float64,0x800ab25d95d564bc,0xaaa1a076d7c66e04,2
+np.float64,0xffc0989e1e21313c,0xd53467f3b8158298,2
+np.float64,0x3fd81523eeb02a48,0x3fe71a38d2da8a82,2
+np.float64,0x7fe5b9dd402b73ba,0x5541b7b9b8631010,2
+np.float64,0x2c160d94582c3,0x2a966e51b503a3d1,2
+np.float64,0x2c416ffa5882f,0x2a9675aaef8b29c4,2
+np.float64,0x7fefe2ff01bfc5fd,0x55442289faf22b86,2
+np.float64,0xbfd469bf5d28d37e,0xbfe5dd239ffdc7eb,2
+np.float64,0xbfdd56f3eabaade8,0xbfe8ac93244ca17b,2
+np.float64,0xbfe057b89160af71,0xbfe9941557340bb3,2
+np.float64,0x800c50e140b8a1c3,0xaaa2798ace9097ee,2
+np.float64,0xbfda5a8984b4b514,0xbfe7ce93d65a56b0,2
+np.float64,0xbfcd6458323ac8b0,0xbfe39872514127bf,2
+np.float64,0x3fefb1f5ebff63ec,0x3fefe5e761b49b89,2
+np.float64,0x3fea3abc1df47578,0x3fedf29a1c997863,2
+np.float64,0x7fcb4a528e3694a4,0x553815f169667213,2
+np.float64,0x8c77da7b18efc,0x2aa080e52bdedb54,2
+np.float64,0x800e5dde4c5cbbbd,0xaaa372b16fd8b1ad,2
+np.float64,0x3fd2976038a52ec0,0x3fe5316b4f79fdbc,2
+np.float64,0x69413a0ed2828,0x2a9dfacd9cb44286,2
+np.float64,0xbfebbac0bdb77582,0xbfee820d9288b631,2
+np.float64,0x1a12aa7c34256,0x2a92d407e073bbfe,2
+np.float64,0xbfc41a27c3283450,0xbfe143c8665b0d3c,2
+np.float64,0xffe4faa41369f548,0xd54183230e0ce613,2
+np.float64,0xbfdeae81f23d5d04,0xbfe90b734bf35b68,2
+np.float64,0x3fc984ba58330975,0x3fe2b19e9052008e,2
+np.float64,0x7fe6e51b8d2dca36,0x554207a74ae2bb39,2
+np.float64,0x80081a58a81034b2,0xaaa0117d4aff11c8,2
+np.float64,0x7fde3fddfe3c7fbb,0x553f67d0082acc67,2
+np.float64,0x3fac7c999038f933,0x3fd86ec2f5dc3aa4,2
+np.float64,0x7fa26b4c4c24d698,0x552a9e6ea8545c18,2
+np.float64,0x3fdacd06e6b59a0e,0x3fe7f0dc0e8f9c6d,2
+np.float64,0x80064b62cbec96c6,0xaa9d8ac0506fdd05,2
+np.float64,0xb858116170b1,0x2a8caea703d9ccc8,2
+np.float64,0xbfe8d94ccef1b29a,0xbfed69a8782cbf3d,2
+np.float64,0x8005607d6a6ac0fc,0xaa9c07cf8620b037,2
+np.float64,0xbfe66a52daacd4a6,0xbfec6b5e403e6864,2
+np.float64,0x7fc398c2e0273185,0x5535918245894606,2
+np.float64,0x74b2d7dce965c,0x2a9f077020defdbc,2
+np.float64,0x7fe8f7a4d9b1ef49,0x55428eeae210e8eb,2
+np.float64,0x80027deddc84fbdc,0xaa95b11ff9089745,2
+np.float64,0xffeba2a94e774552,0xd5433273f6568902,2
+np.float64,0x80002f8259405f05,0xaa8240b68d7b9dc4,2
+np.float64,0xbfdf0d84883e1b0a,0xbfe92532c69c5802,2
+np.float64,0xbfcdfa7b6b3bf4f8,0xbfe3b997a84d0914,2
+np.float64,0x800c18b04e183161,0xaaa25d46d60b15c6,2
+np.float64,0xffeaf1e37c35e3c6,0xd543092cd929ac19,2
+np.float64,0xbfc5aa07752b5410,0xbfe1b36ab5ec741f,2
+np.float64,0x3fe5c491d1eb8924,0x3fec24a1c3f6a178,2
+np.float64,0xbfeb736937f6e6d2,0xbfee67cd296e6fa9,2
+np.float64,0xffec3d5718787aad,0xd5435602e1a2cc43,2
+np.float64,0x7fe71e1da86e3c3a,0x55421691ead882cb,2
+np.float64,0x3fdd6ed0c93adda2,0x3fe8b341d066c43c,2
+np.float64,0x7fbe3d7a203c7af3,0x5533c83e53283430,2
+np.float64,0x3fdc20cb56384197,0x3fe854676360aba9,2
+np.float64,0xb7a1ac636f436,0x2aa20b9d40d66e78,2
+np.float64,0x3fb1491bb8229237,0x3fda0fabad1738ee,2
+np.float64,0xbfdf9c0ce73f381a,0xbfe94b716dbe35ee,2
+np.float64,0xbfbd4f0ad23a9e18,0xbfdf1397329a2dce,2
+np.float64,0xbfe4e0caac69c196,0xbfebc119b8a181cd,2
+np.float64,0x5753641aaea6d,0x2a9c2ba3e92b0cd2,2
+np.float64,0x72bb814ae5771,0x2a9eda92fada66de,2
+np.float64,0x57ed8f5aafdb3,0x2a9c3c2e1d42e609,2
+np.float64,0xffec33359c38666a,0xd54353b2acd0daf1,2
+np.float64,0x3fa5fe6e8c2bfce0,0x3fd66a0b3bf2720a,2
+np.float64,0xffe2dc8d7ca5b91a,0xd540e6ebc097d601,2
+np.float64,0x7fd99d260eb33a4b,0x553db626c9c75f78,2
+np.float64,0xbfe2dd73e425bae8,0xbfead4fc4b93a727,2
+np.float64,0xdcd4a583b9a95,0x2aa33094c9a17ad7,2
+np.float64,0x7fb0af6422215ec7,0x553039a606e8e64f,2
+np.float64,0x7fdfab6227bf56c3,0x553fe3b26164aeda,2
+np.float64,0x1e4d265e3c9a6,0x2a93cba8a1a8ae6d,2
+np.float64,0xbfdc7d097238fa12,0xbfe86ee2f24fd473,2
+np.float64,0x7fe5d35d29eba6b9,0x5541bea5878bce2b,2
+np.float64,0xffcb886a903710d4,0xd53828281710aab5,2
+np.float64,0xffe058c7ffe0b190,0xd5401d61e9a7cbcf,2
+np.float64,0x3ff0000000000000,0x3ff0000000000000,2
+np.float64,0xffd5b1c1132b6382,0xd53c1c839c098340,2
+np.float64,0x3fe2e7956725cf2b,0x3fead9c907b9d041,2
+np.float64,0x800a8ee293951dc6,0xaaa18ce3f079f118,2
+np.float64,0x7febcd3085b79a60,0x55433c47e1f822ad,2
+np.float64,0x3feb0e14cd761c2a,0x3fee423542102546,2
+np.float64,0x3fb45e6d0628bcda,0x3fdb86db67d0c992,2
+np.float64,0x7fa836e740306dce,0x552d2907cb8118b2,2
+np.float64,0x3fd15ba25b22b745,0x3fe4b6b018409d78,2
+np.float64,0xbfb59980ce2b3300,0xbfdc1206274cb51d,2
+np.float64,0x3fdef1b87fbde371,0x3fe91dafc62124a1,2
+np.float64,0x7fed37a4337a6f47,0x55438e7e0b50ae37,2
+np.float64,0xffe6c87633ad90ec,0xd542001f216ab448,2
+np.float64,0x8008d2548ab1a4a9,0xaaa087ad272d8e17,2
+np.float64,0xbfd1d6744da3ace8,0xbfe4e71965adda74,2
+np.float64,0xbfb27f751224fee8,0xbfdaa82132775406,2
+np.float64,0x3fe2b336ae65666d,0x3feac0e6b13ec2d2,2
+np.float64,0xffc6bac2262d7584,0xd536a951a2eecb49,2
+np.float64,0x7fdb661321b6cc25,0x553e62dfd7fcd3f3,2
+np.float64,0xffe83567d5706acf,0xd5425e4bb5027568,2
+np.float64,0xbf7f0693e03e0d00,0xbfc9235314d53f82,2
+np.float64,0x3feb32b218766564,0x3fee4fd5847f3722,2
+np.float64,0x3fec25d33df84ba6,0x3feea91fcd4aebab,2
+np.float64,0x7fe17abecb22f57d,0x55407a8ba661207c,2
+np.float64,0xbfe5674b1eeace96,0xbfebfc351708dc70,2
+np.float64,0xbfe51a2d2f6a345a,0xbfebda702c9d302a,2
+np.float64,0x3fec05584af80ab0,0x3fee9d502a7bf54d,2
+np.float64,0xffda8871dcb510e4,0xd53e10105f0365b5,2
+np.float64,0xbfc279c31824f388,0xbfe0c9354d871484,2
+np.float64,0x1cbed61e397dc,0x2a937364712cd518,2
+np.float64,0x800787d198af0fa4,0xaa9f5c847affa1d2,2
+np.float64,0x80079f6d65af3edc,0xaa9f7d2863368bbd,2
+np.float64,0xb942f1e97285e,0x2aa2193e0c513b7f,2
+np.float64,0x7fe9078263320f04,0x554292d85dee2c18,2
+np.float64,0xbfe4de0761a9bc0f,0xbfebbfe04116b829,2
+np.float64,0xbfdbe6f3fc37cde8,0xbfe843aea59a0749,2
+np.float64,0xffcb6c0de136d81c,0xd5381fd9c525b813,2
+np.float64,0x9b6bda9336d7c,0x2aa111c924c35386,2
+np.float64,0x3fe17eece422fdda,0x3fea2a9bacd78607,2
+np.float64,0xd8011c49b0024,0x2aa30c87574fc0c6,2
+np.float64,0xbfc0a08b3f214118,0xbfe034d48f0d8dc0,2
+np.float64,0x3fd60adb1eac15b8,0x3fe66e42e4e7e6b5,2
+np.float64,0x80011d68ea023ad3,0xaa909733befbb962,2
+np.float64,0xffb35ac32426b588,0xd5310c4be1c37270,2
+np.float64,0x3fee8b56c9bd16ae,0x3fef81d8d15f6939,2
+np.float64,0x3fdc10a45e382149,0x3fe84fbe4cf11e68,2
+np.float64,0xbfc85dc45e30bb88,0xbfe2687b5518abde,2
+np.float64,0x3fd53b85212a770a,0x3fe6270d6d920d0f,2
+np.float64,0x800fc158927f82b1,0xaaa40e303239586f,2
+np.float64,0x11af5e98235ed,0x2a908b04a790083f,2
+np.float64,0xbfe2a097afe54130,0xbfeab80269eece99,2
+np.float64,0xbfd74ac588ae958c,0xbfe6d8ca3828d0b8,2
+np.float64,0xffea18ab2ef43156,0xd542d579ab31df1e,2
+np.float64,0xbfecda7058f9b4e1,0xbfeeea29c33b7913,2
+np.float64,0x3fc4ac56ed2958b0,0x3fe16d3e2bd7806d,2
+np.float64,0x3feccc898cb99913,0x3feee531f217dcfa,2
+np.float64,0xffeb3a64c5b674c9,0xd5431a30a41f0905,2
+np.float64,0x3fe5a7ee212b4fdc,0x3fec1844af9076fc,2
+np.float64,0x80080fdb52301fb7,0xaaa00a8b4274db67,2
+np.float64,0x800b3e7e47d67cfd,0xaaa1ec2876959852,2
+np.float64,0x80063fb8ee2c7f73,0xaa9d7875c9f20d6f,2
+np.float64,0x7fdacf80d0b59f01,0x553e2acede4c62a8,2
+np.float64,0x401e9b24803d4,0x2a996a0a75d0e093,2
+np.float64,0x3fe6c29505ed852a,0x3fec907a6d8c10af,2
+np.float64,0x8005c04ee2cb809f,0xaa9caa9813faef46,2
+np.float64,0xbfe1360f21e26c1e,0xbfea06155d6985b6,2
+np.float64,0xffc70606682e0c0c,0xd536c239b9d4be0a,2
+np.float64,0x800e639afefcc736,0xaaa37547d0229a26,2
+np.float64,0x3fe5589290aab125,0x3febf5c925c4e6db,2
+np.float64,0x8003b59330276b27,0xaa98c47e44524335,2
+np.float64,0x800d67ec22dacfd8,0xaaa301251b6a730a,2
+np.float64,0x7fdaeb5025b5d69f,0x553e35397dfe87eb,2
+np.float64,0x3fdae32a24b5c654,0x3fe7f771bc108f6c,2
+np.float64,0xffe6c1fc93ad83f8,0xd541fe6a6a716756,2
+np.float64,0xbfd7b9c1d32f7384,0xbfe6fcdae563d638,2
+np.float64,0x800e1bea06fc37d4,0xaaa354c0bf61449c,2
+np.float64,0xbfd78f097aaf1e12,0xbfe6ef068329bdf4,2
+np.float64,0x7fea6a400874d47f,0x5542e905978ad722,2
+np.float64,0x8008b4377cb1686f,0xaaa074c87eee29f9,2
+np.float64,0x8002f3fb8d45e7f8,0xaa96f47ac539b614,2
+np.float64,0xbfcf2b3fd13e5680,0xbfe3fb91c0cc66ad,2
+np.float64,0xffecca2f5279945e,0xd54375f361075927,2
+np.float64,0x7ff0000000000000,0x7ff0000000000000,2
+np.float64,0x7f84d5a5a029ab4a,0x552178d1d4e8640e,2
+np.float64,0x3fea8a4b64351497,0x3fee10c332440eb2,2
+np.float64,0x800fe01ac1dfc036,0xaaa41b34d91a4bee,2
+np.float64,0x3fc0b3d8872167b1,0x3fe03b178d354f8d,2
+np.float64,0x5ee8b0acbdd17,0x2a9cf69f2e317729,2
+np.float64,0x8006ef0407adde09,0xaa9e82888f3dd83e,2
+np.float64,0x7fdbb08a07b76113,0x553e7e4e35b938b9,2
+np.float64,0x49663f9c92cc9,0x2a9a95e0affe5108,2
+np.float64,0x7fd9b87e79b370fc,0x553dc0b5cff3dc7d,2
+np.float64,0xbfd86ae657b0d5cc,0xbfe73584d02bdd2b,2
+np.float64,0x3fd4d4a13729a942,0x3fe6030a962aaaf8,2
+np.float64,0x7fcc246bcb3848d7,0x5538557309449bba,2
+np.float64,0xbfdc86a7d5b90d50,0xbfe871a2983c2a29,2
+np.float64,0xd2a6e995a54dd,0x2aa2e3e9c0fdd6c0,2
+np.float64,0x3f92eb447825d680,0x3fd0eb4fd2ba16d2,2
+np.float64,0x800d4001697a8003,0xaaa2ee358661b75c,2
+np.float64,0x3fd3705fd1a6e0c0,0x3fe582a6f321d7d6,2
+np.float64,0xbfcfdf51533fbea4,0xbfe421c3bdd9f2a3,2
+np.float64,0x3fe268e87964d1d1,0x3fea9d47e08aad8a,2
+np.float64,0x24b8901e49713,0x2a951adeefe7b31b,2
+np.float64,0x3fedb35d687b66bb,0x3fef36e440850bf8,2
+np.float64,0x3fb7ab5cbe2f56c0,0x3fdcf097380721c6,2
+np.float64,0x3f8c4eaa10389d54,0x3fceb7ecb605b73b,2
+np.float64,0xbfed831ed6fb063e,0xbfef25f462a336f1,2
+np.float64,0x7fd8c52112318a41,0x553d61b0ee609f58,2
+np.float64,0xbfe71c4ff76e38a0,0xbfecb5d32e789771,2
+np.float64,0xbfe35fb7b166bf70,0xbfeb12328e75ee6b,2
+np.float64,0x458e1a3a8b1c4,0x2a9a1cebadc81342,2
+np.float64,0x8003c1b3ad478368,0xaa98df5ed060b28c,2
+np.float64,0x7ff4000000000000,0x7ffc000000000000,2
+np.float64,0x7fe17098c162e131,0x5540775a9a3a104f,2
+np.float64,0xbfd95cb71732b96e,0xbfe7812acf7ea511,2
+np.float64,0x8000000000000001,0xa990000000000000,2
+np.float64,0xbfde0e7d9ebc1cfc,0xbfe8df9ca9e49a5b,2
+np.float64,0xffef4f67143e9ecd,0xd5440348a6a2f231,2
+np.float64,0x7fe37d23c826fa47,0x5541165de17caa03,2
+np.float64,0xbfcc0e5f85381cc0,0xbfe34b44b0deefe9,2
+np.float64,0x3fe858f1c470b1e4,0x3fed36ab90557d89,2
+np.float64,0x800e857278fd0ae5,0xaaa3847d13220545,2
+np.float64,0x3febd31a66f7a635,0x3fee8af90e66b043,2
+np.float64,0x7fd3fde1b127fbc2,0x553b5b186a49b968,2
+np.float64,0x3fd3dabb8b27b577,0x3fe5a99b446bed26,2
+np.float64,0xffeb4500f1768a01,0xd5431cab828e254a,2
+np.float64,0xffccca8fc6399520,0xd53884f8b505e79e,2
+np.float64,0xffeee9406b7dd280,0xd543ed6d27a1a899,2
+np.float64,0xffecdde0f0f9bbc1,0xd5437a6258b14092,2
+np.float64,0xe6b54005cd6a8,0x2aa378c25938dfda,2
+np.float64,0x7fe610f1022c21e1,0x5541cf460b972925,2
+np.float64,0xbfe5a170ec6b42e2,0xbfec1576081e3232,2
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cos.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cos.csv
new file mode 100644
index 0000000..258ae48
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cos.csv
@@ -0,0 +1,1375 @@
+dtype,input,output,ulperrortol
+## +ve denormals ##
+np.float32,0x004b4716,0x3f800000,2
+np.float32,0x007b2490,0x3f800000,2
+np.float32,0x007c99fa,0x3f800000,2
+np.float32,0x00734a0c,0x3f800000,2
+np.float32,0x0070de24,0x3f800000,2
+np.float32,0x007fffff,0x3f800000,2
+np.float32,0x00000001,0x3f800000,2
+## -ve denormals ##
+np.float32,0x80495d65,0x3f800000,2
+np.float32,0x806894f6,0x3f800000,2
+np.float32,0x80555a76,0x3f800000,2
+np.float32,0x804e1fb8,0x3f800000,2
+np.float32,0x80687de9,0x3f800000,2
+np.float32,0x807fffff,0x3f800000,2
+np.float32,0x80000001,0x3f800000,2
+## +/-0.0f, +/-FLT_MIN +/-FLT_MAX ##
+np.float32,0x00000000,0x3f800000,2
+np.float32,0x80000000,0x3f800000,2
+np.float32,0x00800000,0x3f800000,2
+np.float32,0x80800000,0x3f800000,2
+## 1.00f + 0x00000001 ##
+np.float32,0x3f800000,0x3f0a5140,2
+np.float32,0x3f800001,0x3f0a513f,2
+np.float32,0x3f800002,0x3f0a513d,2
+np.float32,0xc090a8b0,0xbe4332ce,2
+np.float32,0x41ce3184,0x3f4d1de1,2
+np.float32,0xc1d85848,0xbeaa8980,2
+np.float32,0x402b8820,0xbf653aa3,2
+np.float32,0x42b4e454,0xbf4a338b,2
+np.float32,0x42a67a60,0x3c58202e,2
+np.float32,0x41d92388,0xbed987c7,2
+np.float32,0x422dd66c,0x3f5dcab3,2
+np.float32,0xc28f5be6,0xbf5688d8,2
+np.float32,0x41ab2674,0xbf53aa3b,2
+np.float32,0x3f490fdb,0x3f3504f3,2
+np.float32,0xbf490fdb,0x3f3504f3,2
+np.float32,0x3fc90fdb,0xb33bbd2e,2
+np.float32,0xbfc90fdb,0xb33bbd2e,2
+np.float32,0x40490fdb,0xbf800000,2
+np.float32,0xc0490fdb,0xbf800000,2
+np.float32,0x3fc90fdb,0xb33bbd2e,2
+np.float32,0xbfc90fdb,0xb33bbd2e,2
+np.float32,0x40490fdb,0xbf800000,2
+np.float32,0xc0490fdb,0xbf800000,2
+np.float32,0x40c90fdb,0x3f800000,2
+np.float32,0xc0c90fdb,0x3f800000,2
+np.float32,0x4016cbe4,0xbf3504f3,2
+np.float32,0xc016cbe4,0xbf3504f3,2
+np.float32,0x4096cbe4,0x324cde2e,2
+np.float32,0xc096cbe4,0x324cde2e,2
+np.float32,0x4116cbe4,0xbf800000,2
+np.float32,0xc116cbe4,0xbf800000,2
+np.float32,0x40490fdb,0xbf800000,2
+np.float32,0xc0490fdb,0xbf800000,2
+np.float32,0x40c90fdb,0x3f800000,2
+np.float32,0xc0c90fdb,0x3f800000,2
+np.float32,0x41490fdb,0x3f800000,2
+np.float32,0xc1490fdb,0x3f800000,2
+np.float32,0x407b53d2,0xbf3504f1,2
+np.float32,0xc07b53d2,0xbf3504f1,2
+np.float32,0x40fb53d2,0xb4b5563d,2
+np.float32,0xc0fb53d2,0xb4b5563d,2
+np.float32,0x417b53d2,0xbf800000,2
+np.float32,0xc17b53d2,0xbf800000,2
+np.float32,0x4096cbe4,0x324cde2e,2
+np.float32,0xc096cbe4,0x324cde2e,2
+np.float32,0x4116cbe4,0xbf800000,2
+np.float32,0xc116cbe4,0xbf800000,2
+np.float32,0x4196cbe4,0x3f800000,2
+np.float32,0xc196cbe4,0x3f800000,2
+np.float32,0x40afede0,0x3f3504f7,2
+np.float32,0xc0afede0,0x3f3504f7,2
+np.float32,0x412fede0,0x353222c4,2
+np.float32,0xc12fede0,0x353222c4,2
+np.float32,0x41afede0,0xbf800000,2
+np.float32,0xc1afede0,0xbf800000,2
+np.float32,0x40c90fdb,0x3f800000,2
+np.float32,0xc0c90fdb,0x3f800000,2
+np.float32,0x41490fdb,0x3f800000,2
+np.float32,0xc1490fdb,0x3f800000,2
+np.float32,0x41c90fdb,0x3f800000,2
+np.float32,0xc1c90fdb,0x3f800000,2
+np.float32,0x40e231d6,0x3f3504f3,2
+np.float32,0xc0e231d6,0x3f3504f3,2
+np.float32,0x416231d6,0xb319a6a2,2
+np.float32,0xc16231d6,0xb319a6a2,2
+np.float32,0x41e231d6,0xbf800000,2
+np.float32,0xc1e231d6,0xbf800000,2
+np.float32,0x40fb53d2,0xb4b5563d,2
+np.float32,0xc0fb53d2,0xb4b5563d,2
+np.float32,0x417b53d2,0xbf800000,2
+np.float32,0xc17b53d2,0xbf800000,2
+np.float32,0x41fb53d2,0x3f800000,2
+np.float32,0xc1fb53d2,0x3f800000,2
+np.float32,0x410a3ae7,0xbf3504fb,2
+np.float32,0xc10a3ae7,0xbf3504fb,2
+np.float32,0x418a3ae7,0x35b08908,2
+np.float32,0xc18a3ae7,0x35b08908,2
+np.float32,0x420a3ae7,0xbf800000,2
+np.float32,0xc20a3ae7,0xbf800000,2
+np.float32,0x4116cbe4,0xbf800000,2
+np.float32,0xc116cbe4,0xbf800000,2
+np.float32,0x4196cbe4,0x3f800000,2
+np.float32,0xc196cbe4,0x3f800000,2
+np.float32,0x4216cbe4,0x3f800000,2
+np.float32,0xc216cbe4,0x3f800000,2
+np.float32,0x41235ce2,0xbf3504ef,2
+np.float32,0xc1235ce2,0xbf3504ef,2
+np.float32,0x41a35ce2,0xb53889b6,2
+np.float32,0xc1a35ce2,0xb53889b6,2
+np.float32,0x42235ce2,0xbf800000,2
+np.float32,0xc2235ce2,0xbf800000,2
+np.float32,0x412fede0,0x353222c4,2
+np.float32,0xc12fede0,0x353222c4,2
+np.float32,0x41afede0,0xbf800000,2
+np.float32,0xc1afede0,0xbf800000,2
+np.float32,0x422fede0,0x3f800000,2
+np.float32,0xc22fede0,0x3f800000,2
+np.float32,0x413c7edd,0x3f3504f4,2
+np.float32,0xc13c7edd,0x3f3504f4,2
+np.float32,0x41bc7edd,0x33800add,2
+np.float32,0xc1bc7edd,0x33800add,2
+np.float32,0x423c7edd,0xbf800000,2
+np.float32,0xc23c7edd,0xbf800000,2
+np.float32,0x41490fdb,0x3f800000,2
+np.float32,0xc1490fdb,0x3f800000,2
+np.float32,0x41c90fdb,0x3f800000,2
+np.float32,0xc1c90fdb,0x3f800000,2
+np.float32,0x42490fdb,0x3f800000,2
+np.float32,0xc2490fdb,0x3f800000,2
+np.float32,0x4155a0d9,0x3f3504eb,2
+np.float32,0xc155a0d9,0x3f3504eb,2
+np.float32,0x41d5a0d9,0xb5b3bc81,2
+np.float32,0xc1d5a0d9,0xb5b3bc81,2
+np.float32,0x4255a0d9,0xbf800000,2
+np.float32,0xc255a0d9,0xbf800000,2
+np.float32,0x416231d6,0xb319a6a2,2
+np.float32,0xc16231d6,0xb319a6a2,2
+np.float32,0x41e231d6,0xbf800000,2
+np.float32,0xc1e231d6,0xbf800000,2
+np.float32,0x426231d6,0x3f800000,2
+np.float32,0xc26231d6,0x3f800000,2
+np.float32,0x416ec2d4,0xbf3504f7,2
+np.float32,0xc16ec2d4,0xbf3504f7,2
+np.float32,0x41eec2d4,0x353ef0a7,2
+np.float32,0xc1eec2d4,0x353ef0a7,2
+np.float32,0x426ec2d4,0xbf800000,2
+np.float32,0xc26ec2d4,0xbf800000,2
+np.float32,0x417b53d2,0xbf800000,2
+np.float32,0xc17b53d2,0xbf800000,2
+np.float32,0x41fb53d2,0x3f800000,2
+np.float32,0xc1fb53d2,0x3f800000,2
+np.float32,0x427b53d2,0x3f800000,2
+np.float32,0xc27b53d2,0x3f800000,2
+np.float32,0x4183f268,0xbf3504e7,2
+np.float32,0xc183f268,0xbf3504e7,2
+np.float32,0x4203f268,0xb6059a13,2
+np.float32,0xc203f268,0xb6059a13,2
+np.float32,0x4283f268,0xbf800000,2
+np.float32,0xc283f268,0xbf800000,2
+np.float32,0x418a3ae7,0x35b08908,2
+np.float32,0xc18a3ae7,0x35b08908,2
+np.float32,0x420a3ae7,0xbf800000,2
+np.float32,0xc20a3ae7,0xbf800000,2
+np.float32,0x428a3ae7,0x3f800000,2
+np.float32,0xc28a3ae7,0x3f800000,2
+np.float32,0x41908365,0x3f3504f0,2
+np.float32,0xc1908365,0x3f3504f0,2
+np.float32,0x42108365,0xb512200d,2
+np.float32,0xc2108365,0xb512200d,2
+np.float32,0x42908365,0xbf800000,2
+np.float32,0xc2908365,0xbf800000,2
+np.float32,0x4196cbe4,0x3f800000,2
+np.float32,0xc196cbe4,0x3f800000,2
+np.float32,0x4216cbe4,0x3f800000,2
+np.float32,0xc216cbe4,0x3f800000,2
+np.float32,0x4296cbe4,0x3f800000,2
+np.float32,0xc296cbe4,0x3f800000,2
+np.float32,0x419d1463,0x3f3504ef,2
+np.float32,0xc19d1463,0x3f3504ef,2
+np.float32,0x421d1463,0xb5455799,2
+np.float32,0xc21d1463,0xb5455799,2
+np.float32,0x429d1463,0xbf800000,2
+np.float32,0xc29d1463,0xbf800000,2
+np.float32,0x41a35ce2,0xb53889b6,2
+np.float32,0xc1a35ce2,0xb53889b6,2
+np.float32,0x42235ce2,0xbf800000,2
+np.float32,0xc2235ce2,0xbf800000,2
+np.float32,0x42a35ce2,0x3f800000,2
+np.float32,0xc2a35ce2,0x3f800000,2
+np.float32,0x41a9a561,0xbf3504ff,2
+np.float32,0xc1a9a561,0xbf3504ff,2
+np.float32,0x4229a561,0x360733d0,2
+np.float32,0xc229a561,0x360733d0,2
+np.float32,0x42a9a561,0xbf800000,2
+np.float32,0xc2a9a561,0xbf800000,2
+np.float32,0x41afede0,0xbf800000,2
+np.float32,0xc1afede0,0xbf800000,2
+np.float32,0x422fede0,0x3f800000,2
+np.float32,0xc22fede0,0x3f800000,2
+np.float32,0x42afede0,0x3f800000,2
+np.float32,0xc2afede0,0x3f800000,2
+np.float32,0x41b6365e,0xbf3504f6,2
+np.float32,0xc1b6365e,0xbf3504f6,2
+np.float32,0x4236365e,0x350bb91c,2
+np.float32,0xc236365e,0x350bb91c,2
+np.float32,0x42b6365e,0xbf800000,2
+np.float32,0xc2b6365e,0xbf800000,2
+np.float32,0x41bc7edd,0x33800add,2
+np.float32,0xc1bc7edd,0x33800add,2
+np.float32,0x423c7edd,0xbf800000,2
+np.float32,0xc23c7edd,0xbf800000,2
+np.float32,0x42bc7edd,0x3f800000,2
+np.float32,0xc2bc7edd,0x3f800000,2
+np.float32,0x41c2c75c,0x3f3504f8,2
+np.float32,0xc1c2c75c,0x3f3504f8,2
+np.float32,0x4242c75c,0x354bbe8a,2
+np.float32,0xc242c75c,0x354bbe8a,2
+np.float32,0x42c2c75c,0xbf800000,2
+np.float32,0xc2c2c75c,0xbf800000,2
+np.float32,0x41c90fdb,0x3f800000,2
+np.float32,0xc1c90fdb,0x3f800000,2
+np.float32,0x42490fdb,0x3f800000,2
+np.float32,0xc2490fdb,0x3f800000,2
+np.float32,0x42c90fdb,0x3f800000,2
+np.float32,0xc2c90fdb,0x3f800000,2
+np.float32,0x41cf585a,0x3f3504e7,2
+np.float32,0xc1cf585a,0x3f3504e7,2
+np.float32,0x424f585a,0xb608cd8c,2
+np.float32,0xc24f585a,0xb608cd8c,2
+np.float32,0x42cf585a,0xbf800000,2
+np.float32,0xc2cf585a,0xbf800000,2
+np.float32,0x41d5a0d9,0xb5b3bc81,2
+np.float32,0xc1d5a0d9,0xb5b3bc81,2
+np.float32,0x4255a0d9,0xbf800000,2
+np.float32,0xc255a0d9,0xbf800000,2
+np.float32,0x42d5a0d9,0x3f800000,2
+np.float32,0xc2d5a0d9,0x3f800000,2
+np.float32,0x41dbe958,0xbf350507,2
+np.float32,0xc1dbe958,0xbf350507,2
+np.float32,0x425be958,0x365eab75,2
+np.float32,0xc25be958,0x365eab75,2
+np.float32,0x42dbe958,0xbf800000,2
+np.float32,0xc2dbe958,0xbf800000,2
+np.float32,0x41e231d6,0xbf800000,2
+np.float32,0xc1e231d6,0xbf800000,2
+np.float32,0x426231d6,0x3f800000,2
+np.float32,0xc26231d6,0x3f800000,2
+np.float32,0x42e231d6,0x3f800000,2
+np.float32,0xc2e231d6,0x3f800000,2
+np.float32,0x41e87a55,0xbf3504ef,2
+np.float32,0xc1e87a55,0xbf3504ef,2
+np.float32,0x42687a55,0xb552257b,2
+np.float32,0xc2687a55,0xb552257b,2
+np.float32,0x42e87a55,0xbf800000,2
+np.float32,0xc2e87a55,0xbf800000,2
+np.float32,0x41eec2d4,0x353ef0a7,2
+np.float32,0xc1eec2d4,0x353ef0a7,2
+np.float32,0x426ec2d4,0xbf800000,2
+np.float32,0xc26ec2d4,0xbf800000,2
+np.float32,0x42eec2d4,0x3f800000,2
+np.float32,0xc2eec2d4,0x3f800000,2
+np.float32,0x41f50b53,0x3f3504ff,2
+np.float32,0xc1f50b53,0x3f3504ff,2
+np.float32,0x42750b53,0x360a6748,2
+np.float32,0xc2750b53,0x360a6748,2
+np.float32,0x42f50b53,0xbf800000,2
+np.float32,0xc2f50b53,0xbf800000,2
+np.float32,0x41fb53d2,0x3f800000,2
+np.float32,0xc1fb53d2,0x3f800000,2
+np.float32,0x427b53d2,0x3f800000,2
+np.float32,0xc27b53d2,0x3f800000,2
+np.float32,0x42fb53d2,0x3f800000,2
+np.float32,0xc2fb53d2,0x3f800000,2
+np.float32,0x4200ce28,0x3f3504f6,2
+np.float32,0xc200ce28,0x3f3504f6,2
+np.float32,0x4280ce28,0x34fdd672,2
+np.float32,0xc280ce28,0x34fdd672,2
+np.float32,0x4300ce28,0xbf800000,2
+np.float32,0xc300ce28,0xbf800000,2
+np.float32,0x4203f268,0xb6059a13,2
+np.float32,0xc203f268,0xb6059a13,2
+np.float32,0x4283f268,0xbf800000,2
+np.float32,0xc283f268,0xbf800000,2
+np.float32,0x4303f268,0x3f800000,2
+np.float32,0xc303f268,0x3f800000,2
+np.float32,0x420716a7,0xbf3504f8,2
+np.float32,0xc20716a7,0xbf3504f8,2
+np.float32,0x428716a7,0x35588c6d,2
+np.float32,0xc28716a7,0x35588c6d,2
+np.float32,0x430716a7,0xbf800000,2
+np.float32,0xc30716a7,0xbf800000,2
+np.float32,0x420a3ae7,0xbf800000,2
+np.float32,0xc20a3ae7,0xbf800000,2
+np.float32,0x428a3ae7,0x3f800000,2
+np.float32,0xc28a3ae7,0x3f800000,2
+np.float32,0x430a3ae7,0x3f800000,2
+np.float32,0xc30a3ae7,0x3f800000,2
+np.float32,0x420d5f26,0xbf3504e7,2
+np.float32,0xc20d5f26,0xbf3504e7,2
+np.float32,0x428d5f26,0xb60c0105,2
+np.float32,0xc28d5f26,0xb60c0105,2
+np.float32,0x430d5f26,0xbf800000,2
+np.float32,0xc30d5f26,0xbf800000,2
+np.float32,0x42108365,0xb512200d,2
+np.float32,0xc2108365,0xb512200d,2
+np.float32,0x42908365,0xbf800000,2
+np.float32,0xc2908365,0xbf800000,2
+np.float32,0x43108365,0x3f800000,2
+np.float32,0xc3108365,0x3f800000,2
+np.float32,0x4213a7a5,0x3f350507,2
+np.float32,0xc213a7a5,0x3f350507,2
+np.float32,0x4293a7a5,0x3661deee,2
+np.float32,0xc293a7a5,0x3661deee,2
+np.float32,0x4313a7a5,0xbf800000,2
+np.float32,0xc313a7a5,0xbf800000,2
+np.float32,0x4216cbe4,0x3f800000,2
+np.float32,0xc216cbe4,0x3f800000,2
+np.float32,0x4296cbe4,0x3f800000,2
+np.float32,0xc296cbe4,0x3f800000,2
+np.float32,0x4316cbe4,0x3f800000,2
+np.float32,0xc316cbe4,0x3f800000,2
+np.float32,0x4219f024,0x3f3504d8,2
+np.float32,0xc219f024,0x3f3504d8,2
+np.float32,0x4299f024,0xb69bde6c,2
+np.float32,0xc299f024,0xb69bde6c,2
+np.float32,0x4319f024,0xbf800000,2
+np.float32,0xc319f024,0xbf800000,2
+np.float32,0x421d1463,0xb5455799,2
+np.float32,0xc21d1463,0xb5455799,2
+np.float32,0x429d1463,0xbf800000,2
+np.float32,0xc29d1463,0xbf800000,2
+np.float32,0x431d1463,0x3f800000,2
+np.float32,0xc31d1463,0x3f800000,2
+np.float32,0x422038a3,0xbf350516,2
+np.float32,0xc22038a3,0xbf350516,2
+np.float32,0x42a038a3,0x36c6cd61,2
+np.float32,0xc2a038a3,0x36c6cd61,2
+np.float32,0x432038a3,0xbf800000,2
+np.float32,0xc32038a3,0xbf800000,2
+np.float32,0x42235ce2,0xbf800000,2
+np.float32,0xc2235ce2,0xbf800000,2
+np.float32,0x42a35ce2,0x3f800000,2
+np.float32,0xc2a35ce2,0x3f800000,2
+np.float32,0x43235ce2,0x3f800000,2
+np.float32,0xc3235ce2,0x3f800000,2
+np.float32,0x42268121,0xbf3504f6,2
+np.float32,0xc2268121,0xbf3504f6,2
+np.float32,0x42a68121,0x34e43aac,2
+np.float32,0xc2a68121,0x34e43aac,2
+np.float32,0x43268121,0xbf800000,2
+np.float32,0xc3268121,0xbf800000,2
+np.float32,0x4229a561,0x360733d0,2
+np.float32,0xc229a561,0x360733d0,2
+np.float32,0x42a9a561,0xbf800000,2
+np.float32,0xc2a9a561,0xbf800000,2
+np.float32,0x4329a561,0x3f800000,2
+np.float32,0xc329a561,0x3f800000,2
+np.float32,0x422cc9a0,0x3f3504f8,2
+np.float32,0xc22cc9a0,0x3f3504f8,2
+np.float32,0x42acc9a0,0x35655a50,2
+np.float32,0xc2acc9a0,0x35655a50,2
+np.float32,0x432cc9a0,0xbf800000,2
+np.float32,0xc32cc9a0,0xbf800000,2
+np.float32,0x422fede0,0x3f800000,2
+np.float32,0xc22fede0,0x3f800000,2
+np.float32,0x42afede0,0x3f800000,2
+np.float32,0xc2afede0,0x3f800000,2
+np.float32,0x432fede0,0x3f800000,2
+np.float32,0xc32fede0,0x3f800000,2
+np.float32,0x4233121f,0x3f3504e7,2
+np.float32,0xc233121f,0x3f3504e7,2
+np.float32,0x42b3121f,0xb60f347d,2
+np.float32,0xc2b3121f,0xb60f347d,2
+np.float32,0x4333121f,0xbf800000,2
+np.float32,0xc333121f,0xbf800000,2
+np.float32,0x4236365e,0x350bb91c,2
+np.float32,0xc236365e,0x350bb91c,2
+np.float32,0x42b6365e,0xbf800000,2
+np.float32,0xc2b6365e,0xbf800000,2
+np.float32,0x4336365e,0x3f800000,2
+np.float32,0xc336365e,0x3f800000,2
+np.float32,0x42395a9e,0xbf350507,2
+np.float32,0xc2395a9e,0xbf350507,2
+np.float32,0x42b95a9e,0x36651267,2
+np.float32,0xc2b95a9e,0x36651267,2
+np.float32,0x43395a9e,0xbf800000,2
+np.float32,0xc3395a9e,0xbf800000,2
+np.float32,0x423c7edd,0xbf800000,2
+np.float32,0xc23c7edd,0xbf800000,2
+np.float32,0x42bc7edd,0x3f800000,2
+np.float32,0xc2bc7edd,0x3f800000,2
+np.float32,0x433c7edd,0x3f800000,2
+np.float32,0xc33c7edd,0x3f800000,2
+np.float32,0x423fa31d,0xbf3504d7,2
+np.float32,0xc23fa31d,0xbf3504d7,2
+np.float32,0x42bfa31d,0xb69d7828,2
+np.float32,0xc2bfa31d,0xb69d7828,2
+np.float32,0x433fa31d,0xbf800000,2
+np.float32,0xc33fa31d,0xbf800000,2
+np.float32,0x4242c75c,0x354bbe8a,2
+np.float32,0xc242c75c,0x354bbe8a,2
+np.float32,0x42c2c75c,0xbf800000,2
+np.float32,0xc2c2c75c,0xbf800000,2
+np.float32,0x4342c75c,0x3f800000,2
+np.float32,0xc342c75c,0x3f800000,2
+np.float32,0x4245eb9c,0x3f350517,2
+np.float32,0xc245eb9c,0x3f350517,2
+np.float32,0x42c5eb9c,0x36c8671d,2
+np.float32,0xc2c5eb9c,0x36c8671d,2
+np.float32,0x4345eb9c,0xbf800000,2
+np.float32,0xc345eb9c,0xbf800000,2
+np.float32,0x42490fdb,0x3f800000,2
+np.float32,0xc2490fdb,0x3f800000,2
+np.float32,0x42c90fdb,0x3f800000,2
+np.float32,0xc2c90fdb,0x3f800000,2
+np.float32,0x43490fdb,0x3f800000,2
+np.float32,0xc3490fdb,0x3f800000,2
+np.float32,0x424c341a,0x3f3504f5,2
+np.float32,0xc24c341a,0x3f3504f5,2
+np.float32,0x42cc341a,0x34ca9ee6,2
+np.float32,0xc2cc341a,0x34ca9ee6,2
+np.float32,0x434c341a,0xbf800000,2
+np.float32,0xc34c341a,0xbf800000,2
+np.float32,0x424f585a,0xb608cd8c,2
+np.float32,0xc24f585a,0xb608cd8c,2
+np.float32,0x42cf585a,0xbf800000,2
+np.float32,0xc2cf585a,0xbf800000,2
+np.float32,0x434f585a,0x3f800000,2
+np.float32,0xc34f585a,0x3f800000,2
+np.float32,0x42527c99,0xbf3504f9,2
+np.float32,0xc2527c99,0xbf3504f9,2
+np.float32,0x42d27c99,0x35722833,2
+np.float32,0xc2d27c99,0x35722833,2
+np.float32,0x43527c99,0xbf800000,2
+np.float32,0xc3527c99,0xbf800000,2
+np.float32,0x4255a0d9,0xbf800000,2
+np.float32,0xc255a0d9,0xbf800000,2
+np.float32,0x42d5a0d9,0x3f800000,2
+np.float32,0xc2d5a0d9,0x3f800000,2
+np.float32,0x4355a0d9,0x3f800000,2
+np.float32,0xc355a0d9,0x3f800000,2
+np.float32,0x4258c518,0xbf3504e6,2
+np.float32,0xc258c518,0xbf3504e6,2
+np.float32,0x42d8c518,0xb61267f6,2
+np.float32,0xc2d8c518,0xb61267f6,2
+np.float32,0x4358c518,0xbf800000,2
+np.float32,0xc358c518,0xbf800000,2
+np.float32,0x425be958,0x365eab75,2
+np.float32,0xc25be958,0x365eab75,2
+np.float32,0x42dbe958,0xbf800000,2
+np.float32,0xc2dbe958,0xbf800000,2
+np.float32,0x435be958,0x3f800000,2
+np.float32,0xc35be958,0x3f800000,2
+np.float32,0x425f0d97,0x3f350508,2
+np.float32,0xc25f0d97,0x3f350508,2
+np.float32,0x42df0d97,0x366845e0,2
+np.float32,0xc2df0d97,0x366845e0,2
+np.float32,0x435f0d97,0xbf800000,2
+np.float32,0xc35f0d97,0xbf800000,2
+np.float32,0x426231d6,0x3f800000,2
+np.float32,0xc26231d6,0x3f800000,2
+np.float32,0x42e231d6,0x3f800000,2
+np.float32,0xc2e231d6,0x3f800000,2
+np.float32,0x436231d6,0x3f800000,2
+np.float32,0xc36231d6,0x3f800000,2
+np.float32,0x42655616,0x3f3504d7,2
+np.float32,0xc2655616,0x3f3504d7,2
+np.float32,0x42e55616,0xb69f11e5,2
+np.float32,0xc2e55616,0xb69f11e5,2
+np.float32,0x43655616,0xbf800000,2
+np.float32,0xc3655616,0xbf800000,2
+np.float32,0x42687a55,0xb552257b,2
+np.float32,0xc2687a55,0xb552257b,2
+np.float32,0x42e87a55,0xbf800000,2
+np.float32,0xc2e87a55,0xbf800000,2
+np.float32,0x43687a55,0x3f800000,2
+np.float32,0xc3687a55,0x3f800000,2
+np.float32,0x426b9e95,0xbf350517,2
+np.float32,0xc26b9e95,0xbf350517,2
+np.float32,0x42eb9e95,0x36ca00d9,2
+np.float32,0xc2eb9e95,0x36ca00d9,2
+np.float32,0x436b9e95,0xbf800000,2
+np.float32,0xc36b9e95,0xbf800000,2
+np.float32,0x426ec2d4,0xbf800000,2
+np.float32,0xc26ec2d4,0xbf800000,2
+np.float32,0x42eec2d4,0x3f800000,2
+np.float32,0xc2eec2d4,0x3f800000,2
+np.float32,0x436ec2d4,0x3f800000,2
+np.float32,0xc36ec2d4,0x3f800000,2
+np.float32,0x4271e713,0xbf3504f5,2
+np.float32,0xc271e713,0xbf3504f5,2
+np.float32,0x42f1e713,0x34b10321,2
+np.float32,0xc2f1e713,0x34b10321,2
+np.float32,0x4371e713,0xbf800000,2
+np.float32,0xc371e713,0xbf800000,2
+np.float32,0x42750b53,0x360a6748,2
+np.float32,0xc2750b53,0x360a6748,2
+np.float32,0x42f50b53,0xbf800000,2
+np.float32,0xc2f50b53,0xbf800000,2
+np.float32,0x43750b53,0x3f800000,2
+np.float32,0xc3750b53,0x3f800000,2
+np.float32,0x42782f92,0x3f3504f9,2
+np.float32,0xc2782f92,0x3f3504f9,2
+np.float32,0x42f82f92,0x357ef616,2
+np.float32,0xc2f82f92,0x357ef616,2
+np.float32,0x43782f92,0xbf800000,2
+np.float32,0xc3782f92,0xbf800000,2
+np.float32,0x427b53d2,0x3f800000,2
+np.float32,0xc27b53d2,0x3f800000,2
+np.float32,0x42fb53d2,0x3f800000,2
+np.float32,0xc2fb53d2,0x3f800000,2
+np.float32,0x437b53d2,0x3f800000,2
+np.float32,0xc37b53d2,0x3f800000,2
+np.float32,0x427e7811,0x3f3504e6,2
+np.float32,0xc27e7811,0x3f3504e6,2
+np.float32,0x42fe7811,0xb6159b6f,2
+np.float32,0xc2fe7811,0xb6159b6f,2
+np.float32,0x437e7811,0xbf800000,2
+np.float32,0xc37e7811,0xbf800000,2
+np.float32,0x4280ce28,0x34fdd672,2
+np.float32,0xc280ce28,0x34fdd672,2
+np.float32,0x4300ce28,0xbf800000,2
+np.float32,0xc300ce28,0xbf800000,2
+np.float32,0x4380ce28,0x3f800000,2
+np.float32,0xc380ce28,0x3f800000,2
+np.float32,0x42826048,0xbf350508,2
+np.float32,0xc2826048,0xbf350508,2
+np.float32,0x43026048,0x366b7958,2
+np.float32,0xc3026048,0x366b7958,2
+np.float32,0x43826048,0xbf800000,2
+np.float32,0xc3826048,0xbf800000,2
+np.float32,0x4283f268,0xbf800000,2
+np.float32,0xc283f268,0xbf800000,2
+np.float32,0x4303f268,0x3f800000,2
+np.float32,0xc303f268,0x3f800000,2
+np.float32,0x4383f268,0x3f800000,2
+np.float32,0xc383f268,0x3f800000,2
+np.float32,0x42858487,0xbf350504,2
+np.float32,0xc2858487,0xbf350504,2
+np.float32,0x43058487,0x363ea8be,2
+np.float32,0xc3058487,0x363ea8be,2
+np.float32,0x43858487,0xbf800000,2
+np.float32,0xc3858487,0xbf800000,2
+np.float32,0x428716a7,0x35588c6d,2
+np.float32,0xc28716a7,0x35588c6d,2
+np.float32,0x430716a7,0xbf800000,2
+np.float32,0xc30716a7,0xbf800000,2
+np.float32,0x438716a7,0x3f800000,2
+np.float32,0xc38716a7,0x3f800000,2
+np.float32,0x4288a8c7,0x3f350517,2
+np.float32,0xc288a8c7,0x3f350517,2
+np.float32,0x4308a8c7,0x36cb9a96,2
+np.float32,0xc308a8c7,0x36cb9a96,2
+np.float32,0x4388a8c7,0xbf800000,2
+np.float32,0xc388a8c7,0xbf800000,2
+np.float32,0x428a3ae7,0x3f800000,2
+np.float32,0xc28a3ae7,0x3f800000,2
+np.float32,0x430a3ae7,0x3f800000,2
+np.float32,0xc30a3ae7,0x3f800000,2
+np.float32,0x438a3ae7,0x3f800000,2
+np.float32,0xc38a3ae7,0x3f800000,2
+np.float32,0x428bcd06,0x3f3504f5,2
+np.float32,0xc28bcd06,0x3f3504f5,2
+np.float32,0x430bcd06,0x3497675b,2
+np.float32,0xc30bcd06,0x3497675b,2
+np.float32,0x438bcd06,0xbf800000,2
+np.float32,0xc38bcd06,0xbf800000,2
+np.float32,0x428d5f26,0xb60c0105,2
+np.float32,0xc28d5f26,0xb60c0105,2
+np.float32,0x430d5f26,0xbf800000,2
+np.float32,0xc30d5f26,0xbf800000,2
+np.float32,0x438d5f26,0x3f800000,2
+np.float32,0xc38d5f26,0x3f800000,2
+np.float32,0x428ef146,0xbf350526,2
+np.float32,0xc28ef146,0xbf350526,2
+np.float32,0x430ef146,0x3710bc40,2
+np.float32,0xc30ef146,0x3710bc40,2
+np.float32,0x438ef146,0xbf800000,2
+np.float32,0xc38ef146,0xbf800000,2
+np.float32,0x42908365,0xbf800000,2
+np.float32,0xc2908365,0xbf800000,2
+np.float32,0x43108365,0x3f800000,2
+np.float32,0xc3108365,0x3f800000,2
+np.float32,0x43908365,0x3f800000,2
+np.float32,0xc3908365,0x3f800000,2
+np.float32,0x42921585,0xbf3504e6,2
+np.float32,0xc2921585,0xbf3504e6,2
+np.float32,0x43121585,0xb618cee8,2
+np.float32,0xc3121585,0xb618cee8,2
+np.float32,0x43921585,0xbf800000,2
+np.float32,0xc3921585,0xbf800000,2
+np.float32,0x4293a7a5,0x3661deee,2
+np.float32,0xc293a7a5,0x3661deee,2
+np.float32,0x4313a7a5,0xbf800000,2
+np.float32,0xc313a7a5,0xbf800000,2
+np.float32,0x4393a7a5,0x3f800000,2
+np.float32,0xc393a7a5,0x3f800000,2
+np.float32,0x429539c5,0x3f350536,2
+np.float32,0xc29539c5,0x3f350536,2
+np.float32,0x431539c5,0x373bab34,2
+np.float32,0xc31539c5,0x373bab34,2
+np.float32,0x439539c5,0xbf800000,2
+np.float32,0xc39539c5,0xbf800000,2
+np.float32,0x4296cbe4,0x3f800000,2
+np.float32,0xc296cbe4,0x3f800000,2
+np.float32,0x4316cbe4,0x3f800000,2
+np.float32,0xc316cbe4,0x3f800000,2
+np.float32,0x4396cbe4,0x3f800000,2
+np.float32,0xc396cbe4,0x3f800000,2
+np.float32,0x42985e04,0x3f3504d7,2
+np.float32,0xc2985e04,0x3f3504d7,2
+np.float32,0x43185e04,0xb6a2455d,2
+np.float32,0xc3185e04,0xb6a2455d,2
+np.float32,0x43985e04,0xbf800000,2
+np.float32,0xc3985e04,0xbf800000,2
+np.float32,0x4299f024,0xb69bde6c,2
+np.float32,0xc299f024,0xb69bde6c,2
+np.float32,0x4319f024,0xbf800000,2
+np.float32,0xc319f024,0xbf800000,2
+np.float32,0x4399f024,0x3f800000,2
+np.float32,0xc399f024,0x3f800000,2
+np.float32,0x429b8243,0xbf3504ea,2
+np.float32,0xc29b8243,0xbf3504ea,2
+np.float32,0x431b8243,0xb5cb2eb8,2
+np.float32,0xc31b8243,0xb5cb2eb8,2
+np.float32,0x439b8243,0xbf800000,2
+np.float32,0xc39b8243,0xbf800000,2
+np.float32,0x435b2047,0x3f3504c1,2
+np.float32,0x42a038a2,0xb5e4ca7e,2
+np.float32,0x432038a2,0xbf800000,2
+np.float32,0x4345eb9b,0xbf800000,2
+np.float32,0x42c5eb9b,0xb5de638c,2
+np.float32,0x42eb9e94,0xb5d7fc9b,2
+np.float32,0x4350ea79,0x3631dadb,2
+np.float32,0x42dbe957,0xbf800000,2
+np.float32,0x425be957,0xb505522a,2
+np.float32,0x435be957,0x3f800000,2
+np.float32,0x46027eb2,0x3e7d94c9,2
+np.float32,0x4477baed,0xbe7f1824,2
+np.float32,0x454b8024,0x3e7f5268,2
+np.float32,0x455d2c09,0x3e7f40cb,2
+np.float32,0x4768d3de,0xba14b4af,2
+np.float32,0x46c1e7cd,0x3e7fb102,2
+np.float32,0x44a52949,0xbe7dc9d5,2
+np.float32,0x4454633a,0x3e7dbc7d,2
+np.float32,0x4689810b,0x3e7eb02b,2
+np.float32,0x473473cd,0xbe7eef6f,2
+np.float32,0x44a5193f,0x3e7e1b1f,2
+np.float32,0x46004b36,0x3e7dac59,2
+np.float32,0x467f604b,0x3d7ffd3a,2
+np.float32,0x45ea1805,0x3dffd2e0,2
+np.float32,0x457b6af3,0x3dff7831,2
+np.float32,0x44996159,0xbe7d85f4,2
+np.float32,0x47883553,0xbb80584e,2
+np.float32,0x44e19f0c,0xbdffcfe6,2
+np.float32,0x472b3bf6,0xbe7f7a82,2
+np.float32,0x4600bb4e,0x3a135e33,2
+np.float32,0x449f4556,0x3e7e42e5,2
+np.float32,0x474e9420,0x3dff77b2,2
+np.float32,0x45cbdb23,0x3dff7240,2
+np.float32,0x44222747,0x3dffb039,2
+np.float32,0x4772e419,0xbdff74b8,2
+np.float64,0x1,0x3ff0000000000000,1
+np.float64,0x8000000000000001,0x3ff0000000000000,1
+np.float64,0x10000000000000,0x3ff0000000000000,1
+np.float64,0x8010000000000000,0x3ff0000000000000,1
+np.float64,0x7fefffffffffffff,0xbfefffe62ecfab75,1
+np.float64,0xffefffffffffffff,0xbfefffe62ecfab75,1
+np.float64,0x7ff0000000000000,0xfff8000000000000,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfc28bd9dd2517b4,0x3fefaa28ba13a702,1
+np.float64,0x3fb673c62e2ce790,0x3fefe083847a717f,1
+np.float64,0xbfe3e1dac7e7c3b6,0x3fea0500ba099f3a,1
+np.float64,0xbfbe462caa3c8c58,0x3fefc6c8b9c1c87c,1
+np.float64,0xbfb9353576326a68,0x3fefd8513e50e6b1,1
+np.float64,0xbfc05e798520bcf4,0x3fefbd1ad81cf089,1
+np.float64,0xbfe3ca3be2e79478,0x3fea12b995ea6574,1
+np.float64,0xbfde875d46bd0eba,0x3fec6d888662a824,1
+np.float64,0x3fafc4e02c3f89c0,0x3feff03c34bffd69,1
+np.float64,0xbf98855848310ac0,0x3feffda6c1588bdb,1
+np.float64,0x3fe66c51186cd8a2,0x3fe875c61c630ecb,1
+np.float64,0xbfedff1c3b7bfe38,0x3fe2f0c8c9e8fa39,1
+np.float64,0x3fd6082267ac1044,0x3fee1f6023695050,1
+np.float64,0xbfe78449b06f0894,0x3fe7bda2b223850e,1
+np.float64,0x3feedb8e63fdb71c,0x3fe23d5dfd2dd33f,1
+np.float64,0xbfc0a9de3d2153bc,0x3fefbaadf5e5285e,1
+np.float64,0x3fc04c67432098d0,0x3fefbdae07b7de8d,1
+np.float64,0xbfeeef84c4fddf0a,0x3fe22cf37f309d88,1
+np.float64,0x3fc04bb025209760,0x3fefbdb3d7d34ecf,1
+np.float64,0x3fd6b84d48ad709c,0x3fee013403da6e2a,1
+np.float64,0x3fec1ae25d7835c4,0x3fe46e62195cf274,1
+np.float64,0xbfdc6fdf9bb8dfc0,0x3fece48dc78bbb2e,1
+np.float64,0x3fb4db2c9229b660,0x3fefe4d42f79bf49,1
+np.float64,0xbfc0ed698521dad4,0x3fefb8785ea658c9,1
+np.float64,0xbfee82772b7d04ee,0x3fe2864a80efe8e9,1
+np.float64,0x3fd575b664aaeb6c,0x3fee37c669a12879,1
+np.float64,0x3fe4afb1c5e95f64,0x3fe98b177194439c,1
+np.float64,0x3fd93962f9b272c4,0x3fed8bef61876294,1
+np.float64,0x3fd97ae025b2f5c0,0x3fed7f4cfbf4d300,1
+np.float64,0xbfd9afdb1bb35fb6,0x3fed74fdc44dabb1,1
+np.float64,0x3f8ae65e3035cc80,0x3fefff4b1a0ea62b,1
+np.float64,0xbfe7e58664efcb0d,0x3fe77c02a1cbb670,1
+np.float64,0x3fe5f68b37ebed16,0x3fe8c10f849a5d4d,1
+np.float64,0x3fd9137d61b226fc,0x3fed9330eb4815a1,1
+np.float64,0x3fc146d019228da0,0x3fefb57e2d4d52f8,1
+np.float64,0xbfda6036edb4c06e,0x3fed521b2b578679,1
+np.float64,0xbfe78ddfb0ef1bc0,0x3fe7b734319a77e4,1
+np.float64,0x3fe0877823610ef0,0x3febd33a993dd786,1
+np.float64,0x3fbc61af2e38c360,0x3fefcdb4f889756d,1
+np.float64,0x3fd4dcdca4a9b9b8,0x3fee50962ffea5ae,1
+np.float64,0xbfe03cb29f607965,0x3febf7dbf640a75a,1
+np.float64,0xbfc81de407303bc8,0x3fef6f066cef64bc,1
+np.float64,0x3fd8dea42db1bd48,0x3fed9d3e00dbe0b3,1
+np.float64,0x3feac75e94f58ebe,0x3fe56f1f47f97896,1
+np.float64,0x3fb3a1ea6e2743d0,0x3fefe7ec1247cdaa,1
+np.float64,0x3fd695c0f4ad2b80,0x3fee0730bd40883d,1
+np.float64,0xbfd2c631f5a58c64,0x3feea20cbd1105d7,1
+np.float64,0xbfe978a8e1f2f152,0x3fe663014d40ad7a,1
+np.float64,0x3fd8b6b76ab16d70,0x3feda4c879aacc19,1
+np.float64,0x3feaafd30e755fa6,0x3fe5809514c28453,1
+np.float64,0x3fe1e37dc263c6fc,0x3feb20f9ad1f3f5c,1
+np.float64,0x3fd0ec7c24a1d8f8,0x3feee34048f43b75,1
+np.float64,0xbfe3881cbf67103a,0x3fea38d7886e6f53,1
+np.float64,0xbfd7023957ae0472,0x3fedf4471c765a1c,1
+np.float64,0xbfebc51c4ef78a38,0x3fe4b01c424e297b,1
+np.float64,0xbfe20a93eae41528,0x3feb0c2aa321d2e0,1
+np.float64,0x3fef39be867e737e,0x3fe1efaba9164d27,1
+np.float64,0x3fe8ea9576f1d52a,0x3fe6c7a8826ce1be,1
+np.float64,0x3fea921d91f5243c,0x3fe5968c6cf78963,1
+np.float64,0x3fd7ee5d31afdcbc,0x3fedc9f19d43fe61,1
+np.float64,0xbfe3ed581767dab0,0x3fe9fe4ee2f2b1cd,1
+np.float64,0xbfc40923d5281248,0x3fef9bd8ee9f6e68,1
+np.float64,0x3fe411a834682350,0x3fe9e9103854f057,1
+np.float64,0xbfedf6ccdf7bed9a,0x3fe2f77ad6543246,1
+np.float64,0xbfe8788a44f0f114,0x3fe7172f3aa0c742,1
+np.float64,0xbfce728f173ce520,0x3fef1954083bea04,1
+np.float64,0xbfd64dd0acac9ba2,0x3fee138c3293c246,1
+np.float64,0xbfe00669f5600cd4,0x3fec121443945350,1
+np.float64,0xbfe7152ba2ee2a58,0x3fe8079465d09846,1
+np.float64,0x3fe8654d8f70ca9c,0x3fe7247c94f09596,1
+np.float64,0x3fea68045cf4d008,0x3fe5b58cfe81a243,1
+np.float64,0xbfcd4779073a8ef4,0x3fef2a9d78153fa5,1
+np.float64,0xbfdb4456e5b688ae,0x3fed23b11614203f,1
+np.float64,0x3fcb5d59cd36bab0,0x3fef45818216a515,1
+np.float64,0xbfd914ff5ab229fe,0x3fed92e73746fea8,1
+np.float64,0x3fe4d211db69a424,0x3fe97653f433d15f,1
+np.float64,0xbfdbbb9224b77724,0x3fed0adb593dde80,1
+np.float64,0x3fd424ceafa8499c,0x3fee6d9124795d33,1
+np.float64,0x3feb5968f976b2d2,0x3fe501d116efbf54,1
+np.float64,0x3fee7d92a2fcfb26,0x3fe28a479b6a9dcf,1
+np.float64,0x3fc308e9972611d0,0x3fefa595f4df0c89,1
+np.float64,0x3fda79cd77b4f39c,0x3fed4cf8e69ba1f8,1
+np.float64,0x3fcbcf42d5379e88,0x3fef3f6a6a77c187,1
+np.float64,0x3fe13a1da662743c,0x3feb79504faea888,1
+np.float64,0xbfee4435f07c886c,0x3fe2b8ea98d2fc29,1
+np.float64,0x3fd65d68ccacbad0,0x3fee10e1ac7ada89,1
+np.float64,0x3fef2f89bb7e5f14,0x3fe1f81e882cc3f4,1
+np.float64,0xbfef0a7769fe14ef,0x3fe216bf384fc646,1
+np.float64,0x3fc065277320ca50,0x3fefbce44835c193,1
+np.float64,0x3fe9c1a74d73834e,0x3fe62e9ee0c2f2bf,1
+np.float64,0x3fd9d96e5db3b2dc,0x3fed6cd88eb51f6a,1
+np.float64,0x3fe02bf1c56057e4,0x3febfffc24b5a7ba,1
+np.float64,0xbfd6814350ad0286,0x3fee0ab9ad318b84,1
+np.float64,0x3f9fcbec583f97c0,0x3feffc0d0f1d8e75,1
+np.float64,0x3fe23524e5e46a4a,0x3feaf55372949a06,1
+np.float64,0xbfbdc95f6a3b92c0,0x3fefc89c21d44995,1
+np.float64,0x3fe961bb9cf2c378,0x3fe6735d6e1cca58,1
+np.float64,0xbfe8f1c370f1e387,0x3fe6c29d1be8bee9,1
+np.float64,0x3fd880d43ab101a8,0x3fedaee3c7ccfc96,1
+np.float64,0xbfedb37005fb66e0,0x3fe32d91ef2e3bd3,1
+np.float64,0xfdce287bfb9c5,0x3ff0000000000000,1
+np.float64,0x9aa1b9e735437,0x3ff0000000000000,1
+np.float64,0x6beac6e0d7d59,0x3ff0000000000000,1
+np.float64,0x47457aae8e8b0,0x3ff0000000000000,1
+np.float64,0x35ff13b46bfe3,0x3ff0000000000000,1
+np.float64,0xb9c0c82b73819,0x3ff0000000000000,1
+np.float64,0x1a8dc21a351b9,0x3ff0000000000000,1
+np.float64,0x7e87ef6afd0ff,0x3ff0000000000000,1
+np.float64,0x620a6588c414d,0x3ff0000000000000,1
+np.float64,0x7f366000fe6e,0x3ff0000000000000,1
+np.float64,0x787e39f4f0fc8,0x3ff0000000000000,1
+np.float64,0xf5134f1fea26a,0x3ff0000000000000,1
+np.float64,0xbce700ef79ce0,0x3ff0000000000000,1
+np.float64,0x144d7cc8289b1,0x3ff0000000000000,1
+np.float64,0xb9fbc5b973f79,0x3ff0000000000000,1
+np.float64,0xc3d6292d87ac5,0x3ff0000000000000,1
+np.float64,0xc1084e618210a,0x3ff0000000000000,1
+np.float64,0xb6b9eca56d73e,0x3ff0000000000000,1
+np.float64,0xc7ac4b858f58a,0x3ff0000000000000,1
+np.float64,0x516d75d2a2daf,0x3ff0000000000000,1
+np.float64,0x9dc089d93b811,0x3ff0000000000000,1
+np.float64,0x7b5f2840f6be6,0x3ff0000000000000,1
+np.float64,0x121d3ce8243a9,0x3ff0000000000000,1
+np.float64,0xf0be0337e17c1,0x3ff0000000000000,1
+np.float64,0xff58a5cbfeb15,0x3ff0000000000000,1
+np.float64,0xdaf1d07fb5e3a,0x3ff0000000000000,1
+np.float64,0x61d95382c3b2b,0x3ff0000000000000,1
+np.float64,0xe4df943fc9bf3,0x3ff0000000000000,1
+np.float64,0xf72ac2bdee559,0x3ff0000000000000,1
+np.float64,0x12dafbf625b60,0x3ff0000000000000,1
+np.float64,0xee11d427dc23b,0x3ff0000000000000,1
+np.float64,0xf4f8eb37e9f1e,0x3ff0000000000000,1
+np.float64,0xad7cb5df5af97,0x3ff0000000000000,1
+np.float64,0x59fc9b06b3f94,0x3ff0000000000000,1
+np.float64,0x3c3e65e4787ce,0x3ff0000000000000,1
+np.float64,0xe37bc993c6f79,0x3ff0000000000000,1
+np.float64,0x13bd6330277ad,0x3ff0000000000000,1
+np.float64,0x56cc2800ad986,0x3ff0000000000000,1
+np.float64,0x6203b8fcc4078,0x3ff0000000000000,1
+np.float64,0x75c7c8b8eb8fa,0x3ff0000000000000,1
+np.float64,0x5ebf8e00bd7f2,0x3ff0000000000000,1
+np.float64,0xda81f2f1b503f,0x3ff0000000000000,1
+np.float64,0x6adb17d6d5b64,0x3ff0000000000000,1
+np.float64,0x1ba68eee374d3,0x3ff0000000000000,1
+np.float64,0xeecf6fbbdd9ee,0x3ff0000000000000,1
+np.float64,0x24d6dd8e49add,0x3ff0000000000000,1
+np.float64,0xdf7cb81bbef97,0x3ff0000000000000,1
+np.float64,0xafd7be1b5faf8,0x3ff0000000000000,1
+np.float64,0xdb90ca35b721a,0x3ff0000000000000,1
+np.float64,0xa72903a14e521,0x3ff0000000000000,1
+np.float64,0x14533ee028a7,0x3ff0000000000000,1
+np.float64,0x7951540cf2a2b,0x3ff0000000000000,1
+np.float64,0x22882be045106,0x3ff0000000000000,1
+np.float64,0x136270d626c4f,0x3ff0000000000000,1
+np.float64,0x6a0f5744d41ec,0x3ff0000000000000,1
+np.float64,0x21e0d1aa43c1b,0x3ff0000000000000,1
+np.float64,0xee544155dca88,0x3ff0000000000000,1
+np.float64,0xcbe8aac797d16,0x3ff0000000000000,1
+np.float64,0x6c065e80d80e,0x3ff0000000000000,1
+np.float64,0xe57f0411cafe1,0x3ff0000000000000,1
+np.float64,0xdec3a6bdbd875,0x3ff0000000000000,1
+np.float64,0xf4d23a0fe9a48,0x3ff0000000000000,1
+np.float64,0xda77ef47b4efe,0x3ff0000000000000,1
+np.float64,0x8c405c9b1880c,0x3ff0000000000000,1
+np.float64,0x4eced5149d9db,0x3ff0000000000000,1
+np.float64,0x16b6552c2d6cc,0x3ff0000000000000,1
+np.float64,0x6fbc262cdf785,0x3ff0000000000000,1
+np.float64,0x628c3844c5188,0x3ff0000000000000,1
+np.float64,0x6d827d2cdb050,0x3ff0000000000000,1
+np.float64,0xd1bfdf29a37fc,0x3ff0000000000000,1
+np.float64,0xd85400fdb0a80,0x3ff0000000000000,1
+np.float64,0xcc420b2d98842,0x3ff0000000000000,1
+np.float64,0xac41d21b5883b,0x3ff0000000000000,1
+np.float64,0x432f18d4865e4,0x3ff0000000000000,1
+np.float64,0xe7e89a1bcfd14,0x3ff0000000000000,1
+np.float64,0x9b1141d536228,0x3ff0000000000000,1
+np.float64,0x6805f662d00bf,0x3ff0000000000000,1
+np.float64,0xc76552358ecab,0x3ff0000000000000,1
+np.float64,0x4ae8ffee95d21,0x3ff0000000000000,1
+np.float64,0x4396c096872d9,0x3ff0000000000000,1
+np.float64,0x6e8e55d4dd1cb,0x3ff0000000000000,1
+np.float64,0x4c2e33dc985c7,0x3ff0000000000000,1
+np.float64,0xbce814a579d03,0x3ff0000000000000,1
+np.float64,0x911681b5222d0,0x3ff0000000000000,1
+np.float64,0x5f90a4b2bf215,0x3ff0000000000000,1
+np.float64,0x26f76be84deee,0x3ff0000000000000,1
+np.float64,0xb2f7536165eeb,0x3ff0000000000000,1
+np.float64,0x4de4e6089bc9d,0x3ff0000000000000,1
+np.float64,0xf2e016afe5c03,0x3ff0000000000000,1
+np.float64,0xb9b7b949736f7,0x3ff0000000000000,1
+np.float64,0x3363ea1866c7e,0x3ff0000000000000,1
+np.float64,0xd1a3bd6ba3478,0x3ff0000000000000,1
+np.float64,0xae89f3595d13f,0x3ff0000000000000,1
+np.float64,0xddbd9601bb7c,0x3ff0000000000000,1
+np.float64,0x5de41a06bbc84,0x3ff0000000000000,1
+np.float64,0xfd58c86dfab19,0x3ff0000000000000,1
+np.float64,0x24922e8c49247,0x3ff0000000000000,1
+np.float64,0xcda040339b408,0x3ff0000000000000,1
+np.float64,0x5fe500b2bfca1,0x3ff0000000000000,1
+np.float64,0x9214abb924296,0x3ff0000000000000,1
+np.float64,0x800609fe0a2c13fd,0x3ff0000000000000,1
+np.float64,0x800c7c6fe518f8e0,0x3ff0000000000000,1
+np.float64,0x800a1a9491b4352a,0x3ff0000000000000,1
+np.float64,0x800b45e0e8968bc2,0x3ff0000000000000,1
+np.float64,0x8008497e57d092fd,0x3ff0000000000000,1
+np.float64,0x800b9c0af0173816,0x3ff0000000000000,1
+np.float64,0x800194cccb43299a,0x3ff0000000000000,1
+np.float64,0x8001c91ef183923f,0x3ff0000000000000,1
+np.float64,0x800f25b5ccde4b6c,0x3ff0000000000000,1
+np.float64,0x800ce63ccc79cc7a,0x3ff0000000000000,1
+np.float64,0x800d8fb2e83b1f66,0x3ff0000000000000,1
+np.float64,0x80083cd06f7079a1,0x3ff0000000000000,1
+np.float64,0x800823598e9046b3,0x3ff0000000000000,1
+np.float64,0x8001c1319de38264,0x3ff0000000000000,1
+np.float64,0x800f2b68543e56d1,0x3ff0000000000000,1
+np.float64,0x80022a4f4364549f,0x3ff0000000000000,1
+np.float64,0x800f51badf7ea376,0x3ff0000000000000,1
+np.float64,0x8003fbf31e27f7e7,0x3ff0000000000000,1
+np.float64,0x800d4c00e2fa9802,0x3ff0000000000000,1
+np.float64,0x800023b974804774,0x3ff0000000000000,1
+np.float64,0x800860778990c0ef,0x3ff0000000000000,1
+np.float64,0x800a15c241542b85,0x3ff0000000000000,1
+np.float64,0x8003097d9dc612fc,0x3ff0000000000000,1
+np.float64,0x800d77d8541aefb1,0x3ff0000000000000,1
+np.float64,0x80093804ab52700a,0x3ff0000000000000,1
+np.float64,0x800d2b3bfd7a5678,0x3ff0000000000000,1
+np.float64,0x800da24bcd5b4498,0x3ff0000000000000,1
+np.float64,0x8006eee1c28dddc4,0x3ff0000000000000,1
+np.float64,0x80005137fa40a271,0x3ff0000000000000,1
+np.float64,0x8007a3fbc22f47f8,0x3ff0000000000000,1
+np.float64,0x800dcd97071b9b2e,0x3ff0000000000000,1
+np.float64,0x80065b36048cb66d,0x3ff0000000000000,1
+np.float64,0x8004206ba72840d8,0x3ff0000000000000,1
+np.float64,0x8007e82b98cfd058,0x3ff0000000000000,1
+np.float64,0x8001a116ed23422f,0x3ff0000000000000,1
+np.float64,0x800c69e9ff18d3d4,0x3ff0000000000000,1
+np.float64,0x8003843688e7086e,0x3ff0000000000000,1
+np.float64,0x800335e3b8866bc8,0x3ff0000000000000,1
+np.float64,0x800e3308f0bc6612,0x3ff0000000000000,1
+np.float64,0x8002a9ec55c553d9,0x3ff0000000000000,1
+np.float64,0x80001c2084e03842,0x3ff0000000000000,1
+np.float64,0x800bc2bbd8d78578,0x3ff0000000000000,1
+np.float64,0x800ae6bcc555cd7a,0x3ff0000000000000,1
+np.float64,0x80083f7a13907ef5,0x3ff0000000000000,1
+np.float64,0x800d83ed76db07db,0x3ff0000000000000,1
+np.float64,0x800a12251974244b,0x3ff0000000000000,1
+np.float64,0x800a69c95714d393,0x3ff0000000000000,1
+np.float64,0x800cd5a85639ab51,0x3ff0000000000000,1
+np.float64,0x800e0e1837bc1c31,0x3ff0000000000000,1
+np.float64,0x8007b5ca39ef6b95,0x3ff0000000000000,1
+np.float64,0x800cf961cad9f2c4,0x3ff0000000000000,1
+np.float64,0x80066e8fc14cdd20,0x3ff0000000000000,1
+np.float64,0x8001cb8c7b43971a,0x3ff0000000000000,1
+np.float64,0x800002df68a005c0,0x3ff0000000000000,1
+np.float64,0x8003e6681567ccd1,0x3ff0000000000000,1
+np.float64,0x800b039126b60723,0x3ff0000000000000,1
+np.float64,0x800d2e1b663a5c37,0x3ff0000000000000,1
+np.float64,0x800188b3e2a31169,0x3ff0000000000000,1
+np.float64,0x8001f272e943e4e7,0x3ff0000000000000,1
+np.float64,0x800d7f53607afea7,0x3ff0000000000000,1
+np.float64,0x80092cafa4f25960,0x3ff0000000000000,1
+np.float64,0x800fc009f07f8014,0x3ff0000000000000,1
+np.float64,0x8003da896507b514,0x3ff0000000000000,1
+np.float64,0x800d4d1b4c3a9a37,0x3ff0000000000000,1
+np.float64,0x8007a835894f506c,0x3ff0000000000000,1
+np.float64,0x80057ba0522af741,0x3ff0000000000000,1
+np.float64,0x8009b7054b336e0b,0x3ff0000000000000,1
+np.float64,0x800b2c6c125658d9,0x3ff0000000000000,1
+np.float64,0x8008b1840ad16308,0x3ff0000000000000,1
+np.float64,0x8007ea0e3befd41d,0x3ff0000000000000,1
+np.float64,0x800dd658683bacb1,0x3ff0000000000000,1
+np.float64,0x8008cda48fd19b49,0x3ff0000000000000,1
+np.float64,0x8003acca14c75995,0x3ff0000000000000,1
+np.float64,0x8008bd152d717a2b,0x3ff0000000000000,1
+np.float64,0x80010d1ea3621a3e,0x3ff0000000000000,1
+np.float64,0x800130b78b826170,0x3ff0000000000000,1
+np.float64,0x8002cf3a46e59e75,0x3ff0000000000000,1
+np.float64,0x800b76e7fa76edd0,0x3ff0000000000000,1
+np.float64,0x800e065fe1dc0cc0,0x3ff0000000000000,1
+np.float64,0x8000dd527ea1baa6,0x3ff0000000000000,1
+np.float64,0x80032cb234665965,0x3ff0000000000000,1
+np.float64,0x800affc1acb5ff84,0x3ff0000000000000,1
+np.float64,0x80074be23fee97c5,0x3ff0000000000000,1
+np.float64,0x8004f83eafc9f07e,0x3ff0000000000000,1
+np.float64,0x800b02a115560543,0x3ff0000000000000,1
+np.float64,0x800b324a55766495,0x3ff0000000000000,1
+np.float64,0x800ffbcfd69ff7a0,0x3ff0000000000000,1
+np.float64,0x800830bc7b906179,0x3ff0000000000000,1
+np.float64,0x800cbafe383975fd,0x3ff0000000000000,1
+np.float64,0x8001ee42bfe3dc86,0x3ff0000000000000,1
+np.float64,0x8005b00fdc0b6020,0x3ff0000000000000,1
+np.float64,0x8005e7addd0bcf5c,0x3ff0000000000000,1
+np.float64,0x8001ae4cb0635c9a,0x3ff0000000000000,1
+np.float64,0x80098a9941131533,0x3ff0000000000000,1
+np.float64,0x800334c929466993,0x3ff0000000000000,1
+np.float64,0x8009568239d2ad05,0x3ff0000000000000,1
+np.float64,0x800f0639935e0c73,0x3ff0000000000000,1
+np.float64,0x800cebce7499d79d,0x3ff0000000000000,1
+np.float64,0x800482ee4c2905dd,0x3ff0000000000000,1
+np.float64,0x8007b7bd9e2f6f7c,0x3ff0000000000000,1
+np.float64,0x3fe654469f2ca88d,0x3fe8853f6c01ffb3,1
+np.float64,0x3feb4d7297369ae5,0x3fe50ad5bb621408,1
+np.float64,0x3feef53ba43dea77,0x3fe2283f356f8658,1
+np.float64,0x3fddf564eabbeaca,0x3fec8ec0e0dead9c,1
+np.float64,0x3fd3a69078274d21,0x3fee80e05c320000,1
+np.float64,0x3fecdafe5d39b5fd,0x3fe3d91a5d440fd9,1
+np.float64,0x3fd93286bc32650d,0x3fed8d40696cd10e,1
+np.float64,0x3fc0d34eb821a69d,0x3fefb954023d4284,1
+np.float64,0x3fc7b4b9a02f6973,0x3fef73e8739787ce,1
+np.float64,0x3fe08c839a611907,0x3febd0bc6f5641cd,1
+np.float64,0x3fb3d1758627a2eb,0x3fefe776f6183f96,1
+np.float64,0x3fef93c9ff3f2794,0x3fe1a4d2f622627d,1
+np.float64,0x3fea8d0041351a01,0x3fe59a52a1c78c9e,1
+np.float64,0x3fe3e26a30e7c4d4,0x3fea04ad3e0bbf8d,1
+np.float64,0x3fe5a34c9f6b4699,0x3fe8f57c5ccd1eab,1
+np.float64,0x3fc21ef859243df1,0x3fefae0b68a3a2e7,1
+np.float64,0x3fed7dd585fafbab,0x3fe35860041e5b0d,1
+np.float64,0x3fe5abacf22b575a,0x3fe8f03d8b6ef0f2,1
+np.float64,0x3fe426451f284c8a,0x3fe9dcf21f13205b,1
+np.float64,0x3fc01f6456203ec9,0x3fefbf19e2a8e522,1
+np.float64,0x3fe1cf2772239e4f,0x3feb2bbd645c7697,1
+np.float64,0x3fd18c4ace231896,0x3feecdfdd086c110,1
+np.float64,0x3fe8387d5b7070fb,0x3fe74358f2ec4910,1
+np.float64,0x3fdce51c2239ca38,0x3feccb2ae5459632,1
+np.float64,0x3fe5b0f2e4eb61e6,0x3fe8ecef4dbe4277,1
+np.float64,0x3fe1ceeb08a39dd6,0x3feb2bdd4dcfb3df,1
+np.float64,0x3febc5899d778b13,0x3fe4afc8dd8ad228,1
+np.float64,0x3fe7a47fbe2f48ff,0x3fe7a7fd9b352ea5,1
+np.float64,0x3fe7f74e1fafee9c,0x3fe76feb2755b247,1
+np.float64,0x3fe2bfad04e57f5a,0x3feaa9b46adddaeb,1
+np.float64,0x3fd06a090320d412,0x3feef40c334f8fba,1
+np.float64,0x3fdc97297d392e53,0x3fecdc16a3e22fcb,1
+np.float64,0x3fdc1a3f3838347e,0x3fecf6db2769d404,1
+np.float64,0x3fcca90096395201,0x3fef338156fcd218,1
+np.float64,0x3fed464733fa8c8e,0x3fe38483f0465d91,1
+np.float64,0x3fe7e067d82fc0d0,0x3fe77f7c8c9de896,1
+np.float64,0x3fc014fa0b2029f4,0x3fefbf6d84c933f8,1
+np.float64,0x3fd3bf1524277e2a,0x3fee7d2997b74dec,1
+np.float64,0x3fec153b86782a77,0x3fe472bb5497bb2a,1
+np.float64,0x3fd3e4d9d5a7c9b4,0x3fee776842691902,1
+np.float64,0x3fea6c0e2c74d81c,0x3fe5b2954cb458d9,1
+np.float64,0x3fee8f6a373d1ed4,0x3fe27bb9e348125b,1
+np.float64,0x3fd30c6dd42618dc,0x3fee97d2cab2b0bc,1
+np.float64,0x3fe4f90e6d69f21d,0x3fe95ea3dd4007f2,1
+np.float64,0x3fe271d467e4e3a9,0x3fead470d6d4008b,1
+np.float64,0x3fef2983897e5307,0x3fe1fd1a4debe33b,1
+np.float64,0x3fe980cc83b30199,0x3fe65d2fb8a0eb46,1
+np.float64,0x3fdfdf53db3fbea8,0x3fec1cf95b2a1cc7,1
+np.float64,0x3fe4d5307ba9aa61,0x3fe974701b4156cb,1
+np.float64,0x3fdb4e2345b69c47,0x3fed21aa6c146512,1
+np.float64,0x3fe3f7830327ef06,0x3fe9f85f6c88c2a8,1
+np.float64,0x3fca915fb63522bf,0x3fef502b73a52ecf,1
+np.float64,0x3fe66d3709ecda6e,0x3fe87531d7372d7a,1
+np.float64,0x3fd86000bcb0c001,0x3fedb5018dd684ca,1
+np.float64,0x3fe516e5feea2dcc,0x3fe94c68b111404e,1
+np.float64,0x3fd83c53dd3078a8,0x3fedbb9e5dd9e165,1
+np.float64,0x3fedfeeb673bfdd7,0x3fe2f0f0253c5d5d,1
+np.float64,0x3fe0dc6f9c21b8df,0x3feba8e2452410c2,1
+np.float64,0x3fbe154d643c2a9b,0x3fefc780a9357457,1
+np.float64,0x3fe5f63986abec73,0x3fe8c1434951a40a,1
+np.float64,0x3fbce0e50839c1ca,0x3fefcbeeaa27de75,1
+np.float64,0x3fd7ef5c5c2fdeb9,0x3fedc9c3022495b3,1
+np.float64,0x3fc1073914220e72,0x3fefb79de80fc0fd,1
+np.float64,0x3fe1a93c3d235278,0x3feb3fb21f86ac67,1
+np.float64,0x3fe321ee53e643dd,0x3fea72e2999f1e22,1
+np.float64,0x3fa881578c3102af,0x3feff69e6e51e0d6,1
+np.float64,0x3fd313482a262690,0x3fee96d161199495,1
+np.float64,0x3fe7272cd6ae4e5a,0x3fe7fbacbd0d8f43,1
+np.float64,0x3fd6cf4015ad9e80,0x3fedfd3513d544b8,1
+np.float64,0x3fc67b7e6d2cf6fd,0x3fef81f5c16923a4,1
+np.float64,0x3fa1999c14233338,0x3feffb2913a14184,1
+np.float64,0x3fc74eb8dd2e9d72,0x3fef78909a138e3c,1
+np.float64,0x3fc0b9274921724f,0x3fefba2ebd5f3e1c,1
+np.float64,0x3fd53fa156aa7f43,0x3fee40a18e952e88,1
+np.float64,0x3feaccbca4b59979,0x3fe56b22b33eb713,1
+np.float64,0x3fe6a01e3a2d403c,0x3fe8543fbd820ecc,1
+np.float64,0x3fd392a869a72551,0x3fee83e0ffe0e8de,1
+np.float64,0x3fe44d8928689b12,0x3fe9c5bf3c8fffdb,1
+np.float64,0x3fca3f209f347e41,0x3fef5461b6fa0924,1
+np.float64,0x3fee9e84b07d3d09,0x3fe26f638f733549,1
+np.float64,0x3faf49acb03e9359,0x3feff0b583cd8c48,1
+np.float64,0x3fea874b2af50e96,0x3fe59e882fa6febf,1
+np.float64,0x3fc50b72772a16e5,0x3fef918777dc41be,1
+np.float64,0x3fe861d1d4f0c3a4,0x3fe726e44d9d42c2,1
+np.float64,0x3fcadd2e2535ba5c,0x3fef4c3e2b56da38,1
+np.float64,0x3fea59c29cb4b385,0x3fe5c0043e586439,1
+np.float64,0x3fc1ffef0d23ffde,0x3fefaf22be452d13,1
+np.float64,0x3fc2d8dbc125b1b8,0x3fefa75b646d8e4e,1
+np.float64,0x3fd66c6471acd8c9,0x3fee0e5038b895c0,1
+np.float64,0x3fd0854adfa10a96,0x3feef0945bcc5c99,1
+np.float64,0x3feaac7076f558e1,0x3fe58316c23a82ad,1
+np.float64,0x3fdda49db3bb493b,0x3feca0e347c0ad6f,1
+np.float64,0x3fe43a539de874a7,0x3fe9d11d722d4822,1
+np.float64,0x3feeee3ebbfddc7d,0x3fe22dffd251e9af,1
+np.float64,0x3f8ee2c5b03dc58b,0x3fefff11855a7b6c,1
+np.float64,0x3fcd7107c63ae210,0x3fef2840bb55ca52,1
+np.float64,0x3f8d950d203b2a1a,0x3fefff253a08e40e,1
+np.float64,0x3fd40a5e57a814bd,0x3fee71a633c761fc,1
+np.float64,0x3fee836ec83d06de,0x3fe28580975be2fd,1
+np.float64,0x3fd7bbe87f2f77d1,0x3fedd31f661890cc,1
+np.float64,0xbfe05bf138a0b7e2,0x3febe8a000d96e47,1
+np.float64,0xbf88bddd90317bc0,0x3fefff66f6e2ff26,1
+np.float64,0xbfdc9cbb12393976,0x3fecdae2982335db,1
+np.float64,0xbfd85b4eccb0b69e,0x3fedb5e0dd87f702,1
+np.float64,0xbfe5c326cb2b864e,0x3fe8e180f525fa12,1
+np.float64,0xbfe381a0e4a70342,0x3fea3c8e5e3ab78e,1
+np.float64,0xbfe58d892c2b1b12,0x3fe9031551617aed,1
+np.float64,0xbfd7f3a52cafe74a,0x3fedc8fa97edd080,1
+np.float64,0xbfef3417bc7e682f,0x3fe1f45989f6a009,1
+np.float64,0xbfddfb8208bbf704,0x3fec8d5fa9970773,1
+np.float64,0xbfdab69bcc356d38,0x3fed40b2f6c347c6,1
+np.float64,0xbfed3f7cf17a7efa,0x3fe389e4ff4d9235,1
+np.float64,0xbfe47675d9a8ecec,0x3fe9ad6829a69e94,1
+np.float64,0xbfd030e2902061c6,0x3feefb3f811e024f,1
+np.float64,0xbfc376ac7226ed58,0x3fefa1798712b37e,1
+np.float64,0xbfdb7e54a0b6fcaa,0x3fed17a974c4bc28,1
+np.float64,0xbfdb7d5d5736faba,0x3fed17dcf31a8d84,1
+np.float64,0xbf876bd6502ed7c0,0x3fefff76dce6232c,1
+np.float64,0xbfd211e6c02423ce,0x3feebba41f0a1764,1
+np.float64,0xbfb443e3962887c8,0x3fefe658953629d4,1
+np.float64,0xbfe81b09e9b03614,0x3fe757882e4fdbae,1
+np.float64,0xbfdcb905d2b9720c,0x3fecd4c22cfe84e5,1
+np.float64,0xbfe3b62d99276c5b,0x3fea1e5520b3098d,1
+np.float64,0xbfbf05b25c3e0b68,0x3fefc3ecc04bca8e,1
+np.float64,0xbfdedc885b3db910,0x3fec59e22feb49f3,1
+np.float64,0xbfe33aa282667545,0x3fea64f2d55ec471,1
+np.float64,0xbfec84745a3908e9,0x3fe41cb3214e7044,1
+np.float64,0xbfddefdff1bbdfc0,0x3fec8fff88d4d0ec,1
+np.float64,0xbfd26ae6aca4d5ce,0x3feeaf208c7fedf6,1
+np.float64,0xbfee010591fc020b,0x3fe2ef3e57211a5e,1
+np.float64,0xbfb8cfddca319fb8,0x3fefd98d8f7918ed,1
+np.float64,0xbfe991648f3322c9,0x3fe6514e54670bae,1
+np.float64,0xbfee63fd087cc7fa,0x3fe29f1bfa3297cc,1
+np.float64,0xbfe1685942a2d0b2,0x3feb617f5f839eee,1
+np.float64,0xbfc6fc2fd62df860,0x3fef7c4698fd58cf,1
+np.float64,0xbfe42723d3a84e48,0x3fe9dc6ef7243e90,1
+np.float64,0xbfc3a7e89d274fd0,0x3fef9f99e3314e77,1
+np.float64,0xbfeb4c9521f6992a,0x3fe50b7c919bc6d8,1
+np.float64,0xbf707b34e020f680,0x3fefffef05e30264,1
+np.float64,0xbfc078478e20f090,0x3fefbc479305d5aa,1
+np.float64,0xbfd494ac4ca92958,0x3fee5c11f1cd8269,1
+np.float64,0xbfdaf888a035f112,0x3fed3346ae600469,1
+np.float64,0xbfa5d8ed502bb1e0,0x3feff88b0f262609,1
+np.float64,0xbfeec0cbfffd8198,0x3fe253543b2371cb,1
+np.float64,0xbfe594b5986b296b,0x3fe8fe9b39fb3940,1
+np.float64,0xbfc8ece7c631d9d0,0x3fef652bd0611ac7,1
+np.float64,0xbfd8ffeca0b1ffda,0x3fed96ebdf9b65cb,1
+np.float64,0xbfba9b221e353648,0x3fefd3cc21e2f15c,1
+np.float64,0xbfca63a52c34c74c,0x3fef52848eb9ed3b,1
+np.float64,0xbfe588e9b06b11d4,0x3fe905f7403e8881,1
+np.float64,0xbfc76f82db2edf04,0x3fef77138fe9bbc2,1
+np.float64,0xbfeeb3f334bd67e6,0x3fe25ddadb1096d6,1
+np.float64,0xbfbf2b64ce3e56c8,0x3fefc35a9555f6df,1
+np.float64,0xbfe9920e4ff3241c,0x3fe650d4ab8f5c42,1
+np.float64,0xbfb4a54c02294a98,0x3fefe55fc85ae5e9,1
+np.float64,0xbfe353b0c766a762,0x3fea56c02d17e4b7,1
+np.float64,0xbfd99961a4b332c4,0x3fed795fcd00dbf9,1
+np.float64,0xbfef191ddabe323c,0x3fe20aa79524f636,1
+np.float64,0xbfb25d060224ba10,0x3fefeaeee5cc8c0b,1
+np.float64,0xbfe6022428ec0448,0x3fe8b9b46e776194,1
+np.float64,0xbfed1a236cba3447,0x3fe3a76bee0d9861,1
+np.float64,0xbfc59671e72b2ce4,0x3fef8bc4daef6f14,1
+np.float64,0xbfdf2711703e4e22,0x3fec4886a8c9ceb5,1
+np.float64,0xbfeb7e207536fc41,0x3fe4e610c783f168,1
+np.float64,0xbfe6cdf5bcad9bec,0x3fe8365f8a59bc81,1
+np.float64,0xbfe55294adaaa52a,0x3fe927b0af5ccd09,1
+np.float64,0xbfdf4a88913e9512,0x3fec4036df58ba74,1
+np.float64,0xbfebb7efe4376fe0,0x3fe4ba276006992d,1
+np.float64,0xbfe09f29cfa13e54,0x3febc77f4f9c95e7,1
+np.float64,0xbfdf8c75653f18ea,0x3fec30ac924e4f46,1
+np.float64,0xbfefd601c7ffac04,0x3fe16d6f21bcb9c1,1
+np.float64,0xbfeae97ff5f5d300,0x3fe555bb5b87efe9,1
+np.float64,0xbfed427f02fa84fe,0x3fe387830db093bc,1
+np.float64,0xbfa33909cc267210,0x3feffa3a1bcb50dd,1
+np.float64,0xbfe9aa4bf5f35498,0x3fe63f6e98f6aa0f,1
+np.float64,0xbfe2d7349b25ae69,0x3fea9caa7c331e7e,1
+np.float64,0xbfcdbb2a3a3b7654,0x3fef2401c9659e4b,1
+np.float64,0xbfc8a90919315214,0x3fef686fe7fc0513,1
+np.float64,0xbfe62a98df2c5532,0x3fe89ff22a02cc6b,1
+np.float64,0xbfdc0f67b3b81ed0,0x3fecf928b637798f,1
+np.float64,0xbfebb32bf6f76658,0x3fe4bdc893c09698,1
+np.float64,0xbfec067996380cf3,0x3fe47e132741db97,1
+np.float64,0xbfd9774e1d32ee9c,0x3fed7ffe1e87c434,1
+np.float64,0xbfef989890bf3131,0x3fe1a0d025c80cf4,1
+np.float64,0xbfe59887e62b3110,0x3fe8fc382a3d4197,1
+np.float64,0xbfdea0a11e3d4142,0x3fec67b987e236ec,1
+np.float64,0xbfe2ec495825d892,0x3fea90efb231602d,1
+np.float64,0xbfb329c5c2265388,0x3fefe90f1b8209c3,1
+np.float64,0xbfdcd2dcd339a5ba,0x3feccf24c60b1478,1
+np.float64,0xbfe537ea18aa6fd4,0x3fe938237e217fe0,1
+np.float64,0xbfe8675ce170ceba,0x3fe723105925ce3a,1
+np.float64,0xbfd70723acae0e48,0x3fedf369ac070e65,1
+np.float64,0xbfea9d8692b53b0d,0x3fe58e1ee42e3fdb,1
+np.float64,0xbfcfeb96653fd72c,0x3fef029770033bdc,1
+np.float64,0xbfcc06c92d380d94,0x3fef3c69797d9b0a,1
+np.float64,0xbfe16b7c4f62d6f8,0x3feb5fdf9f0a9a07,1
+np.float64,0xbfed4d7a473a9af4,0x3fe37ecee27b1eb7,1
+np.float64,0xbfe6a6f6942d4ded,0x3fe84fccdf762b19,1
+np.float64,0xbfda46d867348db0,0x3fed572d928fa657,1
+np.float64,0xbfdbd9482db7b290,0x3fed049b5f907b52,1
+np.float64,0x7fe992ceb933259c,0xbfeb15af92aad70e,1
+np.float64,0x7fe3069204a60d23,0xbfe5eeff454240e9,1
+np.float64,0x7fe729dbf32e53b7,0xbfefe0528a330e4c,1
+np.float64,0x7fec504fb638a09e,0x3fd288e95dbedf65,1
+np.float64,0x7fe1d30167a3a602,0xbfeffc41f946fd02,1
+np.float64,0x7fed7f8ffd3aff1f,0x3fefe68ec604a19d,1
+np.float64,0x7fd2f23635a5e46b,0x3fea63032efbb447,1
+np.float64,0x7fd4c86db1a990da,0x3fdf6b9f7888db5d,1
+np.float64,0x7fe7554db6eeaa9a,0x3fe1b41476861bb0,1
+np.float64,0x7fe34e823ba69d03,0x3fefc435532e6294,1
+np.float64,0x7fec5c82fef8b905,0x3fef8f0c6473034f,1
+np.float64,0x7feba221bff74442,0xbfea95b81eb19b47,1
+np.float64,0x7fe74808a5ae9010,0xbfd3aa322917c3e5,1
+np.float64,0x7fdf41b7e0be836f,0x3fd14283c7147282,1
+np.float64,0x7fec09892f381311,0x3fe5240376ae484b,1
+np.float64,0x7faaf80bf435f017,0x3fe20227fa811423,1
+np.float64,0x7f8422d8402845b0,0x3fe911714593b8a0,1
+np.float64,0x7fd23a7fada474fe,0x3feff9f40aa37e9c,1
+np.float64,0x7fef4a4806fe948f,0x3fec6eca89cb4a62,1
+np.float64,0x7fe1e71cf763ce39,0xbfea6ac63f9ba457,1
+np.float64,0x7fe3e555be27caaa,0xbfe75b305d0dbbfd,1
+np.float64,0x7fcb8bac96371758,0xbfe8b126077f9d4c,1
+np.float64,0x7fc98e2c84331c58,0x3fef9092eb0bc85a,1
+np.float64,0x7fe947cf2b728f9d,0xbfebfff2c5b7d198,1
+np.float64,0x7feee8058c3dd00a,0xbfef21ebaae2eb17,1
+np.float64,0x7fef61d8d5bec3b1,0xbfdf1a032fb1c864,1
+np.float64,0x7fcf714b6f3ee296,0x3fe6fc89a8084098,1
+np.float64,0x7fa9a8b44c335168,0xbfeb16c149cea943,1
+np.float64,0x7fd175c482a2eb88,0xbfef64d341e73f88,1
+np.float64,0x7feab8e6a87571cc,0x3feb10069c397464,1
+np.float64,0x7fe3ade72de75bcd,0x3fd1753e333d5790,1
+np.float64,0x7fb26d87d224db0f,0xbfe753d36b18f4ca,1
+np.float64,0x7fdb7ef159b6fde2,0x3fe5c0a6044d3607,1
+np.float64,0x7fd5af86422b5f0c,0x3fe77193c95f6484,1
+np.float64,0x7fee9e00b07d3c00,0x3fe864d494596845,1
+np.float64,0x7fef927a147f24f3,0xbfe673b14715693d,1
+np.float64,0x7fd0aea63c215d4b,0xbfeff435f119fce9,1
+np.float64,0x7fd02e3796a05c6e,0x3fe4f7e3706e9a3d,1
+np.float64,0x7fd3ed61da27dac3,0xbfefef2f057f168c,1
+np.float64,0x7fefaca0d4ff5941,0x3fd3e8ad205cd4ab,1
+np.float64,0x7feb659e06f6cb3b,0x3fd64d803203e027,1
+np.float64,0x7fc94ccfaf32999e,0x3fee04922209369a,1
+np.float64,0x7feb4ec294f69d84,0xbfd102763a056c89,1
+np.float64,0x7fe2ada6ac655b4c,0x3fef4f6792aa6093,1
+np.float64,0x7fe5f40fdc2be81f,0xbfb4a6327186eee8,1
+np.float64,0x7fe7584bc3eeb097,0xbfd685b8ff94651d,1
+np.float64,0x7fe45d276be8ba4e,0x3fee53b13f7e442f,1
+np.float64,0x7fe6449b3d6c8935,0xbfe7e08bafa75251,1
+np.float64,0x7f8d62e6b03ac5cc,0x3fe73d30762f38fd,1
+np.float64,0x7fe3a76f72a74ede,0xbfeb48a28bc60968,1
+np.float64,0x7fd057706920aee0,0x3fdece8fa06f626c,1
+np.float64,0x7fe45ae158e8b5c2,0x3fe7a70f47b4d349,1
+np.float64,0x7fea8a5a983514b4,0x3fefb053d5f9ddd7,1
+np.float64,0x7fdd1e86ab3a3d0c,0x3fe3cded1b93816b,1
+np.float64,0x7fdb456108b68ac1,0xbfe37574c0b9bf8f,1
+np.float64,0x7fe972602432e4bf,0x3fef9a26e65ec01c,1
+np.float64,0x7fdbe2385637c470,0x3fed541df57969e1,1
+np.float64,0x7fe57f03602afe06,0x3fbd90f595cbbd94,1
+np.float64,0x7feb0ceb68f619d6,0xbfeae9cb8ee5261f,1
+np.float64,0x7fe6abfe6c6d57fc,0xbfef40a6edaca26f,1
+np.float64,0x7fe037ea08606fd3,0xbfda817d75858597,1
+np.float64,0x7fdd75a52dbaeb49,0x3feef2a0d91d6aa1,1
+np.float64,0x7fe8f9af66b1f35e,0xbfedfceef2a3bfc9,1
+np.float64,0x7fedf762b53beec4,0x3fd8b4f21ef69ee3,1
+np.float64,0x7fe99295b7f3252a,0x3feffc24d970383e,1
+np.float64,0x7fe797b0172f2f5f,0x3fee089aa56f7ce8,1
+np.float64,0x7fed89dcc97b13b9,0xbfcfa2bb0c3ea41f,1
+np.float64,0x7fae9e8d5c3d3d1a,0xbfe512ffe16c6b08,1
+np.float64,0x7fefaecbe27f5d97,0x3fbfc718a5e972f1,1
+np.float64,0x7fce0236d93c046d,0xbfa9b7cd790db256,1
+np.float64,0x7fa9689aac32d134,0x3feced501946628a,1
+np.float64,0x7feb1469e93628d3,0x3fef2a988e7673ed,1
+np.float64,0x7fdba78344b74f06,0xbfe092e78965b30c,1
+np.float64,0x7fece54c3fb9ca97,0x3fd3cfd184bed2e6,1
+np.float64,0x7fdb84212b370841,0xbfe25ebf2db6ee55,1
+np.float64,0x7fbe3e8bf23c7d17,0x3fe2ee72df573345,1
+np.float64,0x7fe43d9803687b2f,0xbfed2eff6a9e66a0,1
+np.float64,0x7fb0f9c00a21f37f,0x3feff70f3276fdb7,1
+np.float64,0x7fea0c6cbbb418d8,0xbfefa612494798b2,1
+np.float64,0x7fe4b3239e296646,0xbfe74dd959af8cdc,1
+np.float64,0x7fe5c6a773eb8d4e,0xbfd06944048f8d2b,1
+np.float64,0x7fb1c1278223824e,0xbfeb533a34655bde,1
+np.float64,0x7fd21c09ee243813,0xbfe921ccbc9255c3,1
+np.float64,0x7fe051020c20a203,0x3fbd519d700c1f2f,1
+np.float64,0x7fe0c76845e18ed0,0x3fefb9595191a31b,1
+np.float64,0x7fe6b0b57b6d616a,0xbf8c59a8ba5fcd9a,1
+np.float64,0x7fd386c460270d88,0x3fe8ffea5d1a5c46,1
+np.float64,0x7feeb884713d7108,0x3fee9b2247ef6c0d,1
+np.float64,0x7fd85f71b6b0bee2,0xbfefc30ec3e28f07,1
+np.float64,0x7fc341366426826c,0x3fd4234d35386d3b,1
+np.float64,0x7fe56482dd6ac905,0x3fe7189de6a50668,1
+np.float64,0x7fec67a2e3f8cf45,0xbfef86d0b940f37f,1
+np.float64,0x7fe38b202fe7163f,0x3feb90b75caa2030,1
+np.float64,0x7fdcbc64883978c8,0x3fed4f758fbf64d4,1
+np.float64,0x7fea5f0598f4be0a,0x3fdd503a417b3d4d,1
+np.float64,0x7fda3b6bcf3476d7,0x3fea6e9af3f7f9f5,1
+np.float64,0x7fc7d7896c2faf12,0x3fda2bebc36a2363,1
+np.float64,0x7fe7e8e2626fd1c4,0xbfe7d5e390c4cc3f,1
+np.float64,0x7fde0f3d7abc1e7a,0xbfede7a0ecfa3606,1
+np.float64,0x7fc692b8f52d2571,0x3feff0cd7ab6f61b,1
+np.float64,0xff92d1fce825a400,0xbfc921c36fc014fa,1
+np.float64,0xffdec3af2fbd875e,0xbfed6a77e6a0364e,1
+np.float64,0xffef46e7d9be8dcf,0xbfed7d39476f7e27,1
+np.float64,0xffe2c2ce4525859c,0x3fe1757261316bc9,1
+np.float64,0xffe27c8b5864f916,0xbfefe017c0d43457,1
+np.float64,0xffe184d7442309ae,0x3fa1fb8c49dba596,1
+np.float64,0xffddf5f98d3bebf4,0x3fee4f8eaa5f847e,1
+np.float64,0xffee3ef354fc7de6,0xbfebfd60fa51b2ba,1
+np.float64,0xffdecb3e85bd967e,0x3fbfad2667a8b468,1
+np.float64,0xffe4ee900b29dd20,0xbfdc02dc626f91cd,1
+np.float64,0xffd3179f6da62f3e,0xbfe2cfe442511776,1
+np.float64,0xffe99ef7cef33def,0x3f50994542a7f303,1
+np.float64,0xffe2b66b1ae56cd6,0xbfefe3e066eb6329,1
+np.float64,0xff8f72aff03ee540,0x3fe9c46224cf5003,1
+np.float64,0xffd29beb85a537d8,0x3fefcb0b6166be71,1
+np.float64,0xffaef02d4c3de060,0xbfef5fb71028fc72,1
+np.float64,0xffd39a2a89273456,0x3fe6d4b183205dca,1
+np.float64,0xffef8a9392ff1526,0x3fedb99fbf402468,1
+np.float64,0xffb9b3f31e3367e8,0x3fee1005270fcf80,1
+np.float64,0xffed9d5c693b3ab8,0x3fd110f4b02365d5,1
+np.float64,0xffeaba45f9f5748b,0x3fe499e0a6f4afb2,1
+np.float64,0xffdba3f70d3747ee,0xbfca0c30493ae519,1
+np.float64,0xffa35b985426b730,0xbfdb625df56bcf45,1
+np.float64,0xffccbc9728397930,0x3fc53cbc59020704,1
+np.float64,0xffef73c942bee792,0xbfdc647a7a5e08be,1
+np.float64,0xffcb5acfb236b5a0,0x3feeb4ec038c39fc,1
+np.float64,0xffea116fe2b422df,0x3fefe03b6ae0b435,1
+np.float64,0xffe97de6e7b2fbcd,0xbfd2025698fab9eb,1
+np.float64,0xffdddba314bbb746,0x3fd31f0fdb8f93be,1
+np.float64,0xffd613a24a2c2744,0xbfebbb1efae884b3,1
+np.float64,0xffe3d938aa67b271,0xbfc2099cead3d3be,1
+np.float64,0xffdf08c2e33e1186,0xbfefd236839b900d,1
+np.float64,0xffea6ba8bd34d751,0x3fe8dfc032114719,1
+np.float64,0xffe3202083e64040,0x3fed513b81432a22,1
+np.float64,0xffb2397db62472f8,0xbfee7d7fe1c3f76c,1
+np.float64,0xffd9d0682ab3a0d0,0x3fe0bcf9e531ad79,1
+np.float64,0xffc293df202527c0,0xbfe58d0bdece5e64,1
+np.float64,0xffe1422c7da28458,0xbf81bd72595f2341,1
+np.float64,0xffd64e4ed4ac9c9e,0x3fa4334cc011c703,1
+np.float64,0xffe40a970ae8152e,0x3fead3d258b55b7d,1
+np.float64,0xffc8c2f2223185e4,0xbfef685f07c8b9fd,1
+np.float64,0xffe4b2f7216965ee,0x3fe3861d3d896a83,1
+np.float64,0xffdb531db3b6a63c,0x3fe18cb8332dd59d,1
+np.float64,0xffe8e727a3b1ce4e,0xbfe57b15abb677b9,1
+np.float64,0xffe530c1e12a6184,0xbfb973ea5535e48f,1
+np.float64,0xffe6f7849cedef08,0x3fd39a37ec5af4b6,1
+np.float64,0xffead62a78b5ac54,0x3fe69b3f6c7aa24b,1
+np.float64,0xffeefdd725fdfbad,0xbfc08a456111fdd5,1
+np.float64,0xffe682182fed0430,0x3fecc7c1292761d2,1
+np.float64,0xffee0ca8dcbc1951,0x3fef6cc361ef2c19,1
+np.float64,0xffec9b338f393666,0x3fefa9ab8e0471b5,1
+np.float64,0xffe13c5e29a278bc,0xbfef8da74ad83398,1
+np.float64,0xffd7bd48c62f7a92,0x3fe3468cd4ac9d34,1
+np.float64,0xffedd0ed14bba1d9,0xbfd563a83477077b,1
+np.float64,0xffe86b83f3f0d707,0x3fe9eb3c658e4b2d,1
+np.float64,0xffd6a4db4bad49b6,0xbfc7e11276166e17,1
+np.float64,0xffc29e8404253d08,0x3fd35971961c789f,1
+np.float64,0xffe27cf3d664f9e7,0xbfeca0f73c72f810,1
+np.float64,0xffc34152352682a4,0x3fef384e564c002c,1
+np.float64,0xffe395728ba72ae4,0x3f8fe18c2de86eba,1
+np.float64,0xffed86c4fbbb0d89,0x3fef709db881c672,1
+np.float64,0xffe8a98d37f1531a,0x3fd4879c8f73c3dc,1
+np.float64,0xffb8ce9fea319d40,0xbfb853c8fe46b08d,1
+np.float64,0xffe7f26db8efe4db,0xbfec1cfd3e5c2ac1,1
+np.float64,0xffd7935b77af26b6,0x3fb7368c89b2a460,1
+np.float64,0xffc5840ed02b081c,0x3fd92220b56631f3,1
+np.float64,0xffc36a873926d510,0x3fa84d61baf61811,1
+np.float64,0xffe06ea583e0dd4a,0x3feb647e348b9e39,1
+np.float64,0xffe6a33031ed4660,0xbfe096b851dc1a0a,1
+np.float64,0xffe001c938e00392,0x3fe4eece77623e7a,1
+np.float64,0xffc1e4f23b23c9e4,0xbfdb9bb1f83f6ac4,1
+np.float64,0xffecd3ecbab9a7d9,0x3fbafb1f800f177d,1
+np.float64,0xffc2d3016825a604,0xbfef650e8b0d6afb,1
+np.float64,0xffe222cb68e44596,0x3fde3690e44de5bd,1
+np.float64,0xffe5bb145e2b7628,0x3fedbb98e23c9dc1,1
+np.float64,0xffe9e5823b73cb04,0xbfee41661016c03c,1
+np.float64,0xffd234a00ba46940,0x3fda0312cda580c2,1
+np.float64,0xffe0913ed6e1227d,0xbfed508bb529bd23,1
+np.float64,0xffe8e3596171c6b2,0xbfdc33e1c1d0310e,1
+np.float64,0xffef9c6835ff38cf,0x3fea8ce6d27dfba3,1
+np.float64,0xffdd3bcf66ba779e,0x3fe50523d2b6470e,1
+np.float64,0xffe57e8cf06afd1a,0xbfee600933347247,1
+np.float64,0xffe0d8c65fa1b18c,0x3fe75091f93d5e4c,1
+np.float64,0xffea7c8c16b4f918,0x3fee681724795198,1
+np.float64,0xffe34f7a05269ef4,0xbfe3c3e179676f13,1
+np.float64,0xffd28894a6a5112a,0xbfe5d1027aee615d,1
+np.float64,0xffc73be6f22e77cc,0x3fe469bbc08b472a,1
+np.float64,0xffe7f71b066fee36,0x3fe7ed136c8fdfaa,1
+np.float64,0xffebc13e29f7827c,0x3fefcdc6e677d314,1
+np.float64,0xffd53e9c942a7d3a,0x3fea5a02c7341749,1
+np.float64,0xffd7191b23ae3236,0x3fea419b66023443,1
+np.float64,0xffe9480325b29006,0xbfefeaff5fa38cd5,1
+np.float64,0xffba46dc0e348db8,0xbfefa54f4de28eba,1
+np.float64,0xffdd4cc31eba9986,0x3fe60bb41fe1c4da,1
+np.float64,0xffe13a70dea274e1,0xbfaa9192f7bd6c9b,1
+np.float64,0xffde25127bbc4a24,0x3f7c75f45e29be7d,1
+np.float64,0xffe4076543a80eca,0x3fea5aad50d2f687,1
+np.float64,0xffe61512acec2a25,0xbfefffeb67401649,1
+np.float64,0xffef812ec1ff025d,0xbfe919c7c073c766,1
+np.float64,0xffd5552aeaaaaa56,0x3fc89d38ab047396,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cosh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cosh.csv
new file mode 100644
index 0000000..af14d84
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-cosh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xfe0ac238,0x7f800000,3
+np.float32,0xbf553b86,0x3faf079b,3
+np.float32,0xff4457da,0x7f800000,3
+np.float32,0xff7253f3,0x7f800000,3
+np.float32,0x5a5802,0x3f800000,3
+np.float32,0x3db03413,0x3f80795b,3
+np.float32,0x7f6795c9,0x7f800000,3
+np.float32,0x805b9142,0x3f800000,3
+np.float32,0xfeea581a,0x7f800000,3
+np.float32,0x3f7e2dba,0x3fc472f6,3
+np.float32,0x3d9c4d74,0x3f805f7a,3
+np.float32,0x7f18c665,0x7f800000,3
+np.float32,0x7f003e23,0x7f800000,3
+np.float32,0x3d936fa0,0x3f8054f3,3
+np.float32,0x3f32034f,0x3fa0368e,3
+np.float32,0xff087604,0x7f800000,3
+np.float32,0x380a5,0x3f800000,3
+np.float32,0x3f59694e,0x3fb10077,3
+np.float32,0x3e63e648,0x3f832ee4,3
+np.float32,0x80712f42,0x3f800000,3
+np.float32,0x3e169908,0x3f816302,3
+np.float32,0x3f2d766e,0x3f9e8692,3
+np.float32,0x3d6412e0,0x3f8032d0,3
+np.float32,0xbde689e8,0x3f80cfd4,3
+np.float32,0x483e2e,0x3f800000,3
+np.float32,0xff1ba2d0,0x7f800000,3
+np.float32,0x80136bff,0x3f800000,3
+np.float32,0x3f72534c,0x3fbdc1d4,3
+np.float32,0x3e9eb381,0x3f8632c6,3
+np.float32,0x3e142892,0x3f815795,3
+np.float32,0x0,0x3f800000,3
+np.float32,0x2f2528,0x3f800000,3
+np.float32,0x7f38be13,0x7f800000,3
+np.float32,0xfeee6896,0x7f800000,3
+np.float32,0x7f09095d,0x7f800000,3
+np.float32,0xbe94d,0x3f800000,3
+np.float32,0xbedcf8d4,0x3f8c1b74,3
+np.float32,0xbf694c02,0x3fb8ef07,3
+np.float32,0x3e2261f8,0x3f819cde,3
+np.float32,0xbf01d3ce,0x3f90d0e0,3
+np.float32,0xbeb7b3a2,0x3f8853de,3
+np.float32,0x8046de7b,0x3f800000,3
+np.float32,0xbcb45ea0,0x3f8007f1,3
+np.float32,0x3eef14af,0x3f8e35dd,3
+np.float32,0xbf047316,0x3f91846e,3
+np.float32,0x801cef45,0x3f800000,3
+np.float32,0x3e9ad891,0x3f85e609,3
+np.float32,0xff20e9cf,0x7f800000,3
+np.float32,0x80068434,0x3f800000,3
+np.float32,0xbe253020,0x3f81ab49,3
+np.float32,0x3f13f4b8,0x3f95fac9,3
+np.float32,0x804accd1,0x3f800000,3
+np.float32,0x3dee3e10,0x3f80ddf7,3
+np.float32,0xbe6c4690,0x3f836c29,3
+np.float32,0xff30d431,0x7f800000,3
+np.float32,0xbec82416,0x3f89e791,3
+np.float32,0x3f30bbcb,0x3f9fbbcc,3
+np.float32,0x3f5620a2,0x3faf72b8,3
+np.float32,0x807a8130,0x3f800000,3
+np.float32,0x3e3cb02d,0x3f822de0,3
+np.float32,0xff4839ac,0x7f800000,3
+np.float32,0x800a3e9c,0x3f800000,3
+np.float32,0x3dffd65b,0x3f810002,3
+np.float32,0xbf2b1492,0x3f9da987,3
+np.float32,0xbf21602c,0x3f9a48fe,3
+np.float32,0x512531,0x3f800000,3
+np.float32,0x24b99a,0x3f800000,3
+np.float32,0xbf53e345,0x3fae67b1,3
+np.float32,0xff2126ec,0x7f800000,3
+np.float32,0x7e79b49d,0x7f800000,3
+np.float32,0x3ea3cf04,0x3f869b6f,3
+np.float32,0x7f270059,0x7f800000,3
+np.float32,0x3f625b2f,0x3fb561e1,3
+np.float32,0xbf59947e,0x3fb11519,3
+np.float32,0xfe0d1c64,0x7f800000,3
+np.float32,0xbf3f3eae,0x3fa568e2,3
+np.float32,0x7c04d1,0x3f800000,3
+np.float32,0x7e66bd,0x3f800000,3
+np.float32,0x8011880d,0x3f800000,3
+np.float32,0x3f302f07,0x3f9f8759,3
+np.float32,0x4e3375,0x3f800000,3
+np.float32,0xfe67a134,0x7f800000,3
+np.float32,0xff670249,0x7f800000,3
+np.float32,0x7e19f27d,0x7f800000,3
+np.float32,0xbf36ce12,0x3fa20b81,3
+np.float32,0xbe6bcfc4,0x3f8368b5,3
+np.float32,0x76fcba,0x3f800000,3
+np.float32,0x7f30abaf,0x7f800000,3
+np.float32,0x3f4c1f6d,0x3faae43c,3
+np.float32,0x7f61f44a,0x7f800000,3
+np.float32,0xbf4bb3c9,0x3faab4af,3
+np.float32,0xbda15ee0,0x3f8065c6,3
+np.float32,0xfbb4e800,0x7f800000,3
+np.float32,0x7fa00000,0x7fe00000,3
+np.float32,0x80568501,0x3f800000,3
+np.float32,0xfeb285e4,0x7f800000,3
+np.float32,0x804423a7,0x3f800000,3
+np.float32,0x7e6c0f21,0x7f800000,3
+np.float32,0x7f136b3c,0x7f800000,3
+np.float32,0x3f2d08e6,0x3f9e5e9c,3
+np.float32,0xbf6b454e,0x3fb9f7e6,3
+np.float32,0x3e6bceb0,0x3f8368ad,3
+np.float32,0xff1ad16a,0x7f800000,3
+np.float32,0x7cce1a04,0x7f800000,3
+np.float32,0xff7bcf95,0x7f800000,3
+np.float32,0x8049788d,0x3f800000,3
+np.float32,0x7ec45918,0x7f800000,3
+np.float32,0xff7fffff,0x7f800000,3
+np.float32,0x8039a1a0,0x3f800000,3
+np.float32,0x7e90cd72,0x7f800000,3
+np.float32,0xbf7dfd53,0x3fc456cc,3
+np.float32,0x3eeeb664,0x3f8e2a76,3
+np.float32,0x8055ef9b,0x3f800000,3
+np.float32,0x7ee06ddd,0x7f800000,3
+np.float32,0xba2cc000,0x3f800002,3
+np.float32,0x806da632,0x3f800000,3
+np.float32,0x7ecfaaf5,0x7f800000,3
+np.float32,0x3ddd12e6,0x3f80bf19,3
+np.float32,0xbf754394,0x3fbf60b1,3
+np.float32,0x6f3f19,0x3f800000,3
+np.float32,0x800a9af0,0x3f800000,3
+np.float32,0xfeef13ea,0x7f800000,3
+np.float32,0x7f74841f,0x7f800000,3
+np.float32,0xbeb9a2f0,0x3f888181,3
+np.float32,0x77cbb,0x3f800000,3
+np.float32,0xbf587f84,0x3fb0911b,3
+np.float32,0x210ba5,0x3f800000,3
+np.float32,0x3ee60a28,0x3f8d2367,3
+np.float32,0xbe3731ac,0x3f820dc7,3
+np.float32,0xbee8cfee,0x3f8d765e,3
+np.float32,0x7b2ef179,0x7f800000,3
+np.float32,0xfe81377c,0x7f800000,3
+np.float32,0x6ac98c,0x3f800000,3
+np.float32,0x3f51f144,0x3fad8288,3
+np.float32,0x80785750,0x3f800000,3
+np.float32,0x3f46615a,0x3fa864ff,3
+np.float32,0xbf35ac9e,0x3fa19b8e,3
+np.float32,0x7f0982ac,0x7f800000,3
+np.float32,0x1b2610,0x3f800000,3
+np.float32,0x3ed8bb25,0x3f8ba3df,3
+np.float32,0xbeb41bac,0x3f88006d,3
+np.float32,0xff48e89d,0x7f800000,3
+np.float32,0x3ed0ab8c,0x3f8ac755,3
+np.float32,0xbe64671c,0x3f833282,3
+np.float32,0x64bce4,0x3f800000,3
+np.float32,0x284f79,0x3f800000,3
+np.float32,0x7e09faa7,0x7f800000,3
+np.float32,0x4376c1,0x3f800000,3
+np.float32,0x805ca8c0,0x3f800000,3
+np.float32,0xff0859d5,0x7f800000,3
+np.float32,0xbed2f3b2,0x3f8b04dd,3
+np.float32,0x8045bd0c,0x3f800000,3
+np.float32,0x3f0e6216,0x3f94503f,3
+np.float32,0x3f41e3ae,0x3fa68035,3
+np.float32,0x80088ccc,0x3f800000,3
+np.float32,0x3f37fc19,0x3fa2812f,3
+np.float32,0x71c87d,0x3f800000,3
+np.float32,0x8024f4b2,0x3f800000,3
+np.float32,0xff78dd88,0x7f800000,3
+np.float32,0xbda66c90,0x3f806c40,3
+np.float32,0x7f33ef0d,0x7f800000,3
+np.float32,0x46a343,0x3f800000,3
+np.float32,0xff1dce38,0x7f800000,3
+np.float32,0x1b935d,0x3f800000,3
+np.float32,0x3ebec598,0x3f88fd0e,3
+np.float32,0xff115530,0x7f800000,3
+np.float32,0x803916aa,0x3f800000,3
+np.float32,0xff60a3e2,0x7f800000,3
+np.float32,0x3b8ddd48,0x3f80004f,3
+np.float32,0x3f761b6e,0x3fbfd8ea,3
+np.float32,0xbdf55b88,0x3f80eb70,3
+np.float32,0x37374,0x3f800000,3
+np.float32,0x3de150e0,0x3f80c682,3
+np.float32,0x3f343278,0x3fa10a83,3
+np.float32,0xbe9baefa,0x3f85f68b,3
+np.float32,0x3d8d43,0x3f800000,3
+np.float32,0x3e80994b,0x3f840f0c,3
+np.float32,0xbe573c6c,0x3f82d685,3
+np.float32,0x805b83b4,0x3f800000,3
+np.float32,0x683d88,0x3f800000,3
+np.float32,0x692465,0x3f800000,3
+np.float32,0xbdc345f8,0x3f809511,3
+np.float32,0x3f7c1c5a,0x3fc3406f,3
+np.float32,0xbf40bef3,0x3fa606df,3
+np.float32,0xff1e25b9,0x7f800000,3
+np.float32,0x3e4481e0,0x3f825d37,3
+np.float32,0x75d188,0x3f800000,3
+np.float32,0x3ea53cec,0x3f86b956,3
+np.float32,0xff105a54,0x7f800000,3
+np.float32,0x7f800000,0x7f800000,3
+np.float32,0x7f11f0b0,0x7f800000,3
+np.float32,0xbf58a57d,0x3fb0a328,3
+np.float32,0xbdd11e38,0x3f80aaf8,3
+np.float32,0xbea94adc,0x3f870fa0,3
+np.float32,0x3e9dd780,0x3f862180,3
+np.float32,0xff1786b9,0x7f800000,3
+np.float32,0xfec46aa2,0x7f800000,3
+np.float32,0x7f4300c1,0x7f800000,3
+np.float32,0x29ba2b,0x3f800000,3
+np.float32,0x3f4112e2,0x3fa62993,3
+np.float32,0xbe6c9224,0x3f836e5d,3
+np.float32,0x7f0e42a3,0x7f800000,3
+np.float32,0xff6390ad,0x7f800000,3
+np.float32,0x3f54e374,0x3faede94,3
+np.float32,0x7f2642a2,0x7f800000,3
+np.float32,0x7f46b2be,0x7f800000,3
+np.float32,0xfe59095c,0x7f800000,3
+np.float32,0x7146a0,0x3f800000,3
+np.float32,0x3f07763d,0x3f925786,3
+np.float32,0x3d172780,0x3f801651,3
+np.float32,0xff66f1c5,0x7f800000,3
+np.float32,0xff025349,0x7f800000,3
+np.float32,0x6ce99d,0x3f800000,3
+np.float32,0xbf7e4f50,0x3fc48685,3
+np.float32,0xbeff8ca2,0x3f904708,3
+np.float32,0x3e6c8,0x3f800000,3
+np.float32,0x7f7153dc,0x7f800000,3
+np.float32,0xbedcf612,0x3f8c1b26,3
+np.float32,0xbbc2f180,0x3f800094,3
+np.float32,0xbf397399,0x3fa314b8,3
+np.float32,0x6c6e35,0x3f800000,3
+np.float32,0x7f50a88b,0x7f800000,3
+np.float32,0xfe84093e,0x7f800000,3
+np.float32,0x3f737b9d,0x3fbe6478,3
+np.float32,0x7f6a5340,0x7f800000,3
+np.float32,0xbde83c20,0x3f80d2e7,3
+np.float32,0xff769ce9,0x7f800000,3
+np.float32,0xfdd33c30,0x7f800000,3
+np.float32,0xbc95cb60,0x3f80057a,3
+np.float32,0x8007a40d,0x3f800000,3
+np.float32,0x3f55d90c,0x3faf5132,3
+np.float32,0x80282082,0x3f800000,3
+np.float32,0xbf43b1f2,0x3fa7418c,3
+np.float32,0x3f1dc7cb,0x3f991731,3
+np.float32,0xbd4346a0,0x3f80253f,3
+np.float32,0xbf5aa82a,0x3fb19946,3
+np.float32,0x3f4b8c22,0x3faaa333,3
+np.float32,0x3d13468c,0x3f80152f,3
+np.float32,0x7db77097,0x7f800000,3
+np.float32,0x4a00df,0x3f800000,3
+np.float32,0xbedea5e0,0x3f8c4b64,3
+np.float32,0x80482543,0x3f800000,3
+np.float32,0xbef344fe,0x3f8eb8dd,3
+np.float32,0x7ebd4044,0x7f800000,3
+np.float32,0xbf512c0e,0x3fad287e,3
+np.float32,0x3db28cce,0x3f807c9c,3
+np.float32,0xbd0f5ae0,0x3f801412,3
+np.float32,0xfe7ed9ac,0x7f800000,3
+np.float32,0x3eb1aa82,0x3f87c8b4,3
+np.float32,0xfef1679e,0x7f800000,3
+np.float32,0xff3629f2,0x7f800000,3
+np.float32,0xff3562b4,0x7f800000,3
+np.float32,0x3dcafe1d,0x3f80a118,3
+np.float32,0xfedf242a,0x7f800000,3
+np.float32,0xbf43102a,0x3fa6fda4,3
+np.float32,0x8028834e,0x3f800000,3
+np.float32,0x805c8513,0x3f800000,3
+np.float32,0x3f59306a,0x3fb0e550,3
+np.float32,0x3eda2c9c,0x3f8bcc4a,3
+np.float32,0x80023524,0x3f800000,3
+np.float32,0x7ef72879,0x7f800000,3
+np.float32,0x661c8a,0x3f800000,3
+np.float32,0xfec3ba6c,0x7f800000,3
+np.float32,0x805aaca6,0x3f800000,3
+np.float32,0xff5c1f13,0x7f800000,3
+np.float32,0x3f6ab3f4,0x3fb9ab6b,3
+np.float32,0x3f014896,0x3f90ac20,3
+np.float32,0x3f030584,0x3f91222a,3
+np.float32,0xbf74853d,0x3fbef71d,3
+np.float32,0xbf534ee0,0x3fae2323,3
+np.float32,0x2c90c3,0x3f800000,3
+np.float32,0x7f62ad25,0x7f800000,3
+np.float32,0x1c8847,0x3f800000,3
+np.float32,0x7e2a8d43,0x7f800000,3
+np.float32,0x807a09cd,0x3f800000,3
+np.float32,0x413871,0x3f800000,3
+np.float32,0x80063692,0x3f800000,3
+np.float32,0x3edaf29b,0x3f8be211,3
+np.float32,0xbf64a7ab,0x3fb68b2d,3
+np.float32,0xfe56a720,0x7f800000,3
+np.float32,0xbf54a8d4,0x3faec350,3
+np.float32,0x3ecbaef7,0x3f8a4350,3
+np.float32,0x3f413714,0x3fa63890,3
+np.float32,0x7d3aa8,0x3f800000,3
+np.float32,0xbea9a13c,0x3f8716e7,3
+np.float32,0x7ef7553e,0x7f800000,3
+np.float32,0x8056f29f,0x3f800000,3
+np.float32,0xff1f7ffe,0x7f800000,3
+np.float32,0x3f41953b,0x3fa65f9c,3
+np.float32,0x3daa2f,0x3f800000,3
+np.float32,0xff0893e4,0x7f800000,3
+np.float32,0xbefc7ec6,0x3f8fe207,3
+np.float32,0xbb026800,0x3f800011,3
+np.float32,0x341e4f,0x3f800000,3
+np.float32,0x3e7b708a,0x3f83e0d1,3
+np.float32,0xa18cb,0x3f800000,3
+np.float32,0x7e290239,0x7f800000,3
+np.float32,0xbf4254f2,0x3fa6af62,3
+np.float32,0x80000000,0x3f800000,3
+np.float32,0x3f0a6c,0x3f800000,3
+np.float32,0xbec44d28,0x3f898609,3
+np.float32,0xf841f,0x3f800000,3
+np.float32,0x7f01a693,0x7f800000,3
+np.float32,0x8053340b,0x3f800000,3
+np.float32,0xfd4e7990,0x7f800000,3
+np.float32,0xbf782f1f,0x3fc10356,3
+np.float32,0xbe962118,0x3f858acc,3
+np.float32,0xfe8cd702,0x7f800000,3
+np.float32,0x7ecd986f,0x7f800000,3
+np.float32,0x3ebe775f,0x3f88f59b,3
+np.float32,0x8065524f,0x3f800000,3
+np.float32,0x3ede7fc4,0x3f8c471e,3
+np.float32,0x7f5e15ea,0x7f800000,3
+np.float32,0xbe871ada,0x3f847b78,3
+np.float32,0x3f21958b,0x3f9a5af7,3
+np.float32,0x3f64d480,0x3fb6a1fa,3
+np.float32,0xff18b0e9,0x7f800000,3
+np.float32,0xbf0840dd,0x3f928fd9,3
+np.float32,0x80104f5d,0x3f800000,3
+np.float32,0x643b94,0x3f800000,3
+np.float32,0xbc560a80,0x3f8002cc,3
+np.float32,0x3f5c75d6,0x3fb2786e,3
+np.float32,0x7f365fc9,0x7f800000,3
+np.float32,0x54e965,0x3f800000,3
+np.float32,0x6dcd4d,0x3f800000,3
+np.float32,0x3f2057a0,0x3f99f04d,3
+np.float32,0x272fa3,0x3f800000,3
+np.float32,0xff423dc9,0x7f800000,3
+np.float32,0x80273463,0x3f800000,3
+np.float32,0xfe21cc78,0x7f800000,3
+np.float32,0x7fc00000,0x7fc00000,3
+np.float32,0x802feb65,0x3f800000,3
+np.float32,0x3dc733d0,0x3f809b21,3
+np.float32,0x65d56b,0x3f800000,3
+np.float32,0x80351d8e,0x3f800000,3
+np.float32,0xbf244247,0x3f9b43dd,3
+np.float32,0x7f328e7e,0x7f800000,3
+np.float32,0x7f4d9712,0x7f800000,3
+np.float32,0x2c505d,0x3f800000,3
+np.float32,0xbf232ebe,0x3f9ae5a0,3
+np.float32,0x804a363a,0x3f800000,3
+np.float32,0x80417102,0x3f800000,3
+np.float32,0xbf48b170,0x3fa963d4,3
+np.float32,0x7ea3e3b6,0x7f800000,3
+np.float32,0xbf41415b,0x3fa63cd2,3
+np.float32,0xfe3af7c8,0x7f800000,3
+np.float32,0x7f478010,0x7f800000,3
+np.float32,0x80143113,0x3f800000,3
+np.float32,0x3f7626a7,0x3fbfdf2e,3
+np.float32,0xfea20b0a,0x7f800000,3
+np.float32,0x80144d64,0x3f800000,3
+np.float32,0x7db9ba47,0x7f800000,3
+np.float32,0x7f7fffff,0x7f800000,3
+np.float32,0xbe410834,0x3f8247ef,3
+np.float32,0x14a7af,0x3f800000,3
+np.float32,0x7eaebf9e,0x7f800000,3
+np.float32,0xff800000,0x7f800000,3
+np.float32,0x3f0a7d8e,0x3f9330fd,3
+np.float32,0x3ef780,0x3f800000,3
+np.float32,0x3f62253e,0x3fb546d1,3
+np.float32,0x3f4cbeac,0x3fab2acc,3
+np.float32,0x25db1,0x3f800000,3
+np.float32,0x65c54a,0x3f800000,3
+np.float32,0x800f0645,0x3f800000,3
+np.float32,0x3ed28c78,0x3f8af9f0,3
+np.float32,0x8040c6ce,0x3f800000,3
+np.float32,0x5e4e9a,0x3f800000,3
+np.float32,0xbd3fd2b0,0x3f8023f1,3
+np.float32,0xbf5d2d3f,0x3fb2d1b6,3
+np.float32,0x7ead999f,0x7f800000,3
+np.float32,0xbf30dc86,0x3f9fc805,3
+np.float32,0xff2b0a62,0x7f800000,3
+np.float32,0x3d5180e9,0x3f802adf,3
+np.float32,0x3f62716f,0x3fb56d0d,3
+np.float32,0x7e82ae9c,0x7f800000,3
+np.float32,0xfe2d4bdc,0x7f800000,3
+np.float32,0x805cc7d4,0x3f800000,3
+np.float32,0xfb50f700,0x7f800000,3
+np.float32,0xff57b684,0x7f800000,3
+np.float32,0x80344f01,0x3f800000,3
+np.float32,0x7f2af372,0x7f800000,3
+np.float32,0xfeab6204,0x7f800000,3
+np.float32,0x30b251,0x3f800000,3
+np.float32,0x3eed8cc4,0x3f8e0698,3
+np.float32,0x7eeb1c6a,0x7f800000,3
+np.float32,0x3f17ece6,0x3f9735b0,3
+np.float32,0x21e985,0x3f800000,3
+np.float32,0x3f3a7df3,0x3fa37e34,3
+np.float32,0x802a14a2,0x3f800000,3
+np.float32,0x807d4d5b,0x3f800000,3
+np.float32,0x7f6093ce,0x7f800000,3
+np.float32,0x3f800000,0x3fc583ab,3
+np.float32,0x3da2c26e,0x3f806789,3
+np.float32,0xfe05f278,0x7f800000,3
+np.float32,0x800000,0x3f800000,3
+np.float32,0xbee63342,0x3f8d282e,3
+np.float32,0xbf225586,0x3f9a9bd4,3
+np.float32,0xbed60e86,0x3f8b59ba,3
+np.float32,0xbec99484,0x3f8a0ca3,3
+np.float32,0x3e967c71,0x3f859199,3
+np.float32,0x7f26ab62,0x7f800000,3
+np.float32,0xca7f4,0x3f800000,3
+np.float32,0xbf543790,0x3fae8ebc,3
+np.float32,0x3e4c1ed9,0x3f828d2d,3
+np.float32,0xbdf37f88,0x3f80e7e1,3
+np.float32,0xff0cc44e,0x7f800000,3
+np.float32,0x5dea48,0x3f800000,3
+np.float32,0x31023c,0x3f800000,3
+np.float32,0x3ea10733,0x3f866208,3
+np.float32,0x3e11e6f2,0x3f814d2e,3
+np.float32,0x80641960,0x3f800000,3
+np.float32,0x3ef779a8,0x3f8f3edb,3
+np.float32,0x3f2a5062,0x3f9d632a,3
+np.float32,0x2b7d34,0x3f800000,3
+np.float32,0x3eeb95c5,0x3f8dca67,3
+np.float32,0x805c1357,0x3f800000,3
+np.float32,0x3db3a79d,0x3f807e29,3
+np.float32,0xfded1900,0x7f800000,3
+np.float32,0x45f362,0x3f800000,3
+np.float32,0x451f38,0x3f800000,3
+np.float32,0x801d3ae5,0x3f800000,3
+np.float32,0x458d45,0x3f800000,3
+np.float32,0xfda9d298,0x7f800000,3
+np.float32,0x467439,0x3f800000,3
+np.float32,0x7f66554a,0x7f800000,3
+np.float32,0xfef2375a,0x7f800000,3
+np.float32,0xbf33fc47,0x3fa0f5d7,3
+np.float32,0x3f75ba69,0x3fbfa2d0,3
+np.float32,0xfeb625b2,0x7f800000,3
+np.float32,0x8066b371,0x3f800000,3
+np.float32,0x3f5cb4e9,0x3fb29718,3
+np.float32,0x7f3b6a58,0x7f800000,3
+np.float32,0x7f6b35ea,0x7f800000,3
+np.float32,0xbf6ee555,0x3fbbe5be,3
+np.float32,0x3d836e21,0x3f804380,3
+np.float32,0xff43cd0c,0x7f800000,3
+np.float32,0xff55c1fa,0x7f800000,3
+np.float32,0xbf0dfccc,0x3f9432a6,3
+np.float32,0x3ed92121,0x3f8baf00,3
+np.float32,0x80068cc1,0x3f800000,3
+np.float32,0xff0103f9,0x7f800000,3
+np.float32,0x7e51b175,0x7f800000,3
+np.float32,0x8012f214,0x3f800000,3
+np.float32,0x62d298,0x3f800000,3
+np.float32,0xbf3e1525,0x3fa4ef8d,3
+np.float32,0x806b4882,0x3f800000,3
+np.float32,0xbf38c146,0x3fa2ce7c,3
+np.float32,0xbed59c30,0x3f8b4d70,3
+np.float32,0x3d1910c0,0x3f8016e2,3
+np.float32,0x7f33d55b,0x7f800000,3
+np.float32,0x7f5800e3,0x7f800000,3
+np.float32,0x5b2c5d,0x3f800000,3
+np.float32,0x807be750,0x3f800000,3
+np.float32,0x7eb297c1,0x7f800000,3
+np.float32,0x7dafee62,0x7f800000,3
+np.float32,0x7d9e23f0,0x7f800000,3
+np.float32,0x3e580537,0x3f82dbd8,3
+np.float32,0xbf800000,0x3fc583ab,3
+np.float32,0x7f40f880,0x7f800000,3
+np.float32,0x775ad3,0x3f800000,3
+np.float32,0xbedacd36,0x3f8bddf3,3
+np.float32,0x2138f6,0x3f800000,3
+np.float32,0x52c3b7,0x3f800000,3
+np.float32,0x8041cfdd,0x3f800000,3
+np.float32,0x7bf16791,0x7f800000,3
+np.float32,0xbe95869c,0x3f857f55,3
+np.float32,0xbf199796,0x3f97bcaf,3
+np.float32,0x3ef8da38,0x3f8f6b45,3
+np.float32,0x803f3648,0x3f800000,3
+np.float32,0x80026fd2,0x3f800000,3
+np.float32,0x7eb3ac26,0x7f800000,3
+np.float32,0x3e49921b,0x3f827ce8,3
+np.float32,0xbf689aed,0x3fb892de,3
+np.float32,0x3f253509,0x3f9b9779,3
+np.float32,0xff17894a,0x7f800000,3
+np.float32,0x3cd12639,0x3f800aae,3
+np.float32,0x1db14b,0x3f800000,3
+np.float32,0x39a0bf,0x3f800000,3
+np.float32,0xfdfe1d08,0x7f800000,3
+np.float32,0xff416cd2,0x7f800000,3
+np.float32,0x8070d818,0x3f800000,3
+np.float32,0x3e516e12,0x3f82afb8,3
+np.float32,0x80536651,0x3f800000,3
+np.float32,0xbf2903d2,0x3f9cecb7,3
+np.float32,0x3e896ae4,0x3f84a353,3
+np.float32,0xbd6ba2c0,0x3f80363d,3
+np.float32,0x80126d3e,0x3f800000,3
+np.float32,0xfd9d43d0,0x7f800000,3
+np.float32,0x7b56b6,0x3f800000,3
+np.float32,0xff04718e,0x7f800000,3
+np.float32,0x31440f,0x3f800000,3
+np.float32,0xbf7a1313,0x3fc215c9,3
+np.float32,0x7f43d6a0,0x7f800000,3
+np.float32,0x3f566503,0x3faf92cc,3
+np.float32,0xbf39eb0e,0x3fa343f1,3
+np.float32,0xbe35fd70,0x3f8206df,3
+np.float32,0x800c36ac,0x3f800000,3
+np.float32,0x60d061,0x3f800000,3
+np.float32,0x80453e12,0x3f800000,3
+np.float32,0xfe17c36c,0x7f800000,3
+np.float32,0x3d8c72,0x3f800000,3
+np.float32,0xfe8e9134,0x7f800000,3
+np.float32,0xff5d89de,0x7f800000,3
+np.float32,0x7f45020e,0x7f800000,3
+np.float32,0x3f28225e,0x3f9c9d01,3
+np.float32,0xbf3b6900,0x3fa3dbdd,3
+np.float32,0x80349023,0x3f800000,3
+np.float32,0xbf14d780,0x3f964042,3
+np.float32,0x3f56b5d2,0x3fafb8c3,3
+np.float32,0x800c639c,0x3f800000,3
+np.float32,0x7f7a19c8,0x7f800000,3
+np.float32,0xbf7a0815,0x3fc20f86,3
+np.float32,0xbec55926,0x3f89a06e,3
+np.float32,0x4b2cd2,0x3f800000,3
+np.float32,0xbf271eb2,0x3f9c41c8,3
+np.float32,0xff26e168,0x7f800000,3
+np.float32,0x800166b2,0x3f800000,3
+np.float32,0xbde97e38,0x3f80d532,3
+np.float32,0xbf1f93ec,0x3f99af1a,3
+np.float32,0x7f2896ed,0x7f800000,3
+np.float32,0x3da7d96d,0x3f806e1d,3
+np.float32,0x802b7237,0x3f800000,3
+np.float32,0xfdca6bc0,0x7f800000,3
+np.float32,0xbed2e300,0x3f8b0318,3
+np.float32,0x8079d9e8,0x3f800000,3
+np.float32,0x3f388c81,0x3fa2b9c2,3
+np.float32,0x3ed2607c,0x3f8af54a,3
+np.float32,0xff287de6,0x7f800000,3
+np.float32,0x3f55ed89,0x3faf5ac9,3
+np.float32,0x7f5b6af7,0x7f800000,3
+np.float32,0xbeb24730,0x3f87d698,3
+np.float32,0x1,0x3f800000,3
+np.float32,0x3f3a2350,0x3fa35a3b,3
+np.float32,0x8013b422,0x3f800000,3
+np.float32,0x3e9a6560,0x3f85dd35,3
+np.float32,0x80510631,0x3f800000,3
+np.float32,0xfeae39d6,0x7f800000,3
+np.float32,0x7eb437ad,0x7f800000,3
+np.float32,0x8047545b,0x3f800000,3
+np.float32,0x806a1c71,0x3f800000,3
+np.float32,0xbe5543f0,0x3f82c93b,3
+np.float32,0x40e8d,0x3f800000,3
+np.float32,0x63d18b,0x3f800000,3
+np.float32,0x1fa1ea,0x3f800000,3
+np.float32,0x801944e0,0x3f800000,3
+np.float32,0xbf4c7ac6,0x3fab0cae,3
+np.float32,0x7f2679d4,0x7f800000,3
+np.float32,0x3f0102fc,0x3f9099d0,3
+np.float32,0x7e44bdc1,0x7f800000,3
+np.float32,0xbf2072f6,0x3f99f970,3
+np.float32,0x5c7d38,0x3f800000,3
+np.float32,0x30a2e6,0x3f800000,3
+np.float32,0x805b9ca3,0x3f800000,3
+np.float32,0x7cc24ad5,0x7f800000,3
+np.float32,0x3f4f7920,0x3fac6357,3
+np.float32,0x111d62,0x3f800000,3
+np.float32,0xbf4de40a,0x3fabad77,3
+np.float32,0x805d0354,0x3f800000,3
+np.float32,0xbb3d2b00,0x3f800023,3
+np.float32,0x3ef229e7,0x3f8e960b,3
+np.float32,0x3f15754e,0x3f9670e0,3
+np.float32,0xbf689c6b,0x3fb893a5,3
+np.float32,0xbf3796c6,0x3fa2599b,3
+np.float32,0xbe95303c,0x3f8578f2,3
+np.float32,0xfee330de,0x7f800000,3
+np.float32,0xff0d9705,0x7f800000,3
+np.float32,0xbeb0ebd0,0x3f87b7dd,3
+np.float32,0xbf4d5a13,0x3fab6fe7,3
+np.float32,0x80142f5a,0x3f800000,3
+np.float32,0x7e01a87b,0x7f800000,3
+np.float32,0xbe45e5ec,0x3f8265d7,3
+np.float32,0x7f4ac255,0x7f800000,3
+np.float32,0x3ebf6a60,0x3f890ccb,3
+np.float32,0x7f771e16,0x7f800000,3
+np.float32,0x3f41834e,0x3fa6582b,3
+np.float32,0x3f7f6f98,0x3fc52ef0,3
+np.float32,0x7e4ad775,0x7f800000,3
+np.float32,0x3eb39991,0x3f87f4c4,3
+np.float32,0x1e3f4,0x3f800000,3
+np.float32,0x7e84ba19,0x7f800000,3
+np.float32,0x80640be4,0x3f800000,3
+np.float32,0x3f459fc8,0x3fa81272,3
+np.float32,0x3f554ed0,0x3faf109b,3
+np.float32,0x3c6617,0x3f800000,3
+np.float32,0x7f441158,0x7f800000,3
+np.float32,0x7f66e6d8,0x7f800000,3
+np.float32,0x7f565152,0x7f800000,3
+np.float32,0x7f16d550,0x7f800000,3
+np.float32,0xbd4f1950,0x3f8029e5,3
+np.float32,0xcf722,0x3f800000,3
+np.float32,0x3f37d6fd,0x3fa272ad,3
+np.float32,0xff7324ea,0x7f800000,3
+np.float32,0x804bc246,0x3f800000,3
+np.float32,0x7f099ef8,0x7f800000,3
+np.float32,0x5f838b,0x3f800000,3
+np.float32,0x80523534,0x3f800000,3
+np.float32,0x3f595e84,0x3fb0fb50,3
+np.float32,0xfdef8ac8,0x7f800000,3
+np.float32,0x3d9a07,0x3f800000,3
+np.float32,0x410f61,0x3f800000,3
+np.float32,0xbf715dbb,0x3fbd3bcb,3
+np.float32,0xbedd4734,0x3f8c242f,3
+np.float32,0x7e86739a,0x7f800000,3
+np.float32,0x3e81f144,0x3f8424fe,3
+np.float32,0x7f6342d1,0x7f800000,3
+np.float32,0xff6919a3,0x7f800000,3
+np.float32,0xff051878,0x7f800000,3
+np.float32,0x800ba28f,0x3f800000,3
+np.float32,0xfefab3d8,0x7f800000,3
+np.float32,0xff612a84,0x7f800000,3
+np.float32,0x800cd5ab,0x3f800000,3
+np.float32,0x802a07ae,0x3f800000,3
+np.float32,0xfef6ee3a,0x7f800000,3
+np.float32,0x8037e896,0x3f800000,3
+np.float32,0x3ef2d86f,0x3f8eab7d,3
+np.float32,0x3eafe53d,0x3f87a0cb,3
+np.float32,0xba591c00,0x3f800003,3
+np.float32,0x3e9ed028,0x3f863508,3
+np.float32,0x4a12a8,0x3f800000,3
+np.float32,0xbee55c84,0x3f8d0f45,3
+np.float32,0x8038a8d3,0x3f800000,3
+np.float32,0xff055243,0x7f800000,3
+np.float32,0xbf659067,0x3fb701ca,3
+np.float32,0xbee36a86,0x3f8cd5e0,3
+np.float32,0x7f1d74c1,0x7f800000,3
+np.float32,0xbf7657df,0x3fbffaad,3
+np.float32,0x7e37ee34,0x7f800000,3
+np.float32,0xff04bc74,0x7f800000,3
+np.float32,0x806d194e,0x3f800000,3
+np.float32,0x7f5596c3,0x7f800000,3
+np.float32,0xbe09d268,0x3f81293e,3
+np.float32,0x79ff75,0x3f800000,3
+np.float32,0xbf55479c,0x3faf0d3e,3
+np.float32,0xbe5428ec,0x3f82c1d4,3
+np.float32,0x3f624134,0x3fb554d7,3
+np.float32,0x2ccb8a,0x3f800000,3
+np.float32,0xfc082040,0x7f800000,3
+np.float32,0xff315467,0x7f800000,3
+np.float32,0x3e6ea2d2,0x3f837dd5,3
+np.float32,0x8020fdd1,0x3f800000,3
+np.float32,0x7f0416a1,0x7f800000,3
+np.float32,0x710a1b,0x3f800000,3
+np.float32,0x3dfcd050,0x3f80f9fc,3
+np.float32,0xfe995e96,0x7f800000,3
+np.float32,0x3f020d00,0x3f90e006,3
+np.float32,0x8064263e,0x3f800000,3
+np.float32,0xfcee4160,0x7f800000,3
+np.float32,0x801b3a18,0x3f800000,3
+np.float32,0x3f62c984,0x3fb59955,3
+np.float32,0x806e8355,0x3f800000,3
+np.float32,0x7e94f65d,0x7f800000,3
+np.float32,0x1173de,0x3f800000,3
+np.float32,0x3e3ff3b7,0x3f824166,3
+np.float32,0x803b4aea,0x3f800000,3
+np.float32,0x804c5bcc,0x3f800000,3
+np.float32,0x509fe5,0x3f800000,3
+np.float32,0xbf33b5ee,0x3fa0db0b,3
+np.float32,0x3f2ac15c,0x3f9d8ba4,3
+np.float32,0x7f2c54f8,0x7f800000,3
+np.float32,0x7f33d933,0x7f800000,3
+np.float32,0xbf09b2b4,0x3f92f795,3
+np.float32,0x805db8d6,0x3f800000,3
+np.float32,0x6d6e66,0x3f800000,3
+np.float32,0x3ddfea92,0x3f80c40c,3
+np.float32,0xfda719b8,0x7f800000,3
+np.float32,0x5d657f,0x3f800000,3
+np.float32,0xbf005ba3,0x3f906df6,3
+np.float32,0xbf45e606,0x3fa8305c,3
+np.float32,0x5e9fd1,0x3f800000,3
+np.float32,0x8079dc45,0x3f800000,3
+np.float32,0x7e9c40e3,0x7f800000,3
+np.float32,0x6bd5f6,0x3f800000,3
+np.float32,0xbea14a0e,0x3f866761,3
+np.float32,0x7e7323f3,0x7f800000,3
+np.float32,0x7f0c0a79,0x7f800000,3
+np.float32,0xbf7d7aeb,0x3fc40b0f,3
+np.float32,0x437588,0x3f800000,3
+np.float32,0xbf356376,0x3fa17f63,3
+np.float32,0x7f129921,0x7f800000,3
+np.float32,0x7f47a52e,0x7f800000,3
+np.float32,0xba8cb400,0x3f800005,3
+np.float32,0x802284e0,0x3f800000,3
+np.float32,0xbe820f56,0x3f8426ec,3
+np.float32,0x7f2ef6cf,0x7f800000,3
+np.float32,0xbf70a090,0x3fbcd501,3
+np.float32,0xbf173fea,0x3f96ff6d,3
+np.float32,0x3e19c489,0x3f817224,3
+np.float32,0x7f429b30,0x7f800000,3
+np.float32,0xbdae4118,0x3f8076af,3
+np.float32,0x3e70ad30,0x3f838d41,3
+np.float32,0x335fed,0x3f800000,3
+np.float32,0xff5359cf,0x7f800000,3
+np.float32,0xbf17e42b,0x3f9732f1,3
+np.float32,0xff3a950b,0x7f800000,3
+np.float32,0xbcca70c0,0x3f800a02,3
+np.float32,0x3f2cda62,0x3f9e4dad,3
+np.float32,0x3f50c185,0x3facf805,3
+np.float32,0x80000001,0x3f800000,3
+np.float32,0x807b86d2,0x3f800000,3
+np.float32,0x8010c2cf,0x3f800000,3
+np.float32,0x3f130fb8,0x3f95b519,3
+np.float32,0x807dc546,0x3f800000,3
+np.float32,0xbee20740,0x3f8cad3f,3
+np.float32,0x80800000,0x3f800000,3
+np.float32,0x3cbd90c0,0x3f8008c6,3
+np.float32,0x3e693488,0x3f835571,3
+np.float32,0xbe70cd44,0x3f838e35,3
+np.float32,0xbe348dc8,0x3f81feb1,3
+np.float32,0x3f31ea90,0x3fa02d3f,3
+np.float32,0xfcd7e180,0x7f800000,3
+np.float32,0xbe30a75c,0x3f81e8d0,3
+np.float32,0x3e552c5a,0x3f82c89d,3
+np.float32,0xff513f74,0x7f800000,3
+np.float32,0xbdb16248,0x3f807afd,3
+np.float64,0x7fbbf954e437f2a9,0x7ff0000000000000,1
+np.float64,0x581bbf0cb0379,0x3ff0000000000000,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xffb959a2a632b348,0x7ff0000000000000,1
+np.float64,0xbfdbd6baebb7ad76,0x3ff189a5ca25a6e1,1
+np.float64,0xbfd094ec9aa129da,0x3ff08a3f6b918065,1
+np.float64,0x3fe236753f646cea,0x3ff2a982660b8b43,1
+np.float64,0xbfe537fadfaa6ff6,0x3ff3a5f1c49c31bf,1
+np.float64,0xbfe31fa7dc663f50,0x3ff2f175374aef0e,1
+np.float64,0x3fc4b6569f296cb0,0x3ff035bde801bb53,1
+np.float64,0x800ce3c00f99c780,0x3ff0000000000000,1
+np.float64,0xbfebcde33e779bc6,0x3ff66de82cd30fc5,1
+np.float64,0x800dc09d3b7b813b,0x3ff0000000000000,1
+np.float64,0x80067d4c450cfa99,0x3ff0000000000000,1
+np.float64,0x1f6ade203ed7,0x3ff0000000000000,1
+np.float64,0xbfd4e311eca9c624,0x3ff0dc1383d6c3db,1
+np.float64,0x800649b3a54c9368,0x3ff0000000000000,1
+np.float64,0xcc14d1ab9829a,0x3ff0000000000000,1
+np.float64,0x3fc290c5bb25218b,0x3ff02b290f46dd6d,1
+np.float64,0x3fe78eb8376f1d70,0x3ff488f3bc259537,1
+np.float64,0xffc60f58e82c1eb0,0x7ff0000000000000,1
+np.float64,0x3fd35666ad26accd,0x3ff0bc6573da6bcd,1
+np.float64,0x7fc20257a62404ae,0x7ff0000000000000,1
+np.float64,0x80076d842e0edb09,0x3ff0000000000000,1
+np.float64,0x3fd8e44b08b1c898,0x3ff139b9a1f8428e,1
+np.float64,0x7fd6f6fc7a2dedf8,0x7ff0000000000000,1
+np.float64,0x3fa01b9f0820373e,0x3ff00206f8ad0f1b,1
+np.float64,0x69ed190ed3da4,0x3ff0000000000000,1
+np.float64,0xbfd997eb34b32fd6,0x3ff14be65a5db4a0,1
+np.float64,0x7feada2d0935b459,0x7ff0000000000000,1
+np.float64,0xbf80987120213100,0x3ff000226d29a9fc,1
+np.float64,0xbfef203e37fe407c,0x3ff82f51f04e8821,1
+np.float64,0xffe3dcf91fa7b9f2,0x7ff0000000000000,1
+np.float64,0x9a367283346cf,0x3ff0000000000000,1
+np.float64,0x800feb09f7bfd614,0x3ff0000000000000,1
+np.float64,0xbfe0319f9520633f,0x3ff217c5205c403f,1
+np.float64,0xbfa91eabd4323d50,0x3ff004ee4347f627,1
+np.float64,0x3fd19cbf7d23397f,0x3ff09c13e8e43571,1
+np.float64,0xffeb8945f0b7128b,0x7ff0000000000000,1
+np.float64,0x800a0eb4f2141d6a,0x3ff0000000000000,1
+np.float64,0xffe83e7312f07ce6,0x7ff0000000000000,1
+np.float64,0xffca53fee834a7fc,0x7ff0000000000000,1
+np.float64,0x800881cbf1710398,0x3ff0000000000000,1
+np.float64,0x80003e6abbe07cd6,0x3ff0000000000000,1
+np.float64,0xbfef6a998afed533,0x3ff859b7852d1b4d,1
+np.float64,0x3fd4eb7577a9d6eb,0x3ff0dcc601261aab,1
+np.float64,0xbfc9c12811338250,0x3ff05331268b05c8,1
+np.float64,0x7fddf84e5e3bf09c,0x7ff0000000000000,1
+np.float64,0xbfd4d6fbbc29adf8,0x3ff0db12db19d187,1
+np.float64,0x80077892bfaef126,0x3ff0000000000000,1
+np.float64,0xffae9d49543d3a90,0x7ff0000000000000,1
+np.float64,0xbfd8bef219317de4,0x3ff136034e5d2f1b,1
+np.float64,0xffe89c74ddb138e9,0x7ff0000000000000,1
+np.float64,0x8003b6bbb7e76d78,0x3ff0000000000000,1
+np.float64,0x315a4e8462b4b,0x3ff0000000000000,1
+np.float64,0x800ee616edddcc2e,0x3ff0000000000000,1
+np.float64,0xdfb27f97bf650,0x3ff0000000000000,1
+np.float64,0x8004723dc328e47c,0x3ff0000000000000,1
+np.float64,0xbfe529500daa52a0,0x3ff3a0b9b33fc84c,1
+np.float64,0xbfe4e46a7ce9c8d5,0x3ff3886ce0f92612,1
+np.float64,0xbf52003680240000,0x3ff00000a203d61a,1
+np.float64,0xffd3400458268008,0x7ff0000000000000,1
+np.float64,0x80076deb444edbd7,0x3ff0000000000000,1
+np.float64,0xa612f6c14c27,0x3ff0000000000000,1
+np.float64,0xbfd41c74c9a838ea,0x3ff0cbe61e16aecf,1
+np.float64,0x43f464a887e8d,0x3ff0000000000000,1
+np.float64,0x800976e748b2edcf,0x3ff0000000000000,1
+np.float64,0xffc79d6ba12f3ad8,0x7ff0000000000000,1
+np.float64,0xffd6dbcb022db796,0x7ff0000000000000,1
+np.float64,0xffd6a9672a2d52ce,0x7ff0000000000000,1
+np.float64,0x3fe95dcfa632bb9f,0x3ff54bbad2ee919e,1
+np.float64,0x3febadd2e1375ba6,0x3ff65e336c47c018,1
+np.float64,0x7fd47c37d828f86f,0x7ff0000000000000,1
+np.float64,0xbfd4ea59e0a9d4b4,0x3ff0dcae6af3e443,1
+np.float64,0x2c112afc58226,0x3ff0000000000000,1
+np.float64,0x8008122bced02458,0x3ff0000000000000,1
+np.float64,0x7fe7105ab3ee20b4,0x7ff0000000000000,1
+np.float64,0x80089634df312c6a,0x3ff0000000000000,1
+np.float64,0x68e9fbc8d1d40,0x3ff0000000000000,1
+np.float64,0xbfec1e1032f83c20,0x3ff69590b9f18ea8,1
+np.float64,0xbfedf181623be303,0x3ff787ef48935dc6,1
+np.float64,0xffe8600457f0c008,0x7ff0000000000000,1
+np.float64,0x7a841ec6f5084,0x3ff0000000000000,1
+np.float64,0x459a572e8b34c,0x3ff0000000000000,1
+np.float64,0x3fe8a232bef14465,0x3ff4fac1780f731e,1
+np.float64,0x3fcb37597d366eb3,0x3ff05cf08ab14ebd,1
+np.float64,0xbfb0261d00204c38,0x3ff00826fb86ca8a,1
+np.float64,0x3fc6e7a6dd2dcf4e,0x3ff041c1222ffa79,1
+np.float64,0xee65dd03dccbc,0x3ff0000000000000,1
+np.float64,0xffe26fdc23e4dfb8,0x7ff0000000000000,1
+np.float64,0x7fe8d6c8cab1ad91,0x7ff0000000000000,1
+np.float64,0xbfeb64bf2676c97e,0x3ff63abb8607828c,1
+np.float64,0x3fd28417b425082f,0x3ff0ac9eb22a732b,1
+np.float64,0xbfd26835b3a4d06c,0x3ff0aa94c48fb6d2,1
+np.float64,0xffec617a01b8c2f3,0x7ff0000000000000,1
+np.float64,0xe1bfff01c3800,0x3ff0000000000000,1
+np.float64,0x3fd4def913a9bdf4,0x3ff0dbbc7271046f,1
+np.float64,0x94f4c17129e98,0x3ff0000000000000,1
+np.float64,0x8009b2eaa33365d6,0x3ff0000000000000,1
+np.float64,0x3fd9633b41b2c678,0x3ff1468388bdfb65,1
+np.float64,0xffe0ae5c80e15cb8,0x7ff0000000000000,1
+np.float64,0x7fdfc35996bf86b2,0x7ff0000000000000,1
+np.float64,0x3fcfc5bdc23f8b7c,0x3ff07ed5caa4545c,1
+np.float64,0xd48b4907a9169,0x3ff0000000000000,1
+np.float64,0xbfe0a2cc52614598,0x3ff2361665895d95,1
+np.float64,0xbfe9068f90720d1f,0x3ff525b82491a1a5,1
+np.float64,0x4238b9208472,0x3ff0000000000000,1
+np.float64,0x800e6b2bf69cd658,0x3ff0000000000000,1
+np.float64,0x7fb638b6ae2c716c,0x7ff0000000000000,1
+np.float64,0x7fe267641764cec7,0x7ff0000000000000,1
+np.float64,0xffc0933d3521267c,0x7ff0000000000000,1
+np.float64,0x7fddfdfb533bfbf6,0x7ff0000000000000,1
+np.float64,0xced2a8e99da55,0x3ff0000000000000,1
+np.float64,0x2a80d5165501b,0x3ff0000000000000,1
+np.float64,0xbfeead2ab63d5a55,0x3ff7eeb5cbcfdcab,1
+np.float64,0x80097f6f92f2fee0,0x3ff0000000000000,1
+np.float64,0x3fee1f29b77c3e54,0x3ff7a0a58c13df62,1
+np.float64,0x3f9d06b8383a0d70,0x3ff001a54a2d8cf8,1
+np.float64,0xbfc8b41d3f31683c,0x3ff04c85379dd6b0,1
+np.float64,0xffd2a04c1e254098,0x7ff0000000000000,1
+np.float64,0xbfb71c01e02e3800,0x3ff010b34220e838,1
+np.float64,0xbfe69249ef6d2494,0x3ff425e48d1e938b,1
+np.float64,0xffefffffffffffff,0x7ff0000000000000,1
+np.float64,0x3feb1d52fbf63aa6,0x3ff618813ae922d7,1
+np.float64,0x7fb8d1a77e31a34e,0x7ff0000000000000,1
+np.float64,0xffc3cfc4ed279f88,0x7ff0000000000000,1
+np.float64,0x2164b9fc42c98,0x3ff0000000000000,1
+np.float64,0x3fbb868cee370d1a,0x3ff017b31b0d4d27,1
+np.float64,0x3fcd6dea583adbd5,0x3ff06cbd16bf44a0,1
+np.float64,0xbfecd041d479a084,0x3ff6efb25f61012d,1
+np.float64,0xbfb0552e6e20aa60,0x3ff00856ca83834a,1
+np.float64,0xe6293cbfcc528,0x3ff0000000000000,1
+np.float64,0x7fba58394034b072,0x7ff0000000000000,1
+np.float64,0x33bc96d467794,0x3ff0000000000000,1
+np.float64,0xffe90ea86bf21d50,0x7ff0000000000000,1
+np.float64,0xbfc626ea6d2c4dd4,0x3ff03d7e01ec3849,1
+np.float64,0x65b56fe4cb6af,0x3ff0000000000000,1
+np.float64,0x3fea409fb7f4813f,0x3ff5b171deab0ebd,1
+np.float64,0x3fe849c1df709384,0x3ff4d59063ff98c4,1
+np.float64,0x169073082d20f,0x3ff0000000000000,1
+np.float64,0xcc8b6add9916e,0x3ff0000000000000,1
+np.float64,0xbfef3d78d5fe7af2,0x3ff83fecc26abeea,1
+np.float64,0x3fe8c65a4a718cb4,0x3ff50a23bfeac7df,1
+np.float64,0x3fde9fa5c8bd3f4c,0x3ff1ddeb12b9d623,1
+np.float64,0xffe2af536da55ea6,0x7ff0000000000000,1
+np.float64,0x800186d0b0c30da2,0x3ff0000000000000,1
+np.float64,0x3fe9ba3c1d737478,0x3ff574ab2bf3a560,1
+np.float64,0xbfe1489c46a29138,0x3ff2641d36b30e21,1
+np.float64,0xbfe4b6b7c0e96d70,0x3ff37880ac8b0540,1
+np.float64,0x800e66ad82fccd5b,0x3ff0000000000000,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x7febb0fd477761fa,0x7ff0000000000000,1
+np.float64,0xbfdc433f2eb8867e,0x3ff195ec2a6cce27,1
+np.float64,0x3fe12c5a172258b4,0x3ff25c225b8a34bb,1
+np.float64,0xbfef6f116c3ede23,0x3ff85c47eaed49a0,1
+np.float64,0x800af6f60f35edec,0x3ff0000000000000,1
+np.float64,0xffe567999a2acf32,0x7ff0000000000000,1
+np.float64,0xbfc5ac5ae72b58b4,0x3ff03adb50ec04f3,1
+np.float64,0x3fea1b57e23436b0,0x3ff5a06f98541767,1
+np.float64,0x7fcc3e36fb387c6d,0x7ff0000000000000,1
+np.float64,0x8000c8dc698191ba,0x3ff0000000000000,1
+np.float64,0x3fee5085ed7ca10c,0x3ff7bb92f61245b8,1
+np.float64,0x7fbb9f803a373eff,0x7ff0000000000000,1
+np.float64,0xbfe1e5e806e3cbd0,0x3ff2918f2d773007,1
+np.float64,0x8008f8c3f3b1f188,0x3ff0000000000000,1
+np.float64,0x7fe53df515ea7be9,0x7ff0000000000000,1
+np.float64,0x7fdbb87fb3b770fe,0x7ff0000000000000,1
+np.float64,0x3fefcc0f50ff981f,0x3ff89210a6a04e6b,1
+np.float64,0x3fe33f87d0267f10,0x3ff2fb989ea4f2bc,1
+np.float64,0x1173992022e8,0x3ff0000000000000,1
+np.float64,0x3fef534632bea68c,0x3ff84c5ca9713ff9,1
+np.float64,0x3fc5991d552b3238,0x3ff03a72bfdb6e5f,1
+np.float64,0x3fdad90dc1b5b21c,0x3ff16db868180034,1
+np.float64,0xffe20b8078e41700,0x7ff0000000000000,1
+np.float64,0x7fdf409a82be8134,0x7ff0000000000000,1
+np.float64,0x3fccb7e691396fcd,0x3ff06786b6ccdbcb,1
+np.float64,0xffe416e0b7282dc1,0x7ff0000000000000,1
+np.float64,0xffe3a8a981275152,0x7ff0000000000000,1
+np.float64,0x3fd9c8bd31b3917c,0x3ff150ee6f5f692f,1
+np.float64,0xffeab6fef6356dfd,0x7ff0000000000000,1
+np.float64,0x3fe9c5e3faf38bc8,0x3ff579e18c9bd548,1
+np.float64,0x800b173e44762e7d,0x3ff0000000000000,1
+np.float64,0xffe2719db764e33b,0x7ff0000000000000,1
+np.float64,0x3fd1fcf31223f9e6,0x3ff0a2da7ad99856,1
+np.float64,0x80082c4afcd05896,0x3ff0000000000000,1
+np.float64,0xa56e5e4b4adcc,0x3ff0000000000000,1
+np.float64,0xffbbbddab2377bb8,0x7ff0000000000000,1
+np.float64,0x3b3927c076726,0x3ff0000000000000,1
+np.float64,0x3fec03fd58f807fb,0x3ff6889b8a774728,1
+np.float64,0xbfaa891fb4351240,0x3ff00580987bd914,1
+np.float64,0x7fb4800c4a290018,0x7ff0000000000000,1
+np.float64,0xffbb5d2b6036ba58,0x7ff0000000000000,1
+np.float64,0x7fd6608076acc100,0x7ff0000000000000,1
+np.float64,0x31267e4c624d1,0x3ff0000000000000,1
+np.float64,0x33272266664e5,0x3ff0000000000000,1
+np.float64,0x47bb37f28f768,0x3ff0000000000000,1
+np.float64,0x3fe134bb4ee26977,0x3ff25e7ea647a928,1
+np.float64,0xbfe2b5f42ba56be8,0x3ff2d05cbdc7344b,1
+np.float64,0xbfe0e013fd61c028,0x3ff246dfce572914,1
+np.float64,0x7fecedcda4f9db9a,0x7ff0000000000000,1
+np.float64,0x8001816c2da302d9,0x3ff0000000000000,1
+np.float64,0xffced8b65b3db16c,0x7ff0000000000000,1
+np.float64,0xffdc1d4a0b383a94,0x7ff0000000000000,1
+np.float64,0x7fe94e7339f29ce5,0x7ff0000000000000,1
+np.float64,0x33fb846667f71,0x3ff0000000000000,1
+np.float64,0x800a1380e9542702,0x3ff0000000000000,1
+np.float64,0x800b74eaa776e9d6,0x3ff0000000000000,1
+np.float64,0x5681784aad030,0x3ff0000000000000,1
+np.float64,0xbfee0eb7917c1d6f,0x3ff797b949f7f6b4,1
+np.float64,0xffe4ec5fd2a9d8bf,0x7ff0000000000000,1
+np.float64,0xbfcd7401dd3ae804,0x3ff06cea52c792c0,1
+np.float64,0x800587563beb0ead,0x3ff0000000000000,1
+np.float64,0x3fc15c6f3322b8de,0x3ff025bbd030166d,1
+np.float64,0x7feb6b4caf76d698,0x7ff0000000000000,1
+np.float64,0x7fe136ef82a26dde,0x7ff0000000000000,1
+np.float64,0xf592dac3eb25c,0x3ff0000000000000,1
+np.float64,0x7fd300baf6a60175,0x7ff0000000000000,1
+np.float64,0x7fc880de9e3101bc,0x7ff0000000000000,1
+np.float64,0x7fe7a1aa5caf4354,0x7ff0000000000000,1
+np.float64,0x2f9b8e0e5f373,0x3ff0000000000000,1
+np.float64,0xffcc9071993920e4,0x7ff0000000000000,1
+np.float64,0x8009e151b313c2a4,0x3ff0000000000000,1
+np.float64,0xbfd46e2d18a8dc5a,0x3ff0d27a7b37c1ae,1
+np.float64,0x3fe65c7961acb8f3,0x3ff4116946062a4c,1
+np.float64,0x7fd31b371626366d,0x7ff0000000000000,1
+np.float64,0x98dc924d31b93,0x3ff0000000000000,1
+np.float64,0x268bef364d17f,0x3ff0000000000000,1
+np.float64,0x7fd883ba56310774,0x7ff0000000000000,1
+np.float64,0x3fc53f01a32a7e03,0x3ff0388dea9cd63e,1
+np.float64,0xffe1ea8c0563d518,0x7ff0000000000000,1
+np.float64,0x3fd0bf0e63a17e1d,0x3ff08d0577f5ffa6,1
+np.float64,0x7fef42418f7e8482,0x7ff0000000000000,1
+np.float64,0x8000bccd38c1799b,0x3ff0000000000000,1
+np.float64,0xbfe6c48766ed890f,0x3ff43936fa4048c8,1
+np.float64,0xbfb2a38f3a254720,0x3ff00adc7f7b2822,1
+np.float64,0x3fd5262b2eaa4c56,0x3ff0e1af492c08f5,1
+np.float64,0x80065b4691ecb68e,0x3ff0000000000000,1
+np.float64,0xfb6b9e9ff6d74,0x3ff0000000000000,1
+np.float64,0x8006c71e6ecd8e3e,0x3ff0000000000000,1
+np.float64,0x3fd0a3e43ca147c8,0x3ff08b3ad7b42485,1
+np.float64,0xbfc82d8607305b0c,0x3ff04949d6733ef6,1
+np.float64,0xde048c61bc092,0x3ff0000000000000,1
+np.float64,0xffcf73e0fa3ee7c0,0x7ff0000000000000,1
+np.float64,0xbfe8639d7830c73b,0x3ff4e05f97948376,1
+np.float64,0x8010000000000000,0x3ff0000000000000,1
+np.float64,0x67f01a2acfe04,0x3ff0000000000000,1
+np.float64,0x3fe222e803e445d0,0x3ff2a3a75e5f29d8,1
+np.float64,0xffef84c6387f098b,0x7ff0000000000000,1
+np.float64,0x3fe5969c1e6b2d38,0x3ff3c80130462bb2,1
+np.float64,0x8009f56953d3ead3,0x3ff0000000000000,1
+np.float64,0x3fe05c9b6360b937,0x3ff2232e1cba5617,1
+np.float64,0x3fd8888d63b1111b,0x3ff130a5b788d52f,1
+np.float64,0xffe3a9e6f26753ce,0x7ff0000000000000,1
+np.float64,0x800e2aaa287c5554,0x3ff0000000000000,1
+np.float64,0x3fea8d6c82351ad9,0x3ff5d4d8cde9a11d,1
+np.float64,0x7feef700723dee00,0x7ff0000000000000,1
+np.float64,0x3fa5cb77242b96e0,0x3ff003b62b3e50f1,1
+np.float64,0x7fb68f0a862d1e14,0x7ff0000000000000,1
+np.float64,0x7fb97ee83432fdcf,0x7ff0000000000000,1
+np.float64,0x7fd74a78632e94f0,0x7ff0000000000000,1
+np.float64,0x7fcfe577713fcaee,0x7ff0000000000000,1
+np.float64,0xffe192ee5ea325dc,0x7ff0000000000000,1
+np.float64,0x477d6ae48efae,0x3ff0000000000000,1
+np.float64,0xffe34d5237669aa4,0x7ff0000000000000,1
+np.float64,0x7fe3ce8395a79d06,0x7ff0000000000000,1
+np.float64,0x80019c01ffa33805,0x3ff0000000000000,1
+np.float64,0x74b5b56ce96b7,0x3ff0000000000000,1
+np.float64,0x7fe05ecdeda0bd9b,0x7ff0000000000000,1
+np.float64,0xffe9693eb232d27d,0x7ff0000000000000,1
+np.float64,0xffd2be2c7da57c58,0x7ff0000000000000,1
+np.float64,0x800dbd5cbc1b7aba,0x3ff0000000000000,1
+np.float64,0xbfa36105d426c210,0x3ff002ef2e3a87f7,1
+np.float64,0x800b2d69fb765ad4,0x3ff0000000000000,1
+np.float64,0xbfdb81c9a9370394,0x3ff1802d409cbf7a,1
+np.float64,0x7fd481d014a9039f,0x7ff0000000000000,1
+np.float64,0xffe66c3c1fecd878,0x7ff0000000000000,1
+np.float64,0x3fc55865192ab0c8,0x3ff03915b51e8839,1
+np.float64,0xd6a78987ad4f1,0x3ff0000000000000,1
+np.float64,0x800c6cc80d58d990,0x3ff0000000000000,1
+np.float64,0x979435a12f29,0x3ff0000000000000,1
+np.float64,0xbfbd971e7a3b2e40,0x3ff01b647e45f5a6,1
+np.float64,0x80067565bfeceacc,0x3ff0000000000000,1
+np.float64,0x8001ad689ce35ad2,0x3ff0000000000000,1
+np.float64,0x7fa43253dc2864a7,0x7ff0000000000000,1
+np.float64,0xbfe3dda307e7bb46,0x3ff32ef99a2efe1d,1
+np.float64,0x3fe5d7b395ebaf68,0x3ff3dfd33cdc8ef4,1
+np.float64,0xd94cc9c3b2999,0x3ff0000000000000,1
+np.float64,0x3fee5a513fbcb4a2,0x3ff7c0f17b876ce5,1
+np.float64,0xffe27761fa64eec4,0x7ff0000000000000,1
+np.float64,0x3feb788119b6f102,0x3ff64446f67f4efa,1
+np.float64,0xbfed6e10dffadc22,0x3ff741d5ef610ca0,1
+np.float64,0x7fe73cf98b2e79f2,0x7ff0000000000000,1
+np.float64,0x7847d09af08fb,0x3ff0000000000000,1
+np.float64,0x29ded2da53bdb,0x3ff0000000000000,1
+np.float64,0xbfe51c1ec1aa383e,0x3ff39c0b7cf832e2,1
+np.float64,0xbfeafd5e65f5fabd,0x3ff609548a787f57,1
+np.float64,0x3fd872a26fb0e545,0x3ff12e7fbd95505c,1
+np.float64,0x7fed6b7c1b7ad6f7,0x7ff0000000000000,1
+np.float64,0xffe7ba9ec16f753d,0x7ff0000000000000,1
+np.float64,0x7f89b322f0336645,0x7ff0000000000000,1
+np.float64,0xbfad1677383a2cf0,0x3ff0069ca67e7baa,1
+np.float64,0x3fe0906d04a120da,0x3ff2311b04b7bfef,1
+np.float64,0xffe4b3c9d4296793,0x7ff0000000000000,1
+np.float64,0xbfe476bb0ce8ed76,0x3ff36277d2921a74,1
+np.float64,0x7fc35655cf26acab,0x7ff0000000000000,1
+np.float64,0x7fe9980f0373301d,0x7ff0000000000000,1
+np.float64,0x9e6e04cb3cdc1,0x3ff0000000000000,1
+np.float64,0x800b89e0afb713c2,0x3ff0000000000000,1
+np.float64,0x800bd951a3f7b2a4,0x3ff0000000000000,1
+np.float64,0x29644a9e52c8a,0x3ff0000000000000,1
+np.float64,0x3fe1be2843637c51,0x3ff285e90d8387e4,1
+np.float64,0x7fa233cce4246799,0x7ff0000000000000,1
+np.float64,0xbfcfb7bc2d3f6f78,0x3ff07e657de3e2ed,1
+np.float64,0xffd7c953e7af92a8,0x7ff0000000000000,1
+np.float64,0xbfc5bbaf772b7760,0x3ff03b2ee4febb1e,1
+np.float64,0x8007b7315a6f6e63,0x3ff0000000000000,1
+np.float64,0xbfe906d902320db2,0x3ff525d7e16acfe0,1
+np.float64,0x3fde33d8553c67b1,0x3ff1d09faa19aa53,1
+np.float64,0x61fe76a0c3fcf,0x3ff0000000000000,1
+np.float64,0xa75e355b4ebc7,0x3ff0000000000000,1
+np.float64,0x3fc9e6d86033cdb1,0x3ff05426299c7064,1
+np.float64,0x7fd83f489eb07e90,0x7ff0000000000000,1
+np.float64,0x8000000000000001,0x3ff0000000000000,1
+np.float64,0x80014434ae62886a,0x3ff0000000000000,1
+np.float64,0xbfe21af9686435f3,0x3ff2a149338bdefe,1
+np.float64,0x9354e6cd26a9d,0x3ff0000000000000,1
+np.float64,0xb42b95f768573,0x3ff0000000000000,1
+np.float64,0xbfecb4481bb96890,0x3ff6e15d269dd651,1
+np.float64,0x3f97842ae82f0840,0x3ff0011485156f28,1
+np.float64,0xffdef63d90bdec7c,0x7ff0000000000000,1
+np.float64,0x7fe511a8d36a2351,0x7ff0000000000000,1
+np.float64,0xbf8cb638a0396c80,0x3ff000670c318fb6,1
+np.float64,0x3fe467e1f668cfc4,0x3ff35d65f93ccac6,1
+np.float64,0xbfce7d88f03cfb10,0x3ff074c22475fe5b,1
+np.float64,0x6d0a4994da14a,0x3ff0000000000000,1
+np.float64,0xbfb3072580260e48,0x3ff00b51d3913e9f,1
+np.float64,0x8008fcde36b1f9bd,0x3ff0000000000000,1
+np.float64,0x3fd984df66b309c0,0x3ff149f29125eca4,1
+np.float64,0xffee2a10fe7c5421,0x7ff0000000000000,1
+np.float64,0x80039168ace722d2,0x3ff0000000000000,1
+np.float64,0xffda604379b4c086,0x7ff0000000000000,1
+np.float64,0xffdc6a405bb8d480,0x7ff0000000000000,1
+np.float64,0x3fe62888b26c5111,0x3ff3fdda754c4372,1
+np.float64,0x8008b452cb5168a6,0x3ff0000000000000,1
+np.float64,0x6165d540c2cbb,0x3ff0000000000000,1
+np.float64,0xbfee0c04d17c180a,0x3ff796431c64bcbe,1
+np.float64,0x800609b8448c1371,0x3ff0000000000000,1
+np.float64,0x800fc3fca59f87f9,0x3ff0000000000000,1
+np.float64,0x77f64848efeca,0x3ff0000000000000,1
+np.float64,0x8007cf522d8f9ea5,0x3ff0000000000000,1
+np.float64,0xbfe9fb0b93f3f617,0x3ff591cb0052e22c,1
+np.float64,0x7fd569d5f0aad3ab,0x7ff0000000000000,1
+np.float64,0x7fe5cf489d6b9e90,0x7ff0000000000000,1
+np.float64,0x7fd6e193e92dc327,0x7ff0000000000000,1
+np.float64,0xf78988a5ef131,0x3ff0000000000000,1
+np.float64,0x3fe8f97562b1f2eb,0x3ff5201080fbc12d,1
+np.float64,0x7febfd69d7b7fad3,0x7ff0000000000000,1
+np.float64,0xffc07b5c1720f6b8,0x7ff0000000000000,1
+np.float64,0xbfd966926832cd24,0x3ff146da9adf492e,1
+np.float64,0x7fef5bd9edfeb7b3,0x7ff0000000000000,1
+np.float64,0xbfd2afbc96255f7a,0x3ff0afd601febf44,1
+np.float64,0x7fdd4ea6293a9d4b,0x7ff0000000000000,1
+np.float64,0xbfe8a1e916b143d2,0x3ff4faa23c2793e5,1
+np.float64,0x800188fcd8c311fa,0x3ff0000000000000,1
+np.float64,0xbfe30803f1661008,0x3ff2e9fc729baaee,1
+np.float64,0x7fefffffffffffff,0x7ff0000000000000,1
+np.float64,0x3fd287bec3250f7e,0x3ff0ace34d3102f6,1
+np.float64,0x1f0ee9443e1de,0x3ff0000000000000,1
+np.float64,0xbfd92f73da325ee8,0x3ff14143e4fa2c5a,1
+np.float64,0x3fed7c9bdffaf938,0x3ff74984168734d3,1
+np.float64,0x8002c4d1696589a4,0x3ff0000000000000,1
+np.float64,0xfe03011bfc060,0x3ff0000000000000,1
+np.float64,0x7f7a391e6034723c,0x7ff0000000000000,1
+np.float64,0xffd6fd46f82dfa8e,0x7ff0000000000000,1
+np.float64,0xbfd7520a742ea414,0x3ff112f1ba5d4f91,1
+np.float64,0x8009389d8812713b,0x3ff0000000000000,1
+np.float64,0x7fefb846aaff708c,0x7ff0000000000000,1
+np.float64,0x3fd98a0983331413,0x3ff14a79efb8adbf,1
+np.float64,0xbfd897158db12e2c,0x3ff132137902cf3e,1
+np.float64,0xffc4048d5928091c,0x7ff0000000000000,1
+np.float64,0x80036ae46046d5ca,0x3ff0000000000000,1
+np.float64,0x7faba7ed3c374fd9,0x7ff0000000000000,1
+np.float64,0xbfec4265e1f884cc,0x3ff6a7b8602422c9,1
+np.float64,0xaa195e0b5432c,0x3ff0000000000000,1
+np.float64,0x3feac15d317582ba,0x3ff5ed115758145f,1
+np.float64,0x6c13a5bcd8275,0x3ff0000000000000,1
+np.float64,0xbfed20b8883a4171,0x3ff7194dbd0dc988,1
+np.float64,0x800cde65c899bccc,0x3ff0000000000000,1
+np.float64,0x7c72912af8e53,0x3ff0000000000000,1
+np.float64,0x3fe49d2bb4e93a57,0x3ff36fab3aba15d4,1
+np.float64,0xbfd598fa02ab31f4,0x3ff0eb72fc472025,1
+np.float64,0x8007a191712f4324,0x3ff0000000000000,1
+np.float64,0xbfdeb14872bd6290,0x3ff1e01ca83f35fd,1
+np.float64,0xbfe1da46b3e3b48e,0x3ff28e23ad2f5615,1
+np.float64,0x800a2f348e745e69,0x3ff0000000000000,1
+np.float64,0xbfee66928afccd25,0x3ff7c7ac7dbb3273,1
+np.float64,0xffd78a0a2b2f1414,0x7ff0000000000000,1
+np.float64,0x7fc5fa80b82bf500,0x7ff0000000000000,1
+np.float64,0x800e6d7260dcdae5,0x3ff0000000000000,1
+np.float64,0xbfd6cff2aaad9fe6,0x3ff106f78ee61642,1
+np.float64,0x7fe1041d1d220839,0x7ff0000000000000,1
+np.float64,0xbfdf75586cbeeab0,0x3ff1f8dbaa7e57f0,1
+np.float64,0xffdcaae410b955c8,0x7ff0000000000000,1
+np.float64,0x800fe5e0d1ffcbc2,0x3ff0000000000000,1
+np.float64,0x800d7999527af333,0x3ff0000000000000,1
+np.float64,0xbfe62c233bac5846,0x3ff3ff34220a204c,1
+np.float64,0x7fe99bbff8f3377f,0x7ff0000000000000,1
+np.float64,0x7feeaf471d3d5e8d,0x7ff0000000000000,1
+np.float64,0xd5904ff5ab20a,0x3ff0000000000000,1
+np.float64,0x3fd07aae3320f55c,0x3ff08888c227c968,1
+np.float64,0x7fea82b8dff50571,0x7ff0000000000000,1
+np.float64,0xffef2db9057e5b71,0x7ff0000000000000,1
+np.float64,0xbfe2077fef640f00,0x3ff29b7dd0d39d36,1
+np.float64,0xbfe09a4d7c61349b,0x3ff233c7e88881f4,1
+np.float64,0x3fda50c4cbb4a188,0x3ff15f28a71deee7,1
+np.float64,0x7fe7d9ee6b2fb3dc,0x7ff0000000000000,1
+np.float64,0x3febbf6faeb77edf,0x3ff666d13682ea93,1
+np.float64,0xc401a32988035,0x3ff0000000000000,1
+np.float64,0xbfeab30aa8f56615,0x3ff5e65dcc6603f8,1
+np.float64,0x92c8cea32591a,0x3ff0000000000000,1
+np.float64,0xbff0000000000000,0x3ff8b07551d9f550,1
+np.float64,0xbfbddfb4dc3bbf68,0x3ff01bebaec38faa,1
+np.float64,0xbfd8de3e2a31bc7c,0x3ff1391f4830d20b,1
+np.float64,0xffc83a8f8a307520,0x7ff0000000000000,1
+np.float64,0x3fee026ef53c04de,0x3ff7911337085827,1
+np.float64,0x7fbaf380b235e700,0x7ff0000000000000,1
+np.float64,0xffe5b89fa62b713f,0x7ff0000000000000,1
+np.float64,0xbfdc1ff54ab83fea,0x3ff191e8c0b60bb2,1
+np.float64,0x6ae3534cd5c6b,0x3ff0000000000000,1
+np.float64,0xbfea87e558750fcb,0x3ff5d24846013794,1
+np.float64,0xffe0f467bee1e8cf,0x7ff0000000000000,1
+np.float64,0x7fee3b0dc7bc761b,0x7ff0000000000000,1
+np.float64,0x3fed87521afb0ea4,0x3ff74f2f5cd36a5c,1
+np.float64,0x7b3c9882f6794,0x3ff0000000000000,1
+np.float64,0x7fdd1a62243a34c3,0x7ff0000000000000,1
+np.float64,0x800f1dc88d3e3b91,0x3ff0000000000000,1
+np.float64,0x7fc3213cfa264279,0x7ff0000000000000,1
+np.float64,0x3fe40e0f3d681c1e,0x3ff33f135e9d5ded,1
+np.float64,0x7febf14e51f7e29c,0x7ff0000000000000,1
+np.float64,0xffe96c630c72d8c5,0x7ff0000000000000,1
+np.float64,0x7fdd82fbe7bb05f7,0x7ff0000000000000,1
+np.float64,0xbf9a6a0b1034d420,0x3ff0015ce009f7d8,1
+np.float64,0xbfceb4f8153d69f0,0x3ff0766e3ecc77df,1
+np.float64,0x3fd9de31e633bc64,0x3ff15327b794a16e,1
+np.float64,0x3faa902a30352054,0x3ff00583848d1969,1
+np.float64,0x0,0x3ff0000000000000,1
+np.float64,0x3fbe3459c43c68b4,0x3ff01c8af6710ef6,1
+np.float64,0xbfa8df010031be00,0x3ff004d5632dc9f5,1
+np.float64,0x7fbcf6cf2a39ed9d,0x7ff0000000000000,1
+np.float64,0xffe4236202a846c4,0x7ff0000000000000,1
+np.float64,0x3fd35ed52e26bdaa,0x3ff0bd0b231f11f7,1
+np.float64,0x7fe7a2df532f45be,0x7ff0000000000000,1
+np.float64,0xffe32f8315665f06,0x7ff0000000000000,1
+np.float64,0x7fe1a69f03e34d3d,0x7ff0000000000000,1
+np.float64,0x7fa5542b742aa856,0x7ff0000000000000,1
+np.float64,0x3fe84e9f8ef09d3f,0x3ff4d79816359765,1
+np.float64,0x29076fe6520ef,0x3ff0000000000000,1
+np.float64,0xffd70894f7ae112a,0x7ff0000000000000,1
+np.float64,0x800188edcbe311dc,0x3ff0000000000000,1
+np.float64,0x3fe2c7acda258f5a,0x3ff2d5dad4617703,1
+np.float64,0x3f775d41a02ebb00,0x3ff000110f212445,1
+np.float64,0x7fe8a084d1714109,0x7ff0000000000000,1
+np.float64,0x3fe31562d8a62ac6,0x3ff2ee35055741cd,1
+np.float64,0xbfd195d4d1a32baa,0x3ff09b98a50c151b,1
+np.float64,0xffaae9ff0c35d400,0x7ff0000000000000,1
+np.float64,0xff819866502330c0,0x7ff0000000000000,1
+np.float64,0x7fddc64815bb8c8f,0x7ff0000000000000,1
+np.float64,0xbfd442b428288568,0x3ff0cef70aa73ae6,1
+np.float64,0x8002e7625aa5cec5,0x3ff0000000000000,1
+np.float64,0x7fe8d4f70e71a9ed,0x7ff0000000000000,1
+np.float64,0xbfc3bd015f277a04,0x3ff030cbf16f29d9,1
+np.float64,0x3fd315d5baa62bab,0x3ff0b77a551a5335,1
+np.float64,0x7fa638b4642c7168,0x7ff0000000000000,1
+np.float64,0x3fdea8b795bd516f,0x3ff1df0bb70cdb79,1
+np.float64,0xbfd78754762f0ea8,0x3ff117ee0f29abed,1
+np.float64,0x8009f6a37633ed47,0x3ff0000000000000,1
+np.float64,0x3fea1daf75343b5f,0x3ff5a1804789bf13,1
+np.float64,0x3fd044b6c0a0896e,0x3ff0850b7297d02f,1
+np.float64,0x8003547a9c86a8f6,0x3ff0000000000000,1
+np.float64,0x3fa6c2cd782d859b,0x3ff0040c4ac8f44a,1
+np.float64,0x3fe225baaae44b76,0x3ff2a47f5e1f5e85,1
+np.float64,0x8000000000000000,0x3ff0000000000000,1
+np.float64,0x3fcb53da8736a7b8,0x3ff05db45af470ac,1
+np.float64,0x80079f8f140f3f1f,0x3ff0000000000000,1
+np.float64,0xbfcd1d7e2b3a3afc,0x3ff06a6b6845d05f,1
+np.float64,0x96df93672dbf3,0x3ff0000000000000,1
+np.float64,0xdef86e43bdf0e,0x3ff0000000000000,1
+np.float64,0xbfec05a09db80b41,0x3ff6896b768eea08,1
+np.float64,0x7fe3ff91d267ff23,0x7ff0000000000000,1
+np.float64,0xffea3eaa07347d53,0x7ff0000000000000,1
+np.float64,0xbfebde1cc1f7bc3a,0x3ff675e34ac2afc2,1
+np.float64,0x629bcde8c537a,0x3ff0000000000000,1
+np.float64,0xbfdde4fcff3bc9fa,0x3ff1c7061d21f0fe,1
+np.float64,0x3fee60fd003cc1fa,0x3ff7c49af3878a51,1
+np.float64,0x3fe5c92ac32b9256,0x3ff3da7a7929588b,1
+np.float64,0xbfe249c78f64938f,0x3ff2af52a06f1a50,1
+np.float64,0xbfc6de9dbe2dbd3c,0x3ff0418d284ee29f,1
+np.float64,0xffc8ef094631de14,0x7ff0000000000000,1
+np.float64,0x3fdef05f423de0bf,0x3ff1e800caba8ab5,1
+np.float64,0xffc1090731221210,0x7ff0000000000000,1
+np.float64,0xbfedec9b5fbbd937,0x3ff7854b6792a24a,1
+np.float64,0xbfb873507630e6a0,0x3ff012b23b3b7a67,1
+np.float64,0xbfe3cd6692679acd,0x3ff3299d6936ec4b,1
+np.float64,0xbfb107c890220f90,0x3ff0091122162472,1
+np.float64,0xbfe4e6ee48e9cddc,0x3ff3894e5a5e70a6,1
+np.float64,0xffe6fa3413edf468,0x7ff0000000000000,1
+np.float64,0x3fe2faf79b65f5ef,0x3ff2e5e11fae8b54,1
+np.float64,0xbfdfeb8df9bfd71c,0x3ff208189691b15f,1
+np.float64,0x75d2d03ceba5b,0x3ff0000000000000,1
+np.float64,0x3feb48c182b69183,0x3ff62d4462eba6cb,1
+np.float64,0xffcda9f7ff3b53f0,0x7ff0000000000000,1
+np.float64,0x7fcafbdcbd35f7b8,0x7ff0000000000000,1
+np.float64,0xbfd1895523a312aa,0x3ff09aba642a78d9,1
+np.float64,0x3fe3129c3f662538,0x3ff2ed546bbfafcf,1
+np.float64,0x3fb444dee02889be,0x3ff00cd86273b964,1
+np.float64,0xbf73b32d7ee77,0x3ff0000000000000,1
+np.float64,0x3fae19904c3c3321,0x3ff00714865c498a,1
+np.float64,0x7fefbfaef5bf7f5d,0x7ff0000000000000,1
+np.float64,0x8000dc3816e1b871,0x3ff0000000000000,1
+np.float64,0x8003f957ba47f2b0,0x3ff0000000000000,1
+np.float64,0xbfe3563c7ea6ac79,0x3ff302dcebc92856,1
+np.float64,0xbfdc80fbae3901f8,0x3ff19cfe73e58092,1
+np.float64,0x8009223b04524476,0x3ff0000000000000,1
+np.float64,0x3fd95f431c32be86,0x3ff1461c21cb03f0,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfe7c12ed3ef825e,0x3ff49d59c265efcd,1
+np.float64,0x10000000000000,0x3ff0000000000000,1
+np.float64,0x7fc5e2632f2bc4c5,0x7ff0000000000000,1
+np.float64,0xffd8f6b4c7b1ed6a,0x7ff0000000000000,1
+np.float64,0x80034b93d4069728,0x3ff0000000000000,1
+np.float64,0xffdf5d4c1dbeba98,0x7ff0000000000000,1
+np.float64,0x800bc63d70178c7b,0x3ff0000000000000,1
+np.float64,0xbfeba31ea0f7463d,0x3ff658fa27073d2b,1
+np.float64,0xbfeebeede97d7ddc,0x3ff7f89a8e80dec4,1
+np.float64,0x7feb0f1f91361e3e,0x7ff0000000000000,1
+np.float64,0xffec3158d0b862b1,0x7ff0000000000000,1
+np.float64,0x3fde51cbfbbca398,0x3ff1d44c2ff15b3d,1
+np.float64,0xd58fb2b3ab1f7,0x3ff0000000000000,1
+np.float64,0x80028b9e32e5173d,0x3ff0000000000000,1
+np.float64,0x7fea77a56c74ef4a,0x7ff0000000000000,1
+np.float64,0x3fdaabbd4a35577b,0x3ff168d82edf2fe0,1
+np.float64,0xbfe69c39cc2d3874,0x3ff429b2f4cdb362,1
+np.float64,0x3b78f5d876f20,0x3ff0000000000000,1
+np.float64,0x7fa47d116428fa22,0x7ff0000000000000,1
+np.float64,0xbfe4118b0ce82316,0x3ff3403d989f780f,1
+np.float64,0x800482e793c905d0,0x3ff0000000000000,1
+np.float64,0xbfe48e5728e91cae,0x3ff36a9020bf9d20,1
+np.float64,0x7fe078ba8860f174,0x7ff0000000000000,1
+np.float64,0x3fd80843e5b01088,0x3ff1242f401e67da,1
+np.float64,0x3feb1f6965f63ed3,0x3ff6197fc590e143,1
+np.float64,0xffa41946d8283290,0x7ff0000000000000,1
+np.float64,0xffe30de129661bc2,0x7ff0000000000000,1
+np.float64,0x3fec9c8e1ab9391c,0x3ff6d542ea2f49b4,1
+np.float64,0x3fdc3e4490387c89,0x3ff1955ae18cac37,1
+np.float64,0xffef49d9c77e93b3,0x7ff0000000000000,1
+np.float64,0xfff0000000000000,0x7ff0000000000000,1
+np.float64,0x3fe0442455608849,0x3ff21cab90067d5c,1
+np.float64,0xbfed86aebd3b0d5e,0x3ff74ed8d4b75f50,1
+np.float64,0xffe4600d2b28c01a,0x7ff0000000000000,1
+np.float64,0x7fc1e8ccff23d199,0x7ff0000000000000,1
+np.float64,0x8008d49b0091a936,0x3ff0000000000000,1
+np.float64,0xbfe4139df028273c,0x3ff340ef3c86227c,1
+np.float64,0xbfe9ab4542b3568a,0x3ff56dfe32061247,1
+np.float64,0xbfd76dd365aedba6,0x3ff11589bab5fe71,1
+np.float64,0x3fd42cf829a859f0,0x3ff0cd3844bb0e11,1
+np.float64,0x7fd077cf2e20ef9d,0x7ff0000000000000,1
+np.float64,0x3fd7505760aea0b0,0x3ff112c937b3f088,1
+np.float64,0x1f93341a3f267,0x3ff0000000000000,1
+np.float64,0x7fe3c3c1b0678782,0x7ff0000000000000,1
+np.float64,0x800f85cec97f0b9e,0x3ff0000000000000,1
+np.float64,0xd93ab121b2756,0x3ff0000000000000,1
+np.float64,0xbfef8066fd7f00ce,0x3ff8663ed7d15189,1
+np.float64,0xffe31dd4af663ba9,0x7ff0000000000000,1
+np.float64,0xbfd7ff05a6affe0c,0x3ff1234c09bb686d,1
+np.float64,0xbfe718c31fee3186,0x3ff45a0c2d0ef7b0,1
+np.float64,0x800484bf33e9097f,0x3ff0000000000000,1
+np.float64,0xffd409dad02813b6,0x7ff0000000000000,1
+np.float64,0x3fe59679896b2cf4,0x3ff3c7f49e4fbbd3,1
+np.float64,0xbfd830c54d30618a,0x3ff1281729861390,1
+np.float64,0x1d4fc81c3a9fa,0x3ff0000000000000,1
+np.float64,0x3fd334e4272669c8,0x3ff0b9d5d82894f0,1
+np.float64,0xffc827e65c304fcc,0x7ff0000000000000,1
+np.float64,0xffe2d1814aa5a302,0x7ff0000000000000,1
+np.float64,0xffd7b5b8d32f6b72,0x7ff0000000000000,1
+np.float64,0xbfdbc9f077b793e0,0x3ff18836b9106ad0,1
+np.float64,0x7fc724c2082e4983,0x7ff0000000000000,1
+np.float64,0x3fa39ed72c273da0,0x3ff00302051ce17e,1
+np.float64,0xbfe3c4c209678984,0x3ff326c4fd16b5cd,1
+np.float64,0x7fe91f6d00f23ed9,0x7ff0000000000000,1
+np.float64,0x8004ee93fea9dd29,0x3ff0000000000000,1
+np.float64,0xbfe7c32d0eaf865a,0x3ff49e290ed2ca0e,1
+np.float64,0x800ea996b29d532d,0x3ff0000000000000,1
+np.float64,0x2df9ec1c5bf3e,0x3ff0000000000000,1
+np.float64,0xabb175df5762f,0x3ff0000000000000,1
+np.float64,0xffe3fc9c8e27f938,0x7ff0000000000000,1
+np.float64,0x7fb358a62826b14b,0x7ff0000000000000,1
+np.float64,0x800aedcccaf5db9a,0x3ff0000000000000,1
+np.float64,0xffca530c5234a618,0x7ff0000000000000,1
+np.float64,0x40f91e9681f24,0x3ff0000000000000,1
+np.float64,0x80098f4572f31e8b,0x3ff0000000000000,1
+np.float64,0xbfdc58c21fb8b184,0x3ff1986115f8fe92,1
+np.float64,0xbfebeafd40b7d5fa,0x3ff67c3cf34036e3,1
+np.float64,0x7fd108861a22110b,0x7ff0000000000000,1
+np.float64,0xff8e499ae03c9340,0x7ff0000000000000,1
+np.float64,0xbfd2f58caa25eb1a,0x3ff0b50b1bffafdf,1
+np.float64,0x3fa040c9bc208193,0x3ff002105e95aefa,1
+np.float64,0xbfd2ebc0a5a5d782,0x3ff0b44ed5a11584,1
+np.float64,0xffe237bc93a46f78,0x7ff0000000000000,1
+np.float64,0x3fd557c5eeaaaf8c,0x3ff0e5e0a575e1ba,1
+np.float64,0x7abb419ef5769,0x3ff0000000000000,1
+np.float64,0xffefa1fe353f43fb,0x7ff0000000000000,1
+np.float64,0x3fa6f80ba02df017,0x3ff0041f51fa0d76,1
+np.float64,0xbfdce79488b9cf2a,0x3ff1a8e32877beb4,1
+np.float64,0x2285f3e4450bf,0x3ff0000000000000,1
+np.float64,0x3bf7eb7277efe,0x3ff0000000000000,1
+np.float64,0xbfd5925fd3ab24c0,0x3ff0eae1c2ac2e78,1
+np.float64,0xbfed6325227ac64a,0x3ff73c14a2ad5bfe,1
+np.float64,0x8000429c02408539,0x3ff0000000000000,1
+np.float64,0xb67c21e76cf84,0x3ff0000000000000,1
+np.float64,0x3fec3d3462f87a69,0x3ff6a51e4c027eb7,1
+np.float64,0x3feae69cbcf5cd3a,0x3ff5fe9387314afd,1
+np.float64,0x7fd0c9a0ec219341,0x7ff0000000000000,1
+np.float64,0x8004adb7f6295b71,0x3ff0000000000000,1
+np.float64,0xffd61fe8bb2c3fd2,0x7ff0000000000000,1
+np.float64,0xffe7fb3834aff670,0x7ff0000000000000,1
+np.float64,0x7fd1eef163a3dde2,0x7ff0000000000000,1
+np.float64,0x2e84547a5d08b,0x3ff0000000000000,1
+np.float64,0x8002d8875ee5b10f,0x3ff0000000000000,1
+np.float64,0x3fe1d1c5f763a38c,0x3ff28ba524fb6de8,1
+np.float64,0x8001dea0bc43bd42,0x3ff0000000000000,1
+np.float64,0xfecfad91fd9f6,0x3ff0000000000000,1
+np.float64,0xffed7965fa3af2cb,0x7ff0000000000000,1
+np.float64,0xbfe6102ccc2c205a,0x3ff3f4c082506686,1
+np.float64,0x3feff75b777feeb6,0x3ff8ab6222578e0c,1
+np.float64,0x3fb8a97bd43152f8,0x3ff013057f0a9d89,1
+np.float64,0xffe234b5e964696c,0x7ff0000000000000,1
+np.float64,0x984d9137309b2,0x3ff0000000000000,1
+np.float64,0xbfe42e9230e85d24,0x3ff349fb7d1a7560,1
+np.float64,0xbfecc8b249f99165,0x3ff6ebd0fea0ea72,1
+np.float64,0x8000840910410813,0x3ff0000000000000,1
+np.float64,0xbfd81db9e7303b74,0x3ff126402d3539ec,1
+np.float64,0x800548eb7fea91d8,0x3ff0000000000000,1
+np.float64,0xbfe4679ad0e8cf36,0x3ff35d4db89296a3,1
+np.float64,0x3fd4c55b5a298ab7,0x3ff0d99da31081f9,1
+np.float64,0xbfa8f5b38c31eb60,0x3ff004de3a23b32d,1
+np.float64,0x80005d348e80ba6a,0x3ff0000000000000,1
+np.float64,0x800c348d6118691b,0x3ff0000000000000,1
+np.float64,0xffd6b88f84ad7120,0x7ff0000000000000,1
+np.float64,0x3fc1aaaa82235555,0x3ff027136afd08e0,1
+np.float64,0x7fca7d081b34fa0f,0x7ff0000000000000,1
+np.float64,0x1,0x3ff0000000000000,1
+np.float64,0xbfdc810d1139021a,0x3ff19d007408cfe3,1
+np.float64,0xbfe5dce05f2bb9c0,0x3ff3e1bb9234617b,1
+np.float64,0xffecfe2c32b9fc58,0x7ff0000000000000,1
+np.float64,0x95b2891b2b651,0x3ff0000000000000,1
+np.float64,0x8000b60c6c616c1a,0x3ff0000000000000,1
+np.float64,0x4944f0889289f,0x3ff0000000000000,1
+np.float64,0x3fe6e508696dca10,0x3ff445d1b94863e9,1
+np.float64,0xbfe63355d0ec66ac,0x3ff401e74f16d16f,1
+np.float64,0xbfe9b9595af372b3,0x3ff57445e1b4d670,1
+np.float64,0x800e16f7313c2dee,0x3ff0000000000000,1
+np.float64,0xffe898f5f0b131eb,0x7ff0000000000000,1
+np.float64,0x3fe91ac651f2358d,0x3ff52e787c21c004,1
+np.float64,0x7fbfaac6783f558c,0x7ff0000000000000,1
+np.float64,0xd8ef3dfbb1de8,0x3ff0000000000000,1
+np.float64,0xbfc58c13a52b1828,0x3ff03a2c19d65019,1
+np.float64,0xbfbde55e8a3bcac0,0x3ff01bf648a3e0a7,1
+np.float64,0xffc3034930260694,0x7ff0000000000000,1
+np.float64,0xea77a64dd4ef5,0x3ff0000000000000,1
+np.float64,0x800cfe7e7739fcfd,0x3ff0000000000000,1
+np.float64,0x4960f31a92c1f,0x3ff0000000000000,1
+np.float64,0x3fd9552c94b2aa58,0x3ff14515a29add09,1
+np.float64,0xffe8b3244c316648,0x7ff0000000000000,1
+np.float64,0x3fe8201e6a70403d,0x3ff4c444fa679cce,1
+np.float64,0xffe9ab7c20f356f8,0x7ff0000000000000,1
+np.float64,0x3fed8bba5f7b1774,0x3ff751853c4c95c5,1
+np.float64,0x8007639cb76ec73a,0x3ff0000000000000,1
+np.float64,0xbfe396db89672db7,0x3ff317bfd1d6fa8c,1
+np.float64,0xbfeb42f888f685f1,0x3ff62a7e0eee56b1,1
+np.float64,0x3fe894827c712904,0x3ff4f4f561d9ea13,1
+np.float64,0xb66b3caf6cd68,0x3ff0000000000000,1
+np.float64,0x800f8907fdbf1210,0x3ff0000000000000,1
+np.float64,0x7fe9b0cddb73619b,0x7ff0000000000000,1
+np.float64,0xbfda70c0e634e182,0x3ff1628c6fdffc53,1
+np.float64,0x3fe0b5f534a16bea,0x3ff23b4ed4c2b48e,1
+np.float64,0xbfe8eee93671ddd2,0x3ff51b85b3c50ae4,1
+np.float64,0xbfe8c22627f1844c,0x3ff50858787a3bfe,1
+np.float64,0x37bb83c86f771,0x3ff0000000000000,1
+np.float64,0xffb7827ffe2f0500,0x7ff0000000000000,1
+np.float64,0x64317940c864,0x3ff0000000000000,1
+np.float64,0x800430ecee6861db,0x3ff0000000000000,1
+np.float64,0x3fa4291fbc285240,0x3ff0032d0204f6dd,1
+np.float64,0xffec69f76af8d3ee,0x7ff0000000000000,1
+np.float64,0x3ff0000000000000,0x3ff8b07551d9f550,1
+np.float64,0x3fc4cf3c42299e79,0x3ff0363fb1d3c254,1
+np.float64,0x7fe0223a77e04474,0x7ff0000000000000,1
+np.float64,0x800a3d4fa4347aa0,0x3ff0000000000000,1
+np.float64,0x3fdd273f94ba4e7f,0x3ff1b05b686e6879,1
+np.float64,0x3feca79052f94f20,0x3ff6dadedfa283aa,1
+np.float64,0x5e7f6f80bcfef,0x3ff0000000000000,1
+np.float64,0xbfef035892fe06b1,0x3ff81efb39cbeba2,1
+np.float64,0x3fee6c08e07cd812,0x3ff7caad952860a1,1
+np.float64,0xffeda715877b4e2a,0x7ff0000000000000,1
+np.float64,0x800580286b0b0052,0x3ff0000000000000,1
+np.float64,0x800703a73fee074f,0x3ff0000000000000,1
+np.float64,0xbfccf96a6639f2d4,0x3ff0696330a60832,1
+np.float64,0x7feb408442368108,0x7ff0000000000000,1
+np.float64,0x3fedc87a46fb90f5,0x3ff771e3635649a9,1
+np.float64,0x3fd8297b773052f7,0x3ff12762bc0cea76,1
+np.float64,0x3fee41bb03fc8376,0x3ff7b37b2da48ab4,1
+np.float64,0xbfe2b05a226560b4,0x3ff2cea17ae7c528,1
+np.float64,0xbfd2e92cf2a5d25a,0x3ff0b41d605ced61,1
+np.float64,0x4817f03a902ff,0x3ff0000000000000,1
+np.float64,0x8c9d4f0d193aa,0x3ff0000000000000,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp.csv
new file mode 100644
index 0000000..7c5ef3b
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp.csv
@@ -0,0 +1,412 @@
+dtype,input,output,ulperrortol
+## +ve denormals ##
+np.float32,0x004b4716,0x3f800000,3
+np.float32,0x007b2490,0x3f800000,3
+np.float32,0x007c99fa,0x3f800000,3
+np.float32,0x00734a0c,0x3f800000,3
+np.float32,0x0070de24,0x3f800000,3
+np.float32,0x00495d65,0x3f800000,3
+np.float32,0x006894f6,0x3f800000,3
+np.float32,0x00555a76,0x3f800000,3
+np.float32,0x004e1fb8,0x3f800000,3
+np.float32,0x00687de9,0x3f800000,3
+## -ve denormals ##
+np.float32,0x805b59af,0x3f800000,3
+np.float32,0x807ed8ed,0x3f800000,3
+np.float32,0x807142ad,0x3f800000,3
+np.float32,0x80772002,0x3f800000,3
+np.float32,0x8062abcb,0x3f800000,3
+np.float32,0x8045e31c,0x3f800000,3
+np.float32,0x805f01c2,0x3f800000,3
+np.float32,0x80506432,0x3f800000,3
+np.float32,0x8060089d,0x3f800000,3
+np.float32,0x8071292f,0x3f800000,3
+## floats that output a denormal ##
+np.float32,0xc2cf3fc1,0x00000001,3
+np.float32,0xc2c79726,0x00000021,3
+np.float32,0xc2cb295d,0x00000005,3
+np.float32,0xc2b49e6b,0x00068c4c,3
+np.float32,0xc2ca8116,0x00000008,3
+np.float32,0xc2c23f82,0x000001d7,3
+np.float32,0xc2cb69c0,0x00000005,3
+np.float32,0xc2cc1f4d,0x00000003,3
+np.float32,0xc2ae094e,0x00affc4c,3
+np.float32,0xc2c86c44,0x00000015,3
+## random floats between -87.0f and 88.0f ##
+np.float32,0x4030d7e0,0x417d9a05,3
+np.float32,0x426f60e8,0x6aa1be2c,3
+np.float32,0x41a1b220,0x4e0efc11,3
+np.float32,0xc20cc722,0x26159da7,3
+np.float32,0x41c492bc,0x512ec79d,3
+np.float32,0x40980210,0x42e73a0e,3
+np.float32,0xbf1f7b80,0x3f094de3,3
+np.float32,0x42a678a4,0x7b87a383,3
+np.float32,0xc20f3cfd,0x25a1c304,3
+np.float32,0x423ff34c,0x6216467f,3
+np.float32,0x00000000,0x3f800000,3
+## floats that cause an overflow ##
+np.float32,0x7f06d8c1,0x7f800000,3
+np.float32,0x7f451912,0x7f800000,3
+np.float32,0x7ecceac3,0x7f800000,3
+np.float32,0x7f643b45,0x7f800000,3
+np.float32,0x7e910ea0,0x7f800000,3
+np.float32,0x7eb4756b,0x7f800000,3
+np.float32,0x7f4ec708,0x7f800000,3
+np.float32,0x7f6b4551,0x7f800000,3
+np.float32,0x7d8edbda,0x7f800000,3
+np.float32,0x7f730718,0x7f800000,3
+np.float32,0x42b17217,0x7f7fff84,3
+np.float32,0x42b17218,0x7f800000,3
+np.float32,0x42b17219,0x7f800000,3
+np.float32,0xfef2b0bc,0x00000000,3
+np.float32,0xff69f83e,0x00000000,3
+np.float32,0xff4ecb12,0x00000000,3
+np.float32,0xfeac6d86,0x00000000,3
+np.float32,0xfde0cdb8,0x00000000,3
+np.float32,0xff26aef4,0x00000000,3
+np.float32,0xff6f9277,0x00000000,3
+np.float32,0xff7adfc4,0x00000000,3
+np.float32,0xff0ad40e,0x00000000,3
+np.float32,0xff6fd8f3,0x00000000,3
+np.float32,0xc2cff1b4,0x00000001,3
+np.float32,0xc2cff1b5,0x00000000,3
+np.float32,0xc2cff1b6,0x00000000,3
+np.float32,0x7f800000,0x7f800000,3
+np.float32,0xff800000,0x00000000,3
+np.float32,0x4292f27c,0x7480000a,3
+np.float32,0x42a920be,0x7c7fff94,3
+np.float32,0x41c214c9,0x50ffffd9,3
+np.float32,0x41abe686,0x4effffd9,3
+np.float32,0x4287db5a,0x707fffd3,3
+np.float32,0x41902cbb,0x4c800078,3
+np.float32,0x42609466,0x67ffffeb,3
+np.float32,0x41a65af5,0x4e7fffd1,3
+np.float32,0x417f13ff,0x4affffc9,3
+np.float32,0x426d0e6c,0x6a3504f2,3
+np.float32,0x41bc8934,0x507fff51,3
+np.float32,0x42a7bdde,0x7c0000d6,3
+np.float32,0x4120cf66,0x46b504f6,3
+np.float32,0x4244da8f,0x62ffff1a,3
+np.float32,0x41a0cf69,0x4e000034,3
+np.float32,0x41cd2bec,0x52000005,3
+np.float32,0x42893e41,0x7100009e,3
+np.float32,0x41b437e1,0x4fb50502,3
+np.float32,0x41d8430f,0x5300001d,3
+np.float32,0x4244da92,0x62ffffda,3
+np.float32,0x41a0cf63,0x4dffffa9,3
+np.float32,0x3eb17218,0x3fb504f3,3
+np.float32,0x428729e8,0x703504dc,3
+np.float32,0x41a0cf67,0x4e000014,3
+np.float32,0x4252b77d,0x65800011,3
+np.float32,0x41902cb9,0x4c800058,3
+np.float32,0x42a0cf67,0x79800052,3
+np.float32,0x4152b77b,0x48ffffe9,3
+np.float32,0x41265af3,0x46ffffc8,3
+np.float32,0x42187e0b,0x5affff9a,3
+np.float32,0xc0d2b77c,0x3ab504f6,3
+np.float32,0xc283b2ac,0x10000072,3
+np.float32,0xc1cff1b4,0x2cb504f5,3
+np.float32,0xc05dce9e,0x3d000000,3
+np.float32,0xc28ec9d2,0x0bfffea5,3
+np.float32,0xc23c893a,0x1d7fffde,3
+np.float32,0xc2a920c0,0x027fff6c,3
+np.float32,0xc1f9886f,0x2900002b,3
+np.float32,0xc2c42920,0x000000b5,3
+np.float32,0xc2893e41,0x0dfffec5,3
+np.float32,0xc2c4da93,0x00000080,3
+np.float32,0xc17f1401,0x3400000c,3
+np.float32,0xc1902cb6,0x327fffaf,3
+np.float32,0xc27c4e3b,0x11ffffc5,3
+np.float32,0xc268e5c5,0x157ffe9d,3
+np.float32,0xc2b4e953,0x0005a826,3
+np.float32,0xc287db5a,0x0e800016,3
+np.float32,0xc207db5a,0x2700000b,3
+np.float32,0xc2b2d4fe,0x000ffff1,3
+np.float32,0xc268e5c0,0x157fffdd,3
+np.float32,0xc22920bd,0x2100003b,3
+np.float32,0xc2902caf,0x0b80011e,3
+np.float32,0xc1902cba,0x327fff2f,3
+np.float32,0xc2ca6625,0x00000008,3
+np.float32,0xc280ece8,0x10fffeb5,3
+np.float32,0xc2918f94,0x0b0000ea,3
+np.float32,0xc29b43d5,0x077ffffc,3
+np.float32,0xc1e61ff7,0x2ab504f5,3
+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
+## 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
+## overflow ##
+np.float64,0x40862e52fefa39ef,0x7ff0000000000000,1
+np.float64,0x40872e42fefa39ef,0x7ff0000000000000,1
+## +/- INF, +/- NAN ##
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0xfff0000000000000,0x0000000000000000,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xfff8000000000000,0xfff8000000000000,1
+## output denormal ##
+np.float64,0xc087438520000000,0x0000000000000001,1
+np.float64,0xc08743853f2f4461,0x0000000000000001,1
+np.float64,0xc08743853f2f4460,0x0000000000000001,1
+np.float64,0xc087438540000000,0x0000000000000001,1
+## 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
+##use 1th entry
+np.float64,0x40631659AE147CB4,0x4db3a95025a4890f,1
+np.float64,0xC061B87D2E85A4E2,0x332640c8e2de2c51,1
+np.float64,0x405A4A50BE243AF4,0x496a45e4b7f0339a,1
+np.float64,0xC0839898B98EC5C6,0x0764027828830df4,1
+#use 2th entry
+np.float64,0xC072428C44B6537C,0x2596ade838b96f3e,1
+np.float64,0xC053057C5E1AE9BF,0x3912c8fad18fdadf,1
+np.float64,0x407E89C78328BAA3,0x6bfe35d5b9a1a194,1
+np.float64,0x4083501B6DD87112,0x77a855503a38924e,1
+#use 3th entry
+np.float64,0x40832C6195F24540,0x7741e73c80e5eb2f,1
+np.float64,0xC083D4CD557C2EC9,0x06b61727c2d2508e,1
+np.float64,0x400C48F5F67C99BD,0x404128820f02b92e,1
+np.float64,0x4056E36D9B2DF26A,0x4830f52ff34a8242,1
+#use 4th entry
+np.float64,0x4080FF700D8CBD06,0x70fa70df9bc30f20,1
+np.float64,0x406C276D39E53328,0x543eb8e20a8f4741,1
+np.float64,0xC070D6159BBD8716,0x27a4a0548c904a75,1
+np.float64,0xC052EBCF8ED61F83,0x391c0e92368d15e4,1
+#use 5th entry
+np.float64,0xC061F892A8AC5FBE,0x32f807a89efd3869,1
+np.float64,0x4021D885D2DBA085,0x40bd4dc86d3e3270,1
+np.float64,0x40767AEEEE7D4FCF,0x605e22851ee2afb7,1
+np.float64,0xC0757C5D75D08C80,0x20f0751599b992a2,1
+#use 6th entry
+np.float64,0x405ACF7A284C4CE3,0x499a4e0b7a27027c,1
+np.float64,0xC085A6C9E80D7AF5,0x0175914009d62ec2,1
+np.float64,0xC07E4C02F86F1DAE,0x1439269b29a9231e,1
+np.float64,0x4080D80F9691CC87,0x7088a6cdafb041de,1
+#use 7th entry
+np.float64,0x407FDFD84FBA0AC1,0x6deb1ae6f9bc4767,1
+np.float64,0x40630C06A1A2213D,0x4dac7a9d51a838b7,1
+np.float64,0x40685FDB30BB8B4F,0x5183f5cc2cac9e79,1
+np.float64,0x408045A2208F77F4,0x6ee299e08e2aa2f0,1
+#use 8th entry
+np.float64,0xC08104E391F5078B,0x0ed397b7cbfbd230,1
+np.float64,0xC031501CAEFAE395,0x3e6040fd1ea35085,1
+np.float64,0xC079229124F6247C,0x1babf4f923306b1e,1
+np.float64,0x407FB65F44600435,0x6db03beaf2512b8a,1
+#use 9th entry
+np.float64,0xC07EDEE8E8E8A5AC,0x136536cec9cbef48,1
+np.float64,0x4072BB4086099A14,0x5af4d3c3008b56cc,1
+np.float64,0x4050442A2EC42CB4,0x45cd393bd8fad357,1
+np.float64,0xC06AC28FB3D419B4,0x2ca1b9d3437df85f,1
+#use 10th entry
+np.float64,0x40567FC6F0A68076,0x480c977fd5f3122e,1
+np.float64,0x40620A2F7EDA59BB,0x4cf278e96f4ce4d7,1
+np.float64,0xC085044707CD557C,0x034aad6c968a045a,1
+np.float64,0xC07374EA5AC516AA,0x23dd6afdc03e83d5,1
+#use 11th entry
+np.float64,0x4073CC95332619C1,0x5c804b1498bbaa54,1
+np.float64,0xC0799FEBBE257F31,0x1af6a954c43b87d2,1
+np.float64,0x408159F19EA424F6,0x7200858efcbfc84d,1
+np.float64,0x404A81F6F24C0792,0x44b664a07ce5bbfa,1
+#use 12th entry
+np.float64,0x40295FF1EFB9A741,0x4113c0e74c52d7b0,1
+np.float64,0x4073975F4CC411DA,0x5c32be40b4fec2c1,1
+np.float64,0x406E9DE52E82A77E,0x56049c9a3f1ae089,1
+np.float64,0x40748C2F52560ED9,0x5d93bc14fd4cd23b,1
+#use 13th entry
+np.float64,0x4062A553CDC4D04C,0x4d6266bfde301318,1
+np.float64,0xC079EC1D63598AB7,0x1a88cb184dab224c,1
+np.float64,0xC0725C1CB3167427,0x25725b46f8a081f6,1
+np.float64,0x407888771D9B45F9,0x6353b1ec6bd7ce80,1
+#use 14th entry
+np.float64,0xC082CBA03AA89807,0x09b383723831ce56,1
+np.float64,0xC083A8961BB67DD7,0x0735b118d5275552,1
+np.float64,0xC076BC6ECA12E7E3,0x1f2222679eaef615,1
+np.float64,0xC072752503AA1A5B,0x254eb832242c77e1,1
+#use 15th entry
+np.float64,0xC058800792125DEC,0x371882372a0b48d4,1
+np.float64,0x4082909FD863E81C,0x7580d5f386920142,1
+np.float64,0xC071616F8FB534F9,0x26dbe20ef64a412b,1
+np.float64,0x406D1AB571CAA747,0x54ee0d55cb38ac20,1
+#use 16th entry
+np.float64,0x406956428B7DAD09,0x52358682c271237f,1
+np.float64,0xC07EFC2D9D17B621,0x133b3e77c27a4d45,1
+np.float64,0xC08469BAC5BA3CCA,0x050863e5f42cc52f,1
+np.float64,0x407189D9626386A5,0x593cb1c0b3b5c1d3,1
+#use 17th entry
+np.float64,0x4077E652E3DEB8C6,0x6269a10dcbd3c752,1
+np.float64,0x407674C97DB06878,0x605485dcc2426ec2,1
+np.float64,0xC07CE9969CF4268D,0x16386cf8996669f2,1
+np.float64,0x40780EE32D5847C4,0x62a436bd1abe108d,1
+#use 18th entry
+np.float64,0x4076C3AA5E1E8DA1,0x60c62f56a5e72e24,1
+np.float64,0xC0730AFC7239B9BE,0x24758ead095cec1e,1
+np.float64,0xC085CC2B9C420DDB,0x0109cdaa2e5694c1,1
+np.float64,0x406D0765CB6D7AA4,0x54e06f8dd91bd945,1
+#use 19th entry
+np.float64,0xC082D011F3B495E7,0x09a6647661d279c2,1
+np.float64,0xC072826AF8F6AFBC,0x253acd3cd224507e,1
+np.float64,0x404EB9C4810CEA09,0x457933dbf07e8133,1
+np.float64,0x408284FBC97C58CE,0x755f6eb234aa4b98,1
+#use 20th entry
+np.float64,0x40856008CF6EDC63,0x7d9c0b3c03f4f73c,1
+np.float64,0xC077CB2E9F013B17,0x1d9b3d3a166a55db,1
+np.float64,0xC0479CA3C20AD057,0x3bad40e081555b99,1
+np.float64,0x40844CD31107332A,0x7a821d70aea478e2,1
+#use 21th entry
+np.float64,0xC07C8FCC0BFCC844,0x16ba1cc8c539d19b,1
+np.float64,0xC085C4E9A3ABA488,0x011ff675ba1a2217,1
+np.float64,0x4074D538B32966E5,0x5dfd9d78043c6ad9,1
+np.float64,0xC0630CA16902AD46,0x3231a446074cede6,1
+#use 22th entry
+np.float64,0xC06C826733D7D0B7,0x2b5f1078314d41e1,1
+np.float64,0xC0520DF55B2B907F,0x396c13a6ce8e833e,1
+np.float64,0xC080712072B0F437,0x107eae02d11d98ea,1
+np.float64,0x40528A6150E19EFB,0x469fdabda02228c5,1
+#use 23th entry
+np.float64,0xC07B1D74B6586451,0x18d1253883ae3b48,1
+np.float64,0x4045AFD7867DAEC0,0x43d7d634fc4c5d98,1
+np.float64,0xC07A08B91F9ED3E2,0x1a60973e6397fc37,1
+np.float64,0x407B3ECF0AE21C8C,0x673e03e9d98d7235,1
+#use 24th entry
+np.float64,0xC078AEB6F30CEABF,0x1c530b93ab54a1b3,1
+np.float64,0x4084495006A41672,0x7a775b6dc7e63064,1
+np.float64,0x40830B1C0EBF95DD,0x76e1e6eed77cfb89,1
+np.float64,0x407D93E8F33D8470,0x6a9adbc9e1e4f1e5,1
+#use 25th entry
+np.float64,0x4066B11A09EFD9E8,0x504dd528065c28a7,1
+np.float64,0x408545823723AEEB,0x7d504a9b1844f594,1
+np.float64,0xC068C711F2CA3362,0x2e104f3496ea118e,1
+np.float64,0x407F317FCC3CA873,0x6cf0732c9948ebf4,1
+#use 26th entry
+np.float64,0x407AFB3EBA2ED50F,0x66dc28a129c868d5,1
+np.float64,0xC075377037708ADE,0x21531a329f3d793e,1
+np.float64,0xC07C30066A1F3246,0x174448baa16ded2b,1
+np.float64,0xC06689A75DE2ABD3,0x2fad70662fae230b,1
+#use 27th entry
+np.float64,0x4081514E9FCCF1E0,0x71e673b9efd15f44,1
+np.float64,0xC0762C710AF68460,0x1ff1ed7d8947fe43,1
+np.float64,0xC0468102FF70D9C4,0x3be0c3a8ff3419a3,1
+np.float64,0xC07EA4CEEF02A83E,0x13b908f085102c61,1
+#use 28th entry
+np.float64,0xC06290B04AE823C4,0x328a83da3c2e3351,1
+np.float64,0xC0770EB1D1C395FB,0x1eab281c1f1db5fe,1
+np.float64,0xC06F5D4D838A5BAE,0x29500ea32fb474ea,1
+np.float64,0x40723B3133B54C5D,0x5a3c82c7c3a2b848,1
+#use 29th entry
+np.float64,0x4085E6454CE3B4AA,0x7f20319b9638d06a,1
+np.float64,0x408389F2A0585D4B,0x7850667c58aab3d0,1
+np.float64,0xC0382798F9C8AE69,0x3dc1c79fe8739d6d,1
+np.float64,0xC08299D827608418,0x0a4335f76cdbaeb5,1
+#use 30th entry
+np.float64,0xC06F3DED43301BF1,0x2965670ae46750a8,1
+np.float64,0xC070CAF6BDD577D9,0x27b4aa4ffdd29981,1
+np.float64,0x4078529AD4B2D9F2,0x6305c12755d5e0a6,1
+np.float64,0xC055B14E75A31B96,0x381c2eda6d111e5d,1
+#use 31th entry
+np.float64,0x407B13EE414FA931,0x6700772c7544564d,1
+np.float64,0x407EAFDE9DE3EC54,0x6c346a0e49724a3c,1
+np.float64,0xC08362F398B9530D,0x07ffeddbadf980cb,1
+np.float64,0x407E865CDD9EEB86,0x6bf866cac5e0d126,1
+#use 32th entry
+np.float64,0x407FB62DBC794C86,0x6db009f708ac62cb,1
+np.float64,0xC063D0BAA68CDDDE,0x31a3b2a51ce50430,1
+np.float64,0xC05E7706A2231394,0x34f24bead6fab5c9,1
+np.float64,0x4083E3A06FDE444E,0x79527b7a386d1937,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp2.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp2.csv
new file mode 100644
index 0000000..4e0a63e
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-exp2.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xbdfe94b0,0x3f6adda6,2
+np.float32,0x3f20f8f8,0x3fc5ec69,2
+np.float32,0x7040b5,0x3f800000,2
+np.float32,0x30ec5,0x3f800000,2
+np.float32,0x3eb63070,0x3fa3ce29,2
+np.float32,0xff4dda3d,0x0,2
+np.float32,0x805b832f,0x3f800000,2
+np.float32,0x3e883fb7,0x3f99ed8c,2
+np.float32,0x3f14d71f,0x3fbf8708,2
+np.float32,0xff7b1e55,0x0,2
+np.float32,0xbf691ac6,0x3f082fa2,2
+np.float32,0x7ee3e6ab,0x7f800000,2
+np.float32,0xbec6e2b4,0x3f439248,2
+np.float32,0xbf5f5ec2,0x3f0bd2c0,2
+np.float32,0x8025cc2c,0x3f800000,2
+np.float32,0x7e0d7672,0x7f800000,2
+np.float32,0xff4bbc5c,0x0,2
+np.float32,0xbd94fb30,0x3f73696b,2
+np.float32,0x6cc079,0x3f800000,2
+np.float32,0x803cf080,0x3f800000,2
+np.float32,0x71d418,0x3f800000,2
+np.float32,0xbf24a442,0x3f23ec1e,2
+np.float32,0xbe6c9510,0x3f5a1e1d,2
+np.float32,0xbe8fb284,0x3f52be38,2
+np.float32,0x7ea64754,0x7f800000,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x80620cfd,0x3f800000,2
+np.float32,0x3f3e20e8,0x3fd62e72,2
+np.float32,0x3f384600,0x3fd2d00e,2
+np.float32,0xff362150,0x0,2
+np.float32,0xbf349fa8,0x3f1cfaef,2
+np.float32,0xbf776cf2,0x3f0301a6,2
+np.float32,0x8021fc60,0x3f800000,2
+np.float32,0xbdb75280,0x3f70995c,2
+np.float32,0x7e9363a6,0x7f800000,2
+np.float32,0x7e728422,0x7f800000,2
+np.float32,0xfe91edc2,0x0,2
+np.float32,0x3f5f438c,0x3fea491d,2
+np.float32,0x3f2afae9,0x3fcb5c1f,2
+np.float32,0xbef8e766,0x3f36c448,2
+np.float32,0xba522c00,0x3f7fdb97,2
+np.float32,0xff18ee8c,0x0,2
+np.float32,0xbee8c5f4,0x3f3acd44,2
+np.float32,0x3e790448,0x3f97802c,2
+np.float32,0x3e8c9541,0x3f9ad571,2
+np.float32,0xbf03fa9f,0x3f331460,2
+np.float32,0x801ee053,0x3f800000,2
+np.float32,0xbf773230,0x3f03167f,2
+np.float32,0x356fd9,0x3f800000,2
+np.float32,0x8009cd88,0x3f800000,2
+np.float32,0x7f2bac51,0x7f800000,2
+np.float32,0x4d9eeb,0x3f800000,2
+np.float32,0x3133,0x3f800000,2
+np.float32,0x7f4290e0,0x7f800000,2
+np.float32,0xbf5e6523,0x3f0c3161,2
+np.float32,0x3f19182e,0x3fc1bf10,2
+np.float32,0x7e1248bb,0x7f800000,2
+np.float32,0xff5f7aae,0x0,2
+np.float32,0x7e8557b5,0x7f800000,2
+np.float32,0x26fc7f,0x3f800000,2
+np.float32,0x80397d61,0x3f800000,2
+np.float32,0x3cb1825d,0x3f81efe0,2
+np.float32,0x3ed808d0,0x3fab7c45,2
+np.float32,0xbf6f668a,0x3f05e259,2
+np.float32,0x3e3c7802,0x3f916abd,2
+np.float32,0xbd5ac5a0,0x3f76b21b,2
+np.float32,0x805aa6c9,0x3f800000,2
+np.float32,0xbe4d6f68,0x3f5ec3e1,2
+np.float32,0x3f3108b2,0x3fceb87f,2
+np.float32,0x3ec385cc,0x3fa6c9fb,2
+np.float32,0xbe9fc1ce,0x3f4e35e8,2
+np.float32,0x43b68,0x3f800000,2
+np.float32,0x3ef0cdcc,0x3fb15557,2
+np.float32,0x3e3f729b,0x3f91b5e1,2
+np.float32,0x7f52a4df,0x7f800000,2
+np.float32,0xbf56da96,0x3f0f15b9,2
+np.float32,0xbf161d2b,0x3f2a7faf,2
+np.float32,0x3e8df763,0x3f9b1fbe,2
+np.float32,0xff4f0780,0x0,2
+np.float32,0x8048f594,0x3f800000,2
+np.float32,0x3e62bb1d,0x3f953b7e,2
+np.float32,0xfe58e764,0x0,2
+np.float32,0x3dd2c922,0x3f897718,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0xff07b4b2,0x0,2
+np.float32,0x7f6231a0,0x7f800000,2
+np.float32,0xb8d1d,0x3f800000,2
+np.float32,0x3ee01d24,0x3fad5f16,2
+np.float32,0xbf43f59f,0x3f169869,2
+np.float32,0x801f5257,0x3f800000,2
+np.float32,0x803c15d8,0x3f800000,2
+np.float32,0x3f171a08,0x3fc0b42a,2
+np.float32,0x127aef,0x3f800000,2
+np.float32,0xfd1c6,0x3f800000,2
+np.float32,0x3f1ed13e,0x3fc4c59a,2
+np.float32,0x57fd4f,0x3f800000,2
+np.float32,0x6e8c61,0x3f800000,2
+np.float32,0x804019ab,0x3f800000,2
+np.float32,0x3ef4e5c6,0x3fb251a1,2
+np.float32,0x5044c3,0x3f800000,2
+np.float32,0x3f04460f,0x3fb7204b,2
+np.float32,0x7e326b47,0x7f800000,2
+np.float32,0x800a7e4c,0x3f800000,2
+np.float32,0xbf47ec82,0x3f14fccc,2
+np.float32,0xbedb1b3e,0x3f3e4a4d,2
+np.float32,0x3f741d86,0x3ff7e4b0,2
+np.float32,0xbe249d20,0x3f6501a6,2
+np.float32,0xbf2ea152,0x3f1f8c68,2
+np.float32,0x3ec6dbcc,0x3fa78b3f,2
+np.float32,0x7ebd9bb4,0x7f800000,2
+np.float32,0x3f61b574,0x3febd77a,2
+np.float32,0x3f3dfb2b,0x3fd61891,2
+np.float32,0x3c7d95,0x3f800000,2
+np.float32,0x8071e840,0x3f800000,2
+np.float32,0x15c6fe,0x3f800000,2
+np.float32,0xbf096601,0x3f307893,2
+np.float32,0x7f5c2ef9,0x7f800000,2
+np.float32,0xbe79f750,0x3f582689,2
+np.float32,0x1eb692,0x3f800000,2
+np.float32,0xbd8024f0,0x3f75226d,2
+np.float32,0xbf5a8be8,0x3f0da950,2
+np.float32,0xbf4d28f3,0x3f12e3e1,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0xfea8a758,0x0,2
+np.float32,0x8075d2cf,0x3f800000,2
+np.float32,0xfd99af58,0x0,2
+np.float32,0x9e6a,0x3f800000,2
+np.float32,0x2fa19f,0x3f800000,2
+np.float32,0x3e9f4206,0x3f9ecc56,2
+np.float32,0xbee0b666,0x3f3cd9fc,2
+np.float32,0xbec558c4,0x3f43fab1,2
+np.float32,0x7e9a77df,0x7f800000,2
+np.float32,0xff3a9694,0x0,2
+np.float32,0x3f3b3708,0x3fd47f9a,2
+np.float32,0x807cd6d4,0x3f800000,2
+np.float32,0x804aa422,0x3f800000,2
+np.float32,0xfead7a70,0x0,2
+np.float32,0x3f08c610,0x3fb95efe,2
+np.float32,0xff390126,0x0,2
+np.float32,0x5d2d47,0x3f800000,2
+np.float32,0x8006849c,0x3f800000,2
+np.float32,0x654f6e,0x3f800000,2
+np.float32,0xff478a16,0x0,2
+np.float32,0x3f480b0c,0x3fdc024c,2
+np.float32,0xbc3b96c0,0x3f7df9f4,2
+np.float32,0xbcc96460,0x3f7bacb5,2
+np.float32,0x7f349f30,0x7f800000,2
+np.float32,0xbe08fa98,0x3f6954a1,2
+np.float32,0x4f3a13,0x3f800000,2
+np.float32,0x7f6a5ab4,0x7f800000,2
+np.float32,0x7eb85247,0x7f800000,2
+np.float32,0xbf287246,0x3f223e08,2
+np.float32,0x801584d0,0x3f800000,2
+np.float32,0x7ec25371,0x7f800000,2
+np.float32,0x3f002165,0x3fb51552,2
+np.float32,0x3e1108a8,0x3f8d3429,2
+np.float32,0x4f0f88,0x3f800000,2
+np.float32,0x7f67c1ce,0x7f800000,2
+np.float32,0xbf4348f8,0x3f16dedf,2
+np.float32,0xbe292b64,0x3f644d24,2
+np.float32,0xbf2bfa36,0x3f20b2d6,2
+np.float32,0xbf2a6e58,0x3f215f71,2
+np.float32,0x3e97d5d3,0x3f9d35df,2
+np.float32,0x31f597,0x3f800000,2
+np.float32,0x100544,0x3f800000,2
+np.float32,0x10a197,0x3f800000,2
+np.float32,0x3f44df50,0x3fda20d2,2
+np.float32,0x59916d,0x3f800000,2
+np.float32,0x707472,0x3f800000,2
+np.float32,0x8054194e,0x3f800000,2
+np.float32,0x80627b01,0x3f800000,2
+np.float32,0x7f4d5a5b,0x7f800000,2
+np.float32,0xbcecad00,0x3f7aeca5,2
+np.float32,0xff69c541,0x0,2
+np.float32,0xbe164e20,0x3f673c3a,2
+np.float32,0x3dd321de,0x3f897b39,2
+np.float32,0x3c9c4900,0x3f81b431,2
+np.float32,0x7f0efae3,0x7f800000,2
+np.float32,0xbf1b3ee6,0x3f282567,2
+np.float32,0x3ee858ac,0x3faf5083,2
+np.float32,0x3f0e6a39,0x3fbc3965,2
+np.float32,0x7f0c06d8,0x7f800000,2
+np.float32,0x801dd236,0x3f800000,2
+np.float32,0x564245,0x3f800000,2
+np.float32,0x7e99d3ad,0x7f800000,2
+np.float32,0xff3b0164,0x0,2
+np.float32,0x3f386f18,0x3fd2e785,2
+np.float32,0x7f603c39,0x7f800000,2
+np.float32,0x3cbd9b00,0x3f8211f0,2
+np.float32,0x2178e2,0x3f800000,2
+np.float32,0x5db226,0x3f800000,2
+np.float32,0xfec78d62,0x0,2
+np.float32,0x7f40bc1e,0x7f800000,2
+np.float32,0x80325064,0x3f800000,2
+np.float32,0x3f6068dc,0x3feb0377,2
+np.float32,0xfe8b95c6,0x0,2
+np.float32,0xbe496894,0x3f5f5f87,2
+np.float32,0xbf18722a,0x3f296cf4,2
+np.float32,0x332d0e,0x3f800000,2
+np.float32,0x3f6329dc,0x3fecc5c0,2
+np.float32,0x807d1802,0x3f800000,2
+np.float32,0x3e8afcee,0x3f9a7ff1,2
+np.float32,0x26a0a7,0x3f800000,2
+np.float32,0x7f13085d,0x7f800000,2
+np.float32,0x68d547,0x3f800000,2
+np.float32,0x7e9b04ae,0x7f800000,2
+np.float32,0x3f3ecdfe,0x3fd692ea,2
+np.float32,0x805256f4,0x3f800000,2
+np.float32,0x3f312dc8,0x3fcecd42,2
+np.float32,0x23ca15,0x3f800000,2
+np.float32,0x3f53c455,0x3fe31ad6,2
+np.float32,0xbf21186c,0x3f2580fd,2
+np.float32,0x803b9bb1,0x3f800000,2
+np.float32,0xff6ae1fc,0x0,2
+np.float32,0x2103cf,0x3f800000,2
+np.float32,0xbedcec6c,0x3f3dd29d,2
+np.float32,0x7f520afa,0x7f800000,2
+np.float32,0x7e8b44f2,0x7f800000,2
+np.float32,0xfef7f6ce,0x0,2
+np.float32,0xbd5e7c30,0x3f768a6f,2
+np.float32,0xfeb36848,0x0,2
+np.float32,0xff49effb,0x0,2
+np.float32,0xbec207c0,0x3f44dc74,2
+np.float32,0x3e91147f,0x3f9bc77f,2
+np.float32,0xfe784cd4,0x0,2
+np.float32,0xfd1a7250,0x0,2
+np.float32,0xff3b3f48,0x0,2
+np.float32,0x3f685db5,0x3ff0219f,2
+np.float32,0x3f370976,0x3fd21bae,2
+np.float32,0xfed4cc20,0x0,2
+np.float32,0xbf41e337,0x3f17714a,2
+np.float32,0xbf4e8638,0x3f12593a,2
+np.float32,0x3edaf0f1,0x3fac295e,2
+np.float32,0x803cbb4f,0x3f800000,2
+np.float32,0x7f492043,0x7f800000,2
+np.float32,0x2cabcf,0x3f800000,2
+np.float32,0x17f8ac,0x3f800000,2
+np.float32,0x3e846478,0x3f99205a,2
+np.float32,0x76948f,0x3f800000,2
+np.float32,0x1,0x3f800000,2
+np.float32,0x7ea6419e,0x7f800000,2
+np.float32,0xa5315,0x3f800000,2
+np.float32,0xff3a8e32,0x0,2
+np.float32,0xbe5714e8,0x3f5d50b7,2
+np.float32,0xfeadf960,0x0,2
+np.float32,0x3ebbd1a8,0x3fa50efc,2
+np.float32,0x7f31dce7,0x7f800000,2
+np.float32,0x80314999,0x3f800000,2
+np.float32,0x8017f41b,0x3f800000,2
+np.float32,0x7ed6d051,0x7f800000,2
+np.float32,0x7f525688,0x7f800000,2
+np.float32,0x7f7fffff,0x7f800000,2
+np.float32,0x3e8b0461,0x3f9a8180,2
+np.float32,0x3d9fe46e,0x3f871e1f,2
+np.float32,0x5e6d8f,0x3f800000,2
+np.float32,0xbf09ae55,0x3f305608,2
+np.float32,0xfe7028c4,0x0,2
+np.float32,0x7f3ade56,0x7f800000,2
+np.float32,0xff4c9ef9,0x0,2
+np.float32,0x7e3199cf,0x7f800000,2
+np.float32,0x8048652f,0x3f800000,2
+np.float32,0x805e1237,0x3f800000,2
+np.float32,0x189ed8,0x3f800000,2
+np.float32,0xbea7c094,0x3f4bfd98,2
+np.float32,0xbf2f109c,0x3f1f5c5c,2
+np.float32,0xbf0e7f4c,0x3f2e0d2c,2
+np.float32,0x8005981f,0x3f800000,2
+np.float32,0xbf762005,0x3f0377f3,2
+np.float32,0xbf0f60ab,0x3f2da317,2
+np.float32,0xbf4aa3e7,0x3f13e54e,2
+np.float32,0xbf348fd2,0x3f1d01aa,2
+np.float32,0x3e530b50,0x3f93a7fb,2
+np.float32,0xbf0b05a4,0x3f2fb26a,2
+np.float32,0x3eea416c,0x3fafc4aa,2
+np.float32,0x805ad04d,0x3f800000,2
+np.float32,0xbf6328d8,0x3f0a655e,2
+np.float32,0x3f7347b9,0x3ff75558,2
+np.float32,0xfda3ca68,0x0,2
+np.float32,0x80497d21,0x3f800000,2
+np.float32,0x3e740452,0x3f96fd22,2
+np.float32,0x3e528e57,0x3f939b7e,2
+np.float32,0x3e9e19fa,0x3f9e8cbd,2
+np.float32,0x8078060b,0x3f800000,2
+np.float32,0x3f3fea7a,0x3fd73872,2
+np.float32,0xfcfa30a0,0x0,2
+np.float32,0x7f4eb4bf,0x7f800000,2
+np.float32,0x3f712618,0x3ff5e900,2
+np.float32,0xbf668f0e,0x3f0920c6,2
+np.float32,0x3f3001e9,0x3fce259d,2
+np.float32,0xbe9b6fac,0x3f4f6b9c,2
+np.float32,0xbf61fcf3,0x3f0ad5ec,2
+np.float32,0xff08a55c,0x0,2
+np.float32,0x3e805014,0x3f984872,2
+np.float32,0x6ce04c,0x3f800000,2
+np.float32,0x7f7cbc07,0x7f800000,2
+np.float32,0x3c87dc,0x3f800000,2
+np.float32,0x3f2ee498,0x3fcd869a,2
+np.float32,0x4b1116,0x3f800000,2
+np.float32,0x3d382d06,0x3f840d5f,2
+np.float32,0xff7de21e,0x0,2
+np.float32,0x3f2f1d6d,0x3fcda63c,2
+np.float32,0xbf1c1618,0x3f27c38a,2
+np.float32,0xff4264b1,0x0,2
+np.float32,0x8026e5e7,0x3f800000,2
+np.float32,0xbe6fa180,0x3f59ab02,2
+np.float32,0xbe923c02,0x3f52053b,2
+np.float32,0xff3aa453,0x0,2
+np.float32,0x3f77a7ac,0x3ffa47d0,2
+np.float32,0xbed15f36,0x3f40d08a,2
+np.float32,0xa62d,0x3f800000,2
+np.float32,0xbf342038,0x3f1d3123,2
+np.float32,0x7f2f7f80,0x7f800000,2
+np.float32,0x7f2b6fc1,0x7f800000,2
+np.float32,0xff323540,0x0,2
+np.float32,0x3f1a2b6e,0x3fc24faa,2
+np.float32,0x800cc1d2,0x3f800000,2
+np.float32,0xff38fa01,0x0,2
+np.float32,0x80800000,0x3f800000,2
+np.float32,0xbf3d22e0,0x3f196745,2
+np.float32,0x7f40fd62,0x7f800000,2
+np.float32,0x7e1785c7,0x7f800000,2
+np.float32,0x807408c4,0x3f800000,2
+np.float32,0xbf300192,0x3f1ef485,2
+np.float32,0x351e3d,0x3f800000,2
+np.float32,0x7f5ab736,0x7f800000,2
+np.float32,0x2f1696,0x3f800000,2
+np.float32,0x806ac5d7,0x3f800000,2
+np.float32,0x42ec59,0x3f800000,2
+np.float32,0x7f79f52d,0x7f800000,2
+np.float32,0x44ad28,0x3f800000,2
+np.float32,0xbf49dc9c,0x3f143532,2
+np.float32,0x3f6c1f1f,0x3ff295e7,2
+np.float32,0x1589b3,0x3f800000,2
+np.float32,0x3f49b44e,0x3fdd0031,2
+np.float32,0x7f5942c9,0x7f800000,2
+np.float32,0x3f2dab28,0x3fccd877,2
+np.float32,0xff7fffff,0x0,2
+np.float32,0x80578eb2,0x3f800000,2
+np.float32,0x3f39ba67,0x3fd3a50b,2
+np.float32,0x8020340d,0x3f800000,2
+np.float32,0xbf6025b2,0x3f0b8783,2
+np.float32,0x8015ccfe,0x3f800000,2
+np.float32,0x3f6b9762,0x3ff23cd0,2
+np.float32,0xfeeb0c86,0x0,2
+np.float32,0x802779bc,0x3f800000,2
+np.float32,0xbf32bf64,0x3f1dc796,2
+np.float32,0xbf577eb6,0x3f0ed631,2
+np.float32,0x0,0x3f800000,2
+np.float32,0xfe99de6c,0x0,2
+np.float32,0x7a4e53,0x3f800000,2
+np.float32,0x1a15d3,0x3f800000,2
+np.float32,0x8035fe16,0x3f800000,2
+np.float32,0x3e845784,0x3f991dab,2
+np.float32,0x43d688,0x3f800000,2
+np.float32,0xbd447cc0,0x3f77a0b7,2
+np.float32,0x3f83fa,0x3f800000,2
+np.float32,0x3f141df2,0x3fbf2719,2
+np.float32,0x805c586a,0x3f800000,2
+np.float32,0x14c47e,0x3f800000,2
+np.float32,0x3d3bed00,0x3f8422d4,2
+np.float32,0x7f6f4ecd,0x7f800000,2
+np.float32,0x3f0a5e5a,0x3fba2c5c,2
+np.float32,0x523ecf,0x3f800000,2
+np.float32,0xbef4a6e8,0x3f37d262,2
+np.float32,0xff54eb58,0x0,2
+np.float32,0xff3fc875,0x0,2
+np.float32,0x8067c392,0x3f800000,2
+np.float32,0xfedae910,0x0,2
+np.float32,0x80595979,0x3f800000,2
+np.float32,0x3ee87d1d,0x3faf5929,2
+np.float32,0x7f5bad33,0x7f800000,2
+np.float32,0xbf45b868,0x3f15e109,2
+np.float32,0x3ef2277d,0x3fb1a868,2
+np.float32,0x3ca5a950,0x3f81ce8c,2
+np.float32,0x3e70f4e6,0x3f96ad25,2
+np.float32,0xfe3515bc,0x0,2
+np.float32,0xfe4af088,0x0,2
+np.float32,0xff3c78b2,0x0,2
+np.float32,0x7f50f51a,0x7f800000,2
+np.float32,0x3e3a232a,0x3f913009,2
+np.float32,0x7dfec6ff,0x7f800000,2
+np.float32,0x3e1bbaec,0x3f8e3ad6,2
+np.float32,0xbd658fa0,0x3f763ee7,2
+np.float32,0xfe958684,0x0,2
+np.float32,0x503670,0x3f800000,2
+np.float32,0x3f800000,0x40000000,2
+np.float32,0x1bbec6,0x3f800000,2
+np.float32,0xbea7bb7c,0x3f4bff00,2
+np.float32,0xff3a24a2,0x0,2
+np.float32,0xbf416240,0x3f17a635,2
+np.float32,0xbf800000,0x3f000000,2
+np.float32,0xff0c965c,0x0,2
+np.float32,0x80000000,0x3f800000,2
+np.float32,0xbec2c69a,0x3f44a99e,2
+np.float32,0x5b68d4,0x3f800000,2
+np.float32,0xb9a93000,0x3f7ff158,2
+np.float32,0x3d5a0dd8,0x3f84cfbc,2
+np.float32,0xbeaf7a28,0x3f49de4e,2
+np.float32,0x3ee83555,0x3faf4820,2
+np.float32,0xfd320330,0x0,2
+np.float32,0xe1af2,0x3f800000,2
+np.float32,0x7cf28caf,0x7f800000,2
+np.float32,0x80781009,0x3f800000,2
+np.float32,0xbf1e0baf,0x3f26e04d,2
+np.float32,0x7edb05b1,0x7f800000,2
+np.float32,0x3de004,0x3f800000,2
+np.float32,0xff436af6,0x0,2
+np.float32,0x802a9408,0x3f800000,2
+np.float32,0x7ed82205,0x7f800000,2
+np.float32,0x3e3f8212,0x3f91b767,2
+np.float32,0x16a2b2,0x3f800000,2
+np.float32,0xff1e5af3,0x0,2
+np.float32,0xbf1c860c,0x3f2790b7,2
+np.float32,0x3f3bc5da,0x3fd4d1d6,2
+np.float32,0x7f5f7085,0x7f800000,2
+np.float32,0x7f68e409,0x7f800000,2
+np.float32,0x7f4b3388,0x7f800000,2
+np.float32,0x7ecaf440,0x7f800000,2
+np.float32,0x80078785,0x3f800000,2
+np.float32,0x3ebd800d,0x3fa56f45,2
+np.float32,0xbe39a140,0x3f61c58e,2
+np.float32,0x803b587e,0x3f800000,2
+np.float32,0xbeaaa418,0x3f4b31c4,2
+np.float32,0xff7e2b9f,0x0,2
+np.float32,0xff5180a3,0x0,2
+np.float32,0xbf291394,0x3f21f73c,2
+np.float32,0x7f7b9698,0x7f800000,2
+np.float32,0x4218da,0x3f800000,2
+np.float32,0x7f135262,0x7f800000,2
+np.float32,0x804c10e8,0x3f800000,2
+np.float32,0xbf1c2a54,0x3f27ba5a,2
+np.float32,0x7f41fd32,0x7f800000,2
+np.float32,0x3e5cc464,0x3f94a195,2
+np.float32,0xff7a2fa7,0x0,2
+np.float32,0x3e05dc30,0x3f8c23c9,2
+np.float32,0x7f206d99,0x7f800000,2
+np.float32,0xbe9ae520,0x3f4f9287,2
+np.float32,0xfe4f4d58,0x0,2
+np.float32,0xbf44db42,0x3f163ae3,2
+np.float32,0x3f65ac48,0x3fee6300,2
+np.float32,0x3ebfaf36,0x3fa5ecb0,2
+np.float32,0x3f466719,0x3fdb08b0,2
+np.float32,0x80000001,0x3f800000,2
+np.float32,0xff4b3c7b,0x0,2
+np.float32,0x3df44374,0x3f8b0819,2
+np.float32,0xfea4b540,0x0,2
+np.float32,0x7f358e3d,0x7f800000,2
+np.float32,0x801f5e63,0x3f800000,2
+np.float32,0x804ae77e,0x3f800000,2
+np.float32,0xdbb5,0x3f800000,2
+np.float32,0x7f0a7e3b,0x7f800000,2
+np.float32,0xbe4152e4,0x3f609953,2
+np.float32,0x4b9579,0x3f800000,2
+np.float32,0x3ece0bd4,0x3fa92ea5,2
+np.float32,0x7e499d9a,0x7f800000,2
+np.float32,0x80637d8a,0x3f800000,2
+np.float32,0x3e50a425,0x3f936a8b,2
+np.float32,0xbf0e8cb0,0x3f2e06dd,2
+np.float32,0x802763e2,0x3f800000,2
+np.float32,0xff73041b,0x0,2
+np.float32,0xfea466da,0x0,2
+np.float32,0x80064c73,0x3f800000,2
+np.float32,0xbef29222,0x3f385728,2
+np.float32,0x8029c215,0x3f800000,2
+np.float32,0xbd3994e0,0x3f7815d1,2
+np.float32,0xbe6ac9e4,0x3f5a61f3,2
+np.float32,0x804b58b0,0x3f800000,2
+np.float32,0xbdb83be0,0x3f70865c,2
+np.float32,0x7ee18da2,0x7f800000,2
+np.float32,0xfd4ca010,0x0,2
+np.float32,0x807c668b,0x3f800000,2
+np.float32,0xbd40ed90,0x3f77c6e9,2
+np.float32,0x7efc6881,0x7f800000,2
+np.float32,0xfe633bfc,0x0,2
+np.float32,0x803ce363,0x3f800000,2
+np.float32,0x7ecba81e,0x7f800000,2
+np.float32,0xfdcb2378,0x0,2
+np.float32,0xbebc5524,0x3f4662b2,2
+np.float32,0xfaa30000,0x0,2
+np.float32,0x805d451b,0x3f800000,2
+np.float32,0xbee85600,0x3f3ae996,2
+np.float32,0xfefb0a54,0x0,2
+np.float32,0xbdfc6690,0x3f6b0a08,2
+np.float32,0x58a57,0x3f800000,2
+np.float32,0x3b41b7,0x3f800000,2
+np.float32,0x7c99812d,0x7f800000,2
+np.float32,0xbd3ae740,0x3f78079d,2
+np.float32,0xbf4a48a7,0x3f1409dd,2
+np.float32,0xfdeaad58,0x0,2
+np.float32,0xbe9aa65a,0x3f4fa42c,2
+np.float32,0x3f79d78c,0x3ffbc458,2
+np.float32,0x805e7389,0x3f800000,2
+np.float32,0x7ebb3612,0x7f800000,2
+np.float32,0x2e27dc,0x3f800000,2
+np.float32,0x80726dec,0x3f800000,2
+np.float32,0xfe8fb738,0x0,2
+np.float32,0xff1ff3bd,0x0,2
+np.float32,0x7f5264a2,0x7f800000,2
+np.float32,0x3f5a6893,0x3fe739ca,2
+np.float32,0xbec4029c,0x3f44558d,2
+np.float32,0xbef65cfa,0x3f37657e,2
+np.float32,0x63aba1,0x3f800000,2
+np.float32,0xfbb6e200,0x0,2
+np.float32,0xbf3466fc,0x3f1d1307,2
+np.float32,0x3f258844,0x3fc861d7,2
+np.float32,0xbf5f29a7,0x3f0be6dc,2
+np.float32,0x802b51cd,0x3f800000,2
+np.float32,0xbe9094dc,0x3f527dae,2
+np.float32,0xfec2e68c,0x0,2
+np.float32,0x807b38bd,0x3f800000,2
+np.float32,0xbf594662,0x3f0e2663,2
+np.float32,0x7cbcf747,0x7f800000,2
+np.float32,0xbe4b88f0,0x3f5f0d47,2
+np.float32,0x3c53c4,0x3f800000,2
+np.float32,0xbe883562,0x3f54e3f7,2
+np.float32,0xbf1efaf0,0x3f267456,2
+np.float32,0x3e22cd3e,0x3f8ee98b,2
+np.float32,0x80434875,0x3f800000,2
+np.float32,0xbf000b44,0x3f34ff6e,2
+np.float32,0x7f311c3a,0x7f800000,2
+np.float32,0x802f7f3f,0x3f800000,2
+np.float32,0x805155fe,0x3f800000,2
+np.float32,0x7f5d7485,0x7f800000,2
+np.float32,0x80119197,0x3f800000,2
+np.float32,0x3f445b8b,0x3fd9d30d,2
+np.float32,0xbf638eb3,0x3f0a3f38,2
+np.float32,0x402410,0x3f800000,2
+np.float32,0xbc578a40,0x3f7dad1d,2
+np.float32,0xbeecbf8a,0x3f39cc9e,2
+np.float32,0x7f2935a4,0x7f800000,2
+np.float32,0x3f570fea,0x3fe523e2,2
+np.float32,0xbf06bffa,0x3f31bdb6,2
+np.float32,0xbf2afdfd,0x3f2120ba,2
+np.float32,0x7f76f7ab,0x7f800000,2
+np.float32,0xfee2d1e8,0x0,2
+np.float32,0x800b026d,0x3f800000,2
+np.float32,0xff0eda75,0x0,2
+np.float32,0x3d4c,0x3f800000,2
+np.float32,0xbed538a2,0x3f3fcffb,2
+np.float32,0x3f73f4f9,0x3ff7c979,2
+np.float32,0x2aa9fc,0x3f800000,2
+np.float32,0x806a45b3,0x3f800000,2
+np.float32,0xff770d35,0x0,2
+np.float32,0x7e999be3,0x7f800000,2
+np.float32,0x80741128,0x3f800000,2
+np.float32,0xff6aac34,0x0,2
+np.float32,0x470f74,0x3f800000,2
+np.float32,0xff423b7b,0x0,2
+np.float32,0x17dfdd,0x3f800000,2
+np.float32,0x7f029e12,0x7f800000,2
+np.float32,0x803fcb9d,0x3f800000,2
+np.float32,0x3f3dc3,0x3f800000,2
+np.float32,0x7f3a27bc,0x7f800000,2
+np.float32,0x3e473108,0x3f9279ec,2
+np.float32,0x7f4add5d,0x7f800000,2
+np.float32,0xfd9736e0,0x0,2
+np.float32,0x805f1df2,0x3f800000,2
+np.float32,0x6c49c1,0x3f800000,2
+np.float32,0x7ec733c7,0x7f800000,2
+np.float32,0x804c1abf,0x3f800000,2
+np.float32,0x3de2e887,0x3f8a37a5,2
+np.float32,0x3f51630a,0x3fe1a561,2
+np.float32,0x3de686a8,0x3f8a62ff,2
+np.float32,0xbedb3538,0x3f3e439c,2
+np.float32,0xbf3aa892,0x3f1a6f9e,2
+np.float32,0x7ee5fb32,0x7f800000,2
+np.float32,0x7e916c9b,0x7f800000,2
+np.float32,0x3f033f1c,0x3fb69e19,2
+np.float32,0x25324b,0x3f800000,2
+np.float32,0x3f348d1d,0x3fd0b2e2,2
+np.float32,0x3f5797e8,0x3fe57851,2
+np.float32,0xbf69c316,0x3f07f1a0,2
+np.float32,0xbe8b7fb0,0x3f53f1bf,2
+np.float32,0xbdbbc190,0x3f703d00,2
+np.float32,0xff6c4fc0,0x0,2
+np.float32,0x7f29fcbe,0x7f800000,2
+np.float32,0x3f678d19,0x3fef9a23,2
+np.float32,0x73d140,0x3f800000,2
+np.float32,0x3e25bdd2,0x3f8f326b,2
+np.float32,0xbeb775ec,0x3f47b2c6,2
+np.float32,0xff451c4d,0x0,2
+np.float32,0x8072c466,0x3f800000,2
+np.float32,0x3f65e836,0x3fee89b2,2
+np.float32,0x52ca7a,0x3f800000,2
+np.float32,0x62cfed,0x3f800000,2
+np.float32,0xbf583dd0,0x3f0e8c5c,2
+np.float32,0xbf683842,0x3f088342,2
+np.float32,0x3f1a7828,0x3fc2780c,2
+np.float32,0x800ea979,0x3f800000,2
+np.float32,0xbeb9133c,0x3f474328,2
+np.float32,0x3ef09fc7,0x3fb14a4b,2
+np.float32,0x7ebbcb75,0x7f800000,2
+np.float32,0xff316c0e,0x0,2
+np.float32,0x805b84e3,0x3f800000,2
+np.float32,0x3d6a55e0,0x3f852d8a,2
+np.float32,0x3e755788,0x3f971fd1,2
+np.float32,0x3ee7aacb,0x3faf2743,2
+np.float32,0x7f714039,0x7f800000,2
+np.float32,0xff70bad8,0x0,2
+np.float32,0xbe0b74c8,0x3f68f08c,2
+np.float32,0xbf6cb170,0x3f06de86,2
+np.float32,0x7ec1fbff,0x7f800000,2
+np.float32,0x8014b1f6,0x3f800000,2
+np.float32,0xfe8b45fe,0x0,2
+np.float32,0x6e2220,0x3f800000,2
+np.float32,0x3ed1777d,0x3fa9f7ab,2
+np.float32,0xff48e467,0x0,2
+np.float32,0xff76c5aa,0x0,2
+np.float32,0x3e9bd330,0x3f9e0fd7,2
+np.float32,0x3f17de4f,0x3fc11aae,2
+np.float32,0x7eeaa2fd,0x7f800000,2
+np.float32,0xbf572746,0x3f0ef806,2
+np.float32,0x7e235554,0x7f800000,2
+np.float32,0xfe24fc1c,0x0,2
+np.float32,0x7daf71ad,0x7f800000,2
+np.float32,0x800d4a6b,0x3f800000,2
+np.float32,0xbf6fc31d,0x3f05c0ce,2
+np.float32,0x1c4d93,0x3f800000,2
+np.float32,0x7ee9200c,0x7f800000,2
+np.float32,0x3f54b4da,0x3fe3aeec,2
+np.float32,0x2b37b1,0x3f800000,2
+np.float32,0x3f7468bd,0x3ff81731,2
+np.float32,0x3f2850ea,0x3fc9e5f4,2
+np.float32,0xbe0d47ac,0x3f68a6f9,2
+np.float32,0x314877,0x3f800000,2
+np.float32,0x802700c3,0x3f800000,2
+np.float32,0x7e2c915f,0x7f800000,2
+np.float32,0x800d0059,0x3f800000,2
+np.float32,0x3f7f3c25,0x3fff7862,2
+np.float32,0xff735d31,0x0,2
+np.float32,0xff7e339e,0x0,2
+np.float32,0xbef96cf0,0x3f36a340,2
+np.float32,0x3db6ea21,0x3f882cb2,2
+np.float32,0x67cb3d,0x3f800000,2
+np.float32,0x801f349d,0x3f800000,2
+np.float32,0x3f1390ec,0x3fbede29,2
+np.float32,0x7f13644a,0x7f800000,2
+np.float32,0x804a369b,0x3f800000,2
+np.float32,0x80262666,0x3f800000,2
+np.float32,0x7e850fbc,0x7f800000,2
+np.float32,0x18b002,0x3f800000,2
+np.float32,0x8051f1ed,0x3f800000,2
+np.float32,0x3eba48f6,0x3fa4b753,2
+np.float32,0xbf3f4130,0x3f1886a9,2
+np.float32,0xbedac006,0x3f3e61cf,2
+np.float32,0xbf097c70,0x3f306ddc,2
+np.float32,0x4aba6d,0x3f800000,2
+np.float32,0x580078,0x3f800000,2
+np.float32,0x3f64d82e,0x3fedda40,2
+np.float32,0x7f781fd6,0x7f800000,2
+np.float32,0x6aff3d,0x3f800000,2
+np.float32,0xff25e074,0x0,2
+np.float32,0x7ea9ec89,0x7f800000,2
+np.float32,0xbf63b816,0x3f0a2fbb,2
+np.float32,0x133f07,0x3f800000,2
+np.float32,0xff800000,0x0,2
+np.float32,0x8013dde7,0x3f800000,2
+np.float32,0xff770b95,0x0,2
+np.float32,0x806154e8,0x3f800000,2
+np.float32,0x3f1e7bce,0x3fc4981a,2
+np.float32,0xff262c78,0x0,2
+np.float32,0x3f59a652,0x3fe6c04c,2
+np.float32,0x7f220166,0x7f800000,2
+np.float32,0x7eb24939,0x7f800000,2
+np.float32,0xbed58bb0,0x3f3fba6a,2
+np.float32,0x3c2ad000,0x3f80eda7,2
+np.float32,0x2adb2e,0x3f800000,2
+np.float32,0xfe8b213e,0x0,2
+np.float32,0xbf2e0c1e,0x3f1fccea,2
+np.float32,0x7e1716be,0x7f800000,2
+np.float32,0x80184e73,0x3f800000,2
+np.float32,0xbf254743,0x3f23a3d5,2
+np.float32,0x8063a722,0x3f800000,2
+np.float32,0xbe50adf0,0x3f5e46c7,2
+np.float32,0x3f614158,0x3feb8d60,2
+np.float32,0x8014bbc8,0x3f800000,2
+np.float32,0x283bc7,0x3f800000,2
+np.float32,0x3ffb5c,0x3f800000,2
+np.float32,0xfe8de6bc,0x0,2
+np.float32,0xbea6e086,0x3f4c3b82,2
+np.float32,0xfee64b92,0x0,2
+np.float32,0x506c1a,0x3f800000,2
+np.float32,0xff342af8,0x0,2
+np.float32,0x6b6f4c,0x3f800000,2
+np.float32,0xfeb42b1e,0x0,2
+np.float32,0x3e49384a,0x3f92ad71,2
+np.float32,0x152d08,0x3f800000,2
+np.float32,0x804c8f09,0x3f800000,2
+np.float32,0xff5e927d,0x0,2
+np.float32,0x6374da,0x3f800000,2
+np.float32,0x3f48f011,0x3fdc8ae4,2
+np.float32,0xbf446a30,0x3f1668e8,2
+np.float32,0x3ee77073,0x3faf196e,2
+np.float32,0xff4caa40,0x0,2
+np.float32,0x7efc9363,0x7f800000,2
+np.float32,0xbf706dcc,0x3f05830d,2
+np.float32,0xfe29c7e8,0x0,2
+np.float32,0x803cfe58,0x3f800000,2
+np.float32,0x3ec34c7c,0x3fa6bd0a,2
+np.float32,0x3eb85b62,0x3fa44968,2
+np.float32,0xfda1b9d8,0x0,2
+np.float32,0x802932cd,0x3f800000,2
+np.float32,0xbf5cde78,0x3f0cc5fa,2
+np.float32,0x3f31bf44,0x3fcf1ec8,2
+np.float32,0x803a0882,0x3f800000,2
+np.float32,0x800000,0x3f800000,2
+np.float32,0x3f54110e,0x3fe34a08,2
+np.float32,0x80645ea9,0x3f800000,2
+np.float32,0xbd8c1070,0x3f7425c3,2
+np.float32,0x801a006a,0x3f800000,2
+np.float32,0x7f5d161e,0x7f800000,2
+np.float32,0x805b5df3,0x3f800000,2
+np.float32,0xbf71a7c0,0x3f0511be,2
+np.float32,0xbe9a55c0,0x3f4fbad6,2
+np.float64,0xde7e2fd9bcfc6,0x3ff0000000000000,1
+np.float64,0xbfd8cd88eb319b12,0x3fe876349efbfa2b,1
+np.float64,0x3fe4fa13ace9f428,0x3ff933fbb117d196,1
+np.float64,0x475b3d048eb68,0x3ff0000000000000,1
+np.float64,0x7fef39ed07be73d9,0x7ff0000000000000,1
+np.float64,0x80026b84d904d70a,0x3ff0000000000000,1
+np.float64,0xebd60627d7ac1,0x3ff0000000000000,1
+np.float64,0xbfd7cbefdbaf97e0,0x3fe8bad30f6cf8e1,1
+np.float64,0x7fc17c605a22f8c0,0x7ff0000000000000,1
+np.float64,0x8cdac05119b58,0x3ff0000000000000,1
+np.float64,0x3fc45cd60a28b9ac,0x3ff1dd8028ec3f41,1
+np.float64,0x7fef4fce137e9f9b,0x7ff0000000000000,1
+np.float64,0xe5a2b819cb457,0x3ff0000000000000,1
+np.float64,0xe3bcfd4dc77a0,0x3ff0000000000000,1
+np.float64,0x68f0b670d1e17,0x3ff0000000000000,1
+np.float64,0xae69a6455cd35,0x3ff0000000000000,1
+np.float64,0xffe7007a0c6e00f4,0x0,1
+np.float64,0x59fc57a8b3f8c,0x3ff0000000000000,1
+np.float64,0xbfeee429c0bdc854,0x3fe0638fa62bed9f,1
+np.float64,0x80030bb6e206176f,0x3ff0000000000000,1
+np.float64,0x8006967a36ad2cf5,0x3ff0000000000000,1
+np.float64,0x3fe128176a22502f,0x3ff73393301e5dc8,1
+np.float64,0x218de20c431bd,0x3ff0000000000000,1
+np.float64,0x3fe7dbc48aafb789,0x3ffad38989b5955c,1
+np.float64,0xffda1ef411343de8,0x0,1
+np.float64,0xc6b392838d673,0x3ff0000000000000,1
+np.float64,0x7fe6d080c1ada101,0x7ff0000000000000,1
+np.float64,0xbfed36dd67fa6dbb,0x3fe0fec342c4ee89,1
+np.float64,0x3fee2bb6a3fc576e,0x3ffec1c149f1f092,1
+np.float64,0xbfd1f785eb23ef0c,0x3fea576eb01233cb,1
+np.float64,0x7fdad29a1f35a533,0x7ff0000000000000,1
+np.float64,0xffe8928c4fb12518,0x0,1
+np.float64,0x7fb123160022462b,0x7ff0000000000000,1
+np.float64,0x8007ab56cfaf56ae,0x3ff0000000000000,1
+np.float64,0x7fda342d6634685a,0x7ff0000000000000,1
+np.float64,0xbfe3b7e42c676fc8,0x3fe4e05cf8685b8a,1
+np.float64,0xffa708be7c2e1180,0x0,1
+np.float64,0xbfe8ffbece31ff7e,0x3fe29eb84077a34a,1
+np.float64,0xbf91002008220040,0x3fefa245058f05cb,1
+np.float64,0x8000281f0ee0503f,0x3ff0000000000000,1
+np.float64,0x8005617adc2ac2f6,0x3ff0000000000000,1
+np.float64,0x7fa84fec60309fd8,0x7ff0000000000000,1
+np.float64,0x8d00c0231a018,0x3ff0000000000000,1
+np.float64,0xbfdfe52ca63fca5a,0x3fe6a7324cc00d57,1
+np.float64,0x7fcc81073d39020d,0x7ff0000000000000,1
+np.float64,0x800134ff5a6269ff,0x3ff0000000000000,1
+np.float64,0xffc7fff98d2ffff4,0x0,1
+np.float64,0x8000925ce50124bb,0x3ff0000000000000,1
+np.float64,0xffe2530c66a4a618,0x0,1
+np.float64,0x7fc99070673320e0,0x7ff0000000000000,1
+np.float64,0xbfddd5c1f13bab84,0x3fe72a0c80f8df39,1
+np.float64,0x3fe1c220fee38442,0x3ff7817ec66aa55b,1
+np.float64,0x3fb9a1e1043343c2,0x3ff1265e575e6404,1
+np.float64,0xffef72e0833ee5c0,0x0,1
+np.float64,0x3fe710c0416e2181,0x3ffa5e93588aaa69,1
+np.float64,0xbfd8d23cbab1a47a,0x3fe874f5b9d99885,1
+np.float64,0x7fe9628ebd72c51c,0x7ff0000000000000,1
+np.float64,0xdd5fa611babf5,0x3ff0000000000000,1
+np.float64,0x8002bafac86575f6,0x3ff0000000000000,1
+np.float64,0x68acea44d159e,0x3ff0000000000000,1
+np.float64,0xffd776695eaeecd2,0x0,1
+np.float64,0x80059b59bb4b36b4,0x3ff0000000000000,1
+np.float64,0xbdcdd2af7b9bb,0x3ff0000000000000,1
+np.float64,0x8002b432ee856867,0x3ff0000000000000,1
+np.float64,0xcbc72f09978e6,0x3ff0000000000000,1
+np.float64,0xbfee8f4bf6fd1e98,0x3fe081cc0318b170,1
+np.float64,0xffc6e2892d2dc514,0x0,1
+np.float64,0x7feb682e4db6d05c,0x7ff0000000000000,1
+np.float64,0x8004b70a04296e15,0x3ff0000000000000,1
+np.float64,0x42408a4284812,0x3ff0000000000000,1
+np.float64,0xbfe9b8b197f37163,0x3fe254b4c003ce0a,1
+np.float64,0x3fcaadf5f5355bec,0x3ff27ca7876a8d20,1
+np.float64,0xfff0000000000000,0x0,1
+np.float64,0x7fea8376d33506ed,0x7ff0000000000000,1
+np.float64,0xffef73c2d63ee785,0x0,1
+np.float64,0xffe68b2bae2d1657,0x0,1
+np.float64,0x3fd8339cb2306739,0x3ff4cb774d616f90,1
+np.float64,0xbfc6d1db4d2da3b8,0x3fec47bb873a309c,1
+np.float64,0x7fe858016230b002,0x7ff0000000000000,1
+np.float64,0x7fe74cb99d2e9972,0x7ff0000000000000,1
+np.float64,0xffec2e96dc385d2d,0x0,1
+np.float64,0xb762a9876ec55,0x3ff0000000000000,1
+np.float64,0x3feca230c5794462,0x3ffdbfe62a572f52,1
+np.float64,0xbfb5ebad3a2bd758,0x3fee27eed86dcc39,1
+np.float64,0x471c705a8e38f,0x3ff0000000000000,1
+np.float64,0x7fc79bb5cf2f376b,0x7ff0000000000000,1
+np.float64,0xbfe53d6164ea7ac3,0x3fe4331b3beb73bd,1
+np.float64,0xbfe375a3f766eb48,0x3fe4fe67edb516e6,1
+np.float64,0x3fe1c7686ca38ed1,0x3ff7842f04770ba9,1
+np.float64,0x242e74dc485cf,0x3ff0000000000000,1
+np.float64,0x8009c06ab71380d6,0x3ff0000000000000,1
+np.float64,0x3fd08505efa10a0c,0x3ff3227b735b956d,1
+np.float64,0xffe3dfcecda7bf9d,0x0,1
+np.float64,0x8001f079bbc3e0f4,0x3ff0000000000000,1
+np.float64,0x3fddc706b6bb8e0c,0x3ff616d927987363,1
+np.float64,0xbfd151373ea2a26e,0x3fea870ba53ec126,1
+np.float64,0x7fe89533bfb12a66,0x7ff0000000000000,1
+np.float64,0xffed302cbc3a6059,0x0,1
+np.float64,0x3fd871cc28b0e398,0x3ff4d97d58c16ae2,1
+np.float64,0x7fbe9239683d2472,0x7ff0000000000000,1
+np.float64,0x848a445909149,0x3ff0000000000000,1
+np.float64,0x8007b104ce2f620a,0x3ff0000000000000,1
+np.float64,0x7fc2cd6259259ac4,0x7ff0000000000000,1
+np.float64,0xbfeadb640df5b6c8,0x3fe1e2b068de10af,1
+np.float64,0x800033b2f1a06767,0x3ff0000000000000,1
+np.float64,0x7fe54e5b7caa9cb6,0x7ff0000000000000,1
+np.float64,0x4f928f209f26,0x3ff0000000000000,1
+np.float64,0x8003c3dc6f2787ba,0x3ff0000000000000,1
+np.float64,0xbfd55a59daaab4b4,0x3fe9649d57b32b5d,1
+np.float64,0xffe3e2968d67c52c,0x0,1
+np.float64,0x80087434d550e86a,0x3ff0000000000000,1
+np.float64,0xffdde800083bd000,0x0,1
+np.float64,0xffe291f0542523e0,0x0,1
+np.float64,0xbfe1419bc3e28338,0x3fe6051d4f95a34a,1
+np.float64,0x3fd9d00ee1b3a01e,0x3ff5292bb8d5f753,1
+np.float64,0x3fdb720b60b6e417,0x3ff589d133625374,1
+np.float64,0xbfe3e21f0967c43e,0x3fe4cd4d02e3ef9a,1
+np.float64,0x7fd7e27f3dafc4fd,0x7ff0000000000000,1
+np.float64,0x3fd1cc2620a3984c,0x3ff366befbc38e3e,1
+np.float64,0x3fe78d05436f1a0b,0x3ffaa5ee4ea54b79,1
+np.float64,0x7e2acc84fc55a,0x3ff0000000000000,1
+np.float64,0x800ffb861c5ff70c,0x3ff0000000000000,1
+np.float64,0xffb2b0db1a2561b8,0x0,1
+np.float64,0xbfe80c2363701847,0x3fe301fdfe789576,1
+np.float64,0x7fe383c1c3e70783,0x7ff0000000000000,1
+np.float64,0xbfeefc02e6fdf806,0x3fe05b1a8528bf6c,1
+np.float64,0xbfe42c9268285925,0x3fe4abdc14793cb8,1
+np.float64,0x1,0x3ff0000000000000,1
+np.float64,0xa71c7ce94e390,0x3ff0000000000000,1
+np.float64,0x800ed4e6777da9cd,0x3ff0000000000000,1
+np.float64,0x3fde11b35d3c2367,0x3ff628bdc6dd1b78,1
+np.float64,0x3fef3964dbfe72ca,0x3fff777cae357608,1
+np.float64,0x3fefe369b7ffc6d4,0x3fffec357be508a3,1
+np.float64,0xbfdef1855f3de30a,0x3fe6e348c58e3fed,1
+np.float64,0x3fee0e2bc13c1c58,0x3ffeae1909c1b973,1
+np.float64,0xbfd31554ffa62aaa,0x3fea06628b2f048a,1
+np.float64,0x800dc56bcc7b8ad8,0x3ff0000000000000,1
+np.float64,0x7fbba01b8e374036,0x7ff0000000000000,1
+np.float64,0x7fd9737a92b2e6f4,0x7ff0000000000000,1
+np.float64,0x3feeae0fac3d5c1f,0x3fff1913705f1f07,1
+np.float64,0x3fdcc64fcdb98ca0,0x3ff5d9c3e5862972,1
+np.float64,0x3fdad9f83db5b3f0,0x3ff56674e81c1bd1,1
+np.float64,0x32b8797065710,0x3ff0000000000000,1
+np.float64,0x3fd20deae6241bd6,0x3ff37495bc057394,1
+np.float64,0x7fc899f0763133e0,0x7ff0000000000000,1
+np.float64,0x80045805fc08b00d,0x3ff0000000000000,1
+np.float64,0xbfcd8304cb3b0608,0x3feb4611f1eaa30c,1
+np.float64,0x3fd632a2fcac6544,0x3ff4592e1ea14fb0,1
+np.float64,0xffeeb066007d60cb,0x0,1
+np.float64,0x800bb12a42b76255,0x3ff0000000000000,1
+np.float64,0xbfe060fe1760c1fc,0x3fe6714640ab2574,1
+np.float64,0x80067ed737acfdaf,0x3ff0000000000000,1
+np.float64,0x3fd5ec3211abd864,0x3ff449adea82e73e,1
+np.float64,0x7fc4b2fdc22965fb,0x7ff0000000000000,1
+np.float64,0xff656afd002ad600,0x0,1
+np.float64,0xffeadefcdcb5bdf9,0x0,1
+np.float64,0x80052f18610a5e32,0x3ff0000000000000,1
+np.float64,0xbfd5b75c78ab6eb8,0x3fe94b15e0f39194,1
+np.float64,0xa4d3de2b49a7c,0x3ff0000000000000,1
+np.float64,0xbfe321c93de64392,0x3fe524ac7bbee401,1
+np.float64,0x3feb32f5def665ec,0x3ffcd6e4e5f9c271,1
+np.float64,0x7fe6b07e4ced60fc,0x7ff0000000000000,1
+np.float64,0x3fe013bb2de02776,0x3ff6aa4c32ab5ba4,1
+np.float64,0xbfeadd81d375bb04,0x3fe1e1de89b4aebf,1
+np.float64,0xffece7678079cece,0x0,1
+np.float64,0x3fe3d87b8467b0f8,0x3ff897cf22505e4d,1
+np.float64,0xffc4e3a05129c740,0x0,1
+np.float64,0xbfddee6b03bbdcd6,0x3fe723dd83ab49bd,1
+np.float64,0x3fcc4e2672389c4d,0x3ff2a680db769116,1
+np.float64,0x3fd8ed221ab1da44,0x3ff4f569aec8b850,1
+np.float64,0x80000a3538a0146b,0x3ff0000000000000,1
+np.float64,0x8004832eb109065e,0x3ff0000000000000,1
+np.float64,0xffdca83c60395078,0x0,1
+np.float64,0xffef551cda3eaa39,0x0,1
+np.float64,0x800fd95dd65fb2bc,0x3ff0000000000000,1
+np.float64,0x3ff0000000000000,0x4000000000000000,1
+np.float64,0xbfc06f5c4f20deb8,0x3fed466c17305ad8,1
+np.float64,0xbfeb01b5f476036c,0x3fe1d3de0f4211f4,1
+np.float64,0xbfdb2b9284365726,0x3fe7d7b02f790b05,1
+np.float64,0xff76ba83202d7500,0x0,1
+np.float64,0x3fd3f1c59ea7e38c,0x3ff3db96b3a0aaad,1
+np.float64,0x8b99ff6d17340,0x3ff0000000000000,1
+np.float64,0xbfeb383aa0f67075,0x3fe1bedcf2531c08,1
+np.float64,0x3fe321e35fa643c7,0x3ff83749a5d686ee,1
+np.float64,0xbfd863eb2130c7d6,0x3fe8923fcc39bac7,1
+np.float64,0x9e71dd333ce3c,0x3ff0000000000000,1
+np.float64,0x9542962b2a853,0x3ff0000000000000,1
+np.float64,0xba2c963b74593,0x3ff0000000000000,1
+np.float64,0x80019f4d0ca33e9b,0x3ff0000000000000,1
+np.float64,0xffde3e39a73c7c74,0x0,1
+np.float64,0x800258ae02c4b15d,0x3ff0000000000000,1
+np.float64,0xbfd99a535a3334a6,0x3fe8402f3a0662a5,1
+np.float64,0xe6c62143cd8c4,0x3ff0000000000000,1
+np.float64,0x7fbcc828f0399051,0x7ff0000000000000,1
+np.float64,0xbfe42e3596285c6b,0x3fe4ab2066d66071,1
+np.float64,0xffe2ee42d365dc85,0x0,1
+np.float64,0x3fe1f98abea3f315,0x3ff79dc68002a80b,1
+np.float64,0x7fd7225891ae44b0,0x7ff0000000000000,1
+np.float64,0x477177408ee30,0x3ff0000000000000,1
+np.float64,0xbfe16a7e2162d4fc,0x3fe5f1a5c745385d,1
+np.float64,0xbf98aaee283155e0,0x3fef785952e9c089,1
+np.float64,0x7fd7c14a8daf8294,0x7ff0000000000000,1
+np.float64,0xf7e7713defcee,0x3ff0000000000000,1
+np.float64,0x800769aa11aed355,0x3ff0000000000000,1
+np.float64,0xbfed30385e3a6071,0x3fe10135a3bd9ae6,1
+np.float64,0x3fe6dd7205edbae4,0x3ffa4155899efd70,1
+np.float64,0x800d705d26bae0ba,0x3ff0000000000000,1
+np.float64,0xa443ac1f48876,0x3ff0000000000000,1
+np.float64,0xbfec8cfec43919fe,0x3fe13dbf966e6633,1
+np.float64,0x7fd246efaa248dde,0x7ff0000000000000,1
+np.float64,0x800f2ad14afe55a3,0x3ff0000000000000,1
+np.float64,0x800487a894c90f52,0x3ff0000000000000,1
+np.float64,0x80014c4f19e2989f,0x3ff0000000000000,1
+np.float64,0x3fc11f265f223e4d,0x3ff18def05c971e5,1
+np.float64,0xffeb6d565776daac,0x0,1
+np.float64,0x7fd5ca5df8ab94bb,0x7ff0000000000000,1
+np.float64,0xbfe33de4fde67bca,0x3fe517d0e212cd1c,1
+np.float64,0xbfd1c738e5a38e72,0x3fea6539e9491693,1
+np.float64,0xbfec1d8c33b83b18,0x3fe16790fbca0c65,1
+np.float64,0xbfeecb464b7d968d,0x3fe06c67e2aefa55,1
+np.float64,0xbfd621dbf1ac43b8,0x3fe92dfa32d93846,1
+np.float64,0x80069a02860d3406,0x3ff0000000000000,1
+np.float64,0xbfe84f650e309eca,0x3fe2e661300f1975,1
+np.float64,0x7fc1d2cec523a59d,0x7ff0000000000000,1
+np.float64,0x3fd7706d79aee0db,0x3ff49fb033353dfe,1
+np.float64,0xffd94ba458329748,0x0,1
+np.float64,0x7fea98ba1a753173,0x7ff0000000000000,1
+np.float64,0xbfe756ba092ead74,0x3fe34d428d1857bc,1
+np.float64,0xffecfbd836b9f7b0,0x0,1
+np.float64,0x3fd211fbe5a423f8,0x3ff375711a3641e0,1
+np.float64,0x7fee24f7793c49ee,0x7ff0000000000000,1
+np.float64,0x7fe6a098886d4130,0x7ff0000000000000,1
+np.float64,0xbfd4ade909a95bd2,0x3fe99436524db1f4,1
+np.float64,0xbfeb704e6476e09d,0x3fe1a95be4a21bc6,1
+np.float64,0xffefc0f6627f81ec,0x0,1
+np.float64,0x7feff3f896ffe7f0,0x7ff0000000000000,1
+np.float64,0xa3f74edb47eea,0x3ff0000000000000,1
+np.float64,0xbfe0a551cf214aa4,0x3fe65027a7ff42e3,1
+np.float64,0x3fe164b23622c964,0x3ff7521c6225f51d,1
+np.float64,0x7fc258752324b0e9,0x7ff0000000000000,1
+np.float64,0x4739b3348e737,0x3ff0000000000000,1
+np.float64,0xb0392b1d60726,0x3ff0000000000000,1
+np.float64,0x7fe26f42e5e4de85,0x7ff0000000000000,1
+np.float64,0x8004601f87e8c040,0x3ff0000000000000,1
+np.float64,0xffe92ce37b3259c6,0x0,1
+np.float64,0x3fe620da3a6c41b4,0x3ff9d6ee3d005466,1
+np.float64,0x3fd850cfa2b0a1a0,0x3ff4d20bd249d411,1
+np.float64,0xffdcdfdfb5b9bfc0,0x0,1
+np.float64,0x800390297d672054,0x3ff0000000000000,1
+np.float64,0x3fde5864f6bcb0ca,0x3ff639bb9321f5ef,1
+np.float64,0x3fee484cec7c909a,0x3ffed4d2c6274219,1
+np.float64,0x7fe9b9a064b37340,0x7ff0000000000000,1
+np.float64,0xffe50028b8aa0051,0x0,1
+np.float64,0x3fe37774ade6eee9,0x3ff864558498a9a8,1
+np.float64,0x7fef83c724bf078d,0x7ff0000000000000,1
+np.float64,0xbfeb58450fb6b08a,0x3fe1b290556be73d,1
+np.float64,0x7fd7161475ae2c28,0x7ff0000000000000,1
+np.float64,0x3fece09621f9c12c,0x3ffde836a583bbdd,1
+np.float64,0x3fd045790ea08af2,0x3ff31554778fd4e2,1
+np.float64,0xbfe7c7dd6cef8fbb,0x3fe31e2eeda857fc,1
+np.float64,0xffe9632f5372c65e,0x0,1
+np.float64,0x800d4f3a703a9e75,0x3ff0000000000000,1
+np.float64,0xffea880e4df5101c,0x0,1
+np.float64,0xbfeb7edc4ff6fdb8,0x3fe1a3cb5dc33594,1
+np.float64,0xbfcaae4bab355c98,0x3febb1ee65e16b58,1
+np.float64,0xbfde598a19bcb314,0x3fe709145eafaaf8,1
+np.float64,0x3feefb6d78fdf6db,0x3fff4d5c8c68e39a,1
+np.float64,0x13efc75427dfa,0x3ff0000000000000,1
+np.float64,0xffe26f65c064decb,0x0,1
+np.float64,0xbfed5c1addfab836,0x3fe0f1133bd2189a,1
+np.float64,0x7fe7a7cf756f4f9e,0x7ff0000000000000,1
+np.float64,0xffc681702e2d02e0,0x0,1
+np.float64,0x8003d6ab5067ad57,0x3ff0000000000000,1
+np.float64,0xffa695f1342d2be0,0x0,1
+np.float64,0xbfcf8857db3f10b0,0x3feafa14da8c29a4,1
+np.float64,0xbfe8ca06be71940e,0x3fe2b46f6d2c64b4,1
+np.float64,0x3451c74468a3a,0x3ff0000000000000,1
+np.float64,0x3fde47d5f6bc8fac,0x3ff635bf8e024716,1
+np.float64,0xffda159d5db42b3a,0x0,1
+np.float64,0x7fef9fecaa3f3fd8,0x7ff0000000000000,1
+np.float64,0x3fd4e745e3a9ce8c,0x3ff410a9cb6fd8bf,1
+np.float64,0xffef57019b3eae02,0x0,1
+np.float64,0xbfe6604f4f6cc09e,0x3fe3b55de43c626d,1
+np.float64,0xffe066a424a0cd48,0x0,1
+np.float64,0x3fd547de85aa8fbc,0x3ff425b2a7a16675,1
+np.float64,0xffb3c69280278d28,0x0,1
+np.float64,0xffebe0b759f7c16e,0x0,1
+np.float64,0x3fefc84106ff9082,0x3fffd973687337d8,1
+np.float64,0x501c42a4a0389,0x3ff0000000000000,1
+np.float64,0x7feb45d13eb68ba1,0x7ff0000000000000,1
+np.float64,0xbfb16a8c2e22d518,0x3fee86a9c0f9291a,1
+np.float64,0x3be327b877c66,0x3ff0000000000000,1
+np.float64,0x7fe4a58220694b03,0x7ff0000000000000,1
+np.float64,0x3fe0286220a050c4,0x3ff6b472157ab8f2,1
+np.float64,0x3fc9381825327030,0x3ff2575fbea2bf5d,1
+np.float64,0xbfd1af7ee8a35efe,0x3fea6c032cf7e669,1
+np.float64,0xbfea9b0f39b5361e,0x3fe1fbae14b40b4d,1
+np.float64,0x39efe4aa73dfd,0x3ff0000000000000,1
+np.float64,0xffeb06fdc8360dfb,0x0,1
+np.float64,0xbfda481e72b4903c,0x3fe812b4b08d4884,1
+np.float64,0xbfd414ba5ba82974,0x3fe9bec9474bdfe6,1
+np.float64,0x7fe707177b6e0e2e,0x7ff0000000000000,1
+np.float64,0x8000000000000001,0x3ff0000000000000,1
+np.float64,0xbfede6a75bbbcd4f,0x3fe0be874cccd399,1
+np.float64,0x8006cdb577cd9b6c,0x3ff0000000000000,1
+np.float64,0x800051374f20a26f,0x3ff0000000000000,1
+np.float64,0x3fe5cba8c96b9752,0x3ff9a76b3adcc122,1
+np.float64,0xbfee3933487c7267,0x3fe0a0b190f9609a,1
+np.float64,0x3fd574b8d8aae970,0x3ff42f7e83de1af9,1
+np.float64,0xba5db72b74bb7,0x3ff0000000000000,1
+np.float64,0x3fa9bf512c337ea0,0x3ff0914a7f743a94,1
+np.float64,0xffe8cb736c3196e6,0x0,1
+np.float64,0x3761b2f06ec37,0x3ff0000000000000,1
+np.float64,0x8b4d4433169a9,0x3ff0000000000000,1
+np.float64,0x800f0245503e048b,0x3ff0000000000000,1
+np.float64,0x7fb20d54ac241aa8,0x7ff0000000000000,1
+np.float64,0x3fdf26666b3e4ccd,0x3ff66b8995142017,1
+np.float64,0xbfcbf2a83737e550,0x3feb8173a7b9d6b5,1
+np.float64,0x3fd31572a0a62ae5,0x3ff3ac6c94313dcd,1
+np.float64,0x7fb6c2807a2d8500,0x7ff0000000000000,1
+np.float64,0x800799758f2f32ec,0x3ff0000000000000,1
+np.float64,0xe72f1f6bce5e4,0x3ff0000000000000,1
+np.float64,0x3fe0e0f223a1c1e4,0x3ff70fed5b761673,1
+np.float64,0x3fe6d4f133eda9e2,0x3ffa3c8000c169eb,1
+np.float64,0xbfe1ccc3d8639988,0x3fe5c32148bedbda,1
+np.float64,0x3fea71c53574e38a,0x3ffc5f31201fe9be,1
+np.float64,0x9e0323eb3c065,0x3ff0000000000000,1
+np.float64,0x8005cc79a5cb98f4,0x3ff0000000000000,1
+np.float64,0x1dace1f83b59d,0x3ff0000000000000,1
+np.float64,0x10000000000000,0x3ff0000000000000,1
+np.float64,0xbfdef50830bdea10,0x3fe6e269fc17ebef,1
+np.float64,0x8010000000000000,0x3ff0000000000000,1
+np.float64,0xbfdfa82192bf5044,0x3fe6b6313ee0a095,1
+np.float64,0x3fd9398fe2b27320,0x3ff506ca2093c060,1
+np.float64,0x8002721fe664e441,0x3ff0000000000000,1
+np.float64,0x800c04166ad8082d,0x3ff0000000000000,1
+np.float64,0xffec3918b3387230,0x0,1
+np.float64,0x3fec62d5dfb8c5ac,0x3ffd972ea4a54b32,1
+np.float64,0x3fe7e42a0b6fc854,0x3ffad86b0443181d,1
+np.float64,0x3fc0aff5f3215fec,0x3ff1836058d4d210,1
+np.float64,0xbf82ff68a025fec0,0x3fefcb7f06862dce,1
+np.float64,0xae2e35195c5c7,0x3ff0000000000000,1
+np.float64,0x3fece3bddf79c77c,0x3ffdea41fb1ba8fa,1
+np.float64,0xbfa97b947832f730,0x3feeea34ebedbbd2,1
+np.float64,0xbfdfb1b1ce3f6364,0x3fe6b3d72871335c,1
+np.float64,0xbfe61a4f24ac349e,0x3fe3d356bf991b06,1
+np.float64,0x7fe23117a5e4622e,0x7ff0000000000000,1
+np.float64,0x800552a8cccaa552,0x3ff0000000000000,1
+np.float64,0x625b4d0ac4b6a,0x3ff0000000000000,1
+np.float64,0x3f86cf15702d9e00,0x3ff01fbe0381676d,1
+np.float64,0x800d7d1b685afa37,0x3ff0000000000000,1
+np.float64,0x3fe2cb6e40a596dd,0x3ff80a1a562f7fc9,1
+np.float64,0x3fe756eb8e2eadd7,0x3ffa86c638aad07d,1
+np.float64,0x800dc9a5513b934b,0x3ff0000000000000,1
+np.float64,0xbfbbdd118a37ba20,0x3fedacb4624f3cee,1
+np.float64,0x800de01f8efbc03f,0x3ff0000000000000,1
+np.float64,0x800da1a3fe9b4348,0x3ff0000000000000,1
+np.float64,0xbf87d8c7602fb180,0x3fefbe2614998ab6,1
+np.float64,0xbfdfff6141bffec2,0x3fe6a0c54d9f1bc8,1
+np.float64,0xee8fbba5dd1f8,0x3ff0000000000000,1
+np.float64,0x3fe79dc93e6f3b92,0x3ffaaf9d7d955b2c,1
+np.float64,0xffedd4b3d07ba967,0x0,1
+np.float64,0x800905dfc1720bc0,0x3ff0000000000000,1
+np.float64,0x3fd9e483b8b3c907,0x3ff52ddc6c950e7f,1
+np.float64,0xe34ffefdc6a00,0x3ff0000000000000,1
+np.float64,0x2168e62242d1e,0x3ff0000000000000,1
+np.float64,0x800349950e26932b,0x3ff0000000000000,1
+np.float64,0x7fc50da8532a1b50,0x7ff0000000000000,1
+np.float64,0xae1a4d115c34a,0x3ff0000000000000,1
+np.float64,0xa020f0b74041e,0x3ff0000000000000,1
+np.float64,0x3fd2aa2f77a5545f,0x3ff3959f09519a25,1
+np.float64,0x3fbfefc3223fdf86,0x3ff171f3df2d408b,1
+np.float64,0xbfea9fc340b53f86,0x3fe1f9d92b712654,1
+np.float64,0xffe9b920a5337240,0x0,1
+np.float64,0xbfe2eb0265e5d605,0x3fe53dd195782de3,1
+np.float64,0x7fb932c70e32658d,0x7ff0000000000000,1
+np.float64,0x3fda816bfcb502d8,0x3ff551f8d5c84c82,1
+np.float64,0x3fed68cbe9fad198,0x3ffe40f6692d5693,1
+np.float64,0x32df077665be2,0x3ff0000000000000,1
+np.float64,0x7fdc9c2f3539385d,0x7ff0000000000000,1
+np.float64,0x7fe71091a2ee2122,0x7ff0000000000000,1
+np.float64,0xbfe68106c46d020e,0x3fe3a76b56024c2c,1
+np.float64,0xffcf0572823e0ae4,0x0,1
+np.float64,0xbfeeab341fbd5668,0x3fe077d496941cda,1
+np.float64,0x7fe7ada0d2af5b41,0x7ff0000000000000,1
+np.float64,0xffacdef2a439bde0,0x0,1
+np.float64,0x3fe4200f3128401e,0x3ff8be0ddf30fd1e,1
+np.float64,0xffd9022a69320454,0x0,1
+np.float64,0xbfe8e06914f1c0d2,0x3fe2ab5fe7fffb5a,1
+np.float64,0x3fc4b976602972ed,0x3ff1e6786fa7a890,1
+np.float64,0xbfd784c105af0982,0x3fe8cdeb1cdbd57e,1
+np.float64,0x7feb20a20eb64143,0x7ff0000000000000,1
+np.float64,0xbfc87dd83630fbb0,0x3fec067c1e7e6983,1
+np.float64,0x7fe5400cbe6a8018,0x7ff0000000000000,1
+np.float64,0xbfb4a1f5e22943e8,0x3fee42e6c81559a9,1
+np.float64,0x3fe967c575f2cf8a,0x3ffbbd8bc0d5c50d,1
+np.float64,0xbfeb059cf4760b3a,0x3fe1d25c592c4dab,1
+np.float64,0xbfeef536d5bdea6e,0x3fe05d832c15c64a,1
+np.float64,0x3fa90b3f6432167f,0x3ff08d410dd732cc,1
+np.float64,0xbfeaff265e75fe4d,0x3fe1d4db3fb3208d,1
+np.float64,0x6d93d688db27b,0x3ff0000000000000,1
+np.float64,0x800ab9b4ea55736a,0x3ff0000000000000,1
+np.float64,0x3fd444b39d288967,0x3ff3ed749d48d444,1
+np.float64,0xbfd5f2c0d0abe582,0x3fe93ad6124d88e7,1
+np.float64,0x3fea8fd915f51fb2,0x3ffc71b32cb92d60,1
+np.float64,0xbfd23d6491a47aca,0x3fea43875709b0f0,1
+np.float64,0xffe76f75ce6edeeb,0x0,1
+np.float64,0x1f5670da3eacf,0x3ff0000000000000,1
+np.float64,0x8000d89c9621b13a,0x3ff0000000000000,1
+np.float64,0x3fedb51c52bb6a39,0x3ffe732279c228ff,1
+np.float64,0x7f99215ac83242b5,0x7ff0000000000000,1
+np.float64,0x742a6864e854e,0x3ff0000000000000,1
+np.float64,0xbfe02fb340205f66,0x3fe689495f9164e3,1
+np.float64,0x7fef4c12b0fe9824,0x7ff0000000000000,1
+np.float64,0x3fd40e17c2a81c30,0x3ff3e1aee8ed972f,1
+np.float64,0x7fdcd264e939a4c9,0x7ff0000000000000,1
+np.float64,0x3fdb675838b6ceb0,0x3ff587526241c550,1
+np.float64,0x3fdf1a4081be3480,0x3ff66896a18c2385,1
+np.float64,0xbfea5082b874a106,0x3fe218cf8f11be13,1
+np.float64,0xffe1a0ebf7e341d8,0x0,1
+np.float64,0x3fed0a2222ba1444,0x3ffe032ce928ae7d,1
+np.float64,0xffeae036da75c06d,0x0,1
+np.float64,0x5b05fc8ab60c0,0x3ff0000000000000,1
+np.float64,0x7fd8aae5f03155cb,0x7ff0000000000000,1
+np.float64,0xbfd0b4d9fda169b4,0x3feab41e58b6ccb7,1
+np.float64,0xffdcaffa57395ff4,0x0,1
+np.float64,0xbfcbf1455437e28c,0x3feb81a884182c5d,1
+np.float64,0x3f9d6700b83ace01,0x3ff0525657db35d4,1
+np.float64,0x4fd5b0b29fab7,0x3ff0000000000000,1
+np.float64,0x3fe9af2df5b35e5c,0x3ffbe895684df916,1
+np.float64,0x800dfd41f9dbfa84,0x3ff0000000000000,1
+np.float64,0xbf2a30457e546,0x3ff0000000000000,1
+np.float64,0x7fc6be37182d7c6d,0x7ff0000000000000,1
+np.float64,0x800e0f9788dc1f2f,0x3ff0000000000000,1
+np.float64,0x8006890c704d121a,0x3ff0000000000000,1
+np.float64,0xffecb1a7cbb9634f,0x0,1
+np.float64,0xffb35c330426b868,0x0,1
+np.float64,0x7fe8f2ba8a71e574,0x7ff0000000000000,1
+np.float64,0xf3ccff8fe79a0,0x3ff0000000000000,1
+np.float64,0x3fdf19a84e3e3351,0x3ff66871b17474c1,1
+np.float64,0x80049a662d0934cd,0x3ff0000000000000,1
+np.float64,0xdf5bb4bbbeb77,0x3ff0000000000000,1
+np.float64,0x8005eca030cbd941,0x3ff0000000000000,1
+np.float64,0xffe5f239586be472,0x0,1
+np.float64,0xbfc4526a0728a4d4,0x3fecaa52fbf5345e,1
+np.float64,0xbfe8f1ecda31e3da,0x3fe2a44c080848b3,1
+np.float64,0x3feebd32f4bd7a66,0x3fff234788938c3e,1
+np.float64,0xffd6ca04e9ad940a,0x0,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0xbfd4c560a9a98ac2,0x3fe98db6d97442fc,1
+np.float64,0x8005723471cae46a,0x3ff0000000000000,1
+np.float64,0xbfeb278299764f05,0x3fe1c54b48f8ba4b,1
+np.float64,0x8007907b376f20f7,0x3ff0000000000000,1
+np.float64,0x7fe9c2fd01b385f9,0x7ff0000000000000,1
+np.float64,0x7fdaa37368b546e6,0x7ff0000000000000,1
+np.float64,0xbfe6d0f3786da1e7,0x3fe38582271cada7,1
+np.float64,0xbfea9b77823536ef,0x3fe1fb8575cd1b7d,1
+np.float64,0xbfe90ac38bf21587,0x3fe29a471b47a2e8,1
+np.float64,0xbfe9c51844738a30,0x3fe24fc8de03ea84,1
+np.float64,0x3fe45a9013a8b520,0x3ff8dd7c80f1cf75,1
+np.float64,0xbfe5780551eaf00a,0x3fe419832a6a4c56,1
+np.float64,0xffefffffffffffff,0x0,1
+np.float64,0x7fe3778c84a6ef18,0x7ff0000000000000,1
+np.float64,0xbfdc8a60413914c0,0x3fe77dc55b85028f,1
+np.float64,0xef47ae2fde8f6,0x3ff0000000000000,1
+np.float64,0x8001269fa4c24d40,0x3ff0000000000000,1
+np.float64,0x3fe9d2d39e73a5a7,0x3ffbfe2a66c4148e,1
+np.float64,0xffee61f528fcc3e9,0x0,1
+np.float64,0x3fe8a259ab7144b3,0x3ffb47e797a34bd2,1
+np.float64,0x3f906d610820dac0,0x3ff02dccda8e1a75,1
+np.float64,0x3fe70739f32e0e74,0x3ffa59232f4fcd07,1
+np.float64,0x3fe6b7f5e6ad6fec,0x3ffa2c0cc54f2c16,1
+np.float64,0x95a91a792b524,0x3ff0000000000000,1
+np.float64,0xbfedf6fcf57bedfa,0x3fe0b89bb40081cc,1
+np.float64,0xbfa4d2de9c29a5c0,0x3fef1c485678d657,1
+np.float64,0x3fe130470d22608e,0x3ff737b0be409a38,1
+np.float64,0x3fcf8035423f006b,0x3ff2f9d7c3c6a302,1
+np.float64,0xffe5995a3eab32b4,0x0,1
+np.float64,0xffca68c63034d18c,0x0,1
+np.float64,0xff9d53af903aa760,0x0,1
+np.float64,0x800563f1de6ac7e4,0x3ff0000000000000,1
+np.float64,0x7fce284fa63c509e,0x7ff0000000000000,1
+np.float64,0x7fb2a3959a25472a,0x7ff0000000000000,1
+np.float64,0x7fdbe2652f37c4c9,0x7ff0000000000000,1
+np.float64,0x800d705bbc1ae0b8,0x3ff0000000000000,1
+np.float64,0x7fd9bd2347b37a46,0x7ff0000000000000,1
+np.float64,0x3fcac3c0fb358782,0x3ff27ed62d6c8221,1
+np.float64,0x800110691ec220d3,0x3ff0000000000000,1
+np.float64,0x3fef79a8157ef350,0x3fffa368513eb909,1
+np.float64,0x7fe8bd2f0e317a5d,0x7ff0000000000000,1
+np.float64,0x7fd3040e60a6081c,0x7ff0000000000000,1
+np.float64,0xffea50723234a0e4,0x0,1
+np.float64,0xbfe6220054ac4400,0x3fe3d00961238a93,1
+np.float64,0x3f9eddd8c83dbbc0,0x3ff0567b0c73005a,1
+np.float64,0xbfa4a062c42940c0,0x3fef1e68badde324,1
+np.float64,0xbfd077ad4720ef5a,0x3feac5d577581d07,1
+np.float64,0x7fdfd4b025bfa95f,0x7ff0000000000000,1
+np.float64,0xd00d3cf3a01a8,0x3ff0000000000000,1
+np.float64,0x7fe3010427260207,0x7ff0000000000000,1
+np.float64,0x22ea196645d44,0x3ff0000000000000,1
+np.float64,0x7fd747e8cd2e8fd1,0x7ff0000000000000,1
+np.float64,0xd50665e7aa0cd,0x3ff0000000000000,1
+np.float64,0x7fe1da580ae3b4af,0x7ff0000000000000,1
+np.float64,0xffeb218ecfb6431d,0x0,1
+np.float64,0xbf887d0dd030fa00,0x3fefbc6252c8b354,1
+np.float64,0x3fcaa31067354621,0x3ff27b904c07e07f,1
+np.float64,0x7fe698cc4ded3198,0x7ff0000000000000,1
+np.float64,0x1c40191a38804,0x3ff0000000000000,1
+np.float64,0x80086fd20e30dfa4,0x3ff0000000000000,1
+np.float64,0x7fed34d5eaba69ab,0x7ff0000000000000,1
+np.float64,0xffd00b52622016a4,0x0,1
+np.float64,0x3f80abcdb021579b,0x3ff0172d27945851,1
+np.float64,0x3fe614cfd66c29a0,0x3ff9d031e1839191,1
+np.float64,0x80021d71c8843ae4,0x3ff0000000000000,1
+np.float64,0x800bc2adc657855c,0x3ff0000000000000,1
+np.float64,0x6b9fec1cd73fe,0x3ff0000000000000,1
+np.float64,0xffd9093b5f321276,0x0,1
+np.float64,0x800d3c6c77fa78d9,0x3ff0000000000000,1
+np.float64,0xffe80fc1cbf01f83,0x0,1
+np.float64,0xffbffbaf2a3ff760,0x0,1
+np.float64,0x3fea1ed29eb43da5,0x3ffc2c64ec0e17a3,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x3fd944a052328941,0x3ff5094f4c43ecca,1
+np.float64,0x800b1f9416163f29,0x3ff0000000000000,1
+np.float64,0x800f06bf33de0d7e,0x3ff0000000000000,1
+np.float64,0xbfdbf0d226b7e1a4,0x3fe7a4f73793d95b,1
+np.float64,0xffe7306c30ae60d8,0x0,1
+np.float64,0x7fe991accfb32359,0x7ff0000000000000,1
+np.float64,0x3fcc0040d2380082,0x3ff29ea47e4f07d4,1
+np.float64,0x7fefffffffffffff,0x7ff0000000000000,1
+np.float64,0x0,0x3ff0000000000000,1
+np.float64,0x3fe1423f7be2847e,0x3ff740bc1d3b20f8,1
+np.float64,0xbfeae3a3cab5c748,0x3fe1df7e936f8504,1
+np.float64,0x800b2da7d6165b50,0x3ff0000000000000,1
+np.float64,0x800b2404fcd6480a,0x3ff0000000000000,1
+np.float64,0x6fcbcf88df97b,0x3ff0000000000000,1
+np.float64,0xa248c0e14492,0x3ff0000000000000,1
+np.float64,0xffd255776824aaee,0x0,1
+np.float64,0x80057b3effeaf67f,0x3ff0000000000000,1
+np.float64,0x3feb0b07d7761610,0x3ffcbdfe1be5a594,1
+np.float64,0x924e1019249c2,0x3ff0000000000000,1
+np.float64,0x80074307e80e8611,0x3ff0000000000000,1
+np.float64,0xffb207fa46240ff8,0x0,1
+np.float64,0x95ac388d2b587,0x3ff0000000000000,1
+np.float64,0xbff0000000000000,0x3fe0000000000000,1
+np.float64,0x3fd38b6a492716d5,0x3ff3c59f62b5add5,1
+np.float64,0x7fe49362c3e926c5,0x7ff0000000000000,1
+np.float64,0x7fe842889db08510,0x7ff0000000000000,1
+np.float64,0xbfba6003e834c008,0x3fedcb620a2d9856,1
+np.float64,0xffe7e782bd6fcf05,0x0,1
+np.float64,0x7fd9b93d9433727a,0x7ff0000000000000,1
+np.float64,0x7fc8fcb61d31f96b,0x7ff0000000000000,1
+np.float64,0xbfef9be8db3f37d2,0x3fe022d603b81dc2,1
+np.float64,0x6f4fc766de9fa,0x3ff0000000000000,1
+np.float64,0xbfe93016f132602e,0x3fe28b42d782d949,1
+np.float64,0x3fe10e52b8e21ca5,0x3ff726a38b0bb895,1
+np.float64,0x3fbbba0ae6377416,0x3ff13f56084a9da3,1
+np.float64,0x3fe09e42ece13c86,0x3ff6eeb57e775e24,1
+np.float64,0x800942e39fb285c8,0x3ff0000000000000,1
+np.float64,0xffe5964370eb2c86,0x0,1
+np.float64,0x3fde479f32bc8f3e,0x3ff635b2619ba53a,1
+np.float64,0x3fe826e187f04dc3,0x3ffaff52b79c3a08,1
+np.float64,0x3febcbf1eab797e4,0x3ffd37152e5e2598,1
+np.float64,0x3fa0816a202102d4,0x3ff05c8e6a8b00d5,1
+np.float64,0xbd005ccb7a00c,0x3ff0000000000000,1
+np.float64,0x44c12fdc89827,0x3ff0000000000000,1
+np.float64,0xffc8fdffa431fc00,0x0,1
+np.float64,0xffeb4f5a87b69eb4,0x0,1
+np.float64,0xbfb07e7f8420fd00,0x3fee9a32924fe6a0,1
+np.float64,0xbfbd9d1bb63b3a38,0x3fed88ca81e5771c,1
+np.float64,0x8008682a74f0d055,0x3ff0000000000000,1
+np.float64,0x3fdeedbc7b3ddb79,0x3ff65dcb7c55f4dc,1
+np.float64,0x8009e889c613d114,0x3ff0000000000000,1
+np.float64,0x3faea831f43d5064,0x3ff0ad935e890e49,1
+np.float64,0xf0af1703e15e3,0x3ff0000000000000,1
+np.float64,0xffec06c4a5f80d88,0x0,1
+np.float64,0x53a1cc0ca743a,0x3ff0000000000000,1
+np.float64,0x7fd10c9eea22193d,0x7ff0000000000000,1
+np.float64,0xbfd48a6bf0a914d8,0x3fe99e0d109f2bac,1
+np.float64,0x3fd6dfe931adbfd4,0x3ff47f81c2dfc5d3,1
+np.float64,0x3fed20e86b7a41d0,0x3ffe11fecc7bc686,1
+np.float64,0xbfea586818b4b0d0,0x3fe215b7747d5cb8,1
+np.float64,0xbfd4ad3e20295a7c,0x3fe99465ab8c3275,1
+np.float64,0x3fd6619ee4acc33e,0x3ff4638b7b80c08a,1
+np.float64,0x3fdf6fcb63bedf97,0x3ff67d62fd3d560c,1
+np.float64,0x800a9191e7152324,0x3ff0000000000000,1
+np.float64,0x3fd2ff3c0da5fe78,0x3ff3a7b17e892a28,1
+np.float64,0x8003dbf1f327b7e5,0x3ff0000000000000,1
+np.float64,0xffea6b89a934d712,0x0,1
+np.float64,0x7fcfb879043f70f1,0x7ff0000000000000,1
+np.float64,0xea6a84dbd4d51,0x3ff0000000000000,1
+np.float64,0x800ec97a815d92f5,0x3ff0000000000000,1
+np.float64,0xffe304c3a8660987,0x0,1
+np.float64,0xbfefe24dd3ffc49c,0x3fe00a4e065be96d,1
+np.float64,0xffd3cc8c00a79918,0x0,1
+np.float64,0x95be8b7b2b7d2,0x3ff0000000000000,1
+np.float64,0x7fe20570cba40ae1,0x7ff0000000000000,1
+np.float64,0x7f97a06da02f40da,0x7ff0000000000000,1
+np.float64,0xffe702b9522e0572,0x0,1
+np.float64,0x3fada2d8543b45b1,0x3ff0a7adc4201e08,1
+np.float64,0x235e6acc46bce,0x3ff0000000000000,1
+np.float64,0x3fea6bc28ef4d786,0x3ffc5b7fc68fddac,1
+np.float64,0xffdbc9f505b793ea,0x0,1
+np.float64,0xffe98b137ff31626,0x0,1
+np.float64,0x800e26c6721c4d8d,0x3ff0000000000000,1
+np.float64,0x80080de445301bc9,0x3ff0000000000000,1
+np.float64,0x37e504a86fca1,0x3ff0000000000000,1
+np.float64,0x8002f5f60325ebed,0x3ff0000000000000,1
+np.float64,0x5c8772feb90ef,0x3ff0000000000000,1
+np.float64,0xbfe021abb4604358,0x3fe69023a51d22b8,1
+np.float64,0x3fde744f8fbce8a0,0x3ff64074dc84edd7,1
+np.float64,0xbfdd92899f3b2514,0x3fe73aefd9701858,1
+np.float64,0x7fc1ad5c51235ab8,0x7ff0000000000000,1
+np.float64,0xaae2f98955c5f,0x3ff0000000000000,1
+np.float64,0x7f9123d5782247aa,0x7ff0000000000000,1
+np.float64,0xbfe3f8e94b67f1d2,0x3fe4c30ab28e9cb7,1
+np.float64,0x7fdaba8b4cb57516,0x7ff0000000000000,1
+np.float64,0x7fefc85cfeff90b9,0x7ff0000000000000,1
+np.float64,0xffb83b4f523076a0,0x0,1
+np.float64,0xbfe888a68c71114d,0x3fe2ceff17c203d1,1
+np.float64,0x800de1dac4bbc3b6,0x3ff0000000000000,1
+np.float64,0xbfe4f27f09e9e4fe,0x3fe453f9af407eac,1
+np.float64,0xffe3d2713467a4e2,0x0,1
+np.float64,0xbfebaab840375570,0x3fe1931131b98842,1
+np.float64,0x93892a1b27126,0x3ff0000000000000,1
+np.float64,0x1e8e7f983d1d1,0x3ff0000000000000,1
+np.float64,0x3fecc950627992a0,0x3ffdd926f036add0,1
+np.float64,0xbfd41dfb1aa83bf6,0x3fe9bc34ece35b94,1
+np.float64,0x800aebfc6555d7f9,0x3ff0000000000000,1
+np.float64,0x7fe33ba52ca67749,0x7ff0000000000000,1
+np.float64,0xffe57c9b3feaf936,0x0,1
+np.float64,0x3fdd12464fba248c,0x3ff5ebc5598e6bd0,1
+np.float64,0xffe06d7f0fe0dafe,0x0,1
+np.float64,0x800e55b7fe9cab70,0x3ff0000000000000,1
+np.float64,0x3fd33803c8267008,0x3ff3b3cb78b2d642,1
+np.float64,0xe9cab8a1d3957,0x3ff0000000000000,1
+np.float64,0x3fb38ac166271580,0x3ff0de906947c0f0,1
+np.float64,0xbfd67aa552acf54a,0x3fe915cf64a389fd,1
+np.float64,0x1db96daa3b72f,0x3ff0000000000000,1
+np.float64,0xbfee9f08f4fd3e12,0x3fe07c2c615add3c,1
+np.float64,0xf14f6d65e29ee,0x3ff0000000000000,1
+np.float64,0x800bce089e179c12,0x3ff0000000000000,1
+np.float64,0xffc42dcc37285b98,0x0,1
+np.float64,0x7fd5f37063abe6e0,0x7ff0000000000000,1
+np.float64,0xbfd943c2cbb28786,0x3fe856f6452ec753,1
+np.float64,0x8ddfbc091bbf8,0x3ff0000000000000,1
+np.float64,0xbfe153491e22a692,0x3fe5fcb075dbbd5d,1
+np.float64,0xffe7933999ef2672,0x0,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x8000000000000000,0x3ff0000000000000,1
+np.float64,0xbfe9154580b22a8b,0x3fe2960bac3a8220,1
+np.float64,0x800dc6dda21b8dbb,0x3ff0000000000000,1
+np.float64,0xbfb26225a824c448,0x3fee7239a457df81,1
+np.float64,0xbfd7b68c83af6d1a,0x3fe8c08e351ab468,1
+np.float64,0xffde01f7213c03ee,0x0,1
+np.float64,0x3fe54cbe0faa997c,0x3ff9614527191d72,1
+np.float64,0xbfd6bec3732d7d86,0x3fe90354909493de,1
+np.float64,0xbfef3c85bd7e790b,0x3fe0444f8c489ca6,1
+np.float64,0x899501b7132a0,0x3ff0000000000000,1
+np.float64,0xbfe17a456462f48b,0x3fe5ea2719a9a84b,1
+np.float64,0xffe34003b8668007,0x0,1
+np.float64,0x7feff6a3633fed46,0x7ff0000000000000,1
+np.float64,0x3fba597ecc34b2fe,0x3ff12ee72e4de474,1
+np.float64,0x4084c7b68109a,0x3ff0000000000000,1
+np.float64,0x3fad23bf4c3a4780,0x3ff0a4d06193ff6d,1
+np.float64,0xffd0fe2707a1fc4e,0x0,1
+np.float64,0xb96cb43f72d97,0x3ff0000000000000,1
+np.float64,0x7fc4d684d829ad09,0x7ff0000000000000,1
+np.float64,0x7fdc349226b86923,0x7ff0000000000000,1
+np.float64,0x7fd82851cd3050a3,0x7ff0000000000000,1
+np.float64,0x800cde0041b9bc01,0x3ff0000000000000,1
+np.float64,0x4e8caa1e9d196,0x3ff0000000000000,1
+np.float64,0xbfed06a6d2fa0d4e,0x3fe1108c3682b05a,1
+np.float64,0xffe8908122312102,0x0,1
+np.float64,0xffe56ed6d9aaddad,0x0,1
+np.float64,0x3fedd6db00fbadb6,0x3ffe896c68c4b26e,1
+np.float64,0x3fde31f9b4bc63f4,0x3ff6307e08f8b6ba,1
+np.float64,0x6bb963c2d772d,0x3ff0000000000000,1
+np.float64,0x787b7142f0f6f,0x3ff0000000000000,1
+np.float64,0x3fe6e4147c6dc829,0x3ffa451bbdece240,1
+np.float64,0x8003857401470ae9,0x3ff0000000000000,1
+np.float64,0xbfeae82c3c75d058,0x3fe1ddbd66e65aab,1
+np.float64,0x7fe174707c62e8e0,0x7ff0000000000000,1
+np.float64,0x80008d2545e11a4b,0x3ff0000000000000,1
+np.float64,0xbfecc2dce17985ba,0x3fe129ad4325985a,1
+np.float64,0xbfe1fa1daf63f43c,0x3fe5adcb0731a44b,1
+np.float64,0x7fcf2530203e4a5f,0x7ff0000000000000,1
+np.float64,0xbfea5cefe874b9e0,0x3fe213f134b61f4a,1
+np.float64,0x800103729f2206e6,0x3ff0000000000000,1
+np.float64,0xbfe8442ff7708860,0x3fe2eaf850faa169,1
+np.float64,0x8006c78e19ed8f1d,0x3ff0000000000000,1
+np.float64,0x3fc259589c24b2b1,0x3ff1abe6a4d28816,1
+np.float64,0xffed02b7b5ba056e,0x0,1
+np.float64,0xbfce0aa4fe3c1548,0x3feb32115d92103e,1
+np.float64,0x7fec06e78bf80dce,0x7ff0000000000000,1
+np.float64,0xbfe0960bbc612c18,0x3fe6578ab29b70d4,1
+np.float64,0x3fee45841cbc8b08,0x3ffed2f6ca808ad3,1
+np.float64,0xbfeb0f8ebef61f1e,0x3fe1ce86003044cd,1
+np.float64,0x8002c357358586af,0x3ff0000000000000,1
+np.float64,0x3fe9aa10cc735422,0x3ffbe57e294ce68b,1
+np.float64,0x800256c0a544ad82,0x3ff0000000000000,1
+np.float64,0x4de6e1449bcdd,0x3ff0000000000000,1
+np.float64,0x65e9bc9ccbd38,0x3ff0000000000000,1
+np.float64,0xbfe53b0fa9aa7620,0x3fe4341f0aa29bbc,1
+np.float64,0xbfcdd94cd13bb298,0x3feb3956acd2e2dd,1
+np.float64,0x8004a49b65a94938,0x3ff0000000000000,1
+np.float64,0x800d3d05deba7a0c,0x3ff0000000000000,1
+np.float64,0x3fe4e05bce69c0b8,0x3ff925f55602a7e0,1
+np.float64,0xffe391e3256723c6,0x0,1
+np.float64,0xbfe92f0f37b25e1e,0x3fe28bacc76ae753,1
+np.float64,0x3f990238d8320472,0x3ff045edd36e2d62,1
+np.float64,0xffed8d15307b1a2a,0x0,1
+np.float64,0x3fee82e01afd05c0,0x3ffefc09e8b9c2b7,1
+np.float64,0xffb2d94b2225b298,0x0,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-expm1.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-expm1.csv
new file mode 100644
index 0000000..dcbc7cd
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-expm1.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x80606724,0x80606724,3
+np.float32,0xbf16790f,0xbee38e14,3
+np.float32,0xbf1778a1,0xbee4a97f,3
+np.float32,0x7d4fc610,0x7f800000,3
+np.float32,0xbec30a20,0xbea230d5,3
+np.float32,0x3eae8a36,0x3ecffac5,3
+np.float32,0xbf1f08f1,0xbeece93c,3
+np.float32,0x80374376,0x80374376,3
+np.float32,0x3f2e04ca,0x3f793115,3
+np.float32,0x7e2c7e36,0x7f800000,3
+np.float32,0xbf686cae,0xbf18bcf0,3
+np.float32,0xbf5518cd,0xbf10a3da,3
+np.float32,0x807e233c,0x807e233c,3
+np.float32,0x7f4edd54,0x7f800000,3
+np.float32,0x7ed70088,0x7f800000,3
+np.float32,0x801675da,0x801675da,3
+np.float32,0x806735d5,0x806735d5,3
+np.float32,0xfe635fec,0xbf800000,3
+np.float32,0xfed88a0a,0xbf800000,3
+np.float32,0xff52c052,0xbf800000,3
+np.float32,0x7fc00000,0x7fc00000,3
+np.float32,0xff4f65f9,0xbf800000,3
+np.float32,0xfe0f6c20,0xbf800000,3
+np.float32,0x80322b30,0x80322b30,3
+np.float32,0xfb757000,0xbf800000,3
+np.float32,0x3c81e0,0x3c81e0,3
+np.float32,0x79d56a,0x79d56a,3
+np.float32,0x8029d7af,0x8029d7af,3
+np.float32,0x8058a593,0x8058a593,3
+np.float32,0x3f3a13c7,0x3f88c75c,3
+np.float32,0x2a6b05,0x2a6b05,3
+np.float32,0xbd64c960,0xbd5e83ae,3
+np.float32,0x80471052,0x80471052,3
+np.float32,0xbe5dd950,0xbe47766c,3
+np.float32,0xfd8f88f0,0xbf800000,3
+np.float32,0x75a4b7,0x75a4b7,3
+np.float32,0x3f726f2e,0x3fc9fb7d,3
+np.float32,0x3ed6795c,0x3f053115,3
+np.float32,0x17d7f5,0x17d7f5,3
+np.float32,0xbf4cf19b,0xbf0d094f,3
+np.float32,0x3e0ec532,0x3e1933c6,3
+np.float32,0xff084016,0xbf800000,3
+np.float32,0x800829aa,0x800829aa,3
+np.float32,0x806d7302,0x806d7302,3
+np.float32,0x7f59d9da,0x7f800000,3
+np.float32,0x15f8b9,0x15f8b9,3
+np.float32,0x803befb3,0x803befb3,3
+np.float32,0x525043,0x525043,3
+np.float32,0x51a647,0x51a647,3
+np.float32,0xbf1cfce4,0xbeeab3d9,3
+np.float32,0x3f1f27a4,0x3f5cb1d2,3
+np.float32,0xbebc3a04,0xbe9d8142,3
+np.float32,0xbeea548c,0xbebc07e5,3
+np.float32,0x3f47401c,0x3f96c2a3,3
+np.float32,0x806b1ea3,0x806b1ea3,3
+np.float32,0x3ea56bb8,0x3ec3450c,3
+np.float32,0x3f7b4963,0x3fd597b5,3
+np.float32,0x7f051fa0,0x7f800000,3
+np.float32,0x1d411c,0x1d411c,3
+np.float32,0xff0b6a35,0xbf800000,3
+np.float32,0xbead63c0,0xbe9314f7,3
+np.float32,0x3738be,0x3738be,3
+np.float32,0x3f138cc8,0x3f479155,3
+np.float32,0x800a539f,0x800a539f,3
+np.float32,0x801b0ebd,0x801b0ebd,3
+np.float32,0x318fcd,0x318fcd,3
+np.float32,0x3ed67556,0x3f052e06,3
+np.float32,0x702886,0x702886,3
+np.float32,0x80000001,0x80000001,3
+np.float32,0x70a174,0x70a174,3
+np.float32,0x4f9c66,0x4f9c66,3
+np.float32,0x3e3e1927,0x3e50e351,3
+np.float32,0x7eac9a4d,0x7f800000,3
+np.float32,0x4b7407,0x4b7407,3
+np.float32,0x7f5bd2fd,0x7f800000,3
+np.float32,0x3eaafc58,0x3ecaffbd,3
+np.float32,0xbc989360,0xbc9729e2,3
+np.float32,0x3f470e5c,0x3f968c7b,3
+np.float32,0x4c5672,0x4c5672,3
+np.float32,0xff2b2ee2,0xbf800000,3
+np.float32,0xbf28a104,0xbef7079b,3
+np.float32,0x2c6175,0x2c6175,3
+np.float32,0x3d7e4fb0,0x3d832f9f,3
+np.float32,0x763276,0x763276,3
+np.float32,0x3cf364,0x3cf364,3
+np.float32,0xbf7ace75,0xbf1fe48c,3
+np.float32,0xff19e858,0xbf800000,3
+np.float32,0x80504c70,0x80504c70,3
+np.float32,0xff390210,0xbf800000,3
+np.float32,0x8046a743,0x8046a743,3
+np.float32,0x80000000,0x80000000,3
+np.float32,0x806c51da,0x806c51da,3
+np.float32,0x806ab38f,0x806ab38f,3
+np.float32,0x3f3de863,0x3f8cc538,3
+np.float32,0x7f6d45bb,0x7f800000,3
+np.float32,0xfd16ec60,0xbf800000,3
+np.float32,0x80513cba,0x80513cba,3
+np.float32,0xbf68996b,0xbf18cefa,3
+np.float32,0xfe039f2c,0xbf800000,3
+np.float32,0x3f013207,0x3f280c55,3
+np.float32,0x7ef4bc07,0x7f800000,3
+np.float32,0xbe8b65ac,0xbe741069,3
+np.float32,0xbf7a8186,0xbf1fc7a6,3
+np.float32,0x802532e5,0x802532e5,3
+np.float32,0x32c7df,0x32c7df,3
+np.float32,0x3ce4dceb,0x3ce81701,3
+np.float32,0xfe801118,0xbf800000,3
+np.float32,0x3d905f20,0x3d9594fb,3
+np.float32,0xbe11ed28,0xbe080168,3
+np.float32,0x59e773,0x59e773,3
+np.float32,0x3e9a2547,0x3eb3dd57,3
+np.float32,0x7ecb7c67,0x7f800000,3
+np.float32,0x7f69a67e,0x7f800000,3
+np.float32,0xff121e11,0xbf800000,3
+np.float32,0x3f7917cb,0x3fd2ad8c,3
+np.float32,0xbf1a7da8,0xbee7fc0c,3
+np.float32,0x3f077e66,0x3f329c40,3
+np.float32,0x3ce8e040,0x3cec37b3,3
+np.float32,0xbf3f0b8e,0xbf069f4d,3
+np.float32,0x3f52f194,0x3fa3c9d6,3
+np.float32,0xbf0e7422,0xbeda80f2,3
+np.float32,0xfd67e230,0xbf800000,3
+np.float32,0xff14d9a9,0xbf800000,3
+np.float32,0x3f3546e3,0x3f83dc2b,3
+np.float32,0x3e152e3a,0x3e20983d,3
+np.float32,0x4a89a3,0x4a89a3,3
+np.float32,0x63217,0x63217,3
+np.float32,0xbeb9e2a8,0xbe9be153,3
+np.float32,0x7e9fa049,0x7f800000,3
+np.float32,0x7f58110c,0x7f800000,3
+np.float32,0x3e88290c,0x3e9bfba9,3
+np.float32,0xbf2cb206,0xbefb3494,3
+np.float32,0xff5880c4,0xbf800000,3
+np.float32,0x7ecff3ac,0x7f800000,3
+np.float32,0x3f4b3de6,0x3f9b23fd,3
+np.float32,0xbebd2048,0xbe9e208c,3
+np.float32,0xff08f7a2,0xbf800000,3
+np.float32,0xff473330,0xbf800000,3
+np.float32,0x1,0x1,3
+np.float32,0xbf5dc239,0xbf14584b,3
+np.float32,0x458e3f,0x458e3f,3
+np.float32,0xbdb8a650,0xbdb091f8,3
+np.float32,0xff336ffc,0xbf800000,3
+np.float32,0x3c60bd00,0x3c624966,3
+np.float32,0xbe16a4f8,0xbe0c1664,3
+np.float32,0x3f214246,0x3f60a0f0,3
+np.float32,0x7fa00000,0x7fe00000,3
+np.float32,0x7e08737e,0x7f800000,3
+np.float32,0x3f70574c,0x3fc74b8e,3
+np.float32,0xbed5745c,0xbeae8c77,3
+np.float32,0x361752,0x361752,3
+np.float32,0x3eb276d6,0x3ed584ea,3
+np.float32,0x3f03fc1e,0x3f2cb1a5,3
+np.float32,0x3fafd1,0x3fafd1,3
+np.float32,0x7e50d74c,0x7f800000,3
+np.float32,0x3eeca5,0x3eeca5,3
+np.float32,0x5dc963,0x5dc963,3
+np.float32,0x7f0e63ae,0x7f800000,3
+np.float32,0x8021745f,0x8021745f,3
+np.float32,0xbf5881a9,0xbf121d07,3
+np.float32,0x7dadc7fd,0x7f800000,3
+np.float32,0xbf2c0798,0xbefa86bb,3
+np.float32,0x3e635f50,0x3e7e97a9,3
+np.float32,0xbf2053fa,0xbeee4c0e,3
+np.float32,0x3e8eee2b,0x3ea4dfcc,3
+np.float32,0xfc8a03c0,0xbf800000,3
+np.float32,0xfd9e4948,0xbf800000,3
+np.float32,0x801e817e,0x801e817e,3
+np.float32,0xbf603a27,0xbf1560c3,3
+np.float32,0x7f729809,0x7f800000,3
+np.float32,0x3f5a1864,0x3fac0e04,3
+np.float32,0x3e7648b8,0x3e8b3677,3
+np.float32,0x3edade24,0x3f088bc1,3
+np.float32,0x65e16e,0x65e16e,3
+np.float32,0x3f24aa50,0x3f671117,3
+np.float32,0x803cb1d0,0x803cb1d0,3
+np.float32,0xbe7b1858,0xbe5eadcc,3
+np.float32,0xbf19bb27,0xbee726fb,3
+np.float32,0xfd1f6e60,0xbf800000,3
+np.float32,0xfeb0de60,0xbf800000,3
+np.float32,0xff511a52,0xbf800000,3
+np.float32,0xff7757f7,0xbf800000,3
+np.float32,0x463ff5,0x463ff5,3
+np.float32,0x3f770d12,0x3fcffcc2,3
+np.float32,0xbf208562,0xbeee80dc,3
+np.float32,0x6df204,0x6df204,3
+np.float32,0xbf62d24f,0xbf1673fb,3
+np.float32,0x3dfcf210,0x3e069d5f,3
+np.float32,0xbef26002,0xbec114d7,3
+np.float32,0x7f800000,0x7f800000,3
+np.float32,0x7f30fb85,0x7f800000,3
+np.float32,0x7ee5dfef,0x7f800000,3
+np.float32,0x3f317829,0x3f800611,3
+np.float32,0x3f4b0bbd,0x3f9aec88,3
+np.float32,0x7edf708c,0x7f800000,3
+np.float32,0xff071260,0xbf800000,3
+np.float32,0x3e7b8c30,0x3e8e9198,3
+np.float32,0x3f33778b,0x3f82077f,3
+np.float32,0x3e8cd11d,0x3ea215fd,3
+np.float32,0x8004483d,0x8004483d,3
+np.float32,0x801633e3,0x801633e3,3
+np.float32,0x7e76eb15,0x7f800000,3
+np.float32,0x3c1571,0x3c1571,3
+np.float32,0x7de3de52,0x7f800000,3
+np.float32,0x804ae906,0x804ae906,3
+np.float32,0x7f3a2616,0x7f800000,3
+np.float32,0xff7fffff,0xbf800000,3
+np.float32,0xff5d17e4,0xbf800000,3
+np.float32,0xbeaa6704,0xbe90f252,3
+np.float32,0x7e6a43af,0x7f800000,3
+np.float32,0x2a0f35,0x2a0f35,3
+np.float32,0xfd8fece0,0xbf800000,3
+np.float32,0xfeef2e2a,0xbf800000,3
+np.float32,0xff800000,0xbf800000,3
+np.float32,0xbeefcc52,0xbebf78e4,3
+np.float32,0x3db6c490,0x3dbf2bd5,3
+np.float32,0x8290f,0x8290f,3
+np.float32,0xbeace648,0xbe92bb7f,3
+np.float32,0x801fea79,0x801fea79,3
+np.float32,0x3ea6c230,0x3ec51ebf,3
+np.float32,0x3e5f2ca3,0x3e795c8a,3
+np.float32,0x3eb6f634,0x3edbeb9f,3
+np.float32,0xff790b45,0xbf800000,3
+np.float32,0x3d82e240,0x3d872816,3
+np.float32,0x3f0d6a57,0x3f3cc7db,3
+np.float32,0x7f08531a,0x7f800000,3
+np.float32,0x702b6d,0x702b6d,3
+np.float32,0x7d3a3c38,0x7f800000,3
+np.float32,0x3d0a7fb3,0x3d0cddf3,3
+np.float32,0xff28084c,0xbf800000,3
+np.float32,0xfeee8804,0xbf800000,3
+np.float32,0x804094eb,0x804094eb,3
+np.float32,0x7acb39,0x7acb39,3
+np.float32,0x3f01c07a,0x3f28f88c,3
+np.float32,0x3e05c500,0x3e0ee674,3
+np.float32,0xbe6f7c38,0xbe558ac1,3
+np.float32,0x803b1f4b,0x803b1f4b,3
+np.float32,0xbf76561f,0xbf1e332b,3
+np.float32,0xff30d368,0xbf800000,3
+np.float32,0x7e2e1f38,0x7f800000,3
+np.float32,0x3ee085b8,0x3f0ce7c0,3
+np.float32,0x8064c4a7,0x8064c4a7,3
+np.float32,0xa7c1d,0xa7c1d,3
+np.float32,0x3f27498a,0x3f6c14bc,3
+np.float32,0x137ca,0x137ca,3
+np.float32,0x3d0a5c60,0x3d0cb969,3
+np.float32,0x80765f1f,0x80765f1f,3
+np.float32,0x80230a71,0x80230a71,3
+np.float32,0x3f321ed2,0x3f80acf4,3
+np.float32,0x7d61e7f4,0x7f800000,3
+np.float32,0xbf39f7f2,0xbf0430f7,3
+np.float32,0xbe2503f8,0xbe1867e8,3
+np.float32,0x29333d,0x29333d,3
+np.float32,0x7edc5a0e,0x7f800000,3
+np.float32,0xbe81a8a2,0xbe651663,3
+np.float32,0x7f76ab6d,0x7f800000,3
+np.float32,0x7f46111f,0x7f800000,3
+np.float32,0xff0fc888,0xbf800000,3
+np.float32,0x805ece89,0x805ece89,3
+np.float32,0xc390b,0xc390b,3
+np.float32,0xff64bdee,0xbf800000,3
+np.float32,0x3dd07e4e,0x3ddb79bd,3
+np.float32,0xfecc1f10,0xbf800000,3
+np.float32,0x803f5177,0x803f5177,3
+np.float32,0x802a24d2,0x802a24d2,3
+np.float32,0x7f27d0cc,0x7f800000,3
+np.float32,0x3ef57c98,0x3f1d7e88,3
+np.float32,0x7b848d,0x7b848d,3
+np.float32,0x7f7fffff,0x7f800000,3
+np.float32,0xfe889c46,0xbf800000,3
+np.float32,0xff2d6dc5,0xbf800000,3
+np.float32,0x3f53a186,0x3fa492a6,3
+np.float32,0xbf239c94,0xbef1c90c,3
+np.float32,0xff7c0f4e,0xbf800000,3
+np.float32,0x3e7c69a9,0x3e8f1f3a,3
+np.float32,0xbf47c9e9,0xbf0ab2a9,3
+np.float32,0xbc1eaf00,0xbc1deae9,3
+np.float32,0x3f4a6d39,0x3f9a3d8e,3
+np.float32,0x3f677930,0x3fbc26eb,3
+np.float32,0x3f45eea1,0x3f955418,3
+np.float32,0x7f61a1f8,0x7f800000,3
+np.float32,0xff58c7c6,0xbf800000,3
+np.float32,0x80239801,0x80239801,3
+np.float32,0xff56e616,0xbf800000,3
+np.float32,0xff62052c,0xbf800000,3
+np.float32,0x8009b615,0x8009b615,3
+np.float32,0x293d6b,0x293d6b,3
+np.float32,0xfe9e585c,0xbf800000,3
+np.float32,0x7f58ff4b,0x7f800000,3
+np.float32,0x10937c,0x10937c,3
+np.float32,0x7f5cc13f,0x7f800000,3
+np.float32,0x110c5d,0x110c5d,3
+np.float32,0x805e51fc,0x805e51fc,3
+np.float32,0xbedcf70a,0xbeb3766c,3
+np.float32,0x3f4d5e42,0x3f9d8091,3
+np.float32,0xff5925a0,0xbf800000,3
+np.float32,0x7e87cafa,0x7f800000,3
+np.float32,0xbf6474b2,0xbf171fee,3
+np.float32,0x4b39b2,0x4b39b2,3
+np.float32,0x8020cc28,0x8020cc28,3
+np.float32,0xff004ed8,0xbf800000,3
+np.float32,0xbf204cf5,0xbeee448d,3
+np.float32,0x3e30cf10,0x3e40fdb1,3
+np.float32,0x80202bee,0x80202bee,3
+np.float32,0xbf55a985,0xbf10e2bc,3
+np.float32,0xbe297dd8,0xbe1c351c,3
+np.float32,0x5780d9,0x5780d9,3
+np.float32,0x7ef729fa,0x7f800000,3
+np.float32,0x8039a3b5,0x8039a3b5,3
+np.float32,0x7cdd3f,0x7cdd3f,3
+np.float32,0x7ef0145a,0x7f800000,3
+np.float32,0x807ad7ae,0x807ad7ae,3
+np.float32,0x7f6c2643,0x7f800000,3
+np.float32,0xbec56124,0xbea3c929,3
+np.float32,0x512c3b,0x512c3b,3
+np.float32,0xbed3effe,0xbead8c1e,3
+np.float32,0x7f5e0a4d,0x7f800000,3
+np.float32,0x3f315316,0x3f7fc200,3
+np.float32,0x7eca5727,0x7f800000,3
+np.float32,0x7f4834f3,0x7f800000,3
+np.float32,0x8004af6d,0x8004af6d,3
+np.float32,0x3f223ca4,0x3f6277e3,3
+np.float32,0x7eea4fdd,0x7f800000,3
+np.float32,0x3e7143e8,0x3e880763,3
+np.float32,0xbf737008,0xbf1d160e,3
+np.float32,0xfc408b00,0xbf800000,3
+np.float32,0x803912ca,0x803912ca,3
+np.float32,0x7db31f4e,0x7f800000,3
+np.float32,0xff578b54,0xbf800000,3
+np.float32,0x3f068ec4,0x3f31062b,3
+np.float32,0x35f64f,0x35f64f,3
+np.float32,0x80437df4,0x80437df4,3
+np.float32,0x568059,0x568059,3
+np.float32,0x8005f8ba,0x8005f8ba,3
+np.float32,0x6824ad,0x6824ad,3
+np.float32,0xff3fdf30,0xbf800000,3
+np.float32,0xbf6f7682,0xbf1b89d6,3
+np.float32,0x3dcea8a0,0x3dd971f5,3
+np.float32,0x3ee32a62,0x3f0ef5a9,3
+np.float32,0xbf735bcd,0xbf1d0e3d,3
+np.float32,0x7e8c7c28,0x7f800000,3
+np.float32,0x3ed552bc,0x3f045161,3
+np.float32,0xfed90a8a,0xbf800000,3
+np.float32,0xbe454368,0xbe336d2a,3
+np.float32,0xbf171d26,0xbee4442d,3
+np.float32,0x80652bf9,0x80652bf9,3
+np.float32,0xbdbaaa20,0xbdb26914,3
+np.float32,0x3f56063d,0x3fa7522e,3
+np.float32,0x3d3d4fd3,0x3d41c13f,3
+np.float32,0x80456040,0x80456040,3
+np.float32,0x3dc15586,0x3dcac0ef,3
+np.float32,0x7f753060,0x7f800000,3
+np.float32,0x7f7d8039,0x7f800000,3
+np.float32,0xfdebf280,0xbf800000,3
+np.float32,0xbf1892c3,0xbee5e116,3
+np.float32,0xbf0f1468,0xbedb3878,3
+np.float32,0x40d85c,0x40d85c,3
+np.float32,0x3f93dd,0x3f93dd,3
+np.float32,0xbf5730fd,0xbf118c24,3
+np.float32,0xfe17aa44,0xbf800000,3
+np.float32,0x3dc0baf4,0x3dca1716,3
+np.float32,0xbf3433d8,0xbf015efb,3
+np.float32,0x1c59f5,0x1c59f5,3
+np.float32,0x802b1540,0x802b1540,3
+np.float32,0xbe47df6c,0xbe35936e,3
+np.float32,0xbe8e7070,0xbe78af32,3
+np.float32,0xfe7057f4,0xbf800000,3
+np.float32,0x80668b69,0x80668b69,3
+np.float32,0xbe677810,0xbe4f2c2d,3
+np.float32,0xbe7a2f1c,0xbe5df733,3
+np.float32,0xfeb79e3c,0xbf800000,3
+np.float32,0xbeb6e320,0xbe99c9e8,3
+np.float32,0xfea188f2,0xbf800000,3
+np.float32,0x7dcaeb15,0x7f800000,3
+np.float32,0x1be567,0x1be567,3
+np.float32,0xbf4041cc,0xbf07320d,3
+np.float32,0x3f721aa7,0x3fc98e9a,3
+np.float32,0x7f5aa835,0x7f800000,3
+np.float32,0x15180e,0x15180e,3
+np.float32,0x3f73d739,0x3fcbccdb,3
+np.float32,0xbeecd380,0xbebd9b36,3
+np.float32,0x3f2caec7,0x3f768fea,3
+np.float32,0xbeaf65f2,0xbe9482bb,3
+np.float32,0xfe6aa384,0xbf800000,3
+np.float32,0xbf4f2c0a,0xbf0e085e,3
+np.float32,0xbf2b5907,0xbef9d431,3
+np.float32,0x3e855e0d,0x3e985960,3
+np.float32,0x8056cc64,0x8056cc64,3
+np.float32,0xff746bb5,0xbf800000,3
+np.float32,0x3e0332f6,0x3e0bf986,3
+np.float32,0xff637720,0xbf800000,3
+np.float32,0xbf330676,0xbf00c990,3
+np.float32,0x3ec449a1,0x3eef3862,3
+np.float32,0x766541,0x766541,3
+np.float32,0xfe2edf6c,0xbf800000,3
+np.float32,0xbebb28ca,0xbe9cc3e2,3
+np.float32,0x3f16c930,0x3f4d5ce4,3
+np.float32,0x7f1a9a4a,0x7f800000,3
+np.float32,0x3e9ba1,0x3e9ba1,3
+np.float32,0xbf73d5f6,0xbf1d3d69,3
+np.float32,0xfdc8a8b0,0xbf800000,3
+np.float32,0x50f051,0x50f051,3
+np.float32,0xff0add02,0xbf800000,3
+np.float32,0x1e50bf,0x1e50bf,3
+np.float32,0x3f04d287,0x3f2e1948,3
+np.float32,0x7f1e50,0x7f1e50,3
+np.float32,0x2affb3,0x2affb3,3
+np.float32,0x80039f07,0x80039f07,3
+np.float32,0x804ba79e,0x804ba79e,3
+np.float32,0x7b5a8eed,0x7f800000,3
+np.float32,0x3e1a8b28,0x3e26d0a7,3
+np.float32,0x3ea95f29,0x3ec8bfa4,3
+np.float32,0x7e09fa55,0x7f800000,3
+np.float32,0x7eacb1b3,0x7f800000,3
+np.float32,0x3e8ad7c0,0x3e9f7dec,3
+np.float32,0x7e0e997c,0x7f800000,3
+np.float32,0x3f4422b4,0x3f936398,3
+np.float32,0x806bd222,0x806bd222,3
+np.float32,0x677ae6,0x677ae6,3
+np.float32,0x62cf68,0x62cf68,3
+np.float32,0x7e4e594e,0x7f800000,3
+np.float32,0x80445fd1,0x80445fd1,3
+np.float32,0xff3a0d04,0xbf800000,3
+np.float32,0x8052b256,0x8052b256,3
+np.float32,0x3cb34440,0x3cb53e11,3
+np.float32,0xbf0e3865,0xbeda3c6d,3
+np.float32,0x3f49f5df,0x3f99ba17,3
+np.float32,0xbed75a22,0xbeafcc09,3
+np.float32,0xbf7aec64,0xbf1fefc8,3
+np.float32,0x7f35a62d,0x7f800000,3
+np.float32,0xbf787b03,0xbf1f03fc,3
+np.float32,0x8006a62a,0x8006a62a,3
+np.float32,0x3f6419e7,0x3fb803c7,3
+np.float32,0x3ecea2e5,0x3efe8f01,3
+np.float32,0x80603577,0x80603577,3
+np.float32,0xff73198c,0xbf800000,3
+np.float32,0x7def110a,0x7f800000,3
+np.float32,0x544efd,0x544efd,3
+np.float32,0x3f052340,0x3f2ea0fc,3
+np.float32,0xff306666,0xbf800000,3
+np.float32,0xbf800000,0xbf21d2a7,3
+np.float32,0xbed3e150,0xbead826a,3
+np.float32,0x3f430c99,0x3f92390f,3
+np.float32,0xbf4bffa4,0xbf0c9c73,3
+np.float32,0xfd97a710,0xbf800000,3
+np.float32,0x3cadf0fe,0x3cafcd1a,3
+np.float32,0x807af7b4,0x807af7b4,3
+np.float32,0xbc508600,0xbc4f33bc,3
+np.float32,0x7f3e0ec7,0x7f800000,3
+np.float32,0xbe51334c,0xbe3d36f7,3
+np.float32,0xfe7b7fb4,0xbf800000,3
+np.float32,0xfed9c45e,0xbf800000,3
+np.float32,0x3da024eb,0x3da6926a,3
+np.float32,0x7eed9e76,0x7f800000,3
+np.float32,0xbf2b8f1f,0xbefa0b91,3
+np.float32,0x3f2b9286,0x3f746318,3
+np.float32,0xfe8af49c,0xbf800000,3
+np.float32,0x9c4f7,0x9c4f7,3
+np.float32,0x801d7543,0x801d7543,3
+np.float32,0xbf66474a,0xbf17de66,3
+np.float32,0xbf562155,0xbf1116b1,3
+np.float32,0x46a8de,0x46a8de,3
+np.float32,0x8053fe6b,0x8053fe6b,3
+np.float32,0xbf6ee842,0xbf1b51f3,3
+np.float32,0xbf6ad78e,0xbf19b565,3
+np.float32,0xbf012574,0xbecad7ff,3
+np.float32,0x748364,0x748364,3
+np.float32,0x8073f59b,0x8073f59b,3
+np.float32,0xff526825,0xbf800000,3
+np.float32,0xfeb02dc4,0xbf800000,3
+np.float32,0x8033eb1c,0x8033eb1c,3
+np.float32,0x3f3685ea,0x3f8520cc,3
+np.float32,0x7f657902,0x7f800000,3
+np.float32,0xbf75eac4,0xbf1e0a1f,3
+np.float32,0xfe67f384,0xbf800000,3
+np.float32,0x3f56d3cc,0x3fa83faf,3
+np.float32,0x44a4ce,0x44a4ce,3
+np.float32,0x1dc4b3,0x1dc4b3,3
+np.float32,0x4fb3b2,0x4fb3b2,3
+np.float32,0xbea904a4,0xbe8ff3ed,3
+np.float32,0x7e668f16,0x7f800000,3
+np.float32,0x7f538378,0x7f800000,3
+np.float32,0x80541709,0x80541709,3
+np.float32,0x80228040,0x80228040,3
+np.float32,0x7ef9694e,0x7f800000,3
+np.float32,0x3f5fca9b,0x3fb2ce54,3
+np.float32,0xbe9c43c2,0xbe86ab84,3
+np.float32,0xfecee000,0xbf800000,3
+np.float32,0x5a65c2,0x5a65c2,3
+np.float32,0x3f736572,0x3fcb3985,3
+np.float32,0xbf2a03f7,0xbef87600,3
+np.float32,0xfe96b488,0xbf800000,3
+np.float32,0xfedd8800,0xbf800000,3
+np.float32,0x80411804,0x80411804,3
+np.float32,0x7edcb0a6,0x7f800000,3
+np.float32,0x2bb882,0x2bb882,3
+np.float32,0x3f800000,0x3fdbf0a9,3
+np.float32,0x764b27,0x764b27,3
+np.float32,0x7e92035d,0x7f800000,3
+np.float32,0x3e80facb,0x3e92ae1d,3
+np.float32,0x8040b81a,0x8040b81a,3
+np.float32,0x7f487fe4,0x7f800000,3
+np.float32,0xbc641780,0xbc6282ed,3
+np.float32,0x804b0bb9,0x804b0bb9,3
+np.float32,0x7d0b7c39,0x7f800000,3
+np.float32,0xff072080,0xbf800000,3
+np.float32,0xbed7aff8,0xbeb00462,3
+np.float32,0x35e247,0x35e247,3
+np.float32,0xbf7edd19,0xbf216766,3
+np.float32,0x8004a539,0x8004a539,3
+np.float32,0xfdfc1790,0xbf800000,3
+np.float32,0x8037a841,0x8037a841,3
+np.float32,0xfed0a8a8,0xbf800000,3
+np.float32,0x7f1f1697,0x7f800000,3
+np.float32,0x3f2ccc6e,0x3f76ca23,3
+np.float32,0x35eada,0x35eada,3
+np.float32,0xff111f42,0xbf800000,3
+np.float32,0x3ee1ab7f,0x3f0dcbbe,3
+np.float32,0xbf6e89ee,0xbf1b2cd4,3
+np.float32,0x3f58611c,0x3faa0cdc,3
+np.float32,0x1ac6a6,0x1ac6a6,3
+np.float32,0xbf1286fa,0xbedf2312,3
+np.float32,0x7e451137,0x7f800000,3
+np.float32,0xbe92c326,0xbe7f3405,3
+np.float32,0x3f2fdd16,0x3f7cd87b,3
+np.float32,0xbe5c0ea0,0xbe4604c2,3
+np.float32,0xbdb29968,0xbdab0883,3
+np.float32,0x3964,0x3964,3
+np.float32,0x3f0dc236,0x3f3d60a0,3
+np.float32,0x7c3faf06,0x7f800000,3
+np.float32,0xbef41f7a,0xbec22b16,3
+np.float32,0x3f4c0289,0x3f9bfdcc,3
+np.float32,0x806084e9,0x806084e9,3
+np.float32,0x3ed1d8dd,0x3f01b0c1,3
+np.float32,0x806d8d8b,0x806d8d8b,3
+np.float32,0x3f052180,0x3f2e9e0a,3
+np.float32,0x803d85d5,0x803d85d5,3
+np.float32,0x3e0afd70,0x3e14dd48,3
+np.float32,0x2fbc63,0x2fbc63,3
+np.float32,0x2e436f,0x2e436f,3
+np.float32,0xbf7b19e6,0xbf2000da,3
+np.float32,0x3f34022e,0x3f829362,3
+np.float32,0x3d2b40e0,0x3d2ee246,3
+np.float32,0x3f5298b4,0x3fa3649b,3
+np.float32,0xbdb01328,0xbda8b7de,3
+np.float32,0x7f693c81,0x7f800000,3
+np.float32,0xbeb1abc0,0xbe961edc,3
+np.float32,0x801d9b5d,0x801d9b5d,3
+np.float32,0x80628668,0x80628668,3
+np.float32,0x800f57dd,0x800f57dd,3
+np.float32,0x8017c94f,0x8017c94f,3
+np.float32,0xbf16f5f4,0xbee418b8,3
+np.float32,0x3e686476,0x3e827022,3
+np.float32,0xbf256796,0xbef3abd9,3
+np.float32,0x7f1b4485,0x7f800000,3
+np.float32,0xbea0b3cc,0xbe89ed21,3
+np.float32,0xfee08b2e,0xbf800000,3
+np.float32,0x523cb4,0x523cb4,3
+np.float32,0x3daf2cb2,0x3db6e273,3
+np.float32,0xbd531c40,0xbd4dc323,3
+np.float32,0x80078fe5,0x80078fe5,3
+np.float32,0x80800000,0x80800000,3
+np.float32,0x3f232438,0x3f642d1a,3
+np.float32,0x3ec29446,0x3eecb7c0,3
+np.float32,0x3dbcd2a4,0x3dc5cd1d,3
+np.float32,0x7f045b0d,0x7f800000,3
+np.float32,0x7f22e6d1,0x7f800000,3
+np.float32,0xbf5d3430,0xbf141c80,3
+np.float32,0xbe03ec70,0xbdf78ee6,3
+np.float32,0x3e93ec9a,0x3eab822f,3
+np.float32,0x7f3b9262,0x7f800000,3
+np.float32,0x65ac6a,0x65ac6a,3
+np.float32,0x3db9a8,0x3db9a8,3
+np.float32,0xbf37ab59,0xbf031306,3
+np.float32,0x33c40e,0x33c40e,3
+np.float32,0x7f7a478f,0x7f800000,3
+np.float32,0xbe8532d0,0xbe6a906f,3
+np.float32,0x801c081d,0x801c081d,3
+np.float32,0xbe4212a0,0xbe30ca73,3
+np.float32,0xff0b603e,0xbf800000,3
+np.float32,0x4554dc,0x4554dc,3
+np.float32,0x3dd324be,0x3dde695e,3
+np.float32,0x3f224c44,0x3f629557,3
+np.float32,0x8003cd79,0x8003cd79,3
+np.float32,0xbf31351c,0xbeffc2fd,3
+np.float32,0x8034603a,0x8034603a,3
+np.float32,0xbf6fcb70,0xbf1bab24,3
+np.float32,0x804eb67e,0x804eb67e,3
+np.float32,0xff05c00e,0xbf800000,3
+np.float32,0x3eb5b36f,0x3eda1ec7,3
+np.float32,0x3f1ed7f9,0x3f5c1d90,3
+np.float32,0x3f052d8a,0x3f2eb24b,3
+np.float32,0x5ddf51,0x5ddf51,3
+np.float32,0x7e50c11c,0x7f800000,3
+np.float32,0xff74f55a,0xbf800000,3
+np.float32,0x4322d,0x4322d,3
+np.float32,0x3f16f8a9,0x3f4db27a,3
+np.float32,0x3f4f23d6,0x3f9f7c2c,3
+np.float32,0xbf706c1e,0xbf1bea0a,3
+np.float32,0x3f2cbd52,0x3f76ac77,3
+np.float32,0xf3043,0xf3043,3
+np.float32,0xfee79de0,0xbf800000,3
+np.float32,0x7e942f69,0x7f800000,3
+np.float32,0x180139,0x180139,3
+np.float32,0xff69c678,0xbf800000,3
+np.float32,0x3f46773f,0x3f95e840,3
+np.float32,0x804aae1c,0x804aae1c,3
+np.float32,0x3eb383b4,0x3ed7024c,3
+np.float32,0x8032624e,0x8032624e,3
+np.float32,0xbd0a0f80,0xbd07c27d,3
+np.float32,0xbf1c9b98,0xbeea4a61,3
+np.float32,0x7f370999,0x7f800000,3
+np.float32,0x801931f9,0x801931f9,3
+np.float32,0x3f6f45ce,0x3fc5eea0,3
+np.float32,0xff0ab4cc,0xbf800000,3
+np.float32,0x4c043d,0x4c043d,3
+np.float32,0x8002a599,0x8002a599,3
+np.float32,0xbc4a6080,0xbc4921d7,3
+np.float32,0x3f008d14,0x3f26fb72,3
+np.float32,0x7f48b3d9,0x7f800000,3
+np.float32,0x7cb2ec7e,0x7f800000,3
+np.float32,0xbf1338bd,0xbedfeb61,3
+np.float32,0x0,0x0,3
+np.float32,0xbf2f5b64,0xbefde71c,3
+np.float32,0xbe422974,0xbe30dd56,3
+np.float32,0x3f776be8,0x3fd07950,3
+np.float32,0xbf3e97a1,0xbf06684a,3
+np.float32,0x7d28cb26,0x7f800000,3
+np.float32,0x801618d2,0x801618d2,3
+np.float32,0x807e4f83,0x807e4f83,3
+np.float32,0x8006b07d,0x8006b07d,3
+np.float32,0xfea1c042,0xbf800000,3
+np.float32,0xff24ef74,0xbf800000,3
+np.float32,0xfef7ab16,0xbf800000,3
+np.float32,0x70b771,0x70b771,3
+np.float32,0x7daeb64e,0x7f800000,3
+np.float32,0xbe66e378,0xbe4eb59c,3
+np.float32,0xbead1534,0xbe92dcf7,3
+np.float32,0x7e6769b8,0x7f800000,3
+np.float32,0x7ecd0890,0x7f800000,3
+np.float32,0xbe7380d8,0xbe58b747,3
+np.float32,0x3efa6f2f,0x3f218265,3
+np.float32,0x3f59dada,0x3fabc5eb,3
+np.float32,0xff0f2d20,0xbf800000,3
+np.float32,0x8060210e,0x8060210e,3
+np.float32,0x3ef681e8,0x3f1e51c8,3
+np.float32,0x77a6dd,0x77a6dd,3
+np.float32,0xbebfdd0e,0xbea00399,3
+np.float32,0xfe889b72,0xbf800000,3
+np.float32,0x8049ed2c,0x8049ed2c,3
+np.float32,0x3b089dc4,0x3b08c23e,3
+np.float32,0xbf13c7c4,0xbee08c28,3
+np.float32,0x3efa13b9,0x3f2137d7,3
+np.float32,0x3e9385dc,0x3eaaf914,3
+np.float32,0x7e0e6a43,0x7f800000,3
+np.float32,0x7df6d63f,0x7f800000,3
+np.float32,0x3f3efead,0x3f8dea03,3
+np.float32,0xff52548c,0xbf800000,3
+np.float32,0x803ff9d8,0x803ff9d8,3
+np.float32,0x3c825823,0x3c836303,3
+np.float32,0xfc9e97a0,0xbf800000,3
+np.float32,0xfe644f48,0xbf800000,3
+np.float32,0x802f5017,0x802f5017,3
+np.float32,0x3d5753b9,0x3d5d1661,3
+np.float32,0x7f2a55d2,0x7f800000,3
+np.float32,0x7f4dabfe,0x7f800000,3
+np.float32,0x3f49492a,0x3f98fc47,3
+np.float32,0x3f4d1589,0x3f9d2f82,3
+np.float32,0xff016208,0xbf800000,3
+np.float32,0xbf571cb7,0xbf118365,3
+np.float32,0xbf1ef297,0xbeecd136,3
+np.float32,0x36266b,0x36266b,3
+np.float32,0xbed07b0e,0xbeab4129,3
+np.float32,0x7f553365,0x7f800000,3
+np.float32,0xfe9bb8c6,0xbf800000,3
+np.float32,0xbeb497d6,0xbe982e19,3
+np.float32,0xbf27af6c,0xbef60d16,3
+np.float32,0x55cf51,0x55cf51,3
+np.float32,0x3eab1db0,0x3ecb2e4f,3
+np.float32,0x3e777603,0x3e8bf62f,3
+np.float32,0x7f10e374,0x7f800000,3
+np.float32,0xbf1f6480,0xbeed4b8d,3
+np.float32,0x40479d,0x40479d,3
+np.float32,0x156259,0x156259,3
+np.float32,0x3d852e30,0x3d899b2d,3
+np.float32,0x80014ff3,0x80014ff3,3
+np.float32,0xbd812fa8,0xbd7a645c,3
+np.float32,0x800ab780,0x800ab780,3
+np.float32,0x3ea02ff4,0x3ebc13bd,3
+np.float32,0x7e858b8e,0x7f800000,3
+np.float32,0x75d63b,0x75d63b,3
+np.float32,0xbeb15c94,0xbe95e6e3,3
+np.float32,0x3da0cee0,0x3da74a39,3
+np.float32,0xff21c01c,0xbf800000,3
+np.float32,0x8049b5eb,0x8049b5eb,3
+np.float32,0x80177ab0,0x80177ab0,3
+np.float32,0xff137a50,0xbf800000,3
+np.float32,0x3f7febba,0x3fdbd51c,3
+np.float32,0x8041e4dd,0x8041e4dd,3
+np.float32,0x99b8c,0x99b8c,3
+np.float32,0x5621ba,0x5621ba,3
+np.float32,0x14b534,0x14b534,3
+np.float32,0xbe2eb3a8,0xbe209c95,3
+np.float32,0x7e510c28,0x7f800000,3
+np.float32,0x804ec2f2,0x804ec2f2,3
+np.float32,0x3f662406,0x3fba82b0,3
+np.float32,0x800000,0x800000,3
+np.float32,0x3f3120d6,0x3f7f5d96,3
+np.float32,0x7f179b8e,0x7f800000,3
+np.float32,0x7f65278e,0x7f800000,3
+np.float32,0xfeb50f52,0xbf800000,3
+np.float32,0x7f051bd1,0x7f800000,3
+np.float32,0x7ea0558d,0x7f800000,3
+np.float32,0xbd0a96c0,0xbd08453f,3
+np.float64,0xee82da5ddd05c,0xee82da5ddd05c,1
+np.float64,0x800c3a22d7f87446,0x800c3a22d7f87446,1
+np.float64,0xbfd34b20eaa69642,0xbfd0a825e7688d3e,1
+np.float64,0x3fd6a0f2492d41e5,0x3fdb253b906057b3,1
+np.float64,0xbfda13d8783427b0,0xbfd56b1d76684332,1
+np.float64,0xbfe50b5a99ea16b5,0xbfded7dd82c6f746,1
+np.float64,0x3f82468fc0248d20,0x3f825b7fa9378ee9,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x856e50290adca,0x856e50290adca,1
+np.float64,0x7fde55a5fa3cab4b,0x7ff0000000000000,1
+np.float64,0x7fcf2c8dd93e591b,0x7ff0000000000000,1
+np.float64,0x8001b3a0e3236743,0x8001b3a0e3236743,1
+np.float64,0x8000fdb14821fb63,0x8000fdb14821fb63,1
+np.float64,0xbfe3645e08e6c8bc,0xbfdd161362a5e9ef,1
+np.float64,0x7feb34d28b3669a4,0x7ff0000000000000,1
+np.float64,0x80099dd810933bb1,0x80099dd810933bb1,1
+np.float64,0xbfedbcc1097b7982,0xbfe35d86414d53dc,1
+np.float64,0x7fdc406fbdb880de,0x7ff0000000000000,1
+np.float64,0x800c4bf85ab897f1,0x800c4bf85ab897f1,1
+np.float64,0x3fd8f7b0e0b1ef60,0x3fde89b497ae20d8,1
+np.float64,0xffe4fced5c69f9da,0xbff0000000000000,1
+np.float64,0xbfe54d421fea9a84,0xbfdf1be0cbfbfcba,1
+np.float64,0x800af72f3535ee5f,0x800af72f3535ee5f,1
+np.float64,0x3fe24e6570e49ccb,0x3fe8b3a86d970411,1
+np.float64,0xbfdd7b22d0baf646,0xbfd79fac2e4f7558,1
+np.float64,0xbfe6a7654c6d4eca,0xbfe03c1f13f3b409,1
+np.float64,0x3fe2c3eb662587d7,0x3fe98566e625d4f5,1
+np.float64,0x3b1ef71e763e0,0x3b1ef71e763e0,1
+np.float64,0xffed03c6baba078d,0xbff0000000000000,1
+np.float64,0x3febac19d0b75834,0x3ff5fdacc9d51bcd,1
+np.float64,0x800635d6794c6bae,0x800635d6794c6bae,1
+np.float64,0xbfe8cafc827195f9,0xbfe1411438608ae1,1
+np.float64,0x7feeb616a83d6c2c,0x7ff0000000000000,1
+np.float64,0x3fd52d62a2aa5ac5,0x3fd91a07a7f18f44,1
+np.float64,0x80036996b8a6d32e,0x80036996b8a6d32e,1
+np.float64,0x2b1945965632a,0x2b1945965632a,1
+np.float64,0xbfecb5e8c9796bd2,0xbfe2f40fca276aa2,1
+np.float64,0x3fe8669ed4f0cd3e,0x3ff24c89fc9cdbff,1
+np.float64,0x71e9f65ee3d3f,0x71e9f65ee3d3f,1
+np.float64,0xbfd5ab262bab564c,0xbfd261ae108ef79e,1
+np.float64,0xbfe7091342ee1226,0xbfe06bf5622d75f6,1
+np.float64,0x49e888d093d12,0x49e888d093d12,1
+np.float64,0x2272f3dc44e5f,0x2272f3dc44e5f,1
+np.float64,0x7fe98736e0b30e6d,0x7ff0000000000000,1
+np.float64,0x30fa9cde61f54,0x30fa9cde61f54,1
+np.float64,0x7fdc163fc0382c7f,0x7ff0000000000000,1
+np.float64,0xffb40d04ee281a08,0xbff0000000000000,1
+np.float64,0xffe624617f2c48c2,0xbff0000000000000,1
+np.float64,0x3febb582bd376b05,0x3ff608da584d1716,1
+np.float64,0xfc30a5a5f8615,0xfc30a5a5f8615,1
+np.float64,0x3fef202efd7e405e,0x3ffa52009319b069,1
+np.float64,0x8004d0259829a04c,0x8004d0259829a04c,1
+np.float64,0x800622dc71ec45ba,0x800622dc71ec45ba,1
+np.float64,0xffefffffffffffff,0xbff0000000000000,1
+np.float64,0x800e89113c9d1223,0x800e89113c9d1223,1
+np.float64,0x7fba7fde3034ffbb,0x7ff0000000000000,1
+np.float64,0xbfeea31e807d463d,0xbfe3b7369b725915,1
+np.float64,0x3feb7c9589f6f92c,0x3ff5c56cf71b0dff,1
+np.float64,0x3fd52d3b59aa5a77,0x3fd919d0f683fd07,1
+np.float64,0x800de90a43fbd215,0x800de90a43fbd215,1
+np.float64,0x3fe7eb35a9efd66b,0x3ff1c940dbfc6ef9,1
+np.float64,0xbda0adcb7b416,0xbda0adcb7b416,1
+np.float64,0x7fc5753e3a2aea7b,0x7ff0000000000000,1
+np.float64,0xffdd101d103a203a,0xbff0000000000000,1
+np.float64,0x7fcb54f56836a9ea,0x7ff0000000000000,1
+np.float64,0xbfd61c8d6eac391a,0xbfd2b23bc0a2cef4,1
+np.float64,0x3feef55de37deabc,0x3ffa198639a0161d,1
+np.float64,0x7fe4ffbfaea9ff7e,0x7ff0000000000000,1
+np.float64,0x9d1071873a20e,0x9d1071873a20e,1
+np.float64,0x3fef1ecb863e3d97,0x3ffa502a81e09cfc,1
+np.float64,0xad2da12b5a5b4,0xad2da12b5a5b4,1
+np.float64,0xffe614b74c6c296e,0xbff0000000000000,1
+np.float64,0xffe60d3f286c1a7e,0xbff0000000000000,1
+np.float64,0x7fda7d91f4b4fb23,0x7ff0000000000000,1
+np.float64,0x800023f266a047e6,0x800023f266a047e6,1
+np.float64,0x7fdf5f9ad23ebf35,0x7ff0000000000000,1
+np.float64,0x3fa7459f002e8b3e,0x3fa7cf178dcf0af6,1
+np.float64,0x3fe9938d61f3271b,0x3ff39516a13caec3,1
+np.float64,0xbfd59314c3ab262a,0xbfd250830f73efd2,1
+np.float64,0xbfc7e193f72fc328,0xbfc5c924339dd7a8,1
+np.float64,0x7fec1965f17832cb,0x7ff0000000000000,1
+np.float64,0xbfd932908eb26522,0xbfd4d4312d272580,1
+np.float64,0xbfdf2d08e2be5a12,0xbfd8add1413b0b1b,1
+np.float64,0x7fdcf7cc74b9ef98,0x7ff0000000000000,1
+np.float64,0x7fc79300912f2600,0x7ff0000000000000,1
+np.float64,0xffd4bd8f23297b1e,0xbff0000000000000,1
+np.float64,0x41869ce0830e,0x41869ce0830e,1
+np.float64,0x3fe5dcec91ebb9da,0x3fef5e213598cbd4,1
+np.float64,0x800815d9c2902bb4,0x800815d9c2902bb4,1
+np.float64,0x800ba1a4b877434a,0x800ba1a4b877434a,1
+np.float64,0x80069d7bdc4d3af8,0x80069d7bdc4d3af8,1
+np.float64,0xcf00d4339e01b,0xcf00d4339e01b,1
+np.float64,0x80072b71bd4e56e4,0x80072b71bd4e56e4,1
+np.float64,0x80059ca6fbab394f,0x80059ca6fbab394f,1
+np.float64,0x3fe522fc092a45f8,0x3fedf212682bf894,1
+np.float64,0x7fe17f384ea2fe70,0x7ff0000000000000,1
+np.float64,0x0,0x0,1
+np.float64,0x3f72bb4c20257698,0x3f72c64766b52069,1
+np.float64,0x7fbc97c940392f92,0x7ff0000000000000,1
+np.float64,0xffc5904ebd2b209c,0xbff0000000000000,1
+np.float64,0xbfe34fb55b669f6a,0xbfdcff81dd30a49d,1
+np.float64,0x8007ccda006f99b5,0x8007ccda006f99b5,1
+np.float64,0x3fee50e4c8fca1ca,0x3ff9434c7750ad0f,1
+np.float64,0x7fee7b07c67cf60f,0x7ff0000000000000,1
+np.float64,0x3fdcce4a5a399c95,0x3fe230c83f28218a,1
+np.float64,0x7fee5187b37ca30e,0x7ff0000000000000,1
+np.float64,0x3fc48f6a97291ed8,0x3fc64db6200a9833,1
+np.float64,0xc7fec3498ffd9,0xc7fec3498ffd9,1
+np.float64,0x800769c59d2ed38c,0x800769c59d2ed38c,1
+np.float64,0xffe69ede782d3dbc,0xbff0000000000000,1
+np.float64,0x3fecd9770979b2ee,0x3ff76a1f2f0f08f2,1
+np.float64,0x5aa358a8b546c,0x5aa358a8b546c,1
+np.float64,0xbfe795a0506f2b40,0xbfe0afcc52c0166b,1
+np.float64,0xffd4ada1e8a95b44,0xbff0000000000000,1
+np.float64,0xffcac1dc213583b8,0xbff0000000000000,1
+np.float64,0xffe393c15fa72782,0xbff0000000000000,1
+np.float64,0xbfcd6a3c113ad478,0xbfca47a2157b9cdd,1
+np.float64,0xffedde20647bbc40,0xbff0000000000000,1
+np.float64,0x3fd0d011b1a1a024,0x3fd33a57945559f4,1
+np.float64,0x3fef27e29f7e4fc6,0x3ffa5c314e0e3d69,1
+np.float64,0xffe96ff71f72dfee,0xbff0000000000000,1
+np.float64,0xffe762414f2ec482,0xbff0000000000000,1
+np.float64,0x3fc2dcfd3d25b9fa,0x3fc452f41682a12e,1
+np.float64,0xbfbdb125b63b6248,0xbfbc08e6553296d4,1
+np.float64,0x7b915740f724,0x7b915740f724,1
+np.float64,0x60b502b2c16a1,0x60b502b2c16a1,1
+np.float64,0xbfeb38b0be367162,0xbfe254f6782cfc47,1
+np.float64,0x800dc39a3edb8735,0x800dc39a3edb8735,1
+np.float64,0x3fea4fb433349f68,0x3ff468b97cf699f5,1
+np.float64,0xbfd49967962932d0,0xbfd19ceb41ff4cd0,1
+np.float64,0xbfebf75cd377eeba,0xbfe2a576bdbccccc,1
+np.float64,0xbfb653d65c2ca7b0,0xbfb561ab8fcb3f26,1
+np.float64,0xffe3f34b8727e696,0xbff0000000000000,1
+np.float64,0x3fdd798064baf301,0x3fe2b7c130a6fc63,1
+np.float64,0x3febe027e6b7c050,0x3ff63bac1b22e12d,1
+np.float64,0x7fcaa371af3546e2,0x7ff0000000000000,1
+np.float64,0xbfe6ee980a2ddd30,0xbfe05f0bc5dc80d2,1
+np.float64,0xc559c33f8ab39,0xc559c33f8ab39,1
+np.float64,0x84542c2b08a86,0x84542c2b08a86,1
+np.float64,0xbfe5645e046ac8bc,0xbfdf3398dc3cc1bd,1
+np.float64,0x3fee8c48ae7d1892,0x3ff9902899480526,1
+np.float64,0x3fb706471c2e0c8e,0x3fb817787aace8db,1
+np.float64,0x7fefe78f91ffcf1e,0x7ff0000000000000,1
+np.float64,0xbfcf6d560b3edaac,0xbfcbddc72a2130df,1
+np.float64,0x7fd282bfd925057f,0x7ff0000000000000,1
+np.float64,0x3fb973dbee32e7b8,0x3fbac2c87cbd0215,1
+np.float64,0x3fd1ce38ff239c72,0x3fd4876de5164420,1
+np.float64,0x8008ac2e3c31585d,0x8008ac2e3c31585d,1
+np.float64,0x3fa05e06dc20bc00,0x3fa0a1b7de904dce,1
+np.float64,0x7fd925f215324be3,0x7ff0000000000000,1
+np.float64,0x3f949d95d0293b2c,0x3f94d31197d51874,1
+np.float64,0xffdded9e67bbdb3c,0xbff0000000000000,1
+np.float64,0x3fed390dcfba721c,0x3ff7e08c7a709240,1
+np.float64,0x7fe6e62300adcc45,0x7ff0000000000000,1
+np.float64,0xbfd779bc312ef378,0xbfd3a6cb64bb0181,1
+np.float64,0x3fe43e9877287d31,0x3fec3e100ef935fd,1
+np.float64,0x210b68e44216e,0x210b68e44216e,1
+np.float64,0x3fcdffc1e73bff84,0x3fd0e729d02ec539,1
+np.float64,0xcea10c0f9d422,0xcea10c0f9d422,1
+np.float64,0x7feb97a82d772f4f,0x7ff0000000000000,1
+np.float64,0x9b4b4d953696a,0x9b4b4d953696a,1
+np.float64,0x3fd1bd8e95237b1d,0x3fd4716dd34cf828,1
+np.float64,0x800fc273841f84e7,0x800fc273841f84e7,1
+np.float64,0xbfd2aef167255de2,0xbfd0340f30d82f18,1
+np.float64,0x800d021a551a0435,0x800d021a551a0435,1
+np.float64,0xffebf934a8b7f268,0xbff0000000000000,1
+np.float64,0x3fd819849fb03308,0x3fdd43bca0aac749,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x27c34b064f86a,0x27c34b064f86a,1
+np.float64,0x7fef4f5a373e9eb3,0x7ff0000000000000,1
+np.float64,0x7fd92fccce325f99,0x7ff0000000000000,1
+np.float64,0x800520869d6a410e,0x800520869d6a410e,1
+np.float64,0x3fccbcaddf397958,0x3fd01bf6b0c4d97f,1
+np.float64,0x80039ebfc4273d80,0x80039ebfc4273d80,1
+np.float64,0xbfed1f0b3c7a3e16,0xbfe31ea6e4c69141,1
+np.float64,0x7fee1bb7c4bc376f,0x7ff0000000000000,1
+np.float64,0xbfa8bee1d8317dc0,0xbfa8283b7dbf95a9,1
+np.float64,0x3fe797db606f2fb6,0x3ff171b1c2bc8fe5,1
+np.float64,0xbfee2ecfdbbc5da0,0xbfe38a3f0a43d14e,1
+np.float64,0x3fe815c7f1302b90,0x3ff1f65165c45d71,1
+np.float64,0xbfbb265c94364cb8,0xbfb9c27ec61a9a1d,1
+np.float64,0x3fcf1cab5d3e3957,0x3fd19c07444642f9,1
+np.float64,0xbfe6ae753f6d5cea,0xbfe03f99666dbe17,1
+np.float64,0xbfd18a2a73a31454,0xbfceaee204aca016,1
+np.float64,0x3fb8a1dffc3143c0,0x3fb9db38341ab1a3,1
+np.float64,0x7fd2a0376025406e,0x7ff0000000000000,1
+np.float64,0x7fe718c0e3ae3181,0x7ff0000000000000,1
+np.float64,0x3fb264d42424c9a8,0x3fb3121f071d4db4,1
+np.float64,0xd27190a7a4e32,0xd27190a7a4e32,1
+np.float64,0xbfe467668c68cecd,0xbfde2c4616738d5e,1
+np.float64,0x800ab9a2b9357346,0x800ab9a2b9357346,1
+np.float64,0x7fcbd108d537a211,0x7ff0000000000000,1
+np.float64,0x3fb79bba6e2f3770,0x3fb8bb2c140d3445,1
+np.float64,0xffefa7165e3f4e2c,0xbff0000000000000,1
+np.float64,0x7fb40185a428030a,0x7ff0000000000000,1
+np.float64,0xbfe9e3d58e73c7ab,0xbfe1c04d51c83d69,1
+np.float64,0x7fef5b97b17eb72e,0x7ff0000000000000,1
+np.float64,0x800a2957683452af,0x800a2957683452af,1
+np.float64,0x800f54f1925ea9e3,0x800f54f1925ea9e3,1
+np.float64,0xeffa4e77dff4a,0xeffa4e77dff4a,1
+np.float64,0xffbe501aa03ca038,0xbff0000000000000,1
+np.float64,0x8006c651bced8ca4,0x8006c651bced8ca4,1
+np.float64,0x3fe159faff22b3f6,0x3fe708f78efbdbed,1
+np.float64,0x800e7d59a31cfab3,0x800e7d59a31cfab3,1
+np.float64,0x3fe6ac2f272d585e,0x3ff07ee5305385c3,1
+np.float64,0x7fd014c054202980,0x7ff0000000000000,1
+np.float64,0xbfe4800b11e90016,0xbfde4648c6f29ce5,1
+np.float64,0xbfe6738470ece709,0xbfe0227b5b42b713,1
+np.float64,0x3fed052add3a0a56,0x3ff7a01819e65c6e,1
+np.float64,0xffe03106f120620e,0xbff0000000000000,1
+np.float64,0x7fe11df4d4e23be9,0x7ff0000000000000,1
+np.float64,0xbfcea25d7b3d44bc,0xbfcb3e808e7ce852,1
+np.float64,0xd0807b03a1010,0xd0807b03a1010,1
+np.float64,0x8004eda4fec9db4b,0x8004eda4fec9db4b,1
+np.float64,0x3fceb5c98d3d6b90,0x3fd15a894b15dd9f,1
+np.float64,0xbfee27228afc4e45,0xbfe38741702f3c0b,1
+np.float64,0xbfe606278c6c0c4f,0xbfdfd7cb6093652d,1
+np.float64,0xbfd66f59bc2cdeb4,0xbfd2ecb2297f6afc,1
+np.float64,0x4aee390095dc8,0x4aee390095dc8,1
+np.float64,0xbfe391355d67226a,0xbfdd46ddc0997014,1
+np.float64,0xffd27765e7a4eecc,0xbff0000000000000,1
+np.float64,0xbfe795e20a2f2bc4,0xbfe0afebc66c4dbd,1
+np.float64,0x7fc9a62e81334c5c,0x7ff0000000000000,1
+np.float64,0xffe4e57e52a9cafc,0xbff0000000000000,1
+np.float64,0x7fac326c8c3864d8,0x7ff0000000000000,1
+np.float64,0x3fe8675f6370cebf,0x3ff24d5863029c15,1
+np.float64,0x7fcf4745e73e8e8b,0x7ff0000000000000,1
+np.float64,0x7fcc9aec9f3935d8,0x7ff0000000000000,1
+np.float64,0x3fec2e8fcab85d20,0x3ff699ccd0b2fed6,1
+np.float64,0x3fd110a968222153,0x3fd38e81a88c2d13,1
+np.float64,0xffb3a68532274d08,0xbff0000000000000,1
+np.float64,0xf0e562bbe1cad,0xf0e562bbe1cad,1
+np.float64,0xbfe815b9e5f02b74,0xbfe0ec9f5023aebc,1
+np.float64,0xbf5151d88022a400,0xbf514f80c465feea,1
+np.float64,0x2547e3144a8fd,0x2547e3144a8fd,1
+np.float64,0x3fedcc0c28fb9818,0x3ff899612fbeb4c5,1
+np.float64,0x3fdc3d1c0f387a38,0x3fe1bf6e2d39bd75,1
+np.float64,0x7fe544dbe62a89b7,0x7ff0000000000000,1
+np.float64,0x8001500e48e2a01d,0x8001500e48e2a01d,1
+np.float64,0xbfed3b2b09fa7656,0xbfe329f3e7bada64,1
+np.float64,0xbfe76a943aeed528,0xbfe09b24e3aa3f79,1
+np.float64,0x3fe944330e328866,0x3ff33d472dee70c5,1
+np.float64,0x8004bbbd6cc9777c,0x8004bbbd6cc9777c,1
+np.float64,0xbfe28133fb650268,0xbfdc1ac230ac4ef5,1
+np.float64,0xc1370af7826e2,0xc1370af7826e2,1
+np.float64,0x7fcfa47f5f3f48fe,0x7ff0000000000000,1
+np.float64,0xbfa3002a04260050,0xbfa2a703a538b54e,1
+np.float64,0xffef44f3903e89e6,0xbff0000000000000,1
+np.float64,0xc32cce298659a,0xc32cce298659a,1
+np.float64,0x7b477cc2f68f0,0x7b477cc2f68f0,1
+np.float64,0x40a7f4ec814ff,0x40a7f4ec814ff,1
+np.float64,0xffee38edf67c71db,0xbff0000000000000,1
+np.float64,0x3fe23f6f1ce47ede,0x3fe8992b8bb03499,1
+np.float64,0x7fc8edfe7f31dbfc,0x7ff0000000000000,1
+np.float64,0x800bb8e6fb3771ce,0x800bb8e6fb3771ce,1
+np.float64,0xbfe11d364ee23a6c,0xbfda82a0c2ef9e46,1
+np.float64,0xbfeb993cb4b7327a,0xbfe27df565da85dc,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0x3fc1f997d723f330,0x3fc34c5cff060af1,1
+np.float64,0x6e326fa0dc64f,0x6e326fa0dc64f,1
+np.float64,0x800fa30c2c5f4618,0x800fa30c2c5f4618,1
+np.float64,0x7fed16ad603a2d5a,0x7ff0000000000000,1
+np.float64,0x9411cf172823a,0x9411cf172823a,1
+np.float64,0xffece51d4cb9ca3a,0xbff0000000000000,1
+np.float64,0x3fdda3d1453b47a3,0x3fe2d954f7849890,1
+np.float64,0xffd58330172b0660,0xbff0000000000000,1
+np.float64,0xbfc6962ae52d2c54,0xbfc4b4bdf0069f17,1
+np.float64,0xbfb4010a8e280218,0xbfb33e1236f7efa0,1
+np.float64,0x7fd0444909208891,0x7ff0000000000000,1
+np.float64,0xbfe027a24de04f44,0xbfd95e9064101e7c,1
+np.float64,0xa6f3f3214de9,0xa6f3f3214de9,1
+np.float64,0xbfe112eb0fe225d6,0xbfda768f7cbdf346,1
+np.float64,0xbfe99e90d4b33d22,0xbfe1a153e45a382a,1
+np.float64,0xffecb34f8e79669e,0xbff0000000000000,1
+np.float64,0xbfdf32c9653e6592,0xbfd8b159caf5633d,1
+np.float64,0x3fe9519829b2a330,0x3ff34c0a8152e20f,1
+np.float64,0xffd08ec8a7a11d92,0xbff0000000000000,1
+np.float64,0xffd19b71b6a336e4,0xbff0000000000000,1
+np.float64,0x7feda6b9377b4d71,0x7ff0000000000000,1
+np.float64,0x800fda2956bfb453,0x800fda2956bfb453,1
+np.float64,0x3fe54f601bea9ec0,0x3fee483cb03cbde4,1
+np.float64,0xbfe2a8ad5ee5515a,0xbfdc46ee7a10bf0d,1
+np.float64,0xbfd336c8bd266d92,0xbfd09916d432274a,1
+np.float64,0xfff0000000000000,0xbff0000000000000,1
+np.float64,0x3fd9a811a9b35024,0x3fdf8fa68cc048e3,1
+np.float64,0x3fe078c68520f18d,0x3fe58aecc1f9649b,1
+np.float64,0xbfc6d5aa3a2dab54,0xbfc4e9ea84f3d73c,1
+np.float64,0xf9682007f2d04,0xf9682007f2d04,1
+np.float64,0x3fee54523dbca8a4,0x3ff947b826de81f4,1
+np.float64,0x80461e5d008c4,0x80461e5d008c4,1
+np.float64,0x3fdd6d12d5bada26,0x3fe2ade8dee2fa02,1
+np.float64,0x3fcd5f0dfd3abe18,0x3fd081d6cd25731d,1
+np.float64,0x7fa36475c826c8eb,0x7ff0000000000000,1
+np.float64,0xbfdf3ce052be79c0,0xbfd8b78baccfb908,1
+np.float64,0x7fcd890dd13b121b,0x7ff0000000000000,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x800ec0f4281d81e8,0x800ec0f4281d81e8,1
+np.float64,0xbfba960116352c00,0xbfb94085424496d9,1
+np.float64,0x3fdddedc9bbbbdb8,0x3fe30853fe4ef5ce,1
+np.float64,0x238092a847013,0x238092a847013,1
+np.float64,0xbfe38d4803271a90,0xbfdd429a955c46af,1
+np.float64,0xbfd4c9067329920c,0xbfd1bf6255ed91a4,1
+np.float64,0xbfbee213923dc428,0xbfbd17ce1bda6088,1
+np.float64,0xffd5a2d337ab45a6,0xbff0000000000000,1
+np.float64,0x7fe21bfcf82437f9,0x7ff0000000000000,1
+np.float64,0x3fe2a2714da544e3,0x3fe949594a74ea25,1
+np.float64,0x800e05cf8ebc0b9f,0x800e05cf8ebc0b9f,1
+np.float64,0x559a1526ab343,0x559a1526ab343,1
+np.float64,0xffe6a1b7906d436e,0xbff0000000000000,1
+np.float64,0xffef27d6253e4fab,0xbff0000000000000,1
+np.float64,0xbfe0f90ab0a1f216,0xbfda5828a1edde48,1
+np.float64,0x9675d2ab2cebb,0x9675d2ab2cebb,1
+np.float64,0xffee0f7eecfc1efd,0xbff0000000000000,1
+np.float64,0x2ec005625d801,0x2ec005625d801,1
+np.float64,0x7fde35ff14bc6bfd,0x7ff0000000000000,1
+np.float64,0xffe03f36d9e07e6d,0xbff0000000000000,1
+np.float64,0x7fe09ff7c4213fef,0x7ff0000000000000,1
+np.float64,0xffeac29dd1b5853b,0xbff0000000000000,1
+np.float64,0x3fb63120aa2c6241,0x3fb72ea3de98a853,1
+np.float64,0xffd079eb84a0f3d8,0xbff0000000000000,1
+np.float64,0xbfd3c2cc75a78598,0xbfd1005996880b3f,1
+np.float64,0x7fb80507ee300a0f,0x7ff0000000000000,1
+np.float64,0xffe8006105f000c1,0xbff0000000000000,1
+np.float64,0x8009138b0ab22716,0x8009138b0ab22716,1
+np.float64,0xbfd6dfb40b2dbf68,0xbfd33b8e4008e3b0,1
+np.float64,0xbfe7c2cf9bef859f,0xbfe0c55c807460df,1
+np.float64,0xbfe75fe4da6ebfca,0xbfe09600256d3b81,1
+np.float64,0xffd662fc73acc5f8,0xbff0000000000000,1
+np.float64,0x20b99dbc41735,0x20b99dbc41735,1
+np.float64,0x3fe10b38ade21671,0x3fe68229a9bbeefc,1
+np.float64,0x3743b99c6e878,0x3743b99c6e878,1
+np.float64,0xff9eb5ed903d6be0,0xbff0000000000000,1
+np.float64,0x3ff0000000000000,0x3ffb7e151628aed3,1
+np.float64,0xffb9e0569e33c0b0,0xbff0000000000000,1
+np.float64,0x7fd39c804fa73900,0x7ff0000000000000,1
+np.float64,0x3fe881ef67f103df,0x3ff269dd704b7129,1
+np.float64,0x1b6eb40236dd7,0x1b6eb40236dd7,1
+np.float64,0xbfe734ea432e69d4,0xbfe0813e6355d02f,1
+np.float64,0xffcf48f3743e91e8,0xbff0000000000000,1
+np.float64,0xffed10bcf6fa2179,0xbff0000000000000,1
+np.float64,0x3fef07723b7e0ee4,0x3ffa3156123f3c15,1
+np.float64,0xffe45c704aa8b8e0,0xbff0000000000000,1
+np.float64,0xb7b818d96f703,0xb7b818d96f703,1
+np.float64,0x42fcc04085f99,0x42fcc04085f99,1
+np.float64,0xbfda7ced01b4f9da,0xbfd5b0ce1e5524ae,1
+np.float64,0xbfe1e5963d63cb2c,0xbfdb6a87b6c09185,1
+np.float64,0x7fdfa18003bf42ff,0x7ff0000000000000,1
+np.float64,0xbfe3790a43e6f214,0xbfdd2c9a38b4f089,1
+np.float64,0xffe0ff5b9ae1feb6,0xbff0000000000000,1
+np.float64,0x80085a7d3110b4fb,0x80085a7d3110b4fb,1
+np.float64,0xffd6bfa6622d7f4c,0xbff0000000000000,1
+np.float64,0xbfef5ddc7cfebbb9,0xbfe3fe170521593e,1
+np.float64,0x3fc21773fa242ee8,0x3fc36ebda1f91a72,1
+np.float64,0x7fc04d98da209b31,0x7ff0000000000000,1
+np.float64,0xbfeba3b535b7476a,0xbfe282602e3c322e,1
+np.float64,0xffd41fb5c1a83f6c,0xbff0000000000000,1
+np.float64,0xf87d206df0fa4,0xf87d206df0fa4,1
+np.float64,0x800060946fc0c12a,0x800060946fc0c12a,1
+np.float64,0x3fe69d5f166d3abe,0x3ff06fdddcf4ca93,1
+np.float64,0x7fe9b5793b336af1,0x7ff0000000000000,1
+np.float64,0x7fe0dd4143e1ba82,0x7ff0000000000000,1
+np.float64,0xbfa8eaea3c31d5d0,0xbfa8522e397da3bd,1
+np.float64,0x119f0078233e1,0x119f0078233e1,1
+np.float64,0xbfd78a207aaf1440,0xbfd3b225bbf2ab4f,1
+np.float64,0xc66a6d4d8cd4e,0xc66a6d4d8cd4e,1
+np.float64,0xe7fc4b57cff8a,0xe7fc4b57cff8a,1
+np.float64,0x800883e8091107d0,0x800883e8091107d0,1
+np.float64,0x3fa6520c842ca419,0x3fa6d06e1041743a,1
+np.float64,0x3fa563182c2ac630,0x3fa5d70e27a84c97,1
+np.float64,0xe6a30b61cd462,0xe6a30b61cd462,1
+np.float64,0x3fee85dac37d0bb6,0x3ff987cfa41a9778,1
+np.float64,0x3fe8f621db71ec44,0x3ff2e7b768a2e9d0,1
+np.float64,0x800f231d861e463b,0x800f231d861e463b,1
+np.float64,0xbfe22eb07c645d61,0xbfdbbdbb853ab4c6,1
+np.float64,0x7fd2dda2dea5bb45,0x7ff0000000000000,1
+np.float64,0xbfd09b79a0a136f4,0xbfcd4147606ffd27,1
+np.float64,0xca039cc394074,0xca039cc394074,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0xcb34575d9668b,0xcb34575d9668b,1
+np.float64,0x3fea62c1f3f4c584,0x3ff47e6dc67ec89f,1
+np.float64,0x7fe544c8606a8990,0x7ff0000000000000,1
+np.float64,0xffe0a980c4615301,0xbff0000000000000,1
+np.float64,0x3fdd67d5f8bacfac,0x3fe2a9c3421830f1,1
+np.float64,0xffe41d3dda283a7b,0xbff0000000000000,1
+np.float64,0xffeed59e5ffdab3c,0xbff0000000000000,1
+np.float64,0xffeeae8326fd5d05,0xbff0000000000000,1
+np.float64,0x800d70b4fa7ae16a,0x800d70b4fa7ae16a,1
+np.float64,0xffec932e6839265c,0xbff0000000000000,1
+np.float64,0xee30b185dc616,0xee30b185dc616,1
+np.float64,0x7fc3cf4397279e86,0x7ff0000000000000,1
+np.float64,0xbfeab34f1875669e,0xbfe21b868229de7d,1
+np.float64,0xf45f5f7de8bec,0xf45f5f7de8bec,1
+np.float64,0x3fad2c4b203a5896,0x3fae0528b568f3cf,1
+np.float64,0xbfe2479543e48f2a,0xbfdbd9e57cf64028,1
+np.float64,0x3fd41a1473283429,0x3fd79df2bc60debb,1
+np.float64,0x3febb5155ef76a2a,0x3ff608585afd698b,1
+np.float64,0xffe21f5303e43ea6,0xbff0000000000000,1
+np.float64,0x7fe9ef390833de71,0x7ff0000000000000,1
+np.float64,0xffe8ee873d71dd0e,0xbff0000000000000,1
+np.float64,0x7fd7cbc55e2f978a,0x7ff0000000000000,1
+np.float64,0x80081f9080d03f21,0x80081f9080d03f21,1
+np.float64,0x7fecbafc8b3975f8,0x7ff0000000000000,1
+np.float64,0x800b6c4b0b16d896,0x800b6c4b0b16d896,1
+np.float64,0xbfaa0fc2d4341f80,0xbfa968cdf32b98ad,1
+np.float64,0x3fec79fe4078f3fc,0x3ff6f5361a4a5d93,1
+np.float64,0xbfb14b79de2296f0,0xbfb0b93b75ecec11,1
+np.float64,0x800009d084c013a2,0x800009d084c013a2,1
+np.float64,0x4a4cdfe29499d,0x4a4cdfe29499d,1
+np.float64,0xbfe721c2d56e4386,0xbfe077f541987d76,1
+np.float64,0x3e5f539e7cbeb,0x3e5f539e7cbeb,1
+np.float64,0x3fd23f044c247e09,0x3fd51ceafcdd64aa,1
+np.float64,0x3fc70785b02e0f0b,0x3fc93b2a37eb342a,1
+np.float64,0xbfe7ab4ec7af569e,0xbfe0ba28eecbf6b0,1
+np.float64,0x800c1d4134583a83,0x800c1d4134583a83,1
+np.float64,0xffd9a73070334e60,0xbff0000000000000,1
+np.float64,0x68a4bf24d1499,0x68a4bf24d1499,1
+np.float64,0x7feba9d9507753b2,0x7ff0000000000000,1
+np.float64,0xbfe9d747db73ae90,0xbfe1bab53d932010,1
+np.float64,0x800a9a4aed953496,0x800a9a4aed953496,1
+np.float64,0xffcb89b0ad371360,0xbff0000000000000,1
+np.float64,0xbfc62388b82c4710,0xbfc4547be442a38c,1
+np.float64,0x800a006d187400db,0x800a006d187400db,1
+np.float64,0x3fcef2fbd33de5f8,0x3fd18177b2150148,1
+np.float64,0x8000b74e3da16e9d,0x8000b74e3da16e9d,1
+np.float64,0x25be536e4b7cb,0x25be536e4b7cb,1
+np.float64,0x3fa86e189430dc31,0x3fa905b4684c9f01,1
+np.float64,0xa7584b114eb0a,0xa7584b114eb0a,1
+np.float64,0x800331133c866227,0x800331133c866227,1
+np.float64,0x3fb52b48142a5690,0x3fb611a6f6e7c664,1
+np.float64,0x3fe825797cf04af2,0x3ff206fd60e98116,1
+np.float64,0x3fd0bec4e5217d8a,0x3fd323db3ffd59b2,1
+np.float64,0x907b43a120f7,0x907b43a120f7,1
+np.float64,0x3fed31eb1d3a63d6,0x3ff7d7a91c6930a4,1
+np.float64,0x7f97a13d782f427a,0x7ff0000000000000,1
+np.float64,0xffc7121a702e2434,0xbff0000000000000,1
+np.float64,0xbfe8bb4cbbf1769a,0xbfe139d7f46f1fb1,1
+np.float64,0xbfe3593cc5a6b27a,0xbfdd09ec91d6cd48,1
+np.float64,0x7fcff218ff9ff,0x7fcff218ff9ff,1
+np.float64,0x3fe73651d4ae6ca4,0x3ff10c5c1d21d127,1
+np.float64,0x80054e396eaa9c74,0x80054e396eaa9c74,1
+np.float64,0x3fe527d5f9aa4fac,0x3fedfb7743db9b53,1
+np.float64,0x7fec6f28c5f8de51,0x7ff0000000000000,1
+np.float64,0x3fcd2bbff53a5780,0x3fd061987416b49b,1
+np.float64,0xffd1f0046423e008,0xbff0000000000000,1
+np.float64,0x80034d97fac69b31,0x80034d97fac69b31,1
+np.float64,0x3faa803f14350080,0x3fab32e3f8073be4,1
+np.float64,0x3fcf8da0163f1b40,0x3fd1e42ba2354c8e,1
+np.float64,0x3fd573c2632ae785,0x3fd97c37609d18d7,1
+np.float64,0x7f922960482452c0,0x7ff0000000000000,1
+np.float64,0x800ebd0c5d3d7a19,0x800ebd0c5d3d7a19,1
+np.float64,0xbfee63b7807cc76f,0xbfe39ec7981035db,1
+np.float64,0xffdc023f8e380480,0xbff0000000000000,1
+np.float64,0x3fe3ffa02c67ff40,0x3febc7f8b900ceba,1
+np.float64,0x36c508b86d8a2,0x36c508b86d8a2,1
+np.float64,0x3fc9fbb0f133f760,0x3fcccee9f6ba801c,1
+np.float64,0x3fd75c1d5faeb83b,0x3fdc3150f9eff99e,1
+np.float64,0x3fe9a8d907b351b2,0x3ff3accc78a31df8,1
+np.float64,0x3fdd8fdcafbb1fb8,0x3fe2c97c97757994,1
+np.float64,0x3fb10c34ca22186a,0x3fb1a0cc42c76b86,1
+np.float64,0xbff0000000000000,0xbfe43a54e4e98864,1
+np.float64,0xffd046aefda08d5e,0xbff0000000000000,1
+np.float64,0x80067989758cf314,0x80067989758cf314,1
+np.float64,0x3fee9d77763d3aef,0x3ff9a67ff0841ba5,1
+np.float64,0xffe4d3cbf8e9a798,0xbff0000000000000,1
+np.float64,0x800f9cab273f3956,0x800f9cab273f3956,1
+np.float64,0x800a5c84f9f4b90a,0x800a5c84f9f4b90a,1
+np.float64,0x4fd377009fa8,0x4fd377009fa8,1
+np.float64,0xbfe7ba26af6f744e,0xbfe0c13ce45d6f95,1
+np.float64,0x609c8a86c1392,0x609c8a86c1392,1
+np.float64,0x7fe4d0296ea9a052,0x7ff0000000000000,1
+np.float64,0x59847bccb3090,0x59847bccb3090,1
+np.float64,0xbfdf944157bf2882,0xbfd8ed092bacad43,1
+np.float64,0xbfe7560a632eac15,0xbfe091405ec34973,1
+np.float64,0x3fea0699f4340d34,0x3ff415eb72089230,1
+np.float64,0x800a5533f374aa68,0x800a5533f374aa68,1
+np.float64,0xbf8e8cdb103d19c0,0xbf8e52cffcb83774,1
+np.float64,0x3fe87d9e52f0fb3d,0x3ff2653952344b81,1
+np.float64,0x7fca3950f73472a1,0x7ff0000000000000,1
+np.float64,0xffd5d1068aaba20e,0xbff0000000000000,1
+np.float64,0x3fd1a5f169a34be4,0x3fd4524b6ef17f91,1
+np.float64,0x3fdc4b95a8b8972c,0x3fe1caafd8652bf7,1
+np.float64,0x3fe333f65a6667ed,0x3fea502fb1f8a578,1
+np.float64,0xbfc117aaac222f54,0xbfc00018a4b84b6e,1
+np.float64,0x7fecf2efdf39e5df,0x7ff0000000000000,1
+np.float64,0x4e99d83e9d33c,0x4e99d83e9d33c,1
+np.float64,0x800d18937bda3127,0x800d18937bda3127,1
+np.float64,0x3fd6c67778ad8cef,0x3fdb5aba70a3ea9e,1
+np.float64,0x3fdbb71770b76e2f,0x3fe157ae8da20bc5,1
+np.float64,0xbfe9faf6ebf3f5ee,0xbfe1ca963d83f17f,1
+np.float64,0x80038850ac0710a2,0x80038850ac0710a2,1
+np.float64,0x8006beb72f8d7d6f,0x8006beb72f8d7d6f,1
+np.float64,0x3feead67bffd5acf,0x3ff9bb43e8b15e2f,1
+np.float64,0xbfd1174b89222e98,0xbfcdff9972799907,1
+np.float64,0x7fee2c077cfc580e,0x7ff0000000000000,1
+np.float64,0xbfbdbd904e3b7b20,0xbfbc13f4916ed466,1
+np.float64,0xffee47b8fe3c8f71,0xbff0000000000000,1
+np.float64,0xffd161884222c310,0xbff0000000000000,1
+np.float64,0xbfd42f27c4a85e50,0xbfd14fa8d67ba5ee,1
+np.float64,0x7fefffffffffffff,0x7ff0000000000000,1
+np.float64,0x8008151791b02a30,0x8008151791b02a30,1
+np.float64,0xbfba79029234f208,0xbfb926616cf41755,1
+np.float64,0x8004c486be29890e,0x8004c486be29890e,1
+np.float64,0x7fe5325a252a64b3,0x7ff0000000000000,1
+np.float64,0x5a880f04b5103,0x5a880f04b5103,1
+np.float64,0xbfe6f4b7702de96f,0xbfe06209002dd72c,1
+np.float64,0xbfdf8b3739bf166e,0xbfd8e783efe3c30f,1
+np.float64,0xbfe32571c8e64ae4,0xbfdcd128b9aa49a1,1
+np.float64,0xbfe97c98c172f932,0xbfe1920ac0fc040f,1
+np.float64,0x3fd0b513a2a16a28,0x3fd31744e3a1bf0a,1
+np.float64,0xffe3ab70832756e0,0xbff0000000000000,1
+np.float64,0x80030f055ce61e0b,0x80030f055ce61e0b,1
+np.float64,0xffd5f3b21b2be764,0xbff0000000000000,1
+np.float64,0x800c1f2d6c783e5b,0x800c1f2d6c783e5b,1
+np.float64,0x80075f4f148ebe9f,0x80075f4f148ebe9f,1
+np.float64,0xbfa5a046f42b4090,0xbfa52cfbf8992256,1
+np.float64,0xffd6702583ace04c,0xbff0000000000000,1
+np.float64,0x800dc0a5cf1b814c,0x800dc0a5cf1b814c,1
+np.float64,0x14f2203a29e45,0x14f2203a29e45,1
+np.float64,0x800421a40ee84349,0x800421a40ee84349,1
+np.float64,0xbfea7c279df4f84f,0xbfe2037fff3ed877,1
+np.float64,0xbfe9b41ddcf3683c,0xbfe1aafe18a44bf8,1
+np.float64,0xffe7b037022f606e,0xbff0000000000000,1
+np.float64,0x800bafb648775f6d,0x800bafb648775f6d,1
+np.float64,0x800b81681d5702d1,0x800b81681d5702d1,1
+np.float64,0x3fe29f8dc8653f1c,0x3fe9442da1c32c6b,1
+np.float64,0xffef9a05dc7f340b,0xbff0000000000000,1
+np.float64,0x800c8c65a65918cb,0x800c8c65a65918cb,1
+np.float64,0xffe99df0d5f33be1,0xbff0000000000000,1
+np.float64,0x9afeb22535fd7,0x9afeb22535fd7,1
+np.float64,0x7fc620dd822c41ba,0x7ff0000000000000,1
+np.float64,0x29c2cdf25385b,0x29c2cdf25385b,1
+np.float64,0x2d92284e5b246,0x2d92284e5b246,1
+np.float64,0xffc794aa942f2954,0xbff0000000000000,1
+np.float64,0xbfe7ed907eafdb21,0xbfe0d9a7b1442497,1
+np.float64,0xbfd4e0d4aea9c1aa,0xbfd1d09366dba2a7,1
+np.float64,0xa70412c34e083,0xa70412c34e083,1
+np.float64,0x41dc0ee083b9,0x41dc0ee083b9,1
+np.float64,0x8000ece20da1d9c5,0x8000ece20da1d9c5,1
+np.float64,0x3fdf3dae103e7b5c,0x3fe42314bf826bc5,1
+np.float64,0x3fe972533c72e4a6,0x3ff3703761e70f04,1
+np.float64,0xffba1d2b82343a58,0xbff0000000000000,1
+np.float64,0xe0086c83c010e,0xe0086c83c010e,1
+np.float64,0x3fe6fb0dde6df61c,0x3ff0cf5fae01aa08,1
+np.float64,0x3fcfaf057e3f5e0b,0x3fd1f98c1fd20139,1
+np.float64,0xbfdca19d9239433c,0xbfd7158745192ca9,1
+np.float64,0xffb17f394e22fe70,0xbff0000000000000,1
+np.float64,0x7fe40f05c7681e0b,0x7ff0000000000000,1
+np.float64,0x800b3c575d5678af,0x800b3c575d5678af,1
+np.float64,0x7fa4ab20ac295640,0x7ff0000000000000,1
+np.float64,0xbfd2fff4f6a5ffea,0xbfd07069bb50e1a6,1
+np.float64,0xbfef81b9147f0372,0xbfe40b845a749787,1
+np.float64,0x7fd7400e54ae801c,0x7ff0000000000000,1
+np.float64,0x3fd4401a17a88034,0x3fd7d20fb76a4f3d,1
+np.float64,0xbfd3e907fd27d210,0xbfd11c64b7577fc5,1
+np.float64,0x7fe34bed9ae697da,0x7ff0000000000000,1
+np.float64,0x80039119c0472234,0x80039119c0472234,1
+np.float64,0xbfe2e36ac565c6d6,0xbfdc88454ee997b3,1
+np.float64,0xbfec57204478ae40,0xbfe2cd3183de1d2d,1
+np.float64,0x7fed7e2a12fafc53,0x7ff0000000000000,1
+np.float64,0x7fd5c5fa7d2b8bf4,0x7ff0000000000000,1
+np.float64,0x3fdcf368d6b9e6d0,0x3fe24decce1ebd35,1
+np.float64,0xbfe0ebfcf2e1d7fa,0xbfda48c9247ae8cf,1
+np.float64,0xbfe10dbea2e21b7e,0xbfda707d68b59674,1
+np.float64,0xbfdf201b6ebe4036,0xbfd8a5df27742fdf,1
+np.float64,0xffe16555be62caab,0xbff0000000000000,1
+np.float64,0xffc23a5db22474bc,0xbff0000000000000,1
+np.float64,0xffe1cbb3f8a39768,0xbff0000000000000,1
+np.float64,0x8007b823be0f7048,0x8007b823be0f7048,1
+np.float64,0xbfa5d1f3042ba3e0,0xbfa55c97cd77bf6e,1
+np.float64,0xbfe316a074662d41,0xbfdcc0da4e7334d0,1
+np.float64,0xbfdfab2bf2bf5658,0xbfd8fb046b88b51f,1
+np.float64,0xfacc9dabf5994,0xfacc9dabf5994,1
+np.float64,0xffe7e420a4efc841,0xbff0000000000000,1
+np.float64,0x800bb986cd57730e,0x800bb986cd57730e,1
+np.float64,0xbfe314fa38e629f4,0xbfdcbf09302c3bf5,1
+np.float64,0x7fc56b17772ad62e,0x7ff0000000000000,1
+np.float64,0x8006a87d54ad50fb,0x8006a87d54ad50fb,1
+np.float64,0xbfe6633e4a6cc67c,0xbfe01a67c3b3ff32,1
+np.float64,0x3fe0ff56eb21feae,0x3fe66df01defb0fb,1
+np.float64,0xffc369cfc126d3a0,0xbff0000000000000,1
+np.float64,0x7fe8775d9a30eeba,0x7ff0000000000000,1
+np.float64,0x3fb53db13e2a7b60,0x3fb625a7279cdac3,1
+np.float64,0xffee76e7e6fcedcf,0xbff0000000000000,1
+np.float64,0xb45595b568ab3,0xb45595b568ab3,1
+np.float64,0xffa09a1d50213440,0xbff0000000000000,1
+np.float64,0x7d11dc16fa23c,0x7d11dc16fa23c,1
+np.float64,0x7fd4cc2928299851,0x7ff0000000000000,1
+np.float64,0x6a30e0ead461d,0x6a30e0ead461d,1
+np.float64,0x7fd3ee735a27dce6,0x7ff0000000000000,1
+np.float64,0x8008d7084b31ae11,0x8008d7084b31ae11,1
+np.float64,0x3fe469353fe8d26a,0x3fec8e7e2df38590,1
+np.float64,0x3fcecef2743d9de5,0x3fd16a888b715dfd,1
+np.float64,0x460130d68c027,0x460130d68c027,1
+np.float64,0xbfd76510c62eca22,0xbfd398766b741d6e,1
+np.float64,0x800ec88c2a5d9118,0x800ec88c2a5d9118,1
+np.float64,0x3fac969c6c392d40,0x3fad66ca6a1e583c,1
+np.float64,0x3fe5c616bf6b8c2e,0x3fef30f931e8dde5,1
+np.float64,0xb4cb6cd56996e,0xb4cb6cd56996e,1
+np.float64,0xffc3eacf8827d5a0,0xbff0000000000000,1
+np.float64,0x3fe1ceaf60e39d5f,0x3fe7d31e0a627cf9,1
+np.float64,0xffea69b42ff4d368,0xbff0000000000000,1
+np.float64,0x800ff8aef99ff15e,0x800ff8aef99ff15e,1
+np.float64,0x6c3953f0d872b,0x6c3953f0d872b,1
+np.float64,0x8007ca5a0d0f94b5,0x8007ca5a0d0f94b5,1
+np.float64,0x800993ce3ad3279d,0x800993ce3ad3279d,1
+np.float64,0x3fe5a4d1516b49a2,0x3feeef67b22ac65b,1
+np.float64,0x8003d7512a67aea3,0x8003d7512a67aea3,1
+np.float64,0x33864430670c9,0x33864430670c9,1
+np.float64,0xbfdbf477e3b7e8f0,0xbfd6a63f1b36f424,1
+np.float64,0x3fb5da92582bb525,0x3fb6d04ef1a1d31a,1
+np.float64,0xe38aae71c7156,0xe38aae71c7156,1
+np.float64,0x3fcaf5590a35eab2,0x3fce01ed6eb6188e,1
+np.float64,0x800deba9b05bd754,0x800deba9b05bd754,1
+np.float64,0x7fee0cde287c19bb,0x7ff0000000000000,1
+np.float64,0xbfe0c2ae70e1855d,0xbfda17fa64d84fcf,1
+np.float64,0x518618faa30c4,0x518618faa30c4,1
+np.float64,0xbfeb4c49b8769894,0xbfe25d52cd7e529f,1
+np.float64,0xbfeb3aa21b367544,0xbfe255cae1df4cfd,1
+np.float64,0xffd23f1c5d247e38,0xbff0000000000000,1
+np.float64,0xff9a75132034ea20,0xbff0000000000000,1
+np.float64,0xbfef9d96307f3b2c,0xbfe415e8b6ce0e50,1
+np.float64,0x8004046f2f0808df,0x8004046f2f0808df,1
+np.float64,0x3fe15871aea2b0e3,0x3fe706532ea5c770,1
+np.float64,0x7fd86b1576b0d62a,0x7ff0000000000000,1
+np.float64,0xbfc240a5c724814c,0xbfc102c7971ca455,1
+np.float64,0xffd8ea670bb1d4ce,0xbff0000000000000,1
+np.float64,0xbfeb1ddd1ff63bba,0xbfe2497c4e27bb8e,1
+np.float64,0x3fcd47e0a33a8fc1,0x3fd0734444150d83,1
+np.float64,0xe00b6a65c016e,0xe00b6a65c016e,1
+np.float64,0xbfc7d582142fab04,0xbfc5bf1fbe755a4c,1
+np.float64,0x8cc91ca11993,0x8cc91ca11993,1
+np.float64,0x7fdbc530e3b78a61,0x7ff0000000000000,1
+np.float64,0x7fee437522bc86e9,0x7ff0000000000000,1
+np.float64,0xffe9e09ae2b3c135,0xbff0000000000000,1
+np.float64,0x8002841cada5083a,0x8002841cada5083a,1
+np.float64,0x3fd6b485f8ad690c,0x3fdb412135932699,1
+np.float64,0x80070e8d0b0e1d1b,0x80070e8d0b0e1d1b,1
+np.float64,0x7fed5df165babbe2,0x7ff0000000000000,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x7fe99d08cd333a11,0x7ff0000000000000,1
+np.float64,0xdfff4201bfff,0xdfff4201bfff,1
+np.float64,0x800ccf7aaf999ef6,0x800ccf7aaf999ef6,1
+np.float64,0x3fddb05aad3b60b5,0x3fe2e34bdd1dd9d5,1
+np.float64,0xbfe5e1c60e6bc38c,0xbfdfb3275cc1675f,1
+np.float64,0x8004fe674269fccf,0x8004fe674269fccf,1
+np.float64,0x7fe9280363325006,0x7ff0000000000000,1
+np.float64,0xf605b9f1ec0b7,0xf605b9f1ec0b7,1
+np.float64,0x800c7c214018f843,0x800c7c214018f843,1
+np.float64,0x7fd97eb6b9b2fd6c,0x7ff0000000000000,1
+np.float64,0x7fd03f8fb6207f1e,0x7ff0000000000000,1
+np.float64,0x7fc526b64d2a4d6c,0x7ff0000000000000,1
+np.float64,0xbfef1a7c42fe34f9,0xbfe3e4b4399e0fcf,1
+np.float64,0xffdde10a2fbbc214,0xbff0000000000000,1
+np.float64,0xbfdd274f72ba4e9e,0xbfd76aa73788863c,1
+np.float64,0xbfecf7f77af9efef,0xbfe30ee2ae03fed1,1
+np.float64,0xffde709322bce126,0xbff0000000000000,1
+np.float64,0x268b5dac4d16d,0x268b5dac4d16d,1
+np.float64,0x8005c099606b8134,0x8005c099606b8134,1
+np.float64,0xffcf54c1593ea984,0xbff0000000000000,1
+np.float64,0xbfee9b8ebabd371d,0xbfe3b44f2663139d,1
+np.float64,0x3faf0330643e0661,0x3faff88fab74b447,1
+np.float64,0x7fe1c6011be38c01,0x7ff0000000000000,1
+np.float64,0xbfe9d58053b3ab01,0xbfe1b9ea12242485,1
+np.float64,0xbfe15a80fee2b502,0xbfdaca2aa7d1231a,1
+np.float64,0x7fe0d766d8a1aecd,0x7ff0000000000000,1
+np.float64,0x800f65e6a21ecbcd,0x800f65e6a21ecbcd,1
+np.float64,0x7fc85e45a530bc8a,0x7ff0000000000000,1
+np.float64,0x3fcc240e5438481d,0x3fcf7954fc080ac3,1
+np.float64,0xffddd49da2bba93c,0xbff0000000000000,1
+np.float64,0x1376f36c26edf,0x1376f36c26edf,1
+np.float64,0x3feffb7af17ff6f6,0x3ffb77f0ead2f881,1
+np.float64,0x3fd9354ea9b26a9d,0x3fdee4e4c8db8239,1
+np.float64,0xffdf7beed4bef7de,0xbff0000000000000,1
+np.float64,0xbfdef256ecbde4ae,0xbfd889b0e213a019,1
+np.float64,0x800d78bd1e7af17a,0x800d78bd1e7af17a,1
+np.float64,0xb66d66276cdad,0xb66d66276cdad,1
+np.float64,0x7fd8f51138b1ea21,0x7ff0000000000000,1
+np.float64,0xffe8c9c302b19385,0xbff0000000000000,1
+np.float64,0x8000be4cf5417c9b,0x8000be4cf5417c9b,1
+np.float64,0xbfe2293a25645274,0xbfdbb78a8c547c68,1
+np.float64,0xce8392c19d08,0xce8392c19d08,1
+np.float64,0xbfe075736b60eae7,0xbfd9bc0f6e34a283,1
+np.float64,0xbfe8d6fe6a71adfd,0xbfe1469ba80b4915,1
+np.float64,0xffe0c7993fa18f32,0xbff0000000000000,1
+np.float64,0x3fce5210fd3ca422,0x3fd11b40a1270a95,1
+np.float64,0x6c0534a8d80a7,0x6c0534a8d80a7,1
+np.float64,0x23c1823647831,0x23c1823647831,1
+np.float64,0x3fc901253732024a,0x3fcb9d264accb07c,1
+np.float64,0x3fe42b8997685714,0x3fec1a39e207b6e4,1
+np.float64,0x3fec4fd00fb89fa0,0x3ff6c1fdd0c262c8,1
+np.float64,0x8007b333caaf6668,0x8007b333caaf6668,1
+np.float64,0x800f9275141f24ea,0x800f9275141f24ea,1
+np.float64,0xffbba361a23746c0,0xbff0000000000000,1
+np.float64,0xbfee4effa9fc9dff,0xbfe396c11d0cd524,1
+np.float64,0x3e47e84c7c8fe,0x3e47e84c7c8fe,1
+np.float64,0x3fe80eb7b1301d6f,0x3ff1eed318a00153,1
+np.float64,0x7fd3f4c5b4a7e98a,0x7ff0000000000000,1
+np.float64,0x158abab02b158,0x158abab02b158,1
+np.float64,0x1,0x1,1
+np.float64,0x1f1797883e2f4,0x1f1797883e2f4,1
+np.float64,0x3feec055d03d80ac,0x3ff9d3fb0394de33,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0xbfd070860ea0e10c,0xbfccfeec2828efef,1
+np.float64,0x80015c8b3e82b917,0x80015c8b3e82b917,1
+np.float64,0xffef9956d9ff32ad,0xbff0000000000000,1
+np.float64,0x7fe7f087dd2fe10f,0x7ff0000000000000,1
+np.float64,0x8002e7718665cee4,0x8002e7718665cee4,1
+np.float64,0x3fdfb9adb2bf735c,0x3fe4887a86214c1e,1
+np.float64,0xffc7747dfb2ee8fc,0xbff0000000000000,1
+np.float64,0x3fec309bb5386137,0x3ff69c44e1738547,1
+np.float64,0xffdbe2bf9ab7c580,0xbff0000000000000,1
+np.float64,0xbfe6a274daed44ea,0xbfe039aff2be9d48,1
+np.float64,0x7fd5a4e4efab49c9,0x7ff0000000000000,1
+np.float64,0xffbe6aaeb03cd560,0xbff0000000000000,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log.csv
new file mode 100644
index 0000000..b8f6b08
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log.csv
@@ -0,0 +1,271 @@
+dtype,input,output,ulperrortol
+## +ve denormals ##
+np.float32,0x004b4716,0xc2afbc1b,4
+np.float32,0x007b2490,0xc2aec01e,4
+np.float32,0x007c99fa,0xc2aeba17,4
+np.float32,0x00734a0c,0xc2aee1dc,4
+np.float32,0x0070de24,0xc2aeecba,4
+np.float32,0x007fffff,0xc2aeac50,4
+np.float32,0x00000001,0xc2ce8ed0,4
+## -ve denormals ##
+np.float32,0x80495d65,0xffc00000,4
+np.float32,0x806894f6,0xffc00000,4
+np.float32,0x80555a76,0xffc00000,4
+np.float32,0x804e1fb8,0xffc00000,4
+np.float32,0x80687de9,0xffc00000,4
+np.float32,0x807fffff,0xffc00000,4
+np.float32,0x80000001,0xffc00000,4
+## +/-0.0f, +/-FLT_MIN +/-FLT_MAX ##
+np.float32,0x00000000,0xff800000,4
+np.float32,0x80000000,0xff800000,4
+np.float32,0x7f7fffff,0x42b17218,4
+np.float32,0x80800000,0xffc00000,4
+np.float32,0xff7fffff,0xffc00000,4
+## 1.00f + 0x00000001 ##
+np.float32,0x3f800000,0x00000000,4
+np.float32,0x3f800001,0x33ffffff,4
+np.float32,0x3f800002,0x347ffffe,4
+np.float32,0x3f7fffff,0xb3800000,4
+np.float32,0x3f7ffffe,0xb4000000,4
+np.float32,0x3f7ffffd,0xb4400001,4
+np.float32,0x402df853,0x3f7ffffe,4
+np.float32,0x402df854,0x3f7fffff,4
+np.float32,0x402df855,0x3f800000,4
+np.float32,0x402df856,0x3f800001,4
+np.float32,0x3ebc5ab0,0xbf800001,4
+np.float32,0x3ebc5ab1,0xbf800000,4
+np.float32,0x3ebc5ab2,0xbf800000,4
+np.float32,0x3ebc5ab3,0xbf7ffffe,4
+np.float32,0x423ef575,0x407768ab,4
+np.float32,0x427b8c61,0x408485dd,4
+np.float32,0x4211e9ee,0x406630b0,4
+np.float32,0x424d5c41,0x407c0fed,4
+np.float32,0x42be722a,0x4091cc91,4
+np.float32,0x42b73d30,0x4090908b,4
+np.float32,0x427e48e2,0x4084de7f,4
+np.float32,0x428f759b,0x4088bba3,4
+np.float32,0x41629069,0x4029a0cc,4
+np.float32,0x4272c99d,0x40836379,4
+np.float32,0x4d1b7458,0x4197463d,4
+np.float32,0x4f10c594,0x41ace2b2,4
+np.float32,0x4ea397c2,0x41a85171,4
+np.float32,0x4fefa9d1,0x41b6769c,4
+np.float32,0x4ebac6ab,0x41a960dc,4
+np.float32,0x4f6efb42,0x41b0e535,4
+np.float32,0x4e9ab8e7,0x41a7df44,4
+np.float32,0x4e81b5d1,0x41a67625,4
+np.float32,0x5014d9f2,0x41b832bd,4
+np.float32,0x4f02175c,0x41ac07b8,4
+np.float32,0x7f034f89,0x42b01c47,4
+np.float32,0x7f56d00e,0x42b11849,4
+np.float32,0x7f1cd5f6,0x42b0773a,4
+np.float32,0x7e979174,0x42af02d7,4
+np.float32,0x7f23369f,0x42b08ba2,4
+np.float32,0x7f0637ae,0x42b0277d,4
+np.float32,0x7efcb6e8,0x42b00897,4
+np.float32,0x7f7907c8,0x42b163f6,4
+np.float32,0x7e95c4c2,0x42aefcba,4
+np.float32,0x7f4577b2,0x42b0ed2d,4
+np.float32,0x3f49c92e,0xbe73ae84,4
+np.float32,0x3f4a23d1,0xbe71e2f8,4
+np.float32,0x3f4abb67,0xbe6ee430,4
+np.float32,0x3f48169a,0xbe7c5532,4
+np.float32,0x3f47f5fa,0xbe7cfc37,4
+np.float32,0x3f488309,0xbe7a2ad8,4
+np.float32,0x3f479df4,0xbe7ebf5f,4
+np.float32,0x3f47cfff,0xbe7dbec9,4
+np.float32,0x3f496704,0xbe75a125,4
+np.float32,0x3f478ee8,0xbe7f0c92,4
+np.float32,0x3f4a763b,0xbe7041ce,4
+np.float32,0x3f47a108,0xbe7eaf94,4
+np.float32,0x3f48136c,0xbe7c6578,4
+np.float32,0x3f481c17,0xbe7c391c,4
+np.float32,0x3f47cd28,0xbe7dcd56,4
+np.float32,0x3f478be8,0xbe7f1bf7,4
+np.float32,0x3f4c1f8e,0xbe67e367,4
+np.float32,0x3f489b0c,0xbe79b03f,4
+np.float32,0x3f4934cf,0xbe76a08a,4
+np.float32,0x3f4954df,0xbe75fd6a,4
+np.float32,0x3f47a3f5,0xbe7ea093,4
+np.float32,0x3f4ba4fc,0xbe6a4b02,4
+np.float32,0x3f47a0e1,0xbe7eb05c,4
+np.float32,0x3f48c30a,0xbe78e42f,4
+np.float32,0x3f48cab8,0xbe78bd05,4
+np.float32,0x3f4b0569,0xbe6d6ea4,4
+np.float32,0x3f47de32,0xbe7d7607,4
+np.float32,0x3f477328,0xbe7f9b00,4
+np.float32,0x3f496dab,0xbe757f52,4
+np.float32,0x3f47662c,0xbe7fddac,4
+np.float32,0x3f48ddd8,0xbe785b80,4
+np.float32,0x3f481866,0xbe7c4bff,4
+np.float32,0x3f48b119,0xbe793fb6,4
+np.float32,0x3f48c7e8,0xbe78cb5c,4
+np.float32,0x3f4985f6,0xbe7503da,4
+np.float32,0x3f483fdf,0xbe7b8212,4
+np.float32,0x3f4b1c76,0xbe6cfa67,4
+np.float32,0x3f480b2e,0xbe7c8fa8,4
+np.float32,0x3f48745f,0xbe7a75bf,4
+np.float32,0x3f485bda,0xbe7af308,4
+np.float32,0x3f47a660,0xbe7e942c,4
+np.float32,0x3f47d4d5,0xbe7da600,4
+np.float32,0x3f4b0a26,0xbe6d56be,4
+np.float32,0x3f4a4883,0xbe712924,4
+np.float32,0x3f4769e7,0xbe7fca84,4
+np.float32,0x3f499702,0xbe74ad3f,4
+np.float32,0x3f494ab1,0xbe763131,4
+np.float32,0x3f476b69,0xbe7fc2c6,4
+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
+## -ve denormal ##
+np.float64,0x8000000000000001,0xfff8000000000001,1
+np.float64,0x8001000000000000,0xfff8000000000001,1
+np.float64,0x800fffffffffffff,0xfff8000000000001,1
+np.float64,0x8007ad63e2168cb6,0xfff8000000000001,1
+## +/-0.0f, MAX, MIN##
+np.float64,0x0000000000000000,0xfff0000000000000,1
+np.float64,0x8000000000000000,0xfff0000000000000,1
+np.float64,0x7fefffffffffffff,0x40862e42fefa39ef,1
+np.float64,0xffefffffffffffff,0xfff8000000000001,1
+## 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
+## 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
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log10.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log10.csv
new file mode 100644
index 0000000..c765777
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log10.csv
@@ -0,0 +1,1629 @@
+dtype,input,output,ulperrortol
+np.float32,0x3f6fd5c8,0xbce80e8e,4
+np.float32,0x3ea4ab17,0xbefc3deb,4
+np.float32,0x3e87a133,0xbf13b0b7,4
+np.float32,0x3f0d9069,0xbe83bb19,4
+np.float32,0x3f7b9269,0xbbf84f47,4
+np.float32,0x3f7a9ffa,0xbc16fd97,4
+np.float32,0x7f535d34,0x4219cb66,4
+np.float32,0x3e79ad7c,0xbf1ce857,4
+np.float32,0x7e8bfd3b,0x4217dfe9,4
+np.float32,0x3f2d2ee9,0xbe2dcec6,4
+np.float32,0x572e04,0xc21862e4,4
+np.float32,0x7f36f8,0xc217bad5,4
+np.float32,0x3f7982fb,0xbc36aaed,4
+np.float32,0x45b019,0xc218c67c,4
+np.float32,0x3f521c46,0xbdafb3e3,4
+np.float32,0x80000001,0x7fc00000,4
+np.float32,0x3f336c81,0xbe1e107f,4
+np.float32,0x3eac92d7,0xbef1d0bb,4
+np.float32,0x47bdfc,0xc218b990,4
+np.float32,0x7f2d94c8,0x421973d1,4
+np.float32,0x7d53ff8d,0x4214fbb6,4
+np.float32,0x3f581e4e,0xbd96a079,4
+np.float32,0x7ddaf20d,0x42163e4e,4
+np.float32,0x3f341d3c,0xbe1c5b4c,4
+np.float32,0x7ef04ba9,0x4218d032,4
+np.float32,0x620ed2,0xc2182e99,4
+np.float32,0x507850,0xc2188682,4
+np.float32,0x7d08f9,0xc217c284,4
+np.float32,0x7f0cf2aa,0x42191734,4
+np.float32,0x3f109a17,0xbe7e04fe,4
+np.float32,0x7f426152,0x4219a625,4
+np.float32,0x7f32d5a3,0x42198113,4
+np.float32,0x2e14b2,0xc2197e6f,4
+np.float32,0x3a5acd,0xc219156a,4
+np.float32,0x50a565,0xc2188589,4
+np.float32,0x5b751c,0xc2184d97,4
+np.float32,0x7e4149f6,0x42173b22,4
+np.float32,0x3dc34bf9,0xbf82a42a,4
+np.float32,0x3d12bc28,0xbfb910d6,4
+np.float32,0x7ebd2584,0x421865c1,4
+np.float32,0x7f6b3375,0x4219faeb,4
+np.float32,0x7fa00000,0x7fe00000,4
+np.float32,0x3f35fe7d,0xbe17bd33,4
+np.float32,0x7db45c87,0x4215e818,4
+np.float32,0x3efff366,0xbe9a2b8d,4
+np.float32,0x3eb331d0,0xbee971a3,4
+np.float32,0x3f259d5f,0xbe41ae2e,4
+np.float32,0x3eab85ec,0xbef32c4a,4
+np.float32,0x7f194b8a,0x42193c8c,4
+np.float32,0x3f11a614,0xbe7acfc7,4
+np.float32,0x5b17,0xc221f16b,4
+np.float32,0x3f33dadc,0xbe1cff4d,4
+np.float32,0x3cda1506,0xbfc9920f,4
+np.float32,0x3f6856f1,0xbd2c8290,4
+np.float32,0x7f3357fb,0x42198257,4
+np.float32,0x7f56f329,0x4219d2e1,4
+np.float32,0x3ef84108,0xbea0f595,4
+np.float32,0x3f72340f,0xbcc51916,4
+np.float32,0x3daf28,0xc218fcbd,4
+np.float32,0x131035,0xc21b06f4,4
+np.float32,0x3f275c3b,0xbe3d0487,4
+np.float32,0x3ef06130,0xbea82069,4
+np.float32,0x3f57f3b0,0xbd974fef,4
+np.float32,0x7f6c4a78,0x4219fcfa,4
+np.float32,0x7e8421d0,0x4217c639,4
+np.float32,0x3f17a479,0xbe68e08e,4
+np.float32,0x7f03774e,0x4218f83b,4
+np.float32,0x441a33,0xc218d0b8,4
+np.float32,0x539158,0xc21875b6,4
+np.float32,0x3e8fcc75,0xbf0d3018,4
+np.float32,0x7ef74130,0x4218dce4,4
+np.float32,0x3ea6f4fa,0xbef92c38,4
+np.float32,0x7f3948ab,0x421990d5,4
+np.float32,0x7db6f8f5,0x4215ee7c,4
+np.float32,0x3ee44a2f,0xbeb399e5,4
+np.float32,0x156c59,0xc21ad30d,4
+np.float32,0x3f21ee53,0xbe4baf16,4
+np.float32,0x3f2c08f4,0xbe30c424,4
+np.float32,0x3f49885c,0xbdd4c6a9,4
+np.float32,0x3eae0b9c,0xbeefed54,4
+np.float32,0x1b5c1f,0xc21a6646,4
+np.float32,0x3e7330e2,0xbf1fd592,4
+np.float32,0x3ebbeb4c,0xbededf82,4
+np.float32,0x427154,0xc218dbb1,4
+np.float32,0x3f6b8b4b,0xbd142498,4
+np.float32,0x8e769,0xc21c5981,4
+np.float32,0x3e9db557,0xbf02ec1c,4
+np.float32,0x3f001bef,0xbe99f019,4
+np.float32,0x3e58b48c,0xbf2ca77a,4
+np.float32,0x3d46c16b,0xbfa8327c,4
+np.float32,0x7eeeb305,0x4218cd3b,4
+np.float32,0x3e3f163d,0xbf3aa446,4
+np.float32,0x3f66c872,0xbd3877d9,4
+np.float32,0x7f7162f8,0x421a0677,4
+np.float32,0x3edca3bc,0xbebb2e28,4
+np.float32,0x3dc1055b,0xbf834afa,4
+np.float32,0x12b16f,0xc21b0fad,4
+np.float32,0x3f733898,0xbcb62e16,4
+np.float32,0x3e617af8,0xbf283db0,4
+np.float32,0x7e86577a,0x4217cd99,4
+np.float32,0x3f0ba3c7,0xbe86c633,4
+np.float32,0x3f4cad25,0xbdc70247,4
+np.float32,0xb6cdf,0xc21bea9f,4
+np.float32,0x3f42971a,0xbdf3f49e,4
+np.float32,0x3e6ccad2,0xbf22cc78,4
+np.float32,0x7f2121b2,0x421952b8,4
+np.float32,0x3f6d3f55,0xbd075366,4
+np.float32,0x3f524f,0xc218f117,4
+np.float32,0x3e95b5d9,0xbf08b56a,4
+np.float32,0x7f6ae47d,0x4219fa56,4
+np.float32,0x267539,0xc219ceda,4
+np.float32,0x3ef72f6d,0xbea1eb2e,4
+np.float32,0x2100b2,0xc21a12e2,4
+np.float32,0x3d9777d1,0xbf90c4e7,4
+np.float32,0x44c6f5,0xc218cc56,4
+np.float32,0x7f2a613d,0x42196b8a,4
+np.float32,0x390a25,0xc2191f8d,4
+np.float32,0x3f1de5ad,0xbe56e703,4
+np.float32,0x2f59ce,0xc2197258,4
+np.float32,0x7f3b12a1,0x4219951b,4
+np.float32,0x3ecb66d4,0xbecd44ca,4
+np.float32,0x7e74ff,0xc217bd7d,4
+np.float32,0x7ed83f78,0x4218a14d,4
+np.float32,0x685994,0xc21812f1,4
+np.float32,0xbf800000,0x7fc00000,4
+np.float32,0x736f47,0xc217e60b,4
+np.float32,0x7f09c371,0x42190d0a,4
+np.float32,0x3f7ca51d,0xbbbbbce0,4
+np.float32,0x7f4b4d3b,0x4219ba1a,4
+np.float32,0x3f6c4471,0xbd0eb076,4
+np.float32,0xd944e,0xc21b9dcf,4
+np.float32,0x7cb06ffc,0x421375cd,4
+np.float32,0x586187,0xc2185cce,4
+np.float32,0x3f3cbf5b,0xbe078911,4
+np.float32,0x3f30b504,0xbe24d983,4
+np.float32,0x3f0a16ba,0xbe8941fd,4
+np.float32,0x5c43b0,0xc21849af,4
+np.float32,0x3dad74f6,0xbf893bd5,4
+np.float32,0x3c586958,0xbff087a6,4
+np.float32,0x3e8307a8,0xbf1786ba,4
+np.float32,0x7dcd1776,0x4216213d,4
+np.float32,0x3f44d107,0xbde9d662,4
+np.float32,0x3e2e6823,0xbf44cbec,4
+np.float32,0x3d87ea27,0xbf96caca,4
+np.float32,0x3e0c715b,0xbf5ce07e,4
+np.float32,0x7ec9cd5a,0x4218828e,4
+np.float32,0x3e26c0b4,0xbf49c93e,4
+np.float32,0x75b94e,0xc217dd50,4
+np.float32,0x3df7b9f5,0xbf6ad7f4,4
+np.float32,0x0,0xff800000,4
+np.float32,0x3f284795,0xbe3a94da,4
+np.float32,0x7ee49092,0x4218b9f0,4
+np.float32,0x7f4c20e0,0x4219bbe8,4
+np.float32,0x3efbbce8,0xbe9ddc4b,4
+np.float32,0x12274a,0xc21b1cb4,4
+np.float32,0x5fa1b1,0xc21839be,4
+np.float32,0x7f0b210e,0x4219116d,4
+np.float32,0x3f67092a,0xbd368545,4
+np.float32,0x3d572721,0xbfa3ca5b,4
+np.float32,0x3f7913ce,0xbc431028,4
+np.float32,0x3b0613,0xc2191059,4
+np.float32,0x3e1d16c0,0xbf506c6f,4
+np.float32,0xab130,0xc21c081d,4
+np.float32,0x3e23ac97,0xbf4bdb9d,4
+np.float32,0x7ef52368,0x4218d911,4
+np.float32,0x7f38e686,0x42198fe9,4
+np.float32,0x3f106a21,0xbe7e9897,4
+np.float32,0x3ecef8d5,0xbec96644,4
+np.float32,0x3ec37e02,0xbed61683,4
+np.float32,0x3efbd063,0xbe9dcb17,4
+np.float32,0x3f318fe3,0xbe22b402,4
+np.float32,0x7e5e5228,0x4217795d,4
+np.float32,0x72a046,0xc217e92c,4
+np.float32,0x7f6f970b,0x421a0324,4
+np.float32,0x3ed871b4,0xbebf72fb,4
+np.float32,0x7a2eaa,0xc217ccc8,4
+np.float32,0x3e819655,0xbf18c1d7,4
+np.float32,0x80800000,0x7fc00000,4
+np.float32,0x7eab0719,0x421838f9,4
+np.float32,0x7f0763cb,0x4219054f,4
+np.float32,0x3f191672,0xbe64a8af,4
+np.float32,0x7d4327,0xc217c1b6,4
+np.float32,0x3f724ba6,0xbcc3bea3,4
+np.float32,0x60fe06,0xc2183375,4
+np.float32,0x48cd59,0xc218b30b,4
+np.float32,0x3f7fec2b,0xb909d3f3,4
+np.float32,0x1c7bb9,0xc21a5460,4
+np.float32,0x24d8a8,0xc219e1e4,4
+np.float32,0x3e727c52,0xbf20283c,4
+np.float32,0x4bc460,0xc218a14a,4
+np.float32,0x63e313,0xc2182661,4
+np.float32,0x7f625581,0x4219e9d4,4
+np.float32,0x3eeb3e77,0xbeacedc0,4
+np.float32,0x7ef27a47,0x4218d437,4
+np.float32,0x27105a,0xc219c7e6,4
+np.float32,0x22a10b,0xc219fd7d,4
+np.float32,0x3f41e907,0xbdf711ab,4
+np.float32,0x7c1fbf95,0x4212155b,4
+np.float32,0x7e5acceb,0x42177244,4
+np.float32,0x3e0892fa,0xbf5ffb83,4
+np.float32,0x3ea0e51d,0xbf00b2c0,4
+np.float32,0x3e56fc29,0xbf2d8a51,4
+np.float32,0x7ee724ed,0x4218beed,4
+np.float32,0x7ebf142b,0x42186a46,4
+np.float32,0x7f6cf35c,0x4219fe37,4
+np.float32,0x3f11abf7,0xbe7abdcd,4
+np.float32,0x588d7a,0xc2185bf1,4
+np.float32,0x3f6e81d2,0xbcfbcf97,4
+np.float32,0x3f1b6be8,0xbe5dee2b,4
+np.float32,0x7f3815e0,0x42198df2,4
+np.float32,0x3f5bfc88,0xbd86d93d,4
+np.float32,0x3f3775d0,0xbe142bbc,4
+np.float32,0x78a958,0xc217d25a,4
+np.float32,0x2ff7c3,0xc2196c96,4
+np.float32,0x4b9c0,0xc21d733c,4
+np.float32,0x3ec025af,0xbed9ecf3,4
+np.float32,0x6443f0,0xc21824b3,4
+np.float32,0x3f754e28,0xbc97d299,4
+np.float32,0x3eaa91d3,0xbef4699d,4
+np.float32,0x3e5f2837,0xbf296478,4
+np.float32,0xe5676,0xc21b85a4,4
+np.float32,0x3f6859f2,0xbd2c6b90,4
+np.float32,0x3f68686b,0xbd2bfcc6,4
+np.float32,0x4b39b8,0xc218a47b,4
+np.float32,0x630ac4,0xc2182a28,4
+np.float32,0x160980,0xc21ac67d,4
+np.float32,0x3ed91c4d,0xbebec3fd,4
+np.float32,0x7ec27b0d,0x4218721f,4
+np.float32,0x3f3c0a5f,0xbe09344b,4
+np.float32,0x3dbff9c1,0xbf839841,4
+np.float32,0x7f0e8ea7,0x42191c40,4
+np.float32,0x3f36b162,0xbe1608e4,4
+np.float32,0x228bb3,0xc219fe90,4
+np.float32,0x2fdd30,0xc2196d8c,4
+np.float32,0x3e8fce8e,0xbf0d2e79,4
+np.float32,0x3f36acc7,0xbe16141a,4
+np.float32,0x7f44b51c,0x4219ab70,4
+np.float32,0x3ec3371c,0xbed66736,4
+np.float32,0x4388a2,0xc218d473,4
+np.float32,0x3f5aa6c3,0xbd8c4344,4
+np.float32,0x7f09fce4,0x42190dc3,4
+np.float32,0x7ed7854a,0x42189fce,4
+np.float32,0x7f4da83a,0x4219bf3a,4
+np.float32,0x3db8da28,0xbf85b25a,4
+np.float32,0x7f449686,0x4219ab2b,4
+np.float32,0x2eb25,0xc21e498c,4
+np.float32,0x3f2bcc08,0xbe3161bd,4
+np.float32,0x36c923,0xc219317b,4
+np.float32,0x3d52a866,0xbfa4f6d2,4
+np.float32,0x3f7d6688,0xbb913e4e,4
+np.float32,0x3f5a6ba4,0xbd8d33e3,4
+np.float32,0x719740,0xc217ed35,4
+np.float32,0x78a472,0xc217d26c,4
+np.float32,0x7ee33d0c,0x4218b759,4
+np.float32,0x7f668c1d,0x4219f208,4
+np.float32,0x3e29c600,0xbf47ca46,4
+np.float32,0x3f3cefc3,0xbe071712,4
+np.float32,0x3e224ebd,0xbf4cca41,4
+np.float32,0x7f1417be,0x42192d31,4
+np.float32,0x7f29d7d5,0x42196a23,4
+np.float32,0x3338ce,0xc2194f65,4
+np.float32,0x2a7897,0xc219a2b6,4
+np.float32,0x3d6bc3d8,0xbf9eb468,4
+np.float32,0x3f6bd7bf,0xbd11e392,4
+np.float32,0x7f6d26bf,0x4219fe98,4
+np.float32,0x3f52d378,0xbdacadb5,4
+np.float32,0x3efac453,0xbe9eb84a,4
+np.float32,0x3f692eb7,0xbd261184,4
+np.float32,0x3f6a0bb5,0xbd1f7ec1,4
+np.float32,0x3f037a49,0xbe942aa8,4
+np.float32,0x3f465bd4,0xbde2e530,4
+np.float32,0x7ef0f47b,0x4218d16a,4
+np.float32,0x637127,0xc218285e,4
+np.float32,0x3f41e511,0xbdf723d7,4
+np.float32,0x7f800000,0x7f800000,4
+np.float32,0x3f3342d5,0xbe1e77d5,4
+np.float32,0x7f57cfe6,0x4219d4a9,4
+np.float32,0x3e4358ed,0xbf3830a7,4
+np.float32,0x3ce25f15,0xbfc77f2b,4
+np.float32,0x7ed057e7,0x421890be,4
+np.float32,0x7ce154d9,0x4213e295,4
+np.float32,0x3ee91984,0xbeaef703,4
+np.float32,0x7e4e919c,0x421758af,4
+np.float32,0x6830e7,0xc218139e,4
+np.float32,0x3f12f08e,0xbe76e328,4
+np.float32,0x7f0a7a32,0x42190f56,4
+np.float32,0x7f38e,0xc21c8bd3,4
+np.float32,0x3e01def9,0xbf6593e3,4
+np.float32,0x3f5c8c6d,0xbd849432,4
+np.float32,0x3eed8747,0xbeaac7a3,4
+np.float32,0x3cadaa0e,0xbfd63b21,4
+np.float32,0x3f7532a9,0xbc996178,4
+np.float32,0x31f3ac,0xc2195a8f,4
+np.float32,0x3f0e0f97,0xbe82f3af,4
+np.float32,0x3f2a1f35,0xbe35bd3f,4
+np.float32,0x3f4547b2,0xbde7bebd,4
+np.float32,0x3f7988a6,0xbc36094c,4
+np.float32,0x74464c,0xc217e2d2,4
+np.float32,0x7f7518be,0x421a0d3f,4
+np.float32,0x7e97fa0a,0x42180473,4
+np.float32,0x584e3a,0xc2185d2f,4
+np.float32,0x3e7291f3,0xbf201e52,4
+np.float32,0xc0a05,0xc21bd359,4
+np.float32,0x3a3177,0xc21916a6,4
+np.float32,0x4f417f,0xc2188d45,4
+np.float32,0x263fce,0xc219d145,4
+np.float32,0x7e1d58,0xc217beb1,4
+np.float32,0x7f056af3,0x4218fec9,4
+np.float32,0x3f21c181,0xbe4c2a3f,4
+np.float32,0x7eca4956,0x4218839f,4
+np.float32,0x3e58afa8,0xbf2ca9fd,4
+np.float32,0x3f40d583,0xbdfc04ef,4
+np.float32,0x7f432fbb,0x4219a7fc,4
+np.float32,0x43aaa4,0xc218d393,4
+np.float32,0x7f2c9b62,0x42197150,4
+np.float32,0x5c3876,0xc21849e5,4
+np.float32,0x7f2034e8,0x42195029,4
+np.float32,0x7e5be772,0x42177481,4
+np.float32,0x80000000,0xff800000,4
+np.float32,0x3f5be03b,0xbd874bb0,4
+np.float32,0x3e32494f,0xbf4259be,4
+np.float32,0x3e1f4671,0xbf4ee30b,4
+np.float32,0x4606cc,0xc218c454,4
+np.float32,0x425cbc,0xc218dc3b,4
+np.float32,0x7dd9b8bf,0x42163bd0,4
+np.float32,0x3f0465d0,0xbe929db7,4
+np.float32,0x3f735077,0xbcb4d0fa,4
+np.float32,0x4d6a43,0xc21897b8,4
+np.float32,0x3e27d600,0xbf4910f5,4
+np.float32,0x3f06e0cc,0xbe8e7d24,4
+np.float32,0x3f3fd064,0xbe005e45,4
+np.float32,0x176f1,0xc21f7c2d,4
+np.float32,0x3eb64e6f,0xbee59d9c,4
+np.float32,0x7f0f075d,0x42191db8,4
+np.float32,0x3f718cbe,0xbcceb621,4
+np.float32,0x3ead7bda,0xbef0a54a,4
+np.float32,0x7f77c1a8,0x421a120c,4
+np.float32,0x3f6a79c5,0xbd1c3afd,4
+np.float32,0x3e992d1f,0xbf062a02,4
+np.float32,0x3e6f6335,0xbf219639,4
+np.float32,0x7f6d9a3e,0x4219ff70,4
+np.float32,0x557ed1,0xc2186b91,4
+np.float32,0x3f13a456,0xbe74c457,4
+np.float32,0x15c2dc,0xc21acc17,4
+np.float32,0x71f36f,0xc217ebcc,4
+np.float32,0x748dea,0xc217e1c1,4
+np.float32,0x7f0f32e0,0x42191e3f,4
+np.float32,0x5b1da8,0xc2184f41,4
+np.float32,0x3d865d3a,0xbf976e11,4
+np.float32,0x3f800000,0x0,4
+np.float32,0x7f67b56d,0x4219f444,4
+np.float32,0x6266a1,0xc2182d0c,4
+np.float32,0x3ec9c5e4,0xbecf0e6b,4
+np.float32,0x6a6a0e,0xc2180a3b,4
+np.float32,0x7e9db6fd,0x421814ef,4
+np.float32,0x3e7458f7,0xbf1f4e88,4
+np.float32,0x3ead8016,0xbef09fdc,4
+np.float32,0x3e263d1c,0xbf4a211e,4
+np.float32,0x7f6b3329,0x4219faeb,4
+np.float32,0x800000,0xc217b818,4
+np.float32,0x3f0654c7,0xbe8f6471,4
+np.float32,0x3f281b71,0xbe3b0990,4
+np.float32,0x7c4c8e,0xc217c524,4
+np.float32,0x7d113a87,0x4214537d,4
+np.float32,0x734b5f,0xc217e696,4
+np.float32,0x7f079d05,0x4219060b,4
+np.float32,0x3ee830b1,0xbeafd58b,4
+np.float32,0x3f1c3b8b,0xbe5b9d96,4
+np.float32,0x3f2bf0c6,0xbe3102aa,4
+np.float32,0x7ddffe22,0x42164871,4
+np.float32,0x3f1e58b4,0xbe55a37f,4
+np.float32,0x5f3edf,0xc2183b8a,4
+np.float32,0x7f1fb6ec,0x42194eca,4
+np.float32,0x3f78718e,0xbc55311e,4
+np.float32,0x3e574b7d,0xbf2d6152,4
+np.float32,0x7eab27c6,0x4218394e,4
+np.float32,0x7f34603c,0x421984e5,4
+np.float32,0x3f3a8b57,0xbe0cc1ca,4
+np.float32,0x3f744181,0xbca7134e,4
+np.float32,0x3f7e3bc4,0xbb45156b,4
+np.float32,0x93ab4,0xc21c498b,4
+np.float32,0x7ed5541e,0x42189b42,4
+np.float32,0x6bf8ec,0xc21803c4,4
+np.float32,0x757395,0xc217de58,4
+np.float32,0x7f177214,0x42193726,4
+np.float32,0x59935f,0xc21856d6,4
+np.float32,0x2cd9ba,0xc2198a78,4
+np.float32,0x3ef6fd5c,0xbea2183c,4
+np.float32,0x3ebb6c63,0xbedf75e0,4
+np.float32,0x7f43272c,0x4219a7e9,4
+np.float32,0x7f42e67d,0x4219a755,4
+np.float32,0x3f3f744f,0xbe0133f6,4
+np.float32,0x7f5fddaa,0x4219e4f4,4
+np.float32,0x3dc9874f,0xbf80e529,4
+np.float32,0x3f2efe64,0xbe292ec8,4
+np.float32,0x3e0406a6,0xbf63bf7c,4
+np.float32,0x3cdbb0aa,0xbfc92984,4
+np.float32,0x3e6597e7,0xbf263b30,4
+np.float32,0x3f0c1153,0xbe861807,4
+np.float32,0x7fce16,0xc217b8c6,4
+np.float32,0x3f5f4e5f,0xbd730dc6,4
+np.float32,0x3ed41ffa,0xbec3ee69,4
+np.float32,0x3f216c78,0xbe4d1446,4
+np.float32,0x3f123ed7,0xbe78fe4b,4
+np.float32,0x7f7e0ca9,0x421a1d34,4
+np.float32,0x7e318af4,0x42171558,4
+np.float32,0x7f1e1659,0x42194a3d,4
+np.float32,0x34d12a,0xc21941c2,4
+np.float32,0x3d9566ad,0xbf918870,4
+np.float32,0x3e799a47,0xbf1cf0e5,4
+np.float32,0x3e89dd6f,0xbf11df76,4
+np.float32,0x32f0d3,0xc21951d8,4
+np.float32,0x7e89d17e,0x4217d8f6,4
+np.float32,0x1f3b38,0xc21a2b6b,4
+np.float32,0x7ee9e060,0x4218c427,4
+np.float32,0x31a673,0xc2195d41,4
+np.float32,0x5180f1,0xc21880d5,4
+np.float32,0x3cd36f,0xc21902f8,4
+np.float32,0x3bb63004,0xc01050cb,4
+np.float32,0x3e8ee9d1,0xbf0ddfde,4
+np.float32,0x3d2a7da3,0xbfb0b970,4
+np.float32,0x3ea58107,0xbefb1dc3,4
+np.float32,0x7f6760b0,0x4219f3a2,4
+np.float32,0x7f7f9e08,0x421a1ff0,4
+np.float32,0x37e7f1,0xc219287b,4
+np.float32,0x3ef7eb53,0xbea14267,4
+np.float32,0x3e2eb581,0xbf449aa5,4
+np.float32,0x3da7671c,0xbf8b3568,4
+np.float32,0x7af36f7b,0x420f33ee,4
+np.float32,0x3eb3602c,0xbee93823,4
+np.float32,0x3f68bcff,0xbd2975de,4
+np.float32,0x3ea7cefb,0xbef80a9d,4
+np.float32,0x3f329689,0xbe202414,4
+np.float32,0x7f0c7c80,0x421915be,4
+np.float32,0x7f4739b8,0x4219b118,4
+np.float32,0x73af58,0xc217e515,4
+np.float32,0x7f13eb2a,0x42192cab,4
+np.float32,0x30f2d9,0xc2196395,4
+np.float32,0x7ea7066c,0x42182e71,4
+np.float32,0x669fec,0xc2181a5b,4
+np.float32,0x3f7d6876,0xbb90d1ef,4
+np.float32,0x3f08a4ef,0xbe8b9897,4
+np.float32,0x7f2a906c,0x42196c05,4
+np.float32,0x3ed3ca42,0xbec44856,4
+np.float32,0x9d27,0xc220fee2,4
+np.float32,0x3e4508a1,0xbf373c03,4
+np.float32,0x3e41f8de,0xbf38f9bb,4
+np.float32,0x3e912714,0xbf0c255b,4
+np.float32,0xff800000,0x7fc00000,4
+np.float32,0x7eefd13d,0x4218cf4f,4
+np.float32,0x3f491674,0xbdd6bded,4
+np.float32,0x3ef49512,0xbea445c9,4
+np.float32,0x3f045b79,0xbe92af15,4
+np.float32,0x3ef6c412,0xbea24bd5,4
+np.float32,0x3e6f3c28,0xbf21a85d,4
+np.float32,0x3ef71839,0xbea2000e,4
+np.float32,0x1,0xc23369f4,4
+np.float32,0x3e3fcfe4,0xbf3a3876,4
+np.float32,0x3e9d7a65,0xbf0315b2,4
+np.float32,0x20b7c4,0xc21a16bd,4
+np.float32,0x7f707b10,0x421a04cb,4
+np.float32,0x7fc00000,0x7fc00000,4
+np.float32,0x3f285ebd,0xbe3a57ac,4
+np.float32,0x74c9ea,0xc217e0dc,4
+np.float32,0x3f6501f2,0xbd4634ab,4
+np.float32,0x3f248959,0xbe4495cc,4
+np.float32,0x7e915ff0,0x4217f0b3,4
+np.float32,0x7edbb910,0x4218a864,4
+np.float32,0x3f7042dd,0xbce1bddb,4
+np.float32,0x6f08c9,0xc217f754,4
+np.float32,0x7f423993,0x4219a5ca,4
+np.float32,0x3f125704,0xbe78b4cd,4
+np.float32,0x7ef7f5ae,0x4218de28,4
+np.float32,0x3f2dd940,0xbe2c1a33,4
+np.float32,0x3f1ca78e,0xbe5a6a8b,4
+np.float32,0x244863,0xc219e8be,4
+np.float32,0x3f2614fe,0xbe406d6b,4
+np.float32,0x3e75e7a3,0xbf1e99b5,4
+np.float32,0x2bdd6e,0xc2199459,4
+np.float32,0x7e49e279,0x42174e7b,4
+np.float32,0x3e3bb09a,0xbf3ca2cd,4
+np.float32,0x649f06,0xc2182320,4
+np.float32,0x7f4a44e1,0x4219b7d6,4
+np.float32,0x400473,0xc218ec3a,4
+np.float32,0x3edb19ad,0xbebcbcad,4
+np.float32,0x3d8ee956,0xbf94006c,4
+np.float32,0x7e91c603,0x4217f1eb,4
+np.float32,0x221384,0xc21a04a6,4
+np.float32,0x7f7dd660,0x421a1cd5,4
+np.float32,0x7ef34609,0x4218d5ac,4
+np.float32,0x7f5ed529,0x4219e2e5,4
+np.float32,0x7f1bf685,0x42194438,4
+np.float32,0x3cdd094a,0xbfc8d294,4
+np.float32,0x7e87fc8e,0x4217d303,4
+np.float32,0x7f53d971,0x4219cc6b,4
+np.float32,0xabc8b,0xc21c0646,4
+np.float32,0x7f5011e6,0x4219c46a,4
+np.float32,0x7e460638,0x421745e5,4
+np.float32,0xa8126,0xc21c0ffd,4
+np.float32,0x3eec2a66,0xbeac0f2d,4
+np.float32,0x3f3a1213,0xbe0de340,4
+np.float32,0x7f5908db,0x4219d72c,4
+np.float32,0x7e0ad3c5,0x4216a7f3,4
+np.float32,0x3f2de40e,0xbe2bfe90,4
+np.float32,0x3d0463c5,0xbfbec8e4,4
+np.float32,0x7c7cde0b,0x4212e19a,4
+np.float32,0x74c24f,0xc217e0f9,4
+np.float32,0x3f14b4cb,0xbe71929b,4
+np.float32,0x3e94e192,0xbf09537f,4
+np.float32,0x3eebde71,0xbeac56bd,4
+np.float32,0x3f65e413,0xbd3f5b8a,4
+np.float32,0x7e109199,0x4216b9f9,4
+np.float32,0x3f22f5d0,0xbe48ddc0,4
+np.float32,0x3e22d3bc,0xbf4c6f4d,4
+np.float32,0x3f7a812f,0xbc1a680b,4
+np.float32,0x3f67f361,0xbd2f7d7c,4
+np.float32,0x3f1caa63,0xbe5a6281,4
+np.float32,0x3f306fde,0xbe2587ab,4
+np.float32,0x3e8df9d3,0xbf0e9b2f,4
+np.float32,0x3eaaccc4,0xbef41cd4,4
+np.float32,0x7f3f65ec,0x42199f45,4
+np.float32,0x3dc706e0,0xbf8196ec,4
+np.float32,0x3e14eaba,0xbf565cf6,4
+np.float32,0xcc60,0xc2208a09,4
+np.float32,0x358447,0xc2193be7,4
+np.float32,0x3dcecade,0xbf7eec70,4
+np.float32,0x3f20b4f8,0xbe4f0ef0,4
+np.float32,0x7e7c979f,0x4217b222,4
+np.float32,0x7f2387b9,0x4219594a,4
+np.float32,0x3f6f6e5c,0xbcee0e05,4
+np.float32,0x7f19ad81,0x42193da8,4
+np.float32,0x5635e1,0xc21867dd,4
+np.float32,0x4c5e97,0xc2189dc4,4
+np.float32,0x7f35f97f,0x421988d1,4
+np.float32,0x7f685224,0x4219f571,4
+np.float32,0x3eca0616,0xbecec7b8,4
+np.float32,0x3f436d0d,0xbdf024ca,4
+np.float32,0x12a97d,0xc21b106a,4
+np.float32,0x7f0fdc93,0x4219204d,4
+np.float32,0x3debfb42,0xbf703e65,4
+np.float32,0x3c6c54d2,0xbfeba291,4
+np.float32,0x7e5d7491,0x421777a1,4
+np.float32,0x3f4bd2f0,0xbdcab87d,4
+np.float32,0x3f7517f4,0xbc9ae510,4
+np.float32,0x3f71a59a,0xbccd480d,4
+np.float32,0x3f514653,0xbdb33f61,4
+np.float32,0x3f4e6ea4,0xbdbf694b,4
+np.float32,0x3eadadec,0xbef06526,4
+np.float32,0x3f3b41c1,0xbe0b0fbf,4
+np.float32,0xc35a,0xc2209e1e,4
+np.float32,0x384982,0xc2192575,4
+np.float32,0x3464c3,0xc2194556,4
+np.float32,0x7f5e20d9,0x4219e17d,4
+np.float32,0x3ea18b62,0xbf004016,4
+np.float32,0x63a02b,0xc218278c,4
+np.float32,0x7ef547ba,0x4218d953,4
+np.float32,0x3f2496fb,0xbe4470f4,4
+np.float32,0x7ea0c8c6,0x42181d81,4
+np.float32,0x3f42ba60,0xbdf35372,4
+np.float32,0x7e40d9,0xc217be34,4
+np.float32,0x3e95883b,0xbf08d750,4
+np.float32,0x3e0cddf3,0xbf5c8aa8,4
+np.float32,0x3f2305d5,0xbe48b20a,4
+np.float32,0x7f0d0941,0x4219177b,4
+np.float32,0x3f7b98d3,0xbbf6e477,4
+np.float32,0x3f687cdc,0xbd2b6057,4
+np.float32,0x3f42ce91,0xbdf2f73d,4
+np.float32,0x3ee00fc0,0xbeb7c217,4
+np.float32,0x7f3d483a,0x42199a53,4
+np.float32,0x3e1e08eb,0xbf4fc18d,4
+np.float32,0x7e202ff5,0x4216e798,4
+np.float32,0x582898,0xc2185ded,4
+np.float32,0x3e3552b1,0xbf40790c,4
+np.float32,0x3d3f7c87,0xbfaa44b6,4
+np.float32,0x669d8e,0xc2181a65,4
+np.float32,0x3f0e21b4,0xbe82d757,4
+np.float32,0x686f95,0xc2181293,4
+np.float32,0x3f48367f,0xbdda9ead,4
+np.float32,0x3dc27802,0xbf82e0a0,4
+np.float32,0x3f6ac40c,0xbd1a07d4,4
+np.float32,0x3bba6d,0xc2190b12,4
+np.float32,0x3ec7b6b0,0xbed15665,4
+np.float32,0x3f1f9ca4,0xbe521955,4
+np.float32,0x3ef2f147,0xbea5c4b8,4
+np.float32,0x7c65f769,0x4212b762,4
+np.float32,0x7e98e162,0x42180716,4
+np.float32,0x3f0f0c09,0xbe8169ea,4
+np.float32,0x3d67f03b,0xbf9f9d48,4
+np.float32,0x7f3751e4,0x42198c18,4
+np.float32,0x7f1fac61,0x42194ead,4
+np.float32,0x3e9b698b,0xbf048d89,4
+np.float32,0x7e66507b,0x42178913,4
+np.float32,0x7f5cb680,0x4219dea5,4
+np.float32,0x234700,0xc219f53e,4
+np.float32,0x3d9984ad,0xbf900591,4
+np.float32,0x3f33a3f2,0xbe1d872a,4
+np.float32,0x3eaf52b6,0xbeee4cf4,4
+np.float32,0x7f078930,0x421905ca,4
+np.float32,0x3f083b39,0xbe8c44df,4
+np.float32,0x3e3823f8,0xbf3ec231,4
+np.float32,0x3eef6f5d,0xbea9008c,4
+np.float32,0x6145e1,0xc218322c,4
+np.float32,0x16d9ae,0xc21ab65f,4
+np.float32,0x7e543376,0x421764a5,4
+np.float32,0x3ef77ccb,0xbea1a5a0,4
+np.float32,0x3f4a443f,0xbdd18af5,4
+np.float32,0x8f209,0xc21c5770,4
+np.float32,0x3ecac126,0xbecdfa33,4
+np.float32,0x3e8662f9,0xbf14b6c7,4
+np.float32,0x23759a,0xc219f2f4,4
+np.float32,0xf256d,0xc21b6d3f,4
+np.float32,0x3f579f93,0xbd98aaa2,4
+np.float32,0x3ed4cc8e,0xbec339cb,4
+np.float32,0x3ed25400,0xbec5d2a1,4
+np.float32,0x3ed6f8ba,0xbec0f795,4
+np.float32,0x7f36efd9,0x42198b2a,4
+np.float32,0x7f5169dd,0x4219c746,4
+np.float32,0x7de18a20,0x42164b80,4
+np.float32,0x3e8de526,0xbf0eab61,4
+np.float32,0x3de0cbcd,0xbf75a47e,4
+np.float32,0xe265f,0xc21b8b82,4
+np.float32,0x3df3cdbd,0xbf6c9e40,4
+np.float32,0x3f38a25a,0xbe115589,4
+np.float32,0x7f01f2c0,0x4218f311,4
+np.float32,0x3da7d5f4,0xbf8b10a5,4
+np.float32,0x4d4fe8,0xc2189850,4
+np.float32,0x3cc96d9d,0xbfcdfc8d,4
+np.float32,0x259a88,0xc219d8d7,4
+np.float32,0x7f1d5102,0x42194810,4
+np.float32,0x7e17ca91,0x4216cfa7,4
+np.float32,0x3f73d110,0xbcad7a8f,4
+np.float32,0x3f009383,0xbe9920ed,4
+np.float32,0x7e22af,0xc217be9f,4
+np.float32,0x3f7de2ce,0xbb6c0394,4
+np.float32,0x3edd0cd2,0xbebac45a,4
+np.float32,0x3ec9b5c1,0xbecf2035,4
+np.float32,0x3168c5,0xc2195f6b,4
+np.float32,0x3e935522,0xbf0a7d18,4
+np.float32,0x3e494077,0xbf34e120,4
+np.float32,0x3f52ed06,0xbdac41ec,4
+np.float32,0x3f73d51e,0xbcad3f65,4
+np.float32,0x3f03d453,0xbe939295,4
+np.float32,0x7ef4ee68,0x4218d8b1,4
+np.float32,0x3ed0e2,0xc218f4a7,4
+np.float32,0x4efab8,0xc2188ed3,4
+np.float32,0x3dbd5632,0xbf845d3b,4
+np.float32,0x7eecad4f,0x4218c972,4
+np.float32,0x9d636,0xc21c2d32,4
+np.float32,0x3e5f3b6b,0xbf295ae7,4
+np.float32,0x7f4932df,0x4219b57a,4
+np.float32,0x4b59b5,0xc218a3be,4
+np.float32,0x3e5de97f,0xbf2a03b4,4
+np.float32,0x3f1c479d,0xbe5b7b3c,4
+np.float32,0x3f42e7e4,0xbdf283a5,4
+np.float32,0x2445,0xc2238af2,4
+np.float32,0x7aa71b43,0x420e8c9e,4
+np.float32,0x3ede6e4e,0xbeb961e1,4
+np.float32,0x7f05dd3b,0x42190045,4
+np.float32,0x3ef5b55c,0xbea3404b,4
+np.float32,0x7f738624,0x421a0a62,4
+np.float32,0x3e7d50a1,0xbf1b4cb4,4
+np.float32,0x3f44cc4a,0xbde9ebcc,4
+np.float32,0x7e1a7b0b,0x4216d777,4
+np.float32,0x3f1d9868,0xbe57c0da,4
+np.float32,0x1ebee2,0xc21a3263,4
+np.float32,0x31685f,0xc2195f6e,4
+np.float32,0x368a8e,0xc2193379,4
+np.float32,0xa9847,0xc21c0c2e,4
+np.float32,0x3bd3b3,0xc2190a56,4
+np.float32,0x3961e4,0xc2191ce3,4
+np.float32,0x7e13a243,0x4216c34e,4
+np.float32,0x7f7b1790,0x421a17ff,4
+np.float32,0x3e55f020,0xbf2e1545,4
+np.float32,0x3f513861,0xbdb37aa8,4
+np.float32,0x3dd9e754,0xbf791ad2,4
+np.float32,0x5e8d86,0xc2183ec9,4
+np.float32,0x26b796,0xc219cbdd,4
+np.float32,0x429daa,0xc218da89,4
+np.float32,0x3f477caa,0xbdddd9ba,4
+np.float32,0x3f0e5114,0xbe828d45,4
+np.float32,0x3f54f362,0xbda3c286,4
+np.float32,0x6eac1c,0xc217f8c8,4
+np.float32,0x3f04c479,0xbe91fef5,4
+np.float32,0x3e993765,0xbf06228e,4
+np.float32,0x3eafd99f,0xbeeda21b,4
+np.float32,0x3f2a759e,0xbe34db96,4
+np.float32,0x3f05adfb,0xbe907937,4
+np.float32,0x3f6e2dfc,0xbd005980,4
+np.float32,0x3f2f2daa,0xbe28b6b5,4
+np.float32,0x15e746,0xc21ac931,4
+np.float32,0x7d34ca26,0x4214b4e5,4
+np.float32,0x7ebd175c,0x4218659f,4
+np.float32,0x7f1ed26b,0x42194c4c,4
+np.float32,0x2588b,0xc21eaab0,4
+np.float32,0x3f0065e3,0xbe996fe2,4
+np.float32,0x3f610376,0xbd658122,4
+np.float32,0x451995,0xc218ca41,4
+np.float32,0x70e083,0xc217f002,4
+np.float32,0x7e19821a,0x4216d4a8,4
+np.float32,0x3e7cd9a0,0xbf1b80fb,4
+np.float32,0x7f1a8f18,0x42194033,4
+np.float32,0x3f008fee,0xbe99271f,4
+np.float32,0xff7fffff,0x7fc00000,4
+np.float32,0x7f31d826,0x42197e9b,4
+np.float32,0x3f18cf12,0xbe657838,4
+np.float32,0x3e5c1bc7,0xbf2aebf9,4
+np.float32,0x3e3d3993,0xbf3bbaf8,4
+np.float32,0x68457a,0xc2181347,4
+np.float32,0x7ddf7561,0x42164761,4
+np.float32,0x7f47341b,0x4219b10c,4
+np.float32,0x4d3ecd,0xc21898b2,4
+np.float32,0x7f43dee8,0x4219a98b,4
+np.float32,0x3f0def7c,0xbe8325f5,4
+np.float32,0x3d5a551f,0xbfa2f994,4
+np.float32,0x7ed26602,0x4218951b,4
+np.float32,0x3ee7fa5b,0xbeb0099a,4
+np.float32,0x7ef74ea8,0x4218dcfc,4
+np.float32,0x6a3bb2,0xc2180afd,4
+np.float32,0x7f4c1e6e,0x4219bbe3,4
+np.float32,0x3e26f625,0xbf49a5a2,4
+np.float32,0xb8482,0xc21be70b,4
+np.float32,0x3f32f077,0xbe1f445b,4
+np.float32,0x7dd694b6,0x4216355a,4
+np.float32,0x7f3d62fd,0x42199a92,4
+np.float32,0x3f48e41a,0xbdd79cbf,4
+np.float32,0x338fc3,0xc2194c75,4
+np.float32,0x3e8355f0,0xbf174462,4
+np.float32,0x7f487e83,0x4219b3eb,4
+np.float32,0x2227f7,0xc21a039b,4
+np.float32,0x7e4383dd,0x4217403a,4
+np.float32,0x52d28b,0xc21879b2,4
+np.float32,0x12472c,0xc21b19a9,4
+np.float32,0x353530,0xc2193e7b,4
+np.float32,0x3f4e4728,0xbdc0137a,4
+np.float32,0x3bf169,0xc2190979,4
+np.float32,0x3eb3ee2e,0xbee8885f,4
+np.float32,0x3f03e3c0,0xbe937892,4
+np.float32,0x3c9f8408,0xbfdaf47f,4
+np.float32,0x40e792,0xc218e61b,4
+np.float32,0x5a6b29,0xc21852ab,4
+np.float32,0x7f268b83,0x4219616a,4
+np.float32,0x3ee25997,0xbeb57fa7,4
+np.float32,0x3f175324,0xbe69cf53,4
+np.float32,0x3f781d91,0xbc5e9827,4
+np.float32,0x7dba5210,0x4215f68c,4
+np.float32,0x7f1e66,0xc217bb2b,4
+np.float32,0x7f7fffff,0x421a209b,4
+np.float32,0x3f646202,0xbd4b10b8,4
+np.float32,0x575248,0xc218622b,4
+np.float32,0x7c67faa1,0x4212bb42,4
+np.float32,0x7f1683f2,0x42193469,4
+np.float32,0x1a3864,0xc21a7931,4
+np.float32,0x7f30ad75,0x42197bae,4
+np.float32,0x7f1c9d05,0x42194612,4
+np.float32,0x3e791795,0xbf1d2b2c,4
+np.float32,0x7e9ebc19,0x421817cd,4
+np.float32,0x4999b7,0xc218ae31,4
+np.float32,0x3d130e2c,0xbfb8f1cc,4
+np.float32,0x3f7e436f,0xbb41bb07,4
+np.float32,0x3ee00241,0xbeb7cf7d,4
+np.float32,0x7e496181,0x42174d5f,4
+np.float32,0x7efe58be,0x4218e978,4
+np.float32,0x3f5e5b0c,0xbd7aa43f,4
+np.float32,0x7ee4c6ab,0x4218ba59,4
+np.float32,0x3f6da8c6,0xbd043d7e,4
+np.float32,0x3e3e6e0f,0xbf3b064b,4
+np.float32,0x3f0143b3,0xbe97f10a,4
+np.float32,0x79170f,0xc217d0c6,4
+np.float32,0x517645,0xc218810f,4
+np.float32,0x3f1f9960,0xbe52226e,4
+np.float32,0x2a8df9,0xc219a1d6,4
+np.float32,0x2300a6,0xc219f8b8,4
+np.float32,0x3ee31355,0xbeb4c97a,4
+np.float32,0x3f20b05f,0xbe4f1ba9,4
+np.float32,0x3ee64249,0xbeb1b0ff,4
+np.float32,0x3a94b7,0xc21913b2,4
+np.float32,0x7ef7ef43,0x4218de1d,4
+np.float32,0x3f1abb5d,0xbe5fe872,4
+np.float32,0x7f65360b,0x4219ef72,4
+np.float32,0x3d315d,0xc219004c,4
+np.float32,0x3f26bbc4,0xbe3eafb9,4
+np.float32,0x3ee8c6e9,0xbeaf45de,4
+np.float32,0x7e5f1452,0x42177ae1,4
+np.float32,0x3f32e777,0xbe1f5aba,4
+np.float32,0x4d39a1,0xc21898d0,4
+np.float32,0x3e59ad15,0xbf2c2841,4
+np.float32,0x3f4be746,0xbdca5fc4,4
+np.float32,0x72e4fd,0xc217e821,4
+np.float32,0x1af0b8,0xc21a6d25,4
+np.float32,0x3f311147,0xbe23f18d,4
+np.float32,0x3f1ecebb,0xbe545880,4
+np.float32,0x7e90d293,0x4217ef02,4
+np.float32,0x3e3b366a,0xbf3ceb46,4
+np.float32,0x3f133239,0xbe761c96,4
+np.float32,0x7541ab,0xc217df15,4
+np.float32,0x3d8c8275,0xbf94f1a1,4
+np.float32,0x483b92,0xc218b689,4
+np.float32,0x3eb0dbed,0xbeec5c6b,4
+np.float32,0x3f00c676,0xbe98c8e2,4
+np.float32,0x3f445ac2,0xbdebed7c,4
+np.float32,0x3d2af4,0xc219007a,4
+np.float32,0x7f196ee1,0x42193cf2,4
+np.float32,0x290c94,0xc219b1db,4
+np.float32,0x3f5dbdc9,0xbd7f9019,4
+np.float32,0x3e80c62e,0xbf1974fc,4
+np.float32,0x3ec9ed2c,0xbecee326,4
+np.float32,0x7f469d60,0x4219afbb,4
+np.float32,0x3f698413,0xbd2386ce,4
+np.float32,0x42163f,0xc218de14,4
+np.float32,0x67a554,0xc21815f4,4
+np.float32,0x3f4bff74,0xbdc9f651,4
+np.float32,0x16a743,0xc21aba39,4
+np.float32,0x2eb8b0,0xc219784b,4
+np.float32,0x3eed9be1,0xbeaab45b,4
+np.float64,0x7fe0d76873e1aed0,0x40733f9d783bad7a,1
+np.float64,0x3fe22626bb244c4d,0xbfcf86a59864eea2,1
+np.float64,0x7f874113d02e8227,0x407324f54c4015b8,1
+np.float64,0x3fe40a46a9e8148d,0xbfca0411f533fcb9,1
+np.float64,0x3fd03932eea07266,0xbfe312bc9cf5649e,1
+np.float64,0x7fee5d2a1b3cba53,0x407343b5f56367a0,1
+np.float64,0x3feb7bda4a76f7b5,0xbfb0ea2c6edc784a,1
+np.float64,0x3fd6cd831a2d9b06,0xbfdcaf2e1a5faf51,1
+np.float64,0x98324e273064a,0xc0733e0e4c6d11c6,1
+np.float64,0x7fe1dd63b363bac6,0x4073400667c405c3,1
+np.float64,0x3fec5971f178b2e4,0xbfaaef32a7d94563,1
+np.float64,0x17abc07e2f579,0xc0734afca4da721e,1
+np.float64,0x3feec6ab5cfd8d57,0xbf9157f3545a8235,1
+np.float64,0x3fe3ae9622a75d2c,0xbfcb04b5ad254581,1
+np.float64,0x7fea73d854b4e7b0,0x407342c0a548f4c5,1
+np.float64,0x7fe29babf4653757,0x4073404eeb5fe714,1
+np.float64,0x7fd3a55d85a74aba,0x40733bde72e86c27,1
+np.float64,0x3fe83ce305f079c6,0xbfbee3511e85e0f1,1
+np.float64,0x3fd72087ea2e4110,0xbfdc4ab30802d7c2,1
+np.float64,0x7feb54ddab76a9ba,0x407342facb6f3ede,1
+np.float64,0xc57e34a18afd,0xc0734f82ec815baa,1
+np.float64,0x7a8cb97ef5198,0xc0733f8fb3777a67,1
+np.float64,0x7fe801032c300205,0x40734213dbe4eda9,1
+np.float64,0x3aefb1f475df7,0xc07344a5f08a0584,1
+np.float64,0x7fee85f1dd3d0be3,0x407343bf4441c2a7,1
+np.float64,0x3fdc7f1055b8fe21,0xbfd67d300630e893,1
+np.float64,0xe8ecddb3d1d9c,0xc0733b194f18f466,1
+np.float64,0x3fdf2b23c73e5648,0xbfd3ff6872c1f887,1
+np.float64,0x3fdba4aef2b7495e,0xbfd7557205e18b7b,1
+np.float64,0x3fe2ac34c6e5586a,0xbfcdf1dac69bfa08,1
+np.float64,0x3fc9852628330a4c,0xbfe66914f0fb9b0a,1
+np.float64,0x7fda211acf344235,0x40733dd9c2177aeb,1
+np.float64,0x3fe9420eb432841d,0xbfba4dd969a32575,1
+np.float64,0xb2f9d1ed65f3a,0xc0733cedfb6527ff,1
+np.float64,0x3fe9768a68f2ed15,0xbfb967c39c35c435,1
+np.float64,0x7fe8268462b04d08,0x4073421eaed32734,1
+np.float64,0x3fcf331f063e663e,0xbfe39e2f4b427ca9,1
+np.float64,0x7fd4eb9e2b29d73b,0x40733c4e4141418d,1
+np.float64,0x7fd2bba658a5774c,0x40733b89cd53d5b1,1
+np.float64,0x3fdfdf04913fbe09,0xbfd360c7fd9d251b,1
+np.float64,0x3fca5bfd0534b7fa,0xbfe5f5f844b2b20c,1
+np.float64,0x3feacd5032f59aa0,0xbfb3b5234ba8bf7b,1
+np.float64,0x7fe9241cec724839,0x4073426631362cec,1
+np.float64,0x3fe57aca20eaf594,0xbfc628e3ac2c6387,1
+np.float64,0x3fec6553ca38caa8,0xbfaa921368d3b222,1
+np.float64,0x3fe1e9676563d2cf,0xbfd020f866ba9b24,1
+np.float64,0x3fd5590667aab20d,0xbfde8458af5a4fd6,1
+np.float64,0x3fdf7528f43eea52,0xbfd3bdb438d6ba5e,1
+np.float64,0xb8dddc5571bbc,0xc0733cb4601e5bb2,1
+np.float64,0xe6d4e1fbcda9c,0xc0733b295ef4a4ba,1
+np.float64,0x3fe7019d962e033b,0xbfc257c0a6e8de16,1
+np.float64,0x3f94ef585029deb1,0xbffb07e5dfb0e936,1
+np.float64,0x7fc863b08030c760,0x4073388e28d7b354,1
+np.float64,0xf684443bed089,0xc0733ab46cfbff9a,1
+np.float64,0x7fe00e901d201d1f,0x40733f489c05a0f0,1
+np.float64,0x9e5c0a273cb82,0xc0733dc7af797e19,1
+np.float64,0x7fe49734f0692e69,0x4073410303680df0,1
+np.float64,0x7fb7b584442f6b08,0x4073338acff72502,1
+np.float64,0x3f99984c30333098,0xbff9a2642a6ed8cc,1
+np.float64,0x7fea2fcda8745f9a,0x407342aeae7f5e64,1
+np.float64,0xe580caadcb01a,0xc0733b33a3639217,1
+np.float64,0x1899ab3831336,0xc0734ab823729417,1
+np.float64,0x39bd4c76737aa,0xc07344ca6fac6d21,1
+np.float64,0xd755b2dbaeab7,0xc0733ba4fe19f2cc,1
+np.float64,0x3f952bebf82a57d8,0xbffaf3e7749c2512,1
+np.float64,0x3fe62ee5d72c5dcc,0xbfc45e3cb5baad08,1
+np.float64,0xb1264a7d624ca,0xc0733d003a1d0a66,1
+np.float64,0x3fc4bd1bcd297a38,0xbfe94b3058345c46,1
+np.float64,0x7fc5758bb32aeb16,0x407337aa7805497f,1
+np.float64,0x3fb0edcaf421db96,0xbff2dfb09c405294,1
+np.float64,0x3fd240fceaa481fa,0xbfe16f356bb36134,1
+np.float64,0x38c0c62a7181a,0xc07344e916d1e9b7,1
+np.float64,0x3fe98f2b3bf31e56,0xbfb8fc6eb622a820,1
+np.float64,0x3fe2bdf99c257bf3,0xbfcdbd0dbbae4d0b,1
+np.float64,0xce4b390d9c967,0xc0733bf14ada3134,1
+np.float64,0x3fd2ad607ba55ac1,0xbfe11da15167b37b,1
+np.float64,0x3fd8154f11b02a9e,0xbfdb2a6fabb9a026,1
+np.float64,0xf37849fde6f09,0xc0733aca8c64344c,1
+np.float64,0x3fcbae43b2375c87,0xbfe547f267c8e570,1
+np.float64,0x3fcd46fd7d3a8dfb,0xbfe48070f7232929,1
+np.float64,0x7fcdd245273ba489,0x407339f3d907b101,1
+np.float64,0x3fac75cd0838eb9a,0xbff4149d177b057b,1
+np.float64,0x7fe8ff3fd7f1fe7f,0x4073425bf968ba6f,1
+np.float64,0x7febadaa4df75b54,0x407343113a91f0e9,1
+np.float64,0x7fd5e4649c2bc8c8,0x40733c9f0620b065,1
+np.float64,0x903429812069,0xc07351b255e27887,1
+np.float64,0x3fe1d8c51c63b18a,0xbfd03ad448c1f1ee,1
+np.float64,0x3fe573ea646ae7d5,0xbfc63ab0bfd0e601,1
+np.float64,0x3f83b3f3c02767e8,0xc00022677e310649,1
+np.float64,0x7fd15d1582a2ba2a,0x40733b02c469c1d6,1
+np.float64,0x3fe63d3dabec7a7b,0xbfc43a56ee97b27e,1
+np.float64,0x7fe3a452fb2748a5,0x407340af1973c228,1
+np.float64,0x3fafac6b303f58d6,0xbff35651703ae9f2,1
+np.float64,0x513ddd24a27bc,0xc073426af96aaebb,1
+np.float64,0x3fef152246be2a45,0xbf89df79d7719282,1
+np.float64,0x3fe8c923e9f19248,0xbfbc67228e8db5f6,1
+np.float64,0x3fd6e2325fadc465,0xbfdc9602fb0b950f,1
+np.float64,0x3fe9616815f2c2d0,0xbfb9c4311a3b415b,1
+np.float64,0x2fe4e4005fc9d,0xc0734616fe294395,1
+np.float64,0x3fbceb02dc39d606,0xbfee4e68f1c7886f,1
+np.float64,0x7fe35e843d66bd07,0x407340963b066ad6,1
+np.float64,0x7fecd6c648f9ad8c,0x4073435a4c176e94,1
+np.float64,0x7fcbd72bf437ae57,0x4073397994b85665,1
+np.float64,0x3feff6443b3fec88,0xbf40eb380d5318ae,1
+np.float64,0x7fb9373cf6326e79,0x407333f869edef08,1
+np.float64,0x63790d9cc6f22,0xc0734102d4793cda,1
+np.float64,0x3f9de6efe83bcde0,0xbff88db6f0a6b56e,1
+np.float64,0xe00f2dc1c01f,0xc0734ea26ab84ff2,1
+np.float64,0xd7a9aa8baf536,0xc0733ba248fa33ab,1
+np.float64,0x3fee0089ea7c0114,0xbf9cab936ac31c4b,1
+np.float64,0x3fdec0d51cbd81aa,0xbfd45ed8878c5860,1
+np.float64,0x7fe91bf5e9f237eb,0x40734263f005081d,1
+np.float64,0x34ea7d1e69d50,0xc07345659dde7444,1
+np.float64,0x7fe67321a3ace642,0x4073419cc8130d95,1
+np.float64,0x9d1aeb2f3a35e,0xc0733dd5d506425c,1
+np.float64,0x7fbb01df003603bd,0x4073347282f1391d,1
+np.float64,0x42b945b285729,0xc07343c92d1bbef9,1
+np.float64,0x7fc92799b8324f32,0x407338c51e3f0733,1
+np.float64,0x3fe119c19b223383,0xbfd16ab707f65686,1
+np.float64,0x3fc9f9ac5333f359,0xbfe62a2f91ec0dff,1
+np.float64,0x3fd820d5a8b041ab,0xbfdb1d2586fe7b18,1
+np.float64,0x10000000000000,0xc0733a7146f72a42,1
+np.float64,0x3fe7e1543eafc2a8,0xbfc045362889592d,1
+np.float64,0xcbc0e1819783,0xc0734f4b68e05b1c,1
+np.float64,0xeb57e411d6afd,0xc0733b06efec001a,1
+np.float64,0xa9b74b47536ea,0xc0733d4c7bd06ddc,1
+np.float64,0x3fe56d4022eada80,0xbfc64bf8c7e3dd59,1
+np.float64,0x3fd445ca27288b94,0xbfdff40aecd0f882,1
+np.float64,0x3fe5af1cf5ab5e3a,0xbfc5a21d83699a04,1
+np.float64,0x7fed3431eb7a6863,0x40734370aa6131e1,1
+np.float64,0x3fd878dea1b0f1bd,0xbfdab8730dc00517,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x3feba9fcc1f753fa,0xbfb03027dcecbf65,1
+np.float64,0x7fca4feed6349fdd,0x4073391526327eb0,1
+np.float64,0x3fe7748ddbaee91c,0xbfc144b438218065,1
+np.float64,0x3fb5fbd94c2bf7b3,0xbff10ee6342c21a0,1
+np.float64,0x3feb603b97f6c077,0xbfb15a1f99d6d25e,1
+np.float64,0x3fe2e6fc8ce5cdf9,0xbfcd43edd7f3b4e6,1
+np.float64,0x7feb2b31f7765663,0x407342f02b306688,1
+np.float64,0x3fe290e2282521c4,0xbfce436deb8dbcf3,1
+np.float64,0x3fe3d5adf9e7ab5c,0xbfca96b8aa55d942,1
+np.float64,0x691899f2d2314,0xc07340a1026897c8,1
+np.float64,0x7fe468b008e8d15f,0x407340f33eadc628,1
+np.float64,0x3fb3a4c416274988,0xbff1d71da539a56e,1
+np.float64,0x3fe2442b29e48856,0xbfcf2b0037322661,1
+np.float64,0x3f376fbc7e6ef,0xc073442939a84643,1
+np.float64,0x3fe7c78d65ef8f1b,0xbfc08157cff411de,1
+np.float64,0xd4f27acba9e50,0xc0733bb8d38daa50,1
+np.float64,0x5198919ea3313,0xc07342633ba7cbea,1
+np.float64,0x7fd09f66f0a13ecd,0x40733ab5310b4385,1
+np.float64,0x3fdfe5531dbfcaa6,0xbfd35b487c7e739f,1
+np.float64,0x3fc4b0fecc2961fe,0xbfe95350c38c1640,1
+np.float64,0x7fd5ae21962b5c42,0x40733c8db78b7250,1
+np.float64,0x3fa4a8fcd42951fa,0xbff64e62fe602b72,1
+np.float64,0x7fc8e0e25831c1c4,0x407338b179b91223,1
+np.float64,0x7fdde1df6f3bc3be,0x40733ec87f9f027e,1
+np.float64,0x3fd8b9ad86b1735b,0xbfda6f385532c41b,1
+np.float64,0x3fd9f20ee933e41e,0xbfd91872fd858597,1
+np.float64,0x7feb35332df66a65,0x407342f2b9c715f0,1
+np.float64,0x7fe783dc7eaf07b8,0x407341ef41873706,1
+np.float64,0x7fceee929f3ddd24,0x40733a34e3c660fd,1
+np.float64,0x985b58d730b6b,0xc0733e0c6cfbb6f8,1
+np.float64,0x3fef4bb55cfe976b,0xbf83cb246c6f2a78,1
+np.float64,0x3fe218014f243003,0xbfcfb20ac683e1f6,1
+np.float64,0x7fe43b9fbea8773e,0x407340e3d5d5d29e,1
+np.float64,0x7fe148c74c62918e,0x40733fcba4367b8b,1
+np.float64,0x3feea4ad083d495a,0xbf93443917f3c991,1
+np.float64,0x8bcf6311179ed,0xc0733ea54d59dd31,1
+np.float64,0xf4b7a2dbe96f5,0xc0733ac175182401,1
+np.float64,0x543338baa8668,0xc073422b59165fe4,1
+np.float64,0x3fdb467317368ce6,0xbfd7b4d515929635,1
+np.float64,0x7fe3bbbc89e77778,0x407340b75cdf3de7,1
+np.float64,0x7fe693377aad266e,0x407341a6af60a0f1,1
+np.float64,0x3fc66210502cc421,0xbfe83bb940610a24,1
+np.float64,0x7fa75638982eac70,0x40732e9da476b816,1
+np.float64,0x3fe0d72a4761ae55,0xbfd1d7c82c479fab,1
+np.float64,0x97dec0dd2fbd8,0xc0733e121e072804,1
+np.float64,0x3fef33ec8c7e67d9,0xbf86701be6be8df1,1
+np.float64,0x7fcfca9b423f9536,0x40733a65a51efb94,1
+np.float64,0x9f2215633e443,0xc0733dbf043de9ed,1
+np.float64,0x2469373e48d28,0xc07347fe9e904b77,1
+np.float64,0x7fecc2e18cb985c2,0x407343557f58dfa2,1
+np.float64,0x3fde4acbfdbc9598,0xbfd4ca559e575e74,1
+np.float64,0x3fd6b11cf1ad623a,0xbfdcd1e17ef36114,1
+np.float64,0x3fc19ec494233d89,0xbfeb8ef228e8826a,1
+np.float64,0x4c89ee389913e,0xc07342d50c904f61,1
+np.float64,0x88c2046f11841,0xc0733ecc91369431,1
+np.float64,0x7fc88c13fd311827,0x40733899a125b392,1
+np.float64,0x3fcebd893a3d7b12,0xbfe3d2f35ab93765,1
+np.float64,0x3feb582a1476b054,0xbfb17ae8ec6a0465,1
+np.float64,0x7fd4369e5da86d3c,0x40733c1118b8cd67,1
+np.float64,0x3fda013fc1340280,0xbfd90831b85e98b2,1
+np.float64,0x7fed33d73fba67ad,0x4073437094ce1bd9,1
+np.float64,0x3fed3191053a6322,0xbfa468cc26a8f685,1
+np.float64,0x3fc04ed51c209daa,0xbfeca24a6f093bca,1
+np.float64,0x3fee4ac8763c9591,0xbf986458abbb90b5,1
+np.float64,0xa2d39dd145a74,0xc0733d9633651fbc,1
+np.float64,0x3fe7d9f86f2fb3f1,0xbfc0565a0b059f1c,1
+np.float64,0x3fe3250144e64a03,0xbfcc8eb2b9ae494b,1
+np.float64,0x7fe2b29507a56529,0x4073405774492075,1
+np.float64,0x7fdcdfcbe2b9bf97,0x40733e8b736b1bd8,1
+np.float64,0x3fc832730f3064e6,0xbfe7267ac9b2e7c3,1
+np.float64,0x3fc7e912e52fd226,0xbfe750dfc0aeae57,1
+np.float64,0x7fc960472f32c08d,0x407338d4b4cb3957,1
+np.float64,0x3fbdf182ea3be306,0xbfedd27150283ffb,1
+np.float64,0x3fd1e9359823d26b,0xbfe1b2ac7fd25f8d,1
+np.float64,0x7fbcf75f6039eebe,0x407334ef13eb16f8,1
+np.float64,0x3fe5a3c910eb4792,0xbfc5bf2f57c5d643,1
+np.float64,0x3fcf4f2a6e3e9e55,0xbfe391b6f065c4b8,1
+np.float64,0x3fee067873fc0cf1,0xbf9c53af0373fc0e,1
+np.float64,0xd3f08b85a7e12,0xc0733bc14357e686,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x3fc8635f6430c6bf,0xbfe70a7dc77749a7,1
+np.float64,0x3fe3ff5c52a7feb9,0xbfca22617c6636d5,1
+np.float64,0x3fbbae91fa375d24,0xbfeee9d4c300543f,1
+np.float64,0xe3f71b59c7ee4,0xc0733b3f99187375,1
+np.float64,0x7fca93d3be3527a6,0x40733926fd48ecd6,1
+np.float64,0x3fcd29f7223a53ee,0xbfe48e3edf32fe57,1
+np.float64,0x7fdc4ef6f8389ded,0x40733e68401cf2a6,1
+np.float64,0xe009bc81c014,0xc0734ea295ee3e5b,1
+np.float64,0x61f56c78c3eae,0xc073411e1dbd7c54,1
+np.float64,0x3fde131928bc2632,0xbfd4fda024f6927c,1
+np.float64,0x3fb21ee530243dca,0xbff266aaf0358129,1
+np.float64,0x7feaac82a4f55904,0x407342cf7809d9f9,1
+np.float64,0x3fe66ab177ecd563,0xbfc3c92d4d522819,1
+np.float64,0xfe9f9c2bfd3f4,0xc0733a7ade3a88a7,1
+np.float64,0x7fd0c5217c218a42,0x40733ac4e4c6dfa5,1
+np.float64,0x430f4ae6861ea,0xc07343c03d8a9442,1
+np.float64,0x494bff2a92981,0xc073432209d2fd16,1
+np.float64,0x3f8860e9d030c1d4,0xbffeca059ebf5e89,1
+np.float64,0x3fe43732dc286e66,0xbfc98800388bad2e,1
+np.float64,0x6443b60ec8877,0xc07340f4bab11827,1
+np.float64,0x3feda9be6d7b537d,0xbfa0dcb9a6914069,1
+np.float64,0x3fc5ceb6772b9d6d,0xbfe89868c881db70,1
+np.float64,0x3fbdf153023be2a6,0xbfedd2878c3b4949,1
+np.float64,0x7fe8f6b8e8f1ed71,0x407342599a30b273,1
+np.float64,0x3fea6fbdb8b4df7b,0xbfb53bf66f71ee96,1
+np.float64,0xc7ac3dbb8f588,0xc0733c2b525b7963,1
+np.float64,0x3fef3a91f77e7524,0xbf85b2bd3adbbe31,1
+np.float64,0x3f887cb97030f973,0xbffec21ccbb5d22a,1
+np.float64,0x8b2f1c9f165e4,0xc0733ead49300951,1
+np.float64,0x2c1cb32058397,0xc07346a951bd8d2b,1
+np.float64,0x3fe057edd620afdc,0xbfd2acf1881b7e99,1
+np.float64,0x7f82e9530025d2a5,0x4073238591dd52ce,1
+np.float64,0x3fe4e03dff69c07c,0xbfc7be96c5c006fc,1
+np.float64,0x52727b4aa4e50,0xc0734250c58ebbc1,1
+np.float64,0x3f99a62160334c43,0xbff99ea3ca09d8f9,1
+np.float64,0x3fd5314b4faa6297,0xbfdeb843daf01e03,1
+np.float64,0x3fefde89e13fbd14,0xbf5d1facb7a1e9de,1
+np.float64,0x7fb460f1a228c1e2,0x4073327d8cbc5f86,1
+np.float64,0xeb93efb3d727e,0xc0733b052a4990e4,1
+np.float64,0x3fe884baecf10976,0xbfbd9ba9cfe23713,1
+np.float64,0x7fefffffffffffff,0x40734413509f79ff,1
+np.float64,0x149dc7c6293ba,0xc0734bf26b1df025,1
+np.float64,0x64188f88c8313,0xc07340f7b8e6f4b5,1
+np.float64,0x3fdfac314abf5863,0xbfd38d3e9dba1b0e,1
+np.float64,0x3fd72052a42e40a5,0xbfdc4af30ee0b245,1
+np.float64,0x7fdd951f743b2a3e,0x40733eb68fafa838,1
+np.float64,0x65a2dd5acb45c,0xc07340dc8ed625e1,1
+np.float64,0x7fe89a79997134f2,0x4073423fbceb1cbe,1
+np.float64,0x3fe70a000d6e1400,0xbfc24381e09d02f7,1
+np.float64,0x3fe2cec160259d83,0xbfcd8b5e92354129,1
+np.float64,0x3feb9ef77a773def,0xbfb05c7b2ee6f388,1
+np.float64,0xe0d66689c1acd,0xc0733b582c779620,1
+np.float64,0x3fee86bd0ffd0d7a,0xbf94f7870502c325,1
+np.float64,0x186afc6230d60,0xc0734ac55fb66d5d,1
+np.float64,0xc0631f4b80c64,0xc0733c6d7149d373,1
+np.float64,0x3fdad1b87735a371,0xbfd82cca73ec663b,1
+np.float64,0x7fe7f6d313efeda5,0x40734210e84576ab,1
+np.float64,0x7fd7b7fce6af6ff9,0x40733d2d92ffdaaf,1
+np.float64,0x3fe6f35a28ade6b4,0xbfc27a4239b540c3,1
+np.float64,0x7fdb0b834eb61706,0x40733e17073a61f3,1
+np.float64,0x82f4661105e8d,0xc0733f19b34adeed,1
+np.float64,0x3fc77230112ee460,0xbfe796a7603c0d16,1
+np.float64,0x8000000000000000,0xfff0000000000000,1
+np.float64,0x7fb8317bc63062f7,0x407333aec761a739,1
+np.float64,0x7fd165609a22cac0,0x40733b061541ff15,1
+np.float64,0x3fed394768fa728f,0xbfa42e1596e1faf6,1
+np.float64,0x7febab693d7756d1,0x40734310a9ac828e,1
+np.float64,0x7fe809a69230134c,0x407342165b9acb69,1
+np.float64,0x3fc091d38f2123a7,0xbfec69a70fc23548,1
+np.float64,0x3fb2a8f5dc2551ec,0xbff2327f2641dd0d,1
+np.float64,0x7fc60b6fe02c16df,0x407337da5adc342c,1
+np.float64,0x3fefa53c3bbf4a78,0xbf73d1be15b73b00,1
+np.float64,0x7fee09c1717c1382,0x407343a2c479e1cb,1
+np.float64,0x8000000000000001,0x7ff8000000000000,1
+np.float64,0x3fede0b2733bc165,0xbf9e848ac2ecf604,1
+np.float64,0x3fee2ac331bc5586,0xbf9a3b699b721c9a,1
+np.float64,0x3fd4db12d829b626,0xbfdf2a413d1e453a,1
+np.float64,0x7fe605230dec0a45,0x4073417a67db06be,1
+np.float64,0x3fe378b2bf26f165,0xbfcb9dbb2b6d6832,1
+np.float64,0xc1d4c1ab83a98,0xc0733c60244cadbf,1
+np.float64,0x3feb15500e762aa0,0xbfb28c071d5efc22,1
+np.float64,0x3fe36225a626c44b,0xbfcbde4259e9047e,1
+np.float64,0x3fe7c586a72f8b0d,0xbfc08614b13ed4b2,1
+np.float64,0x7fb0f2d8cc21e5b1,0x40733135b2c7dd99,1
+np.float64,0x5957f3feb2aff,0xc07341c1df75638c,1
+np.float64,0x3fca4851bd3490a3,0xbfe6005ae5279485,1
+np.float64,0x824217d904843,0xc0733f232fd58f0f,1
+np.float64,0x4f9332269f267,0xc073428fd8e9cb32,1
+np.float64,0x3fea6f087374de11,0xbfb53ef0d03918b2,1
+np.float64,0x3fd9409ab4328135,0xbfd9d9231381e2b8,1
+np.float64,0x3fdba03b00374076,0xbfd759ec94a7ab5b,1
+np.float64,0x3fe0ce3766619c6f,0xbfd1e6912582ccf0,1
+np.float64,0x3fabd45ddc37a8bc,0xbff43c78d3188423,1
+np.float64,0x3fc3cadd592795bb,0xbfe9f1576c9b2c79,1
+np.float64,0x3fe10df049621be1,0xbfd17df2f2c28022,1
+np.float64,0x945b5d1328b6c,0xc0733e3bc06f1e75,1
+np.float64,0x7fc1c3742b2386e7,0x4073365a403d1051,1
+np.float64,0x7fdc957138b92ae1,0x40733e7977717586,1
+np.float64,0x7f943fa1a0287f42,0x407328d01de143f5,1
+np.float64,0x3fec9631c4392c64,0xbfa914b176d8f9d2,1
+np.float64,0x3fd8e7c008b1cf80,0xbfda3b9d9b6da8f4,1
+np.float64,0x7222f9fee4460,0xc073400e371516cc,1
+np.float64,0x3fe890e43eb121c8,0xbfbd64921462e823,1
+np.float64,0x3fcfd7fe2a3faffc,0xbfe3557e2f207800,1
+np.float64,0x3fed5dd1c1babba4,0xbfa318bb20db64e6,1
+np.float64,0x3fe6aa34c66d546a,0xbfc32c8a8991c11e,1
+np.float64,0x8ca79801196,0xc0736522bd5adf6a,1
+np.float64,0x3feb274079364e81,0xbfb2427b24b0ca20,1
+np.float64,0x7fe04927e4a0924f,0x40733f61c96f7f89,1
+np.float64,0x7c05f656f80bf,0xc0733f7a70555b4e,1
+np.float64,0x7fe97819eff2f033,0x4073427d4169b0f8,1
+np.float64,0x9def86e33bdf1,0xc0733dcc740b7175,1
+np.float64,0x7fedd1ef3f3ba3dd,0x40734395ceab8238,1
+np.float64,0x77bed86cef7dc,0xc0733fb8e0e9bf73,1
+np.float64,0x9274b41b24e97,0xc0733e52b16dff71,1
+np.float64,0x8010000000000000,0x7ff8000000000000,1
+np.float64,0x9c977855392ef,0xc0733ddba7d421d9,1
+np.float64,0xfb4560a3f68ac,0xc0733a9271e6a118,1
+np.float64,0xa67d9f394cfb4,0xc0733d6e9d58cc94,1
+np.float64,0x3fbfa766b03f4ecd,0xbfed0cccfecfc900,1
+np.float64,0x3fe177417522ee83,0xbfd0d45803bff01a,1
+np.float64,0x7fe85e077bb0bc0e,0x4073422e957a4aa3,1
+np.float64,0x7feeb0a6883d614c,0x407343c8f6568f7c,1
+np.float64,0xbab82edb75706,0xc0733ca2a2b20094,1
+np.float64,0xfadb44bdf5b69,0xc0733a9561b7ec04,1
+np.float64,0x3fefb9b82b3f7370,0xbf6ea776b2dcc3a9,1
+np.float64,0x7fe080ba8a610174,0x40733f795779b220,1
+np.float64,0x3f87faa1c02ff544,0xbffee76acafc92b7,1
+np.float64,0x7fed474108fa8e81,0x4073437531d4313e,1
+np.float64,0x3fdb7b229336f645,0xbfd77f583a4a067f,1
+np.float64,0x256dbf0c4adb9,0xc07347cd94e6fa81,1
+np.float64,0x3fd034ae25a0695c,0xbfe3169c15decdac,1
+np.float64,0x3a72177274e44,0xc07344b4cf7d68cd,1
+np.float64,0x7fa2522d5c24a45a,0x40732cef2f793470,1
+np.float64,0x3fb052bdde20a57c,0xbff3207fd413c848,1
+np.float64,0x3fdccfecbbb99fd9,0xbfd62ec04a1a687a,1
+np.float64,0x3fd403ac53280759,0xbfe027a31df2c8cc,1
+np.float64,0x3fab708e4036e11d,0xbff45591df4f2e8b,1
+np.float64,0x7fcfc001993f8002,0x40733a63539acf9d,1
+np.float64,0x3fd2b295dfa5652c,0xbfe119c1b476c536,1
+np.float64,0x7fe8061262b00c24,0x4073421552ae4538,1
+np.float64,0xffefffffffffffff,0x7ff8000000000000,1
+np.float64,0x7fed52093ffaa411,0x40734377c072a7e8,1
+np.float64,0xf3df902fe7bf2,0xc0733ac79a75ff7a,1
+np.float64,0x7fe13d382e227a6f,0x40733fc6fd0486bd,1
+np.float64,0x3621d5086c43b,0xc073453d31effbcd,1
+np.float64,0x3ff0000000000000,0x0,1
+np.float64,0x3fdaffea27b5ffd4,0xbfd7fd139dc1c2c5,1
+np.float64,0x7fea6536dc34ca6d,0x407342bccc564fdd,1
+np.float64,0x7fd478f00c28f1df,0x40733c27c0072fde,1
+np.float64,0x7fa72ef0502e5de0,0x40732e91e83db75c,1
+np.float64,0x7fd302970626052d,0x40733ba3ec6775f6,1
+np.float64,0x7fbb57ab0036af55,0x407334887348e613,1
+np.float64,0x3fda0ff722b41fee,0xbfd8f87b77930330,1
+np.float64,0x1e983ce23d309,0xc073493438f57e61,1
+np.float64,0x7fc90de97c321bd2,0x407338be01ffd4bd,1
+np.float64,0x7fe074b09c20e960,0x40733f7443f0dbe1,1
+np.float64,0x3fed5dec9fbabbd9,0xbfa317efb1fe8a95,1
+np.float64,0x7fdb877632b70eeb,0x40733e3697c88ba8,1
+np.float64,0x7fe4fb0067e9f600,0x40734124604b99e8,1
+np.float64,0x7fd447dc96288fb8,0x40733c1703ab2cce,1
+np.float64,0x3feb2d1e64f65a3d,0xbfb22a781df61c05,1
+np.float64,0xb6c8e6676d91d,0xc0733cc8859a0b91,1
+np.float64,0x3fdc3c2418387848,0xbfd6bec3a3c3cdb5,1
+np.float64,0x3fdecb9ccdbd973a,0xbfd4551c05721a8e,1
+np.float64,0x3feb1100e7762202,0xbfb29db911fe6768,1
+np.float64,0x3fe0444bc2a08898,0xbfd2ce69582e78c1,1
+np.float64,0x7fda403218b48063,0x40733de201d8340c,1
+np.float64,0x3fdc70421238e084,0xbfd68ba4bd48322b,1
+np.float64,0x3fe06e747c60dce9,0xbfd286bcac34a981,1
+np.float64,0x7fc1931d9623263a,0x407336473da54de4,1
+np.float64,0x229914da45323,0xc073485979ff141c,1
+np.float64,0x3fe142f92da285f2,0xbfd1280909992cb6,1
+np.float64,0xf1d02fa9e3a06,0xc0733ad6b19d71a0,1
+np.float64,0x3fb1fe9b0023fd36,0xbff27317d8252c16,1
+np.float64,0x3fa544b9242a8972,0xbff61ac38569bcfc,1
+np.float64,0x3feeb129d4fd6254,0xbf928f23ad20c1ee,1
+np.float64,0xa2510b7f44a22,0xc0733d9bc81ea0a1,1
+np.float64,0x3fca75694d34ead3,0xbfe5e8975b3646c2,1
+np.float64,0x7fece10621b9c20b,0x4073435cc3dd9a1b,1
+np.float64,0x7fe98a57d3b314af,0x4073428239b6a135,1
+np.float64,0x3fe259c62a64b38c,0xbfcee96682a0f355,1
+np.float64,0x3feaaa9b9d755537,0xbfb445779f3359af,1
+np.float64,0xdaadecfdb55be,0xc0733b899338432a,1
+np.float64,0x3fed00eae4fa01d6,0xbfa5dc8d77be5991,1
+np.float64,0x7fcc96c773392d8e,0x407339a8c5cd786e,1
+np.float64,0x3fef7b8b203ef716,0xbf7cff655ecb6424,1
+np.float64,0x7fd4008113a80101,0x40733bfe6552acb7,1
+np.float64,0x7fe99ff035b33fdf,0x407342881753ee2e,1
+np.float64,0x3ee031e87dc07,0xc0734432d736e492,1
+np.float64,0x3fddfe390f3bfc72,0xbfd510f1d9ec3e36,1
+np.float64,0x3fd9ddce74b3bb9d,0xbfd92e2d75a061bb,1
+np.float64,0x7fe5f742edebee85,0x40734176058e3a77,1
+np.float64,0x3fdb04185b360831,0xbfd7f8c63aa5e1c4,1
+np.float64,0xea2b0f43d4562,0xc0733b0fd77c8118,1
+np.float64,0x7fc3f4973527e92d,0x407337293bbb22c4,1
+np.float64,0x3fb9adfb38335bf6,0xbfeff4f3ea85821a,1
+np.float64,0x87fb98750ff73,0xc0733ed6ad83c269,1
+np.float64,0x3fe005721a200ae4,0xbfd33a9f1ebfb0ac,1
+np.float64,0xd9e04fe7b3c0a,0xc0733b901ee257f3,1
+np.float64,0x2c39102658723,0xc07346a4db63bf55,1
+np.float64,0x3f7dc28e003b851c,0xc0011c1d1233d948,1
+np.float64,0x3430fd3868620,0xc073457e24e0b70d,1
+np.float64,0xbff0000000000000,0x7ff8000000000000,1
+np.float64,0x3fd23e45e0247c8c,0xbfe17146bcf87b57,1
+np.float64,0x6599df3ecb33d,0xc07340dd2c41644c,1
+np.float64,0x3fdf074f31be0e9e,0xbfd41f6e9dbb68a5,1
+np.float64,0x7fdd6233f3bac467,0x40733eaa8f674b72,1
+np.float64,0x7fe03e8481607d08,0x40733f5d3df3b087,1
+np.float64,0x3fcc3b79f13876f4,0xbfe501bf3b379b77,1
+np.float64,0xe5d97ae3cbb30,0xc0733b30f47cbd12,1
+np.float64,0x8acbc4a115979,0xc0733eb240a4d2c6,1
+np.float64,0x3fedbdbc48bb7b79,0xbfa0470fd70c4359,1
+np.float64,0x3fde1611103c2c22,0xbfd4fae1fa8e7e5e,1
+np.float64,0x3fe09478bd2128f1,0xbfd246b7e85711dc,1
+np.float64,0x3fd6dfe8f3adbfd2,0xbfdc98ca2f32c1ad,1
+np.float64,0x72ccf274e599f,0xc0734003e5b0da63,1
+np.float64,0xe27c7265c4f8f,0xc0733b4b2d808566,1
+np.float64,0x7fee3161703c62c2,0x407343abe90f5649,1
+np.float64,0xf54fb5c1eaa0,0xc0734e01384fcf78,1
+np.float64,0xcde5924d9bcb3,0xc0733bf4b83c66c2,1
+np.float64,0x3fc46fdbe528dfb8,0xbfe97f55ef5e9683,1
+np.float64,0x7fe513528a2a26a4,0x4073412c69baceca,1
+np.float64,0x3fd29eca4aa53d95,0xbfe128801cd33ed0,1
+np.float64,0x7febb21718b7642d,0x4073431256def857,1
+np.float64,0x3fcab536c0356a6e,0xbfe5c73c59f41578,1
+np.float64,0x7fc7e9f0d82fd3e1,0x4073386b213e5dfe,1
+np.float64,0xb5b121276b624,0xc0733cd33083941c,1
+np.float64,0x7e0dd9bcfc1bc,0xc0733f5d8bf35050,1
+np.float64,0x3fd1c75106238ea2,0xbfe1cd11cccda0f4,1
+np.float64,0x9f060e673e0c2,0xc0733dc03da71909,1
+np.float64,0x7fd915a2f3322b45,0x40733d912af07189,1
+np.float64,0x3fd8cbae4431975d,0xbfda5b02ca661139,1
+np.float64,0x3fde8b411f3d1682,0xbfd48f6f710a53b6,1
+np.float64,0x3fc17a780622f4f0,0xbfebabb10c55255f,1
+np.float64,0x3fde5cbe5f3cb97d,0xbfd4b9e2e0101fb1,1
+np.float64,0x7fd859036530b206,0x40733d5c2252ff81,1
+np.float64,0xb0f5040f61ea1,0xc0733d02292f527b,1
+np.float64,0x3fde5c49ae3cb893,0xbfd4ba4db3ce2cf3,1
+np.float64,0x3fecc4518df988a3,0xbfa7af0bfc98bc65,1
+np.float64,0x3feffee03cbffdc0,0xbf0f3ede6ca7d695,1
+np.float64,0xbc5eac9b78bd6,0xc0733c92fb51c8ae,1
+np.float64,0x3fe2bb4ef765769e,0xbfcdc4f70a65dadc,1
+np.float64,0x5089443ca1129,0xc073427a7d0cde4a,1
+np.float64,0x3fd0d6e29121adc5,0xbfe28e28ece1db86,1
+np.float64,0xbe171e397c2e4,0xc0733c82cede5d02,1
+np.float64,0x4ede27be9dbc6,0xc073429fba1a4af1,1
+np.float64,0x3fe2aff3af655fe7,0xbfcde6b52a8ed3c1,1
+np.float64,0x7fd85ca295b0b944,0x40733d5d2adcccf1,1
+np.float64,0x24919bba49234,0xc07347f6ed704a6f,1
+np.float64,0x7fd74bc1eeae9783,0x40733d0d94a89011,1
+np.float64,0x3fc1cd12cb239a26,0xbfeb6a9c25c2a11d,1
+np.float64,0x3fdafbc0ac35f781,0xbfd8015ccf1f1b51,1
+np.float64,0x3fee01327c3c0265,0xbf9ca1d0d762dc18,1
+np.float64,0x3fe65bd7702cb7af,0xbfc3ee0de5c36b8d,1
+np.float64,0x7349c82ee693a,0xc0733ffc5b6eccf2,1
+np.float64,0x3fdc5906f738b20e,0xbfd6a26288eb5933,1
+np.float64,0x1,0xc07434e6420f4374,1
+np.float64,0x3fb966128a32cc25,0xbff00e0aa7273838,1
+np.float64,0x3fd501ff9a2a03ff,0xbfdef69133482121,1
+np.float64,0x194d4f3c329ab,0xc0734a861b44cfbe,1
+np.float64,0x3fec5d34f8f8ba6a,0xbfaad1b31510e70b,1
+np.float64,0x1635e4c22c6be,0xc0734b6dec650943,1
+np.float64,0x3fead2f8edb5a5f2,0xbfb39dac30a962cf,1
+np.float64,0x3f7dfa4ce03bf49a,0xc00115a112141aa7,1
+np.float64,0x3fef6827223ed04e,0xbf80a42c9edebfe9,1
+np.float64,0xe771f303cee3f,0xc0733b24a6269fe4,1
+np.float64,0x1160ccc622c1b,0xc0734d22604eacb9,1
+np.float64,0x3fc485cd08290b9a,0xbfe970723008c8c9,1
+np.float64,0x7fef99c518bf3389,0x407343fcf9ed202f,1
+np.float64,0x7fd8c1447a318288,0x40733d79a440b44d,1
+np.float64,0xaf219f955e434,0xc0733d149c13f440,1
+np.float64,0xcf45f6239e8bf,0xc0733be8ddda045d,1
+np.float64,0x7599394aeb328,0xc0733fd90fdbb0ea,1
+np.float64,0xc7f6390f8fec7,0xc0733c28bfbc66a3,1
+np.float64,0x3fd39ae96c2735d3,0xbfe0712274a8742b,1
+np.float64,0xa4d6c18f49ad8,0xc0733d805a0528f7,1
+np.float64,0x7fd9ea78d7b3d4f1,0x40733dcb2b74802a,1
+np.float64,0x3fecd251cb39a4a4,0xbfa742ed41d4ae57,1
+np.float64,0x7fed7a07cd7af40f,0x407343813476027e,1
+np.float64,0x3fd328ae7f26515d,0xbfe0c30b56a83c64,1
+np.float64,0x7fc937ff7a326ffe,0x407338c9a45b9140,1
+np.float64,0x3fcf1d31143e3a62,0xbfe3a7f760fbd6a8,1
+np.float64,0x7fb911dcbc3223b8,0x407333ee158cccc7,1
+np.float64,0x3fd352fc83a6a5f9,0xbfe0a47d2f74d283,1
+np.float64,0x7fd310753fa620e9,0x40733ba8fc4300dd,1
+np.float64,0x3febd64b4577ac97,0xbfaefd4a79f95c4b,1
+np.float64,0x6a6961a4d4d2d,0xc073408ae1687943,1
+np.float64,0x3fe4ba73d16974e8,0xbfc8239341b9e457,1
+np.float64,0x3fed8e7cac3b1cf9,0xbfa1a96a0cc5fcdc,1
+np.float64,0x7fd505ec04aa0bd7,0x40733c56f86e3531,1
+np.float64,0x3fdf166e9abe2cdd,0xbfd411e5f8569d70,1
+np.float64,0x7fe1bc6434e378c7,0x40733ff9861bdabb,1
+np.float64,0x3fd3b0b175a76163,0xbfe061ba5703f3c8,1
+np.float64,0x7fed75d7ffbaebaf,0x4073438037ba6f19,1
+np.float64,0x5a9e109cb53c3,0xc07341a8b04819c8,1
+np.float64,0x3fe14786b4e28f0d,0xbfd120b541bb880e,1
+np.float64,0x3fed4948573a9291,0xbfa3b471ff91614b,1
+np.float64,0x66aac5d8cd559,0xc07340ca9b18af46,1
+np.float64,0x3fdb48efd23691e0,0xbfd7b24c5694838b,1
+np.float64,0x7fe6da7d1eadb4f9,0x407341bc7d1fae43,1
+np.float64,0x7feb702cf336e059,0x40734301b96cc3c0,1
+np.float64,0x3fd1e60987a3cc13,0xbfe1b522cfcc3d0e,1
+np.float64,0x3feca57f50794aff,0xbfa89dc90625d39c,1
+np.float64,0x7fdc46dc56b88db8,0x40733e664294a0f9,1
+np.float64,0x8dc8fd811b920,0xc0733e8c5955df06,1
+np.float64,0xf01634abe02c7,0xc0733ae370a76d0c,1
+np.float64,0x3fc6f8d8ab2df1b1,0xbfe7df5093829464,1
+np.float64,0xda3d7597b47af,0xc0733b8d2702727a,1
+np.float64,0x7feefd53227dfaa5,0x407343da3d04db28,1
+np.float64,0x3fe2fbca3525f794,0xbfcd06e134417c08,1
+np.float64,0x7fd36d3ce226da79,0x40733bca7c322df1,1
+np.float64,0x7fec37e00b786fbf,0x4073433397b48a5b,1
+np.float64,0x3fbf133f163e267e,0xbfed4e72f1362a77,1
+np.float64,0x3fc11efbb9223df7,0xbfebf53002a561fe,1
+np.float64,0x3fc89c0e5431381d,0xbfe6ea562364bf81,1
+np.float64,0x3f9cd45da839a8bb,0xbff8ceb14669ee4b,1
+np.float64,0x23dc8fa647b93,0xc0734819aaa9b0ee,1
+np.float64,0x3fe829110d305222,0xbfbf3e60c45e2399,1
+np.float64,0x7fed8144e57b0289,0x40734382e917a02a,1
+np.float64,0x7fe033fbf7a067f7,0x40733f58bb00b20f,1
+np.float64,0xe3807f45c7010,0xc0733b43379415d1,1
+np.float64,0x3fd708fb342e11f6,0xbfdc670ef9793782,1
+np.float64,0x3fe88c924b311925,0xbfbd78210d9e7164,1
+np.float64,0x3fe0a2a7c7614550,0xbfd22efaf0472c4a,1
+np.float64,0x7fe3a37501a746e9,0x407340aecaeade41,1
+np.float64,0x3fd05077ec20a0f0,0xbfe2fedbf07a5302,1
+np.float64,0x7fd33bf61da677eb,0x40733bb8c58912aa,1
+np.float64,0x3feb29bdae76537b,0xbfb2384a8f61b5f9,1
+np.float64,0x3fec0fc14ff81f83,0xbfad3423e7ade174,1
+np.float64,0x3fd0f8b1a1a1f163,0xbfe2725dd4ccea8b,1
+np.float64,0x3fe382d26a6705a5,0xbfcb80dba4218bdf,1
+np.float64,0x3fa873f2cc30e7e6,0xbff522911cb34279,1
+np.float64,0x7fed7fd7377affad,0x4073438292f6829b,1
+np.float64,0x3feeacd8067d59b0,0xbf92cdbeda94b35e,1
+np.float64,0x7fe464d62228c9ab,0x407340f1eee19aa9,1
+np.float64,0xe997648bd32ed,0xc0733b143aa0fad3,1
+np.float64,0x7fea4869f13490d3,0x407342b5333b54f7,1
+np.float64,0x935b871926b71,0xc0733e47c6683319,1
+np.float64,0x28a9d0c05155,0xc0735a7e3532af83,1
+np.float64,0x79026548f204d,0xc0733fa6339ffa2f,1
+np.float64,0x3fdb1daaabb63b55,0xbfd7de839c240ace,1
+np.float64,0x3fc0db73b421b6e7,0xbfec2c6e36c4f416,1
+np.float64,0xb8b50ac1716b,0xc0734ff9fc60ebce,1
+np.float64,0x7fdf13e0c6be27c1,0x40733f0e44f69437,1
+np.float64,0x3fcd0cb97b3a1973,0xbfe49c34ff531273,1
+np.float64,0x3fcbac034b375807,0xbfe54913d73f180d,1
+np.float64,0x3fe091d2a2e123a5,0xbfd24b290a9218de,1
+np.float64,0xede43627dbc87,0xc0733af3c7c7f716,1
+np.float64,0x7fc037e7ed206fcf,0x407335b85fb0fedb,1
+np.float64,0x3fce7ae4c63cf5ca,0xbfe3f1350fe03f28,1
+np.float64,0x7fcdd862263bb0c3,0x407339f5458bb20e,1
+np.float64,0x4d7adf709af5d,0xc07342bf4edfadb2,1
+np.float64,0xdc6c03f3b8d81,0xc0733b7b74d6a635,1
+np.float64,0x3fe72ae0a4ee55c1,0xbfc1f4665608b21f,1
+np.float64,0xcd62f19d9ac5e,0xc0733bf92235e4d8,1
+np.float64,0xe3a7b8fdc74f7,0xc0733b4204f8e166,1
+np.float64,0x3fdafd35adb5fa6b,0xbfd7ffdca0753b36,1
+np.float64,0x3fa023e8702047d1,0xbff8059150ea1464,1
+np.float64,0x99ff336933fe7,0xc0733df961197517,1
+np.float64,0x7feeb365b9bd66ca,0x407343c995864091,1
+np.float64,0x7fe449b49f689368,0x407340e8aa3369e3,1
+np.float64,0x7faf5843043eb085,0x407330aa700136ca,1
+np.float64,0x3fd47b2922a8f652,0xbfdfab3de86f09ee,1
+np.float64,0x7fd9fc3248b3f864,0x40733dcfea6f9b3e,1
+np.float64,0xe20b0d8dc4162,0xc0733b4ea8fe7b3f,1
+np.float64,0x7feff8e0e23ff1c1,0x40734411c490ed70,1
+np.float64,0x7fa58382d02b0705,0x40732e0cf28e14fe,1
+np.float64,0xb8ad9a1b715b4,0xc0733cb630b8f2d4,1
+np.float64,0xe90abcf1d2158,0xc0733b186b04eeee,1
+np.float64,0x7fd6aa6f32ad54dd,0x40733cdccc636604,1
+np.float64,0x3fd8f84eedb1f09e,0xbfda292909a5298a,1
+np.float64,0x7fecd6b1d9f9ad63,0x4073435a472b05b5,1
+np.float64,0x3fd9f47604b3e8ec,0xbfd915e028cbf4a6,1
+np.float64,0x3fd20d9398241b27,0xbfe19691363dd508,1
+np.float64,0x3fe5ed09bbabda13,0xbfc5043dfc9c8081,1
+np.float64,0x7fbe5265363ca4c9,0x407335406f8e4fac,1
+np.float64,0xac2878af5850f,0xc0733d3311be9786,1
+np.float64,0xac2074555840f,0xc0733d3364970018,1
+np.float64,0x3fcd49b96b3a9373,0xbfe47f24c8181d9c,1
+np.float64,0x3fd10caca6a21959,0xbfe2620ae5594f9a,1
+np.float64,0xec5b87e9d8b71,0xc0733aff499e72ca,1
+np.float64,0x9d5e9fad3abd4,0xc0733dd2d70eeb4a,1
+np.float64,0x7fe3d3a24227a744,0x407340bfc2072fdb,1
+np.float64,0x3fc5f7a77c2bef4f,0xbfe87e69d502d784,1
+np.float64,0x33161a66662c4,0xc07345a436308244,1
+np.float64,0xa27acdc744f5a,0xc0733d99feb3d8ea,1
+np.float64,0x3fe2d9301565b260,0xbfcd6c914e204437,1
+np.float64,0x7fd5d111e12ba223,0x40733c98e14a6fd0,1
+np.float64,0x6c3387bed8672,0xc073406d3648171a,1
+np.float64,0x24d89fe849b15,0xc07347e97bec008c,1
+np.float64,0x3fefd763677faec7,0xbf61ae69caa9cad9,1
+np.float64,0x7fe0a4684ba148d0,0x40733f884d32c464,1
+np.float64,0x3fd5c3c939ab8792,0xbfddfaaefc1c7fca,1
+np.float64,0x3fec9b87a6b9370f,0xbfa8eb34efcc6b9b,1
+np.float64,0x3feb062431f60c48,0xbfb2ca6036698877,1
+np.float64,0x3fef97f6633f2fed,0xbf76bc742860a340,1
+np.float64,0x74477490e88ef,0xc0733fed220986bc,1
+np.float64,0x3fe4bea67ce97d4d,0xbfc818525292b0f6,1
+np.float64,0x3fc6add3a92d5ba7,0xbfe80cfdc9a90bda,1
+np.float64,0x847c9ce308f94,0xc0733f05026f5965,1
+np.float64,0x7fea53fd2eb4a7f9,0x407342b841fc4723,1
+np.float64,0x3fc55a16fc2ab42e,0xbfe8e3849130da34,1
+np.float64,0x3fbdf7d07c3befa1,0xbfedcf84b9c6c161,1
+np.float64,0x3fe5fb25aa6bf64b,0xbfc4e083ff96b116,1
+np.float64,0x61c776a8c38ef,0xc0734121611d84d7,1
+np.float64,0x3fec413164f88263,0xbfabadbd05131546,1
+np.float64,0x9bf06fe137e0e,0xc0733de315469ee0,1
+np.float64,0x2075eefc40ebf,0xc07348cae84de924,1
+np.float64,0x3fdd42e0143a85c0,0xbfd5c0b6f60b3cea,1
+np.float64,0xdbb1ab45b7636,0xc0733b8157329daf,1
+np.float64,0x3feac6d56bf58dab,0xbfb3d00771b28621,1
+np.float64,0x7fb2dc825025b904,0x407331f3e950751a,1
+np.float64,0x3fecea6efd79d4de,0xbfa689309cc0e3fe,1
+np.float64,0x3fd83abec7b0757e,0xbfdaff5c674a9c59,1
+np.float64,0x3fd396f7c0272df0,0xbfe073ee75c414ba,1
+np.float64,0x3fe10036c162006e,0xbfd1945a38342ae1,1
+np.float64,0x3fd5bbded52b77be,0xbfde04cca40d4156,1
+np.float64,0x3fe870945ab0e129,0xbfbdf72f0e6206fa,1
+np.float64,0x3fef72fddcbee5fc,0xbf7ee2dba88b1bad,1
+np.float64,0x4e111aa09c224,0xc07342b1e2b29643,1
+np.float64,0x3fd926d8b5b24db1,0xbfd9f58b78d6b061,1
+np.float64,0x3fc55679172aacf2,0xbfe8e5df687842e2,1
+np.float64,0x7f5f1749803e2e92,0x40731886e16cfc4d,1
+np.float64,0x7fea082b53b41056,0x407342a42227700e,1
+np.float64,0x3fece1d1d039c3a4,0xbfa6cb780988a469,1
+np.float64,0x3b2721d8764e5,0xc073449f6a5a4832,1
+np.float64,0x365cb7006cba,0xc0735879ba5f0b6e,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x7fe606ce92ac0d9c,0x4073417aeebe97e8,1
+np.float64,0x3fe237b544a46f6b,0xbfcf50f8f76d7df9,1
+np.float64,0x3fe7265e5eee4cbd,0xbfc1ff39089ec8d0,1
+np.float64,0x7fe2bb3c5ea57678,0x4073405aaad81cf2,1
+np.float64,0x3fd811df84b023bf,0xbfdb2e670ea8d8de,1
+np.float64,0x3f6a0efd00341dfa,0xc003fac1ae831241,1
+np.float64,0x3fd0d214afa1a429,0xbfe2922080a91c72,1
+np.float64,0x3feca6a350b94d47,0xbfa894eea3a96809,1
+np.float64,0x7fe23e5c76247cb8,0x4073402bbaaf71c7,1
+np.float64,0x3fe739a1fdae7344,0xbfc1d109f66efb5d,1
+np.float64,0x3fdf4b8e283e971c,0xbfd3e28f46169cc5,1
+np.float64,0x38f2535271e4b,0xc07344e3085219fa,1
+np.float64,0x7fd263a0f9a4c741,0x40733b68d945dae0,1
+np.float64,0x7fdd941863bb2830,0x40733eb651e3dca9,1
+np.float64,0xace7279159ce5,0xc0733d2b63b5947e,1
+np.float64,0x7fe34670b2268ce0,0x4073408d92770cb5,1
+np.float64,0x7fd11fa6dfa23f4d,0x40733aea02e76ea3,1
+np.float64,0x3fe6d9cbca6db398,0xbfc2b84b5c8c7eab,1
+np.float64,0x3fd69a0274ad3405,0xbfdcee3c7e52c463,1
+np.float64,0x3feb5af671f6b5ed,0xbfb16f88d739477f,1
+np.float64,0x3feea400163d4800,0xbf934e071c64fd0b,1
+np.float64,0x3fefd6bcf17fad7a,0xbf61f711c392b119,1
+np.float64,0x3fe148d43da291a8,0xbfd11e9cd3f91cd3,1
+np.float64,0x7fedf1308b7be260,0x4073439d135656da,1
+np.float64,0x3fe614c99c6c2993,0xbfc49fd1984dfd6d,1
+np.float64,0xd6e8d4e5add1b,0xc0733ba88256026e,1
+np.float64,0xfff0000000000000,0x7ff8000000000000,1
+np.float64,0x3fb530b5562a616b,0xbff1504bcc5c8f73,1
+np.float64,0xb7da68396fb4d,0xc0733cbe2790f52e,1
+np.float64,0x7fad78e26c3af1c4,0x4073303cdbfb0a15,1
+np.float64,0x7fee5698447cad30,0x407343b474573a8b,1
+np.float64,0x3fd488325c291065,0xbfdf999296d901e7,1
+np.float64,0x2669283a4cd26,0xc073479f823109a4,1
+np.float64,0x7fef3b090afe7611,0x407343e805a3b264,1
+np.float64,0x7fe8b96ae0f172d5,0x4073424874a342ab,1
+np.float64,0x7fef409f56fe813e,0x407343e943c3cd44,1
+np.float64,0x3fed28073dfa500e,0xbfa4b17e4cd31a3a,1
+np.float64,0x7f87ecc4802fd988,0x40732527e027b24b,1
+np.float64,0x3fdda24da0bb449b,0xbfd566a43ac035af,1
+np.float64,0x179fc9e62f3fa,0xc0734b0028c80fc1,1
+np.float64,0x3fef85b0927f0b61,0xbf7ac27565d5ab4f,1
+np.float64,0x5631501aac62b,0xc0734201be12c5d4,1
+np.float64,0x3fd782e424af05c8,0xbfdbd57544f8a7c3,1
+np.float64,0x3fe603a9a6ac0753,0xbfc4caff04dc3caf,1
+np.float64,0x7fbd5225163aa449,0x40733504b88f0a56,1
+np.float64,0x3fecd27506b9a4ea,0xbfa741dd70e6b08c,1
+np.float64,0x9c99603b3932c,0xc0733ddb922dc5db,1
+np.float64,0x3fbeb57f1a3d6afe,0xbfed789ff217aa08,1
+np.float64,0x3fef9c0f85bf381f,0xbf75d5c3d6cb281a,1
+np.float64,0x3fde4afb613c95f7,0xbfd4ca2a231c9005,1
+np.float64,0x396233d472c47,0xc07344d56ee70631,1
+np.float64,0x3fb31ea1c6263d44,0xbff207356152138d,1
+np.float64,0x3fe50bdf78aa17bf,0xbfc74ae0cbffb735,1
+np.float64,0xef74c701dee99,0xc0733ae81e4bb443,1
+np.float64,0x9a3e13a1347c3,0xc0733df68b60afc7,1
+np.float64,0x33ba4f886774b,0xc073458e03f0c13e,1
+np.float64,0x3fe8ba0e9931741d,0xbfbcaadf974e8f64,1
+np.float64,0x3fe090a4cd61214a,0xbfd24d236cf365d6,1
+np.float64,0x7fd87d992930fb31,0x40733d668b73b820,1
+np.float64,0x3fe6422b296c8456,0xbfc42e070b695d01,1
+np.float64,0x3febe9334677d267,0xbfae667864606cfe,1
+np.float64,0x771a3ce4ee348,0xc0733fc274d12c97,1
+np.float64,0x3fe0413542e0826b,0xbfd2d3b08fb5b8a6,1
+np.float64,0x3fd00870ea2010e2,0xbfe33cc04cbd42e0,1
+np.float64,0x3fe74fb817ae9f70,0xbfc19c45dbf919e1,1
+np.float64,0x40382fa08071,0xc07357514ced5577,1
+np.float64,0xa14968474292d,0xc0733da71a990f3a,1
+np.float64,0x5487c740a90fa,0xc0734224622d5801,1
+np.float64,0x3fed7d8d14fafb1a,0xbfa228f7ecc2ac03,1
+np.float64,0x3fe39bb485e73769,0xbfcb3a235a722960,1
+np.float64,0x3fd01090b2202121,0xbfe335b752589a22,1
+np.float64,0x3fd21a3e7da4347d,0xbfe18cd435a7c582,1
+np.float64,0x3fe7fa855a2ff50b,0xbfc00ab0665709fe,1
+np.float64,0x3fedc0d4577b81a9,0xbfa02fef3ff553fc,1
+np.float64,0x3fe99d4906333a92,0xbfb8bf18220e5e8e,1
+np.float64,0x3fd944ee3c3289dc,0xbfd9d46071675e73,1
+np.float64,0x3fe3ed8d52e7db1b,0xbfca53f8d4aef484,1
+np.float64,0x7fe748623a6e90c3,0x407341dd97c9dd79,1
+np.float64,0x3fea1b4b98343697,0xbfb6a1560a56927f,1
+np.float64,0xe1215715c242b,0xc0733b55dbf1f0a8,1
+np.float64,0x3fd0d5bccca1ab7a,0xbfe28f1b66d7a470,1
+np.float64,0x881a962710353,0xc0733ed51848a30d,1
+np.float64,0x3fcf022afe3e0456,0xbfe3b40eabf24501,1
+np.float64,0x3fdf1ac6bbbe358d,0xbfd40e03e888288d,1
+np.float64,0x3fa51a5eac2a34bd,0xbff628a7c34d51b3,1
+np.float64,0x3fdbaf408d375e81,0xbfd74ad39d97c92a,1
+np.float64,0x3fcd2418ea3a4832,0xbfe4910b009d8b11,1
+np.float64,0x3fc7b3062a2f660c,0xbfe7706dc47993e1,1
+np.float64,0x7fb8232218304643,0x407333aaa7041a9f,1
+np.float64,0x7fd5f186362be30b,0x40733ca32fdf9cc6,1
+np.float64,0x3fe57ef1d6aafde4,0xbfc61e23d00210c7,1
+np.float64,0x7c6830baf8d07,0xc0733f74f19e9dad,1
+np.float64,0xcacbfd5595980,0xc0733c0fb49edca7,1
+np.float64,0x3fdfdeac873fbd59,0xbfd36114c56bed03,1
+np.float64,0x3fd31f0889263e11,0xbfe0ca0cc1250169,1
+np.float64,0x3fe839fbe47073f8,0xbfbef0a2abc3d63f,1
+np.float64,0x3fc36af57e26d5eb,0xbfea3553f38770b7,1
+np.float64,0x3fe73dbc44ee7b79,0xbfc1c738f8fa6b3d,1
+np.float64,0x3fd3760e4da6ec1d,0xbfe08b5b609d11e5,1
+np.float64,0x3fee1cfa297c39f4,0xbf9b06d081bc9d5b,1
+np.float64,0xdfb01561bf61,0xc0734ea55e559888,1
+np.float64,0x687bd01cd0f7b,0xc07340ab67fe1816,1
+np.float64,0x3fefc88f4cbf911f,0xbf6828c359cf19dc,1
+np.float64,0x8ad34adb15a6a,0xc0733eb1e03811e5,1
+np.float64,0x3fe2b49c12e56938,0xbfcdd8dbdbc0ce59,1
+np.float64,0x6e05037adc0a1,0xc073404f91261635,1
+np.float64,0x3fe2fd737fe5fae7,0xbfcd020407ef4d78,1
+np.float64,0x3fd0f3c0dc21e782,0xbfe2766a1ab02eae,1
+np.float64,0x28564d9850acb,0xc073474875f87c5e,1
+np.float64,0x3fe4758015a8eb00,0xbfc8ddb45134a1bd,1
+np.float64,0x7fe7f19306efe325,0x4073420f626141a7,1
+np.float64,0x7fd27f34c0a4fe69,0x40733b733d2a5b50,1
+np.float64,0x92c2366325847,0xc0733e4f04f8195a,1
+np.float64,0x3fc21f8441243f09,0xbfeb2ad23bc1ab0b,1
+np.float64,0x3fc721d3e42e43a8,0xbfe7c69bb47b40c2,1
+np.float64,0x3fe2f11a1625e234,0xbfcd26363b9c36c3,1
+np.float64,0x3fdcb585acb96b0b,0xbfd648446237cb55,1
+np.float64,0x3fd4060bf2280c18,0xbfe025fd4c8a658b,1
+np.float64,0x7fb8ae2750315c4e,0x407333d23b025d08,1
+np.float64,0x3fe3a03119a74062,0xbfcb2d6c91b38552,1
+np.float64,0x7fdd2af92bba55f1,0x40733e9d737e16e6,1
+np.float64,0x3fe50b05862a160b,0xbfc74d20815fe36b,1
+np.float64,0x164409f82c882,0xc0734b6980e19c03,1
+np.float64,0x3fe4093712a8126e,0xbfca070367fda5e3,1
+np.float64,0xae3049935c609,0xc0733d1e3608797b,1
+np.float64,0x3fd71df4b4ae3be9,0xbfdc4dcb7637600d,1
+np.float64,0x7fca01e8023403cf,0x407339006c521c49,1
+np.float64,0x3fb0c5c43e218b88,0xbff2f03211c63f25,1
+np.float64,0x3fee757af83ceaf6,0xbf95f33a6e56b454,1
+np.float64,0x3f865f1f402cbe3f,0xbfff62d9c9072bd7,1
+np.float64,0x89864e95130ca,0xc0733ec29f1e32c6,1
+np.float64,0x3fe51482bcea2905,0xbfc73414ddc8f1b7,1
+np.float64,0x7fd802f8fa3005f1,0x40733d43684e460a,1
+np.float64,0x3fbeb86ca63d70d9,0xbfed774ccca9b8f5,1
+np.float64,0x3fb355dcc826abba,0xbff1f33f9339e7a3,1
+np.float64,0x3fe506c61eaa0d8c,0xbfc7585a3f7565a6,1
+np.float64,0x7fe393f25ba727e4,0x407340a94bcea73b,1
+np.float64,0xf66f532decdeb,0xc0733ab5041feb0f,1
+np.float64,0x3fe26e872be4dd0e,0xbfceaaab466f32e0,1
+np.float64,0x3fefd9e290bfb3c5,0xbf60977d24496295,1
+np.float64,0x7fe19c5f692338be,0x40733fecef53ad95,1
+np.float64,0x3fe80365ab3006cb,0xbfbfec4090ef76ec,1
+np.float64,0x3fe88ab39eb11567,0xbfbd8099388d054d,1
+np.float64,0x3fe68fb09fad1f61,0xbfc36db9de38c2c0,1
+np.float64,0x3fe9051883b20a31,0xbfbb5b75b8cb8f24,1
+np.float64,0x3fd4708683a8e10d,0xbfdfb9b085dd8a83,1
+np.float64,0x3fe00ac11a601582,0xbfd3316af3e43500,1
+np.float64,0xd16af30ba2d5f,0xc0733bd68e8252f9,1
+np.float64,0x3fb97d654632facb,0xbff007ac1257f575,1
+np.float64,0x7fd637c10fac6f81,0x40733cb949d76546,1
+np.float64,0x7fed2cab6dba5956,0x4073436edfc3764e,1
+np.float64,0x3fed04afbbba095f,0xbfa5bfaa5074b7f4,1
+np.float64,0x0,0xfff0000000000000,1
+np.float64,0x389a1dc671345,0xc07344edd4206338,1
+np.float64,0x3fbc9ba25a393745,0xbfee74c34f49b921,1
+np.float64,0x3feee749947dce93,0xbf8f032d9cf6b5ae,1
+np.float64,0xedc4cf89db89a,0xc0733af4b2a57920,1
+np.float64,0x3fe41629eba82c54,0xbfc9e321faf79e1c,1
+np.float64,0x3feb0bcbf7b61798,0xbfb2b31e5d952869,1
+np.float64,0xad60654b5ac0d,0xc0733d26860df676,1
+np.float64,0x3fe154e1ff22a9c4,0xbfd10b416e58c867,1
+np.float64,0x7fb20e9c8a241d38,0x407331a66453b8bc,1
+np.float64,0x7fcbbaaf7d37755e,0x4073397274f28008,1
+np.float64,0x187d0fbc30fa3,0xc0734ac03cc98cc9,1
+np.float64,0x7fd153afeaa2a75f,0x40733aff00b4311d,1
+np.float64,0x3fe05310a5e0a621,0xbfd2b5386aeecaac,1
+np.float64,0x7fea863b2b750c75,0x407342c57807f700,1
+np.float64,0x3fed5f0c633abe19,0xbfa30f6cfbc4bf94,1
+np.float64,0xf227c8b3e44f9,0xc0733ad42daaec9f,1
+np.float64,0x3fe956524772aca5,0xbfb9f4cabed7081d,1
+np.float64,0xefd11af7dfa24,0xc0733ae570ed2552,1
+np.float64,0x1690fff02d221,0xc0734b51a56c2980,1
+np.float64,0x7fd2e547a825ca8e,0x40733b992d6d9635,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log1p.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log1p.csv
new file mode 100644
index 0000000..094e052
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log1p.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0x3e10aca8,0x3e075347,2
+np.float32,0x3f776e66,0x3f2d2003,2
+np.float32,0xbf34e8ce,0xbf9cfd5c,2
+np.float32,0xbf0260ee,0xbf363f69,2
+np.float32,0x3ed285e8,0x3eb05870,2
+np.float32,0x262b88,0x262b88,2
+np.float32,0x3eeffd6c,0x3ec4cfdb,2
+np.float32,0x3ee86808,0x3ebf9f54,2
+np.float32,0x3f36eba8,0x3f0a0524,2
+np.float32,0xbf1c047a,0xbf70afc7,2
+np.float32,0x3ead2916,0x3e952902,2
+np.float32,0x61c9c9,0x61c9c9,2
+np.float32,0xff7fffff,0xffc00000,2
+np.float32,0x7f64ee52,0x42b138e0,2
+np.float32,0x7ed00b1e,0x42afa4ff,2
+np.float32,0x3db53340,0x3dada0b2,2
+np.float32,0x3e6b0a4a,0x3e5397a4,2
+np.float32,0x7ed5d64f,0x42afb310,2
+np.float32,0xbf12bc5f,0xbf59f5ee,2
+np.float32,0xbda12710,0xbda7d8b5,2
+np.float32,0xbe2e89d8,0xbe3f5a9f,2
+np.float32,0x3f5bee75,0x3f1ebea4,2
+np.float32,0x9317a,0x9317a,2
+np.float32,0x7ee00130,0x42afcad8,2
+np.float32,0x7ef0d16d,0x42afefe7,2
+np.float32,0xbec7463a,0xbefc6a44,2
+np.float32,0xbf760ecc,0xc04fe59c,2
+np.float32,0xbecacb3c,0xbf011ae3,2
+np.float32,0x3ead92be,0x3e9577f0,2
+np.float32,0xbf41510d,0xbfb41b3a,2
+np.float32,0x7f71d489,0x42b154f1,2
+np.float32,0x8023bcd5,0x8023bcd5,2
+np.float32,0x801d33d8,0x801d33d8,2
+np.float32,0x3f3f545d,0x3f0ee0d4,2
+np.float32,0xbf700682,0xc0318c25,2
+np.float32,0xbe54e990,0xbe6eb0a3,2
+np.float32,0x7f0289bf,0x42b01941,2
+np.float32,0xbd61ac90,0xbd682113,2
+np.float32,0xbf2ff310,0xbf94cd6f,2
+np.float32,0x7f10064a,0x42b04b98,2
+np.float32,0x804d0d6d,0x804d0d6d,2
+np.float32,0x80317b0a,0x80317b0a,2
+np.float32,0xbddfef18,0xbded2640,2
+np.float32,0x3f00c9ab,0x3ed0a5bd,2
+np.float32,0x7f04b905,0x42b021c1,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x6524c4,0x6524c4,2
+np.float32,0x3da08ae0,0x3d9a8f88,2
+np.float32,0x293ea9,0x293ea9,2
+np.float32,0x71499e,0x71499e,2
+np.float32,0xbf14f54d,0xbf5f38a5,2
+np.float32,0x806e60f5,0x806e60f5,2
+np.float32,0x3f5f34bb,0x3f207fff,2
+np.float32,0x80513427,0x80513427,2
+np.float32,0x7f379670,0x42b0c7dc,2
+np.float32,0x3efba888,0x3eccb20b,2
+np.float32,0x3eeadd1b,0x3ec14f4b,2
+np.float32,0x7ec5a27f,0x42af8ab8,2
+np.float32,0x3f2afe4e,0x3f02f7a2,2
+np.float32,0x5591c8,0x5591c8,2
+np.float32,0x3dbb7240,0x3db35bab,2
+np.float32,0x805b911b,0x805b911b,2
+np.float32,0x800000,0x800000,2
+np.float32,0x7e784c04,0x42ae9cab,2
+np.float32,0x7ebaae14,0x42af6d86,2
+np.float32,0xbec84f7a,0xbefe1d42,2
+np.float32,0x7cea8281,0x42aa56bf,2
+np.float32,0xbf542cf6,0xbfe1eb1b,2
+np.float32,0xbf6bfb13,0xc0231a5b,2
+np.float32,0x7d6eeaef,0x42abc32c,2
+np.float32,0xbf062f6b,0xbf3e2000,2
+np.float32,0x8073d8e9,0x8073d8e9,2
+np.float32,0xbea4db14,0xbec6f485,2
+np.float32,0x7d7e8d62,0x42abe3a0,2
+np.float32,0x7e8fc34e,0x42aee7c6,2
+np.float32,0x7dcbb0c3,0x42acd464,2
+np.float32,0x7e123c,0x7e123c,2
+np.float32,0x3d77af62,0x3d707c34,2
+np.float32,0x498cc8,0x498cc8,2
+np.float32,0x7f4e2206,0x42b1032a,2
+np.float32,0x3f734e0a,0x3f2b04a1,2
+np.float32,0x8053a9d0,0x8053a9d0,2
+np.float32,0xbe8a67e0,0xbea15be9,2
+np.float32,0xbf78e0ea,0xc065409e,2
+np.float32,0x352bdd,0x352bdd,2
+np.float32,0x3ee42be7,0x3ebcb38a,2
+np.float32,0x7f482d10,0x42b0f427,2
+np.float32,0xbf23155e,0xbf81b993,2
+np.float32,0x594920,0x594920,2
+np.float32,0x63f53f,0x63f53f,2
+np.float32,0x363592,0x363592,2
+np.float32,0x7dafbb78,0x42ac88cc,2
+np.float32,0x7f69516c,0x42b14298,2
+np.float32,0x3e1d5be2,0x3e126131,2
+np.float32,0x410c23,0x410c23,2
+np.float32,0x7ec9563c,0x42af9439,2
+np.float32,0xbedd3a0e,0xbf10d705,2
+np.float32,0x7f7c4f1f,0x42b16aa8,2
+np.float32,0xbe99b34e,0xbeb6c2d3,2
+np.float32,0x6cdc84,0x6cdc84,2
+np.float32,0x5b3bbe,0x5b3bbe,2
+np.float32,0x252178,0x252178,2
+np.float32,0x7d531865,0x42ab83c8,2
+np.float32,0xbf565b44,0xbfe873bf,2
+np.float32,0x5977ce,0x5977ce,2
+np.float32,0x588a58,0x588a58,2
+np.float32,0x3eae7054,0x3e961d51,2
+np.float32,0x725049,0x725049,2
+np.float32,0x7f2b9386,0x42b0a538,2
+np.float32,0xbe674714,0xbe831245,2
+np.float32,0x8044f0d8,0x8044f0d8,2
+np.float32,0x800a3c21,0x800a3c21,2
+np.float32,0x807b275b,0x807b275b,2
+np.float32,0xbf2463b6,0xbf83896e,2
+np.float32,0x801cca42,0x801cca42,2
+np.float32,0xbf28f2d0,0xbf8a121a,2
+np.float32,0x3f4168c2,0x3f1010ce,2
+np.float32,0x6f91a1,0x6f91a1,2
+np.float32,0xbf2b9eeb,0xbf8e0fc5,2
+np.float32,0xbea4c858,0xbec6d8e4,2
+np.float32,0xbf7abba0,0xc0788e88,2
+np.float32,0x802f18f7,0x802f18f7,2
+np.float32,0xbf7f6c75,0xc0c3145c,2
+np.float32,0xbe988210,0xbeb50f5e,2
+np.float32,0xbf219b7e,0xbf7f6a3b,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0x7f7fffff,0x42b17218,2
+np.float32,0xbdca8d90,0xbdd5487e,2
+np.float32,0xbef683b0,0xbf2821b0,2
+np.float32,0x8043e648,0x8043e648,2
+np.float32,0xbf4319a4,0xbfb7cd1b,2
+np.float32,0x62c2b2,0x62c2b2,2
+np.float32,0xbf479ccd,0xbfc1a7b1,2
+np.float32,0x806c8a32,0x806c8a32,2
+np.float32,0x7f004447,0x42b01045,2
+np.float32,0x3f737d36,0x3f2b1ccf,2
+np.float32,0x3ee71f24,0x3ebebced,2
+np.float32,0x3ea0b6b4,0x3e8bc606,2
+np.float32,0x358fd7,0x358fd7,2
+np.float32,0xbe69780c,0xbe847d17,2
+np.float32,0x7f6bed18,0x42b14849,2
+np.float32,0xbf6a5113,0xc01dfe1d,2
+np.float32,0xbf255693,0xbf84de88,2
+np.float32,0x7f34acac,0x42b0bfac,2
+np.float32,0xbe8a3b6a,0xbea11efe,2
+np.float32,0x3f470d84,0x3f1342ab,2
+np.float32,0xbf2cbde3,0xbf8fc602,2
+np.float32,0x47c103,0x47c103,2
+np.float32,0xe3c94,0xe3c94,2
+np.float32,0xbec07afa,0xbef1693a,2
+np.float32,0x6a9cfe,0x6a9cfe,2
+np.float32,0xbe4339e0,0xbe5899da,2
+np.float32,0x7ea9bf1e,0x42af3cd6,2
+np.float32,0x3f6378b4,0x3f22c4c4,2
+np.float32,0xbd989ff0,0xbd9e9c77,2
+np.float32,0xbe6f2f50,0xbe88343d,2
+np.float32,0x3f7f2ac5,0x3f310764,2
+np.float32,0x3f256704,0x3eff2fb2,2
+np.float32,0x80786aca,0x80786aca,2
+np.float32,0x65d02f,0x65d02f,2
+np.float32,0x50d1c3,0x50d1c3,2
+np.float32,0x3f4a9d76,0x3f1541b4,2
+np.float32,0x802cf491,0x802cf491,2
+np.float32,0x3e935cec,0x3e81829b,2
+np.float32,0x3e2ad478,0x3e1dfd81,2
+np.float32,0xbf107cbd,0xbf54bef2,2
+np.float32,0xbf58c02e,0xbff007fe,2
+np.float32,0x80090808,0x80090808,2
+np.float32,0x805d1f66,0x805d1f66,2
+np.float32,0x6aec95,0x6aec95,2
+np.float32,0xbee3fc6e,0xbf16dc73,2
+np.float32,0x7f63314b,0x42b134f9,2
+np.float32,0x550443,0x550443,2
+np.float32,0xbefa8174,0xbf2c026e,2
+np.float32,0x3f7fb380,0x3f314bd5,2
+np.float32,0x80171f2c,0x80171f2c,2
+np.float32,0x3f2f56ae,0x3f058f2d,2
+np.float32,0x3eacaecb,0x3e94cd97,2
+np.float32,0xbe0c4f0c,0xbe16e69d,2
+np.float32,0x3f48e4cb,0x3f144b42,2
+np.float32,0x7f03efe2,0x42b01eb7,2
+np.float32,0xbf1019ac,0xbf53dbe9,2
+np.float32,0x3e958524,0x3e832eb5,2
+np.float32,0xbf1b23c6,0xbf6e72f2,2
+np.float32,0x12c554,0x12c554,2
+np.float32,0x7dee588c,0x42ad24d6,2
+np.float32,0xbe8c216c,0xbea3ba70,2
+np.float32,0x804553cb,0x804553cb,2
+np.float32,0xbe446324,0xbe5a0966,2
+np.float32,0xbef7150a,0xbf28adff,2
+np.float32,0xbf087282,0xbf42ec6e,2
+np.float32,0x3eeef15c,0x3ec41937,2
+np.float32,0x61bbd2,0x61bbd2,2
+np.float32,0x3e51b28d,0x3e3ec538,2
+np.float32,0x57e869,0x57e869,2
+np.float32,0x7e5e7711,0x42ae646c,2
+np.float32,0x8050b173,0x8050b173,2
+np.float32,0xbf63c90c,0xc00d2438,2
+np.float32,0xbeba774c,0xbee7dcf8,2
+np.float32,0x8016faac,0x8016faac,2
+np.float32,0xbe8b448c,0xbea28aaf,2
+np.float32,0x3e8cd448,0x3e78d29e,2
+np.float32,0x80484e02,0x80484e02,2
+np.float32,0x3f63ba68,0x3f22e78c,2
+np.float32,0x2e87bb,0x2e87bb,2
+np.float32,0x230496,0x230496,2
+np.float32,0x1327b2,0x1327b2,2
+np.float32,0xbf046c56,0xbf3a72d2,2
+np.float32,0x3ecefe60,0x3eadd69a,2
+np.float32,0x49c56e,0x49c56e,2
+np.float32,0x3df22d60,0x3de4e550,2
+np.float32,0x3f67c19d,0x3f250707,2
+np.float32,0x3f20eb9c,0x3ef9b624,2
+np.float32,0x3f05ca75,0x3ed742fa,2
+np.float32,0xbe8514f8,0xbe9a1d45,2
+np.float32,0x8070a003,0x8070a003,2
+np.float32,0x7e49650e,0x42ae317a,2
+np.float32,0x3de16ce9,0x3dd5dc3e,2
+np.float32,0xbf4ae952,0xbfc95f1f,2
+np.float32,0xbe44dd84,0xbe5aa0db,2
+np.float32,0x803c3bc0,0x803c3bc0,2
+np.float32,0x3eebb9e8,0x3ec1e692,2
+np.float32,0x80588275,0x80588275,2
+np.float32,0xbea1e69a,0xbec29d86,2
+np.float32,0x3f7b4bf8,0x3f2f154c,2
+np.float32,0x7eb47ecc,0x42af5c46,2
+np.float32,0x3d441e00,0x3d3f911a,2
+np.float32,0x7f54d40e,0x42b11388,2
+np.float32,0xbf47f17e,0xbfc26882,2
+np.float32,0x3ea7da57,0x3e912db4,2
+np.float32,0x3f59cc7b,0x3f1d984e,2
+np.float32,0x570e08,0x570e08,2
+np.float32,0x3e99560c,0x3e8620a2,2
+np.float32,0x3ecfbd14,0x3eae5e55,2
+np.float32,0x7e86be08,0x42aec698,2
+np.float32,0x3f10f28a,0x3ee5b5d3,2
+np.float32,0x7f228722,0x42b0897a,2
+np.float32,0x3f4b979b,0x3f15cd30,2
+np.float32,0xbf134283,0xbf5b30f9,2
+np.float32,0x3f2ae16a,0x3f02e64f,2
+np.float32,0x3e98e158,0x3e85c6cc,2
+np.float32,0x7ec39f27,0x42af857a,2
+np.float32,0x3effedb0,0x3ecf8cea,2
+np.float32,0xbd545620,0xbd5a09c1,2
+np.float32,0x503a28,0x503a28,2
+np.float32,0x3f712744,0x3f29e9a1,2
+np.float32,0x3edc6194,0x3eb748b1,2
+np.float32,0xbf4ec1e5,0xbfd2ff5f,2
+np.float32,0x3f46669e,0x3f12e4b5,2
+np.float32,0xabad3,0xabad3,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x803f2e6d,0x803f2e6d,2
+np.float32,0xbf431542,0xbfb7c3e6,2
+np.float32,0x3f6f2d53,0x3f28e496,2
+np.float32,0x546bd8,0x546bd8,2
+np.float32,0x25c80a,0x25c80a,2
+np.float32,0x3e50883c,0x3e3dcd7e,2
+np.float32,0xbf5fa2ba,0xc0045c14,2
+np.float32,0x80271c07,0x80271c07,2
+np.float32,0x8043755d,0x8043755d,2
+np.float32,0xbf3c5cea,0xbfaa5ee9,2
+np.float32,0x3f2fea38,0x3f05e6af,2
+np.float32,0x6da3dc,0x6da3dc,2
+np.float32,0xbf095945,0xbf44dc70,2
+np.float32,0xbe33d584,0xbe45c1f5,2
+np.float32,0x7eb41b2e,0x42af5b2b,2
+np.float32,0xbf0feb74,0xbf537242,2
+np.float32,0xbe96225a,0xbeb1b0b1,2
+np.float32,0x3f63b95f,0x3f22e700,2
+np.float32,0x0,0x0,2
+np.float32,0x3e20b0cc,0x3e154374,2
+np.float32,0xbf79880c,0xc06b6801,2
+np.float32,0xbea690b6,0xbec97b93,2
+np.float32,0xbf3e11ca,0xbfada449,2
+np.float32,0x7e7e6292,0x42aea912,2
+np.float32,0x3e793350,0x3e5f0b7b,2
+np.float32,0x802e7183,0x802e7183,2
+np.float32,0x3f1b3695,0x3ef2a788,2
+np.float32,0x801efa20,0x801efa20,2
+np.float32,0x3f1ec43a,0x3ef70f42,2
+np.float32,0xbf12c5ed,0xbf5a0c52,2
+np.float32,0x8005e99c,0x8005e99c,2
+np.float32,0xbf79f5e7,0xc06fcca5,2
+np.float32,0x3ecbaf50,0x3eab7a03,2
+np.float32,0x46b0fd,0x46b0fd,2
+np.float32,0x3edb9023,0x3eb6b631,2
+np.float32,0x7f24bc41,0x42b09063,2
+np.float32,0xbd8d9328,0xbd92b4c6,2
+np.float32,0x3f2c5d7f,0x3f03c9d9,2
+np.float32,0x807bebc9,0x807bebc9,2
+np.float32,0x7f797a99,0x42b164e2,2
+np.float32,0x756e3c,0x756e3c,2
+np.float32,0x80416f8a,0x80416f8a,2
+np.float32,0x3e0d512a,0x3e04611a,2
+np.float32,0x3f7be3e6,0x3f2f61ec,2
+np.float32,0x80075c41,0x80075c41,2
+np.float32,0xbe850294,0xbe9a046c,2
+np.float32,0x684679,0x684679,2
+np.float32,0x3eb393c4,0x3e99eed2,2
+np.float32,0x3f4177c6,0x3f10195b,2
+np.float32,0x3dd1f402,0x3dc7dfe5,2
+np.float32,0x3ef484d4,0x3ec7e2e1,2
+np.float32,0x53eb8f,0x53eb8f,2
+np.float32,0x7f072cb6,0x42b02b20,2
+np.float32,0xbf1b6b55,0xbf6f28d4,2
+np.float32,0xbd8a98d8,0xbd8f827d,2
+np.float32,0x3eafb418,0x3e970e96,2
+np.float32,0x6555af,0x6555af,2
+np.float32,0x7dd5118e,0x42aceb6f,2
+np.float32,0x800a13f7,0x800a13f7,2
+np.float32,0x331a9d,0x331a9d,2
+np.float32,0x8063773f,0x8063773f,2
+np.float32,0x3e95e068,0x3e837553,2
+np.float32,0x80654b32,0x80654b32,2
+np.float32,0x3dabe0e0,0x3da50bb3,2
+np.float32,0xbf6283c3,0xc00a5280,2
+np.float32,0x80751cc5,0x80751cc5,2
+np.float32,0x3f668eb6,0x3f2465c0,2
+np.float32,0x3e13c058,0x3e0a048c,2
+np.float32,0x77780c,0x77780c,2
+np.float32,0x3f7d6e48,0x3f302868,2
+np.float32,0x7e31f9e3,0x42adf22f,2
+np.float32,0x246c7b,0x246c7b,2
+np.float32,0xbe915bf0,0xbeaafa6c,2
+np.float32,0xbf800000,0xff800000,2
+np.float32,0x3f698f42,0x3f25f8e0,2
+np.float32,0x7e698885,0x42ae7d48,2
+np.float32,0x3f5bbd42,0x3f1ea42c,2
+np.float32,0x5b8444,0x5b8444,2
+np.float32,0xbf6065f6,0xc005e2c6,2
+np.float32,0xbeb95036,0xbee60dad,2
+np.float32,0xbf44f846,0xbfbbcade,2
+np.float32,0xc96e5,0xc96e5,2
+np.float32,0xbf213e90,0xbf7e6eae,2
+np.float32,0xbeb309cc,0xbedc4fe6,2
+np.float32,0xbe781cf4,0xbe8e0fe6,2
+np.float32,0x7f0cf0db,0x42b04083,2
+np.float32,0xbf7b6143,0xc08078f9,2
+np.float32,0x80526fc6,0x80526fc6,2
+np.float32,0x3f092bf3,0x3edbaeec,2
+np.float32,0x3ecdf154,0x3ead16df,2
+np.float32,0x2fe85b,0x2fe85b,2
+np.float32,0xbf5100a0,0xbfd8f871,2
+np.float32,0xbec09d40,0xbef1a028,2
+np.float32,0x5e6a85,0x5e6a85,2
+np.float32,0xbec0e2a0,0xbef20f6b,2
+np.float32,0x3f72e788,0x3f2ad00d,2
+np.float32,0x880a6,0x880a6,2
+np.float32,0x3d9e90bf,0x3d98b9fc,2
+np.float32,0x15cf25,0x15cf25,2
+np.float32,0x10171b,0x10171b,2
+np.float32,0x805cf1aa,0x805cf1aa,2
+np.float32,0x3f19bd36,0x3ef0d0d2,2
+np.float32,0x3ebe2bda,0x3ea1b774,2
+np.float32,0xbecd8192,0xbf035c49,2
+np.float32,0x3e2ce508,0x3e1fc21b,2
+np.float32,0x290f,0x290f,2
+np.float32,0x803b679f,0x803b679f,2
+np.float32,0x1,0x1,2
+np.float32,0x807a9c76,0x807a9c76,2
+np.float32,0xbf65fced,0xc01257f8,2
+np.float32,0x3f783414,0x3f2d8475,2
+np.float32,0x3f2d9d92,0x3f0488da,2
+np.float32,0xbddb5798,0xbde80018,2
+np.float32,0x3e91afb8,0x3e8034e7,2
+np.float32,0xbf1b775a,0xbf6f476d,2
+np.float32,0xbf73a32c,0xc041f3ba,2
+np.float32,0xbea39364,0xbec5121b,2
+np.float32,0x80375b94,0x80375b94,2
+np.float32,0x3f331252,0x3f07c3e9,2
+np.float32,0xbf285774,0xbf892e74,2
+np.float32,0x3e699bb8,0x3e526d55,2
+np.float32,0x3f08208a,0x3eda523a,2
+np.float32,0xbf42fb4a,0xbfb78d60,2
+np.float32,0x8029c894,0x8029c894,2
+np.float32,0x3e926c0c,0x3e80c76e,2
+np.float32,0x801e4715,0x801e4715,2
+np.float32,0x3e4b36d8,0x3e395ffd,2
+np.float32,0x8041556b,0x8041556b,2
+np.float32,0xbf2d99ba,0xbf9119bd,2
+np.float32,0x3ed83ea8,0x3eb46250,2
+np.float32,0xbe94a280,0xbeaf92b4,2
+np.float32,0x7f4c7a64,0x42b0ff0a,2
+np.float32,0x806d4022,0x806d4022,2
+np.float32,0xbed382f8,0xbf086d26,2
+np.float32,0x1846fe,0x1846fe,2
+np.float32,0xbe702558,0xbe88d4d8,2
+np.float32,0xbe650ee0,0xbe81a3cc,2
+np.float32,0x3ee9d088,0x3ec0970c,2
+np.float32,0x7f6d4498,0x42b14b30,2
+np.float32,0xbef9f9e6,0xbf2b7ddb,2
+np.float32,0xbf70c384,0xc0349370,2
+np.float32,0xbeff9e9e,0xbf3110c8,2
+np.float32,0xbef06372,0xbf224aa9,2
+np.float32,0xbf15a692,0xbf60e1fa,2
+np.float32,0x8058c117,0x8058c117,2
+np.float32,0xbd9f74b8,0xbda6017b,2
+np.float32,0x801bf130,0x801bf130,2
+np.float32,0x805da84c,0x805da84c,2
+np.float32,0xff800000,0xffc00000,2
+np.float32,0xbeb01de2,0xbed7d6d6,2
+np.float32,0x8077de08,0x8077de08,2
+np.float32,0x3e327668,0x3e2482c1,2
+np.float32,0xbe7add88,0xbe8fe1ab,2
+np.float32,0x805a3c2e,0x805a3c2e,2
+np.float32,0x80326a73,0x80326a73,2
+np.float32,0x800b8a34,0x800b8a34,2
+np.float32,0x8048c83a,0x8048c83a,2
+np.float32,0xbf3799d6,0xbfa1a975,2
+np.float32,0x807649c7,0x807649c7,2
+np.float32,0x3dfdbf90,0x3def3798,2
+np.float32,0xbf1b538a,0xbf6eec4c,2
+np.float32,0xbf1e5989,0xbf76baa0,2
+np.float32,0xc7a80,0xc7a80,2
+np.float32,0x8001be54,0x8001be54,2
+np.float32,0x3f435bbc,0x3f112c6d,2
+np.float32,0xbeabcff8,0xbed151d1,2
+np.float32,0x7de20c78,0x42ad09b7,2
+np.float32,0x3f0e6d2e,0x3ee27b1e,2
+np.float32,0xbf0cb352,0xbf4c3267,2
+np.float32,0x7f6ec06f,0x42b14e61,2
+np.float32,0x7f6fa8ef,0x42b15053,2
+np.float32,0xbf3d2a6a,0xbfabe623,2
+np.float32,0x7f077a4c,0x42b02c46,2
+np.float32,0xbf2a68dc,0xbf8c3cc4,2
+np.float32,0x802a5dbe,0x802a5dbe,2
+np.float32,0x807f631c,0x807f631c,2
+np.float32,0x3dc9b8,0x3dc9b8,2
+np.float32,0x3ebdc1b7,0x3ea16a0a,2
+np.float32,0x7ef29dab,0x42aff3b5,2
+np.float32,0x3e8ab1cc,0x3e757806,2
+np.float32,0x3f27e88e,0x3f011c6d,2
+np.float32,0x3cfd1455,0x3cf93fb5,2
+np.float32,0x7f7eebf5,0x42b16fef,2
+np.float32,0x3c9b2140,0x3c99ade9,2
+np.float32,0x7e928601,0x42aef183,2
+np.float32,0xbd7d2db0,0xbd82abae,2
+np.float32,0x3e6f0df3,0x3e56da20,2
+np.float32,0x7d36a2fc,0x42ab39a3,2
+np.float32,0xbf49d3a2,0xbfc6c859,2
+np.float32,0x7ee541d3,0x42afd6b6,2
+np.float32,0x80753dc0,0x80753dc0,2
+np.float32,0x3f4ce486,0x3f16865d,2
+np.float32,0x39e701,0x39e701,2
+np.float32,0x3f3d9ede,0x3f0de5fa,2
+np.float32,0x7fafb2,0x7fafb2,2
+np.float32,0x3e013fdc,0x3df37090,2
+np.float32,0x807b6a2c,0x807b6a2c,2
+np.float32,0xbe86800a,0xbe9c08c7,2
+np.float32,0x7f40f080,0x42b0e14d,2
+np.float32,0x7eef5afe,0x42afecc8,2
+np.float32,0x7ec30052,0x42af83da,2
+np.float32,0x3eacf768,0x3e9503e1,2
+np.float32,0x7f13ef0e,0x42b0594e,2
+np.float32,0x80419f4a,0x80419f4a,2
+np.float32,0xbf485932,0xbfc3562a,2
+np.float32,0xbe8a24d6,0xbea10011,2
+np.float32,0xbda791c0,0xbdaed2bc,2
+np.float32,0x3e9b5169,0x3e87a67d,2
+np.float32,0x807dd882,0x807dd882,2
+np.float32,0x7f40170e,0x42b0df0a,2
+np.float32,0x7f02f7f9,0x42b01af1,2
+np.float32,0x3ea38bf9,0x3e8decde,2
+np.float32,0x3e2e7ce8,0x3e211ed4,2
+np.float32,0x70a7a6,0x70a7a6,2
+np.float32,0x7d978592,0x42ac3ce7,2
+np.float32,0x804d12d0,0x804d12d0,2
+np.float32,0x80165dc8,0x80165dc8,2
+np.float32,0x80000001,0x80000001,2
+np.float32,0x3e325da0,0x3e246da6,2
+np.float32,0xbe063bb8,0xbe0fe281,2
+np.float32,0x160b8,0x160b8,2
+np.float32,0xbe5687a4,0xbe70bbef,2
+np.float32,0x7f11ab34,0x42b05168,2
+np.float32,0xc955c,0xc955c,2
+np.float32,0xbea0003a,0xbebfd826,2
+np.float32,0x3f7fbdd9,0x3f315102,2
+np.float32,0xbe61aefc,0xbe7ef121,2
+np.float32,0xbf1b9873,0xbf6f9bc3,2
+np.float32,0x3a6d14,0x3a6d14,2
+np.float32,0xbf1ad3b4,0xbf6da808,2
+np.float32,0x3ed2dd24,0x3eb0963d,2
+np.float32,0xbe81a4ca,0xbe957d52,2
+np.float32,0x7f1be3e9,0x42b07421,2
+np.float32,0x7f5ce943,0x42b1269e,2
+np.float32,0x7eebcbdf,0x42afe51d,2
+np.float32,0x807181b5,0x807181b5,2
+np.float32,0xbecb03ba,0xbf0149ad,2
+np.float32,0x42edb8,0x42edb8,2
+np.float32,0xbf3aeec8,0xbfa7b13f,2
+np.float32,0xbd0c4f00,0xbd0ec4a0,2
+np.float32,0x3e48d260,0x3e376070,2
+np.float32,0x1a9731,0x1a9731,2
+np.float32,0x7f323be4,0x42b0b8b5,2
+np.float32,0x1a327f,0x1a327f,2
+np.float32,0x17f1fc,0x17f1fc,2
+np.float32,0xbf2f4f9b,0xbf93c91a,2
+np.float32,0x3ede8934,0x3eb8c9c3,2
+np.float32,0xbf56aaac,0xbfe968bb,2
+np.float32,0x3e22cb5a,0x3e17148c,2
+np.float32,0x7d9def,0x7d9def,2
+np.float32,0x8045b963,0x8045b963,2
+np.float32,0x77404f,0x77404f,2
+np.float32,0x7e2c9efb,0x42ade28b,2
+np.float32,0x8058ad89,0x8058ad89,2
+np.float32,0x7f4139,0x7f4139,2
+np.float32,0x8020e12a,0x8020e12a,2
+np.float32,0x800c9daa,0x800c9daa,2
+np.float32,0x7f2c5ac5,0x42b0a789,2
+np.float32,0x3f04a47b,0x3ed5c043,2
+np.float32,0x804692d5,0x804692d5,2
+np.float32,0xbf6e7fa4,0xc02bb493,2
+np.float32,0x80330756,0x80330756,2
+np.float32,0x7f3e29ad,0x42b0d9e1,2
+np.float32,0xbebf689a,0xbeefb24d,2
+np.float32,0x3f29a86c,0x3f022a56,2
+np.float32,0x3e3bd1c0,0x3e2c72b3,2
+np.float32,0x3f78f2e8,0x3f2de546,2
+np.float32,0x3f3709be,0x3f0a16af,2
+np.float32,0x3e11f150,0x3e086f97,2
+np.float32,0xbf5867ad,0xbfeee8a0,2
+np.float32,0xbebfb328,0xbef0296c,2
+np.float32,0x2f7f15,0x2f7f15,2
+np.float32,0x805cfe84,0x805cfe84,2
+np.float32,0xbf504e01,0xbfd71589,2
+np.float32,0x3ee0903c,0x3eba330c,2
+np.float32,0xbd838990,0xbd87f399,2
+np.float32,0x3f14444e,0x3ee9ee7d,2
+np.float32,0x7e352583,0x42adfb3a,2
+np.float32,0x7e76f824,0x42ae99ec,2
+np.float32,0x3f772d00,0x3f2cfebf,2
+np.float32,0x801f7763,0x801f7763,2
+np.float32,0x3f760bf5,0x3f2c6b87,2
+np.float32,0xbf0bb696,0xbf4a03a5,2
+np.float32,0x3f175d2c,0x3eedd6d2,2
+np.float32,0xbf5723f8,0xbfeae288,2
+np.float32,0x24de0a,0x24de0a,2
+np.float32,0x3cd73f80,0x3cd47801,2
+np.float32,0x7f013305,0x42b013fa,2
+np.float32,0x3e3ad425,0x3e2b9c50,2
+np.float32,0x7d3d16,0x7d3d16,2
+np.float32,0x3ef49738,0x3ec7ef54,2
+np.float32,0x3f5b8612,0x3f1e8678,2
+np.float32,0x7f0eeb5c,0x42b047a7,2
+np.float32,0x7e9d7cb0,0x42af1675,2
+np.float32,0xbdd1cfb0,0xbddd5aa0,2
+np.float32,0xbf645dba,0xc00e78fe,2
+np.float32,0x3f511174,0x3f18d56c,2
+np.float32,0x3d91ad00,0x3d8cba62,2
+np.float32,0x805298da,0x805298da,2
+np.float32,0xbedb6af4,0xbf0f4090,2
+np.float32,0x3d23b1ba,0x3d208205,2
+np.float32,0xbea5783e,0xbec7dc87,2
+np.float32,0x79d191,0x79d191,2
+np.float32,0x3e894413,0x3e7337da,2
+np.float32,0x80800000,0x80800000,2
+np.float32,0xbf34a8d3,0xbf9c907b,2
+np.float32,0x3bae779a,0x3bae011f,2
+np.float32,0x8049284d,0x8049284d,2
+np.float32,0x3eb42cc4,0x3e9a600b,2
+np.float32,0x3da1e2d0,0x3d9bce5f,2
+np.float32,0x3f364b8a,0x3f09a7af,2
+np.float32,0x3d930b10,0x3d8e0118,2
+np.float32,0x8061f8d7,0x8061f8d7,2
+np.float32,0x3f473213,0x3f13573b,2
+np.float32,0x3f1e2a38,0x3ef65102,2
+np.float32,0x8068f7d9,0x8068f7d9,2
+np.float32,0x3f181ef8,0x3eeeca2c,2
+np.float32,0x3eeb6168,0x3ec1a9f5,2
+np.float32,0xc2db6,0xc2db6,2
+np.float32,0x3ef7b578,0x3eca0a69,2
+np.float32,0xbf5b5a84,0xbff8d075,2
+np.float32,0x7f479d5f,0x42b0f2b7,2
+np.float32,0x3e6f3c24,0x3e56ff92,2
+np.float32,0x3f45543a,0x3f1249f0,2
+np.float32,0xbea7c1fa,0xbecb40d2,2
+np.float32,0x7de082,0x7de082,2
+np.float32,0x383729,0x383729,2
+np.float32,0xbd91cb90,0xbd973eb3,2
+np.float32,0x7f320218,0x42b0b80f,2
+np.float32,0x5547f2,0x5547f2,2
+np.float32,0x291fe4,0x291fe4,2
+np.float32,0xbe078ba0,0xbe11655f,2
+np.float32,0x7e0c0658,0x42ad7764,2
+np.float32,0x7e129a2b,0x42ad8ee5,2
+np.float32,0x3f7c96d4,0x3f2fbc0c,2
+np.float32,0x3f800000,0x3f317218,2
+np.float32,0x7f131754,0x42b05662,2
+np.float32,0x15f833,0x15f833,2
+np.float32,0x80392ced,0x80392ced,2
+np.float32,0x3f7c141a,0x3f2f7a36,2
+np.float32,0xbf71c03f,0xc038dcfd,2
+np.float32,0xbe14fb2c,0xbe20fff3,2
+np.float32,0xbee0bac6,0xbf13f14c,2
+np.float32,0x801a32dd,0x801a32dd,2
+np.float32,0x8e12d,0x8e12d,2
+np.float32,0x3f48c606,0x3f143a04,2
+np.float32,0x7f418af5,0x42b0e2e6,2
+np.float32,0x3f1f2918,0x3ef78bb7,2
+np.float32,0x11141b,0x11141b,2
+np.float32,0x3e9fc9e8,0x3e8b11ad,2
+np.float32,0xbea5447a,0xbec79010,2
+np.float32,0xbe31d904,0xbe4359db,2
+np.float32,0x80184667,0x80184667,2
+np.float32,0xbf00503c,0xbf3212c2,2
+np.float32,0x3e0328cf,0x3df6d425,2
+np.float32,0x7ee8e1b7,0x42afdebe,2
+np.float32,0xbef95e24,0xbf2ae5db,2
+np.float32,0x7f3e4eed,0x42b0da45,2
+np.float32,0x3f43ee85,0x3f117fa0,2
+np.float32,0xbcfa2ac0,0xbcfe10fe,2
+np.float32,0x80162774,0x80162774,2
+np.float32,0x372e8b,0x372e8b,2
+np.float32,0x3f263802,0x3f0016b0,2
+np.float32,0x8008725f,0x8008725f,2
+np.float32,0x800beb40,0x800beb40,2
+np.float32,0xbe93308e,0xbead8a77,2
+np.float32,0x3d8a4240,0x3d85cab8,2
+np.float32,0x80179de0,0x80179de0,2
+np.float32,0x7f4a98f2,0x42b0fa4f,2
+np.float32,0x3f0d214e,0x3ee0cff1,2
+np.float32,0x80536c2c,0x80536c2c,2
+np.float32,0x7e7038ed,0x42ae8bbe,2
+np.float32,0x7f345af9,0x42b0bec4,2
+np.float32,0xbf243219,0xbf83442f,2
+np.float32,0x7e0d5555,0x42ad7c27,2
+np.float32,0x762e95,0x762e95,2
+np.float32,0x7ebf4548,0x42af79f6,2
+np.float32,0x8079639e,0x8079639e,2
+np.float32,0x3ef925c0,0x3ecb0260,2
+np.float32,0x3f708695,0x3f2996d6,2
+np.float32,0xfca9f,0xfca9f,2
+np.float32,0x8060dbf4,0x8060dbf4,2
+np.float32,0x4c8840,0x4c8840,2
+np.float32,0xbea922ee,0xbecd4ed5,2
+np.float32,0xbf4f28a9,0xbfd40b98,2
+np.float32,0xbe25ad48,0xbe34ba1b,2
+np.float32,0x3f2fb254,0x3f05c58c,2
+np.float32,0x3f73bcc2,0x3f2b3d5f,2
+np.float32,0xbf479a07,0xbfc1a165,2
+np.float32,0xbeb9a808,0xbee69763,2
+np.float32,0x7eb16a65,0x42af5376,2
+np.float32,0xbeb3e442,0xbedda042,2
+np.float32,0x3d8f439c,0x3d8a79ac,2
+np.float32,0x80347516,0x80347516,2
+np.float32,0x3e8a0c5d,0x3e74738c,2
+np.float32,0xbf0383a4,0xbf389289,2
+np.float32,0x806be8f5,0x806be8f5,2
+np.float32,0x8023f0c5,0x8023f0c5,2
+np.float32,0x2060e9,0x2060e9,2
+np.float32,0xbf759eba,0xc04d239f,2
+np.float32,0x3d84cc5a,0x3d80ab96,2
+np.float32,0xbf57746b,0xbfebdf87,2
+np.float32,0x3e418417,0x3e31401f,2
+np.float32,0xaecce,0xaecce,2
+np.float32,0x3cd1766f,0x3cced45c,2
+np.float32,0x53724a,0x53724a,2
+np.float32,0x3f773710,0x3f2d03de,2
+np.float32,0x8013d040,0x8013d040,2
+np.float32,0x4d0eb2,0x4d0eb2,2
+np.float32,0x8014364a,0x8014364a,2
+np.float32,0x7f3c56c9,0x42b0d4f2,2
+np.float32,0x3eee1e1c,0x3ec3891a,2
+np.float32,0xbdda3eb8,0xbde6c5a0,2
+np.float32,0x26ef4a,0x26ef4a,2
+np.float32,0x7ed3370c,0x42afacbf,2
+np.float32,0xbf06e31b,0xbf3f9ab7,2
+np.float32,0xbe3185f0,0xbe42f556,2
+np.float32,0x3dcf9abe,0x3dc5be41,2
+np.float32,0xbf3696d9,0xbf9fe2bd,2
+np.float32,0x3e68ee50,0x3e51e01a,2
+np.float32,0x3f3d4cc2,0x3f0db6ca,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0xbf03070c,0xbf3792d0,2
+np.float32,0x3ea79e6c,0x3e910092,2
+np.float32,0xbf1a393a,0xbf6c2251,2
+np.float32,0x3f41eb0e,0x3f105afc,2
+np.float32,0x3ceadb2f,0x3ce78d79,2
+np.float32,0xbf5dc105,0xc000be2c,2
+np.float32,0x7ebb5a0e,0x42af6f5c,2
+np.float32,0xbf7c44eb,0xc0875058,2
+np.float32,0x6aaaf4,0x6aaaf4,2
+np.float32,0x807d8f23,0x807d8f23,2
+np.float32,0xbee6b142,0xbf194fef,2
+np.float32,0xbe83f256,0xbe989526,2
+np.float32,0x7d588e,0x7d588e,2
+np.float32,0x7cc80131,0x42aa0542,2
+np.float32,0x3e0ab198,0x3e02124f,2
+np.float32,0xbf6e64db,0xc02b52eb,2
+np.float32,0x3d238b56,0x3d205d1b,2
+np.float32,0xbeb408e2,0xbeddd8bc,2
+np.float32,0x3f78340d,0x3f2d8471,2
+np.float32,0x806162a3,0x806162a3,2
+np.float32,0x804e484f,0x804e484f,2
+np.float32,0xbeb8c576,0xbee53466,2
+np.float32,0x807aab15,0x807aab15,2
+np.float32,0x3f523e20,0x3f197ab8,2
+np.float32,0xbf009190,0xbf3295de,2
+np.float32,0x3df43da5,0x3de6bd82,2
+np.float32,0x7f639aea,0x42b135e6,2
+np.float32,0x3f1e638a,0x3ef697da,2
+np.float32,0xbf4884de,0xbfc3bac3,2
+np.float32,0xbe9336b6,0xbead931b,2
+np.float32,0x6daf7f,0x6daf7f,2
+np.float32,0xbf1fc152,0xbf7a70b1,2
+np.float32,0x3f103720,0x3ee4c649,2
+np.float32,0x3eeaa227,0x3ec126df,2
+np.float32,0x7f7ea945,0x42b16f69,2
+np.float32,0x3d3cd800,0x3d389ead,2
+np.float32,0x3f3d7268,0x3f0dcc6e,2
+np.float32,0xbf3c1b41,0xbfa9e2e3,2
+np.float32,0x3ecf3818,0x3eadffb2,2
+np.float32,0x3f1af312,0x3ef25372,2
+np.float32,0x48fae4,0x48fae4,2
+np.float64,0x7fedaa1ee4fb543d,0x40862da7ca7c308e,1
+np.float64,0x8007d2d810efa5b1,0x8007d2d810efa5b1,1
+np.float64,0x3fc385e069270bc0,0x3fc22b8884cf2c3b,1
+np.float64,0x68ed4130d1da9,0x68ed4130d1da9,1
+np.float64,0x8008e93e58d1d27d,0x8008e93e58d1d27d,1
+np.float64,0xbfd3d62852a7ac50,0xbfd7be3a7ad1af02,1
+np.float64,0xbfc1fa0ba923f418,0xbfc35f0f19447df7,1
+np.float64,0xbfe01b8cec20371a,0xbfe6658c7e6c8e50,1
+np.float64,0xbfeda81a147b5034,0xc004e9c94f2b91c1,1
+np.float64,0xbfe1c36a97e386d5,0xbfe9ead4d6beaa92,1
+np.float64,0x3fe50be51f2a17ca,0x3fe02c8067d9e5c5,1
+np.float64,0x3febed4d3337da9a,0x3fe413956466134f,1
+np.float64,0x80068ea59ced1d4c,0x80068ea59ced1d4c,1
+np.float64,0x3febe77d5877cefb,0x3fe4107ac088bc71,1
+np.float64,0x800ae77617d5ceed,0x800ae77617d5ceed,1
+np.float64,0x3fd0546b60a0a8d7,0x3fcd16c2e995ab23,1
+np.float64,0xbfe33e1476667c29,0xbfed6d7faec4db2f,1
+np.float64,0x3fe9d2fd51b3a5fb,0x3fe2eef834310219,1
+np.float64,0x8004249878284932,0x8004249878284932,1
+np.float64,0xbfd5b485c72b690c,0xbfda828ccc6a7a5c,1
+np.float64,0x7fcd6e6b6b3adcd6,0x408622807f04768e,1
+np.float64,0x3fd7f9c32caff386,0x3fd45d024514b8da,1
+np.float64,0x7f87eb9d702fd73a,0x40860aa99fcff27f,1
+np.float64,0xbfc5d1f6fb2ba3ec,0xbfc7ec367cb3fecc,1
+np.float64,0x8008316a44d062d5,0x8008316a44d062d5,1
+np.float64,0xbfd54e4358aa9c86,0xbfd9e889d2998a4a,1
+np.float64,0xda65facdb4cc0,0xda65facdb4cc0,1
+np.float64,0x3fc5b4f6f32b69f0,0x3fc40d13aa8e248b,1
+np.float64,0x3fd825a5d5b04b4c,0x3fd47ce73e04d3ff,1
+np.float64,0x7ac9d56ef593b,0x7ac9d56ef593b,1
+np.float64,0xbfd0a51977214a32,0xbfd34702071428be,1
+np.float64,0x3fd21f620b243ec4,0x3fcfea0c02193640,1
+np.float64,0x3fe6fb3f1b2df67e,0x3fe151ffb18c983b,1
+np.float64,0x700de022e01bd,0x700de022e01bd,1
+np.float64,0xbfbb76b81236ed70,0xbfbd0d31deea1ec7,1
+np.float64,0x3fecfc3856f9f870,0x3fe4a2fcadf221e0,1
+np.float64,0x3fede286517bc50c,0x3fe51af2fbd6ef63,1
+np.float64,0x7fdc8da96c391b52,0x408627ce09cfef2b,1
+np.float64,0x8000edfcfb81dbfb,0x8000edfcfb81dbfb,1
+np.float64,0x8009ebc42af3d789,0x8009ebc42af3d789,1
+np.float64,0x7fd658aaf8acb155,0x408625d80cd1ccc9,1
+np.float64,0x3feea584a37d4b09,0x3fe57f29a73729cd,1
+np.float64,0x4cfe494699fca,0x4cfe494699fca,1
+np.float64,0xbfe9d96460b3b2c9,0xbffa62ecfa026c77,1
+np.float64,0x7fdb3852c3b670a5,0x4086276c191dc9b1,1
+np.float64,0xbfe4d1fc9ee9a3f9,0xbff0d37ce37cf479,1
+np.float64,0xffefffffffffffff,0xfff8000000000000,1
+np.float64,0xbfd1c43d7fa3887a,0xbfd4cfbefb5f2c43,1
+np.float64,0x3fec4a8e0d78951c,0x3fe4453a82ca2570,1
+np.float64,0x7fafed74583fdae8,0x4086181017b8dac9,1
+np.float64,0x80076c4ebcced89e,0x80076c4ebcced89e,1
+np.float64,0x8001a9aa7b235356,0x8001a9aa7b235356,1
+np.float64,0x121260fe2424d,0x121260fe2424d,1
+np.float64,0x3fddd028e3bba052,0x3fd87998c4c43c5b,1
+np.float64,0x800ed1cf4a9da39f,0x800ed1cf4a9da39f,1
+np.float64,0xbfef2e63d7fe5cc8,0xc00d53480b16971b,1
+np.float64,0xbfedde3309fbbc66,0xc005ab55b7a7c127,1
+np.float64,0x3fda3e1e85b47c3d,0x3fd5fddafd8d6729,1
+np.float64,0x8007c6443c6f8c89,0x8007c6443c6f8c89,1
+np.float64,0xbfe101705f2202e0,0xbfe8420817665121,1
+np.float64,0x7fe0bff3c1e17fe7,0x4086291539c56d80,1
+np.float64,0x7fe6001dab6c003a,0x40862b43aa7cb060,1
+np.float64,0x7fbdecf7de3bd9ef,0x40861d170b1c51a5,1
+np.float64,0xbfc0fd508c21faa0,0xbfc23a5876e99fa3,1
+np.float64,0xbfcf6eb14f3edd64,0xbfd208cbf742c8ea,1
+np.float64,0x3f6d40ea403a81d5,0x3f6d33934ab8e799,1
+np.float64,0x7fc32600b6264c00,0x40861f10302357e0,1
+np.float64,0x3fd05870baa0b0e0,0x3fcd1d2af420fac7,1
+np.float64,0x80051d5120aa3aa3,0x80051d5120aa3aa3,1
+np.float64,0x3fdb783fcfb6f080,0x3fd6db229658c083,1
+np.float64,0x3fe0b61199e16c24,0x3fdae41e277be2eb,1
+np.float64,0x3daf62167b5ed,0x3daf62167b5ed,1
+np.float64,0xbfec3c53b6f878a7,0xc0011f0ce7a78a2a,1
+np.float64,0x800fc905161f920a,0x800fc905161f920a,1
+np.float64,0x3fdc7b9cc138f73a,0x3fd78f9c2360e661,1
+np.float64,0x7fe4079e97a80f3c,0x40862a83795f2443,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0x7fe6da5345adb4a6,0x40862b9183c1e4b0,1
+np.float64,0xbfd0a76667214ecc,0xbfd34a1e0c1f6186,1
+np.float64,0x37fb0b906ff62,0x37fb0b906ff62,1
+np.float64,0x7fe170e59fa2e1ca,0x408629680a55e5c5,1
+np.float64,0x3fea900c77752019,0x3fe356eec75aa345,1
+np.float64,0x3fc575c63a2aeb8c,0x3fc3d701167d76b5,1
+np.float64,0x3fe8b45da87168bc,0x3fe24ecbb778fd44,1
+np.float64,0xbfcb990ab5373214,0xbfcf1596c076813c,1
+np.float64,0xf146fdfbe28e0,0xf146fdfbe28e0,1
+np.float64,0x8001fcd474c3f9aa,0x8001fcd474c3f9aa,1
+np.float64,0xbfe9b555eeb36aac,0xbffa0630c3bb485b,1
+np.float64,0x800f950be83f2a18,0x800f950be83f2a18,1
+np.float64,0x7feb0e03ab761c06,0x40862ceb30e36887,1
+np.float64,0x7fca51bd4a34a37a,0x4086219b9dfd35c9,1
+np.float64,0xbfdc27c34cb84f86,0xbfe28ccde8d6bc08,1
+np.float64,0x80009ce1714139c4,0x80009ce1714139c4,1
+np.float64,0x8005290fb1ea5220,0x8005290fb1ea5220,1
+np.float64,0xbfee81e6473d03cd,0xc00885972ca1699b,1
+np.float64,0x7fcfb11a373f6233,0x408623180b8f75d9,1
+np.float64,0xbfcb9c4bfd373898,0xbfcf19bd25881928,1
+np.float64,0x7feaec5885f5d8b0,0x40862ce136050e6c,1
+np.float64,0x8009e17a4a53c2f5,0x8009e17a4a53c2f5,1
+np.float64,0xbfe1cceb9e6399d7,0xbfea0038bd3def20,1
+np.float64,0x8009170bd7122e18,0x8009170bd7122e18,1
+np.float64,0xb2b6f7f1656df,0xb2b6f7f1656df,1
+np.float64,0x3fc75bfd1f2eb7f8,0x3fc574c858332265,1
+np.float64,0x3fa24c06ec249800,0x3fa1fa462ffcb8ec,1
+np.float64,0xaa9a4d2d5534a,0xaa9a4d2d5534a,1
+np.float64,0xbfd7b76208af6ec4,0xbfdda0c3200dcc9f,1
+np.float64,0x7f8cbab73039756d,0x40860c20cba57a94,1
+np.float64,0x3fdbcf9f48b79f3f,0x3fd71827a60e8b6d,1
+np.float64,0xbfdd60f71a3ac1ee,0xbfe3a94bc8cf134d,1
+np.float64,0xb9253589724a7,0xb9253589724a7,1
+np.float64,0xbfcf28e37e3e51c8,0xbfd1da9977b741e3,1
+np.float64,0x80011457f7e228b1,0x80011457f7e228b1,1
+np.float64,0x7fec33df737867be,0x40862d404a897122,1
+np.float64,0xae55f8f95cabf,0xae55f8f95cabf,1
+np.float64,0xbfc1ab9397235728,0xbfc303e5533d4a5f,1
+np.float64,0x7fef0f84b3be1f08,0x40862e05f9ba7118,1
+np.float64,0x7fdc94f328b929e5,0x408627d01449d825,1
+np.float64,0x3fee1b598c7c36b3,0x3fe53847be166834,1
+np.float64,0x3fee8326f37d064e,0x3fe56d96f3fbcf43,1
+np.float64,0x3fe7b18a83ef6316,0x3fe1bb6a6d48c675,1
+np.float64,0x3fe5db969c6bb72e,0x3fe0a8d7d151996c,1
+np.float64,0x3e3391d27c673,0x3e3391d27c673,1
+np.float64,0x3fe79a46d76f348e,0x3fe1ae09a96ea628,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x7fe57d6505aafac9,0x40862b13925547f1,1
+np.float64,0x3fc433371d28666e,0x3fc2c196a764c47b,1
+np.float64,0x8008dbf69cd1b7ee,0x8008dbf69cd1b7ee,1
+np.float64,0xbfe744f459ee89e8,0xbff4c847ad3ee152,1
+np.float64,0x80098aa245331545,0x80098aa245331545,1
+np.float64,0x6747112ece8e3,0x6747112ece8e3,1
+np.float64,0x5d342a40ba69,0x5d342a40ba69,1
+np.float64,0xf7a17739ef42f,0xf7a17739ef42f,1
+np.float64,0x3fe1b34a9d236695,0x3fdc2d7c4e2c347a,1
+np.float64,0x7fb53bf5ec2a77eb,0x40861a585ec8f7ff,1
+np.float64,0xbfe6256f1cec4ade,0xbff2d89a36be65ae,1
+np.float64,0xb783bc9b6f078,0xb783bc9b6f078,1
+np.float64,0xbfedf74a3bfbee94,0xc0060bb6f2bc11ef,1
+np.float64,0x3fda2a5eccb454be,0x3fd5efd7f18b8e81,1
+np.float64,0xbfb3838ab2270718,0xbfb44c337fbca3c3,1
+np.float64,0x3fb4ac6dc22958e0,0x3fb3e194ca01a502,1
+np.float64,0x76c11aaaed824,0x76c11aaaed824,1
+np.float64,0x80025bb1af04b764,0x80025bb1af04b764,1
+np.float64,0x3fdc02740ab804e8,0x3fd73b8cd6f95f19,1
+np.float64,0x3fe71856f5ee30ae,0x3fe162e9fafb4428,1
+np.float64,0x800236f332646de7,0x800236f332646de7,1
+np.float64,0x7fe13fd9d2e27fb3,0x408629516b42a317,1
+np.float64,0x7fdf6bbd34bed779,0x40862892069d805c,1
+np.float64,0x3fd4727beba8e4f8,0x3fd1be5b48d9e282,1
+np.float64,0x800e0fac9e5c1f59,0x800e0fac9e5c1f59,1
+np.float64,0xfb54423ff6a89,0xfb54423ff6a89,1
+np.float64,0x800fbf7ed47f7efe,0x800fbf7ed47f7efe,1
+np.float64,0x3fe9d41fa2f3a840,0x3fe2ef98dc1fd463,1
+np.float64,0x800d733e805ae67d,0x800d733e805ae67d,1
+np.float64,0x3feebe4c46fd7c98,0x3fe58bcf7f47264e,1
+np.float64,0x7fe1ab77b5e356ee,0x40862982bb3dce34,1
+np.float64,0xbfdddac05abbb580,0xbfe41aa45f72d5a2,1
+np.float64,0x3fe14219dee28434,0x3fdb9b137d1f1220,1
+np.float64,0x3fe25d3d5a24ba7b,0x3fdd06e1cf32d35a,1
+np.float64,0x8000fa4fbe81f4a0,0x8000fa4fbe81f4a0,1
+np.float64,0x3fe303e23e6607c4,0x3fddd94982efa9f1,1
+np.float64,0x3fe89cf5d83139ec,0x3fe24193a2e12f75,1
+np.float64,0x3fe9b36ef87366de,0x3fe2dd7cdc25a4a5,1
+np.float64,0xbfdb8b38f8371672,0xbfe2023ba7e002bb,1
+np.float64,0xafc354955f86b,0xafc354955f86b,1
+np.float64,0xbfe2f3d49e65e7a9,0xbfecb557a94123d3,1
+np.float64,0x800496617c092cc4,0x800496617c092cc4,1
+np.float64,0x32db0cfa65b62,0x32db0cfa65b62,1
+np.float64,0xbfd893bfa2b12780,0xbfdf02a8c1e545aa,1
+np.float64,0x7fd5ac927d2b5924,0x408625997e7c1f9b,1
+np.float64,0x3fde9defb8bd3be0,0x3fd9056190986349,1
+np.float64,0x80030cfeb54619fe,0x80030cfeb54619fe,1
+np.float64,0x3fcba85b273750b8,0x3fc90a5ca976594f,1
+np.float64,0x3fe98f6f5cf31edf,0x3fe2c97fcb4eca25,1
+np.float64,0x3fe33dbf90667b80,0x3fde21b83321b993,1
+np.float64,0x3fe4686636e8d0cc,0x3fdf928cdca751b3,1
+np.float64,0x80018ade6ce315be,0x80018ade6ce315be,1
+np.float64,0x7fa9af70c8335ee1,0x408616528cd5a906,1
+np.float64,0x3fbeb460aa3d68c0,0x3fbcff96b00a2193,1
+np.float64,0x7fa82c869830590c,0x408615d6598d9368,1
+np.float64,0xd08c0e6fa1182,0xd08c0e6fa1182,1
+np.float64,0x3fef4eb750fe9d6f,0x3fe5d522fd4e7f64,1
+np.float64,0xbfc586f5492b0dec,0xbfc791eaae92aad1,1
+np.float64,0x7fede64ac7bbcc95,0x40862db7f444fa7b,1
+np.float64,0x3fe540003d6a8000,0x3fe04bdfc2916a0b,1
+np.float64,0x8009417fe6f28300,0x8009417fe6f28300,1
+np.float64,0x3fe6959cf16d2b3a,0x3fe116a1ce01887b,1
+np.float64,0x3fb0a40036214800,0x3fb01f447778219a,1
+np.float64,0x3feff26e91ffe4dd,0x3fe627798fc859a7,1
+np.float64,0x7fed8e46cd7b1c8d,0x40862da044a1d102,1
+np.float64,0x7fec4eb774f89d6e,0x40862d47e43edb53,1
+np.float64,0x3fe800e5e07001cc,0x3fe1e8e2b9105fc2,1
+np.float64,0x800f4eb2f9be9d66,0x800f4eb2f9be9d66,1
+np.float64,0x800611659bcc22cc,0x800611659bcc22cc,1
+np.float64,0x3fd66e65d2acdccc,0x3fd33ad63a5e1000,1
+np.float64,0x800a9085b7f5210c,0x800a9085b7f5210c,1
+np.float64,0x7fdf933a3fbf2673,0x4086289c0e292f2b,1
+np.float64,0x1cd1ba7a39a38,0x1cd1ba7a39a38,1
+np.float64,0xbfefd0b10fffa162,0xc0149ded900ed851,1
+np.float64,0xbfe8c63485b18c69,0xbff7cf3078b1574f,1
+np.float64,0x3fecde56ca79bcae,0x3fe4934afbd7dda9,1
+np.float64,0x8006cd6888cd9ad2,0x8006cd6888cd9ad2,1
+np.float64,0x3fd7a391c2af4724,0x3fd41e2f74df2329,1
+np.float64,0x3fe6a8ad58ed515a,0x3fe121ccfb28e6f5,1
+np.float64,0x7fe18a80dd631501,0x40862973c09086b9,1
+np.float64,0xbf74fd6d8029fb00,0xbf750b3e368ebe6b,1
+np.float64,0x3fdd35e93dba6bd4,0x3fd810071faaffad,1
+np.float64,0x3feb0d8f57361b1f,0x3fe39b3abdef8b7a,1
+np.float64,0xbfd5ec7288abd8e6,0xbfdad764df0d2ca1,1
+np.float64,0x7fdc848272b90904,0x408627cb78f3fb9e,1
+np.float64,0x800ed3eda91da7db,0x800ed3eda91da7db,1
+np.float64,0x3fefac64857f58c9,0x3fe60459dbaad1ba,1
+np.float64,0x3fd1df7a5ba3bef4,0x3fcf864a39b926ff,1
+np.float64,0xfe26ca4bfc4da,0xfe26ca4bfc4da,1
+np.float64,0xbfd1099f8da21340,0xbfd3cf6e6efe934b,1
+np.float64,0xbfe15de9a7a2bbd4,0xbfe909cc895f8795,1
+np.float64,0x3fe89714ed712e2a,0x3fe23e40d31242a4,1
+np.float64,0x800387113e470e23,0x800387113e470e23,1
+np.float64,0x3fe4f80730e9f00e,0x3fe0208219314cf1,1
+np.float64,0x2f95a97c5f2b6,0x2f95a97c5f2b6,1
+np.float64,0x800ea7cdd87d4f9c,0x800ea7cdd87d4f9c,1
+np.float64,0xbf64b967c0297300,0xbf64c020a145b7a5,1
+np.float64,0xbfc5a91a342b5234,0xbfc7bafd77a61d81,1
+np.float64,0xbfe2226fe76444e0,0xbfeac33eb1d1b398,1
+np.float64,0x3fc6aaa8d42d5552,0x3fc4de79f5c68cd4,1
+np.float64,0x3fe54fd4c1ea9faa,0x3fe05561a9a5922b,1
+np.float64,0x80029c1f75653840,0x80029c1f75653840,1
+np.float64,0xbfcb4a84a2369508,0xbfceb1a23bac3995,1
+np.float64,0x80010abeff02157f,0x80010abeff02157f,1
+np.float64,0x7f92d12cf825a259,0x40860e49bde3a5b6,1
+np.float64,0x800933e7027267ce,0x800933e7027267ce,1
+np.float64,0x3fc022b12e204562,0x3fbe64acc53ed887,1
+np.float64,0xbfe35f938de6bf27,0xbfedc1f3e443c016,1
+np.float64,0x1f8d9bae3f1b4,0x1f8d9bae3f1b4,1
+np.float64,0x3fe552f22ceaa5e4,0x3fe057404072350f,1
+np.float64,0xbfa73753442e6ea0,0xbfa7c24a100190f1,1
+np.float64,0x7fb3e2982827c52f,0x408619d1efa676b6,1
+np.float64,0xbfd80cb7a5301970,0xbfde28e65f344f33,1
+np.float64,0xbfcde835973bd06c,0xbfd10806fba46c8f,1
+np.float64,0xbfd4e3c749a9c78e,0xbfd949aff65de39c,1
+np.float64,0x3fcb4b9d6f36973b,0x3fc8be02ad6dc0d3,1
+np.float64,0x1a63000034c7,0x1a63000034c7,1
+np.float64,0x7fdc9c751e3938e9,0x408627d22df71959,1
+np.float64,0x3fd74f3f712e9e7f,0x3fd3e07df0c37ec1,1
+np.float64,0xbfceab74d33d56e8,0xbfd187e99bf82903,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0xbfb2cca466259948,0xbfb3868208e8de30,1
+np.float64,0x800204688b8408d2,0x800204688b8408d2,1
+np.float64,0x3e4547407c8aa,0x3e4547407c8aa,1
+np.float64,0xbfe4668846e8cd10,0xbff03c85189f3818,1
+np.float64,0x800dd350245ba6a0,0x800dd350245ba6a0,1
+np.float64,0xbfbc13c160382780,0xbfbdbd56ce996d16,1
+np.float64,0x7fe25a628a24b4c4,0x408629d06eb2d64d,1
+np.float64,0x3fd19dabbc233b57,0x3fcf1f3ed1d34c8c,1
+np.float64,0x547e20faa8fc5,0x547e20faa8fc5,1
+np.float64,0xbfe19392c6232726,0xbfe97ffe4f303335,1
+np.float64,0x3f87f9f6702ff400,0x3f87d64fb471bb04,1
+np.float64,0x9dfc52db3bf8b,0x9dfc52db3bf8b,1
+np.float64,0x800e1f5a9adc3eb5,0x800e1f5a9adc3eb5,1
+np.float64,0xbfddbd09c8bb7a14,0xbfe3fed7d7cffc70,1
+np.float64,0xbfeda71af87b4e36,0xc004e6631c514544,1
+np.float64,0xbfdbfcfe1bb7f9fc,0xbfe266b5d4a56265,1
+np.float64,0x3fe4ee78cd69dcf2,0x3fe01abba4e81fc9,1
+np.float64,0x800f13b820de2770,0x800f13b820de2770,1
+np.float64,0x3f861e09702c3c00,0x3f85ffae83b02c4f,1
+np.float64,0xbfc0972479212e48,0xbfc1c4bf70b30cbc,1
+np.float64,0x7fef057ef57e0afd,0x40862e036479f6a9,1
+np.float64,0x8bdbabe517b76,0x8bdbabe517b76,1
+np.float64,0xbfec495417f892a8,0xc0013ade88746d18,1
+np.float64,0x3fec680ab3f8d015,0x3fe454dd304b560d,1
+np.float64,0xbfae7ce60c3cf9d0,0xbfaf6eef15bbe56b,1
+np.float64,0x3fec314124786282,0x3fe437ca06294f5a,1
+np.float64,0x7fd5ed05b82bda0a,0x408625b125518e58,1
+np.float64,0x3feac9f02f3593e0,0x3fe3768104dd5cb7,1
+np.float64,0x0,0x0,1
+np.float64,0xbfddd2abd5bba558,0xbfe41312b8ea20de,1
+np.float64,0xbfedf9558c7bf2ab,0xc00613c53e0bb33a,1
+np.float64,0x3fef245ffefe48c0,0x3fe5bfb4dfe3b7a5,1
+np.float64,0x7fe178604922f0c0,0x4086296b77d5eaef,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0x7fed026766ba04ce,0x40862d7a0dc45643,1
+np.float64,0xbfde27d8c3bc4fb2,0xbfe46336b6447697,1
+np.float64,0x3fe9485d9cb290bb,0x3fe2a1e4b6419423,1
+np.float64,0xbfe27b8a7464f715,0xbfeb9382f5b16f65,1
+np.float64,0x5c34d274b869b,0x5c34d274b869b,1
+np.float64,0xbfeee0b7453dc16f,0xc00acdb46459b6e6,1
+np.float64,0x7fe3dfb4d4e7bf69,0x40862a73785fdf12,1
+np.float64,0xb4635eef68c6c,0xb4635eef68c6c,1
+np.float64,0xbfe522a2c82a4546,0xbff148912a59a1d6,1
+np.float64,0x8009ba38a9737472,0x8009ba38a9737472,1
+np.float64,0xbfc056ff3820ae00,0xbfc17b2205fa180d,1
+np.float64,0x7fe1c8b8a0239170,0x4086298feeee6133,1
+np.float64,0x3fe2d2c6b9e5a58e,0x3fdd9b907471031b,1
+np.float64,0x3fa0a161bc2142c0,0x3fa05db36f6a073b,1
+np.float64,0x3fdef4268ebde84c,0x3fd93f980794d1e7,1
+np.float64,0x800ecd9fe2fd9b40,0x800ecd9fe2fd9b40,1
+np.float64,0xbfc9fbd45e33f7a8,0xbfcd0afc47c340f6,1
+np.float64,0x3fe8c3035b718606,0x3fe2570eb65551a1,1
+np.float64,0xbfe78c4ad2ef1896,0xbff54d25b3328742,1
+np.float64,0x8006f5dcf8adebbb,0x8006f5dcf8adebbb,1
+np.float64,0x800301dca2a603ba,0x800301dca2a603ba,1
+np.float64,0xad4289e55a851,0xad4289e55a851,1
+np.float64,0x80037764f9e6eecb,0x80037764f9e6eecb,1
+np.float64,0xbfe73575b26e6aec,0xbff4abfb5e985c62,1
+np.float64,0xbfc6cb91652d9724,0xbfc91a8001b33ec2,1
+np.float64,0xbfe3a918ffe75232,0xbfee7e6e4fd34c53,1
+np.float64,0x9bc84e2b3790a,0x9bc84e2b3790a,1
+np.float64,0x7fdeec303cbdd85f,0x408628714a49d996,1
+np.float64,0x3fe1d1dcb763a3ba,0x3fdc54ce060dc7f4,1
+np.float64,0x8008ae6432b15cc9,0x8008ae6432b15cc9,1
+np.float64,0x3fd8022fa2b00460,0x3fd46322bf02a609,1
+np.float64,0xbfc55b64472ab6c8,0xbfc75d9568f462e0,1
+np.float64,0xbfe8b165437162ca,0xbff7a15e2ead645f,1
+np.float64,0x7f759330feeb3,0x7f759330feeb3,1
+np.float64,0xbfd504f68eaa09ee,0xbfd97b06c01d7473,1
+np.float64,0x54702d5aa8e06,0x54702d5aa8e06,1
+np.float64,0xbfed1779337a2ef2,0xc0032f7109ef5a51,1
+np.float64,0xe248bd4dc4918,0xe248bd4dc4918,1
+np.float64,0xbfd8c59150318b22,0xbfdf53bca6ca8b1e,1
+np.float64,0xbfe3b9d942e773b2,0xbfeea9fcad277ba7,1
+np.float64,0x800934ec127269d9,0x800934ec127269d9,1
+np.float64,0xbfbb7f535a36fea8,0xbfbd16d61b6c52b8,1
+np.float64,0xccb185a199631,0xccb185a199631,1
+np.float64,0x3fe3dda76fe7bb4e,0x3fdee83bc6094301,1
+np.float64,0xbfe0c902f5e19206,0xbfe7ca7c0e888006,1
+np.float64,0xbfefeed08cbfdda1,0xc018aadc483c8724,1
+np.float64,0x7fd0c05c52a180b8,0x40862389daf64aac,1
+np.float64,0xbfd28e3323a51c66,0xbfd5e9ba278fb685,1
+np.float64,0xbef4103b7de82,0xbef4103b7de82,1
+np.float64,0x3fe7661fd12ecc40,0x3fe18ff7dfb696e2,1
+np.float64,0x3fddd5f2f0bbabe4,0x3fd87d8bb6719c3b,1
+np.float64,0x800b3914cfd6722a,0x800b3914cfd6722a,1
+np.float64,0xf3f09a97e7e14,0xf3f09a97e7e14,1
+np.float64,0x7f97092b502e1256,0x40860fe8054cf54e,1
+np.float64,0xbfdbec7917b7d8f2,0xbfe2580b4b792c79,1
+np.float64,0x7fe7ff215aaffe42,0x40862bf5887fa062,1
+np.float64,0x80080186e570030e,0x80080186e570030e,1
+np.float64,0xbfc27f05e624fe0c,0xbfc3fa214be4adc4,1
+np.float64,0x3fe4481be1689038,0x3fdf6b11e9c4ca72,1
+np.float64,0x3fd642cc9cac8598,0x3fd31a857fe70227,1
+np.float64,0xbef8782d7df0f,0xbef8782d7df0f,1
+np.float64,0x8003077dc2e60efc,0x8003077dc2e60efc,1
+np.float64,0x80083eb5a2507d6c,0x80083eb5a2507d6c,1
+np.float64,0x800e8d1eb77d1a3e,0x800e8d1eb77d1a3e,1
+np.float64,0xbfc7737cd22ee6f8,0xbfc9e7716f03f1fc,1
+np.float64,0xbfe9a2b4ddf3456a,0xbff9d71664a8fc78,1
+np.float64,0x7fe67c7d322cf8f9,0x40862b7066465194,1
+np.float64,0x3fec080ce2b8101a,0x3fe421dac225be46,1
+np.float64,0xbfe6d27beb6da4f8,0xbff3fbb1add521f7,1
+np.float64,0x3fdd4f96ceba9f2e,0x3fd821a638986dbe,1
+np.float64,0x3fbd89f1303b13e2,0x3fbbf49223a9d002,1
+np.float64,0xbfe94e2b9d329c57,0xbff907e549c534f5,1
+np.float64,0x3fe2f2cc51e5e599,0x3fddc3d6b4a834a1,1
+np.float64,0xfdcb5b49fb96c,0xfdcb5b49fb96c,1
+np.float64,0xbfea7108fa74e212,0xbffc01b392f4897b,1
+np.float64,0x3fd38baef7a7175c,0x3fd10e7fd3b958dd,1
+np.float64,0x3fa75bf9cc2eb800,0x3fa6d792ecdedb8e,1
+np.float64,0x7fd19fd20aa33fa3,0x408623f1e2cd04c3,1
+np.float64,0x3fd62c708dac58e0,0x3fd309ec7818d16e,1
+np.float64,0x3fdf489047be9120,0x3fd978640617c758,1
+np.float64,0x1,0x1,1
+np.float64,0xbfe21e7c3ea43cf8,0xbfeaba21320697d3,1
+np.float64,0xbfd3649047a6c920,0xbfd71a6f14223744,1
+np.float64,0xbfd68ca68c2d194e,0xbfdbcce6784e5d44,1
+np.float64,0x3fdb26b0ea364d62,0x3fd6a1f86f64ff74,1
+np.float64,0xbfd843821cb08704,0xbfde80e90805ab3f,1
+np.float64,0x3fd508a27aaa1144,0x3fd22fc203a7b9d8,1
+np.float64,0xbfdb951c7eb72a38,0xbfe20aeaec13699b,1
+np.float64,0x3fef556ba57eaad7,0x3fe5d8865cce0a6d,1
+np.float64,0x3fd0d224b3a1a448,0x3fcdde7be5d7e21e,1
+np.float64,0x8007ff272baffe4f,0x8007ff272baffe4f,1
+np.float64,0x3fe1c7bddf638f7c,0x3fdc47cc6cf2f5cd,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x2016d560402f,0x2016d560402f,1
+np.float64,0xbfcca10be9394218,0xbfd033f36b94fc54,1
+np.float64,0xbfdb833628b7066c,0xbfe1fb344b840c70,1
+np.float64,0x3fd8529cb3b0a539,0x3fd49d847fe77218,1
+np.float64,0xbfc0b0ebab2161d8,0xbfc1e260c60ffd1b,1
+np.float64,0xbfea8b9a79f51735,0xbffc4ee6be8a0fa2,1
+np.float64,0x7feca8fab7f951f4,0x40862d613e454646,1
+np.float64,0x7fd8c52d82318a5a,0x408626aaf37423a3,1
+np.float64,0xbfe364ad4526c95a,0xbfedcee39bc93ff5,1
+np.float64,0x800b78161256f02d,0x800b78161256f02d,1
+np.float64,0xbfd55f0153aabe02,0xbfda01a78f72d494,1
+np.float64,0x800315a5f0662b4d,0x800315a5f0662b4d,1
+np.float64,0x7fe4c0dca02981b8,0x40862acc27e4819f,1
+np.float64,0x8009825c703304b9,0x8009825c703304b9,1
+np.float64,0x3fe6e94e1cadd29c,0x3fe1478ccc634f49,1
+np.float64,0x7fe622d8586c45b0,0x40862b504177827e,1
+np.float64,0x3fe4458600688b0c,0x3fdf67e79a84b953,1
+np.float64,0xbfdd75d8a1baebb2,0xbfe3bc9e6ca1bbb5,1
+np.float64,0x3fde789c6bbcf138,0x3fd8ec1d435531b3,1
+np.float64,0x3fe7052b94ee0a58,0x3fe157c5c4418dc1,1
+np.float64,0x7fef31652abe62c9,0x40862e0eaeabcfc0,1
+np.float64,0x3fe279691ee4f2d2,0x3fdd2aa41eb43cd4,1
+np.float64,0xbfd533fa95aa67f6,0xbfd9c12f516d29d7,1
+np.float64,0x3fe6d057f96da0b0,0x3fe138fd96693a6a,1
+np.float64,0x800bad984f775b31,0x800bad984f775b31,1
+np.float64,0x7fdd6fdba4badfb6,0x4086280c73d8ef97,1
+np.float64,0x7fe9b5c0eef36b81,0x40862c82c6f57a53,1
+np.float64,0x8000bc02ece17807,0x8000bc02ece17807,1
+np.float64,0xbff0000000000000,0xfff0000000000000,1
+np.float64,0xbfed430be3fa8618,0xc003aaf338c75b3c,1
+np.float64,0x3fee17b759fc2f6f,0x3fe53668696bf48b,1
+np.float64,0x3f8d4cf9d03a9a00,0x3f8d17d2f532afdc,1
+np.float64,0x8005d6257b8bac4c,0x8005d6257b8bac4c,1
+np.float64,0xbfd17a6df9a2f4dc,0xbfd469e3848adc6e,1
+np.float64,0xb28a293965145,0xb28a293965145,1
+np.float64,0xbfe7d011e42fa024,0xbff5cf818998c8ec,1
+np.float64,0xbfe74f0f136e9e1e,0xbff4dad6ebb0443c,1
+np.float64,0x800f249fc9be4940,0x800f249fc9be4940,1
+np.float64,0x2542f8fe4a860,0x2542f8fe4a860,1
+np.float64,0xc48d40cd891a8,0xc48d40cd891a8,1
+np.float64,0x3fe4e64bc8e9cc98,0x3fe015c9eb3caa53,1
+np.float64,0x3fd33881eca67104,0x3fd0cea886be2457,1
+np.float64,0xbfd01748fba02e92,0xbfd28875959e6901,1
+np.float64,0x7fb7ab01f22f5603,0x40861b369927bf53,1
+np.float64,0xbfe340274ce6804e,0xbfed72b39f0ebb24,1
+np.float64,0x7fc16c0c3422d817,0x40861e4eaf1a286c,1
+np.float64,0x3fc26944a324d288,0x3fc133a77b356ac4,1
+np.float64,0xa149d7134293b,0xa149d7134293b,1
+np.float64,0x800837382d106e71,0x800837382d106e71,1
+np.float64,0x797d1740f2fa4,0x797d1740f2fa4,1
+np.float64,0xc3f15b7787e2c,0xc3f15b7787e2c,1
+np.float64,0x80cad1b90195a,0x80cad1b90195a,1
+np.float64,0x3fdd8f1142bb1e23,0x3fd84d21490d1ce6,1
+np.float64,0xbfbde6c9123bcd90,0xbfbfcc030a86836a,1
+np.float64,0x8007f77e032feefd,0x8007f77e032feefd,1
+np.float64,0x3fe74fed1c6e9fda,0x3fe18322cf19cb61,1
+np.float64,0xbfd8a40bbcb14818,0xbfdf1d23520ba74b,1
+np.float64,0xbfeb7a0e6076f41d,0xbfff4ddfb926efa5,1
+np.float64,0xbfcb8c5f663718c0,0xbfcf0570f702bda9,1
+np.float64,0xf668cd97ecd1a,0xf668cd97ecd1a,1
+np.float64,0xbfe92accf572559a,0xbff8b4393878ffdb,1
+np.float64,0xbfeaa955567552ab,0xbffca70c7d73eee5,1
+np.float64,0xbfe083a14f610742,0xbfe739d84bc35077,1
+np.float64,0x78290568f0521,0x78290568f0521,1
+np.float64,0x3fe94bae2372975c,0x3fe2a3beac5c9858,1
+np.float64,0x3fca4fbab9349f78,0x3fc7edbca2492acb,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x7fb9eb505433d6a0,0x40861bf0adedb74d,1
+np.float64,0x7fdc66f72a38cded,0x408627c32aeecf0f,1
+np.float64,0x2e8e6f445d1cf,0x2e8e6f445d1cf,1
+np.float64,0xbfec43195af88633,0xc0012d7e3f91b7e8,1
+np.float64,0x7fcdb971e93b72e3,0x40862294c9e3a7bc,1
+np.float64,0x800cabc461195789,0x800cabc461195789,1
+np.float64,0x2c79709c58f2f,0x2c79709c58f2f,1
+np.float64,0x8005d772d3cbaee6,0x8005d772d3cbaee6,1
+np.float64,0x3fe84d8c03709b18,0x3fe21490ce3673dd,1
+np.float64,0x7fe5578adc2aaf15,0x40862b056e8437d4,1
+np.float64,0xbf91298c58225320,0xbf914ec86c32d11f,1
+np.float64,0xc7ed2b6d8fda6,0xc7ed2b6d8fda6,1
+np.float64,0x2761404c4ec29,0x2761404c4ec29,1
+np.float64,0x3fbad3c48835a789,0x3fb9833c02385305,1
+np.float64,0x3fa46fee5428dfe0,0x3fa40a357fb24c23,1
+np.float64,0xbfe3900c6fe72019,0xbfee3dba29dd9d43,1
+np.float64,0x3fe7a9e41a6f53c8,0x3fe1b704dfb9884b,1
+np.float64,0xbfe74a7a1eee94f4,0xbff4d269cacb1f29,1
+np.float64,0xbfee609c72fcc139,0xc007da8499d34123,1
+np.float64,0x3fef2d5fc23e5ac0,0x3fe5c44414e59cb4,1
+np.float64,0xbfd7bdc0402f7b80,0xbfddaae1e7bb78fb,1
+np.float64,0xd71ee01dae3dc,0xd71ee01dae3dc,1
+np.float64,0x3fe98cbcdef3197a,0x3fe2c7ffe33c4541,1
+np.float64,0x8000f8dbb3a1f1b8,0x8000f8dbb3a1f1b8,1
+np.float64,0x3fe3e98ad567d316,0x3fdef6e58058313f,1
+np.float64,0x41ad0bfc835a2,0x41ad0bfc835a2,1
+np.float64,0x7fdcc2dc0d3985b7,0x408627dce39f77af,1
+np.float64,0xbfe47b980de8f730,0xbff059acdccd6e2b,1
+np.float64,0xbfef49b6577e936d,0xc00e714f46b2ccc1,1
+np.float64,0x3fac31816c386300,0x3fab71cb92b0db8f,1
+np.float64,0x3fe59097e76b2130,0x3fe07c299fd1127c,1
+np.float64,0xbfecf0df5cf9e1bf,0xc002c7ebdd65039c,1
+np.float64,0x3fd2b7d0b6a56fa1,0x3fd06b638990ae02,1
+np.float64,0xbfeb68deecf6d1be,0xbfff1187e042d3e4,1
+np.float64,0x3fd44a9771a8952f,0x3fd1a01867c5e302,1
+np.float64,0xf79a9dedef354,0xf79a9dedef354,1
+np.float64,0x800c25a170d84b43,0x800c25a170d84b43,1
+np.float64,0x3ff0000000000000,0x3fe62e42fefa39ef,1
+np.float64,0x3fbff4f7623fe9f0,0x3fbe1d3878f4c417,1
+np.float64,0xd284c845a5099,0xd284c845a5099,1
+np.float64,0xbfe3c7815f678f02,0xbfeecdab5ca2e651,1
+np.float64,0x3fc19c934e233927,0x3fc08036104b1f23,1
+np.float64,0x800b6096de16c12e,0x800b6096de16c12e,1
+np.float64,0xbfe962a67e32c54d,0xbff9392313a112a1,1
+np.float64,0x2b9d0116573a1,0x2b9d0116573a1,1
+np.float64,0x3fcab269ed3564d4,0x3fc83f7e1c3095b7,1
+np.float64,0x3fc8c78d86318f1b,0x3fc6a6cde5696f99,1
+np.float64,0xd5b1e9b5ab63d,0xd5b1e9b5ab63d,1
+np.float64,0xbfed802a47fb0054,0xc00465cad3b5b0ef,1
+np.float64,0xbfd73aaf08ae755e,0xbfdcdbd62b8af271,1
+np.float64,0xbfd4f13c0229e278,0xbfd95dacff79e570,1
+np.float64,0xbfe9622808f2c450,0xbff937f13c397e8d,1
+np.float64,0xbfeddfa62efbbf4c,0xc005b0c835eed829,1
+np.float64,0x3fd65663d4acacc8,0x3fd3290cd0e675dc,1
+np.float64,0x8005e890f1abd123,0x8005e890f1abd123,1
+np.float64,0xbfe924919fb24923,0xbff8a5a827a28756,1
+np.float64,0x3fe8cdf490719be9,0x3fe25d39535e8366,1
+np.float64,0x7fc229e6ff2453cd,0x40861ea40ef87a5a,1
+np.float64,0x3fe5cf53ceeb9ea8,0x3fe0a18e0b65f27e,1
+np.float64,0xa79cf6fb4f39f,0xa79cf6fb4f39f,1
+np.float64,0x7fddbb3c0f3b7677,0x40862820d5edf310,1
+np.float64,0x3e1011de7c203,0x3e1011de7c203,1
+np.float64,0x3fc0b59a83216b38,0x3fbf6916510ff411,1
+np.float64,0x8647f98d0c8ff,0x8647f98d0c8ff,1
+np.float64,0x8005dad33ecbb5a7,0x8005dad33ecbb5a7,1
+np.float64,0x8a80d0631501a,0x8a80d0631501a,1
+np.float64,0xbfe18f7d6ee31efb,0xbfe976f06713afc1,1
+np.float64,0xbfe06eaed560dd5e,0xbfe70eac696933e6,1
+np.float64,0xbfed8ef93c7b1df2,0xc00495bfa3195b53,1
+np.float64,0x3febe9c24677d385,0x3fe411b10db16c42,1
+np.float64,0x7fd5d80c1fabb017,0x408625a97a7787ba,1
+np.float64,0x3fca79b59334f368,0x3fc8108a521341dc,1
+np.float64,0xbfccf8db4339f1b8,0xbfd06c9a5424aadb,1
+np.float64,0xbfea5ac5a574b58b,0xbffbc21d1405d840,1
+np.float64,0x800ce2bf4b19c57f,0x800ce2bf4b19c57f,1
+np.float64,0xbfe8df896d31bf13,0xbff807ab38ac41ab,1
+np.float64,0x3feab83da9f5707c,0x3fe36cdd827c0eff,1
+np.float64,0x3fee717683bce2ed,0x3fe564879171719b,1
+np.float64,0x80025e5577c4bcac,0x80025e5577c4bcac,1
+np.float64,0x3fe3e5378e67ca70,0x3fdef1902c5d1efd,1
+np.float64,0x3fa014bb7c202980,0x3f9faacf9238d499,1
+np.float64,0x3fddbf5e16bb7ebc,0x3fd86e2311cb0f6d,1
+np.float64,0x3fd24e50e6a49ca0,0x3fd0198f04f82186,1
+np.float64,0x656b5214cad6b,0x656b5214cad6b,1
+np.float64,0x8b0a4bfd1614a,0x8b0a4bfd1614a,1
+np.float64,0xbfeeb6bd9e7d6d7b,0xc009b669285e319e,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0xbfe719feceee33fe,0xbff47a4c8cbf0cca,1
+np.float64,0xbfd14fa8c8a29f52,0xbfd42f27b1aced39,1
+np.float64,0x7fec9dcb80f93b96,0x40862d5e1e70bbb9,1
+np.float64,0x7fecacb826f9596f,0x40862d6249746915,1
+np.float64,0x973459f52e68b,0x973459f52e68b,1
+np.float64,0x7f40a59e00214b3b,0x4085f194f45f82b1,1
+np.float64,0x7fc5dbaec32bb75d,0x4086201f3e7065d9,1
+np.float64,0x82d0801305a10,0x82d0801305a10,1
+np.float64,0x7fec81c0f4790381,0x40862d5643c0fc85,1
+np.float64,0xbfe2d81e9ee5b03d,0xbfec71a8e864ea40,1
+np.float64,0x6c545c9ad8a8c,0x6c545c9ad8a8c,1
+np.float64,0x3f9be95a5037d2b5,0x3f9b89b48ac8f5d8,1
+np.float64,0x8000cae9702195d4,0x8000cae9702195d4,1
+np.float64,0xbfd375f45126ebe8,0xbfd733677e54a80d,1
+np.float64,0x3fd29a5b81a534b7,0x3fd05494bf200278,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x7fca8fc195351f82,0x408621ae61aa6c13,1
+np.float64,0x1b28e2ae3651d,0x1b28e2ae3651d,1
+np.float64,0x3fe7fdbd14effb7a,0x3fe1e714884b46a8,1
+np.float64,0x3fdf1ce068be39c0,0x3fd95b054e0fad3d,1
+np.float64,0x3fe79f9a636f3f34,0x3fe1b11a40c00b3e,1
+np.float64,0x3fe60eb7036c1d6e,0x3fe0c72a02176874,1
+np.float64,0x229da17e453b5,0x229da17e453b5,1
+np.float64,0x3fc1a921b5235240,0x3fc08b3f35e47fb1,1
+np.float64,0xbb92d2af7725b,0xbb92d2af7725b,1
+np.float64,0x3fe4110cb1e8221a,0x3fdf2787de6c73f7,1
+np.float64,0xbfbc87771a390ef0,0xbfbe3f6e95622363,1
+np.float64,0xbfe74025dfee804c,0xbff4bf7b1895e697,1
+np.float64,0x964eb6592c9d7,0x964eb6592c9d7,1
+np.float64,0x3f951689b82a2d00,0x3f94dfb38d746fdf,1
+np.float64,0x800356271be6ac4f,0x800356271be6ac4f,1
+np.float64,0x7fefffffffffffff,0x40862e42fefa39ef,1
+np.float64,0xbfed5ce250fab9c5,0xc003f7ddfeb94345,1
+np.float64,0x3fec3d5dc1387abc,0x3fe43e39c02d86f4,1
+np.float64,0x3999897e73332,0x3999897e73332,1
+np.float64,0xbfdcb57744b96aee,0xbfe30c4b98f3d088,1
+np.float64,0x7f961fb0b82c3f60,0x40860f9549c3a380,1
+np.float64,0x67d6efcacfadf,0x67d6efcacfadf,1
+np.float64,0x8002c9498f859294,0x8002c9498f859294,1
+np.float64,0xbfa3033800260670,0xbfa35fe3bf43e188,1
+np.float64,0xbfeab2fc157565f8,0xbffcc413c486b4eb,1
+np.float64,0x3fe25e62f364bcc6,0x3fdd0856e19e3430,1
+np.float64,0x7fb2f42dda25e85b,0x4086196fb34a65fd,1
+np.float64,0x3fe0f1a5af61e34c,0x3fdb3235a1786efb,1
+np.float64,0x800a340ca1f4681a,0x800a340ca1f4681a,1
+np.float64,0x7c20b9def8418,0x7c20b9def8418,1
+np.float64,0xdf0842a1be109,0xdf0842a1be109,1
+np.float64,0x3fe9f22cc2f3e45a,0x3fe300359b842bf0,1
+np.float64,0x3fe389ed73e713da,0x3fde809780fe4432,1
+np.float64,0x9500fb932a020,0x9500fb932a020,1
+np.float64,0x3fd8a21ffdb14440,0x3fd4d70862345d86,1
+np.float64,0x800d99c15cbb3383,0x800d99c15cbb3383,1
+np.float64,0x3fd96c98c932d932,0x3fd568959c9b028f,1
+np.float64,0x7fc228483a24508f,0x40861ea358420976,1
+np.float64,0x7fc6737bef2ce6f7,0x408620560ffc6a98,1
+np.float64,0xbfb2c27cee2584f8,0xbfb37b8cc7774b5f,1
+np.float64,0xbfd18409f9230814,0xbfd4771d1a9a24fb,1
+np.float64,0x3fb53cb3f42a7968,0x3fb466f06f88044b,1
+np.float64,0x3fef61d0187ec3a0,0x3fe5dec8a9d13dd9,1
+np.float64,0x3fe59a6ffd2b34e0,0x3fe0820a99c6143d,1
+np.float64,0x3fce18aff43c3160,0x3fcb07c7b523f0d1,1
+np.float64,0xbfb1319a62226338,0xbfb1cc62f31b2b40,1
+np.float64,0xa00cce6d4019a,0xa00cce6d4019a,1
+np.float64,0x80068ae8e0ed15d3,0x80068ae8e0ed15d3,1
+np.float64,0x3fecef353239de6a,0x3fe49c280adc607b,1
+np.float64,0x3fdf1a7fb0be34ff,0x3fd9596bafe2d766,1
+np.float64,0x3feb5e12eeb6bc26,0x3fe3c6be3ede8d07,1
+np.float64,0x3fdeff5cd43dfeba,0x3fd947262ec96b05,1
+np.float64,0x3f995e75e832bd00,0x3f990f511f4c7f1c,1
+np.float64,0xbfeb5b3ed0b6b67e,0xbffee24fc0fc2881,1
+np.float64,0x7fb82aad0a305559,0x40861b614d901182,1
+np.float64,0xbfe5c3a4926b8749,0xbff23cd0ad144fe6,1
+np.float64,0x3fef47da373e8fb4,0x3fe5d1aaa4031993,1
+np.float64,0x7fc6a8c3872d5186,0x40862068f5ca84be,1
+np.float64,0x7fc0c2276221844e,0x40861dff2566d001,1
+np.float64,0x7fc9ce7d28339cf9,0x40862173541f84d1,1
+np.float64,0x3fce2c34933c5869,0x3fcb179428ad241d,1
+np.float64,0xbfcf864c293f0c98,0xbfd21872c4821cfc,1
+np.float64,0x3fc51fd1f82a3fa4,0x3fc38d4f1685c166,1
+np.float64,0xbfe2707b70a4e0f7,0xbfeb795fbd5bb444,1
+np.float64,0x46629b568cc54,0x46629b568cc54,1
+np.float64,0x7fe5f821f32bf043,0x40862b40c2cdea3f,1
+np.float64,0x3fedd2c9457ba592,0x3fe512ce92394526,1
+np.float64,0x7fe6dcb8ceadb971,0x40862b925a7dc05d,1
+np.float64,0x3fd1b983b4a37307,0x3fcf4ae2545cf64e,1
+np.float64,0xbfe1c93104639262,0xbfe9f7d28e4c0c82,1
+np.float64,0x995ebc2932bd8,0x995ebc2932bd8,1
+np.float64,0x800a4c3ee614987e,0x800a4c3ee614987e,1
+np.float64,0x3fbb58766e36b0f0,0x3fb9fb3b9810ec16,1
+np.float64,0xbfe36d636666dac7,0xbfede5080f69053c,1
+np.float64,0x3f4feee1003fddc2,0x3f4feae5f05443d1,1
+np.float64,0x3fed0b772ffa16ee,0x3fe4aafb924903c6,1
+np.float64,0x800bb3faef3767f6,0x800bb3faef3767f6,1
+np.float64,0x3fe285cda5e50b9c,0x3fdd3a58df06c427,1
+np.float64,0x7feb9d560bb73aab,0x40862d152362bb94,1
+np.float64,0x3fecd1f447f9a3e9,0x3fe48cc78288cb3f,1
+np.float64,0x3fca927b0c3524f6,0x3fc8250f49ba28df,1
+np.float64,0x7fcc19944e383328,0x40862221b02fcf43,1
+np.float64,0xbfd8ddf41db1bbe8,0xbfdf7b92073ff2fd,1
+np.float64,0x80006fe736e0dfcf,0x80006fe736e0dfcf,1
+np.float64,0x800bbeb66d577d6d,0x800bbeb66d577d6d,1
+np.float64,0xbfe4329353e86526,0xbfefeaf19ab92b42,1
+np.float64,0x2fad72805f5af,0x2fad72805f5af,1
+np.float64,0x3fe1b827aa637050,0x3fdc33bf46012c0d,1
+np.float64,0x3fc3f3f8e227e7f2,0x3fc28aeb86d65278,1
+np.float64,0x3fec018933780312,0x3fe41e619aa4285c,1
+np.float64,0xbfd92428e0b24852,0xbfdfeecb08d154df,1
+np.float64,0x2d7046845ae0a,0x2d7046845ae0a,1
+np.float64,0x7fde7fd2233cffa3,0x408628550f8a948f,1
+np.float64,0x8000a32cd241465a,0x8000a32cd241465a,1
+np.float64,0x8004267a45084cf5,0x8004267a45084cf5,1
+np.float64,0xbfe6b422556d6844,0xbff3c71f67661e6e,1
+np.float64,0x3fe3a37d922746fb,0x3fdea04e04d6195c,1
+np.float64,0xbfddcc54b53b98aa,0xbfe40d2389cdb848,1
+np.float64,0x3fe18b4b92a31697,0x3fdbf9e68cbf5794,1
+np.float64,0x7fc9c5b2ee338b65,0x408621709a17a47a,1
+np.float64,0x1ebd1ce03d7b,0x1ebd1ce03d7b,1
+np.float64,0x8008a6fc39d14df9,0x8008a6fc39d14df9,1
+np.float64,0x3fec11384c782270,0x3fe426bdaedd2965,1
+np.float64,0x3fefc28344ff8507,0x3fe60f75d34fc3d2,1
+np.float64,0xc35f379786be7,0xc35f379786be7,1
+np.float64,0x3feef51f4a7dea3e,0x3fe5a7b95d7786b5,1
+np.float64,0x3fec9b9f0379373e,0x3fe4702477abbb63,1
+np.float64,0x3fde94f8cdbd29f0,0x3fd8ff50f7df0a6f,1
+np.float64,0xbfed32d1cdfa65a4,0xc0037c1470f6f979,1
+np.float64,0x800d3ba44f5a7749,0x800d3ba44f5a7749,1
+np.float64,0x3fe3c56c8fe78ad9,0x3fdeca4eb9bb8918,1
+np.float64,0xbfe7c97242ef92e4,0xbff5c2950dfd6f69,1
+np.float64,0xbd9440057b288,0xbd9440057b288,1
+np.float64,0x7feb2fc111f65f81,0x40862cf524bd2001,1
+np.float64,0x800a431e2df4863d,0x800a431e2df4863d,1
+np.float64,0x80038a3b79e71478,0x80038a3b79e71478,1
+np.float64,0x80000c93d4601928,0x80000c93d4601928,1
+np.float64,0x7fe9fec022f3fd7f,0x40862c995db8ada0,1
+np.float64,0x3fead0129c35a025,0x3fe379d7a92c8f79,1
+np.float64,0x3fdd8cbaf7bb1974,0x3fd84b87ff0c26c7,1
+np.float64,0x3fe8fb7c60b1f6f9,0x3fe276d5339e7135,1
+np.float64,0x85a255e10b44b,0x85a255e10b44b,1
+np.float64,0xbfe507c23fea0f84,0xbff1212d2260022a,1
+np.float64,0x3fc5487c7b2a90f9,0x3fc3b03222d3d148,1
+np.float64,0x7fec0bdcb8f817b8,0x40862d34e8fd11e7,1
+np.float64,0xbfc5f34b4f2be698,0xbfc8146a899c7a0c,1
+np.float64,0xbfa2a49c14254940,0xbfa2fdab2eae3826,1
+np.float64,0x800ec52f15dd8a5e,0x800ec52f15dd8a5e,1
+np.float64,0xbfe3ba4b12a77496,0xbfeeab256b3e9422,1
+np.float64,0x80034d6c7ba69ada,0x80034d6c7ba69ada,1
+np.float64,0x7fd394d4202729a7,0x408624c98a216742,1
+np.float64,0xbfd4493a38289274,0xbfd865d67af2de91,1
+np.float64,0xe47d6203c8fad,0xe47d6203c8fad,1
+np.float64,0x98eb4e4b31d6a,0x98eb4e4b31d6a,1
+np.float64,0x4507fb128a100,0x4507fb128a100,1
+np.float64,0xbfc77032e42ee064,0xbfc9e36ab747a14d,1
+np.float64,0xa1f8a03b43f14,0xa1f8a03b43f14,1
+np.float64,0xbfc3d4da8527a9b4,0xbfc58c27af2476b0,1
+np.float64,0x3fc0eb7d6921d6fb,0x3fbfc858a077ed61,1
+np.float64,0x7fddb2e9403b65d2,0x4086281e98443709,1
+np.float64,0xbfa7ea62942fd4c0,0xbfa87dfd06b05d2a,1
+np.float64,0xbfe7d5c5426fab8a,0xbff5daa969c6d9e5,1
+np.float64,0x3fbf7cba0c3ef974,0x3fbdb23cd8fe875b,1
+np.float64,0x7fe92021eb324043,0x40862c53aee8b154,1
+np.float64,0x7fefbaa1827f7542,0x40862e3194737072,1
+np.float64,0x3fc6f82c402df059,0x3fc520432cbc533f,1
+np.float64,0x7fb37679a826ecf2,0x408619a5f857e27f,1
+np.float64,0x79ec1528f3d83,0x79ec1528f3d83,1
+np.float64,0x3fbefe1d0c3dfc3a,0x3fbd41650ba2c893,1
+np.float64,0x3fc3e5e11827cbc2,0x3fc27eb9b47c9c42,1
+np.float64,0x16aed1922d5db,0x16aed1922d5db,1
+np.float64,0x800124f7e58249f1,0x800124f7e58249f1,1
+np.float64,0x8004f7d12489efa3,0x8004f7d12489efa3,1
+np.float64,0x3fef80b8e27f0172,0x3fe5ee5fd43322c6,1
+np.float64,0xbfe7740c88eee819,0xbff51f823c8da14d,1
+np.float64,0xbfe6e1f1f6edc3e4,0xbff416bcb1302e7c,1
+np.float64,0x8001a2c4a7e3458a,0x8001a2c4a7e3458a,1
+np.float64,0x3fe861e155f0c3c2,0x3fe2201d3000c329,1
+np.float64,0x3fd00a101a201420,0x3fcca01087dbd728,1
+np.float64,0x7fdf0eb1133e1d61,0x4086287a327839b8,1
+np.float64,0x95e3ffdb2bc80,0x95e3ffdb2bc80,1
+np.float64,0x3fd87a1e8230f43d,0x3fd4ba1eb9be1270,1
+np.float64,0x3fedc4792afb88f2,0x3fe50b6529080f73,1
+np.float64,0x7fc9e81fa833d03e,0x4086217b428cc6ff,1
+np.float64,0xbfd21f1ba5a43e38,0xbfd54e048b988e09,1
+np.float64,0xbfbf52af5a3ea560,0xbfc0b4ab3b81fafc,1
+np.float64,0x7fe475f8e268ebf1,0x40862aaf14fee029,1
+np.float64,0x3fcf56899f3ead10,0x3fcc081de28ae9cf,1
+np.float64,0x917d407122fa8,0x917d407122fa8,1
+np.float64,0x22e23e3245c49,0x22e23e3245c49,1
+np.float64,0xbfeec2814f3d8503,0xc00a00ecca27b426,1
+np.float64,0xbfd97fee1c32ffdc,0xbfe04351dfe306ec,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log2.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log2.csv
new file mode 100644
index 0000000..26921ef
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-log2.csv
@@ -0,0 +1,1629 @@
+dtype,input,output,ulperrortol
+np.float32,0x80000000,0xff800000,3
+np.float32,0x7f12870a,0x42fe63db,3
+np.float32,0x3ef29cf5,0xbf89eb12,3
+np.float32,0x3d6ba8fb,0xc083d26c,3
+np.float32,0x3d9907e8,0xc06f8230,3
+np.float32,0x4ee592,0xc2fd656e,3
+np.float32,0x58d8b1,0xc2fd0db3,3
+np.float32,0x7ba103,0xc2fc19aa,3
+np.float32,0x7f52e90e,0x42ff70e4,3
+np.float32,0x7fcb15,0xc2fc0132,3
+np.float32,0x7cb7129f,0x42f50855,3
+np.float32,0x9faba,0xc301ae59,3
+np.float32,0x7f300a,0xc2fc04b4,3
+np.float32,0x3f0bf047,0xbf5f10cb,3
+np.float32,0x2fb1fb,0xc2fed934,3
+np.float32,0x3eedb0d1,0xbf8db417,3
+np.float32,0x3d7a0b40,0xc0811638,3
+np.float32,0x2e0bac,0xc2fef334,3
+np.float32,0x6278c1,0xc2fcc1b9,3
+np.float32,0x7f61ab2e,0x42ffa2d9,3
+np.float32,0x8fe7c,0xc301d4be,3
+np.float32,0x3f25e6ee,0xbf203536,3
+np.float32,0x7efc78f0,0x42fdf5c0,3
+np.float32,0x6d7304,0xc2fc73a7,3
+np.float32,0x7f1a472a,0x42fe89ed,3
+np.float32,0x7dd029a6,0x42f96734,3
+np.float32,0x3e9b9327,0xbfdbf8f7,3
+np.float32,0x3f4eefc1,0xbe9d2942,3
+np.float32,0x7f5b9b64,0x42ff8ebc,3
+np.float32,0x3e458ee1,0xc017ed6e,3
+np.float32,0x3f7b766b,0xbcd35acf,3
+np.float32,0x3e616070,0xc00bc378,3
+np.float32,0x7f20e633,0x42fea8f8,3
+np.float32,0x3ee3b461,0xbf95a126,3
+np.float32,0x7e7722ba,0x42fbe5f8,3
+np.float32,0x3f0873d7,0xbf6861fa,3
+np.float32,0x7b4cb2,0xc2fc1ba3,3
+np.float32,0x3f0b6b02,0xbf60712e,3
+np.float32,0x9bff4,0xc301b6f2,3
+np.float32,0x3f07be25,0xbf6a4f0c,3
+np.float32,0x3ef10e57,0xbf8b1b75,3
+np.float32,0x46ad75,0xc2fdb6b1,3
+np.float32,0x3f7bc542,0xbcc4e3a9,3
+np.float32,0x3f6673d4,0xbe1b509c,3
+np.float32,0x7f19fe59,0x42fe8890,3
+np.float32,0x7f800000,0x7f800000,3
+np.float32,0x7f2fe696,0x42feead0,3
+np.float32,0x3dc9432d,0xc0563655,3
+np.float32,0x3ee47623,0xbf950446,3
+np.float32,0x3f1f8817,0xbf2eab51,3
+np.float32,0x7f220ec5,0x42feae44,3
+np.float32,0x2325e3,0xc2ffbab1,3
+np.float32,0x29dfc8,0xc2ff395a,3
+np.float32,0x7f524950,0x42ff6eb3,3
+np.float32,0x3e2234e0,0xc02a21c8,3
+np.float32,0x7f1c6f5a,0x42fe942f,3
+np.float32,0x3b6a61,0xc2fe36e7,3
+np.float32,0x3f1df90e,0xbf324ba9,3
+np.float32,0xb57f0,0xc3017f07,3
+np.float32,0x7d0eba,0xc2fc112e,3
+np.float32,0x403aa9,0xc2fdfd5c,3
+np.float32,0x3e74ecc7,0xc004155f,3
+np.float32,0x17509c,0xc30074f2,3
+np.float32,0x7f62196b,0x42ffa442,3
+np.float32,0x3ecef9a9,0xbfa7417a,3
+np.float32,0x7f14b158,0x42fe6eb1,3
+np.float32,0x3ede12be,0xbf9a40fe,3
+np.float32,0x42cfaa,0xc2fde03f,3
+np.float32,0x3f407b0f,0xbed2a6f5,3
+np.float32,0x7f7fffff,0x43000000,3
+np.float32,0x5467c6,0xc2fd3394,3
+np.float32,0x7ea6b80f,0x42fcc336,3
+np.float32,0x3f21e7b2,0xbf293704,3
+np.float32,0x3dc7e9eb,0xc056d542,3
+np.float32,0x7f3e6e67,0x42ff2571,3
+np.float32,0x3e3e809d,0xc01b4911,3
+np.float32,0x3f800000,0x0,3
+np.float32,0x3d8fd238,0xc0753d52,3
+np.float32,0x3f74aa65,0xbd85cd0e,3
+np.float32,0x7ec30305,0x42fd36ff,3
+np.float32,0x3e97bb93,0xbfe0971d,3
+np.float32,0x3e109d9c,0xc034bb1b,3
+np.float32,0x3f4a0b67,0xbeaed537,3
+np.float32,0x3f25a7aa,0xbf20c228,3
+np.float32,0x3ebc05eb,0xbfb8fd6b,3
+np.float32,0x3eebe749,0xbf8f18e5,3
+np.float32,0x3e9dc479,0xbfd96356,3
+np.float32,0x7f245200,0x42feb882,3
+np.float32,0x1573a8,0xc30093b5,3
+np.float32,0x3e66c4b9,0xc00994a6,3
+np.float32,0x3e73bffc,0xc0048709,3
+np.float32,0x3dfef8e5,0xc0405f16,3
+np.float32,0x403750,0xc2fdfd83,3
+np.float32,0x3ebedf17,0xbfb636a4,3
+np.float32,0x15cae6,0xc3008de2,3
+np.float32,0x3edf4d4e,0xbf993c24,3
+np.float32,0x3f7cc41e,0xbc963fb3,3
+np.float32,0x3e9e12a4,0xbfd907ee,3
+np.float32,0x7ded7b59,0x42f9c889,3
+np.float32,0x7f034878,0x42fe12b5,3
+np.float32,0x7ddce43f,0x42f9930b,3
+np.float32,0x3d82b257,0xc07e1333,3
+np.float32,0x3dae89c1,0xc0635dd4,3
+np.float32,0x6b1d00,0xc2fc8396,3
+np.float32,0x449a5a,0xc2fdccb3,3
+np.float32,0x4e89d2,0xc2fd68cb,3
+np.float32,0x7e1ae83f,0x42fa8cef,3
+np.float32,0x7e4bb22c,0x42fb572e,3
+np.float32,0x3de308ea,0xc04b1634,3
+np.float32,0x7f238c7a,0x42feb508,3
+np.float32,0x3f6c62a3,0xbdeb86f3,3
+np.float32,0x3e58cba6,0xc00f5908,3
+np.float32,0x7f7dd91f,0x42fff9c4,3
+np.float32,0x3d989376,0xc06fc88d,3
+np.float32,0x3dd013c5,0xc0532339,3
+np.float32,0x4b17e6,0xc2fd89ed,3
+np.float32,0x7f67f287,0x42ffb71e,3
+np.float32,0x3f69365e,0xbe09ba3c,3
+np.float32,0x3e4b8b21,0xc0152bf1,3
+np.float32,0x3a75b,0xc3032171,3
+np.float32,0x7f303676,0x42feec1f,3
+np.float32,0x7f6570e5,0x42ffaf18,3
+np.float32,0x3f5ed61e,0xbe4cf676,3
+np.float32,0x3e9b22f9,0xbfdc7e4f,3
+np.float32,0x2c095e,0xc2ff1428,3
+np.float32,0x3f1b17c1,0xbf391754,3
+np.float32,0x422dc6,0xc2fde746,3
+np.float32,0x3f677c8d,0xbe14b365,3
+np.float32,0x3ef85d0c,0xbf8597a9,3
+np.float32,0x3ecaaa6b,0xbfab2430,3
+np.float32,0x3f0607d1,0xbf6eff3d,3
+np.float32,0x3f011fdb,0xbf7cc50d,3
+np.float32,0x6ed7c1,0xc2fc6a4e,3
+np.float32,0x7ec2d1a2,0x42fd3644,3
+np.float32,0x3f75b7fe,0xbd7238a2,3
+np.float32,0x3ef2d146,0xbf89c344,3
+np.float32,0x7ec2cd27,0x42fd3633,3
+np.float32,0x7ee1e55a,0x42fda397,3
+np.float32,0x7f464d6a,0x42ff435c,3
+np.float32,0x7f469a93,0x42ff447b,3
+np.float32,0x7ece752f,0x42fd6121,3
+np.float32,0x2ed878,0xc2fee67b,3
+np.float32,0x75b23,0xc3021eff,3
+np.float32,0x3e0f4be4,0xc03593b8,3
+np.float32,0x2778e1,0xc2ff64fc,3
+np.float32,0x5fe2b7,0xc2fcd561,3
+np.float32,0x19b8a9,0xc30050ab,3
+np.float32,0x7df303e5,0x42f9d98d,3
+np.float32,0x608b8d,0xc2fcd051,3
+np.float32,0x588f46,0xc2fd1017,3
+np.float32,0x3eec6a11,0xbf8eb2a1,3
+np.float32,0x3f714121,0xbdaf4906,3
+np.float32,0x7f4f7b9e,0x42ff64c9,3
+np.float32,0x3c271606,0xc0d3b29c,3
+np.float32,0x3f002fe0,0xbf7f75f6,3
+np.float32,0x7efa4798,0x42fdef4f,3
+np.float32,0x3f61a865,0xbe3a601a,3
+np.float32,0x7e8087aa,0x42fc030d,3
+np.float32,0x3f70f0c7,0xbdb321ba,3
+np.float32,0x5db898,0xc2fce63f,3
+np.float32,0x7a965f,0xc2fc1fea,3
+np.float32,0x7f68b112,0x42ffb97c,3
+np.float32,0x7ef0ed3d,0x42fdd32d,3
+np.float32,0x7f3156a1,0x42fef0d3,3
+np.float32,0x3f1d405f,0xbf33fc6e,3
+np.float32,0x3e3494cf,0xc0203945,3
+np.float32,0x6018de,0xc2fcd3c1,3
+np.float32,0x623e49,0xc2fcc370,3
+np.float32,0x3ea29f0f,0xbfd3cad4,3
+np.float32,0xa514,0xc305a20c,3
+np.float32,0x3e1b2ab1,0xc02e3a8f,3
+np.float32,0x3f450b6f,0xbec1578f,3
+np.float32,0x7eb12908,0x42fcf015,3
+np.float32,0x3f10b720,0xbf52ab48,3
+np.float32,0x3e0a93,0xc2fe16f6,3
+np.float32,0x93845,0xc301cb96,3
+np.float32,0x7f4e9ce3,0x42ff61af,3
+np.float32,0x3f6d4296,0xbde09ceb,3
+np.float32,0x6ddede,0xc2fc70d0,3
+np.float32,0x3f4fb6fd,0xbe9a636d,3
+np.float32,0x3f6d08de,0xbde36c0b,3
+np.float32,0x3f56f057,0xbe8122ad,3
+np.float32,0x334e95,0xc2fea349,3
+np.float32,0x7efadbcd,0x42fdf104,3
+np.float32,0x3db02e88,0xc0628046,3
+np.float32,0x3f3309d1,0xbf041066,3
+np.float32,0x2d8722,0xc2fefb8f,3
+np.float32,0x7e926cac,0x42fc6356,3
+np.float32,0x3e3674ab,0xc01f452e,3
+np.float32,0x1b46ce,0xc3003afc,3
+np.float32,0x3f06a338,0xbf6d53fc,3
+np.float32,0x1b1ba7,0xc3003d46,3
+np.float32,0x319dfb,0xc2febc06,3
+np.float32,0x3e2f126a,0xc02315a5,3
+np.float32,0x3f40fe65,0xbed0af9e,3
+np.float32,0x3f1d842f,0xbf335d4b,3
+np.float32,0x3d044e4f,0xc09e78f8,3
+np.float32,0x7f272674,0x42fec51f,3
+np.float32,0x3cda6d8f,0xc0a753db,3
+np.float32,0x3eb92f12,0xbfbbccbb,3
+np.float32,0x7e4318f4,0x42fb3752,3
+np.float32,0x3c5890,0xc2fe2b6d,3
+np.float32,0x3d1993c9,0xc09796f8,3
+np.float32,0x7f18ef24,0x42fe8377,3
+np.float32,0x3e30c3a0,0xc0223244,3
+np.float32,0x3f27cd27,0xbf1c00ef,3
+np.float32,0x3f150957,0xbf47cd6c,3
+np.float32,0x7e7178a3,0x42fbd4d8,3
+np.float32,0x3f298db8,0xbf182ac3,3
+np.float32,0x7cb3be,0xc2fc1348,3
+np.float32,0x3ef64266,0xbf8729de,3
+np.float32,0x3eeb06ce,0xbf8fc8f2,3
+np.float32,0x3f406e36,0xbed2d845,3
+np.float32,0x7f1e1bd3,0x42fe9c0b,3
+np.float32,0x478dcc,0xc2fdad97,3
+np.float32,0x7f7937b5,0x42ffec2b,3
+np.float32,0x3f20f350,0xbf2b6624,3
+np.float32,0x7f13661a,0x42fe683c,3
+np.float32,0x208177,0xc2fff46b,3
+np.float32,0x263cfb,0xc2ff7c72,3
+np.float32,0x7f0bd28c,0x42fe4141,3
+np.float32,0x7230d8,0xc2fc5453,3
+np.float32,0x3f261bbf,0xbf1fbfb4,3
+np.float32,0x737b56,0xc2fc4c05,3
+np.float32,0x3ef88f33,0xbf857263,3
+np.float32,0x7e036464,0x42fa1352,3
+np.float32,0x4b5c4f,0xc2fd874d,3
+np.float32,0x3f77984d,0xbd454596,3
+np.float32,0x3f674202,0xbe162932,3
+np.float32,0x3e7157d9,0xc0057197,3
+np.float32,0x3f3f21da,0xbed7d861,3
+np.float32,0x7f1fb40f,0x42fea375,3
+np.float32,0x7ef0157f,0x42fdd096,3
+np.float32,0x3f71e88d,0xbda74962,3
+np.float32,0x3f174855,0xbf424728,3
+np.float32,0x3f3fdd2c,0xbed505d5,3
+np.float32,0x7b95d1,0xc2fc19ed,3
+np.float32,0x7f23f4e5,0x42feb6df,3
+np.float32,0x7d741925,0x42f7dcd6,3
+np.float32,0x60f81d,0xc2fccd14,3
+np.float32,0x3f17d267,0xbf40f6ae,3
+np.float32,0x3f036fc8,0xbf7636f8,3
+np.float32,0x167653,0xc30082b5,3
+np.float32,0x256d05,0xc2ff8c4f,3
+np.float32,0x3eccc63d,0xbfa93adb,3
+np.float32,0x7f6c91ea,0x42ffc5b2,3
+np.float32,0x2ee52a,0xc2fee5b3,3
+np.float32,0x3dc3579e,0xc058f80d,3
+np.float32,0x4c7170,0xc2fd7cc4,3
+np.float32,0x7f737f20,0x42ffdb03,3
+np.float32,0x3f2f9dbf,0xbf0b3119,3
+np.float32,0x3f4d0c54,0xbea3eec5,3
+np.float32,0x7e380862,0x42fb0c32,3
+np.float32,0x5d637f,0xc2fce8df,3
+np.float32,0x3f0aa623,0xbf627c27,3
+np.float32,0x3e4d5896,0xc0145b88,3
+np.float32,0x3f6cacdc,0xbde7e7ca,3
+np.float32,0x63a2c3,0xc2fcb90a,3
+np.float32,0x6c138c,0xc2fc7cfa,3
+np.float32,0x2063c,0xc303fb88,3
+np.float32,0x7e9e5a3e,0x42fc9d2f,3
+np.float32,0x56ec64,0xc2fd1ddd,3
+np.float32,0x7f1d6a35,0x42fe98cc,3
+np.float32,0x73dc96,0xc2fc4998,3
+np.float32,0x3e5d74e5,0xc00d6238,3
+np.float32,0x7f033cbb,0x42fe1273,3
+np.float32,0x3f5143fc,0xbe94e4e7,3
+np.float32,0x1d56d9,0xc3002010,3
+np.float32,0x2bf3e4,0xc2ff1591,3
+np.float32,0x3f2a6ef1,0xbf164170,3
+np.float32,0x3f33238b,0xbf03db58,3
+np.float32,0x22780e,0xc2ffc91a,3
+np.float32,0x7f00b873,0x42fe0425,3
+np.float32,0x3f7f6145,0xbb654706,3
+np.float32,0x7fc00000,0x7fc00000,3
+np.float32,0x63895a,0xc2fcb9c7,3
+np.float32,0x18a1b2,0xc30060a8,3
+np.float32,0x7e43c6a6,0x42fb39e3,3
+np.float32,0x78676e,0xc2fc2d30,3
+np.float32,0x3f16d839,0xbf435940,3
+np.float32,0x7eff78ba,0x42fdfe79,3
+np.float32,0x3f2e152c,0xbf0e6e54,3
+np.float32,0x3db20ced,0xc06186e1,3
+np.float32,0x3f0cd1d8,0xbf5cbf57,3
+np.float32,0x3fd7a8,0xc2fe01d2,3
+np.float32,0x3ebb075e,0xbfb9f816,3
+np.float32,0x7f94ef,0xc2fc026b,3
+np.float32,0x3d80ba0e,0xc07f7a2b,3
+np.float32,0x7f227e15,0x42feb03f,3
+np.float32,0x792264bf,0x42e6afcc,3
+np.float32,0x7f501576,0x42ff66ec,3
+np.float32,0x223629,0xc2ffcea3,3
+np.float32,0x40a79e,0xc2fdf87b,3
+np.float32,0x449483,0xc2fdccf2,3
+np.float32,0x3f4fa978,0xbe9a9382,3
+np.float32,0x7f148c53,0x42fe6df9,3
+np.float32,0x3ec98b3c,0xbfac2a98,3
+np.float32,0x3e4da320,0xc0143a0a,3
+np.float32,0x3d1d94bb,0xc09666d0,3
+np.float32,0x3c8e624e,0xc0bb155b,3
+np.float32,0x66a9af,0xc2fca2ef,3
+np.float32,0x3ec76ed7,0xbfae1c57,3
+np.float32,0x3f4b52f3,0xbeaa2b81,3
+np.float32,0x7e99bbb5,0x42fc8750,3
+np.float32,0x3f69a46b,0xbe0701be,3
+np.float32,0x3f775400,0xbd4ba495,3
+np.float32,0x131e56,0xc300be3c,3
+np.float32,0x3f30abb4,0xbf08fb10,3
+np.float32,0x7f7e528c,0x42fffb25,3
+np.float32,0x3eb89515,0xbfbc668a,3
+np.float32,0x7e9191b6,0x42fc5f02,3
+np.float32,0x7e80c7e9,0x42fc047e,3
+np.float32,0x3f77ef58,0xbd3d2995,3
+np.float32,0x7ddb1f8a,0x42f98d1b,3
+np.float32,0x7ebc6c4f,0x42fd1d9c,3
+np.float32,0x3f6638e0,0xbe1ccab8,3
+np.float32,0x7f4c45,0xc2fc0410,3
+np.float32,0x3e7d8aad,0xc000e414,3
+np.float32,0x3f4d148b,0xbea3d12e,3
+np.float32,0x3e98c45c,0xbfdf55f4,3
+np.float32,0x3d754c78,0xc081f8a9,3
+np.float32,0x17e4cf,0xc3006be3,3
+np.float32,0x7eb65814,0x42fd0563,3
+np.float32,0x3f65e0d8,0xbe1f0008,3
+np.float32,0x3e99541f,0xbfdea87e,3
+np.float32,0x3f3cb80e,0xbee13b27,3
+np.float32,0x3e99f0c0,0xbfddec3b,3
+np.float32,0x3f43903e,0xbec6ea66,3
+np.float32,0x7e211cd4,0x42faa9f2,3
+np.float32,0x824af,0xc301f971,3
+np.float32,0x3e16a56e,0xc030f56c,3
+np.float32,0x542b3b,0xc2fd35a6,3
+np.float32,0x3eeea2d1,0xbf8cf873,3
+np.float32,0x232e93,0xc2ffb9fa,3
+np.float32,0x3e8c52b9,0xbfef06aa,3
+np.float32,0x7f69c7e3,0x42ffbcef,3
+np.float32,0x3f573e43,0xbe801714,3
+np.float32,0x43b009,0xc2fdd69f,3
+np.float32,0x3ee571ab,0xbf943966,3
+np.float32,0x3ee3d5d8,0xbf958604,3
+np.float32,0x338b12,0xc2fe9fe4,3
+np.float32,0x29cb1f,0xc2ff3ac6,3
+np.float32,0x3f0892b4,0xbf680e7a,3
+np.float32,0x3e8c4f7f,0xbfef0ae9,3
+np.float32,0x7c9d3963,0x42f497e6,3
+np.float32,0x3f26ba84,0xbf1e5f59,3
+np.float32,0x3dd0acc0,0xc052df6f,3
+np.float32,0x3e43fbda,0xc018aa8c,3
+np.float32,0x3ec4fd0f,0xbfb0635d,3
+np.float32,0x3f52c8c6,0xbe8f8d85,3
+np.float32,0x3f5fdc5d,0xbe462fdb,3
+np.float32,0x3f461920,0xbebd6743,3
+np.float32,0x6161ff,0xc2fcc9ef,3
+np.float32,0x7f7ed306,0x42fffc9a,3
+np.float32,0x3d212263,0xc0955f46,3
+np.float32,0x3eca5826,0xbfab6f36,3
+np.float32,0x7d6317ac,0x42f7a77e,3
+np.float32,0x3eb02063,0xbfc50f60,3
+np.float32,0x7f71a6f8,0x42ffd565,3
+np.float32,0x1a3efe,0xc3004935,3
+np.float32,0x3dc599c9,0xc057e856,3
+np.float32,0x3f3e1301,0xbedbf205,3
+np.float32,0xf17d4,0xc301158d,3
+np.float32,0x3f615f84,0xbe3c3d85,3
+np.float32,0x3de63be1,0xc049cb77,3
+np.float32,0x3e8d2f51,0xbfede541,3
+np.float32,0x3a5cdd,0xc2fe441c,3
+np.float32,0x3f443ec0,0xbec4586a,3
+np.float32,0x3eacbd00,0xbfc8a5ad,3
+np.float32,0x3f600f6a,0xbe44df1b,3
+np.float32,0x5f77a6,0xc2fcd89c,3
+np.float32,0x476706,0xc2fdaf28,3
+np.float32,0x2f469,0xc3036fde,3
+np.float32,0x7dc4ba24,0x42f93d77,3
+np.float32,0x3e2d6080,0xc023fb9b,3
+np.float32,0x7e8d7135,0x42fc49c3,3
+np.float32,0x3f589065,0xbe77247b,3
+np.float32,0x3f59e210,0xbe6e2c05,3
+np.float32,0x7f51d388,0x42ff6d15,3
+np.float32,0x7d9a5fda,0x42f88a63,3
+np.float32,0x3e67d5bc,0xc00927ab,3
+np.float32,0x61d72c,0xc2fcc679,3
+np.float32,0x3ef3351d,0xbf897766,3
+np.float32,0x1,0xc3150000,3
+np.float32,0x7f653429,0x42ffae54,3
+np.float32,0x7e1ad3e5,0x42fa8c8e,3
+np.float32,0x3f4ca01d,0xbea57500,3
+np.float32,0x3f7606db,0xbd6ad13e,3
+np.float32,0x7ec4a27d,0x42fd3d1f,3
+np.float32,0x3efe4fd5,0xbf8138c7,3
+np.float32,0x77c2f1,0xc2fc3124,3
+np.float32,0x7e4d3251,0x42fb5c9a,3
+np.float32,0x3f543ac7,0xbe8a8154,3
+np.float32,0x7c3dbe29,0x42f322c4,3
+np.float32,0x408e01,0xc2fdf9a0,3
+np.float32,0x45069b,0xc2fdc829,3
+np.float32,0x3d7ecab7,0xc08037e8,3
+np.float32,0xf8c22,0xc3010a99,3
+np.float32,0x7f69af63,0x42ffbca2,3
+np.float32,0x7ec7d228,0x42fd48fe,3
+np.float32,0xff800000,0xffc00000,3
+np.float32,0xdd7c5,0xc301357c,3
+np.float32,0x143f38,0xc300a90e,3
+np.float32,0x7e65c176,0x42fbb01b,3
+np.float32,0x2c1a9e,0xc2ff1307,3
+np.float32,0x7f6e9224,0x42ffcbeb,3
+np.float32,0x3d32ab39,0xc0909a77,3
+np.float32,0x3e150b42,0xc031f22b,3
+np.float32,0x1f84b4,0xc300059a,3
+np.float32,0x3f71ce21,0xbda88c2a,3
+np.float32,0x2625c4,0xc2ff7e33,3
+np.float32,0x3dd0b293,0xc052dcdc,3
+np.float32,0x625c11,0xc2fcc290,3
+np.float32,0x3f610297,0xbe3e9f24,3
+np.float32,0x7ebdd5e5,0x42fd2320,3
+np.float32,0x3e883458,0xbff486ff,3
+np.float32,0x782313,0xc2fc2ed4,3
+np.float32,0x7f39c843,0x42ff132f,3
+np.float32,0x7f326aa7,0x42fef54d,3
+np.float32,0x4d2c71,0xc2fd75be,3
+np.float32,0x3f55747c,0xbe86409e,3
+np.float32,0x7f7f0867,0x42fffd34,3
+np.float32,0x321316,0xc2feb53f,3
+np.float32,0x3e1b37ed,0xc02e32b0,3
+np.float32,0x80edf,0xc301fd54,3
+np.float32,0x3f0b08ad,0xbf617607,3
+np.float32,0x7f3f4174,0x42ff28a2,3
+np.float32,0x3d79306d,0xc0813eb0,3
+np.float32,0x3f5f657a,0xbe49413d,3
+np.float32,0x3f56c63a,0xbe81b376,3
+np.float32,0x7f667123,0x42ffb24f,3
+np.float32,0x3f71021b,0xbdb24d43,3
+np.float32,0x7f434ab1,0x42ff380f,3
+np.float32,0x3dcae496,0xc055779c,3
+np.float32,0x3f5a7d88,0xbe6a0f5b,3
+np.float32,0x3cdf5c32,0xc0a64bf5,3
+np.float32,0x3e56222c,0xc0107d11,3
+np.float32,0x561a3a,0xc2fd24df,3
+np.float32,0x7ddd953c,0x42f9955a,3
+np.float32,0x7e35d839,0x42fb035c,3
+np.float32,0x3ec1816c,0xbfb3aeb2,3
+np.float32,0x7c87cfcd,0x42f42bc2,3
+np.float32,0xd9cd,0xc3053baf,3
+np.float32,0x3f388234,0xbef1e5b7,3
+np.float32,0x3edfcaca,0xbf98d47b,3
+np.float32,0x3ef28852,0xbf89fac8,3
+np.float32,0x7f7525df,0x42ffe001,3
+np.float32,0x7f6c33ef,0x42ffc48c,3
+np.float32,0x3ea4a881,0xbfd17e61,3
+np.float32,0x3f3e379f,0xbedb63c6,3
+np.float32,0x3f0524c1,0xbf717301,3
+np.float32,0x3db3e7f0,0xc06091d3,3
+np.float32,0x800000,0xc2fc0000,3
+np.float32,0x3f2f2897,0xbf0c27ce,3
+np.float32,0x7eb1776d,0x42fcf15c,3
+np.float32,0x3f039018,0xbf75dc37,3
+np.float32,0x3c4055,0xc2fe2c96,3
+np.float32,0x3f603653,0xbe43dea5,3
+np.float32,0x7f700d24,0x42ffd07c,3
+np.float32,0x3f4741a3,0xbeb918dc,3
+np.float32,0x3f5fe959,0xbe45da2d,3
+np.float32,0x3f3e4401,0xbedb33b1,3
+np.float32,0x7f0705ff,0x42fe2775,3
+np.float32,0x3ea85662,0xbfcd69b0,3
+np.float32,0x3f15f49f,0xbf458829,3
+np.float32,0x3f17c50e,0xbf411728,3
+np.float32,0x3e483f60,0xc016add2,3
+np.float32,0x3f1ab9e5,0xbf39f71b,3
+np.float32,0x3de0b6fb,0xc04c08fe,3
+np.float32,0x7e671225,0x42fbb452,3
+np.float32,0x80800000,0xffc00000,3
+np.float32,0xe2df3,0xc3012c9d,3
+np.float32,0x3ede1e3c,0xbf9a3770,3
+np.float32,0x3df2ffde,0xc044cfec,3
+np.float32,0x3eed8da5,0xbf8dcf6c,3
+np.float32,0x3ead15c3,0xbfc846e1,3
+np.float32,0x7ef3750a,0x42fddae4,3
+np.float32,0x7e6ab7c0,0x42fbbfe4,3
+np.float32,0x7ea4bbe5,0x42fcba5d,3
+np.float32,0x3f227706,0xbf27f0a1,3
+np.float32,0x3ef39bfd,0xbf89295a,3
+np.float32,0x3f289a20,0xbf1a3edd,3
+np.float32,0x7f225f82,0x42feafb4,3
+np.float32,0x768963,0xc2fc38bc,3
+np.float32,0x3f493c00,0xbeb1ccfc,3
+np.float32,0x3f4e7249,0xbe9ee9a7,3
+np.float32,0x1d0c3a,0xc30023c0,3
+np.float32,0x7f3c5f78,0x42ff1d6a,3
+np.float32,0xff7fffff,0xffc00000,3
+np.float32,0x3ee7896a,0xbf928c2a,3
+np.float32,0x3e788479,0xc002bd2e,3
+np.float32,0x3ee4df17,0xbf94af84,3
+np.float32,0x5e06d7,0xc2fce3d7,3
+np.float32,0x3d7b2776,0xc080e1dc,3
+np.float32,0x3e3d39d3,0xc01be7fd,3
+np.float32,0x7c81dece,0x42f40ab7,3
+np.float32,0x3f7d2085,0xbc856255,3
+np.float32,0x7f7f6627,0x42fffe44,3
+np.float32,0x7f5f2e94,0x42ff9aaa,3
+np.float32,0x7f5835f2,0x42ff8339,3
+np.float32,0x3f6a0e32,0xbe046580,3
+np.float32,0x7e16f586,0x42fa79dd,3
+np.float32,0x3f04a2f2,0xbf72dbc5,3
+np.float32,0x3f35e334,0xbefc7740,3
+np.float32,0x3f0d056e,0xbf5c3824,3
+np.float32,0x7ebeb95e,0x42fd2693,3
+np.float32,0x3c6192,0xc2fe2aff,3
+np.float32,0x3e892b4f,0xbff33958,3
+np.float32,0x3f61d694,0xbe3931df,3
+np.float32,0x29d183,0xc2ff3a56,3
+np.float32,0x7f0b0598,0x42fe3d04,3
+np.float32,0x7f743b28,0x42ffdd3d,3
+np.float32,0x3a2ed6,0xc2fe4663,3
+np.float32,0x3e27403a,0xc0274de8,3
+np.float32,0x3f58ee78,0xbe74a349,3
+np.float32,0x3eaa4b,0xc2fe0f92,3
+np.float32,0x3ecb613b,0xbfaa7de8,3
+np.float32,0x7f637d81,0x42ffa8c9,3
+np.float32,0x3f026e96,0xbf790c73,3
+np.float32,0x386cdf,0xc2fe5d0c,3
+np.float32,0x35abd1,0xc2fe8202,3
+np.float32,0x3eac3cd1,0xbfc92ee8,3
+np.float32,0x3f567869,0xbe82bf47,3
+np.float32,0x3f65c643,0xbe1faae6,3
+np.float32,0x7f5422b9,0x42ff752b,3
+np.float32,0x7c26e9,0xc2fc168c,3
+np.float32,0x7eff5cfd,0x42fdfe29,3
+np.float32,0x3f728e7f,0xbd9f6142,3
+np.float32,0x3f10fd43,0xbf51f874,3
+np.float32,0x7e7ada08,0x42fbf0fe,3
+np.float32,0x3e82a611,0xbffc37be,3
+np.float32,0xbf800000,0xffc00000,3
+np.float32,0x3dbe2e12,0xc05b711c,3
+np.float32,0x7e768fa9,0x42fbe440,3
+np.float32,0x5e44e8,0xc2fce1f0,3
+np.float32,0x7f25071a,0x42febbae,3
+np.float32,0x3f54db5e,0xbe885339,3
+np.float32,0x3f0f2c26,0xbf56a0b8,3
+np.float32,0x22f9a7,0xc2ffbe55,3
+np.float32,0x7ed63dcb,0x42fd7c77,3
+np.float32,0x7ea4fae2,0x42fcbb78,3
+np.float32,0x3f1d7766,0xbf337b47,3
+np.float32,0x7f16d59f,0x42fe7941,3
+np.float32,0x3f3a1bb6,0xbeeb855c,3
+np.float32,0x3ef57128,0xbf87c709,3
+np.float32,0xb24ff,0xc3018591,3
+np.float32,0x3ef99e27,0xbf84a983,3
+np.float32,0x3eac2ccf,0xbfc94013,3
+np.float32,0x3e9d3e1e,0xbfda00dc,3
+np.float32,0x718213,0xc2fc58c1,3
+np.float32,0x7edbf509,0x42fd8fea,3
+np.float32,0x70c7f1,0xc2fc5d80,3
+np.float32,0x3f7012f5,0xbdbdc6cd,3
+np.float32,0x12cba,0xc304c487,3
+np.float32,0x7f5d445d,0x42ff944c,3
+np.float32,0x7f3e30bd,0x42ff2481,3
+np.float32,0x63b110,0xc2fcb8a0,3
+np.float32,0x3f39f728,0xbeec1680,3
+np.float32,0x3f5bea58,0xbe6074b1,3
+np.float32,0x3f350749,0xbefff679,3
+np.float32,0x3e91ab2c,0xbfe81f3e,3
+np.float32,0x7ec53fe0,0x42fd3f6d,3
+np.float32,0x3f6cbbdc,0xbde72c8e,3
+np.float32,0x3f4df49f,0xbea0abcf,3
+np.float32,0x3e9c9638,0xbfdac674,3
+np.float32,0x7f3b82ec,0x42ff1a07,3
+np.float32,0x7f612a09,0x42ffa132,3
+np.float32,0x7ea26650,0x42fcafd3,3
+np.float32,0x3a615138,0xc122f26d,3
+np.float32,0x3f1108bd,0xbf51db39,3
+np.float32,0x6f80f6,0xc2fc65ea,3
+np.float32,0x3f7cb578,0xbc98ecb1,3
+np.float32,0x7f54d31a,0x42ff7790,3
+np.float32,0x196868,0xc3005532,3
+np.float32,0x3f01ee0a,0xbf7a7925,3
+np.float32,0x3e184013,0xc02ffb11,3
+np.float32,0xadde3,0xc3018ee3,3
+np.float32,0x252a91,0xc2ff9173,3
+np.float32,0x3f0382c2,0xbf7601a9,3
+np.float32,0x6d818c,0xc2fc7345,3
+np.float32,0x3bfbfd,0xc2fe2fdd,3
+np.float32,0x7f3cad19,0x42ff1e9a,3
+np.float32,0x4169a7,0xc2fdefdf,3
+np.float32,0x3f615d96,0xbe3c4a2b,3
+np.float32,0x3f036480,0xbf7656ac,3
+np.float32,0x7f5fbda3,0x42ff9c83,3
+np.float32,0x3d202d,0xc2fe21f1,3
+np.float32,0x3d0f5e5d,0xc09ac3e9,3
+np.float32,0x3f0fff6e,0xbf548142,3
+np.float32,0x7f11ed32,0x42fe60d2,3
+np.float32,0x3e6f856b,0xc00624b6,3
+np.float32,0x7f7c4dd7,0x42fff542,3
+np.float32,0x3e76fb86,0xc0034fa0,3
+np.float32,0x3e8a0d6e,0xbff209e7,3
+np.float32,0x3eacad19,0xbfc8b6ad,3
+np.float32,0xa7776,0xc3019cbe,3
+np.float32,0x3dc84d74,0xc056a754,3
+np.float32,0x3efb8052,0xbf834626,3
+np.float32,0x3f0e55fc,0xbf58cacc,3
+np.float32,0x7e0e71e3,0x42fa4efb,3
+np.float32,0x3ed5a800,0xbfa1639c,3
+np.float32,0x3f33335b,0xbf03babf,3
+np.float32,0x38cad7,0xc2fe5842,3
+np.float32,0x3bc21256,0xc0ecc927,3
+np.float32,0x3f09522d,0xbf660a19,3
+np.float32,0xcbd5d,0xc3015428,3
+np.float32,0x492752,0xc2fd9d42,3
+np.float32,0x3f2b9b32,0xbf13b904,3
+np.float32,0x6544ac,0xc2fcad09,3
+np.float32,0x52eb12,0xc2fd40b5,3
+np.float32,0x3f66a7c0,0xbe1a03e8,3
+np.float32,0x7ab289,0xc2fc1f41,3
+np.float32,0x62af5e,0xc2fcc020,3
+np.float32,0x7f73e9cf,0x42ffdc46,3
+np.float32,0x3e5eca,0xc2fe130e,3
+np.float32,0x3e3a10f4,0xc01d7602,3
+np.float32,0x3f04db46,0xbf723f0d,3
+np.float32,0x18fc4a,0xc3005b63,3
+np.float32,0x525bcb,0xc2fd45b6,3
+np.float32,0x3f6b9108,0xbdf5c769,3
+np.float32,0x3e992e8c,0xbfded5c5,3
+np.float32,0x7efea647,0x42fdfc18,3
+np.float32,0x7e8371db,0x42fc139e,3
+np.float32,0x3f397cfb,0xbeedfc69,3
+np.float32,0x7e46d233,0x42fb454a,3
+np.float32,0x7d5281ad,0x42f76f79,3
+np.float32,0x7f4c1878,0x42ff58a1,3
+np.float32,0x3e96ca5e,0xbfe1bd97,3
+np.float32,0x6a2743,0xc2fc8a3d,3
+np.float32,0x7f688781,0x42ffb8f8,3
+np.float32,0x7814b7,0xc2fc2f2d,3
+np.float32,0x3f2ffdc9,0xbf0a6756,3
+np.float32,0x3f766fa8,0xbd60fe24,3
+np.float32,0x4dc64e,0xc2fd7003,3
+np.float32,0x3a296f,0xc2fe46a8,3
+np.float32,0x3f2af942,0xbf15162e,3
+np.float32,0x7f702c32,0x42ffd0dc,3
+np.float32,0x7e61e318,0x42fba390,3
+np.float32,0x7f7d3bdb,0x42fff7fa,3
+np.float32,0x3ee87f3f,0xbf91c881,3
+np.float32,0x2bbc28,0xc2ff193c,3
+np.float32,0x3e01f918,0xc03e966e,3
+np.float32,0x7f0b39f4,0x42fe3e1a,3
+np.float32,0x3eaa4d64,0xbfcb4516,3
+np.float32,0x3e53901e,0xc0119a88,3
+np.float32,0x603cb,0xc3026957,3
+np.float32,0x7e81f926,0x42fc0b4d,3
+np.float32,0x5dab7c,0xc2fce6a6,3
+np.float32,0x3f46fefd,0xbeba1018,3
+np.float32,0x648448,0xc2fcb28a,3
+np.float32,0x3ec49470,0xbfb0c58b,3
+np.float32,0x3e8a5393,0xbff1ac2b,3
+np.float32,0x3f27ccfc,0xbf1c014e,3
+np.float32,0x3ed886e6,0xbf9eeca8,3
+np.float32,0x7cfbe06e,0x42f5f401,3
+np.float32,0x3f5aa7ba,0xbe68f229,3
+np.float32,0x9500d,0xc301c7e3,3
+np.float32,0x3f4861,0xc2fe0853,3
+np.float32,0x3e5ae104,0xc00e76f5,3
+np.float32,0x71253a,0xc2fc5b1e,3
+np.float32,0xcf7b8,0xc3014d9c,3
+np.float32,0x7f7edd2d,0x42fffcb7,3
+np.float32,0x3e9039ee,0xbfe9f5ab,3
+np.float32,0x2fd54e,0xc2fed712,3
+np.float32,0x3f600752,0xbe45147a,3
+np.float32,0x3f4da8f6,0xbea1bb5c,3
+np.float32,0x3f2d34a9,0xbf104bd9,3
+np.float32,0x3e1e66dd,0xc02c52d2,3
+np.float32,0x798276,0xc2fc2670,3
+np.float32,0xd55e2,0xc3014347,3
+np.float32,0x80000001,0xffc00000,3
+np.float32,0x3e7a5ead,0xc0020da6,3
+np.float32,0x7ec4c744,0x42fd3da9,3
+np.float32,0x597e00,0xc2fd085a,3
+np.float32,0x3dff6bf4,0xc0403575,3
+np.float32,0x5d6f1a,0xc2fce883,3
+np.float32,0x7e21faff,0x42faadea,3
+np.float32,0x3e570fea,0xc01016c6,3
+np.float32,0x28e6b6,0xc2ff4ab7,3
+np.float32,0x7e77062d,0x42fbe5a3,3
+np.float32,0x74cac4,0xc2fc43b0,3
+np.float32,0x3f707273,0xbdb93078,3
+np.float32,0x228e96,0xc2ffc737,3
+np.float32,0x686ac1,0xc2fc966b,3
+np.float32,0x3d76400d,0xc081cae8,3
+np.float32,0x3e9f502f,0xbfd7966b,3
+np.float32,0x3f6bc656,0xbdf32b1f,3
+np.float32,0x3edb828b,0xbf9c65d4,3
+np.float32,0x6c6e56,0xc2fc7a8e,3
+np.float32,0x3f04552e,0xbf73b48f,3
+np.float32,0x3f39cb69,0xbeecc457,3
+np.float32,0x7f681c44,0x42ffb7a3,3
+np.float32,0x7f5b44ee,0x42ff8d99,3
+np.float32,0x3e71430a,0xc005798d,3
+np.float32,0x3edcfde3,0xbf9b27c6,3
+np.float32,0x3f616a5a,0xbe3bf67f,3
+np.float32,0x3f523936,0xbe918548,3
+np.float32,0x3f39ce3a,0xbeecb925,3
+np.float32,0x3eac589a,0xbfc91120,3
+np.float32,0x7efc8d3d,0x42fdf5fc,3
+np.float32,0x5704b0,0xc2fd1d0f,3
+np.float32,0x7e7972e9,0x42fbecda,3
+np.float32,0x3eb0811c,0xbfc4aa13,3
+np.float32,0x7f1efcbb,0x42fea023,3
+np.float32,0x3e0b9e32,0xc037fa6b,3
+np.float32,0x7eef6a48,0x42fdce87,3
+np.float32,0x3cc0a373,0xc0ad20c0,3
+np.float32,0x3f2a75bb,0xbf1632ba,3
+np.float32,0x0,0xff800000,3
+np.float32,0x7ecdb6f4,0x42fd5e77,3
+np.float32,0x7f2e2dfd,0x42fee38d,3
+np.float32,0x3ee17f6e,0xbf976d8c,3
+np.float32,0x3f51e7ee,0xbe92a319,3
+np.float32,0x3f06942f,0xbf6d7d3c,3
+np.float32,0x3f7ba528,0xbccac6f1,3
+np.float32,0x3f413787,0xbecfd513,3
+np.float32,0x3e085e48,0xc03a2716,3
+np.float32,0x7e4c5e0e,0x42fb599c,3
+np.float32,0x306f76,0xc2fecdd4,3
+np.float32,0x7f5c2203,0x42ff9081,3
+np.float32,0x3d5355b4,0xc088da05,3
+np.float32,0x9a2a,0xc305bb4f,3
+np.float32,0x3db93a1f,0xc05de0db,3
+np.float32,0x4e50c6,0xc2fd6ae4,3
+np.float32,0x7ec4afed,0x42fd3d51,3
+np.float32,0x3a8f27,0xc2fe41a0,3
+np.float32,0x7f213caf,0x42feaa84,3
+np.float32,0x7e7b5f00,0x42fbf286,3
+np.float32,0x7e367194,0x42fb05ca,3
+np.float32,0x7f56e6de,0x42ff7ebd,3
+np.float32,0x3ed7383e,0xbfa00aef,3
+np.float32,0x7e844752,0x42fc184a,3
+np.float32,0x15157,0xc3049a19,3
+np.float32,0x3f78cd92,0xbd28824a,3
+np.float32,0x7ecddb16,0x42fd5ef9,3
+np.float32,0x3e479f16,0xc016f7d8,3
+np.float32,0x3f5cb418,0xbe5b2bd3,3
+np.float32,0x7c0934cb,0x42f2334e,3
+np.float32,0x3ebe5505,0xbfb6bc69,3
+np.float32,0x3eb1335a,0xbfc3eff5,3
+np.float32,0x3f2488a3,0xbf234444,3
+np.float32,0x642906,0xc2fcb52a,3
+np.float32,0x3da635fa,0xc067e15a,3
+np.float32,0x7e0d80db,0x42fa4a15,3
+np.float32,0x4f0b9d,0xc2fd640a,3
+np.float32,0x7e083806,0x42fa2df8,3
+np.float32,0x7f77f8c6,0x42ffe877,3
+np.float32,0x3e7bb46a,0xc0018ff5,3
+np.float32,0x3f06eb2e,0xbf6c8eca,3
+np.float32,0x7eae8f7c,0x42fce52a,3
+np.float32,0x3de481a0,0xc04a7d7f,3
+np.float32,0x3eed4311,0xbf8e096f,3
+np.float32,0x3f7b0300,0xbce8903d,3
+np.float32,0x3811b,0xc30330dd,3
+np.float32,0x3eb6f8e1,0xbfbe04bc,3
+np.float32,0x3ec35210,0xbfb1f55a,3
+np.float32,0x3d386916,0xc08f24a5,3
+np.float32,0x3f1fa197,0xbf2e704d,3
+np.float32,0x7f2020a5,0x42fea56a,3
+np.float32,0x7e1ea53f,0x42fa9e8c,3
+np.float32,0x3f148903,0xbf490bf9,3
+np.float32,0x3f2f56a0,0xbf0bc6c9,3
+np.float32,0x7da9fc,0xc2fc0d9b,3
+np.float32,0x3d802134,0xc07fe810,3
+np.float32,0x3f6cb927,0xbde74e57,3
+np.float32,0x7e05b125,0x42fa2023,3
+np.float32,0x3f3307f9,0xbf041433,3
+np.float32,0x5666bf,0xc2fd2250,3
+np.float32,0x3f51c93b,0xbe930f28,3
+np.float32,0x3eb5dcfe,0xbfbf241e,3
+np.float32,0xb2773,0xc301853f,3
+np.float32,0x7f4dee96,0x42ff5f3f,3
+np.float32,0x3e3f5c33,0xc01adee1,3
+np.float32,0x3f2ed29a,0xbf0cdd4a,3
+np.float32,0x3e3c01ef,0xc01c80ab,3
+np.float32,0x3ec2236e,0xbfb31458,3
+np.float32,0x7e841dc4,0x42fc1761,3
+np.float32,0x3df2cd8e,0xc044e30c,3
+np.float32,0x3f010901,0xbf7d0670,3
+np.float32,0x3c05ceaa,0xc0ddf39b,3
+np.float32,0x3f517226,0xbe944206,3
+np.float32,0x3f23c83d,0xbf24f522,3
+np.float32,0x7fc9da,0xc2fc0139,3
+np.float32,0x7f1bde53,0x42fe9181,3
+np.float32,0x3ea3786c,0xbfd2d4a5,3
+np.float32,0x3e83a71b,0xbffacdd2,3
+np.float32,0x3f6f0d4f,0xbdca61d5,3
+np.float32,0x7f5ab613,0x42ff8bb7,3
+np.float32,0x3ab1ec,0xc2fe3fea,3
+np.float32,0x4fbf58,0xc2fd5d82,3
+np.float32,0x3dea141b,0xc0484403,3
+np.float32,0x7d86ad3b,0x42f8258f,3
+np.float32,0x7f345315,0x42fefd29,3
+np.float32,0x3f3752fe,0xbef6a780,3
+np.float32,0x64830d,0xc2fcb293,3
+np.float32,0x3d9dc1eb,0xc06cb32a,3
+np.float32,0x3f2f935a,0xbf0b46f6,3
+np.float32,0xb90a4,0xc30177e3,3
+np.float32,0x4111dd,0xc2fdf3c1,3
+np.float32,0x3d4cd078,0xc08a4c68,3
+np.float32,0x3e95c3f1,0xbfe30011,3
+np.float32,0x3ec9f356,0xbfabcb4e,3
+np.float32,0x1b90d5,0xc3003717,3
+np.float32,0xee70f,0xc3011a3e,3
+np.float32,0x7fa00000,0x7fe00000,3
+np.float32,0x3f74cdb6,0xbd8422af,3
+np.float32,0x3d9b56fe,0xc06e2037,3
+np.float32,0x3f1853df,0xbf3fbc40,3
+np.float32,0x7d86a011,0x42f82547,3
+np.float32,0x3dff9629,0xc0402634,3
+np.float32,0x46f8c9,0xc2fdb39f,3
+np.float32,0x3e9b410b,0xbfdc5a87,3
+np.float32,0x3f5aed42,0xbe671cac,3
+np.float32,0x3b739886,0xc101257f,3
+np.float64,0x3fe2f58d6565eb1b,0xbfe82a641138e19a,1
+np.float64,0x3fee7f0642fcfe0d,0xbfb1c702f6974932,1
+np.float64,0x25b71f244b6e5,0xc090030d3b3c5d2b,1
+np.float64,0x8c9cc8e1193b,0xc0900b752a678fa8,1
+np.float64,0x3fd329b5d326536c,0xbffbd607f6db945c,1
+np.float64,0x3fb5109b3a2a2136,0xc00cd36bd15dfb18,1
+np.float64,0x3fd5393ae12a7276,0xbff97a7e4a157154,1
+np.float64,0x3fd374d1b926e9a3,0xbffb7c3e1a3a7ed3,1
+np.float64,0x3fe2c7f4e2658fea,0xbfe899f15ca78fcb,1
+np.float64,0x7fe3d6b81ee7ad6f,0x408ffa7b63d407ee,1
+np.float64,0x3fe086d097e10da1,0xbfee81456ce8dd03,1
+np.float64,0x7fd374a64ca6e94c,0x408ff241c7306d39,1
+np.float64,0x3fc0709a5b20e135,0xc007afdede31b29c,1
+np.float64,0x3fd4218f4b28431f,0xbffab2c696966e2d,1
+np.float64,0x143134c828628,0xc09006a8372c4d8a,1
+np.float64,0x3f8bd0aa0037a154,0xc018cf0e8b9c3107,1
+np.float64,0x7fe0ce905ee19d20,0x408ff8915e71bd67,1
+np.float64,0x3fda0f5f32b41ebe,0xbff4bd5e0869e820,1
+np.float64,0x7fe9ae63d0b35cc7,0x408ffd760ca4f292,1
+np.float64,0x3fe75abd9eeeb57b,0xbfdd1476fc8b3089,1
+np.float64,0x786c3110f0d87,0xc08ff8b44cedbeea,1
+np.float64,0x22c5fe80458d,0xc09013853591c2f2,1
+np.float64,0x3fdc250797384a0f,0xbff2f6a02c961f0b,1
+np.float64,0x3fa2b367b02566cf,0xc013199238485054,1
+np.float64,0x3fd26a910ca4d522,0xbffcc0e2089b1c0c,1
+np.float64,0x8068d3b300d1b,0xc08ff7f690210aac,1
+np.float64,0x3fe663bfa9ecc77f,0xbfe07cd95a43a5ce,1
+np.float64,0x3fd0ddb07321bb61,0xbffec886665e895e,1
+np.float64,0x3f91c730b0238e61,0xc0176452badc8d22,1
+np.float64,0x4dd10d309ba22,0xc08ffdbe738b1d8d,1
+np.float64,0x7fe322afa4a6455e,0x408ffa10c038f9de,1
+np.float64,0x7fdf7f7c42befef8,0x408ff7d147ddaad5,1
+np.float64,0x7fd673f386ace7e6,0x408ff3e920d00eef,1
+np.float64,0x3feaebfcadb5d7f9,0xbfcfe8ec27083478,1
+np.float64,0x3fdc6dc23738db84,0xbff2bb46794f07b8,1
+np.float64,0xcd8819599b103,0xc08ff288c5b2cf0f,1
+np.float64,0xfda00e77fb402,0xc08ff01b895d2236,1
+np.float64,0x840b02ff08161,0xc08ff7a41e41114c,1
+np.float64,0x3fbdce3a383b9c74,0xc008d1e61903a289,1
+np.float64,0x3fd24ed3c4a49da8,0xbffce3c12136b6d3,1
+np.float64,0x3fe8d0834131a107,0xbfd77b194e7051d4,1
+np.float64,0x3fdd0cb11aba1962,0xbff23b9dbd554455,1
+np.float64,0x1a32d97e3465c,0xc090052781a37271,1
+np.float64,0x3fdb09d2b1b613a5,0xbff3e396b862bd83,1
+np.float64,0x3fe04c848aa09909,0xbfef2540dd90103a,1
+np.float64,0x3fce0c48613c1891,0xc000b9f76877d744,1
+np.float64,0x3fc37109a226e213,0xc005c05d8b2b9a2f,1
+np.float64,0x81cf3837039e7,0xc08ff7d686517dff,1
+np.float64,0xd9342c29b2686,0xc08ff1e591c9a895,1
+np.float64,0x7fec731b0638e635,0x408ffea4884550a9,1
+np.float64,0x3fba0fc138341f82,0xc00a5e839b085f64,1
+np.float64,0x7fdda893b03b5126,0x408ff71f7c5a2797,1
+np.float64,0xd2a4bb03a5498,0xc08ff2402f7a907c,1
+np.float64,0x3fea61fb0d34c3f6,0xbfd1d293fbe76183,1
+np.float64,0x3fed5cf486fab9e9,0xbfbfc2e01a7ffff1,1
+np.float64,0x3fcbabc2bf375785,0xc001ad7750c9dbdf,1
+np.float64,0x3fdb5fff53b6bfff,0xbff39a7973a0c6a5,1
+np.float64,0x7feef05a00bde0b3,0x408fff9c5cbc8651,1
+np.float64,0xb1cf24f1639e5,0xc08ff434de10fffb,1
+np.float64,0x3fa583989c2b0731,0xc0124a8a3bbf18ce,1
+np.float64,0x7feae90bf9f5d217,0x408ffe002e7bbbea,1
+np.float64,0x3fe9ef41c4b3de84,0xbfd367878ae4528e,1
+np.float64,0x9be24ce337c4a,0xc08ff5b9b1c31cf9,1
+np.float64,0x3fe916894cb22d13,0xbfd677f915d58503,1
+np.float64,0x3fec1bab20f83756,0xbfc7f2777aabe8ee,1
+np.float64,0x3feaabf2873557e5,0xbfd0d11f28341233,1
+np.float64,0x3fd4d3c3b529a787,0xbff9e9e47acc8ca9,1
+np.float64,0x3fe4cfe96c699fd3,0xbfe3dc53fa739169,1
+np.float64,0xccfdb97399fb7,0xc08ff2908d893400,1
+np.float64,0x3fec7598be78eb31,0xbfc5a750f8f3441a,1
+np.float64,0x355be5fc6ab7e,0xc090010ca315b50b,1
+np.float64,0x3fba9f9074353f21,0xc00a1f80eaf5e581,1
+np.float64,0x7fdcaff189395fe2,0x408ff6bd1c5b90d9,1
+np.float64,0x3fd94d3b64b29a77,0xbff56be1b43d25f3,1
+np.float64,0x4e5f29949cbe6,0xc08ffda972da1d73,1
+np.float64,0x3fe654e2d9aca9c6,0xbfe09b88dcd8f15d,1
+np.float64,0x7fdc130190b82602,0x408ff67d496c1a27,1
+np.float64,0x3fbcd4701e39a8e0,0xc009343e36627e80,1
+np.float64,0x7fdaa4d38f3549a6,0x408ff5e2c6d8678f,1
+np.float64,0x3febe95e5237d2bd,0xbfc93e16d453fe3a,1
+np.float64,0x9ef5ca553deba,0xc08ff57ff4f7883d,1
+np.float64,0x7fe878e91170f1d1,0x408ffce795868fc8,1
+np.float64,0x3fe63dff466c7bff,0xbfe0caf2b79c9e5f,1
+np.float64,0x6561446ccac29,0xc08ffab0e383834c,1
+np.float64,0x30c6c2ae618d9,0xc09001914b30381b,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0x3fe5c9daf1ab93b6,0xbfe1be81baf4dbdb,1
+np.float64,0x3fe0a03e24a1407c,0xbfee3a73c4c0e8f8,1
+np.float64,0xff2a2cf3fe546,0xc08ff009a7e6e782,1
+np.float64,0x7fcf0332213e0663,0x408fefa36235e210,1
+np.float64,0x3fb612affc2c2560,0xc00c494be9c8c33b,1
+np.float64,0x3fd2b259702564b3,0xbffc67967f077e75,1
+np.float64,0x7fcb63685d36c6d0,0x408fee343343f913,1
+np.float64,0x3fe369f1d5a6d3e4,0xbfe71251139939ad,1
+np.float64,0x3fdd17c618ba2f8c,0xbff232d11c986251,1
+np.float64,0x3f92cc8040259901,0xc01711d8e06b52ee,1
+np.float64,0x69a81dc2d3504,0xc08ffa36cdaf1141,1
+np.float64,0x3fea0fad99b41f5b,0xbfd2f4625a652645,1
+np.float64,0xd1cd5799a39ab,0xc08ff24c02b90d26,1
+np.float64,0x324e59ce649cc,0xc0900163ad091c76,1
+np.float64,0x3fc3d460a227a8c1,0xc00585f903dc7a7f,1
+np.float64,0xa7185ec74e30c,0xc08ff4ec7d65ccd9,1
+np.float64,0x3fa254eaac24a9d5,0xc01337053963321a,1
+np.float64,0x3feaeb112435d622,0xbfcfef3be17f81f6,1
+np.float64,0x60144c3ac028a,0xc08ffb4f8eb94595,1
+np.float64,0x7fa4d2ec6829a5d8,0x408fdb0a9670ab83,1
+np.float64,0x3fed1372f97a26e6,0xbfc1b1fe50d48a55,1
+np.float64,0x3fd5ade5972b5bcb,0xbff8fcf28f525031,1
+np.float64,0x7fe72e335bee5c66,0x408ffc4759236437,1
+np.float64,0x7fdfafab143f5f55,0x408ff7e2e22a8129,1
+np.float64,0x3fe90d0db9321a1b,0xbfd69ae5fe10eb9e,1
+np.float64,0x7fe20a59072414b1,0x408ff962a2492484,1
+np.float64,0x3fed853690bb0a6d,0xbfbdc9dc5f199d2b,1
+np.float64,0x3fd709d469ae13a9,0xbff795a218deb700,1
+np.float64,0x3fe21c35f5e4386c,0xbfea47d71789329b,1
+np.float64,0x9ea5ec053d4be,0xc08ff585c2f6b7a3,1
+np.float64,0x3fc0580f9e20b01f,0xc007c1268f49d037,1
+np.float64,0xd99127abb3225,0xc08ff1e0a1ff339d,1
+np.float64,0x3fdc8c9bbfb91937,0xbff2a2478354effb,1
+np.float64,0x3fe15fc6b162bf8d,0xbfec323ac358e008,1
+np.float64,0xffefffffffffffff,0x7ff8000000000000,1
+np.float64,0x3fee341afb3c6836,0xbfb556b6faee9a84,1
+np.float64,0x3fe4b64c56296c99,0xbfe4154835ad2afe,1
+np.float64,0x85de22810bbc5,0xc08ff77b914fe5b5,1
+np.float64,0x3fd22c72e3a458e6,0xbffd0f4269d20bb9,1
+np.float64,0xc090e5218123,0xc09009a4a65a8a8f,1
+np.float64,0x7fd9641692b2c82c,0x408ff5547782bdfc,1
+np.float64,0x3fd9b9cb28b37396,0xbff509a8fb59a9f1,1
+np.float64,0x3fcd2726f93a4e4e,0xc001135059a22117,1
+np.float64,0x3fa4b493d4296928,0xc0128323c7a55f4a,1
+np.float64,0x47455e788e8ac,0xc08ffec2101c1e82,1
+np.float64,0x3fe0d7e2e261afc6,0xbfeda0f1e2d0f4bd,1
+np.float64,0x3fe860fc5b70c1f9,0xbfd91dc42eaf72c2,1
+np.float64,0xa5d7805b4baf0,0xc08ff502bc819ff6,1
+np.float64,0xd83395b1b0673,0xc08ff1f33c3f94c2,1
+np.float64,0x3f865972e02cb2e6,0xc01a1243651565c8,1
+np.float64,0x52fc6952a5f8e,0xc08ffd006b158179,1
+np.float64,0x7fecac6c793958d8,0x408ffebbb1c09a70,1
+np.float64,0x7fe621ff606c43fe,0x408ffbbeb2b1473a,1
+np.float64,0x3fdb9f3f9db73e7f,0xbff365610c52bda7,1
+np.float64,0x7feab92992757252,0x408ffdeb92a04813,1
+np.float64,0xcc46c79f988d9,0xc08ff29adf03fb7c,1
+np.float64,0x3fe3156a03262ad4,0xbfe7dd0f598781c7,1
+np.float64,0x3fc00e3a61201c75,0xc007f5c121a87302,1
+np.float64,0x3fdce8e9f739d1d4,0xbff2581d41ef50ef,1
+np.float64,0x0,0xfff0000000000000,1
+np.float64,0x7d373ac4fa6e8,0xc08ff840fa8beaec,1
+np.float64,0x3fee41e0653c83c1,0xbfb4ae786f2a0d54,1
+np.float64,0x3ff0000000000000,0x0,1
+np.float64,0x7feca6fff9794dff,0x408ffeb982a70556,1
+np.float64,0x7fc532716d2a64e2,0x408feb3f0f6c095b,1
+np.float64,0x3fe4ec2954a9d853,0xbfe39dd44aa5a040,1
+np.float64,0x7fd3321d52a6643a,0x408ff21a0ab9cd85,1
+np.float64,0x7fd8f1b2dfb1e365,0x408ff52001fa7922,1
+np.float64,0x3fee5e58cabcbcb2,0xbfb3539734a24d8b,1
+np.float64,0x3feebf6e7dfd7edd,0xbfad7c648f025102,1
+np.float64,0x6008026ec0101,0xc08ffb5108b54a93,1
+np.float64,0x3fea06f5e2340dec,0xbfd3134a48283360,1
+np.float64,0x41cad13c8395b,0xc08fffae654b2426,1
+np.float64,0x7fedb5c9353b6b91,0x408fff249f1f32b6,1
+np.float64,0xe00c5af9c018c,0xc08ff189e68c655f,1
+np.float64,0x7feac398ddf58731,0x408ffdf01374de9f,1
+np.float64,0x3fed21127c7a4225,0xbfc15b8cf55628fa,1
+np.float64,0x3fd3446711a688ce,0xbffbb5f7252a9fa3,1
+np.float64,0x7fe75fa07a6ebf40,0x408ffc5fdb096018,1
+np.float64,0x3feeb1618cbd62c3,0xbfaece3bd0863070,1
+np.float64,0x7f5226e180244dc2,0x408fb174d506e52f,1
+np.float64,0x3fcd67deca3acfbe,0xc000f9cd7a490749,1
+np.float64,0xdc6f30efb8de6,0xc08ff1b9f2a22d2e,1
+np.float64,0x9c14931338293,0xc08ff5b5f975ec5d,1
+np.float64,0x7fe93e802df27cff,0x408ffd4354eba0e0,1
+np.float64,0x3feb92ae5077255d,0xbfcb7f2084e44dbb,1
+np.float64,0xd78dbfddaf1b8,0xc08ff1fc19fa5a13,1
+np.float64,0x7fe14c301fa2985f,0x408ff8e666cb6592,1
+np.float64,0xbda3d8b77b47b,0xc08ff37689f4b2e5,1
+np.float64,0x8a42953b14853,0xc08ff71c2db3b8cf,1
+np.float64,0x7fe4ca7e186994fb,0x408ffb05e94254a7,1
+np.float64,0x7fe92ffc5e325ff8,0x408ffd3cb0265b12,1
+np.float64,0x91b262912364d,0xc08ff681619be214,1
+np.float64,0x33fe2b0667fc6,0xc0900132f3fab55e,1
+np.float64,0x3fde10e9183c21d2,0xbff17060fb4416c7,1
+np.float64,0xb6b811cb6d702,0xc08ff3e46303b541,1
+np.float64,0x3fe4a7bda0a94f7b,0xbfe435c6481cd0e3,1
+np.float64,0x7fd9fe6057b3fcc0,0x408ff599c79a822c,1
+np.float64,0x3fef44bf917e897f,0xbfa11484e351a6e9,1
+np.float64,0x3fe57d701daafae0,0xbfe2618ab40fc01b,1
+np.float64,0x7fe52d2adbaa5a55,0x408ffb3c2fb1c99d,1
+np.float64,0xb432f66d6865f,0xc08ff40d6b4084fe,1
+np.float64,0xbff0000000000000,0x7ff8000000000000,1
+np.float64,0x7fecd2292bf9a451,0x408ffecad860de6f,1
+np.float64,0x3fddd2ae153ba55c,0xbff1a059adaca33e,1
+np.float64,0x3fee55d6e5bcabae,0xbfb3bb1c6179d820,1
+np.float64,0x7fc1d0085623a010,0x408fe93d16ada7a7,1
+np.float64,0x829b000105360,0xc08ff7c47629a68f,1
+np.float64,0x7fe1e0257523c04a,0x408ff94782cf0717,1
+np.float64,0x7fd652f9ad2ca5f2,0x408ff3d820ec892e,1
+np.float64,0x3fef2246203e448c,0xbfa444ab6209d8cd,1
+np.float64,0x3fec6c0ae178d816,0xbfc5e559ebd4e790,1
+np.float64,0x3fe6ddfee92dbbfe,0xbfdf06dd7d3fa7a8,1
+np.float64,0x3fb7fbcbea2ff798,0xc00b5404d859d148,1
+np.float64,0x7feb9a154d37342a,0x408ffe4b26c29e55,1
+np.float64,0x3fe4db717aa9b6e3,0xbfe3c2c6b3ef13bc,1
+np.float64,0x3fbae17dda35c2fc,0xc00a030f7f4b37e7,1
+np.float64,0x7fd632b9082c6571,0x408ff3c76826ef19,1
+np.float64,0x7fc4184a15283093,0x408feaa14adf00be,1
+np.float64,0x3fe052d19920a5a3,0xbfef136b5df81a3e,1
+np.float64,0x7fe38b872b67170d,0x408ffa4f51aafc86,1
+np.float64,0x3fef9842d03f3086,0xbf92d3d2a21d4be2,1
+np.float64,0x9cea662139d4d,0xc08ff5a634810daa,1
+np.float64,0x3fe35f0855e6be11,0xbfe72c4b564e62aa,1
+np.float64,0x3fecee3d3779dc7a,0xbfc29ee942f8729e,1
+np.float64,0x3fe7903fd72f2080,0xbfdc41db9b5f4048,1
+np.float64,0xb958889572b11,0xc08ff3ba366cf84b,1
+np.float64,0x3fcb3a67c53674d0,0xc001dd21081ad1ea,1
+np.float64,0xe3b1b53fc7637,0xc08ff15a3505e1ce,1
+np.float64,0xe5954ae9cb2aa,0xc08ff141cbbf0ae4,1
+np.float64,0x3fe394af74e7295f,0xbfe6ad1d13f206e8,1
+np.float64,0x7fe21dd704643bad,0x408ff96f13f80c1a,1
+np.float64,0x3fd23a7cf02474fa,0xbffcfd7454117a05,1
+np.float64,0x7fe257515e24aea2,0x408ff99378764d52,1
+np.float64,0x7fe4c5d0a6e98ba0,0x408ffb03503cf939,1
+np.float64,0x3fadc2c1603b8583,0xc0106b2c17550e3a,1
+np.float64,0x3fc0f7f02421efe0,0xc007525ac446864c,1
+np.float64,0x3feaf0b27275e165,0xbfcfc8a03eaa32ad,1
+np.float64,0x5ce7503cb9ceb,0xc08ffbb2de365fa8,1
+np.float64,0x2a0014f654003,0xc090026e41761a0d,1
+np.float64,0x7fe2c848a8e59090,0x408ff9d9b723ee89,1
+np.float64,0x7f66f54bc02dea97,0x408fbc2ae0ec5623,1
+np.float64,0xa35a890146b6,0xc0900a97b358ddbd,1
+np.float64,0x7fee267ded7c4cfb,0x408fff501560c9f5,1
+np.float64,0x3fe07c328520f865,0xbfee9ef7c3435b58,1
+np.float64,0x3fe67122cf6ce246,0xbfe06147001932ba,1
+np.float64,0x3fdacc8925359912,0xbff41824cece219e,1
+np.float64,0xffa3047fff461,0xc08ff00431ec9be3,1
+np.float64,0x3e1af43e7c35f,0xc090002c6573d29b,1
+np.float64,0x86fa94590df53,0xc08ff7632525ed92,1
+np.float64,0x7fec4c76227898eb,0x408ffe94d032c657,1
+np.float64,0x7fe2274ce1e44e99,0x408ff975194cfdff,1
+np.float64,0x7fe670e1b4ace1c2,0x408ffbe78cc451de,1
+np.float64,0x7fe853871db0a70d,0x408ffcd5e6a6ff47,1
+np.float64,0x3fcbf265db37e4cc,0xc0019026336e1176,1
+np.float64,0x3fef033cef3e067a,0xbfa726712eaae7f0,1
+np.float64,0x5d74973abae94,0xc08ffba15e6bb992,1
+np.float64,0x7fdd9c99b6bb3932,0x408ff71ad24a7ae0,1
+np.float64,0xbdc8e09b7b91c,0xc08ff3744939e9a3,1
+np.float64,0xdbfcff71b7fa0,0xc08ff1bfeecc9dfb,1
+np.float64,0xf9b38cf5f3672,0xc08ff0499af34a43,1
+np.float64,0x3fea820aa6b50415,0xbfd162a38e1927b1,1
+np.float64,0x3fe67f59a12cfeb3,0xbfe04412adca49dc,1
+np.float64,0x3feb301d9c76603b,0xbfce17e6edeb92d5,1
+np.float64,0x828ce00b0519c,0xc08ff7c5b5c57cde,1
+np.float64,0x4f935e229f26c,0xc08ffd7c67c1c54f,1
+np.float64,0x7fcd139e023a273b,0x408feee4f12ff11e,1
+np.float64,0x666a9944ccd54,0xc08ffa92d5e5cd64,1
+np.float64,0x3fe792f0fa6f25e2,0xbfdc374fda28f470,1
+np.float64,0xe996029bd32c1,0xc08ff10eb9b47a11,1
+np.float64,0x3fe7b0dd1eef61ba,0xbfdbc2676dc77db0,1
+np.float64,0x7fd3ec0127a7d801,0x408ff287bf47e27d,1
+np.float64,0x3fe793a8ea6f2752,0xbfdc347f7717e48d,1
+np.float64,0x7fdb89d15e3713a2,0x408ff64457a13ea2,1
+np.float64,0x3fe35b3cbbe6b679,0xbfe73557c8321b70,1
+np.float64,0x66573c94ccae8,0xc08ffa9504af7eb5,1
+np.float64,0x3fc620a2302c4144,0xc00442036b944a67,1
+np.float64,0x49b2fe0693660,0xc08ffe5f131c3c7e,1
+np.float64,0x7fda936cdfb526d9,0x408ff5db3ab3f701,1
+np.float64,0xc774ceef8ee9a,0xc08ff2e16d082fa1,1
+np.float64,0x4da9f8a09b55,0xc0900ee2206d0c88,1
+np.float64,0x3fe2ca5d5ae594bb,0xbfe89406611a5f1a,1
+np.float64,0x7fe0832497e10648,0x408ff85d1de6056e,1
+np.float64,0x3fe6a9e3222d53c6,0xbfdfda35a9bc2de1,1
+np.float64,0x3fed3d92c8ba7b26,0xbfc0a73620db8b98,1
+np.float64,0x3fdd2ec093ba5d81,0xbff2209cf78ce3f1,1
+np.float64,0x62fcb968c5f98,0xc08ffaf775a593c7,1
+np.float64,0xfcfb019ff9f60,0xc08ff0230e95bd16,1
+np.float64,0x3fd7a63e8f2f4c7d,0xbff6faf4fff7dbe0,1
+np.float64,0x3fef23b0ec3e4762,0xbfa4230cb176f917,1
+np.float64,0x340d1e6a681a5,0xc09001314b68a0a2,1
+np.float64,0x7fc0b85ba02170b6,0x408fe8821487b802,1
+np.float64,0x7fe9976e84f32edc,0x408ffd6bb6aaf467,1
+np.float64,0x329a0e9e65343,0xc090015b044e3270,1
+np.float64,0x3fea4928d3f49252,0xbfd2299b05546eab,1
+np.float64,0x3f188c70003118e0,0xc02ac3ce23bc5d5a,1
+np.float64,0x3fecce5020b99ca0,0xbfc36b23153d5f50,1
+np.float64,0x3fe203873e24070e,0xbfea86edb3690830,1
+np.float64,0x3fe02d9eaa205b3d,0xbfef7d18c54a76d2,1
+np.float64,0xef7537ebdeea7,0xc08ff0c55e9d89e7,1
+np.float64,0x3fedf7572efbeeae,0xbfb840af357cf07c,1
+np.float64,0xd1a97a61a354,0xc0900926fdfb96cc,1
+np.float64,0x7fe6a0daeced41b5,0x408ffc001edf1407,1
+np.float64,0x3fe5063625aa0c6c,0xbfe3647cfb949d62,1
+np.float64,0x7fe9b28d31736519,0x408ffd77eb4a922b,1
+np.float64,0x7feea90d033d5219,0x408fff81a4bbff62,1
+np.float64,0x3fe9494d17f2929a,0xbfd5bde02eb5287a,1
+np.float64,0x7feee17a8cbdc2f4,0x408fff96cf0dc16a,1
+np.float64,0xb2ad18ef655a3,0xc08ff4267eda8af8,1
+np.float64,0x3fad3b52683a76a5,0xc01085ab75b797ce,1
+np.float64,0x2300a65846016,0xc090037b81ce9500,1
+np.float64,0x3feb1041f9b62084,0xbfcef0c87d8b3249,1
+np.float64,0x3fdd887d3e3b10fa,0xbff1da0e1ede6db2,1
+np.float64,0x3fd3e410eb27c822,0xbffaf9b5fc9cc8cc,1
+np.float64,0x3fe0aa53e3e154a8,0xbfee1e7b5c486578,1
+np.float64,0x7fe33e389aa67c70,0x408ffa214fe50961,1
+np.float64,0x3fd27e3a43a4fc75,0xbffca84a79e8adeb,1
+np.float64,0x3fb309e0082613c0,0xc00dfe407b77a508,1
+np.float64,0x7feaf2ed8cf5e5da,0x408ffe046a9d1ba9,1
+np.float64,0x1e76167a3cec4,0xc0900448cd35ec67,1
+np.float64,0x3fe0a18e1721431c,0xbfee36cf1165a0d4,1
+np.float64,0x3fa73b78c02e76f2,0xc011d9069823b172,1
+np.float64,0x3fef6d48287eda90,0xbf9ab2d08722c101,1
+np.float64,0x8fdf0da31fbe2,0xc08ff6a6a2accaa1,1
+np.float64,0x3fc3638db826c71b,0xc005c86191688826,1
+np.float64,0xaa9c09c555381,0xc08ff4aefe1d9473,1
+np.float64,0x7fccb0f4523961e8,0x408feebd84773f23,1
+np.float64,0xede75dcfdbcec,0xc08ff0d89ba887d1,1
+np.float64,0x7f8a051520340a29,0x408fcd9cc17f0d95,1
+np.float64,0x3fef5ca2babeb945,0xbf9dc221f3618e6a,1
+np.float64,0x7fea0ff4bcf41fe8,0x408ffda193359f22,1
+np.float64,0x7fe05c53fd20b8a7,0x408ff841dc7123e8,1
+np.float64,0x3fc625664b2c4acd,0xc0043f8749b9a1d8,1
+np.float64,0x7fed58f98f7ab1f2,0x408fff00585f48c2,1
+np.float64,0x3fb3e5e51427cbca,0xc00d7bcb6528cafe,1
+np.float64,0x3fe728bd3d6e517a,0xbfdddafa72bd0f60,1
+np.float64,0x3fe3f005dd27e00c,0xbfe5d7b3ec93bca0,1
+np.float64,0x3fd74fbd1a2e9f7a,0xbff750001b63ce81,1
+np.float64,0x3fd3af6d85a75edb,0xbffb371d678d11b4,1
+np.float64,0x7fa690ad8c2d215a,0x408fdbf7db9c7640,1
+np.float64,0x3fbdfd38e23bfa72,0xc008bfc1c5c9b89e,1
+np.float64,0x3fe2374684a46e8d,0xbfea030c4595dfba,1
+np.float64,0x7fc0806c372100d7,0x408fe85b36fee334,1
+np.float64,0x3fef3ac47b7e7589,0xbfa2007195c5213f,1
+np.float64,0x3fb55473922aa8e7,0xc00cae7af8230e0c,1
+np.float64,0x7fe018dc152031b7,0x408ff811e0d712fa,1
+np.float64,0x3fe3b3fca56767f9,0xbfe6638ae2c99c62,1
+np.float64,0x7fac79818c38f302,0x408fdea720b39c3c,1
+np.float64,0x7fefffffffffffff,0x4090000000000000,1
+np.float64,0xd2b290cba5652,0xc08ff23f6d7152a6,1
+np.float64,0x7fc5848eb52b091c,0x408feb6b6f8b77d0,1
+np.float64,0xf399f62de733f,0xc08ff092ae319ad8,1
+np.float64,0x7fdec56c12bd8ad7,0x408ff78c4ddbc667,1
+np.float64,0x3fca640f1e34c81e,0xc0023969c5cbfa4c,1
+np.float64,0x3fd55225db2aa44c,0xbff95f7442a2189e,1
+np.float64,0x7fefa009a97f4012,0x408fffdd2f42ef9f,1
+np.float64,0x4a3b70609478,0xc0900f24e449bc3d,1
+np.float64,0x7fe3738b1ba6e715,0x408ffa411f2cb5e7,1
+np.float64,0x7fe5e53f0b6bca7d,0x408ffb9ed8d95cea,1
+np.float64,0x3fe274dd24a4e9ba,0xbfe967fb114b2a83,1
+np.float64,0x3fcbc58b8c378b17,0xc001a2bb1e158bcc,1
+np.float64,0x3fefc2c0043f8580,0xbf862c9b464dcf38,1
+np.float64,0xc2c4fafd858a0,0xc08ff327aecc409b,1
+np.float64,0x3fd8bc39a9b17873,0xbff5f1ad46e5a51c,1
+np.float64,0x3fdf341656be682d,0xbff094f41e7cb4c4,1
+np.float64,0x3fef8495c13f092c,0xbf966cf6313bae4c,1
+np.float64,0x3fe14e0f05229c1e,0xbfec6166f26b7161,1
+np.float64,0x3fed42d3b2ba85a7,0xbfc0860b773d35d8,1
+np.float64,0x7fd92bbac5b25775,0x408ff53abcb3fe0c,1
+np.float64,0xb1635b6f62c6c,0xc08ff43bdf47accf,1
+np.float64,0x4a3a2dbc94746,0xc08ffe49fabddb36,1
+np.float64,0x87d831290fb06,0xc08ff750419dc6fb,1
+np.float64,0x3fec4713f7f88e28,0xbfc6d6217c9f5cf9,1
+np.float64,0x7fed43ba2d3a8773,0x408ffef7fa2fc303,1
+np.float64,0x7fd1ec5b56a3d8b6,0x408ff14f62615f1e,1
+np.float64,0x3fee534b6c7ca697,0xbfb3da1951aa3e68,1
+np.float64,0x3febb564c2b76aca,0xbfca9737062e55e7,1
+np.float64,0x943e6b0f287ce,0xc08ff64e2d09335c,1
+np.float64,0xf177d957e2efb,0xc08ff0acab2999fa,1
+np.float64,0x7fb5b881a82b7102,0x408fe3872b4fde5e,1
+np.float64,0x3fdb2b4a97b65695,0xbff3c715c91359bc,1
+np.float64,0x3fac0a17e4381430,0xc010c330967309fb,1
+np.float64,0x7fd8057990b00af2,0x408ff4b0a287a348,1
+np.float64,0x1f9026a23f206,0xc09004144f3a19dd,1
+np.float64,0x3fdb2977243652ee,0xbff3c8a2fd05803d,1
+np.float64,0x3fe0f6e74b21edcf,0xbfed4c3bb956bae0,1
+np.float64,0xde9cc3bbbd399,0xc08ff19ce5c1e762,1
+np.float64,0x3fe72ce106ae59c2,0xbfddca7ab14ceba2,1
+np.float64,0x3fa8ee14e031dc2a,0xc01170d54ca88e86,1
+np.float64,0x3fe0b09bbb216137,0xbfee0d189a95b877,1
+np.float64,0x7fdfdcb157bfb962,0x408ff7f33cf2afea,1
+np.float64,0x3fef84d5f53f09ac,0xbf966134e2a154f4,1
+np.float64,0x3fea0e0b1bb41c16,0xbfd2fa2d36637d19,1
+np.float64,0x1ab76fd6356ef,0xc090050a9616ffbd,1
+np.float64,0x7fd0ccf79a2199ee,0x408ff09045af2dee,1
+np.float64,0x7fea929345f52526,0x408ffddadc322b07,1
+np.float64,0x3fe9ef629cf3dec5,0xbfd367129c166838,1
+np.float64,0x3feedf0ea2fdbe1d,0xbfaa862afca44c00,1
+np.float64,0x7fce725f723ce4be,0x408fef6cfd2769a8,1
+np.float64,0x7fe4313b3ca86275,0x408ffaaf9557ef8c,1
+np.float64,0xe2d46463c5a8d,0xc08ff165725c6b08,1
+np.float64,0x7fbacb4ace359695,0x408fe5f3647bd0d5,1
+np.float64,0x3fbafd009635fa01,0xc009f745a7a5c5d5,1
+np.float64,0x3fe3cea66ce79d4d,0xbfe6253b895e2838,1
+np.float64,0x7feaa71484354e28,0x408ffde3c0bad2a6,1
+np.float64,0x3fd755b8b42eab71,0xbff74a1444c6e654,1
+np.float64,0x3fc313e2172627c4,0xc005f830e77940c3,1
+np.float64,0x12d699a225ad4,0xc090070ec00f2338,1
+np.float64,0x3fa975fe8432ebfd,0xc01151b3da48b3f9,1
+np.float64,0x7fdce3103b39c61f,0x408ff6d19b3326fa,1
+np.float64,0x7fd341cbba268396,0x408ff2237490fdca,1
+np.float64,0x3fd8405885b080b1,0xbff6666d8802a7d5,1
+np.float64,0x3fe0f0cca3a1e199,0xbfed5cdb3e600791,1
+np.float64,0x7fbd56680c3aaccf,0x408fe6ff55bf378d,1
+np.float64,0x3f939c4f3027389e,0xc016d364dd6313fb,1
+np.float64,0x3fe9e87fac73d0ff,0xbfd37f9a2be4fe38,1
+np.float64,0x7fc93c6a883278d4,0x408fed4260e614f1,1
+np.float64,0x7fa88c0ff031181f,0x408fdcf09a46bd3a,1
+np.float64,0xd5487f99aa910,0xc08ff21b6390ab3b,1
+np.float64,0x3fe34acc96e69599,0xbfe75c9d290428fb,1
+np.float64,0x3fd17f5964a2feb3,0xbffdef50b524137b,1
+np.float64,0xe23dec0dc47be,0xc08ff16d1ce61dcb,1
+np.float64,0x3fec8bd64fb917ad,0xbfc5173941614b8f,1
+np.float64,0x3fc81d97d7303b30,0xc00343ccb791401d,1
+np.float64,0x7fe79ad18e2f35a2,0x408ffc7cf0ab0f2a,1
+np.float64,0x3f96306b402c60d7,0xc0161ce54754cac1,1
+np.float64,0xfb09fc97f6140,0xc08ff039d1d30123,1
+np.float64,0x3fec9c4afa793896,0xbfc4ace43ee46079,1
+np.float64,0x3f9262dac824c5b6,0xc01732a3a7eeb598,1
+np.float64,0x3fa5cd33f42b9a68,0xc01236ed4d315a3a,1
+np.float64,0x3fe7bb336caf7667,0xbfdb9a268a82e267,1
+np.float64,0xc6c338f98d867,0xc08ff2ebb8475bbc,1
+np.float64,0x3fd50714482a0e29,0xbff9b14a9f84f2c2,1
+np.float64,0xfff0000000000000,0x7ff8000000000000,1
+np.float64,0x3fde2cd0f93c59a2,0xbff15afe35a43a37,1
+np.float64,0xf1719cb9e2e34,0xc08ff0acf77b06d3,1
+np.float64,0xfd3caaf9fa796,0xc08ff020101771bd,1
+np.float64,0x7f750d63a02a1ac6,0x408fc32ad0caa362,1
+np.float64,0x7fcc50f4e238a1e9,0x408fee96a5622f1a,1
+np.float64,0x421d1da0843a4,0xc08fff9ffe62d869,1
+np.float64,0x3fd9e17023b3c2e0,0xbff4e631d687ee8e,1
+np.float64,0x3fe4999a09693334,0xbfe4556b3734c215,1
+np.float64,0xd619ef03ac33e,0xc08ff21013c85529,1
+np.float64,0x3fc4da522229b4a4,0xc004f150b2c573aa,1
+np.float64,0x3feb04b053b60961,0xbfcf3fc9e00ebc40,1
+np.float64,0x3fbedec5ea3dbd8c,0xc0086a33dc22fab5,1
+np.float64,0x7fec3b217ab87642,0x408ffe8dbc8ca041,1
+np.float64,0xdb257d33b64b0,0xc08ff1cb42d3c182,1
+np.float64,0x7fa2d92ec025b25d,0x408fd9e414d11cb0,1
+np.float64,0x3fa425c550284b8b,0xc012ab7cbf83be12,1
+np.float64,0x10b4869021692,0xc09007c0487d648a,1
+np.float64,0x7f97918c902f2318,0x408fd47867806574,1
+np.float64,0x3fe4f91238e9f224,0xbfe38160b4e99919,1
+np.float64,0x3fc2b1af6125635f,0xc00634343bc58461,1
+np.float64,0x3fc2a98071255301,0xc0063942bc8301be,1
+np.float64,0x3fe4cfc585299f8b,0xbfe3dca39f114f34,1
+np.float64,0x3fd1ea75b3a3d4eb,0xbffd63acd02c5406,1
+np.float64,0x3fd6bf48492d7e91,0xbff7e0cd249f80f9,1
+np.float64,0x76643d36ecc88,0xc08ff8e68f13b38c,1
+np.float64,0x7feeabab3e7d5755,0x408fff82a0fd4501,1
+np.float64,0x46c0d4a68d81b,0xc08ffed79abaddc9,1
+np.float64,0x3fd088d57ca111ab,0xbfff3dd0ed7128ea,1
+np.float64,0x3fed25887cba4b11,0xbfc13f47639bd645,1
+np.float64,0x7fd90984b4b21308,0x408ff52b022c7fb4,1
+np.float64,0x3fe6ef31daadde64,0xbfdec185760cbf21,1
+np.float64,0x3fe48dbe83291b7d,0xbfe47005b99920bd,1
+np.float64,0x3fdce8422f39d084,0xbff258a33a96cc8e,1
+np.float64,0xb8ecdef771d9c,0xc08ff3c0eca61b10,1
+np.float64,0x3fe9bbf9a03377f3,0xbfd41ecfdcc336b9,1
+np.float64,0x7fe2565339a4aca5,0x408ff992d8851eaf,1
+np.float64,0x3fe1693e3822d27c,0xbfec1919da2ca697,1
+np.float64,0x3fd3680488a6d009,0xbffb8b7330275947,1
+np.float64,0x7fbe4f3d2c3c9e79,0x408fe75fa3f4e600,1
+np.float64,0x7fd4cfef3ca99fdd,0x408ff308ee3ab50f,1
+np.float64,0x3fd9c9a51cb3934a,0xbff4fb7440055ce6,1
+np.float64,0x3fe08a9640a1152d,0xbfee76bd1bfbf5c2,1
+np.float64,0x3fef012c41fe0259,0xbfa757a2da7f9707,1
+np.float64,0x3fee653fe2fcca80,0xbfb2ffae0c95025c,1
+np.float64,0x7fd0776933a0eed1,0x408ff054e7b43d41,1
+np.float64,0x4c94e5c09929d,0xc08ffdedb7f49e5e,1
+np.float64,0xca3e3d17947c8,0xc08ff2b86dce2f7a,1
+np.float64,0x3fb528e1342a51c2,0xc00cc626c8e2d9ba,1
+np.float64,0xd774df81aee9c,0xc08ff1fd6f0a7548,1
+np.float64,0x3fc47a9b6128f537,0xc00526c577b80849,1
+np.float64,0x3fe29a6f6a6534df,0xbfe90a5f83644911,1
+np.float64,0x3fecda4f59f9b49f,0xbfc31e4a80c4cbb6,1
+np.float64,0x7fe51d44f5aa3a89,0x408ffb3382437426,1
+np.float64,0x3fd677fc412ceff9,0xbff82999086977e7,1
+np.float64,0x3fe2a3c7e7254790,0xbfe8f33415cdba9d,1
+np.float64,0x3fe6d8d1dc6db1a4,0xbfdf1bc61bc24dff,1
+np.float64,0x7febb32d8ef7665a,0x408ffe55a043ded1,1
+np.float64,0x60677860c0d0,0xc0900da2caa7d571,1
+np.float64,0x7390c2e0e7219,0xc08ff92df18bb5d2,1
+np.float64,0x3fca53711b34a6e2,0xc00240b07a9b529b,1
+np.float64,0x7fe7ce6dd8ef9cdb,0x408ffc961164ead9,1
+np.float64,0x7fc0c9de0d2193bb,0x408fe88e245767f6,1
+np.float64,0xc0ee217981dc4,0xc08ff343b77ea770,1
+np.float64,0x72bd4668e57a9,0xc08ff94323fd74fc,1
+np.float64,0x7fd6970e252d2e1b,0x408ff3fb1e2fead2,1
+np.float64,0x7fdcb61040396c20,0x408ff6bf926bc98f,1
+np.float64,0xda4faa25b49f6,0xc08ff1d68b3877f0,1
+np.float64,0x3feb344749f6688f,0xbfcdfba2d66c72c5,1
+np.float64,0x3fe2aa4284e55485,0xbfe8e32ae0683f57,1
+np.float64,0x3f8e8fcfd03d1fa0,0xc01843efb2129908,1
+np.float64,0x8000000000000000,0xfff0000000000000,1
+np.float64,0x3fd8e01155b1c023,0xbff5d0529dae9515,1
+np.float64,0x3fe8033f3370067e,0xbfda837c80b87e7c,1
+np.float64,0x7fc5bf831e2b7f05,0x408feb8ae3b039a0,1
+np.float64,0x3fd8dcdf5331b9bf,0xbff5d349e1ed422a,1
+np.float64,0x3fe58b4e302b169c,0xbfe243c9cbccde44,1
+np.float64,0x3fea8a2e47b5145d,0xbfd1464e37221894,1
+np.float64,0x75cd1e88eb9a4,0xc08ff8f553ef0475,1
+np.float64,0x7fcfc876e23f90ed,0x408fefebe6cc95e6,1
+np.float64,0x7f51aceb002359d5,0x408fb1263f9003fb,1
+np.float64,0x7fc2a1b877254370,0x408fe9c1ec52f8b9,1
+np.float64,0x7fd495810e292b01,0x408ff2e859414d31,1
+np.float64,0x7fd72048632e4090,0x408ff440690cebdb,1
+np.float64,0x7fd7aafaffaf6,0xc08ff803a390779f,1
+np.float64,0x7fe18067d4a300cf,0x408ff9090a02693f,1
+np.float64,0x3fdc1080f8b82102,0xbff3077bf44a89bd,1
+np.float64,0x3fc34a462f26948c,0xc005d777b3cdf139,1
+np.float64,0x3fe21e4a1fe43c94,0xbfea428acfbc6ea9,1
+np.float64,0x1f0d79083e1b0,0xc090042c65a7abf2,1
+np.float64,0x3fe8d0d15931a1a3,0xbfd779f6bbd4db78,1
+np.float64,0x3fe74578022e8af0,0xbfdd68b6c15e9f5e,1
+np.float64,0x50995dd0a132c,0xc08ffd56a5c8accf,1
+np.float64,0x3f9a6342b034c685,0xc0151ce1973c62bd,1
+np.float64,0x3f30856a00210ad4,0xc027e852f4d1fcbc,1
+np.float64,0x3febcf7646b79eed,0xbfc9e9cc9d12425c,1
+np.float64,0x8010000000000000,0x7ff8000000000000,1
+np.float64,0x3fdf520c02bea418,0xbff07ed5013f3062,1
+np.float64,0x3fe5433ecbea867e,0xbfe2df38968b6d14,1
+np.float64,0x3fb933a84e326751,0xc00ac1a144ad26c5,1
+np.float64,0x7b6d72c2f6daf,0xc08ff86b7a67f962,1
+np.float64,0xaef5dae75debc,0xc08ff46496bb2932,1
+np.float64,0x522d869aa45b1,0xc08ffd1d55281e98,1
+np.float64,0xa2462b05448c6,0xc08ff542fe0ac5fd,1
+np.float64,0x3fe2b71dd6e56e3c,0xbfe8c3690cf15415,1
+np.float64,0x3fe5778231aaef04,0xbfe26e495d09b783,1
+np.float64,0x3fe9b8d564f371ab,0xbfd42a161132970d,1
+np.float64,0x3f89ebc34033d787,0xc019373f90bfc7f1,1
+np.float64,0x3fe438ddc6e871bc,0xbfe53039341b0a93,1
+np.float64,0x873c75250e78f,0xc08ff75d8478dccd,1
+np.float64,0x807134cb00e27,0xc08ff7f5cf59c57a,1
+np.float64,0x3fac459878388b31,0xc010b6fe803bcdc2,1
+np.float64,0xca9dc7eb953b9,0xc08ff2b2fb480784,1
+np.float64,0x7feb38587bb670b0,0x408ffe21ff6d521e,1
+np.float64,0x7fd70e9b782e1d36,0x408ff437936b393a,1
+np.float64,0x3fa4037bbc2806f7,0xc012b55744c65ab2,1
+np.float64,0x3fd3d4637427a8c7,0xbffb0beebf4311ef,1
+np.float64,0x7fdabbda5db577b4,0x408ff5ecbc0d4428,1
+np.float64,0x7fda9be0a2b537c0,0x408ff5dee5d03d5a,1
+np.float64,0x7fe9c74396338e86,0x408ffd813506a18a,1
+np.float64,0x3fd058243e20b048,0xbfff822ffd8a7f21,1
+np.float64,0x3fe6aa6ca9ed54d9,0xbfdfd805629ff49e,1
+np.float64,0x3fd91431d5322864,0xbff5a025eea8c78b,1
+np.float64,0x7fe4d7f02329afdf,0x408ffb0d5d9b7878,1
+np.float64,0x3fe2954a12252a94,0xbfe917266e3e22d5,1
+np.float64,0x3fb25f7c8224bef9,0xc00e6764c81b3718,1
+np.float64,0x3fda4bddeeb497bc,0xbff4880638908c81,1
+np.float64,0x55dfd12eabbfb,0xc08ffc9b54ff4002,1
+np.float64,0x3fe8f399e031e734,0xbfd6f8e5c4dcd93f,1
+np.float64,0x3fd954a24832a945,0xbff56521f4707a06,1
+np.float64,0x3fdea911f2bd5224,0xbff0fcb2d0c2b2e2,1
+np.float64,0x3fe6b4ff8a2d69ff,0xbfdfacfc85cafeab,1
+np.float64,0x3fc7fa02042ff404,0xc00354e13b0767ad,1
+np.float64,0x3fe955088c72aa11,0xbfd593130f29949e,1
+np.float64,0xd7e74ec1afcea,0xc08ff1f74f61721c,1
+np.float64,0x3fe9d69c1ab3ad38,0xbfd3bf710a337e06,1
+np.float64,0x3fd85669a2b0acd3,0xbff65176143ccc1e,1
+np.float64,0x3fea99b285353365,0xbfd11062744783f2,1
+np.float64,0x3fe2c79f80a58f3f,0xbfe89ac33f990289,1
+np.float64,0x3f8332ba30266574,0xc01af2cb7b635783,1
+np.float64,0x30d0150061a1,0xc090119030f74c5d,1
+np.float64,0x3fdbf4cb06b7e996,0xbff31e5207aaa754,1
+np.float64,0x3fe6b56c216d6ad8,0xbfdfab42fb2941c5,1
+np.float64,0x7fc4dc239829b846,0x408feb0fb0e13fbe,1
+np.float64,0x3fd0ab85ef21570c,0xbfff0d95d6c7a35c,1
+np.float64,0x7fe13d75e5e27aeb,0x408ff8dc8efa476b,1
+np.float64,0x3fece3b832f9c770,0xbfc2e21b165d583f,1
+np.float64,0x3fe3a279c4e744f4,0xbfe68ca4fbb55dbf,1
+np.float64,0x3feb64659ef6c8cb,0xbfccb6204b6bf724,1
+np.float64,0x2279a6bc44f36,0xc0900391eeeb3e7c,1
+np.float64,0xb88046d571009,0xc08ff3c7b5b45300,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0x3fe49af059a935e1,0xbfe4526c294f248f,1
+np.float64,0xa3e5508147cc,0xc0900a92ce5924b1,1
+np.float64,0x7fc56def3d2adbdd,0x408feb5f46c360e8,1
+np.float64,0x7fd99f3574333e6a,0x408ff56f3807987c,1
+np.float64,0x3fdc38d56fb871ab,0xbff2e667cad8f36a,1
+np.float64,0xd0b03507a1607,0xc08ff25bbcf8aa9d,1
+np.float64,0xc493f9078927f,0xc08ff30c5fa4e759,1
+np.float64,0x3fc86ddbcb30dbb8,0xc0031da1fcb56d75,1
+np.float64,0x7fe75dc395aebb86,0x408ffc5eef841491,1
+np.float64,0x1647618a2c8ed,0xc0900616ef9479c1,1
+np.float64,0xdf144763be289,0xc08ff196b527f3c9,1
+np.float64,0x3fe0b29da6a1653b,0xbfee078b5f4d7744,1
+np.float64,0x3feb055852b60ab1,0xbfcf3b4db5779a7a,1
+np.float64,0x3fe8bc1625f1782c,0xbfd7c739ade904bc,1
+np.float64,0x7fd19bfb8ea337f6,0x408ff11b2b55699c,1
+np.float64,0x3fed1d80d1ba3b02,0xbfc1722e8d3ce094,1
+np.float64,0x2d9c65925b38e,0xc09001f46bcd3bc5,1
+np.float64,0x7fed6f4d857ade9a,0x408fff091cf6a3b4,1
+np.float64,0x3fd070cd6ba0e19b,0xbfff5f7609ca29e8,1
+np.float64,0x7fea3508b8f46a10,0x408ffdb1f30bd6be,1
+np.float64,0x508b897ca1172,0xc08ffd58a0eb3583,1
+np.float64,0x7feba367b07746ce,0x408ffe4f0bf4bd4e,1
+np.float64,0x3fefebd5c4bfd7ac,0xbf6d20b4fcf21b69,1
+np.float64,0x3fd8ef07b8b1de0f,0xbff5c2745c0795a5,1
+np.float64,0x3fd38ed518271daa,0xbffb5d75f00f6900,1
+np.float64,0x6de0fecedbc20,0xc08ff9c307bbc647,1
+np.float64,0xafc0ffc35f820,0xc08ff45737e5d6b4,1
+np.float64,0x7fd282097ca50412,0x408ff1ae3b27bf3b,1
+np.float64,0x3fe2f2d50b65e5aa,0xbfe831042e6a1e99,1
+np.float64,0x3faa437bac3486f7,0xc01123d8d962205a,1
+np.float64,0x3feea54434fd4a88,0xbfaff202cc456647,1
+np.float64,0x3fc9e65b8633ccb7,0xc00270e77ffd19da,1
+np.float64,0x7fee15af61fc2b5e,0x408fff49a49154a3,1
+np.float64,0x7fefe670a73fcce0,0x408ffff6c44c1005,1
+np.float64,0x3fc0832d0f21065a,0xc007a2dc2f25384a,1
+np.float64,0x3fecfc96bcb9f92d,0xbfc24367c3912620,1
+np.float64,0x3feb705682b6e0ad,0xbfcc65b1bb16f9c5,1
+np.float64,0x3fe185c4f9630b8a,0xbfebcdb401af67a4,1
+np.float64,0x3fb0a5a9f6214b54,0xc00f8ada2566a047,1
+np.float64,0x7fe2908cdda52119,0x408ff9b744861fb1,1
+np.float64,0x7fee776e183ceedb,0x408fff6ee7c2f86e,1
+np.float64,0x3fce1d608f3c3ac1,0xc000b3685d006474,1
+np.float64,0x7fecf92aa339f254,0x408ffeda6c998267,1
+np.float64,0xce13cb519c27a,0xc08ff280f02882a9,1
+np.float64,0x1,0xc090c80000000000,1
+np.float64,0x3fe485a8afa90b51,0xbfe4823265d5a50a,1
+np.float64,0x3feea60908bd4c12,0xbfafdf7ad7fe203f,1
+np.float64,0x3fd2253033a44a60,0xbffd187d0ec8d5b9,1
+np.float64,0x435338fc86a68,0xc08fff6a591059dd,1
+np.float64,0x7fce8763a73d0ec6,0x408fef74f1e715ff,1
+np.float64,0x3fbe5ddb783cbbb7,0xc0089acc5afa794b,1
+np.float64,0x7fe4cf19ada99e32,0x408ffb0877ca302b,1
+np.float64,0x3fe94c9ea1b2993d,0xbfd5b1c2e867b911,1
+np.float64,0x3fe75541c72eaa84,0xbfdd2a27aa117699,1
+np.float64,0x8000000000000001,0x7ff8000000000000,1
+np.float64,0x7fdbec7f2c37d8fd,0x408ff66d69a7f818,1
+np.float64,0x8ef10d091de22,0xc08ff6b9ca5094f8,1
+np.float64,0x3fea69025b74d205,0xbfd1b9fe2c252c70,1
+np.float64,0x562376d0ac46f,0xc08ffc924111cd31,1
+np.float64,0x8e8097ab1d013,0xc08ff6c2e2706f67,1
+np.float64,0x3fca6803ed34d008,0xc00237aef808825b,1
+np.float64,0x7fe8fe9067b1fd20,0x408ffd25f459a7d1,1
+np.float64,0x3f918e8c7f233,0xc0900009fe011d54,1
+np.float64,0x3fdfe773833fcee7,0xbff011bc1af87bb9,1
+np.float64,0xefffef6fdfffe,0xc08ff0beb0f09eb0,1
+np.float64,0x7fe64610282c8c1f,0x408ffbd17209db18,1
+np.float64,0xe66be8c1ccd7d,0xc08ff13706c056e1,1
+np.float64,0x2837e570506fd,0xc09002ae4dae0c1a,1
+np.float64,0x3febe3a081f7c741,0xbfc964171f2a5a47,1
+np.float64,0x3fe21ed09a243da1,0xbfea41342d29c3ff,1
+np.float64,0x3fe1596c8162b2d9,0xbfec431eee30823a,1
+np.float64,0x8f2b9a131e574,0xc08ff6b51104ed4e,1
+np.float64,0x3fe88ed179711da3,0xbfd870d08a4a4b0c,1
+np.float64,0x34159bc2682b4,0xc09001305a885f94,1
+np.float64,0x1ed31e543da65,0xc0900437481577f8,1
+np.float64,0x3feafbe9de75f7d4,0xbfcf7bcdbacf1c61,1
+np.float64,0xfb16fb27f62e0,0xc08ff03938e682a2,1
+np.float64,0x3fe5cd5ba7eb9ab7,0xbfe1b7165771af3c,1
+np.float64,0x7fe72905e76e520b,0x408ffc44c4e7e80c,1
+np.float64,0x7fb7136e2e2e26db,0x408fe439fd383fb7,1
+np.float64,0x8fa585e11f4c,0xc0900b55a08a486b,1
+np.float64,0x7fed985ce47b30b9,0x408fff192b596821,1
+np.float64,0x3feaaf0869755e11,0xbfd0c671571b3764,1
+np.float64,0x3fa40fd4ec281faa,0xc012b1c8dc0b9e5f,1
+np.float64,0x7fda2a70993454e0,0x408ff5ad47b0c68a,1
+np.float64,0x3fe5f7e931abefd2,0xbfe15d52b3605abf,1
+np.float64,0x3fe9fc6d3533f8da,0xbfd338b06a790994,1
+np.float64,0x3fe060649420c0c9,0xbfeeed1756111891,1
+np.float64,0x3fce8435e33d086c,0xc0008c41cea9ed40,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x617820aec2f05,0xc08ffb251e9af0f0,1
+np.float64,0x7fcc4ab6ee38956d,0x408fee9419c8f77d,1
+np.float64,0x7fdefda2fc3dfb45,0x408ff7a15063bc05,1
+np.float64,0x7fe5138ccaaa2719,0x408ffb2e30f3a46e,1
+np.float64,0x3fe3817a836702f5,0xbfe6da7c2b25e35a,1
+np.float64,0x3fb8a7dafa314fb6,0xc00b025bc0784ebe,1
+np.float64,0x349dc420693d,0xc09011215825d2c8,1
+np.float64,0x6b0e504ad61cb,0xc08ffa0fee9c5cd6,1
+np.float64,0x273987644e732,0xc09002d34294ed79,1
+np.float64,0x3fc0bd8a6e217b15,0xc0077a5828b4d2f5,1
+np.float64,0x758b48c4eb16a,0xc08ff8fbc8fbe46a,1
+np.float64,0x3fc8a9a52631534a,0xc00301854ec0ef81,1
+np.float64,0x7fe79d29a76f3a52,0x408ffc7e1607a4c1,1
+np.float64,0x3fd7d3ebce2fa7d8,0xbff6ce8a94aebcda,1
+np.float64,0x7fd1cb68a52396d0,0x408ff13a17533b2b,1
+np.float64,0x7fda514a5d34a294,0x408ff5be5e081578,1
+np.float64,0x3fc40b4382281687,0xc0056632c8067228,1
+np.float64,0x7feff1208c3fe240,0x408ffffaa180fa0d,1
+np.float64,0x8f58739f1eb0f,0xc08ff6b17402689d,1
+np.float64,0x1fdbe9a23fb7e,0xc090040685b2d24f,1
+np.float64,0xcb1d0e87963a2,0xc08ff2abbd903b82,1
+np.float64,0x3fc45a6a1a28b4d4,0xc00538f86c4aeaee,1
+np.float64,0x3fe61885b1ac310b,0xbfe118fd2251d2ec,1
+np.float64,0x3fedf584c8fbeb0a,0xbfb8572433ff67a9,1
+np.float64,0x7fb0bddd1a217bb9,0x408fe085e0d621db,1
+np.float64,0x72d8d3e0e5b3,0xc0900ca02f68c7a1,1
+np.float64,0x5cca6ff6b994f,0xc08ffbb6751fda01,1
+np.float64,0x7fe3197839a632ef,0x408ffa0b2fccfb68,1
+np.float64,0x3fcce4d9c139c9b4,0xc0012dae05baa91b,1
+np.float64,0x3fe76d00f62eda02,0xbfdccc5f12799be1,1
+np.float64,0x3fc53c22f72a7846,0xc004bbaa9cbc7958,1
+np.float64,0x7fdda02f1ebb405d,0x408ff71c37c71659,1
+np.float64,0x3fe0844eaba1089d,0xbfee884722762583,1
+np.float64,0x3febb438dc776872,0xbfca9f05e1c691f1,1
+np.float64,0x3fdf4170cdbe82e2,0xbff08b1561c8d848,1
+np.float64,0x3fce1b8d6f3c371b,0xc000b41b69507671,1
+np.float64,0x8370e60706e1d,0xc08ff7b19ea0b4ca,1
+np.float64,0x7fa5bf92382b7f23,0x408fdb8aebb3df87,1
+np.float64,0x7fe4a59979a94b32,0x408ffaf15c1358cd,1
+np.float64,0x3faa66086034cc11,0xc0111c466b7835d6,1
+np.float64,0x7fb7a958262f52af,0x408fe48408b1e093,1
+np.float64,0x3fdaacc5f635598c,0xbff43390d06b5614,1
+np.float64,0x3fd2825b9e2504b7,0xbffca3234264f109,1
+np.float64,0x3fcede160a3dbc2c,0xc0006a759e29060c,1
+np.float64,0x7fd3b19603a7632b,0x408ff265b528371c,1
+np.float64,0x7fcf8a86ea3f150d,0x408fefd552e7f3b2,1
+np.float64,0xedbcc0f7db798,0xc08ff0daad12096b,1
+np.float64,0xf1e1683de3c2d,0xc08ff0a7a0a37e00,1
+np.float64,0xb6ebd9bf6dd7b,0xc08ff3e11e28378d,1
+np.float64,0x3fec8090d6f90122,0xbfc56031b72194cc,1
+np.float64,0x3fd3e10e37a7c21c,0xbffafd34a3ebc933,1
+np.float64,0x7fbb1c96aa36392c,0x408fe616347b3342,1
+np.float64,0x3fe2f3996f25e733,0xbfe82f25bc5d1bbd,1
+np.float64,0x7fe8709da870e13a,0x408ffce3ab6ce59a,1
+np.float64,0x7fea3233d1b46467,0x408ffdb0b3bbc6de,1
+np.float64,0x65fa4112cbf49,0xc08ffa9f85eb72b9,1
+np.float64,0x3fca2cae9f34595d,0xc00251bb275afb87,1
+np.float64,0x8135fd9f026c0,0xc08ff7e42e14dce7,1
+np.float64,0x7fe0a6f057e14de0,0x408ff876081a4bfe,1
+np.float64,0x10000000000000,0xc08ff00000000000,1
+np.float64,0x3fe1fd506263faa1,0xbfea96dd8c543b72,1
+np.float64,0xa5532c554aa66,0xc08ff50bf5bfc66d,1
+np.float64,0xc239d00b8473a,0xc08ff32ff0ea3f92,1
+np.float64,0x7fdb5314e336a629,0x408ff62d4ff60d82,1
+np.float64,0x3fe5f506e2abea0e,0xbfe16362a4682120,1
+np.float64,0x3fa20c60202418c0,0xc0134e08d82608b6,1
+np.float64,0x7fe03864b22070c8,0x408ff82866d65e9a,1
+np.float64,0x3fe72cf5656e59eb,0xbfddca298969effa,1
+np.float64,0x5c295386b852b,0xc08ffbca90b136c9,1
+np.float64,0x7fd71e5020ae3c9f,0x408ff43f6d58eb7c,1
+np.float64,0x3fd1905a842320b5,0xbffdd8ecd288159c,1
+np.float64,0x3fe6bddb256d7bb6,0xbfdf88fee1a820bb,1
+np.float64,0xe061b967c0c37,0xc08ff18581951561,1
+np.float64,0x3fe534f65cea69ed,0xbfe2fe45fe7d3040,1
+np.float64,0xdc7dae07b8fb6,0xc08ff1b93074ea76,1
+np.float64,0x3fd0425082a084a1,0xbfffa11838b21633,1
+np.float64,0xba723fc974e48,0xc08ff3a8b8d01c58,1
+np.float64,0x3fce42ffc73c8600,0xc000a5062678406e,1
+np.float64,0x3f2e6d3c7e5ce,0xc090001304cfd1c7,1
+np.float64,0x3fd4b2e5f7a965cc,0xbffa0e6e6bae0a68,1
+np.float64,0x3fe6db1d18edb63a,0xbfdf128158ee92d9,1
+np.float64,0x7fe4e5792f29caf1,0x408ffb14d9dbf133,1
+np.float64,0x3fc11cdf992239bf,0xc00739569619cd77,1
+np.float64,0x3fc05ea11220bd42,0xc007bc841b48a890,1
+np.float64,0x4bd592d497ab3,0xc08ffe0ab1c962e2,1
+np.float64,0x280068fc5000e,0xc09002b64955e865,1
+np.float64,0x7fe2f2637065e4c6,0x408ff9f379c1253a,1
+np.float64,0x3fefc38467ff8709,0xbf85e53e64b9a424,1
+np.float64,0x2d78ec5a5af1e,0xc09001f8ea8601e0,1
+np.float64,0x7feeef2b957dde56,0x408fff9bebe995f7,1
+np.float64,0x2639baf44c738,0xc09002f9618d623b,1
+np.float64,0x3fc562964d2ac52d,0xc004a6d76959ef78,1
+np.float64,0x3fe21b071fe4360e,0xbfea4adb2cd96ade,1
+np.float64,0x7fe56aa6802ad54c,0x408ffb5d81d1a898,1
+np.float64,0x4296b452852d7,0xc08fff8ad7fbcbe1,1
+np.float64,0x7fe3fac4ff27f589,0x408ffa9049eec479,1
+np.float64,0x7fe7a83e6caf507c,0x408ffc837f436604,1
+np.float64,0x3fc4ac5b872958b7,0xc0050add72381ac3,1
+np.float64,0x3fd6d697c02dad30,0xbff7c931a3eefb01,1
+np.float64,0x3f61e391c023c724,0xc021ad91e754f94b,1
+np.float64,0x10817f9c21031,0xc09007d20434d7bc,1
+np.float64,0x3fdb9c4c4cb73899,0xbff367d8615c5ece,1
+np.float64,0x3fe26ead6b64dd5b,0xbfe977771def5989,1
+np.float64,0x3fc43ea5c3287d4c,0xc00548c2163ae631,1
+np.float64,0x3fe05bd8bba0b7b1,0xbfeef9ea0db91abc,1
+np.float64,0x3feac78369358f07,0xbfd071e2b0aeab39,1
+np.float64,0x7fe254922ca4a923,0x408ff991bdd4e5d3,1
+np.float64,0x3fe5a2f5842b45eb,0xbfe21135c9a71666,1
+np.float64,0x3fd5daf98c2bb5f3,0xbff8cd24f7c07003,1
+np.float64,0x3fcb2a1384365427,0xc001e40f0d04299a,1
+np.float64,0x3fe073974360e72f,0xbfeeb7183a9930b7,1
+np.float64,0xcf3440819e688,0xc08ff270d3a71001,1
+np.float64,0x3fd35656cda6acae,0xbffba083fba4939d,1
+np.float64,0x7fe6c59b4ded8b36,0x408ffc12ce725425,1
+np.float64,0x3fba896f943512df,0xc00a291cb6947701,1
+np.float64,0x7fe54917e86a922f,0x408ffb4b5e0fb848,1
+np.float64,0x7fed2a3f51ba547e,0x408ffeede945a948,1
+np.float64,0x3fdc72bd5038e57b,0xbff2b73b7e93e209,1
+np.float64,0x7fefdb3f9f3fb67e,0x408ffff2b702a768,1
+np.float64,0x3fb0184430203088,0xc00fee8c1351763c,1
+np.float64,0x7d6c3668fad87,0xc08ff83c195f2cca,1
+np.float64,0x3fd5aa254aab544b,0xbff900f16365991b,1
+np.float64,0x3f963daab02c7b55,0xc0161974495b1b71,1
+np.float64,0x3fa7a9c5982f538b,0xc011bde0f6052a89,1
+np.float64,0xb3a5a74b674b5,0xc08ff4167bc97c81,1
+np.float64,0x7fad0c14503a1828,0x408fdee1f2d56cd7,1
+np.float64,0x43e0e9d887c1e,0xc08fff522837b13b,1
+np.float64,0x3fe513b20aea2764,0xbfe346ea994100e6,1
+np.float64,0x7fe4e10393e9c206,0x408ffb12630f6a06,1
+np.float64,0x68b286e2d1651,0xc08ffa51c0d795d4,1
+np.float64,0x7fe8de453331bc89,0x408ffd17012b75ac,1
+np.float64,0x1b3d77d4367b0,0xc09004edea60aa36,1
+np.float64,0x3fd351cbc326a398,0xbffba5f0f4d5fdba,1
+np.float64,0x3fd264951b24c92a,0xbffcc8636788b9bf,1
+np.float64,0xd2465761a48cb,0xc08ff2455c9c53e5,1
+np.float64,0x7fe46a0ef028d41d,0x408ffacfe32c6f5d,1
+np.float64,0x3fafd8ac4c3fb159,0xc010071bf33195d0,1
+np.float64,0x902aec5d2055e,0xc08ff6a08e28aabc,1
+np.float64,0x3fcea61bb03d4c37,0xc0007f76e509b657,1
+np.float64,0x7fe8d90f9571b21e,0x408ffd1495f952e7,1
+np.float64,0x7fa650c9442ca192,0x408fdbd6ff22fdd8,1
+np.float64,0x3fe8ecfdf171d9fc,0xbfd7115df40e8580,1
+np.float64,0x7fd4e6fe7f29cdfc,0x408ff315b0dae183,1
+np.float64,0x77df4c52efbea,0xc08ff8c1d5c1df33,1
+np.float64,0xe200b0cfc4016,0xc08ff1703cfb8e79,1
+np.float64,0x3fe230ea7e2461d5,0xbfea132d2385160e,1
+np.float64,0x7fd1f7ced723ef9d,0x408ff156bfbf92a4,1
+np.float64,0x3fea762818f4ec50,0xbfd18c12a88e5f79,1
+np.float64,0x7feea4ba7c7d4974,0x408fff8004164054,1
+np.float64,0x833ec605067d9,0xc08ff7b606383841,1
+np.float64,0x7fd0c2d7fea185af,0x408ff0894f3a0cf4,1
+np.float64,0x3fe1d7d61d23afac,0xbfeaf76fee875d3e,1
+np.float64,0x65adecb0cb5be,0xc08ffaa82cb09d68,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sin.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sin.csv
new file mode 100644
index 0000000..03e76ff
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sin.csv
@@ -0,0 +1,1370 @@
+dtype,input,output,ulperrortol
+## +ve denormals ##
+np.float32,0x004b4716,0x004b4716,2
+np.float32,0x007b2490,0x007b2490,2
+np.float32,0x007c99fa,0x007c99fa,2
+np.float32,0x00734a0c,0x00734a0c,2
+np.float32,0x0070de24,0x0070de24,2
+np.float32,0x007fffff,0x007fffff,2
+np.float32,0x00000001,0x00000001,2
+## -ve denormals ##
+np.float32,0x80495d65,0x80495d65,2
+np.float32,0x806894f6,0x806894f6,2
+np.float32,0x80555a76,0x80555a76,2
+np.float32,0x804e1fb8,0x804e1fb8,2
+np.float32,0x80687de9,0x80687de9,2
+np.float32,0x807fffff,0x807fffff,2
+np.float32,0x80000001,0x80000001,2
+## +/-0.0f, +/-FLT_MIN +/-FLT_MAX ##
+np.float32,0x00000000,0x00000000,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x00800000,0x00800000,2
+np.float32,0x80800000,0x80800000,2
+## 1.00f ##
+np.float32,0x3f800000,0x3f576aa4,2
+np.float32,0x3f800001,0x3f576aa6,2
+np.float32,0x3f800002,0x3f576aa7,2
+np.float32,0xc090a8b0,0x3f7b4e48,2
+np.float32,0x41ce3184,0x3f192d43,2
+np.float32,0xc1d85848,0xbf7161cb,2
+np.float32,0x402b8820,0x3ee3f29f,2
+np.float32,0x42b4e454,0x3f1d0151,2
+np.float32,0x42a67a60,0x3f7ffa4c,2
+np.float32,0x41d92388,0x3f67beef,2
+np.float32,0x422dd66c,0xbeffb0c1,2
+np.float32,0xc28f5be6,0xbf0bae79,2
+np.float32,0x41ab2674,0x3f0ffe2b,2
+np.float32,0x3f490fdb,0x3f3504f3,2
+np.float32,0xbf490fdb,0xbf3504f3,2
+np.float32,0x3fc90fdb,0x3f800000,2
+np.float32,0xbfc90fdb,0xbf800000,2
+np.float32,0x40490fdb,0xb3bbbd2e,2
+np.float32,0xc0490fdb,0x33bbbd2e,2
+np.float32,0x3fc90fdb,0x3f800000,2
+np.float32,0xbfc90fdb,0xbf800000,2
+np.float32,0x40490fdb,0xb3bbbd2e,2
+np.float32,0xc0490fdb,0x33bbbd2e,2
+np.float32,0x40c90fdb,0x343bbd2e,2
+np.float32,0xc0c90fdb,0xb43bbd2e,2
+np.float32,0x4016cbe4,0x3f3504f3,2
+np.float32,0xc016cbe4,0xbf3504f3,2
+np.float32,0x4096cbe4,0xbf800000,2
+np.float32,0xc096cbe4,0x3f800000,2
+np.float32,0x4116cbe4,0xb2ccde2e,2
+np.float32,0xc116cbe4,0x32ccde2e,2
+np.float32,0x40490fdb,0xb3bbbd2e,2
+np.float32,0xc0490fdb,0x33bbbd2e,2
+np.float32,0x40c90fdb,0x343bbd2e,2
+np.float32,0xc0c90fdb,0xb43bbd2e,2
+np.float32,0x41490fdb,0x34bbbd2e,2
+np.float32,0xc1490fdb,0xb4bbbd2e,2
+np.float32,0x407b53d2,0xbf3504f5,2
+np.float32,0xc07b53d2,0x3f3504f5,2
+np.float32,0x40fb53d2,0x3f800000,2
+np.float32,0xc0fb53d2,0xbf800000,2
+np.float32,0x417b53d2,0xb535563d,2
+np.float32,0xc17b53d2,0x3535563d,2
+np.float32,0x4096cbe4,0xbf800000,2
+np.float32,0xc096cbe4,0x3f800000,2
+np.float32,0x4116cbe4,0xb2ccde2e,2
+np.float32,0xc116cbe4,0x32ccde2e,2
+np.float32,0x4196cbe4,0x334cde2e,2
+np.float32,0xc196cbe4,0xb34cde2e,2
+np.float32,0x40afede0,0xbf3504ef,2
+np.float32,0xc0afede0,0x3f3504ef,2
+np.float32,0x412fede0,0xbf800000,2
+np.float32,0xc12fede0,0x3f800000,2
+np.float32,0x41afede0,0xb5b222c4,2
+np.float32,0xc1afede0,0x35b222c4,2
+np.float32,0x40c90fdb,0x343bbd2e,2
+np.float32,0xc0c90fdb,0xb43bbd2e,2
+np.float32,0x41490fdb,0x34bbbd2e,2
+np.float32,0xc1490fdb,0xb4bbbd2e,2
+np.float32,0x41c90fdb,0x353bbd2e,2
+np.float32,0xc1c90fdb,0xb53bbd2e,2
+np.float32,0x40e231d6,0x3f3504f3,2
+np.float32,0xc0e231d6,0xbf3504f3,2
+np.float32,0x416231d6,0x3f800000,2
+np.float32,0xc16231d6,0xbf800000,2
+np.float32,0x41e231d6,0xb399a6a2,2
+np.float32,0xc1e231d6,0x3399a6a2,2
+np.float32,0x40fb53d2,0x3f800000,2
+np.float32,0xc0fb53d2,0xbf800000,2
+np.float32,0x417b53d2,0xb535563d,2
+np.float32,0xc17b53d2,0x3535563d,2
+np.float32,0x41fb53d2,0x35b5563d,2
+np.float32,0xc1fb53d2,0xb5b5563d,2
+np.float32,0x410a3ae7,0x3f3504eb,2
+np.float32,0xc10a3ae7,0xbf3504eb,2
+np.float32,0x418a3ae7,0xbf800000,2
+np.float32,0xc18a3ae7,0x3f800000,2
+np.float32,0x420a3ae7,0xb6308908,2
+np.float32,0xc20a3ae7,0x36308908,2
+np.float32,0x4116cbe4,0xb2ccde2e,2
+np.float32,0xc116cbe4,0x32ccde2e,2
+np.float32,0x4196cbe4,0x334cde2e,2
+np.float32,0xc196cbe4,0xb34cde2e,2
+np.float32,0x4216cbe4,0x33ccde2e,2
+np.float32,0xc216cbe4,0xb3ccde2e,2
+np.float32,0x41235ce2,0xbf3504f7,2
+np.float32,0xc1235ce2,0x3f3504f7,2
+np.float32,0x41a35ce2,0x3f800000,2
+np.float32,0xc1a35ce2,0xbf800000,2
+np.float32,0x42235ce2,0xb5b889b6,2
+np.float32,0xc2235ce2,0x35b889b6,2
+np.float32,0x412fede0,0xbf800000,2
+np.float32,0xc12fede0,0x3f800000,2
+np.float32,0x41afede0,0xb5b222c4,2
+np.float32,0xc1afede0,0x35b222c4,2
+np.float32,0x422fede0,0x363222c4,2
+np.float32,0xc22fede0,0xb63222c4,2
+np.float32,0x413c7edd,0xbf3504f3,2
+np.float32,0xc13c7edd,0x3f3504f3,2
+np.float32,0x41bc7edd,0xbf800000,2
+np.float32,0xc1bc7edd,0x3f800000,2
+np.float32,0x423c7edd,0xb4000add,2
+np.float32,0xc23c7edd,0x34000add,2
+np.float32,0x41490fdb,0x34bbbd2e,2
+np.float32,0xc1490fdb,0xb4bbbd2e,2
+np.float32,0x41c90fdb,0x353bbd2e,2
+np.float32,0xc1c90fdb,0xb53bbd2e,2
+np.float32,0x42490fdb,0x35bbbd2e,2
+np.float32,0xc2490fdb,0xb5bbbd2e,2
+np.float32,0x4155a0d9,0x3f3504fb,2
+np.float32,0xc155a0d9,0xbf3504fb,2
+np.float32,0x41d5a0d9,0x3f800000,2
+np.float32,0xc1d5a0d9,0xbf800000,2
+np.float32,0x4255a0d9,0xb633bc81,2
+np.float32,0xc255a0d9,0x3633bc81,2
+np.float32,0x416231d6,0x3f800000,2
+np.float32,0xc16231d6,0xbf800000,2
+np.float32,0x41e231d6,0xb399a6a2,2
+np.float32,0xc1e231d6,0x3399a6a2,2
+np.float32,0x426231d6,0x3419a6a2,2
+np.float32,0xc26231d6,0xb419a6a2,2
+np.float32,0x416ec2d4,0x3f3504ef,2
+np.float32,0xc16ec2d4,0xbf3504ef,2
+np.float32,0x41eec2d4,0xbf800000,2
+np.float32,0xc1eec2d4,0x3f800000,2
+np.float32,0x426ec2d4,0xb5bef0a7,2
+np.float32,0xc26ec2d4,0x35bef0a7,2
+np.float32,0x417b53d2,0xb535563d,2
+np.float32,0xc17b53d2,0x3535563d,2
+np.float32,0x41fb53d2,0x35b5563d,2
+np.float32,0xc1fb53d2,0xb5b5563d,2
+np.float32,0x427b53d2,0x3635563d,2
+np.float32,0xc27b53d2,0xb635563d,2
+np.float32,0x4183f268,0xbf3504ff,2
+np.float32,0xc183f268,0x3f3504ff,2
+np.float32,0x4203f268,0x3f800000,2
+np.float32,0xc203f268,0xbf800000,2
+np.float32,0x4283f268,0xb6859a13,2
+np.float32,0xc283f268,0x36859a13,2
+np.float32,0x418a3ae7,0xbf800000,2
+np.float32,0xc18a3ae7,0x3f800000,2
+np.float32,0x420a3ae7,0xb6308908,2
+np.float32,0xc20a3ae7,0x36308908,2
+np.float32,0x428a3ae7,0x36b08908,2
+np.float32,0xc28a3ae7,0xb6b08908,2
+np.float32,0x41908365,0xbf3504f6,2
+np.float32,0xc1908365,0x3f3504f6,2
+np.float32,0x42108365,0xbf800000,2
+np.float32,0xc2108365,0x3f800000,2
+np.float32,0x42908365,0x3592200d,2
+np.float32,0xc2908365,0xb592200d,2
+np.float32,0x4196cbe4,0x334cde2e,2
+np.float32,0xc196cbe4,0xb34cde2e,2
+np.float32,0x4216cbe4,0x33ccde2e,2
+np.float32,0xc216cbe4,0xb3ccde2e,2
+np.float32,0x4296cbe4,0x344cde2e,2
+np.float32,0xc296cbe4,0xb44cde2e,2
+np.float32,0x419d1463,0x3f3504f8,2
+np.float32,0xc19d1463,0xbf3504f8,2
+np.float32,0x421d1463,0x3f800000,2
+np.float32,0xc21d1463,0xbf800000,2
+np.float32,0x429d1463,0xb5c55799,2
+np.float32,0xc29d1463,0x35c55799,2
+np.float32,0x41a35ce2,0x3f800000,2
+np.float32,0xc1a35ce2,0xbf800000,2
+np.float32,0x42235ce2,0xb5b889b6,2
+np.float32,0xc2235ce2,0x35b889b6,2
+np.float32,0x42a35ce2,0x363889b6,2
+np.float32,0xc2a35ce2,0xb63889b6,2
+np.float32,0x41a9a561,0x3f3504e7,2
+np.float32,0xc1a9a561,0xbf3504e7,2
+np.float32,0x4229a561,0xbf800000,2
+np.float32,0xc229a561,0x3f800000,2
+np.float32,0x42a9a561,0xb68733d0,2
+np.float32,0xc2a9a561,0x368733d0,2
+np.float32,0x41afede0,0xb5b222c4,2
+np.float32,0xc1afede0,0x35b222c4,2
+np.float32,0x422fede0,0x363222c4,2
+np.float32,0xc22fede0,0xb63222c4,2
+np.float32,0x42afede0,0x36b222c4,2
+np.float32,0xc2afede0,0xb6b222c4,2
+np.float32,0x41b6365e,0xbf3504f0,2
+np.float32,0xc1b6365e,0x3f3504f0,2
+np.float32,0x4236365e,0x3f800000,2
+np.float32,0xc236365e,0xbf800000,2
+np.float32,0x42b6365e,0x358bb91c,2
+np.float32,0xc2b6365e,0xb58bb91c,2
+np.float32,0x41bc7edd,0xbf800000,2
+np.float32,0xc1bc7edd,0x3f800000,2
+np.float32,0x423c7edd,0xb4000add,2
+np.float32,0xc23c7edd,0x34000add,2
+np.float32,0x42bc7edd,0x34800add,2
+np.float32,0xc2bc7edd,0xb4800add,2
+np.float32,0x41c2c75c,0xbf3504ef,2
+np.float32,0xc1c2c75c,0x3f3504ef,2
+np.float32,0x4242c75c,0xbf800000,2
+np.float32,0xc242c75c,0x3f800000,2
+np.float32,0x42c2c75c,0xb5cbbe8a,2
+np.float32,0xc2c2c75c,0x35cbbe8a,2
+np.float32,0x41c90fdb,0x353bbd2e,2
+np.float32,0xc1c90fdb,0xb53bbd2e,2
+np.float32,0x42490fdb,0x35bbbd2e,2
+np.float32,0xc2490fdb,0xb5bbbd2e,2
+np.float32,0x42c90fdb,0x363bbd2e,2
+np.float32,0xc2c90fdb,0xb63bbd2e,2
+np.float32,0x41cf585a,0x3f3504ff,2
+np.float32,0xc1cf585a,0xbf3504ff,2
+np.float32,0x424f585a,0x3f800000,2
+np.float32,0xc24f585a,0xbf800000,2
+np.float32,0x42cf585a,0xb688cd8c,2
+np.float32,0xc2cf585a,0x3688cd8c,2
+np.float32,0x41d5a0d9,0x3f800000,2
+np.float32,0xc1d5a0d9,0xbf800000,2
+np.float32,0x4255a0d9,0xb633bc81,2
+np.float32,0xc255a0d9,0x3633bc81,2
+np.float32,0x42d5a0d9,0x36b3bc81,2
+np.float32,0xc2d5a0d9,0xb6b3bc81,2
+np.float32,0x41dbe958,0x3f3504e0,2
+np.float32,0xc1dbe958,0xbf3504e0,2
+np.float32,0x425be958,0xbf800000,2
+np.float32,0xc25be958,0x3f800000,2
+np.float32,0x42dbe958,0xb6deab75,2
+np.float32,0xc2dbe958,0x36deab75,2
+np.float32,0x41e231d6,0xb399a6a2,2
+np.float32,0xc1e231d6,0x3399a6a2,2
+np.float32,0x426231d6,0x3419a6a2,2
+np.float32,0xc26231d6,0xb419a6a2,2
+np.float32,0x42e231d6,0x3499a6a2,2
+np.float32,0xc2e231d6,0xb499a6a2,2
+np.float32,0x41e87a55,0xbf3504f8,2
+np.float32,0xc1e87a55,0x3f3504f8,2
+np.float32,0x42687a55,0x3f800000,2
+np.float32,0xc2687a55,0xbf800000,2
+np.float32,0x42e87a55,0xb5d2257b,2
+np.float32,0xc2e87a55,0x35d2257b,2
+np.float32,0x41eec2d4,0xbf800000,2
+np.float32,0xc1eec2d4,0x3f800000,2
+np.float32,0x426ec2d4,0xb5bef0a7,2
+np.float32,0xc26ec2d4,0x35bef0a7,2
+np.float32,0x42eec2d4,0x363ef0a7,2
+np.float32,0xc2eec2d4,0xb63ef0a7,2
+np.float32,0x41f50b53,0xbf3504e7,2
+np.float32,0xc1f50b53,0x3f3504e7,2
+np.float32,0x42750b53,0xbf800000,2
+np.float32,0xc2750b53,0x3f800000,2
+np.float32,0x42f50b53,0xb68a6748,2
+np.float32,0xc2f50b53,0x368a6748,2
+np.float32,0x41fb53d2,0x35b5563d,2
+np.float32,0xc1fb53d2,0xb5b5563d,2
+np.float32,0x427b53d2,0x3635563d,2
+np.float32,0xc27b53d2,0xb635563d,2
+np.float32,0x42fb53d2,0x36b5563d,2
+np.float32,0xc2fb53d2,0xb6b5563d,2
+np.float32,0x4200ce28,0x3f3504f0,2
+np.float32,0xc200ce28,0xbf3504f0,2
+np.float32,0x4280ce28,0x3f800000,2
+np.float32,0xc280ce28,0xbf800000,2
+np.float32,0x4300ce28,0x357dd672,2
+np.float32,0xc300ce28,0xb57dd672,2
+np.float32,0x4203f268,0x3f800000,2
+np.float32,0xc203f268,0xbf800000,2
+np.float32,0x4283f268,0xb6859a13,2
+np.float32,0xc283f268,0x36859a13,2
+np.float32,0x4303f268,0x37059a13,2
+np.float32,0xc303f268,0xb7059a13,2
+np.float32,0x420716a7,0x3f3504ee,2
+np.float32,0xc20716a7,0xbf3504ee,2
+np.float32,0x428716a7,0xbf800000,2
+np.float32,0xc28716a7,0x3f800000,2
+np.float32,0x430716a7,0xb5d88c6d,2
+np.float32,0xc30716a7,0x35d88c6d,2
+np.float32,0x420a3ae7,0xb6308908,2
+np.float32,0xc20a3ae7,0x36308908,2
+np.float32,0x428a3ae7,0x36b08908,2
+np.float32,0xc28a3ae7,0xb6b08908,2
+np.float32,0x430a3ae7,0x37308908,2
+np.float32,0xc30a3ae7,0xb7308908,2
+np.float32,0x420d5f26,0xbf350500,2
+np.float32,0xc20d5f26,0x3f350500,2
+np.float32,0x428d5f26,0x3f800000,2
+np.float32,0xc28d5f26,0xbf800000,2
+np.float32,0x430d5f26,0xb68c0105,2
+np.float32,0xc30d5f26,0x368c0105,2
+np.float32,0x42108365,0xbf800000,2
+np.float32,0xc2108365,0x3f800000,2
+np.float32,0x42908365,0x3592200d,2
+np.float32,0xc2908365,0xb592200d,2
+np.float32,0x43108365,0xb612200d,2
+np.float32,0xc3108365,0x3612200d,2
+np.float32,0x4213a7a5,0xbf3504df,2
+np.float32,0xc213a7a5,0x3f3504df,2
+np.float32,0x4293a7a5,0xbf800000,2
+np.float32,0xc293a7a5,0x3f800000,2
+np.float32,0x4313a7a5,0xb6e1deee,2
+np.float32,0xc313a7a5,0x36e1deee,2
+np.float32,0x4216cbe4,0x33ccde2e,2
+np.float32,0xc216cbe4,0xb3ccde2e,2
+np.float32,0x4296cbe4,0x344cde2e,2
+np.float32,0xc296cbe4,0xb44cde2e,2
+np.float32,0x4316cbe4,0x34ccde2e,2
+np.float32,0xc316cbe4,0xb4ccde2e,2
+np.float32,0x4219f024,0x3f35050f,2
+np.float32,0xc219f024,0xbf35050f,2
+np.float32,0x4299f024,0x3f800000,2
+np.float32,0xc299f024,0xbf800000,2
+np.float32,0x4319f024,0xb71bde6c,2
+np.float32,0xc319f024,0x371bde6c,2
+np.float32,0x421d1463,0x3f800000,2
+np.float32,0xc21d1463,0xbf800000,2
+np.float32,0x429d1463,0xb5c55799,2
+np.float32,0xc29d1463,0x35c55799,2
+np.float32,0x431d1463,0x36455799,2
+np.float32,0xc31d1463,0xb6455799,2
+np.float32,0x422038a3,0x3f3504d0,2
+np.float32,0xc22038a3,0xbf3504d0,2
+np.float32,0x42a038a3,0xbf800000,2
+np.float32,0xc2a038a3,0x3f800000,2
+np.float32,0x432038a3,0xb746cd61,2
+np.float32,0xc32038a3,0x3746cd61,2
+np.float32,0x42235ce2,0xb5b889b6,2
+np.float32,0xc2235ce2,0x35b889b6,2
+np.float32,0x42a35ce2,0x363889b6,2
+np.float32,0xc2a35ce2,0xb63889b6,2
+np.float32,0x43235ce2,0x36b889b6,2
+np.float32,0xc3235ce2,0xb6b889b6,2
+np.float32,0x42268121,0xbf3504f1,2
+np.float32,0xc2268121,0x3f3504f1,2
+np.float32,0x42a68121,0x3f800000,2
+np.float32,0xc2a68121,0xbf800000,2
+np.float32,0x43268121,0x35643aac,2
+np.float32,0xc3268121,0xb5643aac,2
+np.float32,0x4229a561,0xbf800000,2
+np.float32,0xc229a561,0x3f800000,2
+np.float32,0x42a9a561,0xb68733d0,2
+np.float32,0xc2a9a561,0x368733d0,2
+np.float32,0x4329a561,0x370733d0,2
+np.float32,0xc329a561,0xb70733d0,2
+np.float32,0x422cc9a0,0xbf3504ee,2
+np.float32,0xc22cc9a0,0x3f3504ee,2
+np.float32,0x42acc9a0,0xbf800000,2
+np.float32,0xc2acc9a0,0x3f800000,2
+np.float32,0x432cc9a0,0xb5e55a50,2
+np.float32,0xc32cc9a0,0x35e55a50,2
+np.float32,0x422fede0,0x363222c4,2
+np.float32,0xc22fede0,0xb63222c4,2
+np.float32,0x42afede0,0x36b222c4,2
+np.float32,0xc2afede0,0xb6b222c4,2
+np.float32,0x432fede0,0x373222c4,2
+np.float32,0xc32fede0,0xb73222c4,2
+np.float32,0x4233121f,0x3f350500,2
+np.float32,0xc233121f,0xbf350500,2
+np.float32,0x42b3121f,0x3f800000,2
+np.float32,0xc2b3121f,0xbf800000,2
+np.float32,0x4333121f,0xb68f347d,2
+np.float32,0xc333121f,0x368f347d,2
+np.float32,0x4236365e,0x3f800000,2
+np.float32,0xc236365e,0xbf800000,2
+np.float32,0x42b6365e,0x358bb91c,2
+np.float32,0xc2b6365e,0xb58bb91c,2
+np.float32,0x4336365e,0xb60bb91c,2
+np.float32,0xc336365e,0x360bb91c,2
+np.float32,0x42395a9e,0x3f3504df,2
+np.float32,0xc2395a9e,0xbf3504df,2
+np.float32,0x42b95a9e,0xbf800000,2
+np.float32,0xc2b95a9e,0x3f800000,2
+np.float32,0x43395a9e,0xb6e51267,2
+np.float32,0xc3395a9e,0x36e51267,2
+np.float32,0x423c7edd,0xb4000add,2
+np.float32,0xc23c7edd,0x34000add,2
+np.float32,0x42bc7edd,0x34800add,2
+np.float32,0xc2bc7edd,0xb4800add,2
+np.float32,0x433c7edd,0x35000add,2
+np.float32,0xc33c7edd,0xb5000add,2
+np.float32,0x423fa31d,0xbf35050f,2
+np.float32,0xc23fa31d,0x3f35050f,2
+np.float32,0x42bfa31d,0x3f800000,2
+np.float32,0xc2bfa31d,0xbf800000,2
+np.float32,0x433fa31d,0xb71d7828,2
+np.float32,0xc33fa31d,0x371d7828,2
+np.float32,0x4242c75c,0xbf800000,2
+np.float32,0xc242c75c,0x3f800000,2
+np.float32,0x42c2c75c,0xb5cbbe8a,2
+np.float32,0xc2c2c75c,0x35cbbe8a,2
+np.float32,0x4342c75c,0x364bbe8a,2
+np.float32,0xc342c75c,0xb64bbe8a,2
+np.float32,0x4245eb9c,0xbf3504d0,2
+np.float32,0xc245eb9c,0x3f3504d0,2
+np.float32,0x42c5eb9c,0xbf800000,2
+np.float32,0xc2c5eb9c,0x3f800000,2
+np.float32,0x4345eb9c,0xb748671d,2
+np.float32,0xc345eb9c,0x3748671d,2
+np.float32,0x42490fdb,0x35bbbd2e,2
+np.float32,0xc2490fdb,0xb5bbbd2e,2
+np.float32,0x42c90fdb,0x363bbd2e,2
+np.float32,0xc2c90fdb,0xb63bbd2e,2
+np.float32,0x43490fdb,0x36bbbd2e,2
+np.float32,0xc3490fdb,0xb6bbbd2e,2
+np.float32,0x424c341a,0x3f3504f1,2
+np.float32,0xc24c341a,0xbf3504f1,2
+np.float32,0x42cc341a,0x3f800000,2
+np.float32,0xc2cc341a,0xbf800000,2
+np.float32,0x434c341a,0x354a9ee6,2
+np.float32,0xc34c341a,0xb54a9ee6,2
+np.float32,0x424f585a,0x3f800000,2
+np.float32,0xc24f585a,0xbf800000,2
+np.float32,0x42cf585a,0xb688cd8c,2
+np.float32,0xc2cf585a,0x3688cd8c,2
+np.float32,0x434f585a,0x3708cd8c,2
+np.float32,0xc34f585a,0xb708cd8c,2
+np.float32,0x42527c99,0x3f3504ee,2
+np.float32,0xc2527c99,0xbf3504ee,2
+np.float32,0x42d27c99,0xbf800000,2
+np.float32,0xc2d27c99,0x3f800000,2
+np.float32,0x43527c99,0xb5f22833,2
+np.float32,0xc3527c99,0x35f22833,2
+np.float32,0x4255a0d9,0xb633bc81,2
+np.float32,0xc255a0d9,0x3633bc81,2
+np.float32,0x42d5a0d9,0x36b3bc81,2
+np.float32,0xc2d5a0d9,0xb6b3bc81,2
+np.float32,0x4355a0d9,0x3733bc81,2
+np.float32,0xc355a0d9,0xb733bc81,2
+np.float32,0x4258c518,0xbf350500,2
+np.float32,0xc258c518,0x3f350500,2
+np.float32,0x42d8c518,0x3f800000,2
+np.float32,0xc2d8c518,0xbf800000,2
+np.float32,0x4358c518,0xb69267f6,2
+np.float32,0xc358c518,0x369267f6,2
+np.float32,0x425be958,0xbf800000,2
+np.float32,0xc25be958,0x3f800000,2
+np.float32,0x42dbe958,0xb6deab75,2
+np.float32,0xc2dbe958,0x36deab75,2
+np.float32,0x435be958,0x375eab75,2
+np.float32,0xc35be958,0xb75eab75,2
+np.float32,0x425f0d97,0xbf3504df,2
+np.float32,0xc25f0d97,0x3f3504df,2
+np.float32,0x42df0d97,0xbf800000,2
+np.float32,0xc2df0d97,0x3f800000,2
+np.float32,0x435f0d97,0xb6e845e0,2
+np.float32,0xc35f0d97,0x36e845e0,2
+np.float32,0x426231d6,0x3419a6a2,2
+np.float32,0xc26231d6,0xb419a6a2,2
+np.float32,0x42e231d6,0x3499a6a2,2
+np.float32,0xc2e231d6,0xb499a6a2,2
+np.float32,0x436231d6,0x3519a6a2,2
+np.float32,0xc36231d6,0xb519a6a2,2
+np.float32,0x42655616,0x3f35050f,2
+np.float32,0xc2655616,0xbf35050f,2
+np.float32,0x42e55616,0x3f800000,2
+np.float32,0xc2e55616,0xbf800000,2
+np.float32,0x43655616,0xb71f11e5,2
+np.float32,0xc3655616,0x371f11e5,2
+np.float32,0x42687a55,0x3f800000,2
+np.float32,0xc2687a55,0xbf800000,2
+np.float32,0x42e87a55,0xb5d2257b,2
+np.float32,0xc2e87a55,0x35d2257b,2
+np.float32,0x43687a55,0x3652257b,2
+np.float32,0xc3687a55,0xb652257b,2
+np.float32,0x426b9e95,0x3f3504cf,2
+np.float32,0xc26b9e95,0xbf3504cf,2
+np.float32,0x42eb9e95,0xbf800000,2
+np.float32,0xc2eb9e95,0x3f800000,2
+np.float32,0x436b9e95,0xb74a00d9,2
+np.float32,0xc36b9e95,0x374a00d9,2
+np.float32,0x426ec2d4,0xb5bef0a7,2
+np.float32,0xc26ec2d4,0x35bef0a7,2
+np.float32,0x42eec2d4,0x363ef0a7,2
+np.float32,0xc2eec2d4,0xb63ef0a7,2
+np.float32,0x436ec2d4,0x36bef0a7,2
+np.float32,0xc36ec2d4,0xb6bef0a7,2
+np.float32,0x4271e713,0xbf3504f1,2
+np.float32,0xc271e713,0x3f3504f1,2
+np.float32,0x42f1e713,0x3f800000,2
+np.float32,0xc2f1e713,0xbf800000,2
+np.float32,0x4371e713,0x35310321,2
+np.float32,0xc371e713,0xb5310321,2
+np.float32,0x42750b53,0xbf800000,2
+np.float32,0xc2750b53,0x3f800000,2
+np.float32,0x42f50b53,0xb68a6748,2
+np.float32,0xc2f50b53,0x368a6748,2
+np.float32,0x43750b53,0x370a6748,2
+np.float32,0xc3750b53,0xb70a6748,2
+np.float32,0x42782f92,0xbf3504ee,2
+np.float32,0xc2782f92,0x3f3504ee,2
+np.float32,0x42f82f92,0xbf800000,2
+np.float32,0xc2f82f92,0x3f800000,2
+np.float32,0x43782f92,0xb5fef616,2
+np.float32,0xc3782f92,0x35fef616,2
+np.float32,0x427b53d2,0x3635563d,2
+np.float32,0xc27b53d2,0xb635563d,2
+np.float32,0x42fb53d2,0x36b5563d,2
+np.float32,0xc2fb53d2,0xb6b5563d,2
+np.float32,0x437b53d2,0x3735563d,2
+np.float32,0xc37b53d2,0xb735563d,2
+np.float32,0x427e7811,0x3f350500,2
+np.float32,0xc27e7811,0xbf350500,2
+np.float32,0x42fe7811,0x3f800000,2
+np.float32,0xc2fe7811,0xbf800000,2
+np.float32,0x437e7811,0xb6959b6f,2
+np.float32,0xc37e7811,0x36959b6f,2
+np.float32,0x4280ce28,0x3f800000,2
+np.float32,0xc280ce28,0xbf800000,2
+np.float32,0x4300ce28,0x357dd672,2
+np.float32,0xc300ce28,0xb57dd672,2
+np.float32,0x4380ce28,0xb5fdd672,2
+np.float32,0xc380ce28,0x35fdd672,2
+np.float32,0x42826048,0x3f3504de,2
+np.float32,0xc2826048,0xbf3504de,2
+np.float32,0x43026048,0xbf800000,2
+np.float32,0xc3026048,0x3f800000,2
+np.float32,0x43826048,0xb6eb7958,2
+np.float32,0xc3826048,0x36eb7958,2
+np.float32,0x4283f268,0xb6859a13,2
+np.float32,0xc283f268,0x36859a13,2
+np.float32,0x4303f268,0x37059a13,2
+np.float32,0xc303f268,0xb7059a13,2
+np.float32,0x4383f268,0x37859a13,2
+np.float32,0xc383f268,0xb7859a13,2
+np.float32,0x42858487,0xbf3504e2,2
+np.float32,0xc2858487,0x3f3504e2,2
+np.float32,0x43058487,0x3f800000,2
+np.float32,0xc3058487,0xbf800000,2
+np.float32,0x43858487,0x36bea8be,2
+np.float32,0xc3858487,0xb6bea8be,2
+np.float32,0x428716a7,0xbf800000,2
+np.float32,0xc28716a7,0x3f800000,2
+np.float32,0x430716a7,0xb5d88c6d,2
+np.float32,0xc30716a7,0x35d88c6d,2
+np.float32,0x438716a7,0x36588c6d,2
+np.float32,0xc38716a7,0xb6588c6d,2
+np.float32,0x4288a8c7,0xbf3504cf,2
+np.float32,0xc288a8c7,0x3f3504cf,2
+np.float32,0x4308a8c7,0xbf800000,2
+np.float32,0xc308a8c7,0x3f800000,2
+np.float32,0x4388a8c7,0xb74b9a96,2
+np.float32,0xc388a8c7,0x374b9a96,2
+np.float32,0x428a3ae7,0x36b08908,2
+np.float32,0xc28a3ae7,0xb6b08908,2
+np.float32,0x430a3ae7,0x37308908,2
+np.float32,0xc30a3ae7,0xb7308908,2
+np.float32,0x438a3ae7,0x37b08908,2
+np.float32,0xc38a3ae7,0xb7b08908,2
+np.float32,0x428bcd06,0x3f3504f2,2
+np.float32,0xc28bcd06,0xbf3504f2,2
+np.float32,0x430bcd06,0x3f800000,2
+np.float32,0xc30bcd06,0xbf800000,2
+np.float32,0x438bcd06,0x3517675b,2
+np.float32,0xc38bcd06,0xb517675b,2
+np.float32,0x428d5f26,0x3f800000,2
+np.float32,0xc28d5f26,0xbf800000,2
+np.float32,0x430d5f26,0xb68c0105,2
+np.float32,0xc30d5f26,0x368c0105,2
+np.float32,0x438d5f26,0x370c0105,2
+np.float32,0xc38d5f26,0xb70c0105,2
+np.float32,0x428ef146,0x3f3504c0,2
+np.float32,0xc28ef146,0xbf3504c0,2
+np.float32,0x430ef146,0xbf800000,2
+np.float32,0xc30ef146,0x3f800000,2
+np.float32,0x438ef146,0xb790bc40,2
+np.float32,0xc38ef146,0x3790bc40,2
+np.float32,0x42908365,0x3592200d,2
+np.float32,0xc2908365,0xb592200d,2
+np.float32,0x43108365,0xb612200d,2
+np.float32,0xc3108365,0x3612200d,2
+np.float32,0x43908365,0xb692200d,2
+np.float32,0xc3908365,0x3692200d,2
+np.float32,0x42921585,0xbf350501,2
+np.float32,0xc2921585,0x3f350501,2
+np.float32,0x43121585,0x3f800000,2
+np.float32,0xc3121585,0xbf800000,2
+np.float32,0x43921585,0xb698cee8,2
+np.float32,0xc3921585,0x3698cee8,2
+np.float32,0x4293a7a5,0xbf800000,2
+np.float32,0xc293a7a5,0x3f800000,2
+np.float32,0x4313a7a5,0xb6e1deee,2
+np.float32,0xc313a7a5,0x36e1deee,2
+np.float32,0x4393a7a5,0x3761deee,2
+np.float32,0xc393a7a5,0xb761deee,2
+np.float32,0x429539c5,0xbf3504b1,2
+np.float32,0xc29539c5,0x3f3504b1,2
+np.float32,0x431539c5,0xbf800000,2
+np.float32,0xc31539c5,0x3f800000,2
+np.float32,0x439539c5,0xb7bbab34,2
+np.float32,0xc39539c5,0x37bbab34,2
+np.float32,0x4296cbe4,0x344cde2e,2
+np.float32,0xc296cbe4,0xb44cde2e,2
+np.float32,0x4316cbe4,0x34ccde2e,2
+np.float32,0xc316cbe4,0xb4ccde2e,2
+np.float32,0x4396cbe4,0x354cde2e,2
+np.float32,0xc396cbe4,0xb54cde2e,2
+np.float32,0x42985e04,0x3f350510,2
+np.float32,0xc2985e04,0xbf350510,2
+np.float32,0x43185e04,0x3f800000,2
+np.float32,0xc3185e04,0xbf800000,2
+np.float32,0x43985e04,0xb722455d,2
+np.float32,0xc3985e04,0x3722455d,2
+np.float32,0x4299f024,0x3f800000,2
+np.float32,0xc299f024,0xbf800000,2
+np.float32,0x4319f024,0xb71bde6c,2
+np.float32,0xc319f024,0x371bde6c,2
+np.float32,0x4399f024,0x379bde6c,2
+np.float32,0xc399f024,0xb79bde6c,2
+np.float32,0x429b8243,0x3f3504fc,2
+np.float32,0xc29b8243,0xbf3504fc,2
+np.float32,0x431b8243,0xbf800000,2
+np.float32,0xc31b8243,0x3f800000,2
+np.float32,0x439b8243,0x364b2eb8,2
+np.float32,0xc39b8243,0xb64b2eb8,2
+np.float32,0x435b2047,0xbf350525,2
+np.float32,0x42a038a2,0xbf800000,2
+np.float32,0x432038a2,0x3664ca7e,2
+np.float32,0x4345eb9b,0x365e638c,2
+np.float32,0x42c5eb9b,0xbf800000,2
+np.float32,0x42eb9e94,0xbf800000,2
+np.float32,0x4350ea79,0x3f800000,2
+np.float32,0x42dbe957,0x3585522a,2
+np.float32,0x425be957,0xbf800000,2
+np.float32,0x435be957,0xb605522a,2
+np.float32,0x476362a2,0xbd7ff911,2
+np.float32,0x464c99a4,0x3e7f4d41,2
+np.float32,0x4471f73d,0x3e7fe1b0,2
+np.float32,0x445a6752,0x3e7ef367,2
+np.float32,0x474fa400,0x3e7f9fcd,2
+np.float32,0x45c1e72f,0xbe7fc7af,2
+np.float32,0x4558c91d,0x3e7e9f31,2
+np.float32,0x43784f94,0xbdff6654,2
+np.float32,0x466e8500,0xbe7ea0a3,2
+np.float32,0x468e1c25,0x3e7e22fb,2
+np.float32,0x44ea6cfc,0x3dff70c3,2
+np.float32,0x4605126c,0x3e7f89ef,2
+np.float32,0x4788b3c6,0xbb87d853,2
+np.float32,0x4531b042,0x3dffd163,2
+np.float32,0x43f1f71d,0x3dfff387,2
+np.float32,0x462c3fa5,0xbd7fe13d,2
+np.float32,0x441c5354,0xbdff76b4,2
+np.float32,0x44908b69,0x3e7dcf0d,2
+np.float32,0x478813ad,0xbe7e9d80,2
+np.float32,0x441c4351,0x3dff937b,2
+np.float64,0x1,0x1,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0x7fefffffffffffff,0x3f7452fc98b34e97,1
+np.float64,0xffefffffffffffff,0xbf7452fc98b34e97,1
+np.float64,0x7ff0000000000000,0xfff8000000000000,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xbfda51b226b4a364,0xbfd9956328ff876c,1
+np.float64,0xbfb4a65aee294cb8,0xbfb4a09fd744f8a5,1
+np.float64,0xbfd73b914fae7722,0xbfd6b9cce55af379,1
+np.float64,0xbfd90c12b4b21826,0xbfd869a3867b51c2,1
+np.float64,0x3fe649bb3d6c9376,0x3fe48778d9b48a21,1
+np.float64,0xbfd5944532ab288a,0xbfd52c30e1951b42,1
+np.float64,0x3fb150c45222a190,0x3fb14d633eb8275d,1
+np.float64,0x3fe4a6ffa9e94e00,0x3fe33f8a95c33299,1
+np.float64,0x3fe8d2157171a42a,0x3fe667d904ac95a6,1
+np.float64,0xbfa889f52c3113f0,0xbfa8878d90a23fa5,1
+np.float64,0x3feb3234bef6646a,0x3fe809d541d9017a,1
+np.float64,0x3fc6de266f2dbc50,0x3fc6bf0ee80a0d86,1
+np.float64,0x3fe8455368f08aa6,0x3fe6028254338ed5,1
+np.float64,0xbfe5576079eaaec1,0xbfe3cb4a8f6bc3f5,1
+np.float64,0xbfe9f822ff73f046,0xbfe7360d7d5cb887,1
+np.float64,0xbfb1960e7e232c20,0xbfb1928438258602,1
+np.float64,0xbfca75938d34eb28,0xbfca4570979bf2fa,1
+np.float64,0x3fd767dd15aecfbc,0x3fd6e33039018bab,1
+np.float64,0xbfe987750ef30eea,0xbfe6e7ed30ce77f0,1
+np.float64,0xbfe87f95a1f0ff2b,0xbfe62ca7e928bb2a,1
+np.float64,0xbfd2465301a48ca6,0xbfd2070245775d76,1
+np.float64,0xbfb1306ed22260e0,0xbfb12d2088eaa4f9,1
+np.float64,0xbfd8089010b01120,0xbfd778f9db77f2f3,1
+np.float64,0x3fbf9cf4ee3f39f0,0x3fbf88674fde1ca2,1
+np.float64,0x3fe6d8468a6db08e,0x3fe4f403f38b7bec,1
+np.float64,0xbfd9e5deefb3cbbe,0xbfd932692c722351,1
+np.float64,0x3fd1584d55a2b09c,0x3fd122253eeecc2e,1
+np.float64,0x3fe857979cf0af30,0x3fe60fc12b5ba8db,1
+np.float64,0x3fe3644149e6c882,0x3fe239f47013cfe6,1
+np.float64,0xbfe22ea62be45d4c,0xbfe13834c17d56fe,1
+np.float64,0xbfe8d93e1df1b27c,0xbfe66cf4ee467fd2,1
+np.float64,0xbfe9c497c9f38930,0xbfe7127417da4204,1
+np.float64,0x3fd6791cecacf238,0x3fd6039ccb5a7fde,1
+np.float64,0xbfc1dc1b1523b838,0xbfc1cd48edd9ae19,1
+np.float64,0xbfc92a8491325508,0xbfc901176e0158a5,1
+np.float64,0x3fa8649b3430c940,0x3fa8623e82d9504f,1
+np.float64,0x3fe0bed6a1617dae,0x3fdffbb307fb1abe,1
+np.float64,0x3febdf7765f7beee,0x3fe87ad01a89b74a,1
+np.float64,0xbfd3a56d46a74ada,0xbfd356cf41bf83cd,1
+np.float64,0x3fd321d824a643b0,0x3fd2d93846a224b3,1
+np.float64,0xbfc6a49fb52d4940,0xbfc686704906e7d3,1
+np.float64,0xbfdd4103c9ba8208,0xbfdc3ef0c03615b4,1
+np.float64,0xbfe0b78a51e16f14,0xbfdfef0d9ffc38b5,1
+np.float64,0xbfdac7a908b58f52,0xbfda0158956ceecf,1
+np.float64,0xbfbfbf12f23f7e28,0xbfbfaa428989258c,1
+np.float64,0xbfd55f5aa2aabeb6,0xbfd4fa39de65f33a,1
+np.float64,0x3fe06969abe0d2d4,0x3fdf6744fafdd9cf,1
+np.float64,0x3fe56ab8be6ad572,0x3fe3da7a1986d543,1
+np.float64,0xbfeefbbec67df77e,0xbfea5d426132f4aa,1
+np.float64,0x3fe6e1f49cedc3ea,0x3fe4fb53f3d8e3d5,1
+np.float64,0x3feceb231c79d646,0x3fe923d3efa55414,1
+np.float64,0xbfd03dd08ea07ba2,0xbfd011549aa1998a,1
+np.float64,0xbfd688327aad1064,0xbfd611c61b56adbe,1
+np.float64,0xbfde3249d8bc6494,0xbfdd16a7237a39d5,1
+np.float64,0x3febd4b65677a96c,0x3fe873e1a401ef03,1
+np.float64,0xbfe46bd2b368d7a6,0xbfe31023c2467749,1
+np.float64,0x3fbf9f5cde3f3ec0,0x3fbf8aca8ec53c45,1
+np.float64,0x3fc20374032406e8,0x3fc1f43f1f2f4d5e,1
+np.float64,0xbfec143b16f82876,0xbfe89caa42582381,1
+np.float64,0xbfd14fa635a29f4c,0xbfd119ced11da669,1
+np.float64,0x3fe25236d4e4a46e,0x3fe156242d644b7a,1
+np.float64,0xbfe4ed793469daf2,0xbfe377a88928fd77,1
+np.float64,0xbfb363572626c6b0,0xbfb35e98d8fe87ae,1
+np.float64,0xbfb389d5aa2713a8,0xbfb384fae55565a7,1
+np.float64,0x3fca6e001934dc00,0x3fca3e0661eaca84,1
+np.float64,0x3fe748f3f76e91e8,0x3fe548ab2168aea6,1
+np.float64,0x3fef150efdfe2a1e,0x3fea6b92d74f60d3,1
+np.float64,0xbfd14b52b1a296a6,0xbfd115a387c0fa93,1
+np.float64,0x3fe3286b5ce650d6,0x3fe208a6469a7527,1
+np.float64,0xbfd57b4f4baaf69e,0xbfd514a12a9f7ab0,1
+np.float64,0xbfef14bd467e297b,0xbfea6b64bbfd42ce,1
+np.float64,0xbfe280bc90650179,0xbfe17d2c49955dba,1
+np.float64,0x3fca8759d7350eb0,0x3fca56d5c17bbc14,1
+np.float64,0xbfdf988f30bf311e,0xbfde53f96f69b05f,1
+np.float64,0x3f6b6eeb4036de00,0x3f6b6ee7e3f86f9a,1
+np.float64,0xbfed560be8faac18,0xbfe9656c5cf973d8,1
+np.float64,0x3fc6102c592c2058,0x3fc5f43efad5396d,1
+np.float64,0xbfdef64ed2bdec9e,0xbfddc4b7fbd45aea,1
+np.float64,0x3fe814acd570295a,0x3fe5df183d543bfe,1
+np.float64,0x3fca21313f344260,0x3fc9f2d47f64fbe2,1
+np.float64,0xbfe89932cc713266,0xbfe63f186a2f60ce,1
+np.float64,0x3fe4ffcff169ffa0,0x3fe386336115ee21,1
+np.float64,0x3fee6964087cd2c8,0x3fea093d31e2c2c5,1
+np.float64,0xbfbeea604e3dd4c0,0xbfbed72734852669,1
+np.float64,0xbfea1954fb7432aa,0xbfe74cdad8720032,1
+np.float64,0x3fea3e1a5ef47c34,0x3fe765ffba65a11d,1
+np.float64,0x3fcedb850b3db708,0x3fce8f39d92f00ba,1
+np.float64,0x3fd3b52d41a76a5c,0x3fd365d22b0003f9,1
+np.float64,0xbfa4108a0c282110,0xbfa40f397fcd844f,1
+np.float64,0x3fd7454c57ae8a98,0x3fd6c2e5542c6c83,1
+np.float64,0xbfeecd3c7a7d9a79,0xbfea42ca943a1695,1
+np.float64,0xbfdddda397bbbb48,0xbfdccb27283d4c4c,1
+np.float64,0x3fe6b52cf76d6a5a,0x3fe4d96ff32925ff,1
+np.float64,0xbfa39a75ec2734f0,0xbfa3993c0da84f87,1
+np.float64,0x3fdd3fe6fdba7fcc,0x3fdc3df12fe9e525,1
+np.float64,0xbfb57a98162af530,0xbfb5742525d5fbe2,1
+np.float64,0xbfd3e166cfa7c2ce,0xbfd38ff2891be9b0,1
+np.float64,0x3fdb6a04f9b6d408,0x3fda955e5018e9dc,1
+np.float64,0x3fe4ab03a4e95608,0x3fe342bfa76e1aa8,1
+np.float64,0xbfe6c8480b6d9090,0xbfe4e7eaa935b3f5,1
+np.float64,0xbdd6b5a17bae,0xbdd6b5a17bae,1
+np.float64,0xd6591979acb23,0xd6591979acb23,1
+np.float64,0x5adbed90b5b7e,0x5adbed90b5b7e,1
+np.float64,0xa664c5314cc99,0xa664c5314cc99,1
+np.float64,0x1727fb162e500,0x1727fb162e500,1
+np.float64,0xdb49a93db6935,0xdb49a93db6935,1
+np.float64,0xb10c958d62193,0xb10c958d62193,1
+np.float64,0xad38276f5a705,0xad38276f5a705,1
+np.float64,0x1d5d0b983aba2,0x1d5d0b983aba2,1
+np.float64,0x915f48e122be9,0x915f48e122be9,1
+np.float64,0x475958ae8eb2c,0x475958ae8eb2c,1
+np.float64,0x3af8406675f09,0x3af8406675f09,1
+np.float64,0x655e88a4cabd2,0x655e88a4cabd2,1
+np.float64,0x40fee8ce81fde,0x40fee8ce81fde,1
+np.float64,0xab83103f57062,0xab83103f57062,1
+np.float64,0x7cf934b8f9f27,0x7cf934b8f9f27,1
+np.float64,0x29f7524853eeb,0x29f7524853eeb,1
+np.float64,0x4a5e954894bd3,0x4a5e954894bd3,1
+np.float64,0x24638f3a48c73,0x24638f3a48c73,1
+np.float64,0xa4f32fc749e66,0xa4f32fc749e66,1
+np.float64,0xf8e92df7f1d26,0xf8e92df7f1d26,1
+np.float64,0x292e9d50525d4,0x292e9d50525d4,1
+np.float64,0xe937e897d26fd,0xe937e897d26fd,1
+np.float64,0xd3bde1d5a77bc,0xd3bde1d5a77bc,1
+np.float64,0xa447ffd548900,0xa447ffd548900,1
+np.float64,0xa3b7b691476f7,0xa3b7b691476f7,1
+np.float64,0x490095c892013,0x490095c892013,1
+np.float64,0xfc853235f90a7,0xfc853235f90a7,1
+np.float64,0x5a8bc082b5179,0x5a8bc082b5179,1
+np.float64,0x1baca45a37595,0x1baca45a37595,1
+np.float64,0x2164120842c83,0x2164120842c83,1
+np.float64,0x66692bdeccd26,0x66692bdeccd26,1
+np.float64,0xf205bdd3e40b8,0xf205bdd3e40b8,1
+np.float64,0x7c3fff98f8801,0x7c3fff98f8801,1
+np.float64,0xccdf10e199bf,0xccdf10e199bf,1
+np.float64,0x92db8e8125b8,0x92db8e8125b8,1
+np.float64,0x5789a8d6af136,0x5789a8d6af136,1
+np.float64,0xbdda869d7bb51,0xbdda869d7bb51,1
+np.float64,0xb665e0596ccbc,0xb665e0596ccbc,1
+np.float64,0x74e6b46ee9cd7,0x74e6b46ee9cd7,1
+np.float64,0x4f39cf7c9e73b,0x4f39cf7c9e73b,1
+np.float64,0xfdbf3907fb7e7,0xfdbf3907fb7e7,1
+np.float64,0xafdef4d55fbdf,0xafdef4d55fbdf,1
+np.float64,0xb49858236930b,0xb49858236930b,1
+np.float64,0x3ebe21d47d7c5,0x3ebe21d47d7c5,1
+np.float64,0x5b620512b6c41,0x5b620512b6c41,1
+np.float64,0x31918cda63232,0x31918cda63232,1
+np.float64,0x68b5741ed16af,0x68b5741ed16af,1
+np.float64,0xa5c09a5b4b814,0xa5c09a5b4b814,1
+np.float64,0x55f51c14abea4,0x55f51c14abea4,1
+np.float64,0xda8a3e41b515,0xda8a3e41b515,1
+np.float64,0x9ea9c8513d539,0x9ea9c8513d539,1
+np.float64,0x7f23b964fe478,0x7f23b964fe478,1
+np.float64,0xf6e08c7bedc12,0xf6e08c7bedc12,1
+np.float64,0x7267aa24e4cf6,0x7267aa24e4cf6,1
+np.float64,0x236bb93a46d78,0x236bb93a46d78,1
+np.float64,0x9a98430b35309,0x9a98430b35309,1
+np.float64,0xbb683fef76d08,0xbb683fef76d08,1
+np.float64,0x1ff0eb6e3fe1e,0x1ff0eb6e3fe1e,1
+np.float64,0xf524038fea481,0xf524038fea481,1
+np.float64,0xd714e449ae29d,0xd714e449ae29d,1
+np.float64,0x4154fd7682aa0,0x4154fd7682aa0,1
+np.float64,0x5b8d2f6cb71a7,0x5b8d2f6cb71a7,1
+np.float64,0xc91aa21d92355,0xc91aa21d92355,1
+np.float64,0xbd94fd117b2a0,0xbd94fd117b2a0,1
+np.float64,0x685b207ad0b65,0x685b207ad0b65,1
+np.float64,0xd2485b05a490c,0xd2485b05a490c,1
+np.float64,0x151ea5e62a3d6,0x151ea5e62a3d6,1
+np.float64,0x2635a7164c6b6,0x2635a7164c6b6,1
+np.float64,0x88ae3b5d115c8,0x88ae3b5d115c8,1
+np.float64,0x8a055a55140ac,0x8a055a55140ac,1
+np.float64,0x756f7694eadef,0x756f7694eadef,1
+np.float64,0x866d74630cdaf,0x866d74630cdaf,1
+np.float64,0x39e44f2873c8b,0x39e44f2873c8b,1
+np.float64,0x2a07ceb6540fb,0x2a07ceb6540fb,1
+np.float64,0xc52b96398a573,0xc52b96398a573,1
+np.float64,0x9546543b2a8cb,0x9546543b2a8cb,1
+np.float64,0x5b995b90b732c,0x5b995b90b732c,1
+np.float64,0x2de10a565bc22,0x2de10a565bc22,1
+np.float64,0x3b06ee94760df,0x3b06ee94760df,1
+np.float64,0xb18e77a5631cf,0xb18e77a5631cf,1
+np.float64,0x3b89ae3a77137,0x3b89ae3a77137,1
+np.float64,0xd9b0b6e5b3617,0xd9b0b6e5b3617,1
+np.float64,0x30b2310861647,0x30b2310861647,1
+np.float64,0x326a3ab464d48,0x326a3ab464d48,1
+np.float64,0x4c18610a9830d,0x4c18610a9830d,1
+np.float64,0x541dea42a83be,0x541dea42a83be,1
+np.float64,0xcd027dbf9a050,0xcd027dbf9a050,1
+np.float64,0x780a0f80f015,0x780a0f80f015,1
+np.float64,0x740ed5b2e81db,0x740ed5b2e81db,1
+np.float64,0xc226814d844d0,0xc226814d844d0,1
+np.float64,0xde958541bd2b1,0xde958541bd2b1,1
+np.float64,0xb563d3296ac7b,0xb563d3296ac7b,1
+np.float64,0x1db3b0b83b677,0x1db3b0b83b677,1
+np.float64,0xa7b0275d4f605,0xa7b0275d4f605,1
+np.float64,0x72f8d038e5f1b,0x72f8d038e5f1b,1
+np.float64,0x860ed1350c1da,0x860ed1350c1da,1
+np.float64,0x79f88262f3f11,0x79f88262f3f11,1
+np.float64,0x8817761f102ef,0x8817761f102ef,1
+np.float64,0xac44784b5888f,0xac44784b5888f,1
+np.float64,0x800fd594241fab28,0x800fd594241fab28,1
+np.float64,0x800ede32f8ddbc66,0x800ede32f8ddbc66,1
+np.float64,0x800de4c1121bc982,0x800de4c1121bc982,1
+np.float64,0x80076ebcddcedd7a,0x80076ebcddcedd7a,1
+np.float64,0x800b3fee06567fdc,0x800b3fee06567fdc,1
+np.float64,0x800b444426b68889,0x800b444426b68889,1
+np.float64,0x800b1c037a563807,0x800b1c037a563807,1
+np.float64,0x8001eb88c2a3d712,0x8001eb88c2a3d712,1
+np.float64,0x80058aae6dab155e,0x80058aae6dab155e,1
+np.float64,0x80083df2d4f07be6,0x80083df2d4f07be6,1
+np.float64,0x800e3b19d97c7634,0x800e3b19d97c7634,1
+np.float64,0x800a71c6f374e38e,0x800a71c6f374e38e,1
+np.float64,0x80048557f1490ab1,0x80048557f1490ab1,1
+np.float64,0x8000a00e6b01401e,0x8000a00e6b01401e,1
+np.float64,0x800766a3e2cecd49,0x800766a3e2cecd49,1
+np.float64,0x80015eb44602bd69,0x80015eb44602bd69,1
+np.float64,0x800bde885a77bd11,0x800bde885a77bd11,1
+np.float64,0x800224c53ea4498b,0x800224c53ea4498b,1
+np.float64,0x80048e8c6a291d1a,0x80048e8c6a291d1a,1
+np.float64,0x800b667e4af6ccfd,0x800b667e4af6ccfd,1
+np.float64,0x800ae3d7e395c7b0,0x800ae3d7e395c7b0,1
+np.float64,0x80086c245550d849,0x80086c245550d849,1
+np.float64,0x800d7d25f6fafa4c,0x800d7d25f6fafa4c,1
+np.float64,0x800f8d9ab0ff1b35,0x800f8d9ab0ff1b35,1
+np.float64,0x800690e949cd21d3,0x800690e949cd21d3,1
+np.float64,0x8003022381060448,0x8003022381060448,1
+np.float64,0x80085e0dad70bc1c,0x80085e0dad70bc1c,1
+np.float64,0x800e2ffc369c5ff9,0x800e2ffc369c5ff9,1
+np.float64,0x800b629b5af6c537,0x800b629b5af6c537,1
+np.float64,0x800fdc964b7fb92d,0x800fdc964b7fb92d,1
+np.float64,0x80036bb4b1c6d76a,0x80036bb4b1c6d76a,1
+np.float64,0x800b382f7f16705f,0x800b382f7f16705f,1
+np.float64,0x800ebac9445d7593,0x800ebac9445d7593,1
+np.float64,0x80015075c3e2a0ec,0x80015075c3e2a0ec,1
+np.float64,0x8002a6ec5ce54dd9,0x8002a6ec5ce54dd9,1
+np.float64,0x8009fab74a93f56f,0x8009fab74a93f56f,1
+np.float64,0x800c94b9ea992974,0x800c94b9ea992974,1
+np.float64,0x800dc2efd75b85e0,0x800dc2efd75b85e0,1
+np.float64,0x800be6400d57cc80,0x800be6400d57cc80,1
+np.float64,0x80021f6858443ed1,0x80021f6858443ed1,1
+np.float64,0x800600e2ac4c01c6,0x800600e2ac4c01c6,1
+np.float64,0x800a2159e6b442b4,0x800a2159e6b442b4,1
+np.float64,0x800c912f4bb9225f,0x800c912f4bb9225f,1
+np.float64,0x800a863a9db50c76,0x800a863a9db50c76,1
+np.float64,0x800ac16851d582d1,0x800ac16851d582d1,1
+np.float64,0x8003f7d32e87efa7,0x8003f7d32e87efa7,1
+np.float64,0x800be4eee3d7c9de,0x800be4eee3d7c9de,1
+np.float64,0x80069ff0ac4d3fe2,0x80069ff0ac4d3fe2,1
+np.float64,0x80061c986d4c3932,0x80061c986d4c3932,1
+np.float64,0x8000737b4de0e6f7,0x8000737b4de0e6f7,1
+np.float64,0x8002066ef7440cdf,0x8002066ef7440cdf,1
+np.float64,0x8001007050c200e1,0x8001007050c200e1,1
+np.float64,0x8008df9fa351bf40,0x8008df9fa351bf40,1
+np.float64,0x800f8394ee5f072a,0x800f8394ee5f072a,1
+np.float64,0x80008e0b01c11c17,0x80008e0b01c11c17,1
+np.float64,0x800f7088ed3ee112,0x800f7088ed3ee112,1
+np.float64,0x800285b86f650b72,0x800285b86f650b72,1
+np.float64,0x8008ec18af51d832,0x8008ec18af51d832,1
+np.float64,0x800da08523bb410a,0x800da08523bb410a,1
+np.float64,0x800de853ca7bd0a8,0x800de853ca7bd0a8,1
+np.float64,0x8008c8aefad1915e,0x8008c8aefad1915e,1
+np.float64,0x80010c39d5821874,0x80010c39d5821874,1
+np.float64,0x8009208349724107,0x8009208349724107,1
+np.float64,0x800783783f0f06f1,0x800783783f0f06f1,1
+np.float64,0x80025caf9984b960,0x80025caf9984b960,1
+np.float64,0x800bc76fa6778ee0,0x800bc76fa6778ee0,1
+np.float64,0x80017e2f89a2fc60,0x80017e2f89a2fc60,1
+np.float64,0x800ef169843de2d3,0x800ef169843de2d3,1
+np.float64,0x80098a5f7db314bf,0x80098a5f7db314bf,1
+np.float64,0x800d646f971ac8df,0x800d646f971ac8df,1
+np.float64,0x800110d1dc6221a4,0x800110d1dc6221a4,1
+np.float64,0x800f8b422a1f1684,0x800f8b422a1f1684,1
+np.float64,0x800785c97dcf0b94,0x800785c97dcf0b94,1
+np.float64,0x800da201283b4403,0x800da201283b4403,1
+np.float64,0x800a117cc7b422fa,0x800a117cc7b422fa,1
+np.float64,0x80024731cfa48e64,0x80024731cfa48e64,1
+np.float64,0x800199d456c333a9,0x800199d456c333a9,1
+np.float64,0x8005f66bab8becd8,0x8005f66bab8becd8,1
+np.float64,0x8008e7227c11ce45,0x8008e7227c11ce45,1
+np.float64,0x8007b66cc42f6cda,0x8007b66cc42f6cda,1
+np.float64,0x800669e6f98cd3cf,0x800669e6f98cd3cf,1
+np.float64,0x800aed917375db23,0x800aed917375db23,1
+np.float64,0x8008b6dd15116dbb,0x8008b6dd15116dbb,1
+np.float64,0x800f49869cfe930d,0x800f49869cfe930d,1
+np.float64,0x800a712661b4e24d,0x800a712661b4e24d,1
+np.float64,0x800944e816f289d1,0x800944e816f289d1,1
+np.float64,0x800eba0f8a1d741f,0x800eba0f8a1d741f,1
+np.float64,0x800cf6ded139edbe,0x800cf6ded139edbe,1
+np.float64,0x80023100c6246202,0x80023100c6246202,1
+np.float64,0x800c5a94add8b52a,0x800c5a94add8b52a,1
+np.float64,0x800adf329b95be66,0x800adf329b95be66,1
+np.float64,0x800af9afc115f360,0x800af9afc115f360,1
+np.float64,0x800d66ce837acd9d,0x800d66ce837acd9d,1
+np.float64,0x8003ffb5e507ff6d,0x8003ffb5e507ff6d,1
+np.float64,0x80027d280024fa51,0x80027d280024fa51,1
+np.float64,0x800fc37e1d1f86fc,0x800fc37e1d1f86fc,1
+np.float64,0x800fc7258b9f8e4b,0x800fc7258b9f8e4b,1
+np.float64,0x8003fb5789e7f6b0,0x8003fb5789e7f6b0,1
+np.float64,0x800eb4e7a13d69cf,0x800eb4e7a13d69cf,1
+np.float64,0x800951850952a30a,0x800951850952a30a,1
+np.float64,0x3fed4071be3a80e3,0x3fe95842074431df,1
+np.float64,0x3f8d2341203a4682,0x3f8d2300b453bd9f,1
+np.float64,0x3fdc8ce332b919c6,0x3fdb9cdf1440c28f,1
+np.float64,0x3fdc69bd84b8d37b,0x3fdb7d25c8166b7b,1
+np.float64,0x3fc4c22ad0298456,0x3fc4aae73e231b4f,1
+np.float64,0x3fea237809f446f0,0x3fe753cc6ca96193,1
+np.float64,0x3fd34cf6462699ed,0x3fd30268909bb47e,1
+np.float64,0x3fafce20643f9c41,0x3fafc8e41a240e35,1
+np.float64,0x3fdc6d416538da83,0x3fdb805262292863,1
+np.float64,0x3fe7d8362aefb06c,0x3fe5b2ce659db7fd,1
+np.float64,0x3fe290087de52011,0x3fe189f9a3eb123d,1
+np.float64,0x3fa62d2bf82c5a58,0x3fa62b65958ca2b8,1
+np.float64,0x3fafd134403fa269,0x3fafcbf670f8a6f3,1
+np.float64,0x3fa224e53c2449ca,0x3fa223ec5de1631b,1
+np.float64,0x3fb67e2c2c2cfc58,0x3fb676c445fb70a0,1
+np.float64,0x3fda358d01346b1a,0x3fd97b9441666eb2,1
+np.float64,0x3fdd30fc4bba61f9,0x3fdc308da423778d,1
+np.float64,0x3fc56e99c52add34,0x3fc5550004492621,1
+np.float64,0x3fe32d08de265a12,0x3fe20c761a73cec2,1
+np.float64,0x3fd46cf932a8d9f2,0x3fd414a7f3db03df,1
+np.float64,0x3fd94cfa2b3299f4,0x3fd8a5961b3e4bdd,1
+np.float64,0x3fed6ea3a6fadd47,0x3fe9745b2f6c9204,1
+np.float64,0x3fe4431d1768863a,0x3fe2ef61d0481de0,1
+np.float64,0x3fe1d8e00ea3b1c0,0x3fe0efab5050ee78,1
+np.float64,0x3fe56f37dcaade70,0x3fe3de00b0f392e0,1
+np.float64,0x3fde919a2dbd2334,0x3fdd6b6d2dcf2396,1
+np.float64,0x3fe251e3d4a4a3c8,0x3fe155de69605d60,1
+np.float64,0x3fe5e0ecc5abc1da,0x3fe436a5de5516cf,1
+np.float64,0x3fcd48780c3a90f0,0x3fcd073fa907ba9b,1
+np.float64,0x3fe4e8149229d029,0x3fe37360801d5b66,1
+np.float64,0x3fb9ef159633de2b,0x3fb9e3bc05a15d1d,1
+np.float64,0x3fc24a3f0424947e,0x3fc23a5432ca0e7c,1
+np.float64,0x3fe55ca196aab943,0x3fe3cf6b3143435a,1
+np.float64,0x3fe184544c2308a9,0x3fe0a7b49fa80aec,1
+np.float64,0x3fe2c76e83658edd,0x3fe1b8355c1ea771,1
+np.float64,0x3fea8d2c4ab51a59,0x3fe79ba85aabc099,1
+np.float64,0x3fd74f98abae9f31,0x3fd6cc85005d0593,1
+np.float64,0x3fec6de9a678dbd3,0x3fe8d59a1d23cdd1,1
+np.float64,0x3fec8a0e50f9141d,0x3fe8e7500f6f6a00,1
+np.float64,0x3fe9de6d08b3bcda,0x3fe7245319508767,1
+np.float64,0x3fe4461fd1688c40,0x3fe2f1cf0b93aba6,1
+np.float64,0x3fde342d9d3c685b,0x3fdd185609d5719d,1
+np.float64,0x3feb413fc8368280,0x3fe813c091d2519a,1
+np.float64,0x3fe64333156c8666,0x3fe48275b9a6a358,1
+np.float64,0x3fe03c65226078ca,0x3fdf18b26786be35,1
+np.float64,0x3fee11054dbc220b,0x3fe9d579a1cfa7ad,1
+np.float64,0x3fbaefccae35df99,0x3fbae314fef7c7ea,1
+np.float64,0x3feed4e3487da9c7,0x3fea4729241c8811,1
+np.float64,0x3fbb655df836cabc,0x3fbb57fcf9a097be,1
+np.float64,0x3fe68b0273ed1605,0x3fe4b96109afdf76,1
+np.float64,0x3fd216bfc3242d80,0x3fd1d957363f6a43,1
+np.float64,0x3fe01328d4a02652,0x3fded083bbf94aba,1
+np.float64,0x3fe3f9a61ae7f34c,0x3fe2b3f701b79028,1
+np.float64,0x3fed4e7cf8fa9cfa,0x3fe960d27084fb40,1
+np.float64,0x3faec08e343d811c,0x3faebbd2aa07ac1f,1
+np.float64,0x3fd2d1bbeea5a378,0x3fd28c9aefcf48ad,1
+np.float64,0x3fd92e941fb25d28,0x3fd889857f88410d,1
+np.float64,0x3fe43decb7e87bd9,0x3fe2eb32b4ee4667,1
+np.float64,0x3fef49cabcfe9395,0x3fea892f9a233f76,1
+np.float64,0x3fe3e96812e7d2d0,0x3fe2a6c6b45dd6ee,1
+np.float64,0x3fd24c0293a49805,0x3fd20c76d54473cb,1
+np.float64,0x3fb43d6b7e287ad7,0x3fb438060772795a,1
+np.float64,0x3fe87bf7d3f0f7f0,0x3fe62a0c47411c62,1
+np.float64,0x3fee82a2e07d0546,0x3fea17e27e752b7b,1
+np.float64,0x3fe40c01bbe81803,0x3fe2c2d9483f44d8,1
+np.float64,0x3fd686ccae2d0d99,0x3fd610763fb61097,1
+np.float64,0x3fe90fcf2af21f9e,0x3fe693c12df59ba9,1
+np.float64,0x3fefb3ce11ff679c,0x3feac3dd4787529d,1
+np.float64,0x3fcec53ff63d8a80,0x3fce79992af00c58,1
+np.float64,0x3fe599dd7bab33bb,0x3fe3ff5da7575d85,1
+np.float64,0x3fe9923b1a732476,0x3fe6ef71d13db456,1
+np.float64,0x3febf76fcef7eee0,0x3fe88a3952e11373,1
+np.float64,0x3fc2cfd128259fa2,0x3fc2be7fd47fd811,1
+np.float64,0x3fe4d37ae269a6f6,0x3fe36300d45e3745,1
+np.float64,0x3fe23aa2e4247546,0x3fe1424e172f756f,1
+np.float64,0x3fe4f0596ca9e0b3,0x3fe379f0c49de7ef,1
+np.float64,0x3fe2e4802fe5c900,0x3fe1d062a8812601,1
+np.float64,0x3fe5989c79eb3139,0x3fe3fe6308552dec,1
+np.float64,0x3fe3c53cb4e78a79,0x3fe28956e573aca4,1
+np.float64,0x3fe6512beeeca258,0x3fe48d2d5ece979f,1
+np.float64,0x3fd8473ddb308e7c,0x3fd7b33e38adc6ad,1
+np.float64,0x3fecd09c9679a139,0x3fe91361fa0c5bcb,1
+np.float64,0x3fc991530e3322a6,0x3fc965e2c514a9e9,1
+np.float64,0x3f6d4508403a8a11,0x3f6d45042b68acc5,1
+np.float64,0x3fea1f198f743e33,0x3fe750ce918d9330,1
+np.float64,0x3fd0a0bb4da14177,0x3fd07100f9c71e1c,1
+np.float64,0x3fd30c45ffa6188c,0x3fd2c499f9961f66,1
+np.float64,0x3fcad98e7c35b31d,0x3fcaa74293cbc52e,1
+np.float64,0x3fec8e4a5eb91c95,0x3fe8e9f898d118db,1
+np.float64,0x3fd19fdb79233fb7,0x3fd1670c00febd24,1
+np.float64,0x3fea9fcbb1f53f97,0x3fe7a836b29c4075,1
+np.float64,0x3fc6d12ea12da25d,0x3fc6b24bd2f89f59,1
+np.float64,0x3fd6af3658ad5e6d,0x3fd636613e08df3f,1
+np.float64,0x3fe31bc385a63787,0x3fe1fe3081621213,1
+np.float64,0x3fc0dbba2221b774,0x3fc0cf42c9313dba,1
+np.float64,0x3fef639ce87ec73a,0x3fea9795454f1036,1
+np.float64,0x3fee5f29dcbcbe54,0x3fea0349b288f355,1
+np.float64,0x3fed46bdb37a8d7b,0x3fe95c199f5aa569,1
+np.float64,0x3fef176afa3e2ed6,0x3fea6ce78b2aa3aa,1
+np.float64,0x3fc841e7683083cf,0x3fc81cccb84848cc,1
+np.float64,0xbfda3ec9a2347d94,0xbfd9840d180e9de3,1
+np.float64,0xbfcd5967ae3ab2d0,0xbfcd17be13142bb9,1
+np.float64,0xbfedf816573bf02d,0xbfe9c6bb06476c60,1
+np.float64,0xbfd0d6e10e21adc2,0xbfd0a54f99d2f3dc,1
+np.float64,0xbfe282df096505be,0xbfe17ef5e2e80760,1
+np.float64,0xbfd77ae6e62ef5ce,0xbfd6f4f6b603ad8a,1
+np.float64,0xbfe37b171aa6f62e,0xbfe24cb4b2d0ade4,1
+np.float64,0xbfef9e5ed9bf3cbe,0xbfeab817b41000bd,1
+np.float64,0xbfe624d6f96c49ae,0xbfe46b1e9c9aff86,1
+np.float64,0xbfefb5da65ff6bb5,0xbfeac4fc9c982772,1
+np.float64,0xbfd29a65d52534cc,0xbfd2579df8ff87b9,1
+np.float64,0xbfd40270172804e0,0xbfd3af6471104aef,1
+np.float64,0xbfb729ee7a2e53e0,0xbfb721d7dbd2705e,1
+np.float64,0xbfb746f1382e8de0,0xbfb73ebc1207f8e3,1
+np.float64,0xbfd3c7e606a78fcc,0xbfd377a8aa1b0dd9,1
+np.float64,0xbfd18c4880231892,0xbfd1543506584ad5,1
+np.float64,0xbfea988080753101,0xbfe7a34cba0d0fa1,1
+np.float64,0xbf877400e02ee800,0xbf8773df47fa7e35,1
+np.float64,0xbfb07e050820fc08,0xbfb07b198d4a52c9,1
+np.float64,0xbfee0a3621fc146c,0xbfe9d1745a05ba77,1
+np.float64,0xbfe78de246ef1bc4,0xbfe57bf2baab91c8,1
+np.float64,0xbfcdbfd3bd3b7fa8,0xbfcd7b728a955a06,1
+np.float64,0xbfe855ea79b0abd5,0xbfe60e8a4a17b921,1
+np.float64,0xbfd86c8e3530d91c,0xbfd7d5e36c918dc1,1
+np.float64,0xbfe4543169e8a863,0xbfe2fd23d42f552e,1
+np.float64,0xbfe41efbf1283df8,0xbfe2d235a2faed1a,1
+np.float64,0xbfd9a55464b34aa8,0xbfd8f7083f7281e5,1
+np.float64,0xbfe5f5078d6bea0f,0xbfe44637d910c270,1
+np.float64,0xbfe6d83e3dedb07c,0xbfe4f3fdadd10552,1
+np.float64,0xbfdb767e70b6ecfc,0xbfdaa0b6c17f3fb1,1
+np.float64,0xbfdfc91b663f9236,0xbfde7eb0dfbeaa26,1
+np.float64,0xbfbfbd18783f7a30,0xbfbfa84bf2fa1c8d,1
+np.float64,0xbfe51199242a2332,0xbfe39447dbe066ae,1
+np.float64,0xbfdbb94814b77290,0xbfdadd63bd796972,1
+np.float64,0xbfd8c6272cb18c4e,0xbfd828f2d9e8607e,1
+np.float64,0xbfce51e0b63ca3c0,0xbfce097ee908083a,1
+np.float64,0xbfe99a177d73342f,0xbfe6f4ec776a57ae,1
+np.float64,0xbfefde2ab0ffbc55,0xbfeadafdcbf54733,1
+np.float64,0xbfcccb5c1c3996b8,0xbfcc8d586a73d126,1
+np.float64,0xbfdf7ddcedbefbba,0xbfde3c749a906de7,1
+np.float64,0xbfef940516ff280a,0xbfeab26429e89f4b,1
+np.float64,0xbfe08009f1e10014,0xbfdf8eab352997eb,1
+np.float64,0xbfe9c02682b3804d,0xbfe70f5fd05f79ee,1
+np.float64,0xbfb3ca1732279430,0xbfb3c50bec5b453a,1
+np.float64,0xbfe368e81926d1d0,0xbfe23dc704d0887c,1
+np.float64,0xbfbd20cc2e3a4198,0xbfbd10b7e6d81c6c,1
+np.float64,0xbfd67ece4d2cfd9c,0xbfd608f527dcc5e7,1
+np.float64,0xbfdc02d1333805a2,0xbfdb20104454b79f,1
+np.float64,0xbfc007a626200f4c,0xbfbff9dc9dc70193,1
+np.float64,0xbfda9e4f8fb53ca0,0xbfd9db8af35dc630,1
+np.float64,0xbfd8173d77302e7a,0xbfd786a0cf3e2914,1
+np.float64,0xbfeb8fcbd0b71f98,0xbfe84734debc10fb,1
+np.float64,0xbfe4bf1cb7697e3a,0xbfe352c891113f29,1
+np.float64,0xbfc18624d5230c48,0xbfc178248e863b64,1
+np.float64,0xbfcf184bac3e3098,0xbfceca3b19be1ebe,1
+np.float64,0xbfd2269c42a44d38,0xbfd1e8920d72b694,1
+np.float64,0xbfe8808526b1010a,0xbfe62d5497292495,1
+np.float64,0xbfe498bd1da9317a,0xbfe334245eadea93,1
+np.float64,0xbfef0855aebe10ab,0xbfea6462f29aeaf9,1
+np.float64,0xbfdeb186c93d630e,0xbfdd87c37943c602,1
+np.float64,0xbfb29fe2ae253fc8,0xbfb29bae3c87efe4,1
+np.float64,0xbfddd9c6c3bbb38e,0xbfdcc7b400bf384b,1
+np.float64,0xbfe3506673e6a0cd,0xbfe2299f26295553,1
+np.float64,0xbfe765957a2ecb2b,0xbfe55e03cf22edab,1
+np.float64,0xbfecc9876c79930f,0xbfe90efaf15b6207,1
+np.float64,0xbfefb37a0a7f66f4,0xbfeac3af3898e7c2,1
+np.float64,0xbfeefa0da7bdf41b,0xbfea5c4cde53c1c3,1
+np.float64,0xbfe6639ee9ecc73e,0xbfe49b4e28a72482,1
+np.float64,0xbfef91a4bb7f2349,0xbfeab114ac9e25dd,1
+np.float64,0xbfc8b392bb316724,0xbfc88c657f4441a3,1
+np.float64,0xbfc88a358231146c,0xbfc863cb900970fe,1
+np.float64,0xbfef25a9d23e4b54,0xbfea74eda432aabe,1
+np.float64,0xbfe6aceea0ed59de,0xbfe4d32e54a3fd01,1
+np.float64,0xbfefe2b3e37fc568,0xbfeadd74f4605835,1
+np.float64,0xbfa9eecb8833dd90,0xbfa9ebf4f4cb2591,1
+np.float64,0xbfd42bad7428575a,0xbfd3d69de8e52d0a,1
+np.float64,0xbfbc366b4a386cd8,0xbfbc27ceee8f3019,1
+np.float64,0xbfd9bca7be337950,0xbfd90c80e6204e57,1
+np.float64,0xbfe8173f53f02e7f,0xbfe5e0f8d8ed329c,1
+np.float64,0xbfce22dbcb3c45b8,0xbfcddbc8159b63af,1
+np.float64,0xbfea2d7ba7345af7,0xbfe75aa62ad5b80a,1
+np.float64,0xbfc08b783e2116f0,0xbfc07faf8d501558,1
+np.float64,0xbfb8c4161c318830,0xbfb8ba33950748ec,1
+np.float64,0xbfddd930bcbbb262,0xbfdcc72dffdf51bb,1
+np.float64,0xbfd108ce8a22119e,0xbfd0d5801e7698bd,1
+np.float64,0xbfd5bd2b5dab7a56,0xbfd552c52c468c76,1
+np.float64,0xbfe7ffe67fefffcd,0xbfe5cfe96e35e6e5,1
+np.float64,0xbfa04ec6bc209d90,0xbfa04e120a2c25cc,1
+np.float64,0xbfef7752cc7eeea6,0xbfeaa28715addc4f,1
+np.float64,0xbfe7083c2eae1078,0xbfe5182bf8ddfc8e,1
+np.float64,0xbfe05dafd0a0bb60,0xbfdf52d397cfe5f6,1
+np.float64,0xbfacb4f2243969e0,0xbfacb118991ea235,1
+np.float64,0xbfc7d47e422fa8fc,0xbfc7b1504714a4fd,1
+np.float64,0xbfbd70b2243ae168,0xbfbd60182efb61de,1
+np.float64,0xbfe930e49cb261c9,0xbfe6ab272b3f9cfc,1
+np.float64,0xbfb5f537e62bea70,0xbfb5ee540dcdc635,1
+np.float64,0xbfbb0c8278361908,0xbfbaffa1f7642a87,1
+np.float64,0xbfe82af2447055e4,0xbfe5ef54ca8db9e8,1
+np.float64,0xbfe92245e6f2448c,0xbfe6a0d32168040b,1
+np.float64,0xbfb799a8522f3350,0xbfb7911a7ada3640,1
+np.float64,0x7faa8290c8350521,0x3fe5916f67209cd6,1
+np.float64,0x7f976597082ecb2d,0x3fcf94dce396bd37,1
+np.float64,0x7fede721237bce41,0x3fe3e7b1575b005f,1
+np.float64,0x7fd5f674d72bece9,0x3fe3210628eba199,1
+np.float64,0x7f9b0f1aa0361e34,0x3feffd34d15d1da7,1
+np.float64,0x7fec48346ab89068,0x3fe93dd84253d9a2,1
+np.float64,0x7f9cac76283958eb,0xbfec4cd999653868,1
+np.float64,0x7fed51ab6bbaa356,0x3fecc27fb5f37bca,1
+np.float64,0x7fded3c116bda781,0xbfda473efee47cf1,1
+np.float64,0x7fd19c48baa33890,0xbfe25700cbfc0326,1
+np.float64,0x7fe5c8f478ab91e8,0xbfee4ab6d84806be,1
+np.float64,0x7fe53c64e46a78c9,0x3fee19c3f227f4e1,1
+np.float64,0x7fc2ad1936255a31,0xbfe56db9b877f807,1
+np.float64,0x7fe2b071b52560e2,0xbfce3990a8d390a9,1
+np.float64,0x7fc93f3217327e63,0xbfd1f6d7ef838d2b,1
+np.float64,0x7fec26df08784dbd,0x3fd5397be41c93d9,1
+np.float64,0x7fcf4770183e8edf,0x3fe6354f5a785016,1
+np.float64,0x7fdc9fcc0bb93f97,0xbfeeeae952e8267d,1
+np.float64,0x7feb21f29c7643e4,0x3fec20122e33f1bf,1
+np.float64,0x7fd0b51273216a24,0x3fefb09f8daba00b,1
+np.float64,0x7fe747a9d76e8f53,0x3feb46a3232842a4,1
+np.float64,0x7fd58885972b110a,0xbfce5ea57c186221,1
+np.float64,0x7fca3ce85c3479d0,0x3fef93a24548e8ca,1
+np.float64,0x7fe1528a46a2a514,0xbfb54bb578d9da91,1
+np.float64,0x7fcc58b21b38b163,0x3feffb5b741ffc2d,1
+np.float64,0x7fdabcaaf5357955,0x3fecbf855db524d1,1
+np.float64,0x7fdd27c6933a4f8c,0xbfef2f41bb80144b,1
+np.float64,0x7fbda4e1be3b49c2,0x3fdb9b33f84f5381,1
+np.float64,0x7fe53363362a66c5,0x3fe4daff3a6a4ed0,1
+np.float64,0x7fe5719d62eae33a,0xbfef761d98f625d5,1
+np.float64,0x7f982ce5a83059ca,0x3fd0b27c3365f0a8,1
+np.float64,0x7fe6db8c42edb718,0x3fe786f4b1fe11a6,1
+np.float64,0x7fe62cca1b2c5993,0x3fd425b6c4c9714a,1
+np.float64,0x7feea88850bd5110,0xbfd7bbb432017175,1
+np.float64,0x7fad6c6ae43ad8d5,0x3fe82e49098bc6de,1
+np.float64,0x7fe70542f02e0a85,0x3fec3017960b4822,1
+np.float64,0x7feaf0bcbb35e178,0xbfc3aac74dd322d5,1
+np.float64,0x7fb5e152fe2bc2a5,0x3fd4b27a4720614c,1
+np.float64,0x7fe456ee5be8addc,0xbfe9e15ab5cff229,1
+np.float64,0x7fd4b53a8d296a74,0xbfefff450f503326,1
+np.float64,0x7fd7149d7a2e293a,0x3fef4ef0a9009096,1
+np.float64,0x7fd43fc5a8a87f8a,0x3fe0c929fee9dce7,1
+np.float64,0x7fef97022aff2e03,0x3fd4ea52a813da20,1
+np.float64,0x7fe035950ae06b29,0x3fef4e125394fb05,1
+np.float64,0x7fecd0548979a0a8,0x3fe89d226244037b,1
+np.float64,0x7fc79b3ac22f3675,0xbfee9c9cf78c8270,1
+np.float64,0x7fd8b8e8263171cf,0x3fe8e24437961db0,1
+np.float64,0x7fc288c23e251183,0xbfbaf8eca50986ca,1
+np.float64,0x7fe436b4b6686d68,0xbfecd661741931c4,1
+np.float64,0x7fcdf99abe3bf334,0x3feaa75c90830b92,1
+np.float64,0x7fd9f9739233f2e6,0xbfebbfcb301b0da5,1
+np.float64,0x7fd6fcbd1b2df979,0xbfccf2c77cb65f56,1
+np.float64,0x7fe242a97b248552,0xbfe5b0f13bcbabc8,1
+np.float64,0x7fe38bf3e06717e7,0x3fbc8fa9004d2668,1
+np.float64,0x7fecd0e8d479a1d1,0xbfe886a6b4f73a4a,1
+np.float64,0x7fe958d60232b1ab,0xbfeb7c4cf0cee2dd,1
+np.float64,0x7f9d492b583a9256,0xbfebe975d00221cb,1
+np.float64,0x7fd6c9983bad932f,0xbfefe817621a31f6,1
+np.float64,0x7fed0d7239fa1ae3,0x3feac7e1b6455b4b,1
+np.float64,0x7fe61dac90ec3b58,0x3fef845b9efe8421,1
+np.float64,0x7f9acd3010359a5f,0xbfe460d376200130,1
+np.float64,0x7fedced9673b9db2,0xbfeeaf23445e1944,1
+np.float64,0x7fd9f271a733e4e2,0xbfd41544535ecb78,1
+np.float64,0x7fe703339bee0666,0x3fef93334626b56c,1
+np.float64,0x7fec7761b7b8eec2,0xbfe6da9179e8e714,1
+np.float64,0x7fdd9fff043b3ffd,0xbfc0761dfb8d94f9,1
+np.float64,0x7fdc10ed17b821d9,0x3fe1481e2a26c77f,1
+np.float64,0x7fe7681e72aed03c,0x3fefff94a6d47c84,1
+np.float64,0x7fe18c29e1e31853,0x3fe86ebd2fd89456,1
+np.float64,0x7fb2fb273c25f64d,0xbfefc136f57e06de,1
+np.float64,0x7fac2bbb90385776,0x3fe25d8e3cdae7e3,1
+np.float64,0x7fed16789efa2cf0,0x3fe94555091fdfd9,1
+np.float64,0x7fd8fe8f7831fd1e,0xbfed58d520361902,1
+np.float64,0x7fa59bde3c2b37bb,0x3fef585391c077ff,1
+np.float64,0x7fda981b53353036,0x3fde02ca08737b5f,1
+np.float64,0x7fd29f388aa53e70,0xbfe04f5499246df2,1
+np.float64,0x7fcd0232513a0464,0xbfd9737f2f565829,1
+np.float64,0x7fe9a881bcf35102,0xbfe079cf285b35dd,1
+np.float64,0x7fdbe399a9b7c732,0x3fe965bc4220f340,1
+np.float64,0x7feb77414af6ee82,0xbfb7df2fcd491f55,1
+np.float64,0x7fa26e86c424dd0d,0xbfea474c3d65b9be,1
+np.float64,0x7feaee869e35dd0c,0xbfd7b333a888cd14,1
+np.float64,0x7fcbd67f6137acfe,0xbfe15a7a15dfcee6,1
+np.float64,0x7fe36991e766d323,0xbfeb288077c4ed9f,1
+np.float64,0x7fdcf4f4fcb9e9e9,0xbfea331ef7a75e7b,1
+np.float64,0x7fbe3445643c688a,0x3fedf21b94ae8e37,1
+np.float64,0x7fd984cfd2b3099f,0x3fc0d3ade71c395e,1
+np.float64,0x7fdec987b23d930e,0x3fe4af5e48f6c26e,1
+np.float64,0x7fde56a9953cad52,0x3fc8e7762cefb8b0,1
+np.float64,0x7fd39fb446273f68,0xbfe6c3443208f44d,1
+np.float64,0x7fc609c1a72c1382,0x3fe884e639571baa,1
+np.float64,0x7fe001be4b20037c,0xbfed0d90cbcb6010,1
+np.float64,0x7fce7ace283cf59b,0xbfd0303792e51f49,1
+np.float64,0x7fe27ba93da4f751,0x3fe548b5ce740d71,1
+np.float64,0x7fcc13c79b38278e,0xbfe2e14f5b64a1e9,1
+np.float64,0x7fc058550620b0a9,0x3fe44bb55ebd0590,1
+np.float64,0x7fa4ba8bf8297517,0x3fee59b39f9d08c4,1
+np.float64,0x7fe50d6872ea1ad0,0xbfea1eaa2d059e13,1
+np.float64,0x7feb7e33b476fc66,0xbfeff28a4424dd3e,1
+np.float64,0x7fe2d7d2a165afa4,0xbfdbaff0ba1ea460,1
+np.float64,0xffd126654b224cca,0xbfef0cd3031fb97c,1
+np.float64,0xffb5f884942bf108,0x3fe0de589bea2e4c,1
+np.float64,0xffe011b4bfe02369,0xbfe805a0edf1e1f2,1
+np.float64,0xffec13eae9b827d5,0x3fb5f30347d78447,1
+np.float64,0xffa6552ae82caa50,0x3fb1ecee60135f2f,1
+np.float64,0xffb62d38b02c5a70,0x3fbd35903148fd12,1
+np.float64,0xffe2c44ea425889d,0xbfd7616547f99a7d,1
+np.float64,0xffea24c61a74498c,0x3fef4a1b15ae9005,1
+np.float64,0xffd23a4ab2a47496,0x3fe933bfaa569ae9,1
+np.float64,0xffc34a073d269410,0xbfeec0f510bb7474,1
+np.float64,0xffeead84cfbd5b09,0x3feb2d635e5a78bd,1
+np.float64,0xffcfd8f3b43fb1e8,0xbfdd59625801771b,1
+np.float64,0xffd3c7f662a78fec,0x3f9cf3209edfbc4e,1
+np.float64,0xffe7b7e4f72f6fca,0xbfefdcff4925632c,1
+np.float64,0xffe48cab05e91956,0x3fe6b41217948423,1
+np.float64,0xffeb6980b336d301,0xbfca5de148f69324,1
+np.float64,0xffe3f15c4aa7e2b8,0xbfeb18efae892081,1
+np.float64,0xffcf290c713e5218,0x3fefe6f1a513ed26,1
+np.float64,0xffd80979b43012f4,0xbfde6c8df91af976,1
+np.float64,0xffc3181e0026303c,0x3fe7448f681def38,1
+np.float64,0xffedfa68f97bf4d1,0xbfeca6efb802d109,1
+np.float64,0xffca0931c0341264,0x3fe31b9f073b08cd,1
+np.float64,0xffe4c44934e98892,0x3feda393a2e8a0f7,1
+np.float64,0xffe65bb56f2cb76a,0xbfeffaf638a4b73e,1
+np.float64,0xffe406a332a80d46,0x3fe8151dadb853c1,1
+np.float64,0xffdb7eae9c36fd5e,0xbfeff89abf5ab16e,1
+np.float64,0xffe245a02da48b40,0x3fef1fb43e85f4b8,1
+np.float64,0xffe2bafa732575f4,0x3fcbab115c6fd86e,1
+np.float64,0xffe8b1eedb7163dd,0x3feff263df6f6b12,1
+np.float64,0xffe6c76c796d8ed8,0xbfe61a8668511293,1
+np.float64,0xffefe327d1ffc64f,0xbfd9b92887a84827,1
+np.float64,0xffa452180c28a430,0xbfa9b9e578a4e52f,1
+np.float64,0xffe9867d0bf30cf9,0xbfca577867588408,1
+np.float64,0xffdfe9b923bfd372,0x3fdab5c15f085c2d,1
+np.float64,0xffed590c6abab218,0xbfd7e7b6c5a120e6,1
+np.float64,0xffeaebcfbab5d79f,0x3fed58be8a9e2c3b,1
+np.float64,0xffe2ba83a8257507,0x3fe6c42a4ac1d4d9,1
+np.float64,0xffe01d5b0ee03ab6,0xbfe5dad6c9247db7,1
+np.float64,0xffe51095d52a212b,0x3fef822cebc32d8e,1
+np.float64,0xffebd7a901b7af51,0xbfe5e63f3e3b1185,1
+np.float64,0xffe4efdcde29dfb9,0xbfe811294dfa758f,1
+np.float64,0xffe3be1aa4a77c35,0x3fdd8dcfcd409bb1,1
+np.float64,0xffbe6f2f763cde60,0x3fd13766e43bd622,1
+np.float64,0xffeed3d80fbda7af,0x3fec10a23c1b7a4a,1
+np.float64,0xffd6ebff37add7fe,0xbfe6177411607c86,1
+np.float64,0xffe85a90f4b0b521,0x3fc09fdd66c8fde9,1
+np.float64,0xffea3d58c2b47ab1,0x3feb5bd4a04b3562,1
+np.float64,0xffef675be6beceb7,0x3fecd840683d1044,1
+np.float64,0xff726a088024d400,0x3feff2b4f47b5214,1
+np.float64,0xffc90856733210ac,0xbfe3c6ffbf6840a5,1
+np.float64,0xffc0b58d9a216b1c,0xbfe10314267d0611,1
+np.float64,0xffee1f3d0abc3e79,0xbfd12ea7efea9067,1
+np.float64,0xffd988c41a331188,0x3febe83802d8a32e,1
+np.float64,0xffe8f1ac9bb1e358,0xbfdbf5fa7e84f2f2,1
+np.float64,0xffe47af279e8f5e4,0x3fef11e339e5fa78,1
+np.float64,0xff9960a7f832c140,0xbfa150363f8ec5b2,1
+np.float64,0xffcac40fa7358820,0xbfec3d5847a3df1d,1
+np.float64,0xffcb024a9d360494,0xbfd060fa31fd6b6a,1
+np.float64,0xffe385ffb3270bff,0xbfee6859e8dcd9e8,1
+np.float64,0xffef62f2c53ec5e5,0x3fe0a71ffddfc718,1
+np.float64,0xffed87ff20fb0ffd,0xbfe661db7c4098e3,1
+np.float64,0xffe369278526d24e,0x3fd64d89a41822fc,1
+np.float64,0xff950288c02a0520,0x3fe1df91d1ad7d5c,1
+np.float64,0xffe70e7c2cee1cf8,0x3fc9fece08df2fd8,1
+np.float64,0xffbaf020b635e040,0xbfc68c43ff9911a7,1
+np.float64,0xffee0120b0fc0240,0x3f9f792e17b490b0,1
+np.float64,0xffe1fa4be7a3f498,0xbfef4b18ab4b319e,1
+np.float64,0xffe61887bf2c310f,0x3fe846714826cb32,1
+np.float64,0xffdc3cf77f3879ee,0x3fe033b948a36125,1
+np.float64,0xffcc2b86f238570c,0xbfefdcceac3f220f,1
+np.float64,0xffe1f030c0a3e061,0x3fef502a808c359a,1
+np.float64,0xffb872c4ee30e588,0x3fef66ed8d3e6175,1
+np.float64,0xffeac8fc617591f8,0xbfe5d8448602aac9,1
+np.float64,0xffe5be16afab7c2d,0x3fee75ccde3cd14d,1
+np.float64,0xffae230ad83c4610,0xbfe49bbe6074d459,1
+np.float64,0xffc8fbeff531f7e0,0x3f77201e0c927f97,1
+np.float64,0xffdc314f48b8629e,0x3fef810dfc5db118,1
+np.float64,0xffec1f8970783f12,0x3fe15567102e042a,1
+np.float64,0xffc6995f902d32c0,0xbfecd5d2eedf342c,1
+np.float64,0xffdc7af76b38f5ee,0xbfd6e754476ab320,1
+np.float64,0xffb30cf8682619f0,0x3fd5ac3dfc4048d0,1
+np.float64,0xffd3a77695a74eee,0xbfefb5d6889e36e9,1
+np.float64,0xffd8b971803172e4,0xbfeb7f62f0b6c70b,1
+np.float64,0xffde4c0234bc9804,0xbfed50ba9e16d5e0,1
+np.float64,0xffb62b3f342c5680,0xbfeabc0de4069b84,1
+np.float64,0xff9af5674035eac0,0xbfed6c198b6b1bd8,1
+np.float64,0xffdfe20cb43fc41a,0x3fb11f8238f66306,1
+np.float64,0xffd2ecd7a0a5d9b0,0xbfec17ef1a62b1e3,1
+np.float64,0xffce60f7863cc1f0,0x3fe6dbcad3e3a006,1
+np.float64,0xffbbb8306a377060,0xbfbfd0fbef485c4c,1
+np.float64,0xffd1b2bd2b23657a,0xbfda3e046d987b99,1
+np.float64,0xffc480f4092901e8,0xbfeeff0427f6897b,1
+np.float64,0xffe6e02d926dc05a,0xbfcd59552778890b,1
+np.float64,0xffd302e5b7a605cc,0xbfee7c08641366b0,1
+np.float64,0xffec2eb92f785d72,0xbfef5c9c7f771050,1
+np.float64,0xffea3e31a9747c62,0xbfc49cd54755faf0,1
+np.float64,0xffce0a4e333c149c,0x3feeb9a6d0db4aee,1
+np.float64,0xffdc520a2db8a414,0x3fefc7b72613dcd0,1
+np.float64,0xffe056b968a0ad72,0xbfe47a9fe1f827fb,1
+np.float64,0xffe5a10f4cab421e,0x3fec2b1f74b73dec,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sinh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sinh.csv
new file mode 100644
index 0000000..1ef7b6e
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-sinh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xfee27582,0xff800000,2
+np.float32,0xff19f092,0xff800000,2
+np.float32,0xbf393576,0xbf49cb31,2
+np.float32,0x8020fdea,0x8020fdea,2
+np.float32,0x455f4e,0x455f4e,2
+np.float32,0xff718c35,0xff800000,2
+np.float32,0x3f3215e3,0x3f40cce5,2
+np.float32,0x19e833,0x19e833,2
+np.float32,0xff2dcd49,0xff800000,2
+np.float32,0x7e8f6c95,0x7f800000,2
+np.float32,0xbf159dac,0xbf1e47a5,2
+np.float32,0x100d3d,0x100d3d,2
+np.float32,0xff673441,0xff800000,2
+np.float32,0x80275355,0x80275355,2
+np.float32,0x4812d0,0x4812d0,2
+np.float32,0x8072b956,0x8072b956,2
+np.float32,0xff3bb918,0xff800000,2
+np.float32,0x0,0x0,2
+np.float32,0xfe327798,0xff800000,2
+np.float32,0x41d4e2,0x41d4e2,2
+np.float32,0xfe34b1b8,0xff800000,2
+np.float32,0x80199f72,0x80199f72,2
+np.float32,0x807242ce,0x807242ce,2
+np.float32,0x3ef4202d,0x3efd7b48,2
+np.float32,0x763529,0x763529,2
+np.float32,0x4f6662,0x4f6662,2
+np.float32,0x3f18efe9,0x3f2232b5,2
+np.float32,0x80701846,0x80701846,2
+np.float32,0x3f599948,0x3f74c393,2
+np.float32,0x5a3d69,0x5a3d69,2
+np.float32,0xbf4a7e65,0xbf6047a3,2
+np.float32,0xff0d4c82,0xff800000,2
+np.float32,0x7a74db,0x7a74db,2
+np.float32,0x803388e6,0x803388e6,2
+np.float32,0x7f4430bb,0x7f800000,2
+np.float32,0x14c5b1,0x14c5b1,2
+np.float32,0xfa113400,0xff800000,2
+np.float32,0x7f4b3209,0x7f800000,2
+np.float32,0x8038d88c,0x8038d88c,2
+np.float32,0xbef2f9de,0xbefc330b,2
+np.float32,0xbe147b38,0xbe15008f,2
+np.float32,0x2b61e6,0x2b61e6,2
+np.float32,0x80000001,0x80000001,2
+np.float32,0x8060456c,0x8060456c,2
+np.float32,0x3f30fa82,0x3f3f6a99,2
+np.float32,0xfd1f0220,0xff800000,2
+np.float32,0xbf2b7555,0xbf389151,2
+np.float32,0xff100b7a,0xff800000,2
+np.float32,0x70d3cd,0x70d3cd,2
+np.float32,0x2a8d4a,0x2a8d4a,2
+np.float32,0xbf7b733f,0xbf92f05f,2
+np.float32,0x3f7106dc,0x3f8b1fc6,2
+np.float32,0x3f39da7a,0x3f4a9d79,2
+np.float32,0x3f5dd73f,0x3f7aaab5,2
+np.float32,0xbe8c8754,0xbe8e4cba,2
+np.float32,0xbf6c74c9,0xbf87c556,2
+np.float32,0x800efbbb,0x800efbbb,2
+np.float32,0xff054ab5,0xff800000,2
+np.float32,0x800b4b46,0x800b4b46,2
+np.float32,0xff77fd74,0xff800000,2
+np.float32,0x257d0,0x257d0,2
+np.float32,0x7caa0c,0x7caa0c,2
+np.float32,0x8025d24d,0x8025d24d,2
+np.float32,0x3d9f1b60,0x3d9f445c,2
+np.float32,0xbe3bf6e8,0xbe3d0595,2
+np.float32,0x54bb93,0x54bb93,2
+np.float32,0xbf3e6a45,0xbf507716,2
+np.float32,0x3f4bb26e,0x3f61e1cd,2
+np.float32,0x3f698edc,0x3f85aac5,2
+np.float32,0xff7bd0ef,0xff800000,2
+np.float32,0xbed07b68,0xbed64a8e,2
+np.float32,0xbf237c72,0xbf2ed3d2,2
+np.float32,0x27b0fa,0x27b0fa,2
+np.float32,0x3f7606d1,0x3f8ed7d6,2
+np.float32,0x790dc0,0x790dc0,2
+np.float32,0x7f68f3ac,0x7f800000,2
+np.float32,0xbed39288,0xbed9a52f,2
+np.float32,0x3f6f8266,0x3f8a0187,2
+np.float32,0x3fbdca,0x3fbdca,2
+np.float32,0xbf7c3e5d,0xbf938b2c,2
+np.float32,0x802321a8,0x802321a8,2
+np.float32,0x3eecab66,0x3ef53031,2
+np.float32,0x62b324,0x62b324,2
+np.float32,0x3f13afac,0x3f1c03fe,2
+np.float32,0xff315ad7,0xff800000,2
+np.float32,0xbf1fac0d,0xbf2a3a63,2
+np.float32,0xbf543984,0xbf6d61d6,2
+np.float32,0x71a212,0x71a212,2
+np.float32,0x114fbe,0x114fbe,2
+np.float32,0x3f5b6ff2,0x3f77505f,2
+np.float32,0xff6ff89e,0xff800000,2
+np.float32,0xff4527a1,0xff800000,2
+np.float32,0x22cb3,0x22cb3,2
+np.float32,0x7f53bb6b,0x7f800000,2
+np.float32,0xff3d2dea,0xff800000,2
+np.float32,0xfd21dac0,0xff800000,2
+np.float32,0xfc486140,0xff800000,2
+np.float32,0x7e2b693a,0x7f800000,2
+np.float32,0x8022a9fb,0x8022a9fb,2
+np.float32,0x80765de0,0x80765de0,2
+np.float32,0x13d299,0x13d299,2
+np.float32,0x7ee53713,0x7f800000,2
+np.float32,0xbde1c770,0xbde23c96,2
+np.float32,0xbd473fc0,0xbd4753de,2
+np.float32,0x3f1cb455,0x3f26acf3,2
+np.float32,0x683e49,0x683e49,2
+np.float32,0x3ed5a9fc,0x3edbeb79,2
+np.float32,0x3f4fe3f6,0x3f67814f,2
+np.float32,0x802a2bce,0x802a2bce,2
+np.float32,0x7e951b4c,0x7f800000,2
+np.float32,0xbe6eb260,0xbe70dd44,2
+np.float32,0xbe3daca8,0xbe3ec2cb,2
+np.float32,0xbe9c38b2,0xbe9ea822,2
+np.float32,0xff2e29dc,0xff800000,2
+np.float32,0x7f62c7cc,0x7f800000,2
+np.float32,0xbf6799a4,0xbf84416c,2
+np.float32,0xbe30a7f0,0xbe318898,2
+np.float32,0xc83d9,0xc83d9,2
+np.float32,0x3f05abf4,0x3f0bd447,2
+np.float32,0x7e9b018a,0x7f800000,2
+np.float32,0xbf0ed72e,0xbf165e5b,2
+np.float32,0x8011ac8c,0x8011ac8c,2
+np.float32,0xbeb7c706,0xbebbbfcb,2
+np.float32,0x803637f9,0x803637f9,2
+np.float32,0xfe787cc8,0xff800000,2
+np.float32,0x3f533d4b,0x3f6c0a50,2
+np.float32,0x3f5c0f1c,0x3f782dde,2
+np.float32,0x3f301f36,0x3f3e590d,2
+np.float32,0x2dc929,0x2dc929,2
+np.float32,0xff15018a,0xff800000,2
+np.float32,0x3f4d0c56,0x3f63afeb,2
+np.float32,0xbf7a2ae3,0xbf91f6e4,2
+np.float32,0xbe771b84,0xbe798346,2
+np.float32,0x80800000,0x80800000,2
+np.float32,0x7f5689ba,0x7f800000,2
+np.float32,0x3f1c3177,0x3f2610df,2
+np.float32,0x3f1b9664,0x3f255825,2
+np.float32,0x3f7e5066,0x3f9520d4,2
+np.float32,0xbf1935f8,0xbf2285ab,2
+np.float32,0x3f096cc7,0x3f101ef9,2
+np.float32,0x8030c180,0x8030c180,2
+np.float32,0x6627ed,0x6627ed,2
+np.float32,0x454595,0x454595,2
+np.float32,0x7de66a33,0x7f800000,2
+np.float32,0xbf800000,0xbf966cfe,2
+np.float32,0xbf35c0a8,0xbf456939,2
+np.float32,0x3f6a6266,0x3f8643e0,2
+np.float32,0x3f0cbcee,0x3f13ef6a,2
+np.float32,0x7efd1e58,0x7f800000,2
+np.float32,0xfe9a74c6,0xff800000,2
+np.float32,0x807ebe6c,0x807ebe6c,2
+np.float32,0x80656736,0x80656736,2
+np.float32,0x800e0608,0x800e0608,2
+np.float32,0xbf30e39a,0xbf3f4e00,2
+np.float32,0x802015fd,0x802015fd,2
+np.float32,0x3e3ce26d,0x3e3df519,2
+np.float32,0x7ec142ac,0x7f800000,2
+np.float32,0xbf68c9ce,0xbf851c78,2
+np.float32,0xfede8356,0xff800000,2
+np.float32,0xbf1507ce,0xbf1d978d,2
+np.float32,0x3e53914c,0x3e551374,2
+np.float32,0x7f3e1c14,0x7f800000,2
+np.float32,0x8070d2ba,0x8070d2ba,2
+np.float32,0xbf4eb793,0xbf65ecee,2
+np.float32,0x7365a6,0x7365a6,2
+np.float32,0x8045cba2,0x8045cba2,2
+np.float32,0x7e4af521,0x7f800000,2
+np.float32,0xbf228625,0xbf2da9e1,2
+np.float32,0x7ee0536c,0x7f800000,2
+np.float32,0x3e126607,0x3e12e5d5,2
+np.float32,0x80311d92,0x80311d92,2
+np.float32,0xbf386b8b,0xbf48ca54,2
+np.float32,0x7f800000,0x7f800000,2
+np.float32,0x8049ec7a,0x8049ec7a,2
+np.float32,0xbf1dfde4,0xbf2836be,2
+np.float32,0x7e719a8c,0x7f800000,2
+np.float32,0x3eb9c856,0x3ebde2e6,2
+np.float32,0xfe3efda8,0xff800000,2
+np.float32,0xbe89d60c,0xbe8b81d1,2
+np.float32,0x3eaad338,0x3eae0317,2
+np.float32,0x7f4e5217,0x7f800000,2
+np.float32,0x3e9d0f40,0x3e9f88ce,2
+np.float32,0xbe026708,0xbe02c155,2
+np.float32,0x5fc22f,0x5fc22f,2
+np.float32,0x1c4572,0x1c4572,2
+np.float32,0xbed89d96,0xbedf22c5,2
+np.float32,0xbf3debee,0xbf4fd441,2
+np.float32,0xbf465520,0xbf5ac6e5,2
+np.float32,0x3f797081,0x3f9169b3,2
+np.float32,0xbf250734,0xbf30b2aa,2
+np.float32,0x7f5068e9,0x7f800000,2
+np.float32,0x3f1b814e,0x3f253f0c,2
+np.float32,0xbf27c5d3,0xbf340b05,2
+np.float32,0x3f1b78ae,0x3f2534c8,2
+np.float32,0x8059b51a,0x8059b51a,2
+np.float32,0x8059f182,0x8059f182,2
+np.float32,0xbf1bb36e,0xbf257ab8,2
+np.float32,0x41ac35,0x41ac35,2
+np.float32,0x68f41f,0x68f41f,2
+np.float32,0xbea504dc,0xbea7e40f,2
+np.float32,0x1,0x1,2
+np.float32,0x3e96b5b0,0x3e98e542,2
+np.float32,0x7f7fffff,0x7f800000,2
+np.float32,0x3c557a80,0x3c557c0c,2
+np.float32,0x800ca3ec,0x800ca3ec,2
+np.float32,0x8077d4aa,0x8077d4aa,2
+np.float32,0x3f000af0,0x3f0572d6,2
+np.float32,0x3e0434dd,0x3e0492f8,2
+np.float32,0x7d1a710a,0x7f800000,2
+np.float32,0x3f70f996,0x3f8b15f8,2
+np.float32,0x8033391d,0x8033391d,2
+np.float32,0x11927c,0x11927c,2
+np.float32,0x7f7784be,0x7f800000,2
+np.float32,0x7acb22af,0x7f800000,2
+np.float32,0x7e8b153c,0x7f800000,2
+np.float32,0x66d402,0x66d402,2
+np.float32,0xfed6e7b0,0xff800000,2
+np.float32,0x7f6872d3,0x7f800000,2
+np.float32,0x1bd49c,0x1bd49c,2
+np.float32,0xfdc4f1b8,0xff800000,2
+np.float32,0xbed8a466,0xbedf2a33,2
+np.float32,0x7ee789,0x7ee789,2
+np.float32,0xbece94b4,0xbed43b52,2
+np.float32,0x3cf3f734,0x3cf4006f,2
+np.float32,0x7e44aa00,0x7f800000,2
+np.float32,0x7f19e99c,0x7f800000,2
+np.float32,0x806ff1bc,0x806ff1bc,2
+np.float32,0x80296934,0x80296934,2
+np.float32,0x7f463363,0x7f800000,2
+np.float32,0xbf212ac3,0xbf2c06bb,2
+np.float32,0x3dc63778,0x3dc686ba,2
+np.float32,0x7f1b4328,0x7f800000,2
+np.float32,0x6311f6,0x6311f6,2
+np.float32,0xbf6b6fb6,0xbf870751,2
+np.float32,0xbf2c44cf,0xbf399155,2
+np.float32,0x3e7a67bc,0x3e7ce887,2
+np.float32,0x7f57c5f7,0x7f800000,2
+np.float32,0x7f2bb4ff,0x7f800000,2
+np.float32,0xbe9d448e,0xbe9fc0a4,2
+np.float32,0xbf4840f0,0xbf5d4f6b,2
+np.float32,0x7f1e1176,0x7f800000,2
+np.float32,0xff76638e,0xff800000,2
+np.float32,0xff055555,0xff800000,2
+np.float32,0x3f32b82b,0x3f419834,2
+np.float32,0xff363aa8,0xff800000,2
+np.float32,0x7f737fd0,0x7f800000,2
+np.float32,0x3da5d798,0x3da60602,2
+np.float32,0x3f1cc126,0x3f26bc3e,2
+np.float32,0x7eb07541,0x7f800000,2
+np.float32,0x3f7b2ff2,0x3f92bd2a,2
+np.float32,0x474f7,0x474f7,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0xff2b0a4e,0xff800000,2
+np.float32,0xfeb24f16,0xff800000,2
+np.float32,0x2cb9fc,0x2cb9fc,2
+np.float32,0x67189d,0x67189d,2
+np.float32,0x8033d854,0x8033d854,2
+np.float32,0xbe85e94c,0xbe87717a,2
+np.float32,0x80767c6c,0x80767c6c,2
+np.float32,0x7ea84d65,0x7f800000,2
+np.float32,0x3f024bc7,0x3f07fead,2
+np.float32,0xbdcb0100,0xbdcb5625,2
+np.float32,0x3f160a9e,0x3f1ec7c9,2
+np.float32,0xff1734c8,0xff800000,2
+np.float32,0x7f424d5e,0x7f800000,2
+np.float32,0xbf75b215,0xbf8e9862,2
+np.float32,0x3f262a42,0x3f3214c4,2
+np.float32,0xbf4cfb53,0xbf639927,2
+np.float32,0x3f4ac8b8,0x3f60aa7c,2
+np.float32,0x3e90e593,0x3e92d6b3,2
+np.float32,0xbf66bccf,0xbf83a2d8,2
+np.float32,0x7d3d851a,0x7f800000,2
+np.float32,0x7bac783c,0x7f800000,2
+np.float32,0x8001c626,0x8001c626,2
+np.float32,0xbdffd480,0xbe003f7b,2
+np.float32,0x7f6680bf,0x7f800000,2
+np.float32,0xbecf448e,0xbed4f9bb,2
+np.float32,0x584c7,0x584c7,2
+np.float32,0x3f3e8ea0,0x3f50a5fb,2
+np.float32,0xbf5a5f04,0xbf75d56e,2
+np.float32,0x8065ae47,0x8065ae47,2
+np.float32,0xbf48dce3,0xbf5e1dba,2
+np.float32,0xbe8dae2e,0xbe8f7ed8,2
+np.float32,0x3f7ca6ab,0x3f93dace,2
+np.float32,0x4c3e81,0x4c3e81,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0x3ee1f7d9,0x3ee96033,2
+np.float32,0x80588c6f,0x80588c6f,2
+np.float32,0x5ba34e,0x5ba34e,2
+np.float32,0x80095d28,0x80095d28,2
+np.float32,0xbe7ba198,0xbe7e2bdd,2
+np.float32,0xbe0bdcb4,0xbe0c4c22,2
+np.float32,0x1776f7,0x1776f7,2
+np.float32,0x80328b2a,0x80328b2a,2
+np.float32,0x3e978d37,0x3e99c63e,2
+np.float32,0x7ed50906,0x7f800000,2
+np.float32,0x3f776a54,0x3f8fe2bd,2
+np.float32,0xbed624c4,0xbedc7120,2
+np.float32,0x7f0b6a31,0x7f800000,2
+np.float32,0x7eb13913,0x7f800000,2
+np.float32,0xbe733684,0xbe758190,2
+np.float32,0x80016474,0x80016474,2
+np.float32,0x7a51ee,0x7a51ee,2
+np.float32,0x3f6cb91e,0x3f87f729,2
+np.float32,0xbd99b050,0xbd99d540,2
+np.float32,0x7c6e3cba,0x7f800000,2
+np.float32,0xbf00179a,0xbf05811e,2
+np.float32,0x3e609b29,0x3e626954,2
+np.float32,0xff3fd71a,0xff800000,2
+np.float32,0x5d8c2,0x5d8c2,2
+np.float32,0x7ee93662,0x7f800000,2
+np.float32,0x4b0b31,0x4b0b31,2
+np.float32,0x3ec243b7,0x3ec6f594,2
+np.float32,0x804d60f1,0x804d60f1,2
+np.float32,0xbf0cb784,0xbf13e929,2
+np.float32,0x3f13b74d,0x3f1c0cee,2
+np.float32,0xfe37cb64,0xff800000,2
+np.float32,0x1a88,0x1a88,2
+np.float32,0x3e22a472,0x3e2353ba,2
+np.float32,0x7f07d6a0,0x7f800000,2
+np.float32,0x3f78f435,0x3f910bb5,2
+np.float32,0x555a4a,0x555a4a,2
+np.float32,0x3e306c1f,0x3e314be3,2
+np.float32,0x8005877c,0x8005877c,2
+np.float32,0x4df389,0x4df389,2
+np.float32,0x8069ffc7,0x8069ffc7,2
+np.float32,0x3f328f24,0x3f4164c6,2
+np.float32,0x53a31b,0x53a31b,2
+np.float32,0xbe4d6768,0xbe4ec8be,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0x3f484c1b,0x3f5d5e2f,2
+np.float32,0x8038be05,0x8038be05,2
+np.float32,0x58ac0f,0x58ac0f,2
+np.float32,0x7ed7fb72,0x7f800000,2
+np.float32,0x5a22e1,0x5a22e1,2
+np.float32,0xbebb7394,0xbebfaad6,2
+np.float32,0xbda98160,0xbda9b2ef,2
+np.float32,0x7f3e5c42,0x7f800000,2
+np.float32,0xfed204ae,0xff800000,2
+np.float32,0xbf5ef782,0xbf7c3ec5,2
+np.float32,0xbef7a0a8,0xbf00b292,2
+np.float32,0xfee6e176,0xff800000,2
+np.float32,0xfe121140,0xff800000,2
+np.float32,0xfe9e13be,0xff800000,2
+np.float32,0xbf3c98b1,0xbf4e2003,2
+np.float32,0x77520d,0x77520d,2
+np.float32,0xf17b2,0xf17b2,2
+np.float32,0x724d2f,0x724d2f,2
+np.float32,0x7eb326f5,0x7f800000,2
+np.float32,0x3edd6bf2,0x3ee4636e,2
+np.float32,0x350f57,0x350f57,2
+np.float32,0xff7d4435,0xff800000,2
+np.float32,0x802b2b9d,0x802b2b9d,2
+np.float32,0xbf7fbeee,0xbf963acf,2
+np.float32,0x804f3100,0x804f3100,2
+np.float32,0x7c594a71,0x7f800000,2
+np.float32,0x3ef49340,0x3efdfbb6,2
+np.float32,0x2e0659,0x2e0659,2
+np.float32,0x8006d5fe,0x8006d5fe,2
+np.float32,0xfd2a00b0,0xff800000,2
+np.float32,0xbee1c016,0xbee922ed,2
+np.float32,0x3e3b7de8,0x3e3c8a8b,2
+np.float32,0x805e6bba,0x805e6bba,2
+np.float32,0x1a7da2,0x1a7da2,2
+np.float32,0x6caba4,0x6caba4,2
+np.float32,0x802f7eab,0x802f7eab,2
+np.float32,0xff68b16b,0xff800000,2
+np.float32,0x8064f5e5,0x8064f5e5,2
+np.float32,0x2e39b4,0x2e39b4,2
+np.float32,0x800000,0x800000,2
+np.float32,0xfd0334c0,0xff800000,2
+np.float32,0x3e952fc4,0x3e974e7e,2
+np.float32,0x80057d33,0x80057d33,2
+np.float32,0x3ed3ddc4,0x3ed9f6f1,2
+np.float32,0x3f74ce18,0x3f8dedf4,2
+np.float32,0xff6bb7c0,0xff800000,2
+np.float32,0xff43bc21,0xff800000,2
+np.float32,0x80207570,0x80207570,2
+np.float32,0x7e1dda75,0x7f800000,2
+np.float32,0x3efe335c,0x3f0462ff,2
+np.float32,0xbf252c0c,0xbf30df70,2
+np.float32,0x3ef4b8e3,0x3efe25ba,2
+np.float32,0x7c33938d,0x7f800000,2
+np.float32,0x3eb1593c,0x3eb4ea95,2
+np.float32,0xfe1d0068,0xff800000,2
+np.float32,0xbf10da9b,0xbf18b551,2
+np.float32,0xfeb65748,0xff800000,2
+np.float32,0xfe8c6014,0xff800000,2
+np.float32,0x3f0503e2,0x3f0b14e3,2
+np.float32,0xfe5e5248,0xff800000,2
+np.float32,0xbd10afa0,0xbd10b754,2
+np.float32,0xff64b609,0xff800000,2
+np.float32,0xbf674a96,0xbf84089c,2
+np.float32,0x7f5d200d,0x7f800000,2
+np.float32,0x3cf44900,0x3cf45245,2
+np.float32,0x8044445a,0x8044445a,2
+np.float32,0xff35b676,0xff800000,2
+np.float32,0x806452cd,0x806452cd,2
+np.float32,0xbf2930fb,0xbf35c7b4,2
+np.float32,0x7e500617,0x7f800000,2
+np.float32,0x543719,0x543719,2
+np.float32,0x3ed11068,0x3ed6ec1d,2
+np.float32,0xbd8db068,0xbd8dcd59,2
+np.float32,0x3ede62c8,0x3ee571d0,2
+np.float32,0xbf00a410,0xbf061f9c,2
+np.float32,0xbf44fa39,0xbf58ff5b,2
+np.float32,0x3f1c3114,0x3f261069,2
+np.float32,0xbdea6210,0xbdeae521,2
+np.float32,0x80059f6d,0x80059f6d,2
+np.float32,0xbdba15f8,0xbdba578c,2
+np.float32,0x6d8a61,0x6d8a61,2
+np.float32,0x6f5428,0x6f5428,2
+np.float32,0x18d0e,0x18d0e,2
+np.float32,0x50e131,0x50e131,2
+np.float32,0x3f2f52be,0x3f3d5a7e,2
+np.float32,0x7399d8,0x7399d8,2
+np.float32,0x106524,0x106524,2
+np.float32,0x7ebf1c53,0x7f800000,2
+np.float32,0x80276458,0x80276458,2
+np.float32,0x3ebbde67,0x3ec01ceb,2
+np.float32,0x80144d9d,0x80144d9d,2
+np.float32,0x8017ea6b,0x8017ea6b,2
+np.float32,0xff38f201,0xff800000,2
+np.float32,0x7f2daa82,0x7f800000,2
+np.float32,0x3f3cb7c7,0x3f4e47ed,2
+np.float32,0x7f08c779,0x7f800000,2
+np.float32,0xbecc907a,0xbed20cec,2
+np.float32,0x7d440002,0x7f800000,2
+np.float32,0xbd410d80,0xbd411fcd,2
+np.float32,0x3d63ae07,0x3d63cc0c,2
+np.float32,0x805a9c13,0x805a9c13,2
+np.float32,0x803bdcdc,0x803bdcdc,2
+np.float32,0xbe88b354,0xbe8a5497,2
+np.float32,0x3f4eaf43,0x3f65e1c2,2
+np.float32,0x3f15e5b8,0x3f1e9c60,2
+np.float32,0x3e8a870c,0x3e8c394e,2
+np.float32,0x7e113de9,0x7f800000,2
+np.float32,0x7ee5ba41,0x7f800000,2
+np.float32,0xbe73d178,0xbe7620eb,2
+np.float32,0xfe972e6a,0xff800000,2
+np.float32,0xbf65567d,0xbf82a25a,2
+np.float32,0x3f38247e,0x3f487010,2
+np.float32,0xbece1c62,0xbed3b918,2
+np.float32,0x442c8d,0x442c8d,2
+np.float32,0x2dc52,0x2dc52,2
+np.float32,0x802ed923,0x802ed923,2
+np.float32,0x788cf8,0x788cf8,2
+np.float32,0x8024888e,0x8024888e,2
+np.float32,0x3f789bde,0x3f90c8fc,2
+np.float32,0x3f5de620,0x3f7abf88,2
+np.float32,0x3f0ffc45,0x3f17b2a7,2
+np.float32,0xbf709678,0xbf8accd4,2
+np.float32,0x12181f,0x12181f,2
+np.float32,0xfe54bbe4,0xff800000,2
+np.float32,0x7f1daba0,0x7f800000,2
+np.float32,0xbf6226df,0xbf805e3c,2
+np.float32,0xbd120610,0xbd120dfb,2
+np.float32,0x7f75e951,0x7f800000,2
+np.float32,0x80068048,0x80068048,2
+np.float32,0x45f04a,0x45f04a,2
+np.float32,0xff4c4f58,0xff800000,2
+np.float32,0x311604,0x311604,2
+np.float32,0x805e809c,0x805e809c,2
+np.float32,0x3d1d62c0,0x3d1d6caa,2
+np.float32,0x7f14ccf9,0x7f800000,2
+np.float32,0xff10017c,0xff800000,2
+np.float32,0xbf43ec48,0xbf579df4,2
+np.float32,0xff64da57,0xff800000,2
+np.float32,0x7f0622c5,0x7f800000,2
+np.float32,0x7f5460cd,0x7f800000,2
+np.float32,0xff0ef1c6,0xff800000,2
+np.float32,0xbece1146,0xbed3ad13,2
+np.float32,0x3f4d457f,0x3f63fc70,2
+np.float32,0xbdc1da28,0xbdc2244b,2
+np.float32,0xbe46d3f4,0xbe481463,2
+np.float32,0xff36b3d6,0xff800000,2
+np.float32,0xbec2e76c,0xbec7a540,2
+np.float32,0x8078fb81,0x8078fb81,2
+np.float32,0x7ec819cb,0x7f800000,2
+np.float32,0x39c4d,0x39c4d,2
+np.float32,0xbe8cddc2,0xbe8ea670,2
+np.float32,0xbf36dffb,0xbf46d48b,2
+np.float32,0xbf2302a3,0xbf2e4065,2
+np.float32,0x3e7b34a2,0x3e7dbb9a,2
+np.float32,0x3e3d87e1,0x3e3e9d62,2
+np.float32,0x7f3c94b1,0x7f800000,2
+np.float32,0x80455a85,0x80455a85,2
+np.float32,0xfd875568,0xff800000,2
+np.float32,0xbf618103,0xbf7fd1c8,2
+np.float32,0xbe332e3c,0xbe3418ac,2
+np.float32,0x80736b79,0x80736b79,2
+np.float32,0x3f705d9a,0x3f8aa2e6,2
+np.float32,0xbf3a36d2,0xbf4b134b,2
+np.float32,0xfddc55c0,0xff800000,2
+np.float32,0x805606fd,0x805606fd,2
+np.float32,0x3f4f0bc4,0x3f665e25,2
+np.float32,0xfebe7494,0xff800000,2
+np.float32,0xff0c541b,0xff800000,2
+np.float32,0xff0b8e7f,0xff800000,2
+np.float32,0xbcc51640,0xbcc51b1e,2
+np.float32,0x7ec1c4d0,0x7f800000,2
+np.float32,0xfc5c8e00,0xff800000,2
+np.float32,0x7f48d682,0x7f800000,2
+np.float32,0x7d5c7d8d,0x7f800000,2
+np.float32,0x8052ed03,0x8052ed03,2
+np.float32,0x7d4db058,0x7f800000,2
+np.float32,0xff3a65ee,0xff800000,2
+np.float32,0x806eeb93,0x806eeb93,2
+np.float32,0x803f9733,0x803f9733,2
+np.float32,0xbf2d1388,0xbf3a90e3,2
+np.float32,0x68e260,0x68e260,2
+np.float32,0x3e47a69f,0x3e48eb0e,2
+np.float32,0x3f0c4623,0x3f136646,2
+np.float32,0x3f37a831,0x3f47d249,2
+np.float32,0xff153a0c,0xff800000,2
+np.float32,0x2e8086,0x2e8086,2
+np.float32,0xc3f5e,0xc3f5e,2
+np.float32,0x7f31dc14,0x7f800000,2
+np.float32,0xfee37d68,0xff800000,2
+np.float32,0x711d4,0x711d4,2
+np.float32,0x7ede2ce4,0x7f800000,2
+np.float32,0xbf5d76d0,0xbf7a23d0,2
+np.float32,0xbe2b9eb4,0xbe2c6cac,2
+np.float32,0x2b14d7,0x2b14d7,2
+np.float32,0x3ea1db72,0x3ea4910e,2
+np.float32,0x7f3f03f7,0x7f800000,2
+np.float32,0x92de5,0x92de5,2
+np.float32,0x80322e1b,0x80322e1b,2
+np.float32,0xbf5eb214,0xbf7bdd55,2
+np.float32,0xbf21bf87,0xbf2cba14,2
+np.float32,0xbf5d4b78,0xbf79e73a,2
+np.float32,0xbc302840,0xbc30291e,2
+np.float32,0xfee567c6,0xff800000,2
+np.float32,0x7f70ee14,0x7f800000,2
+np.float32,0x7e5c4b33,0x7f800000,2
+np.float32,0x3f1e7b64,0x3f28ccfd,2
+np.float32,0xbf6309f7,0xbf80ff3e,2
+np.float32,0x1c2fe3,0x1c2fe3,2
+np.float32,0x8e78d,0x8e78d,2
+np.float32,0x7f2fce73,0x7f800000,2
+np.float32,0x7f25f690,0x7f800000,2
+np.float32,0x8074cba5,0x8074cba5,2
+np.float32,0x16975f,0x16975f,2
+np.float32,0x8012cf5c,0x8012cf5c,2
+np.float32,0x7da72138,0x7f800000,2
+np.float32,0xbf563f35,0xbf7025be,2
+np.float32,0x3f69d3f5,0x3f85dcbe,2
+np.float32,0xbf15c148,0xbf1e7184,2
+np.float32,0xbe7a077c,0xbe7c8564,2
+np.float32,0x3ebb6ef1,0x3ebfa5e3,2
+np.float32,0xbe41fde4,0xbe43277b,2
+np.float32,0x7f10b479,0x7f800000,2
+np.float32,0x3e021ace,0x3e02747d,2
+np.float32,0x3e93d984,0x3e95e9be,2
+np.float32,0xfe17e924,0xff800000,2
+np.float32,0xfe21a7cc,0xff800000,2
+np.float32,0x8019b660,0x8019b660,2
+np.float32,0x7e954631,0x7f800000,2
+np.float32,0x7e7330d1,0x7f800000,2
+np.float32,0xbe007d98,0xbe00d3fb,2
+np.float32,0x3ef3870e,0x3efcd077,2
+np.float32,0x7f5bbde8,0x7f800000,2
+np.float32,0x14a5b3,0x14a5b3,2
+np.float32,0x3e84d23f,0x3e8650e8,2
+np.float32,0x80763017,0x80763017,2
+np.float32,0xfe871f36,0xff800000,2
+np.float32,0x7ed43150,0x7f800000,2
+np.float32,0x3cc44547,0x3cc44a16,2
+np.float32,0x3ef0c0fa,0x3ef9b97d,2
+np.float32,0xbede9944,0xbee5ad86,2
+np.float32,0xbf10f0b2,0xbf18cf0a,2
+np.float32,0x3ecdaa78,0x3ed33dd9,2
+np.float32,0x3f7cc058,0x3f93ee6b,2
+np.float32,0x2d952f,0x2d952f,2
+np.float32,0x3f2cf2de,0x3f3a687a,2
+np.float32,0x8029b33c,0x8029b33c,2
+np.float32,0xbf22c737,0xbf2df888,2
+np.float32,0xff53c84a,0xff800000,2
+np.float32,0x40a509,0x40a509,2
+np.float32,0x56abce,0x56abce,2
+np.float32,0xff7fffff,0xff800000,2
+np.float32,0xbf3e67f6,0xbf50741c,2
+np.float32,0xfde67580,0xff800000,2
+np.float32,0x3f103e9b,0x3f17ffc7,2
+np.float32,0x3f3f7232,0x3f51cbe2,2
+np.float32,0x803e6d78,0x803e6d78,2
+np.float32,0x3a61da,0x3a61da,2
+np.float32,0xbc04de80,0xbc04dedf,2
+np.float32,0x7f1e7c52,0x7f800000,2
+np.float32,0x8058ee88,0x8058ee88,2
+np.float32,0x806dd660,0x806dd660,2
+np.float32,0x7e4af9,0x7e4af9,2
+np.float32,0x80702d27,0x80702d27,2
+np.float32,0x802cdad1,0x802cdad1,2
+np.float32,0x3e9b5c23,0x3e9dc149,2
+np.float32,0x7f076e89,0x7f800000,2
+np.float32,0x7f129d68,0x7f800000,2
+np.float32,0x7f6f0b0a,0x7f800000,2
+np.float32,0x7eafafb5,0x7f800000,2
+np.float32,0xbf2ef2ca,0xbf3ce332,2
+np.float32,0xff34c000,0xff800000,2
+np.float32,0x7f559274,0x7f800000,2
+np.float32,0xfed08556,0xff800000,2
+np.float32,0xbf014621,0xbf06d6ad,2
+np.float32,0xff23086a,0xff800000,2
+np.float32,0x6cb33f,0x6cb33f,2
+np.float32,0xfe6e3ffc,0xff800000,2
+np.float32,0x3e6bbec0,0x3e6dd546,2
+np.float32,0x8036afa6,0x8036afa6,2
+np.float32,0xff800000,0xff800000,2
+np.float32,0x3e0ed05c,0x3e0f46ff,2
+np.float32,0x3ec9215c,0x3ece57e6,2
+np.float32,0xbf449fa4,0xbf5888aa,2
+np.float32,0xff2c6640,0xff800000,2
+np.float32,0x7f08f4a7,0x7f800000,2
+np.float32,0xbf4f63e5,0xbf66d4c1,2
+np.float32,0x3f800000,0x3f966cfe,2
+np.float32,0xfe86c7d2,0xff800000,2
+np.float32,0x3f63f969,0x3f81a970,2
+np.float32,0xbd7022d0,0xbd704609,2
+np.float32,0xbead906c,0xbeb0e853,2
+np.float32,0x7ef149ee,0x7f800000,2
+np.float32,0xff0b9ff7,0xff800000,2
+np.float32,0x3f38380d,0x3f4888e7,2
+np.float32,0x3ef3a3e2,0x3efcf09e,2
+np.float32,0xff616477,0xff800000,2
+np.float32,0x3f3f83e4,0x3f51e2c3,2
+np.float32,0xbf79963c,0xbf918642,2
+np.float32,0x801416f4,0x801416f4,2
+np.float32,0xff75ce6d,0xff800000,2
+np.float32,0xbdbf3588,0xbdbf7cad,2
+np.float32,0xbe6ea938,0xbe70d3dc,2
+np.float32,0x8066f977,0x8066f977,2
+np.float32,0x3f5b5362,0x3f7728aa,2
+np.float32,0xbf72052c,0xbf8bdbd8,2
+np.float32,0xbe21ed74,0xbe229a6f,2
+np.float32,0x8062d19c,0x8062d19c,2
+np.float32,0x3ed8d01f,0x3edf59e6,2
+np.float32,0x803ed42b,0x803ed42b,2
+np.float32,0xbe099a64,0xbe0a0481,2
+np.float32,0xbe173eb4,0xbe17cba2,2
+np.float32,0xbebdcf02,0xbec22faf,2
+np.float32,0x7e3ff29e,0x7f800000,2
+np.float32,0x367c92,0x367c92,2
+np.float32,0xbf5c9db8,0xbf78f4a4,2
+np.float32,0xff0b49ea,0xff800000,2
+np.float32,0x3f4f9bc4,0x3f672001,2
+np.float32,0x85d4a,0x85d4a,2
+np.float32,0x80643e33,0x80643e33,2
+np.float32,0x8013aabd,0x8013aabd,2
+np.float32,0xff6997c3,0xff800000,2
+np.float32,0x3f4dd43c,0x3f64bbb6,2
+np.float32,0xff13bbb9,0xff800000,2
+np.float32,0x3f34efa2,0x3f446187,2
+np.float32,0x3e4b2f10,0x3e4c850d,2
+np.float32,0xfef695c6,0xff800000,2
+np.float32,0x7f7e0057,0x7f800000,2
+np.float32,0x3f6e1b9c,0x3f88fa40,2
+np.float32,0x806e46cf,0x806e46cf,2
+np.float32,0x3f15a88a,0x3f1e546c,2
+np.float32,0xbd2de7d0,0xbd2df530,2
+np.float32,0xbf63cae0,0xbf818854,2
+np.float32,0xbdc3e1a0,0xbdc42e1e,2
+np.float32,0xbf11a038,0xbf199b98,2
+np.float32,0xbec13706,0xbec5d56b,2
+np.float32,0x3f1c5f54,0x3f26478d,2
+np.float32,0x3e9ea97e,0x3ea136b4,2
+np.float32,0xfeb5a508,0xff800000,2
+np.float32,0x7f4698f4,0x7f800000,2
+np.float32,0xff51ee2c,0xff800000,2
+np.float32,0xff5994df,0xff800000,2
+np.float32,0x4b9fb9,0x4b9fb9,2
+np.float32,0xfda10d98,0xff800000,2
+np.float32,0x525555,0x525555,2
+np.float32,0x7ed571ef,0x7f800000,2
+np.float32,0xbf600d18,0xbf7dc50c,2
+np.float32,0x3ec674ca,0x3ecb768b,2
+np.float32,0x3cb69115,0x3cb694f3,2
+np.float32,0x7eac75f2,0x7f800000,2
+np.float32,0x804d4d75,0x804d4d75,2
+np.float32,0xfed5292e,0xff800000,2
+np.float32,0x800ed06a,0x800ed06a,2
+np.float32,0xfec37584,0xff800000,2
+np.float32,0x3ef96ac7,0x3f01b326,2
+np.float32,0x42f743,0x42f743,2
+np.float32,0x3f56f442,0x3f711e39,2
+np.float32,0xbf7ea726,0xbf956375,2
+np.float32,0x806c7202,0x806c7202,2
+np.float32,0xbd8ee980,0xbd8f0733,2
+np.float32,0xbdf2e930,0xbdf37b18,2
+np.float32,0x3f103910,0x3f17f955,2
+np.float32,0xff123e8f,0xff800000,2
+np.float32,0x806e4b5d,0x806e4b5d,2
+np.float32,0xbf4f3bfc,0xbf669f07,2
+np.float32,0xbf070c16,0xbf0d6609,2
+np.float32,0xff00e0ba,0xff800000,2
+np.float32,0xff49d828,0xff800000,2
+np.float32,0x7e47f04a,0x7f800000,2
+np.float32,0x7e984dac,0x7f800000,2
+np.float32,0x3f77473c,0x3f8fc858,2
+np.float32,0x3f017439,0x3f070ac8,2
+np.float32,0x118417,0x118417,2
+np.float32,0xbcf7a2c0,0xbcf7ac68,2
+np.float32,0xfee46fee,0xff800000,2
+np.float32,0x3e42a648,0x3e43d2e9,2
+np.float32,0x80131916,0x80131916,2
+np.float32,0x806209d3,0x806209d3,2
+np.float32,0x807c1f12,0x807c1f12,2
+np.float32,0x2f3696,0x2f3696,2
+np.float32,0xff28722b,0xff800000,2
+np.float32,0x7f1416a1,0x7f800000,2
+np.float32,0x8054e7a1,0x8054e7a1,2
+np.float32,0xbddc39a0,0xbddca656,2
+np.float32,0x7dc60175,0x7f800000,2
+np.float64,0x7fd0ae584da15cb0,0x7ff0000000000000,1
+np.float64,0x7fd41d68e5283ad1,0x7ff0000000000000,1
+np.float64,0x7fe93073bb7260e6,0x7ff0000000000000,1
+np.float64,0x3fb4fd19d229fa34,0x3fb5031f57dbac0f,1
+np.float64,0x85609ce10ac2,0x85609ce10ac2,1
+np.float64,0xbfd7aa12ccaf5426,0xbfd8351003a320e2,1
+np.float64,0x8004487c9b4890fa,0x8004487c9b4890fa,1
+np.float64,0x7fe7584cfd2eb099,0x7ff0000000000000,1
+np.float64,0x800ea8edc6dd51dc,0x800ea8edc6dd51dc,1
+np.float64,0x3fe0924aa5a12495,0x3fe15276e271c6dc,1
+np.float64,0x3feb1abf6d36357f,0x3fee76b4d3d06964,1
+np.float64,0x3fa8c14534318280,0x3fa8c3bd5ce5923c,1
+np.float64,0x800b9f5915d73eb3,0x800b9f5915d73eb3,1
+np.float64,0xffc05aaa7820b554,0xfff0000000000000,1
+np.float64,0x800157eda8c2afdc,0x800157eda8c2afdc,1
+np.float64,0xffe8d90042b1b200,0xfff0000000000000,1
+np.float64,0x3feda02ea93b405d,0x3ff1057e61d08d59,1
+np.float64,0xffd03b7361a076e6,0xfff0000000000000,1
+np.float64,0x3fe1a8ecd7e351da,0x3fe291eda9080847,1
+np.float64,0xffc5bfdff82b7fc0,0xfff0000000000000,1
+np.float64,0xbfe6fb3d386df67a,0xbfe9022c05df0565,1
+np.float64,0x7fefffffffffffff,0x7ff0000000000000,1
+np.float64,0x7fa10c340c221867,0x7ff0000000000000,1
+np.float64,0x3fe55cbf1daab97e,0x3fe6fc1648258b75,1
+np.float64,0xbfddeb5f60bbd6be,0xbfdf056d4fb5825f,1
+np.float64,0xffddb1a8213b6350,0xfff0000000000000,1
+np.float64,0xbfb20545e4240a88,0xbfb2091579375176,1
+np.float64,0x3f735ded2026bbda,0x3f735df1dad4ee3a,1
+np.float64,0xbfd1eb91efa3d724,0xbfd227c044dead61,1
+np.float64,0xffd737c588ae6f8c,0xfff0000000000000,1
+np.float64,0x3fc46818ec28d032,0x3fc47e416c4237a6,1
+np.float64,0x0,0x0,1
+np.float64,0xffb632097a2c6410,0xfff0000000000000,1
+np.float64,0xbfcb5ae84b36b5d0,0xbfcb905613af55b8,1
+np.float64,0xbfe7b926402f724c,0xbfe9f4f0be6aacc3,1
+np.float64,0x80081840b3f03082,0x80081840b3f03082,1
+np.float64,0x3fe767a656eecf4d,0x3fe98c53b4779de7,1
+np.float64,0x8005834c088b0699,0x8005834c088b0699,1
+np.float64,0x80074e92658e9d26,0x80074e92658e9d26,1
+np.float64,0x80045d60c268bac2,0x80045d60c268bac2,1
+np.float64,0xffb9aecfe8335da0,0xfff0000000000000,1
+np.float64,0x7fcad3e1cd35a7c3,0x7ff0000000000000,1
+np.float64,0xbf881853d03030c0,0xbf8818783e28fc87,1
+np.float64,0xe18c6d23c318e,0xe18c6d23c318e,1
+np.float64,0x7fcb367b8f366cf6,0x7ff0000000000000,1
+np.float64,0x5c13436cb8269,0x5c13436cb8269,1
+np.float64,0xffe5399938aa7332,0xfff0000000000000,1
+np.float64,0xbfdc45dbc3b88bb8,0xbfdd33958222c27e,1
+np.float64,0xbfd714691bae28d2,0xbfd7954edbef810b,1
+np.float64,0xbfdf18b02b3e3160,0xbfe02ad13634c651,1
+np.float64,0x8003e6f276e7cde6,0x8003e6f276e7cde6,1
+np.float64,0x3febb6b412776d68,0x3fef4f753def31f9,1
+np.float64,0x7fe016a3b4a02d46,0x7ff0000000000000,1
+np.float64,0x3fdc899ac7b91336,0x3fdd7e1cee1cdfc8,1
+np.float64,0x800219271e24324f,0x800219271e24324f,1
+np.float64,0x1529d93e2a53c,0x1529d93e2a53c,1
+np.float64,0x800d5bc827fab790,0x800d5bc827fab790,1
+np.float64,0x3e1495107c293,0x3e1495107c293,1
+np.float64,0x3fe89da0f2b13b42,0x3feb1dc1f3015ad7,1
+np.float64,0x800ba8c17b975183,0x800ba8c17b975183,1
+np.float64,0x8002dacf0265b59f,0x8002dacf0265b59f,1
+np.float64,0xffe6d0a4cc2da149,0xfff0000000000000,1
+np.float64,0x3fdf23fe82be47fc,0x3fe03126d8e2b309,1
+np.float64,0xffe41b1f1c28363e,0xfff0000000000000,1
+np.float64,0xbfd635c634ac6b8c,0xbfd6a8966da6adaa,1
+np.float64,0x800755bc08eeab79,0x800755bc08eeab79,1
+np.float64,0x800ba4c47c374989,0x800ba4c47c374989,1
+np.float64,0x7fec9f7649793eec,0x7ff0000000000000,1
+np.float64,0x7fdbf45738b7e8ad,0x7ff0000000000000,1
+np.float64,0x3f5597f07eab4,0x3f5597f07eab4,1
+np.float64,0xbfbf4599183e8b30,0xbfbf5985d8c65097,1
+np.float64,0xbf5b200580364000,0xbf5b2006501b21ae,1
+np.float64,0x7f91868370230d06,0x7ff0000000000000,1
+np.float64,0x3838e2a67071d,0x3838e2a67071d,1
+np.float64,0xffefe3ff5d3fc7fe,0xfff0000000000000,1
+np.float64,0xffe66b26d06cd64d,0xfff0000000000000,1
+np.float64,0xbfd830a571b0614a,0xbfd8c526927c742c,1
+np.float64,0x7fe8442122f08841,0x7ff0000000000000,1
+np.float64,0x800efa8c637df519,0x800efa8c637df519,1
+np.float64,0xf0026835e004d,0xf0026835e004d,1
+np.float64,0xffb11beefe2237e0,0xfff0000000000000,1
+np.float64,0x3fef9bbb327f3776,0x3ff2809f10641c32,1
+np.float64,0x350595306a0b3,0x350595306a0b3,1
+np.float64,0xf7f6538befecb,0xf7f6538befecb,1
+np.float64,0xffe36379c4a6c6f3,0xfff0000000000000,1
+np.float64,0x28b1d82e5163c,0x28b1d82e5163c,1
+np.float64,0x70a3d804e147c,0x70a3d804e147c,1
+np.float64,0xffd96c1bc9b2d838,0xfff0000000000000,1
+np.float64,0xffce8e00893d1c00,0xfff0000000000000,1
+np.float64,0x800f2bdcb25e57b9,0x800f2bdcb25e57b9,1
+np.float64,0xbfe0d9c63361b38c,0xbfe1a3eb02192b76,1
+np.float64,0xbfdc7b8711b8f70e,0xbfdd6e9db3a01e51,1
+np.float64,0x99e22ec133c46,0x99e22ec133c46,1
+np.float64,0xffeaef6ddab5dedb,0xfff0000000000000,1
+np.float64,0x7fe89c22c0f13845,0x7ff0000000000000,1
+np.float64,0x8002d5207de5aa42,0x8002d5207de5aa42,1
+np.float64,0x3fd1b13353236267,0x3fd1eb1b9345dfca,1
+np.float64,0x800ccae0a41995c1,0x800ccae0a41995c1,1
+np.float64,0x3fdbdaba38b7b574,0x3fdcbdfcbca37ce6,1
+np.float64,0x5b06d12cb60db,0x5b06d12cb60db,1
+np.float64,0xffd52262752a44c4,0xfff0000000000000,1
+np.float64,0x5a17f050b42ff,0x5a17f050b42ff,1
+np.float64,0x3d24205e7a485,0x3d24205e7a485,1
+np.float64,0x7fbed4dec63da9bd,0x7ff0000000000000,1
+np.float64,0xbfe56e9776aadd2f,0xbfe71212863c284f,1
+np.float64,0x7fea0bc952341792,0x7ff0000000000000,1
+np.float64,0x800f692d139ed25a,0x800f692d139ed25a,1
+np.float64,0xffdb63feab36c7fe,0xfff0000000000000,1
+np.float64,0x3fe1c2297fe38452,0x3fe2af21293c9571,1
+np.float64,0x7fede384747bc708,0x7ff0000000000000,1
+np.float64,0x800440169288802e,0x800440169288802e,1
+np.float64,0xffe3241eeb26483e,0xfff0000000000000,1
+np.float64,0xffe28f3879651e70,0xfff0000000000000,1
+np.float64,0xa435cbc1486d,0xa435cbc1486d,1
+np.float64,0x7fe55e08db6abc11,0x7ff0000000000000,1
+np.float64,0x1405e624280be,0x1405e624280be,1
+np.float64,0x3fd861bdf0b0c37c,0x3fd8f9d2e33e45e5,1
+np.float64,0x3feeb67cdc3d6cfa,0x3ff1d337d81d1c14,1
+np.float64,0x3fd159a10e22b342,0x3fd1903be7c2ea0c,1
+np.float64,0x3fd84626bc308c4d,0x3fd8dc373645e65b,1
+np.float64,0xffd3da81d9a7b504,0xfff0000000000000,1
+np.float64,0xbfd4a768b8294ed2,0xbfd503aa7c240051,1
+np.float64,0x3fe3059f2a660b3e,0x3fe42983e0c6bb2e,1
+np.float64,0x3fe3b8353827706a,0x3fe4fdd635c7269b,1
+np.float64,0xbfe4af0399695e07,0xbfe6277d9002b46c,1
+np.float64,0xbfd7e18a92afc316,0xbfd87066b54c4fe6,1
+np.float64,0x800432bcab48657a,0x800432bcab48657a,1
+np.float64,0x80033d609d267ac2,0x80033d609d267ac2,1
+np.float64,0x7fef5f758e7ebeea,0x7ff0000000000000,1
+np.float64,0xbfed7833dbfaf068,0xbff0e85bf45a5ebc,1
+np.float64,0x3fe2283985a45073,0x3fe325b0a9099c74,1
+np.float64,0xe820b4b3d0417,0xe820b4b3d0417,1
+np.float64,0x8003ecb72aa7d96f,0x8003ecb72aa7d96f,1
+np.float64,0xbfeab2c755b5658f,0xbfede7c83e92a625,1
+np.float64,0xbfc7b287f72f6510,0xbfc7d53ef2ffe9dc,1
+np.float64,0xffd9a41d0f33483a,0xfff0000000000000,1
+np.float64,0x3fd3a5b6e3a74b6c,0x3fd3f516f39a4725,1
+np.float64,0x800bc72091578e42,0x800bc72091578e42,1
+np.float64,0x800ff405ce9fe80c,0x800ff405ce9fe80c,1
+np.float64,0x57918600af24,0x57918600af24,1
+np.float64,0x2a5be7fa54b7e,0x2a5be7fa54b7e,1
+np.float64,0xbfdca7886bb94f10,0xbfdd9f142b5b43e4,1
+np.float64,0xbfe216993ee42d32,0xbfe3112936590995,1
+np.float64,0xbfe06bd9cf20d7b4,0xbfe126cd353ab42f,1
+np.float64,0x8003e6c31827cd87,0x8003e6c31827cd87,1
+np.float64,0x8005f37d810be6fc,0x8005f37d810be6fc,1
+np.float64,0x800715b081ae2b62,0x800715b081ae2b62,1
+np.float64,0x3fef94c35bff2986,0x3ff27b4bed2f4051,1
+np.float64,0x6f5798e0deb0,0x6f5798e0deb0,1
+np.float64,0x3fcef1f05c3de3e1,0x3fcf3f557550598f,1
+np.float64,0xbf9a91c400352380,0xbf9a92876273b85c,1
+np.float64,0x3fc9143f7f322880,0x3fc93d678c05d26b,1
+np.float64,0x78ad847af15b1,0x78ad847af15b1,1
+np.float64,0x8000fdc088c1fb82,0x8000fdc088c1fb82,1
+np.float64,0x800200fd304401fb,0x800200fd304401fb,1
+np.float64,0x7fb8ab09dc315613,0x7ff0000000000000,1
+np.float64,0x3fe949771b7292ee,0x3fec00891c3fc5a2,1
+np.float64,0xbfc54cae0e2a995c,0xbfc565e0f3d0e3af,1
+np.float64,0xffd546161e2a8c2c,0xfff0000000000000,1
+np.float64,0x800fe1d1279fc3a2,0x800fe1d1279fc3a2,1
+np.float64,0x3fd9c45301b388a8,0x3fda77fa1f4c79bf,1
+np.float64,0x7fe10ff238221fe3,0x7ff0000000000000,1
+np.float64,0xbfbc2181ae384300,0xbfbc3002229155c4,1
+np.float64,0xbfe7bbfae4ef77f6,0xbfe9f895e91f468d,1
+np.float64,0x800d3d994f7a7b33,0x800d3d994f7a7b33,1
+np.float64,0xffe6e15a896dc2b4,0xfff0000000000000,1
+np.float64,0x800e6b6c8abcd6d9,0x800e6b6c8abcd6d9,1
+np.float64,0xbfd862c938b0c592,0xbfd8faf1cdcb09db,1
+np.float64,0xffe2411f8464823e,0xfff0000000000000,1
+np.float64,0xffd0b32efaa1665e,0xfff0000000000000,1
+np.float64,0x3ac4ace475896,0x3ac4ace475896,1
+np.float64,0xf9c3a7ebf3875,0xf9c3a7ebf3875,1
+np.float64,0xdb998ba5b7332,0xdb998ba5b7332,1
+np.float64,0xbfe438a14fe87142,0xbfe5981751e4c5cd,1
+np.float64,0xbfbcf48cbc39e918,0xbfbd045d60e65d3a,1
+np.float64,0x7fde499615bc932b,0x7ff0000000000000,1
+np.float64,0x800bba269057744e,0x800bba269057744e,1
+np.float64,0x3fc9bb1ba3337638,0x3fc9e78fdb6799c1,1
+np.float64,0xffd9f974fbb3f2ea,0xfff0000000000000,1
+np.float64,0x7fcf1ad1693e35a2,0x7ff0000000000000,1
+np.float64,0x7fe5dcedd32bb9db,0x7ff0000000000000,1
+np.float64,0xeb06500bd60ca,0xeb06500bd60ca,1
+np.float64,0x7fd73e7b592e7cf6,0x7ff0000000000000,1
+np.float64,0xbfe9d91ae873b236,0xbfecc08482849bcd,1
+np.float64,0xffc85338b730a670,0xfff0000000000000,1
+np.float64,0x7fbba41eee37483d,0x7ff0000000000000,1
+np.float64,0x3fed5624fb7aac4a,0x3ff0cf9f0de1fd54,1
+np.float64,0xffe566d80d6acdb0,0xfff0000000000000,1
+np.float64,0x3fd4477884a88ef1,0x3fd49ec7acdd25a0,1
+np.float64,0x3fcb98c5fd37318c,0x3fcbcfa20e2c2712,1
+np.float64,0xffdeba71d5bd74e4,0xfff0000000000000,1
+np.float64,0x8001edc59dc3db8c,0x8001edc59dc3db8c,1
+np.float64,0x3fe6b09e896d613e,0x3fe8a3bb541ec0e3,1
+np.float64,0x3fe8694b4970d296,0x3fead94d271d05cf,1
+np.float64,0xb52c27bf6a585,0xb52c27bf6a585,1
+np.float64,0x7fcb0a21d9361443,0x7ff0000000000000,1
+np.float64,0xbfd9efc68cb3df8e,0xbfdaa7058c0ccbd1,1
+np.float64,0x8007cd170fef9a2f,0x8007cd170fef9a2f,1
+np.float64,0x3fe83325e770664c,0x3fea92c55c9d567e,1
+np.float64,0x800bd0085537a011,0x800bd0085537a011,1
+np.float64,0xffe05b9e7820b73c,0xfff0000000000000,1
+np.float64,0x3fea4ce4347499c8,0x3fed5cea9fdc541b,1
+np.float64,0x7fe08aae1921155b,0x7ff0000000000000,1
+np.float64,0x3fe7a5e7deef4bd0,0x3fe9dc2e20cfb61c,1
+np.float64,0xbfe0ccc8e6e19992,0xbfe195175f32ee3f,1
+np.float64,0xbfe8649717f0c92e,0xbfead3298974dcf0,1
+np.float64,0x7fed6c5308bad8a5,0x7ff0000000000000,1
+np.float64,0xffdbd8c7af37b190,0xfff0000000000000,1
+np.float64,0xbfb2bc4d06257898,0xbfb2c09569912839,1
+np.float64,0x3fc62eca512c5d95,0x3fc64b4251bce8f9,1
+np.float64,0xbfcae2ddbd35c5bc,0xbfcb15971fc61312,1
+np.float64,0x18d26ce831a4f,0x18d26ce831a4f,1
+np.float64,0x7fe38b279267164e,0x7ff0000000000000,1
+np.float64,0x97e1d9ab2fc3b,0x97e1d9ab2fc3b,1
+np.float64,0xbfee8e4785fd1c8f,0xbff1b52d16807627,1
+np.float64,0xbfb189b4a6231368,0xbfb18d37e83860ee,1
+np.float64,0xffd435761ea86aec,0xfff0000000000000,1
+np.float64,0x3fe6c48ebced891e,0x3fe8bcea189c3867,1
+np.float64,0x7fdadd3678b5ba6c,0x7ff0000000000000,1
+np.float64,0x7fea8f15b7b51e2a,0x7ff0000000000000,1
+np.float64,0xbff0000000000000,0xbff2cd9fc44eb982,1
+np.float64,0x80004c071120980f,0x80004c071120980f,1
+np.float64,0x8005367adfea6cf6,0x8005367adfea6cf6,1
+np.float64,0x3fbdc9139a3b9220,0x3fbdda4aba667ce5,1
+np.float64,0x7fed5ee3ad7abdc6,0x7ff0000000000000,1
+np.float64,0x51563fb2a2ac9,0x51563fb2a2ac9,1
+np.float64,0xbfba7d26ce34fa50,0xbfba894229c50ea1,1
+np.float64,0x6c10db36d821c,0x6c10db36d821c,1
+np.float64,0xbfbdaec0d03b5d80,0xbfbdbfca6ede64f4,1
+np.float64,0x800a1cbe7414397d,0x800a1cbe7414397d,1
+np.float64,0x800ae6e7f2d5cdd0,0x800ae6e7f2d5cdd0,1
+np.float64,0x3fea63d3fef4c7a8,0x3fed7c1356688ddc,1
+np.float64,0xbfde1e3a88bc3c76,0xbfdf3dfb09cc2260,1
+np.float64,0xbfd082d75a2105ae,0xbfd0b1e28c84877b,1
+np.float64,0x7fea1e5e85f43cbc,0x7ff0000000000000,1
+np.float64,0xffe2237a1a6446f4,0xfff0000000000000,1
+np.float64,0x3fd1e2be8523c57d,0x3fd21e93dfd1bbc4,1
+np.float64,0x3fd1acd428a359a8,0x3fd1e6916a42bc3a,1
+np.float64,0x61a152f0c342b,0x61a152f0c342b,1
+np.float64,0xbfc61a6b902c34d8,0xbfc6369557690ba0,1
+np.float64,0x7fd1a84b1f235095,0x7ff0000000000000,1
+np.float64,0x1c5cc7e638b9a,0x1c5cc7e638b9a,1
+np.float64,0x8008039755f0072f,0x8008039755f0072f,1
+np.float64,0x80097532d6f2ea66,0x80097532d6f2ea66,1
+np.float64,0xbfc6d979a12db2f4,0xbfc6f89777c53f8f,1
+np.float64,0x8004293ab1085276,0x8004293ab1085276,1
+np.float64,0x3fc2af5c21255eb8,0x3fc2c05dc0652554,1
+np.float64,0xbfd9a5ab87b34b58,0xbfda56d1076abc98,1
+np.float64,0xbfebd360ba77a6c2,0xbfef779fd6595f9b,1
+np.float64,0xffd5313c43aa6278,0xfff0000000000000,1
+np.float64,0xbfe994a262b32945,0xbfec64b969852ed5,1
+np.float64,0x3fce01a52e3c034a,0x3fce48324eb29c31,1
+np.float64,0x56bd74b2ad7af,0x56bd74b2ad7af,1
+np.float64,0xb84093ff70813,0xb84093ff70813,1
+np.float64,0x7fe776df946eedbe,0x7ff0000000000000,1
+np.float64,0xbfe294ac2e652958,0xbfe3a480938afa26,1
+np.float64,0x7fe741b4d0ee8369,0x7ff0000000000000,1
+np.float64,0x800b7e8a1056fd15,0x800b7e8a1056fd15,1
+np.float64,0x7fd28f1269251e24,0x7ff0000000000000,1
+np.float64,0x8009d4492e73a893,0x8009d4492e73a893,1
+np.float64,0x3fe3f27fca67e500,0x3fe543aff825e244,1
+np.float64,0x3fd12447e5a24890,0x3fd158efe43c0452,1
+np.float64,0xbfd58df0f2ab1be2,0xbfd5f6d908e3ebce,1
+np.float64,0xffc0a8e4642151c8,0xfff0000000000000,1
+np.float64,0xbfedb197787b632f,0xbff112367ec9d3e7,1
+np.float64,0xffdde07a7f3bc0f4,0xfff0000000000000,1
+np.float64,0x3fe91f3e5b723e7d,0x3febc886a1d48364,1
+np.float64,0x3fe50415236a082a,0x3fe68f43a5468d8c,1
+np.float64,0xd9a0c875b3419,0xd9a0c875b3419,1
+np.float64,0xbfee04ccf4bc099a,0xbff14f4740a114cf,1
+np.float64,0xbfd2bcc6a125798e,0xbfd30198b1e7d7ed,1
+np.float64,0xbfeb3c16f8f6782e,0xbfeea4ce47d09f58,1
+np.float64,0xffd3ba19e4a77434,0xfff0000000000000,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0x3fdef0a642bde14d,0x3fe0146677b3a488,1
+np.float64,0x3fdc3dd0a2b87ba0,0x3fdd2abe65651487,1
+np.float64,0x3fdbb1fd47b763fb,0x3fdc915a2fd19f4b,1
+np.float64,0x7fbaa375e63546eb,0x7ff0000000000000,1
+np.float64,0x433ef8ee867e0,0x433ef8ee867e0,1
+np.float64,0xf5345475ea68b,0xf5345475ea68b,1
+np.float64,0xa126419b424c8,0xa126419b424c8,1
+np.float64,0x3fe0057248200ae5,0x3fe0b2f488339709,1
+np.float64,0xffc5e3b82f2bc770,0xfff0000000000000,1
+np.float64,0xffb215c910242b90,0xfff0000000000000,1
+np.float64,0xbfeba4ae0837495c,0xbfef3642e4b54aac,1
+np.float64,0xffbb187ebe363100,0xfff0000000000000,1
+np.float64,0x3fe4c6a496a98d49,0x3fe64440cdf06aab,1
+np.float64,0x800767a28f6ecf46,0x800767a28f6ecf46,1
+np.float64,0x3fdbed63b1b7dac8,0x3fdcd27318c0b683,1
+np.float64,0x80006d8339e0db07,0x80006d8339e0db07,1
+np.float64,0x8000b504f0416a0b,0x8000b504f0416a0b,1
+np.float64,0xbfe88055bfb100ac,0xbfeaf767bd2767b9,1
+np.float64,0x3fefe503317fca06,0x3ff2b8d4057240c8,1
+np.float64,0x7fe307538b660ea6,0x7ff0000000000000,1
+np.float64,0x944963c12892d,0x944963c12892d,1
+np.float64,0xbfd2c20b38a58416,0xbfd30717900f8233,1
+np.float64,0x7feed04e3e3da09b,0x7ff0000000000000,1
+np.float64,0x3fe639619cac72c3,0x3fe80de7b8560a8d,1
+np.float64,0x3fde066c66bc0cd9,0x3fdf237fb759a652,1
+np.float64,0xbfc56b22b52ad644,0xbfc584c267a47ebd,1
+np.float64,0x3fc710d5b12e21ab,0x3fc730d817ba0d0c,1
+np.float64,0x3fee1dfc347c3bf8,0x3ff161d9c3e15f68,1
+np.float64,0x3fde400954bc8013,0x3fdf639e5cc9e7a9,1
+np.float64,0x56e701f8adce1,0x56e701f8adce1,1
+np.float64,0xbfe33bbc89e67779,0xbfe46996b39381fe,1
+np.float64,0x7fec89e2f87913c5,0x7ff0000000000000,1
+np.float64,0xbfdad58b40b5ab16,0xbfdba098cc0ad5d3,1
+np.float64,0x3fe99c76a13338ed,0x3fec6f31bae613e7,1
+np.float64,0x3fe4242a29a84854,0x3fe57f6b45e5c0ef,1
+np.float64,0xbfe79d3199ef3a63,0xbfe9d0fb96c846ba,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0xbfeb35a6cf766b4e,0xbfee9be4e7e943f7,1
+np.float64,0x3e047f267c091,0x3e047f267c091,1
+np.float64,0x4bf1376a97e28,0x4bf1376a97e28,1
+np.float64,0x800ef419685de833,0x800ef419685de833,1
+np.float64,0x3fe0efa61a21df4c,0x3fe1bce98baf2f0f,1
+np.float64,0x3fcc13c4d738278a,0x3fcc4d8c778bcaf7,1
+np.float64,0x800f1d291afe3a52,0x800f1d291afe3a52,1
+np.float64,0x3fd3f10e6da7e21d,0x3fd444106761ea1d,1
+np.float64,0x800706d6d76e0dae,0x800706d6d76e0dae,1
+np.float64,0xffa1ffbc9023ff80,0xfff0000000000000,1
+np.float64,0xbfe098f26d6131e5,0xbfe15a08a5f3eac0,1
+np.float64,0x3fe984f9cc7309f4,0x3fec4fcdbdb1cb9b,1
+np.float64,0x7fd7c2f1eaaf85e3,0x7ff0000000000000,1
+np.float64,0x800a8adb64f515b7,0x800a8adb64f515b7,1
+np.float64,0x80060d3ffc8c1a81,0x80060d3ffc8c1a81,1
+np.float64,0xbfec37e4aef86fc9,0xbff0029a6a1d61e2,1
+np.float64,0x800b21bcfcf6437a,0x800b21bcfcf6437a,1
+np.float64,0xbfc08facc1211f58,0xbfc09b8380ea8032,1
+np.float64,0xffebb4b52577696a,0xfff0000000000000,1
+np.float64,0x800b08096df61013,0x800b08096df61013,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0xffd2f0c9c8a5e194,0xfff0000000000000,1
+np.float64,0xffe78b2299af1644,0xfff0000000000000,1
+np.float64,0x7fd0444794a0888e,0x7ff0000000000000,1
+np.float64,0x307c47b460f8a,0x307c47b460f8a,1
+np.float64,0xffe6b4c851ad6990,0xfff0000000000000,1
+np.float64,0xffe1877224a30ee4,0xfff0000000000000,1
+np.float64,0x48d7b5c091af7,0x48d7b5c091af7,1
+np.float64,0xbfa1dc6b1c23b8d0,0xbfa1dd5889e1b7da,1
+np.float64,0x3fe5004737ea008e,0x3fe68a9c310b08c1,1
+np.float64,0x7fec5f0742b8be0e,0x7ff0000000000000,1
+np.float64,0x3fd0a86285a150c5,0x3fd0d8b238d557fa,1
+np.float64,0x7fed60380efac06f,0x7ff0000000000000,1
+np.float64,0xeeca74dfdd94f,0xeeca74dfdd94f,1
+np.float64,0x3fda05aaa8b40b54,0x3fdabebdbf405e84,1
+np.float64,0x800e530ceb1ca61a,0x800e530ceb1ca61a,1
+np.float64,0x800b3866379670cd,0x800b3866379670cd,1
+np.float64,0xffedb3e7fa3b67cf,0xfff0000000000000,1
+np.float64,0xffdfa4c0713f4980,0xfff0000000000000,1
+np.float64,0x7fe4679e0728cf3b,0x7ff0000000000000,1
+np.float64,0xffe978611ef2f0c2,0xfff0000000000000,1
+np.float64,0x7fc9f4601f33e8bf,0x7ff0000000000000,1
+np.float64,0x3fd4942de6a9285c,0x3fd4ef6e089357dd,1
+np.float64,0x3faafe064435fc00,0x3fab0139cd6564dc,1
+np.float64,0x800d145a519a28b5,0x800d145a519a28b5,1
+np.float64,0xbfd82636f2304c6e,0xbfd8b9f75ddd2f02,1
+np.float64,0xbfdf2e975e3e5d2e,0xbfe037174280788c,1
+np.float64,0x7fd7051d7c2e0a3a,0x7ff0000000000000,1
+np.float64,0x8007933d452f267b,0x8007933d452f267b,1
+np.float64,0xb2043beb64088,0xb2043beb64088,1
+np.float64,0x3febfd9708f7fb2e,0x3fefb2ef090f18d2,1
+np.float64,0xffd9bc6bc83378d8,0xfff0000000000000,1
+np.float64,0xc10f9fd3821f4,0xc10f9fd3821f4,1
+np.float64,0x3fe3c83413a79068,0x3fe510fa1dd8edf7,1
+np.float64,0x3fbe26ccda3c4da0,0x3fbe38a892279975,1
+np.float64,0x3fcc1873103830e6,0x3fcc5257a6ae168d,1
+np.float64,0xe7e000e9cfc00,0xe7e000e9cfc00,1
+np.float64,0xffda73852bb4e70a,0xfff0000000000000,1
+np.float64,0xbfe831be19f0637c,0xbfea90f1b34da3e5,1
+np.float64,0xbfeb568f3076ad1e,0xbfeec97eebfde862,1
+np.float64,0x510a6ad0a214e,0x510a6ad0a214e,1
+np.float64,0x3fe6ba7e35ed74fc,0x3fe8b032a9a28c6a,1
+np.float64,0xffeb5cdcff76b9b9,0xfff0000000000000,1
+np.float64,0x4f0a23e89e145,0x4f0a23e89e145,1
+np.float64,0x446ec20288dd9,0x446ec20288dd9,1
+np.float64,0x7fe2521b02e4a435,0x7ff0000000000000,1
+np.float64,0x8001cd2969e39a54,0x8001cd2969e39a54,1
+np.float64,0x3fdfe90600bfd20c,0x3fe09fdcca10001c,1
+np.float64,0x7fd660c5762cc18a,0x7ff0000000000000,1
+np.float64,0xbfb11b23aa223648,0xbfb11e661949b377,1
+np.float64,0x800e025285fc04a5,0x800e025285fc04a5,1
+np.float64,0xffb180bb18230178,0xfff0000000000000,1
+np.float64,0xaaf590df55eb2,0xaaf590df55eb2,1
+np.float64,0xbfe8637d9df0c6fb,0xbfead1ba429462ec,1
+np.float64,0x7fd2577866a4aef0,0x7ff0000000000000,1
+np.float64,0xbfcfb2ab5a3f6558,0xbfd002ee87f272b9,1
+np.float64,0x7fdd64ae2f3ac95b,0x7ff0000000000000,1
+np.float64,0xffd1a502c9234a06,0xfff0000000000000,1
+np.float64,0x7fc4be4b60297c96,0x7ff0000000000000,1
+np.float64,0xbfb46b712a28d6e0,0xbfb470fca9919172,1
+np.float64,0xffdef913033df226,0xfff0000000000000,1
+np.float64,0x3fd94a3545b2946b,0x3fd9f40431ce9f9c,1
+np.float64,0x7fef88a0b6ff1140,0x7ff0000000000000,1
+np.float64,0xbfbcc81876399030,0xbfbcd7a0ab6cb388,1
+np.float64,0x800a4acfdd9495a0,0x800a4acfdd9495a0,1
+np.float64,0xffe270b3d5e4e167,0xfff0000000000000,1
+np.float64,0xbfd23f601e247ec0,0xbfd27eeca50a49eb,1
+np.float64,0x7fec6e796a78dcf2,0x7ff0000000000000,1
+np.float64,0x3fb85e0c9630bc19,0x3fb867791ccd6c72,1
+np.float64,0x7fe49fc424a93f87,0x7ff0000000000000,1
+np.float64,0xbfe75a99fbaeb534,0xbfe97ba37663de4c,1
+np.float64,0xffe85011b630a023,0xfff0000000000000,1
+np.float64,0xffe5962e492b2c5c,0xfff0000000000000,1
+np.float64,0x6f36ed4cde6de,0x6f36ed4cde6de,1
+np.float64,0x3feb72170af6e42e,0x3feeefbe6f1a2084,1
+np.float64,0x80014d8d60629b1c,0x80014d8d60629b1c,1
+np.float64,0xbfe0eb40d321d682,0xbfe1b7e31f252bf1,1
+np.float64,0x31fe305663fc7,0x31fe305663fc7,1
+np.float64,0x3fd2cd6381a59ac7,0x3fd312edc9868a4d,1
+np.float64,0xffcf0720793e0e40,0xfff0000000000000,1
+np.float64,0xbfeef1ef133de3de,0xbff1ffd5e1a3b648,1
+np.float64,0xbfd01c787aa038f0,0xbfd0482be3158a01,1
+np.float64,0x3fda3607c5b46c10,0x3fdaf3301e217301,1
+np.float64,0xffda9a9911b53532,0xfff0000000000000,1
+np.float64,0x3fc0b37c392166f8,0x3fc0bfa076f3c43e,1
+np.float64,0xbfe06591c760cb24,0xbfe11fad179ea12c,1
+np.float64,0x8006e369c20dc6d4,0x8006e369c20dc6d4,1
+np.float64,0x3fdf2912a8be5224,0x3fe033ff74b92f4d,1
+np.float64,0xffc0feb07821fd60,0xfff0000000000000,1
+np.float64,0xa4b938c949727,0xa4b938c949727,1
+np.float64,0x8008fe676571fccf,0x8008fe676571fccf,1
+np.float64,0xbfdda68459bb4d08,0xbfdeb8faab34fcbc,1
+np.float64,0xbfda18b419343168,0xbfdad360ca52ec7c,1
+np.float64,0x3febcbae35b7975c,0x3fef6cd51c9ebc15,1
+np.float64,0x3fbec615f63d8c30,0x3fbed912ba729926,1
+np.float64,0x7f99a831c8335063,0x7ff0000000000000,1
+np.float64,0x3fe663e8826cc7d1,0x3fe84330bd9aada8,1
+np.float64,0x70a9f9e6e1540,0x70a9f9e6e1540,1
+np.float64,0x8a13a5db14275,0x8a13a5db14275,1
+np.float64,0x7fc4330a3b286613,0x7ff0000000000000,1
+np.float64,0xbfe580c6136b018c,0xbfe728806cc7a99a,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0xffec079d5df80f3a,0xfff0000000000000,1
+np.float64,0x8e1173c31c22f,0x8e1173c31c22f,1
+np.float64,0x3fe088456d21108b,0x3fe14712ca414103,1
+np.float64,0x3fe1b76f73636edf,0x3fe2a2b658557112,1
+np.float64,0xbfd4a1dd162943ba,0xbfd4fdd45cae8fb8,1
+np.float64,0x7fd60b46c8ac168d,0x7ff0000000000000,1
+np.float64,0xffe36cc3b166d987,0xfff0000000000000,1
+np.float64,0x3fdc2ae0cfb855c0,0x3fdd15f026773151,1
+np.float64,0xbfc41aa203283544,0xbfc42fd1b145fdd5,1
+np.float64,0xffed90c55fbb218a,0xfff0000000000000,1
+np.float64,0x3fe67e3a9aecfc75,0x3fe86440db65b4f6,1
+np.float64,0x7fd12dbeaba25b7c,0x7ff0000000000000,1
+np.float64,0xbfe1267c0de24cf8,0xbfe1fbb611bdf1e9,1
+np.float64,0x22e5619645cad,0x22e5619645cad,1
+np.float64,0x7fe327c72ea64f8d,0x7ff0000000000000,1
+np.float64,0x7fd2c3f545a587ea,0x7ff0000000000000,1
+np.float64,0x7fc7b689372f6d11,0x7ff0000000000000,1
+np.float64,0xc5e140bd8bc28,0xc5e140bd8bc28,1
+np.float64,0x3fccb3627a3966c5,0x3fccf11b44fa4102,1
+np.float64,0xbfd2cf725c259ee4,0xbfd315138d0e5dca,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0xbfd3dfa8b627bf52,0xbfd431d17b235477,1
+np.float64,0xbfb82124e6304248,0xbfb82a4b6d9c2663,1
+np.float64,0x3fdcd590d9b9ab22,0x3fddd1d548806347,1
+np.float64,0x7fdee0cd1b3dc199,0x7ff0000000000000,1
+np.float64,0x8004ebfc60a9d7fa,0x8004ebfc60a9d7fa,1
+np.float64,0x3fe8eb818b71d704,0x3feb842679806108,1
+np.float64,0xffdd5e8fe63abd20,0xfff0000000000000,1
+np.float64,0xbfe3efcbd9e7df98,0xbfe54071436645ee,1
+np.float64,0x3fd5102557aa204b,0x3fd57203d31a05b8,1
+np.float64,0x3fe6318af7ec6316,0x3fe8041a177cbf96,1
+np.float64,0x3fdf3cecdabe79da,0x3fe03f2084ffbc78,1
+np.float64,0x7fe0ab6673a156cc,0x7ff0000000000000,1
+np.float64,0x800037d5c6c06fac,0x800037d5c6c06fac,1
+np.float64,0xffce58b86a3cb170,0xfff0000000000000,1
+np.float64,0xbfe3455d6ce68abb,0xbfe475034cecb2b8,1
+np.float64,0x991b663d3236d,0x991b663d3236d,1
+np.float64,0x3fda82d37c3505a7,0x3fdb46973da05c12,1
+np.float64,0x3f9b736fa036e6df,0x3f9b74471c234411,1
+np.float64,0x8001c96525e392cb,0x8001c96525e392cb,1
+np.float64,0x7ff0000000000000,0x7ff0000000000000,1
+np.float64,0xbfaf59122c3eb220,0xbfaf5e15f8b272b0,1
+np.float64,0xbf9aa7d288354fa0,0xbf9aa897d2a40cb5,1
+np.float64,0x8004a43428694869,0x8004a43428694869,1
+np.float64,0x7feead476dbd5a8e,0x7ff0000000000000,1
+np.float64,0xffca150f81342a20,0xfff0000000000000,1
+np.float64,0x80047ec3bc88fd88,0x80047ec3bc88fd88,1
+np.float64,0xbfee3e5b123c7cb6,0xbff179c8b8334278,1
+np.float64,0x3fd172359f22e46b,0x3fd1a9ba6b1420a1,1
+np.float64,0x3fe8e5e242f1cbc5,0x3feb7cbcaefc4d5c,1
+np.float64,0x8007fb059a6ff60c,0x8007fb059a6ff60c,1
+np.float64,0xe3899e71c7134,0xe3899e71c7134,1
+np.float64,0x7fe3b98326a77305,0x7ff0000000000000,1
+np.float64,0x7fec4e206cb89c40,0x7ff0000000000000,1
+np.float64,0xbfa3b012c4276020,0xbfa3b150c13b3cc5,1
+np.float64,0xffefffffffffffff,0xfff0000000000000,1
+np.float64,0xffe28a5b9aa514b6,0xfff0000000000000,1
+np.float64,0xbfd76a6cc2aed4da,0xbfd7f10f4d04e7f6,1
+np.float64,0xbc2b1c0178564,0xbc2b1c0178564,1
+np.float64,0x6d9d444adb3a9,0x6d9d444adb3a9,1
+np.float64,0xbfdcadd368395ba6,0xbfdda6037b5c429c,1
+np.float64,0x3fe11891fde23124,0x3fe1ebc1c204b14b,1
+np.float64,0x3fdd66c3eebacd88,0x3fde72526b5304c4,1
+np.float64,0xbfe79d85612f3b0b,0xbfe9d1673bd1f6d6,1
+np.float64,0x3fed60abdabac158,0x3ff0d7426b3800a2,1
+np.float64,0xbfb0ffa54021ff48,0xbfb102d81073a9f0,1
+np.float64,0xd2452af5a48a6,0xd2452af5a48a6,1
+np.float64,0xf4b835c1e971,0xf4b835c1e971,1
+np.float64,0x7e269cdafc4d4,0x7e269cdafc4d4,1
+np.float64,0x800097a21d812f45,0x800097a21d812f45,1
+np.float64,0x3fdfcc85e8bf990c,0x3fe08fcf770fd456,1
+np.float64,0xd8d53155b1aa6,0xd8d53155b1aa6,1
+np.float64,0x7fb8ed658831daca,0x7ff0000000000000,1
+np.float64,0xbfec865415b90ca8,0xbff03a4584d719f9,1
+np.float64,0xffd8cda62a319b4c,0xfff0000000000000,1
+np.float64,0x273598d84e6b4,0x273598d84e6b4,1
+np.float64,0x7fd566b5c32acd6b,0x7ff0000000000000,1
+np.float64,0xff61d9d48023b400,0xfff0000000000000,1
+np.float64,0xbfec5c3bf4f8b878,0xbff01c594243337c,1
+np.float64,0x7fd1be0561a37c0a,0x7ff0000000000000,1
+np.float64,0xffeaee3271b5dc64,0xfff0000000000000,1
+np.float64,0x800c0e1931b81c33,0x800c0e1931b81c33,1
+np.float64,0xbfad1171583a22e0,0xbfad1570e5c466d2,1
+np.float64,0x7fd783b0fe2f0761,0x7ff0000000000000,1
+np.float64,0x7fc39903e6273207,0x7ff0000000000000,1
+np.float64,0xffe00003c5600007,0xfff0000000000000,1
+np.float64,0x35a7b9c06b50,0x35a7b9c06b50,1
+np.float64,0x7fee441a22bc8833,0x7ff0000000000000,1
+np.float64,0xff6e47fbc03c9000,0xfff0000000000000,1
+np.float64,0xbfd3c3c9c8a78794,0xbfd41499b1912534,1
+np.float64,0x82c9c87f05939,0x82c9c87f05939,1
+np.float64,0xbfedeb0fe4fbd620,0xbff13c573ce9d3d0,1
+np.float64,0x2b79298656f26,0x2b79298656f26,1
+np.float64,0xbf5ee44f003dc800,0xbf5ee4503353c0ba,1
+np.float64,0xbfe1dd264e63ba4c,0xbfe2ce68116c7bf6,1
+np.float64,0x3fece10b7579c217,0x3ff07b21b11799c6,1
+np.float64,0x3fba47143a348e28,0x3fba52e601adf24c,1
+np.float64,0xffe9816e7a7302dc,0xfff0000000000000,1
+np.float64,0x8009a8047fd35009,0x8009a8047fd35009,1
+np.float64,0x800ac28e4e95851d,0x800ac28e4e95851d,1
+np.float64,0x80093facf4f27f5a,0x80093facf4f27f5a,1
+np.float64,0x3ff0000000000000,0x3ff2cd9fc44eb982,1
+np.float64,0x3fe76a9857eed530,0x3fe99018a5895a4f,1
+np.float64,0xbfd13c59a3a278b4,0xbfd171e133df0b16,1
+np.float64,0x7feb43bc83368778,0x7ff0000000000000,1
+np.float64,0xbfe2970c5fa52e18,0xbfe3a74a434c6efe,1
+np.float64,0xffd091c380212388,0xfff0000000000000,1
+np.float64,0x3febb3b9d2f76774,0x3fef4b4af2bd8580,1
+np.float64,0x7fec66787ef8ccf0,0x7ff0000000000000,1
+np.float64,0xbf935e185826bc40,0xbf935e640557a354,1
+np.float64,0x979df1552f3be,0x979df1552f3be,1
+np.float64,0x7fc096ee73212ddc,0x7ff0000000000000,1
+np.float64,0xbfe9de88faf3bd12,0xbfecc7d1ae691d1b,1
+np.float64,0x7fdc733f06b8e67d,0x7ff0000000000000,1
+np.float64,0xffd71be1a0ae37c4,0xfff0000000000000,1
+np.float64,0xb50dabd36a1b6,0xb50dabd36a1b6,1
+np.float64,0x7fce3d94d63c7b29,0x7ff0000000000000,1
+np.float64,0x7fbaf95e4435f2bc,0x7ff0000000000000,1
+np.float64,0x81a32a6f03466,0x81a32a6f03466,1
+np.float64,0xa99b5b4d5336c,0xa99b5b4d5336c,1
+np.float64,0x7f97c1eeb82f83dc,0x7ff0000000000000,1
+np.float64,0x3fe761636d6ec2c6,0x3fe98451160d2ffb,1
+np.float64,0xbfe3224ef5e6449e,0xbfe44b73eeadac52,1
+np.float64,0x7fde6feb0dbcdfd5,0x7ff0000000000000,1
+np.float64,0xbfee87f9ca7d0ff4,0xbff1b079e9d7f706,1
+np.float64,0x3fe46f4c9828de99,0x3fe5da2ab9609ea5,1
+np.float64,0xffb92fe882325fd0,0xfff0000000000000,1
+np.float64,0x80054bc63cea978d,0x80054bc63cea978d,1
+np.float64,0x3d988bea7b312,0x3d988bea7b312,1
+np.float64,0x3fe6468e1d6c8d1c,0x3fe81e64d37d39a8,1
+np.float64,0x3fd68eefc22d1de0,0x3fd7074264faeead,1
+np.float64,0xffb218a074243140,0xfff0000000000000,1
+np.float64,0x3fdbcb3b6cb79678,0x3fdcad011de40b7d,1
+np.float64,0x7fe3c161772782c2,0x7ff0000000000000,1
+np.float64,0x25575c904aaec,0x25575c904aaec,1
+np.float64,0x800fa43a8f5f4875,0x800fa43a8f5f4875,1
+np.float64,0x3fe41fc9e1e83f94,0x3fe57a25dd1a37f1,1
+np.float64,0x3fd895f4a7b12be9,0x3fd931e7b721a08a,1
+np.float64,0xce31469f9c629,0xce31469f9c629,1
+np.float64,0xffea0f55ca341eab,0xfff0000000000000,1
+np.float64,0xffe831c9ba306393,0xfff0000000000000,1
+np.float64,0x7fe2056f03a40add,0x7ff0000000000000,1
+np.float64,0x7fd6b075e02d60eb,0x7ff0000000000000,1
+np.float64,0x3fdfbef4273f7de8,0x3fe0882c1f59efc0,1
+np.float64,0x8005b9e094ab73c2,0x8005b9e094ab73c2,1
+np.float64,0x3fea881ac6351036,0x3fedad7a319b887c,1
+np.float64,0xbfe2c61c7ee58c39,0xbfe3de9a99d8a9c6,1
+np.float64,0x30b0d3786161b,0x30b0d3786161b,1
+np.float64,0x3fa51d56a02a3aad,0x3fa51edee2d2ecef,1
+np.float64,0x79745732f2e8c,0x79745732f2e8c,1
+np.float64,0x800d55b4907aab69,0x800d55b4907aab69,1
+np.float64,0xbfbe8fcf0a3d1fa0,0xbfbea267fbb5bfdf,1
+np.float64,0xbfd04e2756a09c4e,0xbfd07b74d079f9a2,1
+np.float64,0x3fc65170552ca2e1,0x3fc66e6eb00c82ed,1
+np.float64,0xbfb0674b8020ce98,0xbfb06a2b4771b64c,1
+np.float64,0x2059975840b34,0x2059975840b34,1
+np.float64,0x33d1385467a28,0x33d1385467a28,1
+np.float64,0x3fea41b74ff4836f,0x3fed4dc1a09e53cc,1
+np.float64,0xbfe8e08c9d71c119,0xbfeb75b4c59a6bec,1
+np.float64,0x7fdbbf14d6377e29,0x7ff0000000000000,1
+np.float64,0x3fcd8b71513b16e0,0x3fcdcec80174f9ad,1
+np.float64,0x5c50bc94b8a18,0x5c50bc94b8a18,1
+np.float64,0x969a18f52d343,0x969a18f52d343,1
+np.float64,0x3fd7ae44462f5c89,0x3fd8398bc34e395c,1
+np.float64,0xffdd0f8617ba1f0c,0xfff0000000000000,1
+np.float64,0xfff0000000000000,0xfff0000000000000,1
+np.float64,0xbfe2f9badb65f376,0xbfe41b771320ece8,1
+np.float64,0x3fd140bc7fa29,0x3fd140bc7fa29,1
+np.float64,0xbfe14523b5628a48,0xbfe21ee850972043,1
+np.float64,0x3feedd0336bdba06,0x3ff1f01afc1f3a06,1
+np.float64,0x800de423ad7bc848,0x800de423ad7bc848,1
+np.float64,0x4cef857c99df1,0x4cef857c99df1,1
+np.float64,0xbfea55e0e374abc2,0xbfed691e41d648dd,1
+np.float64,0x3fe70d7a18ae1af4,0x3fe91955a34d8094,1
+np.float64,0xbfc62fc3032c5f88,0xbfc64c3ec25decb8,1
+np.float64,0x3fc915abb5322b58,0x3fc93edac5cc73fe,1
+np.float64,0x69aaff66d3561,0x69aaff66d3561,1
+np.float64,0x5c6a90f2b8d53,0x5c6a90f2b8d53,1
+np.float64,0x3fefe30dc1bfc61c,0x3ff2b752257bdacd,1
+np.float64,0x3fef15db15fe2bb6,0x3ff21aea05601396,1
+np.float64,0xbfe353e5ac66a7cc,0xbfe48644e6553d1a,1
+np.float64,0x3fe6d30cffada61a,0x3fe8cf3e4c61ddac,1
+np.float64,0x7fb7857eb62f0afc,0x7ff0000000000000,1
+np.float64,0xbfdd9b53d23b36a8,0xbfdeac91a7af1340,1
+np.float64,0x3fd1456357228ac7,0x3fd17b3f7d39b27a,1
+np.float64,0x3fb57d10ae2afa21,0x3fb5838702b806f4,1
+np.float64,0x800c59c96c98b393,0x800c59c96c98b393,1
+np.float64,0x7fc1f2413823e481,0x7ff0000000000000,1
+np.float64,0xbfa3983624273070,0xbfa3996fa26c419a,1
+np.float64,0x7fb28874ae2510e8,0x7ff0000000000000,1
+np.float64,0x3fe826d02a304da0,0x3fea82bec50bc0b6,1
+np.float64,0x8008d6f0d3d1ade2,0x8008d6f0d3d1ade2,1
+np.float64,0xffe7c970ca2f92e1,0xfff0000000000000,1
+np.float64,0x7fcf42bcaa3e8578,0x7ff0000000000000,1
+np.float64,0x7fda1ab517343569,0x7ff0000000000000,1
+np.float64,0xbfe7926a65ef24d5,0xbfe9c323dd890d5b,1
+np.float64,0xbfcaf6282d35ec50,0xbfcb294f36a0a33d,1
+np.float64,0x800ca49df8d9493c,0x800ca49df8d9493c,1
+np.float64,0xffea18d26af431a4,0xfff0000000000000,1
+np.float64,0x3fb72f276e2e5e50,0x3fb7374539fd1221,1
+np.float64,0xffa6b613842d6c20,0xfff0000000000000,1
+np.float64,0xbfeb3c7263f678e5,0xbfeea54cdb60b54c,1
+np.float64,0x3fc976d2ba32eda5,0x3fc9a1e83a058de4,1
+np.float64,0xbfe4acd4b0e959aa,0xbfe624d5d4f9b9a6,1
+np.float64,0x7fca410a0f348213,0x7ff0000000000000,1
+np.float64,0xbfde368f77bc6d1e,0xbfdf5910c8c8bcb0,1
+np.float64,0xbfed7412937ae825,0xbff0e55afc428453,1
+np.float64,0xffef6b7b607ed6f6,0xfff0000000000000,1
+np.float64,0xbfb936f17e326de0,0xbfb941629a53c694,1
+np.float64,0x800dbb0c469b7619,0x800dbb0c469b7619,1
+np.float64,0x800f68b0581ed161,0x800f68b0581ed161,1
+np.float64,0x3fe25b2aad64b656,0x3fe361266fa9c5eb,1
+np.float64,0xbfb87e445a30fc88,0xbfb887d676910c3f,1
+np.float64,0x6e6ba9b6dcd76,0x6e6ba9b6dcd76,1
+np.float64,0x3fad27ce583a4f9d,0x3fad2bd72782ffdb,1
+np.float64,0xbfec0bc5d638178c,0xbfefc6e8c8f9095f,1
+np.float64,0x7fcba4a296374944,0x7ff0000000000000,1
+np.float64,0x8004ca237cc99448,0x8004ca237cc99448,1
+np.float64,0xffe85b8c3270b718,0xfff0000000000000,1
+np.float64,0x7fe7ee3eddafdc7d,0x7ff0000000000000,1
+np.float64,0xffd275967ca4eb2c,0xfff0000000000000,1
+np.float64,0xbfa95bc3a032b780,0xbfa95e6b288ecf43,1
+np.float64,0x3fc9e3214b33c643,0x3fca10667e7e7ff4,1
+np.float64,0x8001b89c5d837139,0x8001b89c5d837139,1
+np.float64,0xbf8807dfc0300fc0,0xbf880803e3badfbd,1
+np.float64,0x800aca94b895952a,0x800aca94b895952a,1
+np.float64,0x7fd79534a02f2a68,0x7ff0000000000000,1
+np.float64,0x3fe1b81179e37023,0x3fe2a371d8cc26f0,1
+np.float64,0x800699539d6d32a8,0x800699539d6d32a8,1
+np.float64,0xffe51dfbb3aa3bf7,0xfff0000000000000,1
+np.float64,0xbfdfb775abbf6eec,0xbfe083f48be2f98f,1
+np.float64,0x3fe87979d7b0f2f4,0x3feaee701d959079,1
+np.float64,0x3fd8e4e6a731c9cd,0x3fd986d29f25f982,1
+np.float64,0x3fe3dadaaf67b5b6,0x3fe527520fb02920,1
+np.float64,0x8003c2262bc7844d,0x8003c2262bc7844d,1
+np.float64,0x800c930add392616,0x800c930add392616,1
+np.float64,0xffb7a152a22f42a8,0xfff0000000000000,1
+np.float64,0x80028fe03dc51fc1,0x80028fe03dc51fc1,1
+np.float64,0xffe32ae60c6655cc,0xfff0000000000000,1
+np.float64,0x3fea3527e4746a50,0x3fed3cbbf47f18eb,1
+np.float64,0x800a53059e14a60c,0x800a53059e14a60c,1
+np.float64,0xbfd79e3b202f3c76,0xbfd828672381207b,1
+np.float64,0xffeed7e2eb7dafc5,0xfff0000000000000,1
+np.float64,0x3fec51ed6778a3db,0x3ff01509e34df61d,1
+np.float64,0xbfd84bc577b0978a,0xbfd8e23ec55e42e8,1
+np.float64,0x2483aff849077,0x2483aff849077,1
+np.float64,0x6f57883adeaf2,0x6f57883adeaf2,1
+np.float64,0xffd3fd74d927faea,0xfff0000000000000,1
+np.float64,0x7fca49ec773493d8,0x7ff0000000000000,1
+np.float64,0x7fd08fe2e8211fc5,0x7ff0000000000000,1
+np.float64,0x800852086db0a411,0x800852086db0a411,1
+np.float64,0x3fe5b1f2c9eb63e6,0x3fe7654f511bafc6,1
+np.float64,0xbfe01e2a58e03c54,0xbfe0cedb68f021e6,1
+np.float64,0x800988421d331085,0x800988421d331085,1
+np.float64,0xffd5038b18aa0716,0xfff0000000000000,1
+np.float64,0x8002c9264c85924d,0x8002c9264c85924d,1
+np.float64,0x3fd21ca302243946,0x3fd25ac653a71aab,1
+np.float64,0xbfea60d6e6f4c1ae,0xbfed78031d9dfa2b,1
+np.float64,0xffef97b6263f2f6b,0xfff0000000000000,1
+np.float64,0xbfd524732faa48e6,0xbfd5876ecc415dcc,1
+np.float64,0x660387e8cc072,0x660387e8cc072,1
+np.float64,0x7fcfc108a33f8210,0x7ff0000000000000,1
+np.float64,0x7febe5b0f877cb61,0x7ff0000000000000,1
+np.float64,0xbfa55fdfac2abfc0,0xbfa56176991851a8,1
+np.float64,0x25250f4c4a4a3,0x25250f4c4a4a3,1
+np.float64,0xffe2f6a2f2a5ed46,0xfff0000000000000,1
+np.float64,0x7fa754fcc02ea9f9,0x7ff0000000000000,1
+np.float64,0x3febd19dea37a33c,0x3fef75279f75d3b8,1
+np.float64,0xc5ed55218bdab,0xc5ed55218bdab,1
+np.float64,0x3fe72ff6b3ee5fed,0x3fe945388b979882,1
+np.float64,0xbfe16b854e22d70a,0xbfe24b10fc0dff14,1
+np.float64,0xffb22cbe10245980,0xfff0000000000000,1
+np.float64,0xa54246b54a849,0xa54246b54a849,1
+np.float64,0x3fe7f4cda76fe99c,0x3fea41edc74888b6,1
+np.float64,0x1,0x1,1
+np.float64,0x800d84acce9b095a,0x800d84acce9b095a,1
+np.float64,0xb0eef04761dde,0xb0eef04761dde,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xffecaf1dbb795e3b,0xfff0000000000000,1
+np.float64,0x90dbab8d21b76,0x90dbab8d21b76,1
+np.float64,0x3fe79584a9ef2b09,0x3fe9c71fa9e40eb5,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tan.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tan.csv
new file mode 100644
index 0000000..ac97624
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tan.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xfd97ece0,0xc11186e9,4
+np.float32,0x8013bb34,0x8013bb34,4
+np.float32,0x316389,0x316389,4
+np.float32,0x7f7fffff,0xbf1c9eca,4
+np.float32,0x3f7674bb,0x3fb7e450,4
+np.float32,0x80800000,0x80800000,4
+np.float32,0x7f5995e8,0xbf94106c,4
+np.float32,0x74527,0x74527,4
+np.float32,0x7f08caea,0xbeceddb6,4
+np.float32,0x2d49b2,0x2d49b2,4
+np.float32,0x3f74e5e4,0x3fb58695,4
+np.float32,0x3f3fcd51,0x3f6e1e81,4
+np.float32,0xbf4f3608,0xbf864d3d,4
+np.float32,0xbed974a0,0xbee78c70,4
+np.float32,0xff5f483c,0x3ecf3cb2,4
+np.float32,0x7f4532f4,0xc0b96f7b,4
+np.float32,0x3f0a4f7c,0x3f198cc0,4
+np.float32,0x210193,0x210193,4
+np.float32,0xfeebad7a,0xbf92eba8,4
+np.float32,0xfed29f74,0xc134cab6,4
+np.float32,0x803433a0,0x803433a0,4
+np.float32,0x64eb46,0x64eb46,4
+np.float32,0xbf54ef22,0xbf8c757b,4
+np.float32,0x3f3d5fdd,0x3f69a17b,4
+np.float32,0x80000001,0x80000001,4
+np.float32,0x800a837a,0x800a837a,4
+np.float32,0x6ff0be,0x6ff0be,4
+np.float32,0xfe8f1186,0x3f518820,4
+np.float32,0x804963e5,0x804963e5,4
+np.float32,0xfebaa59a,0x3fa1dbb0,4
+np.float32,0x637970,0x637970,4
+np.float32,0x3e722a6b,0x3e76c89a,4
+np.float32,0xff2b0478,0xbddccb5f,4
+np.float32,0xbf7bd85b,0xbfc06821,4
+np.float32,0x3ec33600,0x3ecd4126,4
+np.float32,0x3e0a43b9,0x3e0b1c69,4
+np.float32,0x7f7511b6,0xbe427083,4
+np.float32,0x3f28c114,0x3f465a73,4
+np.float32,0x3f179e1c,0x3f2c3e7c,4
+np.float32,0x7b2963,0x7b2963,4
+np.float32,0x3f423d06,0x3f72b442,4
+np.float32,0x3f5a24c6,0x3f925508,4
+np.float32,0xff18c834,0xbf79b5c8,4
+np.float32,0x3f401ece,0x3f6eb6ac,4
+np.float32,0x7b8a3013,0xbffab968,4
+np.float32,0x80091ff0,0x80091ff0,4
+np.float32,0x3f389c51,0x3f610b47,4
+np.float32,0x5ea174,0x5ea174,4
+np.float32,0x807a9eb2,0x807a9eb2,4
+np.float32,0x806ce61e,0x806ce61e,4
+np.float32,0xbe956acc,0xbe99cefc,4
+np.float32,0x7e60e247,0xbf5e64a5,4
+np.float32,0x7f398e24,0x404d12ed,4
+np.float32,0x3d9049f8,0x3d908735,4
+np.float32,0x7db17ffc,0xbf5b3d87,4
+np.float32,0xff453f78,0xc0239c9f,4
+np.float32,0x3f024aac,0x3f0ed802,4
+np.float32,0xbe781c30,0xbe7d1508,4
+np.float32,0x3f77962a,0x3fb9a28e,4
+np.float32,0xff7fffff,0x3f1c9eca,4
+np.float32,0x3f7152e3,0x3fb03f9d,4
+np.float32,0xff7cb167,0x3f9ce831,4
+np.float32,0x3e763e30,0x3e7b1a10,4
+np.float32,0xbf126527,0xbf24c253,4
+np.float32,0x803f6660,0x803f6660,4
+np.float32,0xbf79de38,0xbfbd38b1,4
+np.float32,0x8046c2f0,0x8046c2f0,4
+np.float32,0x6dc74e,0x6dc74e,4
+np.float32,0xbec9c45e,0xbed4e768,4
+np.float32,0x3f0eedb6,0x3f1fe610,4
+np.float32,0x7e031999,0xbcc13026,4
+np.float32,0x7efc2fd7,0x41e4b284,4
+np.float32,0xbeab7454,0xbeb22a1b,4
+np.float32,0x805ee67b,0x805ee67b,4
+np.float32,0x7f76e58e,0xc2436659,4
+np.float32,0xbe62b024,0xbe667718,4
+np.float32,0x3eea0808,0x3efbd182,4
+np.float32,0xbf7fd00c,0xbfc70719,4
+np.float32,0x7f27b640,0xbf0d97e0,4
+np.float32,0x3f1b58a4,0x3f31b6f4,4
+np.float32,0x252a9f,0x252a9f,4
+np.float32,0x7f65f95a,0xbead5de3,4
+np.float32,0xfc6ea780,0x42d15801,4
+np.float32,0x7eac4c52,0xc0682424,4
+np.float32,0xbe8a3f5a,0xbe8db54d,4
+np.float32,0xbf1644e2,0xbf2a4abd,4
+np.float32,0x3fc96a,0x3fc96a,4
+np.float32,0x7f38c0e4,0x3cc04af8,4
+np.float32,0x3f623d75,0x3f9c065d,4
+np.float32,0x3ee6a51a,0x3ef7a058,4
+np.float32,0x3dd11020,0x3dd1cacf,4
+np.float32,0xb6918,0xb6918,4
+np.float32,0xfdd7a540,0x3f22f081,4
+np.float32,0x80798563,0x80798563,4
+np.float32,0x3e9a8b7a,0x3e9f6a7e,4
+np.float32,0xbea515d4,0xbeab0df5,4
+np.float32,0xbea9b9f4,0xbeb03abe,4
+np.float32,0xbf11a5fa,0xbf23b478,4
+np.float32,0xfd6cadf0,0xbfa2a878,4
+np.float32,0xbf6edd07,0xbfacbb78,4
+np.float32,0xff5c5328,0x3e2d1552,4
+np.float32,0xbea2f788,0xbea8b3f5,4
+np.float32,0x802efaeb,0x802efaeb,4
+np.float32,0xff1c85e5,0x41f8560e,4
+np.float32,0x3f53b123,0x3f8b18e1,4
+np.float32,0xff798c4a,0x4092e66f,4
+np.float32,0x7f2e6fe7,0xbdcbd58f,4
+np.float32,0xfe8a8196,0x3fd7fc56,4
+np.float32,0x5e7ad4,0x5e7ad4,4
+np.float32,0xbf23a02d,0xbf3e4533,4
+np.float32,0x3f31c55c,0x3f5531bf,4
+np.float32,0x80331be3,0x80331be3,4
+np.float32,0x8056960a,0x8056960a,4
+np.float32,0xff1c06ae,0xbfd26992,4
+np.float32,0xbe0cc4b0,0xbe0da96c,4
+np.float32,0x7e925ad5,0xbf8dba54,4
+np.float32,0x2c8cec,0x2c8cec,4
+np.float32,0x8011951e,0x8011951e,4
+np.float32,0x3f2caf84,0x3f4cb89f,4
+np.float32,0xbd32c220,0xbd32df33,4
+np.float32,0xbec358d6,0xbecd6996,4
+np.float32,0x3f6e4930,0x3fabeb92,4
+np.float32,0xbf6a3afd,0xbfa65a3a,4
+np.float32,0x80067764,0x80067764,4
+np.float32,0x3d8df1,0x3d8df1,4
+np.float32,0x7ee51cf2,0x409e4061,4
+np.float32,0x435f5d,0x435f5d,4
+np.float32,0xbf5b17f7,0xbf936ebe,4
+np.float32,0x3ecaacb5,0x3ed5f81f,4
+np.float32,0x807b0aa5,0x807b0aa5,4
+np.float32,0x52b40b,0x52b40b,4
+np.float32,0x146a97,0x146a97,4
+np.float32,0x7f42b952,0xbfdcb413,4
+np.float32,0xbf1a1af2,0xbf2fe1bb,4
+np.float32,0x3f312034,0x3f541aa2,4
+np.float32,0x3f281d60,0x3f4554f9,4
+np.float32,0x50e451,0x50e451,4
+np.float32,0xbe45838c,0xbe480016,4
+np.float32,0xff7d0aeb,0x3eb0746e,4
+np.float32,0x7f32a489,0xbf96af6d,4
+np.float32,0xbf1b4e27,0xbf31a769,4
+np.float32,0x3f242936,0x3f3f1a44,4
+np.float32,0xbf7482ff,0xbfb4f201,4
+np.float32,0x4bda38,0x4bda38,4
+np.float32,0xbf022208,0xbf0ea2bb,4
+np.float32,0x7d08ca95,0xbe904602,4
+np.float32,0x7ed2f356,0xc02b55ad,4
+np.float32,0xbf131204,0xbf25b734,4
+np.float32,0xff3464b4,0x3fb23706,4
+np.float32,0x5a97cf,0x5a97cf,4
+np.float32,0xbe52db70,0xbe55e388,4
+np.float32,0x3f52934f,0x3f89e2aa,4
+np.float32,0xfeea866a,0x40a2b33f,4
+np.float32,0x80333925,0x80333925,4
+np.float32,0xfef5d13e,0xc00139ec,4
+np.float32,0x3f4750ab,0x3f7c87ad,4
+np.float32,0x3e41bfdd,0x3e44185a,4
+np.float32,0xbf5b0572,0xbf935935,4
+np.float32,0xbe93c9da,0xbe9808d8,4
+np.float32,0x7f501f33,0xc0f9973c,4
+np.float32,0x800af035,0x800af035,4
+np.float32,0x3f29faf8,0x3f4852a8,4
+np.float32,0xbe1e4c20,0xbe1f920c,4
+np.float32,0xbf7e8616,0xbfc4d79d,4
+np.float32,0x43ffbf,0x43ffbf,4
+np.float32,0x7f28e8a9,0xbfa1ac24,4
+np.float32,0xbf1f9f92,0xbf3820bc,4
+np.float32,0x3f07e004,0x3f1641c4,4
+np.float32,0x3ef7ea7f,0x3f06a64a,4
+np.float32,0x7e013101,0x3f6080e6,4
+np.float32,0x7f122a4f,0xbf0a796f,4
+np.float32,0xfe096960,0x3ed7273a,4
+np.float32,0x3f06abf1,0x3f14a4b2,4
+np.float32,0x3e50ded3,0x3e53d0f1,4
+np.float32,0x7f50b346,0x3eabb536,4
+np.float32,0xff5adb0f,0xbd441972,4
+np.float32,0xbecefe46,0xbedb0f66,4
+np.float32,0x7da70bd4,0xbec66273,4
+np.float32,0x169811,0x169811,4
+np.float32,0xbee4dfee,0xbef5721a,4
+np.float32,0x3efbeae3,0x3f0936e6,4
+np.float32,0x8031bd61,0x8031bd61,4
+np.float32,0x8048e443,0x8048e443,4
+np.float32,0xff209aa6,0xbeb364cb,4
+np.float32,0xff477499,0x3c1b0041,4
+np.float32,0x803fe929,0x803fe929,4
+np.float32,0x3f70158b,0x3fae7725,4
+np.float32,0x7f795723,0x3e8e850a,4
+np.float32,0x3cba99,0x3cba99,4
+np.float32,0x80588d2a,0x80588d2a,4
+np.float32,0x805d1f05,0x805d1f05,4
+np.float32,0xff4ac09a,0xbefe614d,4
+np.float32,0x804af084,0x804af084,4
+np.float32,0x7c64ae63,0xc1a8b563,4
+np.float32,0x8078d793,0x8078d793,4
+np.float32,0x7f3e2436,0xbf8bf9d3,4
+np.float32,0x7ccec1,0x7ccec1,4
+np.float32,0xbf6462c7,0xbf9eb830,4
+np.float32,0x3f1002ca,0x3f216843,4
+np.float32,0xfe878ca6,0x409e73a5,4
+np.float32,0x3bd841d9,0x3bd842a7,4
+np.float32,0x7d406f41,0xbd9dcfa3,4
+np.float32,0x7c6d6,0x7c6d6,4
+np.float32,0x3f4ef360,0x3f86074b,4
+np.float32,0x805f534a,0x805f534a,4
+np.float32,0x1,0x1,4
+np.float32,0x3f739ee2,0x3fb39db2,4
+np.float32,0x3d0c2352,0x3d0c3153,4
+np.float32,0xfe8a4f2c,0x3edd8add,4
+np.float32,0x3e52eaa0,0x3e55f362,4
+np.float32,0x7bde9758,0xbf5ba5cf,4
+np.float32,0xff422654,0xbf41e487,4
+np.float32,0x385e5b,0x385e5b,4
+np.float32,0x5751dd,0x5751dd,4
+np.float32,0xff6c671c,0xc03e2d6d,4
+np.float32,0x1458be,0x1458be,4
+np.float32,0x80153d4d,0x80153d4d,4
+np.float32,0x7efd2adb,0x3e25458f,4
+np.float32,0xbe161880,0xbe172e12,4
+np.float32,0x7ecea1aa,0x40a66d79,4
+np.float32,0xbf5b02a2,0xbf9355f0,4
+np.float32,0x15d9ab,0x15d9ab,4
+np.float32,0x2dc7c7,0x2dc7c7,4
+np.float32,0xfebbf81a,0x4193f6e6,4
+np.float32,0xfe8e3594,0xc00a6695,4
+np.float32,0x185aa8,0x185aa8,4
+np.float32,0x3daea156,0x3daf0e00,4
+np.float32,0x3e071688,0x3e07e08e,4
+np.float32,0x802db9e6,0x802db9e6,4
+np.float32,0x7f7be2c4,0x3f1363dd,4
+np.float32,0x7eba3f5e,0xc13eb497,4
+np.float32,0x3de04a00,0x3de130a9,4
+np.float32,0xbf1022bc,0xbf2194eb,4
+np.float32,0xbf5b547e,0xbf93b53b,4
+np.float32,0x3e867bd6,0x3e89aa10,4
+np.float32,0xbea5eb5c,0xbeabfb73,4
+np.float32,0x7f1efae9,0x3ffca038,4
+np.float32,0xff5d0344,0xbe55dbbb,4
+np.float32,0x805167e7,0x805167e7,4
+np.float32,0xbdb3a020,0xbdb41667,4
+np.float32,0xbedea6b4,0xbeedd5fd,4
+np.float32,0x8053b45c,0x8053b45c,4
+np.float32,0x7ed370e9,0x3d90eba5,4
+np.float32,0xbefcd7da,0xbf09cf91,4
+np.float32,0x78b9ac,0x78b9ac,4
+np.float32,0xbf2f6dc0,0xbf5141ef,4
+np.float32,0x802d3a7b,0x802d3a7b,4
+np.float32,0xfd45d120,0x3fec31cc,4
+np.float32,0xbf7e7020,0xbfc4b2af,4
+np.float32,0xf04da,0xf04da,4
+np.float32,0xbe9819d4,0xbe9cbd35,4
+np.float32,0x8075ab35,0x8075ab35,4
+np.float32,0xbf052fdc,0xbf12aa2c,4
+np.float32,0x3f1530d0,0x3f28bd9f,4
+np.float32,0x80791881,0x80791881,4
+np.float32,0x67f309,0x67f309,4
+np.float32,0x3f12f16a,0x3f2588f5,4
+np.float32,0x3ecdac47,0x3ed97ff8,4
+np.float32,0xbf297fb7,0xbf478c39,4
+np.float32,0x8069fa80,0x8069fa80,4
+np.float32,0x807f940e,0x807f940e,4
+np.float32,0xbf648dc8,0xbf9eeecb,4
+np.float32,0x3de873b0,0x3de9748d,4
+np.float32,0x3f1aa645,0x3f30af1f,4
+np.float32,0xff227a62,0x3d8283cc,4
+np.float32,0xbf37187d,0xbf5e5f4c,4
+np.float32,0x803b1b1f,0x803b1b1f,4
+np.float32,0x3f58142a,0x3f8ff8da,4
+np.float32,0x8004339e,0x8004339e,4
+np.float32,0xbf0f5654,0xbf2077a4,4
+np.float32,0x3f17e509,0x3f2ca598,4
+np.float32,0x3f800000,0x3fc75923,4
+np.float32,0xfdf79980,0x42f13047,4
+np.float32,0x7f111381,0x3f13c4c9,4
+np.float32,0xbea40c70,0xbea9e724,4
+np.float32,0x110520,0x110520,4
+np.float32,0x60490d,0x60490d,4
+np.float32,0x3f6703ec,0x3fa21951,4
+np.float32,0xbf098256,0xbf187652,4
+np.float32,0x658951,0x658951,4
+np.float32,0x3f53bf16,0x3f8b2818,4
+np.float32,0xff451811,0xc0026068,4
+np.float32,0x80777ee0,0x80777ee0,4
+np.float32,0x3e4fcc19,0x3e52b286,4
+np.float32,0x7f387ee0,0x3ce93eb6,4
+np.float32,0xff51181f,0xbfca3ee4,4
+np.float32,0xbf5655ae,0xbf8e0304,4
+np.float32,0xff2f1dcd,0x40025471,4
+np.float32,0x7f6e58e5,0xbe9930d5,4
+np.float32,0x7adf11,0x7adf11,4
+np.float32,0xbe9a2bc2,0xbe9f0185,4
+np.float32,0x8065d3a0,0x8065d3a0,4
+np.float32,0x3ed6e826,0x3ee47c45,4
+np.float32,0x80598ea0,0x80598ea0,4
+np.float32,0x7f10b90a,0x40437bd0,4
+np.float32,0x27b447,0x27b447,4
+np.float32,0x7ecd861c,0x3fce250f,4
+np.float32,0x0,0x0,4
+np.float32,0xbeba82d6,0xbec3394c,4
+np.float32,0xbf4958b0,0xbf8048ea,4
+np.float32,0x7c643e,0x7c643e,4
+np.float32,0x580770,0x580770,4
+np.float32,0x805bf54a,0x805bf54a,4
+np.float32,0x7f1f3cee,0xbe1a54d6,4
+np.float32,0xfefefdea,0x3fa84576,4
+np.float32,0x7f007b7a,0x3e8a6d25,4
+np.float32,0xbf177959,0xbf2c0919,4
+np.float32,0xbf30fda0,0xbf53e058,4
+np.float32,0x3f0576be,0x3f130861,4
+np.float32,0x3f49380e,0x3f80283a,4
+np.float32,0xebc56,0xebc56,4
+np.float32,0x654e3b,0x654e3b,4
+np.float32,0x14a4d8,0x14a4d8,4
+np.float32,0xff69b3cb,0xbf822a88,4
+np.float32,0xbe9b6c1c,0xbea06109,4
+np.float32,0xbefddd7e,0xbf0a787b,4
+np.float32,0x4c4ebb,0x4c4ebb,4
+np.float32,0x7d0a74,0x7d0a74,4
+np.float32,0xbebb5f80,0xbec43635,4
+np.float32,0x7ee79723,0xc1c7f3f3,4
+np.float32,0x7f2be4c7,0xbfa6c693,4
+np.float32,0x805bc7d5,0x805bc7d5,4
+np.float32,0x8042f12c,0x8042f12c,4
+np.float32,0x3ef91be8,0x3f07697b,4
+np.float32,0x3cf37ac0,0x3cf38d1c,4
+np.float32,0x800000,0x800000,4
+np.float32,0xbe1ebf4c,0xbe200806,4
+np.float32,0x7f380862,0xbeb512e8,4
+np.float32,0xbe320064,0xbe33d0fc,4
+np.float32,0xff300b0c,0xbfadb805,4
+np.float32,0x308a06,0x308a06,4
+np.float32,0xbf084f6e,0xbf16d7b6,4
+np.float32,0xff47cab6,0x3f892b65,4
+np.float32,0xbed99f4a,0xbee7bfd5,4
+np.float32,0xff7d74c0,0x3ee88c9a,4
+np.float32,0x3c3d23,0x3c3d23,4
+np.float32,0x8074bde8,0x8074bde8,4
+np.float32,0x80042164,0x80042164,4
+np.float32,0x3e97c92a,0x3e9c6500,4
+np.float32,0x3b80e0,0x3b80e0,4
+np.float32,0xbf16646a,0xbf2a783d,4
+np.float32,0x7f3b4cb1,0xc01339be,4
+np.float32,0xbf31f36e,0xbf557fd0,4
+np.float32,0x7f540618,0xbe5f6fc1,4
+np.float32,0x7eee47d0,0x40a27e94,4
+np.float32,0x7f12f389,0xbebed654,4
+np.float32,0x56cff5,0x56cff5,4
+np.float32,0x8056032b,0x8056032b,4
+np.float32,0x3ed34e40,0x3ee02e38,4
+np.float32,0x7d51a908,0xbf19a90e,4
+np.float32,0x80000000,0x80000000,4
+np.float32,0xfdf73fd0,0xbf0f8cad,4
+np.float32,0x7ee4fe6d,0xbf1ea7e4,4
+np.float32,0x1f15ba,0x1f15ba,4
+np.float32,0xd18c3,0xd18c3,4
+np.float32,0x80797705,0x80797705,4
+np.float32,0x7ef07091,0x3f2f3b9a,4
+np.float32,0x7f552f41,0x3faf608c,4
+np.float32,0x3f779977,0x3fb9a7ad,4
+np.float32,0xfe1a7a50,0xbdadc4d1,4
+np.float32,0xbf449cf0,0xbf7740db,4
+np.float32,0xbe44e620,0xbe475cad,4
+np.float32,0x3f63a098,0x3f9dc2b5,4
+np.float32,0xfed40a12,0x4164533a,4
+np.float32,0x7a2bbb,0x7a2bbb,4
+np.float32,0xff7f7b9e,0xbeee8740,4
+np.float32,0x7ee27f8b,0x4233f53b,4
+np.float32,0xbf044c06,0xbf117c28,4
+np.float32,0xbeffde54,0xbf0bc49f,4
+np.float32,0xfeaef2e8,0x3ff258fe,4
+np.float32,0x527451,0x527451,4
+np.float32,0xbcef8d00,0xbcef9e7c,4
+np.float32,0xbf0e20c0,0xbf1ec9b2,4
+np.float32,0x8024afda,0x8024afda,4
+np.float32,0x7ef6cb3e,0x422cad0b,4
+np.float32,0x3c120,0x3c120,4
+np.float32,0xbf125c8f,0xbf24b62c,4
+np.float32,0x7e770a93,0x402c9d86,4
+np.float32,0xbd30a4e0,0xbd30c0ee,4
+np.float32,0xbf4d3388,0xbf843530,4
+np.float32,0x3f529072,0x3f89df92,4
+np.float32,0xff0270b1,0xbf81be9a,4
+np.float32,0x5e07e7,0x5e07e7,4
+np.float32,0x7bec32,0x7bec32,4
+np.float32,0x7fc00000,0x7fc00000,4
+np.float32,0x3e3ba5e0,0x3e3dc6e9,4
+np.float32,0x3ecb62d4,0x3ed6ce2c,4
+np.float32,0x3eb3dde8,0x3ebba68f,4
+np.float32,0x8063f952,0x8063f952,4
+np.float32,0x7f204aeb,0x3e88614e,4
+np.float32,0xbeae1ddc,0xbeb5278e,4
+np.float32,0x6829e9,0x6829e9,4
+np.float32,0xbf361a99,0xbf5ca354,4
+np.float32,0xbf24fbe6,0xbf406326,4
+np.float32,0x3f329d41,0x3f56a061,4
+np.float32,0xfed6d666,0x3e8f71a5,4
+np.float32,0x337f92,0x337f92,4
+np.float32,0xbe1c4970,0xbe1d8305,4
+np.float32,0xbe6b7e18,0xbe6fbbde,4
+np.float32,0x3f2267b9,0x3f3c61da,4
+np.float32,0xbee1ee94,0xbef1d628,4
+np.float32,0x7ecffc1a,0x3f02987e,4
+np.float32,0xbe9b1306,0xbe9fff3b,4
+np.float32,0xbeffacae,0xbf0ba468,4
+np.float32,0x7f800000,0xffc00000,4
+np.float32,0xfefc9aa8,0xc19de2a3,4
+np.float32,0x7d7185bb,0xbf9090ec,4
+np.float32,0x7edfbafd,0x3fe9352f,4
+np.float32,0x4ef2ec,0x4ef2ec,4
+np.float32,0x7f4cab2e,0xbff4e5dd,4
+np.float32,0xff3b1788,0x3e3c22e9,4
+np.float32,0x4e15ee,0x4e15ee,4
+np.float32,0xbf5451e6,0xbf8bc8a7,4
+np.float32,0x3f7f6d2e,0x3fc65e8b,4
+np.float32,0xbf1d9184,0xbf35071b,4
+np.float32,0xbf3a81cf,0xbf646d9b,4
+np.float32,0xbe71acc4,0xbe7643ab,4
+np.float32,0x528b7d,0x528b7d,4
+np.float32,0x2cb1d0,0x2cb1d0,4
+np.float32,0x3f324bf8,0x3f56161a,4
+np.float32,0x80709a21,0x80709a21,4
+np.float32,0x4bc448,0x4bc448,4
+np.float32,0x3e8bd600,0x3e8f6b7a,4
+np.float32,0xbeb97d30,0xbec20dd6,4
+np.float32,0x2a5669,0x2a5669,4
+np.float32,0x805f2689,0x805f2689,4
+np.float32,0xfe569f50,0x3fc51952,4
+np.float32,0x1de44c,0x1de44c,4
+np.float32,0x3ec7036c,0x3ed1ae67,4
+np.float32,0x8052b8e5,0x8052b8e5,4
+np.float32,0xff740a6b,0x3f4981a8,4
+np.float32,0xfee9bb70,0xc05e23be,4
+np.float32,0xff4e12c9,0x4002b4ad,4
+np.float32,0x803de0c2,0x803de0c2,4
+np.float32,0xbf433a07,0xbf74966f,4
+np.float32,0x803e60ca,0x803e60ca,4
+np.float32,0xbf19ee98,0xbf2fa07a,4
+np.float32,0x92929,0x92929,4
+np.float32,0x7f709c27,0x4257ba2d,4
+np.float32,0x803167c6,0x803167c6,4
+np.float32,0xbf095ead,0xbf184607,4
+np.float32,0x617060,0x617060,4
+np.float32,0x2d85b3,0x2d85b3,4
+np.float32,0x53d20b,0x53d20b,4
+np.float32,0x3e046838,0x3e052666,4
+np.float32,0xbe7c5fdc,0xbe80ce4b,4
+np.float32,0x3d18d060,0x3d18e289,4
+np.float32,0x804dc031,0x804dc031,4
+np.float32,0x3f224166,0x3f3c26cd,4
+np.float32,0x7d683e3c,0xbea24f25,4
+np.float32,0xbf3a92aa,0xbf648be4,4
+np.float32,0x8072670b,0x8072670b,4
+np.float32,0xbe281aec,0xbe29a1bc,4
+np.float32,0x7f09d918,0xc0942490,4
+np.float32,0x7ca9fd07,0x4018b990,4
+np.float32,0x7d36ac5d,0x3cf57184,4
+np.float32,0x8039b62f,0x8039b62f,4
+np.float32,0x6cad7b,0x6cad7b,4
+np.float32,0x3c0fd9ab,0x3c0fda9d,4
+np.float32,0x80299883,0x80299883,4
+np.float32,0x3c2d0e3e,0x3c2d0fe4,4
+np.float32,0x8002cf62,0x8002cf62,4
+np.float32,0x801dde97,0x801dde97,4
+np.float32,0x80411856,0x80411856,4
+np.float32,0x6ebce8,0x6ebce8,4
+np.float32,0x7b7d1a,0x7b7d1a,4
+np.float32,0x8031d3de,0x8031d3de,4
+np.float32,0x8005c4ab,0x8005c4ab,4
+np.float32,0xbf7dd803,0xbfc3b3ef,4
+np.float32,0x8017ae60,0x8017ae60,4
+np.float32,0xfe9316ce,0xbfe0544a,4
+np.float32,0x3f136bfe,0x3f2636ff,4
+np.float32,0x3df87b80,0x3df9b57d,4
+np.float32,0xff44c356,0xbf11c7ad,4
+np.float32,0x4914ae,0x4914ae,4
+np.float32,0x80524c21,0x80524c21,4
+np.float32,0x805c7dc8,0x805c7dc8,4
+np.float32,0xfed3c0aa,0xbff0c0ab,4
+np.float32,0x7eb2bfbb,0xbf4600bc,4
+np.float32,0xfec8df84,0x3f5bd350,4
+np.float32,0x3e5431a4,0x3e5748c3,4
+np.float32,0xbee6a3a0,0xbef79e86,4
+np.float32,0xbf6cc9b2,0xbfa9d61a,4
+np.float32,0x3f132bd5,0x3f25dbd9,4
+np.float32,0x7e6d2e48,0x3f9d025b,4
+np.float32,0x3edf430c,0x3eee942d,4
+np.float32,0x3f0d1b8a,0x3f1d60e1,4
+np.float32,0xbdf2f688,0xbdf41bfb,4
+np.float32,0xbe47a284,0xbe4a33ff,4
+np.float32,0x3eaa9fbc,0x3eb13be7,4
+np.float32,0xfe98d45e,0x3eb84517,4
+np.float32,0x7efc23b3,0x3dcc1c99,4
+np.float32,0x3ca36242,0x3ca367ce,4
+np.float32,0x3f76a944,0x3fb834e3,4
+np.float32,0xbf45207c,0xbf783f9b,4
+np.float32,0x3e7c1220,0x3e80a4f8,4
+np.float32,0x3f018200,0x3f0dd14e,4
+np.float32,0x3f53cdde,0x3f8b3839,4
+np.float32,0xbdbacb58,0xbdbb5063,4
+np.float32,0x804af68d,0x804af68d,4
+np.float32,0x3e2c12fc,0x3e2db65b,4
+np.float32,0x3f039433,0x3f10895a,4
+np.float32,0x7ef5193d,0x3f4115f7,4
+np.float32,0x8030afbe,0x8030afbe,4
+np.float32,0x3f06fa2a,0x3f150d5d,4
+np.float32,0x3f124442,0x3f2493d2,4
+np.float32,0xbeb5b792,0xbebdc090,4
+np.float32,0xbedc90a4,0xbeeb4de9,4
+np.float32,0x3f3ff8,0x3f3ff8,4
+np.float32,0x3ee75bc5,0x3ef881e4,4
+np.float32,0xfe80e3de,0xbf5cd535,4
+np.float32,0xf52eb,0xf52eb,4
+np.float32,0x80660ee8,0x80660ee8,4
+np.float32,0x3e173a58,0x3e185648,4
+np.float32,0xfe49520c,0xbf728d7c,4
+np.float32,0xbecbb8ec,0xbed73373,4
+np.float32,0xbf027ae0,0xbf0f173e,4
+np.float32,0xbcab6740,0xbcab6da8,4
+np.float32,0xbf2a15e2,0xbf487e11,4
+np.float32,0x3b781b,0x3b781b,4
+np.float32,0x44f559,0x44f559,4
+np.float32,0xff6a0ca6,0xc174d7c3,4
+np.float32,0x6460ef,0x6460ef,4
+np.float32,0xfe58009c,0x3ee2bb30,4
+np.float32,0xfec3c038,0x3e30d617,4
+np.float32,0x7f0687c0,0xbf62c820,4
+np.float32,0xbf44655e,0xbf76d589,4
+np.float32,0xbf42968c,0xbf735e78,4
+np.float32,0x80385503,0x80385503,4
+np.float32,0xbea7e3a2,0xbeae2d59,4
+np.float32,0x3dd0b770,0x3dd17131,4
+np.float32,0xbf4bc185,0xbf82b907,4
+np.float32,0xfefd7d64,0xbee05650,4
+np.float32,0xfaac3c00,0xbff23bc9,4
+np.float32,0xbf562f0d,0xbf8dd7f4,4
+np.float32,0x7fa00000,0x7fe00000,4
+np.float32,0x3e01bdb8,0x3e027098,4
+np.float32,0x3e2868ab,0x3e29f19e,4
+np.float32,0xfec55f2e,0x3f39f304,4
+np.float32,0xed4e,0xed4e,4
+np.float32,0x3e2b7330,0x3e2d11fa,4
+np.float32,0x7f738542,0x40cbbe16,4
+np.float32,0x3f123521,0x3f247e71,4
+np.float32,0x73572c,0x73572c,4
+np.float32,0x804936c8,0x804936c8,4
+np.float32,0x803b80d8,0x803b80d8,4
+np.float32,0x7f566c57,0xbee2855a,4
+np.float32,0xff0e3bd8,0xbff0543f,4
+np.float32,0x7d2b2fe7,0xbf94ba4c,4
+np.float32,0xbf0da470,0xbf1e1dc2,4
+np.float32,0xbd276500,0xbd277ce0,4
+np.float32,0xfcd15dc0,0x403ccc2a,4
+np.float32,0x80071e59,0x80071e59,4
+np.float32,0xbe9b0c34,0xbe9ff7be,4
+np.float32,0x3f4f9069,0x3f86ac50,4
+np.float32,0x80042a95,0x80042a95,4
+np.float32,0x7de28e39,0x3bc9b7f4,4
+np.float32,0xbf641935,0xbf9e5af8,4
+np.float32,0x8034f068,0x8034f068,4
+np.float32,0xff33a3d2,0xbf408e75,4
+np.float32,0xbcc51540,0xbcc51efc,4
+np.float32,0xff6d1ddf,0x3ef58f0e,4
+np.float32,0xbf64dfc4,0xbf9f5725,4
+np.float32,0xff068a06,0x3eea8987,4
+np.float32,0xff01c0af,0x3f24cdfe,4
+np.float32,0x3f4def7e,0x3f84f802,4
+np.float32,0xbf1b4ae7,0xbf31a299,4
+np.float32,0x8077df2d,0x8077df2d,4
+np.float32,0x3f0155c5,0x3f0d9785,4
+np.float32,0x5a54b2,0x5a54b2,4
+np.float32,0x7f271f9e,0x3efb2ef3,4
+np.float32,0xbf0ff2ec,0xbf215217,4
+np.float32,0x7f500130,0xbf8a7fdd,4
+np.float32,0xfed9891c,0xbf65c872,4
+np.float32,0xfecbfaae,0x403bdbc2,4
+np.float32,0x3f3a5aba,0x3f642772,4
+np.float32,0x7ebc681e,0xbd8df059,4
+np.float32,0xfe05e400,0xbfe35d74,4
+np.float32,0xbf295ace,0xbf4750ea,4
+np.float32,0x7ea055b2,0x3f62d6be,4
+np.float32,0xbd00b520,0xbd00bff9,4
+np.float32,0xbf7677aa,0xbfb7e8cf,4
+np.float32,0x3e83f788,0x3e86f816,4
+np.float32,0x801f6710,0x801f6710,4
+np.float32,0x801133cc,0x801133cc,4
+np.float32,0x41da2a,0x41da2a,4
+np.float32,0xff1622fd,0x3f023650,4
+np.float32,0x806c7a72,0x806c7a72,4
+np.float32,0x3f10779c,0x3f220bb4,4
+np.float32,0xbf08cf94,0xbf17848d,4
+np.float32,0xbecb55b4,0xbed6bebd,4
+np.float32,0xbf0a1528,0xbf193d7b,4
+np.float32,0x806a16bd,0x806a16bd,4
+np.float32,0xc222a,0xc222a,4
+np.float32,0x3930de,0x3930de,4
+np.float32,0x3f5c3588,0x3f94bca2,4
+np.float32,0x1215ad,0x1215ad,4
+np.float32,0x3ed15030,0x3eddcf67,4
+np.float32,0x7da83b2e,0x3fce0d39,4
+np.float32,0x32b0a8,0x32b0a8,4
+np.float32,0x805aed6b,0x805aed6b,4
+np.float32,0x3ef8e02f,0x3f074346,4
+np.float32,0xbdeb6780,0xbdec7250,4
+np.float32,0x3f6e3cec,0x3fabda61,4
+np.float32,0xfefd467a,0x3ef7821a,4
+np.float32,0xfef090fe,0x3bb752a2,4
+np.float32,0x8019c538,0x8019c538,4
+np.float32,0x3e8cf284,0x3e909e81,4
+np.float32,0xbe6c6618,0xbe70b0a2,4
+np.float32,0x7f50a539,0x3f367be1,4
+np.float32,0x8019fe2f,0x8019fe2f,4
+np.float32,0x800c3f48,0x800c3f48,4
+np.float32,0xfd054cc0,0xc0f52802,4
+np.float32,0x3d0cca20,0x3d0cd853,4
+np.float32,0xbf4a7c44,0xbf816e74,4
+np.float32,0x3f46fc40,0x3f7be153,4
+np.float32,0x807c5849,0x807c5849,4
+np.float32,0xd7e41,0xd7e41,4
+np.float32,0x70589b,0x70589b,4
+np.float32,0x80357b95,0x80357b95,4
+np.float32,0x3de239f0,0x3de326a5,4
+np.float32,0x800b08e3,0x800b08e3,4
+np.float32,0x807ec946,0x807ec946,4
+np.float32,0x3e2e4b83,0x3e2fff76,4
+np.float32,0x3f198e0f,0x3f2f12a6,4
+np.float32,0xbecb1aca,0xbed67979,4
+np.float32,0x80134082,0x80134082,4
+np.float32,0x3f3a269f,0x3f63ca05,4
+np.float32,0x3f1381e4,0x3f265622,4
+np.float32,0xff293080,0xbf10be6f,4
+np.float32,0xff800000,0xffc00000,4
+np.float32,0x37d196,0x37d196,4
+np.float32,0x7e57eea7,0x3e7d8138,4
+np.float32,0x804b1dae,0x804b1dae,4
+np.float32,0x7d9508f9,0xc1075b35,4
+np.float32,0x3f7bf468,0x3fc095e0,4
+np.float32,0x55472c,0x55472c,4
+np.float32,0x3ecdcd86,0x3ed9a738,4
+np.float32,0x3ed9be0f,0x3ee7e4e9,4
+np.float32,0x3e7e0ddb,0x3e81b2fe,4
+np.float32,0x7ee6c1d3,0x3f850634,4
+np.float32,0x800f6fad,0x800f6fad,4
+np.float32,0xfefb3bd6,0xbff68ecc,4
+np.float32,0x8013d6e2,0x8013d6e2,4
+np.float32,0x3f3a2cb6,0x3f63d4ee,4
+np.float32,0xff383c84,0x3e7854bb,4
+np.float32,0x3f21946e,0x3f3b1cea,4
+np.float32,0xff322ea2,0x3fb22f31,4
+np.float32,0x8065a024,0x8065a024,4
+np.float32,0x7f395e30,0xbefe0de1,4
+np.float32,0x5b52db,0x5b52db,4
+np.float32,0x7f7caea7,0x3dac8ded,4
+np.float32,0xbf0431f8,0xbf1159b2,4
+np.float32,0x7f15b25b,0xc02a3833,4
+np.float32,0x80131abc,0x80131abc,4
+np.float32,0x7e829d81,0xbeb2e93d,4
+np.float32,0x3f2c64d7,0x3f4c3e4d,4
+np.float32,0x7f228d48,0xc1518c74,4
+np.float32,0xfc3c6f40,0xbf00d585,4
+np.float32,0x7f754f0f,0x3e2152f5,4
+np.float32,0xff65d32b,0xbe8bd56c,4
+np.float32,0xfea6b8c0,0x41608655,4
+np.float32,0x3f7d4b05,0x3fc2c96a,4
+np.float32,0x3f463230,0x3f7a54da,4
+np.float32,0x805117bb,0x805117bb,4
+np.float32,0xbf2ad4f7,0xbf49b30e,4
+np.float32,0x3eaa01ff,0x3eb08b56,4
+np.float32,0xff7a02bb,0x3f095f73,4
+np.float32,0x759176,0x759176,4
+np.float32,0x803c18d5,0x803c18d5,4
+np.float32,0xbe0722d8,0xbe07ed16,4
+np.float32,0x3f4b4a99,0x3f823fc6,4
+np.float32,0x3f7d0451,0x3fc25463,4
+np.float32,0xfee31e40,0xbfb41091,4
+np.float32,0xbf733d2c,0xbfb30cf1,4
+np.float32,0x7ed81015,0x417c380c,4
+np.float32,0x7daafc3e,0xbe2a37ed,4
+np.float32,0x3e44f82b,0x3e476f67,4
+np.float32,0x7c8d99,0x7c8d99,4
+np.float32,0x3f7aec5a,0x3fbee991,4
+np.float32,0xff09fd55,0x3e0709d3,4
+np.float32,0xff4ba4df,0x4173c01f,4
+np.float32,0x3f43d944,0x3f75c7bd,4
+np.float32,0xff6a9106,0x40a10eff,4
+np.float32,0x3bc8341c,0x3bc834bf,4
+np.float32,0x3eea82,0x3eea82,4
+np.float32,0xfea36a3c,0x435729b2,4
+np.float32,0x7dcc1fb0,0x3e330053,4
+np.float32,0x3f616ae6,0x3f9b01ae,4
+np.float32,0x8030963f,0x8030963f,4
+np.float32,0x10d1e2,0x10d1e2,4
+np.float32,0xfeb9a8a6,0x40e6daac,4
+np.float32,0xbe1aba00,0xbe1bea3a,4
+np.float32,0x3cb6b4ea,0x3cb6bcac,4
+np.float32,0x3d8b0b64,0x3d8b422f,4
+np.float32,0x7b6894,0x7b6894,4
+np.float32,0x3e89dcde,0x3e8d4b4b,4
+np.float32,0x3f12b952,0x3f253974,4
+np.float32,0x1c316c,0x1c316c,4
+np.float32,0x7e2da535,0x3f95fe6b,4
+np.float32,0x3ae9a494,0x3ae9a4a4,4
+np.float32,0xbc5f5500,0xbc5f588b,4
+np.float32,0x3e7850fc,0x3e7d4d0e,4
+np.float32,0xbf800000,0xbfc75923,4
+np.float32,0x3e652d69,0x3e691502,4
+np.float32,0xbf6bdd26,0xbfa89129,4
+np.float32,0x3f441cfc,0x3f764a02,4
+np.float32,0x7f5445ff,0xc0906191,4
+np.float32,0x807b2ee3,0x807b2ee3,4
+np.float32,0xbeb6cab8,0xbebef9c0,4
+np.float32,0xff737277,0xbf327011,4
+np.float32,0xfc832aa0,0x402fd52e,4
+np.float32,0xbf0c7538,0xbf1c7c0f,4
+np.float32,0x7e1301c7,0xbf0ee63e,4
+np.float64,0xbfe0ef7df7a1defc,0xbfe2b76a8d8aeb35,1
+np.float64,0x7fdd9c2eae3b385c,0xbfc00d6885485039,1
+np.float64,0xbfb484c710290990,0xbfb4900e0a527555,1
+np.float64,0x7fe73e5d6cee7cba,0x3fefbf70a56b60d3,1
+np.float64,0x800a110aa8d42216,0x800a110aa8d42216,1
+np.float64,0xffedd4f3f3bba9e7,0xbff076f8c4124919,1
+np.float64,0x800093407f812682,0x800093407f812682,1
+np.float64,0x800a23150e54462a,0x800a23150e54462a,1
+np.float64,0xbfb1076864220ed0,0xbfb10dd95a74b733,1
+np.float64,0x3fed1f8b37fa3f16,0x3ff496100985211f,1
+np.float64,0x3fdf762f84beec5f,0x3fe1223eb04a17e0,1
+np.float64,0x53fd4e0aa7faa,0x53fd4e0aa7faa,1
+np.float64,0x3fdbd283bdb7a507,0x3fddb7ec9856a546,1
+np.float64,0xbfe43f449d687e89,0xbfe77724a0d3072b,1
+np.float64,0x618b73bcc316f,0x618b73bcc316f,1
+np.float64,0x67759424ceeb3,0x67759424ceeb3,1
+np.float64,0xbfe4b6f7d9a96df0,0xbfe831371f3bd7a8,1
+np.float64,0x800a531b8b74a637,0x800a531b8b74a637,1
+np.float64,0xffeeffd5c37dffab,0x3fea140cbc2c3726,1
+np.float64,0x3fe648e2002c91c4,0x3feac1b8816f972a,1
+np.float64,0x800f16242a1e2c48,0x800f16242a1e2c48,1
+np.float64,0xffeeff8e1dbdff1b,0xc000b555f117dce7,1
+np.float64,0x3fdf1cf73fbe39f0,0x3fe0e9032401135b,1
+np.float64,0x7fe19c388b633870,0x3fd5271b69317d5b,1
+np.float64,0x918f226d231e5,0x918f226d231e5,1
+np.float64,0x4cc19ab499834,0x4cc19ab499834,1
+np.float64,0xbd3121d57a624,0xbd3121d57a624,1
+np.float64,0xbfd145d334a28ba6,0xbfd1b468866124d6,1
+np.float64,0x8bdbf41517b7f,0x8bdbf41517b7f,1
+np.float64,0x3fd1b8cb3ea37198,0x3fd2306b13396cae,1
+np.float64,0xbfd632a959ac6552,0xbfd7220fcfb5ef78,1
+np.float64,0x1cdaafc639b57,0x1cdaafc639b57,1
+np.float64,0x3febdcce1577b99c,0x3ff2fe076195a2bc,1
+np.float64,0x7fca6e945934dd28,0x3ff43040df7024e8,1
+np.float64,0x3fbe08e78e3c11cf,0x3fbe2c60e6b48f75,1
+np.float64,0x7fc1ed0d0523da19,0x3ff55f8dcad9440f,1
+np.float64,0xbfdc729b8cb8e538,0xbfde7b6e15dd60c4,1
+np.float64,0x3fd219404f243281,0x3fd298d7b3546531,1
+np.float64,0x3fe715c3f56e2b88,0x3fec255b5a59456e,1
+np.float64,0x7fe8b88e74b1711c,0x3ff60efd2c81d13d,1
+np.float64,0xa1d2b9fd43a57,0xa1d2b9fd43a57,1
+np.float64,0xffc1818223230304,0xbfb85c6c1e8018e7,1
+np.float64,0x3fde38ac8b3c7159,0x3fe0580c7e228576,1
+np.float64,0x8008faf7b491f5f0,0x8008faf7b491f5f0,1
+np.float64,0xffe7a1d751af43ae,0xbf7114cd7bbcd981,1
+np.float64,0xffec2db1b4b85b62,0xbff5cae759667f83,1
+np.float64,0x7fefce1ae27f9c35,0x3ff4b8b88f4876cf,1
+np.float64,0x7fd1ff56a523feac,0xbff342ce192f14dd,1
+np.float64,0x80026b3e3f84d67d,0x80026b3e3f84d67d,1
+np.float64,0xffedee5879bbdcb0,0xc02fae11508b2be0,1
+np.float64,0x8003c0dc822781ba,0x8003c0dc822781ba,1
+np.float64,0xffe38a79eca714f4,0xc008aa23b7a63980,1
+np.float64,0xbfda70411eb4e082,0xbfdc0d7e29c89010,1
+np.float64,0x800a5e34f574bc6a,0x800a5e34f574bc6a,1
+np.float64,0x3fc19fac6e233f59,0x3fc1bc66ac0d73d4,1
+np.float64,0x3a8a61ea7514d,0x3a8a61ea7514d,1
+np.float64,0x3fb57b536e2af6a0,0x3fb588451f72f44c,1
+np.float64,0x7fd68c6d082d18d9,0xc032ac926b665c9a,1
+np.float64,0xd5b87cfdab710,0xd5b87cfdab710,1
+np.float64,0xfe80b20bfd017,0xfe80b20bfd017,1
+np.float64,0x3fef8781e37f0f04,0x3ff8215fe2c1315a,1
+np.float64,0xffedddbb9c3bbb76,0x3fd959b82258a32a,1
+np.float64,0x3fc7d41f382fa83e,0x3fc81b94c3a091ba,1
+np.float64,0xffc3275dcf264ebc,0x3fb2b3d4985c6078,1
+np.float64,0x7fe34d2b7ba69a56,0x40001f3618e3c7c9,1
+np.float64,0x3fd64ae35fac95c7,0x3fd73d77e0b730f8,1
+np.float64,0x800e53bf6b3ca77f,0x800e53bf6b3ca77f,1
+np.float64,0xbfddf7c9083bef92,0xbfe02f392744d2d1,1
+np.float64,0x1c237cc038471,0x1c237cc038471,1
+np.float64,0x3fe4172beea82e58,0x3fe739b4bf16bc7e,1
+np.float64,0xfa950523f52a1,0xfa950523f52a1,1
+np.float64,0xffc839a2c5307344,0xbff70ff8a3c9247f,1
+np.float64,0x264f828c4c9f1,0x264f828c4c9f1,1
+np.float64,0x148a650a2914e,0x148a650a2914e,1
+np.float64,0x3fe8d255c0b1a4ac,0x3fef623c3ea8d6e3,1
+np.float64,0x800f4fbb28be9f76,0x800f4fbb28be9f76,1
+np.float64,0x7fdca57bcfb94af7,0x3ff51207563fb6cb,1
+np.float64,0x3fe4944107692882,0x3fe7fad593235364,1
+np.float64,0x800119b4f1a2336b,0x800119b4f1a2336b,1
+np.float64,0xbfe734075e6e680e,0xbfec5b35381069f2,1
+np.float64,0xffeb3c00db767801,0xbfbbd7d22df7b4b3,1
+np.float64,0xbfe95c658cb2b8cb,0xbff03ad5e0bc888a,1
+np.float64,0xffeefeb58fbdfd6a,0xbfd5c9264deb0e11,1
+np.float64,0x7fccc80fde39901f,0xc012c60f914f3ca2,1
+np.float64,0x3fe5da289c2bb451,0x3fea07ad00a0ca63,1
+np.float64,0x800e364b0a5c6c96,0x800e364b0a5c6c96,1
+np.float64,0x3fcf9ea7d23f3d50,0x3fd023b72e8c9dcf,1
+np.float64,0x800a475cfc948eba,0x800a475cfc948eba,1
+np.float64,0xffd4e0d757a9c1ae,0xbfa89d573352e011,1
+np.float64,0xbfd4dbec8229b7da,0xbfd5a165f12c7c40,1
+np.float64,0xffe307ab51260f56,0x3fe6b1639da58c3f,1
+np.float64,0xbfe6955a546d2ab4,0xbfeb44ae2183fee9,1
+np.float64,0xbfca1f18f5343e30,0xbfca7d804ccccdf4,1
+np.float64,0xe9f4dfebd3e9c,0xe9f4dfebd3e9c,1
+np.float64,0xfff0000000000000,0xfff8000000000000,1
+np.float64,0x8008e69c0fb1cd38,0x8008e69c0fb1cd38,1
+np.float64,0xbfead1ccf975a39a,0xbff1c84b3db8ca93,1
+np.float64,0x25a982424b531,0x25a982424b531,1
+np.float64,0x8010000000000000,0x8010000000000000,1
+np.float64,0x80056204ea0ac40b,0x80056204ea0ac40b,1
+np.float64,0x800d1442d07a2886,0x800d1442d07a2886,1
+np.float64,0xbfaef3dadc3de7b0,0xbfaefd85ae6205f0,1
+np.float64,0x7fe969ce4b32d39c,0xbff3c4364fc6778f,1
+np.float64,0x7fe418bac0a83175,0x402167d16b1efe0b,1
+np.float64,0x3fd7c82a25af9054,0x3fd8f0c701315672,1
+np.float64,0x80013782a7826f06,0x80013782a7826f06,1
+np.float64,0x7fc031c7ee20638f,0x400747ab705e6904,1
+np.float64,0x3fe8cf327ff19e65,0x3fef5c14f8aafa89,1
+np.float64,0xbfe331a416a66348,0xbfe5e2290a098dd4,1
+np.float64,0x800607b2116c0f65,0x800607b2116c0f65,1
+np.float64,0x7fb40448f0280891,0xbfd43d4f0ffa1d64,1
+np.float64,0x7fefffffffffffff,0xbf74530cfe729484,1
+np.float64,0x3fe39b5444a736a9,0x3fe67eaa0b6acf27,1
+np.float64,0x3fee4733c4fc8e68,0x3ff631eabeef9696,1
+np.float64,0xbfec840f3b79081e,0xbff3cc8563ab2e74,1
+np.float64,0xbfc8f6854c31ed0c,0xbfc948caacb3bba0,1
+np.float64,0xffbcf754a639eea8,0xbfc88d17cad3992b,1
+np.float64,0x8000bd3163417a64,0x8000bd3163417a64,1
+np.float64,0x3fe766d0eaeecda2,0x3fecb660882f7024,1
+np.float64,0xb6cc30156d986,0xb6cc30156d986,1
+np.float64,0xffc0161f9f202c40,0x3fe19bdefe5cf8b1,1
+np.float64,0xffe1e462caa3c8c5,0x3fe392c47feea17b,1
+np.float64,0x30a36a566146e,0x30a36a566146e,1
+np.float64,0x3fa996f580332deb,0x3fa99c6b4f2abebe,1
+np.float64,0x3fba71716e34e2e0,0x3fba899f35edba1d,1
+np.float64,0xbfe8f7e5e971efcc,0xbfefac431a0e3d55,1
+np.float64,0xf48f1803e91e3,0xf48f1803e91e3,1
+np.float64,0x7fe3edc0a127db80,0xc03d1a579a5d74a8,1
+np.float64,0xffeba82056375040,0x3fdfd701308700db,1
+np.float64,0xbfeb5a924cf6b524,0xbff2640de7cd107f,1
+np.float64,0xfa4cd1a9f499a,0xfa4cd1a9f499a,1
+np.float64,0x800de1be7b9bc37d,0x800de1be7b9bc37d,1
+np.float64,0xffd44e56ad289cae,0x3fdf4b8085db9b67,1
+np.float64,0xbfe4fb3aea69f676,0xbfe89d2cc46fcc50,1
+np.float64,0xbfe596495d6b2c92,0xbfe997a589a1f632,1
+np.float64,0x6f55a2b8deab5,0x6f55a2b8deab5,1
+np.float64,0x7fe72dc4712e5b88,0x4039c4586b28c2bc,1
+np.float64,0x89348bd712692,0x89348bd712692,1
+np.float64,0xffe062156120c42a,0x4005f0580973bc77,1
+np.float64,0xbfeabc714d7578e2,0xbff1b07e2fa57dc0,1
+np.float64,0x8003a56b3e874ad7,0x8003a56b3e874ad7,1
+np.float64,0x800eeadfb85dd5c0,0x800eeadfb85dd5c0,1
+np.float64,0x46d77a4c8daf0,0x46d77a4c8daf0,1
+np.float64,0x8000c06e7dc180de,0x8000c06e7dc180de,1
+np.float64,0x3fe428d211e851a4,0x3fe754b1c00a89bc,1
+np.float64,0xc5be11818b7c2,0xc5be11818b7c2,1
+np.float64,0x7fefc244893f8488,0x401133dc54f52de5,1
+np.float64,0x3fde30eee93c61de,0x3fe0532b827543a6,1
+np.float64,0xbfd447f48b288fea,0xbfd4fd0654f90718,1
+np.float64,0xbfde98dc7b3d31b8,0xbfe094df12f84a06,1
+np.float64,0x3fed2c1a1dfa5834,0x3ff4a6c4f3470a65,1
+np.float64,0xbfe992165073242d,0xbff071ab039c9177,1
+np.float64,0x3fd0145d1b2028ba,0x3fd06d3867b703dc,1
+np.float64,0x3fe179457362f28b,0x3fe3722f1d045fda,1
+np.float64,0x800e28964fbc512d,0x800e28964fbc512d,1
+np.float64,0x8004a5d785294bb0,0x8004a5d785294bb0,1
+np.float64,0xbfd652f2272ca5e4,0xbfd7469713125120,1
+np.float64,0x7fe61f49036c3e91,0xbf9b6ccdf2d87e70,1
+np.float64,0xffb7d47dd02fa8f8,0xc004449a82320b13,1
+np.float64,0x3feb82f996b705f3,0x3ff29336c738a4c5,1
+np.float64,0x3fbb7fceea36ffa0,0x3fbb9b02c8ad7f93,1
+np.float64,0x80004519fb208a35,0x80004519fb208a35,1
+np.float64,0xbfe0539114e0a722,0xbfe1e86dc5aa039c,1
+np.float64,0x0,0x0,1
+np.float64,0xbfe99d1125f33a22,0xbff07cf8ec04300f,1
+np.float64,0xffd4fbeecc29f7de,0x3ffab76775a8455f,1
+np.float64,0xbfbf1c618e3e38c0,0xbfbf43d2764a8333,1
+np.float64,0x800cae02a9d95c06,0x800cae02a9d95c06,1
+np.float64,0x3febc47d3bf788fa,0x3ff2e0d7cf8ef509,1
+np.float64,0x3fef838f767f071f,0x3ff81aeac309bca0,1
+np.float64,0xbfd5e70716abce0e,0xbfd6ccb033ef7a35,1
+np.float64,0x3f9116fa60222df5,0x3f9117625f008e0b,1
+np.float64,0xffe02b1e5f20563c,0xbfe6b2ec293520b7,1
+np.float64,0xbf9b5aec3036b5e0,0xbf9b5c96c4c7f951,1
+np.float64,0xfdb0169bfb603,0xfdb0169bfb603,1
+np.float64,0x7fcdd1d51c3ba3a9,0x401f0e12fa0b7570,1
+np.float64,0xbfd088103fa11020,0xbfd0e8c4a333ffb2,1
+np.float64,0x3fe22df82ee45bf0,0x3fe46d03a7c14de2,1
+np.float64,0xbfd57b0c28aaf618,0xbfd65349a6191de5,1
+np.float64,0x3fe0a42f50a1485f,0x3fe252e26775d9a4,1
+np.float64,0x800fab4e363f569c,0x800fab4e363f569c,1
+np.float64,0xffe9f0ed63f3e1da,0xbfe278c341b171d5,1
+np.float64,0x7fe26c244664d848,0xbfb325269dad1996,1
+np.float64,0xffe830410bf06081,0xc00181a39f606e96,1
+np.float64,0x800c548a0c78a914,0x800c548a0c78a914,1
+np.float64,0x800f94761ebf28ec,0x800f94761ebf28ec,1
+np.float64,0x3fe5984845eb3091,0x3fe99aeb653c666d,1
+np.float64,0x7fe93e5bf8f27cb7,0xc010d159fa27396a,1
+np.float64,0xffefffffffffffff,0x3f74530cfe729484,1
+np.float64,0x4c83f1269907f,0x4c83f1269907f,1
+np.float64,0x3fde0065a8bc00cc,0x3fe034a1cdf026d4,1
+np.float64,0x800743810d6e8703,0x800743810d6e8703,1
+np.float64,0x80040662d5280cc6,0x80040662d5280cc6,1
+np.float64,0x3fed20b2c5ba4166,0x3ff497988519d7aa,1
+np.float64,0xffe8fa15e5f1f42b,0x3fff82ca76d797b4,1
+np.float64,0xbb72e22f76e5d,0xbb72e22f76e5d,1
+np.float64,0x7fc18ffa7c231ff4,0xbff4b8b4c3315026,1
+np.float64,0xbfe8d1ac44f1a358,0xbfef60efc4f821e3,1
+np.float64,0x3fd38c1fe8271840,0x3fd42dc37ff7262b,1
+np.float64,0xe577bee5caef8,0xe577bee5caef8,1
+np.float64,0xbff0000000000000,0xbff8eb245cbee3a6,1
+np.float64,0xffcb3a9dd436753c,0x3fcd1a3aff1c3fc7,1
+np.float64,0x7fe44bf2172897e3,0x3ff60bfe82a379f4,1
+np.float64,0x8009203823924071,0x8009203823924071,1
+np.float64,0x7fef8e0abc7f1c14,0x3fe90e4962d47ce5,1
+np.float64,0xffda50004434a000,0x3fb50dee03e1418b,1
+np.float64,0x7fe2ff276ea5fe4e,0xc0355b7d2a0a8d9d,1
+np.float64,0x3fd0711ba5a0e238,0x3fd0d03823d2d259,1
+np.float64,0xe7625b03cec4c,0xe7625b03cec4c,1
+np.float64,0xbfd492c8d7a92592,0xbfd55006cde8d300,1
+np.float64,0x8001fee99f23fdd4,0x8001fee99f23fdd4,1
+np.float64,0x7ff4000000000000,0x7ffc000000000000,1
+np.float64,0xfa15df97f42bc,0xfa15df97f42bc,1
+np.float64,0xbfec3fdca9787fb9,0xbff377164b13c7a9,1
+np.float64,0xbcec10e579d82,0xbcec10e579d82,1
+np.float64,0xbfc3b4e2132769c4,0xbfc3dd1fcc7150a6,1
+np.float64,0x80045b149ee8b62a,0x80045b149ee8b62a,1
+np.float64,0xffe044554c2088aa,0xbff741436d558785,1
+np.float64,0xffcc65f09f38cbe0,0xc0172b4adc2d317d,1
+np.float64,0xf68b2d3bed166,0xf68b2d3bed166,1
+np.float64,0x7fc7f44c572fe898,0x3fec69f3b1eca790,1
+np.float64,0x3fac51f61438a3ec,0x3fac595d34156002,1
+np.float64,0xbfeaa9f256f553e5,0xbff19bfdf5984326,1
+np.float64,0x800e4742149c8e84,0x800e4742149c8e84,1
+np.float64,0xbfc493df132927c0,0xbfc4c1ba4268ead9,1
+np.float64,0xbfbf0c56383e18b0,0xbfbf3389fcf50c72,1
+np.float64,0xbf978a0e082f1420,0xbf978b1dd1da3d3c,1
+np.float64,0xbfe04375356086ea,0xbfe1d34c57314dd1,1
+np.float64,0x3feaeeb29b75dd65,0x3ff1e8b772374979,1
+np.float64,0xbfe15e42c3a2bc86,0xbfe34d45d56c5c15,1
+np.float64,0x3fe507429a6a0e85,0x3fe8b058176b3225,1
+np.float64,0x3feee2b26c3dc565,0x3ff71b73203de921,1
+np.float64,0xbfd496577aa92cae,0xbfd553fa7fe15a5f,1
+np.float64,0x7fe2c10953e58212,0x3fc8ead6a0d14bbf,1
+np.float64,0x800035b77aa06b70,0x800035b77aa06b70,1
+np.float64,0x2329201e46525,0x2329201e46525,1
+np.float64,0xbfe6225c9a6c44b9,0xbfea80861590fa02,1
+np.float64,0xbfd6925030ad24a0,0xbfd78e70b1c2215d,1
+np.float64,0xbfd82225c4b0444c,0xbfd958a60f845b39,1
+np.float64,0xbb03d8a17609,0xbb03d8a17609,1
+np.float64,0x7fc33967b12672ce,0x40001e00c9af4002,1
+np.float64,0xff9373c6d026e780,0xbff308654a459d3d,1
+np.float64,0x3feab1f9c5f563f4,0x3ff1a4e0fd2f093d,1
+np.float64,0xbf993ef768327de0,0xbf994046b64e308b,1
+np.float64,0xffb87382fc30e708,0xbfde0accb83c891b,1
+np.float64,0x800bb3a118176743,0x800bb3a118176743,1
+np.float64,0x800c810250d90205,0x800c810250d90205,1
+np.float64,0xbfd2c4eb9ba589d8,0xbfd3539508b4a4a8,1
+np.float64,0xbee1f5437dc3f,0xbee1f5437dc3f,1
+np.float64,0x3fc07aeab520f5d8,0x3fc0926272f9d8e2,1
+np.float64,0xbfe23747a3246e90,0xbfe47a20a6e98687,1
+np.float64,0x3fde1296debc252c,0x3fe0401143ff6b5c,1
+np.float64,0xbfcec8c2f73d9184,0xbfcf644e25ed3b74,1
+np.float64,0xff9314f2c82629e0,0x40559a0f9099dfd1,1
+np.float64,0xbfe27487afa4e910,0xbfe4d0e01200bde6,1
+np.float64,0xffb3d6637627acc8,0x3fe326d4b1e1834f,1
+np.float64,0xffe6f84d642df09a,0x3fc73fa9f57c3acb,1
+np.float64,0xffe67cf76fecf9ee,0xc01cf48c97937ef9,1
+np.float64,0x7fdc73fc12b8e7f7,0xbfcfcecde9331104,1
+np.float64,0xffdcf8789239f0f2,0x3fe345e3b8e28776,1
+np.float64,0x800a70af5314e15f,0x800a70af5314e15f,1
+np.float64,0xffc862300730c460,0x3fc4e9ea813beca7,1
+np.float64,0xbfcc6961bd38d2c4,0xbfcce33bfa6c6bd1,1
+np.float64,0xbfc9b76bbf336ed8,0xbfca117456ac37e5,1
+np.float64,0x7fb86e829430dd04,0x400a5bd7a18e302d,1
+np.float64,0x7fb9813ef833027d,0xbfe5a6494f143625,1
+np.float64,0x8005085e2c2a10bd,0x8005085e2c2a10bd,1
+np.float64,0xffe5af099d6b5e12,0x40369bbe31e03e06,1
+np.float64,0xffde03b1fd3c0764,0x3ff061120aa1f52a,1
+np.float64,0x7fa4eb6cdc29d6d9,0x3fe9defbe9010322,1
+np.float64,0x800803f4b11007ea,0x800803f4b11007ea,1
+np.float64,0x7febd50f6df7aa1e,0xbffcf540ccf220dd,1
+np.float64,0x7fed454f08fa8a9d,0xbffc2a8b81079403,1
+np.float64,0xbfed7e8c69bafd19,0xbff5161e51ba6634,1
+np.float64,0xffef92e78eff25ce,0xbffefeecddae0ad3,1
+np.float64,0x7fe5b9b413ab7367,0xbfc681ba29704176,1
+np.float64,0x29284e805252,0x29284e805252,1
+np.float64,0xffed3955bcfa72ab,0xbfc695acb5f468de,1
+np.float64,0x3fe464ee1ca8c9dc,0x3fe7b140ce50fdca,1
+np.float64,0xffe522ae4bea455c,0x3feb957c146e66ef,1
+np.float64,0x8000000000000000,0x8000000000000000,1
+np.float64,0x3fd0c353a2a186a8,0x3fd1283aaa43a411,1
+np.float64,0x3fdb30a749b6614f,0x3fdcf40df006ed10,1
+np.float64,0x800109213cc21243,0x800109213cc21243,1
+np.float64,0xbfe72aa0c5ee5542,0xbfec4a713f513bc5,1
+np.float64,0x800865344ad0ca69,0x800865344ad0ca69,1
+np.float64,0x7feb7df60eb6fbeb,0x3fb1df06a67aa22f,1
+np.float64,0x3fe83a5dd93074bc,0x3fee3d63cda72636,1
+np.float64,0xbfde70e548bce1ca,0xbfe07b8e19c9dac6,1
+np.float64,0xbfeea38d537d471b,0xbff6bb18c230c0be,1
+np.float64,0x3fefeebbc47fdd78,0x3ff8cdaa53b7c7b4,1
+np.float64,0x7fe6512e20eca25b,0xbff623cee44a22b5,1
+np.float64,0xf8fa5ca3f1f4c,0xf8fa5ca3f1f4c,1
+np.float64,0x7fd12d00ed225a01,0xbfe90d518ea61faf,1
+np.float64,0x80027db43504fb69,0x80027db43504fb69,1
+np.float64,0xffc10a01aa221404,0x3fcc2065b3d0157b,1
+np.float64,0xbfef8286e87f050e,0xbff8193a54449b59,1
+np.float64,0xbfc73178092e62f0,0xbfc7735072ba4593,1
+np.float64,0x3fc859d70630b3ae,0x3fc8a626522af1c0,1
+np.float64,0x3fe4654c4268ca99,0x3fe7b1d2913eda1a,1
+np.float64,0xbfce93cd843d279c,0xbfcf2c2ef16a0957,1
+np.float64,0xffbcaa16d4395430,0xbfd511ced032d784,1
+np.float64,0xbfe91f980e723f30,0xbfeffb39cf8c7746,1
+np.float64,0x800556fb6f0aadf8,0x800556fb6f0aadf8,1
+np.float64,0xffd009cde520139c,0x3fe4fa83b1e93d28,1
+np.float64,0x7febc0675e3780ce,0x3feb53930c004dae,1
+np.float64,0xbfe7f975bdeff2ec,0xbfedc36e6729b010,1
+np.float64,0x45aff57c8b5ff,0x45aff57c8b5ff,1
+np.float64,0xbfec7ebd0138fd7a,0xbff3c5cab680aae0,1
+np.float64,0x8009448003b28900,0x8009448003b28900,1
+np.float64,0x3fca4b992d349732,0x3fcaabebcc86aa9c,1
+np.float64,0x3fca069161340d20,0x3fca63ecc742ff3a,1
+np.float64,0x80063bc80bec7791,0x80063bc80bec7791,1
+np.float64,0xbfe1764bffe2ec98,0xbfe36e1cb30cec94,1
+np.float64,0xffd0dba72f21b74e,0x3fb1834964d57ef6,1
+np.float64,0xbfe31848fc263092,0xbfe5bd066445cbc3,1
+np.float64,0xbfd1fb227323f644,0xbfd278334e27f02d,1
+np.float64,0xffdc59069fb8b20e,0xbfdfc363f559ea2c,1
+np.float64,0x3fdea52a52bd4a55,0x3fe09cada4e5344c,1
+np.float64,0x3f715e55a022bd00,0x3f715e5c72a2809e,1
+np.float64,0x1d1ac6023a35a,0x1d1ac6023a35a,1
+np.float64,0x7feacc71627598e2,0x400486b82121da19,1
+np.float64,0xa0287fa340510,0xa0287fa340510,1
+np.float64,0xffe352c5abe6a58b,0xc002623346060543,1
+np.float64,0x7fed577a23baaef3,0x3fda19bc8fa3b21f,1
+np.float64,0x3fde8dd5263d1baa,0x3fe08de0fedf7029,1
+np.float64,0x3feddd3be2bbba78,0x3ff599b2f3e018cc,1
+np.float64,0xc7a009f58f401,0xc7a009f58f401,1
+np.float64,0xbfef03d5a4fe07ab,0xbff74ee08681f47b,1
+np.float64,0x7fe2cf60eea59ec1,0x3fe905fb44f8cc60,1
+np.float64,0xbfe498fcab6931fa,0xbfe8023a6ff8becf,1
+np.float64,0xbfef7142acfee285,0xbff7fd196133a595,1
+np.float64,0xd214ffdba42a0,0xd214ffdba42a0,1
+np.float64,0x8006de7d78cdbcfc,0x8006de7d78cdbcfc,1
+np.float64,0xb247d34f648fb,0xb247d34f648fb,1
+np.float64,0xbfdd5bece6bab7da,0xbfdf9ba63ca2c5b2,1
+np.float64,0x7fe874650af0e8c9,0x3fe74204e122c10f,1
+np.float64,0x800768c49baed18a,0x800768c49baed18a,1
+np.float64,0x3fb4c0a192298140,0x3fb4cc4c8aa43300,1
+np.float64,0xbfa740531c2e80a0,0xbfa7446b7c74ae8e,1
+np.float64,0x7fe10d6edf221add,0x3fedbcd2eae26657,1
+np.float64,0xbfe9175d0f722eba,0xbfefeaca7f32c6e3,1
+np.float64,0x953e11d32a7c2,0x953e11d32a7c2,1
+np.float64,0x80032df90c465bf3,0x80032df90c465bf3,1
+np.float64,0xffec5b799638b6f2,0xbfe95cd2c69be12c,1
+np.float64,0xffe0c3cfa9a1879f,0x3fe20b99b0c108ce,1
+np.float64,0x3fb610d8e22c21b2,0x3fb61ee0d6c16df8,1
+np.float64,0xffe16bb39962d766,0xc016d370381b6b42,1
+np.float64,0xbfdc72edb238e5dc,0xbfde7bd2de10717a,1
+np.float64,0xffed52dee3baa5bd,0xc01994c08899129a,1
+np.float64,0xffa92aab08325550,0xbff2b881ce363cbd,1
+np.float64,0x7fe028282de0504f,0xc0157ff96c69a9c7,1
+np.float64,0xbfdb2151bf3642a4,0xbfdce196fcc35857,1
+np.float64,0x3fcffbd13c3ff7a2,0x3fd0554b5f0371ac,1
+np.float64,0x800d206bff1a40d8,0x800d206bff1a40d8,1
+np.float64,0x458f818c8b1f1,0x458f818c8b1f1,1
+np.float64,0x800a7b56a234f6ae,0x800a7b56a234f6ae,1
+np.float64,0xffe3d86161e7b0c2,0xbff58d0dbde9f188,1
+np.float64,0xe8ed82e3d1db1,0xe8ed82e3d1db1,1
+np.float64,0x3fe234e0176469c0,0x3fe476bd36b96a75,1
+np.float64,0xbfc7cb9c132f9738,0xbfc812c46e185e0b,1
+np.float64,0xbfeba116c1f7422e,0xbff2b6b7563ad854,1
+np.float64,0x7fe7041de62e083b,0x3f5d2b42aca47274,1
+np.float64,0xbfcf60f4ff3ec1e8,0xbfd002eb83406436,1
+np.float64,0xbfc06067a520c0d0,0xbfc0776e5839ecda,1
+np.float64,0x4384965a87093,0x4384965a87093,1
+np.float64,0xd2ed9d01a5db4,0xd2ed9d01a5db4,1
+np.float64,0x3fbea88cb63d5119,0x3fbece49cc34a379,1
+np.float64,0x3fe7e982ebefd306,0x3feda5bd4c435d43,1
+np.float64,0xffdb60a3e036c148,0xbfcb7ed21e7a8f49,1
+np.float64,0x7fdba9231eb75245,0xbfd750cab1536398,1
+np.float64,0x800d593534dab26b,0x800d593534dab26b,1
+np.float64,0xffdf15fb683e2bf6,0x3fb3aaea23357f06,1
+np.float64,0xbfd6f8a2e5adf146,0xbfd802e509d67c67,1
+np.float64,0x3feeaa31513d5463,0x3ff6c52147dc053c,1
+np.float64,0xf2f6dfd3e5edc,0xf2f6dfd3e5edc,1
+np.float64,0x7fd58d8279ab1b04,0x403243f23d02af2a,1
+np.float64,0x8000000000000001,0x8000000000000001,1
+np.float64,0x3fdffb8e0ebff71c,0x3fe1786cb0a6b0f3,1
+np.float64,0xc999826b93331,0xc999826b93331,1
+np.float64,0xffc4966f19292ce0,0x3ff0836c75c56cc7,1
+np.float64,0x7fef95a4b2ff2b48,0xbfbbe2c27c78154f,1
+np.float64,0xb8f1307f71e26,0xb8f1307f71e26,1
+np.float64,0x3fe807bc7eb00f79,0x3fedde19f2d3c42d,1
+np.float64,0x5e4b6580bc98,0x5e4b6580bc98,1
+np.float64,0xffe19353576326a6,0xc0278c51fee07d36,1
+np.float64,0xbfb0ca6f3e2194e0,0xbfb0d09be673fa72,1
+np.float64,0x3fea724211b4e484,0x3ff15ee06f0a0a13,1
+np.float64,0xbfda21e1c4b443c4,0xbfdbb041f3c86832,1
+np.float64,0x8008082b24901057,0x8008082b24901057,1
+np.float64,0xbfd031aa4ea06354,0xbfd08c77729634bb,1
+np.float64,0xbfc407e153280fc4,0xbfc432275711df5f,1
+np.float64,0xbb4fa4b5769f5,0xbb4fa4b5769f5,1
+np.float64,0x7fed6d1daffada3a,0xc037a14bc7b41fab,1
+np.float64,0xffeee589943dcb12,0x3ff2abfe47037778,1
+np.float64,0x301379d260270,0x301379d260270,1
+np.float64,0xbfec2fefc2b85fe0,0xbff36362c0363e06,1
+np.float64,0xbfe0b1c82e216390,0xbfe264f503f7c22c,1
+np.float64,0xbfea2bce78f4579d,0xbff112d6f07935ea,1
+np.float64,0x18508ef230a13,0x18508ef230a13,1
+np.float64,0x800667a74d6ccf4f,0x800667a74d6ccf4f,1
+np.float64,0x79ce5c8cf39cc,0x79ce5c8cf39cc,1
+np.float64,0x3feda61c8efb4c39,0x3ff54c9ade076f54,1
+np.float64,0x3fe27e06b0e4fc0d,0x3fe4de665c1dc3ca,1
+np.float64,0xbfd15fea2722bfd4,0xbfd1d081c55813b0,1
+np.float64,0xbfe5222c4cea4458,0xbfe8db62deb7d2ad,1
+np.float64,0xbfe8a16c33b142d8,0xbfef02d5831592a8,1
+np.float64,0x3fdb60e7c4b6c1d0,0x3fdd2e4265c4c3b6,1
+np.float64,0x800076d62b60edad,0x800076d62b60edad,1
+np.float64,0xbfec8f1527791e2a,0xbff3da7ed3641e8d,1
+np.float64,0x2af03bfe55e08,0x2af03bfe55e08,1
+np.float64,0xa862ee0950c5e,0xa862ee0950c5e,1
+np.float64,0x7fea5a7c1eb4b4f7,0xbffa6f07d28ef211,1
+np.float64,0x90e118fb21c23,0x90e118fb21c23,1
+np.float64,0xbfead0721bf5a0e4,0xbff1c6c7a771a128,1
+np.float64,0x3f63f4a4c027e94a,0x3f63f4a75665da67,1
+np.float64,0x3fece0efa579c1e0,0x3ff443bec52f021e,1
+np.float64,0xbfdbe743b737ce88,0xbfddd129bff89c15,1
+np.float64,0x3fd48c9b8fa91938,0x3fd5492a630a8cb5,1
+np.float64,0x3ff0000000000000,0x3ff8eb245cbee3a6,1
+np.float64,0xbfd51ea33baa3d46,0xbfd5ebd5dc710204,1
+np.float64,0x3fcfbab0183f7560,0x3fd032a054580b00,1
+np.float64,0x8007abce13cf579d,0x8007abce13cf579d,1
+np.float64,0xbfef0f4723be1e8e,0xbff760c7008e8913,1
+np.float64,0x8006340f524c681f,0x8006340f524c681f,1
+np.float64,0x87b7d7010f71,0x87b7d7010f71,1
+np.float64,0x3fe9422da9b2845b,0x3ff02052e6148c45,1
+np.float64,0x7fddd259b93ba4b2,0xc000731aa33d84b6,1
+np.float64,0x3fe0156d12202ada,0x3fe1972ba309cb29,1
+np.float64,0x8004f1264b89e24d,0x8004f1264b89e24d,1
+np.float64,0x3fececdcacb9d9b9,0x3ff4534d5861f731,1
+np.float64,0x3fd1790ab822f215,0x3fd1eb97b1bb6fb4,1
+np.float64,0xffce5d11863cba24,0xbfcb4f38c17210da,1
+np.float64,0x800a30c32a546187,0x800a30c32a546187,1
+np.float64,0x3fa58cc61c2b198c,0x3fa59008add7233e,1
+np.float64,0xbfe0ac77d62158f0,0xbfe25de3dba0bc4a,1
+np.float64,0xeb8c5753d718b,0xeb8c5753d718b,1
+np.float64,0x3fee5438dafca872,0x3ff644fef7e7adb5,1
+np.float64,0x3faad1eb2c35a3e0,0x3faad83499f94057,1
+np.float64,0x3fe39152c46722a6,0x3fe66fba0b96ab6e,1
+np.float64,0xffd6fd17712dfa2e,0xc010d697d1ab8731,1
+np.float64,0x5214a888a4296,0x5214a888a4296,1
+np.float64,0x8000127a5da024f5,0x8000127a5da024f5,1
+np.float64,0x7feb3a366cb6746c,0x3fbe49bd8d5f213a,1
+np.float64,0xca479501948f3,0xca479501948f3,1
+np.float64,0x7fe7c799ce6f8f33,0xbfd796cd98dc620c,1
+np.float64,0xffe20bcf30a4179e,0xbff8ca5453fa088f,1
+np.float64,0x3fe624638a6c48c7,0x3fea83f123832c3c,1
+np.float64,0xbfe5f1377c6be26f,0xbfea2e143a2d522c,1
+np.float64,0x7fd193f9f8a327f3,0xbfb04ee2602574d4,1
+np.float64,0xbfe7419d2fee833a,0xbfec737f140d363d,1
+np.float64,0x1,0x1,1
+np.float64,0x7fe2ac246c655848,0x3fd14fee3237727a,1
+np.float64,0xa459b42948b37,0xa459b42948b37,1
+np.float64,0x3fb26155ae24c2ab,0x3fb2696fc446d4c6,1
+np.float64,0xbfdd7b332e3af666,0xbfdfc296c21f1aa8,1
+np.float64,0xbfe00dbda4a01b7c,0xbfe18d2b060f0506,1
+np.float64,0x8003bb22d3e77646,0x8003bb22d3e77646,1
+np.float64,0x3fee21b0a57c4361,0x3ff5fb6a21dc911c,1
+np.float64,0x80ca69270194d,0x80ca69270194d,1
+np.float64,0xbfd6d80350adb006,0xbfd7ddb501edbde0,1
+np.float64,0xd2f8b801a5f2,0xd2f8b801a5f2,1
+np.float64,0xbfe856b3f170ad68,0xbfee7334fdc49296,1
+np.float64,0x3fed5c1b20bab836,0x3ff4e73ee5d5c7f3,1
+np.float64,0xbfd58085a5ab010c,0xbfd6596ddc381ffa,1
+np.float64,0x3fe4f0134b29e027,0x3fe88b70602fbd21,1
+np.float64,0xffc9098fdc321320,0x4011c334a74a92cf,1
+np.float64,0x794749bef28ea,0x794749bef28ea,1
+np.float64,0xbfc86b547f30d6a8,0xbfc8b84a4fafe0af,1
+np.float64,0x7fe1356b9da26ad6,0x3fd270bca208d899,1
+np.float64,0x7fca0ef1aa341de2,0xbff851044c0734fa,1
+np.float64,0x80064cb8b62c9972,0x80064cb8b62c9972,1
+np.float64,0xffd3a09a83a74136,0x3ffb66dae0accdf5,1
+np.float64,0x800e301aa15c6035,0x800e301aa15c6035,1
+np.float64,0x800e51f323bca3e6,0x800e51f323bca3e6,1
+np.float64,0x7ff0000000000000,0xfff8000000000000,1
+np.float64,0x800c4278c87884f2,0x800c4278c87884f2,1
+np.float64,0xbfe8481649f0902c,0xbfee576772695096,1
+np.float64,0xffe2344e3fa4689c,0x3fb10442ec0888de,1
+np.float64,0xbfeada313d75b462,0xbff1d1aee3fab3a9,1
+np.float64,0x8009ddfb1333bbf7,0x8009ddfb1333bbf7,1
+np.float64,0x7fed3314c93a6629,0x3ff7a9b12dc1cd37,1
+np.float64,0x3fd55c26da2ab84e,0x3fd630a7b8aac78a,1
+np.float64,0x800cdb5203f9b6a4,0x800cdb5203f9b6a4,1
+np.float64,0xffd04a875da0950e,0x4009a13810ab121d,1
+np.float64,0x800f1acb527e3597,0x800f1acb527e3597,1
+np.float64,0xbf9519bf282a3380,0xbf951a82e9b955ff,1
+np.float64,0x3fcd7a42fa3af486,0x3fce028f3c51072d,1
+np.float64,0xbfdd3e21b73a7c44,0xbfdf769f2ff2480b,1
+np.float64,0xffd4361e2aa86c3c,0xbfc211ce8e9f792c,1
+np.float64,0x7fccf97f6939f2fe,0xbff8464bad830f06,1
+np.float64,0x800ce47fb939c900,0x800ce47fb939c900,1
+np.float64,0xffe9e51df173ca3b,0xbfceaf990d652c4e,1
+np.float64,0x3fe05bba5b20b775,0x3fe1f326e4455442,1
+np.float64,0x800a29b4b134536a,0x800a29b4b134536a,1
+np.float64,0xe6f794b7cdef3,0xe6f794b7cdef3,1
+np.float64,0xffb5b688ce2b6d10,0x3ff924bb97ae2f6d,1
+np.float64,0x7fa74105d82e820b,0x3fd49643aaa9eee4,1
+np.float64,0x80020d15f7a41a2d,0x80020d15f7a41a2d,1
+np.float64,0x3fd6a983d5ad5308,0x3fd7a8cc8835b5b8,1
+np.float64,0x7fcd9798f03b2f31,0x3fc534c2f7bf4721,1
+np.float64,0xffdd31873a3a630e,0xbfe3171fcdffb3f7,1
+np.float64,0x80075183234ea307,0x80075183234ea307,1
+np.float64,0x82f3132505e63,0x82f3132505e63,1
+np.float64,0x3febfd9cb837fb39,0x3ff325bbf812515d,1
+np.float64,0xbfb4630fda28c620,0xbfb46e1f802ec278,1
+np.float64,0x3feeed7c89fddafa,0x3ff72c20ce5a9ee4,1
+np.float64,0x7fd3dcb3c127b967,0x40123d27ec9ec31d,1
+np.float64,0xbfe923450c72468a,0xbff00149c5742725,1
+np.float64,0x7fdef7f91abdeff1,0xbfe02ceb21f7923d,1
+np.float64,0x7fdd70d28fbae1a4,0xbfefcc5c9d10cdfd,1
+np.float64,0x800ca445a8d9488c,0x800ca445a8d9488c,1
+np.float64,0x7fec2754e1f84ea9,0x40173f6c1c97f825,1
+np.float64,0x7fcbca31f7379463,0x401e26bd2667075b,1
+np.float64,0x8003fa1d0847f43b,0x8003fa1d0847f43b,1
+np.float64,0xffe95cf85932b9f0,0xc01308e60278aa11,1
+np.float64,0x8009c53948f38a73,0x8009c53948f38a73,1
+np.float64,0x3fdcca9226b99524,0x3fdee7a008f75d41,1
+np.float64,0xbfe9ee241f33dc48,0xbff0d16bfff6c8e9,1
+np.float64,0xbfb3365058266ca0,0xbfb33f9176ebb51d,1
+np.float64,0x7fa98e10f4331c21,0x3fdee04ffd31314e,1
+np.float64,0xbfe1a11aea634236,0xbfe3a8e3d84fda38,1
+np.float64,0xbfd8df051131be0a,0xbfda342805d1948b,1
+np.float64,0x3d49a2407a935,0x3d49a2407a935,1
+np.float64,0xfc51eefff8a3e,0xfc51eefff8a3e,1
+np.float64,0xda63950bb4c73,0xda63950bb4c73,1
+np.float64,0x80050f3d4fea1e7b,0x80050f3d4fea1e7b,1
+np.float64,0x3fcdbd6e453b7ae0,0x3fce497478c28e77,1
+np.float64,0x7ebd4932fd7aa,0x7ebd4932fd7aa,1
+np.float64,0x7fa3904eac27209c,0xc0015f3125efc151,1
+np.float64,0x7fc59f956b2b3f2a,0xc00c012e7a2c281f,1
+np.float64,0xbfd436d716a86dae,0xbfd4ea13533a942b,1
+np.float64,0x9347ae3d268f6,0x9347ae3d268f6,1
+np.float64,0xffd001764d2002ec,0xbffab3462e515623,1
+np.float64,0x3fe6f406662de80d,0x3febe9bac3954999,1
+np.float64,0x3f943ecaf8287d96,0x3f943f77dee5e77f,1
+np.float64,0x3fd6250efcac4a1c,0x3fd712afa947d56f,1
+np.float64,0xbfe849ff777093ff,0xbfee5b089d03391f,1
+np.float64,0xffd3b8ef8f2771e0,0x4000463ff7f29214,1
+np.float64,0xbfc3bae9252775d4,0xbfc3e34c133f1933,1
+np.float64,0xbfea93943df52728,0xbff18355e4fc341d,1
+np.float64,0x3fc4d922ad29b245,0x3fc508d66869ef29,1
+np.float64,0x4329694a8652e,0x4329694a8652e,1
+np.float64,0x8834f1a71069e,0x8834f1a71069e,1
+np.float64,0xe0e5be8dc1cb8,0xe0e5be8dc1cb8,1
+np.float64,0x7fef4d103afe9a1f,0xc0047b88b94554fe,1
+np.float64,0x3fe9b57af4f36af6,0x3ff0963831d51c3f,1
+np.float64,0x3fe081e2fa6103c6,0x3fe22572e41be655,1
+np.float64,0x3fd78cf7b42f19ef,0x3fd8acafa1ad776a,1
+np.float64,0x7fbffd58d43ffab1,0x3fb16092c7de6036,1
+np.float64,0xbfe1e8bfae23d180,0xbfe40c1c6277dd52,1
+np.float64,0x800a9f59fb153eb4,0x800a9f59fb153eb4,1
+np.float64,0xffebe14e33b7c29c,0x3fe0ec532f4deedd,1
+np.float64,0xffc36ca00426d940,0xc000806a712d6e83,1
+np.float64,0xbfcc2be82d3857d0,0xbfcca2a7d372ec64,1
+np.float64,0x800c03b908780772,0x800c03b908780772,1
+np.float64,0xf315a64be62b5,0xf315a64be62b5,1
+np.float64,0xbfe644043cec8808,0xbfeab974d3dc6d80,1
+np.float64,0x3fedb7de3cbb6fbc,0x3ff56549a5acd324,1
+np.float64,0xbfb1a875522350e8,0xbfb1afa41dee338d,1
+np.float64,0xffee8d4a407d1a94,0x3fead1749a636ff6,1
+np.float64,0x8004061c13080c39,0x8004061c13080c39,1
+np.float64,0x3fe650ae7feca15c,0x3feacefb8bc25f64,1
+np.float64,0x3fda8340e6b50682,0x3fdc24275cab1df8,1
+np.float64,0x8009084344321087,0x8009084344321087,1
+np.float64,0x7fdd19cb823a3396,0xbfd1d8fb35d89e3f,1
+np.float64,0xbfe893172571262e,0xbfeee716b592b93c,1
+np.float64,0x8ff5acc11fec,0x8ff5acc11fec,1
+np.float64,0xbfdca0c57cb9418a,0xbfdeb42465a1b59e,1
+np.float64,0xffd77bd2a3aef7a6,0x4012cd69e85b82d8,1
+np.float64,0xbfe6ea78982dd4f1,0xbfebd8ec61fb9e1f,1
+np.float64,0x7fe14b1d80a2963a,0xc02241642102cf71,1
+np.float64,0x3fe712bf286e257e,0x3fec20012329a7fb,1
+np.float64,0x7fcb6fa4d636df49,0x400b899d14a886b3,1
+np.float64,0x3fb82cb39a305960,0x3fb83f29c5f0822e,1
+np.float64,0x7fed694c8b3ad298,0xbfe2724373c69808,1
+np.float64,0xbfcd21229f3a4244,0xbfcda497fc3e1245,1
+np.float64,0x564d3770ac9a8,0x564d3770ac9a8,1
+np.float64,0xf4409e13e8814,0xf4409e13e8814,1
+np.float64,0x80068dca9a8d1b96,0x80068dca9a8d1b96,1
+np.float64,0xbfe13f82afe27f06,0xbfe3236ddded353f,1
+np.float64,0x80023f8114647f03,0x80023f8114647f03,1
+np.float64,0xeafba7dfd5f75,0xeafba7dfd5f75,1
+np.float64,0x3feca74ddeb94e9c,0x3ff3f95dcce5a227,1
+np.float64,0x10000000000000,0x10000000000000,1
+np.float64,0xbfebdb4141f7b682,0xbff2fc29823ac64a,1
+np.float64,0xbfcd75ee2f3aebdc,0xbfcdfdfd87cc6a29,1
+np.float64,0x7fc010cda420219a,0x3fae4ca2cf1f2657,1
+np.float64,0x1a90209e35205,0x1a90209e35205,1
+np.float64,0x8008057d01900afa,0x8008057d01900afa,1
+np.float64,0x3f9cb5f280396be5,0x3f9cb7dfb4e4be4e,1
+np.float64,0xffe1bbb60b63776c,0xc00011b1ffcb2561,1
+np.float64,0xffda883f6fb5107e,0x4044238ef4e2a198,1
+np.float64,0x3fc07c0b4a20f817,0x3fc09387de9eebcf,1
+np.float64,0x8003a9ebc0c753d8,0x8003a9ebc0c753d8,1
+np.float64,0x1d7fd5923affc,0x1d7fd5923affc,1
+np.float64,0xbfe9cd8cf9b39b1a,0xbff0af43e567ba4a,1
+np.float64,0x11285cb42250c,0x11285cb42250c,1
+np.float64,0xffe81ae1ccb035c3,0xbfe038be7eb563a6,1
+np.float64,0xbfe56473b1eac8e8,0xbfe94654d8ab9e75,1
+np.float64,0x3fee904619fd208c,0x3ff69e198152fe17,1
+np.float64,0xbfeeb9a2cbfd7346,0xbff6dc8d96da78cd,1
+np.float64,0x8006cdfa59ed9bf5,0x8006cdfa59ed9bf5,1
+np.float64,0x8008f2366d31e46d,0x8008f2366d31e46d,1
+np.float64,0x8008d5f91e31abf3,0x8008d5f91e31abf3,1
+np.float64,0x3fe85886f8b0b10e,0x3fee76af16f5a126,1
+np.float64,0x3fefb9b2b73f7365,0x3ff8745128fa3e3b,1
+np.float64,0x7fdf3e721f3e7ce3,0xbfb19381541ca2a8,1
+np.float64,0x3fd2768c41a4ed18,0x3fd2fe2f85a3f3a6,1
+np.float64,0xbfcabe3c6a357c78,0xbfcb239fb88bc260,1
+np.float64,0xffdffb6a3dbff6d4,0xbff7af4759fd557c,1
+np.float64,0x800817f75f302fef,0x800817f75f302fef,1
+np.float64,0xbfe6a1d1762d43a3,0xbfeb5a399a095ef3,1
+np.float64,0x7fd6f32f912de65e,0x40016dedc51aabd0,1
+np.float64,0x3fc6cb26652d964d,0x3fc7099f047d924a,1
+np.float64,0x3fe8b975d67172ec,0x3fef31946123c0e7,1
+np.float64,0xffe44a09d1e89413,0x3fdee9e5eac6e540,1
+np.float64,0xbfece76d4cb9cedb,0xbff44c34849d07ba,1
+np.float64,0x7feb76027036ec04,0x3fe08595a5e263ac,1
+np.float64,0xffe194f591a329ea,0x3fbe5bd626400a70,1
+np.float64,0xbfc170698122e0d4,0xbfc18c3de8b63565,1
+np.float64,0x3fc82b2c0f305658,0x3fc875c3b5fbcd08,1
+np.float64,0x3fd5015634aa02ac,0x3fd5cb1df07213c3,1
+np.float64,0x7fe640884b6c8110,0xbff66255a420abb5,1
+np.float64,0x5a245206b448b,0x5a245206b448b,1
+np.float64,0xffe9d9fa2f73b3f4,0xc0272b0dd34ab9bf,1
+np.float64,0x3fd990e8aab321d0,0x3fdb04cd3a29bcc3,1
+np.float64,0xde9dda8bbd3bc,0xde9dda8bbd3bc,1
+np.float64,0xbfe81b32b4703666,0xbfee029937fa9f5a,1
+np.float64,0xbfe68116886d022d,0xbfeb21c62081cb73,1
+np.float64,0x3fb8da191231b432,0x3fb8ee28c71507d3,1
+np.float64,0x3fb111395a222273,0x3fb117b57de3dea4,1
+np.float64,0xffbafadc6a35f5b8,0x3ffcc6d2370297b9,1
+np.float64,0x8002ca475b05948f,0x8002ca475b05948f,1
+np.float64,0xbfeafef57875fdeb,0xbff1fb1315676f24,1
+np.float64,0x7fcda427d73b484f,0xbff9f70212694d17,1
+np.float64,0xffe2517b3ba4a2f6,0xc029ca6707305bf4,1
+np.float64,0x7fc5ee156b2bdc2a,0xbff8384b59e9056e,1
+np.float64,0xbfec22af3278455e,0xbff3530fe25816b4,1
+np.float64,0x6b5a8c2cd6b52,0x6b5a8c2cd6b52,1
+np.float64,0xffdaf6c4b935ed8a,0x4002f00ce58affcf,1
+np.float64,0x800a41813c748303,0x800a41813c748303,1
+np.float64,0xbfd09a1269213424,0xbfd0fc0a0c5de8eb,1
+np.float64,0x7fa2cb74d42596e9,0x3fc3d40e000fa69d,1
+np.float64,0x7ff8000000000000,0x7ff8000000000000,1
+np.float64,0x3fbfbf8ed63f7f1e,0x3fbfe97bcad9f53a,1
+np.float64,0x7fe0ebba65a1d774,0x401b0f17b28618df,1
+np.float64,0x3fd02c3a25a05874,0x3fd086aa55b19c9c,1
+np.float64,0xec628f95d8c52,0xec628f95d8c52,1
+np.float64,0x3fd319329fa63264,0x3fd3afb04e0dec63,1
+np.float64,0x180e0ade301c2,0x180e0ade301c2,1
+np.float64,0xbfe8d78324f1af06,0xbfef6c66153064ee,1
+np.float64,0xffb89fa200313f48,0xbfeb96ff2d9358dc,1
+np.float64,0x7fe6abcf86ed579e,0xc0269f4de86365ec,1
+np.float64,0x7fdff8cd65bff19a,0xbfd0f7c6b9052c9a,1
+np.float64,0xbfd2e3a53d25c74a,0xbfd37520cda5f6b2,1
+np.float64,0x7fe844b096708960,0x3ff696a6182e5a7a,1
+np.float64,0x7fdce0c7a3b9c18e,0x3fd42875d69ed379,1
+np.float64,0xffba5a91cc34b520,0x4001b571e8991951,1
+np.float64,0xffe78fe4a6ef1fc9,0x3ff4507b31f5b3bc,1
+np.float64,0xbfd7047493ae08ea,0xbfd810618a53fffb,1
+np.float64,0xc6559def8cab4,0xc6559def8cab4,1
+np.float64,0x3fe75d67a76ebacf,0x3feca56817de65e4,1
+np.float64,0xffd24adbd6a495b8,0xc012c491addf2df5,1
+np.float64,0x7fed35e28dba6bc4,0x403a0fa555ff7ec6,1
+np.float64,0x80078c4afa0f1897,0x80078c4afa0f1897,1
+np.float64,0xa6ec39114dd87,0xa6ec39114dd87,1
+np.float64,0x7fb1bd33ba237a66,0x4010092bb6810fd4,1
+np.float64,0x800ecf215edd9e43,0x800ecf215edd9e43,1
+np.float64,0x3fb7c169242f82d2,0x3fb7d2ed30c462e6,1
+np.float64,0xbf71b46d60236900,0xbf71b4749a10c112,1
+np.float64,0x800d7851787af0a3,0x800d7851787af0a3,1
+np.float64,0x3fcb4a45e7369488,0x3fcbb61701a1bcec,1
+np.float64,0x3fd4e3682429c6d0,0x3fd5a9bcb916eb94,1
+np.float64,0x800497564c292ead,0x800497564c292ead,1
+np.float64,0xbfca3737a1346e70,0xbfca96a86ae5d687,1
+np.float64,0x19aa87e03356,0x19aa87e03356,1
+np.float64,0xffb2593fe624b280,0xc05fedb99b467ced,1
+np.float64,0xbfdd8748fbbb0e92,0xbfdfd1a7df17252c,1
+np.float64,0x8004c7afc7098f60,0x8004c7afc7098f60,1
+np.float64,0x7fde48b2bf3c9164,0xbfe36ef1158ed420,1
+np.float64,0xbfec8e0eb0f91c1d,0xbff3d9319705a602,1
+np.float64,0xffea1be204f437c3,0xc0144f67298c3e6f,1
+np.float64,0x7fdb906b593720d6,0xbfce99233396eda7,1
+np.float64,0x3fef0f114ffe1e22,0x3ff76072a258a51b,1
+np.float64,0x3fe3e284c8e7c50a,0x3fe6e9b05e17c999,1
+np.float64,0xbfbda9eef23b53e0,0xbfbdcc1abb443597,1
+np.float64,0x3feb6454d4f6c8aa,0x3ff26f65a85baba4,1
+np.float64,0x3fea317439f462e8,0x3ff118e2187ef33f,1
+np.float64,0x376ad0646ed5b,0x376ad0646ed5b,1
+np.float64,0x7fdd461a1c3a8c33,0x3f7ba20fb79e785f,1
+np.float64,0xebc520a3d78a4,0xebc520a3d78a4,1
+np.float64,0x3fca90fe53352200,0x3fcaf45c7fae234d,1
+np.float64,0xbfe80dd1de701ba4,0xbfede97e12cde9de,1
+np.float64,0x3fd242b00ea48560,0x3fd2c5cf9bf69a31,1
+np.float64,0x7fe46c057828d80a,0xbfe2f76837488f94,1
+np.float64,0x3fc162bea322c580,0x3fc17e517c958867,1
+np.float64,0xffebf0452ff7e08a,0x3ffc3fd95c257b54,1
+np.float64,0xffd88043c6310088,0x4008b05598d0d95f,1
+np.float64,0x800d8c49da5b1894,0x800d8c49da5b1894,1
+np.float64,0xbfed33b487ba6769,0xbff4b0ea941f8a6a,1
+np.float64,0x16b881e22d711,0x16b881e22d711,1
+np.float64,0x288bae0051177,0x288bae0051177,1
+np.float64,0xffc83a0fe8307420,0x4006eff03da17f86,1
+np.float64,0x3fc7868b252f0d18,0x3fc7cb4954290324,1
+np.float64,0xbfe195514b232aa2,0xbfe398aae6c8ed76,1
+np.float64,0x800c001ae7f80036,0x800c001ae7f80036,1
+np.float64,0x7feb82abe7370557,0xbff1e13fe6fad23c,1
+np.float64,0xffecf609cdf9ec13,0xc0112aa1805ae59e,1
+np.float64,0xffddd654f63bacaa,0x3fe46cce899f710d,1
+np.float64,0x3fe2163138642c62,0x3fe44b9c760acd4c,1
+np.float64,0x4e570dc09cae2,0x4e570dc09cae2,1
+np.float64,0x7fe9e8d091f3d1a0,0xc000fe20f8e9a4b5,1
+np.float64,0x7fe60042952c0084,0x3fd0aa740f394c2a,1
diff --git a/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tanh.csv b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tanh.csv
new file mode 100644
index 0000000..9e3ddc6
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/data/umath-validation-set-tanh.csv
@@ -0,0 +1,1429 @@
+dtype,input,output,ulperrortol
+np.float32,0xbe26ebb0,0xbe25752f,2
+np.float32,0xbe22ecc0,0xbe219054,2
+np.float32,0x8010a6b3,0x8010a6b3,2
+np.float32,0x3135da,0x3135da,2
+np.float32,0xbe982afc,0xbe93d727,2
+np.float32,0x16a51f,0x16a51f,2
+np.float32,0x491e56,0x491e56,2
+np.float32,0x4bf7ca,0x4bf7ca,2
+np.float32,0x3eebc21c,0x3edc65b2,2
+np.float32,0x80155c94,0x80155c94,2
+np.float32,0x3e14f626,0x3e13eb6a,2
+np.float32,0x801a238f,0x801a238f,2
+np.float32,0xbde33a80,0xbde24cf9,2
+np.float32,0xbef8439c,0xbee67a51,2
+np.float32,0x7f60d0a5,0x3f800000,2
+np.float32,0x190ee3,0x190ee3,2
+np.float32,0x80759113,0x80759113,2
+np.float32,0x800afa9f,0x800afa9f,2
+np.float32,0x7110cf,0x7110cf,2
+np.float32,0x3cf709f0,0x3cf6f6c6,2
+np.float32,0x3ef58da4,0x3ee44fa7,2
+np.float32,0xbf220ff2,0xbf0f662c,2
+np.float32,0xfd888078,0xbf800000,2
+np.float32,0xbe324734,0xbe307f9b,2
+np.float32,0x3eb5cb4f,0x3eae8560,2
+np.float32,0xbf7e7d02,0xbf425493,2
+np.float32,0x3ddcdcf0,0x3ddc02c2,2
+np.float32,0x8026d27a,0x8026d27a,2
+np.float32,0x3d4c0fb1,0x3d4be484,2
+np.float32,0xbf27d2c9,0xbf134d7c,2
+np.float32,0x8029ff80,0x8029ff80,2
+np.float32,0x7f046d2c,0x3f800000,2
+np.float32,0x13f94b,0x13f94b,2
+np.float32,0x7f4ff922,0x3f800000,2
+np.float32,0x3f4ea2ed,0x3f2b03e4,2
+np.float32,0x3e7211f0,0x3e6da8cf,2
+np.float32,0x7f39d0cf,0x3f800000,2
+np.float32,0xfee57fc6,0xbf800000,2
+np.float32,0xff6fb326,0xbf800000,2
+np.float32,0xff800000,0xbf800000,2
+np.float32,0x3f0437a4,0x3ef32fcd,2
+np.float32,0xff546d1e,0xbf800000,2
+np.float32,0x3eb5645b,0x3eae2a5c,2
+np.float32,0x3f08a6e5,0x3ef9ff8f,2
+np.float32,0x80800000,0x80800000,2
+np.float32,0x7f3413da,0x3f800000,2
+np.float32,0xfd760140,0xbf800000,2
+np.float32,0x7f3ad24a,0x3f800000,2
+np.float32,0xbf56e812,0xbf2f7f14,2
+np.float32,0xbece0338,0xbec3920a,2
+np.float32,0xbeede54a,0xbede22ae,2
+np.float32,0x7eaeb215,0x3f800000,2
+np.float32,0x3c213c00,0x3c213aab,2
+np.float32,0x7eaac217,0x3f800000,2
+np.float32,0xbf2f740e,0xbf1851a6,2
+np.float32,0x7f6ca5b8,0x3f800000,2
+np.float32,0xff42ce95,0xbf800000,2
+np.float32,0x802e4189,0x802e4189,2
+np.float32,0x80000001,0x80000001,2
+np.float32,0xbf31f298,0xbf19ebbe,2
+np.float32,0x3dcb0e6c,0x3dca64c1,2
+np.float32,0xbf29599c,0xbf145204,2
+np.float32,0x2e33f2,0x2e33f2,2
+np.float32,0x1c11e7,0x1c11e7,2
+np.float32,0x3f3b188d,0x3f1fa302,2
+np.float32,0x113300,0x113300,2
+np.float32,0x8054589e,0x8054589e,2
+np.float32,0x2a9e69,0x2a9e69,2
+np.float32,0xff513af7,0xbf800000,2
+np.float32,0x7f2e987a,0x3f800000,2
+np.float32,0x807cd426,0x807cd426,2
+np.float32,0x7f0dc4e4,0x3f800000,2
+np.float32,0x7e7c0d56,0x3f800000,2
+np.float32,0x5cb076,0x5cb076,2
+np.float32,0x80576426,0x80576426,2
+np.float32,0xff616222,0xbf800000,2
+np.float32,0xbf7accb5,0xbf40c005,2
+np.float32,0xfe4118c8,0xbf800000,2
+np.float32,0x804b9327,0x804b9327,2
+np.float32,0x3ed2b428,0x3ec79026,2
+np.float32,0x3f4a048f,0x3f286d41,2
+np.float32,0x800000,0x800000,2
+np.float32,0x7efceb9f,0x3f800000,2
+np.float32,0xbf5fe2d3,0xbf34246f,2
+np.float32,0x807e086a,0x807e086a,2
+np.float32,0x7ef5e856,0x3f800000,2
+np.float32,0xfc546f00,0xbf800000,2
+np.float32,0x3a65b890,0x3a65b88c,2
+np.float32,0x800cfa70,0x800cfa70,2
+np.float32,0x80672ea7,0x80672ea7,2
+np.float32,0x3f2bf3f2,0x3f160a12,2
+np.float32,0xbf0ab67e,0xbefd2004,2
+np.float32,0x3f2a0bb4,0x3f14c824,2
+np.float32,0xbeff5374,0xbeec12d7,2
+np.float32,0xbf221b58,0xbf0f6dff,2
+np.float32,0x7cc1f3,0x7cc1f3,2
+np.float32,0x7f234e3c,0x3f800000,2
+np.float32,0x3f60ff10,0x3f34b37d,2
+np.float32,0xbdd957f0,0xbdd887fe,2
+np.float32,0x801ce048,0x801ce048,2
+np.float32,0x7f3a8f76,0x3f800000,2
+np.float32,0xfdd13d08,0xbf800000,2
+np.float32,0x3e9af4a4,0x3e966445,2
+np.float32,0x1e55f3,0x1e55f3,2
+np.float32,0x327905,0x327905,2
+np.float32,0xbf03cf0b,0xbef28dad,2
+np.float32,0x3f0223d3,0x3eeff4f4,2
+np.float32,0xfdd96ff8,0xbf800000,2
+np.float32,0x428db8,0x428db8,2
+np.float32,0xbd74a200,0xbd7457a5,2
+np.float32,0x2a63a3,0x2a63a3,2
+np.float32,0x7e8aa9d7,0x3f800000,2
+np.float32,0x7f50b810,0x3f800000,2
+np.float32,0xbce5ec80,0xbce5dd0d,2
+np.float32,0x54711,0x54711,2
+np.float32,0x8074212a,0x8074212a,2
+np.float32,0xbf13d0ec,0xbf0551b5,2
+np.float32,0x80217f89,0x80217f89,2
+np.float32,0x3f300824,0x3f18b12f,2
+np.float32,0x7d252462,0x3f800000,2
+np.float32,0x807a154c,0x807a154c,2
+np.float32,0x8064d4b9,0x8064d4b9,2
+np.float32,0x804543b4,0x804543b4,2
+np.float32,0x4c269e,0x4c269e,2
+np.float32,0xff39823b,0xbf800000,2
+np.float32,0x3f5040b1,0x3f2be80b,2
+np.float32,0xbf7028c1,0xbf3bfee5,2
+np.float32,0x3e94eb78,0x3e90db93,2
+np.float32,0x3ccc1b40,0x3ccc1071,2
+np.float32,0xbe8796f0,0xbe8481a1,2
+np.float32,0xfc767bc0,0xbf800000,2
+np.float32,0xbdd81ed0,0xbdd75259,2
+np.float32,0xbed31bfc,0xbec7e82d,2
+np.float32,0xbf350a9e,0xbf1be1c6,2
+np.float32,0x33d41f,0x33d41f,2
+np.float32,0x3f73e076,0x3f3db0b5,2
+np.float32,0x3f800000,0x3f42f7d6,2
+np.float32,0xfee27c14,0xbf800000,2
+np.float32,0x7f6e4388,0x3f800000,2
+np.float32,0x4ea19b,0x4ea19b,2
+np.float32,0xff2d75f2,0xbf800000,2
+np.float32,0x7ee225ca,0x3f800000,2
+np.float32,0x3f31cb4b,0x3f19d2a4,2
+np.float32,0x80554a9d,0x80554a9d,2
+np.float32,0x3f4d57fa,0x3f2a4c03,2
+np.float32,0x3eac6a88,0x3ea62e72,2
+np.float32,0x773520,0x773520,2
+np.float32,0x8079c20a,0x8079c20a,2
+np.float32,0xfeb1eb94,0xbf800000,2
+np.float32,0xfe8d81c0,0xbf800000,2
+np.float32,0xfeed6902,0xbf800000,2
+np.float32,0x8066bb65,0x8066bb65,2
+np.float32,0x7f800000,0x3f800000,2
+np.float32,0x1,0x1,2
+np.float32,0x3f2c66a4,0x3f16554a,2
+np.float32,0x3cd231,0x3cd231,2
+np.float32,0x3e932a64,0x3e8f3e0c,2
+np.float32,0xbf3ab1c3,0xbf1f6420,2
+np.float32,0xbc902b20,0xbc902751,2
+np.float32,0x7dac0a5b,0x3f800000,2
+np.float32,0x3f2b7e06,0x3f15bc93,2
+np.float32,0x75de0,0x75de0,2
+np.float32,0x8020b7bc,0x8020b7bc,2
+np.float32,0x3f257cda,0x3f11bb6b,2
+np.float32,0x807480e5,0x807480e5,2
+np.float32,0xfe00d758,0xbf800000,2
+np.float32,0xbd9b54e0,0xbd9b08cd,2
+np.float32,0x4dfbe3,0x4dfbe3,2
+np.float32,0xff645788,0xbf800000,2
+np.float32,0xbe92c80a,0xbe8ee360,2
+np.float32,0x3eb9b400,0x3eb1f77c,2
+np.float32,0xff20b69c,0xbf800000,2
+np.float32,0x623c28,0x623c28,2
+np.float32,0xff235748,0xbf800000,2
+np.float32,0xbf3bbc56,0xbf2006f3,2
+np.float32,0x7e6f78b1,0x3f800000,2
+np.float32,0x7e1584e9,0x3f800000,2
+np.float32,0xff463423,0xbf800000,2
+np.float32,0x8002861e,0x8002861e,2
+np.float32,0xbf0491d8,0xbef3bb6a,2
+np.float32,0x7ea3bc17,0x3f800000,2
+np.float32,0xbedde7ea,0xbed0fb49,2
+np.float32,0xbf4bac48,0xbf295c8b,2
+np.float32,0xff28e276,0xbf800000,2
+np.float32,0x7e8f3bf5,0x3f800000,2
+np.float32,0xbf0a4a73,0xbefc7c9d,2
+np.float32,0x7ec5bd96,0x3f800000,2
+np.float32,0xbf4c22e8,0xbf299f2c,2
+np.float32,0x3e3970a0,0x3e377064,2
+np.float32,0x3ecb1118,0x3ec10c88,2
+np.float32,0xff548a7a,0xbf800000,2
+np.float32,0xfe8ec550,0xbf800000,2
+np.float32,0x3e158985,0x3e147bb2,2
+np.float32,0x7eb79ad7,0x3f800000,2
+np.float32,0xbe811384,0xbe7cd1ab,2
+np.float32,0xbdc4b9e8,0xbdc41f94,2
+np.float32,0xe0fd5,0xe0fd5,2
+np.float32,0x3f2485f2,0x3f11142b,2
+np.float32,0xfdd3c3d8,0xbf800000,2
+np.float32,0xfe8458e6,0xbf800000,2
+np.float32,0x3f06e398,0x3ef74dd8,2
+np.float32,0xff4752cf,0xbf800000,2
+np.float32,0x6998e3,0x6998e3,2
+np.float32,0x626751,0x626751,2
+np.float32,0x806631d6,0x806631d6,2
+np.float32,0xbf0c3cf4,0xbeff6c54,2
+np.float32,0x802860f8,0x802860f8,2
+np.float32,0xff2952cb,0xbf800000,2
+np.float32,0xff31d40b,0xbf800000,2
+np.float32,0x7c389473,0x3f800000,2
+np.float32,0x3dcd2f1b,0x3dcc8010,2
+np.float32,0x3d70c29f,0x3d707bbc,2
+np.float32,0x3f6bd386,0x3f39f979,2
+np.float32,0x1efec9,0x1efec9,2
+np.float32,0x3f675518,0x3f37d338,2
+np.float32,0x5fdbe3,0x5fdbe3,2
+np.float32,0x5d684e,0x5d684e,2
+np.float32,0xbedfe748,0xbed2a4c7,2
+np.float32,0x3f0cb07a,0x3f000cdc,2
+np.float32,0xbf77151e,0xbf3f1f5d,2
+np.float32,0x7f038ea0,0x3f800000,2
+np.float32,0x3ea91be9,0x3ea3376f,2
+np.float32,0xbdf20738,0xbdf0e861,2
+np.float32,0x807ea380,0x807ea380,2
+np.float32,0x2760ca,0x2760ca,2
+np.float32,0x7f20a544,0x3f800000,2
+np.float32,0x76ed83,0x76ed83,2
+np.float32,0x15a441,0x15a441,2
+np.float32,0x74c76d,0x74c76d,2
+np.float32,0xff3d5c2a,0xbf800000,2
+np.float32,0x7f6a76a6,0x3f800000,2
+np.float32,0x3eb87067,0x3eb0dabe,2
+np.float32,0xbf515cfa,0xbf2c83af,2
+np.float32,0xbdececc0,0xbdebdf9d,2
+np.float32,0x7f51b7c2,0x3f800000,2
+np.float32,0x3eb867ac,0x3eb0d30d,2
+np.float32,0xff50fd84,0xbf800000,2
+np.float32,0x806945e9,0x806945e9,2
+np.float32,0x298eed,0x298eed,2
+np.float32,0x441f53,0x441f53,2
+np.float32,0x8066d4b0,0x8066d4b0,2
+np.float32,0x3f6a479c,0x3f393dae,2
+np.float32,0xbf6ce2a7,0xbf3a7921,2
+np.float32,0x8064c3cf,0x8064c3cf,2
+np.float32,0xbf2d8146,0xbf170dfd,2
+np.float32,0x3b0e82,0x3b0e82,2
+np.float32,0xbea97574,0xbea387dc,2
+np.float32,0x67ad15,0x67ad15,2
+np.float32,0xbf68478f,0xbf38485a,2
+np.float32,0xff6f593b,0xbf800000,2
+np.float32,0xbeda26f2,0xbecdd806,2
+np.float32,0xbd216d50,0xbd2157ee,2
+np.float32,0x7a8544db,0x3f800000,2
+np.float32,0x801df20b,0x801df20b,2
+np.float32,0xbe14ba24,0xbe13b0a8,2
+np.float32,0xfdc6d8a8,0xbf800000,2
+np.float32,0x1d6b49,0x1d6b49,2
+np.float32,0x7f5ff1b8,0x3f800000,2
+np.float32,0x3f75e032,0x3f3e9625,2
+np.float32,0x7f2c5687,0x3f800000,2
+np.float32,0x3d95fb6c,0x3d95b6ee,2
+np.float32,0xbea515e4,0xbe9f97c8,2
+np.float32,0x7f2b2cd7,0x3f800000,2
+np.float32,0x3f076f7a,0x3ef8241e,2
+np.float32,0x5178ca,0x5178ca,2
+np.float32,0xbeb5976a,0xbeae5781,2
+np.float32,0x3e3c3563,0x3e3a1e13,2
+np.float32,0xbd208530,0xbd20702a,2
+np.float32,0x3eb03b04,0x3ea995ef,2
+np.float32,0x17fb9c,0x17fb9c,2
+np.float32,0xfca68e40,0xbf800000,2
+np.float32,0xbf5e7433,0xbf336a9f,2
+np.float32,0xff5b8d3d,0xbf800000,2
+np.float32,0x8003121d,0x8003121d,2
+np.float32,0xbe6dd344,0xbe69a3b0,2
+np.float32,0x67cc4,0x67cc4,2
+np.float32,0x9b01d,0x9b01d,2
+np.float32,0x127c13,0x127c13,2
+np.float32,0xfea5e3d6,0xbf800000,2
+np.float32,0xbdf5c610,0xbdf499c1,2
+np.float32,0x3aff4c00,0x3aff4beb,2
+np.float32,0x3b00afd0,0x3b00afc5,2
+np.float32,0x479618,0x479618,2
+np.float32,0x801cbd05,0x801cbd05,2
+np.float32,0x3ec9249f,0x3ebf6579,2
+np.float32,0x3535c4,0x3535c4,2
+np.float32,0xbeb4f662,0xbeadc915,2
+np.float32,0x8006fda6,0x8006fda6,2
+np.float32,0xbf4f3097,0xbf2b5239,2
+np.float32,0xbf3cb9a8,0xbf20a0e9,2
+np.float32,0x32ced0,0x32ced0,2
+np.float32,0x7ea34e76,0x3f800000,2
+np.float32,0x80063046,0x80063046,2
+np.float32,0x80727e8b,0x80727e8b,2
+np.float32,0xfd6b5780,0xbf800000,2
+np.float32,0x80109815,0x80109815,2
+np.float32,0xfdcc8a78,0xbf800000,2
+np.float32,0x81562,0x81562,2
+np.float32,0x803dfacc,0x803dfacc,2
+np.float32,0xbe204318,0xbe1ef75f,2
+np.float32,0xbf745d34,0xbf3de8e2,2
+np.float32,0xff13fdcc,0xbf800000,2
+np.float32,0x7f75ba8c,0x3f800000,2
+np.float32,0x806c04b4,0x806c04b4,2
+np.float32,0x3ec61ca6,0x3ebcc877,2
+np.float32,0xbeaea984,0xbea8301f,2
+np.float32,0xbf4dcd0e,0xbf2a8d34,2
+np.float32,0x802a01d3,0x802a01d3,2
+np.float32,0xbf747be5,0xbf3df6ad,2
+np.float32,0xbf75cbd2,0xbf3e8d0f,2
+np.float32,0x7db86576,0x3f800000,2
+np.float32,0xff49a2c3,0xbf800000,2
+np.float32,0xbedc5314,0xbecfa978,2
+np.float32,0x8078877b,0x8078877b,2
+np.float32,0xbead4824,0xbea6f499,2
+np.float32,0xbf3926e3,0xbf1e716c,2
+np.float32,0x807f4a1c,0x807f4a1c,2
+np.float32,0x7f2cd8fd,0x3f800000,2
+np.float32,0x806cfcca,0x806cfcca,2
+np.float32,0xff1aa048,0xbf800000,2
+np.float32,0x7eb9ea08,0x3f800000,2
+np.float32,0xbf1034bc,0xbf02ab3a,2
+np.float32,0xbd087830,0xbd086b44,2
+np.float32,0x7e071034,0x3f800000,2
+np.float32,0xbefcc9de,0xbeea122f,2
+np.float32,0x80796d7a,0x80796d7a,2
+np.float32,0x33ce46,0x33ce46,2
+np.float32,0x8074a783,0x8074a783,2
+np.float32,0xbe95a56a,0xbe918691,2
+np.float32,0xbf2ff3f4,0xbf18a42d,2
+np.float32,0x1633e9,0x1633e9,2
+np.float32,0x7f0f104b,0x3f800000,2
+np.float32,0xbf800000,0xbf42f7d6,2
+np.float32,0x3d2cd6,0x3d2cd6,2
+np.float32,0xfed43e16,0xbf800000,2
+np.float32,0x3ee6faec,0x3ed87d2c,2
+np.float32,0x3f2c32d0,0x3f163352,2
+np.float32,0xff4290c0,0xbf800000,2
+np.float32,0xbf66500e,0xbf37546a,2
+np.float32,0x7dfb8fe3,0x3f800000,2
+np.float32,0x3f20ba5d,0x3f0e7b16,2
+np.float32,0xff30c7ae,0xbf800000,2
+np.float32,0x1728a4,0x1728a4,2
+np.float32,0x340d82,0x340d82,2
+np.float32,0xff7870b7,0xbf800000,2
+np.float32,0xbeac6ac4,0xbea62ea7,2
+np.float32,0xbef936fc,0xbee73c36,2
+np.float32,0x3ec7e12c,0x3ebe4ef8,2
+np.float32,0x80673488,0x80673488,2
+np.float32,0xfdf14c90,0xbf800000,2
+np.float32,0x3f182568,0x3f08726e,2
+np.float32,0x7ed7dcd0,0x3f800000,2
+np.float32,0x3de4da34,0x3de3e790,2
+np.float32,0xff7fffff,0xbf800000,2
+np.float32,0x4ff90c,0x4ff90c,2
+np.float32,0x3efb0d1c,0x3ee8b1d6,2
+np.float32,0xbf66e952,0xbf379ef4,2
+np.float32,0xba9dc,0xba9dc,2
+np.float32,0xff67c766,0xbf800000,2
+np.float32,0x7f1ffc29,0x3f800000,2
+np.float32,0x3f51c906,0x3f2cbe99,2
+np.float32,0x3f2e5792,0x3f179968,2
+np.float32,0x3ecb9750,0x3ec17fa0,2
+np.float32,0x7f3fcefc,0x3f800000,2
+np.float32,0xbe4e30fc,0xbe4b72f9,2
+np.float32,0x7e9bc4ce,0x3f800000,2
+np.float32,0x7e70aa1f,0x3f800000,2
+np.float32,0x14c6e9,0x14c6e9,2
+np.float32,0xbcf327c0,0xbcf3157a,2
+np.float32,0xff1fd204,0xbf800000,2
+np.float32,0x7d934a03,0x3f800000,2
+np.float32,0x8028bf1e,0x8028bf1e,2
+np.float32,0x7f0800b7,0x3f800000,2
+np.float32,0xfe04825c,0xbf800000,2
+np.float32,0x807210ac,0x807210ac,2
+np.float32,0x3f7faf7c,0x3f42d5fd,2
+np.float32,0x3e04a543,0x3e03e899,2
+np.float32,0x3e98ea15,0x3e94863e,2
+np.float32,0x3d2a2e48,0x3d2a153b,2
+np.float32,0x7fa00000,0x7fe00000,2
+np.float32,0x20a488,0x20a488,2
+np.float32,0x3f6ba86a,0x3f39e51a,2
+np.float32,0x0,0x0,2
+np.float32,0x3e892ddd,0x3e85fcfe,2
+np.float32,0x3e2da627,0x3e2c00e0,2
+np.float32,0xff000a50,0xbf800000,2
+np.float32,0x3eb749f4,0x3eafd739,2
+np.float32,0x8024c0ae,0x8024c0ae,2
+np.float32,0xfc8f3b40,0xbf800000,2
+np.float32,0xbf685fc7,0xbf385405,2
+np.float32,0x3f1510e6,0x3f063a4f,2
+np.float32,0x3f68e8ad,0x3f3895d8,2
+np.float32,0x3dba8608,0x3dba0271,2
+np.float32,0xbf16ea10,0xbf079017,2
+np.float32,0xb3928,0xb3928,2
+np.float32,0xfe447c00,0xbf800000,2
+np.float32,0x3db9cd57,0x3db94b45,2
+np.float32,0x803b66b0,0x803b66b0,2
+np.float32,0x805b5e02,0x805b5e02,2
+np.float32,0x7ec93f61,0x3f800000,2
+np.float32,0x8005a126,0x8005a126,2
+np.float32,0x6d8888,0x6d8888,2
+np.float32,0x3e21b7de,0x3e206314,2
+np.float32,0xbec9c31e,0xbebfedc2,2
+np.float32,0xbea88aa8,0xbea2b4e5,2
+np.float32,0x3d8fc310,0x3d8f86bb,2
+np.float32,0xbf3cc68a,0xbf20a8b8,2
+np.float32,0x432690,0x432690,2
+np.float32,0xbe51d514,0xbe4ef1a3,2
+np.float32,0xbcda6d20,0xbcda5fe1,2
+np.float32,0xfe24e458,0xbf800000,2
+np.float32,0xfedc8c14,0xbf800000,2
+np.float32,0x7f7e9bd4,0x3f800000,2
+np.float32,0x3ebcc880,0x3eb4ab44,2
+np.float32,0xbe0aa490,0xbe09cd44,2
+np.float32,0x3dc9158c,0x3dc870c3,2
+np.float32,0x3e5c319e,0x3e58dc90,2
+np.float32,0x1d4527,0x1d4527,2
+np.float32,0x2dbf5,0x2dbf5,2
+np.float32,0xbf1f121f,0xbf0d5534,2
+np.float32,0x7e3e9ab5,0x3f800000,2
+np.float32,0x7f74b5c1,0x3f800000,2
+np.float32,0xbf6321ba,0xbf35c42b,2
+np.float32,0xbe5c7488,0xbe591c79,2
+np.float32,0x7e7b02cd,0x3f800000,2
+np.float32,0xfe7cbfa4,0xbf800000,2
+np.float32,0xbeace360,0xbea69a86,2
+np.float32,0x7e149b00,0x3f800000,2
+np.float32,0xbf61a700,0xbf35079a,2
+np.float32,0x7eb592a7,0x3f800000,2
+np.float32,0x3f2105e6,0x3f0eaf30,2
+np.float32,0xfd997a88,0xbf800000,2
+np.float32,0xff5d093b,0xbf800000,2
+np.float32,0x63aede,0x63aede,2
+np.float32,0x6907ee,0x6907ee,2
+np.float32,0xbf7578ee,0xbf3e680f,2
+np.float32,0xfea971e8,0xbf800000,2
+np.float32,0x3f21d0f5,0x3f0f3aed,2
+np.float32,0x3a50e2,0x3a50e2,2
+np.float32,0x7f0f5b1e,0x3f800000,2
+np.float32,0x805b9765,0x805b9765,2
+np.float32,0xbe764ab8,0xbe71a664,2
+np.float32,0x3eafac7f,0x3ea91701,2
+np.float32,0x807f4130,0x807f4130,2
+np.float32,0x7c5f31,0x7c5f31,2
+np.float32,0xbdbe0e30,0xbdbd8300,2
+np.float32,0x7ecfe4e0,0x3f800000,2
+np.float32,0xff7cb628,0xbf800000,2
+np.float32,0xff1842bc,0xbf800000,2
+np.float32,0xfd4163c0,0xbf800000,2
+np.float32,0x800e11f7,0x800e11f7,2
+np.float32,0x7f3adec8,0x3f800000,2
+np.float32,0x7f597514,0x3f800000,2
+np.float32,0xbe986e14,0xbe9414a4,2
+np.float32,0x800fa9d7,0x800fa9d7,2
+np.float32,0xff5b79c4,0xbf800000,2
+np.float32,0x80070565,0x80070565,2
+np.float32,0xbee5628e,0xbed72d60,2
+np.float32,0x3f438ef2,0x3f24b3ca,2
+np.float32,0xcda91,0xcda91,2
+np.float32,0x7e64151a,0x3f800000,2
+np.float32,0xbe95d584,0xbe91b2c7,2
+np.float32,0x8022c2a1,0x8022c2a1,2
+np.float32,0x7e7097bf,0x3f800000,2
+np.float32,0x80139035,0x80139035,2
+np.float32,0x804de2cb,0x804de2cb,2
+np.float32,0xfde5d178,0xbf800000,2
+np.float32,0x6d238,0x6d238,2
+np.float32,0x807abedc,0x807abedc,2
+np.float32,0x3f450a12,0x3f259129,2
+np.float32,0x3ef1c120,0x3ee141f2,2
+np.float32,0xfeb64dae,0xbf800000,2
+np.float32,0x8001732c,0x8001732c,2
+np.float32,0x3f76062e,0x3f3ea711,2
+np.float32,0x3eddd550,0x3ed0ebc8,2
+np.float32,0xff5ca1d4,0xbf800000,2
+np.float32,0xbf49dc5e,0xbf285673,2
+np.float32,0x7e9e5438,0x3f800000,2
+np.float32,0x7e83625e,0x3f800000,2
+np.float32,0x3f5dc41c,0x3f3310da,2
+np.float32,0x3f583efa,0x3f30342f,2
+np.float32,0xbe26bf88,0xbe254a2d,2
+np.float32,0xff1e0beb,0xbf800000,2
+np.float32,0xbe2244c8,0xbe20ec86,2
+np.float32,0xff0b1630,0xbf800000,2
+np.float32,0xff338dd6,0xbf800000,2
+np.float32,0x3eafc22c,0x3ea92a51,2
+np.float32,0x800ea07f,0x800ea07f,2
+np.float32,0x3f46f006,0x3f26aa7e,2
+np.float32,0x3e5f57cd,0x3e5bde16,2
+np.float32,0xbf1b2d8e,0xbf0a9a93,2
+np.float32,0xfeacdbe0,0xbf800000,2
+np.float32,0x7e5ea4bc,0x3f800000,2
+np.float32,0xbf51cbe2,0xbf2cc027,2
+np.float32,0x8073644c,0x8073644c,2
+np.float32,0xff2d6bfe,0xbf800000,2
+np.float32,0x3f65f0f6,0x3f37260a,2
+np.float32,0xff4b37a6,0xbf800000,2
+np.float32,0x712df7,0x712df7,2
+np.float32,0x7f71ef17,0x3f800000,2
+np.float32,0x8042245c,0x8042245c,2
+np.float32,0x3e5dde7b,0x3e5a760d,2
+np.float32,0x8069317d,0x8069317d,2
+np.float32,0x807932dd,0x807932dd,2
+np.float32,0x802f847e,0x802f847e,2
+np.float32,0x7e9300,0x7e9300,2
+np.float32,0x8040b4ab,0x8040b4ab,2
+np.float32,0xff76ef8e,0xbf800000,2
+np.float32,0x4aae3a,0x4aae3a,2
+np.float32,0x8058de73,0x8058de73,2
+np.float32,0x7e4d58c0,0x3f800000,2
+np.float32,0x3d811b30,0x3d80ef79,2
+np.float32,0x7ec952cc,0x3f800000,2
+np.float32,0xfe162b1c,0xbf800000,2
+np.float32,0x3f0f1187,0x3f01d367,2
+np.float32,0xbf2f3458,0xbf182878,2
+np.float32,0x5ceb14,0x5ceb14,2
+np.float32,0xbec29476,0xbeb9b939,2
+np.float32,0x3e71f943,0x3e6d9176,2
+np.float32,0x3ededefc,0x3ed1c909,2
+np.float32,0x805df6ac,0x805df6ac,2
+np.float32,0x3e5ae2c8,0x3e579ca8,2
+np.float32,0x3f6ad2c3,0x3f397fdf,2
+np.float32,0x7d5f94d3,0x3f800000,2
+np.float32,0xbeec7fe4,0xbedd0037,2
+np.float32,0x3f645304,0x3f365b0d,2
+np.float32,0xbf69a087,0xbf38edef,2
+np.float32,0x8025102e,0x8025102e,2
+np.float32,0x800db486,0x800db486,2
+np.float32,0x4df6c7,0x4df6c7,2
+np.float32,0x806d8cdd,0x806d8cdd,2
+np.float32,0x7f0c78cc,0x3f800000,2
+np.float32,0x7e1cf70b,0x3f800000,2
+np.float32,0x3e0ae570,0x3e0a0cf7,2
+np.float32,0x80176ef8,0x80176ef8,2
+np.float32,0x3f38b60c,0x3f1e2bbb,2
+np.float32,0x3d3071e0,0x3d3055f5,2
+np.float32,0x3ebfcfdd,0x3eb750a9,2
+np.float32,0xfe2cdec0,0xbf800000,2
+np.float32,0x7eeb2eed,0x3f800000,2
+np.float32,0x8026c904,0x8026c904,2
+np.float32,0xbec79bde,0xbebe133a,2
+np.float32,0xbf7dfab6,0xbf421d47,2
+np.float32,0x805b3cfd,0x805b3cfd,2
+np.float32,0xfdfcfb68,0xbf800000,2
+np.float32,0xbd537ec0,0xbd534eaf,2
+np.float32,0x52ce73,0x52ce73,2
+np.float32,0xfeac6ea6,0xbf800000,2
+np.float32,0x3f2c2990,0x3f162d41,2
+np.float32,0x3e3354e0,0x3e318539,2
+np.float32,0x802db22b,0x802db22b,2
+np.float32,0x7f0faa83,0x3f800000,2
+np.float32,0x7f10e161,0x3f800000,2
+np.float32,0x7f165c60,0x3f800000,2
+np.float32,0xbf5a756f,0xbf315c82,2
+np.float32,0x7f5a4b68,0x3f800000,2
+np.float32,0xbd77fbf0,0xbd77ae7c,2
+np.float32,0x65d83c,0x65d83c,2
+np.float32,0x3e5f28,0x3e5f28,2
+np.float32,0x8040ec92,0x8040ec92,2
+np.float32,0xbf2b41a6,0xbf1594d5,2
+np.float32,0x7f2f88f1,0x3f800000,2
+np.float32,0xfdb64ab8,0xbf800000,2
+np.float32,0xbf7a3ff1,0xbf4082f5,2
+np.float32,0x1948fc,0x1948fc,2
+np.float32,0x802c1039,0x802c1039,2
+np.float32,0x80119274,0x80119274,2
+np.float32,0x7e885d7b,0x3f800000,2
+np.float32,0xfaf6a,0xfaf6a,2
+np.float32,0x3eba28c4,0x3eb25e1d,2
+np.float32,0x3e4df370,0x3e4b37da,2
+np.float32,0xbf19eff6,0xbf09b97d,2
+np.float32,0xbeddd3c6,0xbed0ea7f,2
+np.float32,0xff6fc971,0xbf800000,2
+np.float32,0x7e93de29,0x3f800000,2
+np.float32,0x3eb12332,0x3eaa6485,2
+np.float32,0x3eb7c6e4,0x3eb04563,2
+np.float32,0x4a67ee,0x4a67ee,2
+np.float32,0xff1cafde,0xbf800000,2
+np.float32,0x3f5e2812,0x3f3343da,2
+np.float32,0x3f060e04,0x3ef605d4,2
+np.float32,0x3e9027d8,0x3e8c76a6,2
+np.float32,0xe2d33,0xe2d33,2
+np.float32,0xff4c94fc,0xbf800000,2
+np.float32,0xbf574908,0xbf2fb26b,2
+np.float32,0xbf786c08,0xbf3fb68e,2
+np.float32,0x8011ecab,0x8011ecab,2
+np.float32,0xbf061c6a,0xbef61bfa,2
+np.float32,0x7eea5f9d,0x3f800000,2
+np.float32,0x3ea2e19c,0x3e9d99a5,2
+np.float32,0x8071550c,0x8071550c,2
+np.float32,0x41c70b,0x41c70b,2
+np.float32,0x80291fc8,0x80291fc8,2
+np.float32,0x43b1ec,0x43b1ec,2
+np.float32,0x32f5a,0x32f5a,2
+np.float32,0xbe9310ec,0xbe8f2692,2
+np.float32,0x7f75f6bf,0x3f800000,2
+np.float32,0x3e6642a6,0x3e6274d2,2
+np.float32,0x3ecb88e0,0x3ec1733f,2
+np.float32,0x804011b6,0x804011b6,2
+np.float32,0x80629cca,0x80629cca,2
+np.float32,0x8016b914,0x8016b914,2
+np.float32,0xbdd05fc0,0xbdcfa870,2
+np.float32,0x807b824d,0x807b824d,2
+np.float32,0xfeec2576,0xbf800000,2
+np.float32,0xbf54bf22,0xbf2e584c,2
+np.float32,0xbf185eb0,0xbf089b6b,2
+np.float32,0xfbc09480,0xbf800000,2
+np.float32,0x3f413054,0x3f234e25,2
+np.float32,0x7e9e32b8,0x3f800000,2
+np.float32,0x266296,0x266296,2
+np.float32,0x460284,0x460284,2
+np.float32,0x3eb0b056,0x3ea9fe5a,2
+np.float32,0x1a7be5,0x1a7be5,2
+np.float32,0x7f099895,0x3f800000,2
+np.float32,0x3f3614f0,0x3f1c88ef,2
+np.float32,0x7e757dc2,0x3f800000,2
+np.float32,0x801fc91e,0x801fc91e,2
+np.float32,0x3f5ce37d,0x3f329ddb,2
+np.float32,0x3e664d70,0x3e627f15,2
+np.float32,0xbf38ed78,0xbf1e4dfa,2
+np.float32,0xbf5c563d,0xbf325543,2
+np.float32,0xbe91cc54,0xbe8dfb24,2
+np.float32,0x3d767fbe,0x3d7633ac,2
+np.float32,0xbf6aeb40,0xbf398b7f,2
+np.float32,0x7f40508b,0x3f800000,2
+np.float32,0x2650df,0x2650df,2
+np.float32,0xbe8cea3c,0xbe897628,2
+np.float32,0x80515af8,0x80515af8,2
+np.float32,0x7f423986,0x3f800000,2
+np.float32,0xbdf250e8,0xbdf1310c,2
+np.float32,0xfe89288a,0xbf800000,2
+np.float32,0x397b3b,0x397b3b,2
+np.float32,0x7e5e91b0,0x3f800000,2
+np.float32,0x6866e2,0x6866e2,2
+np.float32,0x7f4d8877,0x3f800000,2
+np.float32,0x3e6c4a21,0x3e682ee3,2
+np.float32,0xfc3d5980,0xbf800000,2
+np.float32,0x7eae2cd0,0x3f800000,2
+np.float32,0xbf241222,0xbf10c579,2
+np.float32,0xfebc02de,0xbf800000,2
+np.float32,0xff6e0645,0xbf800000,2
+np.float32,0x802030b6,0x802030b6,2
+np.float32,0x7ef9a441,0x3f800000,2
+np.float32,0x3fcf9f,0x3fcf9f,2
+np.float32,0xbf0ccf13,0xbf0023cc,2
+np.float32,0xfefee688,0xbf800000,2
+np.float32,0xbf6c8e0c,0xbf3a5160,2
+np.float32,0xfe749c28,0xbf800000,2
+np.float32,0x7f7fffff,0x3f800000,2
+np.float32,0x58c1a0,0x58c1a0,2
+np.float32,0x3f2de0a1,0x3f174c17,2
+np.float32,0xbf5f7138,0xbf33eb03,2
+np.float32,0x3da15270,0x3da0fd3c,2
+np.float32,0x3da66560,0x3da607e4,2
+np.float32,0xbf306f9a,0xbf18f3c6,2
+np.float32,0x3e81a4de,0x3e7de293,2
+np.float32,0xbebb5fb8,0xbeb36f1a,2
+np.float32,0x14bf64,0x14bf64,2
+np.float32,0xbeac46c6,0xbea60e73,2
+np.float32,0xbdcdf210,0xbdcd4111,2
+np.float32,0x3f7e3cd9,0x3f42395e,2
+np.float32,0xbc4be640,0xbc4be38e,2
+np.float32,0xff5f53b4,0xbf800000,2
+np.float32,0xbf1315ae,0xbf04c90b,2
+np.float32,0x80000000,0x80000000,2
+np.float32,0xbf6a4149,0xbf393aaa,2
+np.float32,0x3f66b8ee,0x3f378772,2
+np.float32,0xff29293e,0xbf800000,2
+np.float32,0xbcc989c0,0xbcc97f58,2
+np.float32,0xbd9a1b70,0xbd99d125,2
+np.float32,0xfef353cc,0xbf800000,2
+np.float32,0xbdc30cf0,0xbdc27683,2
+np.float32,0xfdfd6768,0xbf800000,2
+np.float32,0x7ebac44c,0x3f800000,2
+np.float32,0xff453cd6,0xbf800000,2
+np.float32,0x3ef07720,0x3ee03787,2
+np.float32,0x80219c14,0x80219c14,2
+np.float32,0x805553a8,0x805553a8,2
+np.float32,0x80703928,0x80703928,2
+np.float32,0xff16d3a7,0xbf800000,2
+np.float32,0x3f1472bc,0x3f05c77b,2
+np.float32,0x3eeea37a,0x3edebcf9,2
+np.float32,0x3db801e6,0x3db7838d,2
+np.float32,0x800870d2,0x800870d2,2
+np.float32,0xbea1172c,0xbe9bfa32,2
+np.float32,0x3f1f5e7c,0x3f0d8a42,2
+np.float32,0x123cdb,0x123cdb,2
+np.float32,0x7f6e6b06,0x3f800000,2
+np.float32,0x3ed80573,0x3ecc0def,2
+np.float32,0xfea31b82,0xbf800000,2
+np.float32,0x6744e0,0x6744e0,2
+np.float32,0x695e8b,0x695e8b,2
+np.float32,0xbee3888a,0xbed5a67d,2
+np.float32,0x7f64bc2a,0x3f800000,2
+np.float32,0x7f204244,0x3f800000,2
+np.float32,0x7f647102,0x3f800000,2
+np.float32,0x3dd8ebc0,0x3dd81d03,2
+np.float32,0x801e7ab1,0x801e7ab1,2
+np.float32,0x7d034b56,0x3f800000,2
+np.float32,0x7fc00000,0x7fc00000,2
+np.float32,0x80194193,0x80194193,2
+np.float32,0xfe31c8d4,0xbf800000,2
+np.float32,0x7fc0c4,0x7fc0c4,2
+np.float32,0xd95bf,0xd95bf,2
+np.float32,0x7e4f991d,0x3f800000,2
+np.float32,0x7fc563,0x7fc563,2
+np.float32,0xbe3fcccc,0xbe3d968a,2
+np.float32,0xfdaaa1c8,0xbf800000,2
+np.float32,0xbf48e449,0xbf27c949,2
+np.float32,0x3eb6c584,0x3eaf625e,2
+np.float32,0xbea35a74,0xbe9e0702,2
+np.float32,0x3eeab47a,0x3edb89d5,2
+np.float32,0xbed99556,0xbecd5de5,2
+np.float64,0xbfb94a81e0329500,0xbfb935867ba761fe,2
+np.float64,0xbfec132f1678265e,0xbfe6900eb097abc3,2
+np.float64,0x5685ea72ad0be,0x5685ea72ad0be,2
+np.float64,0xbfd74d3169ae9a62,0xbfd652e09b9daf32,2
+np.float64,0xbfe28df53d651bea,0xbfe0b8a7f50ab433,2
+np.float64,0x0,0x0,2
+np.float64,0xbfed912738bb224e,0xbfe749e3732831ae,2
+np.float64,0x7fcc6faed838df5d,0x3ff0000000000000,2
+np.float64,0xbfe95fe9a432bfd3,0xbfe51f6349919910,2
+np.float64,0xbfc4d5900b29ab20,0xbfc4a6f496179b8b,2
+np.float64,0xbfcd6025033ac04c,0xbfccded7b34b49b0,2
+np.float64,0xbfdfa655b43f4cac,0xbfdd4ca1e5bb9db8,2
+np.float64,0xe7ea5c7fcfd4c,0xe7ea5c7fcfd4c,2
+np.float64,0xffa5449ca42a8940,0xbff0000000000000,2
+np.float64,0xffe63294c1ac6529,0xbff0000000000000,2
+np.float64,0x7feb9cbae7f73975,0x3ff0000000000000,2
+np.float64,0x800eb07c3e3d60f9,0x800eb07c3e3d60f9,2
+np.float64,0x3fc95777e932aef0,0x3fc9040391e20c00,2
+np.float64,0x800736052dee6c0b,0x800736052dee6c0b,2
+np.float64,0x3fe9ae4afd335c96,0x3fe54b569bab45c7,2
+np.float64,0x7fee4c94217c9927,0x3ff0000000000000,2
+np.float64,0x80094b594bd296b3,0x80094b594bd296b3,2
+np.float64,0xffe5adbcee6b5b7a,0xbff0000000000000,2
+np.float64,0x3fecb8eab47971d5,0x3fe6e236be6f27e9,2
+np.float64,0x44956914892ae,0x44956914892ae,2
+np.float64,0xbfe3bd18ef677a32,0xbfe190bf1e07200c,2
+np.float64,0x800104e5b46209cc,0x800104e5b46209cc,2
+np.float64,0x8008fbcecf71f79e,0x8008fbcecf71f79e,2
+np.float64,0x800f0a46a0be148d,0x800f0a46a0be148d,2
+np.float64,0x7fe657a0702caf40,0x3ff0000000000000,2
+np.float64,0xffd3ff1a9027fe36,0xbff0000000000000,2
+np.float64,0x3fe78bc87bef1790,0x3fe40d2e63aaf029,2
+np.float64,0x7feeabdc4c7d57b8,0x3ff0000000000000,2
+np.float64,0xbfabd28d8437a520,0xbfabcb8ce03a0e56,2
+np.float64,0xbfddc3a133bb8742,0xbfdbc9fdb2594451,2
+np.float64,0x7fec911565b9222a,0x3ff0000000000000,2
+np.float64,0x71302604e2605,0x71302604e2605,2
+np.float64,0xee919d2bdd234,0xee919d2bdd234,2
+np.float64,0xbfc04fcff3209fa0,0xbfc0395a739a2ce4,2
+np.float64,0xffe4668a36e8cd14,0xbff0000000000000,2
+np.float64,0xbfeeafeebefd5fde,0xbfe7cd5f3d61a3ec,2
+np.float64,0x7fddb34219bb6683,0x3ff0000000000000,2
+np.float64,0xbfd2cac6cba5958e,0xbfd24520abb2ff36,2
+np.float64,0xbfb857e49630afc8,0xbfb8452d5064dec2,2
+np.float64,0x3fd2dbf90b25b7f2,0x3fd254eaf48484c2,2
+np.float64,0x800af65c94f5ecba,0x800af65c94f5ecba,2
+np.float64,0xa0eef4bf41ddf,0xa0eef4bf41ddf,2
+np.float64,0xffd8e0a4adb1c14a,0xbff0000000000000,2
+np.float64,0xffe858f6e870b1ed,0xbff0000000000000,2
+np.float64,0x3f94c2c308298580,0x3f94c208a4bb006d,2
+np.float64,0xffb45f0d7428be18,0xbff0000000000000,2
+np.float64,0x800ed4f43dbda9e9,0x800ed4f43dbda9e9,2
+np.float64,0x8002dd697e85bad4,0x8002dd697e85bad4,2
+np.float64,0x787ceab2f0f9e,0x787ceab2f0f9e,2
+np.float64,0xbfdff5fcc2bfebfa,0xbfdd8b736b128589,2
+np.float64,0x7fdb2b4294365684,0x3ff0000000000000,2
+np.float64,0xffe711e5e92e23cc,0xbff0000000000000,2
+np.float64,0x800b1c93f1163928,0x800b1c93f1163928,2
+np.float64,0x7fc524d2f22a49a5,0x3ff0000000000000,2
+np.float64,0x7fc88013b5310026,0x3ff0000000000000,2
+np.float64,0x3fe1a910c5e35222,0x3fe00fd779ebaa2a,2
+np.float64,0xbfb57ec9ca2afd90,0xbfb571e47ecb9335,2
+np.float64,0x7fd7594b20aeb295,0x3ff0000000000000,2
+np.float64,0x7fba4641ca348c83,0x3ff0000000000000,2
+np.float64,0xffe61393706c2726,0xbff0000000000000,2
+np.float64,0x7fd54f3c7baa9e78,0x3ff0000000000000,2
+np.float64,0xffe65ffb12ecbff6,0xbff0000000000000,2
+np.float64,0xbfba3b0376347608,0xbfba239cbbbd1b11,2
+np.float64,0x800200886d640112,0x800200886d640112,2
+np.float64,0xbfecf0ba4679e174,0xbfe6fd59de44a3ec,2
+np.float64,0xffe5c57e122b8afc,0xbff0000000000000,2
+np.float64,0x7fdaad0143355a02,0x3ff0000000000000,2
+np.float64,0x46ab32c08d567,0x46ab32c08d567,2
+np.float64,0x7ff8000000000000,0x7ff8000000000000,2
+np.float64,0xbfda7980fdb4f302,0xbfd90fa9c8066109,2
+np.float64,0x3fe237703c646ee0,0x3fe07969f8d8805a,2
+np.float64,0x8000e9fcfc21d3fb,0x8000e9fcfc21d3fb,2
+np.float64,0xbfdfe6e958bfcdd2,0xbfdd7f952fe87770,2
+np.float64,0xbd7baf217af8,0xbd7baf217af8,2
+np.float64,0xbfceba9e4b3d753c,0xbfce26e54359869a,2
+np.float64,0xb95a2caf72b46,0xb95a2caf72b46,2
+np.float64,0x3fb407e25a280fc5,0x3fb3fd71e457b628,2
+np.float64,0xa1da09d943b41,0xa1da09d943b41,2
+np.float64,0xbfe9c7271cf38e4e,0xbfe559296b471738,2
+np.float64,0x3fefae6170ff5cc3,0x3fe83c70ba82f0e1,2
+np.float64,0x7fe7375348ae6ea6,0x3ff0000000000000,2
+np.float64,0xffe18c9cc6e31939,0xbff0000000000000,2
+np.float64,0x800483d13a6907a3,0x800483d13a6907a3,2
+np.float64,0x7fe772a18caee542,0x3ff0000000000000,2
+np.float64,0xffefff64e7bffec9,0xbff0000000000000,2
+np.float64,0x7fcffc31113ff861,0x3ff0000000000000,2
+np.float64,0x3fd91e067e323c0d,0x3fd7e70bf365a7b3,2
+np.float64,0xb0a6673d614cd,0xb0a6673d614cd,2
+np.float64,0xffef9a297e3f3452,0xbff0000000000000,2
+np.float64,0xffe87cc15e70f982,0xbff0000000000000,2
+np.float64,0xffefd6ad8e7fad5a,0xbff0000000000000,2
+np.float64,0x7fe3aaa3a8a75546,0x3ff0000000000000,2
+np.float64,0xddab0341bb561,0xddab0341bb561,2
+np.float64,0x3fe996d6d7332dae,0x3fe53e3ed5be2922,2
+np.float64,0x3fdbe66a18b7ccd4,0x3fda41e6053c1512,2
+np.float64,0x8914775d1228f,0x8914775d1228f,2
+np.float64,0x3fe44621d4688c44,0x3fe1ef9c7225f8bd,2
+np.float64,0xffab29a2a4365340,0xbff0000000000000,2
+np.float64,0xffc8d4a0c431a940,0xbff0000000000000,2
+np.float64,0xbfd426e085284dc2,0xbfd382e2a9617b87,2
+np.float64,0xbfd3b0a525a7614a,0xbfd3176856faccf1,2
+np.float64,0x80036dedcb06dbdc,0x80036dedcb06dbdc,2
+np.float64,0x3feb13823b762704,0x3fe60ca3facdb696,2
+np.float64,0x3fd7246b7bae48d8,0x3fd62f08afded155,2
+np.float64,0x1,0x1,2
+np.float64,0x3fe8ade4b9715bc9,0x3fe4b97cc1387d27,2
+np.float64,0x3fdf2dbec53e5b7e,0x3fdcecfeee33de95,2
+np.float64,0x3fe4292bf9685258,0x3fe1dbb5a6704090,2
+np.float64,0xbfd21acbb8243598,0xbfd1a2ff42174cae,2
+np.float64,0xdd0d2d01ba1a6,0xdd0d2d01ba1a6,2
+np.float64,0x3fa3f3d2f427e7a0,0x3fa3f13d6f101555,2
+np.float64,0x7fdabf4aceb57e95,0x3ff0000000000000,2
+np.float64,0xd4d9e39ba9b3d,0xd4d9e39ba9b3d,2
+np.float64,0xffec773396f8ee66,0xbff0000000000000,2
+np.float64,0x3fa88cc79031198f,0x3fa887f7ade722ba,2
+np.float64,0xffe63a92066c7524,0xbff0000000000000,2
+np.float64,0xbfcf514e2e3ea29c,0xbfceb510e99aaa19,2
+np.float64,0x9d78c19d3af18,0x9d78c19d3af18,2
+np.float64,0x7fdd748bfbbae917,0x3ff0000000000000,2
+np.float64,0xffb3594c4626b298,0xbff0000000000000,2
+np.float64,0x80068ce5b32d19cc,0x80068ce5b32d19cc,2
+np.float64,0x3fec63d60e78c7ac,0x3fe6b85536e44217,2
+np.float64,0x80080bad4dd0175b,0x80080bad4dd0175b,2
+np.float64,0xbfec6807baf8d010,0xbfe6ba69740f9687,2
+np.float64,0x7fedbae0bbfb75c0,0x3ff0000000000000,2
+np.float64,0x8001cb7aa3c396f6,0x8001cb7aa3c396f6,2
+np.float64,0x7fe1f1f03563e3df,0x3ff0000000000000,2
+np.float64,0x7fd83d3978307a72,0x3ff0000000000000,2
+np.float64,0xbfc05ffe9d20bffc,0xbfc049464e3f0af2,2
+np.float64,0xfe6e053ffcdc1,0xfe6e053ffcdc1,2
+np.float64,0xbfd3bdf39d277be8,0xbfd32386edf12726,2
+np.float64,0x800f41b27bde8365,0x800f41b27bde8365,2
+np.float64,0xbfe2c98390e59307,0xbfe0e3c9260fe798,2
+np.float64,0xffdd6206bcbac40e,0xbff0000000000000,2
+np.float64,0x67f35ef4cfe6c,0x67f35ef4cfe6c,2
+np.float64,0x800337e02ae66fc1,0x800337e02ae66fc1,2
+np.float64,0x3fe0ff70afe1fee1,0x3fdf1f46434330df,2
+np.float64,0x3fd7e0a1df2fc144,0x3fd6d3f82c8031e4,2
+np.float64,0x8008da5cd1b1b4ba,0x8008da5cd1b1b4ba,2
+np.float64,0x80065ec9e4ccbd95,0x80065ec9e4ccbd95,2
+np.float64,0x3fe1d1e559a3a3cb,0x3fe02e4f146aa1ab,2
+np.float64,0x7feb7d2f0836fa5d,0x3ff0000000000000,2
+np.float64,0xbfcb33ce9736679c,0xbfcaccd431b205bb,2
+np.float64,0x800e6d0adf5cda16,0x800e6d0adf5cda16,2
+np.float64,0x7fe46f272ca8de4d,0x3ff0000000000000,2
+np.float64,0x4fdfc73e9fbfa,0x4fdfc73e9fbfa,2
+np.float64,0x800958a13112b143,0x800958a13112b143,2
+np.float64,0xbfea01f877f403f1,0xbfe579a541594247,2
+np.float64,0xeefaf599ddf5f,0xeefaf599ddf5f,2
+np.float64,0x80038766c5e70ece,0x80038766c5e70ece,2
+np.float64,0x7fd31bc28ba63784,0x3ff0000000000000,2
+np.float64,0xbfe4df77eee9bef0,0xbfe257abe7083b77,2
+np.float64,0x7fe6790c78acf218,0x3ff0000000000000,2
+np.float64,0xffe7c66884af8cd0,0xbff0000000000000,2
+np.float64,0x800115e36f422bc8,0x800115e36f422bc8,2
+np.float64,0x3fc601945d2c0329,0x3fc5cab917bb20bc,2
+np.float64,0x3fd6ac9546ad592b,0x3fd5c55437ec3508,2
+np.float64,0xa7bd59294f7ab,0xa7bd59294f7ab,2
+np.float64,0x8005c26c8b8b84da,0x8005c26c8b8b84da,2
+np.float64,0x8257501704aea,0x8257501704aea,2
+np.float64,0x5b12aae0b6256,0x5b12aae0b6256,2
+np.float64,0x800232fe02c465fd,0x800232fe02c465fd,2
+np.float64,0x800dae28f85b5c52,0x800dae28f85b5c52,2
+np.float64,0x3fdade1ac135bc36,0x3fd964a2000ace25,2
+np.float64,0x3fed72ca04fae594,0x3fe73b9170d809f9,2
+np.float64,0x7fc6397e2b2c72fb,0x3ff0000000000000,2
+np.float64,0x3fe1f5296d23ea53,0x3fe048802d17621e,2
+np.float64,0xffe05544b920aa89,0xbff0000000000000,2
+np.float64,0xbfdb2e1588365c2c,0xbfd9a7e4113c713e,2
+np.float64,0xbfed6a06fa3ad40e,0xbfe7376be60535f8,2
+np.float64,0xbfe31dcaf5e63b96,0xbfe120417c46cac1,2
+np.float64,0xbfb7ed67ae2fdad0,0xbfb7dba14af33b00,2
+np.float64,0xffd32bb7eb265770,0xbff0000000000000,2
+np.float64,0x80039877b04730f0,0x80039877b04730f0,2
+np.float64,0x3f832e5630265cac,0x3f832e316f47f218,2
+np.float64,0xffe7fa7f732ff4fe,0xbff0000000000000,2
+np.float64,0x9649b87f2c937,0x9649b87f2c937,2
+np.float64,0xffaee447183dc890,0xbff0000000000000,2
+np.float64,0x7fe4e02dd869c05b,0x3ff0000000000000,2
+np.float64,0x3fe1d35e7463a6bd,0x3fe02f67bd21e86e,2
+np.float64,0xffe57f40fe2afe82,0xbff0000000000000,2
+np.float64,0xbfea1362b93426c6,0xbfe5833421dba8fc,2
+np.float64,0xffe9c689fe338d13,0xbff0000000000000,2
+np.float64,0xffc592dd102b25bc,0xbff0000000000000,2
+np.float64,0x3fd283c7aba5078f,0x3fd203d61d1398c3,2
+np.float64,0x8001d6820243ad05,0x8001d6820243ad05,2
+np.float64,0x3fe0ad5991e15ab4,0x3fdea14ef0d47fbd,2
+np.float64,0x3fe3916f2ee722de,0x3fe1722684a9ffb1,2
+np.float64,0xffef9e54e03f3ca9,0xbff0000000000000,2
+np.float64,0x7fe864faebb0c9f5,0x3ff0000000000000,2
+np.float64,0xbfed3587c3fa6b10,0xbfe71e7112df8a68,2
+np.float64,0xbfdd9efc643b3df8,0xbfdbac3a16caf208,2
+np.float64,0xbfd5ac08feab5812,0xbfd4e14575a6e41b,2
+np.float64,0xffda90fae6b521f6,0xbff0000000000000,2
+np.float64,0x8001380ecf22701e,0x8001380ecf22701e,2
+np.float64,0x7fed266fa5fa4cde,0x3ff0000000000000,2
+np.float64,0xffec6c0ac3b8d815,0xbff0000000000000,2
+np.float64,0x3fe7de43c32fbc88,0x3fe43ef62821a5a6,2
+np.float64,0x800bf4ffc357ea00,0x800bf4ffc357ea00,2
+np.float64,0x3fe125c975624b93,0x3fdf59b2de3eff5d,2
+np.float64,0x8004714c1028e299,0x8004714c1028e299,2
+np.float64,0x3fef1bfbf5fe37f8,0x3fe7fd2ba1b63c8a,2
+np.float64,0x800cae15c3195c2c,0x800cae15c3195c2c,2
+np.float64,0x7fde708e083ce11b,0x3ff0000000000000,2
+np.float64,0x7fbcee5df639dcbb,0x3ff0000000000000,2
+np.float64,0x800b1467141628cf,0x800b1467141628cf,2
+np.float64,0x3fe525e0d36a4bc2,0x3fe286b6e59e30f5,2
+np.float64,0xffe987f8b8330ff1,0xbff0000000000000,2
+np.float64,0x7e0a8284fc151,0x7e0a8284fc151,2
+np.float64,0x8006f982442df305,0x8006f982442df305,2
+np.float64,0xbfd75a3cb62eb47a,0xbfd65e54cee981c9,2
+np.float64,0x258e91104b1d3,0x258e91104b1d3,2
+np.float64,0xbfecd0056779a00b,0xbfe6ed7ae97fff1b,2
+np.float64,0x7fc3a4f9122749f1,0x3ff0000000000000,2
+np.float64,0x6e2b1024dc563,0x6e2b1024dc563,2
+np.float64,0x800d575ad4daaeb6,0x800d575ad4daaeb6,2
+np.float64,0xbfceafb1073d5f64,0xbfce1c93023d8414,2
+np.float64,0xffe895cb5f312b96,0xbff0000000000000,2
+np.float64,0x7fe7811ed4ef023d,0x3ff0000000000000,2
+np.float64,0xbfd93f952f327f2a,0xbfd803e6b5576b99,2
+np.float64,0xffdd883a3fbb1074,0xbff0000000000000,2
+np.float64,0x7fee5624eefcac49,0x3ff0000000000000,2
+np.float64,0xbfe264bb2624c976,0xbfe09a9b7cc896e7,2
+np.float64,0xffef14b417be2967,0xbff0000000000000,2
+np.float64,0xbfecbd0d94397a1b,0xbfe6e43bef852d9f,2
+np.float64,0xbfe20d9e4ba41b3c,0xbfe05a98e05846d9,2
+np.float64,0x10000000000000,0x10000000000000,2
+np.float64,0x7fefde93f7bfbd27,0x3ff0000000000000,2
+np.float64,0x80076b9e232ed73d,0x80076b9e232ed73d,2
+np.float64,0xbfe80df52c701bea,0xbfe45b754b433792,2
+np.float64,0x7fe3b5a637676b4b,0x3ff0000000000000,2
+np.float64,0x2c81d14c5903b,0x2c81d14c5903b,2
+np.float64,0x80038945c767128c,0x80038945c767128c,2
+np.float64,0xffeebaf544bd75ea,0xbff0000000000000,2
+np.float64,0xffdb1867d2b630d0,0xbff0000000000000,2
+np.float64,0x3fe3376eaee66ede,0x3fe13285579763d8,2
+np.float64,0xffddf65ca43becba,0xbff0000000000000,2
+np.float64,0xffec8e3e04791c7b,0xbff0000000000000,2
+np.float64,0x80064f4bde2c9e98,0x80064f4bde2c9e98,2
+np.float64,0x7fe534a085ea6940,0x3ff0000000000000,2
+np.float64,0xbfcbabe31d3757c8,0xbfcb3f8e70adf7e7,2
+np.float64,0xbfe45ca11e28b942,0xbfe1ff04515ef809,2
+np.float64,0x65f4df02cbe9d,0x65f4df02cbe9d,2
+np.float64,0xb08b0cbb61162,0xb08b0cbb61162,2
+np.float64,0x3feae2e8b975c5d1,0x3fe5f302b5e8eda2,2
+np.float64,0x7fcf277ff93e4eff,0x3ff0000000000000,2
+np.float64,0x80010999c4821334,0x80010999c4821334,2
+np.float64,0xbfd7f65911afecb2,0xbfd6e6e9cd098f8b,2
+np.float64,0x800e0560ec3c0ac2,0x800e0560ec3c0ac2,2
+np.float64,0x7fec4152ba3882a4,0x3ff0000000000000,2
+np.float64,0xbfb5c77cd42b8ef8,0xbfb5ba1336084908,2
+np.float64,0x457ff1b68afff,0x457ff1b68afff,2
+np.float64,0x5323ec56a647e,0x5323ec56a647e,2
+np.float64,0xbfeed16cf8bda2da,0xbfe7dc49fc9ae549,2
+np.float64,0xffe8446106b088c1,0xbff0000000000000,2
+np.float64,0xffb93cd13c3279a0,0xbff0000000000000,2
+np.float64,0x7fe515c2aeea2b84,0x3ff0000000000000,2
+np.float64,0x80099df83f933bf1,0x80099df83f933bf1,2
+np.float64,0x7fb3a375562746ea,0x3ff0000000000000,2
+np.float64,0x7fcd7efa243afdf3,0x3ff0000000000000,2
+np.float64,0xffe40cddb12819bb,0xbff0000000000000,2
+np.float64,0x8008b68eecd16d1e,0x8008b68eecd16d1e,2
+np.float64,0x2aec688055d8e,0x2aec688055d8e,2
+np.float64,0xffe23750bc646ea1,0xbff0000000000000,2
+np.float64,0x5adacf60b5b7,0x5adacf60b5b7,2
+np.float64,0x7fefb29b1cbf6535,0x3ff0000000000000,2
+np.float64,0xbfeadbf90175b7f2,0xbfe5ef55e2194794,2
+np.float64,0xeaad2885d55a5,0xeaad2885d55a5,2
+np.float64,0xffd7939fba2f2740,0xbff0000000000000,2
+np.float64,0x3fd187ea3aa30fd4,0x3fd11af023472386,2
+np.float64,0xbf6eb579c03d6b00,0xbf6eb57052f47019,2
+np.float64,0x3fefb67b3bff6cf6,0x3fe83fe4499969ac,2
+np.float64,0xbfe5183aacea3076,0xbfe27da1aa0b61a0,2
+np.float64,0xbfb83e47a2307c90,0xbfb82bcb0e12db42,2
+np.float64,0x80088849b1b11094,0x80088849b1b11094,2
+np.float64,0x800ceeed7399dddb,0x800ceeed7399dddb,2
+np.float64,0x80097cd90892f9b2,0x80097cd90892f9b2,2
+np.float64,0x7ec73feefd8e9,0x7ec73feefd8e9,2
+np.float64,0x7fe3291de5a6523b,0x3ff0000000000000,2
+np.float64,0xbfd537086daa6e10,0xbfd4787af5f60653,2
+np.float64,0x800e8ed4455d1da9,0x800e8ed4455d1da9,2
+np.float64,0x800ef8d19cbdf1a3,0x800ef8d19cbdf1a3,2
+np.float64,0x800dc4fa3a5b89f5,0x800dc4fa3a5b89f5,2
+np.float64,0xaa8b85cd55171,0xaa8b85cd55171,2
+np.float64,0xffd67a5f40acf4be,0xbff0000000000000,2
+np.float64,0xbfb7496db22e92d8,0xbfb7390a48130861,2
+np.float64,0x3fd86a8e7ab0d51d,0x3fd74bfba0f72616,2
+np.float64,0xffb7f5b7fc2feb70,0xbff0000000000000,2
+np.float64,0xbfea0960a7f412c1,0xbfe57db6d0ff4191,2
+np.float64,0x375f4fc26ebeb,0x375f4fc26ebeb,2
+np.float64,0x800c537e70b8a6fd,0x800c537e70b8a6fd,2
+np.float64,0x800b3f4506d67e8a,0x800b3f4506d67e8a,2
+np.float64,0x7fe61f2d592c3e5a,0x3ff0000000000000,2
+np.float64,0xffefffffffffffff,0xbff0000000000000,2
+np.float64,0x8005d0bb84eba178,0x8005d0bb84eba178,2
+np.float64,0x800c78b0ec18f162,0x800c78b0ec18f162,2
+np.float64,0xbfc42cccfb285998,0xbfc4027392f66b0d,2
+np.float64,0x3fd8fdc73fb1fb8e,0x3fd7cb46f928153f,2
+np.float64,0x800c71754298e2eb,0x800c71754298e2eb,2
+np.float64,0x3fe4aa7a96a954f5,0x3fe233f5d3bc1352,2
+np.float64,0x7fd53841f6aa7083,0x3ff0000000000000,2
+np.float64,0x3fd0a887b8a15110,0x3fd04ac3b9c0d1ca,2
+np.float64,0x8007b8e164cf71c4,0x8007b8e164cf71c4,2
+np.float64,0xbfddc35c66bb86b8,0xbfdbc9c5dddfb014,2
+np.float64,0x6a3756fed46eb,0x6a3756fed46eb,2
+np.float64,0xffd3dcd05527b9a0,0xbff0000000000000,2
+np.float64,0xbfd7dc75632fb8ea,0xbfd6d0538b340a98,2
+np.float64,0x17501f822ea05,0x17501f822ea05,2
+np.float64,0xbfe1f98b99a3f317,0xbfe04bbf8f8b6cb3,2
+np.float64,0x66ea65d2cdd4d,0x66ea65d2cdd4d,2
+np.float64,0xbfd12241e2224484,0xbfd0bc62f46ea5e1,2
+np.float64,0x3fed6e6fb3fadcdf,0x3fe7398249097285,2
+np.float64,0x3fe0b5ebeba16bd8,0x3fdeae84b3000a47,2
+np.float64,0x66d1bce8cda38,0x66d1bce8cda38,2
+np.float64,0x3fdd728db3bae51b,0x3fdb880f28c52713,2
+np.float64,0xffb45dbe5228bb80,0xbff0000000000000,2
+np.float64,0x1ff8990c3ff14,0x1ff8990c3ff14,2
+np.float64,0x800a68e8f294d1d2,0x800a68e8f294d1d2,2
+np.float64,0xbfe4d08b84a9a117,0xbfe24da40bff6be7,2
+np.float64,0x3fe0177f0ee02efe,0x3fddb83c5971df51,2
+np.float64,0xffc56893692ad128,0xbff0000000000000,2
+np.float64,0x51b44f6aa368b,0x51b44f6aa368b,2
+np.float64,0x2258ff4e44b21,0x2258ff4e44b21,2
+np.float64,0x3fe913649e7226c9,0x3fe4f3f119530f53,2
+np.float64,0xffe3767df766ecfc,0xbff0000000000000,2
+np.float64,0xbfe62ae12fec55c2,0xbfe33108f1f22a94,2
+np.float64,0x7fb6a6308e2d4c60,0x3ff0000000000000,2
+np.float64,0xbfe00f2085e01e41,0xbfddab19b6fc77d1,2
+np.float64,0x3fb66447dc2cc890,0x3fb655b4f46844f0,2
+np.float64,0x3fd80238f6b00470,0x3fd6f143be1617d6,2
+np.float64,0xbfd05bfeb3a0b7fe,0xbfd0031ab3455e15,2
+np.float64,0xffc3a50351274a08,0xbff0000000000000,2
+np.float64,0xffd8f4241cb1e848,0xbff0000000000000,2
+np.float64,0xbfca72a88c34e550,0xbfca13ebe85f2aca,2
+np.float64,0x3fd47d683ba8fad0,0x3fd3d13f1176ed8c,2
+np.float64,0x3fb6418e642c831d,0x3fb6333ebe479ff2,2
+np.float64,0x800fde8e023fbd1c,0x800fde8e023fbd1c,2
+np.float64,0x8001fb01e323f605,0x8001fb01e323f605,2
+np.float64,0x3febb21ff9f76440,0x3fe65ed788d52fee,2
+np.float64,0x3fe47553ffe8eaa8,0x3fe20fe01f853603,2
+np.float64,0x7fca20b3f9344167,0x3ff0000000000000,2
+np.float64,0x3fe704f4ec6e09ea,0x3fe3ba7277201805,2
+np.float64,0xf864359df0c87,0xf864359df0c87,2
+np.float64,0x4d96b01c9b2d7,0x4d96b01c9b2d7,2
+np.float64,0x3fe8a09fe9f14140,0x3fe4b1c6a2d2e095,2
+np.float64,0xffc46c61b228d8c4,0xbff0000000000000,2
+np.float64,0x3fe680a837ed0150,0x3fe3679d6eeb6485,2
+np.float64,0xbfecedc20f39db84,0xbfe6fbe9ee978bf6,2
+np.float64,0x3fb2314eae24629d,0x3fb2297ba6d55d2d,2
+np.float64,0x3fe9f0b8e7b3e172,0x3fe57026eae36db3,2
+np.float64,0x80097a132ed2f427,0x80097a132ed2f427,2
+np.float64,0x800ae5a41955cb49,0x800ae5a41955cb49,2
+np.float64,0xbfd7527279aea4e4,0xbfd6577de356e1bd,2
+np.float64,0x3fe27d3e01e4fa7c,0x3fe0ac7dd96f9179,2
+np.float64,0x7fedd8cb01bbb195,0x3ff0000000000000,2
+np.float64,0x78f8695af1f0e,0x78f8695af1f0e,2
+np.float64,0x800d2d0e927a5a1d,0x800d2d0e927a5a1d,2
+np.float64,0xffe74b46fb2e968e,0xbff0000000000000,2
+np.float64,0xbfdd12d4c8ba25aa,0xbfdb39dae49e1c10,2
+np.float64,0xbfd6c14710ad828e,0xbfd5d79ef5a8d921,2
+np.float64,0x921f4e55243ea,0x921f4e55243ea,2
+np.float64,0x800b4e4c80969c99,0x800b4e4c80969c99,2
+np.float64,0x7fe08c6ab7e118d4,0x3ff0000000000000,2
+np.float64,0xbfed290014fa5200,0xbfe71871f7e859ed,2
+np.float64,0x8008c1d5c59183ac,0x8008c1d5c59183ac,2
+np.float64,0x3fd339e68c2673cd,0x3fd2aaff3f165a9d,2
+np.float64,0xbfdd20d8113a41b0,0xbfdb4553ea2cb2fb,2
+np.float64,0x3fe52a25deea544c,0x3fe2898d5bf4442c,2
+np.float64,0x498602d4930c1,0x498602d4930c1,2
+np.float64,0x3fd8c450113188a0,0x3fd799b0b2a6c43c,2
+np.float64,0xbfd72bc2f2ae5786,0xbfd6357e15ba7f70,2
+np.float64,0xbfd076188ea0ec32,0xbfd01b8fce44d1af,2
+np.float64,0x9aace1713559c,0x9aace1713559c,2
+np.float64,0x8008a730e8914e62,0x8008a730e8914e62,2
+np.float64,0x7fe9e9a3d833d347,0x3ff0000000000000,2
+np.float64,0x800d3a0d69da741b,0x800d3a0d69da741b,2
+np.float64,0xbfe3e28a29e7c514,0xbfe1aad7643a2d19,2
+np.float64,0x7fe9894c71331298,0x3ff0000000000000,2
+np.float64,0xbfe7c6acb5ef8d5a,0xbfe430c9e258ce62,2
+np.float64,0xffb5a520a62b4a40,0xbff0000000000000,2
+np.float64,0x7fc02109ae204212,0x3ff0000000000000,2
+np.float64,0xb5c58f196b8b2,0xb5c58f196b8b2,2
+np.float64,0x3feb4ee82e769dd0,0x3fe62bae9a39d8b1,2
+np.float64,0x3fec5c3cf278b87a,0x3fe6b49000f12441,2
+np.float64,0x81f64b8103eca,0x81f64b8103eca,2
+np.float64,0xbfeab00d73f5601b,0xbfe5d7f755ab73d9,2
+np.float64,0x3fd016bf28a02d7e,0x3fcf843ea23bcd3c,2
+np.float64,0xbfa1db617423b6c0,0xbfa1d9872ddeb5a8,2
+np.float64,0x3fe83c879d70790f,0x3fe4771502d8f012,2
+np.float64,0x6b267586d64cf,0x6b267586d64cf,2
+np.float64,0x3fc91b6d3f3236d8,0x3fc8ca3eb4da25a9,2
+np.float64,0x7fd4e3f8f3a9c7f1,0x3ff0000000000000,2
+np.float64,0x800a75899214eb14,0x800a75899214eb14,2
+np.float64,0x7fdb1f2e07b63e5b,0x3ff0000000000000,2
+np.float64,0xffe7805a11ef00b4,0xbff0000000000000,2
+np.float64,0x3fc8e1b88a31c371,0x3fc892af45330818,2
+np.float64,0xbfe809fe447013fc,0xbfe45918f07da4d9,2
+np.float64,0xbfeb9d7f2ab73afe,0xbfe65446bfddc792,2
+np.float64,0x3fb47f0a5c28fe15,0x3fb473db9113e880,2
+np.float64,0x800a17ae3cb42f5d,0x800a17ae3cb42f5d,2
+np.float64,0xf5540945eaa81,0xf5540945eaa81,2
+np.float64,0xbfe577fc26aaeff8,0xbfe2bcfbf2cf69ff,2
+np.float64,0xbfb99b3e06333680,0xbfb98577b88e0515,2
+np.float64,0x7fd9290391b25206,0x3ff0000000000000,2
+np.float64,0x7fe1aa62ffa354c5,0x3ff0000000000000,2
+np.float64,0x7b0189a0f604,0x7b0189a0f604,2
+np.float64,0x3f9000ed602001db,0x3f900097fe168105,2
+np.float64,0x3fd576128d2aec25,0x3fd4b1002c92286f,2
+np.float64,0xffecc98ece79931d,0xbff0000000000000,2
+np.float64,0x800a1736c7f42e6e,0x800a1736c7f42e6e,2
+np.float64,0xbfed947548bb28eb,0xbfe74b71479ae739,2
+np.float64,0xa45c032148b9,0xa45c032148b9,2
+np.float64,0xbfc13d011c227a04,0xbfc1228447de5e9f,2
+np.float64,0xffed8baa6ebb1754,0xbff0000000000000,2
+np.float64,0x800ea2de243d45bc,0x800ea2de243d45bc,2
+np.float64,0x8001396be52272d9,0x8001396be52272d9,2
+np.float64,0xd018d1cda031a,0xd018d1cda031a,2
+np.float64,0x7fe1fece1fe3fd9b,0x3ff0000000000000,2
+np.float64,0x8009ac484c135891,0x8009ac484c135891,2
+np.float64,0x3fc560ad132ac15a,0x3fc52e5a9479f08e,2
+np.float64,0x3fd6f80ebe2df01d,0x3fd607f70ce8e3f4,2
+np.float64,0xbfd3e69e82a7cd3e,0xbfd34887c2a40699,2
+np.float64,0x3fe232d9baa465b3,0x3fe0760a822ada0c,2
+np.float64,0x3fe769bbc6eed378,0x3fe3f872680f6631,2
+np.float64,0xffe63dbd952c7b7a,0xbff0000000000000,2
+np.float64,0x4e0c00da9c181,0x4e0c00da9c181,2
+np.float64,0xffeae4d89735c9b0,0xbff0000000000000,2
+np.float64,0x3fe030bcbb606179,0x3fdddfc66660bfce,2
+np.float64,0x7fe35ca40d66b947,0x3ff0000000000000,2
+np.float64,0xbfd45bd66628b7ac,0xbfd3b2e04bfe7866,2
+np.float64,0x3fd1f0be2323e17c,0x3fd17c1c340d7a48,2
+np.float64,0x3fd7123b6cae2478,0x3fd61f0675aa9ae1,2
+np.float64,0xbfe918a377723147,0xbfe4f6efe66f5714,2
+np.float64,0x7fc400356f28006a,0x3ff0000000000000,2
+np.float64,0x7fd2dead70a5bd5a,0x3ff0000000000000,2
+np.float64,0xffe9c28f81f3851e,0xbff0000000000000,2
+np.float64,0x3fd09b1ec7a1363e,0x3fd03e3894320140,2
+np.float64,0x7fe6e80c646dd018,0x3ff0000000000000,2
+np.float64,0x7fec3760a4786ec0,0x3ff0000000000000,2
+np.float64,0x309eb6ee613d8,0x309eb6ee613d8,2
+np.float64,0x800731cb0ece6397,0x800731cb0ece6397,2
+np.float64,0xbfdb0c553db618aa,0xbfd98b8a4680ee60,2
+np.float64,0x3fd603a52eac074c,0x3fd52f6b53de7455,2
+np.float64,0x9ecb821b3d971,0x9ecb821b3d971,2
+np.float64,0x3feb7d64dc36faca,0x3fe643c2754bb7f4,2
+np.float64,0xffeb94825ef72904,0xbff0000000000000,2
+np.float64,0x24267418484cf,0x24267418484cf,2
+np.float64,0xbfa6b2fbac2d65f0,0xbfa6af2dca5bfa6f,2
+np.float64,0x8010000000000000,0x8010000000000000,2
+np.float64,0xffe6873978ed0e72,0xbff0000000000000,2
+np.float64,0x800447934ba88f27,0x800447934ba88f27,2
+np.float64,0x3fef305f09fe60be,0x3fe806156b8ca47c,2
+np.float64,0xffd441c697a8838e,0xbff0000000000000,2
+np.float64,0xbfa7684f6c2ed0a0,0xbfa764238d34830c,2
+np.float64,0xffb2c976142592f0,0xbff0000000000000,2
+np.float64,0xbfcc9d1585393a2c,0xbfcc25756bcbca1f,2
+np.float64,0xbfd477bb1ba8ef76,0xbfd3cc1d2114e77e,2
+np.float64,0xbfed1559983a2ab3,0xbfe70f03afd994ee,2
+np.float64,0xbfeb51139036a227,0xbfe62ccf56bc7fff,2
+np.float64,0x7d802890fb006,0x7d802890fb006,2
+np.float64,0x800e00af777c015f,0x800e00af777c015f,2
+np.float64,0x800647ce128c8f9d,0x800647ce128c8f9d,2
+np.float64,0x800a26da91d44db6,0x800a26da91d44db6,2
+np.float64,0x3fdc727eddb8e4fe,0x3fdab5fd9db630b3,2
+np.float64,0x7fd06def2ba0dbdd,0x3ff0000000000000,2
+np.float64,0xffe23678c4a46cf1,0xbff0000000000000,2
+np.float64,0xbfe7198e42ee331c,0xbfe3c7326c9c7553,2
+np.float64,0xffae465f3c3c8cc0,0xbff0000000000000,2
+np.float64,0xff9aea7c5035d500,0xbff0000000000000,2
+np.float64,0xbfeae49c0f35c938,0xbfe5f3e9326cb08b,2
+np.float64,0x3f9a16f300342de6,0x3f9a1581212be50f,2
+np.float64,0x8d99e2c31b33d,0x8d99e2c31b33d,2
+np.float64,0xffd58af253ab15e4,0xbff0000000000000,2
+np.float64,0xbfd205cd25a40b9a,0xbfd18f97155f8b25,2
+np.float64,0xbfebe839bbf7d074,0xbfe67a6024e8fefe,2
+np.float64,0xbfe4fb3595a9f66b,0xbfe26a42f99819ea,2
+np.float64,0x800e867c739d0cf9,0x800e867c739d0cf9,2
+np.float64,0x8bc4274f17885,0x8bc4274f17885,2
+np.float64,0xaec8914b5d912,0xaec8914b5d912,2
+np.float64,0x7fd1d64473a3ac88,0x3ff0000000000000,2
+np.float64,0xbfe6d6f69cedaded,0xbfe39dd61bc7e23e,2
+np.float64,0x7fed05039d7a0a06,0x3ff0000000000000,2
+np.float64,0xbfc40eab0f281d58,0xbfc3e50d14b79265,2
+np.float64,0x45179aec8a2f4,0x45179aec8a2f4,2
+np.float64,0xbfe717e362ee2fc7,0xbfe3c62a95b07d13,2
+np.float64,0xbfe5b8df0d6b71be,0xbfe2e76c7ec5013d,2
+np.float64,0x5c67ba6eb8cf8,0x5c67ba6eb8cf8,2
+np.float64,0xbfda72ce4cb4e59c,0xbfd909fdc7ecfe20,2
+np.float64,0x7fdf59a1e2beb343,0x3ff0000000000000,2
+np.float64,0xc4f7897f89ef1,0xc4f7897f89ef1,2
+np.float64,0x8fcd0a351f9a2,0x8fcd0a351f9a2,2
+np.float64,0x3fb161761022c2ec,0x3fb15aa31c464de2,2
+np.float64,0x8008a985be71530c,0x8008a985be71530c,2
+np.float64,0x3fca4ddb5e349bb7,0x3fc9f0a3b60e49c6,2
+np.float64,0x7fcc10a2d9382145,0x3ff0000000000000,2
+np.float64,0x78902b3af1206,0x78902b3af1206,2
+np.float64,0x7fe1e2765f23c4ec,0x3ff0000000000000,2
+np.float64,0xc1d288cf83a51,0xc1d288cf83a51,2
+np.float64,0x7fe8af692bb15ed1,0x3ff0000000000000,2
+np.float64,0x80057d90fb8afb23,0x80057d90fb8afb23,2
+np.float64,0x3fdc136b8fb826d8,0x3fda6749582b2115,2
+np.float64,0x800ec8ea477d91d5,0x800ec8ea477d91d5,2
+np.float64,0x4c0f4796981ea,0x4c0f4796981ea,2
+np.float64,0xec34c4a5d8699,0xec34c4a5d8699,2
+np.float64,0x7fce343dfb3c687b,0x3ff0000000000000,2
+np.float64,0xbfc95a98a332b530,0xbfc90705b2cc2fec,2
+np.float64,0x800d118e1dba231c,0x800d118e1dba231c,2
+np.float64,0x3fd354f310a6a9e8,0x3fd2c3bb90054154,2
+np.float64,0xbfdac0d4fab581aa,0xbfd94bf37424928e,2
+np.float64,0x3fe7f5391fefea72,0x3fe44cb49d51985b,2
+np.float64,0xd4c3c329a9879,0xd4c3c329a9879,2
+np.float64,0x3fc53977692a72f0,0x3fc50835d85c9ed1,2
+np.float64,0xbfd6989538ad312a,0xbfd5b3a2c08511fe,2
+np.float64,0xbfe329f2906653e5,0xbfe128ec1525a1c0,2
+np.float64,0x7ff0000000000000,0x3ff0000000000000,2
+np.float64,0xbfea57c90974af92,0xbfe5a87b04aa3116,2
+np.float64,0x7fdfba94043f7527,0x3ff0000000000000,2
+np.float64,0x3feedabddafdb57c,0x3fe7e06c0661978d,2
+np.float64,0x4bd9f3b697b3f,0x4bd9f3b697b3f,2
+np.float64,0x3fdd15bbfc3a2b78,0x3fdb3c3b8d070f7e,2
+np.float64,0x3fbd89ccd23b13a0,0x3fbd686b825cff80,2
+np.float64,0x7ff4000000000000,0x7ffc000000000000,2
+np.float64,0x3f9baa8928375512,0x3f9ba8d01ddd5300,2
+np.float64,0x4a3ebdf2947d8,0x4a3ebdf2947d8,2
+np.float64,0x3fe698d5c06d31ac,0x3fe376dff48312c8,2
+np.float64,0xffd5323df12a647c,0xbff0000000000000,2
+np.float64,0xffea7f111174fe22,0xbff0000000000000,2
+np.float64,0x3feb4656a9b68cad,0x3fe627392eb2156f,2
+np.float64,0x7fc1260e9c224c1c,0x3ff0000000000000,2
+np.float64,0x80056e45e5eadc8d,0x80056e45e5eadc8d,2
+np.float64,0x7fd0958ef6a12b1d,0x3ff0000000000000,2
+np.float64,0x8001f85664e3f0ae,0x8001f85664e3f0ae,2
+np.float64,0x3fe553853beaa70a,0x3fe2a4f5e7c83558,2
+np.float64,0xbfeb33ce6276679d,0xbfe61d8ec9e5ff8c,2
+np.float64,0xbfd1b24e21a3649c,0xbfd14245df6065e9,2
+np.float64,0x3fe286fc40650df9,0x3fe0b395c8059429,2
+np.float64,0xffed378058fa6f00,0xbff0000000000000,2
+np.float64,0xbfd0c4a2d7a18946,0xbfd06509a434d6a0,2
+np.float64,0xbfea31d581f463ab,0xbfe593d976139f94,2
+np.float64,0xbfe0705c85e0e0b9,0xbfde42efa978eb0c,2
+np.float64,0xe4c4c339c9899,0xe4c4c339c9899,2
+np.float64,0x3fd68befa9ad17df,0x3fd5a870b3f1f83e,2
+np.float64,0x8000000000000001,0x8000000000000001,2
+np.float64,0x3fe294256965284b,0x3fe0bd271e22d86b,2
+np.float64,0x8005327a862a64f6,0x8005327a862a64f6,2
+np.float64,0xbfdb8155ce3702ac,0xbfd9ed9ef97920f8,2
+np.float64,0xbff0000000000000,0xbfe85efab514f394,2
+np.float64,0xffe66988f1ecd312,0xbff0000000000000,2
+np.float64,0x3fb178a85e22f150,0x3fb171b9fbf95f1d,2
+np.float64,0x7f829b900025371f,0x3ff0000000000000,2
+np.float64,0x8000000000000000,0x8000000000000000,2
+np.float64,0x8006cb77f60d96f1,0x8006cb77f60d96f1,2
+np.float64,0x3fe0c5d53aa18baa,0x3fdec7012ab92b42,2
+np.float64,0x77266426ee4cd,0x77266426ee4cd,2
+np.float64,0xbfec95f468392be9,0xbfe6d11428f60136,2
+np.float64,0x3fedbf532dfb7ea6,0x3fe75f8436dd1d58,2
+np.float64,0x8002fadd3f85f5bb,0x8002fadd3f85f5bb,2
+np.float64,0xbfefebaa8d3fd755,0xbfe8566c6aa90fba,2
+np.float64,0xffc7dd2b712fba58,0xbff0000000000000,2
+np.float64,0x7fe5d3a6e8aba74d,0x3ff0000000000000,2
+np.float64,0x2da061525b40d,0x2da061525b40d,2
+np.float64,0x7fcb9b9953373732,0x3ff0000000000000,2
+np.float64,0x2ca2f6fc59460,0x2ca2f6fc59460,2
+np.float64,0xffeb84b05af70960,0xbff0000000000000,2
+np.float64,0xffe551e86c6aa3d0,0xbff0000000000000,2
+np.float64,0xbfdb311311366226,0xbfd9aa6688faafb9,2
+np.float64,0xbfd4f3875629e70e,0xbfd43bcd73534c66,2
+np.float64,0x7fe95666f932accd,0x3ff0000000000000,2
+np.float64,0x3fc73dfb482e7bf7,0x3fc6fd70c20ebf60,2
+np.float64,0x800cd9e40939b3c8,0x800cd9e40939b3c8,2
+np.float64,0x3fb0c9fa422193f0,0x3fb0c3d38879a2ac,2
+np.float64,0xffd59a38372b3470,0xbff0000000000000,2
+np.float64,0x3fa8320ef4306420,0x3fa82d739e937d35,2
+np.float64,0x3fd517f16caa2fe4,0x3fd45c8de1e93b37,2
+np.float64,0xaed921655db24,0xaed921655db24,2
+np.float64,0x93478fb9268f2,0x93478fb9268f2,2
+np.float64,0x1615e28a2c2bd,0x1615e28a2c2bd,2
+np.float64,0xbfead23010f5a460,0xbfe5ea24d5d8f820,2
+np.float64,0x774a6070ee94d,0x774a6070ee94d,2
+np.float64,0x3fdf5874bd3eb0e9,0x3fdd0ef121dd915c,2
+np.float64,0x8004b25f53a964bf,0x8004b25f53a964bf,2
+np.float64,0xbfddacdd2ebb59ba,0xbfdbb78198fab36b,2
+np.float64,0x8008a3acf271475a,0x8008a3acf271475a,2
+np.float64,0xbfdb537c8736a6fa,0xbfd9c741038bb8f0,2
+np.float64,0xbfe56a133f6ad426,0xbfe2b3d5b8d259a1,2
+np.float64,0xffda1db531343b6a,0xbff0000000000000,2
+np.float64,0x3fcbe05f3a37c0be,0x3fcb71a54a64ddfb,2
+np.float64,0x7fe1ccaa7da39954,0x3ff0000000000000,2
+np.float64,0x3faeadd8343d5bb0,0x3faea475608860e6,2
+np.float64,0x3fe662ba1c2cc574,0x3fe354a6176e90df,2
+np.float64,0xffe4d49f4e69a93e,0xbff0000000000000,2
+np.float64,0xbfeadbc424f5b788,0xbfe5ef39dbe66343,2
+np.float64,0x99cf66f1339ed,0x99cf66f1339ed,2
+np.float64,0x33af77a2675f0,0x33af77a2675f0,2
+np.float64,0x7fec7b32ecf8f665,0x3ff0000000000000,2
+np.float64,0xffef3e44993e7c88,0xbff0000000000000,2
+np.float64,0xffe8f8ceac31f19c,0xbff0000000000000,2
+np.float64,0x7fe0d15b6da1a2b6,0x3ff0000000000000,2
+np.float64,0x4ba795c2974f3,0x4ba795c2974f3,2
+np.float64,0x3fe361aa37a6c354,0x3fe15079021d6b15,2
+np.float64,0xffe709714f6e12e2,0xbff0000000000000,2
+np.float64,0xffe7ea6a872fd4d4,0xbff0000000000000,2
+np.float64,0xffdb9441c8b72884,0xbff0000000000000,2
+np.float64,0xffd5e11ae9abc236,0xbff0000000000000,2
+np.float64,0xffe092a08b612540,0xbff0000000000000,2
+np.float64,0x3fe1f27e1ca3e4fc,0x3fe04685b5131207,2
+np.float64,0xbfe71ce1bdee39c4,0xbfe3c940809a7081,2
+np.float64,0xffe8c3aa68318754,0xbff0000000000000,2
+np.float64,0x800d4e2919da9c52,0x800d4e2919da9c52,2
+np.float64,0x7fe6c8bca76d9178,0x3ff0000000000000,2
+np.float64,0x7fced8751e3db0e9,0x3ff0000000000000,2
+np.float64,0xd61d0c8bac3a2,0xd61d0c8bac3a2,2
+np.float64,0x3fec57732938aee6,0x3fe6b22f15f38352,2
+np.float64,0xff9251cc7024a3a0,0xbff0000000000000,2
+np.float64,0xf4a68cb9e94d2,0xf4a68cb9e94d2,2
+np.float64,0x3feed76703bdaece,0x3fe7def0fc9a080c,2
+np.float64,0xbfe8971ff7712e40,0xbfe4ac3eb8ebff07,2
+np.float64,0x3fe4825f682904bf,0x3fe218c1952fe67d,2
+np.float64,0xbfd60f7698ac1eee,0xbfd539f0979b4b0c,2
+np.float64,0x3fcf0845993e1088,0x3fce7032f7180144,2
+np.float64,0x7fc83443f3306887,0x3ff0000000000000,2
+np.float64,0x3fe93123ae726247,0x3fe504e4fc437e89,2
+np.float64,0x3fbf9eb8363f3d70,0x3fbf75cdfa6828d5,2
+np.float64,0xbf8b45e5d0368bc0,0xbf8b457c29dfe1a9,2
+np.float64,0x8006c2853d0d850b,0x8006c2853d0d850b,2
+np.float64,0xffef26e25ffe4dc4,0xbff0000000000000,2
+np.float64,0x7fefffffffffffff,0x3ff0000000000000,2
+np.float64,0xbfde98f2c2bd31e6,0xbfdc761bfab1c4cb,2
+np.float64,0xffb725e6222e4bd0,0xbff0000000000000,2
+np.float64,0x800c63ead5d8c7d6,0x800c63ead5d8c7d6,2
+np.float64,0x3fea087e95f410fd,0x3fe57d3ab440706c,2
+np.float64,0xbfdf9f8a603f3f14,0xbfdd4742d77dfa57,2
+np.float64,0xfff0000000000000,0xbff0000000000000,2
+np.float64,0xbfcdc0841d3b8108,0xbfcd3a401debba9a,2
+np.float64,0x800f0c8f4f7e191f,0x800f0c8f4f7e191f,2
+np.float64,0x800ba6e75fd74dcf,0x800ba6e75fd74dcf,2
+np.float64,0x7fee4927e8bc924f,0x3ff0000000000000,2
+np.float64,0x3fadf141903be283,0x3fade8878d9d3551,2
+np.float64,0x3efb1a267df64,0x3efb1a267df64,2
+np.float64,0xffebf55f22b7eabe,0xbff0000000000000,2
+np.float64,0x7fbe8045663d008a,0x3ff0000000000000,2
+np.float64,0x3fefc0129f7f8026,0x3fe843f8b7d6cf38,2
+np.float64,0xbfe846b420f08d68,0xbfe47d1709e43937,2
+np.float64,0x7fe8e87043f1d0e0,0x3ff0000000000000,2
+np.float64,0x3fcfb718453f6e31,0x3fcf14ecee7b32b4,2
+np.float64,0x7fe4306b71a860d6,0x3ff0000000000000,2
+np.float64,0x7fee08459f7c108a,0x3ff0000000000000,2
+np.float64,0x3fed705165fae0a3,0x3fe73a66369c5700,2
+np.float64,0x7fd0e63f4da1cc7e,0x3ff0000000000000,2
+np.float64,0xffd1a40c2ea34818,0xbff0000000000000,2
+np.float64,0xbfa369795c26d2f0,0xbfa36718218d46b3,2
+np.float64,0xef70b9f5dee17,0xef70b9f5dee17,2
+np.float64,0x3fb50a0a6e2a1410,0x3fb4fdf27724560a,2
+np.float64,0x7fe30a0f6166141e,0x3ff0000000000000,2
+np.float64,0xbfd7b3ca7daf6794,0xbfd6accb81032b2d,2
+np.float64,0x3fc21dceb3243b9d,0x3fc1ff15d5d277a3,2
+np.float64,0x3fe483e445a907c9,0x3fe219ca0e269552,2
+np.float64,0x3fb2b1e2a22563c0,0x3fb2a96554900eaf,2
+np.float64,0x4b1ff6409641,0x4b1ff6409641,2
+np.float64,0xbfd92eabc9b25d58,0xbfd7f55d7776d64e,2
+np.float64,0x8003b8604c8770c1,0x8003b8604c8770c1,2
+np.float64,0x800d20a9df1a4154,0x800d20a9df1a4154,2
+np.float64,0xecf8a535d9f15,0xecf8a535d9f15,2
+np.float64,0x3fe92d15bab25a2b,0x3fe50296aa15ae85,2
+np.float64,0x800239c205a47385,0x800239c205a47385,2
+np.float64,0x3fc48664a9290cc8,0x3fc459d126320ef6,2
+np.float64,0x3fe7620625eec40c,0x3fe3f3bcbee3e8c6,2
+np.float64,0x3fd242ff4ca48600,0x3fd1c81ed7a971c8,2
+np.float64,0xbfe39bafcfa73760,0xbfe17959c7a279db,2
+np.float64,0x7fdcd2567239a4ac,0x3ff0000000000000,2
+np.float64,0x3fe5f2f292ebe5e6,0x3fe30d12f05e2752,2
+np.float64,0x7fda3819d1347033,0x3ff0000000000000,2
+np.float64,0xffca5b4d4334b69c,0xbff0000000000000,2
+np.float64,0xb8a2b7cd71457,0xb8a2b7cd71457,2
+np.float64,0x3fee689603fcd12c,0x3fe7ad4ace26d6dd,2
+np.float64,0x7fe26541a564ca82,0x3ff0000000000000,2
+np.float64,0x3fe6912ee66d225e,0x3fe3720d242c4d82,2
+np.float64,0xffe6580c75ecb018,0xbff0000000000000,2
+np.float64,0x7fe01a3370603466,0x3ff0000000000000,2
+np.float64,0xffe84e3f84b09c7e,0xbff0000000000000,2
+np.float64,0x3ff0000000000000,0x3fe85efab514f394,2
+np.float64,0x3fe214d4266429a8,0x3fe05fec03a3c247,2
+np.float64,0x3fd00aec5da015d8,0x3fcf6e070ad4ad62,2
+np.float64,0x800aac8631f5590d,0x800aac8631f5590d,2
+np.float64,0xbfe7c4f5f76f89ec,0xbfe42fc1c57b4a13,2
+np.float64,0xaf146c7d5e28e,0xaf146c7d5e28e,2
+np.float64,0xbfe57188b66ae312,0xbfe2b8be4615ef75,2
+np.float64,0xffef8cb8e1ff1971,0xbff0000000000000,2
+np.float64,0x8001daf8aa63b5f2,0x8001daf8aa63b5f2,2
+np.float64,0x3fdddcc339bbb986,0x3fdbde5f3783538b,2
+np.float64,0xdd8c92c3bb193,0xdd8c92c3bb193,2
+np.float64,0xbfe861a148f0c342,0xbfe48cf1d228a336,2
+np.float64,0xffe260a32e24c146,0xbff0000000000000,2
+np.float64,0x1f7474b43ee8f,0x1f7474b43ee8f,2
+np.float64,0x3fe81dbd89703b7c,0x3fe464d78df92b7b,2
+np.float64,0x7fed0101177a0201,0x3ff0000000000000,2
+np.float64,0x7fd8b419a8316832,0x3ff0000000000000,2
+np.float64,0x3fe93debccf27bd8,0x3fe50c27727917f0,2
+np.float64,0xe5ead05bcbd5a,0xe5ead05bcbd5a,2
+np.float64,0xbfebbbc4cff7778a,0xbfe663c4ca003bbf,2
+np.float64,0xbfea343eb474687e,0xbfe59529f73ea151,2
+np.float64,0x3fbe74a5963ce94b,0x3fbe50123ed05d8d,2
+np.float64,0x3fd31d3a5d263a75,0x3fd290c026cb38a5,2
+np.float64,0xbfd79908acaf3212,0xbfd695620e31c3c6,2
+np.float64,0xbfc26a350324d46c,0xbfc249f335f3e465,2
+np.float64,0xbfac38d5583871b0,0xbfac31866d12a45e,2
+np.float64,0x3fe40cea672819d5,0x3fe1c83754e72c92,2
+np.float64,0xbfa74770642e8ee0,0xbfa74355fcf67332,2
+np.float64,0x7fc60942d32c1285,0x3ff0000000000000,2
diff --git a/mkl_umath/tests/third_party/numpy/test_umath.py b/mkl_umath/tests/third_party/numpy/test_umath.py
new file mode 100644
index 0000000..a8a9087
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/test_umath.py
@@ -0,0 +1,4938 @@
+# This file includes tests from numpy:
+# https://github.com/numpy/numpy/blob/maintenance/2.3.x/numpy/_core/tests/test_umath.py
+# while mkl_umath.use_in_numpy() is activated to use mkl_umath in Numpy
+# any changes compared to the original file are tagged with CHANGED comment.
+
+import fnmatch
+import itertools
+import operator
+import platform
+import sys
+import warnings
+from collections import namedtuple
+from fractions import Fraction
+from functools import reduce
+
+import pytest
+
+import numpy as np
+import numpy._core.umath as ncu
+from numpy._core import _umath_tests as ncu_tests, sctypes
+from numpy.testing import (
+    HAS_REFCOUNT,
+    IS_MUSL,
+    IS_PYPY,
+    IS_WASM,
+    _gen_alignment_data,
+    assert_,
+    assert_allclose,
+    assert_almost_equal,
+    assert_array_almost_equal,
+    assert_array_almost_equal_nulp,
+    assert_array_equal,
+    assert_array_max_ulp,
+    assert_equal,
+    assert_no_warnings,
+    assert_raises,
+    assert_raises_regex,
+)
+from numpy.testing._private.utils import _glibc_older_than
+
+import mkl_umath  # CHANGED: For enabling mkl_umath in Numpy
+mkl_umath.use_in_numpy()
+
+UFUNCS = [obj for obj in np._core.umath.__dict__.values()
+         if isinstance(obj, np.ufunc)]
+
+UFUNCS_UNARY = [
+    uf for uf in UFUNCS if uf.nin == 1
+]
+UFUNCS_UNARY_FP = [
+    uf for uf in UFUNCS_UNARY if 'f->f' in uf.types
+]
+
+UFUNCS_BINARY = [
+    uf for uf in UFUNCS if uf.nin == 2
+]
+UFUNCS_BINARY_ACC = [
+    uf for uf in UFUNCS_BINARY if hasattr(uf, "accumulate") and uf.nout == 1
+]
+
+def interesting_binop_operands(val1, val2, dtype):
+    """
+    Helper to create "interesting" operands to cover common code paths:
+    * scalar inputs
+    * only first "values" is an array (e.g. scalar division fast-paths)
+    * Longer array (SIMD) placing the value of interest at different positions
+    * Oddly strided arrays which may not be SIMD compatible
+
+    It does not attempt to cover unaligned access or mixed dtypes.
+    These are normally handled by the casting/buffering machinery.
+
+    This is not a fixture (currently), since I believe a fixture normally
+    only yields once?
+    """
+    fill_value = 1  # could be a parameter, but maybe not an optional one?
+
+    arr1 = np.full(10003, dtype=dtype, fill_value=fill_value)
+    arr2 = np.full(10003, dtype=dtype, fill_value=fill_value)
+
+    arr1[0] = val1
+    arr2[0] = val2
+
+    extractor = lambda res: res
+    yield arr1[0], arr2[0], extractor, "scalars"
+
+    extractor = lambda res: res
+    yield arr1[0, ...], arr2[0, ...], extractor, "scalar-arrays"
+
+    # reset array values to fill_value:
+    arr1[0] = fill_value
+    arr2[0] = fill_value
+
+    for pos in [0, 1, 2, 3, 4, 5, -1, -2, -3, -4]:
+        arr1[pos] = val1
+        arr2[pos] = val2
+
+        extractor = lambda res: res[pos]
+        yield arr1, arr2, extractor, f"off-{pos}"
+        yield arr1, arr2[pos], extractor, f"off-{pos}-with-scalar"
+
+        arr1[pos] = fill_value
+        arr2[pos] = fill_value
+
+    for stride in [-1, 113]:
+        op1 = arr1[::stride]
+        op2 = arr2[::stride]
+        op1[10] = val1
+        op2[10] = val2
+
+        extractor = lambda res: res[10]
+        yield op1, op2, extractor, f"stride-{stride}"
+
+        op1[10] = fill_value
+        op2[10] = fill_value
+
+
+def on_powerpc():
+    """ True if we are running on a Power PC platform."""
+    return platform.processor() == 'powerpc' or \
+           platform.machine().startswith('ppc')
+
+
+def bad_arcsinh():
+    """The blocklisted trig functions are not accurate on aarch64/PPC for
+    complex256. Rather than dig through the actual problem skip the
+    test. This should be fixed when we can move past glibc2.17
+    which is the version in manylinux2014
+    """
+    if platform.machine() == 'aarch64':
+        x = 1.78e-10
+    elif on_powerpc():
+        x = 2.16e-10
+    else:
+        return False
+    v1 = np.arcsinh(np.float128(x))
+    v2 = np.arcsinh(np.complex256(x)).real
+    # The eps for float128 is 1-e33, so this is way bigger
+    return abs((v1 / v2) - 1.0) > 1e-23
+
+
+class _FilterInvalids:
+    def setup_method(self):
+        self.olderr = np.seterr(invalid='ignore')
+
+    def teardown_method(self):
+        np.seterr(**self.olderr)
+
+
+class TestConstants:
+    def test_pi(self):
+        assert_allclose(ncu.pi, 3.141592653589793, 1e-15)
+
+    def test_e(self):
+        assert_allclose(ncu.e, 2.718281828459045, 1e-15)
+
+    def test_euler_gamma(self):
+        assert_allclose(ncu.euler_gamma, 0.5772156649015329, 1e-15)
+
+
+class TestOut:
+    def test_out_subok(self):
+        for subok in (True, False):
+            a = np.array(0.5)
+            o = np.empty(())
+
+            r = np.add(a, 2, o, subok=subok)
+            assert_(r is o)
+            r = np.add(a, 2, out=o, subok=subok)
+            assert_(r is o)
+            r = np.add(a, 2, out=(o,), subok=subok)
+            assert_(r is o)
+
+            d = np.array(5.7)
+            o1 = np.empty(())
+            o2 = np.empty((), dtype=np.int32)
+
+            r1, r2 = np.frexp(d, o1, None, subok=subok)
+            assert_(r1 is o1)
+            r1, r2 = np.frexp(d, None, o2, subok=subok)
+            assert_(r2 is o2)
+            r1, r2 = np.frexp(d, o1, o2, subok=subok)
+            assert_(r1 is o1)
+            assert_(r2 is o2)
+
+            r1, r2 = np.frexp(d, out=(o1, None), subok=subok)
+            assert_(r1 is o1)
+            r1, r2 = np.frexp(d, out=(None, o2), subok=subok)
+            assert_(r2 is o2)
+            r1, r2 = np.frexp(d, out=(o1, o2), subok=subok)
+            assert_(r1 is o1)
+            assert_(r2 is o2)
+
+            with assert_raises(TypeError):
+                # Out argument must be tuple, since there are multiple outputs.
+                r1, r2 = np.frexp(d, out=o1, subok=subok)
+
+            assert_raises(TypeError, np.add, a, 2, o, o, subok=subok)
+            assert_raises(TypeError, np.add, a, 2, o, out=o, subok=subok)
+            assert_raises(TypeError, np.add, a, 2, None, out=o, subok=subok)
+            assert_raises(ValueError, np.add, a, 2, out=(o, o), subok=subok)
+            assert_raises(ValueError, np.add, a, 2, out=(), subok=subok)
+            assert_raises(TypeError, np.add, a, 2, [], subok=subok)
+            assert_raises(TypeError, np.add, a, 2, out=[], subok=subok)
+            assert_raises(TypeError, np.add, a, 2, out=([],), subok=subok)
+            o.flags.writeable = False
+            assert_raises(ValueError, np.add, a, 2, o, subok=subok)
+            assert_raises(ValueError, np.add, a, 2, out=o, subok=subok)
+            assert_raises(ValueError, np.add, a, 2, out=(o,), subok=subok)
+
+    def test_out_wrap_subok(self):
+        class ArrayWrap(np.ndarray):
+            __array_priority__ = 10
+
+            def __new__(cls, arr):
+                return np.asarray(arr).view(cls).copy()
+
+            def __array_wrap__(self, arr, context=None, return_scalar=False):
+                return arr.view(type(self))
+
+        for subok in (True, False):
+            a = ArrayWrap([0.5])
+
+            r = np.add(a, 2, subok=subok)
+            if subok:
+                assert_(isinstance(r, ArrayWrap))
+            else:
+                assert_(type(r) == np.ndarray)
+
+            r = np.add(a, 2, None, subok=subok)
+            if subok:
+                assert_(isinstance(r, ArrayWrap))
+            else:
+                assert_(type(r) == np.ndarray)
+
+            r = np.add(a, 2, out=None, subok=subok)
+            if subok:
+                assert_(isinstance(r, ArrayWrap))
+            else:
+                assert_(type(r) == np.ndarray)
+
+            r = np.add(a, 2, out=(None,), subok=subok)
+            if subok:
+                assert_(isinstance(r, ArrayWrap))
+            else:
+                assert_(type(r) == np.ndarray)
+
+            d = ArrayWrap([5.7])
+            o1 = np.empty((1,))
+            o2 = np.empty((1,), dtype=np.int32)
+
+            r1, r2 = np.frexp(d, o1, subok=subok)
+            if subok:
+                assert_(isinstance(r2, ArrayWrap))
+            else:
+                assert_(type(r2) == np.ndarray)
+
+            r1, r2 = np.frexp(d, o1, None, subok=subok)
+            if subok:
+                assert_(isinstance(r2, ArrayWrap))
+            else:
+                assert_(type(r2) == np.ndarray)
+
+            r1, r2 = np.frexp(d, None, o2, subok=subok)
+            if subok:
+                assert_(isinstance(r1, ArrayWrap))
+            else:
+                assert_(type(r1) == np.ndarray)
+
+            r1, r2 = np.frexp(d, out=(o1, None), subok=subok)
+            if subok:
+                assert_(isinstance(r2, ArrayWrap))
+            else:
+                assert_(type(r2) == np.ndarray)
+
+            r1, r2 = np.frexp(d, out=(None, o2), subok=subok)
+            if subok:
+                assert_(isinstance(r1, ArrayWrap))
+            else:
+                assert_(type(r1) == np.ndarray)
+
+            with assert_raises(TypeError):
+                # Out argument must be tuple, since there are multiple outputs.
+                r1, r2 = np.frexp(d, out=o1, subok=subok)
+
+    @pytest.mark.skipif(not HAS_REFCOUNT, reason="Python lacks refcounts")
+    def test_out_wrap_no_leak(self):
+        # Regression test for gh-26545
+        class ArrSubclass(np.ndarray):
+            pass
+
+        arr = np.arange(10).view(ArrSubclass)
+        orig_refcount = sys.getrefcount(arr)
+        arr *= 1
+        assert sys.getrefcount(arr) == orig_refcount
+
+
+class TestComparisons:
+    import operator
+
+    @pytest.mark.parametrize('dtype', sctypes['uint'] + sctypes['int'] +
+                             sctypes['float'] + [np.bool])
+    @pytest.mark.parametrize('py_comp,np_comp', [
+        (operator.lt, np.less),
+        (operator.le, np.less_equal),
+        (operator.gt, np.greater),
+        (operator.ge, np.greater_equal),
+        (operator.eq, np.equal),
+        (operator.ne, np.not_equal)
+    ])
+    def test_comparison_functions(self, dtype, py_comp, np_comp):
+        # Initialize input arrays
+        if dtype == np.bool:
+            a = np.random.choice(a=[False, True], size=1000)
+            b = np.random.choice(a=[False, True], size=1000)
+            scalar = True
+        else:
+            a = np.random.randint(low=1, high=10, size=1000).astype(dtype)
+            b = np.random.randint(low=1, high=10, size=1000).astype(dtype)
+            scalar = 5
+        np_scalar = np.dtype(dtype).type(scalar)
+        a_lst = a.tolist()
+        b_lst = b.tolist()
+
+        # (Binary) Comparison (x1=array, x2=array)
+        comp_b = np_comp(a, b).view(np.uint8)
+        comp_b_list = [int(py_comp(x, y)) for x, y in zip(a_lst, b_lst)]
+
+        # (Scalar1) Comparison (x1=scalar, x2=array)
+        comp_s1 = np_comp(np_scalar, b).view(np.uint8)
+        comp_s1_list = [int(py_comp(scalar, x)) for x in b_lst]
+
+        # (Scalar2) Comparison (x1=array, x2=scalar)
+        comp_s2 = np_comp(a, np_scalar).view(np.uint8)
+        comp_s2_list = [int(py_comp(x, scalar)) for x in a_lst]
+
+        # Sequence: Binary, Scalar1 and Scalar2
+        assert_(comp_b.tolist() == comp_b_list,
+            f"Failed comparison ({py_comp.__name__})")
+        assert_(comp_s1.tolist() == comp_s1_list,
+            f"Failed comparison ({py_comp.__name__})")
+        assert_(comp_s2.tolist() == comp_s2_list,
+            f"Failed comparison ({py_comp.__name__})")
+
+    def test_ignore_object_identity_in_equal(self):
+        # Check comparing identical objects whose comparison
+        # is not a simple boolean, e.g., arrays that are compared elementwise.
+        a = np.array([np.array([1, 2, 3]), None], dtype=object)
+        assert_raises(ValueError, np.equal, a, a)
+
+        # Check error raised when comparing identical non-comparable objects.
+        class FunkyType:
+            def __eq__(self, other):
+                raise TypeError("I won't compare")
+
+        a = np.array([FunkyType()])
+        assert_raises(TypeError, np.equal, a, a)
+
+        # Check identity doesn't override comparison mismatch.
+        a = np.array([np.nan], dtype=object)
+        assert_equal(np.equal(a, a), [False])
+
+    def test_ignore_object_identity_in_not_equal(self):
+        # Check comparing identical objects whose comparison
+        # is not a simple boolean, e.g., arrays that are compared elementwise.
+        a = np.array([np.array([1, 2, 3]), None], dtype=object)
+        assert_raises(ValueError, np.not_equal, a, a)
+
+        # Check error raised when comparing identical non-comparable objects.
+        class FunkyType:
+            def __ne__(self, other):
+                raise TypeError("I won't compare")
+
+        a = np.array([FunkyType()])
+        assert_raises(TypeError, np.not_equal, a, a)
+
+        # Check identity doesn't override comparison mismatch.
+        a = np.array([np.nan], dtype=object)
+        assert_equal(np.not_equal(a, a), [True])
+
+    def test_error_in_equal_reduce(self):
+        # gh-20929
+        # make sure np.equal.reduce raises a TypeError if an array is passed
+        # without specifying the dtype
+        a = np.array([0, 0])
+        assert_equal(np.equal.reduce(a, dtype=bool), True)
+        assert_raises(TypeError, np.equal.reduce, a)
+
+    def test_object_dtype(self):
+        assert np.equal(1, [1], dtype=object).dtype == object
+        assert np.equal(1, [1], signature=(None, None, "O")).dtype == object
+
+    def test_object_nonbool_dtype_error(self):
+        # bool output dtype is fine of course:
+        assert np.equal(1, [1], dtype=bool).dtype == bool
+
+        # but the following are examples do not have a loop:
+        with pytest.raises(TypeError, match="No loop matching"):
+            np.equal(1, 1, dtype=np.int64)
+
+        with pytest.raises(TypeError, match="No loop matching"):
+            np.equal(1, 1, sig=(None, None, "l"))
+
+    @pytest.mark.parametrize("dtypes", ["qQ", "Qq"])
+    @pytest.mark.parametrize('py_comp, np_comp', [
+        (operator.lt, np.less),
+        (operator.le, np.less_equal),
+        (operator.gt, np.greater),
+        (operator.ge, np.greater_equal),
+        (operator.eq, np.equal),
+        (operator.ne, np.not_equal)
+    ])
+    @pytest.mark.parametrize("vals", [(2**60, 2**60 + 1), (2**60 + 1, 2**60)])
+    def test_large_integer_direct_comparison(
+            self, dtypes, py_comp, np_comp, vals):
+        # Note that float(2**60) + 1 == float(2**60).
+        a1 = np.array([2**60], dtype=dtypes[0])
+        a2 = np.array([2**60 + 1], dtype=dtypes[1])
+        expected = py_comp(2**60, 2**60 + 1)
+
+        assert py_comp(a1, a2) == expected
+        assert np_comp(a1, a2) == expected
+        # Also check the scalars:
+        s1 = a1[0]
+        s2 = a2[0]
+        assert isinstance(s1, np.integer)
+        assert isinstance(s2, np.integer)
+        # The Python operator here is mainly interesting:
+        assert py_comp(s1, s2) == expected
+        assert np_comp(s1, s2) == expected
+
+    @pytest.mark.parametrize("dtype", np.typecodes['UnsignedInteger'])
+    @pytest.mark.parametrize('py_comp_func, np_comp_func', [
+        (operator.lt, np.less),
+        (operator.le, np.less_equal),
+        (operator.gt, np.greater),
+        (operator.ge, np.greater_equal),
+        (operator.eq, np.equal),
+        (operator.ne, np.not_equal)
+    ])
+    @pytest.mark.parametrize("flip", [True, False])
+    def test_unsigned_signed_direct_comparison(
+            self, dtype, py_comp_func, np_comp_func, flip):
+        if flip:
+            py_comp = lambda x, y: py_comp_func(y, x)
+            np_comp = lambda x, y: np_comp_func(y, x)
+        else:
+            py_comp = py_comp_func
+            np_comp = np_comp_func
+
+        arr = np.array([np.iinfo(dtype).max], dtype=dtype)
+        expected = py_comp(int(arr[0]), -1)
+
+        assert py_comp(arr, -1) == expected
+        assert np_comp(arr, -1) == expected
+
+        scalar = arr[0]
+        assert isinstance(scalar, np.integer)
+        # The Python operator here is mainly interesting:
+        assert py_comp(scalar, -1) == expected
+        assert np_comp(scalar, -1) == expected
+
+
+class TestAdd:
+    def test_reduce_alignment(self):
+        # gh-9876
+        # make sure arrays with weird strides work with the optimizations in
+        # pairwise_sum_@TYPE@. On x86, the 'b' field will count as aligned at a
+        # 4 byte offset, even though its itemsize is 8.
+        a = np.zeros(2, dtype=[('a', np.int32), ('b', np.float64)])
+        a['a'] = -1
+        assert_equal(a['b'].sum(), 0)
+
+
+class TestDivision:
+    def test_division_int(self):
+        # int division should follow Python
+        x = np.array([5, 10, 90, 100, -5, -10, -90, -100, -120])
+        if 5 / 10 == 0.5:
+            assert_equal(x / 100, [0.05, 0.1, 0.9, 1,
+                                   -0.05, -0.1, -0.9, -1, -1.2])
+        else:
+            assert_equal(x / 100, [0, 0, 0, 1, -1, -1, -1, -1, -2])
+        assert_equal(x // 100, [0, 0, 0, 1, -1, -1, -1, -1, -2])
+        assert_equal(x % 100, [5, 10, 90, 0, 95, 90, 10, 0, 80])
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize("dtype,ex_val", itertools.product(
+        sctypes['int'] + sctypes['uint'], (
+            (
+                # dividend
+                "np.array(range(fo.max-lsize, fo.max)).astype(dtype),"
+                # divisors
+                "np.arange(lsize).astype(dtype),"
+                # scalar divisors
+                "range(15)"
+            ),
+            (
+                # dividend
+                "np.arange(fo.min, fo.min+lsize).astype(dtype),"
+                # divisors
+                "np.arange(lsize//-2, lsize//2).astype(dtype),"
+                # scalar divisors
+                "range(fo.min, fo.min + 15)"
+            ), (
+                # dividend
+                "np.array(range(fo.max-lsize, fo.max)).astype(dtype),"
+                # divisors
+                "np.arange(lsize).astype(dtype),"
+                # scalar divisors
+                "[1,3,9,13,neg, fo.min+1, fo.min//2, fo.max//3, fo.max//4]"
+            )
+        )
+    ))
+    def test_division_int_boundary(self, dtype, ex_val):
+        fo = np.iinfo(dtype)
+        neg = -1 if fo.min < 0 else 1
+        # Large enough to test SIMD loops and remainder elements
+        lsize = 512 + 7
+        a, b, divisors = eval(ex_val)
+        a_lst, b_lst = a.tolist(), b.tolist()
+
+        c_div = lambda n, d: (
+            0 if d == 0 else (
+                fo.min if (n and n == fo.min and d == -1) else n // d
+            )
+        )
+        with np.errstate(divide='ignore'):
+            ac = a.copy()
+            ac //= b
+            div_ab = a // b
+        div_lst = [c_div(x, y) for x, y in zip(a_lst, b_lst)]
+
+        msg = "Integer arrays floor division check (//)"
+        assert all(div_ab == div_lst), msg
+        msg_eq = "Integer arrays floor division check (//=)"
+        assert all(ac == div_lst), msg_eq
+
+        for divisor in divisors:
+            ac = a.copy()
+            with np.errstate(divide='ignore', over='ignore'):
+                div_a = a // divisor
+                ac //= divisor
+            div_lst = [c_div(i, divisor) for i in a_lst]
+
+            assert all(div_a == div_lst), msg
+            assert all(ac == div_lst), msg_eq
+
+        with np.errstate(divide='raise', over='raise'):
+            if 0 in b:
+                # Verify overflow case
+                with pytest.raises(FloatingPointError,
+                        match="divide by zero encountered in floor_divide"):
+                    a // b
+            else:
+                a // b
+            if fo.min and fo.min in a:
+                with pytest.raises(FloatingPointError,
+                        match='overflow encountered in floor_divide'):
+                    a // -1
+            elif fo.min:
+                a // -1
+            with pytest.raises(FloatingPointError,
+                    match="divide by zero encountered in floor_divide"):
+                a // 0
+            with pytest.raises(FloatingPointError,
+                    match="divide by zero encountered in floor_divide"):
+                ac = a.copy()
+                ac //= 0
+
+            np.array([], dtype=dtype) // 0
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize("dtype,ex_val", itertools.product(
+        sctypes['int'] + sctypes['uint'], (
+            "np.array([fo.max, 1, 2, 1, 1, 2, 3], dtype=dtype)",
+            "np.array([fo.min, 1, -2, 1, 1, 2, -3]).astype(dtype)",
+            "np.arange(fo.min, fo.min+(100*10), 10, dtype=dtype)",
+            "np.array(range(fo.max-(100*7), fo.max, 7)).astype(dtype)",
+        )
+    ))
+    def test_division_int_reduce(self, dtype, ex_val):
+        fo = np.iinfo(dtype)
+        a = eval(ex_val)
+        lst = a.tolist()
+        c_div = lambda n, d: (
+            0 if d == 0 or (n and n == fo.min and d == -1) else n // d
+        )
+
+        with np.errstate(divide='ignore'):
+            div_a = np.floor_divide.reduce(a)
+        div_lst = reduce(c_div, lst)
+        msg = "Reduce floor integer division check"
+        assert div_a == div_lst, msg
+
+        with np.errstate(divide='raise', over='raise'):
+            with pytest.raises(FloatingPointError,
+                    match="divide by zero encountered in reduce"):
+                np.floor_divide.reduce(np.arange(-100, 100).astype(dtype))
+            if fo.min:
+                with pytest.raises(FloatingPointError,
+                        match='overflow encountered in reduce'):
+                    np.floor_divide.reduce(
+                        np.array([fo.min, 1, -1], dtype=dtype)
+                    )
+
+    @pytest.mark.parametrize(
+            "dividend,divisor,quotient",
+            [(np.timedelta64(2, 'Y'), np.timedelta64(2, 'M'), 12),
+             (np.timedelta64(2, 'Y'), np.timedelta64(-2, 'M'), -12),
+             (np.timedelta64(-2, 'Y'), np.timedelta64(2, 'M'), -12),
+             (np.timedelta64(-2, 'Y'), np.timedelta64(-2, 'M'), 12),
+             (np.timedelta64(2, 'M'), np.timedelta64(-2, 'Y'), -1),
+             (np.timedelta64(2, 'Y'), np.timedelta64(0, 'M'), 0),
+             (np.timedelta64(2, 'Y'), 2, np.timedelta64(1, 'Y')),
+             (np.timedelta64(2, 'Y'), -2, np.timedelta64(-1, 'Y')),
+             (np.timedelta64(-2, 'Y'), 2, np.timedelta64(-1, 'Y')),
+             (np.timedelta64(-2, 'Y'), -2, np.timedelta64(1, 'Y')),
+             (np.timedelta64(-2, 'Y'), -2, np.timedelta64(1, 'Y')),
+             (np.timedelta64(-2, 'Y'), -3, np.timedelta64(0, 'Y')),
+             (np.timedelta64(-2, 'Y'), 0, np.timedelta64('Nat', 'Y')),
+            ])
+    def test_division_int_timedelta(self, dividend, divisor, quotient):
+        # If either divisor is 0 or quotient is Nat, check for division by 0
+        if divisor and (isinstance(quotient, int) or not np.isnat(quotient)):
+            msg = "Timedelta floor division check"
+            assert dividend // divisor == quotient, msg
+
+            # Test for arrays as well
+            msg = "Timedelta arrays floor division check"
+            dividend_array = np.array([dividend] * 5)
+            quotient_array = np.array([quotient] * 5)
+            assert all(dividend_array // divisor == quotient_array), msg
+        else:
+            if IS_WASM:
+                pytest.skip("fp errors don't work in wasm")
+            with np.errstate(divide='raise', invalid='raise'):
+                with pytest.raises(FloatingPointError):
+                    dividend // divisor
+
+    def test_division_complex(self):
+        # check that implementation is correct
+        msg = "Complex division implementation check"
+        x = np.array([1. + 1. * 1j, 1. + .5 * 1j, 1. + 2. * 1j], dtype=np.complex128)
+        assert_almost_equal(x**2 / x, x, err_msg=msg)
+        # check overflow, underflow
+        msg = "Complex division overflow/underflow check"
+        x = np.array([1.e+110, 1.e-110], dtype=np.complex128)
+        y = x**2 / x
+        assert_almost_equal(y / x, [1, 1], err_msg=msg)
+
+    def test_zero_division_complex(self):
+        with np.errstate(invalid="ignore", divide="ignore"):
+            x = np.array([0.0], dtype=np.complex128)
+            y = 1.0 / x
+            assert_(np.isinf(y)[0])
+            y = complex(np.inf, np.nan) / x
+            assert_(np.isinf(y)[0])
+            y = complex(np.nan, np.inf) / x
+            assert_(np.isinf(y)[0])
+            y = complex(np.inf, np.inf) / x
+            assert_(np.isinf(y)[0])
+            y = 0.0 / x
+            assert_(np.isnan(y)[0])
+
+    def test_floor_division_complex(self):
+        # check that floor division, divmod and remainder raises type errors
+        x = np.array([.9 + 1j, -.1 + 1j, .9 + .5 * 1j, .9 + 2. * 1j], dtype=np.complex128)
+        with pytest.raises(TypeError):
+            x // 7
+        with pytest.raises(TypeError):
+            np.divmod(x, 7)
+        with pytest.raises(TypeError):
+            np.remainder(x, 7)
+
+    def test_floor_division_signed_zero(self):
+        # Check that the sign bit is correctly set when dividing positive and
+        # negative zero by one.
+        x = np.zeros(10)
+        assert_equal(np.signbit(x // 1), 0)
+        assert_equal(np.signbit((-x) // 1), 1)
+
+    @pytest.mark.skipif(hasattr(np.__config__, "blas_ssl2_info"),
+            reason="gh-22982")
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize('dtype', np.typecodes['Float'])
+    def test_floor_division_errors(self, dtype):
+        fnan = np.array(np.nan, dtype=dtype)
+        fone = np.array(1.0, dtype=dtype)
+        fzer = np.array(0.0, dtype=dtype)
+        finf = np.array(np.inf, dtype=dtype)
+        # divide by zero error check
+        with np.errstate(divide='raise', invalid='ignore'):
+            assert_raises(FloatingPointError, np.floor_divide, fone, fzer)
+        with np.errstate(divide='ignore', invalid='raise'):
+            np.floor_divide(fone, fzer)
+
+        # The following already contain a NaN and should not warn
+        with np.errstate(all='raise'):
+            np.floor_divide(fnan, fone)
+            np.floor_divide(fone, fnan)
+            np.floor_divide(fnan, fzer)
+            np.floor_divide(fzer, fnan)
+
+    @pytest.mark.parametrize('dtype', np.typecodes['Float'])
+    def test_floor_division_corner_cases(self, dtype):
+        # test corner cases like 1.0//0.0 for errors and return vals
+        x = np.zeros(10, dtype=dtype)
+        y = np.ones(10, dtype=dtype)
+        fnan = np.array(np.nan, dtype=dtype)
+        fone = np.array(1.0, dtype=dtype)
+        fzer = np.array(0.0, dtype=dtype)
+        finf = np.array(np.inf, dtype=dtype)
+        with warnings.catch_warnings():
+            warnings.filterwarnings('ignore', "invalid value encountered in floor_divide", RuntimeWarning)
+            div = np.floor_divide(fnan, fone)
+            assert np.isnan(div), f"div: {div}"
+            div = np.floor_divide(fone, fnan)
+            assert np.isnan(div), f"div: {div}"
+            div = np.floor_divide(fnan, fzer)
+            assert np.isnan(div), f"div: {div}"
+        # verify 1.0//0.0 computations return inf
+        with np.errstate(divide='ignore'):
+            z = np.floor_divide(y, x)
+            assert_(np.isinf(z).all())
+
+def floor_divide_and_remainder(x, y):
+    return (np.floor_divide(x, y), np.remainder(x, y))
+
+
+def _signs(dt):
+    if dt in np.typecodes['UnsignedInteger']:
+        return (+1,)
+    else:
+        return (+1, -1)
+
+
+class TestRemainder:
+
+    def test_remainder_basic(self):
+        dt = np.typecodes['AllInteger'] + np.typecodes['Float']
+        for op in [floor_divide_and_remainder, np.divmod]:
+            for dt1, dt2 in itertools.product(dt, dt):
+                for sg1, sg2 in itertools.product(_signs(dt1), _signs(dt2)):
+                    fmt = 'op: %s, dt1: %s, dt2: %s, sg1: %s, sg2: %s'
+                    msg = fmt % (op.__name__, dt1, dt2, sg1, sg2)
+                    a = np.array(sg1 * 71, dtype=dt1)
+                    b = np.array(sg2 * 19, dtype=dt2)
+                    div, rem = op(a, b)
+                    assert_equal(div * b + rem, a, err_msg=msg)
+                    if sg2 == -1:
+                        assert_(b < rem <= 0, msg)
+                    else:
+                        assert_(b > rem >= 0, msg)
+
+    def test_float_remainder_exact(self):
+        # test that float results are exact for small integers. This also
+        # holds for the same integers scaled by powers of two.
+        nlst = list(range(-127, 0))
+        plst = list(range(1, 128))
+        dividend = nlst + [0] + plst
+        divisor = nlst + plst
+        arg = list(itertools.product(dividend, divisor))
+        tgt = [divmod(*t) for t in arg]
+
+        a, b = np.array(arg, dtype=int).T
+        # convert exact integer results from Python to float so that
+        # signed zero can be used, it is checked.
+        tgtdiv, tgtrem = np.array(tgt, dtype=float).T
+        tgtdiv = np.where((tgtdiv == 0.0) & ((b < 0) ^ (a < 0)), -0.0, tgtdiv)
+        tgtrem = np.where((tgtrem == 0.0) & (b < 0), -0.0, tgtrem)
+
+        for op in [floor_divide_and_remainder, np.divmod]:
+            for dt in np.typecodes['Float']:
+                msg = f'op: {op.__name__}, dtype: {dt}'
+                fa = a.astype(dt)
+                fb = b.astype(dt)
+                div, rem = op(fa, fb)
+                assert_equal(div, tgtdiv, err_msg=msg)
+                assert_equal(rem, tgtrem, err_msg=msg)
+
+    def test_float_remainder_roundoff(self):
+        # gh-6127
+        dt = np.typecodes['Float']
+        for op in [floor_divide_and_remainder, np.divmod]:
+            for dt1, dt2 in itertools.product(dt, dt):
+                for sg1, sg2 in itertools.product((+1, -1), (+1, -1)):
+                    fmt = 'op: %s, dt1: %s, dt2: %s, sg1: %s, sg2: %s'
+                    msg = fmt % (op.__name__, dt1, dt2, sg1, sg2)
+                    a = np.array(sg1 * 78 * 6e-8, dtype=dt1)
+                    b = np.array(sg2 * 6e-8, dtype=dt2)
+                    div, rem = op(a, b)
+                    # Equal assertion should hold when fmod is used
+                    assert_equal(div * b + rem, a, err_msg=msg)
+                    if sg2 == -1:
+                        assert_(b < rem <= 0, msg)
+                    else:
+                        assert_(b > rem >= 0, msg)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.xfail(sys.platform.startswith("darwin"),
+            reason="MacOS seems to not give the correct 'invalid' warning for "
+                   "`fmod`.  Hopefully, others always do.")
+    @pytest.mark.parametrize('dtype', np.typecodes['Float'])
+    def test_float_divmod_errors(self, dtype):
+        # Check valid errors raised for divmod and remainder
+        fzero = np.array(0.0, dtype=dtype)
+        fone = np.array(1.0, dtype=dtype)
+        finf = np.array(np.inf, dtype=dtype)
+        fnan = np.array(np.nan, dtype=dtype)
+        # since divmod is combination of both remainder and divide
+        # ops it will set both dividebyzero and invalid flags
+        with np.errstate(divide='raise', invalid='ignore'):
+            assert_raises(FloatingPointError, np.divmod, fone, fzero)
+        with np.errstate(divide='ignore', invalid='raise'):
+            assert_raises(FloatingPointError, np.divmod, fone, fzero)
+        with np.errstate(invalid='raise'):
+            assert_raises(FloatingPointError, np.divmod, fzero, fzero)
+        with np.errstate(invalid='raise'):
+            assert_raises(FloatingPointError, np.divmod, finf, finf)
+        with np.errstate(divide='ignore', invalid='raise'):
+            assert_raises(FloatingPointError, np.divmod, finf, fzero)
+        with np.errstate(divide='raise', invalid='ignore'):
+            # inf / 0 does not set any flags, only the modulo creates a NaN
+            np.divmod(finf, fzero)
+
+    @pytest.mark.skipif(hasattr(np.__config__, "blas_ssl2_info"),
+            reason="gh-22982")
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.xfail(sys.platform.startswith("darwin"),
+           reason="MacOS seems to not give the correct 'invalid' warning for "
+                  "`fmod`.  Hopefully, others always do.")
+    @pytest.mark.parametrize('dtype', np.typecodes['Float'])
+    @pytest.mark.parametrize('fn', [np.fmod, np.remainder])
+    def test_float_remainder_errors(self, dtype, fn):
+        fzero = np.array(0.0, dtype=dtype)
+        fone = np.array(1.0, dtype=dtype)
+        finf = np.array(np.inf, dtype=dtype)
+        fnan = np.array(np.nan, dtype=dtype)
+
+        # The following already contain a NaN and should not warn.
+        with np.errstate(all='raise'):
+            with pytest.raises(FloatingPointError,
+                    match="invalid value"):
+                fn(fone, fzero)
+            fn(fnan, fzero)
+            fn(fzero, fnan)
+            fn(fone, fnan)
+            fn(fnan, fone)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_float_remainder_overflow(self):
+        a = np.finfo(np.float64).tiny
+        with np.errstate(over='ignore', invalid='ignore'):
+            div, mod = np.divmod(4, a)
+            np.isinf(div)
+            assert_(mod == 0)
+        with np.errstate(over='raise', invalid='ignore'):
+            assert_raises(FloatingPointError, np.divmod, 4, a)
+        with np.errstate(invalid='raise', over='ignore'):
+            assert_raises(FloatingPointError, np.divmod, 4, a)
+
+    def test_float_divmod_corner_cases(self):
+        # check nan cases
+        for dt in np.typecodes['Float']:
+            fnan = np.array(np.nan, dtype=dt)
+            fone = np.array(1.0, dtype=dt)
+            fzer = np.array(0.0, dtype=dt)
+            finf = np.array(np.inf, dtype=dt)
+            with warnings.catch_warnings():
+                warnings.filterwarnings('ignore', "invalid value encountered in divmod", RuntimeWarning)
+                warnings.filterwarnings('ignore', "divide by zero encountered in divmod", RuntimeWarning)
+                div, rem = np.divmod(fone, fzer)
+                assert np.isinf(div), f'dt: {dt}, div: {rem}'
+                assert np.isnan(rem), f'dt: {dt}, rem: {rem}'
+                div, rem = np.divmod(fzer, fzer)
+                assert np.isnan(rem), f'dt: {dt}, rem: {rem}'
+                assert_(np.isnan(div)), f'dt: {dt}, rem: {rem}'
+                div, rem = np.divmod(finf, finf)
+                assert np.isnan(div), f'dt: {dt}, rem: {rem}'
+                assert np.isnan(rem), f'dt: {dt}, rem: {rem}'
+                div, rem = np.divmod(finf, fzer)
+                assert np.isinf(div), f'dt: {dt}, rem: {rem}'
+                assert np.isnan(rem), f'dt: {dt}, rem: {rem}'
+                div, rem = np.divmod(fnan, fone)
+                assert np.isnan(rem), f"dt: {dt}, rem: {rem}"
+                assert np.isnan(div), f"dt: {dt}, rem: {rem}"
+                div, rem = np.divmod(fone, fnan)
+                assert np.isnan(rem), f"dt: {dt}, rem: {rem}"
+                assert np.isnan(div), f"dt: {dt}, rem: {rem}"
+                div, rem = np.divmod(fnan, fzer)
+                assert np.isnan(rem), f"dt: {dt}, rem: {rem}"
+                assert np.isnan(div), f"dt: {dt}, rem: {rem}"
+
+    def test_float_remainder_corner_cases(self):
+        # Check remainder magnitude.
+        for dt in np.typecodes['Float']:
+            fone = np.array(1.0, dtype=dt)
+            fzer = np.array(0.0, dtype=dt)
+            fnan = np.array(np.nan, dtype=dt)
+            b = np.array(1.0, dtype=dt)
+            a = np.nextafter(np.array(0.0, dtype=dt), -b)
+            rem = np.remainder(a, b)
+            assert_(rem <= b, f'dt: {dt}')
+            rem = np.remainder(-a, -b)
+            assert_(rem >= -b, f'dt: {dt}')
+
+        # Check nans, inf
+        with warnings.catch_warnings():
+            warnings.filterwarnings('ignore', "invalid value encountered in remainder", RuntimeWarning)
+            warnings.filterwarnings('ignore', "invalid value encountered in fmod", RuntimeWarning)
+            for dt in np.typecodes['Float']:
+                fone = np.array(1.0, dtype=dt)
+                fzer = np.array(0.0, dtype=dt)
+                finf = np.array(np.inf, dtype=dt)
+                fnan = np.array(np.nan, dtype=dt)
+                rem = np.remainder(fone, fzer)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                # MSVC 2008 returns NaN here, so disable the check.
+                #rem = np.remainder(fone, finf)
+                #assert_(rem == fone, 'dt: %s, rem: %s' % (dt, rem))
+                rem = np.remainder(finf, fone)
+                fmod = np.fmod(finf, fone)
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {fmod}')
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                rem = np.remainder(finf, finf)
+                fmod = np.fmod(finf, fone)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {fmod}')
+                rem = np.remainder(finf, fzer)
+                fmod = np.fmod(finf, fzer)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {fmod}')
+                rem = np.remainder(fone, fnan)
+                fmod = np.fmod(fone, fnan)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {fmod}')
+                rem = np.remainder(fnan, fzer)
+                fmod = np.fmod(fnan, fzer)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {rem}')
+                rem = np.remainder(fnan, fone)
+                fmod = np.fmod(fnan, fone)
+                assert_(np.isnan(rem), f'dt: {dt}, rem: {rem}')
+                assert_(np.isnan(fmod), f'dt: {dt}, fmod: {rem}')
+
+
+class TestDivisionIntegerOverflowsAndDivideByZero:
+    result_type = namedtuple('result_type',
+            ['nocast', 'casted'])
+    helper_lambdas = {
+        'zero': lambda dtype: 0,
+        'min': lambda dtype: np.iinfo(dtype).min,
+        'neg_min': lambda dtype: -np.iinfo(dtype).min,
+        'min-zero': lambda dtype: (np.iinfo(dtype).min, 0),
+        'neg_min-zero': lambda dtype: (-np.iinfo(dtype).min, 0),
+    }
+    overflow_results = {
+        np.remainder: result_type(
+            helper_lambdas['zero'], helper_lambdas['zero']),
+        np.fmod: result_type(
+            helper_lambdas['zero'], helper_lambdas['zero']),
+        operator.mod: result_type(
+            helper_lambdas['zero'], helper_lambdas['zero']),
+        operator.floordiv: result_type(
+            helper_lambdas['min'], helper_lambdas['neg_min']),
+        np.floor_divide: result_type(
+            helper_lambdas['min'], helper_lambdas['neg_min']),
+        np.divmod: result_type(
+            helper_lambdas['min-zero'], helper_lambdas['neg_min-zero'])
+    }
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize("dtype", np.typecodes["Integer"])
+    def test_signed_division_overflow(self, dtype):
+        to_check = interesting_binop_operands(np.iinfo(dtype).min, -1, dtype)
+        for op1, op2, extractor, operand_identifier in to_check:
+            with pytest.warns(RuntimeWarning, match="overflow encountered"):
+                res = op1 // op2
+
+            assert res.dtype == op1.dtype
+            assert extractor(res) == np.iinfo(op1.dtype).min
+
+            # Remainder is well defined though, and does not warn:
+            res = op1 % op2
+            assert res.dtype == op1.dtype
+            assert extractor(res) == 0
+            # Check fmod as well:
+            res = np.fmod(op1, op2)
+            assert extractor(res) == 0
+
+            # Divmod warns for the division part:
+            with pytest.warns(RuntimeWarning, match="overflow encountered"):
+                res1, res2 = np.divmod(op1, op2)
+
+            assert res1.dtype == res2.dtype == op1.dtype
+            assert extractor(res1) == np.iinfo(op1.dtype).min
+            assert extractor(res2) == 0
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize("dtype", np.typecodes["AllInteger"])
+    def test_divide_by_zero(self, dtype):
+        # Note that the return value cannot be well defined here, but NumPy
+        # currently uses 0 consistently.  This could be changed.
+        to_check = interesting_binop_operands(1, 0, dtype)
+        for op1, op2, extractor, operand_identifier in to_check:
+            with pytest.warns(RuntimeWarning, match="divide by zero"):
+                res = op1 // op2
+
+            assert res.dtype == op1.dtype
+            assert extractor(res) == 0
+
+            with pytest.warns(RuntimeWarning, match="divide by zero"):
+                res1, res2 = np.divmod(op1, op2)
+
+            assert res1.dtype == res2.dtype == op1.dtype
+            assert extractor(res1) == 0
+            assert extractor(res2) == 0
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize("dividend_dtype", sctypes['int'])
+    @pytest.mark.parametrize("divisor_dtype", sctypes['int'])
+    @pytest.mark.parametrize("operation",
+            [np.remainder, np.fmod, np.divmod, np.floor_divide,
+             operator.mod, operator.floordiv])
+    @np.errstate(divide='warn', over='warn')
+    def test_overflows(self, dividend_dtype, divisor_dtype, operation):
+        # SIMD tries to perform the operation on as many elements as possible
+        # that is a multiple of the register's size. We resort to the
+        # default implementation for the leftover elements.
+        # We try to cover all paths here.
+        arrays = [np.array([np.iinfo(dividend_dtype).min] * i,
+                           dtype=dividend_dtype) for i in range(1, 129)]
+        divisor = np.array([-1], dtype=divisor_dtype)
+        # If dividend is a larger type than the divisor (`else` case),
+        # then, result will be a larger type than dividend and will not
+        # result in an overflow for `divmod` and `floor_divide`.
+        if np.dtype(dividend_dtype).itemsize >= np.dtype(
+                divisor_dtype).itemsize and operation in (
+                        np.divmod, np.floor_divide, operator.floordiv):
+            with pytest.warns(
+                    RuntimeWarning,
+                    match="overflow encountered in"):
+                result = operation(
+                            dividend_dtype(np.iinfo(dividend_dtype).min),
+                            divisor_dtype(-1)
+                        )
+                assert result == self.overflow_results[operation].nocast(
+                        dividend_dtype)
+
+            # Arrays
+            for a in arrays:
+                # In case of divmod, we need to flatten the result
+                # column first as we get a column vector of quotient and
+                # remainder and a normal flatten of the expected result.
+                with pytest.warns(
+                        RuntimeWarning,
+                        match="overflow encountered in"):
+                    result = np.array(operation(a, divisor)).flatten('f')
+                    expected_array = np.array(
+                            [self.overflow_results[operation].nocast(
+                                dividend_dtype)] * len(a)).flatten()
+                    assert_array_equal(result, expected_array)
+        else:
+            # Scalars
+            result = operation(
+                        dividend_dtype(np.iinfo(dividend_dtype).min),
+                        divisor_dtype(-1)
+                    )
+            assert result == self.overflow_results[operation].casted(
+                    dividend_dtype)
+
+            # Arrays
+            for a in arrays:
+                # See above comment on flatten
+                result = np.array(operation(a, divisor)).flatten('f')
+                expected_array = np.array(
+                        [self.overflow_results[operation].casted(
+                            dividend_dtype)] * len(a)).flatten()
+                assert_array_equal(result, expected_array)
+
+
+class TestCbrt:
+    def test_cbrt_scalar(self):
+        assert_almost_equal((np.cbrt(np.float32(-2.5)**3)), -2.5)
+
+    def test_cbrt(self):
+        x = np.array([1., 2., -3., np.inf, -np.inf])
+        assert_almost_equal(np.cbrt(x**3), x)
+
+        assert_(np.isnan(np.cbrt(np.nan)))
+        assert_equal(np.cbrt(np.inf), np.inf)
+        assert_equal(np.cbrt(-np.inf), -np.inf)
+
+
+class TestPower:
+    def test_power_float(self):
+        x = np.array([1., 2., 3.])
+        assert_equal(x**0, [1., 1., 1.])
+        assert_equal(x**1, x)
+        assert_equal(x**2, [1., 4., 9.])
+        y = x.copy()
+        y **= 2
+        assert_equal(y, [1., 4., 9.])
+        assert_almost_equal(x**(-1), [1., 0.5, 1. / 3])
+        assert_almost_equal(x**(0.5), [1., ncu.sqrt(2), ncu.sqrt(3)])
+
+        for out, inp, msg in _gen_alignment_data(dtype=np.float32,
+                                                 type='unary',
+                                                 max_size=11):
+            exp = [ncu.sqrt(i) for i in inp]
+            assert_almost_equal(inp**(0.5), exp, err_msg=msg)
+            np.sqrt(inp, out=out)
+            assert_equal(out, exp, err_msg=msg)
+
+        for out, inp, msg in _gen_alignment_data(dtype=np.float64,
+                                                 type='unary',
+                                                 max_size=7):
+            exp = [ncu.sqrt(i) for i in inp]
+            assert_almost_equal(inp**(0.5), exp, err_msg=msg)
+            np.sqrt(inp, out=out)
+            assert_equal(out, exp, err_msg=msg)
+
+    def test_power_complex(self):
+        x = np.array([1 + 2j, 2 + 3j, 3 + 4j])
+        assert_equal(x**0, [1., 1., 1.])
+        assert_equal(x**1, x)
+        assert_almost_equal(x**2, [-3 + 4j, -5 + 12j, -7 + 24j])
+        assert_almost_equal(x**3, [(1 + 2j)**3, (2 + 3j)**3, (3 + 4j)**3])
+        assert_almost_equal(x**4, [(1 + 2j)**4, (2 + 3j)**4, (3 + 4j)**4])
+        assert_almost_equal(x**(-1), [1 / (1 + 2j), 1 / (2 + 3j), 1 / (3 + 4j)])
+        assert_almost_equal(x**(-2), [1 / (1 + 2j)**2, 1 / (2 + 3j)**2, 1 / (3 + 4j)**2])
+        assert_almost_equal(x**(-3), [(-11 + 2j) / 125, (-46 - 9j) / 2197,
+                                      (-117 - 44j) / 15625])
+        assert_almost_equal(x**(0.5), [ncu.sqrt(1 + 2j), ncu.sqrt(2 + 3j),
+                                       ncu.sqrt(3 + 4j)])
+        norm = 1. / ((x**14)[0])
+        assert_almost_equal(x**14 * norm,
+                [i * norm for i in [-76443 + 16124j, 23161315 + 58317492j,
+                                    5583548873 + 2465133864j]])
+
+        # Ticket #836
+        def assert_complex_equal(x, y):
+            assert_array_equal(x.real, y.real)
+            assert_array_equal(x.imag, y.imag)
+
+        for z in [complex(0, np.inf), complex(1, np.inf)]:
+            z = np.array([z], dtype=np.complex128)
+            with np.errstate(invalid="ignore"):
+                assert_complex_equal(z**1, z)
+                assert_complex_equal(z**2, z * z)
+                assert_complex_equal(z**3, z * z * z)
+
+    def test_power_zero(self):
+        # ticket #1271
+        zero = np.array([0j])
+        one = np.array([1 + 0j])
+        cnan = np.array([complex(np.nan, np.nan)])
+        # FIXME cinf not tested.
+        #cinf = np.array([complex(np.inf, 0)])
+
+        def assert_complex_equal(x, y):
+            x, y = np.asarray(x), np.asarray(y)
+            assert_array_equal(x.real, y.real)
+            assert_array_equal(x.imag, y.imag)
+
+        # positive powers
+        for p in [0.33, 0.5, 1, 1.5, 2, 3, 4, 5, 6.6]:
+            assert_complex_equal(np.power(zero, p), zero)
+
+        # zero power
+        assert_complex_equal(np.power(zero, 0), one)
+        with np.errstate(invalid="ignore"):
+            assert_complex_equal(np.power(zero, 0 + 1j), cnan)
+
+            # negative power
+            for p in [0.33, 0.5, 1, 1.5, 2, 3, 4, 5, 6.6]:
+                assert_complex_equal(np.power(zero, -p), cnan)
+            assert_complex_equal(np.power(zero, -1 + 0.2j), cnan)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_zero_power_nonzero(self):
+        # Testing 0^{Non-zero} issue 18378
+        zero = np.array([0.0 + 0.0j])
+        cnan = np.array([complex(np.nan, np.nan)])
+
+        def assert_complex_equal(x, y):
+            assert_array_equal(x.real, y.real)
+            assert_array_equal(x.imag, y.imag)
+
+        # Complex powers with positive real part will not generate a warning
+        assert_complex_equal(np.power(zero, 1 + 4j), zero)
+        assert_complex_equal(np.power(zero, 2 - 3j), zero)
+        # Testing zero values when real part is greater than zero
+        assert_complex_equal(np.power(zero, 1 + 1j), zero)
+        assert_complex_equal(np.power(zero, 1 + 0j), zero)
+        assert_complex_equal(np.power(zero, 1 - 1j), zero)
+        # Complex powers will negative real part or 0 (provided imaginary
+        # part is not zero) will generate a NAN and hence a RUNTIME warning
+        with pytest.warns(expected_warning=RuntimeWarning) as r:
+            assert_complex_equal(np.power(zero, -1 + 1j), cnan)
+            assert_complex_equal(np.power(zero, -2 - 3j), cnan)
+            assert_complex_equal(np.power(zero, -7 + 0j), cnan)
+            assert_complex_equal(np.power(zero, 0 + 1j), cnan)
+            assert_complex_equal(np.power(zero, 0 - 1j), cnan)
+        assert len(r) == 5
+
+    def test_fast_power(self):
+        x = np.array([1, 2, 3], np.int16)
+        res = x**2.0
+        assert_((x**2.00001).dtype is res.dtype)
+        assert_array_equal(res, [1, 4, 9])
+        # check the inplace operation on the casted copy doesn't mess with x
+        assert_(not np.may_share_memory(res, x))
+        assert_array_equal(x, [1, 2, 3])
+
+        # Check that the fast path ignores 1-element not 0-d arrays
+        res = x ** np.array([[[2]]])
+        assert_equal(res.shape, (1, 1, 3))
+
+    def test_integer_power(self):
+        a = np.array([15, 15], 'i8')
+        b = np.power(a, a)
+        assert_equal(b, [437893890380859375, 437893890380859375])
+
+    def test_integer_power_with_integer_zero_exponent(self):
+        dtypes = np.typecodes['Integer']
+        for dt in dtypes:
+            arr = np.arange(-10, 10, dtype=dt)
+            assert_equal(np.power(arr, 0), np.ones_like(arr))
+
+        dtypes = np.typecodes['UnsignedInteger']
+        for dt in dtypes:
+            arr = np.arange(10, dtype=dt)
+            assert_equal(np.power(arr, 0), np.ones_like(arr))
+
+    def test_integer_power_of_1(self):
+        dtypes = np.typecodes['AllInteger']
+        for dt in dtypes:
+            arr = np.arange(10, dtype=dt)
+            assert_equal(np.power(1, arr), np.ones_like(arr))
+
+    def test_integer_power_of_zero(self):
+        dtypes = np.typecodes['AllInteger']
+        for dt in dtypes:
+            arr = np.arange(1, 10, dtype=dt)
+            assert_equal(np.power(0, arr), np.zeros_like(arr))
+
+    def test_integer_to_negative_power(self):
+        dtypes = np.typecodes['Integer']
+        for dt in dtypes:
+            a = np.array([0, 1, 2, 3], dtype=dt)
+            b = np.array([0, 1, 2, -3], dtype=dt)
+            one = np.array(1, dtype=dt)
+            minusone = np.array(-1, dtype=dt)
+            assert_raises(ValueError, np.power, a, b)
+            assert_raises(ValueError, np.power, a, minusone)
+            assert_raises(ValueError, np.power, one, b)
+            assert_raises(ValueError, np.power, one, minusone)
+
+    def test_float_to_inf_power(self):
+        for dt in [np.float32, np.float64]:
+            a = np.array([1, 1, 2, 2, -2, -2, np.inf, -np.inf], dt)
+            b = np.array([np.inf, -np.inf, np.inf, -np.inf,
+                                np.inf, -np.inf, np.inf, -np.inf], dt)
+            r = np.array([1, 1, np.inf, 0, np.inf, 0, np.inf, 0], dt)
+            assert_equal(np.power(a, b), r)
+
+    def test_power_fast_paths(self):
+        # gh-26055
+        for dt in [np.float32, np.float64]:
+            a = np.array([0, 1.1, 2, 12e12, -10., np.inf, -np.inf], dt)
+            expected = np.array([0.0, 1.21, 4., 1.44e+26, 100, np.inf, np.inf])
+            result = np.power(a, 2.)
+            assert_array_max_ulp(result, expected.astype(dt), maxulp=1)
+
+            a = np.array([0, 1.1, 2, 12e12], dt)
+            expected = np.sqrt(a).astype(dt)
+            result = np.power(a, 0.5)
+            assert_array_max_ulp(result, expected, maxulp=1)
+
+
+class TestFloat_power:
+    def test_type_conversion(self):
+        arg_type = '?bhilBHILefdgFDG'
+        res_type = 'ddddddddddddgDDG'
+        for dtin, dtout in zip(arg_type, res_type):
+            msg = f"dtin: {dtin}, dtout: {dtout}"
+            arg = np.ones(1, dtype=dtin)
+            res = np.float_power(arg, arg)
+            assert_(res.dtype.name == np.dtype(dtout).name, msg)
+
+
+class TestLog2:
+    @pytest.mark.parametrize('dt', ['f', 'd', 'g'])
+    def test_log2_values(self, dt):
+        x = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
+        y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+        xf = np.array(x, dtype=dt)
+        yf = np.array(y, dtype=dt)
+        assert_almost_equal(np.log2(xf), yf)
+
+    @pytest.mark.parametrize("i", range(1, 65))
+    def test_log2_ints(self, i):
+        # a good log2 implementation should provide this,
+        # might fail on OS with bad libm
+        v = np.log2(2.**i)
+        assert_equal(v, float(i), err_msg='at exponent %d' % i)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_log2_special(self):
+        assert_equal(np.log2(1.), 0.)
+        assert_equal(np.log2(np.inf), np.inf)
+        assert_(np.isnan(np.log2(np.nan)))
+
+        with warnings.catch_warnings(record=True) as w:
+            warnings.filterwarnings('always', '', RuntimeWarning)
+            assert_(np.isnan(np.log2(-1.)))
+            assert_(np.isnan(np.log2(-np.inf)))
+            assert_equal(np.log2(0.), -np.inf)
+            assert_(w[0].category is RuntimeWarning)
+            assert_(w[1].category is RuntimeWarning)
+            assert_(w[2].category is RuntimeWarning)
+
+
+class TestExp2:
+    def test_exp2_values(self):
+        x = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
+        y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+        for dt in ['f', 'd', 'g']:
+            xf = np.array(x, dtype=dt)
+            yf = np.array(y, dtype=dt)
+            assert_almost_equal(np.exp2(yf), xf)
+
+
+class TestLogAddExp2(_FilterInvalids):
+    # Need test for intermediate precisions
+    def test_logaddexp2_values(self):
+        x = [1, 2, 3, 4, 5]
+        y = [5, 4, 3, 2, 1]
+        z = [6, 6, 6, 6, 6]
+        for dt, dec_ in zip(['f', 'd', 'g'], [6, 15, 15]):
+            xf = np.log2(np.array(x, dtype=dt))
+            yf = np.log2(np.array(y, dtype=dt))
+            zf = np.log2(np.array(z, dtype=dt))
+            assert_almost_equal(np.logaddexp2(xf, yf), zf, decimal=dec_)
+
+    def test_logaddexp2_range(self):
+        x = [1000000, -1000000, 1000200, -1000200]
+        y = [1000200, -1000200, 1000000, -1000000]
+        z = [1000200, -1000000, 1000200, -1000000]
+        for dt in ['f', 'd', 'g']:
+            logxf = np.array(x, dtype=dt)
+            logyf = np.array(y, dtype=dt)
+            logzf = np.array(z, dtype=dt)
+            assert_almost_equal(np.logaddexp2(logxf, logyf), logzf)
+
+    def test_inf(self):
+        inf = np.inf
+        x = [inf, -inf,  inf, -inf, inf, 1,  -inf,  1]    # noqa: E221
+        y = [inf,  inf, -inf, -inf, 1,   inf, 1,   -inf]  # noqa: E221
+        z = [inf,  inf,  inf, -inf, inf, inf, 1,    1]
+        with np.errstate(invalid='raise'):
+            for dt in ['f', 'd', 'g']:
+                logxf = np.array(x, dtype=dt)
+                logyf = np.array(y, dtype=dt)
+                logzf = np.array(z, dtype=dt)
+                assert_equal(np.logaddexp2(logxf, logyf), logzf)
+
+    def test_nan(self):
+        assert_(np.isnan(np.logaddexp2(np.nan, np.inf)))
+        assert_(np.isnan(np.logaddexp2(np.inf, np.nan)))
+        assert_(np.isnan(np.logaddexp2(np.nan, 0)))
+        assert_(np.isnan(np.logaddexp2(0, np.nan)))
+        assert_(np.isnan(np.logaddexp2(np.nan, np.nan)))
+
+    def test_reduce(self):
+        assert_equal(np.logaddexp2.identity, -np.inf)
+        assert_equal(np.logaddexp2.reduce([]), -np.inf)
+        assert_equal(np.logaddexp2.reduce([-np.inf]), -np.inf)
+        assert_equal(np.logaddexp2.reduce([-np.inf, 0]), 0)
+
+
+class TestLog:
+    def test_log_values(self):
+        x = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
+        y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+        for dt in ['f', 'd', 'g']:
+            log2_ = 0.69314718055994530943
+            xf = np.array(x, dtype=dt)
+            yf = np.array(y, dtype=dt) * log2_
+            assert_almost_equal(np.log(xf), yf)
+
+        # test aliasing(issue #17761)
+        x = np.array([2, 0.937500, 3, 0.947500, 1.054697])
+        xf = np.log(x)
+        assert_almost_equal(np.log(x, out=x), xf)
+
+    def test_log_values_maxofdtype(self):
+        # test log() of max for dtype does not raise
+        dtypes = [np.float32, np.float64]
+        # This is failing at least on linux aarch64 (see gh-25460), and on most
+        # other non x86-64 platforms checking `longdouble` isn't too useful as
+        # it's an alias for float64.
+        if platform.machine() == 'x86_64':
+            dtypes += [np.longdouble]
+
+        for dt in dtypes:
+            with np.errstate(all='raise'):
+                x = np.finfo(dt).max
+                np.log(x)
+
+    def test_log_strides(self):
+        np.random.seed(42)
+        strides = np.array([-4, -3, -2, -1, 1, 2, 3, 4])
+        sizes = np.arange(2, 100)
+        for ii in sizes:
+            x_f64 = np.float64(np.random.uniform(low=0.01, high=100.0, size=ii))
+            x_special = x_f64.copy()
+            x_special[3:-1:4] = 1.0
+            y_true = np.log(x_f64)
+            y_special = np.log(x_special)
+            for jj in strides:
+                assert_array_almost_equal_nulp(np.log(x_f64[::jj]), y_true[::jj], nulp=2)
+                assert_array_almost_equal_nulp(np.log(x_special[::jj]), y_special[::jj], nulp=2)
+
+    # Reference values were computed with mpmath, with mp.dps = 200.
+    @pytest.mark.parametrize(
+        'z, wref',
+        [(1 + 1e-12j, 5e-25 + 1e-12j),
+         (1.000000000000001 + 3e-08j,
+          1.5602230246251546e-15 + 2.999999999999996e-08j),
+         (0.9999995000000417 + 0.0009999998333333417j,
+          7.831475869017683e-18 + 0.001j),
+         (0.9999999999999996 + 2.999999999999999e-08j,
+          5.9107901499372034e-18 + 3e-08j),
+         (0.99995000042 - 0.009999833j,
+          -7.015159763822903e-15 - 0.009999999665816696j)],
+    )
+    def test_log_precision_float64(self, z, wref):
+        w = np.log(z)
+        assert_allclose(w, wref, rtol=1e-15)
+
+    # Reference values were computed with mpmath, with mp.dps = 200.
+    @pytest.mark.parametrize(
+        'z, wref',
+        [(np.complex64(1.0 + 3e-6j), np.complex64(4.5e-12 + 3e-06j)),
+         (np.complex64(1.0 - 2e-5j), np.complex64(1.9999999e-10 - 2e-5j)),
+         (np.complex64(0.9999999 + 1e-06j),
+          np.complex64(-1.192088e-07 + 1.0000001e-06j))],
+    )
+    def test_log_precision_float32(self, z, wref):
+        w = np.log(z)
+        assert_allclose(w, wref, rtol=1e-6)
+
+
+class TestExp:
+    def test_exp_values(self):
+        x = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
+        y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+        for dt in ['f', 'd', 'g']:
+            log2_ = 0.69314718055994530943
+            xf = np.array(x, dtype=dt)
+            yf = np.array(y, dtype=dt) * log2_
+            assert_almost_equal(np.exp(yf), xf)
+
+    def test_exp_strides(self):
+        np.random.seed(42)
+        strides = np.array([-4, -3, -2, -1, 1, 2, 3, 4])
+        sizes = np.arange(2, 100)
+        for ii in sizes:
+            x_f64 = np.float64(np.random.uniform(low=0.01, high=709.1, size=ii))
+            y_true = np.exp(x_f64)
+            for jj in strides:
+                assert_array_almost_equal_nulp(np.exp(x_f64[::jj]), y_true[::jj], nulp=2)
+
+class TestSpecialFloats:
+    def test_exp_values(self):
+        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 ['e', '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(
+        _glibc_older_than("2.17"),
+        reason="Older glibc versions may not raise appropriate FP exceptions"
+    )
+    def test_exp_exceptions(self):
+        with np.errstate(over='raise'):
+            assert_raises(FloatingPointError, np.exp, np.float16(11.0899))
+            assert_raises(FloatingPointError, np.exp, np.float32(100.))
+            assert_raises(FloatingPointError, np.exp, np.float32(1E19))
+            assert_raises(FloatingPointError, np.exp, np.float64(800.))
+            assert_raises(FloatingPointError, np.exp, np.float64(1E19))
+
+        with np.errstate(under='raise'):
+            assert_raises(FloatingPointError, np.exp, np.float16(-17.5))
+            assert_raises(FloatingPointError, np.exp, np.float32(-1000.))
+            assert_raises(FloatingPointError, np.exp, np.float32(-1E19))
+            assert_raises(FloatingPointError, np.exp, np.float64(-1000.))
+            assert_raises(FloatingPointError, np.exp, np.float64(-1E19))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_log_values(self):
+        with np.errstate(all='ignore'):
+            x = [np.nan, np.nan, np.inf, np.nan, -np.inf, np.nan]
+            y = [np.nan, -np.nan, np.inf, -np.inf, 0.0, -1.0]
+            y1p = [np.nan, -np.nan, np.inf, -np.inf, -1.0, -2.0]
+            for dt in ['e', 'f', 'd', 'g']:
+                xf = np.array(x, dtype=dt)
+                yf = np.array(y, dtype=dt)
+                yf1p = np.array(y1p, dtype=dt)
+                assert_equal(np.log(yf), xf)
+                assert_equal(np.log2(yf), xf)
+                assert_equal(np.log10(yf), xf)
+                assert_equal(np.log1p(yf1p), xf)
+
+        with np.errstate(divide='raise'):
+            for dt in ['e', 'f', 'd']:
+                assert_raises(FloatingPointError, np.log,
+                              np.array(0.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log2,
+                              np.array(0.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log10,
+                              np.array(0.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log1p,
+                              np.array(-1.0, dtype=dt))
+
+        with np.errstate(invalid='raise'):
+            for dt in ['e', 'f', 'd']:
+                assert_raises(FloatingPointError, np.log,
+                              np.array(-np.inf, dtype=dt))
+                assert_raises(FloatingPointError, np.log,
+                              np.array(-1.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log2,
+                              np.array(-np.inf, dtype=dt))
+                assert_raises(FloatingPointError, np.log2,
+                              np.array(-1.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log10,
+                              np.array(-np.inf, dtype=dt))
+                assert_raises(FloatingPointError, np.log10,
+                              np.array(-1.0, dtype=dt))
+                assert_raises(FloatingPointError, np.log1p,
+                              np.array(-np.inf, dtype=dt))
+                assert_raises(FloatingPointError, np.log1p,
+                              np.array(-2.0, dtype=dt))
+
+        # See https://github.com/numpy/numpy/issues/18005
+        with assert_no_warnings():
+            a = np.array(1e9, dtype='float32')
+            np.log(a)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize('dtype', ['e', 'f', 'd', 'g'])
+    def test_sincos_values(self, dtype):
+        with np.errstate(all='ignore'):
+            x = [np.nan, np.nan, np.nan, np.nan]
+            y = [np.nan, -np.nan, np.inf, -np.inf]
+            xf = np.array(x, dtype=dtype)
+            yf = np.array(y, dtype=dtype)
+            assert_equal(np.sin(yf), xf)
+            assert_equal(np.cos(yf), xf)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.xfail(
+        sys.platform.startswith("darwin"),
+        reason="underflow is triggered for scalar 'sin'"
+    )
+    def test_sincos_underflow(self):
+        with np.errstate(under='raise'):
+            underflow_trigger = np.array(
+                float.fromhex("0x1.f37f47a03f82ap-511"),
+                dtype=np.float64
+            )
+            np.sin(underflow_trigger)
+            np.cos(underflow_trigger)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.parametrize('callable', [np.sin, np.cos])
+    @pytest.mark.parametrize('dtype', ['e', 'f', 'd'])
+    @pytest.mark.parametrize('value', [np.inf, -np.inf])
+    def test_sincos_errors(self, callable, dtype, value):
+        with np.errstate(invalid='raise'):
+            assert_raises(FloatingPointError, callable,
+                np.array([value], dtype=dtype))
+
+    @pytest.mark.parametrize('callable', [np.sin, np.cos])
+    @pytest.mark.parametrize('dtype', ['f', 'd'])
+    @pytest.mark.parametrize('stride', [-1, 1, 2, 4, 5])
+    def test_sincos_overlaps(self, callable, dtype, stride):
+        N = 100
+        M = N // abs(stride)
+        rng = np.random.default_rng(42)
+        x = rng.standard_normal(N, dtype)
+        y = callable(x[::stride])
+        callable(x[::stride], out=x[:M])
+        assert_equal(x[:M], y)
+
+    @pytest.mark.parametrize('dt', ['e', 'f', 'd', 'g'])
+    def test_sqrt_values(self, dt):
+        with np.errstate(all='ignore'):
+            x = [np.nan, np.nan, np.inf, np.nan, 0.]
+            y = [np.nan, -np.nan, np.inf, -np.inf, 0.]
+            xf = np.array(x, dtype=dt)
+            yf = np.array(y, dtype=dt)
+            assert_equal(np.sqrt(yf), xf)
+
+        # with np.errstate(invalid='raise'):
+        #     assert_raises(
+        #         FloatingPointError, np.sqrt, np.array(-100., dtype=dt)
+        #     )
+
+    def test_abs_values(self):
+        x = [np.nan,  np.nan, np.inf, np.inf, 0., 0., 1.0, 1.0]
+        y = [np.nan, -np.nan, np.inf, -np.inf, 0., -0., -1.0, 1.0]
+        for dt in ['e', 'f', 'd', 'g']:
+            xf = np.array(x, dtype=dt)
+            yf = np.array(y, dtype=dt)
+            assert_equal(np.abs(yf), xf)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_square_values(self):
+        x = [np.nan,  np.nan, np.inf, np.inf]
+        y = [np.nan, -np.nan, np.inf, -np.inf]
+        with np.errstate(all='ignore'):
+            for dt in ['e', 'f', 'd', 'g']:
+                xf = np.array(x, dtype=dt)
+                yf = np.array(y, dtype=dt)
+                assert_equal(np.square(yf), xf)
+
+        with np.errstate(over='raise'):
+            assert_raises(FloatingPointError, np.square,
+                          np.array(1E3, dtype='e'))
+            assert_raises(FloatingPointError, np.square,
+                          np.array(1E32, dtype='f'))
+            assert_raises(FloatingPointError, np.square,
+                          np.array(1E200, dtype='d'))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_reciprocal_values(self):
+        with np.errstate(all='ignore'):
+            x = [np.nan,  np.nan, 0.0, -0.0, np.inf, -np.inf]
+            y = [np.nan, -np.nan, np.inf, -np.inf, 0., -0.]
+            for dt in ['e', 'f', 'd', 'g']:
+                xf = np.array(x, dtype=dt)
+                yf = np.array(y, dtype=dt)
+                assert_equal(np.reciprocal(yf), xf)
+
+        with np.errstate(divide='raise'):
+            for dt in ['e', 'f', 'd', 'g']:
+                assert_raises(FloatingPointError, np.reciprocal,
+                              np.array(-0.0, dtype=dt))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_tan(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, 0.0, -0.0, np.inf, -np.inf]
+            out = [np.nan, np.nan, 0.0, -0.0, np.nan, np.nan]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.tan(in_arr), out_arr)
+
+        with np.errstate(invalid='raise'):
+            for dt in ['e', 'f', 'd']:
+                assert_raises(FloatingPointError, np.tan,
+                              np.array(np.inf, dtype=dt))
+                assert_raises(FloatingPointError, np.tan,
+                              np.array(-np.inf, dtype=dt))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_arcsincos(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, np.inf, -np.inf]
+            out = [np.nan, np.nan, np.nan, np.nan]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.arcsin(in_arr), out_arr)
+                assert_equal(np.arccos(in_arr), out_arr)
+
+        for callable in [np.arcsin, np.arccos]:
+            for value in [np.inf, -np.inf, 2.0, -2.0]:
+                for dt in ['e', 'f', 'd']:
+                    with np.errstate(invalid='raise'):
+                        assert_raises(FloatingPointError, callable,
+                                      np.array(value, dtype=dt))
+
+    def test_arctan(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan]
+            out = [np.nan, np.nan]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.arctan(in_arr), out_arr)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_sinh(self):
+        in_ = [np.nan, -np.nan, np.inf, -np.inf]
+        out = [np.nan, np.nan, np.inf, -np.inf]
+        for dt in ['e', 'f', 'd']:
+            in_arr = np.array(in_, dtype=dt)
+            out_arr = np.array(out, dtype=dt)
+            assert_equal(np.sinh(in_arr), out_arr)
+
+        with np.errstate(over='raise'):
+            assert_raises(FloatingPointError, np.sinh,
+                          np.array(12.0, dtype='e'))
+            assert_raises(FloatingPointError, np.sinh,
+                          np.array(120.0, dtype='f'))
+            assert_raises(FloatingPointError, np.sinh,
+                          np.array(1200.0, dtype='d'))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    @pytest.mark.skipif('bsd' in sys.platform,
+            reason="fallback implementation may not raise, see gh-2487")
+    def test_cosh(self):
+        in_ = [np.nan, -np.nan, np.inf, -np.inf]
+        out = [np.nan, np.nan, np.inf, np.inf]
+        for dt in ['e', 'f', 'd']:
+            in_arr = np.array(in_, dtype=dt)
+            out_arr = np.array(out, dtype=dt)
+            assert_equal(np.cosh(in_arr), out_arr)
+
+        with np.errstate(over='raise'):
+            assert_raises(FloatingPointError, np.cosh,
+                          np.array(12.0, dtype='e'))
+            assert_raises(FloatingPointError, np.cosh,
+                          np.array(120.0, dtype='f'))
+            assert_raises(FloatingPointError, np.cosh,
+                          np.array(1200.0, dtype='d'))
+
+    def test_tanh(self):
+        in_ = [np.nan, -np.nan, np.inf, -np.inf]
+        out = [np.nan, np.nan, 1.0, -1.0]
+        for dt in ['e', 'f', 'd']:
+            in_arr = np.array(in_, dtype=dt)
+            out_arr = np.array(out, dtype=dt)
+            assert_array_max_ulp(np.tanh(in_arr), out_arr, 3)
+
+    def test_arcsinh(self):
+        in_ = [np.nan, -np.nan, np.inf, -np.inf]
+        out = [np.nan, np.nan, np.inf, -np.inf]
+        for dt in ['e', 'f', 'd']:
+            in_arr = np.array(in_, dtype=dt)
+            out_arr = np.array(out, dtype=dt)
+            assert_equal(np.arcsinh(in_arr), out_arr)
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_arccosh(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, np.inf, -np.inf, 1.0, 0.0]
+            out = [np.nan, np.nan, np.inf, np.nan, 0.0, np.nan]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.arccosh(in_arr), out_arr)
+
+        for value in [0.0, -np.inf]:
+            with np.errstate(invalid='raise'):
+                for dt in ['e', 'f', 'd']:
+                    assert_raises(FloatingPointError, np.arccosh,
+                                  np.array(value, dtype=dt))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_arctanh(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, np.inf, -np.inf, 1.0, -1.0, 2.0]
+            out = [np.nan, np.nan, np.nan, np.nan, np.inf, -np.inf, np.nan]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.arctanh(in_arr), out_arr)
+
+        for value in [1.01, np.inf, -np.inf, 1.0, -1.0]:
+            with np.errstate(invalid='raise', divide='raise'):
+                for dt in ['e', 'f', 'd']:
+                    assert_raises(FloatingPointError, np.arctanh,
+                                  np.array(value, dtype=dt))
+
+        # Make sure glibc < 2.18 atanh is not used, issue 25087
+        assert np.signbit(np.arctanh(-1j).real)
+
+    # See: https://github.com/numpy/numpy/issues/20448
+    @pytest.mark.xfail(
+        _glibc_older_than("2.17"),
+        reason="Older glibc versions may not raise appropriate FP exceptions"
+    )
+    def test_exp2(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, np.inf, -np.inf]
+            out = [np.nan, np.nan, np.inf, 0.0]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.exp2(in_arr), out_arr)
+
+        for value in [2000.0, -2000.0]:
+            with np.errstate(over='raise', under='raise'):
+                for dt in ['e', 'f', 'd']:
+                    assert_raises(FloatingPointError, np.exp2,
+                                  np.array(value, dtype=dt))
+
+    @pytest.mark.skipif(IS_WASM, reason="fp errors don't work in wasm")
+    def test_expm1(self):
+        with np.errstate(all='ignore'):
+            in_ = [np.nan, -np.nan, np.inf, -np.inf]
+            out = [np.nan, np.nan, np.inf, -1.0]
+            for dt in ['e', 'f', 'd']:
+                in_arr = np.array(in_, dtype=dt)
+                out_arr = np.array(out, dtype=dt)
+                assert_equal(np.expm1(in_arr), out_arr)
+
+        for value in [200.0, 2000.0]:
+            with np.errstate(over='raise'):
+                for dt in ['e', 'f']:
+                    assert_raises(FloatingPointError, np.expm1,
+                                  np.array(value, dtype=dt))
+
+    # test to ensure no spurious FP exceptions are raised due to SIMD
+    INF_INVALID_ERR = [
+        np.cos, np.sin, np.tan, np.arccos, np.arcsin, np.spacing, np.arctanh
+    ]
+    NEG_INVALID_ERR = [
+        np.log, np.log2, np.log10, np.log1p, np.sqrt, np.arccosh,
+        np.arctanh
+    ]
+    ONE_INVALID_ERR = [
+        np.arctanh,
+    ]
+    LTONE_INVALID_ERR = [
+        np.arccosh,
+    ]
+    BYZERO_ERR = [
+        np.log, np.log2, np.log10, np.reciprocal, np.arccosh
+    ]
+
+    @pytest.mark.parametrize("ufunc", UFUNCS_UNARY_FP)
+    @pytest.mark.parametrize("dtype", ('e', 'f', 'd'))
+    @pytest.mark.parametrize("data, escape", (
+        ([0.03], LTONE_INVALID_ERR),
+        ([0.03] * 32, LTONE_INVALID_ERR),
+        # neg
+        ([-1.0], NEG_INVALID_ERR),
+        ([-1.0] * 32, NEG_INVALID_ERR),
+        # flat
+        ([1.0], ONE_INVALID_ERR),
+        ([1.0] * 32, ONE_INVALID_ERR),
+        # zero
+        ([0.0], BYZERO_ERR),
+        ([0.0] * 32, BYZERO_ERR),
+        ([-0.0], BYZERO_ERR),
+        ([-0.0] * 32, BYZERO_ERR),
+        # nan
+        ([0.5, 0.5, 0.5, np.nan], LTONE_INVALID_ERR),
+        ([0.5, 0.5, 0.5, np.nan] * 32, LTONE_INVALID_ERR),
+        ([np.nan, 1.0, 1.0, 1.0], ONE_INVALID_ERR),
+        ([np.nan, 1.0, 1.0, 1.0] * 32, ONE_INVALID_ERR),
+        ([np.nan], []),
+        ([np.nan] * 32, []),
+        # inf
+        ([0.5, 0.5, 0.5, np.inf], INF_INVALID_ERR + LTONE_INVALID_ERR),
+        ([0.5, 0.5, 0.5, np.inf] * 32, INF_INVALID_ERR + LTONE_INVALID_ERR),
+        ([np.inf, 1.0, 1.0, 1.0], INF_INVALID_ERR),
+        ([np.inf, 1.0, 1.0, 1.0] * 32, INF_INVALID_ERR),
+        ([np.inf], INF_INVALID_ERR),
+        ([np.inf] * 32, INF_INVALID_ERR),
+        # ninf
+        ([0.5, 0.5, 0.5, -np.inf],
+         NEG_INVALID_ERR + INF_INVALID_ERR + LTONE_INVALID_ERR),
+        ([0.5, 0.5, 0.5, -np.inf] * 32,
+         NEG_INVALID_ERR + INF_INVALID_ERR + LTONE_INVALID_ERR),
+        ([-np.inf, 1.0, 1.0, 1.0], NEG_INVALID_ERR + INF_INVALID_ERR),
+        ([-np.inf, 1.0, 1.0, 1.0] * 32, NEG_INVALID_ERR + INF_INVALID_ERR),
+        ([-np.inf], NEG_INVALID_ERR + INF_INVALID_ERR),
+        ([-np.inf] * 32, NEG_INVALID_ERR + INF_INVALID_ERR),
+    ))
+    def test_unary_spurious_fpexception(self, ufunc, dtype, data, escape):
+        if escape and ufunc in escape:
+            return
+        # FIXME: NAN raises FP invalid exception:
+        #  - ceil/float16 on MSVC:32-bit
+        #  - spacing/float16 on almost all platforms
+        #  - spacing/float32,float64 on Windows MSVC with VS2022
+        if ufunc in (np.spacing, np.ceil) and dtype == 'e':
+            return
+        # Skip spacing tests with NaN on Windows MSVC (all dtypes)
+        import platform
+        if (ufunc == np.spacing and
+            platform.system() == 'Windows' and
+            any(np.isnan(d) if isinstance(d, (int, float)) else False for d in data)):
+            pytest.skip("spacing with NaN generates warnings on Windows/VS2022")
+        array = np.array(data, dtype=dtype)
+        with assert_no_warnings():
+            ufunc(array)
+
+    @pytest.mark.parametrize("dtype", ('e', 'f', 'd'))
+    def test_divide_spurious_fpexception(self, dtype):
+        dt = np.dtype(dtype)
+        dt_info = np.finfo(dt)
+        subnorm = dt_info.smallest_subnormal
+        # Verify a bug fix caused due to filling the remaining lanes of the
+        # partially loaded dividend SIMD vector with ones, which leads to
+        # raising an overflow warning when the divisor is denormal.
+        # see https://github.com/numpy/numpy/issues/25097
+        with assert_no_warnings():
+            np.zeros(128 + 1, dtype=dt) / subnorm
+
+class TestFPClass:
+    @pytest.mark.parametrize("stride", [-5, -4, -3, -2, -1, 1,
+                                2, 4, 5, 6, 7, 8, 9, 10])
+    def test_fpclass(self, stride):
+        arr_f64 = np.array([np.nan, -np.nan, np.inf, -np.inf, -1.0, 1.0, -0.0, 0.0, 2.2251e-308, -2.2251e-308], dtype='d')
+        arr_f32 = np.array([np.nan, -np.nan, np.inf, -np.inf, -1.0, 1.0, -0.0, 0.0, 1.4013e-045, -1.4013e-045], dtype='f')
+        nan     = np.array([True, True, False, False, False, False, False, False, False, False])  # noqa: E221
+        inf     = np.array([False, False, True, True, False, False, False, False, False, False])  # noqa: E221
+        sign    = np.array([False, True, False, True, True, False, True, False, False, True])     # noqa: E221
+        finite  = np.array([False, False, False, False, True, True, True, True, True, True])      # noqa: E221
+        assert_equal(np.isnan(arr_f32[::stride]), nan[::stride])
+        assert_equal(np.isnan(arr_f64[::stride]), nan[::stride])
+        assert_equal(np.isinf(arr_f32[::stride]), inf[::stride])
+        assert_equal(np.isinf(arr_f64[::stride]), inf[::stride])
+        if platform.machine() == 'riscv64':
+            # On RISC-V, many operations that produce NaNs, such as converting
+            # a -NaN from f64 to f32, return a canonical NaN.  The canonical
+            # NaNs are always positive.  See section 11.3 NaN Generation and
+            # Propagation of the RISC-V Unprivileged ISA for more details.
+            # We disable the sign test on riscv64 for -np.nan as we
+            # cannot assume that its sign will be honoured in these tests.
+            arr_f64_rv = np.copy(arr_f64)
+            arr_f32_rv = np.copy(arr_f32)
+            arr_f64_rv[1] = -1.0
+            arr_f32_rv[1] = -1.0
+            assert_equal(np.signbit(arr_f32_rv[::stride]), sign[::stride])
+            assert_equal(np.signbit(arr_f64_rv[::stride]), sign[::stride])
+        else:
+            assert_equal(np.signbit(arr_f32[::stride]), sign[::stride])
+            assert_equal(np.signbit(arr_f64[::stride]), sign[::stride])
+        assert_equal(np.isfinite(arr_f32[::stride]), finite[::stride])
+        assert_equal(np.isfinite(arr_f64[::stride]), finite[::stride])
+
+    @pytest.mark.parametrize("dtype", ['d', 'f'])
+    def test_fp_noncontiguous(self, dtype):
+        data = np.array([np.nan, -np.nan, np.inf, -np.inf, -1.0,
+                            1.0, -0.0, 0.0, 2.2251e-308,
+                            -2.2251e-308], dtype=dtype)
+        nan = np.array([True, True, False, False, False, False,
+                            False, False, False, False])
+        inf = np.array([False, False, True, True, False, False,
+                            False, False, False, False])
+        sign = np.array([False, True, False, True, True, False,
+                            True, False, False, True])
+        finite = np.array([False, False, False, False, True, True,
+                            True, True, True, True])
+        out = np.ndarray(data.shape, dtype='bool')
+        ncontig_in = data[1::3]
+        ncontig_out = out[1::3]
+        contig_in = np.array(ncontig_in)
+
+        if platform.machine() == 'riscv64':
+            # Disable the -np.nan signbit tests on riscv64.  See comments in
+            # test_fpclass for more details.
+            data_rv = np.copy(data)
+            data_rv[1] = -1.0
+            ncontig_sign_in = data_rv[1::3]
+            contig_sign_in = np.array(ncontig_sign_in)
+        else:
+            ncontig_sign_in = ncontig_in
+            contig_sign_in = contig_in
+
+        assert_equal(ncontig_in.flags.c_contiguous, False)
+        assert_equal(ncontig_out.flags.c_contiguous, False)
+        assert_equal(contig_in.flags.c_contiguous, True)
+        assert_equal(ncontig_sign_in.flags.c_contiguous, False)
+        assert_equal(contig_sign_in.flags.c_contiguous, True)
+        # ncontig in, ncontig out
+        assert_equal(np.isnan(ncontig_in, out=ncontig_out), nan[1::3])
+        assert_equal(np.isinf(ncontig_in, out=ncontig_out), inf[1::3])
+        assert_equal(np.signbit(ncontig_sign_in, out=ncontig_out), sign[1::3])
+        assert_equal(np.isfinite(ncontig_in, out=ncontig_out), finite[1::3])
+        # contig in, ncontig out
+        assert_equal(np.isnan(contig_in, out=ncontig_out), nan[1::3])
+        assert_equal(np.isinf(contig_in, out=ncontig_out), inf[1::3])
+        assert_equal(np.signbit(contig_sign_in, out=ncontig_out), sign[1::3])
+        assert_equal(np.isfinite(contig_in, out=ncontig_out), finite[1::3])
+        # ncontig in, contig out
+        assert_equal(np.isnan(ncontig_in), nan[1::3])
+        assert_equal(np.isinf(ncontig_in), inf[1::3])
+        assert_equal(np.signbit(ncontig_sign_in), sign[1::3])
+        assert_equal(np.isfinite(ncontig_in), finite[1::3])
+        # contig in, contig out, nd stride
+        data_split = np.array(np.array_split(data, 2))
+        nan_split = np.array(np.array_split(nan, 2))
+        inf_split = np.array(np.array_split(inf, 2))
+        sign_split = np.array(np.array_split(sign, 2))
+        finite_split = np.array(np.array_split(finite, 2))
+        assert_equal(np.isnan(data_split), nan_split)
+        assert_equal(np.isinf(data_split), inf_split)
+        if platform.machine() == 'riscv64':
+            data_split_rv = np.array(np.array_split(data_rv, 2))
+            assert_equal(np.signbit(data_split_rv), sign_split)
+        else:
+            assert_equal(np.signbit(data_split), sign_split)
+        assert_equal(np.isfinite(data_split), finite_split)
+
+class TestLDExp:
+    @pytest.mark.parametrize("stride", [-4, -2, -1, 1, 2, 4])
+    @pytest.mark.parametrize("dtype", ['f', 'd'])
+    def test_ldexp(self, dtype, stride):
+        mant = np.array([0.125, 0.25, 0.5, 1., 1., 2., 4., 8.], dtype=dtype)
+        exp = np.array([3, 2, 1, 0, 0, -1, -2, -3], dtype='i')
+        out = np.zeros(8, dtype=dtype)
+        assert_equal(np.ldexp(mant[::stride], exp[::stride], out=out[::stride]), np.ones(8, dtype=dtype)[::stride])
+        assert_equal(out[::stride], np.ones(8, dtype=dtype)[::stride])
+
+class TestFRExp:
+    @pytest.mark.parametrize("stride", [-4, -2, -1, 1, 2, 4])
+    @pytest.mark.parametrize("dtype", ['f', 'd'])
+    @pytest.mark.skipif(not sys.platform.startswith('linux'),
+                        reason="np.frexp gives different answers for NAN/INF on windows and linux")
+    @pytest.mark.xfail(IS_MUSL, reason="gh23049")
+    def test_frexp(self, dtype, stride):
+        arr = np.array([np.nan, np.nan, np.inf, -np.inf, 0.0, -0.0, 1.0, -1.0], dtype=dtype)
+        mant_true = np.array([np.nan, np.nan, np.inf, -np.inf, 0.0, -0.0, 0.5, -0.5], dtype=dtype)
+        exp_true = np.array([0, 0, 0, 0, 0, 0, 1, 1], dtype='i')
+        out_mant = np.ones(8, dtype=dtype)
+        out_exp = 2 * np.ones(8, dtype='i')
+        mant, exp = np.frexp(arr[::stride], out=(out_mant[::stride], out_exp[::stride]))
+        assert_equal(mant_true[::stride], mant)
+        assert_equal(exp_true[::stride], exp)
+        assert_equal(out_mant[::stride], mant_true[::stride])
+        assert_equal(out_exp[::stride], exp_true[::stride])
+
+
+# func : [maxulperror, low, high]
+avx_ufuncs = {'sqrt'        : [1,  0.,   100.],   # noqa: E203
+              'absolute'    : [0, -100., 100.],   # noqa: E203
+              'reciprocal'  : [1,  1.,   100.],   # noqa: E203
+              'square'      : [1, -100., 100.],   # noqa: E203
+              'rint'        : [0, -100., 100.],   # noqa: E203
+              'floor'       : [0, -100., 100.],   # noqa: E203
+              'ceil'        : [0, -100., 100.],   # noqa: E203
+              'trunc'       : [0, -100., 100.]}   # noqa: E203
+
+class TestAVXUfuncs:
+    def test_avx_based_ufunc(self):
+        strides = np.array([-4, -3, -2, -1, 1, 2, 3, 4])
+        np.random.seed(42)
+        for func, prop in avx_ufuncs.items():
+            maxulperr = prop[0]
+            minval = prop[1]
+            maxval = prop[2]
+            # various array sizes to ensure masking in AVX is tested
+            for size in range(1, 32):
+                myfunc = getattr(np, func)
+                x_f32 = np.random.uniform(low=minval, high=maxval,
+                                          size=size).astype(np.float32)
+                x_f64 = x_f32.astype(np.float64)
+                x_f128 = x_f32.astype(np.longdouble)
+                y_true128 = myfunc(x_f128)
+                if maxulperr == 0:
+                    assert_equal(myfunc(x_f32), y_true128.astype(np.float32))
+                    assert_equal(myfunc(x_f64), y_true128.astype(np.float64))
+                else:
+                    assert_array_max_ulp(myfunc(x_f32),
+                                         y_true128.astype(np.float32),
+                                         maxulp=maxulperr)
+                    assert_array_max_ulp(myfunc(x_f64),
+                                         y_true128.astype(np.float64),
+                                         maxulp=maxulperr)
+                # various strides to test gather instruction
+                if size > 1:
+                    y_true32 = myfunc(x_f32)
+                    y_true64 = myfunc(x_f64)
+                    for jj in strides:
+                        assert_equal(myfunc(x_f64[::jj]), y_true64[::jj])
+                        assert_equal(myfunc(x_f32[::jj]), y_true32[::jj])
+
+class TestAVXFloat32Transcendental:
+    def test_exp_float32(self):
+        np.random.seed(42)
+        x_f32 = np.float32(np.random.uniform(low=0.0, high=88.1, size=1000000))
+        x_f64 = np.float64(x_f32)
+        assert_array_max_ulp(np.exp(x_f32), np.float32(np.exp(x_f64)), maxulp=3)
+
+    def test_log_float32(self):
+        np.random.seed(42)
+        x_f32 = np.float32(np.random.uniform(low=0.0, high=1000, size=1000000))
+        x_f64 = np.float64(x_f32)
+        assert_array_max_ulp(np.log(x_f32), np.float32(np.log(x_f64)), maxulp=4)
+
+    def test_sincos_float32(self):
+        np.random.seed(42)
+        N = 1000000
+        M = np.int_(N / 20)
+        index = np.random.randint(low=0, high=N, size=M)
+        x_f32 = np.float32(np.random.uniform(low=-100., high=100., size=N))
+        if not _glibc_older_than("2.17"):
+            # test coverage for elements > 117435.992f for which glibc is used
+            # this is known to be problematic on old glibc, so skip it there
+            x_f32[index] = np.float32(10E+10 * np.random.rand(M))
+        x_f64 = np.float64(x_f32)
+        assert_array_max_ulp(np.sin(x_f32), np.float32(np.sin(x_f64)), maxulp=2)
+        assert_array_max_ulp(np.cos(x_f32), np.float32(np.cos(x_f64)), maxulp=2)
+        # test aliasing(issue #17761)
+        tx_f32 = x_f32.copy()
+        assert_array_max_ulp(np.sin(x_f32, out=x_f32), np.float32(np.sin(x_f64)), maxulp=2)
+        assert_array_max_ulp(np.cos(tx_f32, out=tx_f32), np.float32(np.cos(x_f64)), maxulp=2)
+
+    def test_strided_float32(self):
+        np.random.seed(42)
+        strides = np.array([-4, -3, -2, -1, 1, 2, 3, 4])
+        sizes = np.arange(2, 100)
+        for ii in sizes:
+            x_f32 = np.float32(np.random.uniform(low=0.01, high=88.1, size=ii))
+            x_f32_large = x_f32.copy()
+            x_f32_large[3:-1:4] = 120000.0
+            exp_true = np.exp(x_f32)
+            log_true = np.log(x_f32)
+            sin_true = np.sin(x_f32_large)
+            cos_true = np.cos(x_f32_large)
+            for jj in strides:
+                assert_array_almost_equal_nulp(np.exp(x_f32[::jj]), exp_true[::jj], nulp=2)
+                assert_array_almost_equal_nulp(np.log(x_f32[::jj]), log_true[::jj], nulp=2)
+                assert_array_almost_equal_nulp(np.sin(x_f32_large[::jj]), sin_true[::jj], nulp=2)
+                assert_array_almost_equal_nulp(np.cos(x_f32_large[::jj]), cos_true[::jj], nulp=2)
+
+class TestLogAddExp(_FilterInvalids):
+    def test_logaddexp_values(self):
+        x = [1, 2, 3, 4, 5]
+        y = [5, 4, 3, 2, 1]
+        z = [6, 6, 6, 6, 6]
+        for dt, dec_ in zip(['f', 'd', 'g'], [6, 15, 15]):
+            xf = np.log(np.array(x, dtype=dt))
+            yf = np.log(np.array(y, dtype=dt))
+            zf = np.log(np.array(z, dtype=dt))
+            assert_almost_equal(np.logaddexp(xf, yf), zf, decimal=dec_)
+
+    def test_logaddexp_range(self):
+        x = [1000000, -1000000, 1000200, -1000200]
+        y = [1000200, -1000200, 1000000, -1000000]
+        z = [1000200, -1000000, 1000200, -1000000]
+        for dt in ['f', 'd', 'g']:
+            logxf = np.array(x, dtype=dt)
+            logyf = np.array(y, dtype=dt)
+            logzf = np.array(z, dtype=dt)
+            assert_almost_equal(np.logaddexp(logxf, logyf), logzf)
+
+    def test_inf(self):
+        inf = np.inf
+        x = [inf, -inf,  inf, -inf, inf, 1,  -inf,  1]    # noqa: E221
+        y = [inf,  inf, -inf, -inf, 1,   inf, 1,   -inf]  # noqa: E221
+        z = [inf,  inf,  inf, -inf, inf, inf, 1,    1]
+        with np.errstate(invalid='raise'):
+            for dt in ['f', 'd', 'g']:
+                logxf = np.array(x, dtype=dt)
+                logyf = np.array(y, dtype=dt)
+                logzf = np.array(z, dtype=dt)
+                assert_equal(np.logaddexp(logxf, logyf), logzf)
+
+    def test_nan(self):
+        assert_(np.isnan(np.logaddexp(np.nan, np.inf)))
+        assert_(np.isnan(np.logaddexp(np.inf, np.nan)))
+        assert_(np.isnan(np.logaddexp(np.nan, 0)))
+        assert_(np.isnan(np.logaddexp(0, np.nan)))
+        assert_(np.isnan(np.logaddexp(np.nan, np.nan)))
+
+    def test_reduce(self):
+        assert_equal(np.logaddexp.identity, -np.inf)
+        assert_equal(np.logaddexp.reduce([]), -np.inf)
+
+
+class TestLog1p:
+    def test_log1p(self):
+        assert_almost_equal(ncu.log1p(0.2), ncu.log(1.2))
+        assert_almost_equal(ncu.log1p(1e-6), ncu.log(1 + 1e-6))
+
+    def test_special(self):
+        with np.errstate(invalid="ignore", divide="ignore"):
+            assert_equal(ncu.log1p(np.nan), np.nan)
+            assert_equal(ncu.log1p(np.inf), np.inf)
+            assert_equal(ncu.log1p(-1.), -np.inf)
+            assert_equal(ncu.log1p(-2.), np.nan)
+            assert_equal(ncu.log1p(-np.inf), np.nan)
+
+
+class TestExpm1:
+    def test_expm1(self):
+        assert_almost_equal(ncu.expm1(0.2), ncu.exp(0.2) - 1)
+        assert_almost_equal(ncu.expm1(1e-6), ncu.exp(1e-6) - 1)
+
+    def test_special(self):
+        assert_equal(ncu.expm1(np.inf), np.inf)
+        assert_equal(ncu.expm1(0.), 0.)
+        assert_equal(ncu.expm1(-0.), -0.)
+        assert_equal(ncu.expm1(np.inf), np.inf)
+        assert_equal(ncu.expm1(-np.inf), -1.)
+
+    def test_complex(self):
+        x = np.asarray(1e-12)
+        assert_allclose(x, ncu.expm1(x))
+        x = x.astype(np.complex128)
+        assert_allclose(x, ncu.expm1(x))
+
+
+class TestHypot:
+    def test_simple(self):
+        assert_almost_equal(ncu.hypot(1, 1), ncu.sqrt(2))
+        assert_almost_equal(ncu.hypot(0, 0), 0)
+
+    def test_reduce(self):
+        assert_almost_equal(ncu.hypot.reduce([3.0, 4.0]), 5.0)
+        assert_almost_equal(ncu.hypot.reduce([3.0, 4.0, 0]), 5.0)
+        assert_almost_equal(ncu.hypot.reduce([9.0, 12.0, 20.0]), 25.0)
+        assert_equal(ncu.hypot.reduce([]), 0.0)
+
+
+def assert_hypot_isnan(x, y):
+    with np.errstate(invalid='ignore'):
+        assert_(np.isnan(ncu.hypot(x, y)),
+                f"hypot({x}, {y}) is {ncu.hypot(x, y)}, not nan")
+
+
+def assert_hypot_isinf(x, y):
+    with np.errstate(invalid='ignore'):
+        assert_(np.isinf(ncu.hypot(x, y)),
+                f"hypot({x}, {y}) is {ncu.hypot(x, y)}, not inf")
+
+
+class TestHypotSpecialValues:
+    def test_nan_outputs(self):
+        assert_hypot_isnan(np.nan, np.nan)
+        assert_hypot_isnan(np.nan, 1)
+
+    def test_nan_outputs2(self):
+        assert_hypot_isinf(np.nan, np.inf)
+        assert_hypot_isinf(np.inf, np.nan)
+        assert_hypot_isinf(np.inf, 0)
+        assert_hypot_isinf(0, np.inf)
+        assert_hypot_isinf(np.inf, np.inf)
+        assert_hypot_isinf(np.inf, 23.0)
+
+    def test_no_fpe(self):
+        assert_no_warnings(ncu.hypot, np.inf, 0)
+
+
+def assert_arctan2_isnan(x, y):
+    assert_(np.isnan(ncu.arctan2(x, y)), f"arctan({x}, {y}) is {ncu.arctan2(x, y)}, not nan")
+
+
+def assert_arctan2_ispinf(x, y):
+    assert_((np.isinf(ncu.arctan2(x, y)) and ncu.arctan2(x, y) > 0), f"arctan({x}, {y}) is {ncu.arctan2(x, y)}, not +inf")
+
+
+def assert_arctan2_isninf(x, y):
+    assert_((np.isinf(ncu.arctan2(x, y)) and ncu.arctan2(x, y) < 0), f"arctan({x}, {y}) is {ncu.arctan2(x, y)}, not -inf")
+
+
+def assert_arctan2_ispzero(x, y):
+    assert_((ncu.arctan2(x, y) == 0 and not np.signbit(ncu.arctan2(x, y))), f"arctan({x}, {y}) is {ncu.arctan2(x, y)}, not +0")
+
+
+def assert_arctan2_isnzero(x, y):
+    assert_((ncu.arctan2(x, y) == 0 and np.signbit(ncu.arctan2(x, y))), f"arctan({x}, {y}) is {ncu.arctan2(x, y)}, not -0")
+
+
+class TestArctan2SpecialValues:
+    def test_one_one(self):
+        # atan2(1, 1) returns pi/4.
+        assert_almost_equal(ncu.arctan2(1, 1), 0.25 * np.pi)
+        assert_almost_equal(ncu.arctan2(-1, 1), -0.25 * np.pi)
+        assert_almost_equal(ncu.arctan2(1, -1), 0.75 * np.pi)
+
+    def test_zero_nzero(self):
+        # atan2(+-0, -0) returns +-pi.
+        assert_almost_equal(ncu.arctan2(ncu.PZERO, ncu.NZERO), np.pi)
+        assert_almost_equal(ncu.arctan2(ncu.NZERO, ncu.NZERO), -np.pi)
+
+    def test_zero_pzero(self):
+        # atan2(+-0, +0) returns +-0.
+        assert_arctan2_ispzero(ncu.PZERO, ncu.PZERO)
+        assert_arctan2_isnzero(ncu.NZERO, ncu.PZERO)
+
+    def test_zero_negative(self):
+        # atan2(+-0, x) returns +-pi for x < 0.
+        assert_almost_equal(ncu.arctan2(ncu.PZERO, -1), np.pi)
+        assert_almost_equal(ncu.arctan2(ncu.NZERO, -1), -np.pi)
+
+    def test_zero_positive(self):
+        # atan2(+-0, x) returns +-0 for x > 0.
+        assert_arctan2_ispzero(ncu.PZERO, 1)
+        assert_arctan2_isnzero(ncu.NZERO, 1)
+
+    def test_positive_zero(self):
+        # atan2(y, +-0) returns +pi/2 for y > 0.
+        assert_almost_equal(ncu.arctan2(1, ncu.PZERO), 0.5 * np.pi)
+        assert_almost_equal(ncu.arctan2(1, ncu.NZERO), 0.5 * np.pi)
+
+    def test_negative_zero(self):
+        # atan2(y, +-0) returns -pi/2 for y < 0.
+        assert_almost_equal(ncu.arctan2(-1, ncu.PZERO), -0.5 * np.pi)
+        assert_almost_equal(ncu.arctan2(-1, ncu.NZERO), -0.5 * np.pi)
+
+    def test_any_ninf(self):
+        # atan2(+-y, -infinity) returns +-pi for finite y > 0.
+        assert_almost_equal(ncu.arctan2(1, -np.inf),  np.pi)
+        assert_almost_equal(ncu.arctan2(-1, -np.inf), -np.pi)
+
+    def test_any_pinf(self):
+        # atan2(+-y, +infinity) returns +-0 for finite y > 0.
+        assert_arctan2_ispzero(1, np.inf)
+        assert_arctan2_isnzero(-1, np.inf)
+
+    def test_inf_any(self):
+        # atan2(+-infinity, x) returns +-pi/2 for finite x.
+        assert_almost_equal(ncu.arctan2( np.inf, 1),  0.5 * np.pi)
+        assert_almost_equal(ncu.arctan2(-np.inf, 1), -0.5 * np.pi)
+
+    def test_inf_ninf(self):
+        # atan2(+-infinity, -infinity) returns +-3*pi/4.
+        assert_almost_equal(ncu.arctan2( np.inf, -np.inf),  0.75 * np.pi)
+        assert_almost_equal(ncu.arctan2(-np.inf, -np.inf), -0.75 * np.pi)
+
+    def test_inf_pinf(self):
+        # atan2(+-infinity, +infinity) returns +-pi/4.
+        assert_almost_equal(ncu.arctan2( np.inf, np.inf),  0.25 * np.pi)
+        assert_almost_equal(ncu.arctan2(-np.inf, np.inf), -0.25 * np.pi)
+
+    def test_nan_any(self):
+        # atan2(nan, x) returns nan for any x, including inf
+        assert_arctan2_isnan(np.nan, np.inf)
+        assert_arctan2_isnan(np.inf, np.nan)
+        assert_arctan2_isnan(np.nan, np.nan)
+
+
+class TestLdexp:
+    def _check_ldexp(self, tp):
+        assert_almost_equal(ncu.ldexp(np.array(2., np.float32),
+                                      np.array(3, tp)), 16.)
+        assert_almost_equal(ncu.ldexp(np.array(2., np.float64),
+                                      np.array(3, tp)), 16.)
+        assert_almost_equal(ncu.ldexp(np.array(2., np.longdouble),
+                                      np.array(3, tp)), 16.)
+
+    def test_ldexp(self):
+        # The default Python int type should work
+        assert_almost_equal(ncu.ldexp(2., 3),  16.)
+        # The following int types should all be accepted
+        self._check_ldexp(np.int8)
+        self._check_ldexp(np.int16)
+        self._check_ldexp(np.int32)
+        self._check_ldexp('i')
+        self._check_ldexp('l')
+
+    def test_ldexp_overflow(self):
+        # silence warning emitted on overflow
+        with np.errstate(over="ignore"):
+            imax = np.iinfo(np.dtype('l')).max
+            imin = np.iinfo(np.dtype('l')).min
+            assert_equal(ncu.ldexp(2., imax), np.inf)
+            assert_equal(ncu.ldexp(2., imin), 0)
+
+
+class TestMaximum(_FilterInvalids):
+    def test_reduce(self):
+        dflt = np.typecodes['AllFloat']
+        dint = np.typecodes['AllInteger']
+        seq1 = np.arange(11)
+        seq2 = seq1[::-1]
+        func = np.maximum.reduce
+        for dt in dint:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 10)
+            assert_equal(func(tmp2), 10)
+        for dt in dflt:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 10)
+            assert_equal(func(tmp2), 10)
+            tmp1[::2] = np.nan
+            tmp2[::2] = np.nan
+            assert_equal(func(tmp1), np.nan)
+            assert_equal(func(tmp2), np.nan)
+
+    def test_reduce_complex(self):
+        assert_equal(np.maximum.reduce([1, 2j]), 1)
+        assert_equal(np.maximum.reduce([1 + 3j, 2j]), 1 + 3j)
+
+    def test_float_nans(self):
+        nan = np.nan
+        arg1 = np.array([0,   nan, nan])
+        arg2 = np.array([nan, 0,   nan])
+        out = np.array([nan, nan, nan])
+        assert_equal(np.maximum(arg1, arg2), out)
+
+    def test_object_nans(self):
+        # Multiple checks to give this a chance to
+        # fail if cmp is used instead of rich compare.
+        # Failure cannot be guaranteed.
+        for i in range(1):
+            x = np.array(float('nan'), object)
+            y = 1.0
+            z = np.array(float('nan'), object)
+            assert_(np.maximum(x, y) == 1.0)
+            assert_(np.maximum(z, y) == 1.0)
+
+    def test_complex_nans(self):
+        nan = np.nan
+        for cnan in [complex(nan, 0), complex(0, nan), complex(nan, nan)]:
+            arg1 = np.array([0, cnan, cnan], dtype=complex)
+            arg2 = np.array([cnan, 0, cnan], dtype=complex)
+            out = np.array([nan, nan, nan], dtype=complex)
+            assert_equal(np.maximum(arg1, arg2), out)
+
+    def test_object_array(self):
+        arg1 = np.arange(5, dtype=object)
+        arg2 = arg1 + 1
+        assert_equal(np.maximum(arg1, arg2), arg2)
+
+    def test_strided_array(self):
+        arr1 = np.array([-4.0,  1.0, 10.0,   0.0, np.nan, -np.nan, np.inf, -np.inf])
+        arr2 = np.array([-2.0, -1.0, np.nan, 1.0, 0.0,     np.nan, 1.0,    -3.0])  # noqa: E221
+        maxtrue = np.array([-2.0, 1.0, np.nan, 1.0, np.nan, np.nan, np.inf, -3.0])
+        out = np.ones(8)
+        out_maxtrue = np.array([-2.0, 1.0, 1.0, 10.0, 1.0, 1.0, np.nan, 1.0])
+        assert_equal(np.maximum(arr1, arr2), maxtrue)
+        assert_equal(np.maximum(arr1[::2], arr2[::2]), maxtrue[::2])
+        assert_equal(np.maximum(arr1[:4:], arr2[::2]), np.array([-2.0, np.nan, 10.0, 1.0]))
+        assert_equal(np.maximum(arr1[::3], arr2[:3:]), np.array([-2.0, 0.0, np.nan]))
+        assert_equal(np.maximum(arr1[:6:2], arr2[::3], out=out[::3]), np.array([-2.0, 10., np.nan]))
+        assert_equal(out, out_maxtrue)
+
+    def test_precision(self):
+        dtypes = [np.float16, np.float32, np.float64, np.longdouble]
+
+        for dt in dtypes:
+            dtmin = np.finfo(dt).min
+            dtmax = np.finfo(dt).max
+            d1 = dt(0.1)
+            d1_next = np.nextafter(d1, np.inf)
+
+            test_cases = [
+                # v1    v2          expected
+                (dtmin, -np.inf,    dtmin),
+                (dtmax, -np.inf,    dtmax),
+                (d1,    d1_next,    d1_next),
+                (dtmax, np.nan,     np.nan),
+            ]
+
+            for v1, v2, expected in test_cases:
+                assert_equal(np.maximum([v1], [v2]), [expected])
+                assert_equal(np.maximum.reduce([v1, v2]), expected)
+
+
+class TestMinimum(_FilterInvalids):
+    def test_reduce(self):
+        dflt = np.typecodes['AllFloat']
+        dint = np.typecodes['AllInteger']
+        seq1 = np.arange(11)
+        seq2 = seq1[::-1]
+        func = np.minimum.reduce
+        for dt in dint:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 0)
+            assert_equal(func(tmp2), 0)
+        for dt in dflt:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 0)
+            assert_equal(func(tmp2), 0)
+            tmp1[::2] = np.nan
+            tmp2[::2] = np.nan
+            assert_equal(func(tmp1), np.nan)
+            assert_equal(func(tmp2), np.nan)
+
+    def test_reduce_complex(self):
+        assert_equal(np.minimum.reduce([1, 2j]), 2j)
+        assert_equal(np.minimum.reduce([1 + 3j, 2j]), 2j)
+
+    def test_float_nans(self):
+        nan = np.nan
+        arg1 = np.array([0,   nan, nan])
+        arg2 = np.array([nan, 0,   nan])
+        out = np.array([nan, nan, nan])
+        assert_equal(np.minimum(arg1, arg2), out)
+
+    def test_object_nans(self):
+        # Multiple checks to give this a chance to
+        # fail if cmp is used instead of rich compare.
+        # Failure cannot be guaranteed.
+        for i in range(1):
+            x = np.array(float('nan'), object)
+            y = 1.0
+            z = np.array(float('nan'), object)
+            assert_(np.minimum(x, y) == 1.0)
+            assert_(np.minimum(z, y) == 1.0)
+
+    def test_complex_nans(self):
+        nan = np.nan
+        for cnan in [complex(nan, 0), complex(0, nan), complex(nan, nan)]:
+            arg1 = np.array([0, cnan, cnan], dtype=complex)
+            arg2 = np.array([cnan, 0, cnan], dtype=complex)
+            out = np.array([nan, nan, nan], dtype=complex)
+            assert_equal(np.minimum(arg1, arg2), out)
+
+    def test_object_array(self):
+        arg1 = np.arange(5, dtype=object)
+        arg2 = arg1 + 1
+        assert_equal(np.minimum(arg1, arg2), arg1)
+
+    def test_strided_array(self):
+        arr1 = np.array([-4.0, 1.0, 10.0,  0.0, np.nan, -np.nan, np.inf, -np.inf])
+        arr2 = np.array([-2.0, -1.0, np.nan, 1.0, 0.0,    np.nan, 1.0, -3.0])
+        mintrue = np.array([-4.0, -1.0, np.nan, 0.0, np.nan, np.nan, 1.0, -np.inf])
+        out = np.ones(8)
+        out_mintrue = np.array([-4.0, 1.0, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0])
+        assert_equal(np.minimum(arr1, arr2), mintrue)
+        assert_equal(np.minimum(arr1[::2], arr2[::2]), mintrue[::2])
+        assert_equal(np.minimum(arr1[:4:], arr2[::2]), np.array([-4.0, np.nan, 0.0, 0.0]))
+        assert_equal(np.minimum(arr1[::3], arr2[:3:]), np.array([-4.0, -1.0, np.nan]))
+        assert_equal(np.minimum(arr1[:6:2], arr2[::3], out=out[::3]), np.array([-4.0, 1.0, np.nan]))
+        assert_equal(out, out_mintrue)
+
+    def test_precision(self):
+        dtypes = [np.float16, np.float32, np.float64, np.longdouble]
+
+        for dt in dtypes:
+            dtmin = np.finfo(dt).min
+            dtmax = np.finfo(dt).max
+            d1 = dt(0.1)
+            d1_next = np.nextafter(d1, np.inf)
+
+            test_cases = [
+                # v1    v2          expected
+                (dtmin, np.inf,     dtmin),
+                (dtmax, np.inf,     dtmax),
+                (d1,    d1_next,    d1),
+                (dtmin, np.nan,     np.nan),
+            ]
+
+            for v1, v2, expected in test_cases:
+                assert_equal(np.minimum([v1], [v2]), [expected])
+                assert_equal(np.minimum.reduce([v1, v2]), expected)
+
+
+class TestFmax(_FilterInvalids):
+    def test_reduce(self):
+        dflt = np.typecodes['AllFloat']
+        dint = np.typecodes['AllInteger']
+        seq1 = np.arange(11)
+        seq2 = seq1[::-1]
+        func = np.fmax.reduce
+        for dt in dint:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 10)
+            assert_equal(func(tmp2), 10)
+        for dt in dflt:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 10)
+            assert_equal(func(tmp2), 10)
+            tmp1[::2] = np.nan
+            tmp2[::2] = np.nan
+            assert_equal(func(tmp1), 9)
+            assert_equal(func(tmp2), 9)
+
+    def test_reduce_complex(self):
+        assert_equal(np.fmax.reduce([1, 2j]), 1)
+        assert_equal(np.fmax.reduce([1 + 3j, 2j]), 1 + 3j)
+
+    def test_float_nans(self):
+        nan = np.nan
+        arg1 = np.array([0,   nan, nan])
+        arg2 = np.array([nan, 0,   nan])
+        out = np.array([0,   0,   nan])
+        assert_equal(np.fmax(arg1, arg2), out)
+
+    def test_complex_nans(self):
+        nan = np.nan
+        for cnan in [complex(nan, 0), complex(0, nan), complex(nan, nan)]:
+            arg1 = np.array([0, cnan, cnan], dtype=complex)
+            arg2 = np.array([cnan, 0, cnan], dtype=complex)
+            out = np.array([0,    0, nan], dtype=complex)
+            assert_equal(np.fmax(arg1, arg2), out)
+
+    def test_precision(self):
+        dtypes = [np.float16, np.float32, np.float64, np.longdouble]
+
+        for dt in dtypes:
+            dtmin = np.finfo(dt).min
+            dtmax = np.finfo(dt).max
+            d1 = dt(0.1)
+            d1_next = np.nextafter(d1, np.inf)
+
+            test_cases = [
+                # v1    v2          expected
+                (dtmin, -np.inf,    dtmin),
+                (dtmax, -np.inf,    dtmax),
+                (d1,    d1_next,    d1_next),
+                (dtmax, np.nan,     dtmax),
+            ]
+
+            for v1, v2, expected in test_cases:
+                assert_equal(np.fmax([v1], [v2]), [expected])
+                assert_equal(np.fmax.reduce([v1, v2]), expected)
+
+
+class TestFmin(_FilterInvalids):
+    def test_reduce(self):
+        dflt = np.typecodes['AllFloat']
+        dint = np.typecodes['AllInteger']
+        seq1 = np.arange(11)
+        seq2 = seq1[::-1]
+        func = np.fmin.reduce
+        for dt in dint:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 0)
+            assert_equal(func(tmp2), 0)
+        for dt in dflt:
+            tmp1 = seq1.astype(dt)
+            tmp2 = seq2.astype(dt)
+            assert_equal(func(tmp1), 0)
+            assert_equal(func(tmp2), 0)
+            tmp1[::2] = np.nan
+            tmp2[::2] = np.nan
+            assert_equal(func(tmp1), 1)
+            assert_equal(func(tmp2), 1)
+
+    def test_reduce_complex(self):
+        assert_equal(np.fmin.reduce([1, 2j]), 2j)
+        assert_equal(np.fmin.reduce([1 + 3j, 2j]), 2j)
+
+    def test_float_nans(self):
+        nan = np.nan
+        arg1 = np.array([0,   nan, nan])
+        arg2 = np.array([nan, 0,   nan])
+        out = np.array([0,   0,   nan])
+        assert_equal(np.fmin(arg1, arg2), out)
+
+    def test_complex_nans(self):
+        nan = np.nan
+        for cnan in [complex(nan, 0), complex(0, nan), complex(nan, nan)]:
+            arg1 = np.array([0, cnan, cnan], dtype=complex)
+            arg2 = np.array([cnan, 0, cnan], dtype=complex)
+            out = np.array([0,    0, nan], dtype=complex)
+            assert_equal(np.fmin(arg1, arg2), out)
+
+    def test_precision(self):
+        dtypes = [np.float16, np.float32, np.float64, np.longdouble]
+
+        for dt in dtypes:
+            dtmin = np.finfo(dt).min
+            dtmax = np.finfo(dt).max
+            d1 = dt(0.1)
+            d1_next = np.nextafter(d1, np.inf)
+
+            test_cases = [
+                # v1    v2          expected
+                (dtmin, np.inf,     dtmin),
+                (dtmax, np.inf,     dtmax),
+                (d1,    d1_next,    d1),
+                (dtmin, np.nan,     dtmin),
+            ]
+
+            for v1, v2, expected in test_cases:
+                assert_equal(np.fmin([v1], [v2]), [expected])
+                assert_equal(np.fmin.reduce([v1, v2]), expected)
+
+
+class TestBool:
+    def test_exceptions(self):
+        a = np.ones(1, dtype=np.bool)
+        assert_raises(TypeError, np.negative, a)
+        assert_raises(TypeError, np.positive, a)
+        assert_raises(TypeError, np.subtract, a, a)
+
+    def test_truth_table_logical(self):
+        # 2, 3 and 4 serves as true values
+        input1 = [0, 0, 3, 2]
+        input2 = [0, 4, 0, 2]
+
+        typecodes = (np.typecodes['AllFloat']
+                     + np.typecodes['AllInteger']
+                     + '?')     # boolean
+        for dtype in map(np.dtype, typecodes):
+            arg1 = np.asarray(input1, dtype=dtype)
+            arg2 = np.asarray(input2, dtype=dtype)
+
+            # OR
+            out = [False, True, True, True]
+            for func in (np.logical_or, np.maximum):
+                assert_equal(func(arg1, arg2).astype(bool), out)
+            # AND
+            out = [False, False, False, True]
+            for func in (np.logical_and, np.minimum):
+                assert_equal(func(arg1, arg2).astype(bool), out)
+            # XOR
+            out = [False, True, True, False]
+            for func in (np.logical_xor, np.not_equal):
+                assert_equal(func(arg1, arg2).astype(bool), out)
+
+    def test_truth_table_bitwise(self):
+        arg1 = [False, False, True, True]
+        arg2 = [False, True, False, True]
+
+        out = [False, True, True, True]
+        assert_equal(np.bitwise_or(arg1, arg2), out)
+
+        out = [False, False, False, True]
+        assert_equal(np.bitwise_and(arg1, arg2), out)
+
+        out = [False, True, True, False]
+        assert_equal(np.bitwise_xor(arg1, arg2), out)
+
+    def test_reduce(self):
+        none = np.array([0, 0, 0, 0], bool)
+        some = np.array([1, 0, 1, 1], bool)
+        every = np.array([1, 1, 1, 1], bool)
+        empty = np.array([], bool)
+
+        arrs = [none, some, every, empty]
+
+        for arr in arrs:
+            assert_equal(np.logical_and.reduce(arr), all(arr))
+
+        for arr in arrs:
+            assert_equal(np.logical_or.reduce(arr), any(arr))
+
+        for arr in arrs:
+            assert_equal(np.logical_xor.reduce(arr), arr.sum() % 2 == 1)
+
+
+class TestBitwiseUFuncs:
+
+    _all_ints_bits = [
+        np.dtype(c).itemsize * 8 for c in np.typecodes["AllInteger"]]
+    bitwise_types = [
+        np.dtype(c) for c in '?' + np.typecodes["AllInteger"] + 'O']
+    bitwise_bits = [
+        2,  # boolean type
+        *_all_ints_bits,  # All integers
+        max(_all_ints_bits) + 1,  # Object_ type
+    ]
+
+    def test_values(self):
+        for dt in self.bitwise_types:
+            zeros = np.array([0], dtype=dt)
+            ones = np.array([-1]).astype(dt)
+            msg = f"dt = '{dt.char}'"
+
+            assert_equal(np.bitwise_not(zeros), ones, err_msg=msg)
+            assert_equal(np.bitwise_not(ones), zeros, err_msg=msg)
+
+            assert_equal(np.bitwise_or(zeros, zeros), zeros, err_msg=msg)
+            assert_equal(np.bitwise_or(zeros, ones), ones, err_msg=msg)
+            assert_equal(np.bitwise_or(ones, zeros), ones, err_msg=msg)
+            assert_equal(np.bitwise_or(ones, ones), ones, err_msg=msg)
+
+            assert_equal(np.bitwise_xor(zeros, zeros), zeros, err_msg=msg)
+            assert_equal(np.bitwise_xor(zeros, ones), ones, err_msg=msg)
+            assert_equal(np.bitwise_xor(ones, zeros), ones, err_msg=msg)
+            assert_equal(np.bitwise_xor(ones, ones), zeros, err_msg=msg)
+
+            assert_equal(np.bitwise_and(zeros, zeros), zeros, err_msg=msg)
+            assert_equal(np.bitwise_and(zeros, ones), zeros, err_msg=msg)
+            assert_equal(np.bitwise_and(ones, zeros), zeros, err_msg=msg)
+            assert_equal(np.bitwise_and(ones, ones), ones, err_msg=msg)
+
+    def test_types(self):
+        for dt in self.bitwise_types:
+            zeros = np.array([0], dtype=dt)
+            ones = np.array([-1]).astype(dt)
+            msg = f"dt = '{dt.char}'"
+
+            assert_(np.bitwise_not(zeros).dtype == dt, msg)
+            assert_(np.bitwise_or(zeros, zeros).dtype == dt, msg)
+            assert_(np.bitwise_xor(zeros, zeros).dtype == dt, msg)
+            assert_(np.bitwise_and(zeros, zeros).dtype == dt, msg)
+
+    def test_identity(self):
+        assert_(np.bitwise_or.identity == 0, 'bitwise_or')
+        assert_(np.bitwise_xor.identity == 0, 'bitwise_xor')
+        assert_(np.bitwise_and.identity == -1, 'bitwise_and')
+
+    def test_reduction(self):
+        binary_funcs = (np.bitwise_or, np.bitwise_xor, np.bitwise_and)
+
+        for dt in self.bitwise_types:
+            zeros = np.array([0], dtype=dt)
+            ones = np.array([-1]).astype(dt)
+            for f in binary_funcs:
+                msg = f"dt: '{dt}', f: '{f}'"
+                assert_equal(f.reduce(zeros), zeros, err_msg=msg)
+                assert_equal(f.reduce(ones), ones, err_msg=msg)
+
+        # Test empty reduction, no object dtype
+        for dt in self.bitwise_types[:-1]:
+            # No object array types
+            empty = np.array([], dtype=dt)
+            for f in binary_funcs:
+                msg = f"dt: '{dt}', f: '{f}'"
+                tgt = np.array(f.identity).astype(dt)
+                res = f.reduce(empty)
+                assert_equal(res, tgt, err_msg=msg)
+                assert_(res.dtype == tgt.dtype, msg)
+
+        # Empty object arrays use the identity.  Note that the types may
+        # differ, the actual type used is determined by the assign_identity
+        # function and is not the same as the type returned by the identity
+        # method.
+        for f in binary_funcs:
+            msg = f"dt: '{f}'"
+            empty = np.array([], dtype=object)
+            tgt = f.identity
+            res = f.reduce(empty)
+            assert_equal(res, tgt, err_msg=msg)
+
+        # Non-empty object arrays do not use the identity
+        for f in binary_funcs:
+            msg = f"dt: '{f}'"
+            btype = np.array([True], dtype=object)
+            assert_(type(f.reduce(btype)) is bool, msg)
+
+    @pytest.mark.parametrize("input_dtype_obj, bitsize",
+            zip(bitwise_types, bitwise_bits))
+    def test_bitwise_count(self, input_dtype_obj, bitsize):
+        input_dtype = input_dtype_obj.type
+
+        for i in range(1, bitsize):
+            num = 2**i - 1
+            msg = f"bitwise_count for {num}"
+            assert i == np.bitwise_count(input_dtype(num)), msg
+            if np.issubdtype(
+                input_dtype, np.signedinteger) or input_dtype == np.object_:
+                assert i == np.bitwise_count(input_dtype(-num)), msg
+
+        a = np.array([2**i - 1 for i in range(1, bitsize)], dtype=input_dtype)
+        bitwise_count_a = np.bitwise_count(a)
+        expected = np.arange(1, bitsize, dtype=input_dtype)
+
+        msg = f"array bitwise_count for {input_dtype}"
+        assert all(bitwise_count_a == expected), msg
+
+
+class TestInt:
+    def test_logical_not(self):
+        x = np.ones(10, dtype=np.int16)
+        o = np.ones(10 * 2, dtype=bool)
+        tgt = o.copy()
+        tgt[::2] = False
+        os = o[::2]
+        assert_array_equal(np.logical_not(x, out=os), False)
+        assert_array_equal(o, tgt)
+
+
+class TestFloatingPoint:
+    def test_floating_point(self):
+        assert_equal(ncu.FLOATING_POINT_SUPPORT, 1)
+
+
+class TestDegrees:
+    def test_degrees(self):
+        assert_almost_equal(ncu.degrees(np.pi), 180.0)
+        assert_almost_equal(ncu.degrees(-0.5 * np.pi), -90.0)
+
+
+class TestRadians:
+    def test_radians(self):
+        assert_almost_equal(ncu.radians(180.0), np.pi)
+        assert_almost_equal(ncu.radians(-90.0), -0.5 * np.pi)
+
+
+class TestHeavside:
+    def test_heaviside(self):
+        x = np.array([[-30.0, -0.1, 0.0, 0.2], [7.5, np.nan, np.inf, -np.inf]])
+        expectedhalf = np.array([[0.0, 0.0, 0.5, 1.0], [1.0, np.nan, 1.0, 0.0]])
+        expected1 = expectedhalf.copy()
+        expected1[0, 2] = 1
+
+        h = ncu.heaviside(x, 0.5)
+        assert_equal(h, expectedhalf)
+
+        h = ncu.heaviside(x, 1.0)
+        assert_equal(h, expected1)
+
+        x = x.astype(np.float32)
+
+        h = ncu.heaviside(x, np.float32(0.5))
+        assert_equal(h, expectedhalf.astype(np.float32))
+
+        h = ncu.heaviside(x, np.float32(1.0))
+        assert_equal(h, expected1.astype(np.float32))
+
+
+class TestSign:
+    def test_sign(self):
+        a = np.array([np.inf, -np.inf, np.nan, 0.0, 3.0, -3.0])
+        out = np.zeros(a.shape)
+        tgt = np.array([1., -1., np.nan, 0.0, 1.0, -1.0])
+
+        with np.errstate(invalid='ignore'):
+            res = ncu.sign(a)
+            assert_equal(res, tgt)
+            res = ncu.sign(a, out)
+            assert_equal(res, tgt)
+            assert_equal(out, tgt)
+
+    def test_sign_complex(self):
+        a = np.array([
+            np.inf, -np.inf, complex(0, np.inf), complex(0, -np.inf),
+            complex(np.inf, np.inf), complex(np.inf, -np.inf),  # nan
+            np.nan, complex(0, np.nan), complex(np.nan, np.nan),  # nan
+            0.0,  # 0.
+            3.0, -3.0, -2j, 3.0 + 4.0j, -8.0 + 6.0j
+        ])
+        out = np.zeros(a.shape, a.dtype)
+        tgt = np.array([
+            1., -1., 1j, -1j,
+            ] + [complex(np.nan, np.nan)] * 5 + [
+            0.0,
+            1.0, -1.0, -1j, 0.6 + 0.8j, -0.8 + 0.6j])
+
+        with np.errstate(invalid='ignore'):
+            res = ncu.sign(a)
+            assert_equal(res, tgt)
+            res = ncu.sign(a, out)
+            assert_(res is out)
+            assert_equal(res, tgt)
+
+    def test_sign_dtype_object(self):
+        # In reference to github issue #6229
+
+        foo = np.array([-.1, 0, .1])
+        a = np.sign(foo.astype(object))
+        b = np.sign(foo)
+
+        assert_array_equal(a, b)
+
+    def test_sign_dtype_nan_object(self):
+        # In reference to github issue #6229
+        def test_nan():
+            foo = np.array([np.nan])
+            # FIXME: a not used
+            a = np.sign(foo.astype(object))
+
+        assert_raises(TypeError, test_nan)
+
+class TestMinMax:
+    def test_minmax_blocked(self):
+        # simd tests on max/min, test all alignments, slow but important
+        # for 2 * vz + 2 * (vs - 1) + 1 (unrolled once)
+        for dt, sz in [(np.float32, 15), (np.float64, 7)]:
+            for out, inp, msg in _gen_alignment_data(dtype=dt, type='unary',
+                                                     max_size=sz):
+                for i in range(inp.size):
+                    inp[:] = np.arange(inp.size, dtype=dt)
+                    inp[i] = np.nan
+                    emsg = lambda: f'{inp!r}\n{msg}'
+                    with warnings.catch_warnings():
+                        warnings.filterwarnings(
+                            'ignore',
+                            "invalid value encountered in reduce",
+                            RuntimeWarning)
+                        assert_(np.isnan(inp.max()), msg=emsg)
+                        assert_(np.isnan(inp.min()), msg=emsg)
+
+                    inp[i] = 1e10
+                    assert_equal(inp.max(), 1e10, err_msg=msg)
+                    inp[i] = -1e10
+                    assert_equal(inp.min(), -1e10, err_msg=msg)
+
+    def test_lower_align(self):
+        # check data that is not aligned to element size
+        # i.e doubles are aligned to 4 bytes on i386
+        d = np.zeros(23 * 8, dtype=np.int8)[4:-4].view(np.float64)
+        assert_equal(d.max(), d[0])
+        assert_equal(d.min(), d[0])
+
+    def test_reduce_reorder(self):
+        # gh 10370, 11029 Some compilers reorder the call to npy_getfloatstatus
+        # and put it before the call to an intrinsic function that causes
+        # invalid status to be set. Also make sure warnings are not emitted
+        for n in (2, 4, 8, 16, 32):
+            for dt in (np.float32, np.float16, np.complex64):
+                for r in np.diagflat(np.array([np.nan] * n, dtype=dt)):
+                    assert_equal(np.min(r), np.nan)
+
+    def test_minimize_no_warns(self):
+        a = np.minimum(np.nan, 1)
+        assert_equal(a, np.nan)
+
+
+class TestAbsoluteNegative:
+    def test_abs_neg_blocked(self):
+        # simd tests on abs, test all alignments for vz + 2 * (vs - 1) + 1
+        for dt, sz in [(np.float32, 11), (np.float64, 5)]:
+            for out, inp, msg in _gen_alignment_data(dtype=dt, type='unary',
+                                                     max_size=sz):
+                tgt = [ncu.absolute(i) for i in inp]
+                np.absolute(inp, out=out)
+                assert_equal(out, tgt, err_msg=msg)
+                assert_((out >= 0).all())
+
+                tgt = [-1 * (i) for i in inp]
+                np.negative(inp, out=out)
+                assert_equal(out, tgt, err_msg=msg)
+
+                for v in [np.nan, -np.inf, np.inf]:
+                    for i in range(inp.size):
+                        d = np.arange(inp.size, dtype=dt)
+                        inp[:] = -d
+                        inp[i] = v
+                        d[i] = -v if v == -np.inf else v
+                        assert_array_equal(np.abs(inp), d, err_msg=msg)
+                        np.abs(inp, out=out)
+                        assert_array_equal(out, d, err_msg=msg)
+
+                        assert_array_equal(-inp, -1 * inp, err_msg=msg)
+                        d = -1 * inp
+                        np.negative(inp, out=out)
+                        assert_array_equal(out, d, err_msg=msg)
+
+    def test_lower_align(self):
+        # check data that is not aligned to element size
+        # i.e doubles are aligned to 4 bytes on i386
+        d = np.zeros(23 * 8, dtype=np.int8)[4:-4].view(np.float64)
+        assert_equal(np.abs(d), d)
+        assert_equal(np.negative(d), -d)
+        np.negative(d, out=d)
+        np.negative(np.ones_like(d), out=d)
+        np.abs(d, out=d)
+        np.abs(np.ones_like(d), out=d)
+
+    @pytest.mark.parametrize("dtype", ['d', 'f', 'int32', 'int64'])
+    @pytest.mark.parametrize("big", [True, False])
+    def test_noncontiguous(self, dtype, big):
+        data = np.array([-1.0, 1.0, -0.0, 0.0, 2.2251e-308, -2.5, 2.5, -6,
+                            6, -2.2251e-308, -8, 10], dtype=dtype)
+        expect = np.array([1.0, -1.0, 0.0, -0.0, -2.2251e-308, 2.5, -2.5, 6,
+                            -6, 2.2251e-308, 8, -10], dtype=dtype)
+        if big:
+            data = np.repeat(data, 10)
+            expect = np.repeat(expect, 10)
+        out = np.ndarray(data.shape, dtype=dtype)
+        ncontig_in = data[1::2]
+        ncontig_out = out[1::2]
+        contig_in = np.array(ncontig_in)
+        # contig in, contig out
+        assert_array_equal(np.negative(contig_in), expect[1::2])
+        # contig in, ncontig out
+        assert_array_equal(np.negative(contig_in, out=ncontig_out),
+                                expect[1::2])
+        # ncontig in, contig out
+        assert_array_equal(np.negative(ncontig_in), expect[1::2])
+        # ncontig in, ncontig out
+        assert_array_equal(np.negative(ncontig_in, out=ncontig_out),
+                                expect[1::2])
+        # contig in, contig out, nd stride
+        data_split = np.array(np.array_split(data, 2))
+        expect_split = np.array(np.array_split(expect, 2))
+        assert_equal(np.negative(data_split), expect_split)
+
+
+class TestPositive:
+    def test_valid(self):
+        valid_dtypes = [int, float, complex, object]
+        for dtype in valid_dtypes:
+            x = np.arange(5, dtype=dtype)
+            result = np.positive(x)
+            assert_equal(x, result, err_msg=str(dtype))
+
+    def test_invalid(self):
+        with assert_raises(TypeError):
+            np.positive(True)
+        with assert_raises(TypeError):
+            np.positive(np.datetime64('2000-01-01'))
+        with assert_raises(TypeError):
+            np.positive(np.array(['foo'], dtype=str))
+        with assert_raises(TypeError):
+            np.positive(np.array(['bar'], dtype=object))
+
+
+class TestSpecialMethods:
+    def test_wrap(self):
+
+        class with_wrap:
+            def __array__(self, dtype=None, copy=None):
+                return np.zeros(1)
+
+            def __array_wrap__(self, arr, context, return_scalar):
+                r = with_wrap()
+                r.arr = arr
+                r.context = context
+                return r
+
+        a = with_wrap()
+        x = ncu.minimum(a, a)
+        assert_equal(x.arr, np.zeros(1))
+        func, args, i = x.context
+        assert_(func is ncu.minimum)
+        assert_equal(len(args), 2)
+        assert_equal(args[0], a)
+        assert_equal(args[1], a)
+        assert_equal(i, 0)
+
+    def test_wrap_out(self):
+        # Calling convention for out should not affect how special methods are
+        # called
+
+        class StoreArrayPrepareWrap(np.ndarray):
+            _wrap_args = None
+            _prepare_args = None
+
+            def __new__(cls):
+                return np.zeros(()).view(cls)
+
+            def __array_wrap__(self, obj, context, return_scalar):
+                self._wrap_args = context[1]
+                return obj
+
+            @property
+            def args(self):
+                # We need to ensure these are fetched at the same time, before
+                # any other ufuncs are called by the assertions
+                return self._wrap_args
+
+            def __repr__(self):
+                return "a"  # for short test output
+
+        def do_test(f_call, f_expected):
+            a = StoreArrayPrepareWrap()
+
+            f_call(a)
+
+            w = a.args
+            expected = f_expected(a)
+            try:
+                assert w == expected
+            except AssertionError as e:
+                # assert_equal produces truly useless error messages
+                raise AssertionError("\n".join([
+                    "Bad arguments passed in ufunc call",
+                    f" expected:              {expected}",
+                    f" __array_wrap__ got:    {w}"
+                ]))
+
+        # method not on the out argument
+        do_test(lambda a: np.add(a, 0), lambda a: (a, 0))
+        do_test(lambda a: np.add(a, 0, None), lambda a: (a, 0))
+        do_test(lambda a: np.add(a, 0, out=None), lambda a: (a, 0))
+        do_test(lambda a: np.add(a, 0, out=(None,)), lambda a: (a, 0))
+
+        # method on the out argument
+        do_test(lambda a: np.add(0, 0, a), lambda a: (0, 0, a))
+        do_test(lambda a: np.add(0, 0, out=a), lambda a: (0, 0, a))
+        do_test(lambda a: np.add(0, 0, out=(a,)), lambda a: (0, 0, a))
+
+        # Also check the where mask handling:
+        do_test(lambda a: np.add(a, 0, where=False), lambda a: (a, 0))
+        do_test(lambda a: np.add(0, 0, a, where=False), lambda a: (0, 0, a))
+
+    def test_wrap_with_iterable(self):
+        # test fix for bug #1026:
+
+        class with_wrap(np.ndarray):
+            __array_priority__ = 10
+
+            def __new__(cls):
+                return np.asarray(1).view(cls).copy()
+
+            def __array_wrap__(self, arr, context, return_scalar):
+                return arr.view(type(self))
+
+        a = with_wrap()
+        x = ncu.multiply(a, (1, 2, 3))
+        assert_(isinstance(x, with_wrap))
+        assert_array_equal(x, np.array((1, 2, 3)))
+
+    def test_priority_with_scalar(self):
+        # test fix for bug #826:
+
+        class A(np.ndarray):
+            __array_priority__ = 10
+
+            def __new__(cls):
+                return np.asarray(1.0, 'float64').view(cls).copy()
+
+        a = A()
+        x = np.float64(1) * a
+        assert_(isinstance(x, A))
+        assert_array_equal(x, np.array(1))
+
+    def test_priority(self):
+
+        class A:
+            def __array__(self, dtype=None, copy=None):
+                return np.zeros(1)
+
+            def __array_wrap__(self, arr, context, return_scalar):
+                r = type(self)()
+                r.arr = arr
+                r.context = context
+                return r
+
+        class B(A):
+            __array_priority__ = 20.
+
+        class C(A):
+            __array_priority__ = 40.
+
+        x = np.zeros(1)
+        a = A()
+        b = B()
+        c = C()
+        f = ncu.minimum
+        assert_(type(f(x, x)) is np.ndarray)
+        assert_(type(f(x, a)) is A)
+        assert_(type(f(x, b)) is B)
+        assert_(type(f(x, c)) is C)
+        assert_(type(f(a, x)) is A)
+        assert_(type(f(b, x)) is B)
+        assert_(type(f(c, x)) is C)
+
+        assert_(type(f(a, a)) is A)
+        assert_(type(f(a, b)) is B)
+        assert_(type(f(b, a)) is B)
+        assert_(type(f(b, b)) is B)
+        assert_(type(f(b, c)) is C)
+        assert_(type(f(c, b)) is C)
+        assert_(type(f(c, c)) is C)
+
+        assert_(type(ncu.exp(a) is A))
+        assert_(type(ncu.exp(b) is B))
+        assert_(type(ncu.exp(c) is C))
+
+    def test_failing_wrap(self):
+
+        class A:
+            def __array__(self, dtype=None, copy=None):
+                return np.zeros(2)
+
+            def __array_wrap__(self, arr, context, return_scalar):
+                raise RuntimeError
+
+        a = A()
+        assert_raises(RuntimeError, ncu.maximum, a, a)
+        assert_raises(RuntimeError, ncu.maximum.reduce, a)
+
+    def test_failing_out_wrap(self):
+
+        singleton = np.array([1.0])
+
+        class Ok(np.ndarray):
+            def __array_wrap__(self, obj, context, return_scalar):
+                return singleton
+
+        class Bad(np.ndarray):
+            def __array_wrap__(self, obj, context, return_scalar):
+                raise RuntimeError
+
+        ok = np.empty(1).view(Ok)
+        bad = np.empty(1).view(Bad)
+        # double-free (segfault) of "ok" if "bad" raises an exception
+        for i in range(10):
+            assert_raises(RuntimeError, ncu.frexp, 1, ok, bad)
+
+    def test_none_wrap(self):
+        # Tests that issue #8507 is resolved. Previously, this would segfault
+
+        class A:
+            def __array__(self, dtype=None, copy=None):
+                return np.zeros(1)
+
+            def __array_wrap__(self, arr, context=None, return_scalar=False):
+                return None
+
+        a = A()
+        assert_equal(ncu.maximum(a, a), None)
+
+    def test_default_prepare(self):
+
+        class with_wrap:
+            __array_priority__ = 10
+
+            def __array__(self, dtype=None, copy=None):
+                return np.zeros(1)
+
+            def __array_wrap__(self, arr, context, return_scalar):
+                return arr
+
+        a = with_wrap()
+        x = ncu.minimum(a, a)
+        assert_equal(x, np.zeros(1))
+        assert_equal(type(x), np.ndarray)
+
+    def test_array_too_many_args(self):
+
+        class A:
+            def __array__(self, dtype, context, copy=None):
+                return np.zeros(1)
+
+        a = A()
+        assert_raises_regex(TypeError, '2 required positional', np.sum, a)
+
+    def test_ufunc_override(self):
+        # check override works even with instance with high priority.
+        class A:
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                return self, func, method, inputs, kwargs
+
+        class MyNDArray(np.ndarray):
+            __array_priority__ = 100
+
+        a = A()
+        b = np.array([1]).view(MyNDArray)
+        res0 = np.multiply(a, b)
+        res1 = np.multiply(b, b, out=a)
+
+        # self
+        assert_equal(res0[0], a)
+        assert_equal(res1[0], a)
+        assert_equal(res0[1], np.multiply)
+        assert_equal(res1[1], np.multiply)
+        assert_equal(res0[2], '__call__')
+        assert_equal(res1[2], '__call__')
+        assert_equal(res0[3], (a, b))
+        assert_equal(res1[3], (b, b))
+        assert_equal(res0[4], {})
+        assert_equal(res1[4], {'out': (a,)})
+
+    def test_ufunc_override_mro(self):
+
+        # Some multi arg functions for testing.
+        def tres_mul(a, b, c):
+            return a * b * c
+
+        def quatro_mul(a, b, c, d):
+            return a * b * c * d
+
+        # Make these into ufuncs.
+        three_mul_ufunc = np.frompyfunc(tres_mul, 3, 1)
+        four_mul_ufunc = np.frompyfunc(quatro_mul, 4, 1)
+
+        class A:
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                return "A"
+
+        class ASub(A):
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                return "ASub"
+
+        class B:
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                return "B"
+
+        class C:
+            def __init__(self):
+                self.count = 0
+
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                self.count += 1
+                return NotImplemented
+
+        class CSub(C):
+            def __array_ufunc__(self, func, method, *inputs, **kwargs):
+                self.count += 1
+                return NotImplemented
+
+        a = A()
+        a_sub = ASub()
+        b = B()
+        c = C()
+
+        # Standard
+        res = np.multiply(a, a_sub)
+        assert_equal(res, "ASub")
+        res = np.multiply(a_sub, b)
+        assert_equal(res, "ASub")
+
+        # With 1 NotImplemented
+        res = np.multiply(c, a)
+        assert_equal(res, "A")
+        assert_equal(c.count, 1)
+        # Check our counter works, so we can trust tests below.
+        res = np.multiply(c, a)
+        assert_equal(c.count, 2)
+
+        # Both NotImplemented.
+        c = C()
+        c_sub = CSub()
+        assert_raises(TypeError, np.multiply, c, c_sub)
+        assert_equal(c.count, 1)
+        assert_equal(c_sub.count, 1)
+        c.count = c_sub.count = 0
+        assert_raises(TypeError, np.multiply, c_sub, c)
+        assert_equal(c.count, 1)
+        assert_equal(c_sub.count, 1)
+        c.count = 0
+        assert_raises(TypeError, np.multiply, c, c)
+        assert_equal(c.count, 1)
+        c.count = 0
+        assert_raises(TypeError, np.multiply, 2, c)
+        assert_equal(c.count, 1)
+
+        # Ternary testing.
+        assert_equal(three_mul_ufunc(a, 1, 2), "A")
+        assert_equal(three_mul_ufunc(1, a, 2), "A")
+        assert_equal(three_mul_ufunc(1, 2, a), "A")
+
+        assert_equal(three_mul_ufunc(a, a, 6), "A")
+        assert_equal(three_mul_ufunc(a, 2, a), "A")
+        assert_equal(three_mul_ufunc(a, 2, b), "A")
+        assert_equal(three_mul_ufunc(a, 2, a_sub), "ASub")
+        assert_equal(three_mul_ufunc(a, a_sub, 3), "ASub")
+        c.count = 0
+        assert_equal(three_mul_ufunc(c, a_sub, 3), "ASub")
+        assert_equal(c.count, 1)
+        c.count = 0
+        assert_equal(three_mul_ufunc(1, a_sub, c), "ASub")
+        assert_equal(c.count, 0)
+
+        c.count = 0
+        assert_equal(three_mul_ufunc(a, b, c), "A")
+        assert_equal(c.count, 0)
+        c_sub.count = 0
+        assert_equal(three_mul_ufunc(a, b, c_sub), "A")
+        assert_equal(c_sub.count, 0)
+        assert_equal(three_mul_ufunc(1, 2, b), "B")
+
+        assert_raises(TypeError, three_mul_ufunc, 1, 2, c)
+        assert_raises(TypeError, three_mul_ufunc, c_sub, 2, c)
+        assert_raises(TypeError, three_mul_ufunc, c_sub, 2, 3)
+
+        # Quaternary testing.
+        assert_equal(four_mul_ufunc(a, 1, 2, 3), "A")
+        assert_equal(four_mul_ufunc(1, a, 2, 3), "A")
+        assert_equal(four_mul_ufunc(1, 1, a, 3), "A")
+        assert_equal(four_mul_ufunc(1, 1, 2, a), "A")
+
+        assert_equal(four_mul_ufunc(a, b, 2, 3), "A")
+        assert_equal(four_mul_ufunc(1, a, 2, b), "A")
+        assert_equal(four_mul_ufunc(b, 1, a, 3), "B")
+        assert_equal(four_mul_ufunc(a_sub, 1, 2, a), "ASub")
+        assert_equal(four_mul_ufunc(a, 1, 2, a_sub), "ASub")
+
+        c = C()
+        c_sub = CSub()
+        assert_raises(TypeError, four_mul_ufunc, 1, 2, 3, c)
+        assert_equal(c.count, 1)
+        c.count = 0
+        assert_raises(TypeError, four_mul_ufunc, 1, 2, c_sub, c)
+        assert_equal(c_sub.count, 1)
+        assert_equal(c.count, 1)
+        c2 = C()
+        c.count = c_sub.count = 0
+        assert_raises(TypeError, four_mul_ufunc, 1, c, c_sub, c2)
+        assert_equal(c_sub.count, 1)
+        assert_equal(c.count, 1)
+        assert_equal(c2.count, 0)
+        c.count = c2.count = c_sub.count = 0
+        assert_raises(TypeError, four_mul_ufunc, c2, c, c_sub, c)
+        assert_equal(c_sub.count, 1)
+        assert_equal(c.count, 0)
+        assert_equal(c2.count, 1)
+
+    def test_ufunc_override_methods(self):
+
+        class A:
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+                return self, ufunc, method, inputs, kwargs
+
+        # __call__
+        a = A()
+        with assert_raises(TypeError):
+            np.multiply.__call__(1, a, foo='bar', answer=42)
+        res = np.multiply.__call__(1, a, subok='bar', where=42)
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], '__call__')
+        assert_equal(res[3], (1, a))
+        assert_equal(res[4], {'subok': 'bar', 'where': 42})
+
+        # __call__, wrong args
+        assert_raises(TypeError, np.multiply, a)
+        assert_raises(TypeError, np.multiply, a, a, a, a)
+        assert_raises(TypeError, np.multiply, a, a, sig='a', signature='a')
+        assert_raises(TypeError, ncu_tests.inner1d, a, a, axis=0, axes=[0, 0])
+
+        # reduce, positional args
+        res = np.multiply.reduce(a, 'axis0', 'dtype0', 'out0', 'keep0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'reduce')
+        assert_equal(res[3], (a,))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'keepdims': 'keep0',
+                              'axis': 'axis0'})
+
+        # reduce, kwargs
+        res = np.multiply.reduce(a, axis='axis0', dtype='dtype0', out='out0',
+                                 keepdims='keep0', initial='init0',
+                                 where='where0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'reduce')
+        assert_equal(res[3], (a,))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'keepdims': 'keep0',
+                              'axis': 'axis0',
+                              'initial': 'init0',
+                              'where': 'where0'})
+
+        # reduce, output equal to None removed, but not other explicit ones,
+        # even if they are at their default value.
+        res = np.multiply.reduce(a, 0, None, None, False)
+        assert_equal(res[4], {'axis': 0, 'dtype': None, 'keepdims': False})
+        res = np.multiply.reduce(a, out=None, axis=0, keepdims=True)
+        assert_equal(res[4], {'axis': 0, 'keepdims': True})
+        res = np.multiply.reduce(a, None, out=(None,), dtype=None)
+        assert_equal(res[4], {'axis': None, 'dtype': None})
+        res = np.multiply.reduce(a, 0, None, None, False, 2, True)
+        assert_equal(res[4], {'axis': 0, 'dtype': None, 'keepdims': False,
+                              'initial': 2, 'where': True})
+        # np._NoValue ignored for initial
+        res = np.multiply.reduce(a, 0, None, None, False,
+                                 np._NoValue, True)
+        assert_equal(res[4], {'axis': 0, 'dtype': None, 'keepdims': False,
+                              'where': True})
+        # None kept for initial, True for where.
+        res = np.multiply.reduce(a, 0, None, None, False, None, True)
+        assert_equal(res[4], {'axis': 0, 'dtype': None, 'keepdims': False,
+                              'initial': None, 'where': True})
+
+        # reduce, wrong args
+        assert_raises(ValueError, np.multiply.reduce, a, out=())
+        assert_raises(ValueError, np.multiply.reduce, a, out=('out0', 'out1'))
+        assert_raises(TypeError, np.multiply.reduce, a, 'axis0', axis='axis0')
+
+        # accumulate, pos args
+        res = np.multiply.accumulate(a, 'axis0', 'dtype0', 'out0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'accumulate')
+        assert_equal(res[3], (a,))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'axis': 'axis0'})
+
+        # accumulate, kwargs
+        res = np.multiply.accumulate(a, axis='axis0', dtype='dtype0',
+                                     out='out0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'accumulate')
+        assert_equal(res[3], (a,))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'axis': 'axis0'})
+
+        # accumulate, output equal to None removed.
+        res = np.multiply.accumulate(a, 0, None, None)
+        assert_equal(res[4], {'axis': 0, 'dtype': None})
+        res = np.multiply.accumulate(a, out=None, axis=0, dtype='dtype1')
+        assert_equal(res[4], {'axis': 0, 'dtype': 'dtype1'})
+        res = np.multiply.accumulate(a, None, out=(None,), dtype=None)
+        assert_equal(res[4], {'axis': None, 'dtype': None})
+
+        # accumulate, wrong args
+        assert_raises(ValueError, np.multiply.accumulate, a, out=())
+        assert_raises(ValueError, np.multiply.accumulate, a,
+                      out=('out0', 'out1'))
+        assert_raises(TypeError, np.multiply.accumulate, a,
+                      'axis0', axis='axis0')
+
+        # reduceat, pos args
+        res = np.multiply.reduceat(a, [4, 2], 'axis0', 'dtype0', 'out0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'reduceat')
+        assert_equal(res[3], (a, [4, 2]))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'axis': 'axis0'})
+
+        # reduceat, kwargs
+        res = np.multiply.reduceat(a, [4, 2], axis='axis0', dtype='dtype0',
+                                   out='out0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'reduceat')
+        assert_equal(res[3], (a, [4, 2]))
+        assert_equal(res[4], {'dtype': 'dtype0',
+                              'out': ('out0',),
+                              'axis': 'axis0'})
+
+        # reduceat, output equal to None removed.
+        res = np.multiply.reduceat(a, [4, 2], 0, None, None)
+        assert_equal(res[4], {'axis': 0, 'dtype': None})
+        res = np.multiply.reduceat(a, [4, 2], axis=None, out=None, dtype='dt')
+        assert_equal(res[4], {'axis': None, 'dtype': 'dt'})
+        res = np.multiply.reduceat(a, [4, 2], None, None, out=(None,))
+        assert_equal(res[4], {'axis': None, 'dtype': None})
+
+        # reduceat, wrong args
+        assert_raises(ValueError, np.multiply.reduce, a, [4, 2], out=())
+        assert_raises(ValueError, np.multiply.reduce, a, [4, 2],
+                      out=('out0', 'out1'))
+        assert_raises(TypeError, np.multiply.reduce, a, [4, 2],
+                      'axis0', axis='axis0')
+
+        # outer
+        res = np.multiply.outer(a, 42)
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'outer')
+        assert_equal(res[3], (a, 42))
+        assert_equal(res[4], {})
+
+        # outer, wrong args
+        assert_raises(TypeError, np.multiply.outer, a)
+        assert_raises(TypeError, np.multiply.outer, a, a, a, a)
+        assert_raises(TypeError, np.multiply.outer, a, a, sig='a', signature='a')
+
+        # at
+        res = np.multiply.at(a, [4, 2], 'b0')
+        assert_equal(res[0], a)
+        assert_equal(res[1], np.multiply)
+        assert_equal(res[2], 'at')
+        assert_equal(res[3], (a, [4, 2], 'b0'))
+
+        # at, wrong args
+        assert_raises(TypeError, np.multiply.at, a)
+        assert_raises(TypeError, np.multiply.at, a, a, a, a)
+
+    def test_ufunc_override_out(self):
+
+        class A:
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+                return kwargs
+
+        class B:
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+                return kwargs
+
+        a = A()
+        b = B()
+        res0 = np.multiply(a, b, 'out_arg')
+        res1 = np.multiply(a, b, out='out_arg')
+        res2 = np.multiply(2, b, 'out_arg')
+        res3 = np.multiply(3, b, out='out_arg')
+        res4 = np.multiply(a, 4, 'out_arg')
+        res5 = np.multiply(a, 5, out='out_arg')
+
+        assert_equal(res0['out'][0], 'out_arg')
+        assert_equal(res1['out'][0], 'out_arg')
+        assert_equal(res2['out'][0], 'out_arg')
+        assert_equal(res3['out'][0], 'out_arg')
+        assert_equal(res4['out'][0], 'out_arg')
+        assert_equal(res5['out'][0], 'out_arg')
+
+        # ufuncs with multiple output modf and frexp.
+        res6 = np.modf(a, 'out0', 'out1')
+        res7 = np.frexp(a, 'out0', 'out1')
+        assert_equal(res6['out'][0], 'out0')
+        assert_equal(res6['out'][1], 'out1')
+        assert_equal(res7['out'][0], 'out0')
+        assert_equal(res7['out'][1], 'out1')
+
+        # While we're at it, check that default output is never passed on.
+        assert_(np.sin(a, None) == {})
+        assert_(np.sin(a, out=None) == {})
+        assert_(np.sin(a, out=(None,)) == {})
+        assert_(np.modf(a, None) == {})
+        assert_(np.modf(a, None, None) == {})
+        assert_(np.modf(a, out=(None, None)) == {})
+        with assert_raises(TypeError):
+            # Out argument must be tuple, since there are multiple outputs.
+            np.modf(a, out=None)
+
+        # don't give positional and output argument, or too many arguments.
+        # wrong number of arguments in the tuple is an error too.
+        assert_raises(TypeError, np.multiply, a, b, 'one', out='two')
+        assert_raises(TypeError, np.multiply, a, b, 'one', 'two')
+        assert_raises(ValueError, np.multiply, a, b, out=('one', 'two'))
+        assert_raises(TypeError, np.multiply, a, out=())
+        assert_raises(TypeError, np.modf, a, 'one', out=('two', 'three'))
+        assert_raises(TypeError, np.modf, a, 'one', 'two', 'three')
+        assert_raises(ValueError, np.modf, a, out=('one', 'two', 'three'))
+        assert_raises(ValueError, np.modf, a, out=('one',))
+
+    def test_ufunc_override_where(self):
+
+        class OverriddenArrayOld(np.ndarray):
+
+            def _unwrap(self, objs):
+                cls = type(self)
+                result = []
+                for obj in objs:
+                    if isinstance(obj, cls):
+                        obj = np.array(obj)
+                    elif type(obj) != np.ndarray:
+                        return NotImplemented
+                    result.append(obj)
+                return result
+
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+
+                inputs = self._unwrap(inputs)
+                if inputs is NotImplemented:
+                    return NotImplemented
+
+                kwargs = kwargs.copy()
+                if "out" in kwargs:
+                    kwargs["out"] = self._unwrap(kwargs["out"])
+                    if kwargs["out"] is NotImplemented:
+                        return NotImplemented
+
+                r = super().__array_ufunc__(ufunc, method, *inputs, **kwargs)
+                if r is not NotImplemented:
+                    r = r.view(type(self))
+
+                return r
+
+        class OverriddenArrayNew(OverriddenArrayOld):
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+
+                kwargs = kwargs.copy()
+                if "where" in kwargs:
+                    kwargs["where"] = self._unwrap((kwargs["where"], ))
+                    if kwargs["where"] is NotImplemented:
+                        return NotImplemented
+                    else:
+                        kwargs["where"] = kwargs["where"][0]
+
+                r = super().__array_ufunc__(ufunc, method, *inputs, **kwargs)
+                if r is not NotImplemented:
+                    r = r.view(type(self))
+
+                return r
+
+        ufunc = np.negative
+
+        array = np.array([1, 2, 3])
+        where = np.array([True, False, True])
+        expected = ufunc(array, where=where)
+
+        with pytest.raises(TypeError):
+            ufunc(array, where=where.view(OverriddenArrayOld))
+
+        result_1 = ufunc(
+            array,
+            where=where.view(OverriddenArrayNew)
+        )
+        assert isinstance(result_1, OverriddenArrayNew)
+        assert np.all(np.array(result_1) == expected, where=where)
+
+        result_2 = ufunc(
+            array.view(OverriddenArrayNew),
+            where=where.view(OverriddenArrayNew)
+        )
+        assert isinstance(result_2, OverriddenArrayNew)
+        assert np.all(np.array(result_2) == expected, where=where)
+
+    def test_ufunc_override_exception(self):
+
+        class A:
+            def __array_ufunc__(self, *a, **kwargs):
+                raise ValueError("oops")
+
+        a = A()
+        assert_raises(ValueError, np.negative, 1, out=a)
+        assert_raises(ValueError, np.negative, a)
+        assert_raises(ValueError, np.divide, 1., a)
+
+    def test_ufunc_override_not_implemented(self):
+
+        class A:
+            def __array_ufunc__(self, *args, **kwargs):
+                return NotImplemented
+
+        msg = ("operand type(s) all returned NotImplemented from "
+               "__array_ufunc__(<ufunc 'negative'>, '__call__', <*>): 'A'")
+        with assert_raises_regex(TypeError, fnmatch.translate(msg)):
+            np.negative(A())
+
+        msg = ("operand type(s) all returned NotImplemented from "
+               "__array_ufunc__(<ufunc 'add'>, '__call__', <*>, <object *>, "
+               "out=(1,)): 'A', 'object', 'int'")
+        with assert_raises_regex(TypeError, fnmatch.translate(msg)):
+            np.add(A(), object(), out=1)
+
+    def test_ufunc_override_disabled(self):
+
+        class OptOut:
+            __array_ufunc__ = None
+
+        opt_out = OptOut()
+
+        # ufuncs always raise
+        msg = "operand 'OptOut' does not support ufuncs"
+        with assert_raises_regex(TypeError, msg):
+            np.add(opt_out, 1)
+        with assert_raises_regex(TypeError, msg):
+            np.add(1, opt_out)
+        with assert_raises_regex(TypeError, msg):
+            np.negative(opt_out)
+
+        # opt-outs still hold even when other arguments have pathological
+        # __array_ufunc__ implementations
+
+        class GreedyArray:
+            def __array_ufunc__(self, *args, **kwargs):
+                return self
+
+        greedy = GreedyArray()
+        assert_(np.negative(greedy) is greedy)
+        with assert_raises_regex(TypeError, msg):
+            np.add(greedy, opt_out)
+        with assert_raises_regex(TypeError, msg):
+            np.add(greedy, 1, out=opt_out)
+
+    def test_gufunc_override(self):
+        # gufunc are just ufunc instances, but follow a different path,
+        # so check __array_ufunc__ overrides them properly.
+        class A:
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+                return self, ufunc, method, inputs, kwargs
+
+        inner1d = ncu_tests.inner1d
+        a = A()
+        res = inner1d(a, a)
+        assert_equal(res[0], a)
+        assert_equal(res[1], inner1d)
+        assert_equal(res[2], '__call__')
+        assert_equal(res[3], (a, a))
+        assert_equal(res[4], {})
+
+        res = inner1d(1, 1, out=a)
+        assert_equal(res[0], a)
+        assert_equal(res[1], inner1d)
+        assert_equal(res[2], '__call__')
+        assert_equal(res[3], (1, 1))
+        assert_equal(res[4], {'out': (a,)})
+
+        # wrong number of arguments in the tuple is an error too.
+        assert_raises(TypeError, inner1d, a, out='two')
+        assert_raises(TypeError, inner1d, a, a, 'one', out='two')
+        assert_raises(TypeError, inner1d, a, a, 'one', 'two')
+        assert_raises(ValueError, inner1d, a, a, out=('one', 'two'))
+        assert_raises(ValueError, inner1d, a, a, out=())
+
+    def test_ufunc_override_with_super(self):
+        # NOTE: this class is used in doc/source/user/basics.subclassing.rst
+        # if you make any changes here, do update it there too.
+        class A(np.ndarray):
+            def __array_ufunc__(self, ufunc, method, *inputs, out=None, **kwargs):
+                args = []
+                in_no = []
+                for i, input_ in enumerate(inputs):
+                    if isinstance(input_, A):
+                        in_no.append(i)
+                        args.append(input_.view(np.ndarray))
+                    else:
+                        args.append(input_)
+
+                outputs = out
+                out_no = []
+                if outputs:
+                    out_args = []
+                    for j, output in enumerate(outputs):
+                        if isinstance(output, A):
+                            out_no.append(j)
+                            out_args.append(output.view(np.ndarray))
+                        else:
+                            out_args.append(output)
+                    kwargs['out'] = tuple(out_args)
+                else:
+                    outputs = (None,) * ufunc.nout
+
+                info = {}
+                if in_no:
+                    info['inputs'] = in_no
+                if out_no:
+                    info['outputs'] = out_no
+
+                results = super().__array_ufunc__(ufunc, method,
+                                                  *args, **kwargs)
+                if results is NotImplemented:
+                    return NotImplemented
+
+                if method == 'at':
+                    if isinstance(inputs[0], A):
+                        inputs[0].info = info
+                    return
+
+                if ufunc.nout == 1:
+                    results = (results,)
+
+                results = tuple((np.asarray(result).view(A)
+                                 if output is None else output)
+                                for result, output in zip(results, outputs))
+                if results and isinstance(results[0], A):
+                    results[0].info = info
+
+                return results[0] if len(results) == 1 else results
+
+        class B:
+            def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
+                if any(isinstance(input_, A) for input_ in inputs):
+                    return "A!"
+                else:
+                    return NotImplemented
+
+        d = np.arange(5.)
+        # 1 input, 1 output
+        a = np.arange(5.).view(A)
+        b = np.sin(a)
+        check = np.sin(d)
+        assert_(np.all(check == b))
+        assert_equal(b.info, {'inputs': [0]})
+        b = np.sin(d, out=(a,))
+        assert_(np.all(check == b))
+        assert_equal(b.info, {'outputs': [0]})
+        assert_(b is a)
+        a = np.arange(5.).view(A)
+        b = np.sin(a, out=a)
+        assert_(np.all(check == b))
+        assert_equal(b.info, {'inputs': [0], 'outputs': [0]})
+
+        # 1 input, 2 outputs
+        a = np.arange(5.).view(A)
+        b1, b2 = np.modf(a)
+        assert_equal(b1.info, {'inputs': [0]})
+        b1, b2 = np.modf(d, out=(None, a))
+        assert_(b2 is a)
+        assert_equal(b1.info, {'outputs': [1]})
+        a = np.arange(5.).view(A)
+        b = np.arange(5.).view(A)
+        c1, c2 = np.modf(a, out=(a, b))
+        assert_(c1 is a)
+        assert_(c2 is b)
+        assert_equal(c1.info, {'inputs': [0], 'outputs': [0, 1]})
+
+        # 2 input, 1 output
+        a = np.arange(5.).view(A)
+        b = np.arange(5.).view(A)
+        c = np.add(a, b, out=a)
+        assert_(c is a)
+        assert_equal(c.info, {'inputs': [0, 1], 'outputs': [0]})
+        # some tests with a non-ndarray subclass
+        a = np.arange(5.)
+        b = B()
+        assert_(a.__array_ufunc__(np.add, '__call__', a, b) is NotImplemented)
+        assert_(b.__array_ufunc__(np.add, '__call__', a, b) is NotImplemented)
+        assert_raises(TypeError, np.add, a, b)
+        a = a.view(A)
+        assert_(a.__array_ufunc__(np.add, '__call__', a, b) is NotImplemented)
+        assert_(b.__array_ufunc__(np.add, '__call__', a, b) == "A!")
+        assert_(np.add(a, b) == "A!")
+        # regression check for gh-9102 -- tests ufunc.reduce implicitly.
+        d = np.array([[1, 2, 3], [1, 2, 3]])
+        a = d.view(A)
+        c = a.any()
+        check = d.any()
+        assert_equal(c, check)
+        assert_(c.info, {'inputs': [0]})
+        c = a.max()
+        check = d.max()
+        assert_equal(c, check)
+        assert_(c.info, {'inputs': [0]})
+        b = np.array(0).view(A)
+        c = a.max(out=b)
+        assert_equal(c, check)
+        assert_(c is b)
+        assert_(c.info, {'inputs': [0], 'outputs': [0]})
+        check = a.max(axis=0)
+        b = np.zeros_like(check).view(A)
+        c = a.max(axis=0, out=b)
+        assert_equal(c, check)
+        assert_(c is b)
+        assert_(c.info, {'inputs': [0], 'outputs': [0]})
+        # simple explicit tests of reduce, accumulate, reduceat
+        check = np.add.reduce(d, axis=1)
+        c = np.add.reduce(a, axis=1)
+        assert_equal(c, check)
+        assert_(c.info, {'inputs': [0]})
+        b = np.zeros_like(c)
+        c = np.add.reduce(a, 1, None, b)
+        assert_equal(c, check)
+        assert_(c is b)
+        assert_(c.info, {'inputs': [0], 'outputs': [0]})
+        check = np.add.accumulate(d, axis=0)
+        c = np.add.accumulate(a, axis=0)
+        assert_equal(c, check)
+        assert_(c.info, {'inputs': [0]})
+        b = np.zeros_like(c)
+        c = np.add.accumulate(a, 0, None, b)
+        assert_equal(c, check)
+        assert_(c is b)
+        assert_(c.info, {'inputs': [0], 'outputs': [0]})
+        indices = [0, 2, 1]
+        check = np.add.reduceat(d, indices, axis=1)
+        c = np.add.reduceat(a, indices, axis=1)
+        assert_equal(c, check)
+        assert_(c.info, {'inputs': [0]})
+        b = np.zeros_like(c)
+        c = np.add.reduceat(a, indices, 1, None, b)
+        assert_equal(c, check)
+        assert_(c is b)
+        assert_(c.info, {'inputs': [0], 'outputs': [0]})
+        # and a few tests for at
+        d = np.array([[1, 2, 3], [1, 2, 3]])
+        check = d.copy()
+        a = d.copy().view(A)
+        np.add.at(check, ([0, 1], [0, 2]), 1.)
+        np.add.at(a, ([0, 1], [0, 2]), 1.)
+        assert_equal(a, check)
+        assert_(a.info, {'inputs': [0]})
+        b = np.array(1.).view(A)
+        a = d.copy().view(A)
+        np.add.at(a, ([0, 1], [0, 2]), b)
+        assert_equal(a, check)
+        assert_(a.info, {'inputs': [0, 2]})
+
+    def test_array_ufunc_direct_call(self):
+        # This is mainly a regression test for gh-24023 (shouldn't segfault)
+        a = np.array(1)
+        with pytest.raises(TypeError):
+            a.__array_ufunc__()
+
+        # No kwargs means kwargs may be NULL on the C-level
+        with pytest.raises(TypeError):
+            a.__array_ufunc__(1, 2)
+
+        # And the same with a valid call:
+        res = a.__array_ufunc__(np.add, "__call__", a, a)
+        assert_array_equal(res, a + a)
+
+    def test_ufunc_docstring(self):
+        original_doc = np.add.__doc__
+        new_doc = "new docs"
+        expected_dict = (
+            {} if IS_PYPY else {"__module__": "numpy", "__qualname__": "add"}
+        )
+
+        np.add.__doc__ = new_doc
+        assert np.add.__doc__ == new_doc
+        assert np.add.__dict__["__doc__"] == new_doc
+
+        del np.add.__doc__
+        assert np.add.__doc__ == original_doc
+        assert np.add.__dict__ == expected_dict
+
+        np.add.__dict__["other"] = 1
+        np.add.__dict__["__doc__"] = new_doc
+        assert np.add.__doc__ == new_doc
+
+        del np.add.__dict__["__doc__"]
+        assert np.add.__doc__ == original_doc
+        del np.add.__dict__["other"]
+        assert np.add.__dict__ == expected_dict
+
+
+class TestChoose:
+    def test_mixed(self):
+        c = np.array([True, True])
+        a = np.array([True, True])
+        assert_equal(np.choose(c, (a, 1)), np.array([1, 1]))
+
+
+class TestRationalFunctions:
+    def test_lcm(self):
+        self._test_lcm_inner(np.int16)
+        self._test_lcm_inner(np.uint16)
+
+    def test_lcm_object(self):
+        self._test_lcm_inner(np.object_)
+
+    def test_gcd(self):
+        self._test_gcd_inner(np.int16)
+        self._test_lcm_inner(np.uint16)
+
+    def test_gcd_object(self):
+        self._test_gcd_inner(np.object_)
+
+    def _test_lcm_inner(self, dtype):
+        # basic use
+        a = np.array([12, 120], dtype=dtype)
+        b = np.array([20, 200], dtype=dtype)
+        assert_equal(np.lcm(a, b), [60, 600])
+
+        if not issubclass(dtype, np.unsignedinteger):
+            # negatives are ignored
+            a = np.array([12, -12,  12, -12], dtype=dtype)
+            b = np.array([20,  20, -20, -20], dtype=dtype)
+            assert_equal(np.lcm(a, b), [60] * 4)
+
+        # reduce
+        a = np.array([3, 12, 20], dtype=dtype)
+        assert_equal(np.lcm.reduce([3, 12, 20]), 60)
+
+        # broadcasting, and a test including 0
+        a = np.arange(6).astype(dtype)
+        b = 20
+        assert_equal(np.lcm(a, b), [0, 20, 20, 60, 20, 20])
+
+    def _test_gcd_inner(self, dtype):
+        # basic use
+        a = np.array([12, 120], dtype=dtype)
+        b = np.array([20, 200], dtype=dtype)
+        assert_equal(np.gcd(a, b), [4, 40])
+
+        if not issubclass(dtype, np.unsignedinteger):
+            # negatives are ignored
+            a = np.array([12, -12,  12, -12], dtype=dtype)
+            b = np.array([20,  20, -20, -20], dtype=dtype)
+            assert_equal(np.gcd(a, b), [4] * 4)
+
+        # reduce
+        a = np.array([15, 25, 35], dtype=dtype)
+        assert_equal(np.gcd.reduce(a), 5)
+
+        # broadcasting, and a test including 0
+        a = np.arange(6).astype(dtype)
+        b = 20
+        assert_equal(np.gcd(a, b), [20,  1,  2,  1,  4,  5])
+
+    def test_lcm_overflow(self):
+        # verify that we don't overflow when a*b does overflow
+        big = np.int32(np.iinfo(np.int32).max // 11)
+        a = 2 * big
+        b = 5 * big
+        assert_equal(np.lcm(a, b), 10 * big)
+
+    def test_gcd_overflow(self):
+        for dtype in (np.int32, np.int64):
+            # verify that we don't overflow when taking abs(x)
+            # not relevant for lcm, where the result is unrepresentable anyway
+            a = dtype(np.iinfo(dtype).min)  # negative power of two
+            q = -(a // 4)
+            assert_equal(np.gcd(a,  q * 3), q)
+            assert_equal(np.gcd(a, -q * 3), q)
+
+    def test_decimal(self):
+        from decimal import Decimal
+        a = np.array([1,  1, -1, -1]) * Decimal('0.20')
+        b = np.array([1, -1,  1, -1]) * Decimal('0.12')
+
+        assert_equal(np.gcd(a, b), 4 * [Decimal('0.04')])
+        assert_equal(np.lcm(a, b), 4 * [Decimal('0.60')])
+
+    def test_float(self):
+        # not well-defined on float due to rounding errors
+        assert_raises(TypeError, np.gcd, 0.3, 0.4)
+        assert_raises(TypeError, np.lcm, 0.3, 0.4)
+
+    def test_huge_integers(self):
+        # Converting to an array first is a bit different as it means we
+        # have an explicit object dtype:
+        assert_equal(np.array(2**200), 2**200)
+        # Special promotion rules should ensure that this also works for
+        # two Python integers (even if slow).
+        # (We do this for comparisons, as the result is always bool and
+        # we also special case array comparisons with Python integers)
+        np.equal(2**200, 2**200)
+
+        # But, we cannot do this when it would affect the result dtype:
+        with pytest.raises(OverflowError):
+            np.gcd(2**100, 3**100)
+
+        # Asking for `object` explicitly is fine, though:
+        assert np.gcd(2**100, 3**100, dtype=object) == 1
+
+        # As of now, the below work, because it is using arrays (which
+        # will be object arrays)
+        a = np.array(2**100 * 3**5)
+        b = np.array([2**100 * 5**7, 2**50 * 3**10])
+        assert_equal(np.gcd(a, b), [2**100,               2**50 * 3**5])
+        assert_equal(np.lcm(a, b), [2**100 * 3**5 * 5**7, 2**100 * 3**10])
+
+    def test_inf_and_nan(self):
+        inf = np.array([np.inf], dtype=np.object_)
+        assert_raises(ValueError, np.gcd, inf, 1)
+        assert_raises(ValueError, np.gcd, 1, inf)
+        assert_raises(ValueError, np.gcd, np.nan, inf)
+        assert_raises(TypeError, np.gcd, 4, float(np.inf))
+
+
+class TestRoundingFunctions:
+
+    def test_object_direct(self):
+        """ test direct implementation of these magic methods """
+        class C:
+            def __floor__(self):
+                return 1
+
+            def __ceil__(self):
+                return 2
+
+            def __trunc__(self):
+                return 3
+
+        arr = np.array([C(), C()])
+        assert_equal(np.floor(arr), [1, 1])
+        assert_equal(np.ceil(arr),  [2, 2])
+        assert_equal(np.trunc(arr), [3, 3])
+
+    def test_object_indirect(self):
+        """ test implementations via __float__ """
+        class C:
+            def __float__(self):
+                return -2.5
+
+        arr = np.array([C(), C()])
+        assert_equal(np.floor(arr), [-3, -3])
+        assert_equal(np.ceil(arr),  [-2, -2])
+        with pytest.raises(TypeError):
+            np.trunc(arr)  # consistent with math.trunc
+
+    def test_fraction(self):
+        f = Fraction(-4, 3)
+        assert_equal(np.floor(f), -2)
+        assert_equal(np.ceil(f), -1)
+        assert_equal(np.trunc(f), -1)
+
+    @pytest.mark.parametrize('func', [np.floor, np.ceil, np.trunc])
+    @pytest.mark.parametrize('dtype', [np.bool, np.float64, np.float32,
+                                       np.int64, np.uint32])
+    def test_output_dtype(self, func, dtype):
+        arr = np.array([-2, 0, 4, 8]).astype(dtype)
+        result = func(arr)
+        assert_equal(arr, result)
+        assert result.dtype == dtype
+
+
+class TestComplexFunctions:
+    funcs = [np.arcsin,  np.arccos,  np.arctan, np.arcsinh, np.arccosh,
+             np.arctanh, np.sin,     np.cos,    np.tan,     np.exp,
+             np.exp2,    np.log,     np.sqrt,   np.log10,   np.log2,
+             np.log1p]
+
+    def test_it(self):
+        for f in self.funcs:
+            if f is np.arccosh:
+                x = 1.5
+            else:
+                x = .5
+            fr = f(x)
+            fz = f(complex(x))
+            assert_almost_equal(fz.real, fr, err_msg=f'real part {f}')
+            assert_almost_equal(fz.imag, 0., err_msg=f'imag part {f}')
+
+    @pytest.mark.xfail(IS_WASM, reason="doesn't work")
+    def test_precisions_consistent(self):
+        z = 1 + 1j
+        for f in self.funcs:
+            fcf = f(np.csingle(z))
+            fcd = f(np.cdouble(z))
+            fcl = f(np.clongdouble(z))
+            assert_almost_equal(fcf, fcd, decimal=6, err_msg=f'fch-fcd {f}')
+            assert_almost_equal(fcl, fcd, decimal=15, err_msg=f'fch-fcl {f}')
+
+    @pytest.mark.xfail(IS_WASM, reason="doesn't work")
+    def test_branch_cuts(self):
+        # check branch cuts and continuity on them
+        _check_branch_cut(np.log,   -0.5, 1j, 1, -1, True)  # noqa: E221
+        _check_branch_cut(np.log2,  -0.5, 1j, 1, -1, True)  # noqa: E221
+        _check_branch_cut(np.log10, -0.5, 1j, 1, -1, True)
+        _check_branch_cut(np.log1p, -1.5, 1j, 1, -1, True)
+        _check_branch_cut(np.sqrt,  -0.5, 1j, 1, -1, True)  # noqa: E221
+
+        _check_branch_cut(np.arcsin, [ -2, 2],   [1j, 1j], 1, -1, True)
+        _check_branch_cut(np.arccos, [ -2, 2],   [1j, 1j], 1, -1, True)
+        _check_branch_cut(np.arctan, [0 - 2j, 2j],  [1,  1], -1, 1, True)
+
+        _check_branch_cut(np.arcsinh, [0 - 2j,  2j], [1,   1], -1, 1, True)
+        _check_branch_cut(np.arccosh, [ -1, 0.5], [1j,  1j], 1, -1, True)
+        _check_branch_cut(np.arctanh, [ -2,   2], [1j, 1j], 1, -1, True)
+
+        # check against bogus branch cuts: assert continuity between quadrants
+        _check_branch_cut(np.arcsin, [0 - 2j, 2j], [ 1,  1], 1, 1)
+        _check_branch_cut(np.arccos, [0 - 2j, 2j], [ 1,  1], 1, 1)
+        _check_branch_cut(np.arctan, [ -2,  2], [1j, 1j], 1, 1)
+
+        _check_branch_cut(np.arcsinh, [ -2,  2, 0], [1j, 1j, 1], 1, 1)
+        _check_branch_cut(np.arccosh, [0 - 2j, 2j, 2], [1,  1,  1j], 1, 1)
+        _check_branch_cut(np.arctanh, [0 - 2j, 2j, 0], [1,  1,  1j], 1, 1)
+
+    @pytest.mark.xfail(IS_WASM, reason="doesn't work")
+    def test_branch_cuts_complex64(self):
+        # check branch cuts and continuity on them
+        _check_branch_cut(np.log,   -0.5, 1j, 1, -1, True, np.complex64)  # noqa: E221
+        _check_branch_cut(np.log2,  -0.5, 1j, 1, -1, True, np.complex64)  # noqa: E221
+        _check_branch_cut(np.log10, -0.5, 1j, 1, -1, True, np.complex64)
+        _check_branch_cut(np.log1p, -1.5, 1j, 1, -1, True, np.complex64)
+        _check_branch_cut(np.sqrt,  -0.5, 1j, 1, -1, True, np.complex64)  # noqa: E221
+
+        _check_branch_cut(np.arcsin, [ -2, 2],   [1j, 1j], 1, -1, True, np.complex64)
+        _check_branch_cut(np.arccos, [ -2, 2],   [1j, 1j], 1, -1, True, np.complex64)
+        _check_branch_cut(np.arctan, [0 - 2j, 2j],  [1,  1], -1, 1, True, np.complex64)
+
+        _check_branch_cut(np.arcsinh, [0 - 2j,  2j], [1,   1], -1, 1, True, np.complex64)
+        _check_branch_cut(np.arccosh, [ -1, 0.5], [1j,  1j], 1, -1, True, np.complex64)
+        _check_branch_cut(np.arctanh, [ -2,   2], [1j, 1j], 1, -1, True, np.complex64)
+
+        # check against bogus branch cuts: assert continuity between quadrants
+        _check_branch_cut(np.arcsin, [0 - 2j, 2j], [ 1,  1], 1, 1, False, np.complex64)
+        _check_branch_cut(np.arccos, [0 - 2j, 2j], [ 1,  1], 1, 1, False, np.complex64)
+        _check_branch_cut(np.arctan, [ -2,  2], [1j, 1j], 1, 1, False, np.complex64)
+
+        _check_branch_cut(np.arcsinh, [ -2,  2, 0], [1j, 1j, 1], 1, 1, False, np.complex64)
+        _check_branch_cut(np.arccosh, [0 - 2j, 2j, 2], [1,  1,  1j], 1, 1, False, np.complex64)
+        _check_branch_cut(np.arctanh, [0 - 2j, 2j, 0], [1,  1,  1j], 1, 1, False, np.complex64)
+
+    def test_against_cmath(self):
+        import cmath
+
+        points = [-1 - 1j, -1 + 1j, +1 - 1j, +1 + 1j]
+        name_map = {'arcsin': 'asin', 'arccos': 'acos', 'arctan': 'atan',
+                    'arcsinh': 'asinh', 'arccosh': 'acosh', 'arctanh': 'atanh'}
+        atol = 4 * np.finfo(complex).eps
+        for func in self.funcs:
+            fname = func.__name__.split('.')[-1]
+            cname = name_map.get(fname, fname)
+            try:
+                cfunc = getattr(cmath, cname)
+            except AttributeError:
+                continue
+            for p in points:
+                a = complex(func(np.complex128(p)))
+                b = cfunc(p)
+                assert_(
+                    abs(a - b) < atol,
+                    f"{fname} {p}: {a}; cmath: {b}"
+                )
+
+    @pytest.mark.xfail(
+        # manylinux2014 uses glibc2.17
+        _glibc_older_than("2.18"),
+        reason="Older glibc versions are imprecise (maybe passes with SIMD?)"
+    )
+    @pytest.mark.xfail(IS_WASM, reason="doesn't work")
+    @pytest.mark.parametrize('dtype', [
+        np.complex64, np.complex128, np.clongdouble
+    ])
+    def test_loss_of_precision(self, dtype):
+        """Check loss of precision in complex arc* functions"""
+        if dtype is np.clongdouble and platform.machine() != 'x86_64':
+            # Failures on musllinux, aarch64, s390x, ppc64le (see gh-17554)
+            pytest.skip('Only works reliably for x86-64 and recent glibc')
+
+        # Check against known-good functions
+
+        info = np.finfo(dtype)
+        real_dtype = dtype(0.).real.dtype
+        eps = info.eps
+
+        def check(x, rtol):
+            x = x.astype(real_dtype)
+
+            z = x.astype(dtype)
+            d = np.absolute(np.arcsinh(x) / np.arcsinh(z).real - 1)
+            assert_(np.all(d < rtol), (np.argmax(d), x[np.argmax(d)], d.max(),
+                                      'arcsinh'))
+
+            z = (1j * x).astype(dtype)
+            d = np.absolute(np.arcsinh(x) / np.arcsin(z).imag - 1)
+            assert_(np.all(d < rtol), (np.argmax(d), x[np.argmax(d)], d.max(),
+                                      'arcsin'))
+
+            z = x.astype(dtype)
+            d = np.absolute(np.arctanh(x) / np.arctanh(z).real - 1)
+            assert_(np.all(d < rtol), (np.argmax(d), x[np.argmax(d)], d.max(),
+                                      'arctanh'))
+
+            z = (1j * x).astype(dtype)
+            d = np.absolute(np.arctanh(x) / np.arctan(z).imag - 1)
+            assert_(np.all(d < rtol), (np.argmax(d), x[np.argmax(d)], d.max(),
+                                      'arctan'))
+
+        # The switchover was chosen as 1e-3; hence there can be up to
+        # ~eps/1e-3 of relative cancellation error before it
+
+        x_series = np.logspace(-20, -3.001, 200)
+        x_basic = np.logspace(-2.999, 0, 10, endpoint=False)
+
+        if dtype is np.clongdouble:
+            if bad_arcsinh():
+                pytest.skip("Trig functions of np.clongdouble values known "
+                            "to be inaccurate on aarch64 and PPC for some "
+                            "compilation configurations.")
+            # It's not guaranteed that the system-provided arc functions
+            # are accurate down to a few epsilons. (Eg. on Linux 64-bit)
+            # So, give more leeway for long complex tests here:
+            check(x_series, 50.0 * eps)
+        else:
+            check(x_series, 2.1 * eps)
+        check(x_basic, 2.0 * eps / 1e-3)
+
+        # Check a few points
+
+        z = np.array([1e-5 * (1 + 1j)], dtype=dtype)
+        p = 9.999999999333333333e-6 + 1.000000000066666666e-5j
+        d = np.absolute(1 - np.arctanh(z) / p)
+        assert_(np.all(d < 1e-15))
+
+        p = 1.0000000000333333333e-5 + 9.999999999666666667e-6j
+        d = np.absolute(1 - np.arcsinh(z) / p)
+        assert_(np.all(d < 1e-15))
+
+        p = 9.999999999333333333e-6j + 1.000000000066666666e-5
+        d = np.absolute(1 - np.arctan(z) / p)
+        assert_(np.all(d < 1e-15))
+
+        p = 1.0000000000333333333e-5j + 9.999999999666666667e-6
+        d = np.absolute(1 - np.arcsin(z) / p)
+        assert_(np.all(d < 1e-15))
+
+        # Check continuity across switchover points
+
+        def check(func, z0, d=1):
+            z0 = np.asarray(z0, dtype=dtype)
+            zp = z0 + abs(z0) * d * eps * 2
+            zm = z0 - abs(z0) * d * eps * 2
+            assert_(np.all(zp != zm), (zp, zm))
+
+            # NB: the cancellation error at the switchover is at least eps
+            good = (abs(func(zp) - func(zm)) < 2 * eps)
+            assert_(np.all(good), (func, z0[~good]))
+
+        for func in (np.arcsinh, np.arcsinh, np.arcsin, np.arctanh, np.arctan):
+            pts = [rp + 1j * ip for rp in (-1e-3, 0, 1e-3) for ip in (-1e-3, 0, 1e-3)
+                   if rp != 0 or ip != 0]
+            check(func, pts, 1)
+            check(func, pts, 1j)
+            check(func, pts, 1 + 1j)
+
+    @np.errstate(all="ignore")
+    def test_promotion_corner_cases(self):
+        for func in self.funcs:
+            assert func(np.float16(1)).dtype == np.float16
+            # Integer to low precision float promotion is a dubious choice:
+            assert func(np.uint8(1)).dtype == np.float16
+            assert func(np.int16(1)).dtype == np.float32
+
+
+class TestAttributes:
+    def test_attributes(self):
+        add = ncu.add
+        assert_equal(add.__name__, 'add')
+        assert_(add.ntypes >= 18)  # don't fail if types added
+        assert_('ii->i' in add.types)
+        assert_equal(add.nin, 2)
+        assert_equal(add.nout, 1)
+        assert_equal(add.identity, 0)
+
+    def test_doc(self):
+        # don't bother checking the long list of kwargs, which are likely to
+        # change
+        assert_(ncu.add.__doc__.startswith(
+            "add(x1, x2, /, out=None, *, where=True"))
+        assert_(ncu.frexp.__doc__.startswith(
+            "frexp(x[, out1, out2], / [, out=(None, None)], *, where=True"))
+
+
+class TestSubclass:
+
+    def test_subclass_op(self):
+
+        class simple(np.ndarray):
+            def __new__(subtype, shape):
+                self = np.ndarray.__new__(subtype, shape, dtype=object)
+                self.fill(0)
+                return self
+
+        a = simple((3, 4))
+        assert_equal(a + a, a)
+
+
+class TestFrompyfunc:
+
+    def test_identity(self):
+        def mul(a, b):
+            return a * b
+
+        # with identity=value
+        mul_ufunc = np.frompyfunc(mul, nin=2, nout=1, identity=1)
+        assert_equal(mul_ufunc.reduce([2, 3, 4]), 24)
+        assert_equal(mul_ufunc.reduce(np.ones((2, 2)), axis=(0, 1)), 1)
+        assert_equal(mul_ufunc.reduce([]), 1)
+
+        # with identity=None (reorderable)
+        mul_ufunc = np.frompyfunc(mul, nin=2, nout=1, identity=None)
+        assert_equal(mul_ufunc.reduce([2, 3, 4]), 24)
+        assert_equal(mul_ufunc.reduce(np.ones((2, 2)), axis=(0, 1)), 1)
+        assert_raises(ValueError, lambda: mul_ufunc.reduce([]))
+
+        # with no identity (not reorderable)
+        mul_ufunc = np.frompyfunc(mul, nin=2, nout=1)
+        assert_equal(mul_ufunc.reduce([2, 3, 4]), 24)
+        assert_raises(ValueError, lambda: mul_ufunc.reduce(np.ones((2, 2)), axis=(0, 1)))
+        assert_raises(ValueError, lambda: mul_ufunc.reduce([]))
+
+
+def _check_branch_cut(f, x0, dx, re_sign=1, im_sign=-1, sig_zero_ok=False,
+                      dtype=complex):
+    """
+    Check for a branch cut in a function.
+
+    Assert that `x0` lies on a branch cut of function `f` and `f` is
+    continuous from the direction `dx`.
+
+    Parameters
+    ----------
+    f : func
+        Function to check
+    x0 : array-like
+        Point on branch cut
+    dx : array-like
+        Direction to check continuity in
+    re_sign, im_sign : {1, -1}
+        Change of sign of the real or imaginary part expected
+    sig_zero_ok : bool
+        Whether to check if the branch cut respects signed zero (if applicable)
+    dtype : dtype
+        Dtype to check (should be complex)
+
+    """
+    x0 = np.atleast_1d(x0).astype(dtype)
+    dx = np.atleast_1d(dx).astype(dtype)
+
+    if np.dtype(dtype).char == 'F':
+        scale = np.finfo(dtype).eps * 1e2
+        atol = np.float32(1e-2)
+    else:
+        scale = np.finfo(dtype).eps * 1e3
+        atol = 1e-4
+
+    y0 = f(x0)
+    yp = f(x0 + dx * scale * np.absolute(x0) / np.absolute(dx))
+    ym = f(x0 - dx * scale * np.absolute(x0) / np.absolute(dx))
+
+    assert_(np.all(np.absolute(y0.real - yp.real) < atol), (y0, yp))
+    assert_(np.all(np.absolute(y0.imag - yp.imag) < atol), (y0, yp))
+    assert_(np.all(np.absolute(y0.real - ym.real * re_sign) < atol), (y0, ym))
+    assert_(np.all(np.absolute(y0.imag - ym.imag * im_sign) < atol), (y0, ym))
+
+    if sig_zero_ok:
+        # check that signed zeros also work as a displacement
+        jr = (x0.real == 0) & (dx.real != 0)
+        ji = (x0.imag == 0) & (dx.imag != 0)
+        if np.any(jr):
+            x = x0[jr]
+            x.real = ncu.NZERO
+            ym = f(x)
+            assert_(np.all(np.absolute(y0[jr].real - ym.real * re_sign) < atol), (y0[jr], ym))
+            assert_(np.all(np.absolute(y0[jr].imag - ym.imag * im_sign) < atol), (y0[jr], ym))
+
+        if np.any(ji):
+            x = x0[ji]
+            x.imag = ncu.NZERO
+            ym = f(x)
+            assert_(np.all(np.absolute(y0[ji].real - ym.real * re_sign) < atol), (y0[ji], ym))
+            assert_(np.all(np.absolute(y0[ji].imag - ym.imag * im_sign) < atol), (y0[ji], ym))
+
+def test_copysign():
+    assert_(np.copysign(1, -1) == -1)
+    with np.errstate(divide="ignore"):
+        assert_(1 / np.copysign(0, -1) < 0)
+        assert_(1 / np.copysign(0, 1) > 0)
+    assert_(np.signbit(np.copysign(np.nan, -1)))
+    assert_(not np.signbit(np.copysign(np.nan, 1)))
+
+def _test_nextafter(t):
+    one = t(1)
+    two = t(2)
+    zero = t(0)
+    eps = np.finfo(t).eps
+    assert_(np.nextafter(one, two) - one == eps)
+    assert_(np.nextafter(one, zero) - one < 0)
+    assert_(np.isnan(np.nextafter(np.nan, one)))
+    assert_(np.isnan(np.nextafter(one, np.nan)))
+    assert_(np.nextafter(one, one) == one)
+
+def test_nextafter():
+    return _test_nextafter(np.float64)
+
+
+def test_nextafterf():
+    return _test_nextafter(np.float32)
+
+
+@pytest.mark.skipif(np.finfo(np.double) == np.finfo(np.longdouble),
+                    reason="long double is same as double")
+@pytest.mark.xfail(condition=platform.machine().startswith("ppc64"),
+                    reason="IBM double double")
+def test_nextafterl():
+    return _test_nextafter(np.longdouble)
+
+
+def test_nextafter_0():
+    for t, direction in itertools.product(np._core.sctypes['float'], (1, -1)):
+        # The value of tiny for double double is NaN, so we need to pass the
+        # assert
+        with warnings.catch_warnings():
+            warnings.simplefilter('ignore', UserWarning)
+            if not np.isnan(np.finfo(t).tiny):
+                tiny = np.finfo(t).tiny
+                assert_(
+                    0. < direction * np.nextafter(t(0), t(direction)) < tiny)
+        assert_equal(np.nextafter(t(0), t(direction)) / t(2.1), direction * 0.0)
+
+def _test_spacing(t):
+    one = t(1)
+    eps = np.finfo(t).eps
+    nan = t(np.nan)
+    inf = t(np.inf)
+    with np.errstate(invalid='ignore'):
+        assert_equal(np.spacing(one), eps)
+        assert_(np.isnan(np.spacing(nan)))
+        assert_(np.isnan(np.spacing(inf)))
+        assert_(np.isnan(np.spacing(-inf)))
+        assert_(np.spacing(t(1e30)) != 0)
+
+def test_spacing():
+    return _test_spacing(np.float64)
+
+def test_spacingf():
+    return _test_spacing(np.float32)
+
+
+@pytest.mark.skipif(np.finfo(np.double) == np.finfo(np.longdouble),
+                    reason="long double is same as double")
+@pytest.mark.xfail(condition=platform.machine().startswith("ppc64"),
+                    reason="IBM double double")
+def test_spacingl():
+    return _test_spacing(np.longdouble)
+
+def test_spacing_gfortran():
+    # Reference from this fortran file, built with gfortran 4.3.3 on linux
+    # 32bits:
+    #       PROGRAM test_spacing
+    #        INTEGER, PARAMETER :: SGL = SELECTED_REAL_KIND(p=6, r=37)
+    #        INTEGER, PARAMETER :: DBL = SELECTED_REAL_KIND(p=13, r=200)
+    #
+    #        WRITE(*,*) spacing(0.00001_DBL)
+    #        WRITE(*,*) spacing(1.0_DBL)
+    #        WRITE(*,*) spacing(1000._DBL)
+    #        WRITE(*,*) spacing(10500._DBL)
+    #
+    #        WRITE(*,*) spacing(0.00001_SGL)
+    #        WRITE(*,*) spacing(1.0_SGL)
+    #        WRITE(*,*) spacing(1000._SGL)
+    #        WRITE(*,*) spacing(10500._SGL)
+    #       END PROGRAM
+    ref = {np.float64: [1.69406589450860068E-021,
+                        2.22044604925031308E-016,
+                        1.13686837721616030E-013,
+                        1.81898940354585648E-012],
+           np.float32: [9.09494702E-13,
+                        1.19209290E-07,
+                        6.10351563E-05,
+                        9.76562500E-04]}
+
+    for dt, dec_ in zip([np.float32, np.float64], (10, 20)):
+        x = np.array([1e-5, 1, 1000, 10500], dtype=dt)
+        assert_array_almost_equal(np.spacing(x), ref[dt], decimal=dec_)
+
+def test_nextafter_vs_spacing():
+    # XXX: spacing does not handle long double yet
+    for t in [np.float32, np.float64]:
+        for _f in [1, 1e-5, 1000]:
+            f = t(_f)
+            f1 = t(_f + 1)
+            assert_(np.nextafter(f, f1) - f == np.spacing(f))
+
+def test_pos_nan():
+    """Check np.nan is a positive nan."""
+    assert_(np.signbit(np.nan) == 0)
+
+def test_reduceat():
+    """Test bug in reduceat when structured arrays are not copied."""
+    db = np.dtype([('name', 'S11'), ('time', np.int64), ('value', np.float32)])
+    a = np.empty([100], dtype=db)
+    a['name'] = 'Simple'
+    a['time'] = 10
+    a['value'] = 100
+    indx = [0, 7, 15, 25]
+
+    h2 = []
+    val1 = indx[0]
+    for val2 in indx[1:]:
+        h2.append(np.add.reduce(a['value'][val1:val2]))
+        val1 = val2
+    h2.append(np.add.reduce(a['value'][val1:]))
+    h2 = np.array(h2)
+
+    # test buffered -- this should work
+    h1 = np.add.reduceat(a['value'], indx)
+    assert_array_almost_equal(h1, h2)
+
+    # This is when the error occurs.
+    # test no buffer
+    np.setbufsize(32)
+    h1 = np.add.reduceat(a['value'], indx)
+    np.setbufsize(ncu.UFUNC_BUFSIZE_DEFAULT)
+    assert_array_almost_equal(h1, h2)
+
+def test_reduceat_empty():
+    """Reduceat should work with empty arrays"""
+    indices = np.array([], 'i4')
+    x = np.array([], 'f8')
+    result = np.add.reduceat(x, indices)
+    assert_equal(result.dtype, x.dtype)
+    assert_equal(result.shape, (0,))
+    # Another case with a slightly different zero-sized shape
+    x = np.ones((5, 2))
+    result = np.add.reduceat(x, [], axis=0)
+    assert_equal(result.dtype, x.dtype)
+    assert_equal(result.shape, (0, 2))
+    result = np.add.reduceat(x, [], axis=1)
+    assert_equal(result.dtype, x.dtype)
+    assert_equal(result.shape, (5, 0))
+
+def test_complex_nan_comparisons():
+    nans = [complex(np.nan, 0), complex(0, np.nan), complex(np.nan, np.nan)]
+    fins = [complex(1, 0), complex(-1, 0), complex(0, 1), complex(0, -1),
+            complex(1, 1), complex(-1, -1), complex(0, 0)]
+
+    with np.errstate(invalid='ignore'):
+        for x in nans + fins:
+            x = np.array([x])
+            for y in nans + fins:
+                y = np.array([y])
+
+                if np.isfinite(x) and np.isfinite(y):
+                    continue
+
+                assert_equal(x < y, False, err_msg=f"{x!r} < {y!r}")
+                assert_equal(x > y, False, err_msg=f"{x!r} > {y!r}")
+                assert_equal(x <= y, False, err_msg=f"{x!r} <= {y!r}")
+                assert_equal(x >= y, False, err_msg=f"{x!r} >= {y!r}")
+                assert_equal(x == y, False, err_msg=f"{x!r} == {y!r}")
+
+
+def test_rint_big_int():
+    # np.rint bug for large integer values on Windows 32-bit and MKL
+    # https://github.com/numpy/numpy/issues/6685
+    val = 4607998452777363968
+    # This is exactly representable in floating point
+    assert_equal(val, int(float(val)))
+    # Rint should not change the value
+    assert_equal(val, np.rint(val))
+
+
+@pytest.mark.parametrize('ftype', [np.float32, np.float64])
+def test_memoverlap_accumulate(ftype):
+    # Reproduces bug https://github.com/numpy/numpy/issues/15597
+    arr = np.array([0.61, 0.60, 0.77, 0.41, 0.19], dtype=ftype)
+    out_max = np.array([0.61, 0.61, 0.77, 0.77, 0.77], dtype=ftype)
+    out_min = np.array([0.61, 0.60, 0.60, 0.41, 0.19], dtype=ftype)
+    assert_equal(np.maximum.accumulate(arr), out_max)
+    assert_equal(np.minimum.accumulate(arr), out_min)
+
+@pytest.mark.parametrize("ufunc, dtype", [
+    (ufunc, t[0])
+    for ufunc in UFUNCS_BINARY_ACC
+    for t in ufunc.types
+    if t[-1] == '?' and t[0] not in 'DFGMmO'
+])
+def test_memoverlap_accumulate_cmp(ufunc, dtype):
+    if ufunc.signature:
+        pytest.skip('For generic signatures only')
+    for size in (2, 8, 32, 64, 128, 256):
+        arr = np.array([0, 1, 1] * size, dtype=dtype)
+        acc = ufunc.accumulate(arr, dtype='?')
+        acc_u8 = acc.view(np.uint8)
+        exp = np.array(list(itertools.accumulate(arr, ufunc)), dtype=np.uint8)
+        assert_equal(exp, acc_u8)
+
+@pytest.mark.parametrize("ufunc, dtype", [
+    (ufunc, t[0])
+    for ufunc in UFUNCS_BINARY_ACC
+    for t in ufunc.types
+    if t[0] == t[1] and t[0] == t[-1] and t[0] not in 'DFGMmO?'
+])
+def test_memoverlap_accumulate_symmetric(ufunc, dtype):
+    if ufunc.signature:
+        pytest.skip('For generic signatures only')
+    with np.errstate(all='ignore'):
+        for size in (2, 8, 32, 64, 128, 256):
+            arr = np.array([0, 1, 2] * size).astype(dtype)
+            acc = ufunc.accumulate(arr, dtype=dtype)
+            exp = np.array(list(itertools.accumulate(arr, ufunc)), dtype=dtype)
+            assert_equal(exp, acc)
+
+def test_signaling_nan_exceptions():
+    with assert_no_warnings():
+        a = np.ndarray(shape=(), dtype='float32', buffer=b'\x00\xe0\xbf\xff')
+        np.isnan(a)
+
+@pytest.mark.parametrize("arr", [
+    np.arange(2),
+    np.array([0, 1]),  # CHANGED: np.matrix -> np.array, To avoid warning
+    np.array([[0, 1], [2, 5]]),  # CHANGED: np.matrix -> np.array, To avoid warning
+    ])
+def test_outer_subclass_preserve(arr):
+    # for gh-8661
+    class foo(np.ndarray):
+        pass
+    actual = np.multiply.outer(arr.view(foo), arr.view(foo))
+    assert actual.__class__.__name__ == 'foo'
+
+def test_outer_bad_subclass():
+    class BadArr1(np.ndarray):
+        def __array_finalize__(self, obj):
+            # The outer call reshapes to 3 dims, try to do a bad reshape.
+            if self.ndim == 3:
+                self.shape = self.shape + (1,)
+
+    class BadArr2(np.ndarray):
+        def __array_finalize__(self, obj):
+            if isinstance(obj, BadArr2):
+                # outer inserts 1-sized dims. In that case disturb them.
+                if self.shape[-1] == 1:
+                    self.shape = self.shape[::-1]
+
+    for cls in [BadArr1, BadArr2]:
+        arr = np.ones((2, 3)).view(cls)
+        with assert_raises(TypeError) as a:
+            # The first array gets reshaped (not the second one)
+            np.add.outer(arr, [1, 2])
+
+        # This actually works, since we only see the reshaping error:
+        arr = np.ones((2, 3)).view(cls)
+        assert type(np.add.outer([1, 2], arr)) is cls
+
+def test_outer_exceeds_maxdims():
+    deep = np.ones((1,) * 33)
+    with assert_raises(ValueError):
+        np.add.outer(deep, deep)
+
+def test_bad_legacy_ufunc_silent_errors():
+    # legacy ufuncs can't report errors and NumPy can't check if the GIL
+    # is released.  So NumPy has to check after the GIL is released just to
+    # cover all bases.  `np.power` uses/used to use this.
+    arr = np.arange(3).astype(np.float64)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error(arr, arr)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        # not contiguous means the fast-path cannot be taken
+        non_contig = arr.repeat(20).reshape(-1, 6)[:, ::2]
+        ncu_tests.always_error(non_contig, arr)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error.outer(arr, arr)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error.reduce(arr)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error.reduceat(arr, [0, 1])
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error.accumulate(arr)
+
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error.at(arr, [0, 1, 2], arr)
+
+
+@pytest.mark.parametrize('x1', [np.arange(3.0), [0.0, 1.0, 2.0]])
+def test_bad_legacy_gufunc_silent_errors(x1):
+    # Verify that an exception raised in a gufunc loop propagates correctly.
+    # The signature of always_error_gufunc is '(i),()->()'.
+    with pytest.raises(RuntimeError, match=r"How unexpected :\)!"):
+        ncu_tests.always_error_gufunc(x1, 0.0)
+
+
+class TestAddDocstring:
+    @pytest.mark.skipif(sys.flags.optimize == 2, reason="Python running -OO")
+    @pytest.mark.skipif(IS_PYPY, reason="PyPy does not modify tp_doc")
+    def test_add_same_docstring(self):
+        # test for attributes (which are C-level defined)
+        ncu.add_docstring(np.ndarray.flat, np.ndarray.flat.__doc__)
+
+        # And typical functions:
+        def func():
+            """docstring"""
+            return
+
+        ncu.add_docstring(func, func.__doc__)
+
+    @pytest.mark.skipif(sys.flags.optimize == 2, reason="Python running -OO")
+    def test_different_docstring_fails(self):
+        # test for attributes (which are C-level defined)
+        with assert_raises(RuntimeError):
+            ncu.add_docstring(np.ndarray.flat, "different docstring")
+
+        # And typical functions:
+        def func():
+            """docstring"""
+            return
+
+        with assert_raises(RuntimeError):
+            ncu.add_docstring(func, "different docstring")
+
+
+class TestAdd_newdoc_ufunc:
+    @pytest.mark.filterwarnings("ignore:_add_newdoc_ufunc:DeprecationWarning")
+    def test_ufunc_arg(self):
+        assert_raises(TypeError, ncu._add_newdoc_ufunc, 2, "blah")
+        assert_raises(ValueError, ncu._add_newdoc_ufunc, np.add, "blah")
+
+    @pytest.mark.filterwarnings("ignore:_add_newdoc_ufunc:DeprecationWarning")
+    def test_string_arg(self):
+        assert_raises(TypeError, ncu._add_newdoc_ufunc, np.add, 3)
+
+@pytest.mark.skip("should be added when numpy-2.4 is released")  # CHANGED
+class TestHypotErrorMessages:
+    def test_hypot_error_message_single_arg(self):
+        with pytest.raises(TypeError, match="hypot\\(\\) takes .* but 1 was given"):
+            np.hypot(5)
+
+    def test_hypot_error_message_multiple_args(self):
+        with pytest.raises(TypeError, match="hypot\\(\\) takes .* but 4 were given"):
+            np.hypot(1, 2, 3, 4)
\ No newline at end of file
diff --git a/mkl_umath/tests/third_party/numpy/test_umath_accuracy.py b/mkl_umath/tests/third_party/numpy/test_umath_accuracy.py
new file mode 100644
index 0000000..f3475c4
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/test_umath_accuracy.py
@@ -0,0 +1,132 @@
+# This file includes tests from numpy:
+# https://github.com/numpy/numpy/blob/maintenance/2.3.x/numpy/_core/tests/test_umath_accuracy.py
+# while mkl_umath.use_in_numpy() is activated to use mkl_umath in Numpy
+# any changes compared to the original file are tagged with CHANGED comment.
+
+import os
+import sys
+from ctypes import POINTER, c_double, c_float, c_int, c_longlong, cast, pointer
+from os import path
+
+import pytest
+from numpy._core._multiarray_umath import __cpu_features__
+
+import numpy as np
+from numpy.testing import assert_array_max_ulp
+from numpy.testing._private.utils import _glibc_older_than
+
+import mkl_umath  # CHANGED: For enabling mkl_umath in Numpy
+mkl_umath.use_in_numpy()
+
+UNARY_UFUNCS = [obj for obj in np._core.umath.__dict__.values() if
+        isinstance(obj, np.ufunc)]
+UNARY_OBJECT_UFUNCS = [uf for uf in UNARY_UFUNCS if "O->O" in uf.types]
+
+# Remove functions that do not support `floats`
+UNARY_OBJECT_UFUNCS.remove(np.invert)
+UNARY_OBJECT_UFUNCS.remove(np.bitwise_count)
+
+IS_AVX = __cpu_features__.get('AVX512F', False) or \
+        (__cpu_features__.get('FMA3', False) and __cpu_features__.get('AVX2', False))
+
+IS_AVX512FP16 = __cpu_features__.get('AVX512FP16', False)
+
+# only run on linux with AVX, also avoid old glibc (numpy/numpy#20448).
+runtest = (sys.platform.startswith('linux')
+           and IS_AVX and not _glibc_older_than("2.17"))
+platform_skip = pytest.mark.skipif(not runtest,
+                                   reason="avoid testing inconsistent platform "
+                                   "library implementations")
+
+# convert string to hex function taken from:
+# https://stackoverflow.com/questions/1592158/convert-hex-to-float #
+def convert(s, datatype="np.float32"):
+    i = int(s, 16)                   # convert from hex to a Python int
+    if (datatype == "np.float64"):
+        cp = pointer(c_longlong(i))           # make this into a c long long integer
+        fp = cast(cp, POINTER(c_double))  # cast the int pointer to a double pointer
+    else:
+        cp = pointer(c_int(i))           # make this into a c integer
+        fp = cast(cp, POINTER(c_float))  # cast the int pointer to a float pointer
+
+    return fp.contents.value         # dereference the pointer, get the float
+
+
+str_to_float = np.vectorize(convert)
+
+class TestAccuracy:
+    @platform_skip
+    def test_validate_transcendentals(self):
+        with np.errstate(all='ignore'):
+            data_dir = path.join(path.dirname(__file__), 'data')
+            files = os.listdir(data_dir)
+            files = list(filter(lambda f: f.endswith('.csv'), files))
+            for filename in files:
+                filepath = path.join(data_dir, filename)
+                with open(filepath) as fid:
+                    file_without_comments = (
+                        r for r in fid if r[0] not in ('$', '#')
+                    )
+                    data = np.genfromtxt(file_without_comments,
+                                         dtype=('|S39', '|S39', '|S39', int),
+                                         names=('type', 'input', 'output', 'ulperr'),
+                                         delimiter=',',
+                                         skip_header=1)
+                    npname = path.splitext(filename)[0].split('-')[3]
+                    npfunc = getattr(np, npname)
+                    for datatype in np.unique(data['type']):
+                        data_subset = data[data['type'] == datatype]
+                        inval = np.array(str_to_float(data_subset['input'].astype(str), data_subset['type'].astype(str)), dtype=eval(datatype))
+                        outval = np.array(str_to_float(data_subset['output'].astype(str), data_subset['type'].astype(str)), dtype=eval(datatype))
+                        perm = np.random.permutation(len(inval))
+                        inval = inval[perm]
+                        outval = outval[perm]
+                        maxulperr = data_subset['ulperr'].max()
+                        assert_array_max_ulp(npfunc(inval), outval, maxulperr)
+
+    @pytest.mark.skipif(IS_AVX512FP16,
+            reason="SVML FP16 have slightly higher ULP errors")
+    @pytest.mark.parametrize("ufunc", UNARY_OBJECT_UFUNCS)
+    def test_validate_fp16_transcendentals(self, ufunc):
+        with np.errstate(all='ignore'):
+            arr = np.arange(65536, dtype=np.int16)
+            datafp16 = np.frombuffer(arr.tobytes(), dtype=np.float16)
+            datafp32 = datafp16.astype(np.float32)
+            assert_array_max_ulp(ufunc(datafp16), ufunc(datafp32),
+                    maxulp=1, dtype=np.float16)
+
+    @pytest.mark.skipif(not IS_AVX512FP16,
+                               reason="lower ULP only apply for SVML FP16")
+    def test_validate_svml_fp16(self):
+        max_ulp_err = {
+                "arccos": 2.54,
+                "arccosh": 2.09,
+                "arcsin": 3.06,
+                "arcsinh": 1.51,
+                "arctan": 2.61,
+                "arctanh": 1.88,
+                "cbrt": 1.57,
+                "cos": 1.43,
+                "cosh": 1.33,
+                "exp2": 1.33,
+                "exp": 1.27,
+                "expm1": 0.53,
+                "log": 1.80,
+                "log10": 1.27,
+                "log1p": 1.88,
+                "log2": 1.80,
+                "sin": 1.88,
+                "sinh": 2.05,
+                "tan": 2.26,
+                "tanh": 3.00,
+                }
+
+        with np.errstate(all='ignore'):
+            arr = np.arange(65536, dtype=np.int16)
+            datafp16 = np.frombuffer(arr.tobytes(), dtype=np.float16)
+            datafp32 = datafp16.astype(np.float32)
+            for func in max_ulp_err:
+                ufunc = getattr(np, func)
+                ulp = np.ceil(max_ulp_err[func])
+                assert_array_max_ulp(ufunc(datafp16), ufunc(datafp32),
+                        maxulp=ulp, dtype=np.float16)
diff --git a/mkl_umath/tests/third_party/numpy/test_umath_complex.py b/mkl_umath/tests/third_party/numpy/test_umath_complex.py
new file mode 100644
index 0000000..8ec8c7d
--- /dev/null
+++ b/mkl_umath/tests/third_party/numpy/test_umath_complex.py
@@ -0,0 +1,634 @@
+# This file includes tests from numpy:
+# https://github.com/numpy/numpy/blob/maintenance/2.3.x/numpy/_core/tests/test_umath_complex.py
+# while mkl_umath.use_in_numpy() is activated to use mkl_umath in Numpy
+# any changes compared to the original file are tagged with CHANGED comment.
+
+import platform
+import sys
+
+# import the c-extension module directly since _arg is not exported via umath
+import numpy._core._multiarray_umath as ncu
+import pytest
+
+import numpy as np
+from numpy.testing import (
+    assert_almost_equal,
+    assert_array_equal,
+    assert_array_max_ulp,
+    assert_equal,
+    assert_raises,
+)
+
+import mkl_umath  # CHANGED: For enabling mkl_umath in Numpy
+mkl_umath.use_in_numpy()
+
+# TODO: branch cuts (use Pauli code)
+# TODO: conj 'symmetry'
+# TODO: FPU exceptions
+
+# At least on Windows the results of many complex functions are not conforming
+# to the C99 standard. See ticket 1574.
+# Ditto for Solaris (ticket 1642) and OS X on PowerPC.
+# FIXME: this will probably change when we require full C99 compatibility
+with np.errstate(all='ignore'):
+    functions_seem_flaky = ((np.exp(complex(np.inf, 0)).imag != 0)
+                            or (np.log(complex(ncu.NZERO, 0)).imag != np.pi))
+# TODO: replace with a check on whether platform-provided C99 funcs are used
+xfail_complex_tests = (not sys.platform.startswith('linux') or functions_seem_flaky)
+
+# TODO This can be xfail when the generator functions are got rid of.
+platform_skip = pytest.mark.skipif(xfail_complex_tests,
+                                   reason="Inadequate C99 complex support")
+
+
+class TestCexp:
+    def test_simple(self):
+        check = check_complex_value
+        f = np.exp
+
+        check(f, 1, 0, np.exp(1), 0, False)
+        check(f, 0, 1, np.cos(1), np.sin(1), False)
+
+        ref = np.exp(1) * complex(np.cos(1), np.sin(1))
+        check(f, 1, 1, ref.real, ref.imag, False)
+
+    @platform_skip
+    def test_special_values(self):
+        # C99: Section G 6.3.1
+
+        check = check_complex_value
+        f = np.exp
+
+        # cexp(+-0 + 0i) is 1 + 0i
+        check(f, ncu.PZERO, 0, 1, 0, False)
+        check(f, ncu.NZERO, 0, 1, 0, False)
+
+        # cexp(x + infi) is nan + nani for finite x and raises 'invalid' FPU
+        # exception
+        check(f,  1, np.inf, np.nan, np.nan)
+        check(f, -1, np.inf, np.nan, np.nan)
+        check(f,  0, np.inf, np.nan, np.nan)
+
+        # cexp(inf + 0i) is inf + 0i
+        check(f,  np.inf, 0, np.inf, 0)
+
+        # cexp(-inf + yi) is +0 * (cos(y) + i sin(y)) for finite y
+        check(f, -np.inf, 1, ncu.PZERO, ncu.PZERO)
+        check(f, -np.inf, 0.75 * np.pi, ncu.NZERO, ncu.PZERO)
+
+        # cexp(inf + yi) is +inf * (cos(y) + i sin(y)) for finite y
+        check(f,  np.inf, 1, np.inf, np.inf)
+        check(f,  np.inf, 0.75 * np.pi, -np.inf, np.inf)
+
+        # cexp(-inf + inf i) is +-0 +- 0i (signs unspecified)
+        def _check_ninf_inf(dummy):
+            msgform = "cexp(-inf, inf) is (%f, %f), expected (+-0, +-0)"
+            with np.errstate(invalid='ignore'):
+                z = f(np.array(complex(-np.inf, np.inf)))
+                if z.real != 0 or z.imag != 0:
+                    raise AssertionError(msgform % (z.real, z.imag))
+
+        _check_ninf_inf(None)
+
+        # cexp(inf + inf i) is +-inf + NaNi and raised invalid FPU ex.
+        def _check_inf_inf(dummy):
+            msgform = "cexp(inf, inf) is (%f, %f), expected (+-inf, nan)"
+            with np.errstate(invalid='ignore'):
+                z = f(np.array(complex(np.inf, np.inf)))
+                if not np.isinf(z.real) or not np.isnan(z.imag):
+                    raise AssertionError(msgform % (z.real, z.imag))
+
+        _check_inf_inf(None)
+
+        # cexp(-inf + nan i) is +-0 +- 0i
+        def _check_ninf_nan(dummy):
+            msgform = "cexp(-inf, nan) is (%f, %f), expected (+-0, +-0)"
+            with np.errstate(invalid='ignore'):
+                z = f(np.array(complex(-np.inf, np.nan)))
+                if z.real != 0 or z.imag != 0:
+                    raise AssertionError(msgform % (z.real, z.imag))
+
+        _check_ninf_nan(None)
+
+        # cexp(inf + nan i) is +-inf + nan
+        def _check_inf_nan(dummy):
+            msgform = "cexp(-inf, nan) is (%f, %f), expected (+-inf, nan)"
+            with np.errstate(invalid='ignore'):
+                z = f(np.array(complex(np.inf, np.nan)))
+                if not np.isinf(z.real) or not np.isnan(z.imag):
+                    raise AssertionError(msgform % (z.real, z.imag))
+
+        _check_inf_nan(None)
+
+        # cexp(nan + yi) is nan + nani for y != 0 (optional: raises invalid FPU
+        # ex)
+        check(f, np.nan, 1, np.nan, np.nan)
+        check(f, np.nan, -1, np.nan, np.nan)
+
+        check(f, np.nan,  np.inf, np.nan, np.nan)
+        check(f, np.nan, -np.inf, np.nan, np.nan)
+
+        # cexp(nan + nani) is nan + nani
+        check(f, np.nan, np.nan, np.nan, np.nan)
+
+    # TODO This can be xfail when the generator functions are got rid of.
+    @pytest.mark.skip(reason="cexp(nan + 0I) is wrong on most platforms")
+    def test_special_values2(self):
+        # XXX: most implementations get it wrong here (including glibc <= 2.10)
+        # cexp(nan + 0i) is nan + 0i
+        check = check_complex_value
+        f = np.exp
+
+        check(f, np.nan, 0, np.nan, 0)
+
+class TestClog:
+    def test_simple(self):
+        x = np.array([1 + 0j, 1 + 2j])
+        y_r = np.log(np.abs(x)) + 1j * np.angle(x)
+        y = np.log(x)
+        assert_almost_equal(y, y_r)
+
+    @platform_skip
+    @pytest.mark.skipif(platform.machine() == "armv5tel", reason="See gh-413.")
+    def test_special_values(self):
+        xl = []
+        yl = []
+
+        # From C99 std (Sec 6.3.2)
+        # XXX: check exceptions raised
+        # --- raise for invalid fails.
+
+        # clog(-0 + i0) returns -inf + i pi and raises the 'divide-by-zero'
+        # floating-point exception.
+        with np.errstate(divide='raise'):
+            x = np.array([ncu.NZERO], dtype=complex)
+            y = complex(-np.inf, np.pi)
+            assert_raises(FloatingPointError, np.log, x)
+        with np.errstate(divide='ignore'):
+            assert_almost_equal(np.log(x), y)
+
+        xl.append(x)
+        yl.append(y)
+
+        # clog(+0 + i0) returns -inf + i0 and raises the 'divide-by-zero'
+        # floating-point exception.
+        with np.errstate(divide='raise'):
+            x = np.array([0], dtype=complex)
+            y = complex(-np.inf, 0)
+            assert_raises(FloatingPointError, np.log, x)
+        with np.errstate(divide='ignore'):
+            assert_almost_equal(np.log(x), y)
+
+        xl.append(x)
+        yl.append(y)
+
+        # clog(x + i inf returns +inf + i pi /2, for finite x.
+        x = np.array([complex(1, np.inf)], dtype=complex)
+        y = complex(np.inf, 0.5 * np.pi)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        x = np.array([complex(-1, np.inf)], dtype=complex)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(x + iNaN) returns NaN + iNaN and optionally raises the
+        # 'invalid' floating- point exception, for finite x.
+        with np.errstate(invalid='raise'):
+            x = np.array([complex(1., np.nan)], dtype=complex)
+            y = complex(np.nan, np.nan)
+            #assert_raises(FloatingPointError, np.log, x)
+        with np.errstate(invalid='ignore'):
+            assert_almost_equal(np.log(x), y)
+
+        xl.append(x)
+        yl.append(y)
+
+        with np.errstate(invalid='raise'):
+            x = np.array([np.inf + 1j * np.nan], dtype=complex)
+            #assert_raises(FloatingPointError, np.log, x)
+        with np.errstate(invalid='ignore'):
+            assert_almost_equal(np.log(x), y)
+
+        xl.append(x)
+        yl.append(y)
+
+        # clog(- inf + iy) returns +inf + ipi , for finite positive-signed y.
+        x = np.array([-np.inf + 1j], dtype=complex)
+        y = complex(np.inf, np.pi)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(+ inf + iy) returns +inf + i0, for finite positive-signed y.
+        x = np.array([np.inf + 1j], dtype=complex)
+        y = complex(np.inf, 0)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(- inf + i inf) returns +inf + i3pi /4.
+        x = np.array([complex(-np.inf, np.inf)], dtype=complex)
+        y = complex(np.inf, 0.75 * np.pi)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(+ inf + i inf) returns +inf + ipi /4.
+        x = np.array([complex(np.inf, np.inf)], dtype=complex)
+        y = complex(np.inf, 0.25 * np.pi)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(+/- inf + iNaN) returns +inf + iNaN.
+        x = np.array([complex(np.inf, np.nan)], dtype=complex)
+        y = complex(np.inf, np.nan)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        x = np.array([complex(-np.inf, np.nan)], dtype=complex)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(NaN + iy) returns NaN + iNaN and optionally raises the
+        # 'invalid' floating-point exception, for finite y.
+        x = np.array([complex(np.nan, 1)], dtype=complex)
+        y = complex(np.nan, np.nan)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(NaN + i inf) returns +inf + iNaN.
+        x = np.array([complex(np.nan, np.inf)], dtype=complex)
+        y = complex(np.inf, np.nan)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(NaN + iNaN) returns NaN + iNaN.
+        x = np.array([complex(np.nan, np.nan)], dtype=complex)
+        y = complex(np.nan, np.nan)
+        assert_almost_equal(np.log(x), y)
+        xl.append(x)
+        yl.append(y)
+
+        # clog(conj(z)) = conj(clog(z)).
+        xa = np.array(xl, dtype=complex)
+        ya = np.array(yl, dtype=complex)
+        with np.errstate(divide='ignore'):
+            for i in range(len(xa)):
+                assert_almost_equal(np.log(xa[i].conj()), ya[i].conj())
+
+
+class TestCsqrt:
+
+    def test_simple(self):
+        # sqrt(1)
+        check_complex_value(np.sqrt, 1, 0, 1, 0)
+
+        # sqrt(1i)
+        rres = 0.5 * np.sqrt(2)
+        ires = rres
+        check_complex_value(np.sqrt, 0, 1, rres, ires, False)
+
+        # sqrt(-1)
+        check_complex_value(np.sqrt, -1, 0, 0, 1)
+
+    def test_simple_conjugate(self):
+        ref = np.conj(np.sqrt(complex(1, 1)))
+
+        def f(z):
+            return np.sqrt(np.conj(z))
+
+        check_complex_value(f, 1, 1, ref.real, ref.imag, False)
+
+    #def test_branch_cut(self):
+    #    _check_branch_cut(f, -1, 0, 1, -1)
+
+    @platform_skip
+    def test_special_values(self):
+        # C99: Sec G 6.4.2
+
+        check = check_complex_value
+        f = np.sqrt
+
+        # csqrt(+-0 + 0i) is 0 + 0i
+        check(f, ncu.PZERO, 0, 0, 0)
+        check(f, ncu.NZERO, 0, 0, 0)
+
+        # csqrt(x + infi) is inf + infi for any x (including NaN)
+        check(f,  1, np.inf, np.inf, np.inf)
+        check(f, -1, np.inf, np.inf, np.inf)
+
+        check(f, ncu.PZERO, np.inf, np.inf, np.inf)
+        check(f, ncu.NZERO, np.inf, np.inf, np.inf)
+        check(f,    np.inf, np.inf, np.inf, np.inf)
+        check(f,   -np.inf, np.inf, np.inf, np.inf)  # noqa: E221
+        check(f,   -np.nan, np.inf, np.inf, np.inf)  # noqa: E221
+
+        # csqrt(x + nani) is nan + nani for any finite x
+        check(f,  1, np.nan, np.nan, np.nan)
+        check(f, -1, np.nan, np.nan, np.nan)
+        check(f,  0, np.nan, np.nan, np.nan)
+
+        # csqrt(-inf + yi) is +0 + infi for any finite y > 0
+        check(f, -np.inf, 1, ncu.PZERO, np.inf)
+
+        # csqrt(inf + yi) is +inf + 0i for any finite y > 0
+        check(f, np.inf, 1, np.inf, ncu.PZERO)
+
+        # csqrt(-inf + nani) is nan +- infi (both +i infi are valid)
+        def _check_ninf_nan(dummy):
+            msgform = "csqrt(-inf, nan) is (%f, %f), expected (nan, +-inf)"
+            z = np.sqrt(np.array(complex(-np.inf, np.nan)))
+            # FIXME: ugly workaround for isinf bug.
+            with np.errstate(invalid='ignore'):
+                if not (np.isnan(z.real) and np.isinf(z.imag)):
+                    raise AssertionError(msgform % (z.real, z.imag))
+
+        _check_ninf_nan(None)
+
+        # csqrt(+inf + nani) is inf + nani
+        check(f, np.inf, np.nan, np.inf, np.nan)
+
+        # csqrt(nan + yi) is nan + nani for any finite y (infinite handled in x
+        # + nani)
+        check(f, np.nan,       0, np.nan, np.nan)
+        check(f, np.nan,       1, np.nan, np.nan)
+        check(f, np.nan,  np.nan, np.nan, np.nan)
+
+        # XXX: check for conj(csqrt(z)) == csqrt(conj(z)) (need to fix branch
+        # cuts first)
+
+class TestCpow:
+    def setup_method(self):
+        self.olderr = np.seterr(invalid='ignore')
+
+    def teardown_method(self):
+        np.seterr(**self.olderr)
+
+    def test_simple(self):
+        x = np.array([1 + 1j, 0 + 2j, 1 + 2j, np.inf, np.nan])
+        y_r = x ** 2
+        y = np.power(x, 2)
+        assert_almost_equal(y, y_r)
+
+    def test_scalar(self):
+        x = np.array([1, 1j,         2,  2.5 + .37j, np.inf, np.nan])
+        y = np.array([1, 1j, -0.5 + 1.5j, -0.5 + 1.5j,      2,      3])
+        lx = list(range(len(x)))
+
+        # Hardcode the expected `builtins.complex` values,
+        # as complex exponentiation is broken as of bpo-44698
+        p_r = [
+            1 + 0j,
+            0.20787957635076193 + 0j,
+            0.35812203996480685 + 0.6097119028618724j,
+            0.12659112128185032 + 0.48847676699581527j,
+            complex(np.inf, np.nan),
+            complex(np.nan, np.nan),
+        ]
+
+        n_r = [x[i] ** y[i] for i in lx]
+        for i in lx:
+            assert_almost_equal(n_r[i], p_r[i], err_msg='Loop %d\n' % i)
+
+    def test_array(self):
+        x = np.array([1, 1j,         2,  2.5 + .37j, np.inf, np.nan])
+        y = np.array([1, 1j, -0.5 + 1.5j, -0.5 + 1.5j,      2,      3])
+        lx = list(range(len(x)))
+
+        # Hardcode the expected `builtins.complex` values,
+        # as complex exponentiation is broken as of bpo-44698
+        p_r = [
+            1 + 0j,
+            0.20787957635076193 + 0j,
+            0.35812203996480685 + 0.6097119028618724j,
+            0.12659112128185032 + 0.48847676699581527j,
+            complex(np.inf, np.nan),
+            complex(np.nan, np.nan),
+        ]
+
+        n_r = x ** y
+        for i in lx:
+            assert_almost_equal(n_r[i], p_r[i], err_msg='Loop %d\n' % i)
+
+class TestCabs:
+    def setup_method(self):
+        self.olderr = np.seterr(invalid='ignore')
+
+    def teardown_method(self):
+        np.seterr(**self.olderr)
+
+    def test_simple(self):
+        x = np.array([1 + 1j, 0 + 2j, 1 + 2j, np.inf, np.nan])
+        y_r = np.array([np.sqrt(2.), 2, np.sqrt(5), np.inf, np.nan])
+        y = np.abs(x)
+        assert_almost_equal(y, y_r)
+
+    def test_fabs(self):
+        # Test that np.abs(x +- 0j) == np.abs(x) (as mandated by C99 for cabs)
+        x = np.array([1 + 0j], dtype=complex)
+        assert_array_equal(np.abs(x), np.real(x))
+
+        x = np.array([complex(1, ncu.NZERO)], dtype=complex)
+        assert_array_equal(np.abs(x), np.real(x))
+
+        x = np.array([complex(np.inf, ncu.NZERO)], dtype=complex)
+        assert_array_equal(np.abs(x), np.real(x))
+
+        x = np.array([complex(np.nan, ncu.NZERO)], dtype=complex)
+        assert_array_equal(np.abs(x), np.real(x))
+
+    def test_cabs_inf_nan(self):
+        x, y = [], []
+
+        # cabs(+-nan + nani) returns nan
+        x.append(np.nan)
+        y.append(np.nan)
+        check_real_value(np.abs,  np.nan, np.nan, np.nan)
+
+        x.append(np.nan)
+        y.append(-np.nan)
+        check_real_value(np.abs, -np.nan, np.nan, np.nan)
+
+        # According to C99 standard, if exactly one of the real/part is inf and
+        # the other nan, then cabs should return inf
+        x.append(np.inf)
+        y.append(np.nan)
+        check_real_value(np.abs,  np.inf, np.nan, np.inf)
+
+        x.append(-np.inf)
+        y.append(np.nan)
+        check_real_value(np.abs, -np.inf, np.nan, np.inf)
+
+        # cabs(conj(z)) == conj(cabs(z)) (= cabs(z))
+        def f(a):
+            return np.abs(np.conj(a))
+
+        def g(a, b):
+            return np.abs(complex(a, b))
+
+        xa = np.array(x, dtype=complex)
+        assert len(xa) == len(x) == len(y)
+        for xi, yi in zip(x, y):
+            ref = g(xi, yi)
+            check_real_value(f, xi, yi, ref)
+
+class TestCarg:
+    def test_simple(self):
+        check_real_value(ncu._arg, 1, 0, 0, False)
+        check_real_value(ncu._arg, 0, 1, 0.5 * np.pi, False)
+
+        check_real_value(ncu._arg, 1, 1, 0.25 * np.pi, False)
+        check_real_value(ncu._arg, ncu.PZERO, ncu.PZERO, ncu.PZERO)
+
+    # TODO This can be xfail when the generator functions are got rid of.
+    @pytest.mark.skip(
+        reason="Complex arithmetic with signed zero fails on most platforms")
+    def test_zero(self):
+        # carg(-0 +- 0i) returns +- pi
+        check_real_value(ncu._arg, ncu.NZERO, ncu.PZERO,  np.pi, False)
+        check_real_value(ncu._arg, ncu.NZERO, ncu.NZERO, -np.pi, False)
+
+        # carg(+0 +- 0i) returns +- 0
+        check_real_value(ncu._arg, ncu.PZERO, ncu.PZERO, ncu.PZERO)
+        check_real_value(ncu._arg, ncu.PZERO, ncu.NZERO, ncu.NZERO)
+
+        # carg(x +- 0i) returns +- 0 for x > 0
+        check_real_value(ncu._arg, 1, ncu.PZERO, ncu.PZERO, False)
+        check_real_value(ncu._arg, 1, ncu.NZERO, ncu.NZERO, False)
+
+        # carg(x +- 0i) returns +- pi for x < 0
+        check_real_value(ncu._arg, -1, ncu.PZERO,  np.pi, False)
+        check_real_value(ncu._arg, -1, ncu.NZERO, -np.pi, False)
+
+        # carg(+- 0 + yi) returns pi/2 for y > 0
+        check_real_value(ncu._arg, ncu.PZERO, 1, 0.5 * np.pi, False)
+        check_real_value(ncu._arg, ncu.NZERO, 1, 0.5 * np.pi, False)
+
+        # carg(+- 0 + yi) returns -pi/2 for y < 0
+        check_real_value(ncu._arg, ncu.PZERO, -1, 0.5 * np.pi, False)
+        check_real_value(ncu._arg, ncu.NZERO, -1, -0.5 * np.pi, False)
+
+    #def test_branch_cuts(self):
+    #    _check_branch_cut(ncu._arg, -1, 1j, -1, 1)
+
+    def test_special_values(self):
+        # carg(-np.inf +- yi) returns +-pi for finite y > 0
+        check_real_value(ncu._arg, -np.inf,  1,  np.pi, False)
+        check_real_value(ncu._arg, -np.inf, -1, -np.pi, False)
+
+        # carg(np.inf +- yi) returns +-0 for finite y > 0
+        check_real_value(ncu._arg, np.inf,  1, ncu.PZERO, False)
+        check_real_value(ncu._arg, np.inf, -1, ncu.NZERO, False)
+
+        # carg(x +- np.infi) returns +-pi/2 for finite x
+        check_real_value(ncu._arg, 1,  np.inf,  0.5 * np.pi, False)
+        check_real_value(ncu._arg, 1, -np.inf, -0.5 * np.pi, False)
+
+        # carg(-np.inf +- np.infi) returns +-3pi/4
+        check_real_value(ncu._arg, -np.inf,  np.inf,  0.75 * np.pi, False)
+        check_real_value(ncu._arg, -np.inf, -np.inf, -0.75 * np.pi, False)
+
+        # carg(np.inf +- np.infi) returns +-pi/4
+        check_real_value(ncu._arg, np.inf,  np.inf,  0.25 * np.pi, False)
+        check_real_value(ncu._arg, np.inf, -np.inf, -0.25 * np.pi, False)
+
+        # carg(x + yi) returns np.nan if x or y is nan
+        check_real_value(ncu._arg, np.nan,      0, np.nan, False)
+        check_real_value(ncu._arg,      0, np.nan, np.nan, False)
+
+        check_real_value(ncu._arg, np.nan, np.inf, np.nan, False)
+        check_real_value(ncu._arg, np.inf, np.nan, np.nan, False)
+
+
+def check_real_value(f, x1, y1, x, exact=True):
+    z1 = np.array([complex(x1, y1)])
+    if exact:
+        assert_equal(f(z1), x)
+    else:
+        assert_almost_equal(f(z1), x)
+
+
+def check_complex_value(f, x1, y1, x2, y2, exact=True):
+    z1 = np.array([complex(x1, y1)])
+    z2 = complex(x2, y2)
+    with np.errstate(invalid='ignore'):
+        if exact:
+            assert_equal(f(z1), z2)
+        else:
+            assert_almost_equal(f(z1), z2)
+
+class TestSpecialComplexAVX:
+    @pytest.mark.parametrize("stride", [-4, -2, -1, 1, 2, 4])
+    @pytest.mark.parametrize("astype", [np.complex64, np.complex128])
+    def test_array(self, stride, astype):
+        arr = np.array([complex(np.nan, np.nan),
+                        complex(np.nan, np.inf),
+                        complex(np.inf, np.nan),
+                        complex(np.inf, np.inf),
+                        complex(0.,     np.inf),
+                        complex(np.inf, 0.),
+                        complex(0.,     0.),
+                        complex(0.,     np.nan),
+                        complex(np.nan, 0.)], dtype=astype)
+        abs_true = np.array([np.nan, np.inf, np.inf, np.inf, np.inf, np.inf, 0., np.nan, np.nan], dtype=arr.real.dtype)
+        sq_true = np.array([complex(np.nan,  np.nan),
+                            complex(np.nan,  np.nan),
+                            complex(np.nan,  np.nan),
+                            complex(np.nan,  np.inf),
+                            complex(-np.inf, np.nan),
+                            complex(np.inf,  np.nan),
+                            complex(0.,      0.),
+                            complex(np.nan,  np.nan),
+                            complex(np.nan,  np.nan)], dtype=astype)
+        with np.errstate(invalid='ignore'):
+            assert_equal(np.abs(arr[::stride]), abs_true[::stride])
+            assert_equal(np.square(arr[::stride]), sq_true[::stride])
+
+class TestComplexAbsoluteAVX:
+    @pytest.mark.parametrize("arraysize", [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 18, 19])
+    @pytest.mark.parametrize("stride", [-4, -3, -2, -1, 1, 2, 3, 4])
+    @pytest.mark.parametrize("astype", [np.complex64, np.complex128])
+    # test to ensure masking and strides work as intended in the AVX implementation
+    def test_array(self, arraysize, stride, astype):
+        arr = np.ones(arraysize, dtype=astype)
+        abs_true = np.ones(arraysize, dtype=arr.real.dtype)
+        assert_equal(np.abs(arr[::stride]), abs_true[::stride])
+
+# Testcase taken as is from https://github.com/numpy/numpy/issues/16660
+class TestComplexAbsoluteMixedDTypes:
+    @pytest.mark.parametrize("stride", [-4, -3, -2, -1, 1, 2, 3, 4])
+    @pytest.mark.parametrize("astype", [np.complex64, np.complex128])
+    @pytest.mark.parametrize("func", ['abs', 'square', 'conjugate'])
+    def test_array(self, stride, astype, func):
+        dtype = [('template_id', '<i8'), ('bank_chisq', '<f4'),
+                 ('bank_chisq_dof', '<i8'), ('chisq', '<f4'), ('chisq_dof', '<i8'),
+                 ('cont_chisq', '<f4'), ('psd_var_val', '<f4'), ('sg_chisq', '<f4'),
+                 ('mycomplex', astype), ('time_index', '<i8')]
+        vec = np.array([
+                (0, 0., 0, -31.666483, 200, 0., 0.,  1.      ,  3.0 + 4.0j  ,  613090),   # noqa: E203,E501
+                (1, 0., 0, 260.91525 ,  42, 0., 0.,  1.      ,  5.0 + 12.0j ,  787315),   # noqa: E203,E501
+                (1, 0., 0,  52.15155 ,  42, 0., 0.,  1.      ,  8.0 + 15.0j ,  806641),   # noqa: E203,E501
+                (1, 0., 0,  52.430195,  42, 0., 0.,  1.      ,  7.0 + 24.0j , 1363540),   # noqa: E203,E501
+                (2, 0., 0, 304.43646 ,  58, 0., 0.,  1.      ,  20.0 + 21.0j,  787323),   # noqa: E203,E501
+                (3, 0., 0, 299.42108 ,  52, 0., 0.,  1.      ,  12.0 + 35.0j,  787332),   # noqa: E203,E501
+                (4, 0., 0,  39.4836  ,  28, 0., 0.,  9.182192,  9.0 + 40.0j ,  787304),   # noqa: E203,E501
+                (4, 0., 0,  76.83787 ,  28, 0., 0.,  1.      ,  28.0 + 45.0j, 1321869),   # noqa: E203,E501
+                (5, 0., 0, 143.26366 ,  24, 0., 0., 10.996129,  11.0 + 60.0j,  787299)],  # noqa: E203,E501
+            dtype=dtype)
+        myfunc = getattr(np, func)
+        a = vec['mycomplex']
+        g = myfunc(a[::stride])
+
+        b = vec['mycomplex'].copy()
+        h = myfunc(b[::stride])
+
+        assert_array_max_ulp(h.real, g.real, 1)
+        assert_array_max_ulp(h.imag, g.imag, 1)
\ No newline at end of file

From 8f448de0b914fb4c0bdb03dd66a9b0e5f9690b41 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Mon, 4 Aug 2025 10:45:32 -0700
Subject: [PATCH 21/23] enable building with python 3.13

---
 .github/workflows/build-with-clang.yml |  2 +-
 .github/workflows/build_pip.yaml       |  2 +-
 .github/workflows/conda-package.yml    | 14 ++++++------
 CHANGELOG.md                           |  1 +
 mkl_umath/_init_helper.py              | 31 +++++++++++++++++---------
 pyproject.toml                         |  3 ++-
 6 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/build-with-clang.yml b/.github/workflows/build-with-clang.yml
index 824f256..ce09818 100644
--- a/.github/workflows/build-with-clang.yml
+++ b/.github/workflows/build-with-clang.yml
@@ -13,7 +13,7 @@ jobs:
 
     strategy:
       matrix:
-        python: ["3.9", "3.10", "3.11", "3.12"]
+        python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
         numpy_version: ["numpy'<2'", "numpy'>=2'"]
 
     env:
diff --git a/.github/workflows/build_pip.yaml b/.github/workflows/build_pip.yaml
index 952890d..ed78c41 100644
--- a/.github/workflows/build_pip.yaml
+++ b/.github/workflows/build_pip.yaml
@@ -17,7 +17,7 @@ jobs:
 
     strategy:
       matrix:
-        python: ['3.9', '3.10', '3.11', '3.12']
+        python: ['3.9', '3.10', '3.11', '3.12', '3.13']
         use_pre: ["", "--pre"]
 
     steps:
diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml
index acdda35..920cc12 100644
--- a/.github/workflows/conda-package.yml
+++ b/.github/workflows/conda-package.yml
@@ -18,7 +18,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        python: ["3.9", "3.10", "3.11", "3.12"]
+        python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
     steps:
       - name: Cancel Previous Runs
         uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1
@@ -48,7 +48,7 @@ jobs:
         run: echo $CONDA/bin >> $GITHUB_PATH
 
       - name: Install conda-build
-        run: conda install conda-build python=3.12
+        run: conda install conda-build
 
       - name: Build conda package
         run: |
@@ -75,7 +75,7 @@ jobs:
 
     strategy:
       matrix:
-        python: ["3.9", "3.10", "3.11", "3.12"]
+        python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
         experimental: [false]
         runner: [ubuntu-latest]
     continue-on-error: ${{ matrix.experimental }}
@@ -90,7 +90,7 @@ jobs:
       - name: Add conda to system path
         run: echo $CONDA/bin >> $GITHUB_PATH
       - name: Install conda-build
-        run: conda install conda-build python=3.12
+        run: conda install conda-build
       - name: Create conda channel
         run: |
           mkdir -p $GITHUB_WORKSPACE/channel/linux-64
@@ -146,7 +146,7 @@ jobs:
 
     strategy:
       matrix:
-        python: ["3.9", "3.10", "3.11", "3.12"]
+        python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
     env:
       conda-bld: C:\Miniconda\conda-bld\win-64\
     steps:
@@ -187,7 +187,7 @@ jobs:
       - name: Install conda build
         run: |
           conda activate
-          conda install -y conda-build python=3.12
+          conda install -y conda-build
           conda list -n base
 
       - name: Build conda package
@@ -209,7 +209,7 @@ jobs:
         shell: cmd /C CALL {0}
     strategy:
       matrix:
-        python: ["3.9", "3.10", "3.11", "3.12"]
+        python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
         experimental: [false]
         runner: [windows-latest]
     continue-on-error: ${{ matrix.experimental }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0aed3e5..a994c8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Added oneMKL implementation for `power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for floating point data-types of `modf` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 * Added oneMKL implementation for `float_power` function [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
+* Enabled support of Python 3.13 [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
 
 ### Changed 
 * Dropped support for `maximum` and `minimum` [gh-??](https://github.com/IntelPython/mkl_umath/pull/??)
diff --git a/mkl_umath/_init_helper.py b/mkl_umath/_init_helper.py
index 3a4c1dd..b5f21b8 100644
--- a/mkl_umath/_init_helper.py
+++ b/mkl_umath/_init_helper.py
@@ -1,16 +1,27 @@
-# Copyright 2025 Intel Corporation
+# Copyright (c) 2025, Intel Corporation
 #
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
 #
-#    http://www.apache.org/licenses/LICENSE-2.0
+#     * Redistributions of source code must retain the above copyright notice,
+#       this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Intel Corporation nor the names of its contributors
+#       may be used to endorse or promote products derived from this software
+#       without specific prior written permission.
 #
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import os
 import os.path
diff --git a/pyproject.toml b/pyproject.toml
index 520743a..bf9cd2e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -49,6 +49,7 @@ classifiers = [
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
+    "Programming Language :: Python :: 3.13",
     "Programming Language :: Python :: Implementation :: CPython",
     "Topic :: Software Development",
     "Topic :: Scientific/Engineering",
@@ -63,7 +64,7 @@ keywords = ["mkl_umath"]
 license = "BSD-3-Clause"
 name = "mkl_umath"
 readme = {file = "README.md", content-type = "text/markdown"}
-requires-python = ">=3.9,<3.13"
+requires-python = ">=3.9,<3.14"
 
 
 [project.optional-dependencies]

From 334adc9a7cb624eb11c09ea354c1992197923280 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Thu, 8 May 2025 17:53:29 -0700
Subject: [PATCH 22/23] (INCOMPLETE) add a list of functions

---
 README.md                | 103 +++++++++++++++++++++++++++-----
 function_list.md         | 123 +++++++++++++++++++++++++++++++++++++++
 mkl_umath/src/_patch.pyx |  20 +++----
 3 files changed, 221 insertions(+), 25 deletions(-)
 create mode 100644 function_list.md

diff --git a/README.md b/README.md
index 494c712..9a1999b 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,23 @@
 [![Conda package](https://github.com/IntelPython/mkl_umath/actions/workflows/conda-package.yml/badge.svg)](https://github.com/IntelPython/mkl_umath/actions/workflows/conda-package.yml)
+[![Editable build using pip and pre-release NumPy](https://github.com/IntelPython/mkl_umath/actions/workflows/build_pip.yaml/badge.svg)](https://github.com/IntelPython/mkl_umath/actions/workflows/build_pip.yaml)
+[![Conda package with conda-forge channel only](https://github.com/IntelPython/mkl_umath/actions/workflows/conda-package-cf.yml/badge.svg)](https://github.com/IntelPython/mkl_umath/actions/workflows/conda-package-cf.yml)
 [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/mkl_umath/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/mkl_umath)
 
-# `mkl_umath`
+# `mkl_umath` --  a NumPy-based Python interface to Intel® oneAPI Math Kernel Library (oneMKL) VM Mathematical Functions
 
-`mkl_umath._ufuncs` exposes [Intel® OneAPI Math Kernel Library (OneMKL)](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html)
-powered version of loops used in the patched version of [NumPy](https://numpy.org), that used to be included in
-[Intel® Distribution for Python*](https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html).
+# Introduction
+`mkl_umath` started is part of [Intel® Distribution for Python*](https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html) optimizations to NumPy.
+It offers a thin layered python interface to the [Intel® oneAPI Math Kernel Library (oneMKL) VM Mathematical Functions](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2025-2/vm-mathematical-functions.html) that allows efficient access to computing values of mathematical functions on real and complex vector arguments. As a result, its performance is close to the performance of native C/Intel® oneMKL.
 
-Patches were factored out per community feedback ([NEP-36](https://numpy.org/neps/nep-0036-fair-play.html)).
-
-`mkl_umath` started as a part of Intel® Distribution for Python* optimizations to NumPy, and is now being released 
-as a stand-alone package. It can be installed into conda environment using:
+---
+# Installation
+`mkl_umath` can be installed into conda environment from Intel`s channel using:
 
 ```
    conda install -c https://software.repos.intel.com/python/conda mkl_umath
 ```
 
----
-
-To install mkl_umath PyPI package please use following command:
+To install `mkl_umath` PyPI package please use the following command:
 
 ```
    python -m pip install --i https://software.repos.intel.com/python/pypi -extra-index-url https://pypi.org/simple mkl_umath
@@ -30,13 +29,87 @@ If command above installs NumPy package from the PyPI, please use the following
    python -m pip install --i https://software.repos.intel.com/python/pypi -extra-index-url https://pypi.org/simple mkl_umath numpy==<numpy_version>
 ```
 
-Where `<numpy_version>` should be the latest version from https://software.repos.intel.com/python/conda/
+where `<numpy_version>` should be the latest version from https://software.repos.intel.com/python/conda/.
 
 ---
+# How to use?
+## Supported functions
+A complete list of `mkl_umath` functions with their supported data types is available [here]().
+Note that oneMKL is only used for large contiguous arrays when there is no memory overlap.
+These functions can be used in two ways which are explained below.
+
+## Registering `mkl_umath` as the ufunc backend for NumPy
+The recommended way to use `mkl_umath` package is through patching stock NumPy. 
+To permanently patch stock NumPy ufuncs which are supported in `mkl_umath`, use the following commands:
+
+```python
+import mkl_umath
+mkl_umath.is_patched()
+# False
+
+mkl_umath.use_in_numpy()  # Enable mkl_umath in NumPy
+mkl_umath.is_patched()
+# True
+
+# calling any ufuncs supported in mkl_umath will use oneMKL implementation
+
+mkl_umath.restore()  # Disable mkl_umath in NumPy
+mkl_umath.is_patched()
+# False 
+```
+
+or use context manager and decorator to temporarily patch NumPy ufuncs:
+
+```python
+import mkl_umath
+mkl_umath.is_patched()
+# False
+
+with mkl_umath.mkl_umath():  # Enable mkl_umath in NumPy
+    print(mkl_umath.is_patched())
+    # calling any ufuncs supported in mkl_umath will use oneMKL implementation
+# True
+
+# calling numpy.exp will use NumPy own implementation
+mkl_umath.is_patched()
+# False  
+```
 
-## Building
+Note that when NumPy is patched in this way not only functions that are supported in `mkl_umath` use oneMKL as backend, any other functions that depends on such functions will use oneMKL as well. For instance,
+
+```python
+import mkl_umath, numpy
+
+mkl_umath.use_in_numpy()  # Enable mkl_umath in NumPy
+
+# numpy.blackman functions internally depnends on numpy.cos which is a supported function in `mkl_umath`
+# so calling numpy.blackman will also use oneMKL for its calculations
+%timeit numpy.blackman(size)
+# 787 ms ± 1.46 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
+
+# compare timing to stock NumPy withou using oneMKL
+mkl_umath.restore()
+%timeit numpy.blackman(size)
+# 3.21 s ± 2.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
+```
+
+## Direct use of `mkl_umath` package
+While patching the stock NumPy is the recommended way to leverage `mk_umath`, one can also use `mk_umath` directly as:
+
+It is upcast for instance intefer in addition
+```python
+import mkl_umath, numpy
+a = numpy.random.rand(10**4)
+mkl_res = mkl_umath.exp(a)
+np_res = numpy.exp(a)
+numpy.allclose(mkl_res, np_res)
+# True
+```
+
+---
+# Building from source
 
-Intel(R) C compiler and Intel(R) OneAPI Math Kernel Library (OneMKL) are required to build `mkl_umath` from source.
+Intel® C compiler and Intel® oneAPI Math Kernel Library (oneMKL) are required to build `mkl_umath` from source.
 
 If these are installed as part of a `oneAPI` installation, the following packages must also be installed into the environment
 - `cmake`
@@ -45,7 +118,7 @@ If these are installed as part of a `oneAPI` installation, the following package
 - `scikit-build`
 - `numpy`
 
-If build dependencies are to be installed with Conda, the following packages must be installed from the Intel(R) channel
+If build dependencies are to be installed with Conda, the following packages must be installed from the Intel® channel
 - `mkl-devel`
 - `tbb-devel`
 - `dpcpp_linux-64` (or `dpcpp_win-64` for Windows)
diff --git a/function_list.md b/function_list.md
new file mode 100644
index 0000000..2dfabe7
--- /dev/null
+++ b/function_list.md
@@ -0,0 +1,123 @@
+In the following a list of current functions available in `mkl_umath` is provided.
+In the list the supported data type are indicated. However, if input has type that can safely be upcast to one of supported dtypes, `mkl_umath` still can be used.
+
+Also Note that oneMKL is only used for large contiguous arrays when there is no memort overlap.
+
+The follwoing example shows how to get the supported dtypes and function signature for a function:
+
+```python
+import mkl_umath
+
+# to get supported dtypes
+mkl_umath.exp.types
+# ['f->f', 'd->d']
+
+# to get function signature
+help(mkl_umath.exp)
+# Help on ufunc:
+# exp = <ufunc 'exp'>
+#    exp(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature])
+```
+
+
+| function | data types | implementation | note |
+|----------|----------|----------|----------|
+| absolute | s, d, c, z | oneMKL | - |
+| add | s, d, c, z | oneMKL | - |
+| arccos | s, d, c, z | oneMKL | - |
+| arccosh | s, d, c, z | oneMKL | - |
+| arcsin | s, d, c, z | oneMKL | - |
+| arcsinh | s, d, c, z | oneMKL | - |
+| arctan | s, d, c, z | oneMKL | - |
+| arctan2 | s, d | oneMKL | - |
+| arctanh | s, d, c, z | oneMKL | - |
+| cbrt | s, d | oneMKL | - |
+| ceil | s, d | oneMKL | - |
+| conjugate | s, d, c, z | oneMKL | float dtypes use primitive implementation |
+| copysign | s, d | oneMKL | - |
+| cos | s, d, c, z | oneMKL | - |
+| cosh | s, d, c, z | oneMKL | - |
+| divide | s, d, c, z | oneMKL | - |
+| divmod | s, d | primitive | - |
+| equal | c, z | primitive | - |
+| exp | s, d, c, z | oneMKL | - |
+| exp2 | s, d | oneMKL | - |
+| expm1 | s, d | oneMKL | - |
+| fabs | s, d | oneMKL | - |
+| float_power | d, z | oneMKL | - |
+| floor | s, d | oneMKL | - |
+| floor_divide | s, d | primitive | - |
+| fmax | s, d | oneMKL | - |
+| fmin | s, d | oneMKL | - |
+| fmod | s, d | oneMKL | - |
+| hypot | s, d | oneMKL | - |
+| ldexp | s, d | C built-in | ?? |
+| log | s, d, c, z | oneMKL | - |
+| log2 | s, d | oneMKL | - |
+| log10 | s, d, c, z | oneMKL | - |
+| log1p | s, d | oneMKL | - |
+| logical_and | s, d, c, z | primitive | - |
+| logical_or | s, d, c, z | primitive | - |
+| logical_xor | s, d, c, z | primitive | - |
+| logical_not | s, d, c, z | primitive | - |
+| modf | s, d | oneMKL | - |
+| multiply | s, d, c, z | oneMKL | - |
+| negative | s, d | primitive | - |
+| nextafter | s, d | oneMKL | - |
+| not_equal | c, z | primitive | - |
+| positive | s, d | primitive | - |
+| power | s, d, c, z | oneMKL | - |
+| reciprocal | s, d | oneMKL | - |
+| remainder | s, d | oneMKL | - |
+| rint | s, d | oneMKL | - |
+| sign | s, d | primitive | - |
+| sin | s, d, c, z | oneMKL | - |
+| sinh | s, d, c, z | oneMKL | - |
+| sqrt | s, d, c, z | oneMKL | - |
+| square | s, d, c, z | oneMKL | complex dtypes use primitive implementation |
+| subtract | s, d, c, z | oneMKL | - |
+| tan | s, d, c, z | oneMKL | - |
+| tanh | s, d, c, z | oneMKL | - |
+| trunc | s, d | oneMKL | - |
+
+Tasks:
+-) clean up, new test for both float and double
+-) complex loop for add, subtract, divide, multiply
+-) float loop hypot using c function
+-) remove comparison
+-) remove minimum and maximum
+-) remove signbit
+-) enable divmod
+?) float loop floordivide and remove its patch in numpy-recipe
+-) complex loop exp using c function
+-) float loop arctan2 using c function
+-) float and complex loop power
+-) float and complex loop float_power
+-) complex loop log using c function
+-) complex loop sqrt using c function
+-) complex loop trig and hyper using c function
+-) float loop fmod using c function
+-) complex loop log10
+-) MKL for float loop modf
+-) remove float/complex loop is family
+-) remove spacing and its definition
+?) remove frexp (more timing example)
+-) remove complex loop fmax and fmin
+-) remove complex loop sign
+-) remove complex loop reciprocal
+24) decide about ldexp
+25) documentation
+26) compile win
+27) add numpy tests
+28) clean up numpy-recipe
+29) update size tolerance +,-,*,/
+
+divide is normal definition, true divide is its alias. binary with one output
+
+fmod and remainder return remainder but with sign of dividend and diviser respectively. Both are binary with one output
+
+floor_divide: returns quotient (pairs with remainder). binary with one output
+
+divmod returns quotient and remainder simultaneously. binary with two outputs
+
+modf returns fractional and integral parts of an array, unary with two output
diff --git a/mkl_umath/src/_patch.pyx b/mkl_umath/src/_patch.pyx
index 21bdfc1..839a668 100644
--- a/mkl_umath/src/_patch.pyx
+++ b/mkl_umath/src/_patch.pyx
@@ -143,7 +143,7 @@ def _initialize_tls():
 
 def use_in_numpy():
     """
-    Enables using of mkl_umath in Numpy.
+    Enables using of mkl_umath in NumPy.
 
     Examples
     --------
@@ -151,11 +151,11 @@ def use_in_numpy():
     >>> mkl_umath.is_patched()
     # False
 
-    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in Numpy
+    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # True
 
-    >>> mkl_umath.restore()  # Disable mkl_umath in Numpy
+    >>> mkl_umath.restore()  # Disable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # False
     
@@ -167,7 +167,7 @@ def use_in_numpy():
 
 def restore():
     """
-    Disables using of mkl_umath in Numpy.
+    Disables using of mkl_umath in NumPy.
 
     Examples
     --------
@@ -175,11 +175,11 @@ def restore():
     >>> mkl_umath.is_patched()
     # False
 
-    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in Numpy
+    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # True
 
-    >>> mkl_umath.restore()  # Disable mkl_umath in Numpy
+    >>> mkl_umath.restore()  # Disable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # False   
 
@@ -191,7 +191,7 @@ def restore():
 
 def is_patched():
     """
-    Returns whether Numpy has been patched with mkl_umath.
+    Returns whether NumPy has been patched with mkl_umath.
 
     Examples
     --------
@@ -199,11 +199,11 @@ def is_patched():
     >>> mkl_umath.is_patched()
     # False
 
-    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in Numpy
+    >>> mkl_umath.use_in_numpy()  # Enable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # True
 
-    >>> mkl_umath.restore()  # Disable mkl_umath in Numpy
+    >>> mkl_umath.restore()  # Disable mkl_umath in NumPy
     >>> mkl_umath.is_patched()
     # False 
 
@@ -225,7 +225,7 @@ class mkl_umath(ContextDecorator):
     >>> mkl_umath.is_patched()
     # False
 
-    >>> with mkl_umath.mkl_umath():  # Enable mkl_umath in Numpy
+    >>> with mkl_umath.mkl_umath():  # Enable mkl_umath in NumPy
     >>>     print(mkl_umath.is_patched())
     # True
 

From b3d6e6d5b50e8cfe7671629579a069efa3d7d712 Mon Sep 17 00:00:00 2001
From: Vahid Tavanashad <vahid.tavanashad@intel.com>
Date: Sun, 10 Aug 2025 19:34:01 -0700
Subject: [PATCH 23/23] add benchmark files: This is only for deciding on
 dropping support for which functions

---
 benchmark/binary_COMPLEX.py | 46 +++++++++++++++++++++++++++++++++++++
 benchmark/binary_FLOAT.py   | 44 +++++++++++++++++++++++++++++++++++
 benchmark/unary_COMPLEX.py  | 43 ++++++++++++++++++++++++++++++++++
 benchmark/unary_FLOAT.py    | 42 +++++++++++++++++++++++++++++++++
 4 files changed, 175 insertions(+)
 create mode 100644 benchmark/binary_COMPLEX.py
 create mode 100644 benchmark/binary_FLOAT.py
 create mode 100644 benchmark/unary_COMPLEX.py
 create mode 100644 benchmark/unary_FLOAT.py

diff --git a/benchmark/binary_COMPLEX.py b/benchmark/binary_COMPLEX.py
new file mode 100644
index 0000000..517cfca
--- /dev/null
+++ b/benchmark/binary_COMPLEX.py
@@ -0,0 +1,46 @@
+import numpy as np
+import timeit
+import gc
+import mkl_umath
+
+
+functions = ['maximum', 'minimum', 'fmax', 'fmin']
+powers = list(range(4, 9))
+sizes = [10**p for p in powers]
+repeats = 3
+dtypes = [np.complex64, np.complex128]
+
+def time_func(func, *args):
+    gc.collect()
+    timer = timeit.Timer(lambda: func(*args))
+    times = timer.repeat(repeat=repeats, number=1)
+    return min(times) * 1000  # milliseconds
+
+def benchmark_function(name, np_func, mkl_func):
+    for dtype in dtypes:
+        print(f"\nFunction: {name} | Dtype: {dtype.__name__}")
+        print(f"{'Size':>10} | {'NumPy (ms)':>12} | {'MKL_umath (ms)':>15}")
+        print("-" * 45)
+
+        for power, size in zip(powers, sizes):
+            try:
+                a = np.random.rand(size) + 1j * np.random.rand(size)
+                a = a.astype(dtype)
+                b = np.random.rand(size) + 1j * np.random.rand(size)
+                b = b.astype(dtype)                    
+                args = (a, b)
+
+                np_time = time_func(np_func, *args)
+                mkl_time = time_func(mkl_func, *args)
+
+                print(f"{f'10**{power}':>10} | {np_time:12.3f} | {mkl_time:15.3f}")
+            except MemoryError:
+                print(f"{f'10**{power}':>10} | {'OOM':>12} | {'OOM':>15}")
+            except Exception as e:
+                print(f"{f'10**{power}':>10} | Error: {str(e)}")
+
+# Run benchmarks
+for func in functions:
+    np_func = getattr(np, func)
+    mkl_func = getattr(mkl_umath, func)
+    benchmark_function(func, np_func, mkl_func)
\ No newline at end of file
diff --git a/benchmark/binary_FLOAT.py b/benchmark/binary_FLOAT.py
new file mode 100644
index 0000000..5bf8865
--- /dev/null
+++ b/benchmark/binary_FLOAT.py
@@ -0,0 +1,44 @@
+import numpy as np
+import timeit
+import gc
+import mkl_umath
+
+
+functions = ['power', 'floor_divide']
+powers = list(range(4, 9))
+sizes = [10**p for p in powers]
+repeats = 3
+dtypes = [np.float32, np.float64]
+
+def time_func(func, *args):
+    gc.collect()
+    timer = timeit.Timer(lambda: func(*args))
+    times = timer.repeat(repeat=repeats, number=1)
+    return min(times) * 1000  # milliseconds
+
+def benchmark_function(name, np_func, mkl_func):
+    for dtype in dtypes:
+        print(f"\nFunction: {name} | Dtype: {dtype.__name__}")
+        print(f"{'Size':>10} | {'NumPy (ms)':>12} | {'MKL_umath (ms)':>15}")
+        print("-" * 45)
+
+        for power, size in zip(powers, sizes):
+            try:
+                a = np.random.rand(size).astype(dtype)
+                b = np.random.rand(size).astype(dtype)            
+                args = (a, b)
+
+                np_time = time_func(np_func, *args)
+                mkl_time = time_func(mkl_func, *args)
+
+                print(f"{f'10**{power}':>10} | {np_time:12.3f} | {mkl_time:15.3f}")
+            except MemoryError:
+                print(f"{f'10**{power}':>10} | {'OOM':>12} | {'OOM':>15}")
+            except Exception as e:
+                print(f"{f'10**{power}':>10} | Error: {str(e)}")
+
+# Run benchmarks
+for func in functions:
+    np_func = getattr(np, func)
+    mkl_func = getattr(mkl_umath, func)
+    benchmark_function(func, np_func, mkl_func)
\ No newline at end of file
diff --git a/benchmark/unary_COMPLEX.py b/benchmark/unary_COMPLEX.py
new file mode 100644
index 0000000..90e6a6c
--- /dev/null
+++ b/benchmark/unary_COMPLEX.py
@@ -0,0 +1,43 @@
+import numpy as np
+import timeit
+import gc
+import mkl_umath
+
+
+functions = ['exp', 'square', 'reciprocal', 'sign']
+powers = list(range(4, 9))
+sizes = [10**p for p in powers]
+repeats = 3
+dtypes = [np.complex64, np.complex128]
+
+def time_func(func, *args):
+    gc.collect()
+    timer = timeit.Timer(lambda: func(*args))
+    times = timer.repeat(repeat=repeats, number=1)
+    return min(times) * 1000  # milliseconds
+
+def benchmark_function(name, np_func, mkl_func):
+    for dtype in dtypes:
+        print(f"\nFunction: {name} | Dtype: {dtype.__name__}")
+        print(f"{'Size':>10} | {'NumPy (ms)':>12} | {'MKL_umath (ms)':>15}")
+        print("-" * 45)
+
+        for power, size in zip(powers, sizes):
+            try:
+                a = np.random.rand(size) + 1j * np.random.rand(size)
+                a = a.astype(dtype)
+
+                np_time = time_func(np_func, a)
+                mkl_time = time_func(mkl_func, a)
+
+                print(f"{f'10**{power}':>10} | {np_time:12.3f} | {mkl_time:15.3f}")
+            except MemoryError:
+                print(f"{f'10**{power}':>10} | {'OOM':>12} | {'OOM':>15}")
+            except Exception as e:
+                print(f"{f'10**{power}':>10} | Error: {str(e)}")
+
+# Run benchmarks
+for func in functions:
+    np_func = getattr(np, func)
+    mkl_func = getattr(mkl_umath, func)
+    benchmark_function(func, np_func, mkl_func)
\ No newline at end of file
diff --git a/benchmark/unary_FLOAT.py b/benchmark/unary_FLOAT.py
new file mode 100644
index 0000000..869f079
--- /dev/null
+++ b/benchmark/unary_FLOAT.py
@@ -0,0 +1,42 @@
+import numpy as np
+import timeit
+import gc
+import mkl_umath
+
+
+functions = ['sin', 'conjugate', 'positive', 'negative', 'sign', 'spacing', 'frexp', 'signbit']
+powers = list(range(4, 9))
+sizes = [10**p for p in powers]
+repeats = 3
+dtypes = [np.float32, np.float64]
+
+def time_func(func, *args):
+    gc.collect()
+    timer = timeit.Timer(lambda: func(*args))
+    times = timer.repeat(repeat=repeats, number=1)
+    return min(times) * 1000  # milliseconds
+
+def benchmark_function(name, np_func, mkl_func):
+    for dtype in dtypes:
+        print(f"\nFunction: {name} | Dtype: {dtype.__name__}")
+        print(f"{'Size':>10} | {'NumPy (ms)':>12} | {'MKL_umath (ms)':>15}")
+        print("-" * 45)
+
+        for power, size in zip(powers, sizes):
+            try:
+                a = np.random.rand(size).astype(dtype)
+
+                np_time = time_func(np_func, a)
+                mkl_time = time_func(mkl_func, a)
+
+                print(f"{f'10**{power}':>10} | {np_time:12.3f} | {mkl_time:15.3f}")
+            except MemoryError:
+                print(f"{f'10**{power}':>10} | {'OOM':>12} | {'OOM':>15}")
+            except Exception as e:
+                print(f"{f'10**{power}':>10} | Error: {str(e)}")
+
+# Run benchmarks
+for func in functions:
+    np_func = getattr(np, func)
+    mkl_func = getattr(mkl_umath, func)
+    benchmark_function(func, np_func, mkl_func)
\ No newline at end of file
