Exp is a struct which stores decimals with a fixed precision of 18 decimal places.
Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:Exp({mantissa: 5100000000000000000}).
expScale
uint256 expScale
doubleScale
uint256 doubleScale
halfExpScale
uint256 halfExpScale
mantissaOne
uint256 mantissaOne
Exp
struct Exp {
uint256 mantissa;
}
Double
struct Double {
uint256 mantissa;
}
truncate
function truncate(struct ExponentialNoError.Exp exp) internal pure returns (uint256)
Truncates the given exp to a whole number value.
For example, truncate(Exp{mantissa: 15 * expScale}) = 15
mul_ScalarTruncate
function mul_ScalarTruncate(struct ExponentialNoError.Exp a, uint256 scalar) internal pure returns (uint256)
Multiply an Exp by a scalar, then truncate to return an unsigned integer.
mul_ScalarTruncateAddUInt
function mul_ScalarTruncateAddUInt(struct ExponentialNoError.Exp a, uint256 scalar, uint256 addend) internal pure returns (uint256)
Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.
lessThanExp
function lessThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure returns (bool)
Checks if first Exp is less than second Exp.
lessThanOrEqualExp
function lessThanOrEqualExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure returns (bool)
Checks if left Exp <= right Exp.
greaterThanExp
function greaterThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure returns (bool)
Checks if left Exp > right Exp.
isZeroExp
function isZeroExp(struct ExponentialNoError.Exp value) internal pure returns (bool)
returns true if Exp is exactly zero
safe224
function safe224(uint256 n, string errorMessage) internal pure returns (uint224)
safe32
function safe32(uint256 n, string errorMessage) internal pure returns (uint32)
add_
function add_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure returns (struct ExponentialNoError.Exp)
add_
function add_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure returns (struct ExponentialNoError.Double)
add_
function add_(uint256 a, uint256 b) internal pure returns (uint256)
add_
function add_(uint256 a, uint256 b, string errorMessage) internal pure returns (uint256)
sub_
function sub_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure returns (struct ExponentialNoError.Exp)
sub_
function sub_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure returns (struct ExponentialNoError.Double)
sub_
function sub_(uint256 a, uint256 b) internal pure returns (uint256)
sub_
function sub_(uint256 a, uint256 b, string errorMessage) internal pure returns (uint256)
mul_
function mul_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure returns (struct ExponentialNoError.Exp)
mul_
function mul_(struct ExponentialNoError.Exp a, uint256 b) internal pure returns (struct ExponentialNoError.Exp)
mul_
function mul_(uint256 a, struct ExponentialNoError.Exp b) internal pure returns (uint256)
mul_
function mul_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure returns (struct ExponentialNoError.Double)
mul_
function mul_(struct ExponentialNoError.Double a, uint256 b) internal pure returns (struct ExponentialNoError.Double)
mul_
function mul_(uint256 a, struct ExponentialNoError.Double b) internal pure returns (uint256)
mul_
function mul_(uint256 a, uint256 b) internal pure returns (uint256)
mul_
function mul_(uint256 a, uint256 b, string errorMessage) internal pure returns (uint256)
div_
function div_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure returns (struct ExponentialNoError.Exp)
div_
function div_(struct ExponentialNoError.Exp a, uint256 b) internal pure returns (struct ExponentialNoError.Exp)
div_
function div_(uint256 a, struct ExponentialNoError.Exp b) internal pure returns (uint256)
div_
function div_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure returns (struct ExponentialNoError.Double)
div_
function div_(struct ExponentialNoError.Double a, uint256 b) internal pure returns (struct ExponentialNoError.Double)
div_
function div_(uint256 a, struct ExponentialNoError.Double b) internal pure returns (uint256)
div_
function div_(uint256 a, uint256 b) internal pure returns (uint256)
div_
function div_(uint256 a, uint256 b, string errorMessage) internal pure returns (uint256)
fraction
function fraction(uint256 a, uint256 b) internal pure returns (struct ExponentialNoError.Double)