Thread overview
[Issue 7102] std.numeric.gcd with BigInts too
Jun 18, 2016
Ivan Kazmenko
Apr 28, 2017
Jack Stouffer
June 18, 2016
https://issues.dlang.org/show_bug.cgi?id=7102

Ivan Kazmenko <gassa@mail.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gassa@mail.ru

--- Comment #4 from Ivan Kazmenko <gassa@mail.ru> ---
I'd say any polylogarithmic GCD algorithm would be better than none.  Euclid
(current) and Stein (binary) versions would be fine.

>From a user's perspective: when I need a casual GCD for BigInts (I just did)
and I find std.numeric throwing weird complaints at me, I can, realistically:

* take std.numeric version and hack the complaint away,

* write my own version of GCD.

Each of these is error-prone.  So, is the current situation really better than having a slow GCD right there in the library?  If people complain about speed then, it can be improved, but a specialization error like now, seriously?  "I have it, I know BigInt could be used with it, but I won't let you use it because - of all things - BigInt doesn't have a .min", that's just unfriendly. To have a base version working seems a step forward to me.

Ivan Kazmenko.

--
April 18, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

hsteoh@quickfur.ath.cx changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hsteoh@quickfur.ath.cx

--
April 18, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

--- Comment #5 from hsteoh@quickfur.ath.cx ---
To make matters worse, std.numeric.gcd has no sig constraints, so once you import std.numeric.gcd, you cannot even define a BigInt specialization of gcd in your own code without causing a conflict in the overload set. Unless you do a static import or any of the other ways of working around the symbol conflict.

--
April 26, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

hsteoh@quickfur.ath.cx changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #6 from hsteoh@quickfur.ath.cx ---
https://github.com/dlang/phobos/pull/5350

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

--- Comment #7 from github-bugzilla@puremagic.com ---
Commit pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/35bbd3611ee4a977f2bedf98e8b15160eb01fd11 Merge pull request #5350 from quickfur/issue7102a

Fix issue 7102: std.numeric.gcd overload that works with non-builtin types merged-on-behalf-of: Jack Stouffer <jack@jackstouffer.com>

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

Jack Stouffer <jack@jackstouffer.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
                 CC|                            |jack@jackstouffer.com
         Resolution|---                         |FIXED

--
June 17, 2017
https://issues.dlang.org/show_bug.cgi?id=7102

--- Comment #8 from github-bugzilla@puremagic.com ---
Commit pushed to stable at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/35bbd3611ee4a977f2bedf98e8b15160eb01fd11 Merge pull request #5350 from quickfur/issue7102a

--
January 05, 2018
https://issues.dlang.org/show_bug.cgi?id=7102

--- Comment #9 from github-bugzilla@puremagic.com ---
Commit pushed to dmd-cxx at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/35bbd3611ee4a977f2bedf98e8b15160eb01fd11 Merge pull request #5350 from quickfur/issue7102a

--