trace/determinant(x) > 0 if x is positive_definite
_eval_rewrite and doit safe for non-Basic args
add MatrixElement
MatMul._entry simplified due to MatrixElement
diagonal elements of pos-def matrix are positive
use sympy.matrices.expressions.transpose.transpose
remove X.T -> X if X is symmetric
remove determinant of singular matrix check
refactor blockmatrix 2x2 inverse
unitary and normal predicates
add matrix fft
remove unnecessary import
blockmatrix - inverse pulled out.  matmul vectors
add reblock_2x2 block function
deblock and more powerful bc_inverse
remove slice._eval_transpose
rec_replace passes on non-Basics
MatMul uses Add when one element is ImmutableMat
_setitem checks for Basic, not Expr
update hadamard doctest