MU Library
fixedptc.h File Reference
#include <stdint.h>
Include dependency graph for fixedptc.h:

Go to the source code of this file.

Macros

#define FIXEDPT_BITS   32
 
#define FIXEDPT_WBITS   16
 
#define FIXEDPT_VCSID   "$Id$"
 
#define FIXEDPT_FBITS   (FIXEDPT_BITS - FIXEDPT_WBITS)
 
#define FIXEDPT_FMASK   (((fixedpt)1 << FIXEDPT_FBITS) - 1)
 
#define fixedpt_rconst(R)   ((fixedpt)((R)*FIXEDPT_ONE + ((R) >= 0 ? 0.5 : -0.5)))
 
#define fixedpt_fromint(I)   ((fixedptd)(I) << FIXEDPT_FBITS)
 
#define fixedpt_toint(F)   ((F) >> FIXEDPT_FBITS)
 
#define fixedpt_add(A, B)   ((A) + (B))
 
#define fixedpt_sub(A, B)   ((A) - (B))
 
#define fixedpt_xmul(A, B)    ((fixedpt)(((fixedptd)(A) * (fixedptd)(B)) >> FIXEDPT_FBITS))
 
#define fixedpt_xdiv(A, B)    ((fixedpt)(((fixedptd)(A) << FIXEDPT_FBITS) / (fixedptd)(B)))
 
#define fixedpt_fracpart(A)   ((fixedpt)(A)&FIXEDPT_FMASK)
 
#define FIXEDPT_ONE   ((fixedpt)((fixedpt)1 << FIXEDPT_FBITS))
 
#define FIXEDPT_ONE_HALF   (FIXEDPT_ONE >> 1)
 
#define FIXEDPT_TWO   (FIXEDPT_ONE + FIXEDPT_ONE)
 
#define FIXEDPT_PI   fixedpt_rconst(3.14159265358979323846)
 
#define FIXEDPT_TWO_PI   fixedpt_rconst(2 * 3.14159265358979323846)
 
#define FIXEDPT_HALF_PI   fixedpt_rconst(3.14159265358979323846 / 2)
 
#define FIXEDPT_E   fixedpt_rconst(2.7182818284590452354)
 
#define fixedpt_abs(A)   ((A) < 0 ? -(A) : (A))
 
#define fixedpt_tofloat(T)   ((float)((T) * ((float)(1) / (float)(1L << FIXEDPT_FBITS))))
 

Typedefs

typedef int32_t fixedpt
 
typedef int64_t fixedptd
 
typedef uint32_t fixedptu
 
typedef uint64_t fixedptud
 

Macro Definition Documentation

◆ fixedpt_abs

#define fixedpt_abs (   A)    ((A) < 0 ? -(A) : (A))

Definition at line 123 of file fixedptc.h.

◆ fixedpt_add

#define fixedpt_add (   A,
 
)    ((A) + (B))

Definition at line 107 of file fixedptc.h.

◆ FIXEDPT_BITS

#define FIXEDPT_BITS   32

Definition at line 72 of file fixedptc.h.

◆ FIXEDPT_E

#define FIXEDPT_E   fixedpt_rconst(2.7182818284590452354)

Definition at line 121 of file fixedptc.h.

◆ FIXEDPT_FBITS

#define FIXEDPT_FBITS   (FIXEDPT_BITS - FIXEDPT_WBITS)

Definition at line 101 of file fixedptc.h.

◆ FIXEDPT_FMASK

#define FIXEDPT_FMASK   (((fixedpt)1 << FIXEDPT_FBITS) - 1)

Definition at line 102 of file fixedptc.h.

◆ fixedpt_fracpart

#define fixedpt_fracpart (   A)    ((fixedpt)(A)&FIXEDPT_FMASK)

Definition at line 113 of file fixedptc.h.

◆ fixedpt_fromint

#define fixedpt_fromint (   I)    ((fixedptd)(I) << FIXEDPT_FBITS)

Definition at line 105 of file fixedptc.h.

◆ FIXEDPT_HALF_PI

#define FIXEDPT_HALF_PI   fixedpt_rconst(3.14159265358979323846 / 2)

Definition at line 120 of file fixedptc.h.

◆ FIXEDPT_ONE

#define FIXEDPT_ONE   ((fixedpt)((fixedpt)1 << FIXEDPT_FBITS))

Definition at line 115 of file fixedptc.h.

◆ FIXEDPT_ONE_HALF

#define FIXEDPT_ONE_HALF   (FIXEDPT_ONE >> 1)

Definition at line 116 of file fixedptc.h.

◆ FIXEDPT_PI

#define FIXEDPT_PI   fixedpt_rconst(3.14159265358979323846)

Definition at line 118 of file fixedptc.h.

◆ fixedpt_rconst

#define fixedpt_rconst (   R)    ((fixedpt)((R)*FIXEDPT_ONE + ((R) >= 0 ? 0.5 : -0.5)))

Definition at line 104 of file fixedptc.h.

◆ fixedpt_sub

#define fixedpt_sub (   A,
 
)    ((A) - (B))

Definition at line 108 of file fixedptc.h.

◆ fixedpt_tofloat

#define fixedpt_tofloat (   T)    ((float)((T) * ((float)(1) / (float)(1L << FIXEDPT_FBITS))))

Definition at line 128 of file fixedptc.h.

◆ fixedpt_toint

#define fixedpt_toint (   F)    ((F) >> FIXEDPT_FBITS)

Definition at line 106 of file fixedptc.h.

◆ FIXEDPT_TWO

#define FIXEDPT_TWO   (FIXEDPT_ONE + FIXEDPT_ONE)

Definition at line 117 of file fixedptc.h.

◆ FIXEDPT_TWO_PI

#define FIXEDPT_TWO_PI   fixedpt_rconst(2 * 3.14159265358979323846)

Definition at line 119 of file fixedptc.h.

◆ FIXEDPT_VCSID

#define FIXEDPT_VCSID   "$Id$"

Definition at line 99 of file fixedptc.h.

◆ FIXEDPT_WBITS

#define FIXEDPT_WBITS   16

Definition at line 92 of file fixedptc.h.

◆ fixedpt_xdiv

#define fixedpt_xdiv (   A,
 
)     ((fixedpt)(((fixedptd)(A) << FIXEDPT_FBITS) / (fixedptd)(B)))

Definition at line 111 of file fixedptc.h.

◆ fixedpt_xmul

#define fixedpt_xmul (   A,
 
)     ((fixedpt)(((fixedptd)(A) * (fixedptd)(B)) >> FIXEDPT_FBITS))

Definition at line 109 of file fixedptc.h.

Typedef Documentation

◆ fixedpt

typedef int32_t fixedpt

Definition at line 78 of file fixedptc.h.

◆ fixedptd

typedef int64_t fixedptd

Definition at line 79 of file fixedptc.h.

◆ fixedptu

typedef uint32_t fixedptu

Definition at line 80 of file fixedptc.h.

◆ fixedptud

typedef uint64_t fixedptud

Definition at line 81 of file fixedptc.h.