
Joel Falcou wrote:
troy d. straszheim a écrit :
When it is time to evaluate the expression, the grammar fires the transform for exp(B) first. It creates a temporary T with the same dimensions as B and and a function is called to compute the result into T. Now 'T * C' happens. In this case there is an available temporary, 'T', so the result can go right in to T. T is returned and moved in to A. Done... at least, that's the idea.
No, when you evaluate the expression, you iterate via a for loop nest over the elements of all array, recursively calling the elementwise version of exp and *. The context just evaluate one element at a time. In the end, the only temporary created are those from the elementwise function return.
That's the point... you can't do that here. The elements behind A B and C are on the other end of a very slow bus. -t