diff options
Diffstat (limited to 'ruby_2_2/ext/-test-/bignum/big2str.c')
-rw-r--r-- | ruby_2_2/ext/-test-/bignum/big2str.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/ruby_2_2/ext/-test-/bignum/big2str.c b/ruby_2_2/ext/-test-/bignum/big2str.c deleted file mode 100644 index ec4bde2915..0000000000 --- a/ruby_2_2/ext/-test-/bignum/big2str.c +++ /dev/null @@ -1,53 +0,0 @@ -#include "internal.h" - -static VALUE -big(VALUE x) -{ - if (FIXNUM_P(x)) - return rb_int2big(FIX2LONG(x)); - if (RB_TYPE_P(x, T_BIGNUM)) - return x; - rb_raise(rb_eTypeError, "can't convert %s to Bignum", - rb_obj_classname(x)); -} - -static VALUE -big2str_generic(VALUE x, VALUE vbase) -{ - int base = NUM2INT(vbase); - if (base < 2 || 36 < base) - rb_raise(rb_eArgError, "invalid radix %d", base); - return rb_big2str_generic(big(x), base); -} - -#define POW2_P(x) (((x)&((x)-1))==0) - -static VALUE -big2str_poweroftwo(VALUE x, VALUE vbase) -{ - int base = NUM2INT(vbase); - if (base < 2 || 36 < base || !POW2_P(base)) - rb_raise(rb_eArgError, "invalid radix %d", base); - return rb_big2str_poweroftwo(big(x), base); -} - -#if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H) -static VALUE -big2str_gmp(VALUE x, VALUE vbase) -{ - int base = NUM2INT(vbase); - if (base < 2 || 36 < base) - rb_raise(rb_eArgError, "invalid radix %d", base); - return rb_big2str_gmp(big(x), base); -} -#else -#define big2str_gmp rb_f_notimplement -#endif - -void -Init_big2str(VALUE klass) -{ - rb_define_method(rb_cInteger, "big2str_generic", big2str_generic, 1); - rb_define_method(rb_cInteger, "big2str_poweroftwo", big2str_poweroftwo, 1); - rb_define_method(rb_cInteger, "big2str_gmp", big2str_gmp, 1); -} |