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

Function fft8pt

src/core/_SoundPipe_FFT.cpp:771–886  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

769}
770
771static void fft8pt(SPFLOAT * ioptr)
772{
773 /*** RADIX 8 fft ***/
774 SPFLOAT w0r = (SPFLOAT)(1.0 / MYROOT2); /* cos(pi/4) */
775 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
776 SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
777 SPFLOAT t0r, t0i, t1r, t1i;
778 const SPFLOAT Two = 2.0;
779
780 /* bit reversed load */
781 f0r = ioptr[0];
782 f0i = ioptr[1];
783 f1r = ioptr[8];
784 f1i = ioptr[9];
785 f2r = ioptr[4];
786 f2i = ioptr[5];
787 f3r = ioptr[12];
788 f3i = ioptr[13];
789 f4r = ioptr[2];
790 f4i = ioptr[3];
791 f5r = ioptr[10];
792 f5i = ioptr[11];
793 f6r = ioptr[6];
794 f6i = ioptr[7];
795 f7r = ioptr[14];
796 f7i = ioptr[15];
797 /* Butterflys */
798 /*
799 f0 - - t0 - - f0 - - f0
800 f1 - 1 - f1 - - f1 - - f1
801 f2 - - f2 - 1 - f2 - - f2
802 f3 - 1 - t1 - -i - f3 - - f3
803 f4 - - t0 - - f4 - 1 - t0
804 f5 - 1 - f5 - - f5 - w3 - f4
805 f6 - - f6 - 1 - f6 - -i - t1
806 f7 - 1 - t1 - -i - f7 - iw3- f6
807 */
808
809 t0r = f0r + f1r;
810 t0i = f0i + f1i;
811 f1r = f0r - f1r;
812 f1i = f0i - f1i;
813
814 t1r = f2r - f3r;
815 t1i = f2i - f3i;
816 f2r = f2r + f3r;
817 f2i = f2i + f3i;
818
819 f0r = t0r + f2r;
820 f0i = t0i + f2i;
821 f2r = t0r - f2r;
822 f2i = t0i - f2i;
823
824 f3r = f1r - t1i;
825 f3i = f1i + t1r;
826 f1r = f1r + t1i;
827 f1i = f1i - t1r;
828

Callers 1

ffts1Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected