SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
decimatorsu.h
Go to the documentation of this file.
1 // Copyright (C) 2018 Edouard Griffiths, F4EXB //
3 // //
4 // This program is free software; you can redistribute it and/or modify //
5 // it under the terms of the GNU General Public License as published by //
6 // the Free Software Foundation as version 3 of the License, or //
7 // (at your option) any later version. //
8 // //
9 // This program is distributed in the hope that it will be useful, //
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
12 // GNU General Public License V3 for more details. //
13 // //
14 // You should have received a copy of the GNU General Public License //
15 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
16 // //
17 // This decimation class includes unsigned to signed with shifting. Typically //
18 // for 8 bit samples issued from RTL-SDR the conversion is: //
19 // signed = unsigned - 127. Here the "Shift" value is 127. //
20 // The shift value is given as a template parameter //
21 // //
23 
24 #ifndef INCLUDE_GPL_DSP_DECIMATORSU_H_
25 #define INCLUDE_GPL_DSP_DECIMATORSU_H_
26 
27 #include "dsp/dsptypes.h"
29 
30 #define DECIMATORS_HB_FILTER_ORDER 64
31 
32 template<uint SdrBits, uint InputBits>
33 struct decimation_shifts
34 {
35  static const uint pre1 = 0;
36  static const uint pre2 = 0;
37  static const uint post2 = 0;
38  static const uint pre4 = 0;
39  static const uint post4 = 0;
40  static const uint pre8 = 0;
41  static const uint post8 = 0;
42  static const uint pre16 = 0;
43  static const uint post16 = 0;
44  static const uint pre32 = 0;
45  static const uint post32 = 0;
46  static const uint pre64 = 0;
47  static const uint post64 = 0;
48 };
49 
50 template<>
51 struct decimation_shifts<24, 24>
52 {
53  static const uint pre1 = 0;
54  static const uint pre2 = 0;
55  static const uint post2 = 1;
56  static const uint pre4 = 0;
57  static const uint post4 = 2;
58  static const uint pre8 = 0;
59  static const uint post8 = 3;
60  static const uint pre16 = 0;
61  static const uint post16 = 4;
62  static const uint pre32 = 0;
63  static const uint post32 = 5;
64  static const uint pre64 = 0;
65  static const uint post64 = 6;
66 };
67 
68 template<>
69 struct decimation_shifts<16, 16>
70 {
71  static const uint pre1 = 0;
72  static const uint pre2 = 0;
73  static const uint post2 = 1;
74  static const uint pre4 = 0;
75  static const uint post4 = 2;
76  static const uint pre8 = 0;
77  static const uint post8 = 3;
78  static const uint pre16 = 0;
79  static const uint post16 = 4;
80  static const uint pre32 = 0;
81  static const uint post32 = 5;
82  static const uint pre64 = 0;
83  static const uint post64 = 6;
84 };
85 
86 template<>
87 struct decimation_shifts<24, 16>
88 {
89  static const uint pre1 = 8;
90  static const uint pre2 = 7;
91  static const uint post2 = 0;
92  static const uint pre4 = 6;
93  static const uint post4 = 0;
94  static const uint pre8 = 5;
95  static const uint post8 = 0;
96  static const uint pre16 = 4;
97  static const uint post16 = 0;
98  static const uint pre32 = 3;
99  static const uint post32 = 0;
100  static const uint pre64 = 2;
101  static const uint post64 = 0;
102 };
103 
104 template<>
105 struct decimation_shifts<16, 12>
106 {
107  static const uint pre1 = 4;
108  static const uint pre2 = 3;
109  static const uint post2 = 0;
110  static const uint pre4 = 2;
111  static const uint post4 = 0;
112  static const uint pre8 = 1;
113  static const uint post8 = 0;
114  static const uint pre16 = 0;
115  static const uint post16 = 0;
116  static const uint pre32 = 0;
117  static const uint post32 = 1;
118  static const uint pre64 = 0;
119  static const uint post64 = 2;
120 };
121 
122 template<>
123 struct decimation_shifts<24, 12>
124 {
125  static const uint pre1 = 12;
126  static const uint pre2 = 11;
127  static const uint post2 = 0;
128  static const uint pre4 = 10;
129  static const uint post4 = 0;
130  static const uint pre8 = 9;
131  static const uint post8 = 0;
132  static const uint pre16 = 8;
133  static const uint post16 = 0;
134  static const uint pre32 = 7;
135  static const uint post32 = 0;
136  static const uint pre64 = 6;
137  static const uint post64 = 0;
138 };
139 
140 template<>
141 struct decimation_shifts<16, 8>
142 {
143  static const uint pre1 = 8;
144  static const uint pre2 = 7;
145  static const uint post2 = 0;
146  static const uint pre4 = 6;
147  static const uint post4 = 0;
148  static const uint pre8 = 5;
149  static const uint post8 = 0;
150  static const uint pre16 = 4;
151  static const uint post16 = 0;
152  static const uint pre32 = 3;
153  static const uint post32 = 0;
154  static const uint pre64 = 2;
155  static const uint post64 = 0;
156 };
157 
158 template<>
159 struct decimation_shifts<24, 8>
160 {
161  static const uint pre1 = 16;
162  static const uint pre2 = 15;
163  static const uint post2 = 0;
164  static const uint pre4 = 14;
165  static const uint post4 = 0;
166  static const uint pre8 = 13;
167  static const uint post8 = 0;
168  static const uint pre16 = 12;
169  static const uint post16 = 0;
170  static const uint pre32 = 11;
171  static const uint post32 = 0;
172  static const uint pre64 = 10;
173  static const uint post64 = 0;
174 };
175 
176 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
178 {
179 public:
180  // interleaved I/Q input buffer
181  void decimate1(SampleVector::iterator* it, const T* buf, qint32 len);
182  void decimate2_inf(SampleVector::iterator* it, const T* buf, qint32 len);
183  void decimate2_sup(SampleVector::iterator* it, const T* buf, qint32 len);
184  void decimate2_cen(SampleVector::iterator* it, const T* buf, qint32 len);
185  void decimate4_inf(SampleVector::iterator* it, const T* buf, qint32 len);
186  void decimate4_sup(SampleVector::iterator* it, const T* buf, qint32 len);
187  void decimate4_cen(SampleVector::iterator* it, const T* buf, qint32 len);
188  void decimate8_inf(SampleVector::iterator* it, const T* buf, qint32 len);
189  void decimate8_sup(SampleVector::iterator* it, const T* buf, qint32 len);
190  void decimate8_cen(SampleVector::iterator* it, const T* buf, qint32 len);
191  void decimate16_inf(SampleVector::iterator* it, const T* buf, qint32 len);
192  void decimate16_sup(SampleVector::iterator* it, const T* buf, qint32 len);
193  void decimate16_cen(SampleVector::iterator* it, const T* buf, qint32 len);
194  void decimate32_inf(SampleVector::iterator* it, const T* buf, qint32 len);
195  void decimate32_sup(SampleVector::iterator* it, const T* buf, qint32 len);
196  void decimate32_cen(SampleVector::iterator* it, const T* buf, qint32 len);
197  void decimate64_inf(SampleVector::iterator* it, const T* buf, qint32 len);
198  void decimate64_sup(SampleVector::iterator* it, const T* buf, qint32 len);
199  void decimate64_cen(SampleVector::iterator* it, const T* buf, qint32 len);
200 
201 private:
202 #ifdef SDR_RX_SAMPLE_24BIT
209 #else
216 #endif
217 };
218 
219 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
220 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate1(SampleVector::iterator* it, const T* buf, qint32 len)
221 {
222  qint32 xreal, yimag;
223 
224  for (int pos = 0; pos < len - 1; pos += 2)
225  {
226  xreal = buf[pos+0] - Shift;
227  yimag = buf[pos+1] - Shift;
228  (**it).setReal(xreal << decimation_shifts<SdrBits, InputBits>::pre1); // Valgrind optim (2 - comment not repeated)
229  (**it).setImag(yimag << decimation_shifts<SdrBits, InputBits>::pre1);
230  ++(*it); // Valgrind optim (comment not repeated)
231  }
232 }
233 
234 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
235 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate2_inf(SampleVector::iterator* it, const T* buf, qint32 len)
236 {
237  StorageType buf2[4];
238 
239  for (int pos = 0; pos < len - 7; pos += 8)
240  {
241  m_decimator2.myDecimateInf(
242  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
243  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
244  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
245  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
246  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
247  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
248  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
249  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
250  &buf2[0]);
251 
252  (**it).setReal(buf2[0] >> decimation_shifts<SdrBits, InputBits>::post2);
253  (**it).setImag(buf2[1] >> decimation_shifts<SdrBits, InputBits>::post2);
254  ++(*it);
255 
256  (**it).setReal(buf2[2] >> decimation_shifts<SdrBits, InputBits>::post2);
257  (**it).setImag(buf2[3] >> decimation_shifts<SdrBits, InputBits>::post2);
258  ++(*it);
259  }
260 }
261 
262 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
263 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate2_sup(SampleVector::iterator* it, const T* buf, qint32 len)
264 {
265  StorageType buf2[4];
266 
267  for (int pos = 0; pos < len - 7; pos += 8)
268  {
269  m_decimator2.myDecimateSup(
270  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
271  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
272  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
273  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
274  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
275  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
276  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
277  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
278  &buf2[0]);
279 
280  (**it).setReal(buf2[0] >> decimation_shifts<SdrBits, InputBits>::post2);
281  (**it).setImag(buf2[1] >> decimation_shifts<SdrBits, InputBits>::post2);
282  ++(*it);
283 
284  (**it).setReal(buf2[2] >> decimation_shifts<SdrBits, InputBits>::post2);
285  (**it).setImag(buf2[3] >> decimation_shifts<SdrBits, InputBits>::post2);
286  ++(*it);
287  }
288 }
289 
290 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
291 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate4_inf(SampleVector::iterator* it, const T* buf, qint32 len)
292 {
293  StorageType buf2[8], buf4[4];
294 
295  for (int pos = 0; pos < len - 15; pos += 16)
296  {
297  m_decimator2.myDecimateInf(
298  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
299  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
300  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
301  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
302  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
303  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
304  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
305  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
306  &buf2[0]);
307 
308  m_decimator2.myDecimateInf(
309  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
310  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
311  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
312  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
313  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
314  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
315  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
316  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
317  &buf2[4]);
318 
319  m_decimator4.myDecimateSup(
320  buf2[0],
321  buf2[1],
322  buf2[2],
323  buf2[3],
324  buf2[4],
325  buf2[5],
326  buf2[6],
327  buf2[7],
328  &buf4[0]);
329 
330  (**it).setReal(buf4[0] >> decimation_shifts<SdrBits, InputBits>::post4);
331  (**it).setImag(buf4[1] >> decimation_shifts<SdrBits, InputBits>::post4);
332  ++(*it);
333 
334  (**it).setReal(buf4[2] >> decimation_shifts<SdrBits, InputBits>::post4);
335  (**it).setImag(buf4[3] >> decimation_shifts<SdrBits, InputBits>::post4);
336  ++(*it);
337  }
338 }
339 
340 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
341 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate4_sup(SampleVector::iterator* it, const T* buf, qint32 len)
342 {
343  StorageType buf2[8], buf4[4];
344 
345  for (int pos = 0; pos < len - 15; pos += 16)
346  {
347  m_decimator2.myDecimateSup(
348  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
349  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
350  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
351  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
352  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
353  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
354  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
355  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
356  &buf2[0]);
357 
358  m_decimator2.myDecimateSup(
359  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
360  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
361  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
362  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
363  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
364  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
365  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
366  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
367  &buf2[4]);
368 
369  m_decimator4.myDecimateInf(
370  buf2[0],
371  buf2[1],
372  buf2[2],
373  buf2[3],
374  buf2[4],
375  buf2[5],
376  buf2[6],
377  buf2[7],
378  &buf4[0]);
379 
380  (**it).setReal(buf4[0] >> decimation_shifts<SdrBits, InputBits>::post4);
381  (**it).setImag(buf4[1] >> decimation_shifts<SdrBits, InputBits>::post4);
382  ++(*it);
383 
384  (**it).setReal(buf4[2] >> decimation_shifts<SdrBits, InputBits>::post4);
385  (**it).setImag(buf4[3] >> decimation_shifts<SdrBits, InputBits>::post4);
386  ++(*it);
387  }
388 }
389 
390 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
391 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate8_inf(SampleVector::iterator* it, const T* buf, qint32 len)
392 {
393  StorageType buf2[16], buf4[8], buf8[4];
394 
395  for (int pos = 0; pos < len - 31; pos += 32)
396  {
397  m_decimator2.myDecimateInf(
398  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
399  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
400  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
401  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
402  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
403  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
404  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
405  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
406  &buf2[0]);
407 
408 
409  m_decimator2.myDecimateInf(
410  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
411  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
412  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
413  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
414  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
415  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
416  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
417  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
418  &buf2[4]);
419 
420 
421  m_decimator2.myDecimateInf(
422  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
423  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
424  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
425  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
426  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
427  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
428  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
429  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
430  &buf2[8]);
431 
432 
433  m_decimator2.myDecimateInf(
434  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
435  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
436  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
437  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
438  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
439  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
440  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
441  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
442  &buf2[12]);
443 
444  m_decimator4.myDecimateSup(
445  &buf2[0],
446  &buf4[0]);
447 
448  m_decimator4.myDecimateSup(
449  &buf2[8],
450  &buf4[4]);
451 
452  m_decimator8.myDecimateCen(
453  &buf4[0],
454  &buf8[0]);
455 
456  (**it).setReal(buf8[0] >> decimation_shifts<SdrBits, InputBits>::post8);
457  (**it).setImag(buf8[1] >> decimation_shifts<SdrBits, InputBits>::post8);
458  ++(*it);
459 
460  (**it).setReal(buf8[2] >> decimation_shifts<SdrBits, InputBits>::post8);
461  (**it).setImag(buf8[3] >> decimation_shifts<SdrBits, InputBits>::post8);
462  ++(*it);
463  }
464 }
465 
466 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
467 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate8_sup(SampleVector::iterator* it, const T* buf, qint32 len)
468 {
469  StorageType buf2[16], buf4[8], buf8[4];
470 
471  for (int pos = 0; pos < len - 31; pos += 32)
472  {
473  m_decimator2.myDecimateSup(
474  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
475  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
476  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
477  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
478  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
479  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
480  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
481  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
482  &buf2[0]);
483 
484 
485  m_decimator2.myDecimateSup(
486  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
487  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
488  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
489  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
490  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
491  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
492  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
493  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
494  &buf2[4]);
495 
496 
497  m_decimator2.myDecimateSup(
498  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
499  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
500  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
501  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
502  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
503  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
504  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
505  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
506  &buf2[8]);
507 
508 
509  m_decimator2.myDecimateSup(
510  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
511  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
512  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
513  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
514  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
515  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
516  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
517  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
518  &buf2[12]);
519 
520  m_decimator4.myDecimateInf(
521  &buf2[0],
522  &buf4[0]);
523 
524  m_decimator4.myDecimateInf(
525  &buf2[8],
526  &buf4[4]);
527 
528  m_decimator8.myDecimateCen(
529  &buf4[0],
530  &buf8[0]);
531 
532  (**it).setReal(buf8[0] >> decimation_shifts<SdrBits, InputBits>::post8);
533  (**it).setImag(buf8[1] >> decimation_shifts<SdrBits, InputBits>::post8);
534  ++(*it);
535 
536  (**it).setReal(buf8[2] >> decimation_shifts<SdrBits, InputBits>::post8);
537  (**it).setImag(buf8[3] >> decimation_shifts<SdrBits, InputBits>::post8);
538  ++(*it);
539  }
540 }
541 
542 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
543 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate16_inf(SampleVector::iterator* it, const T* buf, qint32 len)
544 {
545  StorageType buf2[32], buf4[16], buf8[8], buf16[4];
546 
547  for (int pos = 0; pos < len - 63; pos += 64)
548  {
549  m_decimator2.myDecimateInf(
550  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
551  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
552  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
553  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
554  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
555  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
556  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
557  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
558  &buf2[0]);
559 
560 
561  m_decimator2.myDecimateInf(
562  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
563  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
564  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
565  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
566  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
567  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
568  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
569  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
570  &buf2[4]);
571 
572 
573  m_decimator2.myDecimateInf(
574  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
575  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
576  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
577  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
578  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
579  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
580  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
581  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
582  &buf2[8]);
583 
584 
585  m_decimator2.myDecimateInf(
586  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
587  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
588  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
589  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
590  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
591  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
592  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
593  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
594  &buf2[12]);
595 
596 
597  m_decimator2.myDecimateInf(
598  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
599  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
600  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
601  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
602  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
603  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
604  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
605  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
606  &buf2[16]);
607 
608 
609  m_decimator2.myDecimateInf(
610  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
611  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
612  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
613  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
614  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
615  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
616  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
617  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
618  &buf2[20]);
619 
620 
621  m_decimator2.myDecimateInf(
622  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
623  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
624  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
625  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
626  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
627  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
628  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
629  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
630  &buf2[24]);
631 
632 
633  m_decimator2.myDecimateInf(
634  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
635  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
636  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
637  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
638  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
639  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
640  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
641  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
642  &buf2[28]);
643 
644  m_decimator4.myDecimateSup(
645  &buf2[0],
646  &buf4[0]);
647 
648  m_decimator4.myDecimateSup(
649  &buf2[8],
650  &buf4[4]);
651 
652  m_decimator4.myDecimateSup(
653  &buf2[16],
654  &buf4[8]);
655 
656  m_decimator4.myDecimateSup(
657  &buf2[24],
658  &buf4[12]);
659 
660  m_decimator8.myDecimateSup(
661  &buf4[0],
662  &buf8[0]);
663 
664  m_decimator8.myDecimateSup(
665  &buf4[8],
666  &buf8[4]);
667 
668  m_decimator16.myDecimateCen(
669  &buf8[0],
670  &buf16[0]);
671 
672  (**it).setReal(buf16[0] >> decimation_shifts<SdrBits, InputBits>::post16);
673  (**it).setImag(buf16[1] >> decimation_shifts<SdrBits, InputBits>::post16);
674  ++(*it);
675 
676  (**it).setReal(buf16[2] >> decimation_shifts<SdrBits, InputBits>::post16);
677  (**it).setImag(buf16[3] >> decimation_shifts<SdrBits, InputBits>::post16);
678  ++(*it);
679  }
680 }
681 
682 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
683 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate16_sup(SampleVector::iterator* it, const T* buf, qint32 len)
684 {
685  StorageType buf2[32], buf4[16], buf8[8], buf16[4];
686 
687  for (int pos = 0; pos < len - 63; pos += 64)
688  {
689  m_decimator2.myDecimateSup(
690  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
691  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
692  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
693  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
694  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
695  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
696  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
697  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
698  &buf2[0]);
699 
700 
701  m_decimator2.myDecimateSup(
702  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
703  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
704  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
705  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
706  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
707  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
708  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
709  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
710  &buf2[4]);
711 
712 
713  m_decimator2.myDecimateSup(
714  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
715  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
716  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
717  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
718  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
719  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
720  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
721  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
722  &buf2[8]);
723 
724 
725  m_decimator2.myDecimateSup(
726  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
727  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
728  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
729  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
730  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
731  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
732  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
733  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
734  &buf2[12]);
735 
736 
737  m_decimator2.myDecimateSup(
738  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
739  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
740  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
741  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
742  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
743  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
744  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
745  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
746  &buf2[16]);
747 
748 
749  m_decimator2.myDecimateSup(
750  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
751  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
752  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
753  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
754  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
755  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
756  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
757  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
758  &buf2[20]);
759 
760 
761  m_decimator2.myDecimateSup(
762  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
763  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
764  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
765  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
766  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
767  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
768  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
769  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
770  &buf2[24]);
771 
772 
773  m_decimator2.myDecimateSup(
774  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
775  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
776  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
777  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
778  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
779  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
780  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
781  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
782  &buf2[28]);
783 
784  m_decimator4.myDecimateInf(
785  &buf2[0],
786  &buf4[0]);
787 
788  m_decimator4.myDecimateInf(
789  &buf2[8],
790  &buf4[4]);
791 
792  m_decimator4.myDecimateInf(
793  &buf2[16],
794  &buf4[8]);
795 
796  m_decimator4.myDecimateInf(
797  &buf2[24],
798  &buf4[12]);
799 
800  m_decimator8.myDecimateInf(
801  &buf4[0],
802  &buf8[0]);
803 
804  m_decimator8.myDecimateInf(
805  &buf4[8],
806  &buf8[4]);
807 
808  m_decimator16.myDecimateCen(
809  &buf8[0],
810  &buf16[0]);
811 
812  (**it).setReal(buf16[0] >> decimation_shifts<SdrBits, InputBits>::post16);
813  (**it).setImag(buf16[1] >> decimation_shifts<SdrBits, InputBits>::post16);
814  ++(*it);
815 
816  (**it).setReal(buf16[2] >> decimation_shifts<SdrBits, InputBits>::post16);
817  (**it).setImag(buf16[3] >> decimation_shifts<SdrBits, InputBits>::post16);
818  ++(*it);
819  }
820 }
821 
822 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
823 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate32_inf(SampleVector::iterator* it, const T* buf, qint32 len)
824 {
825  StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
826 
827  for (int pos = 0; pos < len - 127; pos += 128)
828  {
829  m_decimator2.myDecimateInf(
830  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
831  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
832  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
833  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
834  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
835  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
836  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
837  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
838  &buf2[0]);
839 
840 
841  m_decimator2.myDecimateInf(
842  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
843  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
844  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
845  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
846  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
847  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
848  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
849  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
850  &buf2[4]);
851 
852 
853  m_decimator2.myDecimateInf(
854  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
855  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
856  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
857  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
858  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
859  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
860  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
861  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
862  &buf2[8]);
863 
864 
865  m_decimator2.myDecimateInf(
866  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
867  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
868  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
869  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
870  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
871  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
872  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
873  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
874  &buf2[12]);
875 
876 
877  m_decimator2.myDecimateInf(
878  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
879  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
880  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
881  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
882  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
883  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
884  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
885  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
886  &buf2[16]);
887 
888 
889  m_decimator2.myDecimateInf(
890  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
891  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
892  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
893  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
894  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
895  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
896  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
897  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
898  &buf2[20]);
899 
900 
901  m_decimator2.myDecimateInf(
902  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
903  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
904  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
905  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
906  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
907  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
908  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
909  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
910  &buf2[24]);
911 
912 
913  m_decimator2.myDecimateInf(
914  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
915  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
916  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
917  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
918  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
919  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
920  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
921  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
922  &buf2[28]);
923 
924 
925  m_decimator2.myDecimateInf(
926  (buf[pos+64] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
927  (buf[pos+65] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
928  (buf[pos+66] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
929  (buf[pos+67] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
930  (buf[pos+68] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
931  (buf[pos+69] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
932  (buf[pos+70] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
933  (buf[pos+71] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
934  &buf2[32]);
935 
936 
937  m_decimator2.myDecimateInf(
938  (buf[pos+72] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
939  (buf[pos+73] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
940  (buf[pos+74] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
941  (buf[pos+75] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
942  (buf[pos+76] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
943  (buf[pos+77] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
944  (buf[pos+78] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
945  (buf[pos+79] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
946  &buf2[36]);
947 
948 
949  m_decimator2.myDecimateInf(
950  (buf[pos+80] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
951  (buf[pos+81] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
952  (buf[pos+82] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
953  (buf[pos+83] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
954  (buf[pos+84] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
955  (buf[pos+85] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
956  (buf[pos+86] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
957  (buf[pos+87] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
958  &buf2[40]);
959 
960 
961  m_decimator2.myDecimateInf(
962  (buf[pos+88] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
963  (buf[pos+89] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
964  (buf[pos+90] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
965  (buf[pos+91] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
966  (buf[pos+92] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
967  (buf[pos+93] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
968  (buf[pos+94] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
969  (buf[pos+95] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
970  &buf2[44]);
971 
972 
973  m_decimator2.myDecimateInf(
974  (buf[pos+96] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
975  (buf[pos+97] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
976  (buf[pos+98] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
977  (buf[pos+99] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
978  (buf[pos+100] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
979  (buf[pos+101] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
980  (buf[pos+102] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
981  (buf[pos+103] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
982  &buf2[48]);
983 
984 
985  m_decimator2.myDecimateInf(
986  (buf[pos+104] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
987  (buf[pos+105] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
988  (buf[pos+106] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
989  (buf[pos+107] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
990  (buf[pos+108] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
991  (buf[pos+109] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
992  (buf[pos+110] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
993  (buf[pos+111] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
994  &buf2[52]);
995 
996 
997  m_decimator2.myDecimateInf(
998  (buf[pos+112] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
999  (buf[pos+113] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1000  (buf[pos+114] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1001  (buf[pos+115] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1002  (buf[pos+116] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1003  (buf[pos+117] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1004  (buf[pos+118] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1005  (buf[pos+119] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1006  &buf2[56]);
1007 
1008 
1009  m_decimator2.myDecimateInf(
1010  (buf[pos+120] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1011  (buf[pos+121] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1012  (buf[pos+122] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1013  (buf[pos+123] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1014  (buf[pos+124] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1015  (buf[pos+125] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1016  (buf[pos+126] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1017  (buf[pos+127] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1018  &buf2[60]);
1019 
1020  m_decimator4.myDecimateSup(
1021  &buf2[0],
1022  &buf4[0]);
1023 
1024  m_decimator4.myDecimateSup(
1025  &buf2[8],
1026  &buf4[4]);
1027 
1028  m_decimator4.myDecimateSup(
1029  &buf2[16],
1030  &buf4[8]);
1031 
1032  m_decimator4.myDecimateSup(
1033  &buf2[24],
1034  &buf4[12]);
1035 
1036  m_decimator4.myDecimateSup(
1037  &buf2[32],
1038  &buf4[16]);
1039 
1040  m_decimator4.myDecimateSup(
1041  &buf2[40],
1042  &buf4[20]);
1043 
1044  m_decimator4.myDecimateSup(
1045  &buf2[48],
1046  &buf4[24]);
1047 
1048  m_decimator4.myDecimateSup(
1049  &buf2[56],
1050  &buf4[28]);
1051 
1052  m_decimator8.myDecimateSup(
1053  &buf4[0],
1054  &buf8[0]);
1055 
1056  m_decimator8.myDecimateSup(
1057  &buf4[8],
1058  &buf8[4]);
1059 
1060  m_decimator8.myDecimateSup(
1061  &buf4[16],
1062  &buf8[8]);
1063 
1064  m_decimator8.myDecimateSup(
1065  &buf4[24],
1066  &buf8[12]);
1067 
1068  m_decimator16.myDecimateSup(
1069  &buf8[0],
1070  &buf16[0]);
1071 
1072  m_decimator16.myDecimateSup(
1073  &buf8[8],
1074  &buf16[4]);
1075 
1076  m_decimator32.myDecimateCen(
1077  &buf16[0],
1078  &buf32[0]);
1079 
1080  (**it).setReal(buf32[0] >> decimation_shifts<SdrBits, InputBits>::post32);
1081  (**it).setImag(buf32[1] >> decimation_shifts<SdrBits, InputBits>::post32);
1082  ++(*it);
1083 
1084  (**it).setReal(buf32[2] >> decimation_shifts<SdrBits, InputBits>::post32);
1085  (**it).setImag(buf32[3] >> decimation_shifts<SdrBits, InputBits>::post32);
1086  ++(*it);
1087  }
1088 }
1089 
1090 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
1091 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate32_sup(SampleVector::iterator* it, const T* buf, qint32 len)
1092 {
1093  StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
1094 
1095  for (int pos = 0; pos < len - 127; pos += 128)
1096  {
1097  m_decimator2.myDecimateSup(
1098  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1099  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1100  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1101  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1102  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1103  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1104  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1105  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1106  &buf2[0]);
1107 
1108 
1109  m_decimator2.myDecimateSup(
1110  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1111  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1112  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1113  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1114  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1115  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1116  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1117  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1118  &buf2[4]);
1119 
1120 
1121  m_decimator2.myDecimateSup(
1122  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1123  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1124  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1125  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1126  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1127  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1128  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1129  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1130  &buf2[8]);
1131 
1132 
1133  m_decimator2.myDecimateSup(
1134  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1135  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1136  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1137  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1138  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1139  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1140  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1141  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1142  &buf2[12]);
1143 
1144 
1145  m_decimator2.myDecimateSup(
1146  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1147  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1148  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1149  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1150  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1151  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1152  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1153  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1154  &buf2[16]);
1155 
1156 
1157  m_decimator2.myDecimateSup(
1158  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1159  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1160  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1161  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1162  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1163  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1164  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1165  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1166  &buf2[20]);
1167 
1168 
1169  m_decimator2.myDecimateSup(
1170  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1171  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1172  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1173  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1174  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1175  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1176  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1177  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1178  &buf2[24]);
1179 
1180 
1181  m_decimator2.myDecimateSup(
1182  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1183  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1184  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1185  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1186  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1187  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1188  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1189  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1190  &buf2[28]);
1191 
1192 
1193  m_decimator2.myDecimateSup(
1194  (buf[pos+64] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1195  (buf[pos+65] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1196  (buf[pos+66] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1197  (buf[pos+67] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1198  (buf[pos+68] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1199  (buf[pos+69] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1200  (buf[pos+70] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1201  (buf[pos+71] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1202  &buf2[32]);
1203 
1204 
1205  m_decimator2.myDecimateSup(
1206  (buf[pos+72] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1207  (buf[pos+73] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1208  (buf[pos+74] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1209  (buf[pos+75] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1210  (buf[pos+76] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1211  (buf[pos+77] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1212  (buf[pos+78] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1213  (buf[pos+79] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1214  &buf2[36]);
1215 
1216 
1217  m_decimator2.myDecimateSup(
1218  (buf[pos+80] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1219  (buf[pos+81] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1220  (buf[pos+82] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1221  (buf[pos+83] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1222  (buf[pos+84] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1223  (buf[pos+85] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1224  (buf[pos+86] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1225  (buf[pos+87] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1226  &buf2[40]);
1227 
1228 
1229  m_decimator2.myDecimateSup(
1230  (buf[pos+88] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1231  (buf[pos+89] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1232  (buf[pos+90] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1233  (buf[pos+91] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1234  (buf[pos+92] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1235  (buf[pos+93] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1236  (buf[pos+94] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1237  (buf[pos+95] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1238  &buf2[44]);
1239 
1240 
1241  m_decimator2.myDecimateSup(
1242  (buf[pos+96] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1243  (buf[pos+97] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1244  (buf[pos+98] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1245  (buf[pos+99] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1246  (buf[pos+100] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1247  (buf[pos+101] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1248  (buf[pos+102] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1249  (buf[pos+103] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1250  &buf2[48]);
1251 
1252 
1253  m_decimator2.myDecimateSup(
1254  (buf[pos+104] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1255  (buf[pos+105] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1256  (buf[pos+106] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1257  (buf[pos+107] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1258  (buf[pos+108] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1259  (buf[pos+109] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1260  (buf[pos+110] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1261  (buf[pos+111] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1262  &buf2[52]);
1263 
1264 
1265  m_decimator2.myDecimateSup(
1266  (buf[pos+112] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1267  (buf[pos+113] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1268  (buf[pos+114] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1269  (buf[pos+115] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1270  (buf[pos+116] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1271  (buf[pos+117] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1272  (buf[pos+118] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1273  (buf[pos+119] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1274  &buf2[56]);
1275 
1276 
1277  m_decimator2.myDecimateSup(
1278  (buf[pos+120] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1279  (buf[pos+121] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1280  (buf[pos+122] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1281  (buf[pos+123] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1282  (buf[pos+124] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1283  (buf[pos+125] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1284  (buf[pos+126] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1285  (buf[pos+127] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
1286  &buf2[60]);
1287 
1288  m_decimator4.myDecimateInf(
1289  &buf2[0],
1290  &buf4[0]);
1291 
1292  m_decimator4.myDecimateInf(
1293  &buf2[8],
1294  &buf4[4]);
1295 
1296  m_decimator4.myDecimateInf(
1297  &buf2[16],
1298  &buf4[8]);
1299 
1300  m_decimator4.myDecimateInf(
1301  &buf2[24],
1302  &buf4[12]);
1303 
1304  m_decimator4.myDecimateInf(
1305  &buf2[32],
1306  &buf4[16]);
1307 
1308  m_decimator4.myDecimateInf(
1309  &buf2[40],
1310  &buf4[20]);
1311 
1312  m_decimator4.myDecimateInf(
1313  &buf2[48],
1314  &buf4[24]);
1315 
1316  m_decimator4.myDecimateInf(
1317  &buf2[56],
1318  &buf4[28]);
1319 
1320  m_decimator8.myDecimateInf(
1321  &buf4[0],
1322  &buf8[0]);
1323 
1324  m_decimator8.myDecimateInf(
1325  &buf4[8],
1326  &buf8[4]);
1327 
1328  m_decimator8.myDecimateInf(
1329  &buf4[16],
1330  &buf8[8]);
1331 
1332  m_decimator8.myDecimateInf(
1333  &buf4[24],
1334  &buf8[12]);
1335 
1336  m_decimator16.myDecimateInf(
1337  &buf8[0],
1338  &buf16[0]);
1339 
1340  m_decimator16.myDecimateInf(
1341  &buf8[8],
1342  &buf16[4]);
1343 
1344  m_decimator32.myDecimateCen(
1345  &buf16[0],
1346  &buf32[0]);
1347 
1348  (**it).setReal(buf32[0] >> decimation_shifts<SdrBits, InputBits>::post32);
1349  (**it).setImag(buf32[1] >> decimation_shifts<SdrBits, InputBits>::post32);
1350  ++(*it);
1351 
1352  (**it).setReal(buf32[2] >> decimation_shifts<SdrBits, InputBits>::post32);
1353  (**it).setImag(buf32[3] >> decimation_shifts<SdrBits, InputBits>::post32);
1354  ++(*it);
1355  }
1356 }
1357 
1358 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
1359 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate64_inf(SampleVector::iterator* it, const T* buf, qint32 len)
1360 {
1361  StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
1362 
1363  for (int pos = 0; pos < len - 255; pos += 256)
1364  {
1365  m_decimator2.myDecimateInf(
1366  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1367  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1368  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1369  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1370  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1371  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1372  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1373  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1374  &buf2[0]);
1375 
1376 
1377  m_decimator2.myDecimateInf(
1378  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1379  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1380  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1381  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1382  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1383  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1384  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1385  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1386  &buf2[4]);
1387 
1388 
1389  m_decimator2.myDecimateInf(
1390  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1391  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1392  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1393  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1394  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1395  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1396  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1397  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1398  &buf2[8]);
1399 
1400 
1401  m_decimator2.myDecimateInf(
1402  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1403  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1404  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1405  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1406  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1407  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1408  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1409  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1410  &buf2[12]);
1411 
1412 
1413  m_decimator2.myDecimateInf(
1414  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1415  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1416  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1417  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1418  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1419  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1420  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1421  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1422  &buf2[16]);
1423 
1424 
1425  m_decimator2.myDecimateInf(
1426  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1427  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1428  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1429  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1430  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1431  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1432  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1433  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1434  &buf2[20]);
1435 
1436 
1437  m_decimator2.myDecimateInf(
1438  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1439  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1440  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1441  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1442  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1443  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1444  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1445  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1446  &buf2[24]);
1447 
1448 
1449  m_decimator2.myDecimateInf(
1450  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1451  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1452  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1453  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1454  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1455  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1456  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1457  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1458  &buf2[28]);
1459 
1460 
1461  m_decimator2.myDecimateInf(
1462  (buf[pos+64] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1463  (buf[pos+65] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1464  (buf[pos+66] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1465  (buf[pos+67] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1466  (buf[pos+68] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1467  (buf[pos+69] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1468  (buf[pos+70] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1469  (buf[pos+71] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1470  &buf2[32]);
1471 
1472 
1473  m_decimator2.myDecimateInf(
1474  (buf[pos+72] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1475  (buf[pos+73] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1476  (buf[pos+74] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1477  (buf[pos+75] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1478  (buf[pos+76] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1479  (buf[pos+77] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1480  (buf[pos+78] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1481  (buf[pos+79] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1482  &buf2[36]);
1483 
1484 
1485  m_decimator2.myDecimateInf(
1486  (buf[pos+80] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1487  (buf[pos+81] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1488  (buf[pos+82] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1489  (buf[pos+83] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1490  (buf[pos+84] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1491  (buf[pos+85] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1492  (buf[pos+86] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1493  (buf[pos+87] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1494  &buf2[40]);
1495 
1496 
1497  m_decimator2.myDecimateInf(
1498  (buf[pos+88] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1499  (buf[pos+89] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1500  (buf[pos+90] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1501  (buf[pos+91] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1502  (buf[pos+92] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1503  (buf[pos+93] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1504  (buf[pos+94] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1505  (buf[pos+95] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1506  &buf2[44]);
1507 
1508 
1509  m_decimator2.myDecimateInf(
1510  (buf[pos+96] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1511  (buf[pos+97] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1512  (buf[pos+98] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1513  (buf[pos+99] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1514  (buf[pos+100] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1515  (buf[pos+101] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1516  (buf[pos+102] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1517  (buf[pos+103] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1518  &buf2[48]);
1519 
1520 
1521  m_decimator2.myDecimateInf(
1522  (buf[pos+104] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1523  (buf[pos+105] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1524  (buf[pos+106] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1525  (buf[pos+107] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1526  (buf[pos+108] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1527  (buf[pos+109] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1528  (buf[pos+110] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1529  (buf[pos+111] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1530  &buf2[52]);
1531 
1532 
1533  m_decimator2.myDecimateInf(
1534  (buf[pos+112] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1535  (buf[pos+113] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1536  (buf[pos+114] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1537  (buf[pos+115] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1538  (buf[pos+116] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1539  (buf[pos+117] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1540  (buf[pos+118] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1541  (buf[pos+119] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1542  &buf2[56]);
1543 
1544 
1545  m_decimator2.myDecimateInf(
1546  (buf[pos+120] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1547  (buf[pos+121] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1548  (buf[pos+122] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1549  (buf[pos+123] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1550  (buf[pos+124] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1551  (buf[pos+125] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1552  (buf[pos+126] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1553  (buf[pos+127] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1554  &buf2[60]);
1555 
1556 
1557  m_decimator2.myDecimateInf(
1558  (buf[pos+128] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1559  (buf[pos+129] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1560  (buf[pos+130] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1561  (buf[pos+131] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1562  (buf[pos+132] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1563  (buf[pos+133] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1564  (buf[pos+134] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1565  (buf[pos+135] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1566  &buf2[64]);
1567 
1568 
1569  m_decimator2.myDecimateInf(
1570  (buf[pos+136] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1571  (buf[pos+137] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1572  (buf[pos+138] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1573  (buf[pos+139] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1574  (buf[pos+140] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1575  (buf[pos+141] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1576  (buf[pos+142] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1577  (buf[pos+143] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1578  &buf2[68]);
1579 
1580 
1581  m_decimator2.myDecimateInf(
1582  (buf[pos+144] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1583  (buf[pos+145] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1584  (buf[pos+146] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1585  (buf[pos+147] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1586  (buf[pos+148] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1587  (buf[pos+149] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1588  (buf[pos+150] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1589  (buf[pos+151] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1590  &buf2[72]);
1591 
1592 
1593  m_decimator2.myDecimateInf(
1594  (buf[pos+152] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1595  (buf[pos+153] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1596  (buf[pos+154] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1597  (buf[pos+155] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1598  (buf[pos+156] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1599  (buf[pos+157] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1600  (buf[pos+158] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1601  (buf[pos+159] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1602  &buf2[76]);
1603 
1604 
1605  m_decimator2.myDecimateInf(
1606  (buf[pos+160] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1607  (buf[pos+161] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1608  (buf[pos+162] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1609  (buf[pos+163] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1610  (buf[pos+164] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1611  (buf[pos+165] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1612  (buf[pos+166] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1613  (buf[pos+167] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1614  &buf2[80]);
1615 
1616 
1617  m_decimator2.myDecimateInf(
1618  (buf[pos+168] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1619  (buf[pos+169] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1620  (buf[pos+170] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1621  (buf[pos+171] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1622  (buf[pos+172] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1623  (buf[pos+173] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1624  (buf[pos+174] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1625  (buf[pos+175] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1626  &buf2[84]);
1627 
1628 
1629  m_decimator2.myDecimateInf(
1630  (buf[pos+176] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1631  (buf[pos+177] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1632  (buf[pos+178] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1633  (buf[pos+179] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1634  (buf[pos+180] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1635  (buf[pos+181] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1636  (buf[pos+182] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1637  (buf[pos+183] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1638  &buf2[88]);
1639 
1640 
1641  m_decimator2.myDecimateInf(
1642  (buf[pos+184] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1643  (buf[pos+185] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1644  (buf[pos+186] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1645  (buf[pos+187] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1646  (buf[pos+188] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1647  (buf[pos+189] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1648  (buf[pos+190] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1649  (buf[pos+191] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1650  &buf2[92]);
1651 
1652 
1653  m_decimator2.myDecimateInf(
1654  (buf[pos+192] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1655  (buf[pos+193] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1656  (buf[pos+194] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1657  (buf[pos+195] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1658  (buf[pos+196] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1659  (buf[pos+197] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1660  (buf[pos+198] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1661  (buf[pos+199] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1662  &buf2[96]);
1663 
1664 
1665  m_decimator2.myDecimateInf(
1666  (buf[pos+200] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1667  (buf[pos+201] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1668  (buf[pos+202] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1669  (buf[pos+203] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1670  (buf[pos+204] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1671  (buf[pos+205] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1672  (buf[pos+206] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1673  (buf[pos+207] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1674  &buf2[100]);
1675 
1676 
1677  m_decimator2.myDecimateInf(
1678  (buf[pos+208] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1679  (buf[pos+209] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1680  (buf[pos+210] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1681  (buf[pos+211] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1682  (buf[pos+212] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1683  (buf[pos+213] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1684  (buf[pos+214] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1685  (buf[pos+215] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1686  &buf2[104]);
1687 
1688 
1689  m_decimator2.myDecimateInf(
1690  (buf[pos+216] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1691  (buf[pos+217] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1692  (buf[pos+218] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1693  (buf[pos+219] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1694  (buf[pos+220] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1695  (buf[pos+221] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1696  (buf[pos+222] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1697  (buf[pos+223] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1698  &buf2[108]);
1699 
1700 
1701  m_decimator2.myDecimateInf(
1702  (buf[pos+224] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1703  (buf[pos+225] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1704  (buf[pos+226] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1705  (buf[pos+227] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1706  (buf[pos+228] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1707  (buf[pos+229] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1708  (buf[pos+230] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1709  (buf[pos+231] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1710  &buf2[112]);
1711 
1712 
1713  m_decimator2.myDecimateInf(
1714  (buf[pos+232] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1715  (buf[pos+233] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1716  (buf[pos+234] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1717  (buf[pos+235] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1718  (buf[pos+236] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1719  (buf[pos+237] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1720  (buf[pos+238] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1721  (buf[pos+239] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1722  &buf2[116]);
1723 
1724 
1725  m_decimator2.myDecimateInf(
1726  (buf[pos+240] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1727  (buf[pos+241] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1728  (buf[pos+242] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1729  (buf[pos+243] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1730  (buf[pos+244] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1731  (buf[pos+245] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1732  (buf[pos+246] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1733  (buf[pos+247] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1734  &buf2[120]);
1735 
1736 
1737  m_decimator2.myDecimateInf(
1738  (buf[pos+248] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1739  (buf[pos+249] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1740  (buf[pos+250] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1741  (buf[pos+251] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1742  (buf[pos+252] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1743  (buf[pos+253] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1744  (buf[pos+254] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1745  (buf[pos+255] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1746  &buf2[124]);
1747 
1748  m_decimator4.myDecimateSup(
1749  &buf2[0],
1750  &buf4[0]);
1751 
1752  m_decimator4.myDecimateSup(
1753  &buf2[8],
1754  &buf4[4]);
1755 
1756  m_decimator4.myDecimateSup(
1757  &buf2[16],
1758  &buf4[8]);
1759 
1760  m_decimator4.myDecimateSup(
1761  &buf2[24],
1762  &buf4[12]);
1763 
1764  m_decimator4.myDecimateSup(
1765  &buf2[32],
1766  &buf4[16]);
1767 
1768  m_decimator4.myDecimateSup(
1769  &buf2[40],
1770  &buf4[20]);
1771 
1772  m_decimator4.myDecimateSup(
1773  &buf2[48],
1774  &buf4[24]);
1775 
1776  m_decimator4.myDecimateSup(
1777  &buf2[56],
1778  &buf4[28]);
1779 
1780  m_decimator4.myDecimateSup(
1781  &buf2[64],
1782  &buf4[32]);
1783 
1784  m_decimator4.myDecimateSup(
1785  &buf2[72],
1786  &buf4[36]);
1787 
1788  m_decimator4.myDecimateSup(
1789  &buf2[80],
1790  &buf4[40]);
1791 
1792  m_decimator4.myDecimateSup(
1793  &buf2[88],
1794  &buf4[44]);
1795 
1796  m_decimator4.myDecimateSup(
1797  &buf2[96],
1798  &buf4[48]);
1799 
1800  m_decimator4.myDecimateSup(
1801  &buf2[104],
1802  &buf4[52]);
1803 
1804  m_decimator4.myDecimateSup(
1805  &buf2[112],
1806  &buf4[56]);
1807 
1808  m_decimator4.myDecimateSup(
1809  &buf2[120],
1810  &buf4[60]);
1811 
1812  m_decimator8.myDecimateSup(
1813  &buf4[0],
1814  &buf8[0]);
1815 
1816  m_decimator8.myDecimateSup(
1817  &buf4[8],
1818  &buf8[4]);
1819 
1820  m_decimator8.myDecimateSup(
1821  &buf4[16],
1822  &buf8[8]);
1823 
1824  m_decimator8.myDecimateSup(
1825  &buf4[24],
1826  &buf8[12]);
1827 
1828  m_decimator8.myDecimateSup(
1829  &buf4[32],
1830  &buf8[16]);
1831 
1832  m_decimator8.myDecimateSup(
1833  &buf4[40],
1834  &buf8[20]);
1835 
1836  m_decimator8.myDecimateSup(
1837  &buf4[48],
1838  &buf8[24]);
1839 
1840  m_decimator8.myDecimateSup(
1841  &buf4[56],
1842  &buf8[28]);
1843 
1844  m_decimator16.myDecimateSup(
1845  &buf8[0],
1846  &buf16[0]);
1847 
1848  m_decimator16.myDecimateSup(
1849  &buf8[8],
1850  &buf16[4]);
1851 
1852  m_decimator16.myDecimateSup(
1853  &buf8[16],
1854  &buf16[8]);
1855 
1856  m_decimator16.myDecimateSup(
1857  &buf8[24],
1858  &buf16[12]);
1859 
1860  m_decimator32.myDecimateSup(
1861  &buf16[0],
1862  &buf32[0]);
1863 
1864  m_decimator32.myDecimateSup(
1865  &buf16[8],
1866  &buf32[4]);
1867 
1868  m_decimator64.myDecimateCen(
1869  &buf32[0],
1870  &buf64[0]);
1871 
1872  (**it).setReal(buf64[0] >> decimation_shifts<SdrBits, InputBits>::post64);
1873  (**it).setImag(buf64[1] >> decimation_shifts<SdrBits, InputBits>::post64);
1874  ++(*it);
1875 
1876  (**it).setReal(buf64[2] >> decimation_shifts<SdrBits, InputBits>::post64);
1877  (**it).setImag(buf64[3] >> decimation_shifts<SdrBits, InputBits>::post64);
1878  ++(*it);
1879  }
1880 }
1881 
1882 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
1883 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate64_sup(SampleVector::iterator* it, const T* buf, qint32 len)
1884 {
1885  StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
1886 
1887  for (int pos = 0; pos < len - 255; pos += 256)
1888  {
1889  m_decimator2.myDecimateSup(
1890  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1891  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1892  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1893  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1894  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1895  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1896  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1897  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1898  &buf2[0]);
1899 
1900 
1901  m_decimator2.myDecimateSup(
1902  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1903  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1904  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1905  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1906  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1907  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1908  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1909  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1910  &buf2[4]);
1911 
1912 
1913  m_decimator2.myDecimateSup(
1914  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1915  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1916  (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1917  (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1918  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1919  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1920  (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1921  (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1922  &buf2[8]);
1923 
1924 
1925  m_decimator2.myDecimateSup(
1926  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1927  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1928  (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1929  (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1930  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1931  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1932  (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1933  (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1934  &buf2[12]);
1935 
1936 
1937  m_decimator2.myDecimateSup(
1938  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1939  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1940  (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1941  (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1942  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1943  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1944  (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1945  (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1946  &buf2[16]);
1947 
1948 
1949  m_decimator2.myDecimateSup(
1950  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1951  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1952  (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1953  (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1954  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1955  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1956  (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1957  (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1958  &buf2[20]);
1959 
1960 
1961  m_decimator2.myDecimateSup(
1962  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1963  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1964  (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1965  (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1966  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1967  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1968  (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1969  (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1970  &buf2[24]);
1971 
1972 
1973  m_decimator2.myDecimateSup(
1974  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1975  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1976  (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1977  (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1978  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1979  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1980  (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1981  (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1982  &buf2[28]);
1983 
1984 
1985  m_decimator2.myDecimateSup(
1986  (buf[pos+64] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1987  (buf[pos+65] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1988  (buf[pos+66] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1989  (buf[pos+67] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1990  (buf[pos+68] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1991  (buf[pos+69] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1992  (buf[pos+70] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1993  (buf[pos+71] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1994  &buf2[32]);
1995 
1996 
1997  m_decimator2.myDecimateSup(
1998  (buf[pos+72] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
1999  (buf[pos+73] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2000  (buf[pos+74] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2001  (buf[pos+75] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2002  (buf[pos+76] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2003  (buf[pos+77] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2004  (buf[pos+78] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2005  (buf[pos+79] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2006  &buf2[36]);
2007 
2008 
2009  m_decimator2.myDecimateSup(
2010  (buf[pos+80] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2011  (buf[pos+81] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2012  (buf[pos+82] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2013  (buf[pos+83] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2014  (buf[pos+84] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2015  (buf[pos+85] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2016  (buf[pos+86] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2017  (buf[pos+87] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2018  &buf2[40]);
2019 
2020 
2021  m_decimator2.myDecimateSup(
2022  (buf[pos+88] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2023  (buf[pos+89] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2024  (buf[pos+90] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2025  (buf[pos+91] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2026  (buf[pos+92] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2027  (buf[pos+93] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2028  (buf[pos+94] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2029  (buf[pos+95] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2030  &buf2[44]);
2031 
2032 
2033  m_decimator2.myDecimateSup(
2034  (buf[pos+96] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2035  (buf[pos+97] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2036  (buf[pos+98] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2037  (buf[pos+99] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2038  (buf[pos+100] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2039  (buf[pos+101] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2040  (buf[pos+102] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2041  (buf[pos+103] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2042  &buf2[48]);
2043 
2044 
2045  m_decimator2.myDecimateSup(
2046  (buf[pos+104] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2047  (buf[pos+105] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2048  (buf[pos+106] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2049  (buf[pos+107] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2050  (buf[pos+108] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2051  (buf[pos+109] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2052  (buf[pos+110] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2053  (buf[pos+111] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2054  &buf2[52]);
2055 
2056 
2057  m_decimator2.myDecimateSup(
2058  (buf[pos+112] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2059  (buf[pos+113] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2060  (buf[pos+114] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2061  (buf[pos+115] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2062  (buf[pos+116] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2063  (buf[pos+117] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2064  (buf[pos+118] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2065  (buf[pos+119] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2066  &buf2[56]);
2067 
2068 
2069  m_decimator2.myDecimateSup(
2070  (buf[pos+120] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2071  (buf[pos+121] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2072  (buf[pos+122] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2073  (buf[pos+123] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2074  (buf[pos+124] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2075  (buf[pos+125] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2076  (buf[pos+126] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2077  (buf[pos+127] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2078  &buf2[60]);
2079 
2080 
2081  m_decimator2.myDecimateSup(
2082  (buf[pos+128] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2083  (buf[pos+129] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2084  (buf[pos+130] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2085  (buf[pos+131] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2086  (buf[pos+132] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2087  (buf[pos+133] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2088  (buf[pos+134] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2089  (buf[pos+135] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2090  &buf2[64]);
2091 
2092 
2093  m_decimator2.myDecimateSup(
2094  (buf[pos+136] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2095  (buf[pos+137] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2096  (buf[pos+138] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2097  (buf[pos+139] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2098  (buf[pos+140] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2099  (buf[pos+141] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2100  (buf[pos+142] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2101  (buf[pos+143] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2102  &buf2[68]);
2103 
2104 
2105  m_decimator2.myDecimateSup(
2106  (buf[pos+144] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2107  (buf[pos+145] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2108  (buf[pos+146] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2109  (buf[pos+147] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2110  (buf[pos+148] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2111  (buf[pos+149] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2112  (buf[pos+150] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2113  (buf[pos+151] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2114  &buf2[72]);
2115 
2116 
2117  m_decimator2.myDecimateSup(
2118  (buf[pos+152] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2119  (buf[pos+153] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2120  (buf[pos+154] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2121  (buf[pos+155] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2122  (buf[pos+156] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2123  (buf[pos+157] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2124  (buf[pos+158] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2125  (buf[pos+159] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2126  &buf2[76]);
2127 
2128 
2129  m_decimator2.myDecimateSup(
2130  (buf[pos+160] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2131  (buf[pos+161] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2132  (buf[pos+162] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2133  (buf[pos+163] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2134  (buf[pos+164] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2135  (buf[pos+165] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2136  (buf[pos+166] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2137  (buf[pos+167] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2138  &buf2[80]);
2139 
2140 
2141  m_decimator2.myDecimateSup(
2142  (buf[pos+168] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2143  (buf[pos+169] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2144  (buf[pos+170] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2145  (buf[pos+171] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2146  (buf[pos+172] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2147  (buf[pos+173] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2148  (buf[pos+174] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2149  (buf[pos+175] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2150  &buf2[84]);
2151 
2152 
2153  m_decimator2.myDecimateSup(
2154  (buf[pos+176] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2155  (buf[pos+177] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2156  (buf[pos+178] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2157  (buf[pos+179] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2158  (buf[pos+180] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2159  (buf[pos+181] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2160  (buf[pos+182] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2161  (buf[pos+183] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2162  &buf2[88]);
2163 
2164 
2165  m_decimator2.myDecimateSup(
2166  (buf[pos+184] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2167  (buf[pos+185] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2168  (buf[pos+186] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2169  (buf[pos+187] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2170  (buf[pos+188] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2171  (buf[pos+189] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2172  (buf[pos+190] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2173  (buf[pos+191] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2174  &buf2[92]);
2175 
2176 
2177  m_decimator2.myDecimateSup(
2178  (buf[pos+192] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2179  (buf[pos+193] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2180  (buf[pos+194] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2181  (buf[pos+195] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2182  (buf[pos+196] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2183  (buf[pos+197] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2184  (buf[pos+198] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2185  (buf[pos+199] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2186  &buf2[96]);
2187 
2188 
2189  m_decimator2.myDecimateSup(
2190  (buf[pos+200] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2191  (buf[pos+201] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2192  (buf[pos+202] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2193  (buf[pos+203] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2194  (buf[pos+204] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2195  (buf[pos+205] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2196  (buf[pos+206] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2197  (buf[pos+207] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2198  &buf2[100]);
2199 
2200 
2201  m_decimator2.myDecimateSup(
2202  (buf[pos+208] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2203  (buf[pos+209] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2204  (buf[pos+210] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2205  (buf[pos+211] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2206  (buf[pos+212] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2207  (buf[pos+213] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2208  (buf[pos+214] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2209  (buf[pos+215] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2210  &buf2[104]);
2211 
2212 
2213  m_decimator2.myDecimateSup(
2214  (buf[pos+216] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2215  (buf[pos+217] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2216  (buf[pos+218] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2217  (buf[pos+219] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2218  (buf[pos+220] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2219  (buf[pos+221] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2220  (buf[pos+222] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2221  (buf[pos+223] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2222  &buf2[108]);
2223 
2224 
2225  m_decimator2.myDecimateSup(
2226  (buf[pos+224] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2227  (buf[pos+225] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2228  (buf[pos+226] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2229  (buf[pos+227] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2230  (buf[pos+228] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2231  (buf[pos+229] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2232  (buf[pos+230] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2233  (buf[pos+231] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2234  &buf2[112]);
2235 
2236 
2237  m_decimator2.myDecimateSup(
2238  (buf[pos+232] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2239  (buf[pos+233] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2240  (buf[pos+234] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2241  (buf[pos+235] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2242  (buf[pos+236] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2243  (buf[pos+237] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2244  (buf[pos+238] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2245  (buf[pos+239] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2246  &buf2[116]);
2247 
2248 
2249  m_decimator2.myDecimateSup(
2250  (buf[pos+240] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2251  (buf[pos+241] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2252  (buf[pos+242] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2253  (buf[pos+243] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2254  (buf[pos+244] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2255  (buf[pos+245] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2256  (buf[pos+246] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2257  (buf[pos+247] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2258  &buf2[120]);
2259 
2260 
2261  m_decimator2.myDecimateSup(
2262  (buf[pos+248] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2263  (buf[pos+249] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2264  (buf[pos+250] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2265  (buf[pos+251] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2266  (buf[pos+252] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2267  (buf[pos+253] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2268  (buf[pos+254] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2269  (buf[pos+255] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2270  &buf2[124]);
2271 
2272  m_decimator4.myDecimateInf(
2273  &buf2[0],
2274  &buf4[0]);
2275 
2276  m_decimator4.myDecimateInf(
2277  &buf2[8],
2278  &buf4[4]);
2279 
2280  m_decimator4.myDecimateInf(
2281  &buf2[16],
2282  &buf4[8]);
2283 
2284  m_decimator4.myDecimateInf(
2285  &buf2[24],
2286  &buf4[12]);
2287 
2288  m_decimator4.myDecimateInf(
2289  &buf2[32],
2290  &buf4[16]);
2291 
2292  m_decimator4.myDecimateInf(
2293  &buf2[40],
2294  &buf4[20]);
2295 
2296  m_decimator4.myDecimateInf(
2297  &buf2[48],
2298  &buf4[24]);
2299 
2300  m_decimator4.myDecimateInf(
2301  &buf2[56],
2302  &buf4[28]);
2303 
2304  m_decimator4.myDecimateInf(
2305  &buf2[64],
2306  &buf4[32]);
2307 
2308  m_decimator4.myDecimateInf(
2309  &buf2[72],
2310  &buf4[36]);
2311 
2312  m_decimator4.myDecimateInf(
2313  &buf2[80],
2314  &buf4[40]);
2315 
2316  m_decimator4.myDecimateInf(
2317  &buf2[88],
2318  &buf4[44]);
2319 
2320  m_decimator4.myDecimateInf(
2321  &buf2[96],
2322  &buf4[48]);
2323 
2324  m_decimator4.myDecimateInf(
2325  &buf2[104],
2326  &buf4[52]);
2327 
2328  m_decimator4.myDecimateInf(
2329  &buf2[112],
2330  &buf4[56]);
2331 
2332  m_decimator4.myDecimateInf(
2333  &buf2[120],
2334  &buf4[60]);
2335 
2336  m_decimator8.myDecimateInf(
2337  &buf4[0],
2338  &buf8[0]);
2339 
2340  m_decimator8.myDecimateInf(
2341  &buf4[8],
2342  &buf8[4]);
2343 
2344  m_decimator8.myDecimateInf(
2345  &buf4[16],
2346  &buf8[8]);
2347 
2348  m_decimator8.myDecimateInf(
2349  &buf4[24],
2350  &buf8[12]);
2351 
2352  m_decimator8.myDecimateInf(
2353  &buf4[32],
2354  &buf8[16]);
2355 
2356  m_decimator8.myDecimateInf(
2357  &buf4[40],
2358  &buf8[20]);
2359 
2360  m_decimator8.myDecimateInf(
2361  &buf4[48],
2362  &buf8[24]);
2363 
2364  m_decimator8.myDecimateInf(
2365  &buf4[56],
2366  &buf8[28]);
2367 
2368  m_decimator16.myDecimateInf(
2369  &buf8[0],
2370  &buf16[0]);
2371 
2372  m_decimator16.myDecimateInf(
2373  &buf8[8],
2374  &buf16[4]);
2375 
2376  m_decimator16.myDecimateInf(
2377  &buf8[16],
2378  &buf16[8]);
2379 
2380  m_decimator16.myDecimateInf(
2381  &buf8[24],
2382  &buf16[12]);
2383 
2384  m_decimator32.myDecimateInf(
2385  &buf16[0],
2386  &buf32[0]);
2387 
2388  m_decimator32.myDecimateInf(
2389  &buf16[8],
2390  &buf32[4]);
2391 
2392  m_decimator64.myDecimateCen(
2393  &buf32[0],
2394  &buf64[0]);
2395 
2396  (**it).setReal(buf64[0] >> decimation_shifts<SdrBits, InputBits>::post64);
2397  (**it).setImag(buf64[1] >> decimation_shifts<SdrBits, InputBits>::post64);
2398  ++(*it);
2399 
2400  (**it).setReal(buf64[2] >> decimation_shifts<SdrBits, InputBits>::post64);
2401  (**it).setImag(buf64[3] >> decimation_shifts<SdrBits, InputBits>::post64);
2402  ++(*it);
2403  }
2404 }
2405 
2406 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2407 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate2_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2408 {
2409  StorageType buf2[4];
2410 
2411  for (int pos = 0; pos < len - 7; pos += 8)
2412  {
2413  m_decimator2.myDecimateCen(
2414  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2415  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2416  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2417  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2418  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2419  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2420  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2421  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre2,
2422  &buf2[0]);
2423 
2424  (**it).setReal(buf2[0] >> decimation_shifts<SdrBits, InputBits>::post2);
2425  (**it).setImag(buf2[1] >> decimation_shifts<SdrBits, InputBits>::post2);
2426  ++(*it);
2427 
2428  (**it).setReal(buf2[2] >> decimation_shifts<SdrBits, InputBits>::post2);
2429  (**it).setImag(buf2[3] >> decimation_shifts<SdrBits, InputBits>::post2);
2430  ++(*it);
2431  }
2432 }
2433 
2434 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2435 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate4_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2436 {
2437  StorageType buf2[8], buf4[4];
2438 
2439  for (int pos = 0; pos < len - 15; pos += 16)
2440  {
2441  m_decimator2.myDecimateCen(
2442  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2443  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2444  (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2445  (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2446  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2447  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2448  (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2449  (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2450  &buf2[0]);
2451 
2452  m_decimator2.myDecimateCen(
2453  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2454  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2455  (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2456  (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2457  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2458  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2459  (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2460  (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre4,
2461  &buf2[4]);
2462 
2463  m_decimator4.myDecimateCen(
2464  &buf2[0],
2465  &buf4[0]);
2466 
2467  (**it).setReal(buf4[0] >> decimation_shifts<SdrBits, InputBits>::post4);
2468  (**it).setImag(buf4[1] >> decimation_shifts<SdrBits, InputBits>::post4);
2469  ++(*it);
2470 
2471  (**it).setReal(buf4[2] >> decimation_shifts<SdrBits, InputBits>::post4);
2472  (**it).setImag(buf4[3] >> decimation_shifts<SdrBits, InputBits>::post4);
2473  ++(*it);
2474  }
2475 }
2476 
2477 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2478 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate8_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2479 {
2480  StorageType intbuf[8];
2481 
2482  for (int pos = 0; pos < len - 15; pos += 16)
2483  {
2484  intbuf[0] = (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2485  intbuf[1] = (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2486  intbuf[2] = (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2487  intbuf[3] = (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2488  intbuf[4] = (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2489  intbuf[5] = (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2490  intbuf[6] = (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2491  intbuf[7] = (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8;
2492 
2493  m_decimator2.myDecimate(
2494  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2495  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2496  &intbuf[0],
2497  &intbuf[1]);
2498  m_decimator2.myDecimate(
2499  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2500  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2501  &intbuf[2],
2502  &intbuf[3]);
2503  m_decimator2.myDecimate(
2504  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2505  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2506  &intbuf[4],
2507  &intbuf[5]);
2508  m_decimator2.myDecimate(
2509  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2510  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre8,
2511  &intbuf[6],
2512  &intbuf[7]);
2513 
2514  m_decimator4.myDecimate(
2515  intbuf[0],
2516  intbuf[1],
2517  &intbuf[2],
2518  &intbuf[3]);
2519  m_decimator4.myDecimate(
2520  intbuf[4],
2521  intbuf[5],
2522  &intbuf[6],
2523  &intbuf[7]);
2524 
2525  m_decimator8.myDecimate(
2526  intbuf[2],
2527  intbuf[3],
2528  &intbuf[6],
2529  &intbuf[7]);
2530 
2531  (**it).setReal(intbuf[6] >> decimation_shifts<SdrBits, InputBits>::post8);
2532  (**it).setImag(intbuf[7] >> decimation_shifts<SdrBits, InputBits>::post8);
2533  ++(*it);
2534  }
2535 }
2536 
2537 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2538 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate16_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2539 {
2540  StorageType intbuf[16];
2541 
2542  for (int pos = 0; pos < len - 31; pos += 32)
2543  {
2544  intbuf[0] = (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2545  intbuf[1] = (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2546  intbuf[2] = (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2547  intbuf[3] = (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2548  intbuf[4] = (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2549  intbuf[5] = (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2550  intbuf[6] = (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2551  intbuf[7] = (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2552  intbuf[8] = (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2553  intbuf[9] = (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2554  intbuf[10] = (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2555  intbuf[11] = (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2556  intbuf[12] = (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2557  intbuf[13] = (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2558  intbuf[14] = (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2559  intbuf[15] = (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16;
2560 
2561  m_decimator2.myDecimate(
2562  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2563  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2564  &intbuf[0],
2565  &intbuf[1]);
2566  m_decimator2.myDecimate(
2567  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2568  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2569  &intbuf[2],
2570  &intbuf[3]);
2571  m_decimator2.myDecimate(
2572  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2573  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2574  &intbuf[4],
2575  &intbuf[5]);
2576  m_decimator2.myDecimate(
2577  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2578  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2579  &intbuf[6],
2580  &intbuf[7]);
2581  m_decimator2.myDecimate(
2582  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2583  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2584  &intbuf[8],
2585  &intbuf[9]);
2586  m_decimator2.myDecimate(
2587  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2588  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2589  &intbuf[10],
2590  &intbuf[11]);
2591  m_decimator2.myDecimate(
2592  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2593  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2594  &intbuf[12],
2595  &intbuf[13]);
2596  m_decimator2.myDecimate(
2597  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2598  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre16,
2599  &intbuf[14],
2600  &intbuf[15]);
2601 
2602  m_decimator4.myDecimate(
2603  intbuf[0],
2604  intbuf[1],
2605  &intbuf[2],
2606  &intbuf[3]);
2607  m_decimator4.myDecimate(
2608  intbuf[4],
2609  intbuf[5],
2610  &intbuf[6],
2611  &intbuf[7]);
2612  m_decimator4.myDecimate(
2613  intbuf[8],
2614  intbuf[9],
2615  &intbuf[10],
2616  &intbuf[11]);
2617  m_decimator4.myDecimate(
2618  intbuf[12],
2619  intbuf[13],
2620  &intbuf[14],
2621  &intbuf[15]);
2622 
2623  m_decimator8.myDecimate(
2624  intbuf[2],
2625  intbuf[3],
2626  &intbuf[6],
2627  &intbuf[7]);
2628  m_decimator8.myDecimate(
2629  intbuf[10],
2630  intbuf[11],
2631  &intbuf[14],
2632  &intbuf[15]);
2633 
2634  m_decimator16.myDecimate(
2635  intbuf[6],
2636  intbuf[7],
2637  &intbuf[14],
2638  &intbuf[15]);
2639 
2640  (**it).setReal(intbuf[14] >> decimation_shifts<SdrBits, InputBits>::post16);
2641  (**it).setImag(intbuf[15] >> decimation_shifts<SdrBits, InputBits>::post16);
2642  ++(*it);
2643  }
2644 }
2645 
2646 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2647 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate32_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2648 {
2649  StorageType intbuf[32];
2650 
2651  for (int pos = 0; pos < len - 63; pos += 64)
2652  {
2653  intbuf[0] = (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2654  intbuf[1] = (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2655  intbuf[2] = (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2656  intbuf[3] = (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2657  intbuf[4] = (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2658  intbuf[5] = (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2659  intbuf[6] = (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2660  intbuf[7] = (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2661  intbuf[8] = (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2662  intbuf[9] = (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2663  intbuf[10] = (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2664  intbuf[11] = (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2665  intbuf[12] = (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2666  intbuf[13] = (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2667  intbuf[14] = (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2668  intbuf[15] = (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2669  intbuf[16] = (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2670  intbuf[17] = (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2671  intbuf[18] = (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2672  intbuf[19] = (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2673  intbuf[20] = (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2674  intbuf[21] = (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2675  intbuf[22] = (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2676  intbuf[23] = (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2677  intbuf[24] = (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2678  intbuf[25] = (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2679  intbuf[26] = (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2680  intbuf[27] = (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2681  intbuf[28] = (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2682  intbuf[29] = (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2683  intbuf[30] = (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2684  intbuf[31] = (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32;
2685 
2686  m_decimator2.myDecimate(
2687  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2688  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2689  &intbuf[0],
2690  &intbuf[1]);
2691  m_decimator2.myDecimate(
2692  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2693  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2694  &intbuf[2],
2695  &intbuf[3]);
2696  m_decimator2.myDecimate(
2697  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2698  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2699  &intbuf[4],
2700  &intbuf[5]);
2701  m_decimator2.myDecimate(
2702  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2703  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2704  &intbuf[6],
2705  &intbuf[7]);
2706  m_decimator2.myDecimate(
2707  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2708  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2709  &intbuf[8],
2710  &intbuf[9]);
2711  m_decimator2.myDecimate(
2712  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2713  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2714  &intbuf[10],
2715  &intbuf[11]);
2716  m_decimator2.myDecimate(
2717  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2718  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2719  &intbuf[12],
2720  &intbuf[13]);
2721  m_decimator2.myDecimate(
2722  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2723  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2724  &intbuf[14],
2725  &intbuf[15]);
2726  m_decimator2.myDecimate(
2727  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2728  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2729  &intbuf[16],
2730  &intbuf[17]);
2731  m_decimator2.myDecimate(
2732  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2733  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2734  &intbuf[18],
2735  &intbuf[19]);
2736  m_decimator2.myDecimate(
2737  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2738  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2739  &intbuf[20],
2740  &intbuf[21]);
2741  m_decimator2.myDecimate(
2742  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2743  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2744  &intbuf[22],
2745  &intbuf[23]);
2746  m_decimator2.myDecimate(
2747  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2748  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2749  &intbuf[24],
2750  &intbuf[25]);
2751  m_decimator2.myDecimate(
2752  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2753  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2754  &intbuf[26],
2755  &intbuf[27]);
2756  m_decimator2.myDecimate(
2757  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2758  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2759  &intbuf[28],
2760  &intbuf[29]);
2761  m_decimator2.myDecimate(
2762  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2763  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre32,
2764  &intbuf[30],
2765  &intbuf[31]);
2766 
2767  m_decimator4.myDecimate(
2768  intbuf[0],
2769  intbuf[1],
2770  &intbuf[2],
2771  &intbuf[3]);
2772  m_decimator4.myDecimate(
2773  intbuf[4],
2774  intbuf[5],
2775  &intbuf[6],
2776  &intbuf[7]);
2777  m_decimator4.myDecimate(
2778  intbuf[8],
2779  intbuf[9],
2780  &intbuf[10],
2781  &intbuf[11]);
2782  m_decimator4.myDecimate(
2783  intbuf[12],
2784  intbuf[13],
2785  &intbuf[14],
2786  &intbuf[15]);
2787  m_decimator4.myDecimate(
2788  intbuf[16],
2789  intbuf[17],
2790  &intbuf[18],
2791  &intbuf[19]);
2792  m_decimator4.myDecimate(
2793  intbuf[20],
2794  intbuf[21],
2795  &intbuf[22],
2796  &intbuf[23]);
2797  m_decimator4.myDecimate(
2798  intbuf[24],
2799  intbuf[25],
2800  &intbuf[26],
2801  &intbuf[27]);
2802  m_decimator4.myDecimate(
2803  intbuf[28],
2804  intbuf[29],
2805  &intbuf[30],
2806  &intbuf[31]);
2807 
2808  m_decimator8.myDecimate(
2809  intbuf[2],
2810  intbuf[3],
2811  &intbuf[6],
2812  &intbuf[7]);
2813  m_decimator8.myDecimate(
2814  intbuf[10],
2815  intbuf[11],
2816  &intbuf[14],
2817  &intbuf[15]);
2818  m_decimator8.myDecimate(
2819  intbuf[18],
2820  intbuf[19],
2821  &intbuf[22],
2822  &intbuf[23]);
2823  m_decimator8.myDecimate(
2824  intbuf[26],
2825  intbuf[27],
2826  &intbuf[30],
2827  &intbuf[31]);
2828 
2829  m_decimator16.myDecimate(
2830  intbuf[6],
2831  intbuf[7],
2832  &intbuf[14],
2833  &intbuf[15]);
2834  m_decimator16.myDecimate(
2835  intbuf[22],
2836  intbuf[23],
2837  &intbuf[30],
2838  &intbuf[31]);
2839 
2840  m_decimator32.myDecimate(
2841  intbuf[14],
2842  intbuf[15],
2843  &intbuf[30],
2844  &intbuf[31]);
2845 
2846  (**it).setReal(intbuf[30] >> decimation_shifts<SdrBits, InputBits>::post32);
2847  (**it).setImag(intbuf[31] >> decimation_shifts<SdrBits, InputBits>::post32);
2848  ++(*it);
2849  }
2850 }
2851 
2852 template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
2853 void DecimatorsU<StorageType, T, SdrBits, InputBits, Shift>::decimate64_cen(SampleVector::iterator* it, const T* buf, qint32 len)
2854 {
2855  StorageType intbuf[64];
2856 
2857  for (int pos = 0; pos < len - 127; pos += 128)
2858  {
2859  intbuf[0] = (buf[pos+2] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2860  intbuf[1] = (buf[pos+3] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2861  intbuf[2] = (buf[pos+6] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2862  intbuf[3] = (buf[pos+7] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2863  intbuf[4] = (buf[pos+10] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2864  intbuf[5] = (buf[pos+11] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2865  intbuf[6] = (buf[pos+14] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2866  intbuf[7] = (buf[pos+15] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2867  intbuf[8] = (buf[pos+18] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2868  intbuf[9] = (buf[pos+19] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2869  intbuf[10] = (buf[pos+22] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2870  intbuf[11] = (buf[pos+23] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2871  intbuf[12] = (buf[pos+26] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2872  intbuf[13] = (buf[pos+27] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2873  intbuf[14] = (buf[pos+30] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2874  intbuf[15] = (buf[pos+31] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2875  intbuf[16] = (buf[pos+34] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2876  intbuf[17] = (buf[pos+35] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2877  intbuf[18] = (buf[pos+38] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2878  intbuf[19] = (buf[pos+39] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2879  intbuf[20] = (buf[pos+42] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2880  intbuf[21] = (buf[pos+43] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2881  intbuf[22] = (buf[pos+46] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2882  intbuf[23] = (buf[pos+47] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2883  intbuf[24] = (buf[pos+50] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2884  intbuf[25] = (buf[pos+51] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2885  intbuf[26] = (buf[pos+54] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2886  intbuf[27] = (buf[pos+55] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2887  intbuf[28] = (buf[pos+58] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2888  intbuf[29] = (buf[pos+59] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2889  intbuf[30] = (buf[pos+62] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2890  intbuf[31] = (buf[pos+63] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2891 
2892  intbuf[32] = (buf[pos+66] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2893  intbuf[33] = (buf[pos+67] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2894  intbuf[34] = (buf[pos+70] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2895  intbuf[35] = (buf[pos+71] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2896  intbuf[36] = (buf[pos+74] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2897  intbuf[37] = (buf[pos+75] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2898  intbuf[38] = (buf[pos+78] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2899  intbuf[39] = (buf[pos+79] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2900  intbuf[40] = (buf[pos+82] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2901  intbuf[41] = (buf[pos+83] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2902  intbuf[42] = (buf[pos+86] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2903  intbuf[43] = (buf[pos+87] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2904  intbuf[44] = (buf[pos+90] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2905  intbuf[45] = (buf[pos+91] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2906  intbuf[46] = (buf[pos+94] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2907  intbuf[47] = (buf[pos+95] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2908  intbuf[48] = (buf[pos+98] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2909  intbuf[49] = (buf[pos+99] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2910  intbuf[50] = (buf[pos+102] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2911  intbuf[51] = (buf[pos+103] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2912  intbuf[52] = (buf[pos+106] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2913  intbuf[53] = (buf[pos+107] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2914  intbuf[54] = (buf[pos+110] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2915  intbuf[55] = (buf[pos+111] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2916  intbuf[56] = (buf[pos+114] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2917  intbuf[57] = (buf[pos+115] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2918  intbuf[58] = (buf[pos+118] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2919  intbuf[59] = (buf[pos+119] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2920  intbuf[60] = (buf[pos+122] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2921  intbuf[61] = (buf[pos+123] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2922  intbuf[62] = (buf[pos+126] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2923  intbuf[63] = (buf[pos+127] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64;
2924 
2925  m_decimator2.myDecimate(
2926  (buf[pos+0] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2927  (buf[pos+1] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2928  &intbuf[0],
2929  &intbuf[1]);
2930  m_decimator2.myDecimate(
2931  (buf[pos+4] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2932  (buf[pos+5] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2933  &intbuf[2],
2934  &intbuf[3]);
2935  m_decimator2.myDecimate(
2936  (buf[pos+8] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2937  (buf[pos+9] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2938  &intbuf[4],
2939  &intbuf[5]);
2940  m_decimator2.myDecimate(
2941  (buf[pos+12] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2942  (buf[pos+13] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2943  &intbuf[6],
2944  &intbuf[7]);
2945  m_decimator2.myDecimate(
2946  (buf[pos+16] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2947  (buf[pos+17] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2948  &intbuf[8],
2949  &intbuf[9]);
2950  m_decimator2.myDecimate(
2951  (buf[pos+20] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2952  (buf[pos+21] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2953  &intbuf[10],
2954  &intbuf[11]);
2955  m_decimator2.myDecimate(
2956  (buf[pos+24] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2957  (buf[pos+25] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2958  &intbuf[12],
2959  &intbuf[13]);
2960  m_decimator2.myDecimate(
2961  (buf[pos+28] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2962  (buf[pos+29] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2963  &intbuf[14],
2964  &intbuf[15]);
2965  m_decimator2.myDecimate(
2966  (buf[pos+32] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2967  (buf[pos+33] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2968  &intbuf[16],
2969  &intbuf[17]);
2970  m_decimator2.myDecimate(
2971  (buf[pos+36] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2972  (buf[pos+37] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2973  &intbuf[18],
2974  &intbuf[19]);
2975  m_decimator2.myDecimate(
2976  (buf[pos+40] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2977  (buf[pos+41] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2978  &intbuf[20],
2979  &intbuf[21]);
2980  m_decimator2.myDecimate(
2981  (buf[pos+44] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2982  (buf[pos+45] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2983  &intbuf[22],
2984  &intbuf[23]);
2985  m_decimator2.myDecimate(
2986  (buf[pos+48] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2987  (buf[pos+49] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2988  &intbuf[24],
2989  &intbuf[25]);
2990  m_decimator2.myDecimate(
2991  (buf[pos+52] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2992  (buf[pos+53] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2993  &intbuf[26],
2994  &intbuf[27]);
2995  m_decimator2.myDecimate(
2996  (buf[pos+56] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2997  (buf[pos+57] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
2998  &intbuf[28],
2999  &intbuf[29]);
3000  m_decimator2.myDecimate(
3001  (buf[pos+60] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3002  (buf[pos+61] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3003  &intbuf[30],
3004  &intbuf[31]);
3005  m_decimator2.myDecimate(
3006  (buf[pos+64] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3007  (buf[pos+65] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3008  &intbuf[32],
3009  &intbuf[33]);
3010  m_decimator2.myDecimate(
3011  (buf[pos+68] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3012  (buf[pos+69] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3013  &intbuf[34],
3014  &intbuf[35]);
3015  m_decimator2.myDecimate(
3016  (buf[pos+72] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3017  (buf[pos+73] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3018  &intbuf[36],
3019  &intbuf[37]);
3020  m_decimator2.myDecimate(
3021  (buf[pos+76] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3022  (buf[pos+77] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3023  &intbuf[38],
3024  &intbuf[39]);
3025  m_decimator2.myDecimate(
3026  (buf[pos+80] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3027  (buf[pos+81] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3028  &intbuf[40],
3029  &intbuf[41]);
3030  m_decimator2.myDecimate(
3031  (buf[pos+84] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3032  (buf[pos+85] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3033  &intbuf[42],
3034  &intbuf[43]);
3035  m_decimator2.myDecimate(
3036  (buf[pos+88] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3037  (buf[pos+89] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3038  &intbuf[44],
3039  &intbuf[45]);
3040  m_decimator2.myDecimate(
3041  (buf[pos+92] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3042  (buf[pos+93] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3043  &intbuf[46],
3044  &intbuf[47]);
3045  m_decimator2.myDecimate(
3046  (buf[pos+96] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3047  (buf[pos+97] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3048  &intbuf[48],
3049  &intbuf[49]);
3050  m_decimator2.myDecimate(
3051  (buf[pos+100] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3052  (buf[pos+101] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3053  &intbuf[50],
3054  &intbuf[51]);
3055  m_decimator2.myDecimate(
3056  (buf[pos+104] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3057  (buf[pos+105] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3058  &intbuf[52],
3059  &intbuf[53]);
3060  m_decimator2.myDecimate(
3061  (buf[pos+108] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3062  (buf[pos+109] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3063  &intbuf[54],
3064  &intbuf[55]);
3065  m_decimator2.myDecimate(
3066  (buf[pos+112] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3067  (buf[pos+113] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3068  &intbuf[56],
3069  &intbuf[57]);
3070  m_decimator2.myDecimate(
3071  (buf[pos+116] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3072  (buf[pos+117] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3073  &intbuf[58],
3074  &intbuf[59]);
3075  m_decimator2.myDecimate(
3076  (buf[pos+120] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3077  (buf[pos+121] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3078  &intbuf[60],
3079  &intbuf[61]);
3080  m_decimator2.myDecimate(
3081  (buf[pos+124] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3082  (buf[pos+125] - Shift) << decimation_shifts<SdrBits, InputBits>::pre64,
3083  &intbuf[62],
3084  &intbuf[63]);
3085 
3086  m_decimator4.myDecimate(
3087  intbuf[0],
3088  intbuf[1],
3089  &intbuf[2],
3090  &intbuf[3]);
3091  m_decimator4.myDecimate(
3092  intbuf[4],
3093  intbuf[5],
3094  &intbuf[6],
3095  &intbuf[7]);
3096  m_decimator4.myDecimate(
3097  intbuf[8],
3098  intbuf[9],
3099  &intbuf[10],
3100  &intbuf[11]);
3101  m_decimator4.myDecimate(
3102  intbuf[12],
3103  intbuf[13],
3104  &intbuf[14],
3105  &intbuf[15]);
3106  m_decimator4.myDecimate(
3107  intbuf[16],
3108  intbuf[17],
3109  &intbuf[18],
3110  &intbuf[19]);
3111  m_decimator4.myDecimate(
3112  intbuf[20],
3113  intbuf[21],
3114  &intbuf[22],
3115  &intbuf[23]);
3116  m_decimator4.myDecimate(
3117  intbuf[24],
3118  intbuf[25],
3119  &intbuf[26],
3120  &intbuf[27]);
3121  m_decimator4.myDecimate(
3122  intbuf[28],
3123  intbuf[29],
3124  &intbuf[30],
3125  &intbuf[31]);
3126  m_decimator4.myDecimate(
3127  intbuf[32],
3128  intbuf[33],
3129  &intbuf[34],
3130  &intbuf[35]);
3131  m_decimator4.myDecimate(
3132  intbuf[36],
3133  intbuf[37],
3134  &intbuf[38],
3135  &intbuf[39]);
3136  m_decimator4.myDecimate(
3137  intbuf[40],
3138  intbuf[41],
3139  &intbuf[42],
3140  &intbuf[43]);
3141  m_decimator4.myDecimate(
3142  intbuf[44],
3143  intbuf[45],
3144  &intbuf[46],
3145  &intbuf[47]);
3146  m_decimator4.myDecimate(
3147  intbuf[48],
3148  intbuf[49],
3149  &intbuf[50],
3150  &intbuf[51]);
3151  m_decimator4.myDecimate(
3152  intbuf[52],
3153  intbuf[53],
3154  &intbuf[54],
3155  &intbuf[55]);
3156  m_decimator4.myDecimate(
3157  intbuf[56],
3158  intbuf[57],
3159  &intbuf[58],
3160  &intbuf[59]);
3161  m_decimator4.myDecimate(
3162  intbuf[60],
3163  intbuf[61],
3164  &intbuf[62],
3165  &intbuf[63]);
3166 
3167  m_decimator8.myDecimate(
3168  intbuf[2],
3169  intbuf[3],
3170  &intbuf[6],
3171  &intbuf[7]);
3172  m_decimator8.myDecimate(
3173  intbuf[10],
3174  intbuf[11],
3175  &intbuf[14],
3176  &intbuf[15]);
3177  m_decimator8.myDecimate(
3178  intbuf[18],
3179  intbuf[19],
3180  &intbuf[22],
3181  &intbuf[23]);
3182  m_decimator8.myDecimate(
3183  intbuf[26],
3184  intbuf[27],
3185  &intbuf[30],
3186  &intbuf[31]);
3187  m_decimator8.myDecimate(
3188  intbuf[34],
3189  intbuf[35],
3190  &intbuf[38],
3191  &intbuf[39]);
3192  m_decimator8.myDecimate(
3193  intbuf[42],
3194  intbuf[43],
3195  &intbuf[46],
3196  &intbuf[47]);
3197  m_decimator8.myDecimate(
3198  intbuf[50],
3199  intbuf[51],
3200  &intbuf[54],
3201  &intbuf[55]);
3202  m_decimator8.myDecimate(
3203  intbuf[58],
3204  intbuf[59],
3205  &intbuf[62],
3206  &intbuf[63]);
3207 
3208  m_decimator16.myDecimate(
3209  intbuf[6],
3210  intbuf[7],
3211  &intbuf[14],
3212  &intbuf[15]);
3213  m_decimator16.myDecimate(
3214  intbuf[22],
3215  intbuf[23],
3216  &intbuf[30],
3217  &intbuf[31]);
3218  m_decimator16.myDecimate(
3219  intbuf[38],
3220  intbuf[39],
3221  &intbuf[46],
3222  &intbuf[47]);
3223  m_decimator16.myDecimate(
3224  intbuf[54],
3225  intbuf[55],
3226  &intbuf[62],
3227  &intbuf[63]);
3228 
3229  m_decimator32.myDecimate(
3230  intbuf[14],
3231  intbuf[15],
3232  &intbuf[30],
3233  &intbuf[31]);
3234  m_decimator32.myDecimate(
3235  intbuf[46],
3236  intbuf[47],
3237  &intbuf[62],
3238  &intbuf[63]);
3239 
3240  m_decimator64.myDecimate(
3241  intbuf[30],
3242  intbuf[31],
3243  &intbuf[62],
3244  &intbuf[63]);
3245 
3246  (**it).setReal(intbuf[62] >> decimation_shifts<SdrBits, InputBits>::post64);
3247  (**it).setImag(intbuf[63] >> decimation_shifts<SdrBits, InputBits>::post64);
3248  ++(*it);
3249  }
3250 }
3251 
3252 #endif /* INCLUDE_GPL_DSP_DECIMATORSU_H_ */
static const uint pre64
Definition: decimators.h:40
void decimate4_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:341
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
void decimate2_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:263
void decimate8_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:391
void decimate16_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:543
static const uint pre1
Definition: decimators.h:29
static const uint pre32
Definition: decimators.h:38
static const uint pre16
Definition: decimators.h:36
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
void decimate16_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2538
void decimate2_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:235
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
static const uint post8
Definition: decimators.h:35
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator64
Definition: decimatorsu.h:215
void decimate8_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2478
void decimate4_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2435
static const uint post32
Definition: decimators.h:39
void decimate4_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:291
void decimate32_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:823
void decimate32_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2647
void decimate32_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:1091
static const uint post2
Definition: decimators.h:31
static const uint pre2
Definition: decimators.h:30
static const uint pre4
Definition: decimators.h:32
void decimate64_inf(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:1359
static const uint pre8
Definition: decimators.h:34
void decimate64_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2853
void decimate16_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:683
void decimate1(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:220
static const uint post4
Definition: decimators.h:33
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
static const uint post16
Definition: decimators.h:37
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void decimate2_cen(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:2407
void decimate64_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:1883
void decimate8_sup(SampleVector::iterator *it, const T *buf, qint32 len)
Definition: decimatorsu.h:467
static const uint post64
Definition: decimators.h:41