mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-24 22:04:28 +08:00
Fix 1x1 selfadjoint matrix-vector product bug
This commit is contained in:
parent
ac1b29f823
commit
6854da2ea0
@ -173,6 +173,11 @@ struct selfadjoint_product_impl<Lhs, LhsMode, false, Rhs, 0, true> {
|
||||
|
||||
eigen_assert(dest.rows() == a_lhs.rows() && dest.cols() == a_rhs.cols());
|
||||
|
||||
if (a_lhs.rows() == 1) {
|
||||
dest = (alpha * a_lhs.coeff(0, 0)) * a_rhs;
|
||||
return;
|
||||
}
|
||||
|
||||
add_const_on_value_type_t<ActualLhsType> lhs = LhsBlasTraits::extract(a_lhs);
|
||||
add_const_on_value_type_t<ActualRhsType> rhs = RhsBlasTraits::extract(a_rhs);
|
||||
|
||||
|
@ -57,6 +57,10 @@ void product_selfadjoint(const MatrixType& m) {
|
||||
v1.tail(rows - 1) * v2.head(cols - 1).adjoint() + v2.head(cols - 1) * v1.tail(rows - 1).adjoint();
|
||||
VERIFY_IS_APPROX(m2, m3.template triangularView<Lower>().toDenseMatrix());
|
||||
}
|
||||
|
||||
// matrix-vector
|
||||
m2 = m1.template triangularView<Lower>();
|
||||
VERIFY_IS_APPROX(m1 * m4, m2.template selfadjointView<Lower>() * m4);
|
||||
}
|
||||
|
||||
EIGEN_DECLARE_TEST(product_selfadjoint) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user