[ https://issues.apache.org/jira/browse/MATH-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sebb updated MATH-494: ---------------------- Affects Version/s: 3.0 2.2 > FastMath atan2 does not agree with StrictMath for special cases > --------------------------------------------------------------- > > Key: MATH-494 > URL: https://issues.apache.org/jira/browse/MATH-494 > Project: Commons Math > Issue Type: Bug > Affects Versions: 2.2, 3.0 > Reporter: Sebb > Fix For: 2.2, 3.0 > > > FastMath atan2 does not agree with StrictMath for special cases. > There are two sign problems: > atan2(double -0.0, double -Infinity) expected -3.141592653589793 actual > 3.141592653589793 entries [1, 4] > atan2(double -0.0, double Infinity) expected -0.0 actual 0.0 entries [1, 5] > A lot of NaNs where there should be a valid return: > atan2(double -1.7976931348623157E308, double -1.7976931348623157E308) > expected -2.356194490192345 actual NaN entries [6, 6] > atan2(double -1.7976931348623157E308, double 1.7976931348623157E308) expected > -0.7853981633974483 actual NaN entries [6, 7] > atan2(double -1.7976931348623157E308, double -1.1102230246251565E-16) > expected -1.5707963267948968 actual NaN entries [6, 8] > atan2(double -1.7976931348623157E308, double 1.1102230246251565E-16) expected > -1.5707963267948966 actual NaN entries [6, 9] > atan2(double -1.7976931348623157E308, double -2.2250738585072014E-308) > expected -1.5707963267948968 actual NaN entries [6, 10] > atan2(double -1.7976931348623157E308, double 2.2250738585072014E-308) > expected -1.5707963267948966 actual NaN entries [6, 11] > atan2(double -1.7976931348623157E308, double -4.9E-324) expected > -1.5707963267948968 actual NaN entries [6, 12] > atan2(double -1.7976931348623157E308, double 4.9E-324) expected > -1.5707963267948966 actual NaN entries [6, 13] > atan2(double 1.7976931348623157E308, double -1.7976931348623157E308) expected > 2.356194490192345 actual NaN entries [7, 6] > atan2(double 1.7976931348623157E308, double 1.7976931348623157E308) expected > 0.7853981633974483 actual NaN entries [7, 7] > atan2(double 1.7976931348623157E308, double -1.1102230246251565E-16) expected > 1.5707963267948968 actual NaN entries [7, 8] > atan2(double 1.7976931348623157E308, double 1.1102230246251565E-16) expected > 1.5707963267948966 actual NaN entries [7, 9] > atan2(double 1.7976931348623157E308, double -2.2250738585072014E-308) > expected 1.5707963267948968 actual NaN entries [7, 10] > atan2(double 1.7976931348623157E308, double 2.2250738585072014E-308) expected > 1.5707963267948966 actual NaN entries [7, 11] > atan2(double 1.7976931348623157E308, double -4.9E-324) expected > 1.5707963267948968 actual NaN entries [7, 12] > atan2(double 1.7976931348623157E308, double 4.9E-324) expected > 1.5707963267948966 actual NaN entries [7, 13] > atan2(double -1.1102230246251565E-16, double -1.7976931348623157E308) > expected -3.141592653589793 actual NaN entries [8, 6] > atan2(double -1.1102230246251565E-16, double 1.7976931348623157E308) expected > -0.0 actual NaN entries [8, 7] > atan2(double -1.1102230246251565E-16, double -4.9E-324) expected > -1.5707963267948968 actual NaN entries [8, 12] > atan2(double -1.1102230246251565E-16, double 4.9E-324) expected > -1.5707963267948966 actual NaN entries [8, 13] > atan2(double 1.1102230246251565E-16, double -1.7976931348623157E308) expected > 3.141592653589793 actual NaN entries [9, 6] > atan2(double 1.1102230246251565E-16, double 1.7976931348623157E308) expected > 0.0 actual NaN entries [9, 7] > atan2(double 1.1102230246251565E-16, double -4.9E-324) expected > 1.5707963267948968 actual NaN entries [9, 12] > atan2(double 1.1102230246251565E-16, double 4.9E-324) expected > 1.5707963267948966 actual NaN entries [9, 13] > atan2(double -2.2250738585072014E-308, double -1.7976931348623157E308) > expected -3.141592653589793 actual NaN entries [10, 6] > atan2(double -2.2250738585072014E-308, double 1.7976931348623157E308) > expected -0.0 actual NaN entries [10, 7] > atan2(double 2.2250738585072014E-308, double -1.7976931348623157E308) > expected 3.141592653589793 actual NaN entries [11, 6] > atan2(double 2.2250738585072014E-308, double 1.7976931348623157E308) expected > 0.0 actual NaN entries [11, 7] > atan2(double -4.9E-324, double -1.7976931348623157E308) expected > -3.141592653589793 actual NaN entries [12, 6] > atan2(double -4.9E-324, double 1.7976931348623157E308) expected -0.0 actual > NaN entries [12, 7] > atan2(double 4.9E-324, double -1.7976931348623157E308) expected > 3.141592653589793 actual NaN entries [13, 6] > atan2(double 4.9E-324, double 1.7976931348623157E308) expected 0.0 actual NaN > entries [13, 7] > There are also some spurious errors, which are due to a bug in the test case > - expecting the values to be exactly the same as StrictMath > atan2(double 2.2250738585072014E-308, double -4.9E-324) expected > 1.570796326794897 actual 1.5707963267948968 entries [11, 12] > atan2(double -2.2250738585072014E-308, double -4.9E-324) expected > -1.570796326794897 actual -1.5707963267948968 entries [10, 12] > atan2(double 1.1102230246251565E-16, double -2.2250738585072014E-308) > expected 1.5707963267948968 actual 1.5707963267948966 entries [9, 10] > atan2(double -1.1102230246251565E-16, double -2.2250738585072014E-308) > expected -1.5707963267948968 actual -1.5707963267948966 entries [8, 10] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.