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

Function rifft4pt

src/core/_SoundPipe_FFT.cpp:3185–3254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3183}
3184
3185static void rifft4pt(SPFLOAT * ioptr, SPFLOAT scale)
3186{
3187 /*** RADIX 8 rifft ***/
3188 SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
3189 SPFLOAT t0r, t0i, t1r, t1i;
3190 SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */
3191 const SPFLOAT Two = 2.0;
3192
3193 /* bit reversed load */
3194 t0r = ioptr[0];
3195 t0i = ioptr[1];
3196 f2r = ioptr[2];
3197 f2i = ioptr[3];
3198 f1r = Two * ioptr[4];
3199 f1i = Two * ioptr[5];
3200 f3r = ioptr[6];
3201 f3i = ioptr[7];
3202
3203 /* start rfft */
3204 f0r = t0r + t0i; /* compute Re(x[0]) */
3205 f0i = t0r - t0i; /* compute Re(x[N/2]) */
3206
3207 t1r = f2r + f3r;
3208 t1i = f2i - f3i;
3209 t0r = f2r - f3r;
3210 t0i = f2i + f3i;
3211
3212 f2r = t1r - w0r * t0r - w0r * t0i;
3213 f2i = t1i + w0r * t0r - w0r * t0i;
3214 f3r = Two * t1r - f2r;
3215 f3i = f2i - Two * t1i;
3216
3217 /* Butterflys */
3218 /*
3219 f0 - - t0 - - f0
3220 f1 - 1 - f1 - - f1
3221 f2 - - f2 - 1 - f2
3222 f3 - 1 - t1 - i - f3
3223 */
3224
3225 t0r = f0r + f1r;
3226 t0i = f0i - f1i;
3227 f1r = f0r - f1r;
3228 f1i = f0i + f1i;
3229
3230 t1r = f2r - f3r;
3231 t1i = f2i - f3i;
3232 f2r = f2r + f3r;
3233 f2i = f2i + f3i;
3234
3235 f0r = t0r + f2r;
3236 f0i = t0i + f2i;
3237 f2r = t0r - f2r;
3238 f2i = t0i - f2i;
3239
3240 f3r = f1r + t1i;
3241 f3i = f1i - t1r;
3242 f1r = f1r - t1i;

Callers 1

riffts1Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected