aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-03-05 15:05:20 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-03-05 15:05:20 +0000
commit2f0a0f44274808faa6bb55dd28b9ddbda6380f2a (patch)
tree3cf87b28e0ed5a85214db8ef6a9ed08e21f2e5e1 /ChangeLog
parente6b6a85705be16373fb3f78ef998edc62150499c (diff)
downloadglibc-2f0a0f44274808faa6bb55dd28b9ddbda6380f2a.zip
glibc-2f0a0f44274808faa6bb55dd28b9ddbda6380f2a.tar.gz
glibc-2f0a0f44274808faa6bb55dd28b9ddbda6380f2a.tar.bz2
Automatically check sanity of ulps from libm tests.
This patch makes libm-test.inc apply sanity checks to ulps values resulting from tests, or found in libm-test-ulps files, to avoid the need for manual checking/editing of new ulps for cases that are excessively large or involve functions that should not have any ulps. For IBM long double, errors must be at most 14ulp (the largest currently checked-in value), or at most 3ulp (the documented error bound for division) in the case of exactly-determined functions; for other formats, the limits are 9ulp (also the largest currently checked-in value) and 0ulp. Limits from ulps files are saturated to those bounds, and regen-ulps will ignore any errors outside those bounds. (Thus if, say, you have an architecture-specific problem with fma, the tests can still be XFAILed in auto-libm-test-in, but errors outside the permitted range can no longer be listed in libm-test-ulps.) Tested x86_64. * math/libm-test.inc (max_valid_error): New variable. (init_max_error): Take new argument specifying whether function results are exactly determined. Set max_valid_error and bound other variables for errors based on this argument. (set_max_error): Do not record results above max_valid_error. (check_float_internal): Only accept errors of up to 0.5ulps if also at most max_valid_error. (START): Take new argument EXACT and pass it to init_max_error. (acos_test): Update call to START. (acos_test_tonearest): Likewise. (acos_test_towardzero): Likewise. (acos_test_downward): Likewise. (acos_test_upward): Likewise. (acosh_test): Likewise. (asin_test): Likewise. (asin_test_tonearest): Likewise. (asin_test_towardzero): Likewise. (asin_test_downward): Likewise. (asin_test_upward): Likewise. (asinh_test): Likewise. (atan_test): Likewise. (atanh_test): Likewise. (atan2_test): Likewise. (cabs_test): Likewise. (cacos_test): Likewise. (cacosh_test): Likewise. (carg_test): Likewise. (casin_test): Likewise. (casinh_test): Likewise. (catan_test): Likewise. (catanh_test): Likewise. (cbrt_test): Likewise. (ccos_test): Likewise. (ccosh_test): Likewise. (ceil_test): Likewise. (cexp_test): Likewise. (cimag_test): Likewise. (clog_test): Likewise. (clog10_test): Likewise. (conj_test): Likewise. (copysign_test): Likewise. (cos_test): Likewise. (cos_test_tonearest): Likewise. (cos_test_towardzero): Likewise. (cos_test_downward): Likewise. (cos_test_upward): Likewise. (cosh_test): Likewise. (cosh_test_tonearest): Likewise. (cosh_test_towardzero): Likewise. (cosh_test_downward): Likewise. (cosh_test_upward): Likewise. (cpow_test): Likewise. (cproj_test): Likewise. (creal_test): Likewise. (csin_test): Likewise. (csinh_test): Likewise. (csqrt_test): Likewise. (ctan_test): Likewise. (ctan_test_tonearest): Likewise. (ctan_test_towardzero): Likewise. (ctan_test_downward): Likewise. (ctan_test_upward): Likewise. (ctanh_test): Likewise. (ctanh_test_tonearest): Likewise. (ctanh_test_towardzero): Likewise. (ctanh_test_downward): Likewise. (ctanh_test_upward): Likewise. (erf_test): Likewise. (erfc_test): Likewise. (exp_test): Likewise. (exp_test_tonearest): Likewise. (exp_test_towardzero): Likewise. (exp_test_downward): Likewise. (exp_test_upward): Likewise. (exp10_test): Likewise. (exp10_test_tonearest): Likewise. (exp10_test_towardzero): Likewise. (exp10_test_downward): Likewise. (exp10_test_upward): Likewise. (pow10_test): Likewise. (exp2_test): Likewise. (expm1_test): Likewise. (expm1_test_tonearest): Likewise. (expm1_test_towardzero): Likewise. (expm1_test_downward): Likewise. (expm1_test_upward): Likewise. (fabs_test): Likewise. (fdim_test): Likewise. (floor_test): Likewise. (fma_test): Likewise. (fma_test_towardzero): Likewise. (fma_test_downward): Likewise. (fma_test_upward): Likewise. (fmax_test): Likewise. (fmin_test): Likewise. (fmod_test): Likewise. (fpclassify_test): Likewise. (frexp_test): Likewise. (hypot_test): Likewise. (ilogb_test): Likewise. (isfinite_test): Likewise. (finite_test): Likewise. (isgreater_test): Likewise. (isgreaterequal_test): Likewise. (isinf_test): Likewise. (isless_test): Likewise. (islessequal_test): Likewise. (islessgreater_test): Likewise. (isnan_test): Likewise. (isnormal_test): Likewise. (issignaling_test): Likewise. (isunordered_test): Likewise. (j0_test): Likewise. (j1_test): Likewise. (jn_test): Likewise. (ldexp_test): Likewise. (lgamma_test): Likewise. (gamma_test): Likewise. (lrint_test): Likewise. (lrint_test_tonearest): Likewise. (lrint_test_towardzero): Likewise. (lrint_test_downward): Likewise. (lrint_test_upward): Likewise. (llrint_test): Likewise. (llrint_test_tonearest): Likewise. (llrint_test_towardzero): Likewise. (llrint_test_downward): Likewise. (llrint_test_upward): Likewise. (log_test): Likewise. (log10_test): Likewise. (log1p_test): Likewise. (log2_test): Likewise. (logb_test): Likewise. (logb_test_downward): Likewise. (lround_test): Likewise. (llround_test): Likewise. (modf_test): Likewise. (nearbyint_test): Likewise. (nextafter_test): Likewise. (nexttoward_test): Likewise. (pow_test): Likewise. (pow_test_tonearest): Likewise. (pow_test_towardzero): Likewise. (pow_test_downward): Likewise. (pow_test_upward): Likewise. (remainder_test): Likewise. (drem_test): Likewise. (remainder_test_tonearest): Likewise. (drem_test_tonearest): Likewise. (remainder_test_towardzero): Likewise. (drem_test_towardzero): Likewise. (remainder_test_downward): Likewise. (drem_test_downward): Likewise. (remainder_test_upward): Likewise. (drem_test_upward): Likewise. (remquo_test): Likewise. (rint_test): Likewise. (rint_test_tonearest): Likewise. (rint_test_towardzero): Likewise. (rint_test_downward): Likewise. (rint_test_upward): Likewise. (round_test): Likewise. (scalb_test): Likewise. (scalbn_test): Likewise. (scalbln_test): Likewise. (signbit_test): Likewise. (sin_test): Likewise. (sin_test_tonearest): Likewise. (sin_test_towardzero): Likewise. (sin_test_downward): Likewise. (sin_test_upward): Likewise. (sincos_test): Likewise. (sinh_test): Likewise. (sinh_test_tonearest): Likewise. (sinh_test_towardzero): Likewise. (sinh_test_downward): Likewise. (sinh_test_upward): Likewise. (sqrt_test): Likewise. (sqrt_test_tonearest): Likewise. (sqrt_test_towardzero): Likewise. (sqrt_test_downward): Likewise. (sqrt_test_upward): Likewise. (tan_test): Likewise. (tan_test_tonearest): Likewise. (tan_test_towardzero): Likewise. (tan_test_downward): Likewise. (tan_test_upward): Likewise. (tanh_test): Likewise. (tgamma_test): Likewise. (trunc_test): Likewise. (y0_test): Likewise. (y1_test): Likewise. (yn_test): Likewise. (significand_test): Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog195
1 files changed, 195 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 82303d5..b595d64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,200 @@
2014-03-05 Joseph Myers <joseph@codesourcery.com>
+ * math/libm-test.inc (max_valid_error): New variable.
+ (init_max_error): Take new argument specifying whether function
+ results are exactly determined. Set max_valid_error and bound
+ other variables for errors based on this argument.
+ (set_max_error): Do not record results above max_valid_error.
+ (check_float_internal): Only accept errors of up to 0.5ulps if
+ also at most max_valid_error.
+ (START): Take new argument EXACT and pass it to init_max_error.
+ (acos_test): Update call to START.
+ (acos_test_tonearest): Likewise.
+ (acos_test_towardzero): Likewise.
+ (acos_test_downward): Likewise.
+ (acos_test_upward): Likewise.
+ (acosh_test): Likewise.
+ (asin_test): Likewise.
+ (asin_test_tonearest): Likewise.
+ (asin_test_towardzero): Likewise.
+ (asin_test_downward): Likewise.
+ (asin_test_upward): Likewise.
+ (asinh_test): Likewise.
+ (atan_test): Likewise.
+ (atanh_test): Likewise.
+ (atan2_test): Likewise.
+ (cabs_test): Likewise.
+ (cacos_test): Likewise.
+ (cacosh_test): Likewise.
+ (carg_test): Likewise.
+ (casin_test): Likewise.
+ (casinh_test): Likewise.
+ (catan_test): Likewise.
+ (catanh_test): Likewise.
+ (cbrt_test): Likewise.
+ (ccos_test): Likewise.
+ (ccosh_test): Likewise.
+ (ceil_test): Likewise.
+ (cexp_test): Likewise.
+ (cimag_test): Likewise.
+ (clog_test): Likewise.
+ (clog10_test): Likewise.
+ (conj_test): Likewise.
+ (copysign_test): Likewise.
+ (cos_test): Likewise.
+ (cos_test_tonearest): Likewise.
+ (cos_test_towardzero): Likewise.
+ (cos_test_downward): Likewise.
+ (cos_test_upward): Likewise.
+ (cosh_test): Likewise.
+ (cosh_test_tonearest): Likewise.
+ (cosh_test_towardzero): Likewise.
+ (cosh_test_downward): Likewise.
+ (cosh_test_upward): Likewise.
+ (cpow_test): Likewise.
+ (cproj_test): Likewise.
+ (creal_test): Likewise.
+ (csin_test): Likewise.
+ (csinh_test): Likewise.
+ (csqrt_test): Likewise.
+ (ctan_test): Likewise.
+ (ctan_test_tonearest): Likewise.
+ (ctan_test_towardzero): Likewise.
+ (ctan_test_downward): Likewise.
+ (ctan_test_upward): Likewise.
+ (ctanh_test): Likewise.
+ (ctanh_test_tonearest): Likewise.
+ (ctanh_test_towardzero): Likewise.
+ (ctanh_test_downward): Likewise.
+ (ctanh_test_upward): Likewise.
+ (erf_test): Likewise.
+ (erfc_test): Likewise.
+ (exp_test): Likewise.
+ (exp_test_tonearest): Likewise.
+ (exp_test_towardzero): Likewise.
+ (exp_test_downward): Likewise.
+ (exp_test_upward): Likewise.
+ (exp10_test): Likewise.
+ (exp10_test_tonearest): Likewise.
+ (exp10_test_towardzero): Likewise.
+ (exp10_test_downward): Likewise.
+ (exp10_test_upward): Likewise.
+ (pow10_test): Likewise.
+ (exp2_test): Likewise.
+ (expm1_test): Likewise.
+ (expm1_test_tonearest): Likewise.
+ (expm1_test_towardzero): Likewise.
+ (expm1_test_downward): Likewise.
+ (expm1_test_upward): Likewise.
+ (fabs_test): Likewise.
+ (fdim_test): Likewise.
+ (floor_test): Likewise.
+ (fma_test): Likewise.
+ (fma_test_towardzero): Likewise.
+ (fma_test_downward): Likewise.
+ (fma_test_upward): Likewise.
+ (fmax_test): Likewise.
+ (fmin_test): Likewise.
+ (fmod_test): Likewise.
+ (fpclassify_test): Likewise.
+ (frexp_test): Likewise.
+ (hypot_test): Likewise.
+ (ilogb_test): Likewise.
+ (isfinite_test): Likewise.
+ (finite_test): Likewise.
+ (isgreater_test): Likewise.
+ (isgreaterequal_test): Likewise.
+ (isinf_test): Likewise.
+ (isless_test): Likewise.
+ (islessequal_test): Likewise.
+ (islessgreater_test): Likewise.
+ (isnan_test): Likewise.
+ (isnormal_test): Likewise.
+ (issignaling_test): Likewise.
+ (isunordered_test): Likewise.
+ (j0_test): Likewise.
+ (j1_test): Likewise.
+ (jn_test): Likewise.
+ (ldexp_test): Likewise.
+ (lgamma_test): Likewise.
+ (gamma_test): Likewise.
+ (lrint_test): Likewise.
+ (lrint_test_tonearest): Likewise.
+ (lrint_test_towardzero): Likewise.
+ (lrint_test_downward): Likewise.
+ (lrint_test_upward): Likewise.
+ (llrint_test): Likewise.
+ (llrint_test_tonearest): Likewise.
+ (llrint_test_towardzero): Likewise.
+ (llrint_test_downward): Likewise.
+ (llrint_test_upward): Likewise.
+ (log_test): Likewise.
+ (log10_test): Likewise.
+ (log1p_test): Likewise.
+ (log2_test): Likewise.
+ (logb_test): Likewise.
+ (logb_test_downward): Likewise.
+ (lround_test): Likewise.
+ (llround_test): Likewise.
+ (modf_test): Likewise.
+ (nearbyint_test): Likewise.
+ (nextafter_test): Likewise.
+ (nexttoward_test): Likewise.
+ (pow_test): Likewise.
+ (pow_test_tonearest): Likewise.
+ (pow_test_towardzero): Likewise.
+ (pow_test_downward): Likewise.
+ (pow_test_upward): Likewise.
+ (remainder_test): Likewise.
+ (drem_test): Likewise.
+ (remainder_test_tonearest): Likewise.
+ (drem_test_tonearest): Likewise.
+ (remainder_test_towardzero): Likewise.
+ (drem_test_towardzero): Likewise.
+ (remainder_test_downward): Likewise.
+ (drem_test_downward): Likewise.
+ (remainder_test_upward): Likewise.
+ (drem_test_upward): Likewise.
+ (remquo_test): Likewise.
+ (rint_test): Likewise.
+ (rint_test_tonearest): Likewise.
+ (rint_test_towardzero): Likewise.
+ (rint_test_downward): Likewise.
+ (rint_test_upward): Likewise.
+ (round_test): Likewise.
+ (scalb_test): Likewise.
+ (scalbn_test): Likewise.
+ (scalbln_test): Likewise.
+ (signbit_test): Likewise.
+ (sin_test): Likewise.
+ (sin_test_tonearest): Likewise.
+ (sin_test_towardzero): Likewise.
+ (sin_test_downward): Likewise.
+ (sin_test_upward): Likewise.
+ (sincos_test): Likewise.
+ (sinh_test): Likewise.
+ (sinh_test_tonearest): Likewise.
+ (sinh_test_towardzero): Likewise.
+ (sinh_test_downward): Likewise.
+ (sinh_test_upward): Likewise.
+ (sqrt_test): Likewise.
+ (sqrt_test_tonearest): Likewise.
+ (sqrt_test_towardzero): Likewise.
+ (sqrt_test_downward): Likewise.
+ (sqrt_test_upward): Likewise.
+ (tan_test): Likewise.
+ (tan_test_tonearest): Likewise.
+ (tan_test_towardzero): Likewise.
+ (tan_test_downward): Likewise.
+ (tan_test_upward): Likewise.
+ (tanh_test): Likewise.
+ (tgamma_test): Likewise.
+ (trunc_test): Likewise.
+ (y0_test): Likewise.
+ (y1_test): Likewise.
+ (yn_test): Likewise.
+ (significand_test): Likewise.
+
* math/libm-test.inc (struct ulp_data): Don't refer to ulps for
individual tests in comment.
(libm-test-ulps.h): Don't refer to test_ulps in #include comment.