I have just started learning about matrix and tensor calculus. I was introduced to different products: Kronecker, Hadamard, Frobenius, row-wise products and obviously standard matrix and scalar multiplications. I am not sure yet what is the order in which they can be executed.
I think they are not mutually associative. It is, if you consider the following expression: $$ \mathbf{A} \mathbf{B} \odot \mathbf{C} \centerdot \mathbf{D} $$ where all matrices are $2 \times 2$ matrices ($ \mathbf{A, B, C, D} \in \mathcal{M}_{2 \times 2} $), $\odot$ refers to Hadamard product and $\centerdot$ to Frobenius product. Then I think matrix multiplication should be executed first, then Hadamard product and finally Frobenius product. But it is very specific example and I am not sure if it works in general.
What are the rules concerning these operations' order in an expression?
The first consideration is about the dimension of the matrices that are multiplied and of the result of the product.
The Frobenius inner product takes two matrices of the same dimension and gives a scalar, so the ''triple product'' $B\odot C\cdot D$ can be interpreted only as $(B\odot C)\cdot D$ because the oter $B\odot (C\cdot D)$ is not defined.
The Hadamard product take two matrices of the same dimension and gives another matrix of the same dimension, so for $AB\odot C$ the two possibilities $A(B\odot C)$ and $(AB)\odot C$ are well defined. Since the two results are different (in general) it is better to specify with parentheses what is the choice.