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

Function rfft8pt

src/core/_SoundPipe_FFT.cpp:2785–2939  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2783}
2784
2785static void rfft8pt(SPFLOAT * ioptr)
2786{
2787 /*** RADIX 16 rfft ***/
2788 SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */
2789 SPFLOAT w1r = MYCOSPID8; /* cos(pi/8) */
2790 SPFLOAT w1i = MYSINPID8; /* sin(pi/8) */
2791 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
2792 SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
2793 SPFLOAT t0r, t0i, t1r, t1i;
2794 const SPFLOAT Two = 2.0;
2795 const SPFLOAT scale = 0.5;
2796
2797 /* bit reversed load */
2798 f0r = ioptr[0];
2799 f0i = ioptr[1];
2800 f1r = ioptr[8];
2801 f1i = ioptr[9];
2802 f2r = ioptr[4];
2803 f2i = ioptr[5];
2804 f3r = ioptr[12];
2805 f3i = ioptr[13];
2806 f4r = ioptr[2];
2807 f4i = ioptr[3];
2808 f5r = ioptr[10];
2809 f5i = ioptr[11];
2810 f6r = ioptr[6];
2811 f6i = ioptr[7];
2812 f7r = ioptr[14];
2813 f7i = ioptr[15];
2814 /* Butterflys */
2815 /*
2816 f0 - - t0 - - f0 - - f0
2817 f1 - 1 - f1 - - f1 - - f1
2818 f2 - - f2 - 1 - f2 - - f2
2819 f3 - 1 - t1 - -i - f3 - - f3
2820 f4 - - t0 - - f4 - 1 - t0
2821 f5 - 1 - f5 - - f5 - w3 - f4
2822 f6 - - f6 - 1 - f6 - -i - t1
2823 f7 - 1 - t1 - -i - f7 - iw3- f6
2824 */
2825
2826 t0r = f0r + f1r;
2827 t0i = f0i + f1i;
2828 f1r = f0r - f1r;
2829 f1i = f0i - f1i;
2830
2831 t1r = f2r - f3r;
2832 t1i = f2i - f3i;
2833 f2r = f2r + f3r;
2834 f2i = f2i + f3i;
2835
2836 f0r = t0r + f2r;
2837 f0i = t0i + f2i;
2838 f2r = t0r - f2r;
2839 f2i = t0i - f2i;
2840
2841 f3r = f1r - t1i;
2842 f3i = f1i + t1r;

Callers 1

rffts1Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected