layout | title |
---|---|
default |
ExponentialNoError |
View Source: contracts/ExponentialNoError.sol
↘ Derived Contracts: RewardControl
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})
.
struct Exp {
uint256 mantissa
}
struct Double {
uint256 mantissa
}
Constants & Variables
uint256 internal constant expScale;
uint256 internal constant doubleScale;
uint256 internal constant halfExpScale;
uint256 internal constant mantissaOne;
- truncate(struct ExponentialNoError.Exp exp)
- mul_ScalarTruncate(struct ExponentialNoError.Exp a, uint256 scalar)
- mul_ScalarTruncateAddUInt(struct ExponentialNoError.Exp a, uint256 scalar, uint256 addend)
- lessThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right)
- lessThanOrEqualExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right)
- greaterThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right)
- isZeroExp(struct ExponentialNoError.Exp value)
- safe224(uint256 n, string errorMessage)
- safe32(uint256 n, string errorMessage)
- add_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b)
- add_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b)
- add_(uint256 a, uint256 b)
- add_(uint256 a, uint256 b, string errorMessage)
- sub_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b)
- sub_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b)
- sub_(uint256 a, uint256 b)
- sub_(uint256 a, uint256 b, string errorMessage)
- mul_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b)
- mul_(struct ExponentialNoError.Exp a, uint256 b)
- mul_(uint256 a, struct ExponentialNoError.Exp b)
- mul_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b)
- mul_(struct ExponentialNoError.Double a, uint256 b)
- mul_(uint256 a, struct ExponentialNoError.Double b)
- mul_(uint256 a, uint256 b)
- mul_(uint256 a, uint256 b, string errorMessage)
- div_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b)
- div_(struct ExponentialNoError.Exp a, uint256 b)
- div_(uint256 a, struct ExponentialNoError.Exp b)
- div_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b)
- div_(struct ExponentialNoError.Double a, uint256 b)
- div_(uint256 a, struct ExponentialNoError.Double b)
- div_(uint256 a, uint256 b)
- div_(uint256 a, uint256 b, string errorMessage)
- fraction(uint256 a, uint256 b)
Truncates the given exp to a whole number value. For example, truncate(Exp{mantissa: 15 * expScale}) = 15
function truncate(struct ExponentialNoError.Exp exp) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
exp | struct ExponentialNoError.Exp |
Multiply an Exp by a scalar, then truncate to return an unsigned integer.
function mul_ScalarTruncate(struct ExponentialNoError.Exp a, uint256 scalar) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
scalar | uint256 |
Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.
function mul_ScalarTruncateAddUInt(struct ExponentialNoError.Exp a, uint256 scalar, uint256 addend) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
scalar | uint256 | |
addend | uint256 |
Checks if first Exp is less than second Exp.
function lessThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
left | struct ExponentialNoError.Exp | |
right | struct ExponentialNoError.Exp |
Checks if left Exp <= right Exp.
function lessThanOrEqualExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
left | struct ExponentialNoError.Exp | |
right | struct ExponentialNoError.Exp |
Checks if left Exp > right Exp.
function greaterThanExp(struct ExponentialNoError.Exp left, struct ExponentialNoError.Exp right) internal pure
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
left | struct ExponentialNoError.Exp | |
right | struct ExponentialNoError.Exp |
returns true if Exp is exactly zero
function isZeroExp(struct ExponentialNoError.Exp value) internal pure
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
value | struct ExponentialNoError.Exp |
function safe224(uint256 n, string errorMessage) internal pure
returns(uint224)
Arguments
Name | Type | Description |
---|---|---|
n | uint256 | |
errorMessage | string |
function safe32(uint256 n, string errorMessage) internal pure
returns(uint32)
Arguments
Name | Type | Description |
---|---|---|
n | uint256 | |
errorMessage | string |
function add_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | struct ExponentialNoError.Exp |
function add_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | struct ExponentialNoError.Double |
function add_(uint256 a, uint256 b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 |
function add_(uint256 a, uint256 b, string errorMessage) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 | |
errorMessage | string |
function sub_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | struct ExponentialNoError.Exp |
function sub_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | struct ExponentialNoError.Double |
function sub_(uint256 a, uint256 b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 |
function sub_(uint256 a, uint256 b, string errorMessage) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 | |
errorMessage | string |
function mul_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | struct ExponentialNoError.Exp |
function mul_(struct ExponentialNoError.Exp a, uint256 b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | uint256 |
function mul_(uint256 a, struct ExponentialNoError.Exp b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | struct ExponentialNoError.Exp |
function mul_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | struct ExponentialNoError.Double |
function mul_(struct ExponentialNoError.Double a, uint256 b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | uint256 |
function mul_(uint256 a, struct ExponentialNoError.Double b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | struct ExponentialNoError.Double |
function mul_(uint256 a, uint256 b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 |
function mul_(uint256 a, uint256 b, string errorMessage) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 | |
errorMessage | string |
function div_(struct ExponentialNoError.Exp a, struct ExponentialNoError.Exp b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | struct ExponentialNoError.Exp |
function div_(struct ExponentialNoError.Exp a, uint256 b) internal pure
returns(struct ExponentialNoError.Exp)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Exp | |
b | uint256 |
function div_(uint256 a, struct ExponentialNoError.Exp b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | struct ExponentialNoError.Exp |
function div_(struct ExponentialNoError.Double a, struct ExponentialNoError.Double b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | struct ExponentialNoError.Double |
function div_(struct ExponentialNoError.Double a, uint256 b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | struct ExponentialNoError.Double | |
b | uint256 |
function div_(uint256 a, struct ExponentialNoError.Double b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | struct ExponentialNoError.Double |
function div_(uint256 a, uint256 b) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 |
function div_(uint256 a, uint256 b, string errorMessage) internal pure
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 | |
errorMessage | string |
function fraction(uint256 a, uint256 b) internal pure
returns(struct ExponentialNoError.Double)
Arguments
Name | Type | Description |
---|---|---|
a | uint256 | |
b | uint256 |