Expanded f_quo
This commit is contained in:
parent
98c22c78e4
commit
d69ffa4d93
14
complex.c
14
complex.c
@ -285,7 +285,19 @@ f_eqeq_p(VALUE x, VALUE y)
|
|||||||
|
|
||||||
fun2(expt)
|
fun2(expt)
|
||||||
fun2(fdiv)
|
fun2(fdiv)
|
||||||
fun2(quo)
|
|
||||||
|
static VALUE
|
||||||
|
f_quo(VALUE x, VALUE y)
|
||||||
|
{
|
||||||
|
if (RB_INTEGER_TYPE_P(x))
|
||||||
|
return rb_numeric_quo(x, y);
|
||||||
|
if (RB_FLOAT_TYPE_P(x))
|
||||||
|
return rb_float_div(x, y);
|
||||||
|
if (RB_TYPE_P(x, T_RATIONAL))
|
||||||
|
return rb_numeric_quo(x, y);
|
||||||
|
|
||||||
|
return rb_funcallv(x, id_quo, 1, &y);
|
||||||
|
}
|
||||||
|
|
||||||
inline static int
|
inline static int
|
||||||
f_negative_p(VALUE x)
|
f_negative_p(VALUE x)
|
||||||
|
@ -1763,6 +1763,7 @@ VALUE rb_float_plus(VALUE x, VALUE y);
|
|||||||
VALUE rb_int_minus(VALUE x, VALUE y);
|
VALUE rb_int_minus(VALUE x, VALUE y);
|
||||||
VALUE rb_int_mul(VALUE x, VALUE y);
|
VALUE rb_int_mul(VALUE x, VALUE y);
|
||||||
VALUE rb_float_mul(VALUE x, VALUE y);
|
VALUE rb_float_mul(VALUE x, VALUE y);
|
||||||
|
VALUE rb_float_div(VALUE x, VALUE y);
|
||||||
VALUE rb_int_idiv(VALUE x, VALUE y);
|
VALUE rb_int_idiv(VALUE x, VALUE y);
|
||||||
VALUE rb_int_modulo(VALUE x, VALUE y);
|
VALUE rb_int_modulo(VALUE x, VALUE y);
|
||||||
VALUE rb_int_round(VALUE num, int ndigits, enum ruby_num_rounding_mode mode);
|
VALUE rb_int_round(VALUE num, int ndigits, enum ruby_num_rounding_mode mode);
|
||||||
|
@ -1122,8 +1122,8 @@ rb_flo_div_flo(VALUE x, VALUE y)
|
|||||||
* Returns a new Float which is the result of dividing +float+ by +other+.
|
* Returns a new Float which is the result of dividing +float+ by +other+.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static VALUE
|
VALUE
|
||||||
flo_div(VALUE x, VALUE y)
|
rb_float_div(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
double num = RFLOAT_VALUE(x);
|
double num = RFLOAT_VALUE(x);
|
||||||
double den;
|
double den;
|
||||||
@ -5791,7 +5791,7 @@ Init_Numeric(void)
|
|||||||
rb_define_method(rb_cFloat, "+", rb_float_plus, 1);
|
rb_define_method(rb_cFloat, "+", rb_float_plus, 1);
|
||||||
rb_define_method(rb_cFloat, "-", flo_minus, 1);
|
rb_define_method(rb_cFloat, "-", flo_minus, 1);
|
||||||
rb_define_method(rb_cFloat, "*", rb_float_mul, 1);
|
rb_define_method(rb_cFloat, "*", rb_float_mul, 1);
|
||||||
rb_define_method(rb_cFloat, "/", flo_div, 1);
|
rb_define_method(rb_cFloat, "/", rb_float_div, 1);
|
||||||
rb_define_method(rb_cFloat, "quo", flo_quo, 1);
|
rb_define_method(rb_cFloat, "quo", flo_quo, 1);
|
||||||
rb_define_method(rb_cFloat, "fdiv", flo_quo, 1);
|
rb_define_method(rb_cFloat, "fdiv", flo_quo, 1);
|
||||||
rb_define_method(rb_cFloat, "%", flo_mod, 1);
|
rb_define_method(rb_cFloat, "%", flo_mod, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user