MatMult(const MatExpr<E1>& a, const MatExpr<E2>& b) : a_(a.derived()), b_(b.derived()) { assert(a_.cols() == b_.rows()); }
MatScale(const MatExpr<E1>& a, double b) : alpha_(b), a_(a.derived()) { }
MatAdd(const MatExpr<E1>& a, const MatExpr<E2>& b) : a_(a.derived()), b_(b.derived()) { assert(a_.rows() == b.rows() && a.cols() == b.cols()); }
MatScale(double b, const MatExpr<E1>& a) : alpha_(b), a_(a.derived()) { }