On Friday, 11 September 2015 at 19:41:41 UTC, Martin Nowak wrote:
AFAIK expression templates are the primary choice tom implement
SIMD and
matrix libraries.
And I still have [this
idea](http://dpaste.dzfl.pl/cd375ac594cf) of
implementing a nice query language for ORMs.
While expression templates are used in many matrix libraries,
there has also been some move away from them. Blaze uses
so-called smart expression templates because of what they view as
performance limitations of expression templates. I think the
general idea is to reduce the creation of temporaries and
ordering the calculations so as to minimize the size of the
problem (like in the multiplication A*B*c, doing A*(B*c) instead
of (A*B)*c)
http://arxiv.org/pdf/1104.1729.pdf
At least the comparison operators are really limiting, e.g.
it's not possible to efficiently implement logical indexing.
vec[vec < 15], vec[vec == 15], vec[(vec != 15) & (vec > 10)]
I loves the logical indexing.