summaryrefslogtreecommitdiff
path: root/ext/bigdecimal/bigdecimal.c
Commit message (Collapse)AuthorAgeFilesLines
* [ruby/bigdecimal] Document precision=0 and ndigits=0 for converting from FloatMaciej Rzasa2022-09-281-0/+3
| | | | https://github.com/ruby/bigdecimal/commit/4f0894c6c0
* [ruby/bigdecimal] Remove trailing whitespace.Samuel Williams2022-09-251-2/+2
| | | | https://github.com/ruby/bigdecimal/commit/223d193f01
* [ruby/bigdecimal] Improve documentation of BigDecimal#sign Maciek Rząsa2022-09-251-2/+4
| | | | | | Fixes https://github.com/ruby/bigdecimal/issues/78 by describing behaviour for positive and negative zero in the docs. https://github.com/ruby/bigdecimal/commit/5415b120ab
* [ruby/bigdecimal] Correct indentation in Kernel#BigDecimalBurdetteLamar2022-07-021-5/+5
| | | | https://github.com/ruby/bigdecimal/commit/3ede8860a6
* [ruby/bigdecimal] Adjust a local variable type to exponentNobuyoshi Nakada2022-04-181-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/70146fb6ad
* [ruby/bigdecimal] Fix the maximum precision of the quotientKenta Murata2022-01-241-8/+7
| | | | | | Fixes https://github.com/ruby/bigdecimal/pull/220 https://github.com/ruby/bigdecimal/commit/127a1b5a31
* [ruby/bigdecimal] Remove unused variableKenta Murata2021-12-241-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/ac7daa5f15
* [ruby/bigdecimal] Fix the result precision of BigDecimal#divmodKenta Murata2021-12-241-4/+17
| | | | https://github.com/ruby/bigdecimal/commit/a32f6cb9e2
* [ruby/bigdecimal] Enhanced RDoc for BigDecimal ↵Burdette Lamar2021-12-241-102/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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>
* [ruby/bigdecimal] Let BigDecimal#quo accept precisionKenta Murata2021-12-241-24/+72
| | | | | | Fix GH-214. https://github.com/ruby/bigdecimal/commit/13e0e93f37
* [ruby/bigdecimal] Add TODO commentKenta Murata2021-12-241-0/+3
| | | | https://github.com/ruby/bigdecimal/commit/ef9cf4e69e
* [ruby/bigdecimal] Allow passing both float and precision in BigDecimal#divKenta Murata2021-12-241-1/+5
| | | | | | Fix GH-212. https://github.com/ruby/bigdecimal/commit/900bb7fcf5
* [ruby/bigdecimal] Add BigDecimal#precision_scaleKenta Murata2021-12-241-0/+19
| | | | https://github.com/ruby/bigdecimal/commit/c019caeaba
* [ruby/bigdecimal] [Doc] Add documentation of BigDecimal#n_significant_digitsKenta Murata2021-12-241-0/+16
| | | | https://github.com/ruby/bigdecimal/commit/ceaf16b03e
* [ruby/bigdecimal] Add BigDecimal#scaleKenta Murata2021-12-241-59/+142
| | | | | | Fixes GH-198. https://github.com/ruby/bigdecimal/commit/4fbec55680
* [ruby/bigdecimal] Set rounding mode in exampleBurdetteLamar2021-12-241-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/8fc83dd2fe
* [ruby/bigdecimal] Set rounding mode in exampleBurdetteLamar2021-12-241-0/+2
| | | | https://github.com/ruby/bigdecimal/commit/42c999f728
* [ruby/bigdecimal] Enhanced RDoc for selected methodsBurdetteLamar2021-12-241-2/+2
| | | | https://github.com/ruby/bigdecimal/commit/0de9298d15
* [ruby/bigdecimal] Enhanced RDoc for selected methodsBurdetteLamar2021-12-241-16/+37
| | | | https://github.com/ruby/bigdecimal/commit/6139ea1092
* [ruby/bigdecimal] Fix BigDecimal#precision for single DECDIG caseKenta Murata2021-12-241-4/+18
| | | | | | Fix GH-205 https://github.com/ruby/bigdecimal/commit/7d198394a2
* [ruby/bigdecimal] Keep obj-to-Real link when VpReallocReal returns different ↵Kenta Murata2021-12-241-1/+12
| | | | | | pointer https://github.com/ruby/bigdecimal/commit/252748de17
* [ruby/bigdecimal] Fix the precision of the adjusted quotientKenta Murata2021-12-241-2/+4
| | | | https://github.com/ruby/bigdecimal/commit/8dc8cd339d
* [ruby/bigdecimal] Let BigDecimal_DoDivmod use the same precision calculation ↵Kenta Murata2021-12-241-13/+20
| | | | | | as BigDecimal_divide https://github.com/ruby/bigdecimal/commit/11cb2c8840
* [ruby/bigdecimal] Use larger precision in divide for irrational or recurring ↵Kenta Murata2021-12-241-7/+6
| | | | | | | | | | | 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
* [ruby/bigdecimal] Fix trailing zeros handling in rb_uint64_convert_to_BigDecimalKenta Murata2021-12-241-7/+15
| | | | | | Fix GH-192 https://github.com/ruby/bigdecimal/commit/eebc98b85a
* [ruby/bigdecimal] Respond to reviewBurdetteLamar2021-12-241-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/f528a0006e
* [ruby/bigdecimal] Respond to reviewBurdetteLamar2021-12-241-2/+2
| | | | https://github.com/ruby/bigdecimal/commit/4eadcdf0a6
* [ruby/bigdecimal] Respond to reviewBurdetteLamar2021-12-241-2/+3
| | | | https://github.com/ruby/bigdecimal/commit/6d69422e37
* [ruby/bigdecimal] Respond to review for #precisionBurdetteLamar2021-12-241-14/+7
| | | | https://github.com/ruby/bigdecimal/commit/681cd2d81d
* [ruby/bigdecimal] Enhanced RDoc for bigdecimal.cBurdetteLamar2021-12-241-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/3a35f92f8b
* [ruby/bigdecimal] Enhanced RDoc for bigdecimal.cBurdetteLamar2021-12-241-65/+201
| | | | https://github.com/ruby/bigdecimal/commit/31a7a37426
* [ruby/bigdecimal] Fix negative Bignum conversionJean Boussier2021-12-241-1/+5
| | | | | | | | | | 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
* [ruby/bigdecimal] VpCheckException: improve grammarOlle Jonsson2021-12-241-3/+3
| | | | | | I added a space before the parenthesis, too. https://github.com/ruby/bigdecimal/commit/159af10b17
* Fixed 'maybe_unused' attributeNobuyoshi Nakada2021-07-061-0/+4
| | | | | | | | ``` ../../../src/ext/bigdecimal/bigdecimal.c:303:5: error: 'maybe_unused' attribute cannot be applied to types ENTER(1); ^ ```
* [ruby/bigdecimal] Fix uint64 conversionKenta Murata2021-02-041-12/+11
| | | | | | | | 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
* [ruby/bigdecimal] Stop using rmpd and RMPD prefixes and DBLE_FIGKenta Murata2021-02-041-47/+43
| | | | https://github.com/ruby/bigdecimal/commit/7479923fdb
* [ruby/bigdecimal] Fix the maximum length of float numberKenta Murata2021-02-031-3/+5
| | | | | | | This change is for preventing the false-positive alert by CoverityScan. See CID-1471770 for the detail. https://github.com/ruby/bigdecimal/commit/4d5b97125b
* [ruby/bigdecimal] [Doc] Fix the comment of BigDecimal_div2 [ci skip]Kenta Murata2021-01-221-1/+2
| | | | https://github.com/ruby/bigdecimal/commit/a109d0984f
* [ruby/bigdecimal] Stop using GetVpValue in rb_big_convert_to_BigDecimalKenta Murata2021-01-221-1/+4
| | | | https://github.com/ruby/bigdecimal/commit/034fd2b25e
* [ruby/bigdecimal] Fix for the coerce cases in divide and DoDivmodKenta Murata2021-01-161-10/+16
| | | | https://github.com/ruby/bigdecimal/commit/1cb92487f7
* [ruby/bigdecimal] Use pre-allocated special values in BigDecimal_DoDivmodKenta Murata2021-01-161-21/+26
| | | | https://github.com/ruby/bigdecimal/commit/d2746121cf
* [ruby/bigdecimal] Use new conversion functions in BigDecimal_DoDivmodKenta Murata2021-01-161-5/+12
| | | | https://github.com/ruby/bigdecimal/commit/68c20200d5
* [ruby/bigdecimal] Use new conversion functions in BigDecimal_divideKenta Murata2021-01-151-6/+14
| | | | https://github.com/ruby/bigdecimal/commit/3b55ad1c42
* [ruby/bigdecimal] Reorder the arguments of BigDecimal_divideKenta Murata2021-01-151-2/+2
| | | | https://github.com/ruby/bigdecimal/commit/1e03da7076
* [ruby/bigdecimal] Explicitly cast size_t to intKenta Murata2021-01-141-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/b1f1ed26c9
* [ruby/bigdecimal] Explicitly cast uint64_t to doubleKenta Murata2021-01-141-1/+1
| | | | https://github.com/ruby/bigdecimal/commit/f0d94e6843
* [ruby/bigdecimal] Allow digits=0 in BigDecimal(flt) and Float#to_dKenta Murata2021-01-131-21/+32
| | | | | | | | | | | | | | 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
* [ruby/bigdecimal] Optimize rb_float_convert_to_BigDecimal by using dtoaKenta Murata2021-01-131-3/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [ruby/bigdecimal] Use pre-allocated objects for special valuesKenta Murata2021-01-131-21/+94
| | | | https://github.com/ruby/bigdecimal/commit/95c201f2d3
* [ruby/bigdecimal] Fix exception message raised in Kernel.BigDecimalKenta Murata2021-01-131-11/+20
| | | | | https://github.com/ruby/bigdecimal/commit/d163f170a4 https://github.com/ruby/bigdecimal/commit/ff8eeeb064