use arma_config instead of #ifdef
This commit is contained in:
@@ -44,6 +44,20 @@ struct arma_config
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(ARMA_OPTIMISE_BAND)
|
||||
static constexpr bool optimise_band = true;
|
||||
#else
|
||||
static constexpr bool optimise_band = false;
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
static constexpr bool optimise_sympd = true;
|
||||
#else
|
||||
static constexpr bool optimise_sympd = false;
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(ARMA_OPTIMISE_INVEXPR)
|
||||
static constexpr bool optimise_invexpr = true;
|
||||
#else
|
||||
|
||||
@@ -143,20 +143,12 @@ glue_solve_gen_full::apply(Mat<eT>& out, const Base<eT,T1>& A_expr, const Base<e
|
||||
uword KL = 0;
|
||||
uword KU = 0;
|
||||
|
||||
#if defined(ARMA_OPTIMISE_BAND)
|
||||
const bool is_band = (no_band || auxlib::crippled_lapack(A)) ? false : band_helper::is_band(KL, KU, A, uword(32));
|
||||
#else
|
||||
const bool is_band = false;
|
||||
#endif
|
||||
const bool is_band = arma_config::optimise_band && ((no_band || auxlib::crippled_lapack(A)) ? false : band_helper::is_band(KL, KU, A, uword(32)));
|
||||
|
||||
const bool is_triu = (no_trimat || refine || equilibrate || likely_sympd || is_band ) ? false : trimat_helper::is_triu(A);
|
||||
const bool is_tril = (no_trimat || refine || equilibrate || likely_sympd || is_band || is_triu) ? false : trimat_helper::is_tril(A);
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = (no_sympd || auxlib::crippled_lapack(A) || is_band || is_triu || is_tril) ? false : (likely_sympd ? true : sympd_helper::guess_sympd(A, uword(16)));
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && ((no_sympd || auxlib::crippled_lapack(A) || is_band || is_triu || is_tril) ? false : (likely_sympd ? true : sympd_helper::guess_sympd(A, uword(16))));
|
||||
|
||||
if(fast)
|
||||
{
|
||||
|
||||
@@ -69,11 +69,7 @@ op_chol::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename T1::
|
||||
|
||||
uword KD = 0;
|
||||
|
||||
#if defined(ARMA_OPTIMISE_BAND)
|
||||
const bool is_band = (auxlib::crippled_lapack(out)) ? false : ((layout == 0) ? band_helper::is_band_upper(KD, out, uword(32)) : band_helper::is_band_lower(KD, out, uword(32)));
|
||||
#else
|
||||
const bool is_band = false;
|
||||
#endif
|
||||
const bool is_band = arma_config::optimise_band && ((auxlib::crippled_lapack(out)) ? false : ((layout == 0) ? band_helper::is_band_upper(KD, out, uword(32)) : band_helper::is_band_lower(KD, out, uword(32))));
|
||||
|
||||
const bool status = (is_band) ? auxlib::chol_band(out, KD, layout) : auxlib::chol(out, layout);
|
||||
|
||||
|
||||
@@ -119,11 +119,7 @@ op_cond::rcond(const Base<typename T1::elem_type, T1>& X)
|
||||
return auxlib::rcond_trimat(A, layout);
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = auxlib::crippled_lapack(A) ? false : sympd_helper::guess_sympd(A);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && (auxlib::crippled_lapack(A) ? false : sympd_helper::guess_sympd(A));
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
@@ -86,11 +86,7 @@ op_expmat::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename T1
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(A);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(A);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
@@ -154,11 +154,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 defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = (no_sympd) ? false : (likely_sympd ? true : sympd_helper::guess_sympd(out));
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && ((no_sympd) ? false : (likely_sympd ? true : sympd_helper::guess_sympd(out)));
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
@@ -359,11 +355,7 @@ op_inv_gen_rcond::apply_direct(Mat<typename T1::elem_type>& out, typename T1::po
|
||||
return auxlib::inv_tr_rcond(out, out_rcond, ((is_triu_expr || is_triu_mat) ? uword(0) : uword(1)));
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = (auxlib::crippled_lapack(out)) ? false : sympd_helper::guess_sympd(out);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && ((auxlib::crippled_lapack(out)) ? false : sympd_helper::guess_sympd(out));
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
@@ -56,11 +56,7 @@ op_log_det::apply_direct(typename T1::elem_type& out_val, typename T1::pod_type&
|
||||
|
||||
if(is_triu || is_tril) { return op_log_det::apply_trimat(out_val, out_sign, A); }
|
||||
|
||||
// #if defined(ARMA_OPTIMISE_SYMPD)
|
||||
// const bool try_sympd = sympd_helper::guess_sympd(A);
|
||||
// #else
|
||||
// const bool try_sympd = false;
|
||||
// #endif
|
||||
// const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(A);
|
||||
//
|
||||
// if(try_sympd)
|
||||
// {
|
||||
|
||||
@@ -134,11 +134,7 @@ op_logmat::apply_direct(Mat< std::complex<typename T1::elem_type> >& out, const
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(A);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(A);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
@@ -307,11 +303,7 @@ op_logmat_cx::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(S);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(S);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
@@ -75,27 +75,22 @@ op_pinv::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename T1::
|
||||
return op_pinv::apply_diag(out, A, tol);
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
bool do_sym = false;
|
||||
bool do_sympd = false;
|
||||
bool do_sym = false;
|
||||
bool do_sympd = false;
|
||||
|
||||
const bool is_sym_size_ok = (n_rows > (is_cx<eT>::yes ? uword(20) : uword(40)));
|
||||
const bool is_arg_default = ((tol == T(0)) && (method_id == uword(0)));
|
||||
|
||||
if( (arma_config::optimise_sympd) && (auxlib::crippled_lapack(A) == false) && (is_arg_default || is_sym_size_ok) )
|
||||
{
|
||||
bool is_approx_sym = false;
|
||||
bool is_approx_sympd = false;
|
||||
|
||||
const bool is_sym_size_ok = (n_rows > (is_cx<eT>::yes ? uword(20) : uword(40)));
|
||||
const bool is_arg_default = ((tol == T(0)) && (method_id == uword(0)));
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
if( (auxlib::crippled_lapack(A) == false) && (is_arg_default || is_sym_size_ok) )
|
||||
{
|
||||
bool is_approx_sym = false;
|
||||
bool is_approx_sympd = false;
|
||||
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
do_sym = is_sym_size_ok && ((is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd));
|
||||
do_sympd = is_arg_default && is_approx_sympd;
|
||||
}
|
||||
#else
|
||||
const bool do_sym = false;
|
||||
const bool do_sympd = false;
|
||||
#endif
|
||||
do_sym = is_sym_size_ok && ((is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd));
|
||||
do_sympd = is_arg_default && is_approx_sympd;
|
||||
}
|
||||
|
||||
if(do_sympd)
|
||||
{
|
||||
|
||||
@@ -207,11 +207,7 @@ op_powmat_cx::apply_direct(Mat< std::complex<typename T1::pod_type> >& out, cons
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(A);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(A);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
@@ -42,21 +42,17 @@ op_rank::apply(uword& out, const Base<typename T1::elem_type,T1>& expr, const ty
|
||||
return op_rank::apply_diag(out, A, tol);
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
bool do_sym = false;
|
||||
bool do_sym = false;
|
||||
|
||||
if((arma_config::optimise_sympd) && (auxlib::crippled_lapack(A) == false) && (A.n_rows >= (is_cx<eT>::yes ? uword(64) : uword(128))))
|
||||
{
|
||||
bool is_approx_sym = false;
|
||||
bool is_approx_sympd = false;
|
||||
|
||||
if((auxlib::crippled_lapack(A) == false) && (A.n_rows >= (is_cx<eT>::yes ? uword(64) : uword(128))))
|
||||
{
|
||||
bool is_approx_sym = false;
|
||||
bool is_approx_sympd = false;
|
||||
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
do_sym = (is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd);
|
||||
}
|
||||
#else
|
||||
const bool do_sym = false;
|
||||
#endif
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
do_sym = (is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd);
|
||||
}
|
||||
|
||||
if(do_sym)
|
||||
{
|
||||
|
||||
@@ -139,11 +139,7 @@ op_sqrtmat::apply_direct(Mat< std::complex<typename T1::elem_type> >& out, const
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(A);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(A);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
@@ -340,11 +336,7 @@ op_sqrtmat_cx::apply_direct(Mat<typename T1::elem_type>& out, const Base<typenam
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(ARMA_OPTIMISE_SYMPD)
|
||||
const bool try_sympd = sympd_helper::guess_sympd(S);
|
||||
#else
|
||||
const bool try_sympd = false;
|
||||
#endif
|
||||
const bool try_sympd = arma_config::optimise_sympd && sympd_helper::guess_sympd(S);
|
||||
|
||||
if(try_sympd)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user