Files
openzeppelin-contracts/contracts/math/Math.sol
Nicolás Venturo d51e38758e Math.average (#1170)
* Added Math.average

* Removed assertion.
2018-08-13 20:07:18 -03:00

22 lines
508 B
Solidity

pragma solidity ^0.4.24;
/**
* @title Math
* @dev Assorted math operations
*/
library Math {
function max(uint256 _a, uint256 _b) internal pure returns (uint256) {
return _a >= _b ? _a : _b;
}
function min(uint256 _a, uint256 _b) internal pure returns (uint256) {
return _a < _b ? _a : _b;
}
function average(uint256 _a, uint256 _b) internal pure returns (uint256) {
// (_a + _b) / 2 can overflow, so we distribute
return (_a / 2) + (_b / 2) + ((_a % 2 + _b % 2) / 2);
}
}