From e6bfb6941d71528f41bc53bba34b2c7e4c78fa5d Mon Sep 17 00:00:00 2001 From: conrad Date: Mon, 11 Nov 2024 15:39:24 +1000 Subject: [PATCH] for unimplemented options, change errors to warnings --- include/armadillo_bits/glue_solve_meat.hpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/include/armadillo_bits/glue_solve_meat.hpp b/include/armadillo_bits/glue_solve_meat.hpp index eccc6822..96b0a15c 100644 --- a/include/armadillo_bits/glue_solve_meat.hpp +++ b/include/armadillo_bits/glue_solve_meat.hpp @@ -120,9 +120,6 @@ glue_solve_gen_full::apply(Mat& actual_out, const Base& A_expr, const arma_conform_check( (fast && equilibrate ), "solve(): options 'fast' and 'equilibrate' are mutually exclusive" ); arma_conform_check( (fast && refine ), "solve(): options 'fast' and 'refine' are mutually exclusive" ); arma_conform_check( (no_sympd && likely_sympd), "solve(): options 'no_sympd' and 'likely_sympd' are mutually exclusive" ); - - arma_conform_check( (force_sym && equilibrate ), "solve(): combination of options 'force_sym' and 'equilibrate' not implemented yet"); - arma_conform_check( (force_sym && refine ), "solve(): combination of options 'force_sym' and 'refine' not implemented yet" ); } Mat A = A_expr.get_ref(); @@ -133,11 +130,11 @@ glue_solve_gen_full::apply(Mat& actual_out, const Base& A_expr, const arma_conform_check( no_approx, "solve(): options 'no_approx' and 'force_approx' are mutually exclusive" ); - if(fast) { arma_warn(2, "solve(): option 'fast' ignored for forced approximate solution" ); } - if(equilibrate) { arma_warn(2, "solve(): option 'equilibrate' ignored for forced approximate solution" ); } - if(refine) { arma_warn(2, "solve(): option 'refine' ignored for forced approximate solution" ); } - if(likely_sympd) { arma_warn(2, "solve(): option 'likely_sympd' ignored for forced approximate solution" ); } - if(force_sym) { arma_warn(2, "solve(): option 'force_sym' ignored for forced approximate solution" ); } + if(fast) { arma_warn(2, "solve(): option 'fast' ignored for forced approximate solution" ); } + if(equilibrate) { arma_warn(2, "solve(): option 'equilibrate' ignored for forced approximate solution" ); } + if(refine) { arma_warn(2, "solve(): option 'refine' ignored for forced approximate solution" ); } + if(likely_sympd) { arma_warn(2, "solve(): option 'likely_sympd' ignored for forced approximate solution" ); } + if(force_sym) { arma_warn(2, "solve(): option 'force_sym' ignored for forced approximate solution" ); } return auxlib::solve_approx_svd(actual_out, A, B_expr.get_ref()); // A is overwritten } @@ -150,7 +147,9 @@ glue_solve_gen_full::apply(Mat& actual_out, const Base& A_expr, const if(is_cx::yes) { arma_warn(1, "solve(): option 'force_sym' enabled, but given matrix is not hermitian"); } } - if(likely_sympd) { arma_warn(2, "solve(): option 'likely_sympd' ignored for forced symmetric solver" ); } + if(likely_sympd) { arma_warn(2, "solve(): option 'likely_sympd' ignored for forced symmetric solver" ); } + if(equilibrate) { arma_warn(2, "solve(): combination of options 'force_sym' and 'equilibrate' not implemented yet"); } + if(refine) { arma_warn(2, "solve(): combination of options 'force_sym' and 'refine' not implemented yet" ); } } // A_expr and B_expr can be used more than once (sympd optimisation fails or approximate solution required),