18 #ifndef INCLUDE_GPL_DSP_DECIMATORS_H_ 19 #define INCLUDE_GPL_DSP_DECIMATORS_H_ 24 #define DECIMATORS_HB_FILTER_ORDER 64 26 template<u
int SdrBits, u
int InputBits>
29 static const uint
pre1 = 0;
30 static const uint
pre2 = 0;
32 static const uint
pre4 = 0;
34 static const uint
pre8 = 0;
47 static const uint
pre1 = 0;
48 static const uint
pre2 = 0;
50 static const uint
pre4 = 0;
52 static const uint
pre8 = 0;
65 static const uint
pre1 = 0;
66 static const uint
pre2 = 0;
68 static const uint
pre4 = 0;
70 static const uint
pre8 = 0;
83 static const uint
pre1 = 0;
84 static const uint
pre2 = 0;
86 static const uint
pre4 = 0;
88 static const uint
pre8 = 0;
203 #pragma pack(push, 1) 255 #pragma pack(push, 1) 264 #pragma pack(push, 1) 269 #pragma pack(push, 1) 279 operator qint32()
const {
309 operator qint32()
const {
321 #pragma pack(push, 1) 330 #pragma pack(push, 1) 335 #pragma pack(push, 1) 346 operator qint64()
const {
378 operator qint64()
const {
391 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
396 void decimate1(SampleVector::iterator* it,
const T* buf, qint32 len);
398 void decimate2_u(SampleVector::iterator* it,
const T* buf, qint32 len);
399 void decimate2_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
400 void decimate2_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
401 void decimate2_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
403 void decimate4_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
404 void decimate4_inf_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
405 void decimate4_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
406 void decimate4_sup_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
407 void decimate4_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
409 void decimate8_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
410 void decimate8_inf_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
411 void decimate8_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
412 void decimate8_sup_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
413 void decimate8_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
415 void decimate16_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
416 void decimate16_inf_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
417 void decimate16_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
418 void decimate16_sup_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
419 void decimate16_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
421 void decimate32_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
422 void decimate32_inf_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
423 void decimate32_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
424 void decimate32_sup_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
425 void decimate32_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
427 void decimate64_inf(SampleVector::iterator* it,
const T* buf, qint32 len);
428 void decimate64_inf_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
429 void decimate64_sup(SampleVector::iterator* it,
const T* buf, qint32 len);
430 void decimate64_sup_txsync(SampleVector::iterator* it,
const T* buf, qint32 len);
431 void decimate64_cen(SampleVector::iterator* it,
const T* buf, qint32 len);
434 void decimate1(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
435 void decimate2_u(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
436 void decimate2_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
437 void decimate4_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
438 void decimate8_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
439 void decimate16_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
440 void decimate32_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
441 void decimate64_cen(SampleVector::iterator* it,
const T* bufI,
const T* bufQ, qint32 len);
444 #ifdef SDR_RX_SAMPLE_24BIT 461 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
466 for (
int pos = 0; pos < len - 1; pos += 2)
476 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
479 StorageType xreal, yimag;
481 for (
int pos = 0; pos < len - 7; pos += 8)
497 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
502 for (
int pos = 0; pos < len - 7; pos += 8)
504 m_decimator2.myDecimateInf(
525 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
530 for (
int pos = 0; pos < len - 7; pos += 8)
532 m_decimator2.myDecimateSup(
553 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
558 for (
int pos = 0; pos < len - 7; pos += 8)
560 m_decimator2.myDecimateCen(
581 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
584 StorageType buf2[8], buf4[4];
586 for (
int pos = 0; pos < len - 15; pos += 16)
588 m_decimator2.myDecimateInf(
599 m_decimator2.myDecimateInf(
610 m_decimator4.myDecimateSup(
631 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
634 StorageType buf2[8], buf4[4];
636 for (
int pos = 0; pos < len - 15; pos += 16)
638 m_decimator2.myDecimateInf(
649 m_decimator2.myDecimateInf(
660 m_decimator4.myDecimateInf(
681 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
684 StorageType buf2[8], buf4[4];
686 for (
int pos = 0; pos < len - 15; pos += 16)
688 m_decimator2.myDecimateSup(
699 m_decimator2.myDecimateSup(
710 m_decimator4.myDecimateInf(
731 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
734 StorageType buf2[8], buf4[4];
736 for (
int pos = 0; pos < len - 15; pos += 16)
738 m_decimator2.myDecimateSup(
749 m_decimator2.myDecimateSup(
760 m_decimator4.myDecimateSup(
781 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
784 StorageType buf2[8], buf4[4];
786 for (
int pos = 0; pos < len - 15; pos += 16)
788 m_decimator2.myDecimateCen(
799 m_decimator2.myDecimateCen(
810 m_decimator4.myDecimateCen(
824 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
827 StorageType buf2[16], buf4[8], buf8[4];
829 for (
int pos = 0; pos < len - 31; pos += 32)
831 m_decimator2.myDecimateInf(
842 m_decimator2.myDecimateInf(
853 m_decimator2.myDecimateInf(
864 m_decimator2.myDecimateInf(
875 m_decimator4.myDecimateSup(
879 m_decimator4.myDecimateSup(
883 m_decimator8.myDecimateCen(
897 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
900 StorageType buf2[16], buf4[8], buf8[4];
902 for (
int pos = 0; pos < len - 31; pos += 32)
904 for (
int i = 0;
i < 4;
i++)
906 m_decimator2.myDecimateInf(
918 m_decimator4.myDecimateInf(
922 m_decimator4.myDecimateInf(
926 m_decimator8.myDecimateSup(
940 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
943 StorageType buf2[16], buf4[8], buf8[4];
945 for (
int pos = 0; pos < len - 31; pos += 32)
947 m_decimator2.myDecimateSup(
958 m_decimator2.myDecimateSup(
969 m_decimator2.myDecimateSup(
980 m_decimator2.myDecimateSup(
991 m_decimator4.myDecimateInf(
995 m_decimator4.myDecimateInf(
999 m_decimator8.myDecimateCen(
1013 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1016 StorageType buf2[16], buf4[8], buf8[4];
1018 for (
int pos = 0; pos < len - 31; pos += 32)
1020 for (
int i = 0;
i < 4;
i++)
1022 m_decimator2.myDecimateSup(
1034 m_decimator4.myDecimateSup(
1038 m_decimator4.myDecimateSup(
1042 m_decimator8.myDecimateInf(
1056 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1059 StorageType intbuf[8];
1061 for (
int pos = 0; pos < len - 15; pos += 16)
1064 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre8;
1065 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre8;
1066 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre8;
1067 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre8;
1068 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre8;
1069 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre8;
1070 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre8;
1072 m_decimator2.myDecimate(
1073 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre8,
1074 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre8,
1077 m_decimator2.myDecimate(
1078 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre8,
1079 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre8,
1082 m_decimator2.myDecimate(
1083 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre8,
1084 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre8,
1087 m_decimator2.myDecimate(
1088 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre8,
1089 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre8,
1093 m_decimator4.myDecimate(
1098 m_decimator4.myDecimate(
1104 m_decimator8.myDecimate(
1116 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1119 StorageType buf2[32], buf4[16], buf8[8], buf16[4];
1121 for (
int pos = 0; pos < len - 63; pos += 64)
1123 m_decimator2.myDecimateInf(
1134 m_decimator2.myDecimateInf(
1145 m_decimator2.myDecimateInf(
1156 m_decimator2.myDecimateInf(
1167 m_decimator2.myDecimateInf(
1178 m_decimator2.myDecimateInf(
1189 m_decimator2.myDecimateInf(
1200 m_decimator2.myDecimateInf(
1211 m_decimator4.myDecimateSup(
1215 m_decimator4.myDecimateSup(
1219 m_decimator4.myDecimateSup(
1223 m_decimator4.myDecimateSup(
1227 m_decimator8.myDecimateSup(
1231 m_decimator8.myDecimateSup(
1235 m_decimator16.myDecimateCen(
1249 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1252 StorageType buf2[32], buf4[16], buf8[8], buf16[4];
1254 for (
int pos = 0; pos < len - 63; pos += 64)
1256 for (
int i = 0;
i < 8;
i++)
1258 m_decimator2.myDecimateInf(
1270 for (
int i = 0;
i < 4;
i++)
1272 m_decimator4.myDecimateInf(
1277 m_decimator8.myDecimateSup(
1281 m_decimator8.myDecimateSup(
1285 m_decimator16.myDecimateInf(
1299 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1302 StorageType buf2[32], buf4[16], buf8[8], buf16[4];
1304 for (
int pos = 0; pos < len - 63; pos += 64)
1306 m_decimator2.myDecimateSup(
1317 m_decimator2.myDecimateSup(
1328 m_decimator2.myDecimateSup(
1339 m_decimator2.myDecimateSup(
1350 m_decimator2.myDecimateSup(
1361 m_decimator2.myDecimateSup(
1372 m_decimator2.myDecimateSup(
1383 m_decimator2.myDecimateSup(
1394 m_decimator4.myDecimateInf(
1398 m_decimator4.myDecimateInf(
1402 m_decimator4.myDecimateInf(
1406 m_decimator4.myDecimateInf(
1410 m_decimator8.myDecimateInf(
1414 m_decimator8.myDecimateInf(
1418 m_decimator16.myDecimateCen(
1432 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1435 StorageType buf2[32], buf4[16], buf8[8], buf16[4];
1437 for (
int pos = 0; pos < len - 63; pos += 64)
1439 for (
int i = 0;
i < 8;
i++)
1441 m_decimator2.myDecimateSup(
1453 for (
int i = 0;
i < 4;
i++)
1455 m_decimator4.myDecimateSup(
1460 m_decimator8.myDecimateInf(
1464 m_decimator8.myDecimateInf(
1468 m_decimator16.myDecimateSup(
1482 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1485 StorageType intbuf[16];
1487 for (
int pos = 0; pos < len - 31; pos += 32)
1490 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre16;
1491 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre16;
1492 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre16;
1493 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre16;
1494 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre16;
1495 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre16;
1496 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre16;
1497 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre16;
1498 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre16;
1499 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre16;
1500 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre16;
1501 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre16;
1502 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre16;
1503 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre16;
1504 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre16;
1506 m_decimator2.myDecimate(
1507 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre16,
1508 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre16,
1511 m_decimator2.myDecimate(
1512 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre16,
1513 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre16,
1516 m_decimator2.myDecimate(
1517 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre16,
1518 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre16,
1521 m_decimator2.myDecimate(
1522 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre16,
1523 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre16,
1526 m_decimator2.myDecimate(
1527 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre16,
1528 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre16,
1531 m_decimator2.myDecimate(
1532 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre16,
1533 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre16,
1536 m_decimator2.myDecimate(
1537 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre16,
1538 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre16,
1541 m_decimator2.myDecimate(
1542 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre16,
1543 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre16,
1547 m_decimator4.myDecimate(
1552 m_decimator4.myDecimate(
1557 m_decimator4.myDecimate(
1562 m_decimator4.myDecimate(
1568 m_decimator8.myDecimate(
1573 m_decimator8.myDecimate(
1579 m_decimator16.myDecimate(
1591 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1594 StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
1596 for (
int pos = 0; pos < len - 127; pos += 128)
1598 m_decimator2.myDecimateInf(
1609 m_decimator2.myDecimateInf(
1620 m_decimator2.myDecimateInf(
1631 m_decimator2.myDecimateInf(
1642 m_decimator2.myDecimateInf(
1653 m_decimator2.myDecimateInf(
1664 m_decimator2.myDecimateInf(
1675 m_decimator2.myDecimateInf(
1686 m_decimator2.myDecimateInf(
1697 m_decimator2.myDecimateInf(
1708 m_decimator2.myDecimateInf(
1719 m_decimator2.myDecimateInf(
1730 m_decimator2.myDecimateInf(
1741 m_decimator2.myDecimateInf(
1752 m_decimator2.myDecimateInf(
1763 m_decimator2.myDecimateInf(
1774 m_decimator4.myDecimateSup(
1778 m_decimator4.myDecimateSup(
1782 m_decimator4.myDecimateSup(
1786 m_decimator4.myDecimateSup(
1790 m_decimator4.myDecimateSup(
1794 m_decimator4.myDecimateSup(
1798 m_decimator4.myDecimateSup(
1802 m_decimator4.myDecimateSup(
1806 m_decimator8.myDecimateSup(
1810 m_decimator8.myDecimateSup(
1814 m_decimator8.myDecimateSup(
1818 m_decimator8.myDecimateSup(
1822 m_decimator16.myDecimateSup(
1826 m_decimator16.myDecimateSup(
1830 m_decimator32.myDecimateCen(
1844 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1847 StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
1849 for (
int pos = 0; pos < len - 127; pos += 128)
1851 for (
int i = 0;
i < 16;
i++)
1853 m_decimator2.myDecimateInf(
1865 for (
int i = 0;
i < 8;
i++)
1867 m_decimator4.myDecimateInf(
1872 for (
int i = 0;
i < 4;
i++)
1874 m_decimator8.myDecimateSup(
1879 m_decimator16.myDecimateInf(
1883 m_decimator16.myDecimateInf(
1887 m_decimator32.myDecimateSup(
1901 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
1904 StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
1906 for (
int pos = 0; pos < len - 127; pos += 128)
1908 m_decimator2.myDecimateSup(
1919 m_decimator2.myDecimateSup(
1930 m_decimator2.myDecimateSup(
1941 m_decimator2.myDecimateSup(
1952 m_decimator2.myDecimateSup(
1963 m_decimator2.myDecimateSup(
1974 m_decimator2.myDecimateSup(
1985 m_decimator2.myDecimateSup(
1996 m_decimator2.myDecimateSup(
2007 m_decimator2.myDecimateSup(
2018 m_decimator2.myDecimateSup(
2029 m_decimator2.myDecimateSup(
2040 m_decimator2.myDecimateSup(
2051 m_decimator2.myDecimateSup(
2062 m_decimator2.myDecimateSup(
2073 m_decimator2.myDecimateSup(
2084 m_decimator4.myDecimateInf(
2088 m_decimator4.myDecimateInf(
2092 m_decimator4.myDecimateInf(
2096 m_decimator4.myDecimateInf(
2100 m_decimator4.myDecimateInf(
2104 m_decimator4.myDecimateInf(
2108 m_decimator4.myDecimateInf(
2112 m_decimator4.myDecimateInf(
2116 m_decimator8.myDecimateInf(
2120 m_decimator8.myDecimateInf(
2124 m_decimator8.myDecimateInf(
2128 m_decimator8.myDecimateInf(
2132 m_decimator16.myDecimateInf(
2136 m_decimator16.myDecimateInf(
2140 m_decimator32.myDecimateCen(
2154 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
2157 StorageType buf2[64], buf4[32], buf8[16], buf16[8], buf32[4];
2159 for (
int pos = 0; pos < len - 127; pos += 128)
2161 for (
int i = 0;
i < 16;
i++)
2163 m_decimator2.myDecimateSup(
2175 for (
int i = 0;
i < 8;
i++)
2177 m_decimator4.myDecimateSup(
2182 for (
int i = 0;
i < 4;
i++)
2184 m_decimator8.myDecimateInf(
2189 m_decimator16.myDecimateSup(
2193 m_decimator16.myDecimateSup(
2197 m_decimator32.myDecimateInf(
2211 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
2214 StorageType intbuf[32];
2216 for (
int pos = 0; pos < len - 63; pos += 64)
2219 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre32;
2220 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre32;
2221 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre32;
2222 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre32;
2223 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre32;
2224 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre32;
2225 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre32;
2226 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre32;
2227 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre32;
2228 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre32;
2229 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre32;
2230 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre32;
2231 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre32;
2232 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre32;
2233 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre32;
2234 intbuf[16] = buf[pos+34] << decimation_shifts<SdrBits, InputBits>::pre32;
2235 intbuf[17] = buf[pos+35] << decimation_shifts<SdrBits, InputBits>::pre32;
2236 intbuf[18] = buf[pos+38] << decimation_shifts<SdrBits, InputBits>::pre32;
2237 intbuf[19] = buf[pos+39] << decimation_shifts<SdrBits, InputBits>::pre32;
2238 intbuf[20] = buf[pos+42] << decimation_shifts<SdrBits, InputBits>::pre32;
2239 intbuf[21] = buf[pos+43] << decimation_shifts<SdrBits, InputBits>::pre32;
2240 intbuf[22] = buf[pos+46] << decimation_shifts<SdrBits, InputBits>::pre32;
2241 intbuf[23] = buf[pos+47] << decimation_shifts<SdrBits, InputBits>::pre32;
2242 intbuf[24] = buf[pos+50] << decimation_shifts<SdrBits, InputBits>::pre32;
2243 intbuf[25] = buf[pos+51] << decimation_shifts<SdrBits, InputBits>::pre32;
2244 intbuf[26] = buf[pos+54] << decimation_shifts<SdrBits, InputBits>::pre32;
2245 intbuf[27] = buf[pos+55] << decimation_shifts<SdrBits, InputBits>::pre32;
2246 intbuf[28] = buf[pos+58] << decimation_shifts<SdrBits, InputBits>::pre32;
2247 intbuf[29] = buf[pos+59] << decimation_shifts<SdrBits, InputBits>::pre32;
2248 intbuf[30] = buf[pos+62] << decimation_shifts<SdrBits, InputBits>::pre32;
2249 intbuf[31] = buf[pos+63] << decimation_shifts<SdrBits, InputBits>::pre32;
2251 m_decimator2.myDecimate(
2252 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre32,
2253 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre32,
2256 m_decimator2.myDecimate(
2257 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre32,
2258 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre32,
2261 m_decimator2.myDecimate(
2262 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre32,
2263 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre32,
2266 m_decimator2.myDecimate(
2267 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre32,
2268 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre32,
2271 m_decimator2.myDecimate(
2272 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre32,
2273 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre32,
2276 m_decimator2.myDecimate(
2277 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre32,
2278 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre32,
2281 m_decimator2.myDecimate(
2282 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre32,
2283 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre32,
2286 m_decimator2.myDecimate(
2287 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre32,
2288 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre32,
2291 m_decimator2.myDecimate(
2292 buf[pos+32] << decimation_shifts<SdrBits, InputBits>::pre32,
2293 buf[pos+33] << decimation_shifts<SdrBits, InputBits>::pre32,
2296 m_decimator2.myDecimate(
2297 buf[pos+36] << decimation_shifts<SdrBits, InputBits>::pre32,
2298 buf[pos+37] << decimation_shifts<SdrBits, InputBits>::pre32,
2301 m_decimator2.myDecimate(
2302 buf[pos+40] << decimation_shifts<SdrBits, InputBits>::pre32,
2303 buf[pos+41] << decimation_shifts<SdrBits, InputBits>::pre32,
2306 m_decimator2.myDecimate(
2307 buf[pos+44] << decimation_shifts<SdrBits, InputBits>::pre32,
2308 buf[pos+45] << decimation_shifts<SdrBits, InputBits>::pre32,
2311 m_decimator2.myDecimate(
2312 buf[pos+48] << decimation_shifts<SdrBits, InputBits>::pre32,
2313 buf[pos+49] << decimation_shifts<SdrBits, InputBits>::pre32,
2316 m_decimator2.myDecimate(
2317 buf[pos+52] << decimation_shifts<SdrBits, InputBits>::pre32,
2318 buf[pos+53] << decimation_shifts<SdrBits, InputBits>::pre32,
2321 m_decimator2.myDecimate(
2322 buf[pos+56] << decimation_shifts<SdrBits, InputBits>::pre32,
2323 buf[pos+57] << decimation_shifts<SdrBits, InputBits>::pre32,
2326 m_decimator2.myDecimate(
2327 buf[pos+60] << decimation_shifts<SdrBits, InputBits>::pre32,
2328 buf[pos+61] << decimation_shifts<SdrBits, InputBits>::pre32,
2332 m_decimator4.myDecimate(
2337 m_decimator4.myDecimate(
2342 m_decimator4.myDecimate(
2347 m_decimator4.myDecimate(
2352 m_decimator4.myDecimate(
2357 m_decimator4.myDecimate(
2362 m_decimator4.myDecimate(
2367 m_decimator4.myDecimate(
2373 m_decimator8.myDecimate(
2378 m_decimator8.myDecimate(
2383 m_decimator8.myDecimate(
2388 m_decimator8.myDecimate(
2394 m_decimator16.myDecimate(
2399 m_decimator16.myDecimate(
2405 m_decimator32.myDecimate(
2417 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
2420 StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
2422 for (
int pos = 0; pos < len - 255; pos += 256)
2424 m_decimator2.myDecimateInf(
2435 m_decimator2.myDecimateInf(
2446 m_decimator2.myDecimateInf(
2457 m_decimator2.myDecimateInf(
2468 m_decimator2.myDecimateInf(
2479 m_decimator2.myDecimateInf(
2490 m_decimator2.myDecimateInf(
2501 m_decimator2.myDecimateInf(
2512 m_decimator2.myDecimateInf(
2523 m_decimator2.myDecimateInf(
2534 m_decimator2.myDecimateInf(
2545 m_decimator2.myDecimateInf(
2556 m_decimator2.myDecimateInf(
2567 m_decimator2.myDecimateInf(
2578 m_decimator2.myDecimateInf(
2589 m_decimator2.myDecimateInf(
2600 m_decimator2.myDecimateInf(
2611 m_decimator2.myDecimateInf(
2622 m_decimator2.myDecimateInf(
2633 m_decimator2.myDecimateInf(
2644 m_decimator2.myDecimateInf(
2655 m_decimator2.myDecimateInf(
2666 m_decimator2.myDecimateInf(
2677 m_decimator2.myDecimateInf(
2688 m_decimator2.myDecimateInf(
2699 m_decimator2.myDecimateInf(
2710 m_decimator2.myDecimateInf(
2721 m_decimator2.myDecimateInf(
2732 m_decimator2.myDecimateInf(
2743 m_decimator2.myDecimateInf(
2754 m_decimator2.myDecimateInf(
2765 m_decimator2.myDecimateInf(
2776 m_decimator4.myDecimateSup(
2780 m_decimator4.myDecimateSup(
2784 m_decimator4.myDecimateSup(
2788 m_decimator4.myDecimateSup(
2792 m_decimator4.myDecimateSup(
2796 m_decimator4.myDecimateSup(
2800 m_decimator4.myDecimateSup(
2804 m_decimator4.myDecimateSup(
2808 m_decimator4.myDecimateSup(
2812 m_decimator4.myDecimateSup(
2816 m_decimator4.myDecimateSup(
2820 m_decimator4.myDecimateSup(
2824 m_decimator4.myDecimateSup(
2828 m_decimator4.myDecimateSup(
2832 m_decimator4.myDecimateSup(
2836 m_decimator4.myDecimateSup(
2840 m_decimator8.myDecimateSup(
2844 m_decimator8.myDecimateSup(
2848 m_decimator8.myDecimateSup(
2852 m_decimator8.myDecimateSup(
2856 m_decimator8.myDecimateSup(
2860 m_decimator8.myDecimateSup(
2864 m_decimator8.myDecimateSup(
2868 m_decimator8.myDecimateSup(
2872 m_decimator16.myDecimateSup(
2876 m_decimator16.myDecimateSup(
2880 m_decimator16.myDecimateSup(
2884 m_decimator16.myDecimateSup(
2888 m_decimator32.myDecimateSup(
2892 m_decimator32.myDecimateSup(
2896 m_decimator64.myDecimateCen(
2910 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
2913 StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
2915 for (
int pos = 0; pos < len - 255; pos += 256)
2917 for (
int i = 0;
i < 32;
i++)
2919 m_decimator2.myDecimateInf(
2931 for (
int i = 0;
i < 16;
i++)
2933 m_decimator4.myDecimateSup(
2938 for (
int i = 0;
i < 8;
i++)
2940 m_decimator8.myDecimateInf(
2945 for (
int i = 0;
i < 4;
i++)
2947 m_decimator16.myDecimateSup(
2952 m_decimator32.myDecimateInf(
2956 m_decimator32.myDecimateInf(
2960 m_decimator64.myDecimateSup(
2974 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
2977 StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
2979 for (
int pos = 0; pos < len - 255; pos += 256)
2981 for (
int i = 0;
i < 32;
i++)
2983 m_decimator2.myDecimateInf(
2995 for (
int i = 0;
i < 16;
i++)
2997 m_decimator4.myDecimateSup(
3002 for (
int i = 0;
i < 8;
i++)
3004 m_decimator8.myDecimateInf(
3009 for (
int i = 0;
i < 4;
i++)
3011 m_decimator16.myDecimateSup(
3016 m_decimator32.myDecimateInf(
3020 m_decimator32.myDecimateInf(
3024 m_decimator64.myDecimateSup(
3039 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3042 StorageType intbuf[64];
3044 for (
int pos = 0; pos < len - 127; pos += 128)
3047 intbuf[1] = buf[pos+3] << decimation_shifts<SdrBits, InputBits>::pre64;
3048 intbuf[2] = buf[pos+6] << decimation_shifts<SdrBits, InputBits>::pre64;
3049 intbuf[3] = buf[pos+7] << decimation_shifts<SdrBits, InputBits>::pre64;
3050 intbuf[4] = buf[pos+10] << decimation_shifts<SdrBits, InputBits>::pre64;
3051 intbuf[5] = buf[pos+11] << decimation_shifts<SdrBits, InputBits>::pre64;
3052 intbuf[6] = buf[pos+14] << decimation_shifts<SdrBits, InputBits>::pre64;
3053 intbuf[7] = buf[pos+15] << decimation_shifts<SdrBits, InputBits>::pre64;
3054 intbuf[8] = buf[pos+18] << decimation_shifts<SdrBits, InputBits>::pre64;
3055 intbuf[9] = buf[pos+19] << decimation_shifts<SdrBits, InputBits>::pre64;
3056 intbuf[10] = buf[pos+22] << decimation_shifts<SdrBits, InputBits>::pre64;
3057 intbuf[11] = buf[pos+23] << decimation_shifts<SdrBits, InputBits>::pre64;
3058 intbuf[12] = buf[pos+26] << decimation_shifts<SdrBits, InputBits>::pre64;
3059 intbuf[13] = buf[pos+27] << decimation_shifts<SdrBits, InputBits>::pre64;
3060 intbuf[14] = buf[pos+30] << decimation_shifts<SdrBits, InputBits>::pre64;
3061 intbuf[15] = buf[pos+31] << decimation_shifts<SdrBits, InputBits>::pre64;
3062 intbuf[16] = buf[pos+34] << decimation_shifts<SdrBits, InputBits>::pre64;
3063 intbuf[17] = buf[pos+35] << decimation_shifts<SdrBits, InputBits>::pre64;
3064 intbuf[18] = buf[pos+38] << decimation_shifts<SdrBits, InputBits>::pre64;
3065 intbuf[19] = buf[pos+39] << decimation_shifts<SdrBits, InputBits>::pre64;
3066 intbuf[20] = buf[pos+42] << decimation_shifts<SdrBits, InputBits>::pre64;
3067 intbuf[21] = buf[pos+43] << decimation_shifts<SdrBits, InputBits>::pre64;
3068 intbuf[22] = buf[pos+46] << decimation_shifts<SdrBits, InputBits>::pre64;
3069 intbuf[23] = buf[pos+47] << decimation_shifts<SdrBits, InputBits>::pre64;
3070 intbuf[24] = buf[pos+50] << decimation_shifts<SdrBits, InputBits>::pre64;
3071 intbuf[25] = buf[pos+51] << decimation_shifts<SdrBits, InputBits>::pre64;
3072 intbuf[26] = buf[pos+54] << decimation_shifts<SdrBits, InputBits>::pre64;
3073 intbuf[27] = buf[pos+55] << decimation_shifts<SdrBits, InputBits>::pre64;
3074 intbuf[28] = buf[pos+58] << decimation_shifts<SdrBits, InputBits>::pre64;
3075 intbuf[29] = buf[pos+59] << decimation_shifts<SdrBits, InputBits>::pre64;
3076 intbuf[30] = buf[pos+62] << decimation_shifts<SdrBits, InputBits>::pre64;
3077 intbuf[31] = buf[pos+63] << decimation_shifts<SdrBits, InputBits>::pre64;
3079 intbuf[32] = buf[pos+66] << decimation_shifts<SdrBits, InputBits>::pre64;
3080 intbuf[33] = buf[pos+67] << decimation_shifts<SdrBits, InputBits>::pre64;
3081 intbuf[34] = buf[pos+70] << decimation_shifts<SdrBits, InputBits>::pre64;
3082 intbuf[35] = buf[pos+71] << decimation_shifts<SdrBits, InputBits>::pre64;
3083 intbuf[36] = buf[pos+74] << decimation_shifts<SdrBits, InputBits>::pre64;
3084 intbuf[37] = buf[pos+75] << decimation_shifts<SdrBits, InputBits>::pre64;
3085 intbuf[38] = buf[pos+78] << decimation_shifts<SdrBits, InputBits>::pre64;
3086 intbuf[39] = buf[pos+79] << decimation_shifts<SdrBits, InputBits>::pre64;
3087 intbuf[40] = buf[pos+82] << decimation_shifts<SdrBits, InputBits>::pre64;
3088 intbuf[41] = buf[pos+83] << decimation_shifts<SdrBits, InputBits>::pre64;
3089 intbuf[42] = buf[pos+86] << decimation_shifts<SdrBits, InputBits>::pre64;
3090 intbuf[43] = buf[pos+87] << decimation_shifts<SdrBits, InputBits>::pre64;
3091 intbuf[44] = buf[pos+90] << decimation_shifts<SdrBits, InputBits>::pre64;
3092 intbuf[45] = buf[pos+91] << decimation_shifts<SdrBits, InputBits>::pre64;
3093 intbuf[46] = buf[pos+94] << decimation_shifts<SdrBits, InputBits>::pre64;
3094 intbuf[47] = buf[pos+95] << decimation_shifts<SdrBits, InputBits>::pre64;
3095 intbuf[48] = buf[pos+98] << decimation_shifts<SdrBits, InputBits>::pre64;
3096 intbuf[49] = buf[pos+99] << decimation_shifts<SdrBits, InputBits>::pre64;
3097 intbuf[50] = buf[pos+102] << decimation_shifts<SdrBits, InputBits>::pre64;
3098 intbuf[51] = buf[pos+103] << decimation_shifts<SdrBits, InputBits>::pre64;
3099 intbuf[52] = buf[pos+106] << decimation_shifts<SdrBits, InputBits>::pre64;
3100 intbuf[53] = buf[pos+107] << decimation_shifts<SdrBits, InputBits>::pre64;
3101 intbuf[54] = buf[pos+110] << decimation_shifts<SdrBits, InputBits>::pre64;
3102 intbuf[55] = buf[pos+111] << decimation_shifts<SdrBits, InputBits>::pre64;
3103 intbuf[56] = buf[pos+114] << decimation_shifts<SdrBits, InputBits>::pre64;
3104 intbuf[57] = buf[pos+115] << decimation_shifts<SdrBits, InputBits>::pre64;
3105 intbuf[58] = buf[pos+118] << decimation_shifts<SdrBits, InputBits>::pre64;
3106 intbuf[59] = buf[pos+119] << decimation_shifts<SdrBits, InputBits>::pre64;
3107 intbuf[60] = buf[pos+122] << decimation_shifts<SdrBits, InputBits>::pre64;
3108 intbuf[61] = buf[pos+123] << decimation_shifts<SdrBits, InputBits>::pre64;
3109 intbuf[62] = buf[pos+126] << decimation_shifts<SdrBits, InputBits>::pre64;
3110 intbuf[63] = buf[pos+127] << decimation_shifts<SdrBits, InputBits>::pre64;
3112 m_decimator2.myDecimate(
3113 buf[pos+0] << decimation_shifts<SdrBits, InputBits>::pre64,
3114 buf[pos+1] << decimation_shifts<SdrBits, InputBits>::pre64,
3117 m_decimator2.myDecimate(
3118 buf[pos+4] << decimation_shifts<SdrBits, InputBits>::pre64,
3119 buf[pos+5] << decimation_shifts<SdrBits, InputBits>::pre64,
3122 m_decimator2.myDecimate(
3123 buf[pos+8] << decimation_shifts<SdrBits, InputBits>::pre64,
3124 buf[pos+9] << decimation_shifts<SdrBits, InputBits>::pre64,
3127 m_decimator2.myDecimate(
3128 buf[pos+12] << decimation_shifts<SdrBits, InputBits>::pre64,
3129 buf[pos+13] << decimation_shifts<SdrBits, InputBits>::pre64,
3132 m_decimator2.myDecimate(
3133 buf[pos+16] << decimation_shifts<SdrBits, InputBits>::pre64,
3134 buf[pos+17] << decimation_shifts<SdrBits, InputBits>::pre64,
3137 m_decimator2.myDecimate(
3138 buf[pos+20] << decimation_shifts<SdrBits, InputBits>::pre64,
3139 buf[pos+21] << decimation_shifts<SdrBits, InputBits>::pre64,
3142 m_decimator2.myDecimate(
3143 buf[pos+24] << decimation_shifts<SdrBits, InputBits>::pre64,
3144 buf[pos+25] << decimation_shifts<SdrBits, InputBits>::pre64,
3147 m_decimator2.myDecimate(
3148 buf[pos+28] << decimation_shifts<SdrBits, InputBits>::pre64,
3149 buf[pos+29] << decimation_shifts<SdrBits, InputBits>::pre64,
3152 m_decimator2.myDecimate(
3153 buf[pos+32] << decimation_shifts<SdrBits, InputBits>::pre64,
3154 buf[pos+33] << decimation_shifts<SdrBits, InputBits>::pre64,
3157 m_decimator2.myDecimate(
3158 buf[pos+36] << decimation_shifts<SdrBits, InputBits>::pre64,
3159 buf[pos+37] << decimation_shifts<SdrBits, InputBits>::pre64,
3162 m_decimator2.myDecimate(
3163 buf[pos+40] << decimation_shifts<SdrBits, InputBits>::pre64,
3164 buf[pos+41] << decimation_shifts<SdrBits, InputBits>::pre64,
3167 m_decimator2.myDecimate(
3168 buf[pos+44] << decimation_shifts<SdrBits, InputBits>::pre64,
3169 buf[pos+45] << decimation_shifts<SdrBits, InputBits>::pre64,
3172 m_decimator2.myDecimate(
3173 buf[pos+48] << decimation_shifts<SdrBits, InputBits>::pre64,
3174 buf[pos+49] << decimation_shifts<SdrBits, InputBits>::pre64,
3177 m_decimator2.myDecimate(
3178 buf[pos+52] << decimation_shifts<SdrBits, InputBits>::pre64,
3179 buf[pos+53] << decimation_shifts<SdrBits, InputBits>::pre64,
3182 m_decimator2.myDecimate(
3183 buf[pos+56] << decimation_shifts<SdrBits, InputBits>::pre64,
3184 buf[pos+57] << decimation_shifts<SdrBits, InputBits>::pre64,
3187 m_decimator2.myDecimate(
3188 buf[pos+60] << decimation_shifts<SdrBits, InputBits>::pre64,
3189 buf[pos+61] << decimation_shifts<SdrBits, InputBits>::pre64,
3192 m_decimator2.myDecimate(
3193 buf[pos+64] << decimation_shifts<SdrBits, InputBits>::pre64,
3194 buf[pos+65] << decimation_shifts<SdrBits, InputBits>::pre64,
3197 m_decimator2.myDecimate(
3198 buf[pos+68] << decimation_shifts<SdrBits, InputBits>::pre64,
3199 buf[pos+69] << decimation_shifts<SdrBits, InputBits>::pre64,
3202 m_decimator2.myDecimate(
3203 buf[pos+72] << decimation_shifts<SdrBits, InputBits>::pre64,
3204 buf[pos+73] << decimation_shifts<SdrBits, InputBits>::pre64,
3207 m_decimator2.myDecimate(
3208 buf[pos+76] << decimation_shifts<SdrBits, InputBits>::pre64,
3209 buf[pos+77] << decimation_shifts<SdrBits, InputBits>::pre64,
3212 m_decimator2.myDecimate(
3213 buf[pos+80] << decimation_shifts<SdrBits, InputBits>::pre64,
3214 buf[pos+81] << decimation_shifts<SdrBits, InputBits>::pre64,
3217 m_decimator2.myDecimate(
3218 buf[pos+84] << decimation_shifts<SdrBits, InputBits>::pre64,
3219 buf[pos+85] << decimation_shifts<SdrBits, InputBits>::pre64,
3222 m_decimator2.myDecimate(
3223 buf[pos+88] << decimation_shifts<SdrBits, InputBits>::pre64,
3224 buf[pos+89] << decimation_shifts<SdrBits, InputBits>::pre64,
3227 m_decimator2.myDecimate(
3228 buf[pos+92] << decimation_shifts<SdrBits, InputBits>::pre64,
3229 buf[pos+93] << decimation_shifts<SdrBits, InputBits>::pre64,
3232 m_decimator2.myDecimate(
3233 buf[pos+96] << decimation_shifts<SdrBits, InputBits>::pre64,
3234 buf[pos+97] << decimation_shifts<SdrBits, InputBits>::pre64,
3237 m_decimator2.myDecimate(
3238 buf[pos+100] << decimation_shifts<SdrBits, InputBits>::pre64,
3239 buf[pos+101] << decimation_shifts<SdrBits, InputBits>::pre64,
3242 m_decimator2.myDecimate(
3243 buf[pos+104] << decimation_shifts<SdrBits, InputBits>::pre64,
3244 buf[pos+105] << decimation_shifts<SdrBits, InputBits>::pre64,
3247 m_decimator2.myDecimate(
3248 buf[pos+108] << decimation_shifts<SdrBits, InputBits>::pre64,
3249 buf[pos+109] << decimation_shifts<SdrBits, InputBits>::pre64,
3252 m_decimator2.myDecimate(
3253 buf[pos+112] << decimation_shifts<SdrBits, InputBits>::pre64,
3254 buf[pos+113] << decimation_shifts<SdrBits, InputBits>::pre64,
3257 m_decimator2.myDecimate(
3258 buf[pos+116] << decimation_shifts<SdrBits, InputBits>::pre64,
3259 buf[pos+117] << decimation_shifts<SdrBits, InputBits>::pre64,
3262 m_decimator2.myDecimate(
3263 buf[pos+120] << decimation_shifts<SdrBits, InputBits>::pre64,
3264 buf[pos+121] << decimation_shifts<SdrBits, InputBits>::pre64,
3267 m_decimator2.myDecimate(
3268 buf[pos+124] << decimation_shifts<SdrBits, InputBits>::pre64,
3269 buf[pos+125] << decimation_shifts<SdrBits, InputBits>::pre64,
3273 m_decimator4.myDecimate(
3278 m_decimator4.myDecimate(
3283 m_decimator4.myDecimate(
3288 m_decimator4.myDecimate(
3293 m_decimator4.myDecimate(
3298 m_decimator4.myDecimate(
3303 m_decimator4.myDecimate(
3308 m_decimator4.myDecimate(
3313 m_decimator4.myDecimate(
3318 m_decimator4.myDecimate(
3323 m_decimator4.myDecimate(
3328 m_decimator4.myDecimate(
3333 m_decimator4.myDecimate(
3338 m_decimator4.myDecimate(
3343 m_decimator4.myDecimate(
3348 m_decimator4.myDecimate(
3354 m_decimator8.myDecimate(
3359 m_decimator8.myDecimate(
3364 m_decimator8.myDecimate(
3369 m_decimator8.myDecimate(
3374 m_decimator8.myDecimate(
3379 m_decimator8.myDecimate(
3384 m_decimator8.myDecimate(
3389 m_decimator8.myDecimate(
3395 m_decimator16.myDecimate(
3400 m_decimator16.myDecimate(
3405 m_decimator16.myDecimate(
3410 m_decimator16.myDecimate(
3416 m_decimator32.myDecimate(
3421 m_decimator32.myDecimate(
3427 m_decimator64.myDecimate(
3439 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3442 StorageType buf2[128], buf4[64], buf8[32], buf16[16], buf32[8], buf64[4];
3444 for (
int pos = 0; pos < len - 255; pos += 256)
3446 for (
int i = 0;
i < 32;
i++)
3448 m_decimator2.myDecimateSup(
3460 for (
int i = 0;
i < 16;
i++)
3462 m_decimator4.myDecimateInf(
3467 for (
int i = 0;
i < 8;
i++)
3469 m_decimator8.myDecimateSup(
3474 for (
int i = 0;
i < 4;
i++)
3476 m_decimator16.myDecimateInf(
3481 m_decimator32.myDecimateSup(
3485 m_decimator32.myDecimateSup(
3489 m_decimator64.myDecimateInf(
3506 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3509 qint32 xreal, yimag;
3511 for (
int pos = 0; pos < len; pos += 1)
3521 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3524 StorageType xreal, yimag;
3526 for (
int pos = 0; pos < len - 3; pos += 4)
3544 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3547 StorageType intbuf[2];
3549 for (
int pos = 0; pos < len - 1; pos += 2)
3552 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre2;
3554 m_decimator2.myDecimate(
3555 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre2,
3556 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre2,
3566 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3569 StorageType intbuf[4];
3571 for (
int pos = 0; pos < len - 3; pos += 4)
3574 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre4;
3575 intbuf[2] = bufI[pos+3] << decimation_shifts<SdrBits, InputBits>::pre4;
3576 intbuf[3] = bufQ[pos+3] << decimation_shifts<SdrBits, InputBits>::pre4;
3578 m_decimator2.myDecimate(
3579 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre4,
3580 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre4,
3583 m_decimator2.myDecimate(
3584 bufI[pos+2] << decimation_shifts<SdrBits, InputBits>::pre4,
3585 bufQ[pos+2] << decimation_shifts<SdrBits, InputBits>::pre4,
3589 m_decimator4.myDecimate(
3601 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3604 StorageType intbuf[8];
3606 for (
int pos = 0; pos < len - 7; pos += 8)
3609 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre8;
3610 intbuf[2] = bufI[pos+3] << decimation_shifts<SdrBits, InputBits>::pre8;
3611 intbuf[3] = bufQ[pos+3] << decimation_shifts<SdrBits, InputBits>::pre8;
3612 intbuf[4] = bufI[pos+5] << decimation_shifts<SdrBits, InputBits>::pre8;
3613 intbuf[5] = bufQ[pos+5] << decimation_shifts<SdrBits, InputBits>::pre8;
3614 intbuf[6] = bufI[pos+7] << decimation_shifts<SdrBits, InputBits>::pre8;
3615 intbuf[7] = bufQ[pos+7] << decimation_shifts<SdrBits, InputBits>::pre8;
3617 m_decimator2.myDecimate(
3618 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre8,
3619 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre8,
3622 m_decimator2.myDecimate(
3623 bufI[pos+2] << decimation_shifts<SdrBits, InputBits>::pre8,
3624 bufQ[pos+2] << decimation_shifts<SdrBits, InputBits>::pre8,
3627 m_decimator2.myDecimate(
3628 bufI[pos+4] << decimation_shifts<SdrBits, InputBits>::pre8,
3629 bufQ[pos+4] << decimation_shifts<SdrBits, InputBits>::pre8,
3632 m_decimator2.myDecimate(
3633 bufI[pos+6] << decimation_shifts<SdrBits, InputBits>::pre8,
3634 bufQ[pos+6] << decimation_shifts<SdrBits, InputBits>::pre8,
3638 m_decimator4.myDecimate(
3643 m_decimator4.myDecimate(
3649 m_decimator8.myDecimate(
3662 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3665 StorageType intbuf[16];
3667 for (
int pos = 0; pos < len - 15; pos += 16)
3670 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre16;
3671 intbuf[2] = bufI[pos+3] << decimation_shifts<SdrBits, InputBits>::pre16;
3672 intbuf[3] = bufQ[pos+3] << decimation_shifts<SdrBits, InputBits>::pre16;
3673 intbuf[4] = bufI[pos+5] << decimation_shifts<SdrBits, InputBits>::pre16;
3674 intbuf[5] = bufQ[pos+5] << decimation_shifts<SdrBits, InputBits>::pre16;
3675 intbuf[6] = bufI[pos+7] << decimation_shifts<SdrBits, InputBits>::pre16;
3676 intbuf[7] = bufQ[pos+7] << decimation_shifts<SdrBits, InputBits>::pre16;
3677 intbuf[8] = bufI[pos+9] << decimation_shifts<SdrBits, InputBits>::pre16;
3678 intbuf[9] = bufQ[pos+9] << decimation_shifts<SdrBits, InputBits>::pre16;
3679 intbuf[10] = bufI[pos+11] << decimation_shifts<SdrBits, InputBits>::pre16;
3680 intbuf[11] = bufQ[pos+11] << decimation_shifts<SdrBits, InputBits>::pre16;
3681 intbuf[12] = bufI[pos+13] << decimation_shifts<SdrBits, InputBits>::pre16;
3682 intbuf[13] = bufQ[pos+13] << decimation_shifts<SdrBits, InputBits>::pre16;
3683 intbuf[14] = bufI[pos+15] << decimation_shifts<SdrBits, InputBits>::pre16;
3684 intbuf[15] = bufQ[pos+15] << decimation_shifts<SdrBits, InputBits>::pre16;
3686 m_decimator2.myDecimate(
3687 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre16,
3688 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre16,
3691 m_decimator2.myDecimate(
3692 bufI[pos+2] << decimation_shifts<SdrBits, InputBits>::pre16,
3693 bufQ[pos+2] << decimation_shifts<SdrBits, InputBits>::pre16,
3696 m_decimator2.myDecimate(
3697 bufI[pos+4] << decimation_shifts<SdrBits, InputBits>::pre16,
3698 bufQ[pos+4] << decimation_shifts<SdrBits, InputBits>::pre16,
3701 m_decimator2.myDecimate(
3702 bufI[pos+6] << decimation_shifts<SdrBits, InputBits>::pre16,
3703 bufQ[pos+6] << decimation_shifts<SdrBits, InputBits>::pre16,
3706 m_decimator2.myDecimate(
3707 bufI[pos+8] << decimation_shifts<SdrBits, InputBits>::pre16,
3708 bufQ[pos+8] << decimation_shifts<SdrBits, InputBits>::pre16,
3711 m_decimator2.myDecimate(
3712 bufI[pos+10] << decimation_shifts<SdrBits, InputBits>::pre16,
3713 bufQ[pos+10] << decimation_shifts<SdrBits, InputBits>::pre16,
3716 m_decimator2.myDecimate(
3717 bufI[pos+12] << decimation_shifts<SdrBits, InputBits>::pre16,
3718 bufQ[pos+12] << decimation_shifts<SdrBits, InputBits>::pre16,
3721 m_decimator2.myDecimate(
3722 bufI[pos+14] << decimation_shifts<SdrBits, InputBits>::pre16,
3723 bufQ[pos+14] << decimation_shifts<SdrBits, InputBits>::pre16,
3727 m_decimator4.myDecimate(
3732 m_decimator4.myDecimate(
3737 m_decimator4.myDecimate(
3742 m_decimator4.myDecimate(
3748 m_decimator8.myDecimate(
3753 m_decimator8.myDecimate(
3759 m_decimator16.myDecimate(
3771 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3774 StorageType intbuf[32];
3776 for (
int pos = 0; pos < len - 31; pos += 32)
3779 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre32;
3780 intbuf[2] = bufI[pos+3] << decimation_shifts<SdrBits, InputBits>::pre32;
3781 intbuf[3] = bufQ[pos+3] << decimation_shifts<SdrBits, InputBits>::pre32;
3782 intbuf[4] = bufI[pos+5] << decimation_shifts<SdrBits, InputBits>::pre32;
3783 intbuf[5] = bufQ[pos+5] << decimation_shifts<SdrBits, InputBits>::pre32;
3784 intbuf[6] = bufI[pos+7] << decimation_shifts<SdrBits, InputBits>::pre32;
3785 intbuf[7] = bufQ[pos+7] << decimation_shifts<SdrBits, InputBits>::pre32;
3786 intbuf[8] = bufI[pos+9] << decimation_shifts<SdrBits, InputBits>::pre32;
3787 intbuf[9] = bufQ[pos+9] << decimation_shifts<SdrBits, InputBits>::pre32;
3788 intbuf[10] = bufI[pos+11] << decimation_shifts<SdrBits, InputBits>::pre32;
3789 intbuf[11] = bufQ[pos+11] << decimation_shifts<SdrBits, InputBits>::pre32;
3790 intbuf[12] = bufI[pos+13] << decimation_shifts<SdrBits, InputBits>::pre32;
3791 intbuf[13] = bufQ[pos+13] << decimation_shifts<SdrBits, InputBits>::pre32;
3792 intbuf[14] = bufI[pos+15] << decimation_shifts<SdrBits, InputBits>::pre32;
3793 intbuf[15] = bufQ[pos+15] << decimation_shifts<SdrBits, InputBits>::pre32;
3794 intbuf[16] = bufI[pos+17] << decimation_shifts<SdrBits, InputBits>::pre32;
3795 intbuf[17] = bufQ[pos+17] << decimation_shifts<SdrBits, InputBits>::pre32;
3796 intbuf[18] = bufI[pos+19] << decimation_shifts<SdrBits, InputBits>::pre32;
3797 intbuf[19] = bufQ[pos+19] << decimation_shifts<SdrBits, InputBits>::pre32;
3798 intbuf[20] = bufI[pos+21] << decimation_shifts<SdrBits, InputBits>::pre32;
3799 intbuf[21] = bufQ[pos+21] << decimation_shifts<SdrBits, InputBits>::pre32;
3800 intbuf[22] = bufI[pos+23] << decimation_shifts<SdrBits, InputBits>::pre32;
3801 intbuf[23] = bufQ[pos+23] << decimation_shifts<SdrBits, InputBits>::pre32;
3802 intbuf[24] = bufI[pos+25] << decimation_shifts<SdrBits, InputBits>::pre32;
3803 intbuf[25] = bufQ[pos+25] << decimation_shifts<SdrBits, InputBits>::pre32;
3804 intbuf[26] = bufI[pos+27] << decimation_shifts<SdrBits, InputBits>::pre32;
3805 intbuf[27] = bufQ[pos+27] << decimation_shifts<SdrBits, InputBits>::pre32;
3806 intbuf[28] = bufI[pos+29] << decimation_shifts<SdrBits, InputBits>::pre32;
3807 intbuf[29] = bufQ[pos+29] << decimation_shifts<SdrBits, InputBits>::pre32;
3808 intbuf[30] = bufI[pos+31] << decimation_shifts<SdrBits, InputBits>::pre32;
3809 intbuf[31] = bufQ[pos+31] << decimation_shifts<SdrBits, InputBits>::pre32;
3811 m_decimator2.myDecimate(
3812 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre32,
3813 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre32,
3816 m_decimator2.myDecimate(
3817 bufI[pos+2] << decimation_shifts<SdrBits, InputBits>::pre32,
3818 bufQ[pos+2] << decimation_shifts<SdrBits, InputBits>::pre32,
3821 m_decimator2.myDecimate(
3822 bufI[pos+4] << decimation_shifts<SdrBits, InputBits>::pre32,
3823 bufQ[pos+4] << decimation_shifts<SdrBits, InputBits>::pre32,
3826 m_decimator2.myDecimate(
3827 bufI[pos+6] << decimation_shifts<SdrBits, InputBits>::pre32,
3828 bufQ[pos+6] << decimation_shifts<SdrBits, InputBits>::pre32,
3831 m_decimator2.myDecimate(
3832 bufI[pos+8] << decimation_shifts<SdrBits, InputBits>::pre32,
3833 bufQ[pos+8] << decimation_shifts<SdrBits, InputBits>::pre32,
3836 m_decimator2.myDecimate(
3837 bufI[pos+10] << decimation_shifts<SdrBits, InputBits>::pre32,
3838 bufQ[pos+10] << decimation_shifts<SdrBits, InputBits>::pre32,
3841 m_decimator2.myDecimate(
3842 bufI[pos+12] << decimation_shifts<SdrBits, InputBits>::pre32,
3843 bufQ[pos+12] << decimation_shifts<SdrBits, InputBits>::pre32,
3846 m_decimator2.myDecimate(
3847 bufI[pos+14] << decimation_shifts<SdrBits, InputBits>::pre32,
3848 bufQ[pos+14] << decimation_shifts<SdrBits, InputBits>::pre32,
3851 m_decimator2.myDecimate(
3852 bufI[pos+16] << decimation_shifts<SdrBits, InputBits>::pre32,
3853 bufQ[pos+16] << decimation_shifts<SdrBits, InputBits>::pre32,
3856 m_decimator2.myDecimate(
3857 bufI[pos+18] << decimation_shifts<SdrBits, InputBits>::pre32,
3858 bufQ[pos+18] << decimation_shifts<SdrBits, InputBits>::pre32,
3861 m_decimator2.myDecimate(
3862 bufI[pos+20] << decimation_shifts<SdrBits, InputBits>::pre32,
3863 bufQ[pos+20] << decimation_shifts<SdrBits, InputBits>::pre32,
3866 m_decimator2.myDecimate(
3867 bufI[pos+22] << decimation_shifts<SdrBits, InputBits>::pre32,
3868 bufQ[pos+22] << decimation_shifts<SdrBits, InputBits>::pre32,
3871 m_decimator2.myDecimate(
3872 bufI[pos+24] << decimation_shifts<SdrBits, InputBits>::pre32,
3873 bufQ[pos+24] << decimation_shifts<SdrBits, InputBits>::pre32,
3876 m_decimator2.myDecimate(
3877 bufI[pos+26] << decimation_shifts<SdrBits, InputBits>::pre32,
3878 bufQ[pos+26] << decimation_shifts<SdrBits, InputBits>::pre32,
3881 m_decimator2.myDecimate(
3882 bufI[pos+28] << decimation_shifts<SdrBits, InputBits>::pre32,
3883 bufQ[pos+28] << decimation_shifts<SdrBits, InputBits>::pre32,
3886 m_decimator2.myDecimate(
3887 bufI[pos+30] << decimation_shifts<SdrBits, InputBits>::pre32,
3888 bufQ[pos+30] << decimation_shifts<SdrBits, InputBits>::pre32,
3892 m_decimator4.myDecimate(
3897 m_decimator4.myDecimate(
3902 m_decimator4.myDecimate(
3907 m_decimator4.myDecimate(
3912 m_decimator4.myDecimate(
3917 m_decimator4.myDecimate(
3922 m_decimator4.myDecimate(
3927 m_decimator4.myDecimate(
3933 m_decimator8.myDecimate(
3938 m_decimator8.myDecimate(
3943 m_decimator8.myDecimate(
3948 m_decimator8.myDecimate(
3954 m_decimator16.myDecimate(
3959 m_decimator16.myDecimate(
3965 m_decimator32.myDecimate(
3977 template<
typename StorageType,
typename T, u
int SdrBits, u
int InputBits>
3980 StorageType intbuf[64];
3982 for (
int pos = 0; pos < len - 63; pos += 64)
3985 intbuf[1] = bufQ[pos+1] << decimation_shifts<SdrBits, InputBits>::pre64;
3986 intbuf[2] = bufI[pos+3] << decimation_shifts<SdrBits, InputBits>::pre64;
3987 intbuf[3] = bufQ[pos+3] << decimation_shifts<SdrBits, InputBits>::pre64;
3988 intbuf[4] = bufI[pos+5] << decimation_shifts<SdrBits, InputBits>::pre64;
3989 intbuf[5] = bufQ[pos+5] << decimation_shifts<SdrBits, InputBits>::pre64;
3990 intbuf[6] = bufI[pos+7] << decimation_shifts<SdrBits, InputBits>::pre64;
3991 intbuf[7] = bufQ[pos+7] << decimation_shifts<SdrBits, InputBits>::pre64;
3992 intbuf[8] = bufI[pos+9] << decimation_shifts<SdrBits, InputBits>::pre64;
3993 intbuf[9] = bufQ[pos+9] << decimation_shifts<SdrBits, InputBits>::pre64;
3994 intbuf[10] = bufI[pos+11] << decimation_shifts<SdrBits, InputBits>::pre64;
3995 intbuf[11] = bufQ[pos+11] << decimation_shifts<SdrBits, InputBits>::pre64;
3996 intbuf[12] = bufI[pos+13] << decimation_shifts<SdrBits, InputBits>::pre64;
3997 intbuf[13] = bufQ[pos+13] << decimation_shifts<SdrBits, InputBits>::pre64;
3998 intbuf[14] = bufI[pos+15] << decimation_shifts<SdrBits, InputBits>::pre64;
3999 intbuf[15] = bufQ[pos+15] << decimation_shifts<SdrBits, InputBits>::pre64;
4000 intbuf[16] = bufI[pos+17] << decimation_shifts<SdrBits, InputBits>::pre64;
4001 intbuf[17] = bufQ[pos+17] << decimation_shifts<SdrBits, InputBits>::pre64;
4002 intbuf[18] = bufI[pos+19] << decimation_shifts<SdrBits, InputBits>::pre64;
4003 intbuf[19] = bufQ[pos+19] << decimation_shifts<SdrBits, InputBits>::pre64;
4004 intbuf[20] = bufI[pos+21] << decimation_shifts<SdrBits, InputBits>::pre64;
4005 intbuf[21] = bufQ[pos+21] << decimation_shifts<SdrBits, InputBits>::pre64;
4006 intbuf[22] = bufI[pos+23] << decimation_shifts<SdrBits, InputBits>::pre64;
4007 intbuf[23] = bufQ[pos+23] << decimation_shifts<SdrBits, InputBits>::pre64;
4008 intbuf[24] = bufI[pos+25] << decimation_shifts<SdrBits, InputBits>::pre64;
4009 intbuf[25] = bufQ[pos+25] << decimation_shifts<SdrBits, InputBits>::pre64;
4010 intbuf[26] = bufI[pos+27] << decimation_shifts<SdrBits, InputBits>::pre64;
4011 intbuf[27] = bufQ[pos+27] << decimation_shifts<SdrBits, InputBits>::pre64;
4012 intbuf[28] = bufI[pos+29] << decimation_shifts<SdrBits, InputBits>::pre64;
4013 intbuf[29] = bufQ[pos+29] << decimation_shifts<SdrBits, InputBits>::pre64;
4014 intbuf[30] = bufI[pos+31] << decimation_shifts<SdrBits, InputBits>::pre64;
4015 intbuf[31] = bufQ[pos+31] << decimation_shifts<SdrBits, InputBits>::pre64;
4017 intbuf[32] = bufI[pos+33] << decimation_shifts<SdrBits, InputBits>::pre64;
4018 intbuf[33] = bufQ[pos+33] << decimation_shifts<SdrBits, InputBits>::pre64;
4019 intbuf[34] = bufI[pos+35] << decimation_shifts<SdrBits, InputBits>::pre64;
4020 intbuf[35] = bufQ[pos+35] << decimation_shifts<SdrBits, InputBits>::pre64;
4021 intbuf[36] = bufI[pos+37] << decimation_shifts<SdrBits, InputBits>::pre64;
4022 intbuf[37] = bufQ[pos+37] << decimation_shifts<SdrBits, InputBits>::pre64;
4023 intbuf[38] = bufI[pos+39] << decimation_shifts<SdrBits, InputBits>::pre64;
4024 intbuf[39] = bufQ[pos+39] << decimation_shifts<SdrBits, InputBits>::pre64;
4025 intbuf[40] = bufI[pos+41] << decimation_shifts<SdrBits, InputBits>::pre64;
4026 intbuf[41] = bufQ[pos+41] << decimation_shifts<SdrBits, InputBits>::pre64;
4027 intbuf[42] = bufI[pos+43] << decimation_shifts<SdrBits, InputBits>::pre64;
4028 intbuf[43] = bufQ[pos+43] << decimation_shifts<SdrBits, InputBits>::pre64;
4029 intbuf[44] = bufI[pos+45] << decimation_shifts<SdrBits, InputBits>::pre64;
4030 intbuf[45] = bufQ[pos+45] << decimation_shifts<SdrBits, InputBits>::pre64;
4031 intbuf[46] = bufI[pos+47] << decimation_shifts<SdrBits, InputBits>::pre64;
4032 intbuf[47] = bufQ[pos+47] << decimation_shifts<SdrBits, InputBits>::pre64;
4033 intbuf[48] = bufI[pos+49] << decimation_shifts<SdrBits, InputBits>::pre64;
4034 intbuf[49] = bufQ[pos+49] << decimation_shifts<SdrBits, InputBits>::pre64;
4035 intbuf[50] = bufI[pos+51] << decimation_shifts<SdrBits, InputBits>::pre64;
4036 intbuf[51] = bufQ[pos+51] << decimation_shifts<SdrBits, InputBits>::pre64;
4037 intbuf[52] = bufI[pos+53] << decimation_shifts<SdrBits, InputBits>::pre64;
4038 intbuf[53] = bufQ[pos+53] << decimation_shifts<SdrBits, InputBits>::pre64;
4039 intbuf[54] = bufI[pos+55] << decimation_shifts<SdrBits, InputBits>::pre64;
4040 intbuf[55] = bufQ[pos+55] << decimation_shifts<SdrBits, InputBits>::pre64;
4041 intbuf[56] = bufI[pos+57] << decimation_shifts<SdrBits, InputBits>::pre64;
4042 intbuf[57] = bufQ[pos+57] << decimation_shifts<SdrBits, InputBits>::pre64;
4043 intbuf[58] = bufI[pos+59] << decimation_shifts<SdrBits, InputBits>::pre64;
4044 intbuf[59] = bufQ[pos+59] << decimation_shifts<SdrBits, InputBits>::pre64;
4045 intbuf[60] = bufI[pos+61] << decimation_shifts<SdrBits, InputBits>::pre64;
4046 intbuf[61] = bufQ[pos+61] << decimation_shifts<SdrBits, InputBits>::pre64;
4047 intbuf[62] = bufI[pos+63] << decimation_shifts<SdrBits, InputBits>::pre64;
4048 intbuf[63] = bufQ[pos+63] << decimation_shifts<SdrBits, InputBits>::pre64;
4050 m_decimator2.myDecimate(
4051 bufI[pos+0] << decimation_shifts<SdrBits, InputBits>::pre64,
4052 bufQ[pos+0] << decimation_shifts<SdrBits, InputBits>::pre64,
4055 m_decimator2.myDecimate(
4056 bufI[pos+2] << decimation_shifts<SdrBits, InputBits>::pre64,
4057 bufQ[pos+2] << decimation_shifts<SdrBits, InputBits>::pre64,
4060 m_decimator2.myDecimate(
4061 bufI[pos+4] << decimation_shifts<SdrBits, InputBits>::pre64,
4062 bufQ[pos+4] << decimation_shifts<SdrBits, InputBits>::pre64,
4065 m_decimator2.myDecimate(
4066 bufI[pos+6] << decimation_shifts<SdrBits, InputBits>::pre64,
4067 bufQ[pos+6] << decimation_shifts<SdrBits, InputBits>::pre64,
4070 m_decimator2.myDecimate(
4071 bufI[pos+8] << decimation_shifts<SdrBits, InputBits>::pre64,
4072 bufQ[pos+8] << decimation_shifts<SdrBits, InputBits>::pre64,
4075 m_decimator2.myDecimate(
4076 bufI[pos+10] << decimation_shifts<SdrBits, InputBits>::pre64,
4077 bufQ[pos+10] << decimation_shifts<SdrBits, InputBits>::pre64,
4080 m_decimator2.myDecimate(
4081 bufI[pos+12] << decimation_shifts<SdrBits, InputBits>::pre64,
4082 bufQ[pos+12] << decimation_shifts<SdrBits, InputBits>::pre64,
4085 m_decimator2.myDecimate(
4086 bufI[pos+14] << decimation_shifts<SdrBits, InputBits>::pre64,
4087 bufQ[pos+14] << decimation_shifts<SdrBits, InputBits>::pre64,
4090 m_decimator2.myDecimate(
4091 bufI[pos+16] << decimation_shifts<SdrBits, InputBits>::pre64,
4092 bufQ[pos+16] << decimation_shifts<SdrBits, InputBits>::pre64,
4095 m_decimator2.myDecimate(
4096 bufI[pos+18] << decimation_shifts<SdrBits, InputBits>::pre64,
4097 bufQ[pos+18] << decimation_shifts<SdrBits, InputBits>::pre64,
4100 m_decimator2.myDecimate(
4101 bufI[pos+20] << decimation_shifts<SdrBits, InputBits>::pre64,
4102 bufQ[pos+20] << decimation_shifts<SdrBits, InputBits>::pre64,
4105 m_decimator2.myDecimate(
4106 bufI[pos+22] << decimation_shifts<SdrBits, InputBits>::pre64,
4107 bufQ[pos+22] << decimation_shifts<SdrBits, InputBits>::pre64,
4110 m_decimator2.myDecimate(
4111 bufI[pos+24] << decimation_shifts<SdrBits, InputBits>::pre64,
4112 bufQ[pos+24] << decimation_shifts<SdrBits, InputBits>::pre64,
4115 m_decimator2.myDecimate(
4116 bufI[pos+26] << decimation_shifts<SdrBits, InputBits>::pre64,
4117 bufQ[pos+26] << decimation_shifts<SdrBits, InputBits>::pre64,
4120 m_decimator2.myDecimate(
4121 bufI[pos+28] << decimation_shifts<SdrBits, InputBits>::pre64,
4122 bufQ[pos+28] << decimation_shifts<SdrBits, InputBits>::pre64,
4125 m_decimator2.myDecimate(
4126 bufI[pos+30] << decimation_shifts<SdrBits, InputBits>::pre64,
4127 bufQ[pos+30] << decimation_shifts<SdrBits, InputBits>::pre64,
4130 m_decimator2.myDecimate(
4131 bufI[pos+32] << decimation_shifts<SdrBits, InputBits>::pre64,
4132 bufQ[pos+32] << decimation_shifts<SdrBits, InputBits>::pre64,
4135 m_decimator2.myDecimate(
4136 bufI[pos+34] << decimation_shifts<SdrBits, InputBits>::pre64,
4137 bufQ[pos+34] << decimation_shifts<SdrBits, InputBits>::pre64,
4140 m_decimator2.myDecimate(
4141 bufI[pos+36] << decimation_shifts<SdrBits, InputBits>::pre64,
4142 bufQ[pos+36] << decimation_shifts<SdrBits, InputBits>::pre64,
4145 m_decimator2.myDecimate(
4146 bufI[pos+38] << decimation_shifts<SdrBits, InputBits>::pre64,
4147 bufQ[pos+38] << decimation_shifts<SdrBits, InputBits>::pre64,
4150 m_decimator2.myDecimate(
4151 bufI[pos+40] << decimation_shifts<SdrBits, InputBits>::pre64,
4152 bufQ[pos+40] << decimation_shifts<SdrBits, InputBits>::pre64,
4155 m_decimator2.myDecimate(
4156 bufI[pos+42] << decimation_shifts<SdrBits, InputBits>::pre64,
4157 bufQ[pos+42] << decimation_shifts<SdrBits, InputBits>::pre64,
4160 m_decimator2.myDecimate(
4161 bufI[pos+44] << decimation_shifts<SdrBits, InputBits>::pre64,
4162 bufQ[pos+44] << decimation_shifts<SdrBits, InputBits>::pre64,
4165 m_decimator2.myDecimate(
4166 bufI[pos+46] << decimation_shifts<SdrBits, InputBits>::pre64,
4167 bufQ[pos+46] << decimation_shifts<SdrBits, InputBits>::pre64,
4170 m_decimator2.myDecimate(
4171 bufI[pos+48] << decimation_shifts<SdrBits, InputBits>::pre64,
4172 bufQ[pos+48] << decimation_shifts<SdrBits, InputBits>::pre64,
4175 m_decimator2.myDecimate(
4176 bufI[pos+50] << decimation_shifts<SdrBits, InputBits>::pre64,
4177 bufQ[pos+50] << decimation_shifts<SdrBits, InputBits>::pre64,
4180 m_decimator2.myDecimate(
4181 bufI[pos+52] << decimation_shifts<SdrBits, InputBits>::pre64,
4182 bufQ[pos+52] << decimation_shifts<SdrBits, InputBits>::pre64,
4185 m_decimator2.myDecimate(
4186 bufI[pos+54] << decimation_shifts<SdrBits, InputBits>::pre64,
4187 bufQ[pos+54] << decimation_shifts<SdrBits, InputBits>::pre64,
4190 m_decimator2.myDecimate(
4191 bufI[pos+56] << decimation_shifts<SdrBits, InputBits>::pre64,
4192 bufQ[pos+56] << decimation_shifts<SdrBits, InputBits>::pre64,
4195 m_decimator2.myDecimate(
4196 bufI[pos+58] << decimation_shifts<SdrBits, InputBits>::pre64,
4197 bufQ[pos+58] << decimation_shifts<SdrBits, InputBits>::pre64,
4200 m_decimator2.myDecimate(
4201 bufI[pos+60] << decimation_shifts<SdrBits, InputBits>::pre64,
4202 bufQ[pos+60] << decimation_shifts<SdrBits, InputBits>::pre64,
4205 m_decimator2.myDecimate(
4206 bufI[pos+62] << decimation_shifts<SdrBits, InputBits>::pre64,
4207 bufQ[pos+62] << decimation_shifts<SdrBits, InputBits>::pre64,
4211 m_decimator4.myDecimate(
4216 m_decimator4.myDecimate(
4221 m_decimator4.myDecimate(
4226 m_decimator4.myDecimate(
4231 m_decimator4.myDecimate(
4236 m_decimator4.myDecimate(
4241 m_decimator4.myDecimate(
4246 m_decimator4.myDecimate(
4251 m_decimator4.myDecimate(
4256 m_decimator4.myDecimate(
4261 m_decimator4.myDecimate(
4266 m_decimator4.myDecimate(
4271 m_decimator4.myDecimate(
4276 m_decimator4.myDecimate(
4281 m_decimator4.myDecimate(
4286 m_decimator4.myDecimate(
4292 m_decimator8.myDecimate(
4297 m_decimator8.myDecimate(
4302 m_decimator8.myDecimate(
4307 m_decimator8.myDecimate(
4312 m_decimator8.myDecimate(
4317 m_decimator8.myDecimate(
4322 m_decimator8.myDecimate(
4327 m_decimator8.myDecimate(
4333 m_decimator16.myDecimate(
4338 m_decimator16.myDecimate(
4343 m_decimator16.myDecimate(
4348 m_decimator16.myDecimate(
4354 m_decimator32.myDecimate(
4359 m_decimator32.myDecimate(
4365 m_decimator64.myDecimate(
void decimate2_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate64_sup(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
void decimate4_sup_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate64_cen(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate2_sup(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate64_inf_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate2_cen(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate8_sup(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
void decimate64_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate32_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate32_sup(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate4_sup(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate8_inf_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate8_cen(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate8_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate8_sup_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate16_sup(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
void decimate64_sup_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator64
void decimate16_inf_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate4_cen(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
void decimate4_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate32_sup_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate16_sup_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
void decimate2_u(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate16_inf(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate16_cen(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate32_cen(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate1(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate32_inf_txsync(SampleVector::iterator *it, const T *buf, qint32 len)
void decimate4_inf_txsync(SampleVector::iterator *it, const T *buf, qint32 len)