public MatrixValue Function(MatrixValue M, MatrixValue phi) { if (M.IsSymmetric) { var cg = new CGSolver(M); return(cg.Solve(phi)); } else if (M.DimensionX == M.DimensionY && M.DimensionY > 64) // Is there a way to "guess" a good number for this? { var gmres = new GMRESkSolver(M); gmres.Restart = 30; return(gmres.Solve(phi)); } return(M.Inverse() * phi); }
public MatrixValue Function(MatrixValue M) { return(M.Inverse()); }
public MatrixValue Function(MatrixValue M) { return M.Inverse(); }