• 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
..
build Loading commit data...
debug Loading commit data...
ethapi Loading commit data...
guide Loading commit data...
jsre Loading commit data...
web3ext Loading commit data...