From c151aa88a97d5f3a95c77e7de5db87b7acec16bb Mon Sep 17 00:00:00 2001 From: mrkn Date: Fri, 18 Nov 2016 15:17:19 +0000 Subject: 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 --- internal.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'internal.h') diff --git a/internal.h b/internal.h index 31bfbeb8ab..153b9e02e8 100644 --- a/internal.h +++ b/internal.h @@ -1168,6 +1168,7 @@ int rb_num_negative_p(VALUE); VALUE rb_int_succ(VALUE num); VALUE rb_int_pred(VALUE num); VALUE rb_int_uminus(VALUE num); +VALUE rb_float_uminus(VALUE num); VALUE rb_int_plus(VALUE x, VALUE y); VALUE rb_int_minus(VALUE x, VALUE y); VALUE rb_int_mul(VALUE x, VALUE y); @@ -1378,6 +1379,7 @@ rb_pid_t rb_fork_ruby(int *status); void rb_last_status_clear(void); /* rational.c */ +VALUE rb_rational_uminus(VALUE self); VALUE rb_rational_plus(VALUE self, VALUE other); VALUE rb_lcm(VALUE x, VALUE y); VALUE rb_rational_reciprocal(VALUE x); -- cgit v1.2.3