aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/test/matrix_power.cpp
diff options
context:
space:
mode:
authorGravatar Chen-Pang He <jdh8@ms63.hinet.net>2012-08-26 02:15:41 +0800
committerGravatar Chen-Pang He <jdh8@ms63.hinet.net>2012-08-26 02:15:41 +0800
commit5252d823c92dd2db388869e097eac9b1501488ce (patch)
tree2e13b2c1ebdb0665822029bae4bc5f720afcfdef /unsupported/test/matrix_power.cpp
parent1cd4279b03d5cb4a9ae16eef7af78b4af1003b8f (diff)
Optimize matrix power
Diffstat (limited to 'unsupported/test/matrix_power.cpp')
-rw-r--r--unsupported/test/matrix_power.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/unsupported/test/matrix_power.cpp b/unsupported/test/matrix_power.cpp
index 80f65ebe4..3c0e4f356 100644
--- a/unsupported/test/matrix_power.cpp
+++ b/unsupported/test/matrix_power.cpp
@@ -67,7 +67,7 @@ void testIntPowers(const MatrixType& m, double tol)
std::cout << "testIntPower: i = 1 error powerm = " << relerr(m1, m3) << " " << relerr(m1, m4) << '\n';
VERIFY(m1 == m3 && m1 == m4);
- m2 = m1 * m1;
+ m2.noalias() = m1 * m1;
m3 = m1.pow(2);
m4 = m1.pow(2.);
std::cout << "testIntPower: i = 2 error powerm = " << relerr(m2, m3) << " " << relerr(m2, m4) << '\n';
@@ -111,7 +111,7 @@ void testExponentLaws(const MatrixType& m, double tol)
m3 = m1.pow(y);
m4 = m1.pow(x + y);
- m5 = m2 * m3;
+ m5.noalias() = m2 * m3;
std::cout << "testExponentLaws: error powerm = " << relerr(m4, m5);
VERIFY(m4.isApprox(m5, RealScalar(tol)));
@@ -145,13 +145,13 @@ void testMatrixVectorProduct(const MatrixType& m, const VectorType& v, double to
pInt = rand();
pInt >>= 2;
- v2 = m1.pow(pReal).eval() * v1;
- v3 = m1.pow(pReal) * v1;
+ v2.noalias() = m1.pow(pReal).eval() * v1;
+ v3.noalias() = m1.pow(pReal) * v1;
std::cout << "testMatrixVectorProduct: error powerm = " << relerr(v2, v3);
VERIFY(v2.isApprox(v3, RealScalar(tol)));
- v2 = m1.pow(pInt).eval() * v1;
- v3 = m1.pow(pInt) * v1;
+ v2.noalias() = m1.pow(pInt).eval() * v1;
+ v3.noalias() = m1.pow(pInt) * v1;
std::cout << " " << relerr(v2, v3) << '\n';
VERIFY(v2.isApprox(v3, RealScalar(tol)) || v2 == v3);
}