diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-03-16 12:28:25 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-03-16 12:30:05 +0000 |
commit | 8848d99dce1e57168a492d146f5e72195c7665a5 (patch) | |
tree | b08411393dc81052bb86482bbdb044b622b57653 /math | |
parent | dd7f470327139a88019b2c5ded8fc2811b0fed00 (diff) | |
download | glibc-8848d99dce1e57168a492d146f5e72195c7665a5.tar glibc-8848d99dce1e57168a492d146f5e72195c7665a5.tar.gz glibc-8848d99dce1e57168a492d146f5e72195c7665a5.tar.bz2 glibc-8848d99dce1e57168a492d146f5e72195c7665a5.zip |
Implement ldbl-96 sinl / cosl / sincosl (bug 13851).
Diffstat (limited to 'math')
-rw-r--r-- | math/libm-test.inc | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc index 89d0eb1bfc..fb82926183 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -2112,16 +2112,20 @@ cos_test (void) TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L); -#ifndef TEST_LDOUBLE - /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_f_f (cos, 0x1p65, 0.99888622066058013610642172179340364209972L); TEST_f_f (cos, -0x1p65, 0.99888622066058013610642172179340364209972L); -#endif #ifdef TEST_DOUBLE TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473); - TEST_f_f (cos, 1e22, 0.5232147853951389454975944733847); - TEST_f_f (cos, 0x1p1023, -0.8263698346141479945007856808117); +#endif + +#ifndef TEST_FLOAT + TEST_f_f (cos, 1e22, 0.5232147853951389454975944733847094921409L); + TEST_f_f (cos, 0x1p1023, -0.826369834614147994500785680811743734805L); +#endif + +#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 + TEST_f_f (cos, 0x1p16383L, 0.9210843909921906206874509522505756251609L); #endif END (cos); @@ -6395,18 +6399,21 @@ sin_test (void) TEST_f_f (sin, -M_PI_2l, -1); TEST_f_f (sin, 0.75L, 0.681638760023334166733241952779893935L); -#ifndef TEST_LDOUBLE - - /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_f_f (sin, 0x1p65, -0.047183876212354673805106149805700013943218L); TEST_f_f (sin, -0x1p65, 0.047183876212354673805106149805700013943218L); -#endif #ifdef TEST_DOUBLE TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868); TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1); - TEST_f_f (sin, 1e22, -0.8522008497671888017727058937530); - TEST_f_f (sin, 0x1p1023, 0.5631277798508840248814522055909); +#endif + +#ifndef TEST_FLOAT + TEST_f_f (sin, 1e22, -0.8522008497671888017727058937530293682618L); + TEST_f_f (sin, 0x1p1023, 0.5631277798508840134529434079444683477104L); +#endif + +#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 + TEST_f_f (sin, 0x1p16383L, 0.3893629985894208126948115852610595405563L); #endif END (sin); @@ -6576,16 +6583,20 @@ sincos_test (void) TEST_extra (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5); TEST_extra (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L); -#ifndef TEST_LDOUBLE - /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_extra (sincos, 0x1p65, -0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L); TEST_extra (sincos, -0x1p65, 0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L); -#endif #ifdef TEST_DOUBLE TEST_extra (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473); - TEST_extra (sincos, 1e22, -0.8522008497671888017727058937530, 0.5232147853951389454975944733847); - TEST_extra (sincos, 0x1p1023, 0.5631277798508840248814522055909, -0.8263698346141479945007856808117); +#endif + +#ifndef TEST_FLOAT + TEST_extra (sincos, 1e22, -0.8522008497671888017727058937530293682618L, 0.5232147853951389454975944733847094921409L); + TEST_extra (sincos, 0x1p1023, 0.5631277798508840134529434079444683477104L, -0.826369834614147994500785680811743734805L); +#endif + +#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 + TEST_extra (sincos, 0x1p16383L, 0.3893629985894208126948115852610595405563L, 0.9210843909921906206874509522505756251609L); #endif END (sincos); |