Hi, There are at least two strong arguments here: 1. Use * for element-by-element multiplication of matrices. This treats matrices as if they were just arrays, with an added "mult" function, but it has the advantage that it prevents or at least discourages users from writing poorly performing code. 2. Use * for matrix multiplication. This treats matrices as if they were elements of a linear algebra, with algebra operations "+" and "*". C++ allows such abstractions, but there may be a penalty in performance if the abstraction is abused. In GluCat - http://glucat.sf.net - I implemented Clifford algebras using "+" and "*". GluCat also has two other products, for which it uses, "&" and "^". I used "*" for the main product which defines the algebra. Underlying each Clifford algebra is an isomorphic matrix algebra. Best regards