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

Reply via email to