WadRayMath
This library provides mul/div[up/down] functionality for WAD, RAY and RAD with phantom overflow protection as well as scale[up/down] functionality for WAD, RAY and RAD.
Functions
wadMulDown
Multiplies two WAD numbers and returns the result as a WAD rounding the result down.
function wadMulDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand.
b
uint256
Multiplier.
wadMulUp
Multiplies two WAD numbers and returns the result as a WAD rounding the result up.
function wadMulUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand.
b
uint256
Multiplier.
wadDivDown
Divides two WAD numbers and returns the result as a WAD rounding the result down.
function wadDivDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend.
b
uint256
Divisor.
wadDivUp
Divides two WAD numbers and returns the result as a WAD rounding the result up.
function wadDivUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend.
b
uint256
Divisor.
rayMulDown
Multiplies two RAY numbers and returns the result as a RAY rounding the result down.
function rayMulDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand
b
uint256
Multiplier
rayMulUp
Multiplies two RAY numbers and returns the result as a RAY rounding the result up.
function rayMulUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand
b
uint256
Multiplier
rayDivDown
Divides two RAY numbers and returns the result as a RAY rounding the result down.
function rayDivDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend
b
uint256
Divisor
rayDivUp
Divides two RAY numbers and returns the result as a RAY rounding the result up.
function rayDivUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend
b
uint256
Divisor
radMulDown
Multiplies two RAD numbers and returns the result as a RAD rounding the result down.
function radMulDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand
b
uint256
Multiplier
radMulUp
Multiplies two RAD numbers and returns the result as a RAD rounding the result up.
function radMulUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Multiplicand
b
uint256
Multiplier
radDivDown
Divides two RAD numbers and returns the result as a RAD rounding the result down.
function radDivDown(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend
b
uint256
Divisor
radDivUp
Divides two RAD numbers and returns the result as a RAD rounding the result up.
function radDivUp(uint256 a, uint256 b) internal pure returns (uint256);
Parameters
a
uint256
Dividend
b
uint256
Divisor
scaleUpToWad
Scales a value up from WAD. NOTE: The scale
value must be less than 18.
function scaleUpToWad(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale up.
scale
uint256
of the returned value.
scaleUpToRay
Scales a value up from RAY. NOTE: The scale
value must be less than 27.
function scaleUpToRay(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale up.
scale
uint256
of the returned value.
scaleUpToRad
Scales a value up from RAD. NOTE: The scale
value must be less than 45.
function scaleUpToRad(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale up.
scale
uint256
of the returned value.
scaleDownToWad
Scales a value down to WAD. NOTE: The scale
value must be greater than 18.
function scaleDownToWad(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale down.
scale
uint256
of the returned value.
scaleDownToRay
Scales a value down to RAY. NOTE: The scale
value must be greater than 27.
function scaleDownToRay(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale down.
scale
uint256
of the returned value.
scaleDownToRad
Scales a value down to RAD. NOTE: The scale
value must be greater than 45.
function scaleDownToRad(uint256 value, uint256 scale) internal pure returns (uint256);
Parameters
value
uint256
to scale down.
scale
uint256
of the returned value.
scaleUp
Scales a value up from one fixed-point precision to another.
function scaleUp(uint256 value, uint256 from, uint256 to) internal pure returns (uint256);
Parameters
value
uint256
to scale up.
from
uint256
Precision to scale from.
to
uint256
Precision to scale to.
scaleDown
Scales a value down from one fixed-point precision to another.
function scaleDown(uint256 value, uint256 from, uint256 to) internal pure returns (uint256);
Parameters
value
uint256
to scale down.
from
uint256
Precision to scale from.
to
uint256
Precision to scale to.
Errors
NotScalingUp
error NotScalingUp(uint256 from, uint256 to);
NotScalingDown
error NotScalingDown(uint256 from, uint256 to);