From bb46a453401fa4c79ce022a9861d7f7ed6a41047 Mon Sep 17 00:00:00 2001 From: Hauke Heibel Date: Sun, 20 Jun 2010 23:13:24 +0200 Subject: Finally fixed the matrix function/exponential warning. Index fixes. --- unsupported/test/matrix_function.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'unsupported/test/matrix_function.cpp') diff --git a/unsupported/test/matrix_function.cpp b/unsupported/test/matrix_function.cpp index 16995d836..3455fb936 100644 --- a/unsupported/test/matrix_function.cpp +++ b/unsupported/test/matrix_function.cpp @@ -38,12 +38,13 @@ inline bool test_isApprox_abs(const Type1& a, const Type2& b) // Returns a matrix with eigenvalues clustered around 0, 1 and 2. template -MatrixType randomMatrixWithRealEivals(const int size) +MatrixType randomMatrixWithRealEivals(const typename MatrixType::Index size) { + typedef typename MatrixType::Index Index; typedef typename MatrixType::Scalar Scalar; typedef typename MatrixType::RealScalar RealScalar; MatrixType diag = MatrixType::Zero(size, size); - for (int i = 0; i < size; ++i) { + for (Index i = 0; i < size; ++i) { diag(i, i) = Scalar(RealScalar(ei_random(0,2))) + ei_random() * Scalar(RealScalar(0.01)); } @@ -56,20 +57,21 @@ template struct randomMatrixWithImagEivals { - static MatrixType run(const int size) + static MatrixType run(const typename MatrixType::Index size) { + typedef typename MatrixType::Index Index; typedef typename MatrixType::Scalar Scalar; MatrixType diag = MatrixType::Zero(size, size); - int i = 0; + Index i = 0; while (i < size) { - int randomInt = ei_random(-1, 1); + Index randomInt = ei_random(-1, 1); if (randomInt == 0 || i == size-1) { diag(i, i) = ei_random() * Scalar(0.01); ++i; @@ -90,14 +92,14 @@ struct randomMatrixWithImagEivals template struct randomMatrixWithImagEivals { - static MatrixType run(const int size) + static MatrixType run(const typename MatrixType::Index size) { typedef typename MatrixType::Scalar Scalar; typedef typename MatrixType::RealScalar RealScalar; const Scalar imagUnit(0, 1); MatrixType diag = MatrixType::Zero(size, size); - for (int i = 0; i < size; ++i) { - diag(i, i) = Scalar(RealScalar(ei_random(-1, 1))) * imagUnit + for (Index i = 0; i < size; ++i) { + diag(i, i) = Scalar(RealScalar(ei_random(-1, 1))) * imagUnit + ei_random() * Scalar(RealScalar(0.01)); } MatrixType A = MatrixType::Random(size, size); @@ -163,8 +165,9 @@ void testMatrixType(const MatrixType& m) { // Matrices with clustered eigenvalue lead to different code paths // in MatrixFunction.h and are thus useful for testing. + typedef typename MatrixType::Index Index; - const int size = m.rows(); + const Index size = m.rows(); for (int i = 0; i < g_repeat; i++) { testMatrix(MatrixType::Random(size, size).eval()); testMatrix(randomMatrixWithRealEivals(size)); -- cgit v1.2.3