It seems to me Mathematica does not have an inbuilt matrix multiplication operator. The dot operator fails as such, as is even noted under "Possible Issues" in its documentation it inexplicably treats row vectors multiplied on the right as column vectors (similarly for column vectors multiplied on the left). The result of this bad behavior is that very reasonable expressions like:
OuterProd[x_,y_]:= x . ConjugateTranspose[y]
behave unexpectedly. The above should compute the outer product if $x$ and $y$ are column vectors, but instead we get the inner product of x and y, yikes! Can anyone explain to me why there is no inbuilt matrix multiplication in Mathematica for general $p\times q$ and $q\times r$ matrices?
outerprod[x_,y_]:=Outer[Times,x,Conjugate[y]]
. $\endgroup$KroneckerProduct[x,Conjugate[y]]
. $\endgroup$