Fixed Point Arithmetic  0
Fixed-point math library.
Functions
fixed_point.h File Reference
#include <stdbool.h>
#include "../fixed_point.h"

Go to the source code of this file.

Functions

bool f_gt (frac a, frac b)
 Greater-than comparison - single precision. More...
 
bool f_ge (frac a, frac b)
 Greater or equal comparison - single precision. More...
 
bool f_lt (frac a, frac b)
 Less-than comparison - single precision. More...
 
bool f_le (frac a, frac b)
 Less or equal comparison - single precision. More...
 
bool f_eq (frac a, frac b)
 Equality comparison - single precision. More...
 
bool df_gt (dfrac a, dfrac b)
 Greater-than comparison - double precision. More...
 
bool df_ge (dfrac a, dfrac b)
 Greater or equal comparison - double precision. More...
 
bool df_lt (dfrac a, dfrac b)
 Less-than comparison - double precision. More...
 
bool df_le (dfrac a, dfrac b)
 Less or equal comparison - double precision. More...
 
bool df_eq (dfrac a, dfrac b)
 Equality comparison - double precision. More...
 
frac f_add (frac a, frac b)
 Add two single precision fractional numbers - may overflow. More...
 
frac f_sub (frac a, frac b)
 Substract two single precision fractional numbers - may overflow. More...
 
dfrac df_add (dfrac a, dfrac b)
 Add two double precision fractional numbers - may overflow. More...
 
dfrac df_sub (dfrac a, dfrac b)
 Substract two double precision fractional numbers - may overflow. More...
 
efrac ef_add (efrac a, efrac b)
 Add two extended precision fractional numbers - may overflow. More...
 
efrac ef_sub (efrac a, efrac b)
 Substract two extended precision fractional numbers - may overflow. More...
 
efrac ef_f_add (efrac a, frac b)
 Add a single precision fractional to an extended precision fractional. More...
 
frac f_neg (frac a)
 Negate single precision fractional. More...
 
dfrac df_neg (dfrac a)
 Negate double precision fractional. More...
 
efrac ef_neg (efrac a)
 Negate extended precision fractional. More...
 
frac f_mul (frac a, frac b)
 Multiply single precision, yield single precision. More...
 
dfrac f_mul_df (frac a, frac b)
 Multiply single precision, yield double precision. More...
 
efrac f_mf_mul_ef (frac a, mfrac b)
 Multiply single precision by mixed fractional, yield extended precision,. More...
 
frac f_imul (frac a, int16_t b)
 Multiply single precision by integer, yield single precision. More...
 
int f_imul_i (frac a, int b)
 Multiply single precision by integer, yield integer. More...
 
efrac f_imul_ef (frac a, int16_t b)
 Multiply single precision by integer, yield extended precision. More...
 
dfrac df_imul (dfrac a, int16_t b)
 Multiply double precision by integer, yield double precision. More...
 
efrac ef_imul (efrac a, int16_t b)
 Multiply extended precision by integer, yield extended precision. More...
 
frac f_idiv (frac a, int16_t b)
 Divide single precision by integer, yield single precision. More...
 
dfrac df_idiv (dfrac a, int16_t b)
 Divide double precision by integer, yield double precision. More...
 
efrac ef_idiv (efrac a, int16_t b)
 Divide extended precision by integer, yield extended precision. More...
 
dfrac df_shiftl (dfrac a, int16_t b)
 Arithmetic shift left a double precision fractional. More...
 
dfrac df_shiftr (dfrac a, int16_t b)
 Arithmetic shift right a double precision fractional. More...
 
frac df_to_f (dfrac x)
 Truncate to single precision. More...
 
dfrac f_to_df (frac x)
 Extend a single precision number to double precision. More...
 
efrac f_to_ef (frac x)
 Extend a single precision fractional to an extended-fractional. More...
 
efrac f_ef_div (frac dividend, efrac divisor)
 Divide a frac by an efrac and return an efrac. More...
 
frac ef_to_f (efrac x)
 Saturate an extended fractional to yield a fractional. More...
 
frac f_clip (frac x, frac limit)
 Clip a number to lie between -limit and limit. More...
 
dfrac df_addsat (dfrac x1, dfrac x2)
 Add with saturation. More...
 
dfrac f_macs_df (frac x, frac y, dfrac z)
 Multiply-accumulate with saturation. More...
 

Detailed Description

Author
Juan I Carrano

Fractional number routines.

About Fractional multiplication routines: This is the code that you should modify if you want to maximise performance for your particular machine; for example, if you have a hardware multiplier. The rest of the code is generic.

Definition in file fixed_point.h.