summaryrefslogtreecommitdiff
path: root/ext/bigdecimal
AgeCommit message (Collapse)Author
2021-05-04Fix -Wundef warnings for patterns `#if HAVE`Benoit Daloze
* See [Feature #17752] * Using this to detect them: git grep -P 'if\s+HAVE' | grep -Pv 'HAVE_LONG_LONG|/ChangeLog|HAVE_TYPEOF' Notes: Merged: https://github.com/ruby/ruby/pull/4428
2021-04-13dependency updates卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/4371
2021-02-04[ruby/bigdecimal] Fix uint64 conversionKenta Murata
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
2021-02-04[ruby/bigdecimal] Stop using rmpd and RMPD prefixes and DBLE_FIGKenta Murata
https://github.com/ruby/bigdecimal/commit/7479923fdb
2021-02-03[ruby/bigdecimal] Fix the maximum length of float numberKenta Murata
This change is for preventing the false-positive alert by CoverityScan. See CID-1471770 for the detail. https://github.com/ruby/bigdecimal/commit/4d5b97125b
2021-01-22[ruby/bigdecimal] [Doc] Fix the comment of BigDecimal_div2 [ci skip]Kenta Murata
https://github.com/ruby/bigdecimal/commit/a109d0984f
2021-01-22[ruby/bigdecimal] Stop using GetVpValue in rb_big_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/034fd2b25e
2021-01-16[ruby/bigdecimal] Fix for the coerce cases in divide and DoDivmodKenta Murata
https://github.com/ruby/bigdecimal/commit/1cb92487f7
2021-01-16[ruby/bigdecimal] Use pre-allocated special values in BigDecimal_DoDivmodKenta Murata
https://github.com/ruby/bigdecimal/commit/d2746121cf
2021-01-16[ruby/bigdecimal] Use new conversion functions in BigDecimal_DoDivmodKenta Murata
https://github.com/ruby/bigdecimal/commit/68c20200d5
2021-01-15[ruby/bigdecimal] Use new conversion functions in BigDecimal_divideKenta Murata
https://github.com/ruby/bigdecimal/commit/3b55ad1c42
2021-01-15[ruby/bigdecimal] Reorder the arguments of BigDecimal_divideKenta Murata
https://github.com/ruby/bigdecimal/commit/1e03da7076
2021-01-14[ruby/bigdecimal] Explicitly cast size_t to intKenta Murata
https://github.com/ruby/bigdecimal/commit/b1f1ed26c9
2021-01-14[ruby/bigdecimal] Explicitly cast uint64_t to doubleKenta Murata
https://github.com/ruby/bigdecimal/commit/f0d94e6843
2021-01-14[ruby/bigdecimal] Suppress warning at NO_SANITIZE on gccKenta Murata
https://github.com/ruby/bigdecimal/commit/f6765b8071
2021-01-13[ruby/bigdecimal] Allow digits=0 in BigDecimal(flt) and Float#to_dKenta Murata
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
2021-01-13Update ext/bigdecimal/dependKenta Murata
2021-01-13Update ext/bigdecimal/dependKenta Murata
2021-01-13[ruby/bigdecimal] Optimize rb_float_convert_to_BigDecimal by using dtoaKenta Murata
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
2021-01-13[ruby/bigdecimal] Use pre-allocated objects for special valuesKenta Murata
https://github.com/ruby/bigdecimal/commit/95c201f2d3
2021-01-13[ruby/bigdecimal] Fix exception message raised in Kernel.BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/d163f170a4 https://github.com/ruby/bigdecimal/commit/ff8eeeb064
2021-01-12[ruby/bigdecimal] Fix length calculation in rb_uint64_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/14e53ed7f6
2021-01-12[ruby/bigdecimal] Use rb_cstr_convert_to_BigDecimal in GetVpValueWithPrecKenta Murata
https://github.com/ruby/bigdecimal/commit/381ddf5ff6
2021-01-12[ruby/bigdecimal] Add rb_cstr_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/ac230a996e
2021-01-10[ruby/bigdecimal] Fix type nameKenta Murata
https://github.com/ruby/bigdecimal/commit/2dad4d17b2
2021-01-10[ruby/bigdecimal] Avoid casting negative value to size_tKenta Murata
https://github.com/ruby/bigdecimal/f047b2786f
2021-01-10[ruby/bigdecimal] Use smallest local variable scope in GetVpValueWithPrecKenta Murata
https://github.com/ruby/bigdecimal/commit/44f26b9aa0
2021-01-09[ruby/bigdecimal] Stop using GetVpValueWithPrec in ↵Kenta Murata
rb_rational_convert_to_BigDecimal https://github.com/ruby/bigdecimal/commit/b4f470da61 https://github.com/ruby/bigdecimal/commit/44a78df866
2021-01-09[ruby/bigdecimal] Add assertions for checking the argument typesKenta Murata
https://github.com/ruby/bigdecimal/commit/96c9ebd886
2021-01-09[ruby/bigdecimal] Stop using GetVpValueWithPrec in ↵Kenta Murata
rb_float_convert_to_BigDecimal https://github.com/ruby/bigdecimal/commit/33e7c50263 https://github.com/ruby/bigdecimal/commit/d3c1b0b921
2021-01-07[ruby/bigdecimal] Fix trailing zero handling in rb_uint64_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/2056604d56
2021-01-06[ruby/bigdecimal] Rename BDIGIT to DECDIGKenta Murata
https://github.com/ruby/bigdecimal/commit/686487d942
2021-01-06Need to convert the return value of rb_big_cmpKenta Murata
2021-01-06[ruby/bigdecimal] Optimize the conversion from small BignumKenta Murata
https://github.com/ruby/bigdecimal/commit/4792a917d8
2021-01-06[ruby/bigdecimal] Check the function availabilities separatelyKenta Murata
https://github.com/ruby/bigdecimal/commit/cf839a34c8 https://github.com/ruby/bigdecimal/commit/75db4dabb9
2021-01-04Update ext/bigdecimal/dependKenta Murata
2021-01-04[ruby/bigdecimal] Move some definitions to missing.hKenta Murata
https://github.com/ruby/bigdecimal/commit/c2b22cc8b3 https://github.com/ruby/bigdecimal/commit/8cbca8481d https://github.com/ruby/bigdecimal/commit/f05aecf673
2021-01-04Revert "Include RUBY_EXTCONF_H if available"Kenta Murata
It is unnecessary because RUBY_EXTCONF_H has already been included in ruby/internal/config.h. This reverts commit 0644f466b0ef017202712882b557ba32863002c4.
2021-01-03Include RUBY_EXTCONF_H if availableKenta Murata
2021-01-02Avoid to use __builtin_clzl in SPARC SolarisKenta Murata
2021-01-02Add __x86_64__ guard to include x86intrin.hKenta Murata
2021-01-02Check if x86intrin.h is available not only existingNobuyoshi Nakada
2021-01-02[ruby/bigdecimal] Update dependKenta Murata
2021-01-02[ruby/bigdecimal] Fix test for Ruby 2.4Kenta Murata
Ruby 2.4 does not have RbConfig::LIMITS. https://github.com/ruby/bigdecimal/commit/c8087523b0
2021-01-02[ruby/bigdecimal] Implement special conversions for 64-bit integersKenta Murata
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
2020-12-31[ruby/bigdecimal] Refactor object allocationKenta Murata
https://github.com/ruby/bigdecimal/commit/271cebe567
2020-12-31[ruby/bigdecimal] Remove ToValueKenta Murata
https://github.com/ruby/bigdecimal/commit/97e9feeebd
2020-12-30[ruby/bigdecimal] Remove VP_EXCEPTION_MEMORYKenta Murata
It is no longer used due to the previous commit. https://github.com/ruby/bigdecimal/commit/7d463f802b
2020-12-30[ruby/bigdecimal] Remove needless pointer checksKenta Murata
xmalloc and xrealloc return non-NULL pointers or raise memory error. https://github.com/ruby/bigdecimal/commit/507f0a6a64
2020-12-29[ruby/bigdecimal] Define bool, true, and false for old RubyKenta Murata
https://github.com/ruby/bigdecimal/commit/a6d3bd2d44