sympd_helper.hpp (armadillo-10.8.2.tar.xz) | : | sympd_helper.hpp (armadillo-11.0.0.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 429 | skipping to change at line 429 | |||
is_approx_sym = false; | is_approx_sym = false; | |||
is_approx_sympd = false; | is_approx_sympd = false; | |||
return; | return; | |||
} | } | |||
analyse_matrix_worker(is_approx_sym, is_approx_sympd, A); | analyse_matrix_worker(is_approx_sym, is_approx_sympd, A); | |||
if(is_approx_sym == false) { is_approx_sympd = false; } | if(is_approx_sym == false) { is_approx_sympd = false; } | |||
} | } | |||
template<typename eT> | ||||
inline | ||||
bool | ||||
check_diag_imag(const Mat<eT>& A) | ||||
{ | ||||
arma_extra_debug_sigprint(); | ||||
// NOTE: assuming matrix A is square-sized | ||||
typedef typename get_pod_type<eT>::result T; | ||||
const T tol = T(10000) * std::numeric_limits<T>::epsilon(); // allow some lee | ||||
way | ||||
const eT* colmem = A.memptr(); | ||||
const uword N = A.n_rows; | ||||
for(uword i=0; i<N; ++i) | ||||
{ | ||||
const eT& A_ii = colmem[i]; | ||||
const T A_ii_imag = access::tmp_imag(A_ii); | ||||
if(std::abs(A_ii_imag) > tol) { return false; } | ||||
colmem += N; | ||||
} | ||||
return true; | ||||
} | ||||
} // end of namespace sympd_helper | } // end of namespace sympd_helper | |||
//! @} | //! @} | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 31 lines changed or added |