IT++ Logo
fix_factory.h
Go to the documentation of this file.
1
30#ifndef FIX_FACTORY_H
31#define FIX_FACTORY_H
32
33#include <itpp/base/factory.h>
34#include <itpp/fixed/fix_base.h>
35#include <itpp/itexports.h>
36
37
38namespace itpp
39{
40
41// Forward declarations
42class Fix;
43class CFix;
44
47
121{
122 friend class Fix;
123 friend class CFix;
124public:
126 explicit Fix_Factory(int w = MAX_WORDLEN, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN, Stat *ptr = 0)
127 : wordlen(w), emode(e), omode(o), qmode(q), stat_ptr(ptr) {}
129 virtual ~Fix_Factory() {}
131 operator double() const {return 0.0;}
133 virtual void create(Fix* &ptr, const int n) const;
135 virtual void create(CFix* &ptr, const int n) const;
136protected:
147};
148
150template<>
151ITPP_EXPORT void create_elements<Fix>(Fix* &ptr, const int n, const Factory &f);
152
154template<>
155ITPP_EXPORT void create_elements<CFix>(CFix* &ptr, const int n, const Factory &f);
156
158
159
163const Fix_Factory FIX2(2, TC, WRAP);
164const Fix_Factory FIX3(3, TC, WRAP);
165const Fix_Factory FIX4(4, TC, WRAP);
166const Fix_Factory FIX5(5, TC, WRAP);
167const Fix_Factory FIX6(6, TC, WRAP);
168const Fix_Factory FIX7(7, TC, WRAP);
169const Fix_Factory FIX8(8, TC, WRAP);
170const Fix_Factory FIX9(9, TC, WRAP);
171const Fix_Factory FIX10(10, TC, WRAP);
172const Fix_Factory FIX11(11, TC, WRAP);
173const Fix_Factory FIX12(12, TC, WRAP);
174const Fix_Factory FIX13(13, TC, WRAP);
175const Fix_Factory FIX14(14, TC, WRAP);
176const Fix_Factory FIX15(15, TC, WRAP);
177const Fix_Factory FIX16(16, TC, WRAP);
178const Fix_Factory FIX17(17, TC, WRAP);
179const Fix_Factory FIX18(18, TC, WRAP);
180const Fix_Factory FIX19(19, TC, WRAP);
181const Fix_Factory FIX20(20, TC, WRAP);
182const Fix_Factory FIX21(21, TC, WRAP);
183const Fix_Factory FIX22(22, TC, WRAP);
184const Fix_Factory FIX23(23, TC, WRAP);
185const Fix_Factory FIX24(24, TC, WRAP);
186const Fix_Factory FIX25(25, TC, WRAP);
187const Fix_Factory FIX26(26, TC, WRAP);
188const Fix_Factory FIX27(27, TC, WRAP);
189const Fix_Factory FIX28(28, TC, WRAP);
190const Fix_Factory FIX29(29, TC, WRAP);
191const Fix_Factory FIX30(30, TC, WRAP);
192const Fix_Factory FIX31(31, TC, WRAP);
193const Fix_Factory FIX32(32, TC, WRAP);
194const Fix_Factory FIX33(33, TC, WRAP);
195const Fix_Factory FIX34(34, TC, WRAP);
196const Fix_Factory FIX35(35, TC, WRAP);
197const Fix_Factory FIX36(36, TC, WRAP);
198const Fix_Factory FIX37(37, TC, WRAP);
199const Fix_Factory FIX38(38, TC, WRAP);
200const Fix_Factory FIX39(39, TC, WRAP);
201const Fix_Factory FIX40(40, TC, WRAP);
202const Fix_Factory FIX41(41, TC, WRAP);
203const Fix_Factory FIX42(42, TC, WRAP);
204const Fix_Factory FIX43(43, TC, WRAP);
205const Fix_Factory FIX44(44, TC, WRAP);
206const Fix_Factory FIX45(45, TC, WRAP);
207const Fix_Factory FIX46(46, TC, WRAP);
208const Fix_Factory FIX47(47, TC, WRAP);
209const Fix_Factory FIX48(48, TC, WRAP);
210const Fix_Factory FIX49(49, TC, WRAP);
211const Fix_Factory FIX50(50, TC, WRAP);
212const Fix_Factory FIX51(51, TC, WRAP);
213const Fix_Factory FIX52(52, TC, WRAP);
214const Fix_Factory FIX53(53, TC, WRAP);
215const Fix_Factory FIX54(54, TC, WRAP);
216const Fix_Factory FIX55(55, TC, WRAP);
217const Fix_Factory FIX56(56, TC, WRAP);
218const Fix_Factory FIX57(57, TC, WRAP);
219const Fix_Factory FIX58(58, TC, WRAP);
220const Fix_Factory FIX59(59, TC, WRAP);
221const Fix_Factory FIX60(60, TC, WRAP);
222const Fix_Factory FIX61(61, TC, WRAP);
223const Fix_Factory FIX62(62, TC, WRAP);
224const Fix_Factory FIX63(63, TC, WRAP);
225const Fix_Factory FIX64(64, TC, WRAP);
227
231const Fix_Factory UFIX2(2, US, WRAP);
232const Fix_Factory UFIX3(3, US, WRAP);
233const Fix_Factory UFIX4(4, US, WRAP);
234const Fix_Factory UFIX5(5, US, WRAP);
235const Fix_Factory UFIX6(6, US, WRAP);
236const Fix_Factory UFIX7(7, US, WRAP);
237const Fix_Factory UFIX8(8, US, WRAP);
238const Fix_Factory UFIX9(9, US, WRAP);
239const Fix_Factory UFIX10(10, US, WRAP);
240const Fix_Factory UFIX11(11, US, WRAP);
241const Fix_Factory UFIX12(12, US, WRAP);
242const Fix_Factory UFIX13(13, US, WRAP);
243const Fix_Factory UFIX14(14, US, WRAP);
244const Fix_Factory UFIX15(15, US, WRAP);
245const Fix_Factory UFIX16(16, US, WRAP);
246const Fix_Factory UFIX17(17, US, WRAP);
247const Fix_Factory UFIX18(18, US, WRAP);
248const Fix_Factory UFIX19(19, US, WRAP);
249const Fix_Factory UFIX20(20, US, WRAP);
250const Fix_Factory UFIX21(21, US, WRAP);
251const Fix_Factory UFIX22(22, US, WRAP);
252const Fix_Factory UFIX23(23, US, WRAP);
253const Fix_Factory UFIX24(24, US, WRAP);
254const Fix_Factory UFIX25(25, US, WRAP);
255const Fix_Factory UFIX26(26, US, WRAP);
256const Fix_Factory UFIX27(27, US, WRAP);
257const Fix_Factory UFIX28(28, US, WRAP);
258const Fix_Factory UFIX29(29, US, WRAP);
259const Fix_Factory UFIX30(30, US, WRAP);
260const Fix_Factory UFIX31(31, US, WRAP);
261const Fix_Factory UFIX32(32, US, WRAP);
262const Fix_Factory UFIX33(33, US, WRAP);
263const Fix_Factory UFIX34(34, US, WRAP);
264const Fix_Factory UFIX35(35, US, WRAP);
265const Fix_Factory UFIX36(36, US, WRAP);
266const Fix_Factory UFIX37(37, US, WRAP);
267const Fix_Factory UFIX38(38, US, WRAP);
268const Fix_Factory UFIX39(39, US, WRAP);
269const Fix_Factory UFIX40(40, US, WRAP);
270const Fix_Factory UFIX41(41, US, WRAP);
271const Fix_Factory UFIX42(42, US, WRAP);
272const Fix_Factory UFIX43(43, US, WRAP);
273const Fix_Factory UFIX44(44, US, WRAP);
274const Fix_Factory UFIX45(45, US, WRAP);
275const Fix_Factory UFIX46(46, US, WRAP);
276const Fix_Factory UFIX47(47, US, WRAP);
277const Fix_Factory UFIX48(48, US, WRAP);
278const Fix_Factory UFIX49(49, US, WRAP);
279const Fix_Factory UFIX50(50, US, WRAP);
280const Fix_Factory UFIX51(51, US, WRAP);
281const Fix_Factory UFIX52(52, US, WRAP);
282const Fix_Factory UFIX53(53, US, WRAP);
283const Fix_Factory UFIX54(54, US, WRAP);
284const Fix_Factory UFIX55(55, US, WRAP);
285const Fix_Factory UFIX56(56, US, WRAP);
286const Fix_Factory UFIX57(57, US, WRAP);
287const Fix_Factory UFIX58(58, US, WRAP);
288const Fix_Factory UFIX59(59, US, WRAP);
289const Fix_Factory UFIX60(60, US, WRAP);
290const Fix_Factory UFIX61(61, US, WRAP);
291const Fix_Factory UFIX62(62, US, WRAP);
292const Fix_Factory UFIX63(63, US, WRAP);
293const Fix_Factory UFIX64(64, US, WRAP);
295
299const Fix_Factory SFIX2(2, TC, SAT);
300const Fix_Factory SFIX3(3, TC, SAT);
301const Fix_Factory SFIX4(4, TC, SAT);
302const Fix_Factory SFIX5(5, TC, SAT);
303const Fix_Factory SFIX6(6, TC, SAT);
304const Fix_Factory SFIX7(7, TC, SAT);
305const Fix_Factory SFIX8(8, TC, SAT);
306const Fix_Factory SFIX9(9, TC, SAT);
307const Fix_Factory SFIX10(10, TC, SAT);
308const Fix_Factory SFIX11(11, TC, SAT);
309const Fix_Factory SFIX12(12, TC, SAT);
310const Fix_Factory SFIX13(13, TC, SAT);
311const Fix_Factory SFIX14(14, TC, SAT);
312const Fix_Factory SFIX15(15, TC, SAT);
313const Fix_Factory SFIX16(16, TC, SAT);
314const Fix_Factory SFIX17(17, TC, SAT);
315const Fix_Factory SFIX18(18, TC, SAT);
316const Fix_Factory SFIX19(19, TC, SAT);
317const Fix_Factory SFIX20(20, TC, SAT);
318const Fix_Factory SFIX21(21, TC, SAT);
319const Fix_Factory SFIX22(22, TC, SAT);
320const Fix_Factory SFIX23(23, TC, SAT);
321const Fix_Factory SFIX24(24, TC, SAT);
322const Fix_Factory SFIX25(25, TC, SAT);
323const Fix_Factory SFIX26(26, TC, SAT);
324const Fix_Factory SFIX27(27, TC, SAT);
325const Fix_Factory SFIX28(28, TC, SAT);
326const Fix_Factory SFIX29(29, TC, SAT);
327const Fix_Factory SFIX30(30, TC, SAT);
328const Fix_Factory SFIX31(31, TC, SAT);
329const Fix_Factory SFIX32(32, TC, SAT);
330const Fix_Factory SFIX33(33, TC, SAT);
331const Fix_Factory SFIX34(34, TC, SAT);
332const Fix_Factory SFIX35(35, TC, SAT);
333const Fix_Factory SFIX36(36, TC, SAT);
334const Fix_Factory SFIX37(37, TC, SAT);
335const Fix_Factory SFIX38(38, TC, SAT);
336const Fix_Factory SFIX39(39, TC, SAT);
337const Fix_Factory SFIX40(40, TC, SAT);
338const Fix_Factory SFIX41(41, TC, SAT);
339const Fix_Factory SFIX42(42, TC, SAT);
340const Fix_Factory SFIX43(43, TC, SAT);
341const Fix_Factory SFIX44(44, TC, SAT);
342const Fix_Factory SFIX45(45, TC, SAT);
343const Fix_Factory SFIX46(46, TC, SAT);
344const Fix_Factory SFIX47(47, TC, SAT);
345const Fix_Factory SFIX48(48, TC, SAT);
346const Fix_Factory SFIX49(49, TC, SAT);
347const Fix_Factory SFIX50(50, TC, SAT);
348const Fix_Factory SFIX51(51, TC, SAT);
349const Fix_Factory SFIX52(52, TC, SAT);
350const Fix_Factory SFIX53(53, TC, SAT);
351const Fix_Factory SFIX54(54, TC, SAT);
352const Fix_Factory SFIX55(55, TC, SAT);
353const Fix_Factory SFIX56(56, TC, SAT);
354const Fix_Factory SFIX57(57, TC, SAT);
355const Fix_Factory SFIX58(58, TC, SAT);
356const Fix_Factory SFIX59(59, TC, SAT);
357const Fix_Factory SFIX60(60, TC, SAT);
358const Fix_Factory SFIX61(61, TC, SAT);
359const Fix_Factory SFIX62(62, TC, SAT);
360const Fix_Factory SFIX63(63, TC, SAT);
361const Fix_Factory SFIX64(64, TC, SAT);
363
367const Fix_Factory SUFIX2(2, US, SAT);
368const Fix_Factory SUFIX3(3, US, SAT);
369const Fix_Factory SUFIX4(4, US, SAT);
370const Fix_Factory SUFIX5(5, US, SAT);
371const Fix_Factory SUFIX6(6, US, SAT);
372const Fix_Factory SUFIX7(7, US, SAT);
373const Fix_Factory SUFIX8(8, US, SAT);
374const Fix_Factory SUFIX9(9, US, SAT);
375const Fix_Factory SUFIX10(10, US, SAT);
376const Fix_Factory SUFIX11(11, US, SAT);
377const Fix_Factory SUFIX12(12, US, SAT);
378const Fix_Factory SUFIX13(13, US, SAT);
379const Fix_Factory SUFIX14(14, US, SAT);
380const Fix_Factory SUFIX15(15, US, SAT);
381const Fix_Factory SUFIX16(16, US, SAT);
382const Fix_Factory SUFIX17(17, US, SAT);
383const Fix_Factory SUFIX18(18, US, SAT);
384const Fix_Factory SUFIX19(19, US, SAT);
385const Fix_Factory SUFIX20(20, US, SAT);
386const Fix_Factory SUFIX21(21, US, SAT);
387const Fix_Factory SUFIX22(22, US, SAT);
388const Fix_Factory SUFIX23(23, US, SAT);
389const Fix_Factory SUFIX24(24, US, SAT);
390const Fix_Factory SUFIX25(25, US, SAT);
391const Fix_Factory SUFIX26(26, US, SAT);
392const Fix_Factory SUFIX27(27, US, SAT);
393const Fix_Factory SUFIX28(28, US, SAT);
394const Fix_Factory SUFIX29(29, US, SAT);
395const Fix_Factory SUFIX30(30, US, SAT);
396const Fix_Factory SUFIX31(31, US, SAT);
397const Fix_Factory SUFIX32(32, US, SAT);
398const Fix_Factory SUFIX33(33, US, SAT);
399const Fix_Factory SUFIX34(34, US, SAT);
400const Fix_Factory SUFIX35(35, US, SAT);
401const Fix_Factory SUFIX36(36, US, SAT);
402const Fix_Factory SUFIX37(37, US, SAT);
403const Fix_Factory SUFIX38(38, US, SAT);
404const Fix_Factory SUFIX39(39, US, SAT);
405const Fix_Factory SUFIX40(40, US, SAT);
406const Fix_Factory SUFIX41(41, US, SAT);
407const Fix_Factory SUFIX42(42, US, SAT);
408const Fix_Factory SUFIX43(43, US, SAT);
409const Fix_Factory SUFIX44(44, US, SAT);
410const Fix_Factory SUFIX45(45, US, SAT);
411const Fix_Factory SUFIX46(46, US, SAT);
412const Fix_Factory SUFIX47(47, US, SAT);
413const Fix_Factory SUFIX48(48, US, SAT);
414const Fix_Factory SUFIX49(49, US, SAT);
415const Fix_Factory SUFIX50(50, US, SAT);
416const Fix_Factory SUFIX51(51, US, SAT);
417const Fix_Factory SUFIX52(52, US, SAT);
418const Fix_Factory SUFIX53(53, US, SAT);
419const Fix_Factory SUFIX54(54, US, SAT);
420const Fix_Factory SUFIX55(55, US, SAT);
421const Fix_Factory SUFIX56(56, US, SAT);
422const Fix_Factory SUFIX57(57, US, SAT);
423const Fix_Factory SUFIX58(58, US, SAT);
424const Fix_Factory SUFIX59(59, US, SAT);
425const Fix_Factory SUFIX60(60, US, SAT);
426const Fix_Factory SUFIX61(61, US, SAT);
427const Fix_Factory SUFIX62(62, US, SAT);
428const Fix_Factory SUFIX63(63, US, SAT);
429const Fix_Factory SUFIX64(64, US, SAT);
431
432} // namespace itpp
433
434#endif // #ifndef FIX_FACTORY_H
General array class.
Definition array.h:105
Complex fixed-point data type.
Definition cfix.h:52
Base class for class factories.
Definition factory.h:130
Class factory for fixed-point data types Fix and CFix.
Stat * stat_ptr
Pointer to statistics object.
q_mode qmode
Quantization mode.
e_mode emode
Sign encoding mode.
int wordlen
Word length.
virtual ~Fix_Factory()
Destructor.
o_mode omode
Overflow mode.
Fix_Factory(int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
Constructor.
Fixed-point data type.
Definition fix.h:52
A class for sampling a signal and calculating statistics.
Definition misc_stat.h:49
Base class for class factories and memory allocation functions.
Definitions of a base class for fixed-point data types.
void create_elements< Fix >(Fix *&ptr, const int n, const Factory &f)
Create an n-length array of Fix using Fix_Factory f.
const int MAX_WORDLEN
Max word length.
Definition fix_base.h:886
o_mode
Overflow modes (aligned with SystemC)
Definition fix_base.h:948
e_mode
Sign encoding modes (aligned with SystemC)
Definition fix_base.h:942
void create_elements< CFix >(CFix *&ptr, const int n, const Factory &f)
Create an n-length array of CFix using Fix_Factory f.
q_mode
Quantization modes (aligned with SystemC)
Definition fix_base.h:957
@ SAT
Saturation.
Definition fix_base.h:949
@ WRAP
Wrap-around.
Definition fix_base.h:952
@ US
Unsigned.
Definition fix_base.h:944
@ TC
Two's complement.
Definition fix_base.h:943
@ TRN
Truncation.
Definition fix_base.h:964
itpp namespace
Definition itmex.h:37
const Fix_Factory FIX1(1, TC, WRAP)
Fix_Factories for signed Fix/CFix with wrap-around (FIX1, FIX2, ..., FIX64)
const Fix_Factory SFIX1(1, TC, SAT)
Fix_Factories for unsigned Fix/CFix with wrap-around (SFIX1, SFIX2, ..., SFIX64)
const Fix_Factory SUFIX1(1, US, SAT)
Fix_Factories for unsigned Fix/CFix with saturation (SUFIX1, SUFIX2, ..., SUFIX64)
const Fix_Factory UFIX1(1, US, WRAP)
Fix_Factories for unsigned Fix/CFix with wrap-around (UFIX1, UFIX2, ..., UFIX64)

Generated on Tue Mar 26 2024 19:08:31 for IT++ by Doxygen 1.9.8