public Tuple <Matrix, Vector> FnEigSymm(Matrix A) { if (HDebug.Selftest()) { Matrix tA = new double[, ] { { 1, 2 }, { 2, 1 } }; var tVD = FnEigSymm(tA); Matrix tV = new double[, ] { { -0.7071, 0.7071 }, { 0.7071, 0.7071 } }; Vector tD = new double[] { -1, 3 }; HDebug.AssertToleranceMatrix(0.0001, tV - tVD.Item1); HDebug.AssertToleranceVector(0, tD - tVD.Item2); } var AA = ToILMat(A); var VVDD = EigSymm(AA); return(new Tuple <Matrix, Vector>(VVDD.Item1.ToArray(), VVDD.Item2)); }