diff options
| author | kimu_shu <[email protected]> | 2013-05-26 09:43:30 +0900 |
|---|---|---|
| committer | kimu_shu <[email protected]> | 2013-05-26 10:09:17 +0900 |
| commit | e720782f815b809a692818851582be019afe52a9 (patch) | |
| tree | a3c25239fb5afe2a33708e38d185a142f1c543a3 /src/numeric.c | |
| parent | d78f23d28b4706e58622493de60e17818b491fde (diff) | |
| download | mruby-e720782f815b809a692818851582be019afe52a9.tar.gz mruby-e720782f815b809a692818851582be019afe52a9.zip | |
Add MRB_WORD_BOXING mode (represent mrb_value as a word)
Diffstat (limited to 'src/numeric.c')
| -rw-r--r-- | src/numeric.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/numeric.c b/src/numeric.c index 14b4929e0..6b118dfb4 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -65,7 +65,7 @@ num_uplus(mrb_state *mrb, mrb_value num) static mrb_value num_uminus(mrb_state *mrb, mrb_value num) { - return mrb_float_value((mrb_float)0 - mrb_to_flo(mrb, num)); + return mrb_float_value(mrb, (mrb_float)0 - mrb_to_flo(mrb, num)); } static mrb_value @@ -95,7 +95,7 @@ num_pow(mrb_state *mrb, mrb_value x) d = pow(mrb_to_flo(mrb, x), mrb_to_flo(mrb, y)); if (both_int && FIXABLE(d)) return mrb_fixnum_value((mrb_int)d); - return mrb_float_value(d); + return mrb_float_value(mrb, d); } /* 15.2.8.3.4 */ @@ -112,7 +112,7 @@ num_pow(mrb_state *mrb, mrb_value x) mrb_value mrb_num_div(mrb_state *mrb, mrb_value x, mrb_value y) { - return mrb_float_value(mrb_to_flo(mrb, x) / mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, mrb_to_flo(mrb, x) / mrb_to_flo(mrb, y)); } /* 15.2.9.3.19(x) */ @@ -129,7 +129,7 @@ num_div(mrb_state *mrb, mrb_value x) mrb_float y; mrb_get_args(mrb, "f", &y); - return mrb_float_value(mrb_to_flo(mrb, x) / y); + return mrb_float_value(mrb, mrb_to_flo(mrb, x) / y); } /* @@ -297,7 +297,7 @@ flo_minus(mrb_state *mrb, mrb_value x) mrb_value y; mrb_get_args(mrb, "o", &y); - return mrb_float_value(mrb_float(x) - mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, mrb_float(x) - mrb_to_flo(mrb, y)); } /* 15.2.9.3.3 */ @@ -315,7 +315,7 @@ flo_mul(mrb_state *mrb, mrb_value x) mrb_value y; mrb_get_args(mrb, "o", &y); - return mrb_float_value(mrb_float(x) * mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, mrb_float(x) * mrb_to_flo(mrb, y)); } static void @@ -366,7 +366,7 @@ flo_mod(mrb_state *mrb, mrb_value x) fy = mrb_to_flo(mrb, y); flodivmod(mrb, mrb_float(x), fy, 0, &mod); - return mrb_float_value(mod); + return mrb_float_value(mrb, mod); } /* 15.2.8.3.16 */ @@ -545,7 +545,7 @@ flo_floor(mrb_state *mrb, mrb_value num) mrb_float f = floor(mrb_float(num)); if (!FIXABLE(f)) { - return mrb_float_value(f); + return mrb_float_value(mrb, f); } return mrb_fixnum_value((mrb_int)f); } @@ -570,7 +570,7 @@ flo_ceil(mrb_state *mrb, mrb_value num) mrb_float f = ceil(mrb_float(num)); if (!FIXABLE(f)) { - return mrb_float_value(f); + return mrb_float_value(mrb, f); } return mrb_fixnum_value((mrb_int)f); } @@ -642,7 +642,7 @@ flo_round(mrb_state *mrb, mrb_value num) if (ndigits < 0) number *= f; else number /= f; } - if (ndigits > 0) return mrb_float_value(number); + if (ndigits > 0) return mrb_float_value(mrb, number); return mrb_fixnum_value((mrb_int)number); } @@ -666,7 +666,7 @@ flo_truncate(mrb_state *mrb, mrb_value num) if (f < 0.0) f = ceil(f); if (!FIXABLE(f)) { - return mrb_float_value(f); + return mrb_float_value(mrb, f); } return mrb_fixnum_value((mrb_int)f); } @@ -750,11 +750,11 @@ mrb_fixnum_mul(mrb_state *mrb, mrb_value x, mrb_value y) return mrb_fixnum_value(a*b); c = a * b; if (a != 0 && c/a != b) { - return mrb_float_value((mrb_float)a*(mrb_float)b); + return mrb_float_value(mrb, (mrb_float)a*(mrb_float)b); } return mrb_fixnum_value(c);; } - return mrb_float_value((mrb_float)a * mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, (mrb_float)a * mrb_to_flo(mrb, y)); } /* 15.2.8.3.3 */ @@ -826,7 +826,7 @@ fix_mod(mrb_state *mrb, mrb_value x) mrb_int mod; if (mrb_fixnum(y) == 0) { - return mrb_float_value(str_to_mrb_float("nan")); + return mrb_float_value(mrb, str_to_mrb_float("nan")); } fixdivmod(mrb, a, mrb_fixnum(y), 0, &mod); return mrb_fixnum_value(mod); @@ -835,7 +835,7 @@ fix_mod(mrb_state *mrb, mrb_value x) mrb_float mod; flodivmod(mrb, (mrb_float)a, mrb_to_flo(mrb, y), 0, &mod); - return mrb_float_value(mod); + return mrb_float_value(mrb, mod); } } @@ -856,8 +856,8 @@ fix_divmod(mrb_state *mrb, mrb_value x) mrb_int div, mod; if (mrb_fixnum(y) == 0) { - return mrb_assoc_new(mrb, mrb_float_value(str_to_mrb_float("inf")), - mrb_float_value(str_to_mrb_float("nan"))); + return mrb_assoc_new(mrb, mrb_float_value(mrb, str_to_mrb_float("inf")), + mrb_float_value(mrb, str_to_mrb_float("nan"))); } fixdivmod(mrb, mrb_fixnum(x), mrb_fixnum(y), &div, &mod); return mrb_assoc_new(mrb, mrb_fixnum_value(div), mrb_fixnum_value(mod)); @@ -867,8 +867,8 @@ fix_divmod(mrb_state *mrb, mrb_value x) mrb_value a, b; flodivmod(mrb, (mrb_float)mrb_fixnum(x), mrb_to_flo(mrb, y), &div, &mod); - a = mrb_float_value((mrb_int)div); - b = mrb_float_value(mod); + a = mrb_float_value(mrb, (mrb_int)div); + b = mrb_float_value(mrb, mod); return mrb_assoc_new(mrb, a, b); } } @@ -1121,7 +1121,7 @@ fix_to_f(mrb_state *mrb, mrb_value num) val = (mrb_float)mrb_fixnum(num); - return mrb_float_value(val); + return mrb_float_value(mrb, val); } /* @@ -1175,11 +1175,11 @@ mrb_fixnum_plus(mrb_state *mrb, mrb_value x, mrb_value y) c = a + b; if (((a < 0) ^ (b < 0)) == 0 && (a < 0) != (c < 0)) { /* integer overflow */ - return mrb_float_value((mrb_float)a + (mrb_float)b); + return mrb_float_value(mrb, (mrb_float)a + (mrb_float)b); } return mrb_fixnum_value(c); } - return mrb_float_value((mrb_float)a + mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, (mrb_float)a + mrb_to_flo(mrb, y)); } /* 15.2.8.3.1 */ @@ -1213,11 +1213,11 @@ mrb_fixnum_minus(mrb_state *mrb, mrb_value x, mrb_value y) c = a - b; if (((a < 0) ^ (b < 0)) != 0 && (a < 0) != (c < 0)) { /* integer overflow */ - return mrb_float_value((mrb_float)a - (mrb_float)b); + return mrb_float_value(mrb, (mrb_float)a - (mrb_float)b); } return mrb_fixnum_value(c); } - return mrb_float_value((mrb_float)a - mrb_to_flo(mrb, y)); + return mrb_float_value(mrb, (mrb_float)a - mrb_to_flo(mrb, y)); } /* 15.2.8.3.2 */ @@ -1347,7 +1347,7 @@ flo_plus(mrb_state *mrb, mrb_value self) x = mrb_float(self); mrb_get_args(mrb, "f", &y); - return mrb_float_value(x + y); + return mrb_float_value(mrb, x + y); } /* ------------------------------------------------------------------------*/ void |
