Commit graph

179 commits

Author SHA1 Message Date
Andrei Alexandrescu
e54288b6b7 Merge pull request #1231 from Safety0ff/master
Fix std.BigInt bug #9548 plus other new discovered bugs.
2013-05-25 23:36:32 -07:00
Robert BuRnEr Schadek
cab595ec0f bigint pure
the only exception is toString as it takes a delegate and this makes
things more tricky
2013-05-10 05:23:44 +02:00
Robert BuRnEr Schadek
0bf5632e80 Merge branch 'master' into bigintpure
Conflicts:
	std/bigint.d
2013-05-09 06:40:26 +02:00
Robert BuRnEr Schadek
a686647f54 bigint purity 2013-05-09 06:24:26 +02:00
safety0ff
202d182152 Fix std.BigInt bug #9548 plus other new discovered bugs. 2013-04-08 23:24:30 -04:00
safety0ff
8ce364b44f BigInt enhancement: add opCast!bool to BigInt (issue 4120) 2013-03-31 18:54:28 -04:00
safety0ff
835fca54e9 BigInt enhancement: make std.math.abs work with BigInt (issue 6486) 2013-03-31 18:54:15 -04:00
Andrej Mitrovic
7c616db71a Fixes Issue 8837 - BigInt needs better operator constraints. 2013-02-04 22:06:41 +01:00
H. S. Teoh
47c7ade97e Throw error upon division by zero.
Instead of trying to trigger an integer divide by zero, which seems to
get "optimized" out by the compiler.
2012-10-28 08:02:25 -07:00
Don Clugston
9881071c9d Fix example in BigInt docs
The example didn't compile.
2012-07-19 10:55:44 +02:00
Don Clugston
8af55597ac Fix typo 2012-07-12 09:21:32 +02:00
Don Clugston
5e7b33383a Fix issue 7973 BigInt %= long/ulong gives wrong value
Previous fix only worked for const; this fixes immutable too.
2012-07-11 18:14:17 +02:00
Andrei Alexandrescu
609aefacf6 Merge pull request #642 from donc/bigint7993div
Bigint7993div
2012-07-01 19:50:17 -07:00
Don Clugston
2ab19e80a9 8165 BigInt opAssign return value 2012-06-22 07:24:53 +02:00
Don Clugston
15c655f1b5 Fix issue 8164 BigInt from char[] too 2012-06-22 07:05:06 +02:00
Don Clugston
5da45b213e Fix issue 7973 BigInt %= long/ulong gives wrong value 2012-06-22 07:04:30 +02:00
Don Clugston
a79bb20ea7 Fix issue 7993 BigInt divide-by-1 error
Thanks to c.m.brandeburg for the fix.
2012-06-21 18:36:22 +02:00
Don Clugston
c5374753b2 Test case for 8022 2012-06-21 08:30:16 +02:00
Don Clugston
261889c656 Fix issue 8022 BigInt division bug (2) 2012-06-13 08:39:38 +02:00
Don Clugston
bd72ae7d36 Fix issue 8011 BigInt ++ and -- do wrong thing on negative numbers
Patch by Ary Borenszweig
2012-05-02 20:40:14 +02:00
k-hara
66e13b2c27 Revert "Revert "Merge pull request #120 from 9rnsr/rvalue-struct-literal""
This reverts commit 8a6bfd2529.
2012-02-21 21:03:01 +09:00
Walter Bright
8a6bfd2529 Revert "Merge pull request #120 from 9rnsr/rvalue-struct-literal"
This reverts commit d780d9df0f, reversing
changes made to c6ae86ca4f.
2012-02-20 19:43:12 -08:00
k-hara
d3e1992d86 Add overloads for struct literal and construction that now make rvalue. 2012-01-23 23:41:45 +09:00
Don Clugston
d619dd513f 7078 BigInt.toInt returns a long
Just a silly typo
2011-12-08 09:24:12 +01:00
Don Clugston
c0b25d0903 6819 BigInt ^^ fails for some big numbers (powers)
I've also greatly improved the comments for pow.
2011-10-18 15:00:24 +02:00
k-hara
8c72ce5723 Make FormatError an Exception instead of an Error 2011-09-05 12:54:38 +09:00
k-hara
1673bc594e fix sink to scope 2011-09-05 09:32:29 +09:00
k-hara
0e77b4c614 Change to selective import 2011-09-03 17:21:18 +09:00
k-hara
ac9b3d370c Reduce module dependencies 2011-09-02 23:46:04 +09:00
k-hara
5f64c4d4a1 Add test for 6448 2011-09-02 21:16:11 +09:00
k-hara
f98145fc4d Improve BigInt decimal and hexadecimal formatting 2011-09-02 20:56:40 +09:00
k-hara
11340b5a7b formatString should be right format spec 2011-09-02 20:56:40 +09:00
k-hara
c5c1c0dbbf detab/entab 2011-09-02 20:56:40 +09:00
jmdavis
302323559a Revert "not really pure"
This reverts commit 4f28db6ffb.

Since Walter put weakly pure back in, these changes need to be undone.

Conflicts:

	std/datetime.d
2011-07-07 01:40:07 -07:00
Walter Bright
4f28db6ffb not really pure 2011-06-25 19:58:09 -07:00
Don Clugston
9110377e42 5928 Bigint modulo problem
This problem was caused by an implicit conversion to ulong.
2011-05-06 07:30:07 +02:00
Don Clugston
9ecf947290 5568 A problem with BigInt modulus
This is quite subtle. The recursive division algorithm has a possibility of one
bit of overflow in the second recursive call, in cases where the top quarter of
the dividend is identical to the top half of the divisor.
The description of the recursive division algorithm in "Modern Computer
Arithmetic" 0.5.9 is rather vague about this (which is why I missed it
originally, though the test case does cause assert failure in biguint).
Unfortunately it requires fairly substantial changes to the function, which
makes the algorithm a lot less elegant. But I have managed to implement it
without any change to the basic division algorithm (which is very fast).
2011-02-23 21:20:48 +01:00
Don Clugston
572c4a9b6e Unit test for bug 5608 2011-02-18 22:20:57 +01:00
Don Clugston
80c64d92e4 Bigint toHex: Remove duplicate buffer 2011-02-18 09:35:51 +01:00
Walter Bright
046e1b36db add source links 2011-02-06 15:46:50 -08:00
Don Clugston
5ede508f0e Minor ddoc fixes for std.math and std.bigint 2010-11-17 20:42:28 +00:00
Don Clugston
9d7622586a Fix for BigInt assign for 64 bit compilers. Also a few steps towards const correctness, and some comment fixes. 2010-10-25 07:30:38 +00:00
Don Clugston
b929dcf0ec Fix bug 4742 int % BigInt should work.
Also improved code formatting.
2010-09-21 01:49:44 +00:00
Don Clugston
3c369fa19e 4872 std.bigint problem with negative numbers
This one made bigint unusable.
2010-09-15 22:06:34 +00:00
Walter Bright
b8ce58ccd1 detab sources 2010-08-23 02:14:45 +00:00
Andrei Alexandrescu
3f2b8c12ea 64-bit compatibility work 2010-08-22 20:55:22 +00:00
Don Clugston
2b6b4aff56 Fix bug 4470 Problems with std.bigint mod and divide 2010-07-17 06:26:24 +00:00
Don Clugston
504b60eef7 Bug 4300. BigInt * int doesn't work well. 2010-06-10 21:43:55 +00:00
Masahiro Nakagawa
cad7d9a0dc Fix old-style opOpAssign of std.bigint 2010-06-10 09:52:33 +00:00
Andrei Alexandrescu
bdc1516342 Fixed module name in bigint.d 2010-06-08 19:27:32 +00:00