1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* numeric.c (num_imaginary): num#i to return imaginary counterpart

of the given numeric.

* complex.c (Init_Complex): undef #i for complex numbers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2009-08-16 22:28:48 +00:00
parent 3041f60056
commit 9166dd9ec7
3 changed files with 24 additions and 0 deletions

View file

@ -1,3 +1,10 @@
Mon Aug 17 07:16:10 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* numeric.c (num_imaginary): num#i to return imaginary counterpart
of the given numeric.
* complex.c (Init_Complex): undef #i for complex numbers.
Mon Aug 17 00:17:33 2009 Tadayoshi Funaba <tadf@dotrb.org>
* lib/complex.rb, lib/rational.rb: added warning messages.

View file

@ -1906,6 +1906,7 @@ Init_Complex(void)
rb_undef_method(rb_cComplex, "round");
rb_undef_method(rb_cComplex, "step");
rb_undef_method(rb_cComplex, "truncate");
rb_undef_method(rb_cComplex, "i");
#if 0 /* NUBY */
rb_undef_method(rb_cComplex, "//");

View file

@ -236,6 +236,21 @@ num_uplus(VALUE num)
return num;
}
/*
* call-seq:
* num.i -> Complex(0,num)
*
* Returns the corresponding imaginary number.
* Not available for complex numbers.
*/
static VALUE
num_imaginary(VALUE num)
{
return rb_complex_new(INT2FIX(0), num);
}
/*
* call-seq:
* -num -> numeric
@ -3154,6 +3169,7 @@ Init_Numeric(void)
rb_define_method(rb_cNumeric, "initialize_copy", num_init_copy, 1);
rb_define_method(rb_cNumeric, "coerce", num_coerce, 1);
rb_define_method(rb_cNumeric, "i", num_imaginary, 0);
rb_define_method(rb_cNumeric, "+@", num_uplus, 0);
rb_define_method(rb_cNumeric, "-@", num_uminus, 0);
rb_define_method(rb_cNumeric, "<=>", num_cmp, 1);