summaryrefslogtreecommitdiffhomepage
path: root/src/numeric.c
AgeCommit message (Collapse)Author
2018-09-19Remove implicit conversion using `to_int` method.Yukihiro "Matz" Matsumoto
The ISO standard does not include implicit type conversion using `to_int`. This implicit conversion often causes vulnerability. There will be no more attacks like #4120. In addition, we have added internal convenience method `__to_int` which does type check and conversion (from floats).
2018-09-07Clear terminated spacedearblue
2018-08-06Small refactoring of `flodivmod()`.Yukihiro "Matz" Matsumoto
2018-05-01Update `MRB_FLO_TO_STR_FMT` to "%.16g"; fix #4016Yukihiro "Matz" Matsumoto
2017-11-22Provide shortcut comparison methods for numbers for performance.Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-10-17Add `Numeric#{finite?,infinite?}`; CRuby2.4Yukihiro "Matz" Matsumoto
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-09-27fix: src\numeric.c(1215): warning C4244: 'function': conversion from ↵Tomasz Dąbrowski
'mrb_int' to 'int', possible loss of data
2017-09-27fix: src\numeric.c(954): warning C4334: '<<': result of 32-bit shift ↵Tomasz Dąbrowski
implicitly converted to 64 bits (was 64-bit shift intended?)
2017-09-27fix: src\numeric.c(897): warning C4244: 'function': conversion from ↵Tomasz Dąbrowski
'mrb_int' to 'mrb_float', possible loss of data
2017-09-02Trying to make the source code more understandable by removing mixing of ↵Flavio Medeiros
ternary if statements with attributions.
2017-08-22Remove possible path that leaves a local variable uninitialized.Yukihiro "Matz" Matsumoto
2017-08-10Remove redundant `flo_hash` function.Yukihiro "Matz" Matsumoto
`flo_hash` implemented `15.2.8.3.18` but `Kernel#hash` (15.3.1.3.15) now works for numbers.
2017-08-08Float values divided by zero should honor signs; fix #3766Yukihiro "Matz" Matsumoto
It also fixes unexpected resurrection of #3745 by #3752
2017-07-26`(0).div(0.0)` should be NaN; fix #3754Yukihiro "Matz" Matsumoto
2017-07-25`(0.0).div(0)` should not be infinity; fix #3753Yukihiro "Matz" Matsumoto
2017-07-05Avoid undefined behavior of left shifting negative integer; #3728Yukihiro "Matz" Matsumoto
2017-06-17Use `mrb_int` instead of `int`.Yukihiro "Matz" Matsumoto
2017-05-31Avoid infinite loop on negative exponent; fix #3677Yukihiro "Matz" Matsumoto
2017-05-27Fixed rounding functions (round,ceil,floor,truncate) in MRB_INT64.Yukihiro "Matz" Matsumoto
They didn't work well with inexact numbers (inf,nan). Fix #3671
2017-05-26Add new range check macro FIXABLE_FLOAT(); ref #3652Yukihiro "Matz" Matsumoto
When MRB_INT64, valid value range of mrb_int is bigger than double, which only has 53 bits significant precision.
2017-05-26Fix indentation in mrb_init_numeric()Yukihiro "Matz" Matsumoto
2017-05-26fixup! Let Fixnum#{ceil,floor,round,truncate} to return itself; #3652Yukihiro "Matz" Matsumoto
2017-05-26Let Fixnum#{ceil,floor,round,truncate} to return itself; #3652Yukihiro "Matz" Matsumoto
2017-05-26Try our own `ipow()` if both base and exp are fixnums; fix #3652Yukihiro "Matz" Matsumoto
2017-04-21`mrb_int` may overflow in bit-shifting; fix #3620Yukihiro "Matz" Matsumoto
2017-04-21Bit-shifting zero should be zero; ref #3620Yukihiro "Matz" Matsumoto
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-03-29Should raise FloatDomainErrorksss
2017-03-20Add explicit cast from float to mrb_int.Yukihiro "Matz" Matsumoto
2017-01-01Initialize potentially uninitialized variable zYukihiro "Matz" Matsumoto
2016-12-08fix build on vs2013-vs2015Yasuhiro Matsumoto
2016-11-30Prohibit instantiation of immediate objectsYukihiro "Matz" Matsumoto
2016-11-23Implement Float shift methods in CYukihiro "Matz" Matsumoto
2016-11-22int64_value(): use FIXABLE()Yukihiro "Matz" Matsumoto
2016-11-22accept floats as bit operator operands; fix #3260Yukihiro "Matz" Matsumoto
2016-11-22Removed fix_shift_get_width()Yukihiro "Matz" Matsumoto
Fixnum is usually big enough for shift width.
2016-11-22add bit operators ~,&,|,^ to Float class (mruby special)Yukihiro "Matz" Matsumoto
2016-09-28Removed trailing spacesNobuyoshi Nakada
2016-05-10use mrb_int_mul_overflow()cremno
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2015-11-19integer range check was moved to mrb_flo_to_fixnum(); ref #3025Yukihiro "Matz" Matsumoto
2015-11-18Bugfix nagative-number lshift() bit overflowmurase_syuka
2015-11-18Bugfix lshift() bit overflow; close #3023murase_syuka
2015-11-16fix commentmurase_syuka
2015-10-20Increasing docs coverageSeba Gamboa
2015-09-02Integer << and >> to use Float instead of raising RangeErrorYukihiro "Matz" Matsumoto
2015-08-07FIXABLE() may work wrong on MRB_INT64; fix #2909Yukihiro "Matz" Matsumoto
2015-06-29Avoid a narrowing cast in flo_round under MRB_INT64.Simon Génier