aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/product_trsolve.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/product_trsolve.cpp')
-rw-r--r--test/product_trsolve.cpp13
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);