48 uint32_t twidCoefModifier);
54 uint32_t twidCoefModifier);
59 uint16_t bitRevFactor,
60 uint16_t * pBitRevTab);
167 uint32_t twidCoefModifier)
169 #if defined(ARM_MATH_CM7) 170 uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k;
171 q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3;
173 q31_t xa, xb, xc, xd;
174 q31_t ya, yb, yc, yd;
175 q31_t xa_out, xb_out, xc_out, xd_out;
176 q31_t ya_out, yb_out, yc_out, yd_out;
179 q63_t xaya, xbyb, xcyc, xdyd;
210 r1 = (pSrc[(2u * i0)] >> 4u) + (pSrc[(2u * i2)] >> 4u);
212 r2 = (pSrc[2u * i0] >> 4u) - (pSrc[2u * i2] >> 4u);
215 t1 = (pSrc[2u * i1] >> 4u) + (pSrc[2u * i3] >> 4u);
218 s1 = (pSrc[(2u * i0) + 1u] >> 4u) + (pSrc[(2u * i2) + 1u] >> 4u);
220 s2 = (pSrc[(2u * i0) + 1u] >> 4u) - (pSrc[(2u * i2) + 1u] >> 4u);
223 pSrc[2u * i0] = (r1 + t1);
227 t2 = (pSrc[(2u * i1) + 1u] >> 4u) + (pSrc[(2u * i3) + 1u] >> 4u);
230 pSrc[(2u * i0) + 1u] = (s1 + t2);
236 t1 = (pSrc[(2u * i1) + 1u] >> 4u) - (pSrc[(2u * i3) + 1u] >> 4u);
238 t2 = (pSrc[2u * i1] >> 4u) - (pSrc[2u * i3] >> 4u);
242 co2 = pCoef[ia2 * 2u];
243 si2 = pCoef[(ia2 * 2u) + 1u];
246 pSrc[2u * i1] = (((int32_t) (((
q63_t) r1 * co2) >> 32)) +
247 ((int32_t) (((
q63_t) s1 * si2) >> 32))) << 1u;
250 pSrc[(2u * i1) + 1u] = (((int32_t) (((
q63_t) s1 * co2) >> 32)) -
251 ((int32_t) (((
q63_t) r1 * si2) >> 32))) << 1u;
263 co1 = pCoef[ia1 * 2u];
264 si1 = pCoef[(ia1 * 2u) + 1u];
267 pSrc[2u * i2] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) +
268 ((int32_t) (((
q63_t) s1 * si1) >> 32))) << 1u;
271 pSrc[(2u * i2) + 1u] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) -
272 ((int32_t) (((
q63_t) r1 * si1) >> 32))) << 1u;
276 co3 = pCoef[ia3 * 2u];
277 si3 = pCoef[(ia3 * 2u) + 1u];
280 pSrc[2u * i3] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) +
281 ((int32_t) (((
q63_t) s2 * si3) >> 32))) << 1u;
284 pSrc[(2u * i3) + 1u] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) -
285 ((int32_t) (((
q63_t) r2 * si3) >> 32))) << 1u;
288 ia1 = ia1 + twidCoefModifier;
305 twidCoefModifier <<= 2u;
308 for (k = fftLen / 4u; k > 4u; k >>= 2u)
316 for (j = 0u; j <= (n2 - 1u); j++)
321 co1 = pCoef[ia1 * 2u];
322 si1 = pCoef[(ia1 * 2u) + 1u];
323 co2 = pCoef[ia2 * 2u];
324 si2 = pCoef[(ia2 * 2u) + 1u];
325 co3 = pCoef[ia3 * 2u];
326 si3 = pCoef[(ia3 * 2u) + 1u];
328 ia1 = ia1 + twidCoefModifier;
330 for (i0 = j; i0 < fftLen; i0 += n1)
340 r1 = pSrc[2u * i0] + pSrc[2u * i2];
342 r2 = pSrc[2u * i0] - pSrc[2u * i2];
345 s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u];
347 s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u];
350 t1 = pSrc[2u * i1] + pSrc[2u * i3];
353 pSrc[2u * i0] = (r1 + t1) >> 2u;
358 t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u];
360 pSrc[(2u * i0) + 1u] = (s1 + t2) >> 2u;
366 t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u];
368 t2 = pSrc[2u * i1] - pSrc[2u * i3];
371 pSrc[2u * i1] = (((int32_t) (((
q63_t) r1 * co2) >> 32)) +
372 ((int32_t) (((
q63_t) s1 * si2) >> 32))) >> 1u;
375 pSrc[(2u * i1) + 1u] = (((int32_t) (((
q63_t) s1 * co2) >> 32)) -
376 ((int32_t) (((
q63_t) r1 * si2) >> 32))) >> 1u;
389 pSrc[2u * i2] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) +
390 ((int32_t) (((
q63_t) s1 * si1) >> 32))) >> 1u;
393 pSrc[(2u * i2) + 1u] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) -
394 ((int32_t) (((
q63_t) r1 * si1) >> 32))) >> 1u;
397 pSrc[2u * i3] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) +
398 ((int32_t) (((
q63_t) s2 * si3) >> 32))) >> 1u;
401 pSrc[(2u * i3) + 1u] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) -
402 ((int32_t) (((
q63_t) r2 * si3) >> 32))) >> 1u;
405 twidCoefModifier <<= 2u;
408 uint32_t n1, n2, ia1, ia2, ia3, i0, j, k;
409 q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3;
411 q31_t xa, xb, xc, xd;
412 q31_t ya, yb, yc, yd;
413 q31_t xa_out, xb_out, xc_out, xd_out;
414 q31_t ya_out, yb_out, yc_out, yd_out;
421 q63_t xaya, xbyb, xcyc, xdyd;
440 pSi1 = pSi0 + 2 * n2;
441 pSi2 = pSi1 + 2 * n2;
442 pSi3 = pSi2 + 2 * n2;
451 r1 = (pSi0[0] >> 4u) + (pSi2[0] >> 4u);
453 r2 = (pSi0[0] >> 4u) - (pSi2[0] >> 4u);
456 t1 = (pSi1[0] >> 4u) + (pSi3[0] >> 4u);
459 s1 = (pSi0[1] >> 4u) + (pSi2[1] >> 4u);
461 s2 = (pSi0[1] >> 4u) - (pSi2[1] >> 4u);
468 t2 = (pSi1[1] >> 4u) + (pSi3[1] >> 4u);
477 t1 = (pSi1[1] >> 4u) - (pSi3[1] >> 4u);
479 t2 = (pSi1[0] >> 4u) - (pSi3[0] >> 4u);
483 co2 = pCoef[ia2 * 2u];
484 si2 = pCoef[(ia2 * 2u) + 1u];
487 *pSi1++ = (((int32_t) (((
q63_t) r1 * co2) >> 32)) +
488 ((int32_t) (((
q63_t) s1 * si2) >> 32))) << 1u;
491 *pSi1++ = (((int32_t) (((
q63_t) s1 * co2) >> 32)) -
492 ((int32_t) (((
q63_t) r1 * si2) >> 32))) << 1u;
504 co1 = pCoef[ia1 * 2u];
505 si1 = pCoef[(ia1 * 2u) + 1u];
508 *pSi2++ = (((int32_t) (((
q63_t) r1 * co1) >> 32)) +
509 ((int32_t) (((
q63_t) s1 * si1) >> 32))) << 1u;
512 *pSi2++ = (((int32_t) (((
q63_t) s1 * co1) >> 32)) -
513 ((int32_t) (((
q63_t) r1 * si1) >> 32))) << 1u;
517 co3 = pCoef[ia3 * 2u];
518 si3 = pCoef[(ia3 * 2u) + 1u];
521 *pSi3++ = (((int32_t) (((
q63_t) r2 * co3) >> 32)) +
522 ((int32_t) (((
q63_t) s2 * si3) >> 32))) << 1u;
525 *pSi3++ = (((int32_t) (((
q63_t) s2 * co3) >> 32)) -
526 ((int32_t) (((
q63_t) r2 * si3) >> 32))) << 1u;
529 ia1 = ia1 + twidCoefModifier;
543 twidCoefModifier <<= 2u;
546 for (k = fftLen / 4u; k > 4u; k >>= 2u)
554 for (j = 0u; j <= (n2 - 1u); j++)
559 co1 = pCoef[ia1 * 2u];
560 si1 = pCoef[(ia1 * 2u) + 1u];
561 co2 = pCoef[ia2 * 2u];
562 si2 = pCoef[(ia2 * 2u) + 1u];
563 co3 = pCoef[ia3 * 2u];
564 si3 = pCoef[(ia3 * 2u) + 1u];
566 ia1 = ia1 + twidCoefModifier;
569 pSi1 = pSi0 + 2 * n2;
570 pSi2 = pSi1 + 2 * n2;
571 pSi3 = pSi2 + 2 * n2;
573 for (i0 = j; i0 < fftLen; i0 += n1)
577 r1 = pSi0[0] + pSi2[0];
580 r2 = pSi0[0] - pSi2[0];
584 s1 = pSi0[1] + pSi2[1];
587 s2 = pSi0[1] - pSi2[1];
591 t1 = pSi1[0] + pSi3[0];
595 pSi0[0] = (r1 + t1) >> 2u;
600 t2 = pSi1[1] + pSi3[1];
603 pSi0[1] = (s1 + t2) >> 2u;
610 t1 = pSi1[1] - pSi3[1];
613 t2 = pSi1[0] - pSi3[0];
617 pSi1[0] = (((int32_t) (((
q63_t) r1 * co2) >> 32)) +
618 ((int32_t) (((
q63_t) s1 * si2) >> 32))) >> 1u;
621 pSi1[1] = (((int32_t) (((
q63_t) s1 * co2) >> 32)) -
622 ((int32_t) (((
q63_t) r1 * si2) >> 32))) >> 1u;
636 pSi2[0] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) +
637 ((int32_t) (((
q63_t) s1 * si1) >> 32))) >> 1u;
640 pSi2[1] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) -
641 ((int32_t) (((
q63_t) r1 * si1) >> 32))) >> 1u;
645 pSi3[0] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) +
646 ((int32_t) (((
q63_t) s2 * si3) >> 32))) >> 1u;
649 pSi3[1] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) -
650 ((int32_t) (((
q63_t) r2 * si3) >> 32))) >> 1u;
654 twidCoefModifier <<= 2u;
675 #ifndef ARM_MATH_BIG_ENDIAN 680 ya = (
q31_t) (xaya >> 32);
685 yb = (
q31_t) (xbyb >> 32);
690 yc = (
q31_t) (xcyc >> 32);
695 yd = (
q31_t) (xdyd >> 32);
702 xa = (
q31_t) (xaya >> 32);
707 xb = (
q31_t) (xbyb >> 32);
712 xc = (
q31_t) (xcyc >> 32);
717 xd = (
q31_t) (xdyd >> 32);
723 xa_out = xa + xb + xc + xd;
726 ya_out = ya + yb + yc + yd;
735 xc_out = (xa - xb + xc - xd);
736 yc_out = (ya - yb + yc - yd);
742 xb_out = (xa + yb - xc - yd);
743 yb_out = (ya - xb - yc + xd);
749 xd_out = (xa - yb - xc + yd);
750 yd_out = (ya + xb - yc - xd);
823 uint32_t twidCoefModifier)
825 #if defined(ARM_MATH_CM7) 826 uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k;
827 q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3;
828 q31_t xa, xb, xc, xd;
829 q31_t ya, yb, yc, yd;
830 q31_t xa_out, xb_out, xc_out, xd_out;
831 q31_t ya_out, yb_out, yc_out, yd_out;
834 q63_t xaya, xbyb, xcyc, xdyd;
865 r1 = (pSrc[2u * i0] >> 4u) + (pSrc[2u * i2] >> 4u);
867 r2 = (pSrc[2u * i0] >> 4u) - (pSrc[2u * i2] >> 4u);
870 t1 = (pSrc[2u * i1] >> 4u) + (pSrc[2u * i3] >> 4u);
873 s1 = (pSrc[(2u * i0) + 1u] >> 4u) + (pSrc[(2u * i2) + 1u] >> 4u);
875 s2 = (pSrc[(2u * i0) + 1u] >> 4u) - (pSrc[(2u * i2) + 1u] >> 4u);
878 pSrc[2u * i0] = (r1 + t1);
882 t2 = (pSrc[(2u * i1) + 1u] >> 4u) + (pSrc[(2u * i3) + 1u] >> 4u);
884 pSrc[(2u * i0) + 1u] = (s1 + t2);
890 t1 = (pSrc[(2u * i1) + 1u] >> 4u) - (pSrc[(2u * i3) + 1u] >> 4u);
892 t2 = (pSrc[2u * i1] >> 4u) - (pSrc[2u * i3] >> 4u);
896 co2 = pCoef[ia2 * 2u];
897 si2 = pCoef[(ia2 * 2u) + 1u];
900 pSrc[2u * i1] = (((int32_t) (((
q63_t) r1 * co2) >> 32)) -
901 ((int32_t) (((
q63_t) s1 * si2) >> 32))) << 1u;
904 pSrc[2u * i1 + 1u] = (((int32_t) (((
q63_t) s1 * co2) >> 32)) +
905 ((int32_t) (((
q63_t) r1 * si2) >> 32))) << 1u;
917 co1 = pCoef[ia1 * 2u];
918 si1 = pCoef[(ia1 * 2u) + 1u];
921 pSrc[2u * i2] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) -
922 ((int32_t) (((
q63_t) s1 * si1) >> 32))) << 1u;
925 pSrc[(2u * i2) + 1u] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) +
926 ((int32_t) (((
q63_t) r1 * si1) >> 32))) << 1u;
930 co3 = pCoef[ia3 * 2u];
931 si3 = pCoef[(ia3 * 2u) + 1u];
934 pSrc[2u * i3] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) -
935 ((int32_t) (((
q63_t) s2 * si3) >> 32))) << 1u;
938 pSrc[(2u * i3) + 1u] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) +
939 ((int32_t) (((
q63_t) r2 * si3) >> 32))) << 1u;
942 ia1 = ia1 + twidCoefModifier;
955 twidCoefModifier <<= 2u;
958 for (k = fftLen / 4u; k > 4u; k >>= 2u)
965 for (j = 0; j <= (n2 - 1u); j++)
970 co1 = pCoef[ia1 * 2u];
971 si1 = pCoef[(ia1 * 2u) + 1u];
972 co2 = pCoef[ia2 * 2u];
973 si2 = pCoef[(ia2 * 2u) + 1u];
974 co3 = pCoef[ia3 * 2u];
975 si3 = pCoef[(ia3 * 2u) + 1u];
977 ia1 = ia1 + twidCoefModifier;
979 for (i0 = j; i0 < fftLen; i0 += n1)
989 r1 = pSrc[2u * i0] + pSrc[2u * i2];
991 r2 = pSrc[2u * i0] - pSrc[2u * i2];
994 s1 = pSrc[(2u * i0) + 1u] + pSrc[(2u * i2) + 1u];
996 s2 = pSrc[(2u * i0) + 1u] - pSrc[(2u * i2) + 1u];
999 t1 = pSrc[2u * i1] + pSrc[2u * i3];
1002 pSrc[2u * i0] = (r1 + t1) >> 2u;
1006 t2 = pSrc[(2u * i1) + 1u] + pSrc[(2u * i3) + 1u];
1008 pSrc[(2u * i0) + 1u] = (s1 + t2) >> 2u;
1014 t1 = pSrc[(2u * i1) + 1u] - pSrc[(2u * i3) + 1u];
1016 t2 = pSrc[2u * i1] - pSrc[2u * i3];
1019 pSrc[2u * i1] = (((int32_t) (((
q63_t) r1 * co2) >> 32u)) -
1020 ((int32_t) (((
q63_t) s1 * si2) >> 32u))) >> 1u;
1023 pSrc[(2u * i1) + 1u] =
1024 (((int32_t) (((
q63_t) s1 * co2) >> 32u)) +
1025 ((int32_t) (((
q63_t) r1 * si2) >> 32u))) >> 1u;
1038 pSrc[2u * i2] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) -
1039 ((int32_t) (((
q63_t) s1 * si1) >> 32))) >> 1u;
1042 pSrc[(2u * i2) + 1u] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) +
1043 ((int32_t) (((
q63_t) r1 * si1) >> 32))) >> 1u;
1046 pSrc[(2u * i3)] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) -
1047 ((int32_t) (((
q63_t) s2 * si3) >> 32))) >> 1u;
1050 pSrc[(2u * i3) + 1u] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) +
1051 ((int32_t) (((
q63_t) r2 * si3) >> 32))) >> 1u;
1054 twidCoefModifier <<= 2u;
1057 uint32_t n1, n2, ia1, ia2, ia3, i0, j, k;
1058 q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3;
1059 q31_t xa, xb, xc, xd;
1060 q31_t ya, yb, yc, yd;
1061 q31_t xa_out, xb_out, xc_out, xd_out;
1062 q31_t ya_out, yb_out, yc_out, yd_out;
1069 q63_t xaya, xbyb, xcyc, xdyd;
1088 pSi1 = pSi0 + 2 * n2;
1089 pSi2 = pSi1 + 2 * n2;
1090 pSi3 = pSi2 + 2 * n2;
1096 r1 = (pSi0[0] >> 4u) + (pSi2[0] >> 4u);
1098 r2 = (pSi0[0] >> 4u) - (pSi2[0] >> 4u);
1101 t1 = (pSi1[0] >> 4u) + (pSi3[0] >> 4u);
1104 s1 = (pSi0[1] >> 4u) + (pSi2[1] >> 4u);
1106 s2 = (pSi0[1] >> 4u) - (pSi2[1] >> 4u);
1109 *pSi0++ = (r1 + t1);
1113 t2 = (pSi1[1] >> 4u) + (pSi3[1] >> 4u);
1115 *pSi0++ = (s1 + t2);
1121 t1 = (pSi1[1] >> 4u) - (pSi3[1] >> 4u);
1123 t2 = (pSi1[0] >> 4u) - (pSi3[0] >> 4u);
1127 co2 = pCoef[ia2 * 2u];
1128 si2 = pCoef[(ia2 * 2u) + 1u];
1131 *pSi1++ = (((int32_t) (((
q63_t) r1 * co2) >> 32)) -
1132 ((int32_t) (((
q63_t) s1 * si2) >> 32))) << 1u;
1135 *pSi1++ = (((int32_t) (((
q63_t) s1 * co2) >> 32)) +
1136 ((int32_t) (((
q63_t) r1 * si2) >> 32))) << 1u;
1148 co1 = pCoef[ia1 * 2u];
1149 si1 = pCoef[(ia1 * 2u) + 1u];
1152 *pSi2++ = (((int32_t) (((
q63_t) r1 * co1) >> 32)) -
1153 ((int32_t) (((
q63_t) s1 * si1) >> 32))) << 1u;
1156 *pSi2++ = (((int32_t) (((
q63_t) s1 * co1) >> 32)) +
1157 ((int32_t) (((
q63_t) r1 * si1) >> 32))) << 1u;
1161 co3 = pCoef[ia3 * 2u];
1162 si3 = pCoef[(ia3 * 2u) + 1u];
1165 *pSi3++ = (((int32_t) (((
q63_t) r2 * co3) >> 32)) -
1166 ((int32_t) (((
q63_t) s2 * si3) >> 32))) << 1u;
1169 *pSi3++ = (((int32_t) (((
q63_t) s2 * co3) >> 32)) +
1170 ((int32_t) (((
q63_t) r2 * si3) >> 32))) << 1u;
1173 ia1 = ia1 + twidCoefModifier;
1183 twidCoefModifier <<= 2u;
1186 for (k = fftLen / 4u; k > 4u; k >>= 2u)
1193 for (j = 0; j <= (n2 - 1u); j++)
1198 co1 = pCoef[ia1 * 2u];
1199 si1 = pCoef[(ia1 * 2u) + 1u];
1200 co2 = pCoef[ia2 * 2u];
1201 si2 = pCoef[(ia2 * 2u) + 1u];
1202 co3 = pCoef[ia3 * 2u];
1203 si3 = pCoef[(ia3 * 2u) + 1u];
1205 ia1 = ia1 + twidCoefModifier;
1207 pSi0 = pSrc + 2 * j;
1208 pSi1 = pSi0 + 2 * n2;
1209 pSi2 = pSi1 + 2 * n2;
1210 pSi3 = pSi2 + 2 * n2;
1212 for (i0 = j; i0 < fftLen; i0 += n1)
1216 r1 = pSi0[0] + pSi2[0];
1219 r2 = pSi0[0] - pSi2[0];
1223 s1 = pSi0[1] + pSi2[1];
1226 s2 = pSi0[1] - pSi2[1];
1230 t1 = pSi1[0] + pSi3[0];
1234 pSi0[0] = (r1 + t1) >> 2u;
1238 t2 = pSi1[1] + pSi3[1];
1241 pSi0[1] = (s1 + t2) >> 2u;
1248 t1 = pSi1[1] - pSi3[1];
1251 t2 = pSi1[0] - pSi3[0];
1255 pSi1[0] = (((int32_t) (((
q63_t) r1 * co2) >> 32u)) -
1256 ((int32_t) (((
q63_t) s1 * si2) >> 32u))) >> 1u;
1261 (((int32_t) (((
q63_t) s1 * co2) >> 32u)) +
1262 ((int32_t) (((
q63_t) r1 * si2) >> 32u))) >> 1u;
1276 pSi2[0] = (((int32_t) (((
q63_t) r1 * co1) >> 32)) -
1277 ((int32_t) (((
q63_t) s1 * si1) >> 32))) >> 1u;
1280 pSi2[1] = (((int32_t) (((
q63_t) s1 * co1) >> 32)) +
1281 ((int32_t) (((
q63_t) r1 * si1) >> 32))) >> 1u;
1285 pSi3[0] = (((int32_t) (((
q63_t) r2 * co3) >> 32)) -
1286 ((int32_t) (((
q63_t) s2 * si3) >> 32))) >> 1u;
1289 pSi3[1] = (((int32_t) (((
q63_t) s2 * co3) >> 32)) +
1290 ((int32_t) (((
q63_t) r2 * si3) >> 32))) >> 1u;
1294 twidCoefModifier <<= 2u;
1316 #ifndef ARM_MATH_BIG_ENDIAN 1320 ya = (
q31_t) (xaya >> 32);
1325 yb = (
q31_t) (xbyb >> 32);
1330 yc = (
q31_t) (xcyc >> 32);
1335 yd = (
q31_t) (xdyd >> 32);
1342 xa = (
q31_t) (xaya >> 32);
1347 xb = (
q31_t) (xbyb >> 32);
1352 xc = (
q31_t) (xcyc >> 32);
1357 xd = (
q31_t) (xdyd >> 32);
1363 xa_out = xa + xb + xc + xd;
1366 ya_out = ya + yb + yc + yd;
1375 xc_out = (xa - xb + xc - xd);
1376 yc_out = (ya - yb + yc - yd);
1382 xb_out = (xa - yb - xc + yd);
1383 yb_out = (ya + xb - yc - xd);
1389 xd_out = (xa + yb - xc - yd);
1390 yd_out = (ya - xb - yc + xd);
void arm_radix4_butterfly_q31(q31_t *pSrc, uint32_t fftLen, q31_t *pCoef, uint32_t twidCoefModifier)
Core function for the Q31 CFFT butterfly process.
uint16_t twidCoefModifier
int64_t q63_t
64-bit fractional data type in 1.63 format.
void arm_radix4_butterfly_inverse_q31(q31_t *pSrc, uint32_t fftLen, q31_t *pCoef, uint32_t twidCoefModifier)
Core function for the Q31 CIFFT butterfly process.
Instance structure for the Q31 CFFT/CIFFT function.
void arm_cfft_radix4_q31(const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc)
Processing function for the Q31 CFFT/CIFFT.
int32_t q31_t
32-bit fractional data type in 1.31 format.
void arm_bitreversal_q31(q31_t *pSrc, uint32_t fftLen, uint16_t bitRevFactor, uint16_t *pBitRevTab)