22 #ifndef INCLUDED_GR_FXPT_H
23 #define INCLUDED_GR_FXPT_H
41 static const int WORDBITS = 32;
42 static const int NBITS = 10;
43 static const float s_sine_table[1 << NBITS][2];
44 static const float PI;
45 static const float TWO_TO_THE_31;
52 int d = (int)floor(x/2/PI+0.5);
55 return (gr_int32) ((float) x * TWO_TO_THE_31 / PI);
61 return x * (PI / TWO_TO_THE_31);
71 int index = ux >> (WORDBITS - NBITS);
72 return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];
81 gr_uint32 ux = x + 0x40000000;
82 int index = ux >> (WORDBITS - NBITS);
83 return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];
89 static void sincos(gr_int32 x,
float *s,
float *c)
92 int sin_index = ux >> (WORDBITS - NBITS);
93 *s = s_sine_table[sin_index][0] * (ux >> 1) + s_sine_table[sin_index][1];
96 int cos_index = ux >> (WORDBITS - NBITS);
97 *c = s_sine_table[cos_index][0] * (ux >> 1) + s_sine_table[cos_index][1];
static gr_int32 float_to_fixed(float x)
Definition: gr_fxpt.h:49
static float cos(gr_int32 x)
Definition: gr_fxpt.h:79
#define GR_CORE_API
Definition: gr_core_api.h:30
static void sincos(gr_int32 x, float *s, float *c)
Definition: gr_fxpt.h:89
fixed point sine and cosine and friends.fixed pt radians -2**31 -pi 0 0 2**31-1 pi - epsilon ...
Definition: gr_fxpt.h:39
static float sin(gr_int32 x)
Given a fixed point angle x, return float sine (x)
Definition: gr_fxpt.h:68
static float fixed_to_float(gr_int32 x)
Definition: gr_fxpt.h:59