I am starting to think this is not a bug ;) process = sin(0:!);
is equivalent to process = sin; because 0:! has no inputs/outputs. similarly, process = sin(!); acts as process = !, sin; So I think I understand the logic now, but it was not obvious to me and I would like to hear your comments. Thanks, Oleg. On 03/31, Oleg Nesterov wrote: > > 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 Faudiostream-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-devel