1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/-test-/bignum/bigzero.c
akr 7251c93cb3 * bignum.c (RBIGNUM_SET_NEGATIVE_SIGN): New macro.
(RBIGNUM_SET_POSITIVE_SIGN): Ditto.
  (rb_big_neg): Inline get2comp to avoid double negation.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-29 15:57:07 +00:00

26 lines
559 B
C

#include "ruby.h"
static VALUE
bug_big_zero(VALUE self, VALUE length)
{
long len = NUM2ULONG(length);
VALUE z = rb_big_new(len, 1);
MEMZERO(RBIGNUM_DIGITS(z), BDIGIT, len);
return z;
}
static VALUE
bug_big_negzero(VALUE self, VALUE length)
{
long len = NUM2ULONG(length);
VALUE z = rb_big_new(len, 0);
MEMZERO(RBIGNUM_DIGITS(z), BDIGIT, len);
return z;
}
void
Init_bigzero(VALUE klass)
{
rb_define_singleton_method(klass, "zero", bug_big_zero, 1);
rb_define_singleton_method(klass, "negzero", bug_big_negzero, 1);
}