On Thu, 06 May 2010 22:46:42 -0400, Michel Fortin <michel.for...@michelf.com> wrote:

On 2010-05-06 21:48:09 -0400, "Robert Jacques" <sandf...@jhu.edu> said:

On Thu, 06 May 2010 20:57:07 -0400, Michel Fortin <michel.for...@michelf.com> wrote:

On 2010-05-06 19:02:03 -0400, Jason House <jason.james.ho...@gmail.com> said:

Don Wrote:

 x[] = sin(y[]);
I strongly favor the first syntax since it matches how I'd write it in a for loop.
i.e. I'd replace [] with [i].
This is the best way to see array operations I've read up to now: replace [] with [i], i being the current loop index. It's so simple to explain.

If there was a sin variant that took array input, then I'd expect the line to be:
  x[] = sin(y)[]
 which would translate to creating a temporary to hold sin(y) array.
 Makes sense too.
 this:
for(int i = 0; i < x.length; i++) {
     x[i] = sin(y)[i];
}
 makes sense?

Yes, if as stated by Jason there was a sin variant that took array input.

That said, I'd expect the compiler to call sin(y) only once, so it'd be more like that:

        auto sinY = sin(y);
        for(int i = 0; i < x.length; i++) {
                x[i] = sinY[i];
        }


Ah, thank you for the clarification. I mis-read the first post. Although, for sin(y)[] to work, the variant would have to return an array in addition to taking one.

hmm...
given
real foo(real value) {...}
and
real[] foo(real[] value) {...}

what should happen with the follow line of code:

x[] = foo(y[]) + z[];

Reply via email to