diff options
author | Gael Guennebaud <g.gael@free.fr> | 2011-01-27 18:02:49 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2011-01-27 18:02:49 +0100 |
commit | 3d8e179aa26772e219c697101d6ce2c45ff0247e (patch) | |
tree | f4ed774ea172ae98c72105b1bf93fb3fcc8df236 /test/nomalloc.cpp | |
parent | 32124bc64ace50f40c7e2f79b39dd14e284fb9a3 (diff) |
fix MaxCols in ComplexEigenSolver which was causing memory allocation instead of static allocation in the nomalloc test. Uncomment commenetd parts of the nomalloc test since now matrix-matrix products are safe.
Diffstat (limited to 'test/nomalloc.cpp')
-rw-r--r-- | test/nomalloc.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/test/nomalloc.cpp b/test/nomalloc.cpp index 0e3caa4ae..c6f24c035 100644 --- a/test/nomalloc.cpp +++ b/test/nomalloc.cpp @@ -70,12 +70,7 @@ template<typename MatrixType> void nomalloc(const MatrixType& m) VERIFY_IS_APPROX((m1+m2)*s1, s1*m1+s1*m2); VERIFY_IS_APPROX((m1+m2)(r,c), (m1(r,c))+(m2(r,c))); VERIFY_IS_APPROX(m1.cwiseProduct(m1.block(0,0,rows,cols)), (m1.array()*m1.array()).matrix()); - if (MatrixType::RowsAtCompileTime<EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD) { - // If the matrices are too large, we have better to use the optimized GEMM - // routines which allocates temporaries. However, on some platforms - // these temporaries are allocated on the stack using alloca. - VERIFY_IS_APPROX((m1*m1.transpose())*m2, m1*(m1.transpose()*m2)); - } + VERIFY_IS_APPROX((m1*m1.transpose())*m2, m1*(m1.transpose()*m2)); } template<typename Scalar> @@ -110,7 +105,7 @@ void ctms_decompositions() // Eigenvalues module Eigen::HessenbergDecomposition<ComplexMatrix> hessDecomp; hessDecomp.compute(complexA); Eigen::ComplexSchur<ComplexMatrix> cSchur(size); cSchur.compute(complexA); - Eigen::ComplexEigenSolver<ComplexMatrix> cEigSolver; //cEigSolver.compute(complexA); // NOTE: Commented-out because makes test fail (L135 of ComplexEigenSolver.h has a product that allocates on the stack) + Eigen::ComplexEigenSolver<ComplexMatrix> cEigSolver; cEigSolver.compute(complexA); Eigen::EigenSolver<Matrix> eigSolver; eigSolver.compute(A); Eigen::SelfAdjointEigenSolver<Matrix> saEigSolver(size); saEigSolver.compute(saA); Eigen::Tridiagonalization<Matrix> tridiag; tridiag.compute(saA); |