When I was playing with onePoleTPT() implementations I've noticed another
minor problem.

Trivial example:

        F1 = rec ~ _ : _,!
        with {
                rec = +, 0;
        };

        F2 = rec ~ _
        with {
                rec = +;
        };

Now,

        process = F1;
and
        process = F2;

generate the same C++ code.

But,
        process = _ <: F1-F2;

compiles to

        void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
        {
                FAUSTFLOAT* input0 = inputs[0];
                FAUSTFLOAT* output0 = outputs[0];
                for (int i0 = 0; i0 < count; i0 = i0 + 1) {
                        float fTemp0 = float(input0[i0]);
                        fRec0[0] = fTemp0 + fRec0[1];
                        fRec1[0] = fTemp0 + fRec1[1];
                        output0[i0] = FAUSTFLOAT(fRec1[0] - fRec0[0]);
                        fRec0[1] = fRec0[0];
                        fRec1[1] = fRec1[0];
                }
        }

Oleg.



_______________________________________________
Faudiostream-devel mailing list
Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel

Reply via email to