float_mulratio

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

C

int64_t float_multiply (
    int64_t float1,
    uint32_t round_up,
    uint32_t numerator,
    uint32_t denominator
);

Example

C

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_FLOAT error. 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.

Last updated