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)