bignum indentation and macro cleanup
parent
1c2292d36a
commit
0022f5c45f
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue