optimisation for sympd matrices (currently disabled)

This commit is contained in:
conrad
2022-02-28 16:21:04 +10:00
parent bdf0053e5d
commit 669c10e7d2
@@ -29,6 +29,7 @@ op_log_det::apply_direct(typename T1::elem_type& out_val, typename T1::pod_type&
arma_extra_debug_sigprint();
typedef typename T1::elem_type eT;
typedef typename T1::pod_type T;
if(strip_diagmat<T1>::do_diagmat)
{
@@ -55,6 +56,36 @@ 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
//
// if(try_sympd)
// {
// arma_extra_debug_print("op_log_det: attempting sympd optimisation");
//
// T out_val_real = T(0);
//
// const bool status = auxlib::log_det_sympd(out_val_real, A);
//
// if(status)
// {
// out_val = eT(out_val_real);
// out_sign = T(1);
//
// return true;
// }
//
// arma_extra_debug_print("op_log_det: sympd optimisation failed");
//
// // restore A as it's destroyed by auxlib::log_det_sympd()
// A = expr.get_ref();
//
// // fallthrough to the next return statement
// }
return auxlib::log_det(out_val, out_sign, A);
}