commit | ae6a5e39b4e4c424959fbfdd9dc13aa05c3e3517 | [log] [tgz] |
---|---|---|
author | Alex Herbert <aherbert@apache.org> | Thu Apr 16 22:32:15 2020 +0100 |
committer | Alex Herbert <aherbert@apache.org> | Tue Apr 21 20:51:39 2020 +0100 |
tree | e26ee15fe2788fe5994c8120753f2ac9d73c10d3 | |
parent | 5daca57eea93e42323d35659c118aea43815f3cf [diff] |
NUMBERS-147: Fix conversion from double to support 2^31 The value 2^31 can be in the numerator or denominator. Previously the conversion from double supported up to Integer.MAX_VALUE which is 2^31-1. Adds common test cases for conversion from double with a max denominator. Changed the conversion from a double to use the absolute value and restore the sign at the end. The conversion is thus identical for positive or negative values. Throw an illegal argument exception if maxDenominator is zero. A zero invalidates the conversion from a double with a restricted denominator. Replace Math.abs with compareUnsigned. This is appropriate as the fraction p/q is always positive. Add test cases for overflow double conversions. Fix the fall-back to always use p1/q1 when either p2 or q2 overflow. Move the default max iterations to a constant. Validate epsilon and max iterations are positive.
The Apache Commons Numbers project provides number types and utilities.
More information can be found on the Apache Commons Numbers homepage. The Javadoc for each of the modules can be browsed:
Questions related to the usage of Apache Commons Numbers should be posted to the user mailing list.
You can download source and binaries from our download page.
Alternatively you can pull it from the central Maven repositories:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-numbers-parent</artifactId> <version>1.0-beta1</version> </dependency>
We accept Pull Requests via GitHub. The developer mailing list is the main channel of communication for contributors. There are some guidelines which will make applying PRs easier for us:
mvn clean test
.If you plan to contribute on a regular basis, please consider filing a contributor license agreement. You can learn more about contributing via GitHub in our contribution guidelines.
This code is under the Apache Licence v2.
See the NOTICE
file for required notices and attributions.
You like Apache Commons Numbers? Then donate back to the ASF to support the development.
#apache-commons
IRC channel on irc.freenode.org