On 15 March 2014 12:36, Oscar Benjamin <oscar.j.benjamin@gmail.com> wrote:
On 15 March 2014 12:28, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Sat, 15 Mar 2014 12:20:42 +0000 Oscar Benjamin <oscar.j.benjamin@gmail.com> wrote:
I don't think it's a premature optimisation. It's a significant algorithmic optimisation.
You could also make the multiplications lazy (and enforce the optimal order when computing the final result) rather than enforce that optimization at the language parsing level. It would be more flexible, and would also avoid potentially pessimizing other use cases.
That's true. I believe both blaze and numpypy intend to introduce optimisations in this style.
Just to add to that: I personally would almost always use brackets rather than rely on left- or right- associativity for something like this. A similar way that it can come up is with scalar-scalar vs scalar-array multiplication e.g.: 2 * pi * x / L * A # A is a big array I would rewrite that as (2 * pi * x / L) * A rather than rely on precedence/associativity. Oscar