#include <stdint.h>
Go to the source code of this file.
|
| struct | frac_t |
| | frac descriptor for fraction consisting of two 32 bit integers More...
|
| |
| uint32_t | gcd32 (uint32_t u, uint32_t v) |
| | Compute greatest common divisor of u and v. More...
|
| |
| void | frac_init (frac_t *frac, uint32_t num, uint32_t den) |
| | Initialize frac_t struct. More...
|
| |
| static uint32_t | frac_scale (const frac_t *frac, uint32_t x) |
| | Scale a 32 bit integer by a 32/32 rational number. More...
|
| |
◆ frac_init()
| void frac_init |
( |
frac_t * |
frac, |
|
|
uint32_t |
num, |
|
|
uint32_t |
den |
|
) |
| |
Initialize frac_t struct.
This function computes the mathematical parameters used by the frac algorithm.
- Note
- If
num > den, the result from frac_scale modulo 2**32.
- Precondition
den must not be 0
- Parameters
-
| [out] | frac | pointer to frac descriptor to initialize |
| [in] | num | numerator |
| [in] | den | denominator |
◆ frac_scale()
| static uint32_t frac_scale |
( |
const frac_t * |
frac, |
|
|
uint32_t |
x |
|
) |
| |
|
inlinestatic |
Scale a 32 bit integer by a 32/32 rational number.
- Parameters
-
| [in] | frac | scaling fraction |
| [in] | x | unscaled integer |
- Returns
- (x * frac) % 2**32, avoiding truncation
Definition at line 90 of file frac.h.
◆ gcd32()
| uint32_t gcd32 |
( |
uint32_t |
u, |
|
|
uint32_t |
v |
|
) |
| |
Compute greatest common divisor of u and v.
- Parameters
-
| [in] | u | first operand |
| [in] | v | second operand |
- Returns
- Greatest common divisor of
u and v