Multiply an XFL floating point by a non-XFL numerator and denominator
Concepts
Behaviour
- Compute the multiplication of an XFL (xls17) floating point number and the quotient of two integers
- Return a new XFL as an int64_t
Definition
int64_t float_multiply (
int64_t float1,
uint32_t round_up,
uint32_t numerator,
uint32_t denominator
);
Example
int64_t max_vault_pusd =
float_mulratio(max_vault_pusd, 0,
COLLATERALIZATION_NUMERATOR, COLLATERALIZATION_DENOMINATOR);
Parameters
| Name | Type | Description |
|---|---|---|
| float1 | int64_t | An XFL floating point enclosing number representing the first operand to the multiplication |
| round_up | uint32_t | If non-zero all computations will be rounded up |
| numerator | uint32_t | The numerator of the quotient that the float will be multiplied by |
| denominator | uint32_t | The denominator of the quotient that the float will be multiplied by |
Caution
Certain multiplications may overflow, which return with an
INVALID_FLOATerror. However an underflow returns as XFL Canonical Zero (i.e. enclosing number = 0).
Return Code
| Type | Description |
|---|---|
| int64_t | The XFL (xls17) enclosing number If negative, an error: INVALID_FLOAT- one of the supplied parameters was not a valid XFL enclosing number OVERFLOW- the result of the multiplication was too large to store in an XFL. DIVISION_BY_ZERO- the supplied denominator was zero. |