diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-16 23:17:14 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-16 23:17:14 +0000 |
commit | df21038777f9b8339429f4427bf6d25f690b7eb5 (patch) | |
tree | 398f33c502add3a33d4b93645c0a90f6a13a03e7 /complex.c | |
parent | 01971cad759a43c0d4358f2fb28c7d2811673de4 (diff) |
* complex.c (nucomp_rationalize) added. [experimental]
* rational.c ({nurat,nilclass,integer,float}_rationalize) ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'complex.c')
-rw-r--r-- | complex.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -1379,6 +1379,20 @@ nucomp_to_r(VALUE self) /* * call-seq: + * cmp.rationalize([eps]) -> rational + * + * Returns the value as a rational if possible. An optional argument + * eps is always ignored. + */ +static VALUE +nucomp_rationalize(int argc, VALUE *argv, VALUE self) +{ + rb_scan_args(argc, argv, "01", NULL); + return nucomp_to_r(self); +} + +/* + * call-seq: * nil.to_c -> (0+0i) * * Returns zero as a complex. @@ -1967,6 +1981,7 @@ Init_Complex(void) rb_define_method(rb_cComplex, "to_i", nucomp_to_i, 0); rb_define_method(rb_cComplex, "to_f", nucomp_to_f, 0); rb_define_method(rb_cComplex, "to_r", nucomp_to_r, 0); + rb_define_method(rb_cComplex, "rationalize", nucomp_rationalize, -1); rb_define_method(rb_cNilClass, "to_c", nilclass_to_c, 0); rb_define_method(rb_cNumeric, "to_c", numeric_to_c, 0); |