Updated Fraction/BigFraction signum()

Use the method from BigInteger.divide(BigInteger).

The sign of the result is equal to a.signum() * b.signum() for a/b.

This exploits the fact that BigInteger explicitly stores the signum as a
field thus removing the need for signed comparators in the
BigFraction.signum() method.

For Fraction the use of Integer.signum(int) for numerator and
denominator is the equivalent operation. This is also branchless due to
use of bit manipulation in Integer.signum to compute the sign.
2 files changed
tree: ed314561f79eb1fb827b1814611af20141f0c4c0
  1. .gitattributes
  2. .gitignore
  3. .travis.yml
  7. README.md
  9. commons-numbers-angle/
  10. commons-numbers-arrays/
  11. commons-numbers-combinatorics/
  12. commons-numbers-complex-streams/
  13. commons-numbers-complex/
  14. commons-numbers-core/
  15. commons-numbers-examples/
  16. commons-numbers-field/
  17. commons-numbers-fraction/
  18. commons-numbers-gamma/
  19. commons-numbers-primes/
  20. commons-numbers-quaternion/
  21. commons-numbers-rootfinder/
  22. dist-archive/
  23. doc/
  24. pom.xml
  25. siteMods/
  26. src/

Apache Commons Numbers

Build Status Coverage Status Maven Central

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.

Where can I get the latest release?

You can download source and binaries from our download page.

Alternatively you can pull it from the central Maven repositories:



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:

  • No tabs! Please use spaces for indentation.
  • Respect the code style.
  • Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
  • Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running 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.

Additional Resources