Releases: ruby/bigdecimal
Releases · ruby/bigdecimal
v4.0.1
v4.0.0
What's Changed
- Fix x**y, x.power(y, 0) and x.sqrt(0) calculates huge digits if precision limit is huge by @tompng in #445
- Implement major math functions by @tompng in #336
- Fix fast-path of frac and _decimal_shift affected by BigDecimal.limit by @tompng in #447
- Update the latest versions of actions by @hsbt in #449
- Add missing bigmath precision test, add missing indent by @tompng in #450
- Make BigMath.exp and log also a module_method by @tompng in #452
- Fix incorrect exception when exponent is fractional for Infinity base by @troy-dunamu in #453
- Bump step-security/harden-runner from 2.13.1 to 2.13.2 by @dependabot[bot] in #454
- Don't use assert_separatly if not needed by @tompng in #455
- Bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in #456
- Bump actions/checkout from 5.0.1 to 6.0.0 by @dependabot[bot] in #457
- Add missing BigMath test for jruby by @tompng in #459
- Change remainder/modulo/divmod test of +0/-0 type tolerant by @tompng in #460
- Cast divmod quotient to int by @mrzasa in #312
- Bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in #462
- Bump step-security/harden-runner from 2.13.2 to 2.13.3 by @dependabot[bot] in #461
- Implement BigMath.erf(x, prec) and BigMath.erfc(x, prec) by @tompng in #357
- Implement BigMath.gamma and BigMath.lgamma by @tompng in #451
- Fix typos + improve copy/paste in readme by @tas50 in #463
- Fix inaccurate calculation (last digit) and add a workaround for add/sub hang bug by @tompng in #465
- Fix lgamma precision around 1 and 2 by @tompng in #466
- Fix lgamma precision when gamma(negative_x).abs nearly equals 1 by @tompng in #467
- Implement BigMath.frexp and ldexp with exponent of 10 by @tompng in #448
- Bump step-security/harden-runner from 2.13.3 to 2.14.0 by @dependabot[bot] in #468
- Better rounding of BigMath.atan(nearly_one, prec) by @tompng in #469
- Remove deprecated method BigDecimal#precs by @tompng in #470
- Deprecate ludcmp, jacobian and newton by @tompng in #471
- Bump version to v4.0.0 by @tompng in #472
New Contributors
- @troy-dunamu made their first contribution in #453
- @tas50 made their first contribution in #463
Full Changelog: v3.3.1...v4.0.0
v3.3.1
v3.3.0
What's Changed
- Allow calling Rational#to_d without arguments by @fsateler in #421
- Fix test_no_memory_leak failure by @tompng in #424
- Change BigMath.sin and cos to always calculate in relative precision. by @tompng in #422
- Faster exp calculation by @tompng in #399
- Rename assert_relative_precision to assert_converge_in_precision by @tompng in #425
- Add support for tangent function by @rhannequin in #231
- Make bigdecimal.rb work in JRuby by @tompng in #420
- BigMath methods common interface: coerce x, validate prec, check nan error by @tompng in #415
- Round result of sqrt and BigMath methods by @tompng in #427
- Update example calculation result in BigMath document by @tompng in #428
- BigMath.log(0,n)==-Infinity just like Math.log(0) by @tompng in #430
- Fix divmod and modulo by infinity to match Float#divmod and Float#modulo by @tompng in #429
- Bump step-security/harden-runner from 2.13.0 to 2.13.1 by @dependabot[bot] in #431
- Make internal BigMath method a private method by @tompng in #432
- Improve performance of x**y when y is a huge value by @tompng in #438
- Fix precision of x.power(y, prec) when the result is nearly infinity by @tompng in #439
- Bump version to 3.3.0 by @tompng in #437
New Contributors
Full Changelog: v3.2.3...v3.3.0
v3.2.3
What's Changed
- Fix sign of bigdecimal**bigint by @tompng in #341
- Fix BigMath.atan precision safe margin by @tompng in #320
- Fix typo in BigDecimal#scale comment by @timcraft in #348
- Allow BigDecimal accept Float without precision by @mrzasa in #314
- Fix edgecase segfault of BigDecimal#remainder by @tompng in #349
- Fix precision of BigMath.sin(x,prec) and BigMath.cos(x,prec) for large x by @tompng in #346
- Fix wrong converge check in VpSqrt by @tompng in #353
- Bump step-security/harden-runner from 2.12.0 to 2.12.1 by @dependabot[bot] in #356
- Ensure BigMath.sin and BigMath.cos to be within -1..1 by @tompng in #317
- Remove BigDecimal_divremain(which has a bug) and use BigDecimal_DoDivmod instead by @tompng in #351
- Bump step-security/harden-runner from 2.12.1 to 2.12.2 by @dependabot[bot] in #359
- Remove back pointer from Real to VALUE by @tompng in #344
- Update docs for #to_d core extensions by @dduugg in #360
- Fix compiling issue (when BIGDECIMAL_DEBUG is 1) by @tompng in #363
- Use a correct term: engineering notation -> scientific notation by @mame in #365
- Fix to_f underflow check when DECDIG is uint16_t by @tompng in #364
- Fix VpNumOfChars calculation for the longest case by @tompng in #366
- Fix a bug that exponent overflow is ignored in add, sub, mult and div operation by @tompng in #367
- Fix dump/load bigdecimal with few or large precs by @tompng in #362
- Refactor AddExponent overflow/underflow check by @tompng in #368
- Strict BigDecimal("0.1e#{exponent}") exponent overflow/underflow check by @tompng in #369
- Add DECDIG=16bit CI workflow by @tompng in #370
- Fix wrong multiplying BASE_FIG in precision calculation by @tompng in #372
- Remove debug print by @tompng in #375
- Remove unused #define macros by @tompng in #376
- VpDivd bugfix by @tompng in #374
- Fix VpDivd to fully use quotient array by @tompng in #377
- Add RB_GC_GUARD to test-only methods by @tompng in #378
- Use minimum necessary division precision in BigDecimal_DoDivmod by @tompng in #371
- Remove dead code and ineffective optimization path form VpDivd by @tompng in #379
- Implement exp, log, power and ** in ruby by @tompng in #347
- Remove unused "# define" macros by @tompng in #382
- Bump step-security/harden-runner from 2.12.2 to 2.13.0 by @dependabot[bot] in #383
- VpFormatSt O(n^2) to O(n) by @tompng in #384
- Ignore ndigits passed to BigDecimal(string, ndigits) by @tompng in #385
- Better error message for negative**intinite and zero-converge case fix by @tompng in #386
- Refactor truncate floor and ceil duplicated part by @tompng in #387
- Fix exp log power to raise "Computation results in Infinity/NaN" in EXCEPTION_INFINITY/EXCEPTION_NaN mode by @tompng in #389
- Reduce guard obj by @tompng in #390
- Remove ENTER and GUARD_OBJ macro by @tompng in #391
- Coerce to bigdecimal refactor by @tompng in #392
- Coerce rational with the given prec in exp, log and power calculation by @tompng in #393
- Unify coerce prec calculation by @tompng in #394
- Use bool instead of Qtrue/Qfalse for normal c boolish value by @tompng in #395
- Fix adjusting x to 0.3..3 in log calculation by @tompng in #397
- missing.h cleanup by @tompng in #396
- Hide internal method of BigMath into BigDecimal::Internal by @tompng in #400
- Remove gc_compaction test by @tompng in #401
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #402
- Fix VpMult result size calculation by @tompng in #403
- Fix GetAddSubPrec calculation by @tompng in #406
- Fix PrecLimit not restored on exception by @tompng in #405
- Fix div,modulo,remainder and divmod precision when prec limit is specified by @tompng in #408
- Fix x.fix and x.frac affected by prec limit, Stop -x and x.abs round with prec limit by @tompng in #409
- Don't use ZeroWrapLimited. Use unlimited version instead. by @tompng in #410
- Fix
x / yprecision when prec limit is huge by @tompng in #412 - Calculate exp, log, pow with the given prec even if prec limit is set by @tompng in #411
- Simplify to_i logic by @tompng in #413
- Add BigMath::E and BigMath::PI precision test by @tompng in #414
- Rewrite BigDecimal#sqrt in ruby with improved Newton's method by @tompng in #381
- Update bigdecimal version used in benchmark from 3.0.0 to 3.1.1 by @tompng in #416
- Implement BigDecimal#_decimal_shift for internal use by @tompng in #324
- In JRuby, don't add sqrt, exp, log, power implemented in ruby by @tompng in #417
- Add JRuby minimum ci by @tompng in #418
- Bump version to 3.2.3 by @tompng in #419
New Contributors
Full Changelog: v3.2.2...v3.2.3
v3.2.2
What's Changed
Full Changelog: v3.2.1...v3.2.2
v3.2.1
v3.2.0
What's Changed
- Fix spec NoMethodError message for .allocator on truffle Ruby by @mrzasa in #313
- Remove outdated BigMath.atan document that refers to convergence by @tompng in #318
- Add a precision assertion to BigMath test by @tompng in #316
- Use
Ractor#valueasRactor#takeis removed by @ko1 in #327 - Indent multiline call-seq comment by @tompng in #311
- Integrate BigDecimal_div and BigDecimal_div2 by @tompng in #329
- Fix division rounding by @tompng in #330
New Contributors
Full Changelog: v3.1.9...v3.2.0
v3.1.8
What's Changed
- Restore TruffleRuby on CI by @andrykonchin in #292
- Fix memory leak in VpAlloc by exception by @mrkn in #294
- Add missing documents by @nobu in #277
- Provide a 'Changelog' link on rubygems.org/gems/bigdecimal by @mark-young-atg in #281
New Contributors
- @andrykonchin made their first contribution in #292
- @mark-young-atg made their first contribution in #281
Full Changelog: v3.1.7...v3.1.8
v3.1.7
What's Changed
- Use macos-arm-oss and latest versions for test and benchmark CI by @hsbt in #285
- Support Ruby 3.4's new error message format by @mame in #286
- Rename
rake specwithrake testin documentation by @rhannequin in #287
New Contributors
- @mame made their first contribution in #286
- @rhannequin made their first contribution in #287
Full Changelog: v3.1.6...v3.1.7