diff options
Diffstat (limited to 'test/product_trsolve.cpp')
-rw-r--r-- | test/product_trsolve.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/product_trsolve.cpp b/test/product_trsolve.cpp index c927cb635..c59748c5b 100644 --- a/test/product_trsolve.cpp +++ b/test/product_trsolve.cpp @@ -72,6 +72,19 @@ template<typename Scalar,int Size, int Cols> void trsolve(int size=Size,int cols VERIFY_TRSM(rmLhs.template triangularView<Lower>(), rmRhs.col(c)); VERIFY_TRSM(cmLhs.template triangularView<Lower>(), rmRhs.col(c)); + // destination with a non-default inner-stride + // see bug 1741 + { + typedef Matrix<Scalar,Dynamic,Dynamic> MatrixX; + MatrixX buffer(2*cmRhs.rows(),2*cmRhs.cols()); + Map<Matrix<Scalar,Size,Cols,colmajor>,0,Stride<Dynamic,2> > map1(buffer.data(),cmRhs.rows(),cmRhs.cols(),Stride<Dynamic,2>(2*cmRhs.outerStride(),2)); + Map<Matrix<Scalar,Size,Cols,rowmajor>,0,Stride<Dynamic,2> > map2(buffer.data(),rmRhs.rows(),rmRhs.cols(),Stride<Dynamic,2>(2*rmRhs.outerStride(),2)); + buffer.setZero(); + VERIFY_TRSM(cmLhs.conjugate().template triangularView<Lower>(), map1); + buffer.setZero(); + VERIFY_TRSM(cmLhs .template triangularView<Lower>(), map2); + } + if(Size==Dynamic) { cmLhs.resize(0,0); |