summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-03-16 12:28:25 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-03-16 12:30:05 +0000
commit8848d99dce1e57168a492d146f5e72195c7665a5 (patch)
treeb08411393dc81052bb86482bbdb044b622b57653 /math
parentdd7f470327139a88019b2c5ded8fc2811b0fed00 (diff)
downloadglibc-8848d99dce1e57168a492d146f5e72195c7665a5.tar.gz
glibc-8848d99dce1e57168a492d146f5e72195c7665a5.tar.xz
glibc-8848d99dce1e57168a492d146f5e72195c7665a5.zip
Implement ldbl-96 sinl / cosl / sincosl (bug 13851).
Diffstat (limited to 'math')
-rw-r--r--math/libm-test.inc43
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);