summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-rational/mrblib/rational.rb
AgeCommit message (Collapse)Author
2021-03-24rational.c: implement `Rational#<=>` in C.Yukihiro "Matz" Matsumoto
2021-03-24rational.c: implement `Rational#/` and `#quo` in C.Yukihiro "Matz" Matsumoto
2021-03-24rational.c: implement `Rational#*` in C.Yukihiro "Matz" Matsumoto
2021-03-24rational.c: implement `Rational#-` in C.Yukihiro "Matz" Matsumoto
2021-03-24rational.c: implement `Rational#+` in C.Yukihiro "Matz" Matsumoto
2021-03-19rational.c: overhaul rational operators.Yukihiro "Matz" Matsumoto
- define `MRB_TT_RATIONAL` - change object structure (`struct RRational`) - add memory management for `MRB_TT_RATIONAL` - avoid operator overloading as much as possible - implement division overloading in C - as a result, performance improved a lot
2021-01-17Define `Rational#quo`; fix #5268Yukihiro "Matz" Matsumoto
2020-10-12Made `Rational` overhaul.Yukihiro "Matz" Matsumoto
- Implement `Rational()` in `C`. - Use `float` to `rational` conversion function taken from: https://rosettacode.org/wiki/Convert_decimal_number_to_rational#C
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-12Integrate `Fixnum` class into `Integer` classdearblue
* The `Fixnum` constant is now an alias for the `Integer` class. * Remove `struct mrb_state::fixnum_class` member. If necessary, use `struct mrb_state::integer_class` instead.
2020-06-20Symbolify saved alias name to improve performance.Yukihiro "Matz" Matsumoto
2019-07-18Avoid making top-level `env` in initialization code; ref #4581Yukihiro "Matz" Matsumoto
2019-05-29Slightly simplify `Rational#==`; ref #4475Yukihiro "Matz" Matsumoto
2019-05-27Fix `Rational#==(Complex)`KOBAYASHI Shuji
Consider a Numreic class like `Complex` that does not have `<=>` but `==` works (`0i == 0r` is `true`).
2019-05-22`Kernel#Rational` requires numeratorKOBAYASHI Shuji
2019-05-21Should not refer `Float` class in case of `MRB_WITHOUT_FLOAT`.Yukihiro "Matz" Matsumoto
This commit removes `Float` from `rational.c`.
2019-05-21Move `**`,`/`,`quo`,`div` and comparison methods to Integral from NumericKOBAYASHI Shuji
Having these methods in Numeric can get in the way of creating subclasses of Numeric because they only support Fixnum and Float.
2019-05-20Drop dependency from `mruby-rational` to `mruby-object-ext`KOBAYASHI Shuji
2019-05-19Fix `Rational#<=>(Numeric)`KOBAYASHI Shuji
Reported by Sergey Ukrainskiy: https://github.com/mruby/mruby/commit/f5fb1307b017fb972c12b4ec4b1866d789b0ca09#r33590698
2019-05-18Move `Object#(Rational|Complex)` to `Kernel`KOBAYASHI Shuji
2019-05-18Implement `Rational._new` in C.Yukihiro "Matz" Matsumoto
2019-05-17Merge pull request #4442 from ↵Yukihiro "Matz" Matsumoto
shuujii/drop-dependency-from-mruby-rational-to-mruby-numeric-ext Drop dependency from `mruby-rational` to `mruby-numeric-ext`
2019-05-17Drop dependency from `mruby-rational` to `mruby-numeric-ext`KOBAYASHI Shuji
2019-05-17Fix `Numeric#to_r`KOBAYASHI Shuji
2019-05-17Implement part of `Rational` in C.Yukihiro "Matz" Matsumoto
2019-05-17Avoid direct access to instance variables in `rational.rb`.Yukihiro "Matz" Matsumoto
2019-05-17Fixed wrong overloading.Yukihiro "Matz" Matsumoto
`float op rational` should return `float`, since float is an inexact value.
2019-05-17Use `div` (integer divition) instead of `/` for rational numbers.Yukihiro "Matz" Matsumoto
2019-05-16Fix `Rational#==`KOBAYASHI Shuji
2019-05-15Fix dependenciesUkrainskiy Sergey
2019-05-15Basic implementation of Complex and Rational classesUkrainskiy Sergey
2019-05-15Initial suffix supportUkrainskiy Sergey