direct solvers in place