You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thundre (Created) (JIRA)" <ji...@apache.org> on 2012/02/12 17:12:59 UTC
[jira] [Created] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
---------------------------------------------------------------------------------
Key: MATH-744
URL: https://issues.apache.org/jira/browse/MATH-744
Project: Commons Math
Issue Type: Bug
Affects Versions: 2.2
Reporter: Thundre
Attachments: site.patch
The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Gilles (Resolved) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gilles resolved MATH-744.
-------------------------
Resolution: Fixed
Fix Version/s: 3.0
Fix committed in revision 1243912.
Added unit tests.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Fix For: 3.0
>
> Attachments: src.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Attachment: src.patch
Patch for fixes to BigFraction.doubleValue() and floatValue(), and junit tests.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch, src.patch, test.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Gilles (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206491#comment-13206491 ]
Gilles commented on MATH-744:
-----------------------------
Thanks for fixing this.
Would you mind adding a unit test that demonstrates the fix?
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Attachment: site.patch
Patch file for the fraction package.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206514#comment-13206514 ]
Thundre commented on MATH-744:
------------------------------
I don't have the test classes working in Eclipse, so I can't do it there. Here's a main method that demonstrates. (10^401+1)/(10^400) is just a smidgen more than 10.
public static void main(String args[]) {
double x = new BigFraction(BigInteger.TEN.pow(401).add(BigInteger.ONE),
BigInteger.TEN.pow(400)).doubleValue();
System.out.println(x);
System.exit(0);
}
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Attachment: test.patch
I figured out my problem with junit. Here's a test case.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch, test.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Attachment: (was: test.patch)
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: src.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Attachment: (was: site.patch)
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: src.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206520#comment-13206520 ]
Thundre commented on MATH-744:
------------------------------
I noticed that floatValue() has the same bug. Stand by for more patches.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch, test.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Gilles (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206532#comment-13206532 ]
Gilles commented on MATH-744:
-----------------------------
Sorry to be picky, but it is better to avoid clumping many tests in the same test function, especially if they check different things.
In this case, you could create a new test method, e.g. "testDoubleValueForLargeNumeratorAndDenominator".
Also, in addition to checking that the result is not NaN, you should check that the result is the expected value.
Thanks for your contribution.
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: src.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (MATH-744) BigFraction.doubleValue() returns
Double.NaN for large numerators or denominators
Posted by "Thundre (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thundre updated MATH-744:
-------------------------
Comment: was deleted
(was: I don't have the test classes working in Eclipse, so I can't do it there. Here's a main method that demonstrates. (10^401+1)/(10^400) is just a smidgen more than 10.
public static void main(String args[]) {
double x = new BigFraction(BigInteger.TEN.pow(401).add(BigInteger.ONE),
BigInteger.TEN.pow(400)).doubleValue();
System.out.println(x);
System.exit(0);
})
> BigFraction.doubleValue() returns Double.NaN for large numerators or denominators
> ---------------------------------------------------------------------------------
>
> Key: MATH-744
> URL: https://issues.apache.org/jira/browse/MATH-744
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Thundre
> Attachments: site.patch, test.patch
>
>
> The current implementation of doubleValue() divides numerator.doubleValue() / denominator.doubleValue(). BigInteger.doubleValue() fails for any number greater than Double.MAX_VALUE. So if the user has 308-digit numerator or denominator, the resulting quotient fails, even in cases where the result would be well inside Double's range.
> I have a patch to fix it, if I can figure out how to attach it here I will.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira