You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Heinrich Bohne (JIRA)" <ji...@apache.org> on 2019/08/08 21:55:00 UTC
[jira] [Resolved] (NUMBERS-132) ArithmeticUtils.gcd(int, int) can
be simplified by performing the gcd algorithm on negative numbers
[ https://issues.apache.org/jira/browse/NUMBERS-132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Heinrich Bohne resolved NUMBERS-132.
------------------------------------
Resolution: Fixed
Fix Version/s: 1.0
> 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
> Priority: Minor
> Fix For: 1.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> 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)