This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients akira, brg@gladman.plus.com, gladman, mark.dickinson, mrabarnett, scoder, steven.daprano, terry.reedy, vstinner, wolma
Date 2014-09-25.16:44:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1411663482.9.0.367326202791.issue22477@psf.upfronthosting.co.za>
In-reply-to
Content
> IMHO, the most straight forward way for a new gcd() function to work would
> be to always, predictably return a non-negative value.

Yes.  Any new gcd implementation (in the math module, for example) should definitely return the unique nonnegative gcd of its inputs.

In an effort to concentrate the discussion a bit, here's a specific
proposal, deliberately limited in scope:

1. Add a new (faster) math.gcd function for Python 3.5, taking two integral arguments, and returning the unique nonnegative greatest common divisor of those arguments.

2. Deprecate fractions.gcd in Python 3.5 (with a message suggesting that math.gcd should be used instead), but don't change its behaviour.  (The fractions module would likely be using math.gcd by this point.)

3. Remove fractions.gcd in Python 3.6.

I'd suggest that tangents about gcd of more than two arguments, gcd of rational / Decimal / float inputs, etc. be discussed elsewhere.  Those are all things that can be added later if there's a real use-case.
History
Date User Action Args
2014-09-25 16:44:42mark.dickinsonsetrecipients: + mark.dickinson, terry.reedy, scoder, vstinner, mrabarnett, steven.daprano, akira, wolma, gladman, brg@gladman.plus.com
2014-09-25 16:44:42mark.dickinsonsetmessageid: <1411663482.9.0.367326202791.issue22477@psf.upfronthosting.co.za>
2014-09-25 16:44:42mark.dickinsonlinkissue22477 messages
2014-09-25 16:44:42mark.dickinsoncreate