diff options
author | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-18 15:17:19 +0000 |
---|---|---|
committer | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-18 15:17:19 +0000 |
commit | 6562c6ecc253b7b5f743d323092bc2be5c4dce87 (patch) | |
tree | 523f90b6abc0ba5848552494e1efb1fb3ebbcbbf /numeric.c | |
parent | c94c7a4d94ac07e05753b6c255765646c9a27993 (diff) | |
download | ruby-6562c6ecc253b7b5f743d323092bc2be5c4dce87.tar.gz |
complex.c: optimize f_negate
* complex.c (f_negate): optimize for special numeric types.
* complex.c (nucomp_expt): use rb_int_uminus instead of f_negate for
fixnum value.
* internal.h (rb_float_uminus, rb_rational_uminus): exported.
* numeric.c (rb_float_uminus): rename from flo_uminus.
* rational.c (rb_rational_uminus): rename from nurat_negate, and add
assertion for the parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'numeric.c')
-rw-r--r-- | numeric.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1032,8 +1032,8 @@ flo_coerce(VALUE x, VALUE y) * Returns float, negated. */ -static VALUE -flo_uminus(VALUE flt) +VALUE +rb_float_uminus(VALUE flt) { return DBL2NUM(-RFLOAT_VALUE(flt)); } @@ -5391,7 +5391,7 @@ Init_Numeric(void) rb_define_method(rb_cFloat, "to_s", flo_to_s, 0); rb_define_alias(rb_cFloat, "inspect", "to_s"); rb_define_method(rb_cFloat, "coerce", flo_coerce, 1); - rb_define_method(rb_cFloat, "-@", flo_uminus, 0); + rb_define_method(rb_cFloat, "-@", rb_float_uminus, 0); rb_define_method(rb_cFloat, "+", flo_plus, 1); rb_define_method(rb_cFloat, "-", flo_minus, 1); rb_define_method(rb_cFloat, "*", flo_mul, 1); |