예제 #1
0
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);
}
예제 #2
0
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));
}