aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/product_mmtr.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2019-09-10 23:29:52 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2019-09-10 23:29:52 +0200
commitc06e6fd115d747c42a2b2ea029c53bbdf41276d6 (patch)
tree52ca332b7f5fcdc46c05b7a222719cb431bfe136 /test/product_mmtr.cpp
parentea0d5dc956c1268dd91ce636d8fd5e07225acb06 (diff)
bug #1741: fix SelfAdjointView::rankUpdate and product to triangular part for destination with non-trivial inner stride
Diffstat (limited to 'test/product_mmtr.cpp')
-rw-r--r--test/product_mmtr.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/product_mmtr.cpp b/test/product_mmtr.cpp
index bb19e6e52..8f8c5fe1f 100644
--- a/test/product_mmtr.cpp
+++ b/test/product_mmtr.cpp
@@ -82,6 +82,16 @@ template<typename Scalar> void mmtr(int size)
ref2.template triangularView<Lower>() = ref1.template triangularView<Lower>();
matc.template triangularView<Lower>() = sqc * matc * sqc.adjoint();
VERIFY_IS_APPROX(matc, ref2);
+
+ // destination with a non-default inner-stride
+ // see bug 1741
+ {
+ typedef Matrix<Scalar,Dynamic,Dynamic> MatrixX;
+ MatrixX buffer(2*size,2*size);
+ Map<MatrixColMaj,0,Stride<Dynamic,Dynamic> > map1(buffer.data(),size,size,Stride<Dynamic,Dynamic>(2*size,2));
+ buffer.setZero();
+ CHECK_MMTR(map1, Lower, = s*soc*sor.adjoint());
+ }
}
EIGEN_DECLARE_TEST(product_mmtr)