Decrease the "tol" parameter specified into the "is.non.singular.matrix() call, for example as:
m <- matrix(c( 1.904255e-12, -1.904255e-12, -8.238960e-13, -1.240294e-12, -1.904255e-12, 3.637979e-12, 1.364242e-12, 1.818989e-12, -8.238960e-13, 1.364242e-12, 4.809988e+00, 7.742369e-01, -1.240294e-12, 1.818989e-12, 7.742369e-01, 1.090411e+00), nrow=4, ncol=4) > m [,1] [,2] [,3] [,4] [1,] 1.904255e-12 -1.904255e-12 -8.238960e-13 -1.240294e-12 [2,] -1.904255e-12 3.637979e-12 1.364242e-12 1.818989e-12 [3,] -8.238960e-13 1.364242e-12 4.809988e+00 7.742369e-01 [4,] -1.240294e-12 1.818989e-12 7.742369e-01 1.090411e+00 > print(is.non.singular.matrix(m, tol = 1e-24)) [1] TRUE > print(is.positive.definite(m, tol=1e-18)) [1] TRUE -- GG http://around-r.blogspot.it [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.