cmp.gno
0.90 Kb ยท 59 lines
1package int256
2
3func (z *Int) Eq(x *Int) bool {
4 return z.value.Eq(&x.value)
5}
6
7func (z *Int) Neq(x *Int) bool {
8 return !z.Eq(x)
9}
10
11// Cmp compares z and x and returns:
12//
13// - 1 if z > x
14// - 0 if z == x
15// - -1 if z < x
16func (z *Int) Cmp(x *Int) int {
17 zSign, xSign := z.Sign(), x.Sign()
18
19 if zSign == xSign {
20 return z.value.Cmp(&x.value)
21 }
22
23 if zSign == 0 {
24 return -xSign
25 }
26
27 return zSign
28}
29
30// IsZero returns true if z == 0
31func (z *Int) IsZero() bool {
32 return z.value.IsZero()
33}
34
35// IsNeg returns true if z < 0
36func (z *Int) IsNeg() bool {
37 return z.Sign() < 0
38}
39
40func (z *Int) Lt(x *Int) bool {
41 return z.Cmp(x) < 0
42}
43
44func (z *Int) Gt(x *Int) bool {
45 return z.Cmp(x) > 0
46}
47
48func (z *Int) Le(x *Int) bool {
49 return z.Cmp(x) <= 0
50}
51
52func (z *Int) Ge(x *Int) bool {
53 return z.Cmp(x) >= 0
54}
55
56// Clone creates a new Int identical to z
57func (z *Int) Clone() *Int {
58 return New().FromUint256(&z.value)
59}