summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-numeric-ext/src/numeric_ext.c
AgeCommit message (Collapse)Author
2021-08-21Organize the include of header filesdearblue
- `#include <math.h>` is done in `mruby.h`. Eliminate the need to worry about the `MRB_NO_FLOAT` macro. - Include mruby header files before standard header files. If the standard header file is already placed before `mruby.h`, the standard header file added in the future tends to be placed before `mruby.h`. This change should some reduce the chances of macros that must be defined becoming undefined in C++ or including problematic header files in a particular mruby build configuration.
2021-08-06numeric_ext.c: fix a bug regarding `MRB_INT_MIN`.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: `modulo` and `remainder` should handle infinite argument.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: add `Float#modulo` and `#remainder` methods.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: update `Integer#remainder` method.Yukihiro "Matz" Matsumoto
- need to detect zero division error - support floating point number argument (as `%`)
2021-08-03numeric_ext.c: use `mrb_integer` instead of `mrb_as_int`.Yukihiro "Matz" Matsumoto
`mrb_as_int` implicitly converts the value into the integer, but those methods are defined for Integer class so that the value should always be integers.
2021-08-03numeric_ext.c: define `modulo` and `remainder` methods for `Integer`.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: remove unnecessary prefix `mrb_` from static functions.Yukihiro "Matz" Matsumoto
2021-07-25Remove redundant include headers.Yukihiro "Matz" Matsumoto
- stdlib.h - stddef.h - stdint.h - stdarg.h - limits.h - float.h
2021-05-17Global renaming regarding `integer` and `float`.Yukihiro "Matz" Matsumoto
Consistent number conversion function names: * `mrb_value` to immediate (C) value * `mrb_int()` -> `mrb_as_int()` * `mrb_to_flo()` -> `mrb_as_float()` * `mrb_value` to `mrb_value` (converted) * `mrb_to_int()' * `mrb_Integer()` - removed * `mrb_Float()` -> `mrb_to_float` Consistent function name (avoid `_flo` suffix): * `mrb_div_flo()` -> `mrb_div_float`
2021-01-26Revert "Minimize the changes in #5277"Yukihiro "Matz" Matsumoto
This reverts commit dc51d89ac22acc60b9bfeed87115863565b74085.
2021-01-22Minimize the changes in #5277Yukihiro "Matz" Matsumoto
Instead of including `mruby/presym.h` everywhere, we provided the fallback `mruby/presym.inc` under `include/mruby` directory, and specify `-I<build-dir>/include` before `-I<top-dir>/include` in `presym.rake`. So even when someone drops `-I<build-dir>/include` in compiler options, it just compiles without failure.
2021-01-11Avoid including `presym.inc` in existing header filesKOBAYASHI Shuji
Addressed an issue where existing programs linking `libmruby.a` could only be built by adding `<build-dir>/include` to compiler's include path.
2020-10-12Reorganize `Integer` system.Yukihiro "Matz" Matsumoto
- Integrate `Fixnum` and `Integer` - Remove `Integral` - `int / int -> int` - Replace `mrb_fixnum()` to `mrb_int()` - Replace `mrb_fixnum_value()` to `mrb_int_value()`. - Use `mrb_integer_p()` instead of `mrb_fixnum_p()`
2020-10-12Rename float configuration option names.Yukihiro "Matz" Matsumoto
- `MRB_WITHOUT_FLOAT` => `MRB_NO_FLOAT` - `MRB_USE_FLOAT` => `MRB_USE_FLOAT32` The former is to use `USE_XXX` naming convention. The latter is to make sure `float` is 32bit float and not floating point number in general.
2020-10-12Use functions that take symbols to reduce string litrals in C.Yukihiro "Matz" Matsumoto
2019-08-05Merge pull request #4614 from ↵Yukihiro "Matz" Matsumoto
shuujii/use-mrb_int-instead-of-to_int-in-mruby-numeric-ext Use `mrb_int()` instead of `to_int()` in `mruby-numeric-ext`
2019-08-04Use `mrb_int()` instead of `to_int()` in `mruby-numeric-ext`KOBAYASHI Shuji
2019-08-04Add constants for floating point numberdearblue
2019-07-21Integrate `Integral#chr` (`Fixnum#chr`) to `mruby-string-ext`KOBAYASHI Shuji
Because they're defined in both `mruby-string-ext` and `mruby-numeric-ext` (they seem more natural to define in N, but `mruby-string-ext` depends on `Integral#chr`).
2018-11-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).
2017-12-26Add `Integer#{allbits?,anybits?,nobits?}. [Ruby2.5]Yukihiro "Matz" Matsumoto
In mruby, those methods are defined in `Integral` module.
2017-12-26Move `Intefer#chr` to `Integral#chr`.Yukihiro "Matz" Matsumoto
Since mruby mixes `Integer` and `Float`, integer operations have been moved to `Integral` module.
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2014-01-07remove superfluous includescremno
- reduce compile time by a little bit (full-core: ~0.7s for me) - thanks to 'include-what-you-use' for some help - include Standard C header files before any other (coding style)
2013-04-25rename every ARGS_XXX to MRB_ARGS_XXX; ref #1206Yukihiro "Matz" Matsumoto
2013-04-01Fix to fit new raisef format.Masaki Muranaka
2013-03-29Remove limits.h from numeric.h. Add limits.h to some C files.Masaki Muranaka
2013-03-08define and use print format macros for mrb_intCremno
For portability: %ld can't be used to print a 64-bit mrb_int on WIN(32|64) because long is 32-bit wide.
2013-03-08add mrbgems/ext/mruby-numeric, and method: Integer#chrKouki Ooyatsu