MCPcopy Create free account
hub / github.com/LabSound/LabSound / bfR4

Function bfR4

src/core/_SoundPipe_FFT.cpp:996–1202  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

994}
995
996static void bfR4(SPFLOAT * ioptr, int M, int NDiffU)
997{
998 /*** 1 radix 4 stage ***/
999 unsigned int pos;
1000 unsigned int posi;
1001 unsigned int pinc;
1002 unsigned int pnext;
1003 unsigned int pnexti;
1004 unsigned int NSameU;
1005 unsigned int SameUCnt;
1006
1007 SPFLOAT * pstrt;
1008 SPFLOAT *p0r, *p1r, *p2r, *p3r;
1009
1010 SPFLOAT w1r = 1.0 / MYROOT2; /* cos(pi/4) */
1011 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
1012 SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
1013 SPFLOAT t1r, t1i;
1014 const SPFLOAT Two = 2.0;
1015
1016 pinc = NDiffU * 2; /* 2 floats per complex */
1017 pnext = pinc * 4;
1018 pnexti = pnext + 1;
1019 pos = 2;
1020 posi = pos + 1;
1021 NSameU = POW2(M) / 4 / NDiffU; /* 4 pts per butterfly */
1022 pstrt = ioptr;
1023 p0r = pstrt;
1024 p1r = pstrt + pinc;
1025 p2r = p1r + pinc;
1026 p3r = p2r + pinc;
1027
1028 /* Butterflys */
1029 /*
1030 f0 - - f0 - - f4
1031 f1 - 1 - f5 - - f5
1032 f2 - - f6 - 1 - f6
1033 f3 - 1 - f3 - -i - f7
1034 */
1035 /* Butterflys */
1036 /*
1037 f0 - - f4 - - f4
1038 f1 - -i - t1 - - f5
1039 f2 - - f2 - w1 - f6
1040 f3 - -i - f7 - iw1- f7
1041 */
1042
1043 f0r = *p0r;
1044 f1r = *p1r;
1045 f2r = *p2r;
1046 f3r = *p3r;
1047 f0i = *(p0r + 1);
1048 f1i = *(p1r + 1);
1049 f2i = *(p2r + 1);
1050 f3i = *(p3r + 1);
1051
1052 f5r = f0r - f1r;
1053 f5i = f0i - f1i;

Callers 2

ffts1Function · 0.85
rffts1Function · 0.85

Calls 1

POW2Function · 0.85

Tested by

no test coverage detected