diff options
author | Gael Guennebaud <g.gael@free.fr> | 2019-09-10 23:29:52 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2019-09-10 23:29:52 +0200 |
commit | c06e6fd115d747c42a2b2ea029c53bbdf41276d6 (patch) | |
tree | 52ca332b7f5fcdc46c05b7a222719cb431bfe136 /test/product_mmtr.cpp | |
parent | ea0d5dc956c1268dd91ce636d8fd5e07225acb06 (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.cpp | 10 |
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) |