math: regenerate all math tests
[libc-test] / src / math / special / tgamma.h
index 58e5425..ef551bc 100644 (file)
@@ -1,3 +1,4 @@
+// special cases
 T(RN,                  0x0p+0,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
@@ -7,3 +8,99 @@ T(RN,                 -0x1p+1,                     nan,          0x0p+0, INVALID
 T(RN,                     inf,                     inf,          0x0p+0, 0)
 T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
 T(RN,                     nan,                     nan,          0x0p+0, 0)
+// positive int
+T(RN,                  0x1p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+2,                0x1.8p+2,          0x0p+0, INEXACT)
+T(RN,                0x1.8p+1,                  0x1p+1,          0x0p+0, INEXACT)
+T(RN,                0x1.4p+2,                0x1.8p+4,          0x0p+0, INEXACT)
+T(RN,                0x1.8p+2,                0x1.ep+6,          0x0p+0, INEXACT)
+T(RN,                0x1.cp+2,               0x1.68p+9,          0x0p+0, INEXACT)
+T(RN,                  0x1p+3,              0x1.3bp+12,          0x0p+0, INEXACT)
+T(RN,                0x1.2p+3,              0x1.3bp+15,          0x0p+0, INEXACT)
+T(RN,                0x1.4p+3,             0x1.626p+18,          0x0p+0, INEXACT)
+T(RN,                0x1.6p+3,            0x1.baf8p+21,          0x0p+0, INEXACT)
+T(RN,                0x1.8p+3,           0x1.308a8p+25,          0x0p+0, INEXACT)
+T(RN,                0x1.ap+3,           0x1.c8cfcp+28,          0x0p+0, INEXACT)
+T(RN,                0x1.cp+3,          0x1.7328ccp+32,          0x0p+0, INEXACT)
+T(RN,                0x1.ep+3,         0x1.44c3b28p+36,          0x0p+0, INEXACT)
+T(RN,                  0x1p+4,        0x1.30777758p+40,          0x0p+0, INEXACT)
+T(RN,                  0x1p+5,  0x1.956ad0aae33a4p+112,  -0x1.583174p-2, INEXACT)
+T(RN,                  0x1p+6,  0x1.fe478ee34844ap+289,   0x1.82ad54p-4, INEXACT)
+T(RN,                  0x1p+7,  0x1.1e5dfc140e1e5p+709,  -0x1.861c04p-3, INEXACT)
+T(RN,                  0x1p+8,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+// close to poles
+T(RN,                 0x1p-50,   0x1.ffffffffffffbp+49,  -0x1.877304p-2, INEXACT)
+T(RN,                 0x1p-51,   0x1.ffffffffffffep+50,   0x1.3c467ep-2, INEXACT)
+T(RN,                 0x1p-52,   0x1.fffffffffffffp+51,   0x1.3c467ep-3, INEXACT)
+T(RN,                 0x1p-53,   0x1.fffffffffffffp+52,   -0x1.b0ee6p-2, INEXACT)
+T(RN,                 0x1p-54,                 0x1p+54,    0x1.2788dp-3, INEXACT)
+T(RN,  0x1.000000000001p-1024,  0x1.fffffffffffep+1023,        -0x1p-43, INEXACT)
+T(RN, -0x1.000000000001p-1024, -0x1.fffffffffffep+1023,         0x1p-43, INEXACT)
+T(RN,                -0x1p-54,                -0x1p+54,    0x1.2788dp-3, INEXACT)
+T(RN,                -0x1p-53,                -0x1p+53,    0x1.2788dp-2, INEXACT)
+T(RN,                -0x1p-52,  -0x1.0000000000001p+52,   -0x1.b0ee6p-2, INEXACT)
+T(RN,                -0x1p-51,  -0x1.0000000000001p+51,   0x1.3c467ep-3, INEXACT)
+T(RN,                -0x1p-50,  -0x1.0000000000002p+50,   0x1.3c467ep-2, INEXACT)
+T(RN,   -0x1.ffffffffffffcp-1,  -0x1.0000000000001p+51,  -0x1.3c467ep-3, INEXACT)
+T(RN,   -0x1.ffffffffffffdp-1,  -0x1.5555555555556p+51,   0x1.6e642cp-3, INEXACT)
+T(RN,   -0x1.ffffffffffffep-1,                -0x1p+52,    0x1.b0ee6p-2, INEXACT)
+T(RN,   -0x1.fffffffffffffp-1,                -0x1p+53,    0x1.b0ee6p-3, INEXACT)
+T(RN,   -0x1.0000000000001p+0,   0x1.fffffffffffffp+51,  -0x1.3c467ep-3, INEXACT)
+T(RN,   -0x1.0000000000002p+0,   0x1.ffffffffffffep+50,  -0x1.3c467ep-2, INEXACT)
+T(RN,   -0x1.0000000000003p+0,   0x1.5555555555554p+50,   0x1.6e642cp-2, INEXACT)
+T(RN,   -0x1.0000000000004p+0,   0x1.ffffffffffffdp+49,   0x1.877304p-2, INEXACT)
+T(RN,   -0x1.ffffffffffffcp+0,   0x1.0000000000004p+49,   0x1.3c467ep-2, INEXACT)
+T(RN,   -0x1.ffffffffffffdp+0,   0x1.5555555555559p+49,  -0x1.90ed72p-6, INEXACT)
+T(RN,   -0x1.ffffffffffffep+0,   0x1.0000000000002p+50,   0x1.3c467ep-3, INEXACT)
+T(RN,   -0x1.fffffffffffffp+0,   0x1.0000000000001p+51,   0x1.3c467ep-4, INEXACT)
+T(RN,   -0x1.0000000000001p+1,  -0x1.ffffffffffffcp+49,   0x1.3c467ep-2, INEXACT)
+T(RN,   -0x1.0000000000002p+1,  -0x1.ffffffffffff9p+48,  -0x1.877304p-2, INEXACT)
+T(RN,   -0x1.0000000000003p+1,  -0x1.555555555554ep+48,  -0x1.90ed72p-5, INEXACT)
+T(RN,   -0x1.0000000000004p+1,  -0x1.ffffffffffff1p+47,   0x1.e233f2p-3, INEXACT)
+T(RN,   -0x1.7fffffffffffdp+1,  -0x1.c71c71c71c72ap+46,  -0x1.4177f6p-3, INEXACT)
+T(RN,   -0x1.7fffffffffffep+1,  -0x1.555555555555cp+47,   0x1.0b48f6p-5, INEXACT)
+T(RN,   -0x1.7ffffffffffffp+1,  -0x1.5555555555559p+48,  -0x1.44a0c6p-2, INEXACT)
+T(RN,   -0x1.5800000000001p+7, -0x1.b98c8c968b7c1p-990,   0x1.970c8ep-3, INEXACT)
+T(RN,   -0x1.5800000000002p+7,  -0x1.b98c8c968b35p-991,   0x1.f3c9bcp-4, INEXACT)
+T(RN,   -0x1.5800000000003p+7, -0x1.265db30f07495p-991,  -0x1.366b9cp-2, INEXACT)
+T(RN,   -0x1.5800000000004p+7, -0x1.b98c8c968aa6ep-992,  -0x1.01aa08p-5, INEXACT)
+T(RN,   -0x1.59ffffffffffcp+7, -0x1.46b1fa841b485p-999,  -0x1.acebdep-5, INEXACT)
+T(RN,   -0x1.59ffffffffffdp+7, -0x1.b397f8b0241a4p-999,  -0x1.9c2ff4p-2, INEXACT)
+T(RN,   -0x1.59ffffffffffep+7,  -0x1.46b1fa841adfp-998,   0x1.cb558ep-2, INEXACT)
+T(RN,   -0x1.59fffffffffffp+7, -0x1.46b1fa841aaa6p-997,   0x1.979e28p-3, INEXACT)
+T(RN,   -0x1.5a00000000001p+7,  0x1.46b1fa841a412p-997,   0x1.333de2p-2, INEXACT)
+T(RN,   -0x1.5bfffffffffffp+7, 0x1.e0a7b14f99fdbp-1005,  -0x1.af416ap-2, INEXACT)
+T(RN,   -0x1.5c00000000001p+7,-0x1.e0a7b14f9962ap-1005,   0x1.42ddc4p-2, INEXACT)
+T(RN,   -0x1.5dfffffffffffp+7, -0x1.5f90991893bep-1012,   0x1.97c846p-2, INEXACT)
+T(RN,   -0x1.5e00000000001p+7, 0x1.5f909918934c8p-1012,   0x1.731f2ep-2, INEXACT)
+T(RN,   -0x1.9000000000001p+7,                 -0x0p+0, 0x1.894d44p-127, INEXACT|UNDERFLOW)
+T(RN,   -0x1.9200000000001p+7,                  0x0p+0,  -0x1.f4ecp-135, INEXACT|UNDERFLOW)
+// (negative) half values
+T(RN,                  0x1p-1,    0x1.c5bf891b4ef6bp+0,   0x1.618f14p-2, INEXACT)
+T(RN,                 -0x1p-1,   -0x1.c5bf891b4ef6bp+1,  -0x1.618f14p-2, INEXACT)
+T(RN,               -0x1.8p+0,    0x1.2e7fb0bcdf4f2p+1,    0x1.d7697p-3, INEXACT)
+T(RN,               -0x1.4p+1,   -0x1.e3ff812e32183p-1,  -0x1.58a8b4p-3, INEXACT)
+T(RN,               -0x1.cp+1,    0x1.149200acaee94p-2,   0x1.89e55ep-4, INEXACT)
+T(RN,               -0x1.2p+2,   -0x1.ebae3a168c495p-5,   0x1.4c8972p-3, INEXACT)
+T(RN,               -0x1.6p+2,    0x1.6595fbb34ec0fp-7,  -0x1.9031fcp-2, INEXACT)
+T(RN,               -0x1.ap+2,  -0x1.b81b0e66884ffp-10,   0x1.003d84p-2, INEXACT)
+T(RN,               -0x1.ep+2,   0x1.d572317e6f443p-13,  -0x1.de1f7cp-2, INEXACT)
+T(RN,               -0x1.1p+3,  -0x1.b9d4e349d2221p-16,   0x1.85c348p-2, INEXACT)
+T(RN,               -0x1.3p+3,   0x1.741196facbe6dp-19,   0x1.8855b4p-5, INEXACT)
+T(RN,               -0x1.5p+3,  -0x1.1b7b1db2e47f1p-22,   0x1.f30408p-2, INEXACT)
+T(RN,               -0x1.7p+3,   0x1.8a68825d1162fp-26,   0x1.a2c2bep-2, INEXACT)
+T(RN,               -0x1.9p+3,  -0x1.f8d7b11af788ep-30,  -0x1.c617fep-2, INEXACT)
+T(RN,               -0x1.bp+3,   0x1.2b2a7bea0df24p-33,  -0x1.e96d0ap-2, INEXACT)
+T(RN,               -0x1.dp+3,  -0x1.4a1d3948e3405p-37,  -0x1.e1c1d6p-5, INEXACT)
+T(RN,               -0x1.fp+3,   0x1.54c353e824637p-41,   0x1.6773dap-2, INEXACT)
+T(RN,              -0x1.08p+4,   -0x1.4a6fd53e32cdp-45,    0x1.27d98p-3, INEXACT)
+T(RN,              -0x1.04p+5, -0x1.62f4f602d0132p-119,    0x1.7415ep-3, INEXACT)
+T(RN,              -0x1.02p+6, -0x1.912276590832ep-298,   0x1.59f79ap-2, INEXACT)
+T(RN,              -0x1.01p+7, -0x1.fae67dea6e7fap-719,   0x1.317978p-3, INEXACT)
+T(RN,              -0x1.4fp+7, 0x1.ba80f2ad58fe1p-1000,  -0x1.097458p-2, INEXACT)
+T(RN,              -0x1.51p+7,-0x1.50252eda48291p-1007,   0x1.27d8c2p-2, INEXACT)
+T(RN,              -0x1.53p+7, 0x1.fbb03aae1cf04p-1015,  -0x1.b282acp-3, INEXACT)
+T(RN,             -0x1.008p+8,                 -0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+// reflection formula tests
+T(RN,   -0x1.facae9c9e7105p+5,  0x1.a98422d742f9fp-291,   0x1.dc5df6p-2, INEXACT)
+T(RN,   -0x1.fdce012aee935p+6,  0x1.46480e4894aafp-711,  -0x1.0c602ap-2, INEXACT)