public static Vector Solve(this Matrix matrix, Vector vector, MatrixMethod method = MatrixMethod.LU) { switch (method) { case MatrixMethod.LU: return(LU.Solve(matrix, vector)); case MatrixMethod.Cholesky: return(Cholesky.Solve(matrix, vector)); case MatrixMethod.SVD: return(SVD.Solve(matrix, vector)); default: throw new IndexOutOfRangeException(nameof(method)); } }
public static Matrix Inverse(this Matrix matrix, MatrixMethod method = MatrixMethod.LU) { switch (method) { case MatrixMethod.LU: return(LU.Inverse(matrix)); case MatrixMethod.Cholesky: return(Cholesky.Inverse(matrix)); case MatrixMethod.SVD: return(SVD.Inverse(matrix)); default: throw new IndexOutOfRangeException(nameof(method)); } }