enusre only cx hermitian matrices are optimised
This commit is contained in:
@@ -86,7 +86,7 @@ op_pinv::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename T1::
|
||||
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
do_sym = is_approx_sym;
|
||||
do_sym = (is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd);
|
||||
do_sympd = is_approx_sympd && (tol == T(0)) && (method_id == uword(0));
|
||||
}
|
||||
#else
|
||||
@@ -114,6 +114,7 @@ op_pinv::apply_direct(Mat<typename T1::elem_type>& out, const Base<typename T1::
|
||||
{
|
||||
arma_extra_debug_print("op_pinv: detected symmetric matrix");
|
||||
|
||||
|
||||
return op_pinv::apply_sym(out, A, tol, method_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ op_rank::apply(uword& out, const Base<typename T1::elem_type,T1>& expr, const ty
|
||||
|
||||
sympd_helper::analyse_matrix(is_approx_sym, is_approx_sympd, A);
|
||||
|
||||
do_sym = is_approx_sym;
|
||||
do_sym = (is_cx<eT>::no) ? (is_approx_sym) : (is_approx_sym && is_approx_sympd);
|
||||
}
|
||||
#else
|
||||
const bool do_sym = false;
|
||||
|
||||
Reference in New Issue
Block a user