Scythe-1.0.3
template<typename T_type , matrix_order ORDER, matrix_style STYLE, matrix_order L_ORDER, matrix_style L_STYLE, matrix_order R_ORDER, matrix_style R_STYLE>
scythe::operator% ( const Matrix< T_type, L_ORDER, L_STYLE > &  lhs,
const Matrix< T_type, R_ORDER, R_STYLE > &  rhs 
) [inline]

Element multiply two matrices.

This operator multiplies the elements of the matrices lhs and rhs together, returning the result in a new Matrix object. This operator is overloaded to provide both Matrix by Matrix element-wise multiplication and Matrix by scalar element-wise multiplication. In the former case, the dimensions of the two matrices must be the same.

In addition, we define multiple templates of the overloaded operator to provide maximal flexibility when working with matrices with differing matrix_order and/or matrix_style. Each version of the overloaded operator (Matrix by Matrix, scalar by Matrix, and Matrix by scalar) provides both a default and general behavior, using templates. By default, the returned Matrix is concrete and has the same matrix_order as the left-hand (or only) Matrix argument. Alternatively, one may coerce the matrix_order and matrix_style of the returned Matrix to preferred values by using the full template declaration of the operator.

Parameters:
lhsThe left-hand-side Matrix or scalar.
rhsThe right-hand-side Matrix or scalar.
Exceptions:
scythe_conformation_error(Level 1)
scythe_alloc_error(Level 1)