]> Cypherpunks repositories - keks.git/commitdiff
Slightly shorter big.Int initialisation
authorSergey Matveev <stargrave@stargrave.org>
Tue, 14 Jan 2025 10:20:34 +0000 (13:20 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 14 Jan 2025 12:35:59 +0000 (15:35 +0300)
go/atom-decode.go
go/cmd/test-vector-anys/main.go
go/cmd/test-vector-manual/main.go

index 443ed14da6629e38fe4ace2492e838daef9134ac1b1231b99fc46eb28724150b..17e15f39dadc90f994e9cbb20ce1090c62cff0adde31b524c9d725101fc8f0ab 100644 (file)
@@ -143,11 +143,10 @@ func (ctx *Decoder) DecodeAtom() (t types.Type, err error) {
                        return
                }
                if len(s) > 8 {
-                       bi := big.NewInt(0)
-                       bi = bi.SetBytes([]byte(s))
+                       bi := new(big.Int).SetBytes([]byte(s))
                        if t == types.Int {
-                               n1 := big.NewInt(-1)
-                               bi = bi.Sub(n1, bi)
+                               bi = bi.Add(bi, big.NewInt(1))
+                               bi = bi.Neg(bi)
                        }
                        t = types.BigInt
                        ctx.bigints = append(ctx.bigints, bi)
@@ -158,10 +157,9 @@ func (ctx *Decoder) DecodeAtom() (t types.Type, err error) {
                        ctx.uints = append(ctx.uints, i)
                } else {
                        if i >= (1 << 63) {
-                               bi := big.NewInt(0)
-                               bi = bi.SetBytes([]byte(s))
-                               n1 := big.NewInt(-1)
-                               bi = bi.Sub(n1, bi)
+                               bi := new(big.Int).SetBytes([]byte(s))
+                               bi = bi.Add(bi, big.NewInt(1))
+                               bi = bi.Neg(bi)
                                ctx.bigints = append(ctx.bigints, bi)
                                t = types.BigInt
                        } else {
index 650eee1017268fa56b78cb67515b98c0a777f36d668f69c59d03343ea3da8cbf..ffb653d6c0669fd1903cc89d951d55ee401c5ce7e9af157ca1ad251d25d01ffb 100644 (file)
@@ -24,18 +24,13 @@ func mustHexDec(s string) []byte {
 }
 
 func main() {
-       bigint80 := big.NewInt(0)
-       bigint80.SetBytes(mustHexDec("0100000000000000000000"))
-       bigintFF := big.NewInt(0)
-       bigintFF.SetBytes(mustHexDec("0100000000000000000000000000000000"))
-       bigintN80 := big.NewInt(0)
-       bigintN80.SetBytes(mustHexDec("0100000000000000000000"))
+       bigint80 := new(big.Int).SetBytes(mustHexDec("0100000000000000000000"))
+       bigintFF := new(big.Int).SetBytes(mustHexDec("0100000000000000000000000000000000"))
+       bigintN80 := new(big.Int).SetBytes(mustHexDec("0100000000000000000000"))
        bigintN80 = bigintN80.Neg(bigintN80)
-       bigintNFF := big.NewInt(0)
-       bigintNFF.SetBytes(mustHexDec("0100000000000000000000000000000001"))
+       bigintNFF := new(big.Int).SetBytes(mustHexDec("0100000000000000000000000000000001"))
        bigintNFF = bigintNFF.Neg(bigintNFF)
-       bigintN := big.NewInt(0)
-       bigintN.SetBytes(mustHexDec("e5a461280341856d4ad908a69ea5f3ccc10c7882142bb7d801cc380f26b6b4d69632024ee521f8cfafb443d49a2a3d0cc73bb4757e882f5396ed302b418210d0d49d71be86ca699cf5ee3bd6d57ed658e69316229644ba650c92d7f0d4db29c3ad1dfa9979166f4c6e79561a58f8e2c63d08df4e2246ed1f64d2d613a19d8c9a6870e6188e2f3ad40c038fda30452f8ddfcd212a6a974bc25ec6a0564c66a7d28750ff9db458b74441e49ee5e82dbf4974d645678e0ad031f97aaba855451eef17a89b42821e530816dd5793a83b7a82e8ede81e7f3395691f761784f8bc627961cd40845ee908a40b9d1f01927b38eb1a7d4efd60db0944f7ec1b832b7e6eb1833f9a351576ad5de571fae8865da7514f06b0fbf38c1f2a8538f5d38b4e18001ccbb9ddcb488530f6086d14744d8b5672166e48e9ef93772575db66b6f257c6ffad6e2c291510c5ed02e1a8b24b44ec1e2a91686238e8defd18c01998634a5076a6b7f85fc81a1d61a15b2c528dfa082ce3e3e2ca649ac04817ec5c123e0b761ab103f780c014f021bbeb7ea3b86e0ca1c833e38ef5c897a6d7e1f4a2398c490b3d65e2f45c7fae402d1df1698b6fddb185481664871c2664bfd1686b2b3372783f1856f6247a3f8437a2818f68b7c4ea13a5f57b73c72870b684045f15"))
+       bigintN := new(big.Int).SetBytes(mustHexDec("e5a461280341856d4ad908a69ea5f3ccc10c7882142bb7d801cc380f26b6b4d69632024ee521f8cfafb443d49a2a3d0cc73bb4757e882f5396ed302b418210d0d49d71be86ca699cf5ee3bd6d57ed658e69316229644ba650c92d7f0d4db29c3ad1dfa9979166f4c6e79561a58f8e2c63d08df4e2246ed1f64d2d613a19d8c9a6870e6188e2f3ad40c038fda30452f8ddfcd212a6a974bc25ec6a0564c66a7d28750ff9db458b74441e49ee5e82dbf4974d645678e0ad031f97aaba855451eef17a89b42821e530816dd5793a83b7a82e8ede81e7f3395691f761784f8bc627961cd40845ee908a40b9d1f01927b38eb1a7d4efd60db0944f7ec1b832b7e6eb1833f9a351576ad5de571fae8865da7514f06b0fbf38c1f2a8538f5d38b4e18001ccbb9ddcb488530f6086d14744d8b5672166e48e9ef93772575db66b6f257c6ffad6e2c291510c5ed02e1a8b24b44ec1e2a91686238e8defd18c01998634a5076a6b7f85fc81a1d61a15b2c528dfa082ce3e3e2ca649ac04817ec5c123e0b761ab103f780c014f021bbeb7ea3b86e0ca1c833e38ef5c897a6d7e1f4a2398c490b3d65e2f45c7fae402d1df1698b6fddb185481664871c2664bfd1686b2b3372783f1856f6247a3f8437a2818f68b7c4ea13a5f57b73c72870b684045f15"))
        bigintN = bigintN.Neg(bigintN)
 
        data := map[string]any{
index 2d933a9ef3115a465f6e26bb3fb7af862db7784f4a9714a1fdfea1f5c6515832..3eb3794dd5528c263bcfe89ad811416db6485a5e0336c1d47d2982647a794a4a 100644 (file)
@@ -93,8 +93,7 @@ func main() {
                                mustEncode(keks.IntEncode(&buf, -1234))
                                mustEncode(keks.IntEncode(&buf, -12345678))
 
-                               b := big.NewInt(0)
-                               b.SetBytes(mustHexDec("0100000000000000000000"))
+                               b := new(big.Int).SetBytes(mustHexDec("0100000000000000000000"))
                                b = b.Neg(b)
                                mustEncode(keks.BigIntEncode(&buf, b))
                                b.SetBytes(mustHexDec("0100000000000000000000000000000001"))
@@ -115,8 +114,7 @@ func main() {
                                mustEncode(keks.UIntEncode(&buf, 123))
                                mustEncode(keks.UIntEncode(&buf, 1234))
                                mustEncode(keks.UIntEncode(&buf, 12345678))
-                               b := big.NewInt(0)
-                               b.SetBytes(mustHexDec("0100000000000000000000"))
+                               b := new(big.Int).SetBytes(mustHexDec("0100000000000000000000"))
                                mustEncode(keks.BigIntEncode(&buf, b))
                                b.SetBytes(mustHexDec("0100000000000000000000000000000000"))
                                mustEncode(keks.BigIntEncode(&buf, b))