Skip to content
Merged

Ryu #324

Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
0307f5e
fix fromString for NaN and Inf
9il Dec 9, 2020
ef9a17e
update appveyor
9il Dec 9, 2020
b697f1d
update mir-core dep
9il Dec 9, 2020
0155c1c
fix doc
9il Dec 9, 2020
01a8860
extend bignum.fixed
9il Dec 9, 2020
90fbd09
add generic ryu (initial)
9il Dec 9, 2020
9e40c37
update meson
9il Dec 9, 2020
fcaf524
use mir multiplication
9il Dec 9, 2020
f0b69ce
optimize divide operations
9il Dec 9, 2020
b065edd
add Decimal.fromString
9il Dec 9, 2020
884fe50
fix docs
9il Dec 9, 2020
c8c8896
rework Decimal.fromString to constructor
9il Dec 9, 2020
b79b817
add BigInt constructor from string
9il Dec 9, 2020
3d65b74
rewor view fromHexStringImpl
9il Dec 9, 2020
f482fa9
add decimal parsing and devid by uint for bitint/fixedint
9il Dec 9, 2020
4e7df26
import bignum from hex string constructors
9il Dec 10, 2020
48bca7c
improve docs
9il Dec 10, 2020
d0d8561
BigInt decimal printing
9il Dec 11, 2020
8427f08
E->e
9il Dec 11, 2020
d85934f
add UInt.toString
9il Dec 11, 2020
635b10a
Decimal.toString
9il Dec 11, 2020
1e19ec2
replace FloatingDecimal128 with Decimal!2
9il Dec 11, 2020
c79744d
wip
9il Dec 12, 2020
6783613
wip
9il Dec 12, 2020
dc47247
WIP
9il Dec 12, 2020
cd95b51
optimize loops
9il Dec 12, 2020
d3e11e2
wip
9il Dec 12, 2020
bee5584
optimize ryu
9il Dec 13, 2020
f9c1b08
ctfe-able ryu
9il Dec 13, 2020
06d2397
clean imports
9il Dec 13, 2020
36593b6
Use ryu in print
9il Dec 13, 2020
876e876
add notice file
9il Dec 13, 2020
86761ee
update notice and dub
9il Dec 13, 2020
55a6714
fix 32bit build
9il Dec 13, 2020
533e53d
fixup
9il Dec 13, 2020
faeb475
check exception
9il Dec 13, 2020
2d250f0
fixup
9il Dec 13, 2020
f4c387d
fix
9il Dec 13, 2020
7fdd250
update travis
9il Dec 13, 2020
dcb0794
fixup travis
9il Dec 13, 2020
a95bd47
fix aarch64
9il Dec 13, 2020
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
optimize loops
  • Loading branch information
9il committed Dec 12, 2020
commit cd95b51bebcacc88b681eb0bf9a0bbb9dacbc131
29 changes: 5 additions & 24 deletions source/mir/bignum/internal/ryu/generic_128.d
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ Decimal!2 generic_binary_to_decimal(T)(const T x)
{
auto div10vp = div10(vp);
auto div10vm = div10(vm);
if (div10vp <= div10vm)
if (div10vp == div10vm)
break;
vmIsTrailingZeros &= vm - div10vm * 10 == 0;
vrIsTrailingZeros &= lastRemovedDigit == 0;
Expand All @@ -488,9 +488,8 @@ Decimal!2 generic_binary_to_decimal(T)(const T x)
if (vm - div10vm * 10)
break;
vrIsTrailingZeros &= lastRemovedDigit == 0;
lastRemovedDigit = vr.divRem10;
vm = div10vm;
vp = div10(vp);
lastRemovedDigit = cast(uint) (vr - div10vm * 10);
vr = vp = vm = div10vm;
++removed;
}
}
Expand Down Expand Up @@ -1105,6 +1104,8 @@ version(all) unittest
"4.294967296e0", // 2^32
"4.294967297e0", // 2^32 + 1
"4.294967298e0", // 2^32 + 2

"-2.147483648e32",
])
{
import mir.conv: to;
Expand Down Expand Up @@ -1169,23 +1170,3 @@ version(all) unittest
}

// https://github.com/ulfjack/ryu/issues/156
// in: -2.147483648E32
// out: -2.1474836479999998E32

// in: -3.1802768007018752E17
// out: -3.180276800701875E17

// in: -6.4432225704600013E18
// out: -6.443222570460001E18

// in: 1.3867957848030121E18
// out: 1.386795784803012E18

// in: 1.41027712162200013E18
// out: 1.4102771216220001E18

// in: 8.8243617212999997E18
// out: 8.8243617213E18

// in: 8.8243617212999997E18
// out: 8.8243617213E18