X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=inline;f=src%2Fmath%2Fspecial%2Ftgamma.h;h=ef551bc47daff58af89ebc2dcdc564358d986052;hb=c58b8e7cb29f954791ffd5bc2d97ddb4d4202d0c;hp=58e5425a6642313c561a69f08faab0244aae268c;hpb=ae0f0fe09b7fc9d44d072c3fd08372991d852b1d;p=libc-test diff --git a/src/math/special/tgamma.h b/src/math/special/tgamma.h index 58e5425..ef551bc 100644 --- a/src/math/special/tgamma.h +++ b/src/math/special/tgamma.h @@ -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)