use threshold to avoid speed regressions under openblas

This commit is contained in:
conrad
2024-11-11 15:21:18 +10:00
parent ef011e704b
commit 59a24f45f2
3 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -119,7 +119,7 @@ glue_times_redirect2_helper<true>::apply(Mat<typename T1::elem_type>& out, const
arma_conform_assert_mul_size(A, B, "matrix multiplication");
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(A) == false) && sym_helper::is_approx_sym(A) );
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(A) == false) && sym_helper::is_approx_sym(A, uword(100)) );
const bool status = (strip_inv<T1>::do_inv_spd) ? auxlib::solve_sympd_fast(out, A, B) : ( (is_sym) ? auxlib::solve_sym_fast(out, A, B) : auxlib::solve_square_fast(out, A, B) );
@@ -280,7 +280,7 @@ glue_times_redirect3_helper<true>::apply(Mat<typename T1::elem_type>& out, const
if(is_cx<eT>::yes) { arma_warn(1, "inv_sympd(): given matrix is not hermitian"); }
}
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(A) == false) && sym_helper::is_approx_sym(A) );
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(A) == false) && sym_helper::is_approx_sym(A, uword(100)) );
const bool status = (strip_inv<T1>::do_inv_spd) ? auxlib::solve_sympd_fast(out, A, BC) : ( (is_sym) ? auxlib::solve_sym_fast(out, A, BC) : auxlib::solve_square_fast(out, A, BC) );
@@ -319,7 +319,7 @@ glue_times_redirect3_helper<true>::apply(Mat<typename T1::elem_type>& out, const
Mat<eT> solve_result;
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(B) == false) && sym_helper::is_approx_sym(B) );
const bool is_sym = (strip_inv<T1>::do_inv_spd) ? false : ( arma_config::optimise_sym && (auxlib::crippled_lapack(B) == false) && sym_helper::is_approx_sym(B, uword(100)) );
const bool status = (strip_inv<T2>::do_inv_spd) ? auxlib::solve_sympd_fast(solve_result, B, C) : ( (is_sym) ? auxlib::solve_sym_fast(solve_result, B, C) : auxlib::solve_square_fast(solve_result, B, C) );
+2 -2
View File
@@ -221,7 +221,7 @@ op_inv_gen_full::apply_direct(Mat<typename T1::elem_type>& out, const Base<typen
return auxlib::inv_tr(out, ((is_triu_expr || is_triu_mat) ? uword(0) : uword(1)));
}
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(out) == false) && (sym_helper::is_approx_sym(out)) )
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(out) == false) && (sym_helper::is_approx_sym(out, uword(100))) )
{
arma_debug_print("op_inv_gen_full: symmetric/hermitian optimisation");
@@ -387,7 +387,7 @@ op_inv_gen_rcond::apply_direct(Mat<typename T1::elem_type>& out, op_inv_gen_stat
return auxlib::inv_tr_rcond(out, out_state.rcond, ((is_triu_expr || is_triu_mat) ? uword(0) : uword(1)));
}
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(out) == false) && (sym_helper::is_approx_sym(out)) )
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(out) == false) && (sym_helper::is_approx_sym(out, uword(100))) )
{
arma_debug_print("op_inv_gen_rcond: symmetric/hermitian optimisation");
+1 -1
View File
@@ -89,7 +89,7 @@ op_rcond::apply(const Base<typename T1::elem_type, T1>& X)
return auxlib::rcond_trimat(A, layout);
}
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(A) == false) && (sym_helper::is_approx_sym(A)) )
if( (arma_config::optimise_sym) && (auxlib::crippled_lapack(A) == false) && (sym_helper::is_approx_sym(A, uword(100))) )
{
arma_debug_print("op_rcond::apply(): symmetric/hermitian optimisation");