static void apply_dit(const plan *ego_, R *rio, R *iio) { const P *ego = (const P *) ego_; plan_dft *cld; bytwiddle(ego, rio, iio); cld = (plan_dft *) ego->cld; cld->apply(ego->cld, rio, iio, rio, iio); }
static void apply_dif(const plan *ego_, R *IO) { const P *ego = (const P *) ego_; INT start; plan_rdft *cld, *cld0; reorder_dif(ego, IO); cld0 = (plan_rdft *) ego->cld0; cld0->apply(ego->cld0, IO, IO); start = ego->mstart1 * ego->s; cld = (plan_rdft *) ego->cld; cld->apply(ego->cld, IO + start, IO + start); bytwiddle(ego, IO, K(1.0)); }