From my reading of the SuiteSparse: In order to use one of the direct solvers, the CSC sparse matrix is converted to an internal type, `Sparse`

. Unfortunately, at that point the memory used for the matrix is duplicated because SuiteSparse uses its internal storage to operate on the matrix.

If this is true, it really becomes a prohibiting factor when dealing with large systems of coupled linear algebraic equations. What is the solution? I don’t know, but I suspect that a true Julia-only solver would need to be written.

Do you have some examples where this causes a memory issue? Usually, the factorizations of sparse matrices have fill in, which gets worse with larger matrices - and so this extra copy is not really a problem.

I suppose you can `decrement!`

in place yourself, call the solver API directly and then `increment!`

again afterwards - but be sure it is worthwhile to do that.

Writing supernodal or multifrontal sparse solvers is a lot of effort - instead just doing what I suggested above is trivial, if necessary. While it is likely a pure Julia left looking solver may come up soon (and is valuable in many situations), it only makes sense to use if your problems have very little structure.