3 * Copyright 2004 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
29 const float gr_fxpt::s_sine_table[1 << NBITS][2] = {
30 #include "sine_table.h"
34 const float gr_fxpt::TWO_TO_THE_31;
35 const float gr_fxpt::PI;
39 * Compute sine using table lookup with linear interpolation.
40 * Each table entry contains slope and intercept.
43 gr_fxpt::sin (gr_int32 x)
46 int index = ux >> (WORDBITS - NBITS);
47 return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];
51 gr_fxpt::cos (gr_int32 x)
53 gr_uint32 ux = x + 0x40000000;
54 int index = ux >> (WORDBITS - NBITS);
55 return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];