aboutsummaryrefslogtreecommitdiffstats
path: root/math.c
Commit message (Collapse)AuthorAgeFilesLines
* [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
* * math.c (math_log1, math_log2, math_log10): refactoringgogotanaka2015-03-161-23/+18
| | | | | | and tests for this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_cbrt): [DOC] Fix domain and codomain.gogotanaka2015-03-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: more robustnobu2015-03-141-3/+2
| | | | | | * math.c (math_gamma): make more robust against addition/removal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): rename NGAMMA_TABLE to NFACT_TABLE.gogotanaka2015-03-141-3/+3
| | | | | | specify the size of the fact_table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): explicit cast to double.gogotanaka2015-03-141-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): optimization for passed small integer.gogotanaka2015-03-141-7/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: fix tgamma on mingwnobu2015-03-101-0/+10
| | | | | | | * math.c (mingw_tgamma): tgamma(3) on mingw returns a NaN for a big number, not infinity. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c: refactoring: remove unnecessary variable d0 to unify codegogotanaka2015-03-051-40/+33
| | | | | | appearance. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (num2dbl_with_to_f): direct casting from Rational to double.gogotanaka2015-03-031-2/+13
| | | | | | [Feature #10909] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: optimization for Bignumnobu2015-01-301-7/+32
| | | | | | | * math.c (num2dbl_with_to_f): make faster when Bignum passed by direct conversion using rb_big2dbl(). [Feature #10800] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: deoptimizenobu2015-01-291-2/+17
| | | | | | | | * math.c (Get_Double): restrict direct casting only when Fixnum#to_f is not redefined, and convert with rb_to_float(). [Feature #10785] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: Get_Doublenobu2015-01-291-59/+28
| | | | | | | * math.c (Get_Double): direct casting from Fixnum to double. [Feature #10785] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e