1/*****************************************************************************
2
3 FFTRealUseTrigo.hpp
4 Copyright (c) 2005 Laurent de Soras
5
6--- Legal stuff ---
7
8This library is free software; you can redistribute it and/or
9modify it under the terms of the GNU Lesser General Public
10License as published by the Free Software Foundation; either
11version 2.1 of the License, or (at your option) any later version.
12
13This library is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16Lesser General Public License for more details.
17
18You should have received a copy of the GNU Lesser General Public
19License along with this library; if not, write to the Free Software
20Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
22*Tab=3***********************************************************************/
23
24
25
26#if defined (FFTRealUseTrigo_CURRENT_CODEHEADER)
27 #error Recursive inclusion of FFTRealUseTrigo code header.
28#endif
29#define FFTRealUseTrigo_CURRENT_CODEHEADER
30
31#if ! defined (FFTRealUseTrigo_CODEHEADER_INCLUDED)
32#define FFTRealUseTrigo_CODEHEADER_INCLUDED
33
34
35
36/*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
37
38#include "OscSinCos.h"
39
40
41
42/*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
43
44
45
46template <int ALGO>
47void FFTRealUseTrigo <ALGO>::prepare (OscType &osc)
48{
49 osc.clear_buffers ();
50}
51
52template <>
53void FFTRealUseTrigo <0>::prepare (OscType &osc)
54{
55 // Nothing
56}
57
58
59
60template <int ALGO>
61void FFTRealUseTrigo <ALGO>::iterate (OscType &osc, DataType &c, DataType &s, const DataType cos_ptr [], long index_c, long index_s)
62{
63 osc.step ();
64 c = osc.get_cos ();
65 s = osc.get_sin ();
66}
67
68template <>
69void FFTRealUseTrigo <0>::iterate (OscType &osc, DataType &c, DataType &s, const DataType cos_ptr [], long index_c, long index_s)
70{
71 c = cos_ptr [index_c];
72 s = cos_ptr [index_s];
73}
74
75
76
77/*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
78
79
80
81/*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
82
83
84
85#endif // FFTRealUseTrigo_CODEHEADER_INCLUDED
86
87#undef FFTRealUseTrigo_CURRENT_CODEHEADER
88
89
90
91/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
92

source code of qtmultimedia/examples/multimedia/spectrum/3rdparty/fftreal/FFTRealUseTrigo.hpp