mruby-bigint (mrb_bint_neg): move the function to group bit operations

This commit is contained in:
Yukihiro "Matz" Matsumoto
2024-10-19 12:44:13 +09:00
parent ee13b9e67b
commit e4d2f343fe
+13 -13
View File
@@ -1831,19 +1831,6 @@ mrb_bint_or(mrb_state *mrb, mrb_value x, mrb_value y)
return bint_norm(mrb, bint_new(mrb, &c));
}
mrb_value
mrb_bint_neg(mrb_state *mrb, mrb_value x)
{
mpz_t a, b;
bint_as_mpz(RBIGINT(x), &a);
mpz_init(mrb, &b);
mpz_neg(mrb, &b, &a);
struct RBigint *b2 = bint_new(mrb, &b);
/* no normalization */
return mrb_obj_value(b2);
}
mrb_value
mrb_bint_xor(mrb_state *mrb, mrb_value x, mrb_value y)
{
@@ -1868,6 +1855,19 @@ mrb_bint_xor(mrb_state *mrb, mrb_value x, mrb_value y)
return bint_norm(mrb, bint_new(mrb, &c));
}
mrb_value
mrb_bint_neg(mrb_state *mrb, mrb_value x)
{
mpz_t a, b;
bint_as_mpz(RBIGINT(x), &a);
mpz_init(mrb, &b);
mpz_neg(mrb, &b, &a);
struct RBigint *b2 = bint_new(mrb, &b);
/* no normalization */
return mrb_obj_value(b2);
}
mrb_value
mrb_bint_rev(mrb_state *mrb, mrb_value x)
{