improve docs

pull/5029/head
Lohann Paterno Coutinho Ferreira 9 months ago
parent 07bcce51d9
commit d513400f7c
No known key found for this signature in database
GPG Key ID: 2F8CDF07D94CAE05
  1. 10
      contracts/utils/math/Math.sol

@ -22,9 +22,9 @@ library Math {
*/ */
function saturatingAdd(uint256 a, uint256 b) internal pure returns (uint256) { function saturatingAdd(uint256 a, uint256 b) internal pure returns (uint256) {
unchecked { unchecked {
a = a + b; uint256 c = a + b;
b = 0 - SafeCast.toUint(a < b); // equivalent to: c < a ? type(uint256).max : c
return a | b; return c | (0 - SafeCast.toUint(c < a));
} }
} }
@ -45,7 +45,7 @@ library Math {
*/ */
function saturatingSub(uint256 a, uint256 b) internal pure returns (uint256) { function saturatingSub(uint256 a, uint256 b) internal pure returns (uint256) {
unchecked { unchecked {
// equivalent to: a >= b ? a - b : 0 // equivalent to: a > b ? a - b : 0
return (a - b) * SafeCast.toUint(a > b); return (a - b) * SafeCast.toUint(a > b);
} }
} }
@ -56,7 +56,7 @@ library Math {
function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) { function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {
unchecked { unchecked {
success = a >= b; success = a >= b;
// equivalent to: success ? c : 0 // equivalent to: success ? (a - b) : 0
result = SafeCast.toUint(success) * (a - b); result = SafeCast.toUint(success) * (a - b);
} }
} }

Loading…
Cancel
Save