1 /*****************************************************************************
2 
3         FFTRealUseTrigo.h
4         By Laurent de Soras
5 
6 --- Legal stuff ---
7 
8 This program is free software. It comes without any warranty, to
9 the extent permitted by applicable law. You can redistribute it
10 and/or modify it under the terms of the Do What The Fuck You Want
11 To Public License, Version 2, as published by Sam Hocevar. See
12 http://sam.zoy.org/wtfpl/COPYING for more details.
13 
14 *Tab=3***********************************************************************/
15 
16 
17 
18 #if ! defined (ffft_FFTRealUseTrigo_HEADER_INCLUDED)
19 #define	ffft_FFTRealUseTrigo_HEADER_INCLUDED
20 
21 #if defined (_MSC_VER)
22 	#pragma once
23 	#pragma warning (4 : 4250) // "Inherits via dominance."
24 #endif
25 
26 
27 
28 /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
29 
30 #include	"def.h"
31 #include	"FFTRealFixLenParam.h"
32 #include	"OscSinCos.h"
33 
34 
35 
36 namespace ffft
37 {
38 
39 
40 
41 template <int ALGO>
42 class FFTRealUseTrigo
43 {
44 
45 /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
46 
47 public:
48 
49    typedef	FFTRealFixLenParam::DataType	DataType;
50 	typedef	OscSinCos <DataType>	OscType;
51 
52 	ffft_FORCEINLINE static void
53 						prepare (OscType &osc);
54 	ffft_FORCEINLINE	static void
55 						iterate (OscType &osc, DataType &c, DataType &s, const DataType cos_ptr [], long index_c, long index_s);
56 
57 
58 
59 /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
60 
61 protected:
62 
63 
64 
65 /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
66 
67 private:
68 
69 
70 
71 /*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
72 
73 private:
74 
75 						FFTRealUseTrigo ();
76 						~FFTRealUseTrigo ();
77 						FFTRealUseTrigo (const FFTRealUseTrigo &other);
78 	FFTRealUseTrigo &
79 						operator = (const FFTRealUseTrigo &other);
80 	bool				operator == (const FFTRealUseTrigo &other);
81 	bool				operator != (const FFTRealUseTrigo &other);
82 
83 };	// class FFTRealUseTrigo
84 
85 
86 
87 }	// namespace ffft
88 
89 
90 
91 #include	"FFTRealUseTrigo.hpp"
92 
93 
94 
95 #endif	// ffft_FFTRealUseTrigo_HEADER_INCLUDED
96 
97 
98 
99 /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
100