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?