class Ratio
Defined at line 17 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
Public Members
static const int64_t kOverflow
static const int64_t kUnderflow
Public Methods
void Reduce ()
Reduce the ratio instance, in-place.
Defined at line 41 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
Ratio Product (Ratio a, Ratio b, Exact exact)
Returns the product of the ratios. If exact is true, ASSERTs on loss of
precision.
Defined at line 56 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
void Ratio ()
Defined at line 64 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
void Ratio (uint32_t numerator, uint32_t denominator)
Defined at line 65 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
uint32_t numerator ()
Defined at line 70 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
uint32_t denominator ()
Defined at line 71 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
bool invertible ()
Defined at line 72 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
Ratio Inverse ()
Defined at line 74 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
template <Round kRoundBehavior = Round::Down>
int64_t Scale (int64_t value)
Defined at line 80 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
template <typename T>
void Reduce (T * numerator, T * denominator)
Reduces the ratio of N/D
Defined only for uint32_t and uint64_t
Defined at line 114 of file ../../zircon/system/ulib/affine/ratio.cc
void Product (uint32_t a_numerator, uint32_t a_denominator, uint32_t b_numerator, uint32_t b_denominator, uint32_t * product_numerator, uint32_t * product_denominator, Exact exact)
Produces the product two 32 bit ratios. If exact is true, ASSERTs on loss
of precision.
Defined at line 135 of file ../../zircon/system/ulib/affine/ratio.cc
template <Round kRoundBehavior = Round::Down>
int64_t Scale (int64_t value, uint32_t numerator, uint32_t denominator)
Produces the product of a 32 bit ratio and the int64_t as an int64_t. Returns
a saturated value (either kOverflow or kUnderflow) on overflow/underflow.
Defined at line 200 of file ../../zircon/system/ulib/affine/ratio.cc
Enumerations
enum Exact
| Name | Value |
|---|---|
| No | 0 |
| Yes | 1 |
Defined at line 19 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h
enum Round
| Name | Value |
|---|---|
| Down | 0 |
| Up | 1 |
| TowardsZero | 2 |
| AwayFromZero | 3 |
Rounding Behaviors used when scaling.
val | N | D | Down | Up | TowardsZero | AwayFromZero
-----+---+---+------+----+-------------+--------------
7 | 1 | 2 | 3 | 4 | 3 | 4
-7 | 1 | 2 | -4 | -3 | -3 | -4
Defined at line 28 of file ../../zircon/system/ulib/affine/include/lib/affine/ratio.h