summaryrefslogtreecommitdiff
path: root/ext/bigdecimal/bigdecimal.c
AgeCommit message (Collapse)Author
2022-07-02[ruby/bigdecimal] Correct indentation in Kernel#BigDecimalBurdetteLamar
https://github.com/ruby/bigdecimal/commit/3ede8860a6
2022-04-18[ruby/bigdecimal] Adjust a local variable type to exponentNobuyoshi Nakada
https://github.com/ruby/bigdecimal/commit/70146fb6ad
2022-01-24[ruby/bigdecimal] Fix the maximum precision of the quotientKenta Murata
Fixes https://github.com/ruby/bigdecimal/pull/220 https://github.com/ruby/bigdecimal/commit/127a1b5a31
2021-12-24[ruby/bigdecimal] Remove unused variableKenta Murata
https://github.com/ruby/bigdecimal/commit/ac7daa5f15
2021-12-24[ruby/bigdecimal] Fix the result precision of BigDecimal#divmodKenta Murata
https://github.com/ruby/bigdecimal/commit/a32f6cb9e2
2021-12-24[ruby/bigdecimal] Enhanced RDoc for BigDecimal ↵Burdette Lamar
(https://github.com/ruby/bigdecimal/pull/209) * Enhanced RDoc for BigDecimal * Update ext/bigdecimal/bigdecimal.c Remove the instance number of `Float::DIG`. * Update ext/bigdecimal/bigdecimal.c Add BigDecimal call-seq without ndigits. * Update ext/bigdecimal/bigdecimal.c Replace the word sum with value or result in the description of BigDecimal(). * Update ext/bigdecimal/bigdecimal.c Remove the instance value of Float::DIG. * Update ext/bigdecimal/bigdecimal.c Fix mis-description of precision * Update ext/bigdecimal/bigdecimal.c Fix the description of precision determination * Update ext/bigdecimal/bigdecimal.c Add the description of the precision in the Rational case. https://github.com/ruby/bigdecimal/commit/acabb132a4 Co-authored-by: Kenta Murata <3959+mrkn@users.noreply.github.com>
2021-12-24[ruby/bigdecimal] Let BigDecimal#quo accept precisionKenta Murata
Fix GH-214. https://github.com/ruby/bigdecimal/commit/13e0e93f37
2021-12-24[ruby/bigdecimal] Add TODO commentKenta Murata
https://github.com/ruby/bigdecimal/commit/ef9cf4e69e
2021-12-24[ruby/bigdecimal] Allow passing both float and precision in BigDecimal#divKenta Murata
Fix GH-212. https://github.com/ruby/bigdecimal/commit/900bb7fcf5
2021-12-24[ruby/bigdecimal] Add BigDecimal#precision_scaleKenta Murata
https://github.com/ruby/bigdecimal/commit/c019caeaba
2021-12-24[ruby/bigdecimal] [Doc] Add documentation of BigDecimal#n_significant_digitsKenta Murata
https://github.com/ruby/bigdecimal/commit/ceaf16b03e
2021-12-24[ruby/bigdecimal] Add BigDecimal#scaleKenta Murata
Fixes GH-198. https://github.com/ruby/bigdecimal/commit/4fbec55680
2021-12-24[ruby/bigdecimal] Set rounding mode in exampleBurdetteLamar
https://github.com/ruby/bigdecimal/commit/8fc83dd2fe
2021-12-24[ruby/bigdecimal] Set rounding mode in exampleBurdetteLamar
https://github.com/ruby/bigdecimal/commit/42c999f728
2021-12-24[ruby/bigdecimal] Enhanced RDoc for selected methodsBurdetteLamar
https://github.com/ruby/bigdecimal/commit/0de9298d15
2021-12-24[ruby/bigdecimal] Enhanced RDoc for selected methodsBurdetteLamar
https://github.com/ruby/bigdecimal/commit/6139ea1092
2021-12-24[ruby/bigdecimal] Fix BigDecimal#precision for single DECDIG caseKenta Murata
Fix GH-205 https://github.com/ruby/bigdecimal/commit/7d198394a2
2021-12-24[ruby/bigdecimal] Keep obj-to-Real link when VpReallocReal returns different ↵Kenta Murata
pointer https://github.com/ruby/bigdecimal/commit/252748de17
2021-12-24[ruby/bigdecimal] Fix the precision of the adjusted quotientKenta Murata
https://github.com/ruby/bigdecimal/commit/8dc8cd339d
2021-12-24[ruby/bigdecimal] Let BigDecimal_DoDivmod use the same precision calculation ↵Kenta Murata
as BigDecimal_divide https://github.com/ruby/bigdecimal/commit/11cb2c8840
2021-12-24[ruby/bigdecimal] Use larger precision in divide for irrational or recurring ↵Kenta Murata
results Just in case for irrational or recurring results, the precision of the quotient is set to at least more than 2*Float::DIG plus alpha. [Bug #13754] [Fix GH-94] https://github.com/ruby/bigdecimal/commit/99442c75d3
2021-12-24[ruby/bigdecimal] Fix trailing zeros handling in rb_uint64_convert_to_BigDecimalKenta Murata
Fix GH-192 https://github.com/ruby/bigdecimal/commit/eebc98b85a
2021-12-24[ruby/bigdecimal] Respond to reviewBurdetteLamar
https://github.com/ruby/bigdecimal/commit/f528a0006e
2021-12-24[ruby/bigdecimal] Respond to reviewBurdetteLamar
https://github.com/ruby/bigdecimal/commit/4eadcdf0a6
2021-12-24[ruby/bigdecimal] Respond to reviewBurdetteLamar
https://github.com/ruby/bigdecimal/commit/6d69422e37
2021-12-24[ruby/bigdecimal] Respond to review for #precisionBurdetteLamar
https://github.com/ruby/bigdecimal/commit/681cd2d81d
2021-12-24[ruby/bigdecimal] Enhanced RDoc for bigdecimal.cBurdetteLamar
https://github.com/ruby/bigdecimal/commit/3a35f92f8b
2021-12-24[ruby/bigdecimal] Enhanced RDoc for bigdecimal.cBurdetteLamar
https://github.com/ruby/bigdecimal/commit/31a7a37426
2021-12-24[ruby/bigdecimal] Fix negative Bignum conversionJean Boussier
Introduced in https://github.com/ruby/bigdecimal/commit/4792a917d806 `rb_absint_size` return the number of bytes needed to fit the absolute integer, but negative integers need the sign, so one more bit, and potentially one more byte. https://github.com/ruby/bigdecimal/commit/0f3d5d0eb7
2021-12-24[ruby/bigdecimal] VpCheckException: improve grammarOlle Jonsson
I added a space before the parenthesis, too. https://github.com/ruby/bigdecimal/commit/159af10b17
2021-07-06Fixed 'maybe_unused' attributeNobuyoshi Nakada
``` ../../../src/ext/bigdecimal/bigdecimal.c:303:5: error: 'maybe_unused' attribute cannot be applied to types ENTER(1); ^ ```
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-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-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