• Felix Lange's avatar
    all: unify big.Int zero checks, use common/math in more places (#3716) · 5f782627
    Felix Lange authored
    * common/math: optimize PaddedBigBytes, use it more
    
    name              old time/op    new time/op    delta
    PaddedBigBytes-8    71.1ns ± 5%    46.1ns ± 1%  -35.15%  (p=0.000 n=20+19)
    
    name              old alloc/op   new alloc/op   delta
    PaddedBigBytes-8     48.0B ± 0%     32.0B ± 0%  -33.33%  (p=0.000 n=20+20)
    
    * all: unify big.Int zero checks
    
    Various checks were in use. This commit replaces them all with Int.Sign,
    which is cheaper and less code.
    
    eg templates:
    
        func before(x *big.Int) bool { return x.BitLen() == 0 }
        func after(x *big.Int) bool  { return x.Sign() == 0 }
    
        func before(x *big.Int) bool { return x.BitLen() > 0 }
        func after(x *big.Int) bool  { return x.Sign() != 0 }
    
        func before(x *big.Int) int { return x.Cmp(common.Big0) }
        func after(x *big.Int) int  { return x.Sign() }
    
    * common/math, crypto/secp256k1: make ReadBits public in package math
    5f782627
Name
Last commit
Last update
..
ecies Loading commit data...
randentropy Loading commit data...
secp256k1 Loading commit data...
sha3 Loading commit data...
crypto.go Loading commit data...
crypto_test.go Loading commit data...
signature_cgo.go Loading commit data...
signature_nocgo.go Loading commit data...
signature_test.go Loading commit data...