Direct Solvers and Matrix Decompositions