37 #ifndef FIXED_POINT_TYPES_H 38 #define FIXED_POINT_TYPES_H 143 #define MFRAC_BIT (16) 144 #define FRAC_BIT (16) 145 #define DFRAC_BIT (32) 146 #define EFRAC_BIT (32) 156 typedef frac frac_s16; 157 typedef dfrac frac_s32; 175 #define MFRAC_1_V (INT16_MAX >> 8) 180 #define MFRAC_minus1_V (INT16_MIN >> 8) 184 #define MFRAC_MAX_V INT16_MAX 188 #define MFRAC_MIN_V INT16_MIN 202 #define FRAC_1_V INT16_MAX 205 #define FRAC_0_5_V (-(INT16_MIN>>1)) 209 #define FRAC_minus1_V INT16_MIN 213 #define FRAC_MAX_V INT16_MAX 217 #define FRAC_MIN_V INT16_MIN 227 #define DFRAC_1_V (-(INT32_MIN>>1)) 230 #define DFRAC_0_5_V (-(INT32_MIN>>2)) 237 #define DFRAC_almost1_V (-(INT32_MIN>>1)-1) 240 #define DFRAC_minus1_V (INT32_MIN>>1) 244 #define DFRAC_MAX_V INT32_MAX 248 #define DFRAC_MIN_V INT32_MIN 256 #define EFRAC_minus1_V ((efrac_base)FRAC_minus1_V) 257 #define EFRAC_1_V (-EFRAC_minus1_V) 259 #define EFRAC_MAX_V INT32_MAX 260 #define EFRAC_MIN_V INT32_MIN 268 static const frac FZero = {0};
269 static const dfrac DFZero = {0};
270 static const efrac EFZero = {0};
288 #define F_TO_REAL(real_type, n) (((real_type)(n.v))/(-(real_type)FRAC_minus1_V)) 299 #define REAL_TO_F(f) (_frac(-f*FRAC_minus1_V)) 306 #define DF_TO_REAL(real_type, n) (((real_type)(n.v))/((real_type)DFRAC_1_V)) 315 #define REAL_TO_DF(f) (_dfrac(f*DFRAC_1_V)) 322 #define EF_TO_REAL(real_type, n) (((real_type)(n.v))/((real_type)EFRAC_1_V)) 331 #define REAL_TO_EF(f) (_efrac(f*EFRAC_1_V)) 333 #define F_TO_DOUBLE(n) F_TO_REAL(double, n) 334 #define DF_TO_DOUBLE(n) DF_TO_REAL(double, n) 335 #define EF_TO_DOUBLE(n) EF_TO_REAL(double, n) 337 #define F_TO_FLOAT(n) F_TO_REAL(float, n) 338 #define DF_TO_FLOAT(n) DF_TO_REAL(float, n) 339 #define EF_TO_FLOAT(n) EF_TO_REAL(float, n) 16 bit fractional number in Q8.8 format.
32 bit fractional number in Q2.30 format.
16 bit fractional number in Q1.15 format.
32 bit fractional number in Q17.15 format.