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

Function ffts1

src/core/_SoundPipe_FFT.cpp:1547–1593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1545
1546#if 0
1547static void ffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow)
1548{
1549 /* Compute in-place complex fft on the rows of the input array */
1550 /* INPUTS */
1551 /* *ioptr = input data array */
1552 /* M = log2 of fft size (ex M=10 for 1024 point fft) */
1553 /* *Utbl = cosine table */
1554 /* *BRLow = bit reversed counter table */
1555 /* OUTPUTS */
1556 /* *ioptr = output data array */
1557
1558 int StageCnt;
1559 int NDiffU;
1560
1561 switch (M)
1562 {
1563 case 0:
1564 break;
1565 case 1:
1566 fft2pt(ioptr); /* a 2 pt fft */
1567 break;
1568 case 2:
1569 fft4pt(ioptr); /* a 4 pt fft */
1570 break;
1571 case 3:
1572 fft8pt(ioptr); /* an 8 pt fft */
1573 break;
1574 default:
1575 bitrevR2(ioptr, M, BRLow); /* bit reverse and first radix 2 stage */
1576 StageCnt = (M - 1) / 3; /* number of radix 8 stages */
1577 NDiffU = 2; /* one radix 2 stage already complete */
1578 if ((M - 1 - (StageCnt * 3)) == 1)
1579 {
1580 bfR2(ioptr, M, NDiffU); /* 1 radix 2 stage */
1581 NDiffU *= 2;
1582 }
1583 if ((M - 1 - (StageCnt * 3)) == 2)
1584 {
1585 bfR4(ioptr, M, NDiffU); /* 1 radix 4 stage */
1586 NDiffU *= 4;
1587 }
1588 if (M <= (int) MCACHE)
1589 bfstages(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */
1590 else
1591 fftrecurs(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */
1592 }
1593}
1594#endif
1595
1596/******************

Callers

nothing calls this directly

Calls 8

fft2ptFunction · 0.85
fft4ptFunction · 0.85
fft8ptFunction · 0.85
bitrevR2Function · 0.85
bfR2Function · 0.85
bfR4Function · 0.85
bfstagesFunction · 0.85
fftrecursFunction · 0.85

Tested by

no test coverage detected