18 #ifndef INCLUDE_GPL_DSP_INTERPOLATORS_H_ 19 #define INCLUDE_GPL_DSP_INTERPOLATORS_H_ 28 #define INTERPOLATORS_HB_FILTER_ORDER_FIRST 64 29 #define INTERPOLATORS_HB_FILTER_ORDER_SECOND 32 30 #define INTERPOLATORS_HB_FILTER_ORDER_NEXT 16 32 template<u
int SdrBits, u
int OutputBits>
36 static const uint
pre2 = 0;
38 static const uint
pre4 = 0;
40 static const uint
pre8 = 0;
54 static const uint
pre2 = 1;
56 static const uint
pre4 = 2;
58 static const uint
pre8 = 3;
72 static const uint
pre2 = 1;
74 static const uint
pre4 = 2;
76 static const uint
pre8 = 3;
90 static const uint
pre2 = 1;
92 static const uint
pre4 = 2;
94 static const uint
pre8 = 3;
104 template<
typename T, u
int SdrBits, u
int OutputBits>
109 void interpolate1(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
111 void interpolate2_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
112 void interpolate2_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
113 void interpolate2_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
115 void interpolate4_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
116 void interpolate4_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
117 void interpolate4_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
119 void interpolate8_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
120 void interpolate8_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
121 void interpolate8_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
123 void interpolate16_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
124 void interpolate16_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
125 void interpolate16_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
127 void interpolate32_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
128 void interpolate32_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
129 void interpolate32_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
131 void interpolate64_cen(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
132 void interpolate64_inf(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
133 void interpolate64_sup(SampleVector::iterator* it, T* buf, qint32 len,
bool invertIQ =
false);
153 template<
typename T, u
int SdrBits, u
int OutputBits>
158 for (
int pos = 0; pos < len - 1; pos += 2)
167 for (
int pos = 0; pos < len - 1; pos += 2)
176 template<
typename T, u
int SdrBits, u
int OutputBits>
193 for (
int pos = 0; pos < len - 3; pos += 4)
200 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
203 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post2;
204 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post2;
205 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post2;
211 template<
typename T, u
int SdrBits, u
int OutputBits>
215 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
232 for (
int pos = 0; pos < len - 7; pos += 8)
234 memset(intbuf, 0, 8*
sizeof(qint32));
243 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
246 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post2;
247 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post2;
248 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post2;
249 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post2;
250 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post2;
251 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post2;
252 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post2;
256 template<
typename T, u
int SdrBits, u
int OutputBits>
260 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
277 for (
int pos = 0; pos < len - 7; pos += 8)
279 memset(intbuf, 0, 8*
sizeof(qint32));
288 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
291 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post2;
292 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post2;
293 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post2;
294 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post2;
295 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post2;
296 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post2;
297 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post2;
301 template<
typename T, u
int SdrBits, u
int OutputBits>
318 for (
int pos = 0; pos < len - 7; pos += 8)
320 memset(intbuf, 0, 8*
sizeof(qint32));
324 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5]);
326 m_interpolator4.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
327 m_interpolator4.myInterpolate(&intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
330 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post4;
331 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post4;
332 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post4;
333 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post4;
334 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post4;
335 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post4;
336 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post4;
342 template<
typename T, u
int SdrBits, u
int OutputBits>
346 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
363 for (
int pos = 0; pos < len - 15; pos += 16)
365 memset(intbuf, 0, 16*
sizeof(qint32));
373 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
375 m_interpolator4.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
376 m_interpolator4.myInterpolateInf(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
378 for (
int i = 0;
i < 16;
i++) {
384 template<
typename T, u
int SdrBits, u
int OutputBits>
388 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
405 for (
int pos = 0; pos < len - 15; pos += 16)
407 memset(intbuf, 0, 16*
sizeof(qint32));
415 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
417 m_interpolator4.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
418 m_interpolator4.myInterpolateSup(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
420 for (
int i = 0;
i < 16;
i++) {
426 template<
typename T, u
int SdrBits, u
int OutputBits>
443 for (
int pos = 0; pos < len - 15; pos += 16)
445 memset(intbuf, 0, 16*
sizeof(qint32));
449 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9]);
451 m_interpolator4.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5]);
452 m_interpolator4.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
454 m_interpolator8.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
455 m_interpolator8.myInterpolate(&intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
456 m_interpolator8.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11]);
457 m_interpolator8.myInterpolate(&intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
460 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post8;
461 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post8;
462 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post8;
463 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post8;
464 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post8;
465 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post8;
466 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post8;
467 buf[pos+8] = intbuf[8] >> interpolation_shifts<SdrBits, OutputBits>::post8;
468 buf[pos+9] = intbuf[9] >> interpolation_shifts<SdrBits, OutputBits>::post8;
469 buf[pos+10] = intbuf[10] >> interpolation_shifts<SdrBits, OutputBits>::post8;
470 buf[pos+11] = intbuf[11] >> interpolation_shifts<SdrBits, OutputBits>::post8;
471 buf[pos+12] = intbuf[12] >> interpolation_shifts<SdrBits, OutputBits>::post8;
472 buf[pos+13] = intbuf[13] >> interpolation_shifts<SdrBits, OutputBits>::post8;
473 buf[pos+14] = intbuf[14] >> interpolation_shifts<SdrBits, OutputBits>::post8;
474 buf[pos+15] = intbuf[15] >> interpolation_shifts<SdrBits, OutputBits>::post8;
480 template<
typename T, u
int SdrBits, u
int OutputBits>
484 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
501 for (
int pos = 0; pos < len - 31; pos += 32)
503 memset(intbuf, 0, 32*
sizeof(qint32));
511 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
513 m_interpolator4.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
514 m_interpolator4.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
516 m_interpolator8.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
517 m_interpolator8.myInterpolateInf(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
518 m_interpolator8.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
519 m_interpolator8.myInterpolateInf(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
521 for (
int i = 0;
i < 32;
i++) {
527 template<
typename T, u
int SdrBits, u
int OutputBits>
531 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
548 for (
int pos = 0; pos < len - 31; pos += 32)
550 memset(intbuf, 0, 32*
sizeof(qint32));
558 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
560 m_interpolator4.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
561 m_interpolator4.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
563 m_interpolator8.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
564 m_interpolator8.myInterpolateSup(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
565 m_interpolator8.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
566 m_interpolator8.myInterpolateSup(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
568 for (
int i = 0;
i < 32;
i++) {
574 template<
typename T, u
int SdrBits, u
int OutputBits>
591 for (
int pos = 0; pos < len - 31; pos += 32)
593 memset(intbuf, 0, 32*
sizeof(qint32));
597 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17]);
599 m_interpolator4.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9]);
600 m_interpolator4.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
602 m_interpolator8.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5]);
603 m_interpolator8.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
604 m_interpolator8.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21]);
605 m_interpolator8.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
607 m_interpolator16.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
608 m_interpolator16.myInterpolate(&intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
609 m_interpolator16.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11]);
610 m_interpolator16.myInterpolate(&intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
611 m_interpolator16.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19]);
612 m_interpolator16.myInterpolate(&intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
613 m_interpolator16.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27]);
614 m_interpolator16.myInterpolate(&intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
617 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post16;
618 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post16;
619 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post16;
620 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post16;
621 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post16;
622 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post16;
623 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post16;
624 buf[pos+8] = intbuf[8] >> interpolation_shifts<SdrBits, OutputBits>::post16;
625 buf[pos+9] = intbuf[9] >> interpolation_shifts<SdrBits, OutputBits>::post16;
626 buf[pos+10] = intbuf[10] >> interpolation_shifts<SdrBits, OutputBits>::post16;
627 buf[pos+11] = intbuf[11] >> interpolation_shifts<SdrBits, OutputBits>::post16;
628 buf[pos+12] = intbuf[12] >> interpolation_shifts<SdrBits, OutputBits>::post16;
629 buf[pos+13] = intbuf[13] >> interpolation_shifts<SdrBits, OutputBits>::post16;
630 buf[pos+14] = intbuf[14] >> interpolation_shifts<SdrBits, OutputBits>::post16;
631 buf[pos+15] = intbuf[15] >> interpolation_shifts<SdrBits, OutputBits>::post16;
632 buf[pos+16] = intbuf[16] >> interpolation_shifts<SdrBits, OutputBits>::post16;
633 buf[pos+17] = intbuf[17] >> interpolation_shifts<SdrBits, OutputBits>::post16;
634 buf[pos+18] = intbuf[18] >> interpolation_shifts<SdrBits, OutputBits>::post16;
635 buf[pos+19] = intbuf[19] >> interpolation_shifts<SdrBits, OutputBits>::post16;
636 buf[pos+20] = intbuf[20] >> interpolation_shifts<SdrBits, OutputBits>::post16;
637 buf[pos+21] = intbuf[21] >> interpolation_shifts<SdrBits, OutputBits>::post16;
638 buf[pos+22] = intbuf[22] >> interpolation_shifts<SdrBits, OutputBits>::post16;
639 buf[pos+23] = intbuf[23] >> interpolation_shifts<SdrBits, OutputBits>::post16;
640 buf[pos+24] = intbuf[24] >> interpolation_shifts<SdrBits, OutputBits>::post16;
641 buf[pos+25] = intbuf[25] >> interpolation_shifts<SdrBits, OutputBits>::post16;
642 buf[pos+26] = intbuf[26] >> interpolation_shifts<SdrBits, OutputBits>::post16;
643 buf[pos+27] = intbuf[27] >> interpolation_shifts<SdrBits, OutputBits>::post16;
644 buf[pos+28] = intbuf[28] >> interpolation_shifts<SdrBits, OutputBits>::post16;
645 buf[pos+29] = intbuf[29] >> interpolation_shifts<SdrBits, OutputBits>::post16;
646 buf[pos+30] = intbuf[30] >> interpolation_shifts<SdrBits, OutputBits>::post16;
647 buf[pos+31] = intbuf[31] >> interpolation_shifts<SdrBits, OutputBits>::post16;
653 template<
typename T, u
int SdrBits, u
int OutputBits>
657 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
674 for (
int pos = 0; pos < len - 63; pos += 64)
676 memset(intbuf, 0, 64*
sizeof(qint32));
684 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
686 m_interpolator4.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
687 m_interpolator4.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
689 m_interpolator8.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
690 m_interpolator8.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
691 m_interpolator8.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37], &intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
692 m_interpolator8.myInterpolateInf(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53], &intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
694 m_interpolator16.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
695 m_interpolator16.myInterpolateInf(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
696 m_interpolator16.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
697 m_interpolator16.myInterpolateInf(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
698 m_interpolator16.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35], &intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
699 m_interpolator16.myInterpolateInf(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43], &intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
700 m_interpolator16.myInterpolateInf(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51], &intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
701 m_interpolator16.myInterpolateInf(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59], &intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
703 for (
int i = 0;
i < 64;
i++) {
709 template<
typename T, u
int SdrBits, u
int OutputBits>
713 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
730 for (
int pos = 0; pos < len - 63; pos += 64)
732 memset(intbuf, 0, 64*
sizeof(qint32));
740 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
742 m_interpolator4.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
743 m_interpolator4.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
745 m_interpolator8.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
746 m_interpolator8.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
747 m_interpolator8.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37], &intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
748 m_interpolator8.myInterpolateSup(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53], &intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
750 m_interpolator16.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
751 m_interpolator16.myInterpolateSup(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
752 m_interpolator16.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
753 m_interpolator16.myInterpolateSup(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
754 m_interpolator16.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35], &intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
755 m_interpolator16.myInterpolateSup(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43], &intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
756 m_interpolator16.myInterpolateSup(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51], &intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
757 m_interpolator16.myInterpolateSup(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59], &intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
759 for (
int i = 0;
i < 64;
i++) {
765 template<
typename T, u
int SdrBits, u
int OutputBits>
782 for (
int pos = 0; pos < len - 63; pos += 64)
784 memset(intbuf, 0, 64*
sizeof(qint32));
787 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33]);
789 m_interpolator4.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17]);
790 m_interpolator4.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
792 m_interpolator8.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9]);
793 m_interpolator8.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
794 m_interpolator8.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41]);
795 m_interpolator8.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
797 m_interpolator16.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5]);
798 m_interpolator16.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
799 m_interpolator16.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21]);
800 m_interpolator16.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
801 m_interpolator16.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37]);
802 m_interpolator16.myInterpolate(&intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
803 m_interpolator16.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53]);
804 m_interpolator16.myInterpolate(&intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
806 m_interpolator32.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
807 m_interpolator32.myInterpolate(&intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
808 m_interpolator32.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11]);
809 m_interpolator32.myInterpolate(&intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
810 m_interpolator32.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19]);
811 m_interpolator32.myInterpolate(&intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
812 m_interpolator32.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27]);
813 m_interpolator32.myInterpolate(&intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
814 m_interpolator32.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35]);
815 m_interpolator32.myInterpolate(&intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
816 m_interpolator32.myInterpolate(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43]);
817 m_interpolator32.myInterpolate(&intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
818 m_interpolator32.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51]);
819 m_interpolator32.myInterpolate(&intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
820 m_interpolator32.myInterpolate(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59]);
821 m_interpolator32.myInterpolate(&intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
824 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post32;
825 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post32;
826 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post32;
827 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post32;
828 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post32;
829 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post32;
830 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post32;
831 buf[pos+8] = intbuf[8] >> interpolation_shifts<SdrBits, OutputBits>::post32;
832 buf[pos+9] = intbuf[9] >> interpolation_shifts<SdrBits, OutputBits>::post32;
833 buf[pos+10] = intbuf[10] >> interpolation_shifts<SdrBits, OutputBits>::post32;
834 buf[pos+11] = intbuf[11] >> interpolation_shifts<SdrBits, OutputBits>::post32;
835 buf[pos+12] = intbuf[12] >> interpolation_shifts<SdrBits, OutputBits>::post32;
836 buf[pos+13] = intbuf[13] >> interpolation_shifts<SdrBits, OutputBits>::post32;
837 buf[pos+14] = intbuf[14] >> interpolation_shifts<SdrBits, OutputBits>::post32;
838 buf[pos+15] = intbuf[15] >> interpolation_shifts<SdrBits, OutputBits>::post32;
839 buf[pos+16] = intbuf[16] >> interpolation_shifts<SdrBits, OutputBits>::post32;
840 buf[pos+17] = intbuf[17] >> interpolation_shifts<SdrBits, OutputBits>::post32;
841 buf[pos+18] = intbuf[18] >> interpolation_shifts<SdrBits, OutputBits>::post32;
842 buf[pos+19] = intbuf[19] >> interpolation_shifts<SdrBits, OutputBits>::post32;
843 buf[pos+20] = intbuf[20] >> interpolation_shifts<SdrBits, OutputBits>::post32;
844 buf[pos+21] = intbuf[21] >> interpolation_shifts<SdrBits, OutputBits>::post32;
845 buf[pos+22] = intbuf[22] >> interpolation_shifts<SdrBits, OutputBits>::post32;
846 buf[pos+23] = intbuf[23] >> interpolation_shifts<SdrBits, OutputBits>::post32;
847 buf[pos+24] = intbuf[24] >> interpolation_shifts<SdrBits, OutputBits>::post32;
848 buf[pos+25] = intbuf[25] >> interpolation_shifts<SdrBits, OutputBits>::post32;
849 buf[pos+26] = intbuf[26] >> interpolation_shifts<SdrBits, OutputBits>::post32;
850 buf[pos+27] = intbuf[27] >> interpolation_shifts<SdrBits, OutputBits>::post32;
851 buf[pos+28] = intbuf[28] >> interpolation_shifts<SdrBits, OutputBits>::post32;
852 buf[pos+29] = intbuf[29] >> interpolation_shifts<SdrBits, OutputBits>::post32;
853 buf[pos+30] = intbuf[30] >> interpolation_shifts<SdrBits, OutputBits>::post32;
854 buf[pos+31] = intbuf[31] >> interpolation_shifts<SdrBits, OutputBits>::post32;
855 buf[pos+32] = intbuf[32] >> interpolation_shifts<SdrBits, OutputBits>::post32;
856 buf[pos+33] = intbuf[33] >> interpolation_shifts<SdrBits, OutputBits>::post32;
857 buf[pos+34] = intbuf[34] >> interpolation_shifts<SdrBits, OutputBits>::post32;
858 buf[pos+35] = intbuf[35] >> interpolation_shifts<SdrBits, OutputBits>::post32;
859 buf[pos+36] = intbuf[36] >> interpolation_shifts<SdrBits, OutputBits>::post32;
860 buf[pos+37] = intbuf[37] >> interpolation_shifts<SdrBits, OutputBits>::post32;
861 buf[pos+38] = intbuf[38] >> interpolation_shifts<SdrBits, OutputBits>::post32;
862 buf[pos+39] = intbuf[39] >> interpolation_shifts<SdrBits, OutputBits>::post32;
863 buf[pos+40] = intbuf[40] >> interpolation_shifts<SdrBits, OutputBits>::post32;
864 buf[pos+41] = intbuf[41] >> interpolation_shifts<SdrBits, OutputBits>::post32;
865 buf[pos+42] = intbuf[42] >> interpolation_shifts<SdrBits, OutputBits>::post32;
866 buf[pos+43] = intbuf[43] >> interpolation_shifts<SdrBits, OutputBits>::post32;
867 buf[pos+44] = intbuf[44] >> interpolation_shifts<SdrBits, OutputBits>::post32;
868 buf[pos+45] = intbuf[45] >> interpolation_shifts<SdrBits, OutputBits>::post32;
869 buf[pos+46] = intbuf[46] >> interpolation_shifts<SdrBits, OutputBits>::post32;
870 buf[pos+47] = intbuf[47] >> interpolation_shifts<SdrBits, OutputBits>::post32;
871 buf[pos+48] = intbuf[48] >> interpolation_shifts<SdrBits, OutputBits>::post32;
872 buf[pos+49] = intbuf[49] >> interpolation_shifts<SdrBits, OutputBits>::post32;
873 buf[pos+50] = intbuf[50] >> interpolation_shifts<SdrBits, OutputBits>::post32;
874 buf[pos+51] = intbuf[51] >> interpolation_shifts<SdrBits, OutputBits>::post32;
875 buf[pos+52] = intbuf[52] >> interpolation_shifts<SdrBits, OutputBits>::post32;
876 buf[pos+53] = intbuf[53] >> interpolation_shifts<SdrBits, OutputBits>::post32;
877 buf[pos+54] = intbuf[54] >> interpolation_shifts<SdrBits, OutputBits>::post32;
878 buf[pos+55] = intbuf[55] >> interpolation_shifts<SdrBits, OutputBits>::post32;
879 buf[pos+56] = intbuf[56] >> interpolation_shifts<SdrBits, OutputBits>::post32;
880 buf[pos+57] = intbuf[57] >> interpolation_shifts<SdrBits, OutputBits>::post32;
881 buf[pos+58] = intbuf[58] >> interpolation_shifts<SdrBits, OutputBits>::post32;
882 buf[pos+59] = intbuf[59] >> interpolation_shifts<SdrBits, OutputBits>::post32;
883 buf[pos+60] = intbuf[60] >> interpolation_shifts<SdrBits, OutputBits>::post32;
884 buf[pos+61] = intbuf[61] >> interpolation_shifts<SdrBits, OutputBits>::post32;
885 buf[pos+62] = intbuf[62] >> interpolation_shifts<SdrBits, OutputBits>::post32;
886 buf[pos+63] = intbuf[63] >> interpolation_shifts<SdrBits, OutputBits>::post32;
892 template<
typename T, u
int SdrBits, u
int OutputBits>
896 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
913 for (
int pos = 0; pos < len - 127; pos += 128)
915 memset(intbuf, 0, 128*
sizeof(qint32));
923 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33], &intbuf[64], &intbuf[65], &intbuf[96], &intbuf[97]);
925 m_interpolator4.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
926 m_interpolator4.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[80], &intbuf[81], &intbuf[96], &intbuf[97], &intbuf[112], &intbuf[113]);
928 m_interpolator8.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
929 m_interpolator8.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
930 m_interpolator8.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[72], &intbuf[73], &intbuf[80], &intbuf[81], &intbuf[88], &intbuf[89]);
931 m_interpolator8.myInterpolateSup(&intbuf[96], &intbuf[97], &intbuf[104], &intbuf[105], &intbuf[112], &intbuf[113], &intbuf[120], &intbuf[121]);
933 m_interpolator16.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
934 m_interpolator16.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
935 m_interpolator16.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37], &intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
936 m_interpolator16.myInterpolateInf(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53], &intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
937 m_interpolator16.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[68], &intbuf[69], &intbuf[72], &intbuf[73], &intbuf[76], &intbuf[77]);
938 m_interpolator16.myInterpolateInf(&intbuf[80], &intbuf[81], &intbuf[84], &intbuf[85], &intbuf[88], &intbuf[89], &intbuf[92], &intbuf[93]);
939 m_interpolator16.myInterpolateInf(&intbuf[96], &intbuf[97], &intbuf[100], &intbuf[101], &intbuf[104], &intbuf[105], &intbuf[108], &intbuf[109]);
940 m_interpolator16.myInterpolateInf(&intbuf[112], &intbuf[113], &intbuf[116], &intbuf[117], &intbuf[120], &intbuf[121], &intbuf[124], &intbuf[125]);
942 m_interpolator32.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
943 m_interpolator32.myInterpolateInf(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
944 m_interpolator32.myInterpolateInf(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
945 m_interpolator32.myInterpolateInf(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
946 m_interpolator32.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35], &intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
947 m_interpolator32.myInterpolateInf(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43], &intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
948 m_interpolator32.myInterpolateInf(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51], &intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
949 m_interpolator32.myInterpolateInf(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59], &intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
950 m_interpolator32.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[66], &intbuf[67], &intbuf[68], &intbuf[69], &intbuf[70], &intbuf[71]);
951 m_interpolator32.myInterpolateInf(&intbuf[72], &intbuf[73], &intbuf[74], &intbuf[75], &intbuf[76], &intbuf[77], &intbuf[78], &intbuf[79]);
952 m_interpolator32.myInterpolateInf(&intbuf[80], &intbuf[81], &intbuf[82], &intbuf[83], &intbuf[84], &intbuf[85], &intbuf[86], &intbuf[87]);
953 m_interpolator32.myInterpolateInf(&intbuf[88], &intbuf[89], &intbuf[90], &intbuf[91], &intbuf[92], &intbuf[93], &intbuf[94], &intbuf[95]);
954 m_interpolator32.myInterpolateInf(&intbuf[96], &intbuf[97], &intbuf[98], &intbuf[99], &intbuf[100], &intbuf[101], &intbuf[102], &intbuf[103]);
955 m_interpolator32.myInterpolateInf(&intbuf[104], &intbuf[105], &intbuf[106], &intbuf[107], &intbuf[108], &intbuf[109], &intbuf[110], &intbuf[111]);
956 m_interpolator32.myInterpolateInf(&intbuf[112], &intbuf[113], &intbuf[114], &intbuf[115], &intbuf[116], &intbuf[117], &intbuf[118], &intbuf[119]);
957 m_interpolator32.myInterpolateInf(&intbuf[120], &intbuf[121], &intbuf[122], &intbuf[123], &intbuf[124], &intbuf[125], &intbuf[126], &intbuf[127]);
959 for (
int i = 0;
i < 128;
i++) {
965 template<
typename T, u
int SdrBits, u
int OutputBits>
969 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
986 for (
int pos = 0; pos < len - 127; pos += 128)
988 memset(intbuf, 0, 128*
sizeof(qint32));
996 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33], &intbuf[64], &intbuf[65], &intbuf[96], &intbuf[97]);
998 m_interpolator4.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
999 m_interpolator4.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[80], &intbuf[81], &intbuf[96], &intbuf[97], &intbuf[112], &intbuf[113]);
1001 m_interpolator8.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
1002 m_interpolator8.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
1003 m_interpolator8.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[72], &intbuf[73], &intbuf[80], &intbuf[81], &intbuf[88], &intbuf[89]);
1004 m_interpolator8.myInterpolateInf(&intbuf[96], &intbuf[97], &intbuf[104], &intbuf[105], &intbuf[112], &intbuf[113], &intbuf[120], &intbuf[121]);
1006 m_interpolator16.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5], &intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
1007 m_interpolator16.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21], &intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
1008 m_interpolator16.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37], &intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
1009 m_interpolator16.myInterpolateSup(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53], &intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
1010 m_interpolator16.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[68], &intbuf[69], &intbuf[72], &intbuf[73], &intbuf[76], &intbuf[77]);
1011 m_interpolator16.myInterpolateSup(&intbuf[80], &intbuf[81], &intbuf[84], &intbuf[85], &intbuf[88], &intbuf[89], &intbuf[92], &intbuf[93]);
1012 m_interpolator16.myInterpolateSup(&intbuf[96], &intbuf[97], &intbuf[100], &intbuf[101], &intbuf[104], &intbuf[105], &intbuf[108], &intbuf[109]);
1013 m_interpolator16.myInterpolateSup(&intbuf[112], &intbuf[113], &intbuf[116], &intbuf[117], &intbuf[120], &intbuf[121], &intbuf[124], &intbuf[125]);
1015 m_interpolator32.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3], &intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
1016 m_interpolator32.myInterpolateSup(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11], &intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
1017 m_interpolator32.myInterpolateSup(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19], &intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
1018 m_interpolator32.myInterpolateSup(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27], &intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
1019 m_interpolator32.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35], &intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
1020 m_interpolator32.myInterpolateSup(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43], &intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
1021 m_interpolator32.myInterpolateSup(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51], &intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
1022 m_interpolator32.myInterpolateSup(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59], &intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
1023 m_interpolator32.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[66], &intbuf[67], &intbuf[68], &intbuf[69], &intbuf[70], &intbuf[71]);
1024 m_interpolator32.myInterpolateSup(&intbuf[72], &intbuf[73], &intbuf[74], &intbuf[75], &intbuf[76], &intbuf[77], &intbuf[78], &intbuf[79]);
1025 m_interpolator32.myInterpolateSup(&intbuf[80], &intbuf[81], &intbuf[82], &intbuf[83], &intbuf[84], &intbuf[85], &intbuf[86], &intbuf[87]);
1026 m_interpolator32.myInterpolateSup(&intbuf[88], &intbuf[89], &intbuf[90], &intbuf[91], &intbuf[92], &intbuf[93], &intbuf[94], &intbuf[95]);
1027 m_interpolator32.myInterpolateSup(&intbuf[96], &intbuf[97], &intbuf[98], &intbuf[99], &intbuf[100], &intbuf[101], &intbuf[102], &intbuf[103]);
1028 m_interpolator32.myInterpolateSup(&intbuf[104], &intbuf[105], &intbuf[106], &intbuf[107], &intbuf[108], &intbuf[109], &intbuf[110], &intbuf[111]);
1029 m_interpolator32.myInterpolateSup(&intbuf[112], &intbuf[113], &intbuf[114], &intbuf[115], &intbuf[116], &intbuf[117], &intbuf[118], &intbuf[119]);
1030 m_interpolator32.myInterpolateSup(&intbuf[120], &intbuf[121], &intbuf[122], &intbuf[123], &intbuf[124], &intbuf[125], &intbuf[126], &intbuf[127]);
1032 for (
int i = 0;
i < 128;
i++) {
1038 template<
typename T, u
int SdrBits, u
int OutputBits>
1042 qint32 *bufI, *bufQ;
1055 for (
int pos = 0; pos < len - 127; pos += 128)
1057 memset(intbuf, 0, 128*
sizeof(qint32));
1060 m_interpolator2.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[64], &intbuf[65]);
1062 m_interpolator4.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33]);
1063 m_interpolator4.myInterpolate(&intbuf[64], &intbuf[65], &intbuf[96], &intbuf[97]);
1065 m_interpolator8.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17]);
1066 m_interpolator8.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
1067 m_interpolator8.myInterpolate(&intbuf[64], &intbuf[65], &intbuf[80], &intbuf[81]);
1068 m_interpolator8.myInterpolate(&intbuf[96], &intbuf[97], &intbuf[112], &intbuf[113]);
1070 m_interpolator16.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9]);
1071 m_interpolator16.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
1072 m_interpolator16.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41]);
1073 m_interpolator16.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
1074 m_interpolator16.myInterpolate(&intbuf[64], &intbuf[65], &intbuf[72], &intbuf[73]);
1075 m_interpolator16.myInterpolate(&intbuf[80], &intbuf[81], &intbuf[88], &intbuf[89]);
1076 m_interpolator16.myInterpolate(&intbuf[96], &intbuf[97], &intbuf[104], &intbuf[105]);
1077 m_interpolator16.myInterpolate(&intbuf[112], &intbuf[113], &intbuf[120], &intbuf[121]);
1079 m_interpolator32.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[4], &intbuf[5]);
1080 m_interpolator32.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[12], &intbuf[13]);
1081 m_interpolator32.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[20], &intbuf[21]);
1082 m_interpolator32.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[28], &intbuf[29]);
1083 m_interpolator32.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[36], &intbuf[37]);
1084 m_interpolator32.myInterpolate(&intbuf[40], &intbuf[41], &intbuf[44], &intbuf[45]);
1085 m_interpolator32.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[52], &intbuf[53]);
1086 m_interpolator32.myInterpolate(&intbuf[56], &intbuf[57], &intbuf[60], &intbuf[61]);
1087 m_interpolator32.myInterpolate(&intbuf[64], &intbuf[65], &intbuf[68], &intbuf[69]);
1088 m_interpolator32.myInterpolate(&intbuf[72], &intbuf[73], &intbuf[76], &intbuf[77]);
1089 m_interpolator32.myInterpolate(&intbuf[80], &intbuf[81], &intbuf[84], &intbuf[85]);
1090 m_interpolator32.myInterpolate(&intbuf[88], &intbuf[89], &intbuf[92], &intbuf[93]);
1091 m_interpolator32.myInterpolate(&intbuf[96], &intbuf[97], &intbuf[100], &intbuf[101]);
1092 m_interpolator32.myInterpolate(&intbuf[104], &intbuf[105], &intbuf[108], &intbuf[109]);
1093 m_interpolator32.myInterpolate(&intbuf[112], &intbuf[113], &intbuf[116], &intbuf[117]);
1094 m_interpolator32.myInterpolate(&intbuf[120], &intbuf[121], &intbuf[124], &intbuf[125]);
1096 m_interpolator64.myInterpolate(&intbuf[0], &intbuf[1], &intbuf[2], &intbuf[3]);
1097 m_interpolator64.myInterpolate(&intbuf[4], &intbuf[5], &intbuf[6], &intbuf[7]);
1098 m_interpolator64.myInterpolate(&intbuf[8], &intbuf[9], &intbuf[10], &intbuf[11]);
1099 m_interpolator64.myInterpolate(&intbuf[12], &intbuf[13], &intbuf[14], &intbuf[15]);
1100 m_interpolator64.myInterpolate(&intbuf[16], &intbuf[17], &intbuf[18], &intbuf[19]);
1101 m_interpolator64.myInterpolate(&intbuf[20], &intbuf[21], &intbuf[22], &intbuf[23]);
1102 m_interpolator64.myInterpolate(&intbuf[24], &intbuf[25], &intbuf[26], &intbuf[27]);
1103 m_interpolator64.myInterpolate(&intbuf[28], &intbuf[29], &intbuf[30], &intbuf[31]);
1104 m_interpolator64.myInterpolate(&intbuf[32], &intbuf[33], &intbuf[34], &intbuf[35]);
1105 m_interpolator64.myInterpolate(&intbuf[36], &intbuf[37], &intbuf[38], &intbuf[39]);
1106 m_interpolator64.myInterpolate(&intbuf[40], &intbuf[41], &intbuf[42], &intbuf[43]);
1107 m_interpolator64.myInterpolate(&intbuf[44], &intbuf[45], &intbuf[46], &intbuf[47]);
1108 m_interpolator64.myInterpolate(&intbuf[48], &intbuf[49], &intbuf[50], &intbuf[51]);
1109 m_interpolator64.myInterpolate(&intbuf[52], &intbuf[53], &intbuf[54], &intbuf[55]);
1110 m_interpolator64.myInterpolate(&intbuf[56], &intbuf[57], &intbuf[58], &intbuf[59]);
1111 m_interpolator64.myInterpolate(&intbuf[60], &intbuf[61], &intbuf[62], &intbuf[63]);
1112 m_interpolator64.myInterpolate(&intbuf[64], &intbuf[65], &intbuf[66], &intbuf[67]);
1113 m_interpolator64.myInterpolate(&intbuf[68], &intbuf[69], &intbuf[70], &intbuf[71]);
1114 m_interpolator64.myInterpolate(&intbuf[72], &intbuf[73], &intbuf[74], &intbuf[75]);
1115 m_interpolator64.myInterpolate(&intbuf[76], &intbuf[77], &intbuf[78], &intbuf[79]);
1116 m_interpolator64.myInterpolate(&intbuf[80], &intbuf[81], &intbuf[82], &intbuf[83]);
1117 m_interpolator64.myInterpolate(&intbuf[84], &intbuf[85], &intbuf[86], &intbuf[87]);
1118 m_interpolator64.myInterpolate(&intbuf[88], &intbuf[89], &intbuf[90], &intbuf[91]);
1119 m_interpolator64.myInterpolate(&intbuf[92], &intbuf[93], &intbuf[94], &intbuf[95]);
1120 m_interpolator64.myInterpolate(&intbuf[96], &intbuf[97], &intbuf[98], &intbuf[99]);
1121 m_interpolator64.myInterpolate(&intbuf[100], &intbuf[101], &intbuf[102], &intbuf[103]);
1122 m_interpolator64.myInterpolate(&intbuf[104], &intbuf[105], &intbuf[106], &intbuf[107]);
1123 m_interpolator64.myInterpolate(&intbuf[108], &intbuf[109], &intbuf[110], &intbuf[111]);
1124 m_interpolator64.myInterpolate(&intbuf[112], &intbuf[113], &intbuf[114], &intbuf[115]);
1125 m_interpolator64.myInterpolate(&intbuf[116], &intbuf[117], &intbuf[118], &intbuf[119]);
1126 m_interpolator64.myInterpolate(&intbuf[120], &intbuf[121], &intbuf[122], &intbuf[123]);
1127 m_interpolator64.myInterpolate(&intbuf[124], &intbuf[125], &intbuf[126], &intbuf[127]);
1130 buf[pos+1] = intbuf[1] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1131 buf[pos+2] = intbuf[2] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1132 buf[pos+3] = intbuf[3] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1133 buf[pos+4] = intbuf[4] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1134 buf[pos+5] = intbuf[5] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1135 buf[pos+6] = intbuf[6] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1136 buf[pos+7] = intbuf[7] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1137 buf[pos+8] = intbuf[8] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1138 buf[pos+9] = intbuf[9] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1139 buf[pos+10] = intbuf[10] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1140 buf[pos+11] = intbuf[11] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1141 buf[pos+12] = intbuf[12] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1142 buf[pos+13] = intbuf[13] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1143 buf[pos+14] = intbuf[14] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1144 buf[pos+15] = intbuf[15] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1145 buf[pos+16] = intbuf[16] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1146 buf[pos+17] = intbuf[17] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1147 buf[pos+18] = intbuf[18] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1148 buf[pos+19] = intbuf[19] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1149 buf[pos+20] = intbuf[20] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1150 buf[pos+21] = intbuf[21] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1151 buf[pos+22] = intbuf[22] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1152 buf[pos+23] = intbuf[23] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1153 buf[pos+24] = intbuf[24] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1154 buf[pos+25] = intbuf[25] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1155 buf[pos+26] = intbuf[26] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1156 buf[pos+27] = intbuf[27] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1157 buf[pos+28] = intbuf[28] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1158 buf[pos+29] = intbuf[29] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1159 buf[pos+30] = intbuf[30] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1160 buf[pos+31] = intbuf[31] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1161 buf[pos+32] = intbuf[32] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1162 buf[pos+33] = intbuf[33] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1163 buf[pos+34] = intbuf[34] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1164 buf[pos+35] = intbuf[35] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1165 buf[pos+36] = intbuf[36] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1166 buf[pos+37] = intbuf[37] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1167 buf[pos+38] = intbuf[38] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1168 buf[pos+39] = intbuf[39] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1169 buf[pos+40] = intbuf[40] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1170 buf[pos+41] = intbuf[41] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1171 buf[pos+42] = intbuf[42] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1172 buf[pos+43] = intbuf[43] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1173 buf[pos+44] = intbuf[44] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1174 buf[pos+45] = intbuf[45] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1175 buf[pos+46] = intbuf[46] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1176 buf[pos+47] = intbuf[47] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1177 buf[pos+48] = intbuf[48] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1178 buf[pos+49] = intbuf[49] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1179 buf[pos+50] = intbuf[50] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1180 buf[pos+51] = intbuf[51] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1181 buf[pos+52] = intbuf[52] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1182 buf[pos+53] = intbuf[53] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1183 buf[pos+54] = intbuf[54] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1184 buf[pos+55] = intbuf[55] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1185 buf[pos+56] = intbuf[56] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1186 buf[pos+57] = intbuf[57] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1187 buf[pos+58] = intbuf[58] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1188 buf[pos+59] = intbuf[59] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1189 buf[pos+60] = intbuf[60] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1190 buf[pos+61] = intbuf[61] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1191 buf[pos+62] = intbuf[62] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1192 buf[pos+63] = intbuf[63] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1193 buf[pos+64] = intbuf[64] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1194 buf[pos+65] = intbuf[65] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1195 buf[pos+66] = intbuf[66] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1196 buf[pos+67] = intbuf[67] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1197 buf[pos+68] = intbuf[68] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1198 buf[pos+69] = intbuf[69] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1199 buf[pos+70] = intbuf[70] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1200 buf[pos+71] = intbuf[71] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1201 buf[pos+72] = intbuf[72] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1202 buf[pos+73] = intbuf[73] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1203 buf[pos+74] = intbuf[74] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1204 buf[pos+75] = intbuf[75] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1205 buf[pos+76] = intbuf[76] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1206 buf[pos+77] = intbuf[77] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1207 buf[pos+78] = intbuf[78] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1208 buf[pos+79] = intbuf[79] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1209 buf[pos+80] = intbuf[80] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1210 buf[pos+81] = intbuf[81] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1211 buf[pos+82] = intbuf[82] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1212 buf[pos+83] = intbuf[83] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1213 buf[pos+84] = intbuf[84] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1214 buf[pos+85] = intbuf[85] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1215 buf[pos+86] = intbuf[86] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1216 buf[pos+87] = intbuf[87] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1217 buf[pos+88] = intbuf[88] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1218 buf[pos+89] = intbuf[89] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1219 buf[pos+90] = intbuf[90] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1220 buf[pos+91] = intbuf[91] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1221 buf[pos+92] = intbuf[92] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1222 buf[pos+93] = intbuf[93] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1223 buf[pos+94] = intbuf[94] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1224 buf[pos+95] = intbuf[95] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1225 buf[pos+96] = intbuf[96] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1226 buf[pos+97] = intbuf[97] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1227 buf[pos+98] = intbuf[98] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1228 buf[pos+99] = intbuf[99] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1229 buf[pos+100] = intbuf[100] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1230 buf[pos+101] = intbuf[101] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1231 buf[pos+102] = intbuf[102] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1232 buf[pos+103] = intbuf[103] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1233 buf[pos+104] = intbuf[104] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1234 buf[pos+105] = intbuf[105] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1235 buf[pos+106] = intbuf[106] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1236 buf[pos+107] = intbuf[107] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1237 buf[pos+108] = intbuf[108] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1238 buf[pos+109] = intbuf[109] >> interpolation_shifts<SdrBits, OutputBits>::post64;
1244 template<
typename T, u
int SdrBits, u
int OutputBits>
1248 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
1254 bufI1 = &intbuf[129];
1255 bufQ1 = &intbuf[128];
1261 bufI1 = &intbuf[128];
1262 bufQ1 = &intbuf[129];
1265 for (
int pos = 0; pos < len - 255; pos += 256)
1267 memset(intbuf, 0, 256*
sizeof(qint32));
1275 m_interpolator2.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[64], &intbuf[65], &intbuf[128], &intbuf[129], &intbuf[192], &intbuf[193]);
1277 m_interpolator4.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33], &intbuf[64], &intbuf[65], &intbuf[96], &intbuf[97]);
1278 m_interpolator4.myInterpolateInf(&intbuf[128], &intbuf[129], &intbuf[160], &intbuf[161], &intbuf[192], &intbuf[193], &intbuf[224], &intbuf[225]);
1280 m_interpolator8.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
1281 m_interpolator8.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[80], &intbuf[81], &intbuf[96], &intbuf[97], &intbuf[112], &intbuf[113]);
1282 m_interpolator8.myInterpolateSup(&intbuf[128], &intbuf[129], &intbuf[144], &intbuf[145], &intbuf[160], &intbuf[161], &intbuf[176], &intbuf[177]);
1283 m_interpolator8.myInterpolateSup(&intbuf[192], &intbuf[193], &intbuf[208], &intbuf[209], &intbuf[224], &intbuf[225], &intbuf[240], &intbuf[241]);
1285 m_interpolator16.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
1286 m_interpolator16.myInterpolateInf(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
1287 m_interpolator16.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[72], &intbuf[73], &intbuf[80], &intbuf[81], &intbuf[88], &intbuf[89]);
1288 m_interpolator16.myInterpolateInf(&intbuf[96], &intbuf[97], &intbuf[104], &intbuf[105], &intbuf[112], &intbuf[113], &intbuf[120], &intbuf[121]);
1289 m_interpolator16.myInterpolateInf(&intbuf[128], &intbuf[129], &intbuf[136], &intbuf[137], &intbuf[144], &intbuf[145], &intbuf[152], &intbuf[153]);
1290 m_interpolator16.myInterpolateInf(&intbuf[160], &intbuf[161], &intbuf[168], &intbuf[169], &intbuf[176], &intbuf[177], &intbuf[184], &intbuf[185]);
1291 m_interpolator16.myInterpolateInf(&intbuf[192], &intbuf[193], &intbuf[200], &intbuf[201], &intbuf[208], &intbuf[209], &intbuf[216], &intbuf[217]);
1292 m_interpolator16.myInterpolateInf(&intbuf[224], &intbuf[225], &intbuf[232], &intbuf[233], &intbuf[240], &intbuf[241], &intbuf[248], &intbuf[249]);
1294 for (
int i = 0;
i < 16;
i++) {
1295 m_interpolator32.myInterpolateSup(
1306 for (
int i = 0;
i < 32;
i++) {
1307 m_interpolator64.myInterpolateInf(
1318 for (
int i = 0;
i < 256;
i++) {
1324 template<
typename T, u
int SdrBits, u
int OutputBits>
1328 qint32 *bufI0, *bufQ0, *bufI1, *bufQ1;
1334 bufI1 = &intbuf[129];
1335 bufQ1 = &intbuf[128];
1341 bufI1 = &intbuf[128];
1342 bufQ1 = &intbuf[129];
1345 for (
int pos = 0; pos < len - 255; pos += 256)
1347 memset(intbuf, 0, 256*
sizeof(qint32));
1355 m_interpolator2.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[64], &intbuf[65], &intbuf[128], &intbuf[129], &intbuf[192], &intbuf[193]);
1357 m_interpolator4.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[32], &intbuf[33], &intbuf[64], &intbuf[65], &intbuf[96], &intbuf[97]);
1358 m_interpolator4.myInterpolateSup(&intbuf[128], &intbuf[129], &intbuf[160], &intbuf[161], &intbuf[192], &intbuf[193], &intbuf[224], &intbuf[225]);
1360 m_interpolator8.myInterpolateInf(&intbuf[0], &intbuf[1], &intbuf[16], &intbuf[17], &intbuf[32], &intbuf[33], &intbuf[48], &intbuf[49]);
1361 m_interpolator8.myInterpolateInf(&intbuf[64], &intbuf[65], &intbuf[80], &intbuf[81], &intbuf[96], &intbuf[97], &intbuf[112], &intbuf[113]);
1362 m_interpolator8.myInterpolateInf(&intbuf[128], &intbuf[129], &intbuf[144], &intbuf[145], &intbuf[160], &intbuf[161], &intbuf[176], &intbuf[177]);
1363 m_interpolator8.myInterpolateInf(&intbuf[192], &intbuf[193], &intbuf[208], &intbuf[209], &intbuf[224], &intbuf[225], &intbuf[240], &intbuf[241]);
1365 m_interpolator16.myInterpolateSup(&intbuf[0], &intbuf[1], &intbuf[8], &intbuf[9], &intbuf[16], &intbuf[17], &intbuf[24], &intbuf[25]);
1366 m_interpolator16.myInterpolateSup(&intbuf[32], &intbuf[33], &intbuf[40], &intbuf[41], &intbuf[48], &intbuf[49], &intbuf[56], &intbuf[57]);
1367 m_interpolator16.myInterpolateSup(&intbuf[64], &intbuf[65], &intbuf[72], &intbuf[73], &intbuf[80], &intbuf[81], &intbuf[88], &intbuf[89]);
1368 m_interpolator16.myInterpolateSup(&intbuf[96], &intbuf[97], &intbuf[104], &intbuf[105], &intbuf[112], &intbuf[113], &intbuf[120], &intbuf[121]);
1369 m_interpolator16.myInterpolateSup(&intbuf[128], &intbuf[129], &intbuf[136], &intbuf[137], &intbuf[144], &intbuf[145], &intbuf[152], &intbuf[153]);
1370 m_interpolator16.myInterpolateSup(&intbuf[160], &intbuf[161], &intbuf[168], &intbuf[169], &intbuf[176], &intbuf[177], &intbuf[184], &intbuf[185]);
1371 m_interpolator16.myInterpolateSup(&intbuf[192], &intbuf[193], &intbuf[200], &intbuf[201], &intbuf[208], &intbuf[209], &intbuf[216], &intbuf[217]);
1372 m_interpolator16.myInterpolateSup(&intbuf[224], &intbuf[225], &intbuf[232], &intbuf[233], &intbuf[240], &intbuf[241], &intbuf[248], &intbuf[249]);
1374 for (
int i = 0;
i < 16;
i++) {
1375 m_interpolator32.myInterpolateInf(
1386 for (
int i = 0;
i < 32;
i++) {
1387 m_interpolator64.myInterpolateSup(
1398 for (
int i = 0;
i < 256;
i++) {
void interpolate64_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate64_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_SECOND > m_interpolator4
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_NEXT > m_interpolator32
void interpolate8_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate32_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate32_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate4_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate8_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate2_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_NEXT > m_interpolator8
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_FIRST > m_interpolator2
void interpolate16_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate2_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate2_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_NEXT > m_interpolator64
void interpolate1(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate16_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate32_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate8_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate16_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate4_cen(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate64_inf(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
void interpolate4_sup(SampleVector::iterator *it, T *buf, qint32 len, bool invertIQ=false)
IntHalfbandFilterDB< qint32, INTERPOLATORS_HB_FILTER_ORDER_NEXT > m_interpolator16