]> gitweb.factorcode.org Git - factor.git/commitdiff
bignum indentation and macro cleanup
authorPhil Dawes <phil@phildawes.net>
Wed, 23 Sep 2009 18:03:48 +0000 (19:03 +0100)
committerPhil Dawes <phil@phildawes.net>
Thu, 24 Sep 2009 07:02:14 +0000 (08:02 +0100)
vm/bignum.cpp
vm/bignum.hpp
vm/inlineimpls.hpp
vm/math.cpp

index 934b510a4bc44a5093a50d024fda0f555653f088..0099aecc8a98b53aac36d723eb03315f3f70eb38 100755 (executable)
@@ -1,5 +1,4 @@
-/* :tabSize=2:indentSize=2:noTabs=true:
-
+/*
    Copyright (C) 1989-94 Massachusetts Institute of Technology
    Portions copyright (C) 2004-2008 Slava Pestov
 
@@ -330,34 +329,34 @@ bignum *factorvm::bignum_remainder(bignum * numerator, bignum * denominator)
                }
 }
 
-#define FOO_TO_BIGNUM(name,type,utype)                                                                 \
-bignum * factorvm::name##_to_bignum(type n)                                                            \
-{                                                                                                                                              \
-    int negative_p;                                                                                                            \
-    bignum_digit_type result_digits [BIGNUM_DIGITS_FOR(type)];                 \
-    bignum_digit_type * end_digits = result_digits;                                            \
-    /* Special cases win when these small constants are cached. */             \
-    if (n == 0) return (BIGNUM_ZERO ());                                                               \
-    if (n == 1) return (BIGNUM_ONE (0));                                                               \
-    if (n < (type)0 && n == (type)-1) return (BIGNUM_ONE (1));                 \
-    {                                                                                                                                  \
-               utype accumulator = ((negative_p = (n < (type)0)) ? (-n) : n);  \
-               do                                                                                                                              \
-                       {                                                                                                                       \
-                               (*end_digits++) = (accumulator & BIGNUM_DIGIT_MASK);    \
-                               accumulator >>= BIGNUM_DIGIT_LENGTH;                                    \
-                       }                                                                                                                       \
-               while (accumulator != 0);                                                                               \
-    }                                                                                                                                  \
-    {                                                                                                                                  \
-               bignum * result =                                                                                               \
-                       (allot_bignum ((end_digits - result_digits), negative_p));      \
-               bignum_digit_type * scan_digits = result_digits;                                \
-               bignum_digit_type * scan_result = (BIGNUM_START_PTR (result));  \
-               while (scan_digits < end_digits)                                                                \
-                       (*scan_result++) = (*scan_digits++);                                            \
-               return (result);                                                                                                \
-    }                                                                                                                                  \
+#define FOO_TO_BIGNUM(name,type,utype)                                 \
+bignum * factorvm::name##_to_bignum(type n)                            \
+{                                                                      \
+       int negative_p;                                                 \
+       bignum_digit_type result_digits [BIGNUM_DIGITS_FOR(type)];      \
+       bignum_digit_type * end_digits = result_digits;                 \
+       /* Special cases win when these small constants are cached. */  \
+       if (n == 0) return (BIGNUM_ZERO ());                            \
+       if (n == 1) return (BIGNUM_ONE (0));                            \
+       if (n < (type)0 && n == (type)-1) return (BIGNUM_ONE (1));      \
+       {                                                               \
+               utype accumulator = ((negative_p = (n < (type)0)) ? (-n) : n); \
+               do                                                      \
+               {                                                       \
+                       (*end_digits++) = (accumulator & BIGNUM_DIGIT_MASK); \
+                       accumulator >>= BIGNUM_DIGIT_LENGTH;            \
+               }                                                       \
+               while (accumulator != 0);                               \
+       }                                                               \
+       {                                                               \
+               bignum * result =                                       \
+                       (allot_bignum ((end_digits - result_digits), negative_p)); \
+               bignum_digit_type * scan_digits = result_digits;        \
+               bignum_digit_type * scan_result = (BIGNUM_START_PTR (result)); \
+               while (scan_digits < end_digits)                        \
+                       (*scan_result++) = (*scan_digits++);            \
+               return (result);                                        \
+       }                                                               \
 }
   
 /* all below allocate memory */
@@ -366,19 +365,19 @@ FOO_TO_BIGNUM(fixnum,fixnum,cell)
 FOO_TO_BIGNUM(long_long,s64,u64)
 FOO_TO_BIGNUM(ulong_long,u64,u64)
 
-#define BIGNUM_TO_FOO(name,type,utype)                                                                 \
-       type factorvm::bignum_to_##name(bignum * bignum)                                        \
-       {                                                                                                                                       \
-               if (BIGNUM_ZERO_P (bignum))                                                                             \
-                       return (0);                                                                                                     \
-               {                                                                                                                               \
-                       utype accumulator = 0;                                                                          \
-                       bignum_digit_type * start = (BIGNUM_START_PTR (bignum));        \
+#define BIGNUM_TO_FOO(name,type,utype)                                 \
+       type factorvm::bignum_to_##name(bignum * bignum)                \
+       {                                                               \
+               if (BIGNUM_ZERO_P (bignum))                             \
+                       return (0);                                     \
+               {                                                       \
+                       utype accumulator = 0;                          \
+                       bignum_digit_type * start = (BIGNUM_START_PTR (bignum)); \
                        bignum_digit_type * scan = (start + (BIGNUM_LENGTH (bignum))); \
-                       while (start < scan)                                                                            \
+                       while (start < scan)                            \
                                accumulator = ((accumulator << BIGNUM_DIGIT_LENGTH) + (*--scan)); \
                        return ((BIGNUM_NEGATIVE_P (bignum)) ? (-((type)accumulator)) : accumulator); \
-               }                                                                                                                               \
+               }                                                       \
        }
 
 /* all of the below allocate memory */
@@ -401,12 +400,12 @@ double factorvm::bignum_to_double(bignum * bignum)
        }
 }
 
-#define DTB_WRITE_DIGIT(factor)                                        \
-{                                                                                              \
+#define DTB_WRITE_DIGIT(factor)                                                \
+{                                                                      \
        significand *= (factor);                                        \
-       digit = ((bignum_digit_type) significand);      \
-       (*--scan) = digit;                                                      \
-       significand -= ((double) digit);                        \
+       digit = ((bignum_digit_type) significand);                      \
+       (*--scan) = digit;                                              \
+       significand -= ((double) digit);                                \
 }
 
 /* allocates memory */
@@ -494,7 +493,7 @@ enum bignum_comparison factorvm::bignum_compare_unsigned(bignum * x, bignum * y)
 /* allocates memory */
 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)))
        {
@@ -504,7 +503,7 @@ bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
        }
        {
                bignum_length_type x_length = (BIGNUM_LENGTH (x));
-    
+       
                bignum * r = (allot_bignum ((x_length + 1), negative_p));
 
                bignum_digit_type sum;
@@ -561,7 +560,7 @@ bignum *factorvm::bignum_add_unsigned(bignum * x, bignum * y, int negative_p)
 /* allocates memory */
 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;
        switch (bignum_compare_unsigned (x, y))
@@ -582,7 +581,7 @@ bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y)
        }
        {
                bignum_length_type x_length = (BIGNUM_LENGTH (x));
-    
+       
                bignum * r = (allot_bignum (x_length, negative_p));
 
                bignum_digit_type difference;
@@ -639,7 +638,7 @@ bignum *factorvm::bignum_subtract_unsigned(bignum * x, bignum * y)
 /* allocates memory */
 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)))
        {
@@ -708,9 +707,9 @@ bignum *factorvm::bignum_multiply_unsigned(bignum * x, bignum * y, int negative_
 }
 
 /* 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));
 
@@ -784,7 +783,7 @@ void factorvm::bignum_destructive_scale_up(bignum * bignum, bignum_digit_type fa
 /* 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)
 {
-       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_d = (BIGNUM_LENGTH (denominator));
@@ -793,10 +792,10 @@ void factorvm::bignum_divide_unsigned_large_denominator(bignum * numerator, bign
                ((quotient != ((bignum * *) 0))
                 ? (allot_bignum ((length_n - length_d), q_negative_p))
                 : BIGNUM_OUT_OF_BAND);
-       GC_BIGNUM(q,this);
+       GC_BIGNUM(q);
   
        bignum * u = (allot_bignum (length_n, r_negative_p));
-       GC_BIGNUM(u,this);
+       GC_BIGNUM(u);
   
        int shift = 0;
        BIGNUM_ASSERT (length_d > 1);
@@ -852,18 +851,18 @@ void factorvm::bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum
        bignum_digit_type * q_scan = NULL;
        bignum_digit_type v1 = (v_end[-1]);
        bignum_digit_type v2 = (v_end[-2]);
-       bignum_digit_type ph;        /* high half of double-digit product */
-       bignum_digit_type pl;        /* low half of double-digit product */
+       bignum_digit_type ph;           /* high half of double-digit product */
+       bignum_digit_type pl;           /* low half of double-digit product */
        bignum_digit_type guess;
-       bignum_digit_type gh;        /* high half-digit of guess */
-       bignum_digit_type ch;        /* high half of double-digit comparand */
+       bignum_digit_type gh;           /* high half-digit of guess */
+       bignum_digit_type ch;           /* high half of double-digit comparand */
        bignum_digit_type v2l = (HD_LOW (v2));
        bignum_digit_type v2h = (HD_HIGH (v2));
-       bignum_digit_type cl;        /* low half of double-digit comparand */
-#define gl ph                        /* low half-digit of guess */
+       bignum_digit_type cl;           /* low half of double-digit comparand */
+#define gl ph                                          /* low half-digit of guess */
 #define uj pl
 #define qj ph
-       bignum_digit_type gm;                /* memory loc for reference parameter */
+       bignum_digit_type gm;                           /* memory loc for reference parameter */
        if (q != BIGNUM_OUT_OF_BAND)
                q_scan = ((BIGNUM_START_PTR (q)) + (BIGNUM_LENGTH (q)));
        while (u_scan_limit < u_scan)
@@ -991,12 +990,12 @@ bignum_digit_type factorvm::bignum_divide_subtract(bignum_digit_type * v_start,
 /* 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)
 {
-       GC_BIGNUM(numerator,this);
+       GC_BIGNUM(numerator);
   
        bignum_length_type length_n = (BIGNUM_LENGTH (numerator));
        bignum_length_type length_q;
        bignum * q = NULL;
-       GC_BIGNUM(q,this);
+       GC_BIGNUM(q);
   
        int shift = 0;
        /* Because `bignum_digit_divide' requires a normalized denominator. */
@@ -1092,27 +1091,27 @@ void factorvm::bignum_destructive_unnormalization(bignum * bignum, int shift_rig
    case of dividing two bignum digits by one bignum digit.  It is
    assumed that the numerator, denominator are normalized. */
 
-#define BDD_STEP(qn, j)                                                                                                \
-{                                                                                                                                      \
-       uj = (u[j]);                                                                                                    \
-       if (uj != v1)                                                                                                   \
-       {                                                                                                                       \
-               uj_uj1 = (HD_CONS (uj, (u[j + 1])));                                            \
-               guess = (uj_uj1 / v1);                                                                          \
-               comparand = (HD_CONS ((uj_uj1 % v1), (u[j + 2])));                      \
-       }                                                                                                                               \
-       else                                                                                                                    \
-       {                                                                                                                       \
-               guess = (BIGNUM_RADIX_ROOT - 1);                                                        \
-               comparand = (HD_CONS (((u[j + 1]) + v1), (u[j + 2])));          \
-       }                                                                                                                               \
-       while ((guess * v2) > comparand)                                                                \
-       {                                                                                                                       \
-               guess -= 1;                                                                                                     \
-               comparand += (v1 << BIGNUM_HALF_DIGIT_LENGTH);                          \
-               if (comparand >= BIGNUM_RADIX)                                                          \
-                       break;                                                                                                  \
-       }                                                                                                                               \
+#define BDD_STEP(qn, j)                                                        \
+{                                                                      \
+       uj = (u[j]);                                                    \
+       if (uj != v1)                                                   \
+       {                                                               \
+               uj_uj1 = (HD_CONS (uj, (u[j + 1])));                    \
+               guess = (uj_uj1 / v1);                                  \
+               comparand = (HD_CONS ((uj_uj1 % v1), (u[j + 2])));      \
+       }                                                               \
+       else                                                            \
+       {                                                               \
+               guess = (BIGNUM_RADIX_ROOT - 1);                        \
+               comparand = (HD_CONS (((u[j + 1]) + v1), (u[j + 2])));  \
+       }                                                               \
+       while ((guess * v2) > comparand)                                \
+       {                                                               \
+               guess -= 1;                                             \
+               comparand += (v1 << BIGNUM_HALF_DIGIT_LENGTH);          \
+               if (comparand >= BIGNUM_RADIX)                          \
+                       break;                                          \
+       }                                                               \
        qn = (bignum_digit_divide_subtract (v1, v2, guess, (&u[j])));   \
 }
 
@@ -1154,35 +1153,35 @@ bignum_digit_type factorvm::bignum_digit_divide(bignum_digit_type uh, bignum_dig
 
 #undef BDD_STEP
 
-#define BDDS_MULSUB(vn, un, carry_in)                  \
-{                                                                                              \
-       product = ((vn * guess) + carry_in);            \
+#define BDDS_MULSUB(vn, un, carry_in)                          \
+{                                                              \
+       product = ((vn * guess) + carry_in);                    \
        diff = (un - (HD_LOW (product)));                       \
-       if (diff < 0)                                                           \
-       {                                                                                       \
-               un = (diff + BIGNUM_RADIX_ROOT);                \
-               carry = ((HD_HIGH (product)) + 1);              \
-       }                                                                                       \
-       else                                                                            \
-       {                                                                                       \
-               un = diff;                                                              \
-               carry = (HD_HIGH (product));                    \
-       }                                                                                       \
+       if (diff < 0)                                           \
+       {                                                       \
+                       un = (diff + BIGNUM_RADIX_ROOT);        \
+                       carry = ((HD_HIGH (product)) + 1);      \
+       }                                                       \
+       else                                                    \
+       {                                                       \
+                       un = diff;                              \
+                       carry = (HD_HIGH (product));            \
+       }                                                       \
 }
 
 #define BDDS_ADD(vn, un, carry_in)                             \
-{                                                                                              \
-       sum = (vn + un + carry_in);                                     \
+{                                                              \
+       sum = (vn + un + carry_in);                             \
        if (sum < BIGNUM_RADIX_ROOT)                            \
-       {                                                                                       \
-               un = sum;                                                               \
-               carry = 0;                                                              \
-       }                                                                                       \
-       else                                                                            \
-       {                                                                                       \
-               un = (sum - BIGNUM_RADIX_ROOT);                 \
-               carry = 1;                                                              \
-       }                                                                                       \
+       {                                                       \
+                       un = sum;                               \
+                       carry = 0;                              \
+       }                                                       \
+       else                                                    \
+       {                                                       \
+                       un = (sum - BIGNUM_RADIX_ROOT);         \
+                       carry = 1;                              \
+       }                                                       \
 }
 
 bignum_digit_type factorvm::bignum_digit_divide_subtract(bignum_digit_type v1, bignum_digit_type v2, bignum_digit_type guess, bignum_digit_type * u)
@@ -1221,10 +1220,10 @@ bignum_digit_type factorvm::bignum_digit_divide_subtract(bignum_digit_type v1, b
 /* 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)
 {
-       GC_BIGNUM(numerator,this);
+       GC_BIGNUM(numerator);
   
        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));
 
@@ -1355,7 +1354,7 @@ bignum *factorvm::bignum_trim(bignum * bignum)
 /* allocates memory */
 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_destructive_copy (x, result);
@@ -1416,11 +1415,11 @@ bignum *factorvm::bignum_bitwise_and(bignum * arg1, bignum * arg2)
        return(
                   (BIGNUM_NEGATIVE_P (arg1))
                   ? (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_negneg_bitwise_op(AND_OP, arg1, arg2)
-           : bignum_posneg_bitwise_op(AND_OP, arg2, arg1)
+                  ? bignum_negneg_bitwise_op(AND_OP, arg1, arg2)
+                  : bignum_posneg_bitwise_op(AND_OP, arg2, arg1)
                   : (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_posneg_bitwise_op(AND_OP, arg1, arg2)
-           : bignum_pospos_bitwise_op(AND_OP, arg1, arg2)
+                  ? bignum_posneg_bitwise_op(AND_OP, arg1, arg2)
+                  : bignum_pospos_bitwise_op(AND_OP, arg1, arg2)
                   );
 }
 
@@ -1430,11 +1429,11 @@ bignum *factorvm::bignum_bitwise_ior(bignum * arg1, bignum * arg2)
        return(
                   (BIGNUM_NEGATIVE_P (arg1))
                   ? (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_negneg_bitwise_op(IOR_OP, arg1, arg2)
-           : bignum_posneg_bitwise_op(IOR_OP, arg2, arg1)
+                  ? bignum_negneg_bitwise_op(IOR_OP, arg1, arg2)
+                  : bignum_posneg_bitwise_op(IOR_OP, arg2, arg1)
                   : (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_posneg_bitwise_op(IOR_OP, arg1, arg2)
-           : bignum_pospos_bitwise_op(IOR_OP, arg1, arg2)
+                  ? bignum_posneg_bitwise_op(IOR_OP, arg1, arg2)
+                  : bignum_pospos_bitwise_op(IOR_OP, arg1, arg2)
                   );
 }
 
@@ -1444,11 +1443,11 @@ bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2)
        return(
                   (BIGNUM_NEGATIVE_P (arg1))
                   ? (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_negneg_bitwise_op(XOR_OP, arg1, arg2)
-           : bignum_posneg_bitwise_op(XOR_OP, arg2, arg1)
+                  ? bignum_negneg_bitwise_op(XOR_OP, arg1, arg2)
+                  : bignum_posneg_bitwise_op(XOR_OP, arg2, arg1)
                   : (BIGNUM_NEGATIVE_P (arg2))
-           ? bignum_posneg_bitwise_op(XOR_OP, arg1, arg2)
-           : bignum_pospos_bitwise_op(XOR_OP, arg1, arg2)
+                  ? bignum_posneg_bitwise_op(XOR_OP, arg1, arg2)
+                  : bignum_pospos_bitwise_op(XOR_OP, arg1, arg2)
                   );
 }
 
@@ -1457,7 +1456,7 @@ bignum *factorvm::bignum_bitwise_xor(bignum * arg1, bignum * arg2)
 /* assume arg1 is a big number, n is a long */
 bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
 {
-       GC_BIGNUM(arg1,this);
+       GC_BIGNUM(arg1);
   
        bignum * result = NULL;
        bignum_digit_type *scan1;
@@ -1478,7 +1477,7 @@ bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
                scanr = BIGNUM_START_PTR (result) + digit_offset;
                scan1 = BIGNUM_START_PTR (arg1);
                end = scan1 + BIGNUM_LENGTH (arg1);
-    
+       
                while (scan1 < end) {
                        *scanr = *scanr | (*scan1 & BIGNUM_DIGIT_MASK) << bit_offset;
                        *scanr = *scanr & BIGNUM_DIGIT_MASK;
@@ -1494,14 +1493,14 @@ bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
        else if (n < 0) {
                digit_offset = -n / BIGNUM_DIGIT_LENGTH;
                bit_offset =   -n % BIGNUM_DIGIT_LENGTH;
-    
+       
                result = allot_bignum_zeroed (BIGNUM_LENGTH (arg1) - digit_offset,
                                                                          BIGNUM_NEGATIVE_P(arg1));
-    
+       
                scanr = BIGNUM_START_PTR (result);
                scan1 = BIGNUM_START_PTR (arg1) + digit_offset;
                end = scanr + BIGNUM_LENGTH (result) - 1;
-    
+       
                while (scanr < end) {
                        *scanr =  (*scan1++ & BIGNUM_DIGIT_MASK) >> bit_offset ;
                        *scanr = (*scanr | 
@@ -1518,7 +1517,7 @@ bignum *factorvm::bignum_magnitude_ash(bignum * arg1, fixnum n)
 /* allocates memory */
 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_length_type max_length;
@@ -1552,7 +1551,7 @@ bignum *factorvm::bignum_pospos_bitwise_op(int op, bignum * arg1, bignum * arg2)
 /* allocates memory */
 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_length_type max_length;
@@ -1589,7 +1588,7 @@ bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
                        digit2 = (digit2 - BIGNUM_RADIX);
                        carry2 = 1;
                }
-    
+       
                *scanr++ = (op == AND_OP) ? digit1 & digit2 :
                        (op == IOR_OP) ? digit1 | digit2 :
                        digit1 ^ digit2;
@@ -1604,7 +1603,7 @@ bignum *factorvm::bignum_posneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
 /* allocates memory */
 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_length_type max_length;
@@ -1641,7 +1640,7 @@ bignum *factorvm::bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
                        digit1 = (digit1 - BIGNUM_RADIX);
                        carry1 = 1;
                }
-    
+       
                if (digit2 < BIGNUM_RADIX)
                        carry2 = 0;
                else
@@ -1649,7 +1648,7 @@ bignum *factorvm::bignum_negneg_bitwise_op(int op, bignum * arg1, bignum * arg2)
                        digit2 = (digit2 - BIGNUM_RADIX);
                        carry2 = 1;
                }
-    
+       
                *scanr++ = (op == AND_OP) ? digit1 & digit2 :
                        (op == IOR_OP) ? digit1 | digit2 :
                        digit1 ^ digit2;
@@ -1683,7 +1682,7 @@ void factorvm::bignum_negate_magnitude(bignum * arg)
                        digit = (digit - BIGNUM_RADIX);
                        carry = 1;
                }
-    
+       
                *scan++ = digit;
        }
 }
@@ -1691,7 +1690,7 @@ void factorvm::bignum_negate_magnitude(bignum * arg)
 /* Allocates memory */
 bignum *factorvm::bignum_integer_length(bignum * x)
 {
-       GC_BIGNUM(x,this);
+       GC_BIGNUM(x);
   
        bignum_length_type index = ((BIGNUM_LENGTH (x)) - 1);
        bignum_digit_type digit = (BIGNUM_REF (x, index));
index efa050667bec10eb0a38a7497010f180dd6d4930..ca04be376541dcaba477af296cc88cf7832c3571 100644 (file)
@@ -1,7 +1,7 @@
 namespace factor
 {
 
-/* :tabSize=2:indentSize=2:noTabs=true:
+/* 
 
 Copyright (C) 1989-1992 Massachusetts Institute of Technology
 Portions copyright (C) 2004-2009 Slava Pestov
@@ -45,9 +45,6 @@ enum bignum_comparison
 };
 
 struct factorvm;
-bignum * digit_stream_to_bignum(unsigned int n_digits,
-                                                               unsigned int (*producer)(unsigned int,factorvm*),
-                                   unsigned int radix,
-                                   int negative_p);
+bignum * digit_stream_to_bignum(unsigned int n_digits, unsigned int (*producer)(unsigned int,factorvm*), unsigned int radix, int negative_p);
 
 }
index ec3958e8090efce0777cec1f506051047ca86fb0..6d218bf8b302ead2b909fdf200ef92645a5fe165 100644 (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
 template <typename TYPE> TYPE *factorvm::allot_array_internal(cell capacity)
index e188b20f195a320a6bf08918a564c460c3fc618b..c14d1dd96957afef52221eceabc1e897fb3dfe41 100755 (executable)
@@ -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)
 {
        bignum *bx = fixnum_to_bignum(x);
-       GC_BIGNUM(bx,this);
+       GC_BIGNUM(bx);
        bignum *by = fixnum_to_bignum(y);
-       GC_BIGNUM(by,this);
+       GC_BIGNUM(by);
        drepl(tag<bignum>(bignum_multiply(bx,by)));
 }