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

Function ibfR2

src/core/_SoundPipe_FFT.cpp:1943–2049  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1941}
1942
1943static void ibfR2(SPFLOAT * ioptr, int M, int NDiffU)
1944{
1945 /*** 2nd radix 2 stage ***/
1946 unsigned int pos;
1947 unsigned int posi;
1948 unsigned int pinc;
1949 unsigned int pnext;
1950 unsigned int NSameU;
1951 unsigned int SameUCnt;
1952
1953 SPFLOAT * pstrt;
1954 SPFLOAT *p0r, *p1r, *p2r, *p3r;
1955
1956 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
1957 SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
1958
1959 pinc = NDiffU * 2; /* 2 floats per complex */
1960 pnext = pinc * 4;
1961 pos = 2;
1962 posi = pos + 1;
1963 NSameU = POW2(M) / 4 / NDiffU; /* 4 Us at a time */
1964 pstrt = ioptr;
1965 p0r = pstrt;
1966 p1r = pstrt + pinc;
1967 p2r = p1r + pinc;
1968 p3r = p2r + pinc;
1969
1970 /* Butterflys */
1971 /*
1972 f0 - - f4
1973 f1 - 1 - f5
1974 f2 - - f6
1975 f3 - 1 - f7
1976 */
1977 /* Butterflys */
1978 /*
1979 f0 - - f4
1980 f1 - 1 - f5
1981 f2 - - f6
1982 f3 - 1 - f7
1983 */
1984
1985 for (SameUCnt = NSameU; SameUCnt > 0; SameUCnt--)
1986 {
1987
1988 f0r = *p0r;
1989 f1r = *p1r;
1990 f0i = *(p0r + 1);
1991 f1i = *(p1r + 1);
1992 f2r = *p2r;
1993 f3r = *p3r;
1994 f2i = *(p2r + 1);
1995 f3i = *(p3r + 1);
1996
1997 f4r = f0r + f1r;
1998 f4i = f0i + f1i;
1999 f5r = f0r - f1r;
2000 f5i = f0i - f1i;

Callers 2

iffts1Function · 0.85
riffts1Function · 0.85

Calls 1

POW2Function · 0.85

Tested by

no test coverage detected