From ffdc6c0cea8c3738df10ca02fcf46bf2d4656dd9 Mon Sep 17 00:00:00 2001 From: conrad Date: Sun, 2 Apr 2023 23:49:32 +1000 Subject: [PATCH] add notes --- include/armadillo_bits/sp_auxlib_meat.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/armadillo_bits/sp_auxlib_meat.hpp b/include/armadillo_bits/sp_auxlib_meat.hpp index 1f0a87e4..833c4b3a 100644 --- a/include/armadillo_bits/sp_auxlib_meat.hpp +++ b/include/armadillo_bits/sp_auxlib_meat.hpp @@ -1145,7 +1145,7 @@ sp_auxlib::eigs_gen(Col< std::complex >& eigval, Mat< std::complex >& eigv arma_ignore(form_val); arma_ignore(sigma); arma_ignore(opts); - + arma_stop_logic_error("eigs_gen(): use of ARPACK must be enabled for decomposition of complex matrices"); return false; } @@ -1762,6 +1762,9 @@ sp_auxlib::spsolve_refine(Mat& X, typename T1::pod_type& // arma_debug_check( (type_matched == false), "copy_to_spmat(): type mismatch" ); // arma_debug_check( (A.Mtype != superlu::SLU_GE), "copy_to_spmat(): unknown layout" ); // +// // NOTE: the l and u instances of SuperMatrix resulting from superlu::gstrf() +// // NOTE: do not have the superlu::SLU_GE layout +// // const superlu::NCformat* nc = (const superlu::NCformat*)(A.Store); // // if(nc == nullptr) { out.reset(); return; } @@ -1780,6 +1783,8 @@ sp_auxlib::spsolve_refine(Mat& X, typename T1::pod_type& // // arrayops::convert(access::rwp(out.col_ptrs), nc->colptr, A_n_cols+1 ); // arrayops::convert(access::rwp(out.row_indices), nc->rowind, A_n_nonzero); +// +// out.remove_zeros(); // in case SuperLU has bugs and stores zeros in sparse matrices // } @@ -2192,6 +2197,7 @@ sp_auxlib::run_aupd_shiftinvert return; } + // NOTE: potential problem with inconsistent/mismatched use of eT and T types eT x_norm_val = sp_auxlib::norm1(x.get_ptr()); eT x_rcond = sp_auxlib::lu_rcond(l.get_ptr(), u.get_ptr(), x_norm_val);