Changeset 37

Show
Ignore:
Timestamp:
04/14/05 13:17:51 (4 years ago)
Author:
brad
Message:

incorporated Stewart Gordon's patches for radix and bigint_int

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/etc/bigint/bigint_int.d

    r28 r37  
    180180        a = new Int("0x123456"); 
    181181        assert(a.toHexString() == "123456"); 
     182 
     183        a = new Int("0"); 
     184        assert (a.toString == "0"); 
     185        assert (ZERO.toString == "0"); 
     186        assert (a == ZERO); 
     187        assert (a == new Int(0)); 
    182188    } 
    183189 
     
    224230            d.length = 2; 
    225231            d[0] = n; 
    226             d[1] = n < 0 ? -1 : 0; 
     232            d[1] = n < 0 ? -1U : 0; 
    227233        } 
    228234 
     
    243249            d.length = 3; 
    244250            *(cast(ulong*)d) = n; 
    245             d[2] = n < 0 ? -1 : 0; 
     251            d[2] = n < 0 ? -1U : 0; 
    246252            minimize(this); 
    247253        } 
     
    327333            if (len == 0) 
    328334            { 
    329                 uint[2] t; 
    330                 t[0] = t[1] = isNegative ? -1 : 0; 
    331                 d = t; 
     335                d.length = 2; 
     336                d[] = isNegative ? -1U : 0; 
    332337            } 
    333338            else 
     
    349354            d.length = x.length + 1; 
    350355            d[0..x.length] = x[0..x.length]; 
    351             d[x.length] = isNegative ? -1 : 0; 
     356            d[x.length] = isNegative ? -1U : 0; 
    352357            minimize(this); 
    353358        } 
     
    595600            uint carry = t > 0xFFFFFFFF; 
    596601 
    597             carry = bigintLLIncV(&r.d[1], &x.d[1], (y<0?-1:0), carry, x.d.length-1); 
     602            carry = bigintLLIncV(&r.d[1], &x.d[1], cast(uint) (y<0?-1:0), carry, x.d.length-1); 
    598603            r.d[x.d.length] = x.d[x.d.length-1] + (y<0?-1:0) + carry; 
    599604            return minimize(r); 
     
    652657            uint carry = t > 0xFFFFFFFF; 
    653658 
    654             carry = bigintLLDecV(&r.d[1], &x.d[1], (y<0?-1:0), carry, x.d.length-1); 
     659            carry = bigintLLDecV(&r.d[1], &x.d[1], cast(uint) (y<0?-1:0), carry, x.d.length-1); 
    655660            r.d[x.d.length] = x.d[x.d.length-1] - (y<0?-1:0) - carry; 
    656661            return minimize(r); 
     
    15221527    r.d.length = y + 2; 
    15231528    r.d[y] = x; 
    1524     r.d[y+1] = x<0 ? -1 : 0; 
     1529    r.d[y+1] = x<0 ? -1U : 0; 
    15251530    return r; 
    15261531} 
  • trunk/etc/bigint/radix.d

    r12 r37  
    151151                default: 
    152152                { 
    153                     if (s[0] == 0) throw new IntException("Leading zero not permitted if radix unspecified"); 
     153                    if (s[0] == '0') throw new IntException("Leading zero not permitted if radix unspecified"); 
    154154                    radix = 10; 
    155155                }