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.
Public Member Functions | Private Attributes | List of all members
DecimatorsU< StorageType, T, SdrBits, InputBits, Shift > Class Template Reference

#include <decimatorsu.h>

+ Collaboration diagram for DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >:

Public Member Functions

void decimate1 (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate2_inf (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate2_sup (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate2_cen (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate4_inf (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate4_sup (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate4_cen (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate8_inf (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate8_sup (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate8_cen (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate16_inf (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate16_sup (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate16_cen (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 decimate32_cen (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate64_inf (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate64_sup (SampleVector::iterator *it, const T *buf, qint32 len)
 
void decimate64_cen (SampleVector::iterator *it, const T *buf, qint32 len)
 

Private Attributes

IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator2
 
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator4
 
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator8
 
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator16
 
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator32
 
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDERm_decimator64
 

Detailed Description

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
class DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >

Definition at line 177 of file decimatorsu.h.

Member Function Documentation

◆ decimate1()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate1 ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 220 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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 }
+ Here is the caller graph for this function:

◆ decimate16_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate16_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2538 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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 
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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 
2603  intbuf[0],
2604  intbuf[1],
2605  &intbuf[2],
2606  &intbuf[3]);
2608  intbuf[4],
2609  intbuf[5],
2610  &intbuf[6],
2611  &intbuf[7]);
2613  intbuf[8],
2614  intbuf[9],
2615  &intbuf[10],
2616  &intbuf[11]);
2618  intbuf[12],
2619  intbuf[13],
2620  &intbuf[14],
2621  &intbuf[15]);
2622 
2624  intbuf[2],
2625  intbuf[3],
2626  &intbuf[6],
2627  &intbuf[7]);
2629  intbuf[10],
2630  intbuf[11],
2631  &intbuf[14],
2632  &intbuf[15]);
2633 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
void myDecimate(const Sample *sample1, Sample *sample2)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
+ Here is the caller graph for this function:

◆ decimate16_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate16_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 543 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

544 {
545  StorageType buf2[32], buf4[16], buf8[8], buf16[4];
546 
547  for (int pos = 0; pos < len - 63; pos += 64)
548  {
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 
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 
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 
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 
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 
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 
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 
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 
645  &buf2[0],
646  &buf4[0]);
647 
649  &buf2[8],
650  &buf4[4]);
651 
653  &buf2[16],
654  &buf4[8]);
655 
657  &buf2[24],
658  &buf4[12]);
659 
661  &buf4[0],
662  &buf8[0]);
663 
665  &buf4[8],
666  &buf8[4]);
667 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate16_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate16_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 683 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

684 {
685  StorageType buf2[32], buf4[16], buf8[8], buf16[4];
686 
687  for (int pos = 0; pos < len - 63; pos += 64)
688  {
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 
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 
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 
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 
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 
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 
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 
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 
785  &buf2[0],
786  &buf4[0]);
787 
789  &buf2[8],
790  &buf4[4]);
791 
793  &buf2[16],
794  &buf4[8]);
795 
797  &buf2[24],
798  &buf4[12]);
799 
801  &buf4[0],
802  &buf8[0]);
803 
805  &buf4[8],
806  &buf8[4]);
807 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate2_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate2_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2407 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

2408 {
2409  StorageType buf2[4];
2410 
2411  for (int pos = 0; pos < len - 7; pos += 8)
2412  {
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 }
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
+ Here is the caller graph for this function:

◆ decimate2_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate2_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 235 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

236 {
237  StorageType buf2[4];
238 
239  for (int pos = 0; pos < len - 7; pos += 8)
240  {
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate2_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate2_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 263 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

264 {
265  StorageType buf2[4];
266 
267  for (int pos = 0; pos < len - 7; pos += 8)
268  {
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
+ Here is the caller graph for this function:

◆ decimate32_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate32_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2647 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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 
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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 
2768  intbuf[0],
2769  intbuf[1],
2770  &intbuf[2],
2771  &intbuf[3]);
2773  intbuf[4],
2774  intbuf[5],
2775  &intbuf[6],
2776  &intbuf[7]);
2778  intbuf[8],
2779  intbuf[9],
2780  &intbuf[10],
2781  &intbuf[11]);
2783  intbuf[12],
2784  intbuf[13],
2785  &intbuf[14],
2786  &intbuf[15]);
2788  intbuf[16],
2789  intbuf[17],
2790  &intbuf[18],
2791  &intbuf[19]);
2793  intbuf[20],
2794  intbuf[21],
2795  &intbuf[22],
2796  &intbuf[23]);
2798  intbuf[24],
2799  intbuf[25],
2800  &intbuf[26],
2801  &intbuf[27]);
2803  intbuf[28],
2804  intbuf[29],
2805  &intbuf[30],
2806  &intbuf[31]);
2807 
2809  intbuf[2],
2810  intbuf[3],
2811  &intbuf[6],
2812  &intbuf[7]);
2814  intbuf[10],
2815  intbuf[11],
2816  &intbuf[14],
2817  &intbuf[15]);
2819  intbuf[18],
2820  intbuf[19],
2821  &intbuf[22],
2822  &intbuf[23]);
2824  intbuf[26],
2825  intbuf[27],
2826  &intbuf[30],
2827  &intbuf[31]);
2828 
2830  intbuf[6],
2831  intbuf[7],
2832  &intbuf[14],
2833  &intbuf[15]);
2835  intbuf[22],
2836  intbuf[23],
2837  &intbuf[30],
2838  &intbuf[31]);
2839 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
void myDecimate(const Sample *sample1, Sample *sample2)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
+ Here is the caller graph for this function:

◆ decimate32_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate32_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 823 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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  {
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
1021  &buf2[0],
1022  &buf4[0]);
1023 
1025  &buf2[8],
1026  &buf4[4]);
1027 
1029  &buf2[16],
1030  &buf4[8]);
1031 
1033  &buf2[24],
1034  &buf4[12]);
1035 
1037  &buf2[32],
1038  &buf4[16]);
1039 
1041  &buf2[40],
1042  &buf4[20]);
1043 
1045  &buf2[48],
1046  &buf4[24]);
1047 
1049  &buf2[56],
1050  &buf4[28]);
1051 
1053  &buf4[0],
1054  &buf8[0]);
1055 
1057  &buf4[8],
1058  &buf8[4]);
1059 
1061  &buf4[16],
1062  &buf8[8]);
1063 
1065  &buf4[24],
1066  &buf8[12]);
1067 
1069  &buf8[0],
1070  &buf16[0]);
1071 
1073  &buf8[8],
1074  &buf16[4]);
1075 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate32_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate32_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 1091 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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  {
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
1289  &buf2[0],
1290  &buf4[0]);
1291 
1293  &buf2[8],
1294  &buf4[4]);
1295 
1297  &buf2[16],
1298  &buf4[8]);
1299 
1301  &buf2[24],
1302  &buf4[12]);
1303 
1305  &buf2[32],
1306  &buf4[16]);
1307 
1309  &buf2[40],
1310  &buf4[20]);
1311 
1313  &buf2[48],
1314  &buf4[24]);
1315 
1317  &buf2[56],
1318  &buf4[28]);
1319 
1321  &buf4[0],
1322  &buf8[0]);
1323 
1325  &buf4[8],
1326  &buf8[4]);
1327 
1329  &buf4[16],
1330  &buf8[8]);
1331 
1333  &buf4[24],
1334  &buf8[12]);
1335 
1337  &buf8[0],
1338  &buf16[0]);
1339 
1341  &buf8[8],
1342  &buf16[4]);
1343 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate4_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate4_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2435 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

2436 {
2437  StorageType buf2[8], buf4[4];
2438 
2439  for (int pos = 0; pos < len - 15; pos += 16)
2440  {
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 
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 
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 }
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
+ Here is the caller graph for this function:

◆ decimate4_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate4_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 291 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

292 {
293  StorageType buf2[8], buf4[4];
294 
295  for (int pos = 0; pos < len - 15; pos += 16)
296  {
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 
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 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate4_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate4_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 341 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

342 {
343  StorageType buf2[8], buf4[4];
344 
345  for (int pos = 0; pos < len - 15; pos += 16)
346  {
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 
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 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate64_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate64_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2853 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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 
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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 
3087  intbuf[0],
3088  intbuf[1],
3089  &intbuf[2],
3090  &intbuf[3]);
3092  intbuf[4],
3093  intbuf[5],
3094  &intbuf[6],
3095  &intbuf[7]);
3097  intbuf[8],
3098  intbuf[9],
3099  &intbuf[10],
3100  &intbuf[11]);
3102  intbuf[12],
3103  intbuf[13],
3104  &intbuf[14],
3105  &intbuf[15]);
3107  intbuf[16],
3108  intbuf[17],
3109  &intbuf[18],
3110  &intbuf[19]);
3112  intbuf[20],
3113  intbuf[21],
3114  &intbuf[22],
3115  &intbuf[23]);
3117  intbuf[24],
3118  intbuf[25],
3119  &intbuf[26],
3120  &intbuf[27]);
3122  intbuf[28],
3123  intbuf[29],
3124  &intbuf[30],
3125  &intbuf[31]);
3127  intbuf[32],
3128  intbuf[33],
3129  &intbuf[34],
3130  &intbuf[35]);
3132  intbuf[36],
3133  intbuf[37],
3134  &intbuf[38],
3135  &intbuf[39]);
3137  intbuf[40],
3138  intbuf[41],
3139  &intbuf[42],
3140  &intbuf[43]);
3142  intbuf[44],
3143  intbuf[45],
3144  &intbuf[46],
3145  &intbuf[47]);
3147  intbuf[48],
3148  intbuf[49],
3149  &intbuf[50],
3150  &intbuf[51]);
3152  intbuf[52],
3153  intbuf[53],
3154  &intbuf[54],
3155  &intbuf[55]);
3157  intbuf[56],
3158  intbuf[57],
3159  &intbuf[58],
3160  &intbuf[59]);
3162  intbuf[60],
3163  intbuf[61],
3164  &intbuf[62],
3165  &intbuf[63]);
3166 
3168  intbuf[2],
3169  intbuf[3],
3170  &intbuf[6],
3171  &intbuf[7]);
3173  intbuf[10],
3174  intbuf[11],
3175  &intbuf[14],
3176  &intbuf[15]);
3178  intbuf[18],
3179  intbuf[19],
3180  &intbuf[22],
3181  &intbuf[23]);
3183  intbuf[26],
3184  intbuf[27],
3185  &intbuf[30],
3186  &intbuf[31]);
3188  intbuf[34],
3189  intbuf[35],
3190  &intbuf[38],
3191  &intbuf[39]);
3193  intbuf[42],
3194  intbuf[43],
3195  &intbuf[46],
3196  &intbuf[47]);
3198  intbuf[50],
3199  intbuf[51],
3200  &intbuf[54],
3201  &intbuf[55]);
3203  intbuf[58],
3204  intbuf[59],
3205  &intbuf[62],
3206  &intbuf[63]);
3207 
3209  intbuf[6],
3210  intbuf[7],
3211  &intbuf[14],
3212  &intbuf[15]);
3214  intbuf[22],
3215  intbuf[23],
3216  &intbuf[30],
3217  &intbuf[31]);
3219  intbuf[38],
3220  intbuf[39],
3221  &intbuf[46],
3222  &intbuf[47]);
3224  intbuf[54],
3225  intbuf[55],
3226  &intbuf[62],
3227  &intbuf[63]);
3228 
3230  intbuf[14],
3231  intbuf[15],
3232  &intbuf[30],
3233  &intbuf[31]);
3235  intbuf[46],
3236  intbuf[47],
3237  &intbuf[62],
3238  &intbuf[63]);
3239 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator64
Definition: decimatorsu.h:215
void myDecimate(const Sample *sample1, Sample *sample2)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
+ Here is the caller graph for this function:

◆ decimate64_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate64_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 1359 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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  {
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
1749  &buf2[0],
1750  &buf4[0]);
1751 
1753  &buf2[8],
1754  &buf4[4]);
1755 
1757  &buf2[16],
1758  &buf4[8]);
1759 
1761  &buf2[24],
1762  &buf4[12]);
1763 
1765  &buf2[32],
1766  &buf4[16]);
1767 
1769  &buf2[40],
1770  &buf4[20]);
1771 
1773  &buf2[48],
1774  &buf4[24]);
1775 
1777  &buf2[56],
1778  &buf4[28]);
1779 
1781  &buf2[64],
1782  &buf4[32]);
1783 
1785  &buf2[72],
1786  &buf4[36]);
1787 
1789  &buf2[80],
1790  &buf4[40]);
1791 
1793  &buf2[88],
1794  &buf4[44]);
1795 
1797  &buf2[96],
1798  &buf4[48]);
1799 
1801  &buf2[104],
1802  &buf4[52]);
1803 
1805  &buf2[112],
1806  &buf4[56]);
1807 
1809  &buf2[120],
1810  &buf4[60]);
1811 
1813  &buf4[0],
1814  &buf8[0]);
1815 
1817  &buf4[8],
1818  &buf8[4]);
1819 
1821  &buf4[16],
1822  &buf8[8]);
1823 
1825  &buf4[24],
1826  &buf8[12]);
1827 
1829  &buf4[32],
1830  &buf8[16]);
1831 
1833  &buf4[40],
1834  &buf8[20]);
1835 
1837  &buf4[48],
1838  &buf8[24]);
1839 
1841  &buf4[56],
1842  &buf8[28]);
1843 
1845  &buf8[0],
1846  &buf16[0]);
1847 
1849  &buf8[8],
1850  &buf16[4]);
1851 
1853  &buf8[16],
1854  &buf16[8]);
1855 
1857  &buf8[24],
1858  &buf16[12]);
1859 
1861  &buf16[0],
1862  &buf32[0]);
1863 
1865  &buf16[8],
1866  &buf32[4]);
1867 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator64
Definition: decimatorsu.h:215
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate64_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate64_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 1883 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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  {
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
2273  &buf2[0],
2274  &buf4[0]);
2275 
2277  &buf2[8],
2278  &buf4[4]);
2279 
2281  &buf2[16],
2282  &buf4[8]);
2283 
2285  &buf2[24],
2286  &buf4[12]);
2287 
2289  &buf2[32],
2290  &buf4[16]);
2291 
2293  &buf2[40],
2294  &buf4[20]);
2295 
2297  &buf2[48],
2298  &buf4[24]);
2299 
2301  &buf2[56],
2302  &buf4[28]);
2303 
2305  &buf2[64],
2306  &buf4[32]);
2307 
2309  &buf2[72],
2310  &buf4[36]);
2311 
2313  &buf2[80],
2314  &buf4[40]);
2315 
2317  &buf2[88],
2318  &buf4[44]);
2319 
2321  &buf2[96],
2322  &buf4[48]);
2323 
2325  &buf2[104],
2326  &buf4[52]);
2327 
2329  &buf2[112],
2330  &buf4[56]);
2331 
2333  &buf2[120],
2334  &buf4[60]);
2335 
2337  &buf4[0],
2338  &buf8[0]);
2339 
2341  &buf4[8],
2342  &buf8[4]);
2343 
2345  &buf4[16],
2346  &buf8[8]);
2347 
2349  &buf4[24],
2350  &buf8[12]);
2351 
2353  &buf4[32],
2354  &buf8[16]);
2355 
2357  &buf4[40],
2358  &buf8[20]);
2359 
2361  &buf4[48],
2362  &buf8[24]);
2363 
2365  &buf4[56],
2366  &buf8[28]);
2367 
2369  &buf8[0],
2370  &buf16[0]);
2371 
2373  &buf8[8],
2374  &buf16[4]);
2375 
2377  &buf8[16],
2378  &buf16[8]);
2379 
2381  &buf8[24],
2382  &buf16[12]);
2383 
2385  &buf16[0],
2386  &buf32[0]);
2387 
2389  &buf16[8],
2390  &buf32[4]);
2391 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator32
Definition: decimatorsu.h:214
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator16
Definition: decimatorsu.h:213
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator64
Definition: decimatorsu.h:215
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate8_cen()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate8_cen ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 2478 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

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 
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]);
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]);
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]);
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 
2515  intbuf[0],
2516  intbuf[1],
2517  &intbuf[2],
2518  &intbuf[3]);
2520  intbuf[4],
2521  intbuf[5],
2522  &intbuf[6],
2523  &intbuf[7]);
2524 
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 }
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
void myDecimate(const Sample *sample1, Sample *sample2)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
+ Here is the caller graph for this function:

◆ decimate8_inf()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate8_inf ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 391 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

392 {
393  StorageType buf2[16], buf4[8], buf8[4];
394 
395  for (int pos = 0; pos < len - 31; pos += 32)
396  {
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 
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 
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 
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 
445  &buf2[0],
446  &buf4[0]);
447 
449  &buf2[8],
450  &buf4[4]);
451 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

◆ decimate8_sup()

template<typename StorageType , typename T, uint SdrBits, uint InputBits, int Shift>
void DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::decimate8_sup ( SampleVector::iterator *  it,
const T *  buf,
qint32  len 
)

Definition at line 467 of file decimatorsu.h.

Referenced by RTLSDRThread::callback().

468 {
469  StorageType buf2[16], buf4[8], buf8[4];
470 
471  for (int pos = 0; pos < len - 31; pos += 32)
472  {
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 
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 
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 
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 
521  &buf2[0],
522  &buf4[0]);
523 
525  &buf2[8],
526  &buf4[4]);
527 
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 }
void myDecimateSup(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
void myDecimateCen(int32_t x1, int32_t y1, int32_t *x2, int32_t *y2, int32_t x3, int32_t y3, int32_t *x4, int32_t *y4)
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator4
Definition: decimatorsu.h:211
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator2
Definition: decimatorsu.h:210
IntHalfbandFilterEO< qint32, qint32, DECIMATORS_HB_FILTER_ORDER > m_decimator8
Definition: decimatorsu.h:212
void myDecimateInf(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, int32_t x4, int32_t y4, int32_t *out)
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_decimator16

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator16
private

Definition at line 213 of file decimatorsu.h.

◆ m_decimator2

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator2
private

Definition at line 210 of file decimatorsu.h.

◆ m_decimator32

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator32
private

Definition at line 214 of file decimatorsu.h.

◆ m_decimator4

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator4
private

Definition at line 211 of file decimatorsu.h.

◆ m_decimator64

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator64
private

Definition at line 215 of file decimatorsu.h.

◆ m_decimator8

template<typename StorageType, typename T, uint SdrBits, uint InputBits, int Shift>
IntHalfbandFilterEO<qint32, qint32, DECIMATORS_HB_FILTER_ORDER> DecimatorsU< StorageType, T, SdrBits, InputBits, Shift >::m_decimator8
private

Definition at line 212 of file decimatorsu.h.


The documentation for this class was generated from the following file: