From 5252d823c92dd2db388869e097eac9b1501488ce Mon Sep 17 00:00:00 2001 From: Chen-Pang He Date: Sun, 26 Aug 2012 02:15:41 +0800 Subject: Optimize matrix power --- unsupported/test/matrix_power.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'unsupported/test/matrix_power.cpp') 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); } -- cgit v1.2.3