Hi,

That's clearly a bug. Thanks Oleg for discovering the problem. I will have
a look asap...

Yann

Le ven. 24 août 2018 à 16:30, Oleg Nesterov <o...@redhat.com> a écrit :

> On 08/24, Julius Smith wrote:
> >
> > I think this one may have been fixed. I cannot reproduce it in the
> > latest git master-dev branch:
>
> I am on master-dev too,
>
> > faust -v
> > FAUST : DSP to C, C++, Java, JavaScript, old C++, asm.js, WebAssembly
> > (wast/wasm) compiler, Version 2.8.1
>
>
> FAUST : DSP to C, C++, Java, JavaScript, old C++, asm.js, WebAssembly
> (wast/wasm) compiler, Version 2.8.3
> > noise = random / RANDMAX
> > with{
> > mask = 4294967295; // 2^32-1
> > random = +(12345) ~ *(1103515245) & mask; // "linear congruential"
> > RANDMAX = 2147483647.0; // = 2^31-1 = MAX_SIGNED_INT in 32 bits
> > };
>
> $ cat /tmp/bug.dsp
>
>         noise = random / RANDMAX
>         with{
>         mask = 4294967295; // 2^32-1
>         random = +(12345) ~ *(1103515245) & mask; // "linear congruential"
>         RANDMAX = 2147483647.0; // = 2^31-1 = MAX_SIGNED_INT in 32 bits
>         };
>
>         process = noise <: *;
>
> $ faust -a plot.cpp /tmp/bug.dsp
>
>         virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT**
> outputs) {
>                 FAUSTFLOAT* output0 = outputs[0];
>                 for (int i = 0; (i < count); i = (i + 1)) {
>                         iRec0[0] = ((1103515245 * iRec0[1]) + 12345);
>                         output0[i] = FAUSTFLOAT((2.16840434e-19f *
> float(mydsp_faustpower2_i(iRec0[0]))));
>                         iRec0[1] = iRec0[0];
>
>                 }
>
>         }
>
> mydsp_faustpower2_i(iRec0[0]) is wrong.
>
> $ /tmp/bug-plot
>
>         0.000000
>         0.000000
>         0.000000
>         -0.000000
>         -0.000000
>         0.000000
>         -0.000000
>         0.000000
>         -0.000000
>         -0.000000
>         -0.000000
>         -0.000000
>         0.000000
>         -0.000000
>         0.000000
>         -0.000000
>
>
> > Maybe the ".0" at the end of RANDMAX is new?
>
> I don't think it should make any difference... just note the comment
>
>         // special handling for division, we always want a float division
>
> in generateBinOp().
>
> Oleg.
>
>
------------------------------------------------------------------------------
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