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

Function ifft4pt

src/core/_SoundPipe_FFT.cpp:1770–1823  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1768}
1769
1770static void ifft4pt(SPFLOAT * ioptr, SPFLOAT scale)
1771{
1772 /*** RADIX 4 ifft ***/
1773 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
1774 SPFLOAT t0r, t0i, t1r, t1i;
1775
1776 /* bit reversed load */
1777 f0r = ioptr[0];
1778 f0i = ioptr[1];
1779 f1r = ioptr[4];
1780 f1i = ioptr[5];
1781 f2r = ioptr[2];
1782 f2i = ioptr[3];
1783 f3r = ioptr[6];
1784 f3i = ioptr[7];
1785
1786 /* Butterflys */
1787 /*
1788 f0 - - t0 - - f0
1789 f1 - 1 - f1 - - f1
1790 f2 - - f2 - 1 - f2
1791 f3 - 1 - t1 - i - f3
1792 */
1793
1794 t0r = f0r + f1r;
1795 t0i = f0i + f1i;
1796 f1r = f0r - f1r;
1797 f1i = f0i - f1i;
1798
1799 t1r = f2r - f3r;
1800 t1i = f2i - f3i;
1801 f2r = f2r + f3r;
1802 f2i = f2i + f3i;
1803
1804 f0r = t0r + f2r;
1805 f0i = t0i + f2i;
1806 f2r = t0r - f2r;
1807 f2i = t0i - f2i;
1808
1809 f3r = f1r + t1i;
1810 f3i = f1i - t1r;
1811 f1r = f1r - t1i;
1812 f1i = f1i + t1r;
1813
1814 /* store result */
1815 ioptr[0] = scale * f0r;
1816 ioptr[1] = scale * f0i;
1817 ioptr[2] = scale * f1r;
1818 ioptr[3] = scale * f1i;
1819 ioptr[4] = scale * f2r;
1820 ioptr[5] = scale * f2i;
1821 ioptr[6] = scale * f3r;
1822 ioptr[7] = scale * f3i;
1823}
1824
1825static void ifft8pt(SPFLOAT * ioptr, SPFLOAT scale)
1826{

Callers 1

iffts1Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected