diff --git a/include/armadillo_bits/op_log_det_meat.hpp b/include/armadillo_bits/op_log_det_meat.hpp index 11ced171..1d713417 100644 --- a/include/armadillo_bits/op_log_det_meat.hpp +++ b/include/armadillo_bits/op_log_det_meat.hpp @@ -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::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); }