aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/product_mmtr.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-06-16 22:11:41 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-06-16 22:11:41 +0200
commit736a805883a1e20c0a224a06b1ea5c1067c7a670 (patch)
treeac099cdb21d0fba8f422848699708dfe967f8209 /test/product_mmtr.cpp
parent9ab8ac5c8b7d8173883047f6a099089ff5f9fb73 (diff)
Add unit test for bug #879
Diffstat (limited to 'test/product_mmtr.cpp')
-rw-r--r--test/product_mmtr.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/product_mmtr.cpp b/test/product_mmtr.cpp
index ecb5c36a3..b66529acd 100644
--- a/test/product_mmtr.cpp
+++ b/test/product_mmtr.cpp
@@ -33,6 +33,8 @@ template<typename Scalar> void mmtr(int size)
MatrixColMaj osc(othersize,size); osc.setRandom();
MatrixRowMaj sor(size,othersize); sor.setRandom();
MatrixRowMaj osr(othersize,size); osr.setRandom();
+ MatrixColMaj sqc(size,size); sqc.setRandom();
+ MatrixRowMaj sqr(size,size); sqr.setRandom();
Scalar s = internal::random<Scalar>();
@@ -50,6 +52,16 @@ template<typename Scalar> void mmtr(int size)
CHECK_MMTR(matc, Upper, -= s*(osc.transpose()*osc.conjugate()));
CHECK_MMTR(matr, Lower, -= s*soc*soc.adjoint());
CHECK_MMTR(matr, Upper, -= soc*(s*soc.adjoint()));
+
+ CHECK_MMTR(matc, Lower, -= s*sqr*sqc.template triangularView<Upper>());
+ CHECK_MMTR(matc, Upper, = s*sqc*sqr.template triangularView<Upper>());
+ CHECK_MMTR(matc, Lower, += s*sqr*sqc.template triangularView<Lower>());
+ CHECK_MMTR(matc, Upper, = s*sqc*sqc.template triangularView<Lower>());
+
+ CHECK_MMTR(matc, Lower, = (s*sqr).template triangularView<Upper>()*sqc);
+ CHECK_MMTR(matc, Upper, -= (s*sqc).template triangularView<Upper>()*sqc);
+ CHECK_MMTR(matc, Lower, = (s*sqr).template triangularView<Lower>()*sqc);
+ CHECK_MMTR(matc, Upper, += (s*sqc).template triangularView<Lower>()*sqc);
}
void test_product_mmtr()