bignum indentation and macro cleanup

Phil Dawes 2009-09-23 19:03:48 +01:00
parent 1c2292d36a
commit 0022f5c45f
4 changed files with 141 additions and 145 deletions

View File

@ -1,5 +1,4 @@
/* :tabSize=2:indentSize=2:noTabs=true: /*
Copyright (C) 1989-94 Massachusetts Institute of Technology Copyright (C) 1989-94 Massachusetts Institute of Technology
Portions copyright (C) 2004-2008 Slava Pestov Portions copyright (C) 2004-2008 Slava Pestov
@ -494,7 +493,7 @@ enum bignum_comparison factorvm::bignum_compare_unsigned(bignum * x, bignum * y)
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p) bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(y,this); GC_BIGNUM(x); GC_BIGNUM(y);
if ((BIGNUM_LENGTH (y)) > (BIGNUM_LENGTH (x))) if ((BIGNUM_LENGTH (y)) > (BIGNUM_LENGTH (x)))
{ {
@ -561,7 +560,7 @@ bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y) bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(y,this); GC_BIGNUM(x); GC_BIGNUM(y);
int negative_p = 0; int negative_p = 0;
switch (bignum_compare_unsigned (x, y)) switch (bignum_compare_unsigned (x, y))
@ -639,7 +638,7 @@ bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y)
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_multiply_unsigned(bignum * x, bignum * y, int negative_p) bignum *factorvm::bignum_multiply_unsigned(bignum * x, bignum * y, int negative_p)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(y,this); GC_BIGNUM(x); GC_BIGNUM(y);
if ((BIGNUM_LENGTH (y)) > (BIGNUM_LENGTH (x))) if ((BIGNUM_LENGTH (y)) > (BIGNUM_LENGTH (x)))
{ {
@ -710,7 +709,7 @@ bignum *factorvm::bignum_multiply_unsigned(bignum * x, bignum * y, int negative_
/* 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)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(x);
bignum_length_type length_x = (BIGNUM_LENGTH (x)); bignum_length_type length_x = (BIGNUM_LENGTH (x));
@ -784,7 +783,7 @@ void factorvm::bignum_destructive_scale_up(bignum * bignum, bignum_digit_type fa
/* allocates memory */ /* allocates memory */
void factorvm::bignum_divide_unsigned_large_denominator(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder, int q_negative_p, int r_negative_p) void factorvm::bignum_divide_unsigned_large_denominator(bignum * numerator, bignum * denominator, bignum * * quotient, bignum * * remainder, int q_negative_p, int r_negative_p)
{ {
GC_BIGNUM(numerator,this); GC_BIGNUM(denominator,this); GC_BIGNUM(numerator); GC_BIGNUM(denominator);
bignum_length_type length_n = ((BIGNUM_LENGTH (numerator)) + 1); bignum_length_type length_n = ((BIGNUM_LENGTH (numerator)) + 1);
bignum_length_type length_d = (BIGNUM_LENGTH (denominator)); bignum_length_type length_d = (BIGNUM_LENGTH (denominator));
@ -793,10 +792,10 @@ void factorvm::bignum_divide_unsigned_large_denominator(bignum * numerator, bign
((quotient != ((bignum * *) 0)) ((quotient != ((bignum * *) 0))
? (allot_bignum ((length_n - length_d), q_negative_p)) ? (allot_bignum ((length_n - length_d), q_negative_p))
: BIGNUM_OUT_OF_BAND); : BIGNUM_OUT_OF_BAND);
GC_BIGNUM(q,this); GC_BIGNUM(q);
bignum * u = (allot_bignum (length_n, r_negative_p)); bignum * u = (allot_bignum (length_n, r_negative_p));
GC_BIGNUM(u,this); GC_BIGNUM(u);
int shift = 0; int shift = 0;
BIGNUM_ASSERT (length_d > 1); BIGNUM_ASSERT (length_d > 1);
@ -991,12 +990,12 @@ bignum_digit_type factorvm::bignum_divide_subtract(bignum_digit_type * v_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)
{ {
GC_BIGNUM(numerator,this); GC_BIGNUM(numerator);
bignum_length_type length_n = (BIGNUM_LENGTH (numerator)); bignum_length_type length_n = (BIGNUM_LENGTH (numerator));
bignum_length_type length_q; bignum_length_type length_q;
bignum * q = NULL; bignum * q = NULL;
GC_BIGNUM(q,this); GC_BIGNUM(q);
int shift = 0; int shift = 0;
/* Because `bignum_digit_divide' requires a normalized denominator. */ /* Because `bignum_digit_divide' requires a normalized denominator. */
@ -1221,10 +1220,10 @@ bignum_digit_type factorvm::bignum_digit_divide_subtract(bignum_digit_type v1, b
/* allocates memory */ /* allocates memory */
void factorvm::bignum_divide_unsigned_small_denominator(bignum * numerator, bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p) void factorvm::bignum_divide_unsigned_small_denominator(bignum * numerator, bignum_digit_type denominator, bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p)
{ {
GC_BIGNUM(numerator,this); GC_BIGNUM(numerator);
bignum * q = (bignum_new_sign (numerator, q_negative_p)); bignum * q = (bignum_new_sign (numerator, q_negative_p));
GC_BIGNUM(q,this); GC_BIGNUM(q);
bignum_digit_type r = (bignum_destructive_scale_down (q, denominator)); bignum_digit_type r = (bignum_destructive_scale_down (q, denominator));
@ -1355,7 +1354,7 @@ bignum *factorvm::bignum_trim(bignum * bignum)
/* allocates memory */ /* allocates memory */
bignum *factorvm::bignum_new_sign(bignum * x, int negative_p) bignum *factorvm::bignum_new_sign(bignum * x, int negative_p)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(x);
bignum * result = (allot_bignum ((BIGNUM_LENGTH (x)), negative_p)); bignum * result = (allot_bignum ((BIGNUM_LENGTH (x)), negative_p));
bignum_destructive_copy (x, result); bignum_destructive_copy (x, result);
@ -1457,7 +1456,7 @@ bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2)
/* assume arg1 is a big number, n is a long */ /* assume arg1 is a big number, n is a long */
bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n) bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
{ {
GC_BIGNUM(arg1,this); GC_BIGNUM(arg1);
bignum * result = NULL; bignum * result = NULL;
bignum_digit_type *scan1; bignum_digit_type *scan1;
@ -1518,7 +1517,7 @@ bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum 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)
{ {
GC_BIGNUM(arg1,this); GC_BIGNUM(arg2,this); GC_BIGNUM(arg1); GC_BIGNUM(arg2);
bignum * result; bignum * result;
bignum_length_type max_length; bignum_length_type max_length;
@ -1552,7 +1551,7 @@ bignum *factorvm::bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * 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)
{ {
GC_BIGNUM(arg1,this); GC_BIGNUM(arg2,this); GC_BIGNUM(arg1); GC_BIGNUM(arg2);
bignum * result; bignum * result;
bignum_length_type max_length; bignum_length_type max_length;
@ -1604,7 +1603,7 @@ bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * 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)
{ {
GC_BIGNUM(arg1,this); GC_BIGNUM(arg2,this); GC_BIGNUM(arg1); GC_BIGNUM(arg2);
bignum * result; bignum * result;
bignum_length_type max_length; bignum_length_type max_length;
@ -1691,7 +1690,7 @@ void factorvm::bignum_negate_magnitude(bignum * arg)
/* Allocates memory */ /* Allocates memory */
bignum *factorvm::bignum_integer_length(bignum * x) bignum *factorvm::bignum_integer_length(bignum * x)
{ {
GC_BIGNUM(x,this); GC_BIGNUM(x);
bignum_length_type index = ((BIGNUM_LENGTH (x)) - 1); bignum_length_type index = ((BIGNUM_LENGTH (x)) - 1);
bignum_digit_type digit = (BIGNUM_REF (x, index)); bignum_digit_type digit = (BIGNUM_REF (x, index));

View File

@ -1,7 +1,7 @@
namespace factor namespace factor
{ {
/* :tabSize=2:indentSize=2:noTabs=true: /*
Copyright (C) 1989-1992 Massachusetts Institute of Technology Copyright (C) 1989-1992 Massachusetts Institute of Technology
Portions copyright (C) 2004-2009 Slava Pestov Portions copyright (C) 2004-2009 Slava Pestov
@ -45,9 +45,6 @@ enum bignum_comparison
}; };
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 radix, int negative_p);
unsigned int (*producer)(unsigned int,factorvm*),
unsigned int radix,
int negative_p);
} }

View File

@ -206,7 +206,7 @@ struct gc_bignum
} }
}; };
#define GC_BIGNUM(x,vm) gc_bignum x##__gc_root(&x,vm) #define GC_BIGNUM(x) gc_bignum x##__gc_root(&x,this)
//generic_arrays.hpp //generic_arrays.hpp
template <typename TYPE> TYPE *factorvm::allot_array_internal(cell capacity) template <typename TYPE> TYPE *factorvm::allot_array_internal(cell capacity)

View File

@ -857,9 +857,9 @@ VM_ASM_API_OVERFLOW void overflow_fixnum_subtract(fixnum x, fixnum y, factorvm *
inline void factorvm::overflow_fixnum_multiply(fixnum x, fixnum y) inline void factorvm::overflow_fixnum_multiply(fixnum x, fixnum y)
{ {
bignum *bx = fixnum_to_bignum(x); bignum *bx = fixnum_to_bignum(x);
GC_BIGNUM(bx,this); GC_BIGNUM(bx);
bignum *by = fixnum_to_bignum(y); bignum *by = fixnum_to_bignum(y);
GC_BIGNUM(by,this); GC_BIGNUM(by);
drepl(tag<bignum>(bignum_multiply(bx,by))); drepl(tag<bignum>(bignum_multiply(bx,by)));
} }