diff options
author | Chen-Pang He <jdh8@ms63.hinet.net> | 2012-08-26 02:15:41 +0800 |
---|---|---|
committer | Chen-Pang He <jdh8@ms63.hinet.net> | 2012-08-26 02:15:41 +0800 |
commit | 5252d823c92dd2db388869e097eac9b1501488ce (patch) | |
tree | 2e13b2c1ebdb0665822029bae4bc5f720afcfdef /unsupported/test/matrix_power.cpp | |
parent | 1cd4279b03d5cb4a9ae16eef7af78b4af1003b8f (diff) |
Optimize matrix power
Diffstat (limited to 'unsupported/test/matrix_power.cpp')
-rw-r--r-- | unsupported/test/matrix_power.cpp | 12 |
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); } |