Math.sol 768 B

1234567891011121314151617181920212223242526272829
  1. pragma solidity ^0.5.0;
  2. /**
  3. * @dev Standard math utilities missing in the Solidity language.
  4. */
  5. library Math {
  6. /**
  7. * @dev Returns the largest of two numbers.
  8. */
  9. function max(uint256 a, uint256 b) internal pure returns (uint256) {
  10. return a >= b ? a : b;
  11. }
  12. /**
  13. * @dev Returns the smallest of two numbers.
  14. */
  15. function min(uint256 a, uint256 b) internal pure returns (uint256) {
  16. return a < b ? a : b;
  17. }
  18. /**
  19. * @dev Returns the average of two numbers. The result is rounded towards
  20. * zero.
  21. */
  22. function average(uint256 a, uint256 b) internal pure returns (uint256) {
  23. // (a + b) / 2 can overflow, so we distribute
  24. return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
  25. }
  26. }