aboutsummaryrefslogtreecommitdiffstats
path: root/rational.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-12-29 09:05:59 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-12-29 09:05:59 +0000
commitcafb5d47ef6aee299f7fedf5f3622fe4e2866d5f (patch)
tree65d83c327118d4165eb890dd6ec7d56a59ab425d /rational.c
parent850378662ea3e769caa1a9c3a6fb7bab6383b9fc (diff)
downloadruby-cafb5d47ef6aee299f7fedf5f3622fe4e2866d5f.tar.gz
rational.c: canonicalization
* rational.c (canonicalization): define always regardless CANON, and remove unnecessary ifdefs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'rational.c')
-rw-r--r--rational.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/rational.c b/rational.c
index a78b347c08..a7d7daf892 100644
--- a/rational.c
+++ b/rational.c
@@ -445,6 +445,8 @@ nurat_canonicalization(int f)
{
canonicalization = f;
}
+#else
+# define canonicalization 0
#endif
inline static void
@@ -489,10 +491,8 @@ nurat_s_canonicalize_internal(VALUE klass, VALUE num, VALUE den)
num = f_idiv(num, gcd);
den = f_idiv(den, gcd);
-#ifdef CANON
- if (f_one_p(den) && canonicalization)
+ if (canonicalization && f_one_p(den))
return num;
-#endif
return nurat_s_new_internal(klass, num, den);
}
@@ -501,10 +501,8 @@ nurat_s_canonicalize_internal_no_reduce(VALUE klass, VALUE num, VALUE den)
{
nurat_canonicalize(&num, &den);
-#ifdef CANON
- if (f_one_p(den) && canonicalization)
+ if (canonicalization && f_one_p(den))
return num;
-#endif
return nurat_s_new_internal(klass, num, den);
}
@@ -1957,13 +1955,10 @@ numeric_quo(VALUE x, VALUE y)
return rb_funcall(x, rb_intern("fdiv"), 1, y);
}
-#ifdef CANON
if (canonicalization) {
x = rb_rational_raw1(x);
}
- else
-#endif
- {
+ else {
x = rb_convert_type(x, T_RATIONAL, "Rational", "to_r");
}
return nurat_div(x, y);
@@ -2338,14 +2333,12 @@ read_num(const char **s, int numsign, int strict,
return 0;
{
VALUE l = f_expt10(INT2NUM(count));
-#ifdef CANON
if (canonicalization) {
*num = rb_int_mul(*num, l);
*num = rb_int_plus(*num, fp);
*num = rb_rational_new2(*num, l);
}
else
-#endif
{
*num = nurat_mul(*num, l);
*num = rb_rational_plus(*num, fp);