Beispiel #1
0
static VALUE
nurat_s_new(VALUE klass, VALUE num, VALUE den)
{
    nurat_int_check(num);
    nurat_int_check(den);

    return nurat_s_canonicalize_internal(klass, num, den);
}
Beispiel #2
0
static VALUE
nurat_s_canonicalize(int argc, VALUE *argv, VALUE klass)
{
    VALUE num, den;

    if (rb_scan_args(argc, argv, "11", &num, &den) == 1) {
	den = ONE;
    }

    nurat_int_check(num);
    nurat_int_check(den);

    return nurat_s_canonicalize_internal(klass, num, den);
}
Beispiel #3
0
inline static VALUE
nurat_int_value(VALUE num)
{
    nurat_int_check(num);
    if (!k_integer_p(num))
	num = f_to_i(num);
    return num;
}
Beispiel #4
0
VALUE
rb_gcdlcm(VALUE self, VALUE other)
{
    nurat_int_check(other);
    return rb_assoc_new(f_gcd(self, other), f_lcm(self, other));
}
Beispiel #5
0
VALUE
rb_lcm(VALUE self, VALUE other)
{
    nurat_int_check(other);
    return f_lcm(self, other);
}
Beispiel #6
0
VALUE
rb_gcd(VALUE self, VALUE other)
{
    nurat_int_check(other);
    return f_gcd(self, other);
}