12345678910111213141516171819202122232425262728293031 |
- pragma solidity ^0.5.7;
- /**
- * @title Math
- * @dev Assorted math operations.
- */
- library Math {
- /**
- * @dev Returns the largest of two numbers.
- */
- function max(uint256 a, uint256 b) internal pure returns (uint256) {
- return a >= b ? a : b;
- }
- /**
- * @dev Returns the smallest of two numbers.
- */
- function min(uint256 a, uint256 b) internal pure returns (uint256) {
- return a < b ? a : b;
- }
- /**
- * @dev Calculates the average of two numbers. Since these are integers,
- * averages of an even and odd number cannot be represented, and will be
- * rounded down.
- */
- 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);
- }
- }
|