A Solidity math library with overflow checking
Version: 0.5.0
example usage:
pragma solidity ^0.4.11;
import "Math.sol"
contract K{
using MathU for uint;
uint num;
function foo(uint x) {
...
num = num.add(x);
...
}
}
a add to b
function add(uint a, uint b) internal pure returns (uint c)
a subtract b
function sub(uint a, uint b) internal pure returns (uint c)
a multiplied by b
function mul(uint a, uint b) internal pure returns (uint c)
a divided by b
function div(uint a, uint b) internal pure returns (uint c)
Increment a
function inc(uint a) internal pure returns (uint c)
Decrement a
function dec(uint a) internal pure returns (uint c)
Raise a to power of b (Warning: no overflow checking)
function pow(uint a, uint8 b) internal pure returns (uint c)
Equates a to b
function eq(uint a, uint b) internal pure returns (bool)
a less than b
function lt(uint a, uint b) internal pure returns (bool)
a greater than b
function gt(uint a, uint b) internal pure returns (bool)
a less than or equal to b
function lteq(uint a, uint b) internal pure returns (bool)
a greater than or equal to b
function gteq(uint a, uint b) internal pure returns (bool)
a is zero
function isZero(uint a) internal pure returns (bool)
Parametric comparitor test. a > b where sym == true a < b where sym == false
function cmp(uint a, uint b, bool sym) internal pure returns (bool)
Parametric comparitor test. a >= b where sym == true a <= b where sym == false
function cmpEq(uint a, uint b, bool sym) internal pure returns (bool)
Trinary comparitor returning int -1, 0, 1 for LT, EQ, GT
function cmpTri(uint a, uint b) internal pure returns (int8)
Safe uint
casting for uint lengths 8,16,32,40,48,56,64,72,80,96,128,192
function uint64(uint a) internal pure returns (uint64 b)