From ec1892e29d704957364fb4e1fb65e657108a8239 Mon Sep 17 00:00:00 2001 From: conrad Date: Tue, 1 Mar 2022 14:19:42 +1000 Subject: [PATCH] use the same setting for singular value threshold as pinv() --- include/armadillo_bits/auxlib_meat.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/armadillo_bits/auxlib_meat.hpp b/include/armadillo_bits/auxlib_meat.hpp index 3350e7b2..b1467ce1 100644 --- a/include/armadillo_bits/auxlib_meat.hpp +++ b/include/armadillo_bits/auxlib_meat.hpp @@ -5078,7 +5078,8 @@ auxlib::solve_approx_svd(Mat& out, Mat::epsilon(); blas_int rank = blas_int(0); blas_int info = blas_int(0); @@ -5199,7 +5200,8 @@ auxlib::solve_approx_svd(Mat< std::complex >& out, Mat< s blas_int nrhs = blas_int(B.n_cols); blas_int lda = blas_int(A.n_rows); blas_int ldb = blas_int(tmp.n_rows); - T rcond = T(-1); // -1 means "use machine precision" + //T rcond = T(-1); // -1 means "use machine precision" + T rcond = (std::max)(A.n_rows, A.n_cols) * std::numeric_limits::epsilon(); blas_int rank = blas_int(0); blas_int info = blas_int(0);