I've now fixed the reflection-based tests. Rather than ignoring results which are within one ULP of the expected value, these are treated as errors at present. If double or float numbers differ, these are now shown in hex, rather than floating-point as many of the routines use bit operations anyway.
The results are currently: double atan2(-1.7976931348623157E308, -1.1102230246251565E-16) expected bff921fb54442d19 actual bff921fb54442d18 entries [6, 8] double atan2(-1.7976931348623157E308, -2.2250738585072014E-308) expected bff921fb54442d19 actual bff921fb54442d18 entries [6, 10] double atan2(-1.7976931348623157E308, -4.9E-324) expected bff921fb54442d19 actual bff921fb54442d18 entries [6, 12] double atan2(1.7976931348623157E308, -1.1102230246251565E-16) expected 3ff921fb54442d19 actual 3ff921fb54442d18 entries [7, 8] double atan2(1.7976931348623157E308, -2.2250738585072014E-308) expected 3ff921fb54442d19 actual 3ff921fb54442d18 entries [7, 10] double atan2(1.7976931348623157E308, -4.9E-324) expected 3ff921fb54442d19 actual 3ff921fb54442d18 entries [7, 12] double atan2(-1.1102230246251565E-16, -2.2250738585072014E-308) expected bff921fb54442d19 actual bff921fb54442d18 entries [8, 10] double atan2(-1.1102230246251565E-16, -4.9E-324) expected bff921fb54442d19 actual bff921fb54442d18 entries [8, 12] double atan2(1.1102230246251565E-16, -2.2250738585072014E-308) expected 3ff921fb54442d19 actual 3ff921fb54442d18 entries [9, 10] double atan2(1.1102230246251565E-16, -4.9E-324) expected 3ff921fb54442d19 actual 3ff921fb54442d18 entries [9, 12] double atan2(-2.2250738585072014E-308, -4.9E-324) expected bff921fb54442d1a actual bff921fb54442d19 entries [10, 12] double atan2(2.2250738585072014E-308, -4.9E-324) expected 3ff921fb54442d1a actual 3ff921fb54442d19 entries [11, 12] double scalb(-1.7976931348623157E308, 2147483647) expected -Infinity actual -8.988465674311579E307 entries [6, 5] double scalb(1.7976931348623157E308, 2147483647) expected Infinity actual 8.988465674311579E307 entries [7, 5] double scalb(-1.1102230246251565E-16, 2147483647) expected -Infinity actual -5.551115123125783E-17 entries [8, 5] double scalb(1.1102230246251565E-16, 2147483647) expected Infinity actual 5.551115123125783E-17 entries [9, 5] double scalb(-2.2250738585072014E-308, 2147483647) expected -Infinity actual -0.0 entries [10, 5] double scalb(2.2250738585072014E-308, 2147483647) expected Infinity actual 0.0 entries [11, 5] float scalb(3.4028235E38, 2147483647) expected Infinity actual 1.7014117E38 entries [7, 5] float scalb(-3.4028235E38, 2147483647) expected -Infinity actual -1.7014117E38 entries [9, 5] double toRadians(-1.7976931348623157E308) expected ff91df46a2529d38 actual ff91df46a2529d39 entries [6] double toRadians(1.7976931348623157E308) expected 7f91df46a2529d38 actual 7f91df46a2529d39 entries [7] I think the atan2() and toRadians() differences are OK, because they are within one ULP, the values have the same sign, and are very small. I just need to work out how to suppress those safely. The scalb() differences may be genuine errors. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org