| 12345678910111213141516171819202122232425 |
- package math
- import gmath "math"
- /*
- * NOTE: The following methods need to be optimised using either bit checking or asm
- */
- // SafeSub returns subtraction result and whether overflow occurred.
- func SafeSub(x, y uint64) (uint64, bool) {
- return x - y, x < y
- }
- // SafeAdd returns the result and whether overflow occurred.
- func SafeAdd(x, y uint64) (uint64, bool) {
- return x + y, y > gmath.MaxUint64-x
- }
- // SafeMul returns multiplication result and whether overflow occurred.
- func SafeMul(x, y uint64) (uint64, bool) {
- if x == 0 || y == 0 {
- return 0, false
- }
- return x * y, y > gmath.MaxUint64/x
- }
|