I have two positive-definite matrices $A$ and $B$ (not necessarily symmetric), and we have $AB=BA$, is there any theorem that ensures that the product of $A$ and $B$, $AB$ is positive definite? Or semi-positive definite?
If $A$ and $B$ are positive definite then for nonzero $x$ we have $x^TAx >0$ and $x^T Bx>0$ so that $$x^TAxx^TBx >0$$ now $$x^TAxx^TBx = x^TA\|x\|^2Bx =\|x\|^2(x^TABx) >0$$ Since $\|x\|^2>0$ is the length of $x$ we have that also $x^TABx>0$ for all nonzero $x$. Thus $AB$ is also positive definite.
Since $A$ and B are commutable, $AB=BA$, hence they are joint diagonalizable with a unitary matrix, $U$, $U^\dagger U=I$:
$A=U^\dagger D_A U$
$B=U^\dagger D_B U$
$AB=U^\dagger D_A U U^\dagger D_B U=U^\dagger D_A D_B U$.
Now if entries of $D_A$ and $D_B$ are positive (nonnegative), i.e., $A$ and $B$ are P.D. (P.S.D.) then $AB$ is P.D. (P.S.D).