protected List<mat> svd(double[,] m) { var svd = new SingularValueDecomposition(m, true, true, true); return new List<mat> { svd.LeftSingularVectors, svd.DiagonalMatrix, svd.RightSingularVectors }; }