aboutsummaryrefslogtreecommitdiffstats
path: root/math.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix logarithm of 0 with baseNobuyoshi Nakada2023-07-171-3/+2
|
* Prefer integer as base of intermediate logarithmsNobuyoshi Nakada2023-07-161-21/+41
| | | | | | | As long as "floating point numbers" cannot accurately represent an irrational number, the result of the natural logarithm cannot be accurate. Logarithms with an integer base may have the possibility to represent more accurately.
* Introduce math_arc macroS-H-GAMELINKS2023-05-131-10/+8
|
* Expand tabs [ci skip]Takashi Kokubun2022-07-211-34/+34
| | | | [Misc #18891]
* [DOC] Enhanced RDoc for Math module (#5837)Burdette Lamar2022-04-251-242/+340
| | | | | | Revises intro. Adds "What's Here". Revises methods doc.
* Using RB_FLOAT_TYPE_P macroS-H-GAMELINKS2021-09-121-1/+1
|
* Using RB_BIGNUM_TYPE_P macroS-H-GAMELINKS2021-09-111-2/+0
|
* Use C99-defined signbit macroNobuyoshi Nakada2021-08-271-5/+0
|
* Replace f_boolcast with RBOOL macroS.H2021-08-181-3/+2
| | | | | | | * Move f_boolcast definination * Remove f_boolcast macro defination * to
* Add domain check macrosNobuyoshi Nakada2021-07-041-17/+13
|
* Removed extra double quotes from domain error messagesNobuyoshi Nakada2021-07-041-1/+1
|
* Fix Math.cbrt(0.0) on glibcJeremy Evans2021-05-081-1/+1
| | | | | | This should return 0, but on glibc it returned NaN. Fixes [Bug #17804]
* [DOC] Fix grammar: "is same as" -> "is the same as"Marcus Stollsteimer2021-01-051-3/+3
|
* sed -i 's|ruby/impl|ruby/internal|'卜部昌平2020-05-111-1/+1
| | | | To fix build failures.
* sed -i s|ruby/3|ruby/impl|g卜部昌平2020-05-111-1/+1
| | | | This shall fix compile errors.
* Merge pull request #2991 from shyouhei/ruby.h卜部昌平2020-04-081-1/+1
| | | Split ruby.h
* decouple internal.h headers卜部昌平2019-12-261-2/+11
| | | | | | | | | | | | | | | | | | Saves comitters' daily life by avoid #include-ing everything from internal.h to make each file do so instead. This would significantly speed up incremental builds. We take the following inclusion order in this changeset: 1. "ruby/config.h", where _GNU_SOURCE is defined (must be the very first thing among everything). 2. RUBY_EXTCONF_H if any. 3. Standard C headers, sorted alphabetically. 4. Other system headers, maybe guarded by #ifdef 5. Everything else, sorted alphabetically. Exceptions are those win32-related headers, which tend not be self- containing (headers have inclusion order dependencies).
* [DOC] Fix wording in Math::E documentationMarcus Stollsteimer2019-12-241-1/+1
|
* make functions static卜部昌平2019-11-191-1/+3
| | | | | | | These functions are used from within a compilation unit so we can make them static, for better binary size. This changeset reduces the size of generated ruby binary from 26,590,128 bytes to 26,584,472 bytes on my macihne.
* Add word "Euler's number" to Math::E docsschneems2019-08-291-1/+1
| | | | When searching for this constant, I landed on the correct page https://ruby-doc.org/core-2.6.4/Math.html however I was using CMD+f to search for "Euler" and did not find it. If we add the full name for this constant then it will be easier to search for and find.
* math.c: adjust cbrtnobu2018-06-061-1/+8
| | | | | | | * math.c (math_cbrt): refine the approximation result on boundary values by an iteration of Newton-Raphson method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: calling ordernobu2018-03-091-7/+7
| | | | | | | * math.c (math_log, rb_math_log): inverted calling order, to remove unused argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* INFINITY is float. That of double is HUGE_VAL.shyouhei2018-01-191-9/+9
| | | | | | | | | | It seems HUGE_VAL is already used. Why not eliminate INTINITY. NAN is also float. That of double is called nan(). This is also fixed. Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: check argument to lgamma_rnobu2017-05-131-16/+4
| | | | | | | * math.c (math_lgamma): check the argument before calling math function `lgamma_r` for edge cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: check argument to tgammanobu2017-05-131-1/+7
| | | | | | | * math.c (math_gamma): check the argument before calling math function `tgamma` for edge cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix tgamma for inifitynobu2017-05-121-16/+0
| | | | | | | | | | * configure.in: do not use buggy tgamma() of mingw. * missing/tgamma.c (tgamma): merge fix for inifity from ruby_tgamma. since msvcr120.dll and later have tgamma, this implementation will not be used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Math.gamma(Float::INFINITY) should return +INFusa2017-05-121-1/+1
| | | | | | | | * math.c (tgamma): it seems that the implementaion of mswin has similar problem with mingw. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c (ruby_lgamma_r): reduce duplicate codenobu2017-05-101-5/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: improve docs for Math.sqrtstomar2017-05-061-1/+1
| | | | | | * math.c: [DOC] mention Integer.sqrt in docs for Math.sqrt. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: improve docs for Math.sqrtstomar2017-04-091-0/+7
| | | | | | | * math.c: [DOC] mention possibly surprising behavior of Math.sqrt due to floating point arithmetic; also refer to BigDecimal#sqrt. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: more accuracynobu2017-03-051-1/+1
| | | | | | | * math.c (math_log10): calculate log10(2) for more accuracy. [ruby-core:79907] [Bug #13279] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: unused_objnobu2016-11-191-29/+29
| | | | | | | * math.c (exp1, exp2): use immediate 0 instead of rb_mMath, which is never used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: remove needless ifdef clausemrkn2016-11-161-4/+0
| | | | | | | * math.c (ifdef M_PI): M_PI is eventually defined in missing.h even if math.h doesn't supply it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] replace Fixnum with Integer [ci skip]nobu2016-10-261-1/+1
| | | | | | * numeric.c: [DOC] update document for Integer class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: faster tanhnobu2016-08-021-0/+5
| | | | | | | * math.c (tanh): make faster by the extract form if three hyperbolic functions are unavailable. [Feature #12647] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: tanh overflownobu2016-08-021-1/+3
| | | | | | * math.c (tanh): check overflows, and return +-1.0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (_USE_MATH_DEFINES): it must be set before including internal.husa2016-07-131-1/+1
| | | | | | | | | | because internal.h includes ruby.h, ruby.h includes win32.h, and win32.h includes system's math.h. this change is to get rid of a compiler warning (redefinition of a macro) introduced at r55641. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typenaruse2016-07-131-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (rb_math_sqrt): r55646 must use f_signbit.naruse2016-07-131-1/+19
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: Complex sqrtnobu2016-07-121-0/+15
| | | | | | | * math.c (rb_math_sqrt): [EXPERIMENTAL] move Complex sqrt support from mathn.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: get_double_rshiftnobu2016-07-121-25/+12
| | | | | | | * math.c (get_double_rshift): extract bignum to double conversion with bit offset. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: use common constantsnobu2016-07-121-2/+12
| | | | | | | * math.c (math_log1, math_log10): use common math constants instead of math function calls. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (rb_cv_lgamma_r_pm0): check if lgamma_r(+0.0)odaira2016-04-271-1/+4
| | | | | | | | | returns positive infinity, in addition to lgamma_r(-0.0). AIX returns an incorrect result of negative infinity. * math.c (ruby_lgamma_r): handle +0.0, in addition to -0.0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: check lgamma_r(-0.0)nobu2016-04-061-1/+1
| | | | | | | | * configure.in (rb_cv_lgamma_r_m0): check if lgamma_r(-0.0) returns negative infinity. [Bug #12249] * math.c (ruby_lgamma_r): define by the configured result. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lgamma_r.c: fix at -0.0nobu2016-04-061-1/+1
| | | | | | | | | * math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows, since msvcrt does not provide it. * missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0). [ruby-core:74823] [Bug #12249] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.usa2016-04-051-1/+1
| | | | | | | cf. [Bug #12249] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: fix lgammanobu2016-04-051-0/+16
| | | | | | * math.c (ruby_lgamma_r): fix lgamma(-0.0) on mingw and OSX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: fix tgammanobu2016-04-051-4/+10
| | | | | | | * math.c (ruby_tgamma): fix tgamma(-0.0) on mingw. [ruby-core:74817] [Bug #12249] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: rb_num_to_dblnobu2015-08-131-46/+1
| | | | | | * object.c (rb_num_to_dbl): move from num2dbl_with_to_f in math.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby/missing.h: M_PI fallback definitionnobu2015-07-211-3/+0
| | | | | | | * include/ruby/missing.h (M_PI, M_PI_2): fallback definitions for VC6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e