On Fri, Jul 20, 2018 at 11:35 AM, Kjetil Matheussen <
k.s.matheus...@gmail.com> wrote:

>
> Actually, Faust should have been able to convert
> m_a1/m_a2/m_a3/m_m0/m_m1/m_m2 into
> slow variables so that we would have avoided all the conditional code in
> the inner loop.
> I'll see if I can come up with a smaller example.
>
>
I simplified the problem down to this faust program:

"""
modeSlider = hslider ( "Mode" , 0 , 0 , 1 , 1 ) ;

returnfunc(a) = select2(a==0, 2, 3);

process(x) = (function__1936 ~ (_)) : returnfunc  with{
    function__1936(a) = modeSlider;
};
"""

which compiles down to this C++ code:

"""
        virtual void compute (int count, FAUSTFLOAT** input, FAUSTFLOAT**
output) {
               FAUSTFLOAT* input0 = input[0];
               FAUSTFLOAT* output0 = output[0];
               for (int i=0; i<count; i++) {
                       float   fRec0 = float(fslider0);
                       output0[i] = (FAUSTFLOAT)((int((fRec0 == 0)))?3:2);
               }
       }
}
"""

which would have been faster if "fRec0" and "(FAUSTFLOAT)((int((fRec0 ==
0)))?3:2);"
had been compiled down to slow variables.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to