Age | Commit message (Collapse) | Author |
|
```
../../../src/ext/bigdecimal/bigdecimal.c:303:5: error: 'maybe_unused' attribute cannot be applied to types
ENTER(1);
^
```
|
|
Stop using logarithm to compute the number of components.
Instead, use the theoretical maximum number of components for buffer,
and count up the actual number of components during conversion.
https://github.com/ruby/bigdecimal/commit/9067b353ac
|
|
https://github.com/ruby/bigdecimal/commit/7479923fdb
|
|
This change is for preventing the false-positive alert by CoverityScan.
See CID-1471770 for the detail.
https://github.com/ruby/bigdecimal/commit/4d5b97125b
|
|
https://github.com/ruby/bigdecimal/commit/a109d0984f
|
|
https://github.com/ruby/bigdecimal/commit/034fd2b25e
|
|
https://github.com/ruby/bigdecimal/commit/1cb92487f7
|
|
https://github.com/ruby/bigdecimal/commit/d2746121cf
|
|
https://github.com/ruby/bigdecimal/commit/68c20200d5
|
|
https://github.com/ruby/bigdecimal/commit/3b55ad1c42
|
|
https://github.com/ruby/bigdecimal/commit/1e03da7076
|
|
https://github.com/ruby/bigdecimal/commit/b1f1ed26c9
|
|
https://github.com/ruby/bigdecimal/commit/f0d94e6843
|
|
Using dtoa of mode=0, we can determine the number of digits in decimal that is
necessary to represent the given Float number without errors.
This change permits digits=0 in BigDecimal(flt) and Float#to_d, and these
methods use dtoa of mode=0 when the given digits is 0.
Internal implicit conversion from Float also uses digits=0.
[Fix GH-70]
https://github.com/ruby/bigdecimal/commit/2dbe170e35
|
|
This improve the conversion speed several times faster than before.
```
RUBYLIB= BUNDLER_ORIG_RUBYLIB= /home/mrkn/.rbenv/versions/3.0.0/bin/ruby -v -S benchmark-driver /home/mrkn/src/github.com/ruby/bigdecimal/benchmark/from_float.yml
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
Calculating -------------------------------------
bigdecimal 3.0.0 master
flt_e0 156.400k 783.356k i/s - 100.000k times in 0.639388s 0.127656s
flt_ep10 158.640k 777.978k i/s - 100.000k times in 0.630359s 0.128538s
flt_ep100 101.676k 504.259k i/s - 100.000k times in 0.983512s 0.198311s
flt_em10 103.439k 726.339k i/s - 100.000k times in 0.966751s 0.137677s
flt_em100 79.675k 651.446k i/s - 100.000k times in 1.255095s 0.153505s
Comparison:
flt_e0
master: 783355.6 i/s
bigdecimal 3.0.0: 156399.5 i/s - 5.01x slower
flt_ep10
master: 777977.6 i/s
bigdecimal 3.0.0: 158639.7 i/s - 4.90x slower
flt_ep100
master: 504259.4 i/s
bigdecimal 3.0.0: 101676.5 i/s - 4.96x slower
flt_em10
master: 726338.6 i/s
bigdecimal 3.0.0: 103439.2 i/s - 7.02x slower
flt_em100
master: 651446.3 i/s
bigdecimal 3.0.0: 79675.3 i/s - 8.18x slower
```
https://github.com/ruby/bigdecimal/commit/5bdaedd530
https://github.com/ruby/bigdecimal/commit/9bfff57f90
https://github.com/ruby/bigdecimal/commit/d071a0abbb
|
|
https://github.com/ruby/bigdecimal/commit/95c201f2d3
|
|
https://github.com/ruby/bigdecimal/commit/d163f170a4
https://github.com/ruby/bigdecimal/commit/ff8eeeb064
|
|
https://github.com/ruby/bigdecimal/commit/14e53ed7f6
|
|
https://github.com/ruby/bigdecimal/commit/381ddf5ff6
|
|
https://github.com/ruby/bigdecimal/commit/ac230a996e
|
|
https://github.com/ruby/bigdecimal/commit/2dad4d17b2
|
|
https://github.com/ruby/bigdecimal/f047b2786f
|
|
https://github.com/ruby/bigdecimal/commit/44f26b9aa0
|
|
rb_rational_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/b4f470da61
https://github.com/ruby/bigdecimal/commit/44a78df866
|
|
https://github.com/ruby/bigdecimal/commit/96c9ebd886
|
|
rb_float_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/33e7c50263
https://github.com/ruby/bigdecimal/commit/d3c1b0b921
|
|
https://github.com/ruby/bigdecimal/commit/2056604d56
|
|
https://github.com/ruby/bigdecimal/commit/686487d942
|
|
|
|
https://github.com/ruby/bigdecimal/commit/4792a917d8
|
|
https://github.com/ruby/bigdecimal/commit/c2b22cc8b3
https://github.com/ruby/bigdecimal/commit/8cbca8481d
https://github.com/ruby/bigdecimal/commit/f05aecf673
|
|
This change improves the conversion speed from small integers.
```
Comparison:
big_n9
master: 4003688.9 i/s
bigdecimal 3.0.0: 1270551.0 i/s - 3.15x slower
big_n19
master: 5410096.4 i/s
bigdecimal 3.0.0: 1000250.3 i/s - 5.41x slower
```
https://github.com/ruby/bigdecimal/commit/3429bd7e6f
|
|
https://github.com/ruby/bigdecimal/commit/271cebe567
|
|
https://github.com/ruby/bigdecimal/commit/97e9feeebd
|
|
It is no longer used due to the previous commit.
https://github.com/ruby/bigdecimal/commit/7d463f802b
|
|
xmalloc and xrealloc return non-NULL pointers or raise memory error.
https://github.com/ruby/bigdecimal/commit/507f0a6a64
|
|
Calling TypedData_Wrap_Struct after VpAlloc may cause memory leak.
This commit reverts d11b78f9c420f39ee800b9feed4839cd28f4ff5c.
https://github.com/ruby/bigdecimal/commit/2c5a288caf
|
|
https://github.com/ruby/bigdecimal/commit/6fd171308b
|
|
https://github.com/ruby/bigdecimal/commit/7504871c48
|
|
https://github.com/ruby/bigdecimal/commit/5c808eeabb
|
|
[ci-skip]
https://github.com/ruby/bigdecimal/commit/905d0345ec
|
|
https://github.com/ruby/bigdecimal/commit/741fb3e00f
|
|
|
|
https://github.com/ruby/bigdecimal/commit/981dc48f95
https://github.com/ruby/bigdecimal/commit/9ecf880ec04
|
|
https://github.com/ruby/bigdecimal/commit/7e80e6e145
https://github.com/ruby/bigdecimal/commit/0ed7846e8c
|
|
https://github.com/ruby/bigdecimal/commit/458eb66c49
|
|
https://github.com/ruby/bigdecimal/commit/93fc392640
https://github.com/ruby/bigdecimal/commit/a90d13c4d0
|
|
https://github.com/ruby/bigdecimal/commit/12296dcb90
|
|
Fix https://github.com/ruby/bigdecimal/issues/70
[Bug #13331]
https://github.com/ruby/bigdecimal/commit/aa536cd4b5
|
|
|