This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: More libm tests


Here are more libm tests.


H.J.
----
2006-04-14  H.J. Lu  <hongjiu.lu@intel.com>

	* math/libm-test.inc (acos_test) [!TEST_DOUBLE]: Add new
	test.
	(acos_test) [TEST_FLOAT]: Likewise.
	(asin_test) [!TEST_LDOUBLE]: Likewise.
	(asin_test) [TEST_FLOAT]: Likewise.
	(atan_test) [!TEST_LDOUBLE]: Likewise.
	(atan_test) [TEST_FLOAT]: Likewise.
	(atan2_test) [!TEST_LDOUBLE]: Likewise.
	(atan2_test) [TEST_FLOAT]: Likewise.
	(cos_test) [TEST_FLOAT]: Likewise.
	(cosh_test) [!TEST_LDOUBLE]: Likewise.
	(cosh_test) [TEST_FLOAT]: Likewise.
	(exp_test) [TEST_DOUBLE]: Likewise.
	(exp_test) [TEST_FLOAT]: Likewise.
	(exp10_test) [TEST_DOUBLE]: Likewise.
	(exp10_test) [TEST_FLOAT]: Likewise.
	(exp2_test) [TEST_DOUBLE]: Likewise.
	(exp2_test) [TEST_FLOAT]: Likewise.
	(fma_test) [TEST_FLOAT]: Likewise.
	(hypot_test) [!TEST_LDOUBLE]: Likewise.
	(hypot_test) [TEST_FLOAT]: Likewise.
	(ldexp_test) [TEST_FLOAT]: Likewise.
	(log_test) [!TEST_LDOUBLE]: Likewise.
	(log_test) [TEST_FLOAT]: Likewise.
	(log10_test) [TEST_DOUBLE]: Likewise.
	(log10_test) [TEST_FLOAT]: Likewise.
	(log2_test) [TEST_DOUBLE]: Likewise.
	(log2_test) [TEST_FLOAT]: Likewise.
	(pow_test) [TEST_DOUBLE]: Likewise.
	(scalbn_test) [TEST_FLOAT]: Likewise.
	(scalbln_test) [TEST_FLOAT]: Likewise.
	(sin_test) [TEST_FLOAT]: Likewise.
	(sincos_test) [TEST_FLOAT]: Likewise.
	(sinh_test) [!TEST_LDOUBLE]: Likewise.
	(sinh_test) [TEST_FLOAT]: Likewise.
	(tan_test) [TEST_DOUBLE]: Likewise.
	(tan_test) [TEST_FLOAT]: Likewise.

	* sysdeps/i386/fpu/libm-test-ulps: Regenerated with gcc 4.1. 
	* sysdeps/ia64/fpu/libm-test-ulps: Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

--- libc/math/libm-test.inc.236p	2006-04-14 10:39:16.000000000 -0700
+++ libc/math/libm-test.inc	2006-04-14 14:19:01.000000000 -0700
@@ -749,6 +749,15 @@ acos_test (void)
   TEST_f_f (acos, 0.75L, 0.722734247813415611178377352641333362L);
   TEST_f_f (acos, 2e-17L, 1.57079632679489659923132169163975144L);
   TEST_f_f (acos, 0.0625L, 1.50825556499840522843072005474337068L);
+
+#ifndef TEST_LDOUBLE
+  TEST_f_f (acos, -0X1.0000400038P-1, 0X1.0C1535FC8F6B7P+1);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (acos, 0X1.23C758P-1, 0X1.EDCA96P-1);
+#endif
+
   END (acos);
 }
 
@@ -810,6 +819,14 @@ asin_test (void)
   TEST_f_f (asin, -1.0, -M_PI_2l);
   TEST_f_f (asin, 0.75L, 0.848062078981481008052944338998418080L);
 
+#ifndef TEST_LDOUBLE
+  TEST_f_f (asin, 0X1.0000400480946P-1, 0X1.0C156D6EAA43BP-1);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (asin, 0X1.00381EP-1, 0X1.0C55F2P-1);
+#endif
+
   END (asin);
 }
 
@@ -867,6 +884,14 @@ atan_test (void)
 
   TEST_f_f (atan, 0.75L, 0.643501108793284386802809228717322638L);
 
+#ifndef TEST_LDOUBLE
+  TEST_f_f (atan, 0X1.600000000018DP-1, 0X1.345F01CCE38C9P-1);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (atan, 0X1.5AB6FCP-2, 0X1.4E4EE8P-2);
+#endif
+
   END (atan);
 }
 
@@ -982,6 +1007,14 @@ atan2_test (void)
 
   TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994379639112L);
 
+#ifndef TEST_LDOUBLE
+  TEST_ff_f (atan2, 0X1.FFFFFFFFFFFFFP-1022, 0X1P+1, 0X0.FFFFFFFFFFFFFP-1022);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_ff_f (atan2, 0X1.FFFFF6P-4, 0X1.FFFF88P+0, 0X1.FF562AP-5);
+#endif
+
   END (atan2);
 }
 
@@ -2038,6 +2071,10 @@ cos_test (void)
   TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473);
 #endif
 
+#ifdef TEST_FLOAT
+  TEST_f_f (cos, -0X1.0E8F16P+18, -0X1.3D07EEP-16);
+#endif
+
   END (cos);
 }
 
@@ -2063,6 +2100,14 @@ cosh_test (void)
 
   TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L);
 
+#ifndef TEST_LDOUBLE
+  TEST_f_f (cosh, 0X1.FE3FFFFFFFFFCP+0, 0X1.DE6615F64417EP+1);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (cosh, 0X1.C12A5P-5, 0X1.00628AP+0);
+#endif
+
   END (cosh);
 }
 
@@ -2558,6 +2603,14 @@ exp_test (void)
   TEST_f_f (exp, 1000.0L, 0.197007111401704699388887935224332313e435L);
 #endif
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (exp, -0X1.624A618459B9P+9, 0X0.D4D48C958276DP-1022);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (exp, -0X1.9D1DA2P+6, 0X1P-149);
+#endif
+
   END (exp);
 }
 
@@ -2585,6 +2638,14 @@ exp10_test (void)
   TEST_f_f (exp10, -1e6, 0);
   TEST_f_f (exp10, 0.75L, 5.62341325190349080394951039776481231L);
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (exp10, -0X1.434E6420F4375P+8, 0X0.0000000000001P-1022);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (exp10, -0X1.66D3EAP+5, 0X1P-149);
+#endif
+
   END (exp10);
 }
 
@@ -2612,6 +2673,14 @@ exp2_test (void)
   TEST_f_f (exp2, -1e6, 0);
   TEST_f_f (exp2, 0.75L, 1.68179283050742908606225095246642979L);
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (exp2, -0X1.0C80000000001P+10, 0X0.0000000000001P-1022);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (exp2, -0X1.2A0002P+7, 0X1P-149);
+#endif
+
   END (exp2);
 }
 
@@ -2830,6 +2899,10 @@ fma_test (void)
 
   TEST_fff_f (fma, 1.25L, 0.75L, 0.0625L, 1.0L);
 
+#ifdef TEST_FLOAT
+  TEST_fff_f (fma, -0X1.DDDDEP-22, -0X1.B9999EP-23, -0X1P-20, -0X1.FFFFFCP-21);
+#endif
+
   END (fma);
 }
 
@@ -3056,6 +3129,14 @@ hypot_test (void)
 
   TEST_ff_f (hypot, 0.75L, 1.25L, 1.45773797371132511771853821938639577L);
 
+#ifndef TEST_LDOUBLE
+  TEST_ff_f (hypot, -0X1.DBCBFB65DEFC8P-1, 0X1.129F8200AB11AP+0, 0X1.6B562B6216D6BP+0);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_ff_f (hypot, 0X1.627626P-11, 0X1.D89D88P-11, 0X1.276274P-10);
+#endif
+
   END (hypot);
 }
 
@@ -3268,6 +3349,10 @@ ldexp_test (void)
 
   /* ldexp (x, 0) == x.  */
   TEST_ff_f (ldexp, 1.0L, 0L, 1.0L);
+
+#ifdef TEST_FLOAT
+  TEST_ff_f (ldexp, -0X1.555554P-2, -126, -0X1.55555P-128);
+#endif
 }
 
 
@@ -4039,6 +4124,14 @@ log_test (void)
   TEST_f_f (log, 10, M_LN10l);
   TEST_f_f (log, 0.75L, -0.287682072451780927439219005993827432L);
 
+#ifndef TEST_LDOUBLE
+  TEST_f_f (log, 0X1.19999973CF875P+0, 0X1.8663F56E1AA81P-4);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (log, 0X1.FFFF9P-1, -0X1.C00032P-19);
+#endif
+
   END (log);
 }
 
@@ -4072,6 +4165,14 @@ log10_test (void)
   TEST_f_f (log10, M_El, M_LOG10El);
   TEST_f_f (log10, 0.75L, -0.124938736608299953132449886193870744L);
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (log10, 0X1.118C6318C6319P+0, 0X1.D7C3996E6179DP-6);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (log10, 0X1.7028E2P-3, -0X1.7D9722P-1);
+#endif
+
   END (log10);
 }
 
@@ -4140,6 +4241,14 @@ log2_test (void)
   TEST_f_f (log2, 256.0, 8);
   TEST_f_f (log2, 0.75L, -.415037499278843818546261056052183492L);
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (log2, 0X1.15AD6B5AD4B5AP+0, 0X1.E0525E2FD5D97P-4);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (log2, 0X1.40F572P-2, -0X1.AC7B44P+0);
+#endif
+
   END (log2);
 }
 
@@ -4644,6 +4753,10 @@ pow_test (void)
   TEST_ff_f (pow, -7.49321e+133, -9.80818e+16, 0);
 #endif
 
+#ifdef TEST_DOUBLE
+  TEST_ff_f (pow, 0X1.FF460EB5F2376P-1, 0X1.BA7CBEB2690A8P+18, 0X1.FCB1E470B18DBP-929);
+#endif
+
   END (pow);
 }
 
@@ -5263,6 +5376,10 @@ scalbn_test (void)
 
   TEST_fi_f (scalbn, 1, 0L, 1);
 
+#ifdef TEST_FLOAT
+  TEST_fi_f (scalbn, -0X1.555554P-2, -126, -0X1.55555P-128);
+#endif
+
   END (scalbn);
 }
 
@@ -5285,6 +5402,10 @@ scalbln_test (void)
 
   TEST_fl_f (scalbln, 1, 0L, 1);
 
+#ifdef TEST_FLOAT
+  TEST_fl_f (scalbln, -0X1.555554P-2, -126, -0X1.55555P-128);
+#endif
+
   END (scalbn);
 }
 
@@ -5336,6 +5457,10 @@ sin_test (void)
   TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868);
 #endif
 
+#ifdef TEST_FLOAT
+  TEST_f_f (sin, 0X1.2A9F84P+18, -0X1.F43B3CP-16);
+#endif
+
   END (sin);
 
 }
@@ -5371,6 +5496,10 @@ sincos_test (void)
   TEST_extra (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473);
 #endif
 
+#ifdef TEST_FLOAT
+  TEST_extra (sincos, 0X1.FFFC08P+17, 0X1.FFFFF8P-1, -0X1.68C8B2P-11);
+#endif
+
   END (sincos);
 }
 
@@ -5396,6 +5525,14 @@ sinh_test (void)
   TEST_f_f (sinh, 0.75L, 0.822316731935829980703661634446913849L);
   TEST_f_f (sinh, 0x8p-32L, 1.86264514923095703232705808926175479e-9L);
 
+#ifndef TEST_LDOUBLE
+  TEST_f_f (sinh, -0X1.FFFFFFF0FFFFFP+1, -0X1.B4A38003CF6F3P+4);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (sinh, 0X1.FBE4BP-1, 0X1.29B154P+0);
+#endif
+
   END (sinh);
 }
 
@@ -5461,6 +5598,14 @@ tan_test (void)
   TEST_f_f (tan, M_PI_4l, 1);
   TEST_f_f (tan, 0.75L, 0.931596459944072461165202756573936428L);
 
+#ifdef TEST_DOUBLE
+  TEST_f_f (tan, 0X1.124252853ECF1P+7, -0X1.F7A6F84FD21CDP+0);
+#endif
+
+#ifdef TEST_FLOAT
+  TEST_f_f (tan, 0X1.924244P+18, 0X1.14A85EP-13);
+#endif
+
   END (tan);
 }
 
--- libc/sysdeps/i386/fpu/libm-test-ulps.236p	2006-04-14 06:52:58.000000000 -0700
+++ libc/sysdeps/i386/fpu/libm-test-ulps	2006-04-14 14:25:43.000000000 -0700
@@ -21,6 +21,11 @@ Test "asinh (-0X1.0A1A86A1A87P-1) == -0X
 float: 1
 ifloat: 1
 
+# atan2
+Test "atan2 (0X1.FFFFFFFFFFFFFP-1022, 0X1P+1) == 0X0.FFFFFFFFFFFFFP-1022":
+double: 2
+idouble: 2
+
 # atanh
 Test "atanh (0.75) == 0.972955074527656652552676371721589865":
 ildouble: 2
@@ -424,6 +429,8 @@ Test "hypot (-0.7, -12.4) == 12.41974234
 float: 1
 Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
+Test "hypot (-0X1.DBCBFB65DEFC8P-1, 0X1.129F8200AB11AP+0) == 0X1.6B562B6216D6BP+0":
+idouble: 1
 Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
@@ -432,6 +439,8 @@ Test "hypot (0.7, -12.4) == 12.419742348
 float: 1
 Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
+Test "hypot (0X1.627626P-11, 0X1.D89D88P-11) == 0X1.276274P-10":
+ifloat: 1
 Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
@@ -577,6 +586,11 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 
+# log
+Test "log (0X1.19999973CF875P+0) == 0X1.8663F56E1AA81P-4":
+float: 4
+ifloat: 4
+
 # log10
 Test "log10 (0.75) == -0.124938736608299953132449886193870744":
 ildouble: 1
@@ -587,6 +601,11 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+# pow
+Test "pow (0X1.FF460EB5F2376P-1, 0X1.BA7CBEB2690A8P+18) == 0X1.FCB1E470B18DBP-929":
+double: 1
+idouble: 1
+
 # sincos
 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
 double: 1
@@ -603,6 +622,8 @@ ldouble: 1
 Test "sinh (0.75) == 0.822316731935829980703661634446913849":
 double: 1
 ildouble: 1
+Test "sinh (0X1.FBE4BP-1) == 0X1.29B154P+0":
+float: 1
 
 # tgamma
 Test "tgamma (-0.5) == -2 sqrt (pi)":
@@ -754,6 +775,10 @@ Function: "asinh":
 float: 1
 ifloat: 1
 
+Function: "atan2":
+double: 2
+idouble: 2
+
 Function: "atanh":
 ildouble: 2
 ldouble: 1
@@ -972,6 +997,8 @@ ldouble: 1
 
 Function: "hypot":
 float: 1
+idouble: 1
+ifloat: 1
 
 Function: "j0":
 double: 2
@@ -1004,8 +1031,8 @@ ildouble: 1
 ldouble: 1
 
 Function: "log":
-float: 1
-ifloat: 1
+float: 4
+ifloat: 4
 
 Function: "log10":
 float: 1
@@ -1013,6 +1040,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "pow":
+double: 1
+idouble: 1
+
 Function: "sincos":
 double: 1
 float: 1
@@ -1023,6 +1054,7 @@ ldouble: 1
 
 Function: "sinh":
 double: 1
+float: 1
 ildouble: 1
 
 Function: "tan":
--- libc/sysdeps/ia64/fpu/libm-test-ulps.236p	2006-04-14 06:46:15.000000000 -0700
+++ libc/sysdeps/ia64/fpu/libm-test-ulps	2006-04-14 14:03:30.000000000 -0700
@@ -215,6 +215,11 @@ float: 1
 idouble: 2
 ifloat: 1
 
+# cosh
+Test "cosh (0X1.C12A5P-5) == 0X1.00628AP+0":
+float: 1
+ifloat: 1
+
 # cpow
 Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
 float: 1
@@ -521,6 +526,11 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 
+# log
+Test "log (0X1.19999973CF875P+0) == 0X1.8663F56E1AA81P-4":
+float: 4
+ifloat: 4
+
 # log10
 Test "log10 (e) == log10(e)":
 float: 1
@@ -543,6 +553,11 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+# sinh
+Test "sinh (0X1.FBE4BP-1) == 0X1.29B154P+0":
+float: 1
+ifloat: 1
+
 # tgamma
 Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
 double: 1
@@ -813,6 +828,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "cosh":
+float: 1
+ifloat: 1
+
 Function: Real part of "cpow":
 double: 2
 float: 5
@@ -924,8 +943,8 @@ ildouble: 1
 ldouble: 1
 
 Function: "log":
-float: 1
-ifloat: 1
+float: 4
+ifloat: 4
 
 Function: "log10":
 float: 1
@@ -941,6 +960,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "sinh":
+float: 1
+ifloat: 1
+
 Function: "tan":
 double: 1
 idouble: 1
--- libc/sysdeps/x86_64/fpu/libm-test-ulps.236p	2006-04-14 06:26:49.000000000 -0700
+++ libc/sysdeps/x86_64/fpu/libm-test-ulps	2006-04-14 14:26:08.000000000 -0700
@@ -21,6 +21,9 @@ ldouble: 1
 Test "asin (0.75) == 0.848062078981481008052944338998418080":
 ildouble: 1
 ldouble: 1
+Test "asin (0X1.00381EP-1) == 0X1.0C55F2P-1":
+float: 1
+ifloat: 1
 Test "asin (1.0) == pi/2":
 ildouble: 1
 ldouble: 1
@@ -42,6 +45,12 @@ ifloat: 1
 Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
 float: 1
 ifloat: 1
+Test "atan2 (0X1.FFFFF6P-4, 0X1.FFFF88P+0) == 0X1.FF562AP-5":
+float: 1
+ifloat: 1
+Test "atan2 (0X1.FFFFFFFFFFFFFP-1022, 0X1P+1) == 0X0.FFFFFFFFFFFFFP-1022":
+double: 2
+idouble: 2
 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
 float: 1
 ifloat: 1
@@ -498,6 +507,9 @@ ifloat: 1
 Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
+Test "hypot (0X1.627626P-11, 0X1.D89D88P-11) == 0X1.276274P-10":
+float: 1
+ifloat: 1
 Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
@@ -670,6 +682,11 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 
+# log
+Test "log (0X1.19999973CF875P+0) == 0X1.8663F56E1AA81P-4":
+float: 4
+ifloat: 4
+
 # log10
 Test "log10 (0.75) == -0.124938736608299953132449886193870744":
 double: 1
@@ -678,6 +695,12 @@ idouble: 1
 ifloat: 2
 ildouble: 1
 ldouble: 1
+Test "log10 (0X1.118C6318C6319P+0) == 0X1.D7C3996E6179DP-6":
+double: 1
+idouble: 1
+Test "log10 (0X1.7028E2P-3) == -0X1.7D9722P-1":
+float: 1
+ifloat: 1
 Test "log10 (e) == log10(e)":
 float: 1
 ifloat: 1
@@ -710,6 +733,11 @@ Test "sincos (pi/6, &sin_res, &cos_res) 
 float: 1
 ifloat: 1
 
+# sinh
+Test "sinh (-0X1.FFFFFFF0FFFFFP+1) == -0X1.B4A38003CF6F3P+4":
+float: 1
+ifloat: 1
+
 # tanh
 Test "tanh (-0X1.D95F582C6D0B6P-3) == -0X1.D11E67E06147DP-3":
 double: 2
@@ -905,6 +933,8 @@ idouble: 2
 ifloat: 2
 
 Function: "asin":
+float: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -915,7 +945,9 @@ idouble: 2
 ifloat: 2
 
 Function: "atan2":
+double: 2
 float: 1
+idouble: 2
 ifloat: 1
 
 Function: "atanh":
@@ -1176,6 +1208,10 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 
+Function: "log":
+float: 4
+ifloat: 4
+
 Function: "log10":
 double: 1
 float: 2
@@ -1198,6 +1234,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "sinh":
+float: 1
+ifloat: 1
+
 Function: "tan":
 double: 1
 idouble: 1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]