digitalmars.D.bugs - [Issue 5928] New: bigint modulo problem
- d-bugmail puremagic.com (37/37) May 05 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5928
- d-bugmail puremagic.com (13/13) May 10 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5928
http://d.puremagic.com/issues/show_bug.cgi?id=5928
Summary: bigint modulo problem
Product: D
Version: D2
Platform: All
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody puremagic.com
ReportedBy: dpx.infinity gmail.com
---
Code
foreach (long n; -5 .. 6) {
writefln("%2s %% %2s = %2s, %2s, %2s, %2s", n, 5, n % 5, n % BigInt(5),
BigInt(n) % 5, BigInt(n) % BigInt(5));
}
outputs (note the second result column)
-5 % 5 = 0, 1, 0, 0
-4 % 5 = -4, 2, -4, -4
-3 % 5 = -3, 3, -3, -3
-2 % 5 = -2, 4, -2, -2
-1 % 5 = -1, 0, -1, -1
0 % 5 = 0, 0, 0, 0
1 % 5 = 1, 1, 1, 1
2 % 5 = 2, 2, 2, 2
3 % 5 = 3, 3, 3, 3
4 % 5 = 4, 4, 4, 4
5 % 5 = 0, 0, 0, 0
Clearly, that's not like the modulo should work on negative numbers - there is
no way that 0 could be the remainder of the divison of -1 by 5. There is
similar behavior on other modulos.
I tested this using DMD 2.052 on x86 and x86_64 linux systems.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 05 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5928
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |clugdbug yahoo.com.au
Resolution| |FIXED
This one is critical, so it's included in 2.053.
https://github.com/D-Programming-Language/phobos/commit/cca0bc8971bee225f13c67541bbdd3e5c7dcffe6
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 10 2011








d-bugmail puremagic.com