#include #include // (t * m) [i] [j] = t * m [i] [j] template BOOST_UBLAS_INLINE typename boost::disable_if,T1>, typename matrix_binary_scalar1_traits >::result_type >::type operator * (const T1 &e1, const matrix_expression &e2) { typedef typename matrix_binary_scalar1_traits >::expression_type expression_type; return expression_type (e1, e2 ()); } // (m * t) [i] [j] = m [i] [j] * t template BOOST_UBLAS_INLINE typename boost::disable_if,T2>, typename matrix_binary_scalar2_traits >::result_type >::type operator * (const matrix_expression &e1, const T2 &e2) { typedef typename matrix_binary_scalar2_traits >::expression_type expression_type; return expression_type (e1 (), e2); } template BOOST_UBLAS_INLINE typename matrix_matrix_binary_traits::result_type operator* (const matrix_expression &e1, const matrix_expression &e2) { return prod(e1,e2); }