pragma solidity ^0.5.0; import "@openzeppelin/contracts/math/SafeMath.sol"; contract ExtendedMath { using SafeMath for uint256; // divide a/b then optionally floor or ceiling function divAndRound(uint256 a, uint256 b, bool ceiling) internal pure returns (uint256) { uint256 floor = a.div(b); return (ceiling && a.mod(b) != 0) ? floor.add(1) : floor; } }