Skip to content

Commit

Permalink
common/math: "optimised" SafeMul and added comment on Exp (ethereum#3675
Browse files Browse the repository at this point in the history
)
  • Loading branch information
obscuren authored Feb 17, 2017
1 parent 6f74fb9 commit bf21549
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
3 changes: 3 additions & 0 deletions common/math/exp.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ const wordSize = 32 << (uint64(^big.Word(0)) >> 63)

// Exp implement exponentiation by squaring algorithm.
//
// Exp return a new variable; base and exponent must
// not be changed under any circumstance.
//
// Courtesy @karalabe and @chfast
func Exp(base, exponent *big.Int) *big.Int {
result := big.NewInt(1)
Expand Down
4 changes: 2 additions & 2 deletions common/math/integer.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ func SafeAdd(x, y uint64) (uint64, bool) {

// SafeMul returns multiplication result and whether overflow occurred.
func SafeMul(x, y uint64) (uint64, bool) {
if x == 0 {
if x == 0 || y == 0 {
return 0, false
}
return x * y, x != 0 && y != 0 && y > gmath.MaxUint64/x
return x * y, y > gmath.MaxUint64/x
}

0 comments on commit bf21549

Please sign in to comment.