@@ -616,7 +616,7 @@ impl ToBigUint for BigInt {
616
616
fn to_biguint ( & self ) -> Option < BigUint > {
617
617
if self . sign == Plus {
618
618
Some ( self . data . clone ( ) )
619
- } else if self . sign == Zero {
619
+ } else if self . sign == NoSign {
620
620
Some ( Zero :: zero ( ) )
621
621
} else {
622
622
None
@@ -836,15 +836,15 @@ fn get_radix_base(radix: uint) -> (DoubleBigDigit, uint) {
836
836
837
837
/// A Sign is a `BigInt`'s composing element.
838
838
#[ deriving( PartialEq , PartialOrd , Eq , Ord , Clone , Show ) ]
839
- pub enum Sign { Minus , Zero , Plus }
839
+ pub enum Sign { Minus , NoSign , Plus }
840
840
841
841
impl Neg < Sign > for Sign {
842
842
/// Negate Sign value.
843
843
#[ inline]
844
844
fn neg ( & self ) -> Sign {
845
845
match * self {
846
846
Minus => Plus ,
847
- Zero => Zero ,
847
+ NoSign => NoSign ,
848
848
Plus => Minus
849
849
}
850
850
}
@@ -880,7 +880,7 @@ impl Ord for BigInt {
880
880
if scmp != Equal { return scmp; }
881
881
882
882
match self . sign {
883
- Zero => Equal ,
883
+ NoSign => Equal ,
884
884
Plus => self . data . cmp ( & other. data ) ,
885
885
Minus => other. data . cmp ( & self . data ) ,
886
886
}
@@ -931,11 +931,11 @@ impl Shr<uint, BigInt> for BigInt {
931
931
impl Zero for BigInt {
932
932
#[ inline]
933
933
fn zero ( ) -> BigInt {
934
- BigInt :: from_biguint ( Zero , Zero :: zero ( ) )
934
+ BigInt :: from_biguint ( NoSign , Zero :: zero ( ) )
935
935
}
936
936
937
937
#[ inline]
938
- fn is_zero ( & self ) -> bool { self . sign == Zero }
938
+ fn is_zero ( & self ) -> bool { self . sign == NoSign }
939
939
}
940
940
941
941
impl One for BigInt {
@@ -949,7 +949,7 @@ impl Signed for BigInt {
949
949
#[ inline]
950
950
fn abs ( & self ) -> BigInt {
951
951
match self . sign {
952
- Plus | Zero => self . clone ( ) ,
952
+ Plus | NoSign => self . clone ( ) ,
953
953
Minus => BigInt :: from_biguint ( Plus , self . data . clone ( ) )
954
954
}
955
955
}
@@ -964,7 +964,7 @@ impl Signed for BigInt {
964
964
match self . sign {
965
965
Plus => BigInt :: from_biguint ( Plus , One :: one ( ) ) ,
966
966
Minus => BigInt :: from_biguint ( Minus , One :: one ( ) ) ,
967
- Zero => Zero :: zero ( ) ,
967
+ NoSign => Zero :: zero ( ) ,
968
968
}
969
969
}
970
970
@@ -979,8 +979,8 @@ impl Add<BigInt, BigInt> for BigInt {
979
979
#[ inline]
980
980
fn add ( & self , other : & BigInt ) -> BigInt {
981
981
match ( self . sign , other. sign ) {
982
- ( Zero , _) => other. clone ( ) ,
983
- ( _, Zero ) => self . clone ( ) ,
982
+ ( NoSign , _) => other. clone ( ) ,
983
+ ( _, NoSign ) => self . clone ( ) ,
984
984
( Plus , Plus ) => BigInt :: from_biguint ( Plus , self . data + other. data ) ,
985
985
( Plus , Minus ) => self - ( -* other) ,
986
986
( Minus , Plus ) => other - ( -* self ) ,
@@ -993,8 +993,8 @@ impl Sub<BigInt, BigInt> for BigInt {
993
993
#[ inline]
994
994
fn sub ( & self , other : & BigInt ) -> BigInt {
995
995
match ( self . sign , other. sign ) {
996
- ( Zero , _) => -other,
997
- ( _, Zero ) => self . clone ( ) ,
996
+ ( NoSign , _) => -other,
997
+ ( _, NoSign ) => self . clone ( ) ,
998
998
( Plus , Plus ) => match self . data . cmp ( & other. data ) {
999
999
Less => BigInt :: from_biguint ( Minus , other. data - self . data ) ,
1000
1000
Greater => BigInt :: from_biguint ( Plus , self . data - other. data ) ,
@@ -1011,7 +1011,7 @@ impl Mul<BigInt, BigInt> for BigInt {
1011
1011
#[ inline]
1012
1012
fn mul ( & self , other : & BigInt ) -> BigInt {
1013
1013
match ( self . sign , other. sign ) {
1014
- ( Zero , _) | ( _, Zero ) => Zero :: zero ( ) ,
1014
+ ( NoSign , _) | ( _, NoSign ) => Zero :: zero ( ) ,
1015
1015
( Plus , Plus ) | ( Minus , Minus ) => {
1016
1016
BigInt :: from_biguint ( Plus , self . data * other. data )
1017
1017
} ,
@@ -1085,9 +1085,9 @@ impl Integer for BigInt {
1085
1085
let d = BigInt :: from_biguint ( Plus , d_ui) ;
1086
1086
let r = BigInt :: from_biguint ( Plus , r_ui) ;
1087
1087
match ( self . sign , other. sign ) {
1088
- ( _, Zero ) => fail ! ( ) ,
1089
- ( Plus , Plus ) | ( Zero , Plus ) => ( d, r) ,
1090
- ( Plus , Minus ) | ( Zero , Minus ) => ( -d, r) ,
1088
+ ( _, NoSign ) => fail ! ( ) ,
1089
+ ( Plus , Plus ) | ( NoSign , Plus ) => ( d, r) ,
1090
+ ( Plus , Minus ) | ( NoSign , Minus ) => ( -d, r) ,
1091
1091
( Minus , Plus ) => ( -d, -r) ,
1092
1092
( Minus , Minus ) => ( d, -r)
1093
1093
}
@@ -1111,9 +1111,9 @@ impl Integer for BigInt {
1111
1111
let d = BigInt :: from_biguint ( Plus , d_ui) ;
1112
1112
let m = BigInt :: from_biguint ( Plus , m_ui) ;
1113
1113
match ( self . sign , other. sign ) {
1114
- ( _, Zero ) => fail ! ( ) ,
1115
- ( Plus , Plus ) | ( Zero , Plus ) => ( d, m) ,
1116
- ( Plus , Minus ) | ( Zero , Minus ) => if m. is_zero ( ) {
1114
+ ( _, NoSign ) => fail ! ( ) ,
1115
+ ( Plus , Plus ) | ( NoSign , Plus ) => ( d, m) ,
1116
+ ( Plus , Minus ) | ( NoSign , Minus ) => if m. is_zero ( ) {
1117
1117
( -d, Zero :: zero ( ) )
1118
1118
} else {
1119
1119
( -d - One :: one ( ) , m + * other)
@@ -1164,7 +1164,7 @@ impl ToPrimitive for BigInt {
1164
1164
fn to_i64 ( & self ) -> Option < i64 > {
1165
1165
match self . sign {
1166
1166
Plus => self . data . to_i64 ( ) ,
1167
- Zero => Some ( 0 ) ,
1167
+ NoSign => Some ( 0 ) ,
1168
1168
Minus => {
1169
1169
self . data . to_u64 ( ) . and_then ( |n| {
1170
1170
let m: u64 = 1 << 63 ;
@@ -1184,7 +1184,7 @@ impl ToPrimitive for BigInt {
1184
1184
fn to_u64 ( & self ) -> Option < u64 > {
1185
1185
match self . sign {
1186
1186
Plus => self . data . to_u64 ( ) ,
1187
- Zero => Some ( 0 ) ,
1187
+ NoSign => Some ( 0 ) ,
1188
1188
Minus => None
1189
1189
}
1190
1190
}
@@ -1270,7 +1270,7 @@ impl ToStrRadix for BigInt {
1270
1270
fn to_str_radix ( & self , radix : uint ) -> String {
1271
1271
match self . sign {
1272
1272
Plus => self . data . to_str_radix ( radix) ,
1273
- Zero => "0" . to_string ( ) ,
1273
+ NoSign => "0" . to_string ( ) ,
1274
1274
Minus => format ! ( "-{}" , self . data. to_str_radix( radix) ) ,
1275
1275
}
1276
1276
}
@@ -1332,7 +1332,7 @@ impl<R: Rng> RandBigInt for R {
1332
1332
if self . gen ( ) {
1333
1333
return self . gen_bigint ( bit_size) ;
1334
1334
} else {
1335
- Zero
1335
+ NoSign
1336
1336
}
1337
1337
} else if self . gen ( ) {
1338
1338
Plus
@@ -1383,8 +1383,8 @@ impl BigInt {
1383
1383
/// The digits are be in base 2^32.
1384
1384
#[ inline]
1385
1385
pub fn from_biguint ( sign : Sign , data : BigUint ) -> BigInt {
1386
- if sign == Zero || data. is_zero ( ) {
1387
- return BigInt { sign : Zero , data : Zero :: zero ( ) } ;
1386
+ if sign == NoSign || data. is_zero ( ) {
1387
+ return BigInt { sign : NoSign , data : Zero :: zero ( ) } ;
1388
1388
}
1389
1389
BigInt { sign : sign, data : data }
1390
1390
}
@@ -1413,7 +1413,7 @@ impl BigInt {
1413
1413
pub fn to_biguint ( & self ) -> Option < BigUint > {
1414
1414
match self . sign {
1415
1415
Plus => Some ( self . data . clone ( ) ) ,
1416
- Zero => Some ( Zero :: zero ( ) ) ,
1416
+ NoSign => Some ( Zero :: zero ( ) ) ,
1417
1417
Minus => None
1418
1418
}
1419
1419
}
@@ -2286,7 +2286,7 @@ mod biguint_tests {
2286
2286
mod bigint_tests {
2287
2287
use Integer ;
2288
2288
use super :: { BigDigit , BigUint , ToBigUint } ;
2289
- use super :: { Sign , Minus , Zero , Plus , BigInt , RandBigInt , ToBigInt } ;
2289
+ use super :: { Sign , Minus , NoSign , Plus , BigInt , RandBigInt , ToBigInt } ;
2290
2290
2291
2291
use std:: cmp:: { Less , Equal , Greater } ;
2292
2292
use std:: i64;
@@ -2305,9 +2305,9 @@ mod bigint_tests {
2305
2305
assert_eq ! ( inp, ans) ;
2306
2306
}
2307
2307
check ( Plus , 1 , Plus , 1 ) ;
2308
- check ( Plus , 0 , Zero , 0 ) ;
2308
+ check ( Plus , 0 , NoSign , 0 ) ;
2309
2309
check ( Minus , 1 , Minus , 1 ) ;
2310
- check ( Zero , 1 , Zero , 0 ) ;
2310
+ check ( NoSign , 1 , NoSign , 0 ) ;
2311
2311
}
2312
2312
2313
2313
#[ test]
@@ -2355,8 +2355,8 @@ mod bigint_tests {
2355
2355
2356
2356
#[ test]
2357
2357
fn test_hash ( ) {
2358
- let a = BigInt :: new ( Zero , vec ! ( ) ) ;
2359
- let b = BigInt :: new ( Zero , vec ! ( 0 ) ) ;
2358
+ let a = BigInt :: new ( NoSign , vec ! ( ) ) ;
2359
+ let b = BigInt :: new ( NoSign , vec ! ( 0 ) ) ;
2360
2360
let c = BigInt :: new ( Plus , vec ! ( 1 ) ) ;
2361
2361
let d = BigInt :: new ( Plus , vec ! ( 1 , 0 , 0 , 0 , 0 , 0 ) ) ;
2362
2362
let e = BigInt :: new ( Plus , vec ! ( 0 , 0 , 0 , 0 , 0 , 1 ) ) ;
0 commit comments