SuperLU supports solving the transposed system from the LU factorisation of the un-transposed system. This PR adds a solve_adjoint method to the SuperLU matrix solvers so that the LU factorisation from the right eigenvector solve can be reused for the left eigenvector solve. Corresponding changes are made to the sparse evp solver.
The benefits are that only one LU factorisation now needs to be done for each sparse solve which improves efficiency as this is often the slowest part of the evp solve. Furthermore, as matrix factorisations are based on the direct matrices, factorising the transposed system is often slower due to its change in structure. This PR removes this issue.
SuperLU supports solving the transposed system from the LU factorisation of the un-transposed system. This PR adds a solve_adjoint method to the SuperLU matrix solvers so that the LU factorisation from the right eigenvector solve can be reused for the left eigenvector solve. Corresponding changes are made to the sparse evp solver.
The benefits are that only one LU factorisation now needs to be done for each sparse solve which improves efficiency as this is often the slowest part of the evp solve. Furthermore, as matrix factorisations are based on the direct matrices, factorising the transposed system is often slower due to its change in structure. This PR removes this issue.