Hi guys, I've been thinking about a feature for our DSEL, where lots of matrix products can occur in an expression. Part of an expression might be: nu_eff * transpose(nabla(u)) * nabla(u) + transpose(N(u) + coeffs.tau_su*u_adv*nabla(u)) * u_adv*nabla(u)
Here, u_adv*nabla(u) is a vector-matrix product that occurs twice, so it would be beneficial to calculate it only once. I was wondering if it would be doable to construct a fusion map, with as keys the type of each product occurring in an expression, and evaluate each member of the map before evaluating the actual expression. When the expression is evaluated, matrix products would then be looked up in the map. Does this sound like something that's doable? I'm assuming the fold transform can help me in the construction of the fusion map. Note also that each matrix has a compile-time size, so any stored temporary would need to have its type computed. Cheers, -- Bart _______________________________________________ proto mailing list proto@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/proto