diff --git a/include/armadillo_bits/fn_log_det.hpp b/include/armadillo_bits/fn_log_det.hpp index b8a9918b..6d53e5e0 100644 --- a/include/armadillo_bits/fn_log_det.hpp +++ b/include/armadillo_bits/fn_log_det.hpp @@ -89,21 +89,21 @@ log_det eT x = A[0]; - T sign = (is_cx::no) ? ( (access::tmp_real(x) < T(0)) ? -1 : +1 ) : +1; - eT val = (is_cx::no) ? std::log( (access::tmp_real(x) < T(0)) ? x*T(-1) : x ) : std::log(x); + T sign = (is_cx::no) ? ( (access::tmp_real(x) < T(0)) ? T(-1) : T(1) ) : T(1); + eT val = (is_cx::no) ? std::log( (access::tmp_real(x) < T(0)) ? x*T(-1) : x ) : std::log(x); for(uword i=1; i::no) ? ( (access::tmp_real(x) < T(0)) ? -1 : +1 ) : +1; - val += (is_cx::no) ? std::log( (access::tmp_real(x) < T(0)) ? x*T(-1) : x ) : std::log(x); + sign *= (is_cx::no) ? ( (access::tmp_real(x) < T(0)) ? T(-1) : T(1) ) : T(1); + val += (is_cx::no) ? std::log( (access::tmp_real(x) < T(0)) ? x*T(-1) : x ) : std::log(x); } out_val = val; out_sign = sign; - return true; // TODO: detect failure + return arma_isnan(out_val); }