OK, this is not unique to select2 ...
Say,
process = sin(!);
compiles to
output0[i0] = FAUSTFLOAT(std::sin(float(input1[i0])));
Or,
process = atan2(1,!);
results in
output0[i0] = FAUSTFLOAT(std::atan2(1.0f, float(input1[i0])));
and please note that
process = atan2(!,1);
generates the same code
output0[i0] = FAUSTFLOAT(std::atan2(1.0f, float(input1[i0])));
I feel this has something to do with boxPrimX() logic, but I am not
sure...
Oleg.
On 03/31, Oleg Nesterov wrote:
>
> Hello,
>
> I think I've accidentally run into a problem I can't explain.
>
> Consider this trivial code:
>
> process = select2(1, 0, !);
>
> I agree, it makes no sense, but faust happily compiles it to
>
> void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
> {
> FAUSTFLOAT* input0 = inputs[0];
> FAUSTFLOAT* input1 = inputs[1];
> FAUSTFLOAT* output0 = outputs[0];
> for (int i0 = 0; i0 < count; i0 = i0 + 1) {
> output0[i0] = FAUSTFLOAT(float(input1[i0]));
> }
> }
>
> and this doesn't look right no matter what. It seems that "!" inside select2
> always has 2 inputs and acts as
>
> cut(x,y) = y;
>
> I can probably understand this to some extent, "!" should cut an input and
> at the same time select2() should have an output, but to me this code should
> not compile.
>
> Can you explain this?
>
> Oleg.
_______________________________________________
Faudiostream-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel