Heinrich Bohne created NUMBERS-132:
--------------------------------------
Summary: ArithmeticUtils.gcd(int, int) can be simplified by
performing the gcd algorithm on negative numbers
Key: NUMBERS-132
URL: https://issues.apache.org/jira/browse/NUMBERS-132
Project: Commons Numbers
Issue Type: Improvement
Components: core
Affects Versions: 1.0
Reporter: Heinrich Bohne
The method {{ArithmeticUtils.gcd(int, int)}} currently handles the special case
of the non-negatable {{Integer.MIN_VALUE}} by converting the arguments to
{{long}}s if one of them is {{Integer.MIN_VALUE}} and performing two
iterations of the regular euclidean algorithm before handing the resulting
values over to a helper method that performs the binary gcd algorithm.
However, the tactic used by {{gcd(long, long)}} is much more elegant: It just
converts positive arguments to their negative counterparts, thereby avoiding
the risk of overflow completely without having to make exceptions for special
cases and resorting to other data types.
The method {{gcd(int, int)}} would likely be much more compact if it also were
to apply this technique.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)