removed global functions from bignum.cpp

db4
Phil Dawes 2009-08-17 21:37:17 +01:00
parent 100c26c38f
commit 32eace1a11
3 changed files with 5 additions and 281 deletions

View File

@ -73,10 +73,6 @@ int factorvm::bignum_equal_p(bignum * x, bignum * y)
&& (bignum_equal_p_unsigned (x, y)))); && (bignum_equal_p_unsigned (x, y))));
} }
int bignum_equal_p(bignum * x, bignum * y)
{
return vm->bignum_equal_p(x,y);
}
enum bignum_comparison factorvm::bignum_compare(bignum * x, bignum * y) enum bignum_comparison factorvm::bignum_compare(bignum * x, bignum * y)
{ {
@ -100,10 +96,6 @@ enum bignum_comparison factorvm::bignum_compare(bignum * x, bignum * y)
: (bignum_compare_unsigned (x, y)))); : (bignum_compare_unsigned (x, y))));
} }
enum bignum_comparison bignum_compare(bignum * x, bignum * y)
{
return vm->bignum_compare(x,y);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_add(bignum * x, bignum * y) bignum *factorvm::bignum_add(bignum * x, bignum * y)
@ -122,11 +114,6 @@ bignum *factorvm::bignum_add(bignum * x, bignum * y)
: (bignum_add_unsigned (x, y, 0))))); : (bignum_add_unsigned (x, y, 0)))));
} }
bignum *bignum_add(bignum * x, bignum * y)
{
return vm->bignum_add(x,y);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_subtract(bignum * x, bignum * y) bignum *factorvm::bignum_subtract(bignum * x, bignum * y)
{ {
@ -146,10 +133,6 @@ bignum *factorvm::bignum_subtract(bignum * x, bignum * y)
: (bignum_subtract_unsigned (x, y)))))); : (bignum_subtract_unsigned (x, y))))));
} }
bignum *bignum_subtract(bignum * x, bignum * y)
{
return vm->bignum_subtract(x,y);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_multiply(bignum * x, bignum * y) bignum *factorvm::bignum_multiply(bignum * x, bignum * y)
@ -183,10 +166,6 @@ bignum *factorvm::bignum_multiply(bignum * x, bignum * y)
return (bignum_multiply_unsigned (x, y, negative_p)); return (bignum_multiply_unsigned (x, y, negative_p));
} }
bignum *bignum_multiply(bignum * x, bignum * y)
{
return vm->bignum_multiply(x,y);
}
/* allocates memory */ /* allocates memory */
void factorvm::bignum_divide(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder) void factorvm::bignum_divide(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder)
@ -259,10 +238,6 @@ void factorvm::bignum_divide(bignum * numerator, bignum * denominator, bignum *
} }
} }
void bignum_divide(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder)
{
return vm->bignum_divide(numerator,denominator,quotient,remainder);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_quotient(bignum * numerator, bignum * denominator) bignum *factorvm::bignum_quotient(bignum * numerator, bignum * denominator)
@ -316,10 +291,6 @@ bignum *factorvm::bignum_quotient(bignum * numerator, bignum * denominator)
} }
} }
bignum *bignum_quotient(bignum * numerator, bignum * denominator)
{
return vm->bignum_quotient(numerator,denominator);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_remainder(bignum * numerator, bignum * denominator) bignum *factorvm::bignum_remainder(bignum * numerator, bignum * denominator)
@ -365,10 +336,6 @@ bignum *factorvm::bignum_remainder(bignum * numerator, bignum * denominator)
} }
} }
bignum *bignum_remainder(bignum * numerator, bignum * denominator)
{
return vm->bignum_remainder(numerator, denominator);
}
#define FOO_TO_BIGNUM(name,type,utype) \ #define FOO_TO_BIGNUM(name,type,utype) \
bignum * factorvm::name##_to_bignum(type n) \ bignum * factorvm::name##_to_bignum(type n) \
@ -407,7 +374,7 @@ FOO_TO_BIGNUM(long_long,s64,u64)
FOO_TO_BIGNUM(ulong_long,u64,u64) FOO_TO_BIGNUM(ulong_long,u64,u64)
#define BIGNUM_TO_FOO(name,type,utype) \ #define BIGNUM_TO_FOO(name,type,utype) \
type bignum_to_##name(bignum * bignum) \ type factorvm::bignum_to_##name(bignum * bignum) \
{ \ { \
if (BIGNUM_ZERO_P (bignum)) \ if (BIGNUM_ZERO_P (bignum)) \
return (0); \ return (0); \
@ -441,10 +408,6 @@ double factorvm::bignum_to_double(bignum * bignum)
} }
} }
double bignum_to_double(bignum * bignum)
{
return vm->bignum_to_double(bignum);
}
#define DTB_WRITE_DIGIT(factor) \ #define DTB_WRITE_DIGIT(factor) \
{ \ { \
@ -488,10 +451,6 @@ bignum *factorvm::double_to_bignum(double x)
} }
} }
bignum *double_to_bignum(double x)
{
return vm->double_to_bignum(x);
}
#undef DTB_WRITE_DIGIT #undef DTB_WRITE_DIGIT
@ -514,10 +473,6 @@ int factorvm::bignum_equal_p_unsigned(bignum * x, bignum * y)
} }
} }
int bignum_equal_p_unsigned(bignum * x, bignum * y)
{
return vm->bignum_equal_p_unsigned(x,y);
}
enum bignum_comparison factorvm::bignum_compare_unsigned(bignum * x, bignum * y) enum bignum_comparison factorvm::bignum_compare_unsigned(bignum * x, bignum * y)
{ {
@ -544,10 +499,6 @@ enum bignum_comparison factorvm::bignum_compare_unsigned(bignum * x, bignum * y)
return (bignum_comparison_equal); return (bignum_comparison_equal);
} }
enum bignum_comparison bignum_compare_unsigned(bignum * x, bignum * y)
{
return vm->bignum_compare_unsigned(x,y);
}
/* Addition */ /* Addition */
@ -616,10 +567,6 @@ bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
} }
} }
bignum *bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
{
return vm->bignum_add_unsigned(x,y,negative_p);
}
/* Subtraction */ /* Subtraction */
@ -695,10 +642,6 @@ bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y)
} }
} }
bignum *bignum_subtract_unsigned(bignum * x, bignum * y)
{
return vm->bignum_subtract_unsigned(x,y);
}
/* Multiplication /* Multiplication
Maximum value for product_low or product_high: Maximum value for product_low or product_high:
@ -777,10 +720,6 @@ bignum *factorvm::bignum_multiply_unsigned(bignum * x, bignum * y, int negative_
} }
} }
bignum *bignum_multiply_unsigned(bignum * x, bignum * y, int negative_p)
{
return vm->bignum_multiply_unsigned(x,y,negative_p);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_multiply_unsigned_small_factor(bignum * x, bignum_digit_type y,int negative_p) bignum *factorvm::bignum_multiply_unsigned_small_factor(bignum * x, bignum_digit_type y,int negative_p)
@ -797,10 +736,6 @@ bignum *factorvm::bignum_multiply_unsigned_small_factor(bignum * x, bignum_digit
return (bignum_trim (p)); return (bignum_trim (p));
} }
bignum *bignum_multiply_unsigned_small_factor(bignum * x, bignum_digit_type y,int negative_p)
{
return vm->bignum_multiply_unsigned_small_factor(x,y,negative_p);
}
void factorvm::bignum_destructive_add(bignum * bignum, bignum_digit_type n) void factorvm::bignum_destructive_add(bignum * bignum, bignum_digit_type n)
{ {
@ -825,10 +760,6 @@ void factorvm::bignum_destructive_add(bignum * bignum, bignum_digit_type n)
} }
} }
void bignum_destructive_add(bignum * bignum, bignum_digit_type n)
{
return vm->bignum_destructive_add(bignum,n);
}
void factorvm::bignum_destructive_scale_up(bignum * bignum, bignum_digit_type factor) void factorvm::bignum_destructive_scale_up(bignum * bignum, bignum_digit_type factor)
{ {
@ -859,10 +790,6 @@ void factorvm::bignum_destructive_scale_up(bignum * bignum, bignum_digit_type fa
#undef product_high #undef product_high
} }
void bignum_destructive_scale_up(bignum * bignum, bignum_digit_type factor)
{
return vm->bignum_destructive_scale_up(bignum,factor);
}
/* Division */ /* Division */
@ -929,10 +856,6 @@ void factorvm::bignum_divide_unsigned_large_denominator(bignum * numerator, bign
return; return;
} }
void bignum_divide_unsigned_large_denominator(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder, int q_negative_p, int r_negative_p)
{
return vm->bignum_divide_unsigned_large_denominator(numerator,denominator,quotient,remainder,q_negative_p,r_negative_p);
}
void factorvm::bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum * q) void factorvm::bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum * q)
{ {
@ -1008,10 +931,6 @@ void factorvm::bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum
#undef qj #undef qj
} }
void bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum * q)
{
return vm->bignum_divide_unsigned_normalized(u,v,q);
}
bignum_digit_type factorvm::bignum_divide_subtract(bignum_digit_type * v_start, bignum_digit_type * v_end, bignum_digit_type guess, bignum_digit_type * u_start) bignum_digit_type factorvm::bignum_divide_subtract(bignum_digit_type * v_start, bignum_digit_type * v_end, bignum_digit_type guess, bignum_digit_type * u_start)
{ {
@ -1088,10 +1007,6 @@ bignum_digit_type factorvm::bignum_divide_subtract(bignum_digit_type * v_start,
return (guess - 1); return (guess - 1);
} }
bignum_digit_type bignum_divide_subtract(bignum_digit_type * v_start, bignum_digit_type * v_end, bignum_digit_type guess, bignum_digit_type * u_start)
{
return vm->bignum_divide_subtract(v_start,v_end,guess,u_start);
}
/* allocates memory */ /* allocates memory */
void factorvm::bignum_divide_unsigned_medium_denominator(bignum * numerator,bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p) void factorvm::bignum_divide_unsigned_medium_denominator(bignum * numerator,bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p)
@ -1152,10 +1067,6 @@ void factorvm::bignum_divide_unsigned_medium_denominator(bignum * numerator,bign
return; return;
} }
void bignum_divide_unsigned_medium_denominator(bignum * numerator,bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p)
{
vm->bignum_divide_unsigned_medium_denominator(numerator,denominator,quotient,remainder,q_negative_p,r_negative_p);
}
void factorvm::bignum_destructive_normalization(bignum * source, bignum * target, int shift_left) void factorvm::bignum_destructive_normalization(bignum * source, bignum * target, int shift_left)
{ {
@ -1180,10 +1091,6 @@ void factorvm::bignum_destructive_normalization(bignum * source, bignum * target
return; return;
} }
void bignum_destructive_normalization(bignum * source, bignum * target, int shift_left)
{
return vm->bignum_destructive_normalization(source,target,shift_left);
}
void factorvm::bignum_destructive_unnormalization(bignum * bignum, int shift_right) void factorvm::bignum_destructive_unnormalization(bignum * bignum, int shift_right)
{ {
@ -1203,10 +1110,6 @@ void factorvm::bignum_destructive_unnormalization(bignum * bignum, int shift_rig
return; return;
} }
void bignum_destructive_unnormalization(bignum * bignum, int shift_right)
{
return vm->bignum_destructive_unnormalization(bignum,shift_right);
}
/* This is a reduced version of the division algorithm, applied to the /* This is a reduced version of the division algorithm, applied to the
case of dividing two bignum digits by one bignum digit. It is case of dividing two bignum digits by one bignum digit. It is
@ -1272,10 +1175,6 @@ bignum_digit_type factorvm::bignum_digit_divide(bignum_digit_type uh, bignum_dig
return (HD_CONS ((u[2]), (u[3]))); return (HD_CONS ((u[2]), (u[3])));
} }
bignum_digit_type bignum_digit_divide(bignum_digit_type uh, bignum_digit_type ul, bignum_digit_type v, bignum_digit_type * q) /* return value */
{
return vm->bignum_digit_divide(uh,ul,v,q);
}
#undef BDD_STEP #undef BDD_STEP
@ -1340,10 +1239,6 @@ bignum_digit_type factorvm::bignum_digit_divide_subtract(bignum_digit_type v1, b
return (guess - 1); return (guess - 1);
} }
bignum_digit_type bignum_digit_divide_subtract(bignum_digit_type v1, bignum_digit_type v2, bignum_digit_type guess, bignum_digit_type * u)
{
return vm->bignum_digit_divide_subtract(v1,v2,guess,u);
}
#undef BDDS_MULSUB #undef BDDS_MULSUB
#undef BDDS_ADD #undef BDDS_ADD
@ -1368,10 +1263,6 @@ void factorvm::bignum_divide_unsigned_small_denominator(bignum * numerator, bign
return; return;
} }
void bignum_divide_unsigned_small_denominator(bignum * numerator, bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p)
{
return vm->bignum_divide_unsigned_small_denominator(numerator,denominator,quotient,remainder,q_negative_p,r_negative_p);
}
/* Given (denominator > 1), it is fairly easy to show that /* Given (denominator > 1), it is fairly easy to show that
(quotient_high < BIGNUM_RADIX_ROOT), after which it is easy to see (quotient_high < BIGNUM_RADIX_ROOT), after which it is easy to see
@ -1399,10 +1290,6 @@ bignum_digit_type factorvm::bignum_destructive_scale_down(bignum * bignum, bignu
#undef quotient_high #undef quotient_high
} }
bignum_digit_type bignum_destructive_scale_down(bignum * bignum, bignum_digit_type denominator)
{
return vm->bignum_destructive_scale_down(bignum,denominator);
}
/* allocates memory */ /* allocates memory */
bignum * factorvm::bignum_remainder_unsigned_small_denominator(bignum * n, bignum_digit_type d, int negative_p) bignum * factorvm::bignum_remainder_unsigned_small_denominator(bignum * n, bignum_digit_type d, int negative_p)
@ -1423,10 +1310,6 @@ bignum * factorvm::bignum_remainder_unsigned_small_denominator(bignum * n, bignu
return (bignum_digit_to_bignum (r, negative_p)); return (bignum_digit_to_bignum (r, negative_p));
} }
bignum * bignum_remainder_unsigned_small_denominator(bignum * n, bignum_digit_type d, int negative_p)
{
return vm->bignum_remainder_unsigned_small_denominator(n,d,negative_p);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_digit_to_bignum(bignum_digit_type digit, int negative_p) bignum *factorvm::bignum_digit_to_bignum(bignum_digit_type digit, int negative_p)
@ -1441,10 +1324,6 @@ bignum *factorvm::bignum_digit_to_bignum(bignum_digit_type digit, int negative_p
} }
} }
bignum *bignum_digit_to_bignum(bignum_digit_type digit, int negative_p)
{
return vm->bignum_digit_to_bignum(digit, negative_p);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::allot_bignum(bignum_length_type length, int negative_p) bignum *factorvm::allot_bignum(bignum_length_type length, int negative_p)
@ -1455,10 +1334,6 @@ bignum *factorvm::allot_bignum(bignum_length_type length, int negative_p)
return (result); return (result);
} }
bignum *allot_bignum(bignum_length_type length, int negative_p)
{
return vm->allot_bignum(length,negative_p);
}
/* allocates memory */ /* allocates memory */
bignum * factorvm::allot_bignum_zeroed(bignum_length_type length, int negative_p) bignum * factorvm::allot_bignum_zeroed(bignum_length_type length, int negative_p)
@ -1471,10 +1346,6 @@ bignum * factorvm::allot_bignum_zeroed(bignum_length_type length, int negative_p
return (result); return (result);
} }
bignum * allot_bignum_zeroed(bignum_length_type length, int negative_p)
{
return vm->allot_bignum_zeroed(length,negative_p);
}
#define BIGNUM_REDUCE_LENGTH(source, length) \ #define BIGNUM_REDUCE_LENGTH(source, length) \
source = reallot_array(source,length + 1) source = reallot_array(source,length + 1)
@ -1492,10 +1363,6 @@ bignum *factorvm::bignum_shorten_length(bignum * bignum, bignum_length_type leng
return (bignum); return (bignum);
} }
bignum *bignum_shorten_length(bignum * bignum, bignum_length_type length)
{
return vm->bignum_shorten_length(bignum,length);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_trim(bignum * bignum) bignum *factorvm::bignum_trim(bignum * bignum)
@ -1515,10 +1382,6 @@ bignum *factorvm::bignum_trim(bignum * bignum)
return (bignum); return (bignum);
} }
bignum *bignum_trim(bignum * bignum)
{
return vm->bignum_trim(bignum);
}
/* Copying */ /* Copying */
@ -1532,10 +1395,6 @@ bignum *factorvm::bignum_new_sign(bignum * x, int negative_p)
return (result); return (result);
} }
bignum *bignum_new_sign(bignum * x, int negative_p)
{
return vm->bignum_new_sign(x,negative_p);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_maybe_new_sign(bignum * x, int negative_p) bignum *factorvm::bignum_maybe_new_sign(bignum * x, int negative_p)
@ -1551,10 +1410,6 @@ bignum *factorvm::bignum_maybe_new_sign(bignum * x, int negative_p)
} }
} }
bignum *bignum_maybe_new_sign(bignum * x, int negative_p)
{
return vm->bignum_maybe_new_sign(x,negative_p);
}
void factorvm::bignum_destructive_copy(bignum * source, bignum * target) void factorvm::bignum_destructive_copy(bignum * source, bignum * target)
{ {
@ -1567,10 +1422,6 @@ void factorvm::bignum_destructive_copy(bignum * source, bignum * target)
return; return;
} }
void bignum_destructive_copy(bignum * source, bignum * target)
{
return vm->bignum_destructive_copy(source,target);
}
/* /*
* Added bitwise operations (and oddp). * Added bitwise operations (and oddp).
@ -1582,10 +1433,6 @@ bignum *factorvm::bignum_bitwise_not(bignum * x)
return bignum_subtract(BIGNUM_ONE(1), x); return bignum_subtract(BIGNUM_ONE(1), x);
} }
bignum *bignum_bitwise_not(bignum * x)
{
return vm->bignum_bitwise_not(x);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_arithmetic_shift(bignum * arg1, fixnum n) bignum *factorvm::bignum_arithmetic_shift(bignum * arg1, fixnum n)
@ -1596,10 +1443,6 @@ bignum *factorvm::bignum_arithmetic_shift(bignum * arg1, fixnum n)
return bignum_magnitude_ash(arg1, n); return bignum_magnitude_ash(arg1, n);
} }
bignum *bignum_arithmetic_shift(bignum * arg1, fixnum n)
{
return vm->bignum_arithmetic_shift(arg1,n);
}
#define AND_OP 0 #define AND_OP 0
#define IOR_OP 1 #define IOR_OP 1
@ -1619,10 +1462,6 @@ bignum *factorvm::bignum_bitwise_and(bignum * arg1, bignum * arg2)
); );
} }
bignum *bignum_bitwise_and(bignum * arg1, bignum * arg2)
{
return vm->bignum_bitwise_and(arg1,arg2);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_bitwise_ior(bignum * arg1, bignum * arg2) bignum *factorvm::bignum_bitwise_ior(bignum * arg1, bignum * arg2)
@ -1638,10 +1477,6 @@ bignum *factorvm::bignum_bitwise_ior(bignum * arg1, bignum * arg2)
); );
} }
bignum *bignum_bitwise_ior(bignum * arg1, bignum * arg2)
{
return vm->bignum_bitwise_ior(arg1,arg2);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2) bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2)
@ -1657,10 +1492,6 @@ bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2)
); );
} }
bignum *bignum_bitwise_xor(bignum * arg1, bignum * arg2)
{
return vm->bignum_bitwise_xor(arg1,arg2);
}
/* allocates memory */ /* allocates memory */
/* ash for the magnitude */ /* ash for the magnitude */
@ -1725,10 +1556,6 @@ bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
return (bignum_trim (result)); return (bignum_trim (result));
} }
bignum *bignum_magnitude_ash(bignum * arg1, fixnum n)
{
return vm->bignum_magnitude_ash(arg1,n);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * arg2) bignum *factorvm::bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * arg2)
@ -1764,10 +1591,6 @@ bignum *factorvm::bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * arg2)
return bignum_trim(result); return bignum_trim(result);
} }
bignum *bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * arg2)
{
return vm->bignum_pospos_bitwise_op(op,arg1,arg2);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2) bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
@ -1821,10 +1644,6 @@ bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
return bignum_trim(result); return bignum_trim(result);
} }
bignum *bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
{
return vm->bignum_posneg_bitwise_op(op,arg1,arg2);
}
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2) bignum *factorvm::bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
@ -1886,10 +1705,6 @@ bignum *factorvm::bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
return bignum_trim(result); return bignum_trim(result);
} }
bignum *bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
{
return vm->bignum_negneg_bitwise_op(op,arg1,arg2);
}
void factorvm::bignum_negate_magnitude(bignum * arg) void factorvm::bignum_negate_magnitude(bignum * arg)
{ {
@ -1918,10 +1733,6 @@ void factorvm::bignum_negate_magnitude(bignum * arg)
} }
} }
void bignum_negate_magnitude(bignum * arg)
{
return vm->bignum_negate_magnitude(arg);
}
/* Allocates memory */ /* Allocates memory */
bignum *factorvm::bignum_integer_length(bignum * x) bignum *factorvm::bignum_integer_length(bignum * x)
@ -1944,10 +1755,6 @@ bignum *factorvm::bignum_integer_length(bignum * x)
return (bignum_trim (result)); return (bignum_trim (result));
} }
bignum *bignum_integer_length(bignum * x)
{
return vm->bignum_integer_length(x);
}
/* Allocates memory */ /* Allocates memory */
int factorvm::bignum_logbitp(int shift, bignum * arg) int factorvm::bignum_logbitp(int shift, bignum * arg)
@ -1957,10 +1764,6 @@ int factorvm::bignum_logbitp(int shift, bignum * arg)
: bignum_unsigned_logbitp (shift,arg)); : bignum_unsigned_logbitp (shift,arg));
} }
int bignum_logbitp(int shift, bignum * arg)
{
return vm->bignum_logbitp(shift,arg);
}
int factorvm::bignum_unsigned_logbitp(int shift, bignum * bignum) int factorvm::bignum_unsigned_logbitp(int shift, bignum * bignum)
{ {
@ -1974,10 +1777,6 @@ int factorvm::bignum_unsigned_logbitp(int shift, bignum * bignum)
return (digit & mask) ? 1 : 0; return (digit & mask) ? 1 : 0;
} }
int bignum_unsigned_logbitp(int shift, bignum * bignum)
{
return vm->bignum_unsigned_logbitp(shift,bignum);
}
/* Allocates memory */ /* Allocates memory */
bignum *factorvm::digit_stream_to_bignum(unsigned int n_digits, unsigned int (*producer)(unsigned int, factorvm*), unsigned int radix, int negative_p) bignum *factorvm::digit_stream_to_bignum(unsigned int n_digits, unsigned int (*producer)(unsigned int, factorvm*), unsigned int radix, int negative_p)
@ -2016,9 +1815,5 @@ bignum *factorvm::digit_stream_to_bignum(unsigned int n_digits, unsigned int (*p
} }
} }
bignum *digit_stream_to_bignum(unsigned int n_digits, unsigned int (*producer)(unsigned int, factorvm*), unsigned int radix, int negative_p)
{
return vm->digit_stream_to_bignum(n_digits,producer,radix,negative_p);
}
} }

View File

@ -44,81 +44,6 @@ enum bignum_comparison
bignum_comparison_greater = 1 bignum_comparison_greater = 1
}; };
int bignum_equal_p(bignum *, bignum *);
enum bignum_comparison bignum_compare(bignum *, bignum *);
bignum * bignum_add(bignum *, bignum *);
bignum * bignum_subtract(bignum *, bignum *);
bignum * bignum_negate(bignum *);
bignum * bignum_multiply(bignum *, bignum *);
void
bignum_divide(bignum * numerator, bignum * denominator,
bignum * * quotient, bignum * * remainder);
bignum * bignum_quotient(bignum *, bignum *);
bignum * bignum_remainder(bignum *, bignum *);
fixnum bignum_to_fixnum(bignum *);
cell bignum_to_cell(bignum *);
s64 bignum_to_long_long(bignum *);
u64 bignum_to_ulong_long(bignum *);
bignum * double_to_bignum(double);
double bignum_to_double(bignum *);
/* Added bitwise operators. */
bignum * bignum_bitwise_not(bignum *);
bignum * bignum_arithmetic_shift(bignum *, fixnum);
bignum * bignum_bitwise_and(bignum *, bignum *);
bignum * bignum_bitwise_ior(bignum *, bignum *);
bignum * bignum_bitwise_xor(bignum *, bignum *);
/* Forward references */
int bignum_equal_p_unsigned(bignum *, bignum *);
enum bignum_comparison bignum_compare_unsigned(bignum *, bignum *);
bignum * bignum_add_unsigned(bignum *, bignum *, int);
bignum * bignum_subtract_unsigned(bignum *, bignum *);
bignum * bignum_multiply_unsigned(bignum *, bignum *, int);
bignum * bignum_multiply_unsigned_small_factor
(bignum *, bignum_digit_type, int);
void bignum_destructive_scale_up(bignum *, bignum_digit_type);
void bignum_destructive_add(bignum *, bignum_digit_type);
void bignum_divide_unsigned_large_denominator
(bignum *, bignum *, bignum * *, bignum * *, int, int);
void bignum_destructive_normalization(bignum *, bignum *, int);
void bignum_destructive_unnormalization(bignum *, int);
void bignum_divide_unsigned_normalized(bignum *, bignum *, bignum *);
bignum_digit_type bignum_divide_subtract
(bignum_digit_type *, bignum_digit_type *, bignum_digit_type,
bignum_digit_type *);
void bignum_divide_unsigned_medium_denominator
(bignum *, bignum_digit_type, bignum * *, bignum * *, int, int);
bignum_digit_type bignum_digit_divide
(bignum_digit_type, bignum_digit_type, bignum_digit_type, bignum_digit_type *);
bignum_digit_type bignum_digit_divide_subtract
(bignum_digit_type, bignum_digit_type, bignum_digit_type, bignum_digit_type *);
void bignum_divide_unsigned_small_denominator
(bignum *, bignum_digit_type, bignum * *, bignum * *, int, int);
bignum_digit_type bignum_destructive_scale_down
(bignum *, bignum_digit_type);
bignum * bignum_remainder_unsigned_small_denominator
(bignum *, bignum_digit_type, int);
bignum * bignum_digit_to_bignum(bignum_digit_type, int);
bignum * allot_bignum(bignum_length_type, int);
bignum * allot_bignum_zeroed(bignum_length_type, int);
bignum * bignum_shorten_length(bignum *, bignum_length_type);
bignum * bignum_trim(bignum *);
bignum * bignum_new_sign(bignum *, int);
bignum * bignum_maybe_new_sign(bignum *, int);
void bignum_destructive_copy(bignum *, bignum *);
/* Added for bitwise operations. */
bignum * bignum_magnitude_ash(bignum * arg1, fixnum n);
bignum * bignum_pospos_bitwise_op(int op, bignum *, bignum *);
bignum * bignum_posneg_bitwise_op(int op, bignum *, bignum *);
bignum * bignum_negneg_bitwise_op(int op, bignum *, bignum *);
void bignum_negate_magnitude(bignum *);
bignum * bignum_integer_length(bignum * arg1);
int bignum_unsigned_logbitp(int shift, bignum * bignum);
int bignum_logbitp(int shift, bignum * arg);
struct factorvm; struct factorvm;
bignum * digit_stream_to_bignum(unsigned int n_digits, bignum * digit_stream_to_bignum(unsigned int n_digits,
unsigned int (*producer)(unsigned int,factorvm*), unsigned int (*producer)(unsigned int,factorvm*),

View File

@ -72,6 +72,10 @@ struct factorvm {
void bignum_divide(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder); void bignum_divide(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder);
bignum *bignum_quotient(bignum * numerator, bignum * denominator); bignum *bignum_quotient(bignum * numerator, bignum * denominator);
bignum *bignum_remainder(bignum * numerator, bignum * denominator); bignum *bignum_remainder(bignum * numerator, bignum * denominator);
cell bignum_to_cell(bignum * bignum);
fixnum bignum_to_fixnum(bignum * bignum);
s64 bignum_to_long_long(bignum * bignum);
u64 bignum_to_ulong_long(bignum * bignum);
double bignum_to_double(bignum * bignum); double bignum_to_double(bignum * bignum);
bignum *double_to_bignum(double x); bignum *double_to_bignum(double x);
int bignum_equal_p_unsigned(bignum * x, bignum * y); int bignum_equal_p_unsigned(bignum * x, bignum * y);