From cb412821515648c9f7d8d622fc27470a2ea0d0a8 Mon Sep 17 00:00:00 2001 From: Ryan Latture Date: Mon, 3 Oct 2016 23:03:44 -0700 Subject: [PATCH] Upgraded Eigen 3.2.7 -> 3.2.9 --- CMakeLists.txt | 2 +- .../.hg_archival.txt | 4 +- ext/{eigen-3.2.7 => eigen-3.2.9}/.hgeol | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/.hgignore | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/.hgtags | 2 + .../CMakeLists.txt | 66 ++-- ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.BSD | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.GPL | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.LGPL | 0 .../COPYING.MINPACK | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.MPL2 | 0 .../COPYING.README | 0 .../CTestConfig.cmake | 0 .../CTestCustom.cmake.in | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Array | 0 .../Eigen/CMakeLists.txt | 0 .../Eigen/Cholesky | 0 .../Eigen/CholmodSupport | 2 +- ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Core | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Dense | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Eigen | 0 .../Eigen/Eigen2Support | 0 .../Eigen/Eigenvalues | 0 .../Eigen/Geometry | 0 .../Eigen/Householder | 0 .../Eigen/IterativeLinearSolvers | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Jacobi | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/LU | 0 .../Eigen/LeastSquares | 0 .../Eigen/MetisSupport | 0 .../Eigen/OrderingMethods | 0 .../Eigen/PaStiXSupport | 0 .../Eigen/PardisoSupport | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/QR | 0 .../Eigen/QtAlignedMalloc | 0 .../Eigen/SPQRSupport | 2 +- ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SVD | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Sparse | 0 .../Eigen/SparseCholesky | 0 .../Eigen/SparseCore | 0 .../Eigen/SparseLU | 0 .../Eigen/SparseQR | 0 .../Eigen/StdDeque | 0 .../Eigen/StdList | 0 .../Eigen/StdVector | 0 .../Eigen/SuperLUSupport | 0 .../Eigen/UmfPackSupport | 2 +- .../Eigen/src/CMakeLists.txt | 0 .../Eigen/src/Cholesky/CMakeLists.txt | 0 .../Eigen/src/Cholesky/LDLT.h | 0 .../Eigen/src/Cholesky/LLT.h | 0 .../Eigen/src/Cholesky/LLT_MKL.h | 0 .../Eigen/src/CholmodSupport/CMakeLists.txt | 0 .../Eigen/src/CholmodSupport/CholmodSupport.h | 0 .../Eigen/src/Core/Array.h | 0 .../Eigen/src/Core/ArrayBase.h | 0 .../Eigen/src/Core/ArrayWrapper.h | 0 .../Eigen/src/Core/Assign.h | 0 .../Eigen/src/Core/Assign_MKL.h | 0 .../Eigen/src/Core/BandMatrix.h | 0 .../Eigen/src/Core/Block.h | 0 .../Eigen/src/Core/BooleanRedux.h | 0 .../Eigen/src/Core/CMakeLists.txt | 0 .../Eigen/src/Core/CommaInitializer.h | 7 +- .../Eigen/src/Core/CoreIterators.h | 0 .../Eigen/src/Core/CwiseBinaryOp.h | 0 .../Eigen/src/Core/CwiseNullaryOp.h | 0 .../Eigen/src/Core/CwiseUnaryOp.h | 0 .../Eigen/src/Core/CwiseUnaryView.h | 2 +- .../Eigen/src/Core/DenseBase.h | 0 .../Eigen/src/Core/DenseCoeffsBase.h | 0 .../Eigen/src/Core/DenseStorage.h | 0 .../Eigen/src/Core/Diagonal.h | 0 .../Eigen/src/Core/DiagonalMatrix.h | 6 +- .../Eigen/src/Core/DiagonalProduct.h | 0 .../Eigen/src/Core/Dot.h | 2 +- .../Eigen/src/Core/EigenBase.h | 0 .../Eigen/src/Core/Flagged.h | 0 .../Eigen/src/Core/ForceAlignedAccess.h | 0 .../Eigen/src/Core/Functors.h | 0 .../Eigen/src/Core/Fuzzy.h | 0 .../Eigen/src/Core/GeneralProduct.h | 16 +- .../Eigen/src/Core/GenericPacketMath.h | 0 .../Eigen/src/Core/GlobalFunctions.h | 0 .../Eigen/src/Core/IO.h | 0 .../Eigen/src/Core/Map.h | 0 .../Eigen/src/Core/MapBase.h | 4 + .../Eigen/src/Core/MathFunctions.h | 27 +- .../Eigen/src/Core/Matrix.h | 0 .../Eigen/src/Core/MatrixBase.h | 0 .../Eigen/src/Core/NestByValue.h | 0 .../Eigen/src/Core/NoAlias.h | 0 .../Eigen/src/Core/NumTraits.h | 0 .../Eigen/src/Core/PermutationMatrix.h | 3 +- .../Eigen/src/Core/PlainObjectBase.h | 6 +- .../Eigen/src/Core/ProductBase.h | 0 .../Eigen/src/Core/Random.h | 0 .../Eigen/src/Core/Redux.h | 0 .../Eigen/src/Core/Ref.h | 0 .../Eigen/src/Core/Replicate.h | 0 .../Eigen/src/Core/ReturnByValue.h | 0 .../Eigen/src/Core/Reverse.h | 0 .../Eigen/src/Core/Select.h | 0 .../Eigen/src/Core/SelfAdjointView.h | 0 .../Eigen/src/Core/SelfCwiseBinaryOp.h | 0 .../Eigen/src/Core/SolveTriangular.h | 11 +- .../Eigen/src/Core/StableNorm.h | 0 .../Eigen/src/Core/Stride.h | 0 .../Eigen/src/Core/Swap.h | 0 .../Eigen/src/Core/Transpose.h | 9 +- .../Eigen/src/Core/Transpositions.h | 3 +- .../Eigen/src/Core/TriangularMatrix.h | 0 .../Eigen/src/Core/VectorBlock.h | 0 .../Eigen/src/Core/VectorwiseOp.h | 0 .../Eigen/src/Core/Visitor.h | 7 +- .../src/Core/arch/AltiVec/CMakeLists.txt | 0 .../Eigen/src/Core/arch/AltiVec/Complex.h | 0 .../Eigen/src/Core/arch/AltiVec/PacketMath.h | 0 .../Eigen/src/Core/arch/CMakeLists.txt | 0 .../src/Core/arch/Default/CMakeLists.txt | 0 .../Eigen/src/Core/arch/Default/Settings.h | 0 .../Eigen/src/Core/arch/NEON/CMakeLists.txt | 0 .../Eigen/src/Core/arch/NEON/Complex.h | 0 .../Eigen/src/Core/arch/NEON/PacketMath.h | 0 .../Eigen/src/Core/arch/SSE/CMakeLists.txt | 0 .../Eigen/src/Core/arch/SSE/Complex.h | 0 .../Eigen/src/Core/arch/SSE/MathFunctions.h | 0 .../Eigen/src/Core/arch/SSE/PacketMath.h | 44 +-- .../Eigen/src/Core/products/CMakeLists.txt | 0 .../src/Core/products/CoeffBasedProduct.h | 0 .../Core/products/GeneralBlockPanelKernel.h | 0 .../src/Core/products/GeneralMatrixMatrix.h | 8 +- .../products/GeneralMatrixMatrixTriangular.h | 0 .../GeneralMatrixMatrixTriangular_MKL.h | 0 .../Core/products/GeneralMatrixMatrix_MKL.h | 0 .../src/Core/products/GeneralMatrixVector.h | 0 .../Core/products/GeneralMatrixVector_MKL.h | 0 .../Eigen/src/Core/products/Parallelizer.h | 0 .../Core/products/SelfadjointMatrixMatrix.h | 0 .../products/SelfadjointMatrixMatrix_MKL.h | 0 .../Core/products/SelfadjointMatrixVector.h | 0 .../products/SelfadjointMatrixVector_MKL.h | 0 .../src/Core/products/SelfadjointProduct.h | 0 .../Core/products/SelfadjointRank2Update.h | 0 .../Core/products/TriangularMatrixMatrix.h | 0 .../products/TriangularMatrixMatrix_MKL.h | 0 .../Core/products/TriangularMatrixVector.h | 0 .../products/TriangularMatrixVector_MKL.h | 0 .../Core/products/TriangularSolverMatrix.h | 6 +- .../products/TriangularSolverMatrix_MKL.h | 0 .../Core/products/TriangularSolverVector.h | 0 .../Eigen/src/Core/util/BlasUtil.h | 36 ++- .../Eigen/src/Core/util/CMakeLists.txt | 0 .../Eigen/src/Core/util/Constants.h | 16 +- .../src/Core/util/DisableStupidWarnings.h | 8 + .../Eigen/src/Core/util/ForwardDeclarations.h | 0 .../Eigen/src/Core/util/MKL_support.h | 0 .../Eigen/src/Core/util/Macros.h | 287 +++++++++++++++++- .../Eigen/src/Core/util/Memory.h | 135 ++++---- .../Eigen/src/Core/util/Meta.h | 0 .../Eigen/src/Core/util/NonMPL2.h | 0 .../src/Core/util/ReenableStupidWarnings.h | 3 + .../Eigen/src/Core/util/StaticAssert.h | 2 +- .../Eigen/src/Core/util/XprHelper.h | 0 .../Eigen/src/Eigen2Support/Block.h | 0 .../Eigen/src/Eigen2Support/CMakeLists.txt | 0 .../Eigen/src/Eigen2Support/Cwise.h | 0 .../Eigen/src/Eigen2Support/CwiseOperators.h | 0 .../src/Eigen2Support/Geometry/AlignedBox.h | 0 .../Eigen/src/Eigen2Support/Geometry/All.h | 0 .../src/Eigen2Support/Geometry/AngleAxis.h | 0 .../src/Eigen2Support/Geometry/CMakeLists.txt | 0 .../src/Eigen2Support/Geometry/Hyperplane.h | 0 .../Eigen2Support/Geometry/ParametrizedLine.h | 0 .../src/Eigen2Support/Geometry/Quaternion.h | 0 .../src/Eigen2Support/Geometry/Rotation2D.h | 0 .../src/Eigen2Support/Geometry/RotationBase.h | 0 .../src/Eigen2Support/Geometry/Scaling.h | 0 .../src/Eigen2Support/Geometry/Transform.h | 0 .../src/Eigen2Support/Geometry/Translation.h | 0 .../Eigen/src/Eigen2Support/LU.h | 0 .../Eigen/src/Eigen2Support/Lazy.h | 0 .../Eigen/src/Eigen2Support/LeastSquares.h | 0 .../Eigen/src/Eigen2Support/Macros.h | 0 .../Eigen/src/Eigen2Support/MathFunctions.h | 0 .../Eigen/src/Eigen2Support/Memory.h | 0 .../Eigen/src/Eigen2Support/Meta.h | 0 .../Eigen/src/Eigen2Support/Minor.h | 0 .../Eigen/src/Eigen2Support/QR.h | 0 .../Eigen/src/Eigen2Support/SVD.h | 0 .../src/Eigen2Support/TriangularSolver.h | 0 .../Eigen/src/Eigen2Support/VectorBlock.h | 0 .../Eigen/src/Eigenvalues/CMakeLists.txt | 0 .../src/Eigenvalues/ComplexEigenSolver.h | 0 .../Eigen/src/Eigenvalues/ComplexSchur.h | 0 .../Eigen/src/Eigenvalues/ComplexSchur_MKL.h | 1 - .../Eigen/src/Eigenvalues/EigenSolver.h | 0 .../src/Eigenvalues/GeneralizedEigenSolver.h | 32 +- .../GeneralizedSelfAdjointEigenSolver.h | 0 .../src/Eigenvalues/HessenbergDecomposition.h | 0 .../src/Eigenvalues/MatrixBaseEigenvalues.h | 0 .../Eigen/src/Eigenvalues/RealQZ.h | 0 .../Eigen/src/Eigenvalues/RealSchur.h | 0 .../Eigen/src/Eigenvalues/RealSchur_MKL.h | 4 - .../src/Eigenvalues/SelfAdjointEigenSolver.h | 0 .../Eigenvalues/SelfAdjointEigenSolver_MKL.h | 0 .../src/Eigenvalues/Tridiagonalization.h | 4 +- .../Eigen/src/Geometry/AlignedBox.h | 0 .../Eigen/src/Geometry/AngleAxis.h | 7 + .../Eigen/src/Geometry/CMakeLists.txt | 0 .../Eigen/src/Geometry/EulerAngles.h | 0 .../Eigen/src/Geometry/Homogeneous.h | 2 +- .../Eigen/src/Geometry/Hyperplane.h | 0 .../Eigen/src/Geometry/OrthoMethods.h | 0 .../Eigen/src/Geometry/ParametrizedLine.h | 2 +- .../Eigen/src/Geometry/Quaternion.h | 2 +- .../Eigen/src/Geometry/Rotation2D.h | 0 .../Eigen/src/Geometry/RotationBase.h | 0 .../Eigen/src/Geometry/Scaling.h | 0 .../Eigen/src/Geometry/Transform.h | 49 ++- .../Eigen/src/Geometry/Translation.h | 2 +- .../Eigen/src/Geometry/Umeyama.h | 0 .../Eigen/src/Geometry/arch/CMakeLists.txt | 0 .../Eigen/src/Geometry/arch/Geometry_SSE.h | 0 .../Eigen/src/Householder/BlockHouseholder.h | 0 .../Eigen/src/Householder/CMakeLists.txt | 0 .../Eigen/src/Householder/Householder.h | 3 +- .../src/Householder/HouseholderSequence.h | 3 +- .../BasicPreconditioners.h | 0 .../src/IterativeLinearSolvers/BiCGSTAB.h | 0 .../src/IterativeLinearSolvers/CMakeLists.txt | 0 .../ConjugateGradient.h | 2 + .../IterativeLinearSolvers/IncompleteLUT.h | 0 .../IterativeSolverBase.h | 0 .../Eigen/src/Jacobi/CMakeLists.txt | 0 .../Eigen/src/Jacobi/Jacobi.h | 0 .../Eigen/src/LU/CMakeLists.txt | 0 .../Eigen/src/LU/Determinant.h | 0 .../Eigen/src/LU/FullPivLU.h | 2 +- .../Eigen/src/LU/Inverse.h | 2 +- .../Eigen/src/LU/PartialPivLU.h | 0 .../Eigen/src/LU/PartialPivLU_MKL.h | 0 .../Eigen/src/LU/arch/CMakeLists.txt | 0 .../Eigen/src/LU/arch/Inverse_SSE.h | 0 .../Eigen/src/MetisSupport/CMakeLists.txt | 0 .../Eigen/src/MetisSupport/MetisSupport.h | 0 .../Eigen/src/OrderingMethods/Amd.h | 2 +- .../Eigen/src/OrderingMethods/CMakeLists.txt | 0 .../Eigen/src/OrderingMethods/Eigen_Colamd.h | 31 +- .../Eigen/src/OrderingMethods/Ordering.h | 0 .../Eigen/src/PaStiXSupport/CMakeLists.txt | 0 .../Eigen/src/PaStiXSupport/PaStiXSupport.h | 12 +- .../Eigen/src/PardisoSupport/CMakeLists.txt | 0 .../Eigen/src/PardisoSupport/PardisoSupport.h | 21 +- .../Eigen/src/QR/CMakeLists.txt | 0 .../Eigen/src/QR/ColPivHouseholderQR.h | 0 .../Eigen/src/QR/ColPivHouseholderQR_MKL.h | 1 - .../Eigen/src/QR/FullPivHouseholderQR.h | 0 .../Eigen/src/QR/HouseholderQR.h | 0 .../Eigen/src/QR/HouseholderQR_MKL.h | 0 .../Eigen/src/SPQRSupport/CMakeLists.txt | 0 .../src/SPQRSupport/SuiteSparseQRSupport.h | 0 .../Eigen/src/SVD/CMakeLists.txt | 0 .../Eigen/src/SVD/JacobiSVD.h | 92 +++--- .../Eigen/src/SVD/JacobiSVD_MKL.h | 4 +- .../Eigen/src/SVD/UpperBidiagonalization.h | 0 .../Eigen/src/SparseCholesky/CMakeLists.txt | 0 .../src/SparseCholesky/SimplicialCholesky.h | 0 .../SparseCholesky/SimplicialCholesky_impl.h | 0 .../Eigen/src/SparseCore/AmbiVector.h | 0 .../Eigen/src/SparseCore/CMakeLists.txt | 0 .../Eigen/src/SparseCore/CompressedStorage.h | 11 +- .../ConservativeSparseSparseProduct.h | 0 .../Eigen/src/SparseCore/MappedSparseMatrix.h | 0 .../Eigen/src/SparseCore/SparseBlock.h | 27 +- .../Eigen/src/SparseCore/SparseColEtree.h | 0 .../src/SparseCore/SparseCwiseBinaryOp.h | 5 +- .../Eigen/src/SparseCore/SparseCwiseUnaryOp.h | 0 .../Eigen/src/SparseCore/SparseDenseProduct.h | 0 .../src/SparseCore/SparseDiagonalProduct.h | 0 .../Eigen/src/SparseCore/SparseDot.h | 0 .../Eigen/src/SparseCore/SparseFuzzy.h | 0 .../Eigen/src/SparseCore/SparseMatrix.h | 12 +- .../Eigen/src/SparseCore/SparseMatrixBase.h | 1 + .../Eigen/src/SparseCore/SparsePermutation.h | 0 .../Eigen/src/SparseCore/SparseProduct.h | 0 .../Eigen/src/SparseCore/SparseRedux.h | 7 +- .../src/SparseCore/SparseSelfAdjointView.h | 0 .../SparseSparseProductWithPruning.h | 2 +- .../Eigen/src/SparseCore/SparseTranspose.h | 0 .../src/SparseCore/SparseTriangularView.h | 0 .../Eigen/src/SparseCore/SparseUtil.h | 0 .../Eigen/src/SparseCore/SparseVector.h | 10 +- .../Eigen/src/SparseCore/SparseView.h | 6 +- .../Eigen/src/SparseCore/TriangularSolver.h | 0 .../Eigen/src/SparseLU/CMakeLists.txt | 0 .../Eigen/src/SparseLU/SparseLU.h | 0 .../Eigen/src/SparseLU/SparseLUImpl.h | 0 .../Eigen/src/SparseLU/SparseLU_Memory.h | 0 .../Eigen/src/SparseLU/SparseLU_Structs.h | 0 .../src/SparseLU/SparseLU_SupernodalMatrix.h | 0 .../Eigen/src/SparseLU/SparseLU_Utils.h | 0 .../Eigen/src/SparseLU/SparseLU_column_bmod.h | 0 .../Eigen/src/SparseLU/SparseLU_column_dfs.h | 0 .../src/SparseLU/SparseLU_copy_to_ucol.h | 0 .../Eigen/src/SparseLU/SparseLU_gemm_kernel.h | 0 .../src/SparseLU/SparseLU_heap_relax_snode.h | 0 .../Eigen/src/SparseLU/SparseLU_kernel_bmod.h | 0 .../Eigen/src/SparseLU/SparseLU_panel_bmod.h | 0 .../Eigen/src/SparseLU/SparseLU_panel_dfs.h | 0 .../Eigen/src/SparseLU/SparseLU_pivotL.h | 0 .../Eigen/src/SparseLU/SparseLU_pruneL.h | 0 .../Eigen/src/SparseLU/SparseLU_relax_snode.h | 0 .../Eigen/src/SparseQR/CMakeLists.txt | 0 .../Eigen/src/SparseQR/SparseQR.h | 0 .../Eigen/src/StlSupport/CMakeLists.txt | 0 .../Eigen/src/StlSupport/StdDeque.h | 18 +- .../Eigen/src/StlSupport/StdList.h | 18 +- .../Eigen/src/StlSupport/StdVector.h | 0 .../Eigen/src/StlSupport/details.h | 0 .../Eigen/src/SuperLUSupport/CMakeLists.txt | 0 .../Eigen/src/SuperLUSupport/SuperLUSupport.h | 0 .../Eigen/src/UmfPackSupport/CMakeLists.txt | 0 .../Eigen/src/UmfPackSupport/UmfPackSupport.h | 0 .../Eigen/src/misc/CMakeLists.txt | 0 .../Eigen/src/misc/Image.h | 0 .../Eigen/src/misc/Kernel.h | 0 .../Eigen/src/misc/Solve.h | 0 .../Eigen/src/misc/SparseSolve.h | 0 .../Eigen/src/misc/blas.h | 0 .../Eigen/src/plugins/ArrayCwiseBinaryOps.h | 0 .../Eigen/src/plugins/ArrayCwiseUnaryOps.h | 0 .../Eigen/src/plugins/BlockMethods.h | 0 .../Eigen/src/plugins/CMakeLists.txt | 0 .../Eigen/src/plugins/CommonCwiseBinaryOps.h | 0 .../Eigen/src/plugins/CommonCwiseUnaryOps.h | 0 .../Eigen/src/plugins/MatrixCwiseBinaryOps.h | 0 .../Eigen/src/plugins/MatrixCwiseUnaryOps.h | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/INSTALL | 0 .../bench/BenchSparseUtil.h | 0 .../bench/BenchTimer.h | 0 .../bench/BenchUtil.h | 0 .../bench/README.txt | 0 .../bench/basicbench.cxxlist | 0 .../bench/basicbenchmark.cpp | 0 .../bench/basicbenchmark.h | 0 .../bench/benchBlasGemm.cpp | 0 .../bench/benchCholesky.cpp | 0 .../bench/benchEigenSolver.cpp | 0 .../bench/benchFFT.cpp | 0 .../bench/benchGeometry.cpp | 0 .../bench/benchVecAdd.cpp | 0 .../bench/bench_gemm.cpp | 0 .../bench/bench_multi_compilers.sh | 0 .../bench/bench_norm.cpp | 0 .../bench/bench_reverse.cpp | 0 .../bench/bench_sum.cpp | 0 .../bench/bench_unrolling | 0 .../bench/benchmark.cpp | 0 .../bench/benchmarkSlice.cpp | 0 .../bench/benchmarkX.cpp | 0 .../bench/benchmarkXcwise.cpp | 0 .../bench/benchmark_suite | 0 .../bench/btl/CMakeLists.txt | 0 .../bench/btl/COPYING | 0 .../bench/btl/README | 0 .../bench/btl/actions/action_aat_product.hh | 0 .../bench/btl/actions/action_ata_product.hh | 0 .../bench/btl/actions/action_atv_product.hh | 0 .../bench/btl/actions/action_axpby.hh | 0 .../bench/btl/actions/action_axpy.hh | 0 .../bench/btl/actions/action_cholesky.hh | 0 .../bench/btl/actions/action_ger.hh | 0 .../bench/btl/actions/action_hessenberg.hh | 0 .../bench/btl/actions/action_lu_decomp.hh | 0 .../bench/btl/actions/action_lu_solve.hh | 0 .../actions/action_matrix_matrix_product.hh | 0 .../action_matrix_matrix_product_bis.hh | 0 .../actions/action_matrix_vector_product.hh | 0 .../bench/btl/actions/action_partial_lu.hh | 0 .../bench/btl/actions/action_rot.hh | 0 .../bench/btl/actions/action_symv.hh | 0 .../bench/btl/actions/action_syr2.hh | 0 .../bench/btl/actions/action_trisolve.hh | 0 .../btl/actions/action_trisolve_matrix.hh | 0 .../bench/btl/actions/action_trmm.hh | 0 .../bench/btl/actions/basic_actions.hh | 0 .../bench/btl/cmake/FindACML.cmake | 0 .../bench/btl/cmake/FindATLAS.cmake | 0 .../bench/btl/cmake/FindBlitz.cmake | 0 .../bench/btl/cmake/FindCBLAS.cmake | 0 .../bench/btl/cmake/FindGMM.cmake | 0 .../bench/btl/cmake/FindGOTO.cmake | 0 .../bench/btl/cmake/FindGOTO2.cmake | 0 .../bench/btl/cmake/FindMKL.cmake | 0 .../bench/btl/cmake/FindMTL4.cmake | 0 .../cmake/FindPackageHandleStandardArgs.cmake | 0 .../bench/btl/cmake/FindTvmet.cmake | 0 .../cmake/MacroOptionalAddSubdirectory.cmake | 0 .../bench/btl/generic_bench/bench.hh | 0 .../btl/generic_bench/bench_parameter.hh | 0 .../bench/btl/generic_bench/btl.hh | 13 +- .../btl/generic_bench/init/init_function.hh | 0 .../btl/generic_bench/init/init_matrix.hh | 0 .../btl/generic_bench/init/init_vector.hh | 0 .../btl/generic_bench/static/bench_static.hh | 0 .../static/intel_bench_fixed_size.hh | 0 .../static/static_size_generator.hh | 0 .../generic_bench/timers/STL_perf_analyzer.hh | 0 .../btl/generic_bench/timers/STL_timer.hh | 0 .../timers/mixed_perf_analyzer.hh | 0 .../timers/portable_perf_analyzer.hh | 0 .../timers/portable_perf_analyzer_old.hh | 0 .../generic_bench/timers/portable_timer.hh | 0 .../generic_bench/timers/x86_perf_analyzer.hh | 0 .../btl/generic_bench/timers/x86_timer.hh | 0 .../btl/generic_bench/utils/size_lin_log.hh | 0 .../bench/btl/generic_bench/utils/size_log.hh | 0 .../bench/btl/generic_bench/utils/utilities.h | 0 .../bench/btl/generic_bench/utils/xy_file.hh | 0 .../bench/btl/libs/BLAS/CMakeLists.txt | 0 .../bench/btl/libs/BLAS/blas.h | 0 .../bench/btl/libs/BLAS/blas_interface.hh | 0 .../btl/libs/BLAS/blas_interface_impl.hh | 0 .../bench/btl/libs/BLAS/c_interface_base.h | 0 .../bench/btl/libs/BLAS/main.cpp | 0 .../bench/btl/libs/STL/CMakeLists.txt | 0 .../bench/btl/libs/STL/STL_interface.hh | 0 .../bench/btl/libs/STL/main.cpp | 0 .../bench/btl/libs/blitz/CMakeLists.txt | 0 .../libs/blitz/blitz_LU_solve_interface.hh | 0 .../bench/btl/libs/blitz/blitz_interface.hh | 0 .../bench/btl/libs/blitz/btl_blitz.cpp | 0 .../bench/btl/libs/blitz/btl_tiny_blitz.cpp | 0 .../btl/libs/blitz/tiny_blitz_interface.hh | 0 .../bench/btl/libs/eigen2/CMakeLists.txt | 0 .../bench/btl/libs/eigen2/btl_tiny_eigen2.cpp | 0 .../bench/btl/libs/eigen2/eigen2_interface.hh | 0 .../bench/btl/libs/eigen2/main_adv.cpp | 0 .../bench/btl/libs/eigen2/main_linear.cpp | 0 .../bench/btl/libs/eigen2/main_matmat.cpp | 0 .../bench/btl/libs/eigen2/main_vecmat.cpp | 0 .../bench/btl/libs/eigen3/CMakeLists.txt | 0 .../bench/btl/libs/eigen3/btl_tiny_eigen3.cpp | 0 .../bench/btl/libs/eigen3/eigen3_interface.hh | 0 .../bench/btl/libs/eigen3/main_adv.cpp | 0 .../bench/btl/libs/eigen3/main_linear.cpp | 0 .../bench/btl/libs/eigen3/main_matmat.cpp | 0 .../bench/btl/libs/eigen3/main_vecmat.cpp | 0 .../bench/btl/libs/gmm/CMakeLists.txt | 0 .../btl/libs/gmm/gmm_LU_solve_interface.hh | 0 .../bench/btl/libs/gmm/gmm_interface.hh | 0 .../bench/btl/libs/gmm/main.cpp | 0 .../bench/btl/libs/mtl4/.kdbgrc.main | 0 .../bench/btl/libs/mtl4/CMakeLists.txt | 0 .../bench/btl/libs/mtl4/main.cpp | 0 .../btl/libs/mtl4/mtl4_LU_solve_interface.hh | 0 .../bench/btl/libs/mtl4/mtl4_interface.hh | 0 .../bench/btl/libs/tvmet/CMakeLists.txt | 0 .../bench/btl/libs/tvmet/main.cpp | 0 .../bench/btl/libs/tvmet/tvmet_interface.hh | 0 .../bench/btl/libs/ublas/CMakeLists.txt | 0 .../bench/btl/libs/ublas/main.cpp | 0 .../bench/btl/libs/ublas/ublas_interface.hh | 0 .../bench/check_cache_queries.cpp | 0 .../bench/eig33.cpp | 0 .../bench/geometry.cpp | 0 .../bench/product_threshold.cpp | 0 .../bench/quat_slerp.cpp | 0 .../bench/quatmul.cpp | 0 .../bench/sparse_cholesky.cpp | 0 .../bench/sparse_dense_product.cpp | 0 .../bench/sparse_lu.cpp | 0 .../bench/sparse_product.cpp | 0 .../bench/sparse_randomsetter.cpp | 0 .../bench/sparse_setter.cpp | 0 .../bench/sparse_transpose.cpp | 0 .../bench/sparse_trisolver.cpp | 0 .../bench/spbench/CMakeLists.txt | 0 .../bench/spbench/sp_solver.cpp | 0 .../bench/spbench/spbench.dtd | 0 .../bench/spbench/spbenchsolver.cpp | 0 .../bench/spbench/spbenchsolver.h | 0 .../bench/spbench/spbenchstyle.h | 0 .../bench/spbench/test_sparseLU.cpp | 0 .../bench/spmv.cpp | 0 .../bench/vdw_new.cpp | 0 .../blas/BandTriangularSolver.h | 0 .../blas/CMakeLists.txt | 0 .../blas/GeneralRank1Update.h | 0 .../blas/PackedSelfadjointProduct.h | 0 .../blas/PackedTriangularMatrixVector.h | 0 .../blas/PackedTriangularSolverVector.h | 0 .../blas/README.txt | 0 .../blas/Rank2Update.h | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/chbmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/chpmv.f | 0 .../blas/common.h | 0 .../blas/complex_double.cpp | 0 .../blas/complex_single.cpp | 0 .../blas/complexdots.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ctbmv.f | 0 .../blas/double.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/drotm.f | 0 .../blas/drotmg.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dsbmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dspmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dtbmv.f | 0 .../blas/level1_cplx_impl.h | 0 .../blas/level1_impl.h | 0 .../blas/level1_real_impl.h | 0 .../blas/level2_cplx_impl.h | 0 .../blas/level2_impl.h | 0 .../blas/level2_real_impl.h | 0 .../blas/level3_impl.h | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/lsame.f | 0 .../blas/single.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/srotm.f | 0 .../blas/srotmg.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ssbmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/sspmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/stbmv.f | 0 .../blas/testing/CMakeLists.txt | 0 .../blas/testing/cblat1.f | 0 .../blas/testing/cblat2.dat | 0 .../blas/testing/cblat2.f | 0 .../blas/testing/cblat3.dat | 0 .../blas/testing/cblat3.f | 0 .../blas/testing/dblat1.f | 0 .../blas/testing/dblat2.dat | 0 .../blas/testing/dblat2.f | 0 .../blas/testing/dblat3.dat | 0 .../blas/testing/dblat3.f | 0 .../blas/testing/runblastest.sh | 0 .../blas/testing/sblat1.f | 0 .../blas/testing/sblat2.dat | 0 .../blas/testing/sblat2.f | 0 .../blas/testing/sblat3.dat | 0 .../blas/testing/sblat3.f | 0 .../blas/testing/zblat1.f | 0 .../blas/testing/zblat2.dat | 0 .../blas/testing/zblat2.f | 0 .../blas/testing/zblat3.dat | 0 .../blas/testing/zblat3.f | 0 .../blas/xerbla.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/zhbmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/zhpmv.f | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ztbmv.f | 0 .../cmake/EigenConfigureTesting.cmake | 11 +- .../cmake/EigenDetermineOSVersion.cmake | 2 +- .../cmake/EigenDetermineVSServicePack.cmake | 0 .../cmake/EigenTesting.cmake | 0 .../cmake/FindAdolc.cmake | 0 .../cmake/FindBLAS.cmake | 0 .../cmake/FindCholmod.cmake | 0 .../cmake/FindEigen2.cmake | 0 .../cmake/FindEigen3.cmake | 0 .../cmake/FindFFTW.cmake | 0 .../cmake/FindGLEW.cmake | 0 .../cmake/FindGMP.cmake | 0 .../cmake/FindGSL.cmake | 0 .../cmake/FindGoogleHash.cmake | 0 .../cmake/FindLAPACK.cmake | 0 .../cmake/FindMPFR.cmake | 0 .../cmake/FindMetis.cmake | 0 .../cmake/FindPastix.cmake | 0 .../cmake/FindSPQR.cmake | 0 .../cmake/FindScotch.cmake | 0 .../cmake/FindStandardMathLibrary.cmake | 0 .../cmake/FindSuperLU.cmake | 0 .../cmake/FindUmfpack.cmake | 0 .../cmake/RegexUtils.cmake | 0 .../cmake/language_support.cmake | 0 .../debug/gdb/__init__.py | 0 .../debug/gdb/printers.py | 0 .../debug/msvc/eigen.natvis | 0 .../debug/msvc/eigen_autoexp_part.dat | 0 .../demos/CMakeLists.txt | 0 .../demos/mandelbrot/CMakeLists.txt | 0 .../demos/mandelbrot/README | 0 .../demos/mandelbrot/mandelbrot.cpp | 0 .../demos/mandelbrot/mandelbrot.h | 0 .../demos/mix_eigen_and_c/README | 0 .../demos/mix_eigen_and_c/binary_library.cpp | 0 .../demos/mix_eigen_and_c/binary_library.h | 0 .../demos/mix_eigen_and_c/example.c | 0 .../demos/opengl/CMakeLists.txt | 0 .../demos/opengl/README | 0 .../demos/opengl/camera.cpp | 0 .../demos/opengl/camera.h | 0 .../demos/opengl/gpuhelper.cpp | 0 .../demos/opengl/gpuhelper.h | 0 .../demos/opengl/icosphere.cpp | 0 .../demos/opengl/icosphere.h | 0 .../demos/opengl/quaternion_demo.cpp | 0 .../demos/opengl/quaternion_demo.h | 0 .../demos/opengl/trackball.cpp | 0 .../demos/opengl/trackball.h | 0 .../doc/A05_PortingFrom2To3.dox | 0 .../doc/A10_Eigen2SupportModes.dox | 0 .../doc/AsciiQuickReference.txt | 0 .../doc/B01_Experimental.dox | 0 .../doc/CMakeLists.txt | 1 + .../doc/ClassHierarchy.dox | 0 .../doc/CustomizingEigen.dox | 0 .../doc/Doxyfile.in | 0 .../doc/Eigen_Silly_Professor_64x64.png | Bin .../doc/FixedSizeVectorizable.dox | 0 .../doc/FunctionsTakingEigenTypes.dox | 0 .../doc/HiPerformance.dox | 0 .../doc/InsideEigenExample.dox | 0 .../doc/Manual.dox | 2 + .../doc/MatrixfreeSolverExample.dox | 21 ++ .../doc/Overview.dox | 0 .../doc/PassingByValue.dox | 0 .../doc/Pitfalls.dox | 0 .../doc/PreprocessorDirectives.dox | 1 + .../doc/QuickReference.dox | 0 .../doc/QuickStartGuide.dox | 0 .../doc/SparseLinearSystems.dox | 6 +- .../doc/SparseQuickReference.dox | 62 ++-- .../doc/StlContainers.dox | 0 .../doc/StorageOrders.dox | 0 .../doc/StructHavingEigenMembers.dox | 0 .../doc/TemplateKeyword.dox | 0 .../doc/TopicAliasing.dox | 0 .../doc/TopicAssertions.dox | 0 .../doc/TopicEigenExpressionTemplates.dox | 0 .../doc/TopicLazyEvaluation.dox | 0 .../doc/TopicLinearAlgebraDecompositions.dox | 0 .../doc/TopicMultithreading.dox | 0 .../doc/TopicResizing.dox | 0 .../doc/TopicScalarTypes.dox | 0 .../doc/TopicVectorization.dox | 0 .../doc/TutorialAdvancedInitialization.dox | 0 .../doc/TutorialArrayClass.dox | 0 .../doc/TutorialBlockOperations.dox | 0 .../doc/TutorialGeometry.dox | 0 .../doc/TutorialLinearAlgebra.dox | 0 .../doc/TutorialMapClass.dox | 0 .../doc/TutorialMatrixArithmetic.dox | 0 .../doc/TutorialMatrixClass.dox | 0 ...TutorialReductionsVisitorsBroadcasting.dox | 0 .../doc/TutorialSparse.dox | 24 +- .../doc/TutorialSparse_example_details.dox | 0 .../doc/UnalignedArrayAssert.dox | 15 +- .../doc/UsingIntelMKL.dox | 0 .../doc/WrongStackAlignment.dox | 0 .../doc/eigen_navtree_hacks.js | 0 .../doc/eigendoxy.css | 0 .../doc/eigendoxy_footer.html.in | 0 .../doc/eigendoxy_header.html.in | 0 .../doc/eigendoxy_layout.xml.in | 0 .../doc/eigendoxy_tabs.css | 0 .../doc/examples/.krazy | 0 .../doc/examples/CMakeLists.txt | 0 .../doc/examples/DenseBase_middleCols_int.cpp | 0 .../doc/examples/DenseBase_middleRows_int.cpp | 0 .../DenseBase_template_int_middleCols.cpp | 0 .../DenseBase_template_int_middleRows.cpp | 0 .../doc/examples/MatrixBase_cwise_const.cpp | 0 .../doc/examples/QuickStart_example.cpp | 0 .../examples/QuickStart_example2_dynamic.cpp | 0 .../examples/QuickStart_example2_fixed.cpp | 0 .../doc/examples/TemplateKeyword_flexible.cpp | 0 .../doc/examples/TemplateKeyword_simple.cpp | 0 .../examples/TutorialLinAlgComputeTwice.cpp | 0 .../TutorialLinAlgExComputeSolveError.cpp | 0 ...torialLinAlgExSolveColPivHouseholderQR.cpp | 0 .../examples/TutorialLinAlgExSolveLDLT.cpp | 0 .../TutorialLinAlgInverseDeterminant.cpp | 0 .../examples/TutorialLinAlgRankRevealing.cpp | 0 .../doc/examples/TutorialLinAlgSVDSolve.cpp | 0 .../TutorialLinAlgSelfAdjointEigenSolver.cpp | 0 .../examples/TutorialLinAlgSetThreshold.cpp | 0 .../Tutorial_ArrayClass_accessors.cpp | 0 .../examples/Tutorial_ArrayClass_addition.cpp | 0 .../Tutorial_ArrayClass_cwise_other.cpp | 0 .../examples/Tutorial_ArrayClass_interop.cpp | 0 .../Tutorial_ArrayClass_interop_matrix.cpp | 0 .../doc/examples/Tutorial_ArrayClass_mult.cpp | 0 ...orial_BlockOperations_block_assignment.cpp | 0 .../Tutorial_BlockOperations_colrow.cpp | 0 .../Tutorial_BlockOperations_corner.cpp | 0 .../Tutorial_BlockOperations_print_block.cpp | 0 .../Tutorial_BlockOperations_vector.cpp | 0 .../doc/examples/Tutorial_PartialLU_solve.cpp | 0 ...ionsVisitorsBroadcasting_broadcast_1nn.cpp | 0 ...sVisitorsBroadcasting_broadcast_simple.cpp | 0 ...sBroadcasting_broadcast_simple_rowwise.cpp | 0 ...ReductionsVisitorsBroadcasting_colwise.cpp | 0 ...ReductionsVisitorsBroadcasting_maxnorm.cpp | 0 ...nsVisitorsBroadcasting_reductions_bool.cpp | 0 ...nsVisitorsBroadcasting_reductions_norm.cpp | 0 ...ReductionsVisitorsBroadcasting_rowwise.cpp | 0 ...eductionsVisitorsBroadcasting_visitors.cpp | 0 .../Tutorial_simple_example_dynamic_size.cpp | 0 .../Tutorial_simple_example_fixed_size.cpp | 0 .../doc/examples/class_Block.cpp | 0 .../doc/examples/class_CwiseBinaryOp.cpp | 0 .../doc/examples/class_CwiseUnaryOp.cpp | 0 .../examples/class_CwiseUnaryOp_ptrfun.cpp | 0 .../doc/examples/class_FixedBlock.cpp | 0 .../doc/examples/class_FixedVectorBlock.cpp | 0 .../doc/examples/class_VectorBlock.cpp | 0 .../examples/function_taking_eigenbase.cpp | 0 .../doc/examples/function_taking_ref.cpp | 0 .../doc/examples/matrixfree_cg.cpp | 180 +++++++++++ .../doc/examples/tut_arithmetic_add_sub.cpp | 0 .../doc/examples/tut_arithmetic_dot_cross.cpp | 0 .../examples/tut_arithmetic_matrix_mul.cpp | 0 .../examples/tut_arithmetic_redux_basic.cpp | 0 .../tut_arithmetic_scalar_mul_div.cpp | 0 .../tut_matrix_coefficient_accessors.cpp | 0 .../doc/examples/tut_matrix_resize.cpp | 0 .../examples/tut_matrix_resize_fixed_size.cpp | 0 .../doc/snippets/.krazy | 0 .../doc/snippets/AngleAxis_mimic_euler.cpp | 0 .../doc/snippets/CMakeLists.txt | 0 .../snippets/ColPivHouseholderQR_solve.cpp | 0 .../snippets/ComplexEigenSolver_compute.cpp | 0 .../ComplexEigenSolver_eigenvalues.cpp | 0 .../ComplexEigenSolver_eigenvectors.cpp | 0 .../doc/snippets/ComplexSchur_compute.cpp | 0 .../doc/snippets/ComplexSchur_matrixT.cpp | 0 .../doc/snippets/ComplexSchur_matrixU.cpp | 0 .../doc/snippets/Cwise_abs.cpp | 0 .../doc/snippets/Cwise_abs2.cpp | 0 .../doc/snippets/Cwise_acos.cpp | 0 .../doc/snippets/Cwise_asin.cpp | 0 .../doc/snippets/Cwise_boolean_and.cpp | 0 .../doc/snippets/Cwise_boolean_or.cpp | 0 .../doc/snippets/Cwise_cos.cpp | 0 .../doc/snippets/Cwise_cube.cpp | 0 .../doc/snippets/Cwise_equal_equal.cpp | 0 .../doc/snippets/Cwise_exp.cpp | 0 .../doc/snippets/Cwise_greater.cpp | 0 .../doc/snippets/Cwise_greater_equal.cpp | 0 .../doc/snippets/Cwise_inverse.cpp | 0 .../doc/snippets/Cwise_less.cpp | 0 .../doc/snippets/Cwise_less_equal.cpp | 0 .../doc/snippets/Cwise_log.cpp | 0 .../doc/snippets/Cwise_max.cpp | 0 .../doc/snippets/Cwise_min.cpp | 0 .../doc/snippets/Cwise_minus.cpp | 0 .../doc/snippets/Cwise_minus_equal.cpp | 0 .../doc/snippets/Cwise_not_equal.cpp | 0 .../doc/snippets/Cwise_plus.cpp | 0 .../doc/snippets/Cwise_plus_equal.cpp | 0 .../doc/snippets/Cwise_pow.cpp | 0 .../doc/snippets/Cwise_product.cpp | 0 .../doc/snippets/Cwise_quotient.cpp | 0 .../doc/snippets/Cwise_sin.cpp | 0 .../doc/snippets/Cwise_slash_equal.cpp | 0 .../doc/snippets/Cwise_sqrt.cpp | 0 .../doc/snippets/Cwise_square.cpp | 0 .../doc/snippets/Cwise_tan.cpp | 0 .../doc/snippets/Cwise_times_equal.cpp | 0 .../doc/snippets/DenseBase_LinSpaced.cpp | 0 .../doc/snippets/DenseBase_LinSpaced_seq.cpp | 0 .../doc/snippets/DenseBase_setLinSpaced.cpp | 0 .../doc/snippets/DirectionWise_replicate.cpp | 0 .../snippets/DirectionWise_replicate_int.cpp | 0 .../EigenSolver_EigenSolver_MatrixType.cpp | 0 .../doc/snippets/EigenSolver_compute.cpp | 0 .../doc/snippets/EigenSolver_eigenvalues.cpp | 0 .../doc/snippets/EigenSolver_eigenvectors.cpp | 0 .../EigenSolver_pseudoEigenvectors.cpp | 0 .../snippets/FullPivHouseholderQR_solve.cpp | 0 .../doc/snippets/FullPivLU_image.cpp | 0 .../doc/snippets/FullPivLU_kernel.cpp | 0 .../doc/snippets/FullPivLU_solve.cpp | 0 .../doc/snippets/GeneralizedEigenSolver.cpp | 0 .../HessenbergDecomposition_compute.cpp | 0 .../HessenbergDecomposition_matrixH.cpp | 0 .../HessenbergDecomposition_packedMatrix.cpp | 0 .../snippets/HouseholderQR_householderQ.cpp | 0 .../doc/snippets/HouseholderQR_solve.cpp | 0 ...ouseholderSequence_HouseholderSequence.cpp | 0 .../doc/snippets/IOFormat.cpp | 0 .../doc/snippets/JacobiSVD_basic.cpp | 0 .../doc/snippets/Jacobi_makeGivens.cpp | 0 .../doc/snippets/Jacobi_makeJacobi.cpp | 0 .../doc/snippets/LLT_example.cpp | 0 .../doc/snippets/LLT_solve.cpp | 0 .../doc/snippets/Map_general_stride.cpp | 0 .../doc/snippets/Map_inner_stride.cpp | 0 .../doc/snippets/Map_outer_stride.cpp | 0 .../doc/snippets/Map_placement_new.cpp | 0 .../doc/snippets/Map_simple.cpp | 0 .../doc/snippets/MatrixBase_adjoint.cpp | 0 .../doc/snippets/MatrixBase_all.cpp | 0 .../snippets/MatrixBase_applyOnTheLeft.cpp | 0 .../snippets/MatrixBase_applyOnTheRight.cpp | 0 .../doc/snippets/MatrixBase_array.cpp | 0 .../doc/snippets/MatrixBase_array_const.cpp | 0 .../doc/snippets/MatrixBase_asDiagonal.cpp | 0 .../doc/snippets/MatrixBase_block_int_int.cpp | 0 .../MatrixBase_block_int_int_int_int.cpp | 0 .../MatrixBase_bottomLeftCorner_int_int.cpp | 0 .../MatrixBase_bottomRightCorner_int_int.cpp | 0 .../snippets/MatrixBase_bottomRows_int.cpp | 0 .../doc/snippets/MatrixBase_cast.cpp | 0 .../doc/snippets/MatrixBase_col.cpp | 0 .../doc/snippets/MatrixBase_colwise.cpp | 0 ...trixBase_computeInverseAndDetWithCheck.cpp | 0 .../MatrixBase_computeInverseWithCheck.cpp | 0 .../doc/snippets/MatrixBase_cwiseAbs.cpp | 0 .../doc/snippets/MatrixBase_cwiseAbs2.cpp | 0 .../doc/snippets/MatrixBase_cwiseEqual.cpp | 0 .../doc/snippets/MatrixBase_cwiseInverse.cpp | 0 .../doc/snippets/MatrixBase_cwiseMax.cpp | 0 .../doc/snippets/MatrixBase_cwiseMin.cpp | 0 .../doc/snippets/MatrixBase_cwiseNotEqual.cpp | 0 .../doc/snippets/MatrixBase_cwiseProduct.cpp | 0 .../doc/snippets/MatrixBase_cwiseQuotient.cpp | 0 .../doc/snippets/MatrixBase_cwiseSqrt.cpp | 0 .../doc/snippets/MatrixBase_diagonal.cpp | 0 .../doc/snippets/MatrixBase_diagonal_int.cpp | 0 .../MatrixBase_diagonal_template_int.cpp | 0 .../doc/snippets/MatrixBase_eigenvalues.cpp | 0 .../doc/snippets/MatrixBase_end_int.cpp | 0 .../doc/snippets/MatrixBase_eval.cpp | 0 .../doc/snippets/MatrixBase_extract.cpp | 0 .../MatrixBase_fixedBlock_int_int.cpp | 0 .../doc/snippets/MatrixBase_identity.cpp | 0 .../snippets/MatrixBase_identity_int_int.cpp | 0 .../doc/snippets/MatrixBase_inverse.cpp | 0 .../doc/snippets/MatrixBase_isDiagonal.cpp | 0 .../doc/snippets/MatrixBase_isIdentity.cpp | 0 .../doc/snippets/MatrixBase_isOnes.cpp | 0 .../doc/snippets/MatrixBase_isOrthogonal.cpp | 0 .../doc/snippets/MatrixBase_isUnitary.cpp | 0 .../doc/snippets/MatrixBase_isZero.cpp | 0 .../doc/snippets/MatrixBase_leftCols_int.cpp | 0 .../doc/snippets/MatrixBase_marked.cpp | 0 .../doc/snippets/MatrixBase_noalias.cpp | 0 .../doc/snippets/MatrixBase_ones.cpp | 0 .../doc/snippets/MatrixBase_ones_int.cpp | 0 .../doc/snippets/MatrixBase_ones_int_int.cpp | 0 .../doc/snippets/MatrixBase_operatorNorm.cpp | 0 .../doc/snippets/MatrixBase_part.cpp | 0 .../doc/snippets/MatrixBase_prod.cpp | 0 .../doc/snippets/MatrixBase_random.cpp | 0 .../doc/snippets/MatrixBase_random_int.cpp | 0 .../snippets/MatrixBase_random_int_int.cpp | 0 .../doc/snippets/MatrixBase_replicate.cpp | 0 .../snippets/MatrixBase_replicate_int_int.cpp | 0 .../doc/snippets/MatrixBase_reverse.cpp | 0 .../doc/snippets/MatrixBase_rightCols_int.cpp | 0 .../doc/snippets/MatrixBase_row.cpp | 0 .../doc/snippets/MatrixBase_rowwise.cpp | 0 .../snippets/MatrixBase_segment_int_int.cpp | 0 .../doc/snippets/MatrixBase_select.cpp | 0 .../doc/snippets/MatrixBase_set.cpp | 0 .../doc/snippets/MatrixBase_setIdentity.cpp | 0 .../doc/snippets/MatrixBase_setOnes.cpp | 0 .../doc/snippets/MatrixBase_setRandom.cpp | 0 .../doc/snippets/MatrixBase_setZero.cpp | 0 .../doc/snippets/MatrixBase_start_int.cpp | 0 .../MatrixBase_template_int_bottomRows.cpp | 0 .../snippets/MatrixBase_template_int_end.cpp | 0 ...template_int_int_block_int_int_int_int.cpp | 0 ...Base_template_int_int_bottomLeftCorner.cpp | 0 ...plate_int_int_bottomLeftCorner_int_int.cpp | 0 ...ase_template_int_int_bottomRightCorner.cpp | 0 ...late_int_int_bottomRightCorner_int_int.cpp | 0 ...rixBase_template_int_int_topLeftCorner.cpp | 0 ...template_int_int_topLeftCorner_int_int.cpp | 0 ...ixBase_template_int_int_topRightCorner.cpp | 0 ...emplate_int_int_topRightCorner_int_int.cpp | 0 .../MatrixBase_template_int_leftCols.cpp | 0 .../MatrixBase_template_int_rightCols.cpp | 0 .../MatrixBase_template_int_segment.cpp | 0 .../MatrixBase_template_int_start.cpp | 0 .../MatrixBase_template_int_topRows.cpp | 0 .../MatrixBase_topLeftCorner_int_int.cpp | 0 .../MatrixBase_topRightCorner_int_int.cpp | 0 .../doc/snippets/MatrixBase_topRows_int.cpp | 0 .../doc/snippets/MatrixBase_transpose.cpp | 0 .../doc/snippets/MatrixBase_zero.cpp | 0 .../doc/snippets/MatrixBase_zero_int.cpp | 0 .../doc/snippets/MatrixBase_zero_int_int.cpp | 0 .../snippets/Matrix_resize_NoChange_int.cpp | 0 .../doc/snippets/Matrix_resize_int.cpp | 0 .../snippets/Matrix_resize_int_NoChange.cpp | 0 .../doc/snippets/Matrix_resize_int_int.cpp | 0 .../doc/snippets/Matrix_setConstant_int.cpp | 0 .../snippets/Matrix_setConstant_int_int.cpp | 0 .../snippets/Matrix_setIdentity_int_int.cpp | 0 .../doc/snippets/Matrix_setOnes_int.cpp | 0 .../doc/snippets/Matrix_setOnes_int_int.cpp | 0 .../doc/snippets/Matrix_setRandom_int.cpp | 0 .../doc/snippets/Matrix_setRandom_int_int.cpp | 0 .../doc/snippets/Matrix_setZero_int.cpp | 0 .../doc/snippets/Matrix_setZero_int_int.cpp | 0 .../doc/snippets/PartialPivLU_solve.cpp | 0 .../doc/snippets/PartialRedux_count.cpp | 0 .../doc/snippets/PartialRedux_maxCoeff.cpp | 0 .../doc/snippets/PartialRedux_minCoeff.cpp | 0 .../doc/snippets/PartialRedux_norm.cpp | 0 .../doc/snippets/PartialRedux_prod.cpp | 0 .../doc/snippets/PartialRedux_squaredNorm.cpp | 0 .../doc/snippets/PartialRedux_sum.cpp | 0 .../doc/snippets/RealQZ_compute.cpp | 0 .../RealSchur_RealSchur_MatrixType.cpp | 0 .../doc/snippets/RealSchur_compute.cpp | 0 ...ointEigenSolver_SelfAdjointEigenSolver.cpp | 0 ...lver_SelfAdjointEigenSolver_MatrixType.cpp | 0 ...ver_SelfAdjointEigenSolver_MatrixType2.cpp | 0 ...fAdjointEigenSolver_compute_MatrixType.cpp | 0 ...AdjointEigenSolver_compute_MatrixType2.cpp | 0 .../SelfAdjointEigenSolver_eigenvalues.cpp | 0 .../SelfAdjointEigenSolver_eigenvectors.cpp | 0 ...AdjointEigenSolver_operatorInverseSqrt.cpp | 0 .../SelfAdjointEigenSolver_operatorSqrt.cpp | 0 .../snippets/SelfAdjointView_eigenvalues.cpp | 0 .../snippets/SelfAdjointView_operatorNorm.cpp | 0 .../doc/snippets/TopicAliasing_block.cpp | 0 .../snippets/TopicAliasing_block_correct.cpp | 0 .../doc/snippets/TopicAliasing_cwise.cpp | 0 .../doc/snippets/TopicAliasing_mult1.cpp | 0 .../doc/snippets/TopicAliasing_mult2.cpp | 0 .../doc/snippets/TopicAliasing_mult3.cpp | 0 .../snippets/TopicStorageOrders_example.cpp | 0 ...lization_Tridiagonalization_MatrixType.cpp | 0 .../snippets/Tridiagonalization_compute.cpp | 0 .../Tridiagonalization_decomposeInPlace.cpp | 0 .../snippets/Tridiagonalization_diagonal.cpp | 0 ...iagonalization_householderCoefficients.cpp | 0 .../Tridiagonalization_packedMatrix.cpp | 0 .../Tutorial_AdvancedInitialization_Block.cpp | 0 ..._AdvancedInitialization_CommaTemporary.cpp | 0 .../Tutorial_AdvancedInitialization_Join.cpp | 0 ...orial_AdvancedInitialization_LinSpaced.cpp | 0 ...orial_AdvancedInitialization_ThreeWays.cpp | 0 .../Tutorial_AdvancedInitialization_Zero.cpp | 0 .../doc/snippets/Tutorial_Map_rowmajor.cpp | 0 .../doc/snippets/Tutorial_Map_using.cpp | 0 .../doc/snippets/Tutorial_commainit_01.cpp | 0 .../doc/snippets/Tutorial_commainit_01b.cpp | 0 .../doc/snippets/Tutorial_commainit_02.cpp | 0 .../Tutorial_solve_matrix_inverse.cpp | 0 .../snippets/Tutorial_solve_multiple_rhs.cpp | 0 .../Tutorial_solve_reuse_decomposition.cpp | 0 .../doc/snippets/Tutorial_solve_singular.cpp | 0 .../snippets/Tutorial_solve_triangular.cpp | 0 .../Tutorial_solve_triangular_inplace.cpp | 0 .../doc/snippets/Vectorwise_reverse.cpp | 0 .../doc/snippets/class_FullPivLU.cpp | 0 .../doc/snippets/compile_snippet.cpp.in | 0 .../snippets/tut_arithmetic_redux_minmax.cpp | 0 .../tut_arithmetic_transpose_aliasing.cpp | 0 .../tut_arithmetic_transpose_conjugate.cpp | 0 .../tut_arithmetic_transpose_inplace.cpp | 0 .../tut_matrix_assignment_resizing.cpp | 0 .../doc/special_examples/CMakeLists.txt | 0 .../Tutorial_sparse_example.cpp | 0 .../Tutorial_sparse_example_details.cpp | 0 .../doc/tutorial.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/eigen3.pc.in | 7 +- .../failtest/CMakeLists.txt | 0 .../block_nonconst_ctor_on_const_xpr_0.cpp | 0 .../block_nonconst_ctor_on_const_xpr_1.cpp | 0 .../block_nonconst_ctor_on_const_xpr_2.cpp | 0 .../block_on_const_type_actually_const_0.cpp | 0 .../block_on_const_type_actually_const_1.cpp | 0 .../failtest/colpivqr_int.cpp | 0 .../const_qualified_block_method_retval_0.cpp | 0 .../const_qualified_block_method_retval_1.cpp | 0 ...const_qualified_diagonal_method_retval.cpp | 0 ...onst_qualified_transpose_method_retval.cpp | 0 .../diagonal_nonconst_ctor_on_const_xpr.cpp | 0 .../diagonal_on_const_type_actually_const.cpp | 0 .../failtest/eigensolver_cplx.cpp | 0 .../failtest/eigensolver_int.cpp | 0 .../failtest/failtest_sanity_check.cpp | 0 .../failtest/fullpivlu_int.cpp | 0 .../failtest/fullpivqr_int.cpp | 0 .../failtest/jacobisvd_int.cpp | 0 .../failtest/ldlt_int.cpp | 0 .../failtest/llt_int.cpp | 0 .../map_nonconst_ctor_on_const_ptr_0.cpp | 0 .../map_nonconst_ctor_on_const_ptr_1.cpp | 0 .../map_nonconst_ctor_on_const_ptr_2.cpp | 0 .../map_nonconst_ctor_on_const_ptr_3.cpp | 0 .../map_nonconst_ctor_on_const_ptr_4.cpp | 0 .../map_on_const_type_actually_const_0.cpp | 0 .../map_on_const_type_actually_const_1.cpp | 0 .../failtest/partialpivlu_int.cpp | 0 .../failtest/qr_int.cpp | 0 .../failtest/ref_1.cpp | 0 .../failtest/ref_2.cpp | 0 .../failtest/ref_3.cpp | 0 .../failtest/ref_4.cpp | 0 .../failtest/ref_5.cpp | 0 .../transpose_nonconst_ctor_on_const_xpr.cpp | 0 ...transpose_on_const_type_actually_const.cpp | 0 .../lapack/CMakeLists.txt | 0 .../lapack/cholesky.cpp | 0 .../lapack/clacgv.f | 0 .../lapack/cladiv.f | 0 .../lapack/clarf.f | 0 .../lapack/clarfb.f | 0 .../lapack/clarfg.f | 0 .../lapack/clarft.f | 0 .../lapack/complex_double.cpp | 0 .../lapack/complex_single.cpp | 0 .../lapack/dladiv.f | 0 .../lapack/dlamch.f | 0 .../lapack/dlapy2.f | 0 .../lapack/dlapy3.f | 0 .../lapack/dlarf.f | 0 .../lapack/dlarfb.f | 0 .../lapack/dlarfg.f | 0 .../lapack/dlarft.f | 0 .../lapack/double.cpp | 0 .../lapack/dsecnd_NONE.f | 0 .../lapack/eigenvalues.cpp | 0 .../lapack/ilaclc.f | 0 .../lapack/ilaclr.f | 0 .../lapack/iladlc.f | 0 .../lapack/iladlr.f | 0 .../lapack/ilaslc.f | 0 .../lapack/ilaslr.f | 0 .../lapack/ilazlc.f | 0 .../lapack/ilazlr.f | 0 .../lapack/lapack_common.h | 0 .../lapack/lu.cpp | 0 .../lapack/second_NONE.f | 0 .../lapack/single.cpp | 0 .../lapack/sladiv.f | 0 .../lapack/slamch.f | 0 .../lapack/slapy2.f | 0 .../lapack/slapy3.f | 0 .../lapack/slarf.f | 0 .../lapack/slarfb.f | 0 .../lapack/slarfg.f | 0 .../lapack/slarft.f | 0 .../lapack/zlacgv.f | 0 .../lapack/zladiv.f | 0 .../lapack/zlarf.f | 0 .../lapack/zlarfb.f | 0 .../lapack/zlarfg.f | 0 .../lapack/zlarft.f | 0 .../scripts/CMakeLists.txt | 0 .../scripts/buildtests.in | 0 .../scripts/cdashtesting.cmake.in | 0 .../scripts/check.in | 0 .../scripts/debug.in | 0 .../scripts/eigen_gen_credits.cpp | 0 .../scripts/eigen_gen_docs | 0 .../scripts/release.in | 0 .../scripts/relicense.py | 0 .../signature_of_eigen3_matrix_library | 0 .../test/CMakeLists.txt | 2 + .../test/adjoint.cpp | 0 .../test/array.cpp | 0 .../test/array_for_matrix.cpp | 0 .../test/array_replicate.cpp | 0 .../test/array_reverse.cpp | 0 .../test/bandmatrix.cpp | 0 .../test/basicstuff.cpp | 0 .../test/bicgstab.cpp | 0 .../test/block.cpp | 0 .../test/cholesky.cpp | 0 .../test/cholmod_support.cpp | 0 .../test/commainitializer.cpp | 1 + .../test/conjugate_gradient.cpp | 0 .../test/conservative_resize.cpp | 0 .../test/corners.cpp | 0 .../test/cwiseop.cpp | 0 .../test/denseLM.cpp | 0 .../test/determinant.cpp | 0 .../test/diagonal.cpp | 0 .../test/diagonalmatrices.cpp | 0 .../test/dontalign.cpp | 0 .../test/dynalloc.cpp | 39 ++- .../test/eigen2/CMakeLists.txt | 0 .../test/eigen2/eigen2_adjoint.cpp | 0 .../test/eigen2/eigen2_alignedbox.cpp | 0 .../test/eigen2/eigen2_array.cpp | 0 .../test/eigen2/eigen2_basicstuff.cpp | 0 .../test/eigen2/eigen2_bug_132.cpp | 0 .../test/eigen2/eigen2_cholesky.cpp | 0 .../test/eigen2/eigen2_commainitializer.cpp | 0 .../test/eigen2/eigen2_cwiseop.cpp | 0 .../test/eigen2/eigen2_determinant.cpp | 0 .../test/eigen2/eigen2_dynalloc.cpp | 0 .../test/eigen2/eigen2_eigensolver.cpp | 0 .../test/eigen2/eigen2_first_aligned.cpp | 0 .../test/eigen2/eigen2_geometry.cpp | 0 .../eigen2_geometry_with_eigen2_prefix.cpp | 0 .../test/eigen2/eigen2_hyperplane.cpp | 0 .../test/eigen2/eigen2_inverse.cpp | 0 .../test/eigen2/eigen2_linearstructure.cpp | 0 .../test/eigen2/eigen2_lu.cpp | 0 .../test/eigen2/eigen2_map.cpp | 0 .../test/eigen2/eigen2_meta.cpp | 0 .../test/eigen2/eigen2_miscmatrices.cpp | 0 .../test/eigen2/eigen2_mixingtypes.cpp | 0 .../test/eigen2/eigen2_newstdvector.cpp | 0 .../test/eigen2/eigen2_nomalloc.cpp | 0 .../test/eigen2/eigen2_packetmath.cpp | 0 .../test/eigen2/eigen2_parametrizedline.cpp | 0 .../test/eigen2/eigen2_prec_inverse_4x4.cpp | 0 .../test/eigen2/eigen2_product_large.cpp | 0 .../test/eigen2/eigen2_product_small.cpp | 0 .../test/eigen2/eigen2_qr.cpp | 0 .../test/eigen2/eigen2_qtvector.cpp | 0 .../test/eigen2/eigen2_regression.cpp | 0 .../test/eigen2/eigen2_sizeof.cpp | 0 .../test/eigen2/eigen2_smallvectors.cpp | 0 .../test/eigen2/eigen2_sparse_basic.cpp | 0 .../test/eigen2/eigen2_sparse_product.cpp | 0 .../test/eigen2/eigen2_sparse_solvers.cpp | 0 .../test/eigen2/eigen2_sparse_vector.cpp | 0 .../test/eigen2/eigen2_stdvector.cpp | 0 .../test/eigen2/eigen2_submatrices.cpp | 0 .../test/eigen2/eigen2_sum.cpp | 0 .../test/eigen2/eigen2_svd.cpp | 0 .../test/eigen2/eigen2_swap.cpp | 0 .../test/eigen2/eigen2_triangular.cpp | 0 .../test/eigen2/eigen2_unalignedassert.cpp | 0 .../test/eigen2/eigen2_visitor.cpp | 0 .../test/eigen2/gsl_helper.h | 0 .../test/eigen2/main.h | 0 .../test/eigen2/product.h | 0 .../test/eigen2/runtest.sh | 0 .../test/eigen2/sparse.h | 0 .../test/eigen2/testsuite.cmake | 0 .../test/eigen2support.cpp | 0 .../test/eigensolver_complex.cpp | 0 .../test/eigensolver_generalized_real.cpp | 0 .../test/eigensolver_generic.cpp | 0 .../test/eigensolver_selfadjoint.cpp | 0 .../test/exceptions.cpp | 0 .../test/first_aligned.cpp | 0 .../test/geo_alignedbox.cpp | 0 .../test/geo_eulerangles.cpp | 0 .../test/geo_homogeneous.cpp | 2 + .../test/geo_hyperplane.cpp | 0 .../test/geo_orthomethods.cpp | 0 .../test/geo_parametrizedline.cpp | 0 .../test/geo_quaternion.cpp | 0 .../test/geo_transformations.cpp | 0 .../test/hessenberg.cpp | 0 .../test/householder.cpp | 0 .../test/integer_types.cpp | 0 .../test/inverse.cpp | 0 .../test/jacobi.cpp | 0 .../test/jacobisvd.cpp | 0 .../test/linearstructure.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/test/lu.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/test/main.h | 0 .../test/mapped_matrix.cpp | 0 .../test/mapstaticmethods.cpp | 0 .../test/mapstride.cpp | 0 .../test/meta.cpp | 0 .../test/metis_support.cpp | 0 .../test/miscmatrices.cpp | 0 .../test/mixingtypes.cpp | 0 .../test/mpl2only.cpp | 0 .../test/nesting_ops.cpp | 0 .../test/nomalloc.cpp | 0 .../test/nullary.cpp | 0 .../test/packetmath.cpp | 0 .../test/pardiso_support.cpp | 0 .../test/pastix_support.cpp | 0 .../test/permutationmatrices.cpp | 0 .../test/prec_inverse_4x4.cpp | 0 .../test/product.h | 45 ++- .../test/product_extra.cpp | 0 .../test/product_large.cpp | 23 ++ .../test/product_mmtr.cpp | 0 .../test/product_notemporary.cpp | 9 + .../test/product_selfadjoint.cpp | 0 .../test/product_small.cpp | 0 .../test/product_symm.cpp | 0 .../test/product_syrk.cpp | 0 .../test/product_trmm.cpp | 0 .../test/product_trmv.cpp | 0 .../test/product_trsolve.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/test/qr.cpp | 0 .../test/qr_colpivoting.cpp | 0 .../test/qr_fullpivoting.cpp | 0 .../test/qtvector.cpp | 0 .../test/real_qz.cpp | 0 .../test/redux.cpp | 0 ext/{eigen-3.2.7 => eigen-3.2.9}/test/ref.cpp | 13 +- .../test/resize.cpp | 0 .../test/runtest.sh | 0 .../test/rvalue_types.cpp | 0 .../test/schur_complex.cpp | 0 .../test/schur_real.cpp | 0 .../test/selfadjoint.cpp | 0 .../test/simplicial_cholesky.cpp | 0 .../test/sizeof.cpp | 0 .../test/sizeoverflow.cpp | 0 .../test/smallvectors.cpp | 0 .../test/sparse.h | 0 .../test/sparseLM.cpp | 0 .../test/sparse_basic.cpp | 0 .../test/sparse_permutations.cpp | 0 .../test/sparse_product.cpp | 0 .../test/sparse_solver.h | 0 .../test/sparse_solvers.cpp | 0 .../test/sparse_vector.cpp | 0 .../test/sparselu.cpp | 0 .../test/sparseqr.cpp | 0 .../test/special_numbers.cpp | 0 .../test/spqr_support.cpp | 0 .../test/stable_norm.cpp | 0 .../test/stddeque.cpp | 0 ext/eigen-3.2.9/test/stddeque_overload.cpp | 158 ++++++++++ .../test/stdlist.cpp | 0 ext/eigen-3.2.9/test/stdlist_overload.cpp | 192 ++++++++++++ .../test/stdvector.cpp | 0 .../test/stdvector_overload.cpp | 0 .../test/superlu_support.cpp | 0 .../test/swap.cpp | 0 .../test/testsuite.cmake | 0 .../test/triangular.cpp | 0 .../test/umeyama.cpp | 0 .../test/umfpack_support.cpp | 0 .../test/unalignedassert.cpp | 0 .../test/unalignedcount.cpp | 0 .../test/upperbidiagonalization.cpp | 0 .../test/vectorization_logic.cpp | 0 .../test/vectorwiseop.cpp | 0 .../test/visitor.cpp | 5 + .../test/zerosized.cpp | 0 .../unsupported/CMakeLists.txt | 0 .../unsupported/Eigen/AdolcForward | 0 .../unsupported/Eigen/AlignedVector3 | 2 +- .../unsupported/Eigen/ArpackSupport | 0 .../unsupported/Eigen/AutoDiff | 0 .../unsupported/Eigen/BVH | 0 .../unsupported/Eigen/CMakeLists.txt | 0 .../unsupported/Eigen/FFT | 0 .../unsupported/Eigen/IterativeSolvers | 0 .../unsupported/Eigen/KroneckerProduct | 0 .../unsupported/Eigen/LevenbergMarquardt | 0 .../unsupported/Eigen/MPRealSupport | 0 .../unsupported/Eigen/MatrixFunctions | 0 .../unsupported/Eigen/MoreVectorization | 0 .../unsupported/Eigen/NonLinearOptimization | 0 .../unsupported/Eigen/NumericalDiff | 0 .../unsupported/Eigen/OpenGLSupport | 0 .../unsupported/Eigen/Polynomials | 0 .../unsupported/Eigen/SVD | 0 .../unsupported/Eigen/Skyline | 0 .../unsupported/Eigen/SparseExtra | 0 .../unsupported/Eigen/Splines | 0 .../Eigen/src/AutoDiff/AutoDiffJacobian.h | 0 .../Eigen/src/AutoDiff/AutoDiffScalar.h | 0 .../Eigen/src/AutoDiff/AutoDiffVector.h | 0 .../Eigen/src/AutoDiff/CMakeLists.txt | 0 .../unsupported/Eigen/src/BVH/BVAlgorithms.h | 0 .../unsupported/Eigen/src/BVH/CMakeLists.txt | 0 .../unsupported/Eigen/src/BVH/KdBVH.h | 0 .../unsupported/Eigen/src/CMakeLists.txt | 0 .../ArpackSelfAdjointEigenSolver.h | 0 .../Eigen/src/Eigenvalues/CMakeLists.txt | 0 .../unsupported/Eigen/src/FFT/CMakeLists.txt | 0 .../unsupported/Eigen/src/FFT/ei_fftw_impl.h | 0 .../Eigen/src/FFT/ei_kissfft_impl.h | 0 .../Eigen/src/IterativeSolvers/CMakeLists.txt | 0 .../IterativeSolvers/ConstrainedConjGrad.h | 0 .../Eigen/src/IterativeSolvers/DGMRES.h | 0 .../Eigen/src/IterativeSolvers/GMRES.h | 0 .../src/IterativeSolvers/IncompleteCholesky.h | 0 .../Eigen/src/IterativeSolvers/IncompleteLU.h | 0 .../IterativeSolvers/IterationController.h | 0 .../Eigen/src/IterativeSolvers/MINRES.h | 0 .../Eigen/src/IterativeSolvers/Scaling.h | 0 .../Eigen/src/KroneckerProduct/CMakeLists.txt | 0 .../KroneckerProduct/KroneckerTensorProduct.h | 0 .../src/LevenbergMarquardt/CMakeLists.txt | 0 .../LevenbergMarquardt/CopyrightMINPACK.txt | 0 .../Eigen/src/LevenbergMarquardt/LMcovar.h | 0 .../Eigen/src/LevenbergMarquardt/LMonestep.h | 0 .../Eigen/src/LevenbergMarquardt/LMpar.h | 0 .../Eigen/src/LevenbergMarquardt/LMqrsolv.h | 0 .../LevenbergMarquardt/LevenbergMarquardt.h | 0 .../Eigen/src/MatrixFunctions/CMakeLists.txt | 0 .../src/MatrixFunctions/MatrixExponential.h | 8 +- .../src/MatrixFunctions/MatrixFunction.h | 0 .../MatrixFunctions/MatrixFunctionAtomic.h | 0 .../src/MatrixFunctions/MatrixLogarithm.h | 0 .../Eigen/src/MatrixFunctions/MatrixPower.h | 0 .../src/MatrixFunctions/MatrixSquareRoot.h | 0 .../Eigen/src/MatrixFunctions/StemFunction.h | 0 .../src/MoreVectorization/CMakeLists.txt | 0 .../src/MoreVectorization/MathFunctions.h | 0 .../src/NonLinearOptimization/CMakeLists.txt | 0 .../HybridNonLinearSolver.h | 0 .../LevenbergMarquardt.h | 0 .../Eigen/src/NonLinearOptimization/chkder.h | 0 .../Eigen/src/NonLinearOptimization/covar.h | 0 .../Eigen/src/NonLinearOptimization/dogleg.h | 0 .../Eigen/src/NonLinearOptimization/fdjac1.h | 0 .../Eigen/src/NonLinearOptimization/lmpar.h | 0 .../Eigen/src/NonLinearOptimization/qrsolv.h | 0 .../Eigen/src/NonLinearOptimization/r1mpyq.h | 0 .../Eigen/src/NonLinearOptimization/r1updt.h | 0 .../Eigen/src/NonLinearOptimization/rwupdt.h | 0 .../Eigen/src/NumericalDiff/CMakeLists.txt | 0 .../Eigen/src/NumericalDiff/NumericalDiff.h | 0 .../Eigen/src/Polynomials/CMakeLists.txt | 0 .../Eigen/src/Polynomials/Companion.h | 0 .../Eigen/src/Polynomials/PolynomialSolver.h | 0 .../Eigen/src/Polynomials/PolynomialUtils.h | 0 .../unsupported/Eigen/src/SVD/BDCSVD.h | 0 .../unsupported/Eigen/src/SVD/CMakeLists.txt | 0 .../unsupported/Eigen/src/SVD/JacobiSVD.h | 0 .../unsupported/Eigen/src/SVD/SVDBase.h | 0 .../unsupported/Eigen/src/SVD/TODOBdcsvd.txt | 0 .../Eigen/src/SVD/doneInBDCSVD.txt | 0 .../Eigen/src/Skyline/CMakeLists.txt | 0 .../Eigen/src/Skyline/SkylineInplaceLU.h | 0 .../Eigen/src/Skyline/SkylineMatrix.h | 0 .../Eigen/src/Skyline/SkylineMatrixBase.h | 0 .../Eigen/src/Skyline/SkylineProduct.h | 0 .../Eigen/src/Skyline/SkylineStorage.h | 0 .../Eigen/src/Skyline/SkylineUtil.h | 0 .../SparseExtra/BlockOfDynamicSparseMatrix.h | 0 .../Eigen/src/SparseExtra/CMakeLists.txt | 0 .../src/SparseExtra/DynamicSparseMatrix.h | 0 .../Eigen/src/SparseExtra/MarketIO.h | 0 .../src/SparseExtra/MatrixMarketIterator.h | 0 .../Eigen/src/SparseExtra/RandomSetter.h | 0 .../Eigen/src/Splines/CMakeLists.txt | 0 .../unsupported/Eigen/src/Splines/Spline.h | 0 .../Eigen/src/Splines/SplineFitting.h | 0 .../unsupported/Eigen/src/Splines/SplineFwd.h | 8 +- .../unsupported/README.txt | 0 .../unsupported/bench/bench_svd.cpp | 0 .../unsupported/doc/CMakeLists.txt | 0 .../unsupported/doc/Overview.dox | 0 .../unsupported/doc/eigendoxy_layout.xml.in | 0 .../unsupported/doc/examples/BVH_Example.cpp | 0 .../unsupported/doc/examples/CMakeLists.txt | 0 .../unsupported/doc/examples/FFT.cpp | 0 .../doc/examples/MatrixExponential.cpp | 0 .../doc/examples/MatrixFunction.cpp | 0 .../doc/examples/MatrixLogarithm.cpp | 0 .../unsupported/doc/examples/MatrixPower.cpp | 0 .../doc/examples/MatrixPower_optimal.cpp | 0 .../unsupported/doc/examples/MatrixSine.cpp | 0 .../unsupported/doc/examples/MatrixSinh.cpp | 0 .../doc/examples/MatrixSquareRoot.cpp | 0 .../doc/examples/PolynomialSolver1.cpp | 0 .../doc/examples/PolynomialUtils1.cpp | 0 .../unsupported/doc/snippets/CMakeLists.txt | 0 .../unsupported/test/BVH.cpp | 0 .../unsupported/test/CMakeLists.txt | 0 .../unsupported/test/FFT.cpp | 0 .../unsupported/test/FFTW.cpp | 0 .../test/NonLinearOptimization.cpp | 0 .../unsupported/test/NumericalDiff.cpp | 0 .../unsupported/test/alignedvector3.cpp | 0 .../unsupported/test/autodiff.cpp | 11 + .../unsupported/test/bdcsvd.cpp | 0 .../unsupported/test/dgmres.cpp | 0 .../unsupported/test/forward_adolc.cpp | 0 .../unsupported/test/gmres.cpp | 0 .../unsupported/test/jacobisvd.cpp | 0 .../unsupported/test/kronecker_product.cpp | 0 .../unsupported/test/levenberg_marquardt.cpp | 0 .../unsupported/test/matrix_exponential.cpp | 0 .../unsupported/test/matrix_function.cpp | 0 .../unsupported/test/matrix_functions.h | 0 .../unsupported/test/matrix_power.cpp | 0 .../unsupported/test/matrix_square_root.cpp | 0 .../unsupported/test/minres.cpp | 0 .../unsupported/test/mpreal/mpreal.h | 0 .../unsupported/test/mpreal_support.cpp | 0 .../unsupported/test/openglsupport.cpp | 0 .../unsupported/test/polynomialsolver.cpp | 0 .../unsupported/test/polynomialutils.cpp | 0 .../unsupported/test/sparse_extra.cpp | 0 .../unsupported/test/splines.cpp | 0 .../unsupported/test/svd_common.h | 0 gui/fea_gui.pro | 2 +- 1385 files changed, 1507 insertions(+), 483 deletions(-) rename ext/{eigen-3.2.7 => eigen-3.2.9}/.hg_archival.txt (50%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/.hgeol (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/.hgignore (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/.hgtags (94%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/CMakeLists.txt (88%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.BSD (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.GPL (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.LGPL (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.MINPACK (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.MPL2 (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/COPYING.README (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/CTestConfig.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/CTestCustom.cmake.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Array (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Cholesky (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/CholmodSupport (93%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Core (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Dense (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Eigen (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Eigen2Support (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Eigenvalues (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Geometry (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Householder (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/IterativeLinearSolvers (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Jacobi (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/LU (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/LeastSquares (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/MetisSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/OrderingMethods (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/PaStiXSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/PardisoSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/QR (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/QtAlignedMalloc (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SPQRSupport (89%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SVD (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/Sparse (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SparseCholesky (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SparseCore (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SparseLU (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SparseQR (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/StdDeque (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/StdList (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/StdVector (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/SuperLUSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/UmfPackSupport (90%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Cholesky/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Cholesky/LDLT.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Cholesky/LLT.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Cholesky/LLT_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/CholmodSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/CholmodSupport/CholmodSupport.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Array.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/ArrayBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/ArrayWrapper.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Assign.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Assign_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/BandMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Block.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/BooleanRedux.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CommaInitializer.h (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CoreIterators.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CwiseBinaryOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CwiseNullaryOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CwiseUnaryOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/CwiseUnaryView.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/DenseBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/DenseCoeffsBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/DenseStorage.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Diagonal.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/DiagonalMatrix.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/DiagonalProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Dot.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/EigenBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Flagged.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/ForceAlignedAccess.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Functors.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Fuzzy.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/GeneralProduct.h (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/GenericPacketMath.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/GlobalFunctions.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/IO.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Map.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/MapBase.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/MathFunctions.h (96%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Matrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/MatrixBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/NestByValue.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/NoAlias.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/NumTraits.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/PermutationMatrix.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/PlainObjectBase.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/ProductBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Random.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Redux.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Ref.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Replicate.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/ReturnByValue.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Reverse.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Select.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/SelfAdjointView.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/SelfCwiseBinaryOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/SolveTriangular.h (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/StableNorm.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Stride.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Swap.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Transpose.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Transpositions.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/TriangularMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/VectorBlock.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/VectorwiseOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/Visitor.h (96%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/AltiVec/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/AltiVec/Complex.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/AltiVec/PacketMath.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/Default/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/Default/Settings.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/NEON/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/NEON/Complex.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/NEON/PacketMath.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/SSE/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/SSE/Complex.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/SSE/MathFunctions.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/arch/SSE/PacketMath.h (93%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/CoeffBasedProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralBlockPanelKernel.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixMatrix.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/GeneralMatrixVector_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/Parallelizer.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointMatrixMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointMatrixVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/SelfadjointRank2Update.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularMatrixMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularMatrixVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularMatrixVector_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularSolverMatrix.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/products/TriangularSolverVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/BlasUtil.h (88%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/Constants.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/DisableStupidWarnings.h (91%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/ForwardDeclarations.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/MKL_support.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/Macros.h (71%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/Memory.h (94%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/Meta.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/NonMPL2.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/ReenableStupidWarnings.h (81%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/StaticAssert.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Core/util/XprHelper.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Block.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Cwise.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/CwiseOperators.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/AlignedBox.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/All.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/AngleAxis.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Hyperplane.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Quaternion.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Rotation2D.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/RotationBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Scaling.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Transform.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Geometry/Translation.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/LU.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Lazy.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/LeastSquares.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Macros.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/MathFunctions.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Memory.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Meta.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/Minor.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/QR.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/SVD.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/TriangularSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigen2Support/VectorBlock.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/ComplexEigenSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/ComplexSchur.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/ComplexSchur_MKL.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/EigenSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h (88%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/HessenbergDecomposition.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/RealQZ.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/RealSchur.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/RealSchur_MKL.h (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Eigenvalues/Tridiagonalization.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/AlignedBox.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/AngleAxis.h (96%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/EulerAngles.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Homogeneous.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Hyperplane.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/OrthoMethods.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/ParametrizedLine.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Quaternion.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Rotation2D.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/RotationBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Scaling.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Transform.h (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Translation.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/Umeyama.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/arch/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Geometry/arch/Geometry_SSE.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Householder/BlockHouseholder.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Householder/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Householder/Householder.h (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Householder/HouseholderSequence.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Jacobi/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/Jacobi/Jacobi.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/Determinant.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/FullPivLU.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/Inverse.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/PartialPivLU.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/PartialPivLU_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/arch/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/LU/arch/Inverse_SSE.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/MetisSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/MetisSupport/MetisSupport.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/OrderingMethods/Amd.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/OrderingMethods/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/OrderingMethods/Eigen_Colamd.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/OrderingMethods/Ordering.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/PaStiXSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/PaStiXSupport/PaStiXSupport.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/PardisoSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/PardisoSupport/PardisoSupport.h (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/ColPivHouseholderQR.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/ColPivHouseholderQR_MKL.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/FullPivHouseholderQR.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/HouseholderQR.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/QR/HouseholderQR_MKL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SPQRSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SVD/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SVD/JacobiSVD.h (92%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SVD/JacobiSVD_MKL.h (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SVD/UpperBidiagonalization.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCholesky/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCholesky/SimplicialCholesky.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/AmbiVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/CompressedStorage.h (94%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/MappedSparseMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseBlock.h (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseColEtree.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseCwiseBinaryOp.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseCwiseUnaryOp.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseDenseProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseDiagonalProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseDot.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseFuzzy.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseMatrix.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseMatrixBase.h (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparsePermutation.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseRedux.h (86%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseSelfAdjointView.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseSparseProductWithPruning.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseTranspose.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseTriangularView.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseUtil.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseVector.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/SparseView.h (91%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseCore/TriangularSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLUImpl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_Memory.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_Structs.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_Utils.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_column_bmod.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_column_dfs.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_gemm_kernel.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_kernel_bmod.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_panel_bmod.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_panel_dfs.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_pivotL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_pruneL.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseLU/SparseLU_relax_snode.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseQR/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SparseQR/SparseQR.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/StlSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/StlSupport/StdDeque.h (88%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/StlSupport/StdList.h (86%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/StlSupport/StdVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/StlSupport/details.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SuperLUSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/SuperLUSupport/SuperLUSupport.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/UmfPackSupport/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/UmfPackSupport/UmfPackSupport.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/Image.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/Kernel.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/Solve.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/SparseSolve.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/misc/blas.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/ArrayCwiseBinaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/ArrayCwiseUnaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/BlockMethods.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/CommonCwiseBinaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/CommonCwiseUnaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/MatrixCwiseBinaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/Eigen/src/plugins/MatrixCwiseUnaryOps.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/INSTALL (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/BenchSparseUtil.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/BenchTimer.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/BenchUtil.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/README.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/basicbench.cxxlist (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/basicbenchmark.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/basicbenchmark.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchBlasGemm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchCholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchEigenSolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchFFT.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchGeometry.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchVecAdd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_gemm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_multi_compilers.sh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_norm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_reverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_sum.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/bench_unrolling (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchmark.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchmarkSlice.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchmarkX.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchmarkXcwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/benchmark_suite (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/COPYING (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/README (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_aat_product.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_ata_product.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_atv_product.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_axpby.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_axpy.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_cholesky.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_ger.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_hessenberg.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_lu_decomp.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_lu_solve.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_matrix_matrix_product.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_matrix_matrix_product_bis.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_matrix_vector_product.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_partial_lu.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_rot.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_symv.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_syr2.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_trisolve.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_trisolve_matrix.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/action_trmm.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/actions/basic_actions.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindACML.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindATLAS.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindBlitz.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindCBLAS.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindGMM.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindGOTO.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindGOTO2.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindMKL.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindMTL4.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindPackageHandleStandardArgs.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/FindTvmet.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/bench.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/bench_parameter.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/btl.hh (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/init/init_function.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/init/init_matrix.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/init/init_vector.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/static/bench_static.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/static/intel_bench_fixed_size.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/static/static_size_generator.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/STL_perf_analyzer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/STL_timer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/portable_perf_analyzer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/portable_timer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/x86_perf_analyzer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/timers/x86_timer.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/utils/size_lin_log.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/utils/size_log.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/utils/utilities.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/generic_bench/utils/xy_file.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/blas.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/blas_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/blas_interface_impl.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/c_interface_base.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/BLAS/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/STL/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/STL/STL_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/STL/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/blitz_LU_solve_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/blitz_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/btl_blitz.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/btl_tiny_blitz.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/blitz/tiny_blitz_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/eigen2_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/main_adv.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/main_linear.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/main_matmat.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen2/main_vecmat.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/eigen3_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/main_adv.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/main_linear.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/main_matmat.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/eigen3/main_vecmat.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/gmm/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/gmm/gmm_LU_solve_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/gmm/gmm_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/gmm/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/mtl4/.kdbgrc.main (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/mtl4/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/mtl4/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/mtl4/mtl4_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/tvmet/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/tvmet/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/tvmet/tvmet_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/ublas/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/ublas/main.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/btl/libs/ublas/ublas_interface.hh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/check_cache_queries.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/eig33.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/geometry.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/product_threshold.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/quat_slerp.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/quatmul.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_cholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_dense_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_lu.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_randomsetter.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_setter.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_transpose.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/sparse_trisolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/sp_solver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/spbench.dtd (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/spbenchsolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/spbenchsolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/spbenchstyle.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spbench/test_sparseLU.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/spmv.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/bench/vdw_new.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/BandTriangularSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/GeneralRank1Update.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/PackedSelfadjointProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/PackedTriangularMatrixVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/PackedTriangularSolverVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/README.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/Rank2Update.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/chbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/chpmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/common.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/complex_double.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/complex_single.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/complexdots.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ctbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/double.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/drotm.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/drotmg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dsbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dspmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/dtbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level1_cplx_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level1_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level1_real_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level2_cplx_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level2_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level2_real_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/level3_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/lsame.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/single.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/srotm.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/srotmg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ssbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/sspmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/stbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/cblat1.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/cblat2.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/cblat2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/cblat3.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/cblat3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/dblat1.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/dblat2.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/dblat2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/dblat3.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/dblat3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/runblastest.sh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/sblat1.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/sblat2.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/sblat2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/sblat3.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/sblat3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/zblat1.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/zblat2.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/zblat2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/zblat3.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/testing/zblat3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/xerbla.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/zhbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/zhpmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/blas/ztbmv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/EigenConfigureTesting.cmake (86%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/EigenDetermineOSVersion.cmake (96%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/EigenDetermineVSServicePack.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/EigenTesting.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindAdolc.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindBLAS.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindCholmod.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindEigen2.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindEigen3.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindFFTW.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindGLEW.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindGMP.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindGSL.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindGoogleHash.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindLAPACK.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindMPFR.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindMetis.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindPastix.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindSPQR.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindScotch.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindStandardMathLibrary.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindSuperLU.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/FindUmfpack.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/RegexUtils.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/cmake/language_support.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/debug/gdb/__init__.py (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/debug/gdb/printers.py (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/debug/msvc/eigen.natvis (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/debug/msvc/eigen_autoexp_part.dat (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mandelbrot/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mandelbrot/README (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mandelbrot/mandelbrot.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mandelbrot/mandelbrot.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mix_eigen_and_c/README (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mix_eigen_and_c/binary_library.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mix_eigen_and_c/binary_library.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/mix_eigen_and_c/example.c (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/README (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/camera.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/camera.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/gpuhelper.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/gpuhelper.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/icosphere.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/icosphere.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/quaternion_demo.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/quaternion_demo.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/trackball.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/demos/opengl/trackball.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/A05_PortingFrom2To3.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/A10_Eigen2SupportModes.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/AsciiQuickReference.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/B01_Experimental.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/CMakeLists.txt (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/ClassHierarchy.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/CustomizingEigen.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/Doxyfile.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/Eigen_Silly_Professor_64x64.png (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/FixedSizeVectorizable.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/FunctionsTakingEigenTypes.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/HiPerformance.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/InsideEigenExample.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/Manual.dox (98%) create mode 100644 ext/eigen-3.2.9/doc/MatrixfreeSolverExample.dox rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/Overview.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/PassingByValue.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/Pitfalls.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/PreprocessorDirectives.dox (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/QuickReference.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/QuickStartGuide.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/SparseLinearSystems.dox (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/SparseQuickReference.dox (75%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/StlContainers.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/StorageOrders.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/StructHavingEigenMembers.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TemplateKeyword.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicAliasing.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicAssertions.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicEigenExpressionTemplates.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicLazyEvaluation.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicLinearAlgebraDecompositions.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicMultithreading.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicResizing.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicScalarTypes.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TopicVectorization.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialAdvancedInitialization.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialArrayClass.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialBlockOperations.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialGeometry.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialLinearAlgebra.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialMapClass.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialMatrixArithmetic.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialMatrixClass.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialReductionsVisitorsBroadcasting.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialSparse.dox (93%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/TutorialSparse_example_details.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/UnalignedArrayAssert.dox (77%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/UsingIntelMKL.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/WrongStackAlignment.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigen_navtree_hacks.js (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigendoxy.css (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigendoxy_footer.html.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigendoxy_header.html.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigendoxy_layout.xml.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/eigendoxy_tabs.css (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/.krazy (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/DenseBase_middleCols_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/DenseBase_middleRows_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/DenseBase_template_int_middleCols.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/DenseBase_template_int_middleRows.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/MatrixBase_cwise_const.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/QuickStart_example.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/QuickStart_example2_dynamic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/QuickStart_example2_fixed.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TemplateKeyword_flexible.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TemplateKeyword_simple.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgComputeTwice.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgExComputeSolveError.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgExSolveLDLT.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgInverseDeterminant.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgRankRevealing.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgSVDSolve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/TutorialLinAlgSetThreshold.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_accessors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_addition.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_cwise_other.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_interop.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ArrayClass_mult.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_BlockOperations_block_assignment.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_BlockOperations_colrow.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_BlockOperations_corner.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_BlockOperations_print_block.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_BlockOperations_vector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_PartialLU_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_simple_example_dynamic_size.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/Tutorial_simple_example_fixed_size.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_Block.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_CwiseBinaryOp.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_CwiseUnaryOp.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_CwiseUnaryOp_ptrfun.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_FixedBlock.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_FixedVectorBlock.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/class_VectorBlock.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/function_taking_eigenbase.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/function_taking_ref.cpp (100%) create mode 100644 ext/eigen-3.2.9/doc/examples/matrixfree_cg.cpp rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_arithmetic_add_sub.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_arithmetic_dot_cross.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_arithmetic_matrix_mul.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_arithmetic_redux_basic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_arithmetic_scalar_mul_div.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_matrix_coefficient_accessors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_matrix_resize.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/examples/tut_matrix_resize_fixed_size.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/.krazy (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/AngleAxis_mimic_euler.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ColPivHouseholderQR_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexEigenSolver_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexEigenSolver_eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexEigenSolver_eigenvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexSchur_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexSchur_matrixT.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/ComplexSchur_matrixU.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_abs.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_abs2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_acos.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_asin.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_boolean_and.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_boolean_or.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_cos.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_cube.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_equal_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_exp.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_greater.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_greater_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_inverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_less.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_less_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_log.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_max.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_min.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_minus.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_minus_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_not_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_plus.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_plus_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_pow.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_quotient.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_sin.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_slash_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_sqrt.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_square.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_tan.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Cwise_times_equal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/DenseBase_LinSpaced.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/DenseBase_LinSpaced_seq.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/DenseBase_setLinSpaced.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/DirectionWise_replicate.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/DirectionWise_replicate_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/EigenSolver_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/EigenSolver_eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/EigenSolver_eigenvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/EigenSolver_pseudoEigenvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/FullPivHouseholderQR_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/FullPivLU_image.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/FullPivLU_kernel.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/FullPivLU_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/GeneralizedEigenSolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HessenbergDecomposition_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HessenbergDecomposition_matrixH.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HessenbergDecomposition_packedMatrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HouseholderQR_householderQ.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HouseholderQR_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/HouseholderSequence_HouseholderSequence.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/IOFormat.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/JacobiSVD_basic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Jacobi_makeGivens.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Jacobi_makeJacobi.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/LLT_example.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/LLT_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Map_general_stride.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Map_inner_stride.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Map_outer_stride.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Map_placement_new.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Map_simple.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_adjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_all.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_applyOnTheLeft.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_applyOnTheRight.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_array.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_array_const.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_asDiagonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_block_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_block_int_int_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_bottomRows_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cast.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_col.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_colwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_computeInverseWithCheck.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseAbs.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseAbs2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseEqual.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseInverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseMax.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseMin.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseNotEqual.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseProduct.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseQuotient.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_cwiseSqrt.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_diagonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_diagonal_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_diagonal_template_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_end_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_eval.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_extract.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_fixedBlock_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_identity.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_identity_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_inverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isDiagonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isIdentity.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isOnes.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isOrthogonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isUnitary.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_isZero.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_leftCols_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_marked.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_noalias.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_ones.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_ones_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_ones_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_operatorNorm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_part.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_prod.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_random.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_random_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_random_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_replicate.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_replicate_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_reverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_rightCols_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_row.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_rowwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_segment_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_select.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_set.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_setIdentity.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_setOnes.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_setRandom.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_setZero.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_start_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_bottomRows.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_end.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_leftCols.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_rightCols.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_segment.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_start.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_template_int_topRows.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_topRightCorner_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_topRows_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_transpose.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_zero.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_zero_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/MatrixBase_zero_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_resize_NoChange_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_resize_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_resize_int_NoChange.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_resize_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setConstant_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setConstant_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setIdentity_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setOnes_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setOnes_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setRandom_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setRandom_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setZero_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Matrix_setZero_int_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialPivLU_solve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_count.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_maxCoeff.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_minCoeff.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_norm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_prod.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_squaredNorm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/PartialRedux_sum.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/RealQZ_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/RealSchur_RealSchur_MatrixType.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/RealSchur_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointView_eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/SelfAdjointView_operatorNorm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_block.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_block_correct.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_cwise.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_mult1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_mult2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicAliasing_mult3.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/TopicStorageOrders_example.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_compute.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_decomposeInPlace.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_diagonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_householderCoefficients.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tridiagonalization_packedMatrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_Map_rowmajor.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_Map_using.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_commainit_01.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_commainit_01b.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_commainit_02.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_matrix_inverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_multiple_rhs.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_reuse_decomposition.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_singular.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_triangular.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Tutorial_solve_triangular_inplace.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/Vectorwise_reverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/class_FullPivLU.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/compile_snippet.cpp.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/tut_arithmetic_redux_minmax.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/tut_arithmetic_transpose_aliasing.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/tut_arithmetic_transpose_conjugate.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/tut_arithmetic_transpose_inplace.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/snippets/tut_matrix_assignment_resizing.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/special_examples/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/special_examples/Tutorial_sparse_example.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/special_examples/Tutorial_sparse_example_details.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/doc/tutorial.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/eigen3.pc.in (50%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/block_nonconst_ctor_on_const_xpr_0.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/block_nonconst_ctor_on_const_xpr_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/block_nonconst_ctor_on_const_xpr_2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/block_on_const_type_actually_const_0.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/block_on_const_type_actually_const_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/colpivqr_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/const_qualified_block_method_retval_0.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/const_qualified_block_method_retval_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/const_qualified_diagonal_method_retval.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/const_qualified_transpose_method_retval.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/diagonal_on_const_type_actually_const.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/eigensolver_cplx.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/eigensolver_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/failtest_sanity_check.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/fullpivlu_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/fullpivqr_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/jacobisvd_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ldlt_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/llt_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_nonconst_ctor_on_const_ptr_0.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_nonconst_ctor_on_const_ptr_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_nonconst_ctor_on_const_ptr_2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_nonconst_ctor_on_const_ptr_3.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_nonconst_ctor_on_const_ptr_4.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_on_const_type_actually_const_0.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/map_on_const_type_actually_const_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/partialpivlu_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/qr_int.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ref_1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ref_2.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ref_3.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ref_4.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/ref_5.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/transpose_nonconst_ctor_on_const_xpr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/failtest/transpose_on_const_type_actually_const.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/cholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/clacgv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/cladiv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/clarf.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/clarfb.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/clarfg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/clarft.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/complex_double.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/complex_single.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dladiv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlamch.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlapy2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlapy3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlarf.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlarfb.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlarfg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dlarft.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/double.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/dsecnd_NONE.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/eigenvalues.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilaclc.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilaclr.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/iladlc.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/iladlr.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilaslc.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilaslr.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilazlc.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/ilazlr.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/lapack_common.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/lu.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/second_NONE.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/single.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/sladiv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slamch.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slapy2.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slapy3.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slarf.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slarfb.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slarfg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/slarft.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zlacgv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zladiv.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zlarf.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zlarfb.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zlarfg.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/lapack/zlarft.f (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/buildtests.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/cdashtesting.cmake.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/check.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/debug.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/eigen_gen_credits.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/eigen_gen_docs (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/release.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/scripts/relicense.py (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/signature_of_eigen3_matrix_library (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/CMakeLists.txt (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/adjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/array.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/array_for_matrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/array_replicate.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/array_reverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/bandmatrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/basicstuff.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/bicgstab.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/block.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/cholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/cholmod_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/commainitializer.cpp (99%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/conjugate_gradient.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/conservative_resize.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/corners.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/cwiseop.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/denseLM.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/determinant.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/diagonal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/diagonalmatrices.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/dontalign.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/dynalloc.cpp (83%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_adjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_alignedbox.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_array.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_basicstuff.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_bug_132.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_cholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_commainitializer.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_cwiseop.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_determinant.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_dynalloc.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_eigensolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_first_aligned.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_geometry.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_hyperplane.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_inverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_linearstructure.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_lu.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_map.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_meta.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_miscmatrices.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_mixingtypes.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_newstdvector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_nomalloc.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_packetmath.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_parametrizedline.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_prec_inverse_4x4.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_product_large.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_product_small.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_qr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_qtvector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_regression.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sizeof.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_smallvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sparse_basic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sparse_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sparse_solvers.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sparse_vector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_stdvector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_submatrices.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_sum.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_svd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_swap.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_triangular.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_unalignedassert.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/eigen2_visitor.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/gsl_helper.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/main.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/product.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/runtest.sh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/sparse.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2/testsuite.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigen2support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigensolver_complex.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigensolver_generalized_real.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigensolver_generic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/eigensolver_selfadjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/exceptions.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/first_aligned.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_alignedbox.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_eulerangles.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_homogeneous.cpp (96%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_hyperplane.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_orthomethods.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_parametrizedline.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_quaternion.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/geo_transformations.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/hessenberg.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/householder.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/integer_types.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/inverse.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/jacobi.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/jacobisvd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/linearstructure.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/lu.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/main.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/mapped_matrix.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/mapstaticmethods.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/mapstride.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/meta.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/metis_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/miscmatrices.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/mixingtypes.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/mpl2only.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/nesting_ops.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/nomalloc.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/nullary.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/packetmath.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/pardiso_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/pastix_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/permutationmatrices.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/prec_inverse_4x4.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product.h (72%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_extra.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_large.cpp (81%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_mmtr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_notemporary.cpp (92%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_selfadjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_small.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_symm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_syrk.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_trmm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_trmv.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/product_trsolve.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/qr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/qr_colpivoting.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/qr_fullpivoting.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/qtvector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/real_qz.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/redux.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/ref.cpp (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/resize.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/runtest.sh (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/rvalue_types.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/schur_complex.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/schur_real.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/selfadjoint.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/simplicial_cholesky.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sizeof.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sizeoverflow.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/smallvectors.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparseLM.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_basic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_permutations.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_solver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_solvers.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparse_vector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparselu.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/sparseqr.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/special_numbers.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/spqr_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/stable_norm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/stddeque.cpp (100%) create mode 100644 ext/eigen-3.2.9/test/stddeque_overload.cpp rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/stdlist.cpp (100%) create mode 100644 ext/eigen-3.2.9/test/stdlist_overload.cpp rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/stdvector.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/stdvector_overload.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/superlu_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/swap.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/testsuite.cmake (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/triangular.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/umeyama.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/umfpack_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/unalignedassert.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/unalignedcount.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/upperbidiagonalization.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/vectorization_logic.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/vectorwiseop.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/visitor.cpp (95%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/test/zerosized.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/AdolcForward (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/AlignedVector3 (97%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/ArpackSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/AutoDiff (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/BVH (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/FFT (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/IterativeSolvers (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/KroneckerProduct (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/LevenbergMarquardt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/MPRealSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/MatrixFunctions (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/MoreVectorization (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/NonLinearOptimization (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/NumericalDiff (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/OpenGLSupport (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/Polynomials (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/SVD (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/Skyline (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/SparseExtra (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/Splines (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/AutoDiff/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/BVH/BVAlgorithms.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/BVH/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/BVH/KdBVH.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/FFT/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/FFT/ei_fftw_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/FFT/ei_kissfft_impl.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/DGMRES.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/GMRES.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/IterationController.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/MINRES.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/IterativeSolvers/Scaling.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h (98%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MatrixFunctions/StemFunction.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/MoreVectorization/MathFunctions.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/chkder.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/covar.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/dogleg.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/lmpar.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/r1updt.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Polynomials/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Polynomials/Companion.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Polynomials/PolynomialSolver.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Polynomials/PolynomialUtils.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/BDCSVD.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/JacobiSVD.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/SVDBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/TODOBdcsvd.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SVD/doneInBDCSVD.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineProduct.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineStorage.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Skyline/SkylineUtil.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/MarketIO.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/SparseExtra/RandomSetter.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Splines/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Splines/Spline.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Splines/SplineFitting.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/Eigen/src/Splines/SplineFwd.h (88%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/README.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/bench/bench_svd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/Overview.dox (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/eigendoxy_layout.xml.in (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/BVH_Example.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/FFT.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixExponential.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixFunction.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixLogarithm.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixPower.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixPower_optimal.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixSine.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixSinh.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/MatrixSquareRoot.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/PolynomialSolver1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/examples/PolynomialUtils1.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/doc/snippets/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/BVH.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/CMakeLists.txt (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/FFT.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/FFTW.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/NonLinearOptimization.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/NumericalDiff.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/alignedvector3.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/autodiff.cpp (93%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/bdcsvd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/dgmres.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/forward_adolc.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/gmres.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/jacobisvd.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/kronecker_product.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/levenberg_marquardt.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/matrix_exponential.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/matrix_function.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/matrix_functions.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/matrix_power.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/matrix_square_root.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/minres.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/mpreal/mpreal.h (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/mpreal_support.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/openglsupport.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/polynomialsolver.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/polynomialutils.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/sparse_extra.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/splines.cpp (100%) rename ext/{eigen-3.2.7 => eigen-3.2.9}/unsupported/test/svd_common.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index ceaba92..b45d36b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(EXT_BOOST_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/boost_1_59_0) -set(EXT_EIGEN_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/eigen-3.2.7) +set(EXT_EIGEN_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/eigen-3.2.9) set(EXT_RAPIDJSON_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/rapidjson/include) set(EXT_TCLAP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/tclap-1.2.1/include) diff --git a/ext/eigen-3.2.7/.hg_archival.txt b/ext/eigen-3.2.9/.hg_archival.txt similarity index 50% rename from ext/eigen-3.2.7/.hg_archival.txt rename to ext/eigen-3.2.9/.hg_archival.txt index 8c88afc..cb4aba1 100644 --- a/ext/eigen-3.2.7/.hg_archival.txt +++ b/ext/eigen-3.2.9/.hg_archival.txt @@ -1,4 +1,4 @@ repo: 8a21fd850624c931e448cbcfb38168cb2717c790 -node: b30b87236a1b1552af32ac34075ee5696a9b5a33 +node: dc6cfdf9bcec5efc7b6593bddbbb3d675de53524 branch: 3.2 -tag: 3.2.7 +tag: 3.2.9 diff --git a/ext/eigen-3.2.7/.hgeol b/ext/eigen-3.2.9/.hgeol similarity index 100% rename from ext/eigen-3.2.7/.hgeol rename to ext/eigen-3.2.9/.hgeol diff --git a/ext/eigen-3.2.7/.hgignore b/ext/eigen-3.2.9/.hgignore similarity index 100% rename from ext/eigen-3.2.7/.hgignore rename to ext/eigen-3.2.9/.hgignore diff --git a/ext/eigen-3.2.7/.hgtags b/ext/eigen-3.2.9/.hgtags similarity index 94% rename from ext/eigen-3.2.7/.hgtags rename to ext/eigen-3.2.9/.hgtags index c4ccd33..0178a26 100644 --- a/ext/eigen-3.2.7/.hgtags +++ b/ext/eigen-3.2.9/.hgtags @@ -30,3 +30,5 @@ ffa86ffb557094721ca71dcea6aed2651b9fd610 3.2.0 10219c95fe653d4962aa9db4946f6fbea96dd740 3.2.4 bdd17ee3b1b3a166cd5ec36dcad4fc1f3faf774a 3.2.5 c58038c56923e0fd86de3ded18e03df442e66dfb 3.2.6 +b30b87236a1b1552af32ac34075ee5696a9b5a33 3.2.7 +07105f7124f9aef00a68c85e0fc606e65d3d6c15 3.2.8 diff --git a/ext/eigen-3.2.7/CMakeLists.txt b/ext/eigen-3.2.9/CMakeLists.txt similarity index 88% rename from ext/eigen-3.2.7/CMakeLists.txt rename to ext/eigen-3.2.9/CMakeLists.txt index ed3e67f..77e9f2d 100644 --- a/ext/eigen-3.2.7/CMakeLists.txt +++ b/ext/eigen-3.2.9/CMakeLists.txt @@ -1,6 +1,5 @@ project(Eigen) - -cmake_minimum_required(VERSION 2.8.2) +cmake_minimum_required(VERSION 2.8.5) # guard against in-source builds @@ -55,6 +54,7 @@ endif(EIGEN_HG_CHANGESET) include(CheckCXXCompilerFlag) +include(GNUInstallDirs) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) @@ -288,25 +288,26 @@ option(EIGEN_TEST_C++0x "Enables all C++0x features." OFF) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -# the user modifiable install path for header files -set(EIGEN_INCLUDE_INSTALL_DIR ${EIGEN_INCLUDE_INSTALL_DIR} CACHE PATH "The directory where we install the header files (optional)") - -# set the internal install path for header files which depends on wether the user modifiable -# EIGEN_INCLUDE_INSTALL_DIR has been set by the user or not. -if(EIGEN_INCLUDE_INSTALL_DIR) - set(INCLUDE_INSTALL_DIR - ${EIGEN_INCLUDE_INSTALL_DIR} - CACHE INTERNAL - "The directory where we install the header files (internal)" - ) +# Backward compatibility support for EIGEN_INCLUDE_INSTALL_DIR +if(EIGEN_INCLUDE_INSTALL_DIR AND NOT INCLUDE_INSTALL_DIR) + set(INCLUDE_INSTALL_DIR ${EIGEN_INCLUDE_INSTALL_DIR} + CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed") else() set(INCLUDE_INSTALL_DIR - "include/eigen3" - CACHE INTERNAL - "The directory where we install the header files (internal)" - ) + "${CMAKE_INSTALL_INCLUDEDIR}/eigen3" + CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed" + ) endif() +set(CMAKEPACKAGE_INSTALL_DIR + "${CMAKE_INSTALL_LIBDIR}/cmake/eigen3" + CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen3Config.cmake is installed" + ) +set(PKGCONFIG_INSTALL_DIR + "${CMAKE_INSTALL_DATADIR}/pkgconfig" + CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where eigen3.pc is installed" + ) + # similar to set_target_properties but append the property instead of overwriting it macro(ei_add_target_property target prop value) @@ -324,21 +325,9 @@ install(FILES ) if(EIGEN_BUILD_PKGCONFIG) - SET(path_separator ":") - STRING(REPLACE ${path_separator} ";" pkg_config_libdir_search "$ENV{PKG_CONFIG_LIBDIR}") - message(STATUS "searching for 'pkgconfig' directory in PKG_CONFIG_LIBDIR ( $ENV{PKG_CONFIG_LIBDIR} ), ${CMAKE_INSTALL_PREFIX}/share, and ${CMAKE_INSTALL_PREFIX}/lib") - FIND_PATH(pkg_config_libdir pkgconfig ${pkg_config_libdir_search} ${CMAKE_INSTALL_PREFIX}/share ${CMAKE_INSTALL_PREFIX}/lib ${pkg_config_libdir_search}) - if(pkg_config_libdir) - SET(pkg_config_install_dir ${pkg_config_libdir}) - message(STATUS "found ${pkg_config_libdir}/pkgconfig" ) - else(pkg_config_libdir) - SET(pkg_config_install_dir ${CMAKE_INSTALL_PREFIX}/share) - message(STATUS "pkgconfig not found; installing in ${pkg_config_install_dir}" ) - endif(pkg_config_libdir) - - configure_file(eigen3.pc.in eigen3.pc) + configure_file(eigen3.pc.in eigen3.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc - DESTINATION ${pkg_config_install_dir}/pkgconfig + DESTINATION ${PKGCONFIG_INSTALL_DIR} ) endif(EIGEN_BUILD_PKGCONFIG) @@ -401,12 +390,15 @@ if(cmake_generator_tolower MATCHES "makefile") message(STATUS "--------------+--------------------------------------------------------------") message(STATUS "Command | Description") message(STATUS "--------------+--------------------------------------------------------------") - message(STATUS "make install | Install to ${CMAKE_INSTALL_PREFIX}. To change that:") - message(STATUS " | cmake . -DCMAKE_INSTALL_PREFIX=yourpath") - message(STATUS " | Eigen headers will then be installed to:") - message(STATUS " | ${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}") - message(STATUS " | To install Eigen headers to a separate location, do:") - message(STATUS " | cmake . -DEIGEN_INCLUDE_INSTALL_DIR=yourpath") + message(STATUS "make install | Install Eigen. Headers will be installed to:") + message(STATUS " | /") + message(STATUS " | Using the following values:") + message(STATUS " | CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") + message(STATUS " | INCLUDE_INSTALL_DIR: ${INCLUDE_INSTALL_DIR}") + message(STATUS " | Change the install location of Eigen headers using:") + message(STATUS " | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix") + message(STATUS " | Or:") + message(STATUS " | cmake . -DINCLUDE_INSTALL_DIR=yourdir") message(STATUS "make doc | Generate the API documentation, requires Doxygen & LaTeX") message(STATUS "make check | Build and run the unit-tests. Read this page:") message(STATUS " | http://eigen.tuxfamily.org/index.php?title=Tests") diff --git a/ext/eigen-3.2.7/COPYING.BSD b/ext/eigen-3.2.9/COPYING.BSD similarity index 100% rename from ext/eigen-3.2.7/COPYING.BSD rename to ext/eigen-3.2.9/COPYING.BSD diff --git a/ext/eigen-3.2.7/COPYING.GPL b/ext/eigen-3.2.9/COPYING.GPL similarity index 100% rename from ext/eigen-3.2.7/COPYING.GPL rename to ext/eigen-3.2.9/COPYING.GPL diff --git a/ext/eigen-3.2.7/COPYING.LGPL b/ext/eigen-3.2.9/COPYING.LGPL similarity index 100% rename from ext/eigen-3.2.7/COPYING.LGPL rename to ext/eigen-3.2.9/COPYING.LGPL diff --git a/ext/eigen-3.2.7/COPYING.MINPACK b/ext/eigen-3.2.9/COPYING.MINPACK similarity index 100% rename from ext/eigen-3.2.7/COPYING.MINPACK rename to ext/eigen-3.2.9/COPYING.MINPACK diff --git a/ext/eigen-3.2.7/COPYING.MPL2 b/ext/eigen-3.2.9/COPYING.MPL2 similarity index 100% rename from ext/eigen-3.2.7/COPYING.MPL2 rename to ext/eigen-3.2.9/COPYING.MPL2 diff --git a/ext/eigen-3.2.7/COPYING.README b/ext/eigen-3.2.9/COPYING.README similarity index 100% rename from ext/eigen-3.2.7/COPYING.README rename to ext/eigen-3.2.9/COPYING.README diff --git a/ext/eigen-3.2.7/CTestConfig.cmake b/ext/eigen-3.2.9/CTestConfig.cmake similarity index 100% rename from ext/eigen-3.2.7/CTestConfig.cmake rename to ext/eigen-3.2.9/CTestConfig.cmake diff --git a/ext/eigen-3.2.7/CTestCustom.cmake.in b/ext/eigen-3.2.9/CTestCustom.cmake.in similarity index 100% rename from ext/eigen-3.2.7/CTestCustom.cmake.in rename to ext/eigen-3.2.9/CTestCustom.cmake.in diff --git a/ext/eigen-3.2.7/Eigen/Array b/ext/eigen-3.2.9/Eigen/Array similarity index 100% rename from ext/eigen-3.2.7/Eigen/Array rename to ext/eigen-3.2.9/Eigen/Array diff --git a/ext/eigen-3.2.7/Eigen/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/Cholesky b/ext/eigen-3.2.9/Eigen/Cholesky similarity index 100% rename from ext/eigen-3.2.7/Eigen/Cholesky rename to ext/eigen-3.2.9/Eigen/Cholesky diff --git a/ext/eigen-3.2.7/Eigen/CholmodSupport b/ext/eigen-3.2.9/Eigen/CholmodSupport similarity index 93% rename from ext/eigen-3.2.7/Eigen/CholmodSupport rename to ext/eigen-3.2.9/Eigen/CholmodSupport index 745b884..88c29a6 100644 --- a/ext/eigen-3.2.7/Eigen/CholmodSupport +++ b/ext/eigen-3.2.9/Eigen/CholmodSupport @@ -12,7 +12,7 @@ extern "C" { /** \ingroup Support_modules * \defgroup CholmodSupport_Module CholmodSupport module * - * This module provides an interface to the Cholmod library which is part of the suitesparse package. + * This module provides an interface to the Cholmod library which is part of the suitesparse package. * It provides the two following main factorization classes: * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization. * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial). diff --git a/ext/eigen-3.2.7/Eigen/Core b/ext/eigen-3.2.9/Eigen/Core similarity index 100% rename from ext/eigen-3.2.7/Eigen/Core rename to ext/eigen-3.2.9/Eigen/Core diff --git a/ext/eigen-3.2.7/Eigen/Dense b/ext/eigen-3.2.9/Eigen/Dense similarity index 100% rename from ext/eigen-3.2.7/Eigen/Dense rename to ext/eigen-3.2.9/Eigen/Dense diff --git a/ext/eigen-3.2.7/Eigen/Eigen b/ext/eigen-3.2.9/Eigen/Eigen similarity index 100% rename from ext/eigen-3.2.7/Eigen/Eigen rename to ext/eigen-3.2.9/Eigen/Eigen diff --git a/ext/eigen-3.2.7/Eigen/Eigen2Support b/ext/eigen-3.2.9/Eigen/Eigen2Support similarity index 100% rename from ext/eigen-3.2.7/Eigen/Eigen2Support rename to ext/eigen-3.2.9/Eigen/Eigen2Support diff --git a/ext/eigen-3.2.7/Eigen/Eigenvalues b/ext/eigen-3.2.9/Eigen/Eigenvalues similarity index 100% rename from ext/eigen-3.2.7/Eigen/Eigenvalues rename to ext/eigen-3.2.9/Eigen/Eigenvalues diff --git a/ext/eigen-3.2.7/Eigen/Geometry b/ext/eigen-3.2.9/Eigen/Geometry similarity index 100% rename from ext/eigen-3.2.7/Eigen/Geometry rename to ext/eigen-3.2.9/Eigen/Geometry diff --git a/ext/eigen-3.2.7/Eigen/Householder b/ext/eigen-3.2.9/Eigen/Householder similarity index 100% rename from ext/eigen-3.2.7/Eigen/Householder rename to ext/eigen-3.2.9/Eigen/Householder diff --git a/ext/eigen-3.2.7/Eigen/IterativeLinearSolvers b/ext/eigen-3.2.9/Eigen/IterativeLinearSolvers similarity index 100% rename from ext/eigen-3.2.7/Eigen/IterativeLinearSolvers rename to ext/eigen-3.2.9/Eigen/IterativeLinearSolvers diff --git a/ext/eigen-3.2.7/Eigen/Jacobi b/ext/eigen-3.2.9/Eigen/Jacobi similarity index 100% rename from ext/eigen-3.2.7/Eigen/Jacobi rename to ext/eigen-3.2.9/Eigen/Jacobi diff --git a/ext/eigen-3.2.7/Eigen/LU b/ext/eigen-3.2.9/Eigen/LU similarity index 100% rename from ext/eigen-3.2.7/Eigen/LU rename to ext/eigen-3.2.9/Eigen/LU diff --git a/ext/eigen-3.2.7/Eigen/LeastSquares b/ext/eigen-3.2.9/Eigen/LeastSquares similarity index 100% rename from ext/eigen-3.2.7/Eigen/LeastSquares rename to ext/eigen-3.2.9/Eigen/LeastSquares diff --git a/ext/eigen-3.2.7/Eigen/MetisSupport b/ext/eigen-3.2.9/Eigen/MetisSupport similarity index 100% rename from ext/eigen-3.2.7/Eigen/MetisSupport rename to ext/eigen-3.2.9/Eigen/MetisSupport diff --git a/ext/eigen-3.2.7/Eigen/OrderingMethods b/ext/eigen-3.2.9/Eigen/OrderingMethods similarity index 100% rename from ext/eigen-3.2.7/Eigen/OrderingMethods rename to ext/eigen-3.2.9/Eigen/OrderingMethods diff --git a/ext/eigen-3.2.7/Eigen/PaStiXSupport b/ext/eigen-3.2.9/Eigen/PaStiXSupport similarity index 100% rename from ext/eigen-3.2.7/Eigen/PaStiXSupport rename to ext/eigen-3.2.9/Eigen/PaStiXSupport diff --git a/ext/eigen-3.2.7/Eigen/PardisoSupport b/ext/eigen-3.2.9/Eigen/PardisoSupport similarity index 100% rename from ext/eigen-3.2.7/Eigen/PardisoSupport rename to ext/eigen-3.2.9/Eigen/PardisoSupport diff --git a/ext/eigen-3.2.7/Eigen/QR b/ext/eigen-3.2.9/Eigen/QR similarity index 100% rename from ext/eigen-3.2.7/Eigen/QR rename to ext/eigen-3.2.9/Eigen/QR diff --git a/ext/eigen-3.2.7/Eigen/QtAlignedMalloc b/ext/eigen-3.2.9/Eigen/QtAlignedMalloc similarity index 100% rename from ext/eigen-3.2.7/Eigen/QtAlignedMalloc rename to ext/eigen-3.2.9/Eigen/QtAlignedMalloc diff --git a/ext/eigen-3.2.7/Eigen/SPQRSupport b/ext/eigen-3.2.9/Eigen/SPQRSupport similarity index 89% rename from ext/eigen-3.2.7/Eigen/SPQRSupport rename to ext/eigen-3.2.9/Eigen/SPQRSupport index 7701644..7f1eb47 100644 --- a/ext/eigen-3.2.7/Eigen/SPQRSupport +++ b/ext/eigen-3.2.9/Eigen/SPQRSupport @@ -10,7 +10,7 @@ /** \ingroup Support_modules * \defgroup SPQRSupport_Module SuiteSparseQR module * - * This module provides an interface to the SPQR library, which is part of the suitesparse package. + * This module provides an interface to the SPQR library, which is part of the suitesparse package. * * \code * #include diff --git a/ext/eigen-3.2.7/Eigen/SVD b/ext/eigen-3.2.9/Eigen/SVD similarity index 100% rename from ext/eigen-3.2.7/Eigen/SVD rename to ext/eigen-3.2.9/Eigen/SVD diff --git a/ext/eigen-3.2.7/Eigen/Sparse b/ext/eigen-3.2.9/Eigen/Sparse similarity index 100% rename from ext/eigen-3.2.7/Eigen/Sparse rename to ext/eigen-3.2.9/Eigen/Sparse diff --git a/ext/eigen-3.2.7/Eigen/SparseCholesky b/ext/eigen-3.2.9/Eigen/SparseCholesky similarity index 100% rename from ext/eigen-3.2.7/Eigen/SparseCholesky rename to ext/eigen-3.2.9/Eigen/SparseCholesky diff --git a/ext/eigen-3.2.7/Eigen/SparseCore b/ext/eigen-3.2.9/Eigen/SparseCore similarity index 100% rename from ext/eigen-3.2.7/Eigen/SparseCore rename to ext/eigen-3.2.9/Eigen/SparseCore diff --git a/ext/eigen-3.2.7/Eigen/SparseLU b/ext/eigen-3.2.9/Eigen/SparseLU similarity index 100% rename from ext/eigen-3.2.7/Eigen/SparseLU rename to ext/eigen-3.2.9/Eigen/SparseLU diff --git a/ext/eigen-3.2.7/Eigen/SparseQR b/ext/eigen-3.2.9/Eigen/SparseQR similarity index 100% rename from ext/eigen-3.2.7/Eigen/SparseQR rename to ext/eigen-3.2.9/Eigen/SparseQR diff --git a/ext/eigen-3.2.7/Eigen/StdDeque b/ext/eigen-3.2.9/Eigen/StdDeque similarity index 100% rename from ext/eigen-3.2.7/Eigen/StdDeque rename to ext/eigen-3.2.9/Eigen/StdDeque diff --git a/ext/eigen-3.2.7/Eigen/StdList b/ext/eigen-3.2.9/Eigen/StdList similarity index 100% rename from ext/eigen-3.2.7/Eigen/StdList rename to ext/eigen-3.2.9/Eigen/StdList diff --git a/ext/eigen-3.2.7/Eigen/StdVector b/ext/eigen-3.2.9/Eigen/StdVector similarity index 100% rename from ext/eigen-3.2.7/Eigen/StdVector rename to ext/eigen-3.2.9/Eigen/StdVector diff --git a/ext/eigen-3.2.7/Eigen/SuperLUSupport b/ext/eigen-3.2.9/Eigen/SuperLUSupport similarity index 100% rename from ext/eigen-3.2.7/Eigen/SuperLUSupport rename to ext/eigen-3.2.9/Eigen/SuperLUSupport diff --git a/ext/eigen-3.2.7/Eigen/UmfPackSupport b/ext/eigen-3.2.9/Eigen/UmfPackSupport similarity index 90% rename from ext/eigen-3.2.7/Eigen/UmfPackSupport rename to ext/eigen-3.2.9/Eigen/UmfPackSupport index 984f64a..7b1b660 100644 --- a/ext/eigen-3.2.7/Eigen/UmfPackSupport +++ b/ext/eigen-3.2.9/Eigen/UmfPackSupport @@ -12,7 +12,7 @@ extern "C" { /** \ingroup Support_modules * \defgroup UmfPackSupport_Module UmfPackSupport module * - * This module provides an interface to the UmfPack library which is part of the suitesparse package. + * This module provides an interface to the UmfPack library which is part of the suitesparse package. * It provides the following factorization class: * - class UmfPackLU: a multifrontal sequential LU factorization. * diff --git a/ext/eigen-3.2.7/Eigen/src/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Cholesky/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Cholesky/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Cholesky/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Cholesky/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Cholesky/LDLT.h b/ext/eigen-3.2.9/Eigen/src/Cholesky/LDLT.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Cholesky/LDLT.h rename to ext/eigen-3.2.9/Eigen/src/Cholesky/LDLT.h diff --git a/ext/eigen-3.2.7/Eigen/src/Cholesky/LLT.h b/ext/eigen-3.2.9/Eigen/src/Cholesky/LLT.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Cholesky/LLT.h rename to ext/eigen-3.2.9/Eigen/src/Cholesky/LLT.h diff --git a/ext/eigen-3.2.7/Eigen/src/Cholesky/LLT_MKL.h b/ext/eigen-3.2.9/Eigen/src/Cholesky/LLT_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Cholesky/LLT_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Cholesky/LLT_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/CholmodSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/CholmodSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/CholmodSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/CholmodSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/CholmodSupport/CholmodSupport.h b/ext/eigen-3.2.9/Eigen/src/CholmodSupport/CholmodSupport.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/CholmodSupport/CholmodSupport.h rename to ext/eigen-3.2.9/Eigen/src/CholmodSupport/CholmodSupport.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Array.h b/ext/eigen-3.2.9/Eigen/src/Core/Array.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Array.h rename to ext/eigen-3.2.9/Eigen/src/Core/Array.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/ArrayBase.h b/ext/eigen-3.2.9/Eigen/src/Core/ArrayBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/ArrayBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/ArrayBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/ArrayWrapper.h b/ext/eigen-3.2.9/Eigen/src/Core/ArrayWrapper.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/ArrayWrapper.h rename to ext/eigen-3.2.9/Eigen/src/Core/ArrayWrapper.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Assign.h b/ext/eigen-3.2.9/Eigen/src/Core/Assign.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Assign.h rename to ext/eigen-3.2.9/Eigen/src/Core/Assign.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Assign_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/Assign_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Assign_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/Assign_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/BandMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/BandMatrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/BandMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/BandMatrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Block.h b/ext/eigen-3.2.9/Eigen/src/Core/Block.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Block.h rename to ext/eigen-3.2.9/Eigen/src/Core/Block.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/BooleanRedux.h b/ext/eigen-3.2.9/Eigen/src/Core/BooleanRedux.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/BooleanRedux.h rename to ext/eigen-3.2.9/Eigen/src/Core/BooleanRedux.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/CommaInitializer.h b/ext/eigen-3.2.9/Eigen/src/Core/CommaInitializer.h similarity index 97% rename from ext/eigen-3.2.7/Eigen/src/Core/CommaInitializer.h rename to ext/eigen-3.2.9/Eigen/src/Core/CommaInitializer.h index a036d8c..56ee38f 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/CommaInitializer.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/CommaInitializer.h @@ -76,8 +76,11 @@ struct CommaInitializer template CommaInitializer& operator,(const DenseBase& other) { - if(other.cols()==0 || other.rows()==0) + if(other.rows()==0) + { + m_col += other.cols(); return *this; + } if (m_col==m_xpr.cols()) { m_row+=m_currentBlockRows; @@ -86,7 +89,7 @@ struct CommaInitializer eigen_assert(m_row+m_currentBlockRows<=m_xpr.rows() && "Too many rows passed to comma initializer (operator<<)"); } - eigen_assert(m_col > typedef typename remove_all::type _MatrixTypeNested; enum { Flags = (traits<_MatrixTypeNested>::Flags & (HereditaryBits | LvalueBit | LinearAccessBit | DirectAccessBit)), - CoeffReadCost = traits<_MatrixTypeNested>::CoeffReadCost + functor_traits::Cost, + CoeffReadCost = EIGEN_ADD_COST(traits<_MatrixTypeNested>::CoeffReadCost, functor_traits::Cost), MatrixTypeInnerStride = inner_stride_at_compile_time::ret, // need to cast the sizeof's from size_t to int explicitly, otherwise: // "error: no integral type can represent all of the enumerator values diff --git a/ext/eigen-3.2.7/Eigen/src/Core/DenseBase.h b/ext/eigen-3.2.9/Eigen/src/Core/DenseBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/DenseBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/DenseBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/DenseCoeffsBase.h b/ext/eigen-3.2.9/Eigen/src/Core/DenseCoeffsBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/DenseCoeffsBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/DenseCoeffsBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/DenseStorage.h b/ext/eigen-3.2.9/Eigen/src/Core/DenseStorage.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/DenseStorage.h rename to ext/eigen-3.2.9/Eigen/src/Core/DenseStorage.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Diagonal.h b/ext/eigen-3.2.9/Eigen/src/Core/Diagonal.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Diagonal.h rename to ext/eigen-3.2.9/Eigen/src/Core/Diagonal.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/DiagonalMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/DiagonalMatrix.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/DiagonalMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/DiagonalMatrix.h index e6c220f..53c757b 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/DiagonalMatrix.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/DiagonalMatrix.h @@ -44,10 +44,10 @@ class DiagonalBase : public EigenBase template void evalTo(MatrixBase &other) const; template - void addTo(MatrixBase &other) const + inline void addTo(MatrixBase &other) const { other.diagonal() += diagonal(); } template - void subTo(MatrixBase &other) const + inline void subTo(MatrixBase &other) const { other.diagonal() -= diagonal(); } inline const DiagonalVectorType& diagonal() const { return derived().diagonal(); } @@ -98,7 +98,7 @@ class DiagonalBase : public EigenBase template template -void DiagonalBase::evalTo(MatrixBase &other) const +inline void DiagonalBase::evalTo(MatrixBase &other) const { other.setZero(); other.diagonal() = diagonal(); diff --git a/ext/eigen-3.2.7/Eigen/src/Core/DiagonalProduct.h b/ext/eigen-3.2.9/Eigen/src/Core/DiagonalProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/DiagonalProduct.h rename to ext/eigen-3.2.9/Eigen/src/Core/DiagonalProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Dot.h b/ext/eigen-3.2.9/Eigen/src/Core/Dot.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/Dot.h rename to ext/eigen-3.2.9/Eigen/src/Core/Dot.h index 9d7651f..23aab83 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/Dot.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/Dot.h @@ -59,7 +59,7 @@ struct dot_nocheck */ template template -typename internal::scalar_product_traits::Scalar,typename internal::traits::Scalar>::ReturnType +inline typename internal::scalar_product_traits::Scalar,typename internal::traits::Scalar>::ReturnType MatrixBase::dot(const MatrixBase& other) const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived) diff --git a/ext/eigen-3.2.7/Eigen/src/Core/EigenBase.h b/ext/eigen-3.2.9/Eigen/src/Core/EigenBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/EigenBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/EigenBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Flagged.h b/ext/eigen-3.2.9/Eigen/src/Core/Flagged.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Flagged.h rename to ext/eigen-3.2.9/Eigen/src/Core/Flagged.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/ForceAlignedAccess.h b/ext/eigen-3.2.9/Eigen/src/Core/ForceAlignedAccess.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/ForceAlignedAccess.h rename to ext/eigen-3.2.9/Eigen/src/Core/ForceAlignedAccess.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Functors.h b/ext/eigen-3.2.9/Eigen/src/Core/Functors.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Functors.h rename to ext/eigen-3.2.9/Eigen/src/Core/Functors.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Fuzzy.h b/ext/eigen-3.2.9/Eigen/src/Core/Fuzzy.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Fuzzy.h rename to ext/eigen-3.2.9/Eigen/src/Core/Fuzzy.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/GeneralProduct.h b/ext/eigen-3.2.9/Eigen/src/Core/GeneralProduct.h similarity index 97% rename from ext/eigen-3.2.7/Eigen/src/Core/GeneralProduct.h rename to ext/eigen-3.2.9/Eigen/src/Core/GeneralProduct.h index 0eae529..5744eb7 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/GeneralProduct.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/GeneralProduct.h @@ -205,9 +205,6 @@ class GeneralProduct public: GeneralProduct(const Lhs& lhs, const Rhs& rhs) { - EIGEN_STATIC_ASSERT((internal::is_same::value), - YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY) - Base::coeffRef(0,0) = (lhs.transpose().cwiseProduct(rhs)).sum(); } @@ -264,8 +261,6 @@ class GeneralProduct GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) { - EIGEN_STATIC_ASSERT((internal::is_same::value), - YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY) } struct set { template void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() = src; } }; @@ -425,15 +420,18 @@ template<> struct gemv_selector ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs()) * RhsBlasTraits::extractScalarFactor(prod.rhs()); + // make sure Dest is a compile-time vector type (bug 1166) + typedef typename conditional::type ActualDest; + enum { // FIXME find a way to allow an inner stride on the result if packet_traits::size==1 // on, the other hand it is good for the cache to pack the vector anyways... - EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1, + EvalToDestAtCompileTime = (ActualDest::InnerStrideAtCompileTime==1), ComplexByReal = (NumTraits::IsComplex) && (!NumTraits::IsComplex), - MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal + MightCannotUseDest = (ActualDest::InnerStrideAtCompileTime!=1) || ComplexByReal }; - gemv_static_vector_if static_dest; + gemv_static_vector_if static_dest; bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0)); bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible; @@ -522,7 +520,7 @@ template<> struct gemv_selector actualLhs.rows(), actualLhs.cols(), actualLhs.data(), actualLhs.outerStride(), actualRhsPtr, 1, - dest.data(), dest.innerStride(), + dest.data(), dest.col(0).innerStride(), //NOTE if dest is not a vector at compile-time, then dest.innerStride() might be wrong. (bug 1166) actualAlpha); } }; diff --git a/ext/eigen-3.2.7/Eigen/src/Core/GenericPacketMath.h b/ext/eigen-3.2.9/Eigen/src/Core/GenericPacketMath.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/GenericPacketMath.h rename to ext/eigen-3.2.9/Eigen/src/Core/GenericPacketMath.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/GlobalFunctions.h b/ext/eigen-3.2.9/Eigen/src/Core/GlobalFunctions.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/GlobalFunctions.h rename to ext/eigen-3.2.9/Eigen/src/Core/GlobalFunctions.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/IO.h b/ext/eigen-3.2.9/Eigen/src/Core/IO.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/IO.h rename to ext/eigen-3.2.9/Eigen/src/Core/IO.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Map.h b/ext/eigen-3.2.9/Eigen/src/Core/Map.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Map.h rename to ext/eigen-3.2.9/Eigen/src/Core/Map.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/MapBase.h b/ext/eigen-3.2.9/Eigen/src/Core/MapBase.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Core/MapBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/MapBase.h index a9828f7..81efc4a 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/MapBase.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/MapBase.h @@ -149,6 +149,10 @@ template class MapBase checkSanity(); } + #ifdef EIGEN_MAPBASE_PLUGIN + #include EIGEN_MAPBASE_PLUGIN + #endif + protected: void checkSanity() const diff --git a/ext/eigen-3.2.7/Eigen/src/Core/MathFunctions.h b/ext/eigen-3.2.9/Eigen/src/Core/MathFunctions.h similarity index 96% rename from ext/eigen-3.2.7/Eigen/src/Core/MathFunctions.h rename to ext/eigen-3.2.9/Eigen/src/Core/MathFunctions.h index adf2f9c..dc2c698 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/MathFunctions.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/MathFunctions.h @@ -218,8 +218,8 @@ struct conj_retval * Implementation of abs2 * ****************************************************************************/ -template -struct abs2_impl +template +struct abs2_impl_default { typedef typename NumTraits::Real RealScalar; static inline RealScalar run(const Scalar& x) @@ -228,15 +228,26 @@ struct abs2_impl } }; -template -struct abs2_impl > +template +struct abs2_impl_default // IsComplex { - static inline RealScalar run(const std::complex& x) + typedef typename NumTraits::Real RealScalar; + static inline RealScalar run(const Scalar& x) { return real(x)*real(x) + imag(x)*imag(x); } }; +template +struct abs2_impl +{ + typedef typename NumTraits::Real RealScalar; + static inline RealScalar run(const Scalar& x) + { + return abs2_impl_default::IsComplex>::run(x); + } +}; + template struct abs2_retval { @@ -707,21 +718,21 @@ struct scalar_fuzzy_impl : scalar_fuzzy_default_impl:: template inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, - typename NumTraits::Real precision = NumTraits::dummy_precision()) + const typename NumTraits::Real &precision = NumTraits::dummy_precision()) { return scalar_fuzzy_impl::template isMuchSmallerThan(x, y, precision); } template inline bool isApprox(const Scalar& x, const Scalar& y, - typename NumTraits::Real precision = NumTraits::dummy_precision()) + const typename NumTraits::Real &precision = NumTraits::dummy_precision()) { return scalar_fuzzy_impl::isApprox(x, y, precision); } template inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, - typename NumTraits::Real precision = NumTraits::dummy_precision()) + const typename NumTraits::Real &precision = NumTraits::dummy_precision()) { return scalar_fuzzy_impl::isApproxOrLessThan(x, y, precision); } diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Matrix.h b/ext/eigen-3.2.9/Eigen/src/Core/Matrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Matrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/Matrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/MatrixBase.h b/ext/eigen-3.2.9/Eigen/src/Core/MatrixBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/MatrixBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/MatrixBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/NestByValue.h b/ext/eigen-3.2.9/Eigen/src/Core/NestByValue.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/NestByValue.h rename to ext/eigen-3.2.9/Eigen/src/Core/NestByValue.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/NoAlias.h b/ext/eigen-3.2.9/Eigen/src/Core/NoAlias.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/NoAlias.h rename to ext/eigen-3.2.9/Eigen/src/Core/NoAlias.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/NumTraits.h b/ext/eigen-3.2.9/Eigen/src/Core/NumTraits.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/NumTraits.h rename to ext/eigen-3.2.9/Eigen/src/Core/NumTraits.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/PermutationMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/PermutationMatrix.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Core/PermutationMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/PermutationMatrix.h index 85ffae2..bda79fa 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/PermutationMatrix.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/PermutationMatrix.h @@ -584,10 +584,11 @@ struct permut_matrix_product_retval const Index n = Side==OnTheLeft ? rows() : cols(); // FIXME we need an is_same for expression that is not sensitive to constness. For instance // is_same_xpr, Block >::value should be true. + const typename Dest::Scalar *dst_data = internal::extract_data(dst); if( is_same::value && blas_traits::HasUsableDirectAccess && blas_traits::HasUsableDirectAccess - && extract_data(dst) == extract_data(m_matrix)) + && dst_data!=0 && dst_data == extract_data(m_matrix)) { // apply the permutation inplace Matrix mask(m_permutation.size()); diff --git a/ext/eigen-3.2.7/Eigen/src/Core/PlainObjectBase.h b/ext/eigen-3.2.9/Eigen/src/Core/PlainObjectBase.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Core/PlainObjectBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/PlainObjectBase.h index a4e4af4..9f71956 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/PlainObjectBase.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/PlainObjectBase.h @@ -315,8 +315,8 @@ class PlainObjectBase : public internal::dense_xpr_base::type EIGEN_STRONG_INLINE void resizeLike(const EigenBase& _other) { const OtherDerived& other = _other.derived(); - internal::check_rows_cols_for_overflow::run(other.rows(), other.cols()); - const Index othersize = other.rows()*other.cols(); + internal::check_rows_cols_for_overflow::run(Index(other.rows()), Index(other.cols())); + const Index othersize = Index(other.rows())*Index(other.cols()); if(RowsAtCompileTime == 1) { eigen_assert(other.rows() == 1 || other.cols() == 1); @@ -487,7 +487,7 @@ class PlainObjectBase : public internal::dense_xpr_base::type /** \sa MatrixBase::operator=(const EigenBase&) */ template EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase &other) - : m_storage(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols()) + : m_storage(Index(other.derived().rows()) * Index(other.derived().cols()), other.derived().rows(), other.derived().cols()) { _check_template_params(); internal::check_rows_cols_for_overflow::run(other.derived().rows(), other.derived().cols()); diff --git a/ext/eigen-3.2.7/Eigen/src/Core/ProductBase.h b/ext/eigen-3.2.9/Eigen/src/Core/ProductBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/ProductBase.h rename to ext/eigen-3.2.9/Eigen/src/Core/ProductBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Random.h b/ext/eigen-3.2.9/Eigen/src/Core/Random.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Random.h rename to ext/eigen-3.2.9/Eigen/src/Core/Random.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Redux.h b/ext/eigen-3.2.9/Eigen/src/Core/Redux.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Redux.h rename to ext/eigen-3.2.9/Eigen/src/Core/Redux.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Ref.h b/ext/eigen-3.2.9/Eigen/src/Core/Ref.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Ref.h rename to ext/eigen-3.2.9/Eigen/src/Core/Ref.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Replicate.h b/ext/eigen-3.2.9/Eigen/src/Core/Replicate.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Replicate.h rename to ext/eigen-3.2.9/Eigen/src/Core/Replicate.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/ReturnByValue.h b/ext/eigen-3.2.9/Eigen/src/Core/ReturnByValue.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/ReturnByValue.h rename to ext/eigen-3.2.9/Eigen/src/Core/ReturnByValue.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Reverse.h b/ext/eigen-3.2.9/Eigen/src/Core/Reverse.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Reverse.h rename to ext/eigen-3.2.9/Eigen/src/Core/Reverse.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Select.h b/ext/eigen-3.2.9/Eigen/src/Core/Select.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Select.h rename to ext/eigen-3.2.9/Eigen/src/Core/Select.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/SelfAdjointView.h b/ext/eigen-3.2.9/Eigen/src/Core/SelfAdjointView.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/SelfAdjointView.h rename to ext/eigen-3.2.9/Eigen/src/Core/SelfAdjointView.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/SelfCwiseBinaryOp.h b/ext/eigen-3.2.9/Eigen/src/Core/SelfCwiseBinaryOp.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/SelfCwiseBinaryOp.h rename to ext/eigen-3.2.9/Eigen/src/Core/SelfCwiseBinaryOp.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/SolveTriangular.h b/ext/eigen-3.2.9/Eigen/src/Core/SolveTriangular.h similarity index 95% rename from ext/eigen-3.2.7/Eigen/src/Core/SolveTriangular.h rename to ext/eigen-3.2.9/Eigen/src/Core/SolveTriangular.h index ef17f28..30c9c38 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/SolveTriangular.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/SolveTriangular.h @@ -116,17 +116,17 @@ template struct triangular_solver_unroller { enum { IsLower = ((Mode&Lower)==Lower), - I = IsLower ? Index : Size - Index - 1, - S = IsLower ? 0 : I+1 + RowIndex = IsLower ? Index : Size - Index - 1, + S = IsLower ? 0 : RowIndex+1 }; static void run(const Lhs& lhs, Rhs& rhs) { if (Index>0) - rhs.coeffRef(I) -= lhs.row(I).template segment(S).transpose() + rhs.coeffRef(RowIndex) -= lhs.row(RowIndex).template segment(S).transpose() .cwiseProduct(rhs.template segment(S)).sum(); if(!(Mode & UnitDiag)) - rhs.coeffRef(I) /= lhs.coeff(I,I); + rhs.coeffRef(RowIndex) /= lhs.coeff(RowIndex,RowIndex); triangular_solver_unroller::run(lhs,rhs); } @@ -243,7 +243,8 @@ template struct triangular_solv template inline void evalTo(Dest& dst) const { - if(!(is_same::value && extract_data(dst) == extract_data(m_rhs))) + const typename Dest::Scalar *dst_data = internal::extract_data(dst); + if(!(is_same::value && dst_data!=0 && extract_data(dst) == extract_data(m_rhs))) dst = m_rhs; m_triangularMatrix.template solveInPlace(dst); } diff --git a/ext/eigen-3.2.7/Eigen/src/Core/StableNorm.h b/ext/eigen-3.2.9/Eigen/src/Core/StableNorm.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/StableNorm.h rename to ext/eigen-3.2.9/Eigen/src/Core/StableNorm.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Stride.h b/ext/eigen-3.2.9/Eigen/src/Core/Stride.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Stride.h rename to ext/eigen-3.2.9/Eigen/src/Core/Stride.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Swap.h b/ext/eigen-3.2.9/Eigen/src/Core/Swap.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/Swap.h rename to ext/eigen-3.2.9/Eigen/src/Core/Swap.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Transpose.h b/ext/eigen-3.2.9/Eigen/src/Core/Transpose.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/Transpose.h rename to ext/eigen-3.2.9/Eigen/src/Core/Transpose.h index 22096ea..2abce3c 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/Transpose.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/Transpose.h @@ -331,11 +331,11 @@ inline void MatrixBase::adjointInPlace() namespace internal { -template -struct blas_traits > - : blas_traits +template +struct blas_traits > + : blas_traits::type> { - typedef SelfCwiseBinaryOp XprType; + typedef SelfCwiseBinaryOp XprType; static inline const XprType extract(const XprType& x) { return x; } }; @@ -392,7 +392,6 @@ struct checkTransposeAliasing_impl ::run(extract_data(dst), other)) && "aliasing detected during transposition, use transposeInPlace() " "or evaluate the rhs into a temporary using .eval()"); - } }; diff --git a/ext/eigen-3.2.7/Eigen/src/Core/Transpositions.h b/ext/eigen-3.2.9/Eigen/src/Core/Transpositions.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/Transpositions.h rename to ext/eigen-3.2.9/Eigen/src/Core/Transpositions.h index e4ba075..16bc1ce 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/Transpositions.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/Transpositions.h @@ -376,7 +376,8 @@ struct transposition_matrix_product_retval const int size = m_transpositions.size(); Index j = 0; - if(!(is_same::value && extract_data(dst) == extract_data(m_matrix))) + const typename Dest::Scalar *dst_data = internal::extract_data(dst); + if(!(is_same::value && dst_data!=0 && dst_data == extract_data(m_matrix))) dst = m_matrix; for(int k=(Transposed?size-1:0) ; Transposed?k>=0:k template void DenseBase::visit(Visitor& visitor) const { + typedef typename internal::remove_all::type ThisNested; + typename Derived::Nested thisNested(derived()); + enum { unroll = SizeAtCompileTime != Dynamic && CoeffReadCost != Dynamic && (SizeAtCompileTime == 1 || internal::functor_traits::Cost != Dynamic) && SizeAtCompileTime * CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits::Cost <= EIGEN_UNROLLING_LIMIT }; - return internal::visitor_impl::run(derived(), visitor); + >::run(thisNested, visitor); } namespace internal { diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/Complex.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/Complex.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/Complex.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/Complex.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/PacketMath.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/PacketMath.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/AltiVec/PacketMath.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/AltiVec/PacketMath.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/arch/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/arch/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/Default/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/arch/Default/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/Default/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/arch/Default/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/Default/Settings.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/Default/Settings.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/Default/Settings.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/Default/Settings.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/Complex.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/Complex.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/Complex.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/Complex.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/PacketMath.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/PacketMath.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/NEON/PacketMath.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/NEON/PacketMath.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/Complex.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/Complex.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/Complex.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/Complex.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/MathFunctions.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/MathFunctions.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/MathFunctions.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/MathFunctions.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/PacketMath.h b/ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/PacketMath.h similarity index 93% rename from ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/PacketMath.h rename to ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/PacketMath.h index fc8ae50..bef898b 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/arch/SSE/PacketMath.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/arch/SSE/PacketMath.h @@ -235,63 +235,27 @@ template<> EIGEN_STRONG_INLINE Packet4i pload(const int* from) { E return _mm_loadu_ps(from); #endif } - template<> EIGEN_STRONG_INLINE Packet2d ploadu(const double* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm_loadu_pd(from); } - template<> EIGEN_STRONG_INLINE Packet4i ploadu(const int* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm_loadu_si128(reinterpret_cast(from)); } #else -// Fast unaligned loads. Note that here we cannot directly use intrinsics: this would -// require pointer casting to incompatible pointer types and leads to invalid code -// because of the strict aliasing rule. The "dummy" stuff are required to enforce -// a correct instruction dependency. -// TODO: do the same for MSVC (ICC is compatible) // NOTE: with the code below, MSVC's compiler crashes! -#if defined(__GNUC__) && defined(__i386__) - // bug 195: gcc/i386 emits weird x87 fldl/fstpl instructions for _mm_load_sd - #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 1 -#elif defined(__clang__) - // bug 201: Segfaults in __mm_loadh_pd with clang 2.8 - #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 1 -#else - #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 0 -#endif - template<> EIGEN_STRONG_INLINE Packet4f ploadu(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD -#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS return _mm_loadu_ps(from); -#else - __m128d res; - res = _mm_load_sd((const double*)(from)) ; - res = _mm_loadh_pd(res, (const double*)(from+2)) ; - return _mm_castpd_ps(res); -#endif } +#endif + template<> EIGEN_STRONG_INLINE Packet2d ploadu(const double* from) { EIGEN_DEBUG_UNALIGNED_LOAD -#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS return _mm_loadu_pd(from); -#else - __m128d res; - res = _mm_load_sd(from) ; - res = _mm_loadh_pd(res,from+1); - return res; -#endif } template<> EIGEN_STRONG_INLINE Packet4i ploadu(const int* from) { EIGEN_DEBUG_UNALIGNED_LOAD -#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS - return _mm_loadu_si128(reinterpret_cast(from)); -#else - __m128d res; - res = _mm_load_sd((const double*)(from)) ; - res = _mm_loadh_pd(res, (const double*)(from+2)) ; - return _mm_castpd_si128(res); -#endif + return _mm_loadu_si128(reinterpret_cast(from)); } -#endif + template<> EIGEN_STRONG_INLINE Packet4f ploaddup(const float* from) { diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Core/products/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Core/products/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/CoeffBasedProduct.h b/ext/eigen-3.2.9/Eigen/src/Core/products/CoeffBasedProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/CoeffBasedProduct.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/CoeffBasedProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralBlockPanelKernel.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralBlockPanelKernel.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralBlockPanelKernel.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrix.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrix.h index 3f5ffcf..cfd2f00 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrix.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrix.h @@ -140,8 +140,10 @@ static void run(Index rows, Index cols, Index depth, // Release all the sub blocks B'_j of B' for the current thread, // i.e., we simply decrement the number of users by 1 for(Index j=0; j GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) { +#if !(defined(EIGEN_NO_STATIC_ASSERT) && defined(EIGEN_NO_DEBUG)) typedef internal::scalar_product_op BinOp; EIGEN_CHECK_BINARY_COMPATIBILIY(BinOp,LhsScalar,RhsScalar); +#endif } template void scaleAndAddTo(Dest& dst, const Scalar& alpha) const { eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols()); + if(m_lhs.cols()==0 || m_lhs.rows()==0 || m_rhs.cols()==0) + return; typename internal::add_const_on_value_type::type lhs = LhsBlasTraits::extract(m_lhs); typename internal::add_const_on_value_type::type rhs = RhsBlasTraits::extract(m_rhs); diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixVector.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixVector.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixVector.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixVector.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixVector_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixVector_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/GeneralMatrixVector_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/GeneralMatrixVector_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/Parallelizer.h b/ext/eigen-3.2.9/Eigen/src/Core/products/Parallelizer.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/Parallelizer.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/Parallelizer.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixMatrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixMatrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixVector.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixVector.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixVector.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixVector.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointProduct.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointProduct.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointRank2Update.h b/ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointRank2Update.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/SelfadjointRank2Update.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/SelfadjointRank2Update.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixMatrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixMatrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixVector.h b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixVector.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixVector.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixVector.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixVector_MKL.h b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixVector_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/products/TriangularMatrixVector_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/TriangularMatrixVector_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularSolverMatrix.h b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularSolverMatrix.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/products/TriangularSolverMatrix.h rename to ext/eigen-3.2.9/Eigen/src/Core/products/TriangularSolverMatrix.h index 04240ab..3984b80 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/products/TriangularSolverMatrix.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/products/TriangularSolverMatrix.h @@ -81,7 +81,7 @@ EIGEN_DONT_INLINE void triangular_solve_matrix0 ? l2/(4 * sizeof(Scalar) * otherStride) : 0; + Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * std::max(otherStride,size)) : 0; subcols = std::max((subcols/Traits::nr)*Traits::nr, Traits::nr); for(Index k2=IsLower ? 0 : size; @@ -115,8 +115,9 @@ EIGEN_DONT_INLINE void triangular_solve_matrix struct blas_traits }; // pop conjugate -template -struct blas_traits, NestedXpr> > - : blas_traits +template +struct blas_traits, Xpr> > + : blas_traits::type> { + typedef typename internal::remove_all::type NestedXpr; typedef blas_traits Base; - typedef CwiseUnaryOp, NestedXpr> XprType; + typedef CwiseUnaryOp, Xpr> XprType; typedef typename Base::ExtractType ExtractType; enum { @@ -188,12 +189,13 @@ struct blas_traits, NestedXpr> > }; // pop scalar multiple -template -struct blas_traits, NestedXpr> > - : blas_traits +template +struct blas_traits, Xpr> > + : blas_traits::type> { + typedef typename internal::remove_all::type NestedXpr; typedef blas_traits Base; - typedef CwiseUnaryOp, NestedXpr> XprType; + typedef CwiseUnaryOp, Xpr> XprType; typedef typename Base::ExtractType ExtractType; static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); } static inline Scalar extractScalarFactor(const XprType& x) @@ -201,12 +203,13 @@ struct blas_traits, NestedXpr> > }; // pop opposite -template -struct blas_traits, NestedXpr> > - : blas_traits +template +struct blas_traits, Xpr> > + : blas_traits::type> { + typedef typename internal::remove_all::type NestedXpr; typedef blas_traits Base; - typedef CwiseUnaryOp, NestedXpr> XprType; + typedef CwiseUnaryOp, Xpr> XprType; typedef typename Base::ExtractType ExtractType; static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); } static inline Scalar extractScalarFactor(const XprType& x) @@ -214,13 +217,14 @@ struct blas_traits, NestedXpr> > }; // pop/push transpose -template -struct blas_traits > - : blas_traits +template +struct blas_traits > + : blas_traits::type> { + typedef typename internal::remove_all::type NestedXpr; typedef typename NestedXpr::Scalar Scalar; typedef blas_traits Base; - typedef Transpose XprType; + typedef Transpose XprType; typedef Transpose ExtractType; // const to get rid of a compile error; anyway blas traits are only used on the RHS typedef Transpose _ExtractType; typedef typename conditional=6 + + #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS + #pragma GCC diagnostic push + #endif + #pragma GCC diagnostic ignored "-Wignored-attributes" + #endif #endif // not EIGEN_WARNINGS_DISABLED diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/ForwardDeclarations.h b/ext/eigen-3.2.9/Eigen/src/Core/util/ForwardDeclarations.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/util/ForwardDeclarations.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/ForwardDeclarations.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/MKL_support.h b/ext/eigen-3.2.9/Eigen/src/Core/util/MKL_support.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/util/MKL_support.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/MKL_support.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/Macros.h b/ext/eigen-3.2.9/Eigen/src/Core/util/Macros.h similarity index 71% rename from ext/eigen-3.2.7/Eigen/src/Core/util/Macros.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/Macros.h index 53fb5fa..16c248c 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/util/Macros.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/util/Macros.h @@ -13,23 +13,292 @@ #define EIGEN_WORLD_VERSION 3 #define EIGEN_MAJOR_VERSION 2 -#define EIGEN_MINOR_VERSION 7 +#define EIGEN_MINOR_VERSION 9 #define EIGEN_VERSION_AT_LEAST(x,y,z) (EIGEN_WORLD_VERSION>x || (EIGEN_WORLD_VERSION>=x && \ (EIGEN_MAJOR_VERSION>y || (EIGEN_MAJOR_VERSION>=y && \ EIGEN_MINOR_VERSION>=z)))) + + +// Compiler identification, EIGEN_COMP_* + +/// \internal EIGEN_COMP_GNUC set to 1 for all compilers compatible with GCC #ifdef __GNUC__ + #define EIGEN_COMP_GNUC 1 +#else + #define EIGEN_COMP_GNUC 0 +#endif + +/// \internal EIGEN_COMP_CLANG set to 1 if the compiler is clang (alias for __clang__) +#if defined(__clang__) + #define EIGEN_COMP_CLANG 1 +#else + #define EIGEN_COMP_CLANG 0 +#endif + + +/// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm +#if defined(__llvm__) + #define EIGEN_COMP_LLVM 1 +#else + #define EIGEN_COMP_LLVM 0 +#endif + +/// \internal EIGEN_COMP_ICC set to __INTEL_COMPILER if the compiler is Intel compiler, 0 otherwise +#if defined(__INTEL_COMPILER) + #define EIGEN_COMP_ICC __INTEL_COMPILER +#else + #define EIGEN_COMP_ICC 0 +#endif + +/// \internal EIGEN_COMP_MINGW set to 1 if the compiler is mingw +#if defined(__MINGW32__) + #define EIGEN_COMP_MINGW 1 +#else + #define EIGEN_COMP_MINGW 0 +#endif + +/// \internal EIGEN_COMP_SUNCC set to 1 if the compiler is Solaris Studio +#if defined(__SUNPRO_CC) + #define EIGEN_COMP_SUNCC 1 +#else + #define EIGEN_COMP_SUNCC 0 +#endif + +/// \internal EIGEN_COMP_MSVC set to _MSC_VER if the compiler is Microsoft Visual C++, 0 otherwise. +#if defined(_MSC_VER) + #define EIGEN_COMP_MSVC _MSC_VER +#else + #define EIGEN_COMP_MSVC 0 +#endif + +/// \internal EIGEN_COMP_MSVC_STRICT set to 1 if the compiler is really Microsoft Visual C++ and not ,e.g., ICC +#if EIGEN_COMP_MSVC && !(EIGEN_COMP_ICC) + #define EIGEN_COMP_MSVC_STRICT _MSC_VER +#else + #define EIGEN_COMP_MSVC_STRICT 0 +#endif + +/// \internal EIGEN_COMP_IBM set to 1 if the compiler is IBM XL C++ +#if defined(__IBMCPP__) || defined(__xlc__) + #define EIGEN_COMP_IBM 1 +#else + #define EIGEN_COMP_IBM 0 +#endif + +/// \internal EIGEN_COMP_PGI set to 1 if the compiler is Portland Group Compiler +#if defined(__PGI) + #define EIGEN_COMP_PGI 1 +#else + #define EIGEN_COMP_PGI 0 +#endif + +/// \internal EIGEN_COMP_ARM set to 1 if the compiler is ARM Compiler +#if defined(__CC_ARM) || defined(__ARMCC_VERSION) + #define EIGEN_COMP_ARM 1 +#else + #define EIGEN_COMP_ARM 0 +#endif + + +/// \internal EIGEN_GNUC_STRICT set to 1 if the compiler is really GCC and not a compatible compiler (e.g., ICC, clang, mingw, etc.) +#if EIGEN_COMP_GNUC && !(EIGEN_COMP_CLANG || EIGEN_COMP_ICC || EIGEN_COMP_MINGW || EIGEN_COMP_PGI || EIGEN_COMP_IBM || EIGEN_COMP_ARM ) + #define EIGEN_COMP_GNUC_STRICT 1 +#else + #define EIGEN_COMP_GNUC_STRICT 0 +#endif + + +#if EIGEN_COMP_GNUC #define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x) + #define EIGEN_GNUC_AT_MOST(x,y) ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__= 201103L) || \ (defined(_MSC_VER) && _MSC_VER >= 1600)) #define EIGEN_HAVE_RVALUE_REFERENCES #endif diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/Memory.h b/ext/eigen-3.2.9/Eigen/src/Core/util/Memory.h similarity index 94% rename from ext/eigen-3.2.7/Eigen/src/Core/util/Memory.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/Memory.h index b9af5cf..ffa7e34 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/util/Memory.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/util/Memory.h @@ -507,7 +507,12 @@ template void smart_copy(const T* start, const T* end, T* target) template struct smart_copy_helper { static inline void run(const T* start, const T* end, T* target) - { memcpy(target, start, std::ptrdiff_t(end)-std::ptrdiff_t(start)); } + { + std::ptrdiff_t size = std::ptrdiff_t(end)-std::ptrdiff_t(start); + if(size==0) return; + eigen_internal_assert(start!=0 && end!=0 && target!=0); + memcpy(target, start, size); + } }; template struct smart_copy_helper { @@ -515,7 +520,6 @@ template struct smart_copy_helper { { std::copy(start, end, target); } }; - /***************************************************************************** *** Implementation of runtime stack allocation (falling back to malloc) *** *****************************************************************************/ @@ -630,6 +634,8 @@ template class aligned_stack_memory_handler } \ void operator delete(void * ptr) throw() { Eigen::internal::conditional_aligned_free(ptr); } \ void operator delete[](void * ptr) throw() { Eigen::internal::conditional_aligned_free(ptr); } \ + void operator delete(void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free(ptr); } \ + void operator delete[](void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free(ptr); } \ /* in-place new and delete. since (at least afaik) there is no actual */ \ /* memory allocated we can safely let the default implementation handle */ \ /* this particular case. */ \ @@ -653,99 +659,60 @@ template class aligned_stack_memory_handler /****************************************************************************/ + /** \class aligned_allocator -* \ingroup Core_Module -* -* \brief STL compatible allocator to use with with 16 byte aligned types -* -* Example: -* \code -* // Matrix4f requires 16 bytes alignment: -* std::map< int, Matrix4f, std::less, -* aligned_allocator > > my_map_mat4; -* // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator: -* std::map< int, Vector3f > my_map_vec3; -* \endcode -* -* \sa \ref TopicStlContainers. -*/ + * \ingroup Core_Module + * + * \brief STL compatible allocator to use with with 16 byte aligned types + * + * Example: + * \code + * // Matrix4f requires 16 bytes alignment: + * std::map< int, Matrix4f, std::less, + * aligned_allocator > > my_map_mat4; + * // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator: + * std::map< int, Vector3f > my_map_vec3; + * \endcode + * + * \sa \blank \ref TopicStlContainers. + */ template -class aligned_allocator +class aligned_allocator : public std::allocator { public: - typedef size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef T value_type; + typedef size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef const T* const_pointer; + typedef T& reference; + typedef const T& const_reference; + typedef T value_type; - template - struct rebind - { - typedef aligned_allocator other; - }; + template + struct rebind + { + typedef aligned_allocator other; + }; - pointer address( reference value ) const - { - return &value; - } + aligned_allocator() : std::allocator() {} - const_pointer address( const_reference value ) const - { - return &value; - } + aligned_allocator(const aligned_allocator& other) : std::allocator(other) {} - aligned_allocator() - { - } + template + aligned_allocator(const aligned_allocator& other) : std::allocator(other) {} - aligned_allocator( const aligned_allocator& ) - { - } + ~aligned_allocator() {} - template - aligned_allocator( const aligned_allocator& ) - { - } + pointer allocate(size_type num, const void* /*hint*/ = 0) + { + internal::check_size_for_overflow(num); + return static_cast( internal::aligned_malloc(num * sizeof(T)) ); + } - ~aligned_allocator() - { - } - - size_type max_size() const - { - return (std::numeric_limits::max)(); - } - - pointer allocate( size_type num, const void* hint = 0 ) - { - EIGEN_UNUSED_VARIABLE(hint); - internal::check_size_for_overflow(num); - return static_cast( internal::aligned_malloc( num * sizeof(T) ) ); - } - - void construct( pointer p, const T& value ) - { - ::new( p ) T( value ); - } - - void destroy( pointer p ) - { - p->~T(); - } - - void deallocate( pointer p, size_type /*num*/ ) - { - internal::aligned_free( p ); - } - - bool operator!=(const aligned_allocator& ) const - { return false; } - - bool operator==(const aligned_allocator& ) const - { return true; } + void deallocate(pointer p, size_type /*num*/) + { + internal::aligned_free(p); + } }; //---------- Cache sizes ---------- diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/Meta.h b/ext/eigen-3.2.9/Eigen/src/Core/util/Meta.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/util/Meta.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/Meta.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/NonMPL2.h b/ext/eigen-3.2.9/Eigen/src/Core/util/NonMPL2.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/util/NonMPL2.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/NonMPL2.h diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/ReenableStupidWarnings.h b/ext/eigen-3.2.9/Eigen/src/Core/util/ReenableStupidWarnings.h similarity index 81% rename from ext/eigen-3.2.7/Eigen/src/Core/util/ReenableStupidWarnings.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/ReenableStupidWarnings.h index 5ddfbd4..d573bbd 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/util/ReenableStupidWarnings.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/util/ReenableStupidWarnings.h @@ -8,7 +8,10 @@ #pragma warning pop #elif defined __clang__ #pragma clang diagnostic pop + #elif defined __GNUC__ && __GNUC__>=6 + #pragma GCC diagnostic pop #endif + #endif #endif // EIGEN_WARNINGS_DISABLED diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/StaticAssert.h b/ext/eigen-3.2.9/Eigen/src/Core/util/StaticAssert.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Core/util/StaticAssert.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/StaticAssert.h index bac5d9f..e53d2b8 100644 --- a/ext/eigen-3.2.7/Eigen/src/Core/util/StaticAssert.h +++ b/ext/eigen-3.2.9/Eigen/src/Core/util/StaticAssert.h @@ -26,7 +26,7 @@ #ifndef EIGEN_NO_STATIC_ASSERT - #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_MSC_VER) && (_MSC_VER >= 1600)) + #if __has_feature(cxx_static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L) || (EIGEN_COMP_MSVC >= 1600) // if native static_assert is enabled, let's use it #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG); diff --git a/ext/eigen-3.2.7/Eigen/src/Core/util/XprHelper.h b/ext/eigen-3.2.9/Eigen/src/Core/util/XprHelper.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Core/util/XprHelper.h rename to ext/eigen-3.2.9/Eigen/src/Core/util/XprHelper.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Block.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Block.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Block.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Block.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Cwise.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Cwise.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Cwise.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Cwise.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/CwiseOperators.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/CwiseOperators.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/CwiseOperators.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/CwiseOperators.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/AlignedBox.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/AlignedBox.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/AlignedBox.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/AlignedBox.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/All.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/All.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/All.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/All.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/AngleAxis.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/AngleAxis.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/AngleAxis.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/AngleAxis.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Hyperplane.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Hyperplane.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Hyperplane.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Hyperplane.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Quaternion.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Quaternion.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Quaternion.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Quaternion.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Rotation2D.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Rotation2D.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Rotation2D.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Rotation2D.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/RotationBase.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/RotationBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/RotationBase.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/RotationBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Scaling.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Scaling.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Scaling.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Scaling.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Transform.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Transform.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Transform.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Transform.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Translation.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Translation.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Geometry/Translation.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Geometry/Translation.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/LU.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/LU.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/LU.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/LU.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Lazy.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Lazy.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Lazy.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Lazy.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/LeastSquares.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/LeastSquares.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/LeastSquares.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/LeastSquares.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Macros.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Macros.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Macros.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Macros.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/MathFunctions.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/MathFunctions.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/MathFunctions.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/MathFunctions.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Memory.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Memory.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Memory.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Memory.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Meta.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Meta.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Meta.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Meta.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/Minor.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/Minor.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/Minor.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/Minor.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/QR.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/QR.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/QR.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/QR.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/SVD.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/SVD.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/SVD.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/SVD.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/TriangularSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/TriangularSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/TriangularSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/TriangularSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigen2Support/VectorBlock.h b/ext/eigen-3.2.9/Eigen/src/Eigen2Support/VectorBlock.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigen2Support/VectorBlock.h rename to ext/eigen-3.2.9/Eigen/src/Eigen2Support/VectorBlock.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexEigenSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexEigenSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexEigenSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexSchur.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexSchur.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexSchur.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexSchur.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexSchur_MKL.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexSchur_MKL.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexSchur_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexSchur_MKL.h index 91496ae..27aed92 100644 --- a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/ComplexSchur_MKL.h +++ b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/ComplexSchur_MKL.h @@ -45,7 +45,6 @@ ComplexSchur >& \ ComplexSchur >::compute(const Matrix& matrix, bool computeU) \ { \ typedef Matrix MatrixType; \ - typedef MatrixType::Scalar Scalar; \ typedef MatrixType::RealScalar RealScalar; \ typedef std::complex ComplexScalar; \ \ diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/EigenSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/EigenSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/EigenSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/EigenSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h similarity index 88% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h index 956e80d..e5131d2 100644 --- a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +++ b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h @@ -327,13 +327,33 @@ GeneralizedEigenSolver::compute(const MatrixType& A, const MatrixTyp } else { - Scalar p = Scalar(0.5) * (m_matS.coeff(i, i) - m_matS.coeff(i+1, i+1)); - Scalar z = sqrt(abs(p * p + m_matS.coeff(i+1, i) * m_matS.coeff(i, i+1))); - m_alphas.coeffRef(i) = ComplexScalar(m_matS.coeff(i+1, i+1) + p, z); - m_alphas.coeffRef(i+1) = ComplexScalar(m_matS.coeff(i+1, i+1) + p, -z); + // We need to extract the generalized eigenvalues of the pair of a general 2x2 block S and a triangular 2x2 block T + // From the eigen decomposition of T = U * E * U^-1, + // we can extract the eigenvalues of (U^-1 * S * U) / E + // Here, we can take advantage that E = diag(T), and U = [ 1 T_01 ; 0 T_11-T_00], and U^-1 = [1 -T_11/(T_11-T_00) ; 0 1/(T_11-T_00)]. + // Then taking beta=T_00*T_11*(T_11-T_00), we can avoid any division, and alpha is the eigenvalues of A = (U^-1 * S * U) * diag(T_11,T_00) * (T_11-T_00): + + // T = [a b ; 0 c] + // S = [e f ; g h] + RealScalar a = m_realQZ.matrixT().coeff(i, i), b = m_realQZ.matrixT().coeff(i, i+1), c = m_realQZ.matrixT().coeff(i+1, i+1); + RealScalar e = m_matS.coeff(i, i), f = m_matS.coeff(i, i+1), g = m_matS.coeff(i+1, i), h = m_matS.coeff(i+1, i+1); + RealScalar d = c-a; + RealScalar gb = g*b; + Matrix A; + A << (e*d-gb)*c, ((e*b+f*d-h*b)*d-gb*b)*a, + g*c , (gb+h*d)*a; + + // NOTE, we could also compute the SVD of T's block during the QZ factorization so that the respective T block is guaranteed to be diagonal, + // and then we could directly apply the formula below (while taking care of scaling S columns by T11,T00): + + Scalar p = Scalar(0.5) * (A.coeff(i, i) - A.coeff(i+1, i+1)); + Scalar z = sqrt(abs(p * p + A.coeff(i+1, i) * A.coeff(i, i+1))); + m_alphas.coeffRef(i) = ComplexScalar(A.coeff(i+1, i+1) + p, z); + m_alphas.coeffRef(i+1) = ComplexScalar(A.coeff(i+1, i+1) + p, -z); + + m_betas.coeffRef(i) = + m_betas.coeffRef(i+1) = a*c*d; - m_betas.coeffRef(i) = m_realQZ.matrixT().coeff(i,i); - m_betas.coeffRef(i+1) = m_realQZ.matrixT().coeff(i,i); i += 2; } } diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/HessenbergDecomposition.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/HessenbergDecomposition.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/HessenbergDecomposition.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealQZ.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealQZ.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealQZ.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealQZ.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealSchur.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealSchur.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealSchur.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealSchur.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealSchur_MKL.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealSchur_MKL.h similarity index 95% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealSchur_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealSchur_MKL.h index ad97364..c3089b4 100644 --- a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/RealSchur_MKL.h +++ b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/RealSchur_MKL.h @@ -44,10 +44,6 @@ template<> inline \ RealSchur >& \ RealSchur >::compute(const Matrix& matrix, bool computeU) \ { \ - typedef Matrix MatrixType; \ - typedef MatrixType::Scalar Scalar; \ - typedef MatrixType::RealScalar RealScalar; \ -\ eigen_assert(matrix.cols() == matrix.rows()); \ \ lapack_int n = matrix.cols(), sdim, info; \ diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/Tridiagonalization.h b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/Tridiagonalization.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Eigenvalues/Tridiagonalization.h rename to ext/eigen-3.2.9/Eigen/src/Eigenvalues/Tridiagonalization.h index 192278d..a63c08a 100644 --- a/ext/eigen-3.2.7/Eigen/src/Eigenvalues/Tridiagonalization.h +++ b/ext/eigen-3.2.9/Eigen/src/Eigenvalues/Tridiagonalization.h @@ -367,10 +367,10 @@ void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs) hCoeffs.tail(n-i-1).noalias() = (matA.bottomRightCorner(remainingSize,remainingSize).template selfadjointView() * (conj(h) * matA.col(i).tail(remainingSize))); - hCoeffs.tail(n-i-1) += (conj(h)*Scalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1); + hCoeffs.tail(n-i-1) += (conj(h)*RealScalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1); matA.bottomRightCorner(remainingSize, remainingSize).template selfadjointView() - .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), -1); + .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), Scalar(-1)); matA.col(i).coeffRef(i+1) = beta; hCoeffs.coeffRef(i) = h; diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/AlignedBox.h b/ext/eigen-3.2.9/Eigen/src/Geometry/AlignedBox.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/AlignedBox.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/AlignedBox.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/AngleAxis.h b/ext/eigen-3.2.9/Eigen/src/Geometry/AngleAxis.h similarity index 96% rename from ext/eigen-3.2.7/Eigen/src/Geometry/AngleAxis.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/AngleAxis.h index bbf6a7e..a8d3cdc 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/AngleAxis.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/AngleAxis.h @@ -83,10 +83,17 @@ public: template inline explicit AngleAxis(const MatrixBase& m) { *this = m; } + /** \returns the value of the rotation angle in radian */ Scalar angle() const { return m_angle; } + /** \returns a read-write reference to the stored angle in radian */ Scalar& angle() { return m_angle; } + /** \returns the rotation axis */ const Vector3& axis() const { return m_axis; } + /** \returns a read-write reference to the stored rotation axis. + * + * \warning The rotation axis must remain a \b unit vector. + */ Vector3& axis() { return m_axis; } /** Concatenates two rotations */ diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Geometry/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Geometry/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/EulerAngles.h b/ext/eigen-3.2.9/Eigen/src/Geometry/EulerAngles.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/EulerAngles.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/EulerAngles.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Homogeneous.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Homogeneous.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Homogeneous.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Homogeneous.h index 372e422..820ac96 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/Homogeneous.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/Homogeneous.h @@ -75,7 +75,7 @@ template class Homogeneous inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); } inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); } - inline Scalar coeff(Index row, Index col) const + inline Scalar coeff(Index row, Index col=0) const { if( (int(Direction)==Vertical && row==m_matrix.rows()) || (int(Direction)==Horizontal && col==m_matrix.cols())) diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Hyperplane.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Hyperplane.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Hyperplane.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Hyperplane.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/OrthoMethods.h b/ext/eigen-3.2.9/Eigen/src/Geometry/OrthoMethods.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/OrthoMethods.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/OrthoMethods.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/ParametrizedLine.h b/ext/eigen-3.2.9/Eigen/src/Geometry/ParametrizedLine.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Geometry/ParametrizedLine.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/ParametrizedLine.h index 77fa228..cf3252d 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/ParametrizedLine.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/ParametrizedLine.h @@ -129,7 +129,7 @@ public: * determined by \a prec. * * \sa MatrixBase::isApprox() */ - bool isApprox(const ParametrizedLine& other, typename NumTraits::Real prec = NumTraits::dummy_precision()) const + bool isApprox(const ParametrizedLine& other, const typename NumTraits::Real& prec = NumTraits::dummy_precision()) const { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); } protected: diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Quaternion.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Quaternion.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Quaternion.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Quaternion.h index 25ed17b..e89ba80 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/Quaternion.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/Quaternion.h @@ -276,7 +276,7 @@ public: inline Coefficients& coeffs() { return m_coeffs;} inline const Coefficients& coeffs() const { return m_coeffs;} - EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(IsAligned) + EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(IsAligned)) protected: Coefficients m_coeffs; diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Rotation2D.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Rotation2D.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Rotation2D.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Rotation2D.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/RotationBase.h b/ext/eigen-3.2.9/Eigen/src/Geometry/RotationBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/RotationBase.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/RotationBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Scaling.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Scaling.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Scaling.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Scaling.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Transform.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Transform.h similarity index 97% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Transform.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Transform.h index e786e53..0186f3b 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/Transform.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/Transform.h @@ -102,15 +102,15 @@ template struct transform_make_affine; * * However, unlike a plain matrix, the Transform class provides many features * simplifying both its assembly and usage. In particular, it can be composed - * with any other transformations (Transform,Translation,RotationBase,Matrix) + * with any other transformations (Transform,Translation,RotationBase,DiagonalMatrix) * and can be directly used to transform implicit homogeneous vectors. All these * operations are handled via the operator*. For the composition of transformations, * its principle consists to first convert the right/left hand sides of the product * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product. * Of course, internally, operator* tries to perform the minimal number of operations * according to the nature of each terms. Likewise, when applying the transform - * to non homogeneous vectors, the latters are automatically promoted to homogeneous - * one before doing the matrix product. The convertions to homogeneous representations + * to points, the latters are automatically promoted to homogeneous vectors + * before doing the matrix product. The conventions to homogeneous representations * are performed as follow: * * \b Translation t (Dim)x(1): @@ -124,7 +124,7 @@ template struct transform_make_affine; * R & 0\\ * 0\,...\,0 & 1 * \end{array} \right) \f$ - * + * + * \b Scaling \b DiagonalMatrix S (Dim)x(Dim): + * \f$ \left( \begin{array}{cc} + * S & 0\\ + * 0\,...\,0 & 1 + * \end{array} \right) \f$ * - * \b Column \b vector v (Dim)x(1): + * \b Column \b point v (Dim)x(1): * \f$ \left( \begin{array}{c} * v\\ * 1 * \end{array} \right) \f$ * - * \b Set \b of \b column \b vectors V1...Vn (Dim)x(n): + * \b Set \b of \b column \b points V1...Vn (Dim)x(n): * \f$ \left( \begin{array}{ccc} * v_1 & ... & v_n\\ * 1 & ... & 1 @@ -384,26 +390,39 @@ public: /** \returns a writable expression of the translation vector of the transformation */ inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); } - /** \returns an expression of the product between the transform \c *this and a matrix expression \a other + /** \returns an expression of the product between the transform \c *this and a matrix expression \a other. * - * The right hand side \a other might be either: - * \li a vector of size Dim, + * The right-hand-side \a other can be either: * \li an homogeneous vector of size Dim+1, - * \li a set of vectors of size Dim x Dynamic, - * \li a set of homogeneous vectors of size Dim+1 x Dynamic, - * \li a linear transformation matrix of size Dim x Dim, - * \li an affine transformation matrix of size Dim x Dim+1, + * \li a set of homogeneous vectors of size Dim+1 x N, * \li a transformation matrix of size Dim+1 x Dim+1. + * + * Moreover, if \c *this represents an affine transformation (i.e., Mode!=Projective), then \a other can also be: + * \li a point of size Dim (computes: \code this->linear() * other + this->translation()\endcode), + * \li a set of N points as a Dim x N matrix (computes: \code (this->linear() * other).colwise() + this->translation()\endcode), + * + * In all cases, the return type is a matrix or vector of same sizes as the right-hand-side \a other. + * + * If you want to interpret \a other as a linear or affine transformation, then first convert it to a Transform<> type, + * or do your own cooking. + * + * Finally, if you want to apply Affine transformations to vectors, then explicitly apply the linear part only: + * \code + * Affine3f A; + * Vector3f v1, v2; + * v2 = A.linear() * v1; + * \endcode + * */ // note: this function is defined here because some compilers cannot find the respective declaration template - EIGEN_STRONG_INLINE const typename internal::transform_right_product_impl::ResultType + EIGEN_STRONG_INLINE const typename OtherDerived::PlainObject operator * (const EigenBase &other) const { return internal::transform_right_product_impl::run(*this,other.derived()); } /** \returns the product expression of a transformation matrix \a a times a transform \a b * - * The left hand side \a other might be either: + * The left hand side \a other can be either: * \li a linear transformation matrix of size Dim x Dim, * \li an affine transformation matrix of size Dim x Dim+1, * \li a general transformation matrix of size Dim+1 x Dim+1. diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Translation.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Translation.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Translation.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Translation.h index 7fda179..2e77986 100644 --- a/ext/eigen-3.2.7/Eigen/src/Geometry/Translation.h +++ b/ext/eigen-3.2.9/Eigen/src/Geometry/Translation.h @@ -162,7 +162,7 @@ public: * determined by \a prec. * * \sa MatrixBase::isApprox() */ - bool isApprox(const Translation& other, typename NumTraits::Real prec = NumTraits::dummy_precision()) const + bool isApprox(const Translation& other, const typename NumTraits::Real& prec = NumTraits::dummy_precision()) const { return m_coeffs.isApprox(other.m_coeffs, prec); } }; diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/Umeyama.h b/ext/eigen-3.2.9/Eigen/src/Geometry/Umeyama.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/Umeyama.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/Umeyama.h diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/arch/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Geometry/arch/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/arch/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Geometry/arch/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Geometry/arch/Geometry_SSE.h b/ext/eigen-3.2.9/Eigen/src/Geometry/arch/Geometry_SSE.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Geometry/arch/Geometry_SSE.h rename to ext/eigen-3.2.9/Eigen/src/Geometry/arch/Geometry_SSE.h diff --git a/ext/eigen-3.2.7/Eigen/src/Householder/BlockHouseholder.h b/ext/eigen-3.2.9/Eigen/src/Householder/BlockHouseholder.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Householder/BlockHouseholder.h rename to ext/eigen-3.2.9/Eigen/src/Householder/BlockHouseholder.h diff --git a/ext/eigen-3.2.7/Eigen/src/Householder/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Householder/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Householder/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Householder/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Householder/Householder.h b/ext/eigen-3.2.9/Eigen/src/Householder/Householder.h similarity index 97% rename from ext/eigen-3.2.7/Eigen/src/Householder/Householder.h rename to ext/eigen-3.2.9/Eigen/src/Householder/Householder.h index 32112af..4c1f499 100644 --- a/ext/eigen-3.2.7/Eigen/src/Householder/Householder.h +++ b/ext/eigen-3.2.9/Eigen/src/Householder/Householder.h @@ -75,8 +75,9 @@ void MatrixBase::makeHouseholder( RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm(); Scalar c0 = coeff(0); + const RealScalar tol = (std::numeric_limits::min)(); - if(tailSqNorm == RealScalar(0) && numext::imag(c0)==RealScalar(0)) + if(tailSqNorm <= tol && numext::abs2(numext::imag(c0))<=tol) { tau = RealScalar(0); beta = numext::real(c0); diff --git a/ext/eigen-3.2.7/Eigen/src/Householder/HouseholderSequence.h b/ext/eigen-3.2.9/Eigen/src/Householder/HouseholderSequence.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/Householder/HouseholderSequence.h rename to ext/eigen-3.2.9/Eigen/src/Householder/HouseholderSequence.h index d800ca1..aea2439 100644 --- a/ext/eigen-3.2.7/Eigen/src/Householder/HouseholderSequence.h +++ b/ext/eigen-3.2.9/Eigen/src/Householder/HouseholderSequence.h @@ -237,8 +237,9 @@ template class HouseholderS { workspace.resize(rows()); Index vecs = m_length; + const typename Dest::Scalar *dst_data = internal::extract_data(dst); if( internal::is_same::type,Dest>::value - && internal::extract_data(dst) == internal::extract_data(m_vectors)) + && dst_data!=0 && dst_data == internal::extract_data(m_vectors)) { // in-place dst.diagonal().setOnes(); diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h index 1a7e569..7dd4010 100644 --- a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +++ b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h @@ -139,6 +139,8 @@ struct traits > * By default the iterations start with x=0 as an initial guess of the solution. * One can control the start using the solveWithGuess() method. * + * ConjugateGradient can also be used in a matrix-free context, see the following \link MatrixfreeSolverExample example \endlink. + * * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner */ template< typename _MatrixType, int _UpLo, typename _Preconditioner> diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h diff --git a/ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h rename to ext/eigen-3.2.9/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h diff --git a/ext/eigen-3.2.7/Eigen/src/Jacobi/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/Jacobi/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Jacobi/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/Jacobi/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/Jacobi/Jacobi.h b/ext/eigen-3.2.9/Eigen/src/Jacobi/Jacobi.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/Jacobi/Jacobi.h rename to ext/eigen-3.2.9/Eigen/src/Jacobi/Jacobi.h diff --git a/ext/eigen-3.2.7/Eigen/src/LU/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/LU/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/LU/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/LU/Determinant.h b/ext/eigen-3.2.9/Eigen/src/LU/Determinant.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/Determinant.h rename to ext/eigen-3.2.9/Eigen/src/LU/Determinant.h diff --git a/ext/eigen-3.2.7/Eigen/src/LU/FullPivLU.h b/ext/eigen-3.2.9/Eigen/src/LU/FullPivLU.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/LU/FullPivLU.h rename to ext/eigen-3.2.9/Eigen/src/LU/FullPivLU.h index 26bc714..e384704 100644 --- a/ext/eigen-3.2.7/Eigen/src/LU/FullPivLU.h +++ b/ext/eigen-3.2.9/Eigen/src/LU/FullPivLU.h @@ -688,7 +688,7 @@ struct solve_retval, Rhs> */ const Index rows = dec().rows(), cols = dec().cols(), - nonzero_pivots = dec().nonzeroPivots(); + nonzero_pivots = dec().rank(); eigen_assert(rhs().rows() == rows); const Index smalldim = (std::min)(rows, cols); diff --git a/ext/eigen-3.2.7/Eigen/src/LU/Inverse.h b/ext/eigen-3.2.9/Eigen/src/LU/Inverse.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/LU/Inverse.h rename to ext/eigen-3.2.9/Eigen/src/LU/Inverse.h index 3cf8871..e836fd6 100644 --- a/ext/eigen-3.2.7/Eigen/src/LU/Inverse.h +++ b/ext/eigen-3.2.9/Eigen/src/LU/Inverse.h @@ -290,7 +290,7 @@ struct inverse_impl : public ReturnByValue > { const int Size = EIGEN_PLAIN_ENUM_MIN(MatrixType::ColsAtCompileTime,Dest::ColsAtCompileTime); EIGEN_ONLY_USED_FOR_DEBUG(Size); - eigen_assert(( (Size<=1) || (Size>4) || (extract_data(m_matrix)!=extract_data(dst))) + eigen_assert(( (Size<=1) || (Size>4) || (extract_data(m_matrix)!=0 && extract_data(m_matrix)!=extract_data(dst))) && "Aliasing problem detected in inverse(), you need to do inverse().eval() here."); compute_inverse::run(m_matrix, dst); diff --git a/ext/eigen-3.2.7/Eigen/src/LU/PartialPivLU.h b/ext/eigen-3.2.9/Eigen/src/LU/PartialPivLU.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/PartialPivLU.h rename to ext/eigen-3.2.9/Eigen/src/LU/PartialPivLU.h diff --git a/ext/eigen-3.2.7/Eigen/src/LU/PartialPivLU_MKL.h b/ext/eigen-3.2.9/Eigen/src/LU/PartialPivLU_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/PartialPivLU_MKL.h rename to ext/eigen-3.2.9/Eigen/src/LU/PartialPivLU_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/LU/arch/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/LU/arch/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/arch/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/LU/arch/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/LU/arch/Inverse_SSE.h b/ext/eigen-3.2.9/Eigen/src/LU/arch/Inverse_SSE.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/LU/arch/Inverse_SSE.h rename to ext/eigen-3.2.9/Eigen/src/LU/arch/Inverse_SSE.h diff --git a/ext/eigen-3.2.7/Eigen/src/MetisSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/MetisSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/MetisSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/MetisSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/MetisSupport/MetisSupport.h b/ext/eigen-3.2.9/Eigen/src/MetisSupport/MetisSupport.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/MetisSupport/MetisSupport.h rename to ext/eigen-3.2.9/Eigen/src/MetisSupport/MetisSupport.h diff --git a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/Amd.h b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/Amd.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/OrderingMethods/Amd.h rename to ext/eigen-3.2.9/Eigen/src/OrderingMethods/Amd.h index 70550b8..658b954 100644 --- a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/Amd.h +++ b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/Amd.h @@ -8,7 +8,7 @@ NOTE: this routine has been adapted from the CSparse library: Copyright (c) 2006, Timothy A. Davis. -http://www.cise.ufl.edu/research/sparse/CSparse +http://www.suitesparse.com CSparse is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/OrderingMethods/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/OrderingMethods/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/Eigen_Colamd.h b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/Eigen_Colamd.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/OrderingMethods/Eigen_Colamd.h rename to ext/eigen-3.2.9/Eigen/src/OrderingMethods/Eigen_Colamd.h index 44548f6..359fd44 100644 --- a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/Eigen_Colamd.h +++ b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/Eigen_Colamd.h @@ -41,12 +41,8 @@ // // The colamd/symamd library is available at // -// http://www.cise.ufl.edu/research/sparse/colamd/ +// http://www.suitesparse.com -// This is the http://www.cise.ufl.edu/research/sparse/colamd/colamd.h -// file. It is required by the colamd.c, colamdmex.c, and symamdmex.c -// files, and by any C code that calls the routines whose prototypes are -// listed below, or that uses the colamd/symamd definitions listed below. #ifndef EIGEN_COLAMD_H #define EIGEN_COLAMD_H @@ -102,9 +98,6 @@ namespace internal { /* === Definitions ========================================================== */ /* ========================================================================== */ -#define COLAMD_MAX(a,b) (((a) > (b)) ? (a) : (b)) -#define COLAMD_MIN(a,b) (((a) < (b)) ? (a) : (b)) - #define ONES_COMPLEMENT(r) (-(r)-1) /* -------------------------------------------------------------------------- */ @@ -516,7 +509,7 @@ static Index init_rows_cols /* returns true if OK, or false otherwise */ Col [col].start = p [col] ; Col [col].length = p [col+1] - p [col] ; - if (Col [col].length < 0) + if ((Col [col].length) < 0) // extra parentheses to work-around gcc bug 10200 { /* column pointers must be non-decreasing */ stats [COLAMD_STATUS] = COLAMD_ERROR_col_length_negative ; @@ -739,8 +732,8 @@ static void init_scoring /* === Extract knobs ==================================================== */ - dense_row_count = COLAMD_MAX (0, COLAMD_MIN (knobs [COLAMD_DENSE_ROW] * n_col, n_col)) ; - dense_col_count = COLAMD_MAX (0, COLAMD_MIN (knobs [COLAMD_DENSE_COL] * n_row, n_row)) ; + dense_row_count = std::max(0, (std::min)(Index(knobs [COLAMD_DENSE_ROW] * n_col), n_col)) ; + dense_col_count = std::max(0, (std::min)(Index(knobs [COLAMD_DENSE_COL] * n_row), n_row)) ; COLAMD_DEBUG1 (("colamd: densecount: %d %d\n", dense_row_count, dense_col_count)) ; max_deg = 0 ; n_col2 = n_col ; @@ -804,7 +797,7 @@ static void init_scoring else { /* keep track of max degree of remaining rows */ - max_deg = COLAMD_MAX (max_deg, deg) ; + max_deg = (std::max)(max_deg, deg) ; } } COLAMD_DEBUG1 (("colamd: Dense and null rows killed: %d\n", n_row - n_row2)) ; @@ -842,7 +835,7 @@ static void init_scoring /* add row's external degree */ score += Row [row].shared1.degree - 1 ; /* guard against integer overflow */ - score = COLAMD_MIN (score, n_col) ; + score = (std::min)(score, n_col) ; } /* determine pruned column length */ col_length = (Index) (new_cp - &A [Col [c].start]) ; @@ -914,7 +907,7 @@ static void init_scoring head [score] = c ; /* see if this score is less than current min */ - min_score = COLAMD_MIN (min_score, score) ; + min_score = (std::min)(min_score, score) ; } @@ -1040,7 +1033,7 @@ static Index find_ordering /* return the number of garbage collections */ /* === Garbage_collection, if necessary ============================= */ - needed_memory = COLAMD_MIN (pivot_col_score, n_col - k) ; + needed_memory = (std::min)(pivot_col_score, n_col - k) ; if (pfree + needed_memory >= Alen) { pfree = Eigen::internal::garbage_collection (n_row, n_col, Row, Col, A, &A [pfree]) ; @@ -1099,7 +1092,7 @@ static Index find_ordering /* return the number of garbage collections */ /* clear tag on pivot column */ Col [pivot_col].shared1.thickness = pivot_col_thickness ; - max_deg = COLAMD_MAX (max_deg, pivot_row_degree) ; + max_deg = (std::max)(max_deg, pivot_row_degree) ; /* === Kill all rows used to construct pivot row ==================== */ @@ -1273,7 +1266,7 @@ static Index find_ordering /* return the number of garbage collections */ /* add set difference */ cur_score += row_mark - tag_mark ; /* integer overflow... */ - cur_score = COLAMD_MIN (cur_score, n_col) ; + cur_score = (std::min)(cur_score, n_col) ; } /* recompute the column's length */ @@ -1386,7 +1379,7 @@ static Index find_ordering /* return the number of garbage collections */ cur_score -= Col [col].shared1.thickness ; /* make sure score is less or equal than the max score */ - cur_score = COLAMD_MIN (cur_score, max_score) ; + cur_score = (std::min)(cur_score, max_score) ; COLAMD_ASSERT (cur_score >= 0) ; /* store updated score */ @@ -1409,7 +1402,7 @@ static Index find_ordering /* return the number of garbage collections */ head [cur_score] = col ; /* see if this score is less than current min */ - min_score = COLAMD_MIN (min_score, cur_score) ; + min_score = (std::min)(min_score, cur_score) ; } diff --git a/ext/eigen-3.2.7/Eigen/src/OrderingMethods/Ordering.h b/ext/eigen-3.2.9/Eigen/src/OrderingMethods/Ordering.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/OrderingMethods/Ordering.h rename to ext/eigen-3.2.9/Eigen/src/OrderingMethods/Ordering.h diff --git a/ext/eigen-3.2.7/Eigen/src/PaStiXSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/PaStiXSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/PaStiXSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/PaStiXSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/PaStiXSupport/PaStiXSupport.h b/ext/eigen-3.2.9/Eigen/src/PaStiXSupport/PaStiXSupport.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/PaStiXSupport/PaStiXSupport.h rename to ext/eigen-3.2.9/Eigen/src/PaStiXSupport/PaStiXSupport.h index a955287..20acc02 100644 --- a/ext/eigen-3.2.7/Eigen/src/PaStiXSupport/PaStiXSupport.h +++ b/ext/eigen-3.2.9/Eigen/src/PaStiXSupport/PaStiXSupport.h @@ -10,6 +10,14 @@ #ifndef EIGEN_PASTIXSUPPORT_H #define EIGEN_PASTIXSUPPORT_H +#if defined(DCOMPLEX) + #define PASTIX_COMPLEX COMPLEX + #define PASTIX_DCOMPLEX DCOMPLEX +#else + #define PASTIX_COMPLEX std::complex + #define PASTIX_DCOMPLEX std::complex +#endif + namespace Eigen { /** \ingroup PaStiXSupport_Module @@ -74,14 +82,14 @@ namespace internal { if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; } if (nbrhs == 0) {x = NULL; nbrhs=1;} - c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast(vals), perm, invp, reinterpret_cast(x), nbrhs, iparm, dparm); + c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast(vals), perm, invp, reinterpret_cast(x), nbrhs, iparm, dparm); } void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex *vals, int *perm, int * invp, std::complex *x, int nbrhs, int *iparm, double *dparm) { if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; } if (nbrhs == 0) {x = NULL; nbrhs=1;} - z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast(vals), perm, invp, reinterpret_cast(x), nbrhs, iparm, dparm); + z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast(vals), perm, invp, reinterpret_cast(x), nbrhs, iparm, dparm); } // Convert the matrix to Fortran-style Numbering diff --git a/ext/eigen-3.2.7/Eigen/src/PardisoSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/PardisoSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/PardisoSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/PardisoSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/PardisoSupport/PardisoSupport.h b/ext/eigen-3.2.9/Eigen/src/PardisoSupport/PardisoSupport.h similarity index 95% rename from ext/eigen-3.2.7/Eigen/src/PardisoSupport/PardisoSupport.h rename to ext/eigen-3.2.9/Eigen/src/PardisoSupport/PardisoSupport.h index 18cd7d8..0faacc5 100644 --- a/ext/eigen-3.2.7/Eigen/src/PardisoSupport/PardisoSupport.h +++ b/ext/eigen-3.2.9/Eigen/src/PardisoSupport/PardisoSupport.h @@ -221,11 +221,11 @@ class PardisoImpl m_type = type; bool symmetric = std::abs(m_type) < 10; m_iparm[0] = 1; // No solver default - m_iparm[1] = 3; // use Metis for the ordering - m_iparm[2] = 1; // Numbers of processors, value of OMP_NUM_THREADS + m_iparm[1] = 2; // use Metis for the ordering + m_iparm[2] = 0; // Reserved. Set to zero. (??Numbers of processors, value of OMP_NUM_THREADS??) m_iparm[3] = 0; // No iterative-direct algorithm m_iparm[4] = 0; // No user fill-in reducing permutation - m_iparm[5] = 0; // Write solution into x + m_iparm[5] = 0; // Write solution into x, b is left unchanged m_iparm[6] = 0; // Not in use m_iparm[7] = 2; // Max numbers of iterative refinement steps m_iparm[8] = 0; // Not in use @@ -246,7 +246,10 @@ class PardisoImpl m_iparm[26] = 0; // No matrix checker m_iparm[27] = (sizeof(RealScalar) == 4) ? 1 : 0; m_iparm[34] = 1; // C indexing - m_iparm[59] = 1; // Automatic switch between In-Core and Out-of-Core modes + m_iparm[36] = 0; // CSR + m_iparm[59] = 0; // 0 - In-Core ; 1 - Automatic switch between In-Core and Out-of-Core modes ; 2 - Out-of-Core + + memset(m_pt, 0, sizeof(m_pt)); } protected: @@ -384,7 +387,6 @@ bool PardisoImpl::_solve(const MatrixBase &b, MatrixBase::_solve(const MatrixBase &b, MatrixBase * * \sa \ref TutorialSparseDirectSolvers @@ -447,6 +452,9 @@ class PardisoLU : public PardisoImpl< PardisoLU > * using the Intel MKL PARDISO library. The sparse matrix A must be selfajoint and positive definite. * The vectors or matrices X and B can be either dense or sparse. * + * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set: + * \code solver.pardisoParameterArray()[59] = 1; \endcode + * * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<> * \tparam UpLo can be any bitwise combination of Upper, Lower. The default is Upper, meaning only the upper triangular part has to be used. * Upper|Lower can be used to tell both triangular parts can be used as input. @@ -507,6 +515,9 @@ class PardisoLLT : public PardisoImpl< PardisoLLT > * For complex matrices, A can also be symmetric only, see the \a Options template parameter. * The vectors or matrices X and B can be either dense or sparse. * + * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set: + * \code solver.pardisoParameterArray()[59] = 1; \endcode + * * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<> * \tparam Options can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used. * Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix. diff --git a/ext/eigen-3.2.7/Eigen/src/QR/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/QR/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/QR/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/QR/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/QR/ColPivHouseholderQR.h b/ext/eigen-3.2.9/Eigen/src/QR/ColPivHouseholderQR.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/QR/ColPivHouseholderQR.h rename to ext/eigen-3.2.9/Eigen/src/QR/ColPivHouseholderQR.h diff --git a/ext/eigen-3.2.7/Eigen/src/QR/ColPivHouseholderQR_MKL.h b/ext/eigen-3.2.9/Eigen/src/QR/ColPivHouseholderQR_MKL.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/QR/ColPivHouseholderQR_MKL.h rename to ext/eigen-3.2.9/Eigen/src/QR/ColPivHouseholderQR_MKL.h index b5b1983..7b6ba0a 100644 --- a/ext/eigen-3.2.7/Eigen/src/QR/ColPivHouseholderQR_MKL.h +++ b/ext/eigen-3.2.9/Eigen/src/QR/ColPivHouseholderQR_MKL.h @@ -49,7 +49,6 @@ ColPivHouseholderQR MatrixType; \ - typedef MatrixType::Scalar Scalar; \ typedef MatrixType::RealScalar RealScalar; \ Index rows = matrix.rows();\ Index cols = matrix.cols();\ diff --git a/ext/eigen-3.2.7/Eigen/src/QR/FullPivHouseholderQR.h b/ext/eigen-3.2.9/Eigen/src/QR/FullPivHouseholderQR.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/QR/FullPivHouseholderQR.h rename to ext/eigen-3.2.9/Eigen/src/QR/FullPivHouseholderQR.h diff --git a/ext/eigen-3.2.7/Eigen/src/QR/HouseholderQR.h b/ext/eigen-3.2.9/Eigen/src/QR/HouseholderQR.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/QR/HouseholderQR.h rename to ext/eigen-3.2.9/Eigen/src/QR/HouseholderQR.h diff --git a/ext/eigen-3.2.7/Eigen/src/QR/HouseholderQR_MKL.h b/ext/eigen-3.2.9/Eigen/src/QR/HouseholderQR_MKL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/QR/HouseholderQR_MKL.h rename to ext/eigen-3.2.9/Eigen/src/QR/HouseholderQR_MKL.h diff --git a/ext/eigen-3.2.7/Eigen/src/SPQRSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SPQRSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SPQRSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SPQRSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/ext/eigen-3.2.9/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h rename to ext/eigen-3.2.9/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h diff --git a/ext/eigen-3.2.7/Eigen/src/SVD/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SVD/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SVD/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SVD/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD.h b/ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD.h similarity index 92% rename from ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD.h rename to ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD.h index 1b29774..7a5821d 100644 --- a/ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD.h +++ b/ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD.h @@ -359,29 +359,42 @@ struct svd_precondition_2x2_block_to_be_real SVD; typedef typename SVD::Index Index; - static void run(typename SVD::WorkMatrixType&, SVD&, Index, Index) {} + typedef typename MatrixType::RealScalar RealScalar; + static bool run(typename SVD::WorkMatrixType&, SVD&, Index, Index, RealScalar&) { return true; } }; template struct svd_precondition_2x2_block_to_be_real { typedef JacobiSVD SVD; + typedef typename SVD::Index Index; typedef typename MatrixType::Scalar Scalar; typedef typename MatrixType::RealScalar RealScalar; - typedef typename SVD::Index Index; - static void run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q) + static bool run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q, RealScalar& maxDiagEntry) { using std::sqrt; + using std::abs; + using std::max; Scalar z; JacobiRotation rot; RealScalar n = sqrt(numext::abs2(work_matrix.coeff(p,p)) + numext::abs2(work_matrix.coeff(q,p))); - + + const RealScalar considerAsZero = (std::numeric_limits::min)(); + const RealScalar precision = NumTraits::epsilon(); + if(n==0) { - z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q); - work_matrix.row(p) *= z; - if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z); - if(work_matrix.coeff(q,q)!=Scalar(0)) + // make sure first column is zero + work_matrix.coeffRef(p,p) = work_matrix.coeffRef(q,p) = Scalar(0); + + if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero) + { + // work_matrix.coeff(p,q) can be zero if work_matrix.coeff(q,p) is not zero but small enough to underflow when computing n + z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q); + work_matrix.row(p) *= z; + if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z); + } + if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero) { z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q); work_matrix.row(q) *= z; @@ -395,19 +408,25 @@ struct svd_precondition_2x2_block_to_be_real rot.s() = work_matrix.coeff(q,p) / n; work_matrix.applyOnTheLeft(p,q,rot); if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint()); - if(work_matrix.coeff(p,q) != Scalar(0)) + if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero) { - Scalar z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q); + z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q); work_matrix.col(q) *= z; if(svd.computeV()) svd.m_matrixV.col(q) *= z; } - if(work_matrix.coeff(q,q) != Scalar(0)) + if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero) { z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q); work_matrix.row(q) *= z; if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z); } } + + // update largest diagonal entry + maxDiagEntry = max EIGEN_EMPTY (maxDiagEntry,max EIGEN_EMPTY (abs(work_matrix.coeff(p,p)), abs(work_matrix.coeff(q,q)))); + // and check whether the 2x2 block is already diagonal + RealScalar threshold = max EIGEN_EMPTY (considerAsZero, precision * maxDiagEntry); + return abs(work_matrix.coeff(p,q))>threshold || abs(work_matrix.coeff(q,p)) > threshold; } }; @@ -424,22 +443,23 @@ void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q, JacobiRotation rot1; RealScalar t = m.coeff(0,0) + m.coeff(1,1); RealScalar d = m.coeff(1,0) - m.coeff(0,1); - if(t == RealScalar(0)) + if(d == RealScalar(0)) { - rot1.c() = RealScalar(0); - rot1.s() = d > RealScalar(0) ? RealScalar(1) : RealScalar(-1); + rot1.s() = RealScalar(0); + rot1.c() = RealScalar(1); } else { - RealScalar t2d2 = numext::hypot(t,d); - rot1.c() = abs(t)/t2d2; - rot1.s() = d/t2d2; - if(tmakeJacobi(m,0,1); - *j_left = rot1 * j_right->transpose(); + *j_left = rot1 * j_right->transpose(); } } // end namespace internal @@ -816,7 +836,7 @@ void JacobiSVD::allocate(Index rows, Index cols, u if(m_cols>m_rows) m_qr_precond_morecols.allocate(*this); if(m_rows>m_cols) m_qr_precond_morerows.allocate(*this); - if(m_cols!=m_cols) m_scaledMatrix.resize(rows,cols); + if(m_rows!=m_cols) m_scaledMatrix.resize(rows,cols); } template @@ -826,6 +846,7 @@ JacobiSVD::compute(const MatrixType& matrix, unsig check_template_parameters(); using std::abs; + using std::max; allocate(matrix.rows(), matrix.cols(), computationOptions); // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations, @@ -857,6 +878,7 @@ JacobiSVD::compute(const MatrixType& matrix, unsig } /*** step 2. The main Jacobi SVD iteration. ***/ + RealScalar maxDiagEntry = m_workMatrix.cwiseAbs().diagonal().maxCoeff(); bool finished = false; while(!finished) @@ -872,25 +894,27 @@ JacobiSVD::compute(const MatrixType& matrix, unsig // if this 2x2 sub-matrix is not diagonal already... // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't // keep us iterating forever. Similarly, small denormal numbers are considered zero. - using std::max; - RealScalar threshold = (max)(considerAsZero, precision * (max)(abs(m_workMatrix.coeff(p,p)), - abs(m_workMatrix.coeff(q,q)))); - // We compare both values to threshold instead of calling max to be robust to NaN (See bug 791) + RealScalar threshold = max EIGEN_EMPTY (considerAsZero, precision * maxDiagEntry); if(abs(m_workMatrix.coeff(p,q))>threshold || abs(m_workMatrix.coeff(q,p)) > threshold) { finished = false; - // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal - internal::svd_precondition_2x2_block_to_be_real::run(m_workMatrix, *this, p, q); - JacobiRotation j_left, j_right; - internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right); + // the complex to real operation returns true is the updated 2x2 block is not already diagonal + if(internal::svd_precondition_2x2_block_to_be_real::run(m_workMatrix, *this, p, q, maxDiagEntry)) + { + JacobiRotation j_left, j_right; + internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right); - // accumulate resulting Jacobi rotations - m_workMatrix.applyOnTheLeft(p,q,j_left); - if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose()); + // accumulate resulting Jacobi rotations + m_workMatrix.applyOnTheLeft(p,q,j_left); + if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose()); - m_workMatrix.applyOnTheRight(p,q,j_right); - if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right); + m_workMatrix.applyOnTheRight(p,q,j_right); + if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right); + + // keep track of the largest diagonal coefficient + maxDiagEntry = max EIGEN_EMPTY (maxDiagEntry,max EIGEN_EMPTY (abs(m_workMatrix.coeff(p,p)), abs(m_workMatrix.coeff(q,q)))); + } } } } diff --git a/ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD_MKL.h b/ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD_MKL.h similarity index 97% rename from ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD_MKL.h rename to ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD_MKL.h index decda75..14e461c 100644 --- a/ext/eigen-3.2.7/Eigen/src/SVD/JacobiSVD_MKL.h +++ b/ext/eigen-3.2.9/Eigen/src/SVD/JacobiSVD_MKL.h @@ -45,8 +45,8 @@ JacobiSVD, ColPiv JacobiSVD, ColPivHouseholderQRPreconditioner>::compute(const Matrix& matrix, unsigned int computationOptions) \ { \ typedef Matrix MatrixType; \ - typedef MatrixType::Scalar Scalar; \ - typedef MatrixType::RealScalar RealScalar; \ + /*typedef MatrixType::Scalar Scalar;*/ \ + /*typedef MatrixType::RealScalar RealScalar;*/ \ allocate(matrix.rows(), matrix.cols(), computationOptions); \ \ /*const RealScalar precision = RealScalar(2) * NumTraits::epsilon();*/ \ diff --git a/ext/eigen-3.2.7/Eigen/src/SVD/UpperBidiagonalization.h b/ext/eigen-3.2.9/Eigen/src/SVD/UpperBidiagonalization.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SVD/UpperBidiagonalization.h rename to ext/eigen-3.2.9/Eigen/src/SVD/UpperBidiagonalization.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCholesky/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SparseCholesky/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCholesky/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SparseCholesky/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCholesky/SimplicialCholesky.h b/ext/eigen-3.2.9/Eigen/src/SparseCholesky/SimplicialCholesky.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCholesky/SimplicialCholesky.h rename to ext/eigen-3.2.9/Eigen/src/SparseCholesky/SimplicialCholesky.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/ext/eigen-3.2.9/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h rename to ext/eigen-3.2.9/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/AmbiVector.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/AmbiVector.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/AmbiVector.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/AmbiVector.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SparseCore/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SparseCore/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/CompressedStorage.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/CompressedStorage.h similarity index 94% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/CompressedStorage.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/CompressedStorage.h index a667cb5..34cad3d 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/CompressedStorage.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/CompressedStorage.h @@ -102,6 +102,11 @@ class CompressedStorage inline size_t allocatedSize() const { return m_allocatedSize; } inline void clear() { m_size = 0; } + const Scalar* valuePtr() const { return m_values; } + Scalar* valuePtr() { return m_values; } + const Index* indexPtr() const { return m_indices; } + Index* indexPtr() { return m_indices; } + inline Scalar& value(size_t i) { return m_values[i]; } inline const Scalar& value(size_t i) const { return m_values[i]; } @@ -208,8 +213,10 @@ class CompressedStorage Index* newIndices = new Index[size]; size_t copySize = (std::min)(size, m_size); // copy - internal::smart_copy(m_values, m_values+copySize, newValues); - internal::smart_copy(m_indices, m_indices+copySize, newIndices); + if (copySize>0) { + internal::smart_copy(m_values, m_values+copySize, newValues); + internal::smart_copy(m_indices, m_indices+copySize, newIndices); + } // delete old stuff delete[] m_values; delete[] m_indices; diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/MappedSparseMatrix.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/MappedSparseMatrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/MappedSparseMatrix.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/MappedSparseMatrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseBlock.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseBlock.h similarity index 95% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseBlock.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseBlock.h index 0c90baf..ac4124b 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseBlock.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseBlock.h @@ -160,14 +160,14 @@ public: // realloc manually to reduce copies typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz); - std::memcpy(&newdata.value(0), &m_matrix.data().value(0), start*sizeof(Scalar)); - std::memcpy(&newdata.index(0), &m_matrix.data().index(0), start*sizeof(Index)); + std::memcpy(newdata.valuePtr(), m_matrix.data().valuePtr(), start*sizeof(Scalar)); + std::memcpy(newdata.indexPtr(), m_matrix.data().indexPtr(), start*sizeof(Index)); - std::memcpy(&newdata.value(start), &tmp.data().value(0), nnz*sizeof(Scalar)); - std::memcpy(&newdata.index(start), &tmp.data().index(0), nnz*sizeof(Index)); + std::memcpy(newdata.valuePtr() + start, tmp.data().valuePtr(), nnz*sizeof(Scalar)); + std::memcpy(newdata.indexPtr() + start, tmp.data().indexPtr(), nnz*sizeof(Index)); - std::memcpy(&newdata.value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar)); - std::memcpy(&newdata.index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index)); + std::memcpy(newdata.valuePtr()+start+nnz, matrix.data().valuePtr()+end, tail_size*sizeof(Scalar)); + std::memcpy(newdata.indexPtr()+start+nnz, matrix.data().indexPtr()+end, tail_size*sizeof(Index)); newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz); @@ -178,11 +178,11 @@ public: // no need to realloc, simply copy the tail at its respective position and insert tmp matrix.data().resize(start + nnz + tail_size); - std::memmove(&matrix.data().value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar)); - std::memmove(&matrix.data().index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index)); + std::memmove(matrix.data().valuePtr()+start+nnz, matrix.data().valuePtr()+end, tail_size*sizeof(Scalar)); + std::memmove(matrix.data().indexPtr()+start+nnz, matrix.data().indexPtr()+end, tail_size*sizeof(Index)); - std::memcpy(&matrix.data().value(start), &tmp.data().value(0), nnz*sizeof(Scalar)); - std::memcpy(&matrix.data().index(start), &tmp.data().index(0), nnz*sizeof(Index)); + std::memcpy(matrix.data().valuePtr()+start, tmp.data().valuePtr(), nnz*sizeof(Scalar)); + std::memcpy(matrix.data().indexPtr()+start, tmp.data().indexPtr(), nnz*sizeof(Index)); } // update innerNonZeros @@ -364,10 +364,11 @@ public: protected: + EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) + typename SparseMatrixType::Nested m_matrix; Index m_outerStart; const internal::variable_if_dynamic m_outerSize; - }; //---------- @@ -528,10 +529,10 @@ public: const internal::variable_if_dynamic m_startCol; const internal::variable_if_dynamic m_blockRows; const internal::variable_if_dynamic m_blockCols; - + private: + Index nonZeros() const; }; } // end namespace Eigen #endif // EIGEN_SPARSE_BLOCK_H - diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseColEtree.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseColEtree.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseColEtree.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseColEtree.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseCwiseBinaryOp.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseCwiseBinaryOp.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseCwiseBinaryOp.h index 4ca9128..5462737 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseCwiseBinaryOp.h @@ -55,10 +55,9 @@ class CwiseBinaryOpImpl EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) CwiseBinaryOpImpl() { - typedef typename internal::traits::StorageKind LhsStorageKind; - typedef typename internal::traits::StorageKind RhsStorageKind; EIGEN_STATIC_ASSERT(( - (!internal::is_same::value) + (!internal::is_same::StorageKind, + typename internal::traits::StorageKind>::value) || ((Lhs::Flags&RowMajorBit) == (Rhs::Flags&RowMajorBit))), THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH); } diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseCwiseUnaryOp.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseCwiseUnaryOp.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseCwiseUnaryOp.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDenseProduct.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDenseProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDenseProduct.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDenseProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDiagonalProduct.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDiagonalProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDiagonalProduct.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDiagonalProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDot.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDot.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseDot.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseDot.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseFuzzy.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseFuzzy.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseFuzzy.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseFuzzy.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrix.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrix.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrix.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrix.h index 2ff2015..3b8946a 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrix.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrix.h @@ -128,20 +128,20 @@ class SparseMatrix /** \returns a const pointer to the array of values. * This function is aimed at interoperability with other libraries. * \sa innerIndexPtr(), outerIndexPtr() */ - inline const Scalar* valuePtr() const { return &m_data.value(0); } + inline const Scalar* valuePtr() const { return m_data.valuePtr(); } /** \returns a non-const pointer to the array of values. * This function is aimed at interoperability with other libraries. * \sa innerIndexPtr(), outerIndexPtr() */ - inline Scalar* valuePtr() { return &m_data.value(0); } + inline Scalar* valuePtr() { return m_data.valuePtr(); } /** \returns a const pointer to the array of inner indices. * This function is aimed at interoperability with other libraries. * \sa valuePtr(), outerIndexPtr() */ - inline const Index* innerIndexPtr() const { return &m_data.index(0); } + inline const Index* innerIndexPtr() const { return m_data.indexPtr(); } /** \returns a non-const pointer to the array of inner indices. * This function is aimed at interoperability with other libraries. * \sa valuePtr(), outerIndexPtr() */ - inline Index* innerIndexPtr() { return &m_data.index(0); } + inline Index* innerIndexPtr() { return m_data.indexPtr(); } /** \returns a const pointer to the array of the starting positions of the inner vectors. * This function is aimed at interoperability with other libraries. @@ -697,8 +697,8 @@ class SparseMatrix { eigen_assert(rows() == cols() && "ONLY FOR SQUARED MATRICES"); this->m_data.resize(rows()); - Eigen::Map >(&this->m_data.index(0), rows()).setLinSpaced(0, rows()-1); - Eigen::Map >(&this->m_data.value(0), rows()).setOnes(); + Eigen::Map >(this->m_data.indexPtr(), rows()).setLinSpaced(0, rows()-1); + Eigen::Map >(this->m_data.valuePtr(), rows()).setOnes(); Eigen::Map >(this->m_outerIndex, rows()+1).setLinSpaced(0, rows()); std::free(m_innerNonZeros); m_innerNonZeros = 0; diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrixBase.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrixBase.h similarity index 99% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrixBase.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrixBase.h index 9341d9a..6f4a47c 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseMatrixBase.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseMatrixBase.h @@ -38,6 +38,7 @@ template class SparseMatrixBase typedef typename internal::packet_traits::type PacketScalar; typedef typename internal::traits::StorageKind StorageKind; typedef typename internal::traits::Index Index; + typedef typename internal::traits::Index StorageIndex; typedef typename internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits::type >::type PacketReturnType; diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparsePermutation.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparsePermutation.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparsePermutation.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparsePermutation.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseProduct.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseProduct.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseProduct.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseProduct.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseRedux.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseRedux.h similarity index 86% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseRedux.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseRedux.h index f3da93a..51ed9ae 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseRedux.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseRedux.h @@ -29,7 +29,10 @@ typename internal::traits >::Scalar SparseMatrix<_Scalar,_Options,_Index>::sum() const { eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); - return Matrix::Map(&m_data.value(0), m_data.size()).sum(); + if(this->isCompressed()) + return Matrix::Map(m_data.valuePtr(), m_data.size()).sum(); + else + return Base::sum(); } template @@ -37,7 +40,7 @@ typename internal::traits >::Scalar SparseVector<_Scalar,_Options,_Index>::sum() const { eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); - return Matrix::Map(&m_data.value(0), m_data.size()).sum(); + return Matrix::Map(m_data.valuePtr(), m_data.size()).sum(); } } // end namespace Eigen diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseSelfAdjointView.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseSelfAdjointView.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseSelfAdjointView.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseSelfAdjointView.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h similarity index 98% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/SparseSparseProductWithPruning.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h index fcc18f5..55b84a4 100644 --- a/ext/eigen-3.2.7/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +++ b/ext/eigen-3.2.9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h @@ -48,7 +48,7 @@ static void sparse_sparse_product_with_pruning_impl(const Lhs& lhs, const Rhs& r res.resize(rows, cols); res.reserve(estimated_nnz_prod); - double ratioColRes = double(estimated_nnz_prod)/double(lhs.rows()*rhs.cols()); + double ratioColRes = double(estimated_nnz_prod)/(double(lhs.rows())*double(rhs.cols())); for (Index j=0; j > public: EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView) - SparseView(const MatrixType& mat, const Scalar& m_reference = Scalar(0), - typename NumTraits::Real m_epsilon = NumTraits::dummy_precision()) : - m_matrix(mat), m_reference(m_reference), m_epsilon(m_epsilon) {} + explicit SparseView(const MatrixType& mat, const Scalar& reference = Scalar(0), + const RealScalar &epsilon = NumTraits::dummy_precision()) + : m_matrix(mat), m_reference(reference), m_epsilon(epsilon) {} class InnerIterator; diff --git a/ext/eigen-3.2.7/Eigen/src/SparseCore/TriangularSolver.h b/ext/eigen-3.2.9/Eigen/src/SparseCore/TriangularSolver.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseCore/TriangularSolver.h rename to ext/eigen-3.2.9/Eigen/src/SparseCore/TriangularSolver.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SparseLU/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SparseLU/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLUImpl.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLUImpl.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLUImpl.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLUImpl.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Memory.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Memory.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Memory.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Memory.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Structs.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Structs.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Structs.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Structs.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Utils.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Utils.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_Utils.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_Utils.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_column_bmod.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_column_bmod.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_column_bmod.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_column_bmod.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_column_dfs.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_column_dfs.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_column_dfs.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_column_dfs.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_gemm_kernel.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_gemm_kernel.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_gemm_kernel.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_kernel_bmod.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_kernel_bmod.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_kernel_bmod.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_panel_bmod.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_panel_bmod.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_panel_bmod.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_panel_dfs.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_panel_dfs.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_panel_dfs.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_pivotL.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_pivotL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_pivotL.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_pivotL.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_pruneL.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_pruneL.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_pruneL.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_pruneL.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_relax_snode.h b/ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_relax_snode.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseLU/SparseLU_relax_snode.h rename to ext/eigen-3.2.9/Eigen/src/SparseLU/SparseLU_relax_snode.h diff --git a/ext/eigen-3.2.7/Eigen/src/SparseQR/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SparseQR/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseQR/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SparseQR/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SparseQR/SparseQR.h b/ext/eigen-3.2.9/Eigen/src/SparseQR/SparseQR.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SparseQR/SparseQR.h rename to ext/eigen-3.2.9/Eigen/src/SparseQR/SparseQR.h diff --git a/ext/eigen-3.2.7/Eigen/src/StlSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/StlSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/StlSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/StlSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/StlSupport/StdDeque.h b/ext/eigen-3.2.9/Eigen/src/StlSupport/StdDeque.h similarity index 88% rename from ext/eigen-3.2.7/Eigen/src/StlSupport/StdDeque.h rename to ext/eigen-3.2.9/Eigen/src/StlSupport/StdDeque.h index aaf6633..69a46b2 100644 --- a/ext/eigen-3.2.7/Eigen/src/StlSupport/StdDeque.h +++ b/ext/eigen-3.2.9/Eigen/src/StlSupport/StdDeque.h @@ -13,32 +13,24 @@ #include "details.h" -// Define the explicit instantiation (e.g. necessary for the Intel compiler) -#if defined(__INTEL_COMPILER) || defined(__GNUC__) - #define EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(...) template class std::deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> >; -#else - #define EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(...) -#endif - /** * This section contains a convenience MACRO which allows an easy specialization of * std::deque such that for data types with alignment issues the correct allocator * is used automatically. */ #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) \ -EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(__VA_ARGS__) \ namespace std \ { \ - template \ - class deque<__VA_ARGS__, _Ay> \ + template<> \ + class deque<__VA_ARGS__, std::allocator<__VA_ARGS__> > \ : public deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \ { \ typedef deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > deque_base; \ public: \ typedef __VA_ARGS__ value_type; \ - typedef typename deque_base::allocator_type allocator_type; \ - typedef typename deque_base::size_type size_type; \ - typedef typename deque_base::iterator iterator; \ + typedef deque_base::allocator_type allocator_type; \ + typedef deque_base::size_type size_type; \ + typedef deque_base::iterator iterator; \ explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {} \ template \ deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : deque_base(first, last, a) {} \ diff --git a/ext/eigen-3.2.7/Eigen/src/StlSupport/StdList.h b/ext/eigen-3.2.9/Eigen/src/StlSupport/StdList.h similarity index 86% rename from ext/eigen-3.2.7/Eigen/src/StlSupport/StdList.h rename to ext/eigen-3.2.9/Eigen/src/StlSupport/StdList.h index 3c74243..050c237 100644 --- a/ext/eigen-3.2.7/Eigen/src/StlSupport/StdList.h +++ b/ext/eigen-3.2.9/Eigen/src/StlSupport/StdList.h @@ -12,32 +12,24 @@ #include "details.h" -// Define the explicit instantiation (e.g. necessary for the Intel compiler) -#if defined(__INTEL_COMPILER) || defined(__GNUC__) - #define EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(...) template class std::list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> >; -#else - #define EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(...) -#endif - /** * This section contains a convenience MACRO which allows an easy specialization of * std::list such that for data types with alignment issues the correct allocator * is used automatically. */ #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) \ -EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(__VA_ARGS__) \ namespace std \ { \ - template \ - class list<__VA_ARGS__, _Ay> \ + template<> \ + class list<__VA_ARGS__, std::allocator<__VA_ARGS__> > \ : public list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \ { \ typedef list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > list_base; \ public: \ typedef __VA_ARGS__ value_type; \ - typedef typename list_base::allocator_type allocator_type; \ - typedef typename list_base::size_type size_type; \ - typedef typename list_base::iterator iterator; \ + typedef list_base::allocator_type allocator_type; \ + typedef list_base::size_type size_type; \ + typedef list_base::iterator iterator; \ explicit list(const allocator_type& a = allocator_type()) : list_base(a) {} \ template \ list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : list_base(first, last, a) {} \ diff --git a/ext/eigen-3.2.7/Eigen/src/StlSupport/StdVector.h b/ext/eigen-3.2.9/Eigen/src/StlSupport/StdVector.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/StlSupport/StdVector.h rename to ext/eigen-3.2.9/Eigen/src/StlSupport/StdVector.h diff --git a/ext/eigen-3.2.7/Eigen/src/StlSupport/details.h b/ext/eigen-3.2.9/Eigen/src/StlSupport/details.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/StlSupport/details.h rename to ext/eigen-3.2.9/Eigen/src/StlSupport/details.h diff --git a/ext/eigen-3.2.7/Eigen/src/SuperLUSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/SuperLUSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SuperLUSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/SuperLUSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/SuperLUSupport/SuperLUSupport.h b/ext/eigen-3.2.9/Eigen/src/SuperLUSupport/SuperLUSupport.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/SuperLUSupport/SuperLUSupport.h rename to ext/eigen-3.2.9/Eigen/src/SuperLUSupport/SuperLUSupport.h diff --git a/ext/eigen-3.2.7/Eigen/src/UmfPackSupport/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/UmfPackSupport/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/UmfPackSupport/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/UmfPackSupport/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/UmfPackSupport/UmfPackSupport.h b/ext/eigen-3.2.9/Eigen/src/UmfPackSupport/UmfPackSupport.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/UmfPackSupport/UmfPackSupport.h rename to ext/eigen-3.2.9/Eigen/src/UmfPackSupport/UmfPackSupport.h diff --git a/ext/eigen-3.2.7/Eigen/src/misc/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/misc/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/misc/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/misc/Image.h b/ext/eigen-3.2.9/Eigen/src/misc/Image.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/Image.h rename to ext/eigen-3.2.9/Eigen/src/misc/Image.h diff --git a/ext/eigen-3.2.7/Eigen/src/misc/Kernel.h b/ext/eigen-3.2.9/Eigen/src/misc/Kernel.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/Kernel.h rename to ext/eigen-3.2.9/Eigen/src/misc/Kernel.h diff --git a/ext/eigen-3.2.7/Eigen/src/misc/Solve.h b/ext/eigen-3.2.9/Eigen/src/misc/Solve.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/Solve.h rename to ext/eigen-3.2.9/Eigen/src/misc/Solve.h diff --git a/ext/eigen-3.2.7/Eigen/src/misc/SparseSolve.h b/ext/eigen-3.2.9/Eigen/src/misc/SparseSolve.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/SparseSolve.h rename to ext/eigen-3.2.9/Eigen/src/misc/SparseSolve.h diff --git a/ext/eigen-3.2.7/Eigen/src/misc/blas.h b/ext/eigen-3.2.9/Eigen/src/misc/blas.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/misc/blas.h rename to ext/eigen-3.2.9/Eigen/src/misc/blas.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/ArrayCwiseBinaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/ArrayCwiseBinaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/ArrayCwiseBinaryOps.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/ArrayCwiseUnaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/ArrayCwiseUnaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/ArrayCwiseUnaryOps.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/BlockMethods.h b/ext/eigen-3.2.9/Eigen/src/plugins/BlockMethods.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/BlockMethods.h rename to ext/eigen-3.2.9/Eigen/src/plugins/BlockMethods.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/CMakeLists.txt b/ext/eigen-3.2.9/Eigen/src/plugins/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/CMakeLists.txt rename to ext/eigen-3.2.9/Eigen/src/plugins/CMakeLists.txt diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/CommonCwiseBinaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/CommonCwiseBinaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/CommonCwiseBinaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/CommonCwiseBinaryOps.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/CommonCwiseUnaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/CommonCwiseUnaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/CommonCwiseUnaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/CommonCwiseUnaryOps.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/MatrixCwiseBinaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/MatrixCwiseBinaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/MatrixCwiseBinaryOps.h diff --git a/ext/eigen-3.2.7/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/ext/eigen-3.2.9/Eigen/src/plugins/MatrixCwiseUnaryOps.h similarity index 100% rename from ext/eigen-3.2.7/Eigen/src/plugins/MatrixCwiseUnaryOps.h rename to ext/eigen-3.2.9/Eigen/src/plugins/MatrixCwiseUnaryOps.h diff --git a/ext/eigen-3.2.7/INSTALL b/ext/eigen-3.2.9/INSTALL similarity index 100% rename from ext/eigen-3.2.7/INSTALL rename to ext/eigen-3.2.9/INSTALL diff --git a/ext/eigen-3.2.7/bench/BenchSparseUtil.h b/ext/eigen-3.2.9/bench/BenchSparseUtil.h similarity index 100% rename from ext/eigen-3.2.7/bench/BenchSparseUtil.h rename to ext/eigen-3.2.9/bench/BenchSparseUtil.h diff --git a/ext/eigen-3.2.7/bench/BenchTimer.h b/ext/eigen-3.2.9/bench/BenchTimer.h similarity index 100% rename from ext/eigen-3.2.7/bench/BenchTimer.h rename to ext/eigen-3.2.9/bench/BenchTimer.h diff --git a/ext/eigen-3.2.7/bench/BenchUtil.h b/ext/eigen-3.2.9/bench/BenchUtil.h similarity index 100% rename from ext/eigen-3.2.7/bench/BenchUtil.h rename to ext/eigen-3.2.9/bench/BenchUtil.h diff --git a/ext/eigen-3.2.7/bench/README.txt b/ext/eigen-3.2.9/bench/README.txt similarity index 100% rename from ext/eigen-3.2.7/bench/README.txt rename to ext/eigen-3.2.9/bench/README.txt diff --git a/ext/eigen-3.2.7/bench/basicbench.cxxlist b/ext/eigen-3.2.9/bench/basicbench.cxxlist similarity index 100% rename from ext/eigen-3.2.7/bench/basicbench.cxxlist rename to ext/eigen-3.2.9/bench/basicbench.cxxlist diff --git a/ext/eigen-3.2.7/bench/basicbenchmark.cpp b/ext/eigen-3.2.9/bench/basicbenchmark.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/basicbenchmark.cpp rename to ext/eigen-3.2.9/bench/basicbenchmark.cpp diff --git a/ext/eigen-3.2.7/bench/basicbenchmark.h b/ext/eigen-3.2.9/bench/basicbenchmark.h similarity index 100% rename from ext/eigen-3.2.7/bench/basicbenchmark.h rename to ext/eigen-3.2.9/bench/basicbenchmark.h diff --git a/ext/eigen-3.2.7/bench/benchBlasGemm.cpp b/ext/eigen-3.2.9/bench/benchBlasGemm.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchBlasGemm.cpp rename to ext/eigen-3.2.9/bench/benchBlasGemm.cpp diff --git a/ext/eigen-3.2.7/bench/benchCholesky.cpp b/ext/eigen-3.2.9/bench/benchCholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchCholesky.cpp rename to ext/eigen-3.2.9/bench/benchCholesky.cpp diff --git a/ext/eigen-3.2.7/bench/benchEigenSolver.cpp b/ext/eigen-3.2.9/bench/benchEigenSolver.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchEigenSolver.cpp rename to ext/eigen-3.2.9/bench/benchEigenSolver.cpp diff --git a/ext/eigen-3.2.7/bench/benchFFT.cpp b/ext/eigen-3.2.9/bench/benchFFT.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchFFT.cpp rename to ext/eigen-3.2.9/bench/benchFFT.cpp diff --git a/ext/eigen-3.2.7/bench/benchGeometry.cpp b/ext/eigen-3.2.9/bench/benchGeometry.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchGeometry.cpp rename to ext/eigen-3.2.9/bench/benchGeometry.cpp diff --git a/ext/eigen-3.2.7/bench/benchVecAdd.cpp b/ext/eigen-3.2.9/bench/benchVecAdd.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchVecAdd.cpp rename to ext/eigen-3.2.9/bench/benchVecAdd.cpp diff --git a/ext/eigen-3.2.7/bench/bench_gemm.cpp b/ext/eigen-3.2.9/bench/bench_gemm.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/bench_gemm.cpp rename to ext/eigen-3.2.9/bench/bench_gemm.cpp diff --git a/ext/eigen-3.2.7/bench/bench_multi_compilers.sh b/ext/eigen-3.2.9/bench/bench_multi_compilers.sh similarity index 100% rename from ext/eigen-3.2.7/bench/bench_multi_compilers.sh rename to ext/eigen-3.2.9/bench/bench_multi_compilers.sh diff --git a/ext/eigen-3.2.7/bench/bench_norm.cpp b/ext/eigen-3.2.9/bench/bench_norm.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/bench_norm.cpp rename to ext/eigen-3.2.9/bench/bench_norm.cpp diff --git a/ext/eigen-3.2.7/bench/bench_reverse.cpp b/ext/eigen-3.2.9/bench/bench_reverse.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/bench_reverse.cpp rename to ext/eigen-3.2.9/bench/bench_reverse.cpp diff --git a/ext/eigen-3.2.7/bench/bench_sum.cpp b/ext/eigen-3.2.9/bench/bench_sum.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/bench_sum.cpp rename to ext/eigen-3.2.9/bench/bench_sum.cpp diff --git a/ext/eigen-3.2.7/bench/bench_unrolling b/ext/eigen-3.2.9/bench/bench_unrolling similarity index 100% rename from ext/eigen-3.2.7/bench/bench_unrolling rename to ext/eigen-3.2.9/bench/bench_unrolling diff --git a/ext/eigen-3.2.7/bench/benchmark.cpp b/ext/eigen-3.2.9/bench/benchmark.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchmark.cpp rename to ext/eigen-3.2.9/bench/benchmark.cpp diff --git a/ext/eigen-3.2.7/bench/benchmarkSlice.cpp b/ext/eigen-3.2.9/bench/benchmarkSlice.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchmarkSlice.cpp rename to ext/eigen-3.2.9/bench/benchmarkSlice.cpp diff --git a/ext/eigen-3.2.7/bench/benchmarkX.cpp b/ext/eigen-3.2.9/bench/benchmarkX.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchmarkX.cpp rename to ext/eigen-3.2.9/bench/benchmarkX.cpp diff --git a/ext/eigen-3.2.7/bench/benchmarkXcwise.cpp b/ext/eigen-3.2.9/bench/benchmarkXcwise.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/benchmarkXcwise.cpp rename to ext/eigen-3.2.9/bench/benchmarkXcwise.cpp diff --git a/ext/eigen-3.2.7/bench/benchmark_suite b/ext/eigen-3.2.9/bench/benchmark_suite similarity index 100% rename from ext/eigen-3.2.7/bench/benchmark_suite rename to ext/eigen-3.2.9/bench/benchmark_suite diff --git a/ext/eigen-3.2.7/bench/btl/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/COPYING b/ext/eigen-3.2.9/bench/btl/COPYING similarity index 100% rename from ext/eigen-3.2.7/bench/btl/COPYING rename to ext/eigen-3.2.9/bench/btl/COPYING diff --git a/ext/eigen-3.2.7/bench/btl/README b/ext/eigen-3.2.9/bench/btl/README similarity index 100% rename from ext/eigen-3.2.7/bench/btl/README rename to ext/eigen-3.2.9/bench/btl/README diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_aat_product.hh b/ext/eigen-3.2.9/bench/btl/actions/action_aat_product.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_aat_product.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_aat_product.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_ata_product.hh b/ext/eigen-3.2.9/bench/btl/actions/action_ata_product.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_ata_product.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_ata_product.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_atv_product.hh b/ext/eigen-3.2.9/bench/btl/actions/action_atv_product.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_atv_product.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_atv_product.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_axpby.hh b/ext/eigen-3.2.9/bench/btl/actions/action_axpby.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_axpby.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_axpby.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_axpy.hh b/ext/eigen-3.2.9/bench/btl/actions/action_axpy.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_axpy.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_axpy.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_cholesky.hh b/ext/eigen-3.2.9/bench/btl/actions/action_cholesky.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_cholesky.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_cholesky.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_ger.hh b/ext/eigen-3.2.9/bench/btl/actions/action_ger.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_ger.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_ger.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_hessenberg.hh b/ext/eigen-3.2.9/bench/btl/actions/action_hessenberg.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_hessenberg.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_hessenberg.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_lu_decomp.hh b/ext/eigen-3.2.9/bench/btl/actions/action_lu_decomp.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_lu_decomp.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_lu_decomp.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_lu_solve.hh b/ext/eigen-3.2.9/bench/btl/actions/action_lu_solve.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_lu_solve.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_lu_solve.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_matrix_matrix_product.hh b/ext/eigen-3.2.9/bench/btl/actions/action_matrix_matrix_product.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_matrix_matrix_product.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_matrix_matrix_product.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_matrix_matrix_product_bis.hh b/ext/eigen-3.2.9/bench/btl/actions/action_matrix_matrix_product_bis.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_matrix_matrix_product_bis.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_matrix_matrix_product_bis.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_matrix_vector_product.hh b/ext/eigen-3.2.9/bench/btl/actions/action_matrix_vector_product.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_matrix_vector_product.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_matrix_vector_product.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_partial_lu.hh b/ext/eigen-3.2.9/bench/btl/actions/action_partial_lu.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_partial_lu.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_partial_lu.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_rot.hh b/ext/eigen-3.2.9/bench/btl/actions/action_rot.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_rot.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_rot.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_symv.hh b/ext/eigen-3.2.9/bench/btl/actions/action_symv.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_symv.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_symv.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_syr2.hh b/ext/eigen-3.2.9/bench/btl/actions/action_syr2.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_syr2.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_syr2.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_trisolve.hh b/ext/eigen-3.2.9/bench/btl/actions/action_trisolve.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_trisolve.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_trisolve.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_trisolve_matrix.hh b/ext/eigen-3.2.9/bench/btl/actions/action_trisolve_matrix.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_trisolve_matrix.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_trisolve_matrix.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/action_trmm.hh b/ext/eigen-3.2.9/bench/btl/actions/action_trmm.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/action_trmm.hh rename to ext/eigen-3.2.9/bench/btl/actions/action_trmm.hh diff --git a/ext/eigen-3.2.7/bench/btl/actions/basic_actions.hh b/ext/eigen-3.2.9/bench/btl/actions/basic_actions.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/actions/basic_actions.hh rename to ext/eigen-3.2.9/bench/btl/actions/basic_actions.hh diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindACML.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindACML.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindACML.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindACML.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindATLAS.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindATLAS.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindATLAS.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindATLAS.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindBlitz.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindBlitz.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindBlitz.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindBlitz.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindCBLAS.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindCBLAS.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindCBLAS.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindCBLAS.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindGMM.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindGMM.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindGMM.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindGMM.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindGOTO.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindGOTO.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindGOTO.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindGOTO.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindGOTO2.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindGOTO2.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindGOTO2.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindGOTO2.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindMKL.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindMKL.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindMKL.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindMKL.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindMTL4.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindMTL4.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindMTL4.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindMTL4.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindPackageHandleStandardArgs.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindPackageHandleStandardArgs.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindPackageHandleStandardArgs.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindPackageHandleStandardArgs.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/FindTvmet.cmake b/ext/eigen-3.2.9/bench/btl/cmake/FindTvmet.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/FindTvmet.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/FindTvmet.cmake diff --git a/ext/eigen-3.2.7/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake b/ext/eigen-3.2.9/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake similarity index 100% rename from ext/eigen-3.2.7/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake rename to ext/eigen-3.2.9/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/bench.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/bench.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/bench.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/bench.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/bench_parameter.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/bench_parameter.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/bench_parameter.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/bench_parameter.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/btl.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/btl.hh similarity index 95% rename from ext/eigen-3.2.7/bench/btl/generic_bench/btl.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/btl.hh index f1a88ff..86a8438 100644 --- a/ext/eigen-3.2.7/bench/btl/generic_bench/btl.hh +++ b/ext/eigen-3.2.9/bench/btl/generic_bench/btl.hh @@ -44,15 +44,10 @@ #define BTL_ASM_COMMENT(X) #endif -#if (defined __GNUC__) && (!defined __INTEL_COMPILER) && !defined(__arm__) && !defined(__powerpc__) -#define BTL_DISABLE_SSE_EXCEPTIONS() { \ - int aux; \ - asm( \ - "stmxcsr %[aux] \n\t" \ - "orl $32832, %[aux] \n\t" \ - "ldmxcsr %[aux] \n\t" \ - : : [aux] "m" (aux)); \ -} +#ifdef __SSE__ +#include "xmmintrin.h" +// This enables flush to zero (FTZ) and denormals are zero (DAZ) modes: +#define BTL_DISABLE_SSE_EXCEPTIONS() { _mm_setcsr(_mm_getcsr() | 0x8040); } #else #define BTL_DISABLE_SSE_EXCEPTIONS() #endif diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/init/init_function.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/init/init_function.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/init/init_function.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/init/init_function.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/init/init_matrix.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/init/init_matrix.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/init/init_matrix.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/init/init_matrix.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/init/init_vector.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/init/init_vector.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/init/init_vector.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/init/init_vector.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/static/bench_static.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/static/bench_static.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/static/bench_static.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/static/bench_static.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/static/intel_bench_fixed_size.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/static/intel_bench_fixed_size.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/static/intel_bench_fixed_size.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/static/intel_bench_fixed_size.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/static/static_size_generator.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/static/static_size_generator.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/static/static_size_generator.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/static/static_size_generator.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/STL_perf_analyzer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/STL_perf_analyzer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/STL_perf_analyzer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/STL_perf_analyzer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/STL_timer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/STL_timer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/STL_timer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/STL_timer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_perf_analyzer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_perf_analyzer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_perf_analyzer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_perf_analyzer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_timer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_timer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/portable_timer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/portable_timer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/x86_perf_analyzer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/x86_perf_analyzer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/x86_perf_analyzer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/x86_perf_analyzer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/timers/x86_timer.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/timers/x86_timer.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/timers/x86_timer.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/timers/x86_timer.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/utils/size_lin_log.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/utils/size_lin_log.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/utils/size_lin_log.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/utils/size_lin_log.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/utils/size_log.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/utils/size_log.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/utils/size_log.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/utils/size_log.hh diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/utils/utilities.h b/ext/eigen-3.2.9/bench/btl/generic_bench/utils/utilities.h similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/utils/utilities.h rename to ext/eigen-3.2.9/bench/btl/generic_bench/utils/utilities.h diff --git a/ext/eigen-3.2.7/bench/btl/generic_bench/utils/xy_file.hh b/ext/eigen-3.2.9/bench/btl/generic_bench/utils/xy_file.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/generic_bench/utils/xy_file.hh rename to ext/eigen-3.2.9/bench/btl/generic_bench/utils/xy_file.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/BLAS/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/blas.h b/ext/eigen-3.2.9/bench/btl/libs/BLAS/blas.h similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/blas.h rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/blas.h diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/blas_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/BLAS/blas_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/blas_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/blas_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/blas_interface_impl.hh b/ext/eigen-3.2.9/bench/btl/libs/BLAS/blas_interface_impl.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/blas_interface_impl.hh rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/blas_interface_impl.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/c_interface_base.h b/ext/eigen-3.2.9/bench/btl/libs/BLAS/c_interface_base.h similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/c_interface_base.h rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/c_interface_base.h diff --git a/ext/eigen-3.2.7/bench/btl/libs/BLAS/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/BLAS/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/BLAS/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/BLAS/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/STL/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/STL/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/STL/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/STL/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/STL/STL_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/STL/STL_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/STL/STL_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/STL/STL_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/STL/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/STL/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/STL/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/STL/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/blitz/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/blitz/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/blitz_LU_solve_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/blitz/blitz_LU_solve_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/blitz_LU_solve_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/blitz/blitz_LU_solve_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/blitz_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/blitz/blitz_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/blitz_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/blitz/blitz_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/btl_blitz.cpp b/ext/eigen-3.2.9/bench/btl/libs/blitz/btl_blitz.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/btl_blitz.cpp rename to ext/eigen-3.2.9/bench/btl/libs/blitz/btl_blitz.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/btl_tiny_blitz.cpp b/ext/eigen-3.2.9/bench/btl/libs/blitz/btl_tiny_blitz.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/btl_tiny_blitz.cpp rename to ext/eigen-3.2.9/bench/btl/libs/blitz/btl_tiny_blitz.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/blitz/tiny_blitz_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/blitz/tiny_blitz_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/blitz/tiny_blitz_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/blitz/tiny_blitz_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/eigen2/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/eigen2_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/eigen2/eigen2_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/eigen2_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/eigen2_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/main_adv.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen2/main_adv.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/main_adv.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/main_adv.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/main_linear.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen2/main_linear.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/main_linear.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/main_linear.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/main_matmat.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen2/main_matmat.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/main_matmat.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/main_matmat.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen2/main_vecmat.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen2/main_vecmat.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen2/main_vecmat.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen2/main_vecmat.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/eigen3/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/eigen3_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/eigen3/eigen3_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/eigen3_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/eigen3_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/main_adv.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen3/main_adv.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/main_adv.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/main_adv.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/main_linear.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen3/main_linear.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/main_linear.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/main_linear.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/main_matmat.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen3/main_matmat.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/main_matmat.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/main_matmat.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/eigen3/main_vecmat.cpp b/ext/eigen-3.2.9/bench/btl/libs/eigen3/main_vecmat.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/eigen3/main_vecmat.cpp rename to ext/eigen-3.2.9/bench/btl/libs/eigen3/main_vecmat.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/gmm/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/gmm/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/gmm/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/gmm/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/gmm/gmm_LU_solve_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/gmm/gmm_LU_solve_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/gmm/gmm_LU_solve_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/gmm/gmm_LU_solve_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/gmm/gmm_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/gmm/gmm_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/gmm/gmm_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/gmm/gmm_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/gmm/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/gmm/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/gmm/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/gmm/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/mtl4/.kdbgrc.main b/ext/eigen-3.2.9/bench/btl/libs/mtl4/.kdbgrc.main similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/mtl4/.kdbgrc.main rename to ext/eigen-3.2.9/bench/btl/libs/mtl4/.kdbgrc.main diff --git a/ext/eigen-3.2.7/bench/btl/libs/mtl4/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/mtl4/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/mtl4/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/mtl4/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/mtl4/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/mtl4/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/mtl4/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/mtl4/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/mtl4/mtl4_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/mtl4/mtl4_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/mtl4/mtl4_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/mtl4/mtl4_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/tvmet/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/tvmet/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/tvmet/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/tvmet/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/tvmet/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/tvmet/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/tvmet/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/tvmet/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/tvmet/tvmet_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/tvmet/tvmet_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/tvmet/tvmet_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/tvmet/tvmet_interface.hh diff --git a/ext/eigen-3.2.7/bench/btl/libs/ublas/CMakeLists.txt b/ext/eigen-3.2.9/bench/btl/libs/ublas/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/ublas/CMakeLists.txt rename to ext/eigen-3.2.9/bench/btl/libs/ublas/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/btl/libs/ublas/main.cpp b/ext/eigen-3.2.9/bench/btl/libs/ublas/main.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/ublas/main.cpp rename to ext/eigen-3.2.9/bench/btl/libs/ublas/main.cpp diff --git a/ext/eigen-3.2.7/bench/btl/libs/ublas/ublas_interface.hh b/ext/eigen-3.2.9/bench/btl/libs/ublas/ublas_interface.hh similarity index 100% rename from ext/eigen-3.2.7/bench/btl/libs/ublas/ublas_interface.hh rename to ext/eigen-3.2.9/bench/btl/libs/ublas/ublas_interface.hh diff --git a/ext/eigen-3.2.7/bench/check_cache_queries.cpp b/ext/eigen-3.2.9/bench/check_cache_queries.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/check_cache_queries.cpp rename to ext/eigen-3.2.9/bench/check_cache_queries.cpp diff --git a/ext/eigen-3.2.7/bench/eig33.cpp b/ext/eigen-3.2.9/bench/eig33.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/eig33.cpp rename to ext/eigen-3.2.9/bench/eig33.cpp diff --git a/ext/eigen-3.2.7/bench/geometry.cpp b/ext/eigen-3.2.9/bench/geometry.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/geometry.cpp rename to ext/eigen-3.2.9/bench/geometry.cpp diff --git a/ext/eigen-3.2.7/bench/product_threshold.cpp b/ext/eigen-3.2.9/bench/product_threshold.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/product_threshold.cpp rename to ext/eigen-3.2.9/bench/product_threshold.cpp diff --git a/ext/eigen-3.2.7/bench/quat_slerp.cpp b/ext/eigen-3.2.9/bench/quat_slerp.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/quat_slerp.cpp rename to ext/eigen-3.2.9/bench/quat_slerp.cpp diff --git a/ext/eigen-3.2.7/bench/quatmul.cpp b/ext/eigen-3.2.9/bench/quatmul.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/quatmul.cpp rename to ext/eigen-3.2.9/bench/quatmul.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_cholesky.cpp b/ext/eigen-3.2.9/bench/sparse_cholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_cholesky.cpp rename to ext/eigen-3.2.9/bench/sparse_cholesky.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_dense_product.cpp b/ext/eigen-3.2.9/bench/sparse_dense_product.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_dense_product.cpp rename to ext/eigen-3.2.9/bench/sparse_dense_product.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_lu.cpp b/ext/eigen-3.2.9/bench/sparse_lu.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_lu.cpp rename to ext/eigen-3.2.9/bench/sparse_lu.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_product.cpp b/ext/eigen-3.2.9/bench/sparse_product.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_product.cpp rename to ext/eigen-3.2.9/bench/sparse_product.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_randomsetter.cpp b/ext/eigen-3.2.9/bench/sparse_randomsetter.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_randomsetter.cpp rename to ext/eigen-3.2.9/bench/sparse_randomsetter.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_setter.cpp b/ext/eigen-3.2.9/bench/sparse_setter.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_setter.cpp rename to ext/eigen-3.2.9/bench/sparse_setter.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_transpose.cpp b/ext/eigen-3.2.9/bench/sparse_transpose.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_transpose.cpp rename to ext/eigen-3.2.9/bench/sparse_transpose.cpp diff --git a/ext/eigen-3.2.7/bench/sparse_trisolver.cpp b/ext/eigen-3.2.9/bench/sparse_trisolver.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/sparse_trisolver.cpp rename to ext/eigen-3.2.9/bench/sparse_trisolver.cpp diff --git a/ext/eigen-3.2.7/bench/spbench/CMakeLists.txt b/ext/eigen-3.2.9/bench/spbench/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/CMakeLists.txt rename to ext/eigen-3.2.9/bench/spbench/CMakeLists.txt diff --git a/ext/eigen-3.2.7/bench/spbench/sp_solver.cpp b/ext/eigen-3.2.9/bench/spbench/sp_solver.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/sp_solver.cpp rename to ext/eigen-3.2.9/bench/spbench/sp_solver.cpp diff --git a/ext/eigen-3.2.7/bench/spbench/spbench.dtd b/ext/eigen-3.2.9/bench/spbench/spbench.dtd similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/spbench.dtd rename to ext/eigen-3.2.9/bench/spbench/spbench.dtd diff --git a/ext/eigen-3.2.7/bench/spbench/spbenchsolver.cpp b/ext/eigen-3.2.9/bench/spbench/spbenchsolver.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/spbenchsolver.cpp rename to ext/eigen-3.2.9/bench/spbench/spbenchsolver.cpp diff --git a/ext/eigen-3.2.7/bench/spbench/spbenchsolver.h b/ext/eigen-3.2.9/bench/spbench/spbenchsolver.h similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/spbenchsolver.h rename to ext/eigen-3.2.9/bench/spbench/spbenchsolver.h diff --git a/ext/eigen-3.2.7/bench/spbench/spbenchstyle.h b/ext/eigen-3.2.9/bench/spbench/spbenchstyle.h similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/spbenchstyle.h rename to ext/eigen-3.2.9/bench/spbench/spbenchstyle.h diff --git a/ext/eigen-3.2.7/bench/spbench/test_sparseLU.cpp b/ext/eigen-3.2.9/bench/spbench/test_sparseLU.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/spbench/test_sparseLU.cpp rename to ext/eigen-3.2.9/bench/spbench/test_sparseLU.cpp diff --git a/ext/eigen-3.2.7/bench/spmv.cpp b/ext/eigen-3.2.9/bench/spmv.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/spmv.cpp rename to ext/eigen-3.2.9/bench/spmv.cpp diff --git a/ext/eigen-3.2.7/bench/vdw_new.cpp b/ext/eigen-3.2.9/bench/vdw_new.cpp similarity index 100% rename from ext/eigen-3.2.7/bench/vdw_new.cpp rename to ext/eigen-3.2.9/bench/vdw_new.cpp diff --git a/ext/eigen-3.2.7/blas/BandTriangularSolver.h b/ext/eigen-3.2.9/blas/BandTriangularSolver.h similarity index 100% rename from ext/eigen-3.2.7/blas/BandTriangularSolver.h rename to ext/eigen-3.2.9/blas/BandTriangularSolver.h diff --git a/ext/eigen-3.2.7/blas/CMakeLists.txt b/ext/eigen-3.2.9/blas/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/blas/CMakeLists.txt rename to ext/eigen-3.2.9/blas/CMakeLists.txt diff --git a/ext/eigen-3.2.7/blas/GeneralRank1Update.h b/ext/eigen-3.2.9/blas/GeneralRank1Update.h similarity index 100% rename from ext/eigen-3.2.7/blas/GeneralRank1Update.h rename to ext/eigen-3.2.9/blas/GeneralRank1Update.h diff --git a/ext/eigen-3.2.7/blas/PackedSelfadjointProduct.h b/ext/eigen-3.2.9/blas/PackedSelfadjointProduct.h similarity index 100% rename from ext/eigen-3.2.7/blas/PackedSelfadjointProduct.h rename to ext/eigen-3.2.9/blas/PackedSelfadjointProduct.h diff --git a/ext/eigen-3.2.7/blas/PackedTriangularMatrixVector.h b/ext/eigen-3.2.9/blas/PackedTriangularMatrixVector.h similarity index 100% rename from ext/eigen-3.2.7/blas/PackedTriangularMatrixVector.h rename to ext/eigen-3.2.9/blas/PackedTriangularMatrixVector.h diff --git a/ext/eigen-3.2.7/blas/PackedTriangularSolverVector.h b/ext/eigen-3.2.9/blas/PackedTriangularSolverVector.h similarity index 100% rename from ext/eigen-3.2.7/blas/PackedTriangularSolverVector.h rename to ext/eigen-3.2.9/blas/PackedTriangularSolverVector.h diff --git a/ext/eigen-3.2.7/blas/README.txt b/ext/eigen-3.2.9/blas/README.txt similarity index 100% rename from ext/eigen-3.2.7/blas/README.txt rename to ext/eigen-3.2.9/blas/README.txt diff --git a/ext/eigen-3.2.7/blas/Rank2Update.h b/ext/eigen-3.2.9/blas/Rank2Update.h similarity index 100% rename from ext/eigen-3.2.7/blas/Rank2Update.h rename to ext/eigen-3.2.9/blas/Rank2Update.h diff --git a/ext/eigen-3.2.7/blas/chbmv.f b/ext/eigen-3.2.9/blas/chbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/chbmv.f rename to ext/eigen-3.2.9/blas/chbmv.f diff --git a/ext/eigen-3.2.7/blas/chpmv.f b/ext/eigen-3.2.9/blas/chpmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/chpmv.f rename to ext/eigen-3.2.9/blas/chpmv.f diff --git a/ext/eigen-3.2.7/blas/common.h b/ext/eigen-3.2.9/blas/common.h similarity index 100% rename from ext/eigen-3.2.7/blas/common.h rename to ext/eigen-3.2.9/blas/common.h diff --git a/ext/eigen-3.2.7/blas/complex_double.cpp b/ext/eigen-3.2.9/blas/complex_double.cpp similarity index 100% rename from ext/eigen-3.2.7/blas/complex_double.cpp rename to ext/eigen-3.2.9/blas/complex_double.cpp diff --git a/ext/eigen-3.2.7/blas/complex_single.cpp b/ext/eigen-3.2.9/blas/complex_single.cpp similarity index 100% rename from ext/eigen-3.2.7/blas/complex_single.cpp rename to ext/eigen-3.2.9/blas/complex_single.cpp diff --git a/ext/eigen-3.2.7/blas/complexdots.f b/ext/eigen-3.2.9/blas/complexdots.f similarity index 100% rename from ext/eigen-3.2.7/blas/complexdots.f rename to ext/eigen-3.2.9/blas/complexdots.f diff --git a/ext/eigen-3.2.7/blas/ctbmv.f b/ext/eigen-3.2.9/blas/ctbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/ctbmv.f rename to ext/eigen-3.2.9/blas/ctbmv.f diff --git a/ext/eigen-3.2.7/blas/double.cpp b/ext/eigen-3.2.9/blas/double.cpp similarity index 100% rename from ext/eigen-3.2.7/blas/double.cpp rename to ext/eigen-3.2.9/blas/double.cpp diff --git a/ext/eigen-3.2.7/blas/drotm.f b/ext/eigen-3.2.9/blas/drotm.f similarity index 100% rename from ext/eigen-3.2.7/blas/drotm.f rename to ext/eigen-3.2.9/blas/drotm.f diff --git a/ext/eigen-3.2.7/blas/drotmg.f b/ext/eigen-3.2.9/blas/drotmg.f similarity index 100% rename from ext/eigen-3.2.7/blas/drotmg.f rename to ext/eigen-3.2.9/blas/drotmg.f diff --git a/ext/eigen-3.2.7/blas/dsbmv.f b/ext/eigen-3.2.9/blas/dsbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/dsbmv.f rename to ext/eigen-3.2.9/blas/dsbmv.f diff --git a/ext/eigen-3.2.7/blas/dspmv.f b/ext/eigen-3.2.9/blas/dspmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/dspmv.f rename to ext/eigen-3.2.9/blas/dspmv.f diff --git a/ext/eigen-3.2.7/blas/dtbmv.f b/ext/eigen-3.2.9/blas/dtbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/dtbmv.f rename to ext/eigen-3.2.9/blas/dtbmv.f diff --git a/ext/eigen-3.2.7/blas/level1_cplx_impl.h b/ext/eigen-3.2.9/blas/level1_cplx_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level1_cplx_impl.h rename to ext/eigen-3.2.9/blas/level1_cplx_impl.h diff --git a/ext/eigen-3.2.7/blas/level1_impl.h b/ext/eigen-3.2.9/blas/level1_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level1_impl.h rename to ext/eigen-3.2.9/blas/level1_impl.h diff --git a/ext/eigen-3.2.7/blas/level1_real_impl.h b/ext/eigen-3.2.9/blas/level1_real_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level1_real_impl.h rename to ext/eigen-3.2.9/blas/level1_real_impl.h diff --git a/ext/eigen-3.2.7/blas/level2_cplx_impl.h b/ext/eigen-3.2.9/blas/level2_cplx_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level2_cplx_impl.h rename to ext/eigen-3.2.9/blas/level2_cplx_impl.h diff --git a/ext/eigen-3.2.7/blas/level2_impl.h b/ext/eigen-3.2.9/blas/level2_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level2_impl.h rename to ext/eigen-3.2.9/blas/level2_impl.h diff --git a/ext/eigen-3.2.7/blas/level2_real_impl.h b/ext/eigen-3.2.9/blas/level2_real_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level2_real_impl.h rename to ext/eigen-3.2.9/blas/level2_real_impl.h diff --git a/ext/eigen-3.2.7/blas/level3_impl.h b/ext/eigen-3.2.9/blas/level3_impl.h similarity index 100% rename from ext/eigen-3.2.7/blas/level3_impl.h rename to ext/eigen-3.2.9/blas/level3_impl.h diff --git a/ext/eigen-3.2.7/blas/lsame.f b/ext/eigen-3.2.9/blas/lsame.f similarity index 100% rename from ext/eigen-3.2.7/blas/lsame.f rename to ext/eigen-3.2.9/blas/lsame.f diff --git a/ext/eigen-3.2.7/blas/single.cpp b/ext/eigen-3.2.9/blas/single.cpp similarity index 100% rename from ext/eigen-3.2.7/blas/single.cpp rename to ext/eigen-3.2.9/blas/single.cpp diff --git a/ext/eigen-3.2.7/blas/srotm.f b/ext/eigen-3.2.9/blas/srotm.f similarity index 100% rename from ext/eigen-3.2.7/blas/srotm.f rename to ext/eigen-3.2.9/blas/srotm.f diff --git a/ext/eigen-3.2.7/blas/srotmg.f b/ext/eigen-3.2.9/blas/srotmg.f similarity index 100% rename from ext/eigen-3.2.7/blas/srotmg.f rename to ext/eigen-3.2.9/blas/srotmg.f diff --git a/ext/eigen-3.2.7/blas/ssbmv.f b/ext/eigen-3.2.9/blas/ssbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/ssbmv.f rename to ext/eigen-3.2.9/blas/ssbmv.f diff --git a/ext/eigen-3.2.7/blas/sspmv.f b/ext/eigen-3.2.9/blas/sspmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/sspmv.f rename to ext/eigen-3.2.9/blas/sspmv.f diff --git a/ext/eigen-3.2.7/blas/stbmv.f b/ext/eigen-3.2.9/blas/stbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/stbmv.f rename to ext/eigen-3.2.9/blas/stbmv.f diff --git a/ext/eigen-3.2.7/blas/testing/CMakeLists.txt b/ext/eigen-3.2.9/blas/testing/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/blas/testing/CMakeLists.txt rename to ext/eigen-3.2.9/blas/testing/CMakeLists.txt diff --git a/ext/eigen-3.2.7/blas/testing/cblat1.f b/ext/eigen-3.2.9/blas/testing/cblat1.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/cblat1.f rename to ext/eigen-3.2.9/blas/testing/cblat1.f diff --git a/ext/eigen-3.2.7/blas/testing/cblat2.dat b/ext/eigen-3.2.9/blas/testing/cblat2.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/cblat2.dat rename to ext/eigen-3.2.9/blas/testing/cblat2.dat diff --git a/ext/eigen-3.2.7/blas/testing/cblat2.f b/ext/eigen-3.2.9/blas/testing/cblat2.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/cblat2.f rename to ext/eigen-3.2.9/blas/testing/cblat2.f diff --git a/ext/eigen-3.2.7/blas/testing/cblat3.dat b/ext/eigen-3.2.9/blas/testing/cblat3.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/cblat3.dat rename to ext/eigen-3.2.9/blas/testing/cblat3.dat diff --git a/ext/eigen-3.2.7/blas/testing/cblat3.f b/ext/eigen-3.2.9/blas/testing/cblat3.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/cblat3.f rename to ext/eigen-3.2.9/blas/testing/cblat3.f diff --git a/ext/eigen-3.2.7/blas/testing/dblat1.f b/ext/eigen-3.2.9/blas/testing/dblat1.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/dblat1.f rename to ext/eigen-3.2.9/blas/testing/dblat1.f diff --git a/ext/eigen-3.2.7/blas/testing/dblat2.dat b/ext/eigen-3.2.9/blas/testing/dblat2.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/dblat2.dat rename to ext/eigen-3.2.9/blas/testing/dblat2.dat diff --git a/ext/eigen-3.2.7/blas/testing/dblat2.f b/ext/eigen-3.2.9/blas/testing/dblat2.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/dblat2.f rename to ext/eigen-3.2.9/blas/testing/dblat2.f diff --git a/ext/eigen-3.2.7/blas/testing/dblat3.dat b/ext/eigen-3.2.9/blas/testing/dblat3.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/dblat3.dat rename to ext/eigen-3.2.9/blas/testing/dblat3.dat diff --git a/ext/eigen-3.2.7/blas/testing/dblat3.f b/ext/eigen-3.2.9/blas/testing/dblat3.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/dblat3.f rename to ext/eigen-3.2.9/blas/testing/dblat3.f diff --git a/ext/eigen-3.2.7/blas/testing/runblastest.sh b/ext/eigen-3.2.9/blas/testing/runblastest.sh similarity index 100% rename from ext/eigen-3.2.7/blas/testing/runblastest.sh rename to ext/eigen-3.2.9/blas/testing/runblastest.sh diff --git a/ext/eigen-3.2.7/blas/testing/sblat1.f b/ext/eigen-3.2.9/blas/testing/sblat1.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/sblat1.f rename to ext/eigen-3.2.9/blas/testing/sblat1.f diff --git a/ext/eigen-3.2.7/blas/testing/sblat2.dat b/ext/eigen-3.2.9/blas/testing/sblat2.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/sblat2.dat rename to ext/eigen-3.2.9/blas/testing/sblat2.dat diff --git a/ext/eigen-3.2.7/blas/testing/sblat2.f b/ext/eigen-3.2.9/blas/testing/sblat2.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/sblat2.f rename to ext/eigen-3.2.9/blas/testing/sblat2.f diff --git a/ext/eigen-3.2.7/blas/testing/sblat3.dat b/ext/eigen-3.2.9/blas/testing/sblat3.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/sblat3.dat rename to ext/eigen-3.2.9/blas/testing/sblat3.dat diff --git a/ext/eigen-3.2.7/blas/testing/sblat3.f b/ext/eigen-3.2.9/blas/testing/sblat3.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/sblat3.f rename to ext/eigen-3.2.9/blas/testing/sblat3.f diff --git a/ext/eigen-3.2.7/blas/testing/zblat1.f b/ext/eigen-3.2.9/blas/testing/zblat1.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/zblat1.f rename to ext/eigen-3.2.9/blas/testing/zblat1.f diff --git a/ext/eigen-3.2.7/blas/testing/zblat2.dat b/ext/eigen-3.2.9/blas/testing/zblat2.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/zblat2.dat rename to ext/eigen-3.2.9/blas/testing/zblat2.dat diff --git a/ext/eigen-3.2.7/blas/testing/zblat2.f b/ext/eigen-3.2.9/blas/testing/zblat2.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/zblat2.f rename to ext/eigen-3.2.9/blas/testing/zblat2.f diff --git a/ext/eigen-3.2.7/blas/testing/zblat3.dat b/ext/eigen-3.2.9/blas/testing/zblat3.dat similarity index 100% rename from ext/eigen-3.2.7/blas/testing/zblat3.dat rename to ext/eigen-3.2.9/blas/testing/zblat3.dat diff --git a/ext/eigen-3.2.7/blas/testing/zblat3.f b/ext/eigen-3.2.9/blas/testing/zblat3.f similarity index 100% rename from ext/eigen-3.2.7/blas/testing/zblat3.f rename to ext/eigen-3.2.9/blas/testing/zblat3.f diff --git a/ext/eigen-3.2.7/blas/xerbla.cpp b/ext/eigen-3.2.9/blas/xerbla.cpp similarity index 100% rename from ext/eigen-3.2.7/blas/xerbla.cpp rename to ext/eigen-3.2.9/blas/xerbla.cpp diff --git a/ext/eigen-3.2.7/blas/zhbmv.f b/ext/eigen-3.2.9/blas/zhbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/zhbmv.f rename to ext/eigen-3.2.9/blas/zhbmv.f diff --git a/ext/eigen-3.2.7/blas/zhpmv.f b/ext/eigen-3.2.9/blas/zhpmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/zhpmv.f rename to ext/eigen-3.2.9/blas/zhpmv.f diff --git a/ext/eigen-3.2.7/blas/ztbmv.f b/ext/eigen-3.2.9/blas/ztbmv.f similarity index 100% rename from ext/eigen-3.2.7/blas/ztbmv.f rename to ext/eigen-3.2.9/blas/ztbmv.f diff --git a/ext/eigen-3.2.7/cmake/EigenConfigureTesting.cmake b/ext/eigen-3.2.9/cmake/EigenConfigureTesting.cmake similarity index 86% rename from ext/eigen-3.2.7/cmake/EigenConfigureTesting.cmake rename to ext/eigen-3.2.9/cmake/EigenConfigureTesting.cmake index 2b11d83..b5b62ae 100644 --- a/ext/eigen-3.2.7/cmake/EigenConfigureTesting.cmake +++ b/ext/eigen-3.2.9/cmake/EigenConfigureTesting.cmake @@ -1,7 +1,7 @@ include(EigenTesting) include(CheckCXXSourceCompiles) -# configure the "site" and "buildname" +# configure the "site" and "buildname" ei_set_sitename() # retrieve and store the build string @@ -14,17 +14,10 @@ add_dependencies(check buildtests) # check whether /bin/bash exists find_file(EIGEN_BIN_BASH_EXISTS "/bin/bash" PATHS "/" NO_DEFAULT_PATH) -# CMake/Ctest does not allow us to change the build command, -# so we have to workaround by directly editing the generated DartConfiguration.tcl file -# save CMAKE_MAKE_PROGRAM -set(CMAKE_MAKE_PROGRAM_SAVE ${CMAKE_MAKE_PROGRAM}) -# and set a fake one -set(CMAKE_MAKE_PROGRAM "@EIGEN_MAKECOMMAND_PLACEHOLDER@") - # This call activates testing and generates the DartConfiguration.tcl include(CTest) -set(EIGEN_TEST_BUILD_FLAGS " " CACHE STRING "Options passed to the build command of unit tests") +set(EIGEN_TEST_BUILD_FLAGS "" CACHE STRING "Options passed to the build command of unit tests") # Overwrite default DartConfiguration.tcl such that ctest can build our unit tests. # Recall that our unit tests are not in the "all" target, so we have to explicitely ask ctest to build our custom 'buildtests' target. diff --git a/ext/eigen-3.2.7/cmake/EigenDetermineOSVersion.cmake b/ext/eigen-3.2.9/cmake/EigenDetermineOSVersion.cmake similarity index 96% rename from ext/eigen-3.2.7/cmake/EigenDetermineOSVersion.cmake rename to ext/eigen-3.2.9/cmake/EigenDetermineOSVersion.cmake index 3c48d4c..9246fa6 100644 --- a/ext/eigen-3.2.7/cmake/EigenDetermineOSVersion.cmake +++ b/ext/eigen-3.2.9/cmake/EigenDetermineOSVersion.cmake @@ -26,7 +26,7 @@ function(DetermineShortWindowsName WIN_VERSION win_num_version) endfunction() function(DetermineOSVersion OS_VERSION) - if (WIN32) + if (WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows) file (TO_NATIVE_PATH "$ENV{COMSPEC}" SHELL) exec_program( ${SHELL} ARGS "/c" "ver" OUTPUT_VARIABLE ver_output) diff --git a/ext/eigen-3.2.7/cmake/EigenDetermineVSServicePack.cmake b/ext/eigen-3.2.9/cmake/EigenDetermineVSServicePack.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/EigenDetermineVSServicePack.cmake rename to ext/eigen-3.2.9/cmake/EigenDetermineVSServicePack.cmake diff --git a/ext/eigen-3.2.7/cmake/EigenTesting.cmake b/ext/eigen-3.2.9/cmake/EigenTesting.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/EigenTesting.cmake rename to ext/eigen-3.2.9/cmake/EigenTesting.cmake diff --git a/ext/eigen-3.2.7/cmake/FindAdolc.cmake b/ext/eigen-3.2.9/cmake/FindAdolc.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindAdolc.cmake rename to ext/eigen-3.2.9/cmake/FindAdolc.cmake diff --git a/ext/eigen-3.2.7/cmake/FindBLAS.cmake b/ext/eigen-3.2.9/cmake/FindBLAS.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindBLAS.cmake rename to ext/eigen-3.2.9/cmake/FindBLAS.cmake diff --git a/ext/eigen-3.2.7/cmake/FindCholmod.cmake b/ext/eigen-3.2.9/cmake/FindCholmod.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindCholmod.cmake rename to ext/eigen-3.2.9/cmake/FindCholmod.cmake diff --git a/ext/eigen-3.2.7/cmake/FindEigen2.cmake b/ext/eigen-3.2.9/cmake/FindEigen2.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindEigen2.cmake rename to ext/eigen-3.2.9/cmake/FindEigen2.cmake diff --git a/ext/eigen-3.2.7/cmake/FindEigen3.cmake b/ext/eigen-3.2.9/cmake/FindEigen3.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindEigen3.cmake rename to ext/eigen-3.2.9/cmake/FindEigen3.cmake diff --git a/ext/eigen-3.2.7/cmake/FindFFTW.cmake b/ext/eigen-3.2.9/cmake/FindFFTW.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindFFTW.cmake rename to ext/eigen-3.2.9/cmake/FindFFTW.cmake diff --git a/ext/eigen-3.2.7/cmake/FindGLEW.cmake b/ext/eigen-3.2.9/cmake/FindGLEW.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindGLEW.cmake rename to ext/eigen-3.2.9/cmake/FindGLEW.cmake diff --git a/ext/eigen-3.2.7/cmake/FindGMP.cmake b/ext/eigen-3.2.9/cmake/FindGMP.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindGMP.cmake rename to ext/eigen-3.2.9/cmake/FindGMP.cmake diff --git a/ext/eigen-3.2.7/cmake/FindGSL.cmake b/ext/eigen-3.2.9/cmake/FindGSL.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindGSL.cmake rename to ext/eigen-3.2.9/cmake/FindGSL.cmake diff --git a/ext/eigen-3.2.7/cmake/FindGoogleHash.cmake b/ext/eigen-3.2.9/cmake/FindGoogleHash.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindGoogleHash.cmake rename to ext/eigen-3.2.9/cmake/FindGoogleHash.cmake diff --git a/ext/eigen-3.2.7/cmake/FindLAPACK.cmake b/ext/eigen-3.2.9/cmake/FindLAPACK.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindLAPACK.cmake rename to ext/eigen-3.2.9/cmake/FindLAPACK.cmake diff --git a/ext/eigen-3.2.7/cmake/FindMPFR.cmake b/ext/eigen-3.2.9/cmake/FindMPFR.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindMPFR.cmake rename to ext/eigen-3.2.9/cmake/FindMPFR.cmake diff --git a/ext/eigen-3.2.7/cmake/FindMetis.cmake b/ext/eigen-3.2.9/cmake/FindMetis.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindMetis.cmake rename to ext/eigen-3.2.9/cmake/FindMetis.cmake diff --git a/ext/eigen-3.2.7/cmake/FindPastix.cmake b/ext/eigen-3.2.9/cmake/FindPastix.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindPastix.cmake rename to ext/eigen-3.2.9/cmake/FindPastix.cmake diff --git a/ext/eigen-3.2.7/cmake/FindSPQR.cmake b/ext/eigen-3.2.9/cmake/FindSPQR.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindSPQR.cmake rename to ext/eigen-3.2.9/cmake/FindSPQR.cmake diff --git a/ext/eigen-3.2.7/cmake/FindScotch.cmake b/ext/eigen-3.2.9/cmake/FindScotch.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindScotch.cmake rename to ext/eigen-3.2.9/cmake/FindScotch.cmake diff --git a/ext/eigen-3.2.7/cmake/FindStandardMathLibrary.cmake b/ext/eigen-3.2.9/cmake/FindStandardMathLibrary.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindStandardMathLibrary.cmake rename to ext/eigen-3.2.9/cmake/FindStandardMathLibrary.cmake diff --git a/ext/eigen-3.2.7/cmake/FindSuperLU.cmake b/ext/eigen-3.2.9/cmake/FindSuperLU.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindSuperLU.cmake rename to ext/eigen-3.2.9/cmake/FindSuperLU.cmake diff --git a/ext/eigen-3.2.7/cmake/FindUmfpack.cmake b/ext/eigen-3.2.9/cmake/FindUmfpack.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/FindUmfpack.cmake rename to ext/eigen-3.2.9/cmake/FindUmfpack.cmake diff --git a/ext/eigen-3.2.7/cmake/RegexUtils.cmake b/ext/eigen-3.2.9/cmake/RegexUtils.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/RegexUtils.cmake rename to ext/eigen-3.2.9/cmake/RegexUtils.cmake diff --git a/ext/eigen-3.2.7/cmake/language_support.cmake b/ext/eigen-3.2.9/cmake/language_support.cmake similarity index 100% rename from ext/eigen-3.2.7/cmake/language_support.cmake rename to ext/eigen-3.2.9/cmake/language_support.cmake diff --git a/ext/eigen-3.2.7/debug/gdb/__init__.py b/ext/eigen-3.2.9/debug/gdb/__init__.py similarity index 100% rename from ext/eigen-3.2.7/debug/gdb/__init__.py rename to ext/eigen-3.2.9/debug/gdb/__init__.py diff --git a/ext/eigen-3.2.7/debug/gdb/printers.py b/ext/eigen-3.2.9/debug/gdb/printers.py similarity index 100% rename from ext/eigen-3.2.7/debug/gdb/printers.py rename to ext/eigen-3.2.9/debug/gdb/printers.py diff --git a/ext/eigen-3.2.7/debug/msvc/eigen.natvis b/ext/eigen-3.2.9/debug/msvc/eigen.natvis similarity index 100% rename from ext/eigen-3.2.7/debug/msvc/eigen.natvis rename to ext/eigen-3.2.9/debug/msvc/eigen.natvis diff --git a/ext/eigen-3.2.7/debug/msvc/eigen_autoexp_part.dat b/ext/eigen-3.2.9/debug/msvc/eigen_autoexp_part.dat similarity index 100% rename from ext/eigen-3.2.7/debug/msvc/eigen_autoexp_part.dat rename to ext/eigen-3.2.9/debug/msvc/eigen_autoexp_part.dat diff --git a/ext/eigen-3.2.7/demos/CMakeLists.txt b/ext/eigen-3.2.9/demos/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/demos/CMakeLists.txt rename to ext/eigen-3.2.9/demos/CMakeLists.txt diff --git a/ext/eigen-3.2.7/demos/mandelbrot/CMakeLists.txt b/ext/eigen-3.2.9/demos/mandelbrot/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/demos/mandelbrot/CMakeLists.txt rename to ext/eigen-3.2.9/demos/mandelbrot/CMakeLists.txt diff --git a/ext/eigen-3.2.7/demos/mandelbrot/README b/ext/eigen-3.2.9/demos/mandelbrot/README similarity index 100% rename from ext/eigen-3.2.7/demos/mandelbrot/README rename to ext/eigen-3.2.9/demos/mandelbrot/README diff --git a/ext/eigen-3.2.7/demos/mandelbrot/mandelbrot.cpp b/ext/eigen-3.2.9/demos/mandelbrot/mandelbrot.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/mandelbrot/mandelbrot.cpp rename to ext/eigen-3.2.9/demos/mandelbrot/mandelbrot.cpp diff --git a/ext/eigen-3.2.7/demos/mandelbrot/mandelbrot.h b/ext/eigen-3.2.9/demos/mandelbrot/mandelbrot.h similarity index 100% rename from ext/eigen-3.2.7/demos/mandelbrot/mandelbrot.h rename to ext/eigen-3.2.9/demos/mandelbrot/mandelbrot.h diff --git a/ext/eigen-3.2.7/demos/mix_eigen_and_c/README b/ext/eigen-3.2.9/demos/mix_eigen_and_c/README similarity index 100% rename from ext/eigen-3.2.7/demos/mix_eigen_and_c/README rename to ext/eigen-3.2.9/demos/mix_eigen_and_c/README diff --git a/ext/eigen-3.2.7/demos/mix_eigen_and_c/binary_library.cpp b/ext/eigen-3.2.9/demos/mix_eigen_and_c/binary_library.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/mix_eigen_and_c/binary_library.cpp rename to ext/eigen-3.2.9/demos/mix_eigen_and_c/binary_library.cpp diff --git a/ext/eigen-3.2.7/demos/mix_eigen_and_c/binary_library.h b/ext/eigen-3.2.9/demos/mix_eigen_and_c/binary_library.h similarity index 100% rename from ext/eigen-3.2.7/demos/mix_eigen_and_c/binary_library.h rename to ext/eigen-3.2.9/demos/mix_eigen_and_c/binary_library.h diff --git a/ext/eigen-3.2.7/demos/mix_eigen_and_c/example.c b/ext/eigen-3.2.9/demos/mix_eigen_and_c/example.c similarity index 100% rename from ext/eigen-3.2.7/demos/mix_eigen_and_c/example.c rename to ext/eigen-3.2.9/demos/mix_eigen_and_c/example.c diff --git a/ext/eigen-3.2.7/demos/opengl/CMakeLists.txt b/ext/eigen-3.2.9/demos/opengl/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/CMakeLists.txt rename to ext/eigen-3.2.9/demos/opengl/CMakeLists.txt diff --git a/ext/eigen-3.2.7/demos/opengl/README b/ext/eigen-3.2.9/demos/opengl/README similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/README rename to ext/eigen-3.2.9/demos/opengl/README diff --git a/ext/eigen-3.2.7/demos/opengl/camera.cpp b/ext/eigen-3.2.9/demos/opengl/camera.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/camera.cpp rename to ext/eigen-3.2.9/demos/opengl/camera.cpp diff --git a/ext/eigen-3.2.7/demos/opengl/camera.h b/ext/eigen-3.2.9/demos/opengl/camera.h similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/camera.h rename to ext/eigen-3.2.9/demos/opengl/camera.h diff --git a/ext/eigen-3.2.7/demos/opengl/gpuhelper.cpp b/ext/eigen-3.2.9/demos/opengl/gpuhelper.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/gpuhelper.cpp rename to ext/eigen-3.2.9/demos/opengl/gpuhelper.cpp diff --git a/ext/eigen-3.2.7/demos/opengl/gpuhelper.h b/ext/eigen-3.2.9/demos/opengl/gpuhelper.h similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/gpuhelper.h rename to ext/eigen-3.2.9/demos/opengl/gpuhelper.h diff --git a/ext/eigen-3.2.7/demos/opengl/icosphere.cpp b/ext/eigen-3.2.9/demos/opengl/icosphere.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/icosphere.cpp rename to ext/eigen-3.2.9/demos/opengl/icosphere.cpp diff --git a/ext/eigen-3.2.7/demos/opengl/icosphere.h b/ext/eigen-3.2.9/demos/opengl/icosphere.h similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/icosphere.h rename to ext/eigen-3.2.9/demos/opengl/icosphere.h diff --git a/ext/eigen-3.2.7/demos/opengl/quaternion_demo.cpp b/ext/eigen-3.2.9/demos/opengl/quaternion_demo.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/quaternion_demo.cpp rename to ext/eigen-3.2.9/demos/opengl/quaternion_demo.cpp diff --git a/ext/eigen-3.2.7/demos/opengl/quaternion_demo.h b/ext/eigen-3.2.9/demos/opengl/quaternion_demo.h similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/quaternion_demo.h rename to ext/eigen-3.2.9/demos/opengl/quaternion_demo.h diff --git a/ext/eigen-3.2.7/demos/opengl/trackball.cpp b/ext/eigen-3.2.9/demos/opengl/trackball.cpp similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/trackball.cpp rename to ext/eigen-3.2.9/demos/opengl/trackball.cpp diff --git a/ext/eigen-3.2.7/demos/opengl/trackball.h b/ext/eigen-3.2.9/demos/opengl/trackball.h similarity index 100% rename from ext/eigen-3.2.7/demos/opengl/trackball.h rename to ext/eigen-3.2.9/demos/opengl/trackball.h diff --git a/ext/eigen-3.2.7/doc/A05_PortingFrom2To3.dox b/ext/eigen-3.2.9/doc/A05_PortingFrom2To3.dox similarity index 100% rename from ext/eigen-3.2.7/doc/A05_PortingFrom2To3.dox rename to ext/eigen-3.2.9/doc/A05_PortingFrom2To3.dox diff --git a/ext/eigen-3.2.7/doc/A10_Eigen2SupportModes.dox b/ext/eigen-3.2.9/doc/A10_Eigen2SupportModes.dox similarity index 100% rename from ext/eigen-3.2.7/doc/A10_Eigen2SupportModes.dox rename to ext/eigen-3.2.9/doc/A10_Eigen2SupportModes.dox diff --git a/ext/eigen-3.2.7/doc/AsciiQuickReference.txt b/ext/eigen-3.2.9/doc/AsciiQuickReference.txt similarity index 100% rename from ext/eigen-3.2.7/doc/AsciiQuickReference.txt rename to ext/eigen-3.2.9/doc/AsciiQuickReference.txt diff --git a/ext/eigen-3.2.7/doc/B01_Experimental.dox b/ext/eigen-3.2.9/doc/B01_Experimental.dox similarity index 100% rename from ext/eigen-3.2.7/doc/B01_Experimental.dox rename to ext/eigen-3.2.9/doc/B01_Experimental.dox diff --git a/ext/eigen-3.2.7/doc/CMakeLists.txt b/ext/eigen-3.2.9/doc/CMakeLists.txt similarity index 95% rename from ext/eigen-3.2.7/doc/CMakeLists.txt rename to ext/eigen-3.2.9/doc/CMakeLists.txt index 2fc2a0d..02790ee 100644 --- a/ext/eigen-3.2.7/doc/CMakeLists.txt +++ b/ext/eigen-3.2.9/doc/CMakeLists.txt @@ -89,6 +89,7 @@ add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_ add_custom_target(doc ALL COMMAND doxygen COMMAND doxygen Doxyfile-unsupported + COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc diff --git a/ext/eigen-3.2.7/doc/ClassHierarchy.dox b/ext/eigen-3.2.9/doc/ClassHierarchy.dox similarity index 100% rename from ext/eigen-3.2.7/doc/ClassHierarchy.dox rename to ext/eigen-3.2.9/doc/ClassHierarchy.dox diff --git a/ext/eigen-3.2.7/doc/CustomizingEigen.dox b/ext/eigen-3.2.9/doc/CustomizingEigen.dox similarity index 100% rename from ext/eigen-3.2.7/doc/CustomizingEigen.dox rename to ext/eigen-3.2.9/doc/CustomizingEigen.dox diff --git a/ext/eigen-3.2.7/doc/Doxyfile.in b/ext/eigen-3.2.9/doc/Doxyfile.in similarity index 100% rename from ext/eigen-3.2.7/doc/Doxyfile.in rename to ext/eigen-3.2.9/doc/Doxyfile.in diff --git a/ext/eigen-3.2.7/doc/Eigen_Silly_Professor_64x64.png b/ext/eigen-3.2.9/doc/Eigen_Silly_Professor_64x64.png similarity index 100% rename from ext/eigen-3.2.7/doc/Eigen_Silly_Professor_64x64.png rename to ext/eigen-3.2.9/doc/Eigen_Silly_Professor_64x64.png diff --git a/ext/eigen-3.2.7/doc/FixedSizeVectorizable.dox b/ext/eigen-3.2.9/doc/FixedSizeVectorizable.dox similarity index 100% rename from ext/eigen-3.2.7/doc/FixedSizeVectorizable.dox rename to ext/eigen-3.2.9/doc/FixedSizeVectorizable.dox diff --git a/ext/eigen-3.2.7/doc/FunctionsTakingEigenTypes.dox b/ext/eigen-3.2.9/doc/FunctionsTakingEigenTypes.dox similarity index 100% rename from ext/eigen-3.2.7/doc/FunctionsTakingEigenTypes.dox rename to ext/eigen-3.2.9/doc/FunctionsTakingEigenTypes.dox diff --git a/ext/eigen-3.2.7/doc/HiPerformance.dox b/ext/eigen-3.2.9/doc/HiPerformance.dox similarity index 100% rename from ext/eigen-3.2.7/doc/HiPerformance.dox rename to ext/eigen-3.2.9/doc/HiPerformance.dox diff --git a/ext/eigen-3.2.7/doc/InsideEigenExample.dox b/ext/eigen-3.2.9/doc/InsideEigenExample.dox similarity index 100% rename from ext/eigen-3.2.7/doc/InsideEigenExample.dox rename to ext/eigen-3.2.9/doc/InsideEigenExample.dox diff --git a/ext/eigen-3.2.7/doc/Manual.dox b/ext/eigen-3.2.9/doc/Manual.dox similarity index 98% rename from ext/eigen-3.2.7/doc/Manual.dox rename to ext/eigen-3.2.9/doc/Manual.dox index 55057d2..52427f0 100644 --- a/ext/eigen-3.2.7/doc/Manual.dox +++ b/ext/eigen-3.2.9/doc/Manual.dox @@ -121,6 +121,8 @@ namespace Eigen { \ingroup Sparse_chapter */ /** \addtogroup TopicSparseSystems \ingroup Sparse_chapter */ +/** \addtogroup MatrixfreeSolverExample + \ingroup Sparse_chapter */ /** \addtogroup Sparse_Reference \ingroup Sparse_chapter */ diff --git a/ext/eigen-3.2.9/doc/MatrixfreeSolverExample.dox b/ext/eigen-3.2.9/doc/MatrixfreeSolverExample.dox new file mode 100644 index 0000000..9921c72 --- /dev/null +++ b/ext/eigen-3.2.9/doc/MatrixfreeSolverExample.dox @@ -0,0 +1,21 @@ + +namespace Eigen { + +/** + +\eigenManualPage MatrixfreeSolverExample Matrix-free solvers + +Iterative solvers such as ConjugateGradient and BiCGSTAB can be used in a matrix free context. To this end, user must provide a wrapper class inheriting EigenBase<> and implementing the following methods: + - Index rows() and Index cols(): returns number of rows and columns respectively + - operator* with and Eigen dense column vector + - resize(rows,cols): needed for source compatibility (can stay empty) + +Eigen::internal::traits<> must also be specialized for the wrapper type. + +For efficiency purpose, one might also want to provide a custom preconditioner. Here is an example using ConjugateGradient and implementing also a custom Jacobi preconditioner: +\include matrixfree_cg.cpp +Output: \verbinclude matrixfree_cg.out + +*/ + +} \ No newline at end of file diff --git a/ext/eigen-3.2.7/doc/Overview.dox b/ext/eigen-3.2.9/doc/Overview.dox similarity index 100% rename from ext/eigen-3.2.7/doc/Overview.dox rename to ext/eigen-3.2.9/doc/Overview.dox diff --git a/ext/eigen-3.2.7/doc/PassingByValue.dox b/ext/eigen-3.2.9/doc/PassingByValue.dox similarity index 100% rename from ext/eigen-3.2.7/doc/PassingByValue.dox rename to ext/eigen-3.2.9/doc/PassingByValue.dox diff --git a/ext/eigen-3.2.7/doc/Pitfalls.dox b/ext/eigen-3.2.9/doc/Pitfalls.dox similarity index 100% rename from ext/eigen-3.2.7/doc/Pitfalls.dox rename to ext/eigen-3.2.9/doc/Pitfalls.dox diff --git a/ext/eigen-3.2.7/doc/PreprocessorDirectives.dox b/ext/eigen-3.2.9/doc/PreprocessorDirectives.dox similarity index 99% rename from ext/eigen-3.2.7/doc/PreprocessorDirectives.dox rename to ext/eigen-3.2.9/doc/PreprocessorDirectives.dox index 8a2968e..cfaba35 100644 --- a/ext/eigen-3.2.7/doc/PreprocessorDirectives.dox +++ b/ext/eigen-3.2.9/doc/PreprocessorDirectives.dox @@ -91,6 +91,7 @@ following macros are supported; none of them are defined by default. - \b EIGEN_MATRIX_PLUGIN - filename of plugin for extending the Matrix class. - \b EIGEN_MATRIXBASE_PLUGIN - filename of plugin for extending the MatrixBase class. - \b EIGEN_PLAINOBJECTBASE_PLUGIN - filename of plugin for extending the PlainObjectBase class. + - \b EIGEN_MAPBASE_PLUGIN - filename of plugin for extending the MapBase class. - \b EIGEN_QUATERNIONBASE_PLUGIN - filename of plugin for extending the QuaternionBase class. - \b EIGEN_SPARSEMATRIX_PLUGIN - filename of plugin for extending the SparseMatrix class. - \b EIGEN_SPARSEMATRIXBASE_PLUGIN - filename of plugin for extending the SparseMatrixBase class. diff --git a/ext/eigen-3.2.7/doc/QuickReference.dox b/ext/eigen-3.2.9/doc/QuickReference.dox similarity index 100% rename from ext/eigen-3.2.7/doc/QuickReference.dox rename to ext/eigen-3.2.9/doc/QuickReference.dox diff --git a/ext/eigen-3.2.7/doc/QuickStartGuide.dox b/ext/eigen-3.2.9/doc/QuickStartGuide.dox similarity index 100% rename from ext/eigen-3.2.7/doc/QuickStartGuide.dox rename to ext/eigen-3.2.9/doc/QuickStartGuide.dox diff --git a/ext/eigen-3.2.7/doc/SparseLinearSystems.dox b/ext/eigen-3.2.9/doc/SparseLinearSystems.dox similarity index 97% rename from ext/eigen-3.2.7/doc/SparseLinearSystems.dox rename to ext/eigen-3.2.9/doc/SparseLinearSystems.dox index c00be10..051a02e 100644 --- a/ext/eigen-3.2.7/doc/SparseLinearSystems.dox +++ b/ext/eigen-3.2.9/doc/SparseLinearSystems.dox @@ -35,17 +35,17 @@ They are summarized in the following table: Requires the PaStiX package, \b CeCILL-C optimized for tough problems and symmetric patterns CholmodSupernodalLLT\link CholmodSupport_Module CholmodSupport \endlinkDirect LLt factorizationSPDFill-in reducing, Leverage fast dense algebra - Requires the SuiteSparse package, \b GPL + Requires the SuiteSparse package, \b GPL UmfPackLU\link UmfPackSupport_Module UmfPackSupport \endlinkDirect LU factorizationSquareFill-in reducing, Leverage fast dense algebra - Requires the SuiteSparse package, \b GPL + Requires the SuiteSparse package, \b GPL SuperLU\link SuperLUSupport_Module SuperLUSupport \endlinkDirect LU factorizationSquareFill-in reducing, Leverage fast dense algebra Requires the SuperLU library, (BSD-like) SPQR\link SPQRSupport_Module SPQRSupport \endlink QR factorization Any, rectangularfill-in reducing, multithreaded, fast dense algebra - requires the SuiteSparse package, \b GPL recommended for linear least-squares problems, has a rank-revealing feature + requires the SuiteSparse package, \b GPL recommended for linear least-squares problems, has a rank-revealing feature Here \c SPD means symmetric positive definite. diff --git a/ext/eigen-3.2.7/doc/SparseQuickReference.dox b/ext/eigen-3.2.9/doc/SparseQuickReference.dox similarity index 75% rename from ext/eigen-3.2.7/doc/SparseQuickReference.dox rename to ext/eigen-3.2.9/doc/SparseQuickReference.dox index d04ac35..e0a30ed 100644 --- a/ext/eigen-3.2.7/doc/SparseQuickReference.dox +++ b/ext/eigen-3.2.9/doc/SparseQuickReference.dox @@ -21,7 +21,7 @@ i.e either row major or column major. The default is column major. Most arithmet Resize/Reserve \code - sm1.resize(m,n); //Change sm1 to a m x n matrix. + sm1.resize(m,n); // Change sm1 to a m x n matrix. sm1.reserve(nnz); // Allocate room for nnz nonzeros elements. \endcode @@ -151,10 +151,10 @@ It is easy to perform arithmetic operations on sparse matrices provided that the Permutation \code -perm.indices(); // Reference to the vector of indices +perm.indices(); // Reference to the vector of indices sm1.twistedBy(perm); // Permute rows and columns -sm2 = sm1 * perm; //Permute the columns -sm2 = perm * sm1; // Permute the columns +sm2 = sm1 * perm; // Permute the columns +sm2 = perm * sm1; // Permute the columns \endcode @@ -181,9 +181,9 @@ sm2 = perm * sm1; // Permute the columns \section sparseotherops Other supported operations - + + - + - - + + - + + - - - + + + - - +
Operations Code Notes
Code Notes
Sub-matrices
Sub-matrices \code sm1.block(startRow, startCol, rows, cols); @@ -193,25 +193,31 @@ sm2 = perm * sm1; // Permute the columns sm1.bottomLeftCorner( rows, cols); sm1.bottomRightCorner( rows, cols); \endcode - +Contrary to dense matrices, here all these methods are read-only.\n +See \ref TutorialSparse_SubMatrices and below for read-write sub-matrices. +
Range
Range
\code - sm1.innerVector(outer); - sm1.innerVectors(start, size); - sm1.leftCols(size); - sm2.rightCols(size); - sm1.middleRows(start, numRows); - sm1.middleCols(start, numCols); - sm1.col(j); + sm1.innerVector(outer); // RW + sm1.innerVectors(start, size); // RW + sm1.leftCols(size); // RW + sm2.rightCols(size); // RO because sm2 is row-major + sm1.middleRows(start, numRows); // RO becasue sm1 is column-major + sm1.middleCols(start, numCols); // RW + sm1.col(j); // RW \endcode A inner vector is either a row (for row-major) or a column (for column-major). As stated earlier, the evaluation can be done in a matrix with different storage order +A inner vector is either a row (for row-major) or a column (for column-major).\n +As stated earlier, for a read-write sub-matrix (RW), the evaluation can be done in a matrix with different storage order. +
Triangular and selfadjoint views
Triangular and selfadjoint views \code sm2 = sm1.triangularview(); @@ -222,26 +228,30 @@ sm2 = perm * sm1; // Permute the columns \code \endcode
Triangular solve
Triangular solve
\code dv2 = sm1.triangularView().solve(dv1); - dv2 = sm1.topLeftCorner(size, size).triangularView().solve(dv1); + dv2 = sm1.topLeftCorner(size, size) + .triangularView().solve(dv1); \endcode For general sparse solve, Use any suitable module described at \ref TopicSparseSystems
Low-level API
Low-level API \code -sm1.valuePtr(); // Pointer to the values -sm1.innerIndextr(); // Pointer to the indices. -sm1.outerIndexPtr(); //Pointer to the beginning of each inner vector +sm1.valuePtr(); // Pointer to the values +sm1.innerIndextr(); // Pointer to the indices. +sm1.outerIndexPtr(); // Pointer to the beginning of each inner vector \endcode If the matrix is not in compressed form, makeCompressed() should be called before. Note that these functions are mostly provided for interoperability purposes with external libraries. A better access to the values of the matrix is done by using the InnerIterator class as described in \link TutorialSparse the Tutorial Sparse \endlink section +If the matrix is not in compressed form, makeCompressed() should be called before.\n +Note that these functions are mostly provided for interoperability purposes with external libraries.\n +A better access to the values of the matrix is done by using the InnerIterator class as described in \link TutorialSparse the Tutorial Sparse \endlink section
*/ diff --git a/ext/eigen-3.2.7/doc/StlContainers.dox b/ext/eigen-3.2.9/doc/StlContainers.dox similarity index 100% rename from ext/eigen-3.2.7/doc/StlContainers.dox rename to ext/eigen-3.2.9/doc/StlContainers.dox diff --git a/ext/eigen-3.2.7/doc/StorageOrders.dox b/ext/eigen-3.2.9/doc/StorageOrders.dox similarity index 100% rename from ext/eigen-3.2.7/doc/StorageOrders.dox rename to ext/eigen-3.2.9/doc/StorageOrders.dox diff --git a/ext/eigen-3.2.7/doc/StructHavingEigenMembers.dox b/ext/eigen-3.2.9/doc/StructHavingEigenMembers.dox similarity index 100% rename from ext/eigen-3.2.7/doc/StructHavingEigenMembers.dox rename to ext/eigen-3.2.9/doc/StructHavingEigenMembers.dox diff --git a/ext/eigen-3.2.7/doc/TemplateKeyword.dox b/ext/eigen-3.2.9/doc/TemplateKeyword.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TemplateKeyword.dox rename to ext/eigen-3.2.9/doc/TemplateKeyword.dox diff --git a/ext/eigen-3.2.7/doc/TopicAliasing.dox b/ext/eigen-3.2.9/doc/TopicAliasing.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicAliasing.dox rename to ext/eigen-3.2.9/doc/TopicAliasing.dox diff --git a/ext/eigen-3.2.7/doc/TopicAssertions.dox b/ext/eigen-3.2.9/doc/TopicAssertions.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicAssertions.dox rename to ext/eigen-3.2.9/doc/TopicAssertions.dox diff --git a/ext/eigen-3.2.7/doc/TopicEigenExpressionTemplates.dox b/ext/eigen-3.2.9/doc/TopicEigenExpressionTemplates.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicEigenExpressionTemplates.dox rename to ext/eigen-3.2.9/doc/TopicEigenExpressionTemplates.dox diff --git a/ext/eigen-3.2.7/doc/TopicLazyEvaluation.dox b/ext/eigen-3.2.9/doc/TopicLazyEvaluation.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicLazyEvaluation.dox rename to ext/eigen-3.2.9/doc/TopicLazyEvaluation.dox diff --git a/ext/eigen-3.2.7/doc/TopicLinearAlgebraDecompositions.dox b/ext/eigen-3.2.9/doc/TopicLinearAlgebraDecompositions.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicLinearAlgebraDecompositions.dox rename to ext/eigen-3.2.9/doc/TopicLinearAlgebraDecompositions.dox diff --git a/ext/eigen-3.2.7/doc/TopicMultithreading.dox b/ext/eigen-3.2.9/doc/TopicMultithreading.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicMultithreading.dox rename to ext/eigen-3.2.9/doc/TopicMultithreading.dox diff --git a/ext/eigen-3.2.7/doc/TopicResizing.dox b/ext/eigen-3.2.9/doc/TopicResizing.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicResizing.dox rename to ext/eigen-3.2.9/doc/TopicResizing.dox diff --git a/ext/eigen-3.2.7/doc/TopicScalarTypes.dox b/ext/eigen-3.2.9/doc/TopicScalarTypes.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicScalarTypes.dox rename to ext/eigen-3.2.9/doc/TopicScalarTypes.dox diff --git a/ext/eigen-3.2.7/doc/TopicVectorization.dox b/ext/eigen-3.2.9/doc/TopicVectorization.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TopicVectorization.dox rename to ext/eigen-3.2.9/doc/TopicVectorization.dox diff --git a/ext/eigen-3.2.7/doc/TutorialAdvancedInitialization.dox b/ext/eigen-3.2.9/doc/TutorialAdvancedInitialization.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialAdvancedInitialization.dox rename to ext/eigen-3.2.9/doc/TutorialAdvancedInitialization.dox diff --git a/ext/eigen-3.2.7/doc/TutorialArrayClass.dox b/ext/eigen-3.2.9/doc/TutorialArrayClass.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialArrayClass.dox rename to ext/eigen-3.2.9/doc/TutorialArrayClass.dox diff --git a/ext/eigen-3.2.7/doc/TutorialBlockOperations.dox b/ext/eigen-3.2.9/doc/TutorialBlockOperations.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialBlockOperations.dox rename to ext/eigen-3.2.9/doc/TutorialBlockOperations.dox diff --git a/ext/eigen-3.2.7/doc/TutorialGeometry.dox b/ext/eigen-3.2.9/doc/TutorialGeometry.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialGeometry.dox rename to ext/eigen-3.2.9/doc/TutorialGeometry.dox diff --git a/ext/eigen-3.2.7/doc/TutorialLinearAlgebra.dox b/ext/eigen-3.2.9/doc/TutorialLinearAlgebra.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialLinearAlgebra.dox rename to ext/eigen-3.2.9/doc/TutorialLinearAlgebra.dox diff --git a/ext/eigen-3.2.7/doc/TutorialMapClass.dox b/ext/eigen-3.2.9/doc/TutorialMapClass.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialMapClass.dox rename to ext/eigen-3.2.9/doc/TutorialMapClass.dox diff --git a/ext/eigen-3.2.7/doc/TutorialMatrixArithmetic.dox b/ext/eigen-3.2.9/doc/TutorialMatrixArithmetic.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialMatrixArithmetic.dox rename to ext/eigen-3.2.9/doc/TutorialMatrixArithmetic.dox diff --git a/ext/eigen-3.2.7/doc/TutorialMatrixClass.dox b/ext/eigen-3.2.9/doc/TutorialMatrixClass.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialMatrixClass.dox rename to ext/eigen-3.2.9/doc/TutorialMatrixClass.dox diff --git a/ext/eigen-3.2.7/doc/TutorialReductionsVisitorsBroadcasting.dox b/ext/eigen-3.2.9/doc/TutorialReductionsVisitorsBroadcasting.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialReductionsVisitorsBroadcasting.dox rename to ext/eigen-3.2.9/doc/TutorialReductionsVisitorsBroadcasting.dox diff --git a/ext/eigen-3.2.7/doc/TutorialSparse.dox b/ext/eigen-3.2.9/doc/TutorialSparse.dox similarity index 93% rename from ext/eigen-3.2.7/doc/TutorialSparse.dox rename to ext/eigen-3.2.9/doc/TutorialSparse.dox index fa2a3ad..ee206cc 100644 --- a/ext/eigen-3.2.7/doc/TutorialSparse.dox +++ b/ext/eigen-3.2.9/doc/TutorialSparse.dox @@ -241,11 +241,11 @@ In the following \em sm denotes a sparse matrix, \em sv a sparse vector, \em dm sm1.real() sm1.imag() -sm1 0.5*sm1 sm1+sm2 sm1-sm2 sm1.cwiseProduct(sm2) \endcode -However, a strong restriction is that the storage orders must match. For instance, in the following example: +However, a strong restriction is that the storage orders must match. For instance, in the following example: \code sm4 = sm1 + sm2 + sm3; \endcode -sm1, sm2, and sm3 must all be row-major or all column major. +sm1, sm2, and sm3 must all be row-major or all column-major. On the other hand, there is no restriction on the target matrix sm4. For instance, this means that for computing \f$ A^T + A \f$, the matrix \f$ A^T \f$ must be evaluated into a temporary matrix of compatible storage order: \code @@ -307,6 +307,26 @@ sm2 = sm1.transpose() * P; \endcode +\subsection TutorialSparse_SubMatrices Block operations + +Regarding read-access, sparse matrices expose the same API than for dense matrices to access to sub-matrices such as blocks, columns, and rows. See \ref TutorialBlockOperations for a detailed introduction. +However, for performance reasons, writing to a sub-sparse-matrix is much more limited, and currently only contiguous sets of columns (resp. rows) of a column-major (resp. row-major) SparseMatrix are writable. Moreover, this information has to be known at compile-time, leaving out methods such as block(...) and corner*(...). The available API for write-access to a SparseMatrix are summarized below: +\code +SparseMatrix sm1; +sm1.col(j) = ...; +sm1.leftCols(ncols) = ...; +sm1.middleCols(j,ncols) = ...; +sm1.rightCols(ncols) = ...; + +SparseMatrix sm2; +sm2.row(i) = ...; +sm2.topRows(nrows) = ...; +sm2.middleRows(i,nrows) = ...; +sm2.bottomRows(nrows) = ...; +\endcode + +In addition, sparse matrices expose the SparseMatrixBase::innerVector() and SparseMatrixBase::innerVectors() methods, which are aliases to the col/middleCols methods for a column-major storage, and to the row/middleRows methods for a row-major storage. + \subsection TutorialSparse_TriangularSelfadjoint Triangular and selfadjoint views Just as with dense matrices, the triangularView() function can be used to address a triangular part of the matrix, and perform triangular solves with a dense right hand side: diff --git a/ext/eigen-3.2.7/doc/TutorialSparse_example_details.dox b/ext/eigen-3.2.9/doc/TutorialSparse_example_details.dox similarity index 100% rename from ext/eigen-3.2.7/doc/TutorialSparse_example_details.dox rename to ext/eigen-3.2.9/doc/TutorialSparse_example_details.dox diff --git a/ext/eigen-3.2.7/doc/UnalignedArrayAssert.dox b/ext/eigen-3.2.9/doc/UnalignedArrayAssert.dox similarity index 77% rename from ext/eigen-3.2.7/doc/UnalignedArrayAssert.dox rename to ext/eigen-3.2.9/doc/UnalignedArrayAssert.dox index 8c97d78..b0d6e18 100644 --- a/ext/eigen-3.2.7/doc/UnalignedArrayAssert.dox +++ b/ext/eigen-3.2.9/doc/UnalignedArrayAssert.dox @@ -7,8 +7,8 @@ Hello! You are seeing this webpage because your program terminated on an asserti my_program: path/to/eigen/Eigen/src/Core/DenseStorage.h:44: Eigen::internal::matrix_array::internal::matrix_array() [with T = double, int Size = 2, int MatrixOptions = 2, bool Align = true]: -Assertion `(reinterpret_cast(array) & 0xf) == 0 && "this assertion -is explained here: http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html +Assertion `(reinterpret_cast(array) & (sizemask)) == 0 && "this assertion +is explained here: http://eigen.tuxfamily.org/dox/group__TopicUnalignedArrayAssert.html **** READ THIS WEB PAGE !!! ****"' failed. @@ -46,9 +46,9 @@ then you need to read this separate page: \ref TopicStructHavingEigenMembers "St Note that here, Eigen::Vector2d is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "fixed-size vectorizable Eigen types". -\section c2 Cause 2: STL Containers +\section c2 Cause 2: STL Containers or manual memory allocation -If you use STL Containers such as std::vector, std::map, ..., with Eigen objects, or with classes containing Eigen objects, like this, +If you use STL Containers such as std::vector, std::map, ..., with %Eigen objects, or with classes containing %Eigen objects, like this, \code std::vector my_vector; @@ -60,6 +60,8 @@ then you need to read this separate page: \ref TopicStlContainers "Using STL Con Note that here, Eigen::Matrix2f is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "fixed-size vectorizable Eigen types" and \ref TopicStructHavingEigenMembers "structures having such Eigen objects as member". +The same issue will be exhibited by any classes/functions by-passing operator new to allocate memory, that is, by performing custom memory allocation followed by calls to the placement new operator. This is for instance typically the case of \c std::make_shared or \c std::allocate_shared for which is the solution is to use an \ref aligned_allocator "aligned allocator" as detailed in the \ref TopicStlContainers "solution for STL containers". + \section c3 Cause 3: Passing Eigen objects by value If some function in your code is getting an Eigen object passed by value, like this, @@ -107,7 +109,10 @@ Two possibilities: 128-bit alignment code and thus preserves ABI compatibility, but completely disables vectorization. -For more information, see this FAQ. +If you want to know why defining EIGEN_DONT_VECTORIZE does not by itself disable 128-bit alignment and the assertion, here's the explanation: + +It doesn't disable the assertion, because otherwise code that runs fine without vectorization would suddenly crash when enabling vectorization. +It doesn't disable 128bit alignment, because that would mean that vectorized and non-vectorized code are not mutually ABI-compatible. This ABI compatibility is very important, even for people who develop only an in-house application, as for instance one may want to have in the same application a vectorized path and a non-vectorized path. */ diff --git a/ext/eigen-3.2.7/doc/UsingIntelMKL.dox b/ext/eigen-3.2.9/doc/UsingIntelMKL.dox similarity index 100% rename from ext/eigen-3.2.7/doc/UsingIntelMKL.dox rename to ext/eigen-3.2.9/doc/UsingIntelMKL.dox diff --git a/ext/eigen-3.2.7/doc/WrongStackAlignment.dox b/ext/eigen-3.2.9/doc/WrongStackAlignment.dox similarity index 100% rename from ext/eigen-3.2.7/doc/WrongStackAlignment.dox rename to ext/eigen-3.2.9/doc/WrongStackAlignment.dox diff --git a/ext/eigen-3.2.7/doc/eigen_navtree_hacks.js b/ext/eigen-3.2.9/doc/eigen_navtree_hacks.js similarity index 100% rename from ext/eigen-3.2.7/doc/eigen_navtree_hacks.js rename to ext/eigen-3.2.9/doc/eigen_navtree_hacks.js diff --git a/ext/eigen-3.2.7/doc/eigendoxy.css b/ext/eigen-3.2.9/doc/eigendoxy.css similarity index 100% rename from ext/eigen-3.2.7/doc/eigendoxy.css rename to ext/eigen-3.2.9/doc/eigendoxy.css diff --git a/ext/eigen-3.2.7/doc/eigendoxy_footer.html.in b/ext/eigen-3.2.9/doc/eigendoxy_footer.html.in similarity index 100% rename from ext/eigen-3.2.7/doc/eigendoxy_footer.html.in rename to ext/eigen-3.2.9/doc/eigendoxy_footer.html.in diff --git a/ext/eigen-3.2.7/doc/eigendoxy_header.html.in b/ext/eigen-3.2.9/doc/eigendoxy_header.html.in similarity index 100% rename from ext/eigen-3.2.7/doc/eigendoxy_header.html.in rename to ext/eigen-3.2.9/doc/eigendoxy_header.html.in diff --git a/ext/eigen-3.2.7/doc/eigendoxy_layout.xml.in b/ext/eigen-3.2.9/doc/eigendoxy_layout.xml.in similarity index 100% rename from ext/eigen-3.2.7/doc/eigendoxy_layout.xml.in rename to ext/eigen-3.2.9/doc/eigendoxy_layout.xml.in diff --git a/ext/eigen-3.2.7/doc/eigendoxy_tabs.css b/ext/eigen-3.2.9/doc/eigendoxy_tabs.css similarity index 100% rename from ext/eigen-3.2.7/doc/eigendoxy_tabs.css rename to ext/eigen-3.2.9/doc/eigendoxy_tabs.css diff --git a/ext/eigen-3.2.7/doc/examples/.krazy b/ext/eigen-3.2.9/doc/examples/.krazy similarity index 100% rename from ext/eigen-3.2.7/doc/examples/.krazy rename to ext/eigen-3.2.9/doc/examples/.krazy diff --git a/ext/eigen-3.2.7/doc/examples/CMakeLists.txt b/ext/eigen-3.2.9/doc/examples/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/doc/examples/CMakeLists.txt rename to ext/eigen-3.2.9/doc/examples/CMakeLists.txt diff --git a/ext/eigen-3.2.7/doc/examples/DenseBase_middleCols_int.cpp b/ext/eigen-3.2.9/doc/examples/DenseBase_middleCols_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/DenseBase_middleCols_int.cpp rename to ext/eigen-3.2.9/doc/examples/DenseBase_middleCols_int.cpp diff --git a/ext/eigen-3.2.7/doc/examples/DenseBase_middleRows_int.cpp b/ext/eigen-3.2.9/doc/examples/DenseBase_middleRows_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/DenseBase_middleRows_int.cpp rename to ext/eigen-3.2.9/doc/examples/DenseBase_middleRows_int.cpp diff --git a/ext/eigen-3.2.7/doc/examples/DenseBase_template_int_middleCols.cpp b/ext/eigen-3.2.9/doc/examples/DenseBase_template_int_middleCols.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/DenseBase_template_int_middleCols.cpp rename to ext/eigen-3.2.9/doc/examples/DenseBase_template_int_middleCols.cpp diff --git a/ext/eigen-3.2.7/doc/examples/DenseBase_template_int_middleRows.cpp b/ext/eigen-3.2.9/doc/examples/DenseBase_template_int_middleRows.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/DenseBase_template_int_middleRows.cpp rename to ext/eigen-3.2.9/doc/examples/DenseBase_template_int_middleRows.cpp diff --git a/ext/eigen-3.2.7/doc/examples/MatrixBase_cwise_const.cpp b/ext/eigen-3.2.9/doc/examples/MatrixBase_cwise_const.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/MatrixBase_cwise_const.cpp rename to ext/eigen-3.2.9/doc/examples/MatrixBase_cwise_const.cpp diff --git a/ext/eigen-3.2.7/doc/examples/QuickStart_example.cpp b/ext/eigen-3.2.9/doc/examples/QuickStart_example.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/QuickStart_example.cpp rename to ext/eigen-3.2.9/doc/examples/QuickStart_example.cpp diff --git a/ext/eigen-3.2.7/doc/examples/QuickStart_example2_dynamic.cpp b/ext/eigen-3.2.9/doc/examples/QuickStart_example2_dynamic.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/QuickStart_example2_dynamic.cpp rename to ext/eigen-3.2.9/doc/examples/QuickStart_example2_dynamic.cpp diff --git a/ext/eigen-3.2.7/doc/examples/QuickStart_example2_fixed.cpp b/ext/eigen-3.2.9/doc/examples/QuickStart_example2_fixed.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/QuickStart_example2_fixed.cpp rename to ext/eigen-3.2.9/doc/examples/QuickStart_example2_fixed.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TemplateKeyword_flexible.cpp b/ext/eigen-3.2.9/doc/examples/TemplateKeyword_flexible.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TemplateKeyword_flexible.cpp rename to ext/eigen-3.2.9/doc/examples/TemplateKeyword_flexible.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TemplateKeyword_simple.cpp b/ext/eigen-3.2.9/doc/examples/TemplateKeyword_simple.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TemplateKeyword_simple.cpp rename to ext/eigen-3.2.9/doc/examples/TemplateKeyword_simple.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgComputeTwice.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgComputeTwice.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgComputeTwice.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgComputeTwice.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgExComputeSolveError.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgExComputeSolveError.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgExComputeSolveError.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgExComputeSolveError.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgExSolveLDLT.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgExSolveLDLT.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgExSolveLDLT.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgExSolveLDLT.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgInverseDeterminant.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgInverseDeterminant.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgInverseDeterminant.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgInverseDeterminant.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgRankRevealing.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgRankRevealing.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgRankRevealing.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgRankRevealing.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgSVDSolve.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgSVDSolve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgSVDSolve.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgSVDSolve.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp diff --git a/ext/eigen-3.2.7/doc/examples/TutorialLinAlgSetThreshold.cpp b/ext/eigen-3.2.9/doc/examples/TutorialLinAlgSetThreshold.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/TutorialLinAlgSetThreshold.cpp rename to ext/eigen-3.2.9/doc/examples/TutorialLinAlgSetThreshold.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_accessors.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_accessors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_accessors.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_accessors.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_addition.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_addition.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_addition.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_addition.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_cwise_other.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_cwise_other.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_cwise_other.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_cwise_other.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_interop.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_interop.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_interop.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_interop.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_mult.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_mult.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ArrayClass_mult.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ArrayClass_mult.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_block_assignment.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_block_assignment.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_block_assignment.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_block_assignment.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_colrow.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_colrow.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_colrow.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_colrow.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_corner.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_corner.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_corner.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_corner.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_print_block.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_print_block.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_print_block.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_print_block.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_vector.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_vector.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_BlockOperations_vector.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_BlockOperations_vector.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_PartialLU_solve.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_PartialLU_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_PartialLU_solve.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_PartialLU_solve.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_simple_example_dynamic_size.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_simple_example_dynamic_size.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_simple_example_dynamic_size.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_simple_example_dynamic_size.cpp diff --git a/ext/eigen-3.2.7/doc/examples/Tutorial_simple_example_fixed_size.cpp b/ext/eigen-3.2.9/doc/examples/Tutorial_simple_example_fixed_size.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/Tutorial_simple_example_fixed_size.cpp rename to ext/eigen-3.2.9/doc/examples/Tutorial_simple_example_fixed_size.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_Block.cpp b/ext/eigen-3.2.9/doc/examples/class_Block.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_Block.cpp rename to ext/eigen-3.2.9/doc/examples/class_Block.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_CwiseBinaryOp.cpp b/ext/eigen-3.2.9/doc/examples/class_CwiseBinaryOp.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_CwiseBinaryOp.cpp rename to ext/eigen-3.2.9/doc/examples/class_CwiseBinaryOp.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_CwiseUnaryOp.cpp b/ext/eigen-3.2.9/doc/examples/class_CwiseUnaryOp.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_CwiseUnaryOp.cpp rename to ext/eigen-3.2.9/doc/examples/class_CwiseUnaryOp.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_CwiseUnaryOp_ptrfun.cpp b/ext/eigen-3.2.9/doc/examples/class_CwiseUnaryOp_ptrfun.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_CwiseUnaryOp_ptrfun.cpp rename to ext/eigen-3.2.9/doc/examples/class_CwiseUnaryOp_ptrfun.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_FixedBlock.cpp b/ext/eigen-3.2.9/doc/examples/class_FixedBlock.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_FixedBlock.cpp rename to ext/eigen-3.2.9/doc/examples/class_FixedBlock.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_FixedVectorBlock.cpp b/ext/eigen-3.2.9/doc/examples/class_FixedVectorBlock.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_FixedVectorBlock.cpp rename to ext/eigen-3.2.9/doc/examples/class_FixedVectorBlock.cpp diff --git a/ext/eigen-3.2.7/doc/examples/class_VectorBlock.cpp b/ext/eigen-3.2.9/doc/examples/class_VectorBlock.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/class_VectorBlock.cpp rename to ext/eigen-3.2.9/doc/examples/class_VectorBlock.cpp diff --git a/ext/eigen-3.2.7/doc/examples/function_taking_eigenbase.cpp b/ext/eigen-3.2.9/doc/examples/function_taking_eigenbase.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/function_taking_eigenbase.cpp rename to ext/eigen-3.2.9/doc/examples/function_taking_eigenbase.cpp diff --git a/ext/eigen-3.2.7/doc/examples/function_taking_ref.cpp b/ext/eigen-3.2.9/doc/examples/function_taking_ref.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/function_taking_ref.cpp rename to ext/eigen-3.2.9/doc/examples/function_taking_ref.cpp diff --git a/ext/eigen-3.2.9/doc/examples/matrixfree_cg.cpp b/ext/eigen-3.2.9/doc/examples/matrixfree_cg.cpp new file mode 100644 index 0000000..f0631c3 --- /dev/null +++ b/ext/eigen-3.2.9/doc/examples/matrixfree_cg.cpp @@ -0,0 +1,180 @@ +#include +#include +#include +#include + +class MatrixReplacement; +template class MatrixReplacement_ProductReturnType; + +namespace Eigen { +namespace internal { + template<> + struct traits : Eigen::internal::traits > + {}; + + template + struct traits > { + // The equivalent plain objet type of the product. This type is used if the product needs to be evaluated into a temporary. + typedef Eigen::Matrix ReturnType; + }; +} +} + +// Inheriting EigenBase should not be needed in the future. +class MatrixReplacement : public Eigen::EigenBase { +public: + // Expose some compile-time information to Eigen: + typedef double Scalar; + typedef double RealScalar; + enum { + ColsAtCompileTime = Eigen::Dynamic, + RowsAtCompileTime = Eigen::Dynamic, + MaxColsAtCompileTime = Eigen::Dynamic, + MaxRowsAtCompileTime = Eigen::Dynamic + }; + + Index rows() const { return 4; } + Index cols() const { return 4; } + + void resize(Index a_rows, Index a_cols) + { + // This method should not be needed in the future. + assert(a_rows==0 && a_cols==0 || a_rows==rows() && a_cols==cols()); + } + + // In the future, the return type should be Eigen::Product + template + MatrixReplacement_ProductReturnType operator*(const Eigen::MatrixBase& x) const { + return MatrixReplacement_ProductReturnType(*this, x.derived()); + } + +}; + +// The proxy class representing the product of a MatrixReplacement with a MatrixBase<> +template +class MatrixReplacement_ProductReturnType : public Eigen::ReturnByValue > { +public: + typedef MatrixReplacement::Index Index; + + // The ctor store references to the matrix and right-hand-side object (usually a vector). + MatrixReplacement_ProductReturnType(const MatrixReplacement& matrix, const Rhs& rhs) + : m_matrix(matrix), m_rhs(rhs) + {} + + Index rows() const { return m_matrix.rows(); } + Index cols() const { return m_rhs.cols(); } + + // This function is automatically called by Eigen. It must evaluate the product of matrix * rhs into y. + template + void evalTo(Dest& y) const + { + y.setZero(4); + + y(0) += 2 * m_rhs(0); y(1) += 1 * m_rhs(0); + y(0) += 1 * m_rhs(1); y(1) += 2 * m_rhs(1); y(2) += 1 * m_rhs(1); + y(1) += 1 * m_rhs(2); y(2) += 2 * m_rhs(2); y(3) += 1 * m_rhs(2); + y(2) += 1 * m_rhs(3); y(3) += 2 * m_rhs(3); + } + +protected: + const MatrixReplacement& m_matrix; + typename Rhs::Nested m_rhs; +}; + + +/*****/ + +// This class simply warp a diagonal matrix as a Jacobi preconditioner. +// In the future such simple and generic wrapper should be shipped within Eigen itsel. +template +class MyJacobiPreconditioner +{ + typedef _Scalar Scalar; + typedef Eigen::Matrix Vector; + typedef typename Vector::Index Index; + + public: + // this typedef is only to export the scalar type and compile-time dimensions to solve_retval + typedef Eigen::Matrix MatrixType; + + MyJacobiPreconditioner() : m_isInitialized(false) {} + + void setInvDiag(const Eigen::VectorXd &invdiag) { + m_invdiag=invdiag; + m_isInitialized=true; + } + + Index rows() const { return m_invdiag.size(); } + Index cols() const { return m_invdiag.size(); } + + template + MyJacobiPreconditioner& analyzePattern(const MatType& ) { return *this; } + + template + MyJacobiPreconditioner& factorize(const MatType& mat) { return *this; } + + template + MyJacobiPreconditioner& compute(const MatType& mat) { return *this; } + + template + void _solve(const Rhs& b, Dest& x) const + { + x = m_invdiag.array() * b.array() ; + } + + template inline const Eigen::internal::solve_retval + solve(const Eigen::MatrixBase& b) const + { + eigen_assert(m_isInitialized && "MyJacobiPreconditioner is not initialized."); + eigen_assert(m_invdiag.size()==b.rows() + && "MyJacobiPreconditioner::solve(): invalid number of rows of the right hand side matrix b"); + return Eigen::internal::solve_retval(*this, b.derived()); + } + + protected: + Vector m_invdiag; + bool m_isInitialized; +}; + +namespace Eigen { +namespace internal { + +template +struct solve_retval, Rhs> + : solve_retval_base, Rhs> +{ + typedef MyJacobiPreconditioner<_MatrixType> Dec; + EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs) + + template void evalTo(Dest& dst) const + { + dec()._solve(rhs(),dst); + } +}; + +} +} + + +/*****/ + + +int main() +{ + MatrixReplacement A; + Eigen::VectorXd b(4), x; + b << 1, 1, 1, 1; + + // solve Ax = b using CG with matrix-free version: + Eigen::ConjugateGradient < MatrixReplacement, Eigen::Lower|Eigen::Upper, MyJacobiPreconditioner > cg; + + Eigen::VectorXd invdiag(4); + invdiag << 1./3., 1./4., 1./4., 1./3.; + + cg.preconditioner().setInvDiag(invdiag); + cg.compute(A); + x = cg.solve(b); + + std::cout << "#iterations: " << cg.iterations() << std::endl; + std::cout << "estimated error: " << cg.error() << std::endl; +} diff --git a/ext/eigen-3.2.7/doc/examples/tut_arithmetic_add_sub.cpp b/ext/eigen-3.2.9/doc/examples/tut_arithmetic_add_sub.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_arithmetic_add_sub.cpp rename to ext/eigen-3.2.9/doc/examples/tut_arithmetic_add_sub.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_arithmetic_dot_cross.cpp b/ext/eigen-3.2.9/doc/examples/tut_arithmetic_dot_cross.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_arithmetic_dot_cross.cpp rename to ext/eigen-3.2.9/doc/examples/tut_arithmetic_dot_cross.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_arithmetic_matrix_mul.cpp b/ext/eigen-3.2.9/doc/examples/tut_arithmetic_matrix_mul.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_arithmetic_matrix_mul.cpp rename to ext/eigen-3.2.9/doc/examples/tut_arithmetic_matrix_mul.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_arithmetic_redux_basic.cpp b/ext/eigen-3.2.9/doc/examples/tut_arithmetic_redux_basic.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_arithmetic_redux_basic.cpp rename to ext/eigen-3.2.9/doc/examples/tut_arithmetic_redux_basic.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_arithmetic_scalar_mul_div.cpp b/ext/eigen-3.2.9/doc/examples/tut_arithmetic_scalar_mul_div.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_arithmetic_scalar_mul_div.cpp rename to ext/eigen-3.2.9/doc/examples/tut_arithmetic_scalar_mul_div.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_matrix_coefficient_accessors.cpp b/ext/eigen-3.2.9/doc/examples/tut_matrix_coefficient_accessors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_matrix_coefficient_accessors.cpp rename to ext/eigen-3.2.9/doc/examples/tut_matrix_coefficient_accessors.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_matrix_resize.cpp b/ext/eigen-3.2.9/doc/examples/tut_matrix_resize.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_matrix_resize.cpp rename to ext/eigen-3.2.9/doc/examples/tut_matrix_resize.cpp diff --git a/ext/eigen-3.2.7/doc/examples/tut_matrix_resize_fixed_size.cpp b/ext/eigen-3.2.9/doc/examples/tut_matrix_resize_fixed_size.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/examples/tut_matrix_resize_fixed_size.cpp rename to ext/eigen-3.2.9/doc/examples/tut_matrix_resize_fixed_size.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/.krazy b/ext/eigen-3.2.9/doc/snippets/.krazy similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/.krazy rename to ext/eigen-3.2.9/doc/snippets/.krazy diff --git a/ext/eigen-3.2.7/doc/snippets/AngleAxis_mimic_euler.cpp b/ext/eigen-3.2.9/doc/snippets/AngleAxis_mimic_euler.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/AngleAxis_mimic_euler.cpp rename to ext/eigen-3.2.9/doc/snippets/AngleAxis_mimic_euler.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/CMakeLists.txt b/ext/eigen-3.2.9/doc/snippets/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/CMakeLists.txt rename to ext/eigen-3.2.9/doc/snippets/CMakeLists.txt diff --git a/ext/eigen-3.2.7/doc/snippets/ColPivHouseholderQR_solve.cpp b/ext/eigen-3.2.9/doc/snippets/ColPivHouseholderQR_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ColPivHouseholderQR_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/ColPivHouseholderQR_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_compute.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_eigenvalues.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_eigenvalues.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_eigenvalues.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_eigenvectors.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_eigenvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexEigenSolver_eigenvectors.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexEigenSolver_eigenvectors.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexSchur_compute.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexSchur_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexSchur_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexSchur_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexSchur_matrixT.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexSchur_matrixT.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexSchur_matrixT.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexSchur_matrixT.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/ComplexSchur_matrixU.cpp b/ext/eigen-3.2.9/doc/snippets/ComplexSchur_matrixU.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/ComplexSchur_matrixU.cpp rename to ext/eigen-3.2.9/doc/snippets/ComplexSchur_matrixU.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_abs.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_abs.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_abs.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_abs.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_abs2.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_abs2.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_abs2.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_abs2.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_acos.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_acos.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_acos.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_acos.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_asin.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_asin.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_asin.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_asin.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_boolean_and.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_boolean_and.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_boolean_and.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_boolean_and.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_boolean_or.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_boolean_or.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_boolean_or.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_boolean_or.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_cos.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_cos.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_cos.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_cos.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_cube.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_cube.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_cube.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_cube.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_equal_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_equal_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_equal_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_equal_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_exp.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_exp.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_exp.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_exp.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_greater.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_greater.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_greater.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_greater.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_greater_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_greater_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_greater_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_greater_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_inverse.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_inverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_inverse.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_inverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_less.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_less.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_less.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_less.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_less_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_less_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_less_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_less_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_log.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_log.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_log.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_log.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_max.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_max.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_max.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_max.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_min.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_min.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_min.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_min.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_minus.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_minus.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_minus.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_minus.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_minus_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_minus_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_minus_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_minus_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_not_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_not_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_not_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_not_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_plus.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_plus.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_plus.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_plus.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_plus_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_plus_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_plus_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_plus_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_pow.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_pow.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_pow.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_pow.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_product.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_product.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_product.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_product.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_quotient.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_quotient.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_quotient.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_quotient.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_sin.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_sin.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_sin.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_sin.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_slash_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_slash_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_slash_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_slash_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_sqrt.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_sqrt.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_sqrt.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_sqrt.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_square.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_square.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_square.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_square.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_tan.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_tan.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_tan.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_tan.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Cwise_times_equal.cpp b/ext/eigen-3.2.9/doc/snippets/Cwise_times_equal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Cwise_times_equal.cpp rename to ext/eigen-3.2.9/doc/snippets/Cwise_times_equal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/DenseBase_LinSpaced.cpp b/ext/eigen-3.2.9/doc/snippets/DenseBase_LinSpaced.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/DenseBase_LinSpaced.cpp rename to ext/eigen-3.2.9/doc/snippets/DenseBase_LinSpaced.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/DenseBase_LinSpaced_seq.cpp b/ext/eigen-3.2.9/doc/snippets/DenseBase_LinSpaced_seq.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/DenseBase_LinSpaced_seq.cpp rename to ext/eigen-3.2.9/doc/snippets/DenseBase_LinSpaced_seq.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/DenseBase_setLinSpaced.cpp b/ext/eigen-3.2.9/doc/snippets/DenseBase_setLinSpaced.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/DenseBase_setLinSpaced.cpp rename to ext/eigen-3.2.9/doc/snippets/DenseBase_setLinSpaced.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/DirectionWise_replicate.cpp b/ext/eigen-3.2.9/doc/snippets/DirectionWise_replicate.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/DirectionWise_replicate.cpp rename to ext/eigen-3.2.9/doc/snippets/DirectionWise_replicate.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/DirectionWise_replicate_int.cpp b/ext/eigen-3.2.9/doc/snippets/DirectionWise_replicate_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/DirectionWise_replicate_int.cpp rename to ext/eigen-3.2.9/doc/snippets/DirectionWise_replicate_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp b/ext/eigen-3.2.9/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp rename to ext/eigen-3.2.9/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/EigenSolver_compute.cpp b/ext/eigen-3.2.9/doc/snippets/EigenSolver_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/EigenSolver_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/EigenSolver_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/EigenSolver_eigenvalues.cpp b/ext/eigen-3.2.9/doc/snippets/EigenSolver_eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/EigenSolver_eigenvalues.cpp rename to ext/eigen-3.2.9/doc/snippets/EigenSolver_eigenvalues.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/EigenSolver_eigenvectors.cpp b/ext/eigen-3.2.9/doc/snippets/EigenSolver_eigenvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/EigenSolver_eigenvectors.cpp rename to ext/eigen-3.2.9/doc/snippets/EigenSolver_eigenvectors.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/EigenSolver_pseudoEigenvectors.cpp b/ext/eigen-3.2.9/doc/snippets/EigenSolver_pseudoEigenvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/EigenSolver_pseudoEigenvectors.cpp rename to ext/eigen-3.2.9/doc/snippets/EigenSolver_pseudoEigenvectors.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/FullPivHouseholderQR_solve.cpp b/ext/eigen-3.2.9/doc/snippets/FullPivHouseholderQR_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/FullPivHouseholderQR_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/FullPivHouseholderQR_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/FullPivLU_image.cpp b/ext/eigen-3.2.9/doc/snippets/FullPivLU_image.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/FullPivLU_image.cpp rename to ext/eigen-3.2.9/doc/snippets/FullPivLU_image.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/FullPivLU_kernel.cpp b/ext/eigen-3.2.9/doc/snippets/FullPivLU_kernel.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/FullPivLU_kernel.cpp rename to ext/eigen-3.2.9/doc/snippets/FullPivLU_kernel.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/FullPivLU_solve.cpp b/ext/eigen-3.2.9/doc/snippets/FullPivLU_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/FullPivLU_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/FullPivLU_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/GeneralizedEigenSolver.cpp b/ext/eigen-3.2.9/doc/snippets/GeneralizedEigenSolver.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/GeneralizedEigenSolver.cpp rename to ext/eigen-3.2.9/doc/snippets/GeneralizedEigenSolver.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_compute.cpp b/ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_matrixH.cpp b/ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_matrixH.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_matrixH.cpp rename to ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_matrixH.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_packedMatrix.cpp b/ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_packedMatrix.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HessenbergDecomposition_packedMatrix.cpp rename to ext/eigen-3.2.9/doc/snippets/HessenbergDecomposition_packedMatrix.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HouseholderQR_householderQ.cpp b/ext/eigen-3.2.9/doc/snippets/HouseholderQR_householderQ.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HouseholderQR_householderQ.cpp rename to ext/eigen-3.2.9/doc/snippets/HouseholderQR_householderQ.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HouseholderQR_solve.cpp b/ext/eigen-3.2.9/doc/snippets/HouseholderQR_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HouseholderQR_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/HouseholderQR_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/HouseholderSequence_HouseholderSequence.cpp b/ext/eigen-3.2.9/doc/snippets/HouseholderSequence_HouseholderSequence.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/HouseholderSequence_HouseholderSequence.cpp rename to ext/eigen-3.2.9/doc/snippets/HouseholderSequence_HouseholderSequence.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/IOFormat.cpp b/ext/eigen-3.2.9/doc/snippets/IOFormat.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/IOFormat.cpp rename to ext/eigen-3.2.9/doc/snippets/IOFormat.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/JacobiSVD_basic.cpp b/ext/eigen-3.2.9/doc/snippets/JacobiSVD_basic.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/JacobiSVD_basic.cpp rename to ext/eigen-3.2.9/doc/snippets/JacobiSVD_basic.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Jacobi_makeGivens.cpp b/ext/eigen-3.2.9/doc/snippets/Jacobi_makeGivens.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Jacobi_makeGivens.cpp rename to ext/eigen-3.2.9/doc/snippets/Jacobi_makeGivens.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Jacobi_makeJacobi.cpp b/ext/eigen-3.2.9/doc/snippets/Jacobi_makeJacobi.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Jacobi_makeJacobi.cpp rename to ext/eigen-3.2.9/doc/snippets/Jacobi_makeJacobi.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/LLT_example.cpp b/ext/eigen-3.2.9/doc/snippets/LLT_example.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/LLT_example.cpp rename to ext/eigen-3.2.9/doc/snippets/LLT_example.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/LLT_solve.cpp b/ext/eigen-3.2.9/doc/snippets/LLT_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/LLT_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/LLT_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Map_general_stride.cpp b/ext/eigen-3.2.9/doc/snippets/Map_general_stride.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Map_general_stride.cpp rename to ext/eigen-3.2.9/doc/snippets/Map_general_stride.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Map_inner_stride.cpp b/ext/eigen-3.2.9/doc/snippets/Map_inner_stride.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Map_inner_stride.cpp rename to ext/eigen-3.2.9/doc/snippets/Map_inner_stride.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Map_outer_stride.cpp b/ext/eigen-3.2.9/doc/snippets/Map_outer_stride.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Map_outer_stride.cpp rename to ext/eigen-3.2.9/doc/snippets/Map_outer_stride.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Map_placement_new.cpp b/ext/eigen-3.2.9/doc/snippets/Map_placement_new.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Map_placement_new.cpp rename to ext/eigen-3.2.9/doc/snippets/Map_placement_new.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Map_simple.cpp b/ext/eigen-3.2.9/doc/snippets/Map_simple.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Map_simple.cpp rename to ext/eigen-3.2.9/doc/snippets/Map_simple.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_adjoint.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_adjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_adjoint.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_adjoint.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_all.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_all.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_all.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_all.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_applyOnTheLeft.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_applyOnTheLeft.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_applyOnTheLeft.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_applyOnTheLeft.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_applyOnTheRight.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_applyOnTheRight.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_applyOnTheRight.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_applyOnTheRight.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_array.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_array.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_array.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_array.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_array_const.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_array_const.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_array_const.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_array_const.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_asDiagonal.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_asDiagonal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_asDiagonal.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_asDiagonal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_block_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_block_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_block_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_block_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_block_int_int_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_block_int_int_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_block_int_int_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_block_int_int_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomRows_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomRows_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_bottomRows_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_bottomRows_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cast.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cast.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cast.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cast.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_col.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_col.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_col.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_col.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_colwise.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_colwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_colwise.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_colwise.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_computeInverseWithCheck.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_computeInverseWithCheck.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_computeInverseWithCheck.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_computeInverseWithCheck.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseAbs.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseAbs.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseAbs.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseAbs.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseAbs2.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseAbs2.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseAbs2.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseAbs2.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseEqual.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseEqual.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseEqual.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseEqual.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseInverse.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseInverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseInverse.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseInverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseMax.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseMax.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseMax.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseMax.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseMin.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseMin.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseMin.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseMin.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseNotEqual.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseNotEqual.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseNotEqual.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseNotEqual.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseProduct.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseProduct.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseProduct.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseProduct.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseQuotient.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseQuotient.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseQuotient.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseQuotient.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseSqrt.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseSqrt.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_cwiseSqrt.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_cwiseSqrt.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal_template_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal_template_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_diagonal_template_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_diagonal_template_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_eigenvalues.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_eigenvalues.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_eigenvalues.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_end_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_end_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_end_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_end_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_eval.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_eval.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_eval.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_eval.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_extract.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_extract.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_extract.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_extract.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_fixedBlock_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_fixedBlock_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_fixedBlock_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_fixedBlock_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_identity.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_identity.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_identity.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_identity.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_identity_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_identity_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_identity_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_identity_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_inverse.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_inverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_inverse.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_inverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isDiagonal.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isDiagonal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isDiagonal.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isDiagonal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isIdentity.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isIdentity.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isIdentity.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isIdentity.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isOnes.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isOnes.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isOnes.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isOnes.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isOrthogonal.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isOrthogonal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isOrthogonal.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isOrthogonal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isUnitary.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isUnitary.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isUnitary.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isUnitary.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_isZero.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_isZero.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_isZero.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_isZero.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_leftCols_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_leftCols_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_leftCols_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_leftCols_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_marked.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_marked.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_marked.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_marked.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_noalias.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_noalias.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_noalias.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_noalias.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_ones.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_ones.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_ones.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_ones.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_ones_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_ones_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_ones_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_ones_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_ones_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_ones_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_ones_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_ones_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_operatorNorm.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_operatorNorm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_operatorNorm.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_operatorNorm.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_part.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_part.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_part.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_part.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_prod.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_prod.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_prod.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_prod.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_random.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_random.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_random.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_random.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_random_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_random_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_random_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_random_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_random_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_random_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_random_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_random_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_replicate.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_replicate.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_replicate.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_replicate.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_replicate_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_replicate_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_replicate_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_replicate_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_reverse.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_reverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_reverse.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_reverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_rightCols_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_rightCols_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_rightCols_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_rightCols_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_row.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_row.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_row.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_row.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_rowwise.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_rowwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_rowwise.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_rowwise.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_segment_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_segment_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_segment_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_segment_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_select.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_select.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_select.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_select.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_set.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_set.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_set.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_set.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_setIdentity.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_setIdentity.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_setIdentity.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_setIdentity.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_setOnes.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_setOnes.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_setOnes.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_setOnes.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_setRandom.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_setRandom.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_setRandom.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_setRandom.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_setZero.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_setZero.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_setZero.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_setZero.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_start_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_start_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_start_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_start_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_bottomRows.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_bottomRows.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_bottomRows.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_bottomRows.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_end.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_end.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_end.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_end.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_leftCols.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_leftCols.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_leftCols.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_leftCols.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_rightCols.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_rightCols.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_rightCols.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_rightCols.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_segment.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_segment.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_segment.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_segment.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_start.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_start.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_start.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_start.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_topRows.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_topRows.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_template_int_topRows.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_template_int_topRows.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_topRightCorner_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_topRightCorner_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_topRightCorner_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_topRightCorner_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_topRows_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_topRows_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_topRows_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_topRows_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_transpose.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_transpose.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_transpose.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_transpose.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_zero.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_zero.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_zero.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_zero.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_zero_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_zero_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_zero_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_zero_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/MatrixBase_zero_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/MatrixBase_zero_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/MatrixBase_zero_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/MatrixBase_zero_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_resize_NoChange_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_resize_NoChange_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_resize_NoChange_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_resize_NoChange_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_resize_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_resize_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_resize_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_resize_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_resize_int_NoChange.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_resize_int_NoChange.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_resize_int_NoChange.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_resize_int_NoChange.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_resize_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_resize_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_resize_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_resize_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setConstant_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setConstant_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setConstant_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setConstant_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setConstant_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setConstant_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setConstant_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setConstant_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setIdentity_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setIdentity_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setIdentity_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setIdentity_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setOnes_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setOnes_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setOnes_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setOnes_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setOnes_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setOnes_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setOnes_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setOnes_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setRandom_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setRandom_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setRandom_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setRandom_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setRandom_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setRandom_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setRandom_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setRandom_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setZero_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setZero_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setZero_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setZero_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Matrix_setZero_int_int.cpp b/ext/eigen-3.2.9/doc/snippets/Matrix_setZero_int_int.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Matrix_setZero_int_int.cpp rename to ext/eigen-3.2.9/doc/snippets/Matrix_setZero_int_int.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialPivLU_solve.cpp b/ext/eigen-3.2.9/doc/snippets/PartialPivLU_solve.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialPivLU_solve.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialPivLU_solve.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_count.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_count.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_count.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_count.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_maxCoeff.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_maxCoeff.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_maxCoeff.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_maxCoeff.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_minCoeff.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_minCoeff.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_minCoeff.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_minCoeff.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_norm.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_norm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_norm.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_norm.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_prod.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_prod.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_prod.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_prod.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_squaredNorm.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_squaredNorm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_squaredNorm.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_squaredNorm.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/PartialRedux_sum.cpp b/ext/eigen-3.2.9/doc/snippets/PartialRedux_sum.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/PartialRedux_sum.cpp rename to ext/eigen-3.2.9/doc/snippets/PartialRedux_sum.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/RealQZ_compute.cpp b/ext/eigen-3.2.9/doc/snippets/RealQZ_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/RealQZ_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/RealQZ_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/RealSchur_RealSchur_MatrixType.cpp b/ext/eigen-3.2.9/doc/snippets/RealSchur_RealSchur_MatrixType.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/RealSchur_RealSchur_MatrixType.cpp rename to ext/eigen-3.2.9/doc/snippets/RealSchur_RealSchur_MatrixType.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/RealSchur_compute.cpp b/ext/eigen-3.2.9/doc/snippets/RealSchur_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/RealSchur_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/RealSchur_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointView_eigenvalues.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointView_eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointView_eigenvalues.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointView_eigenvalues.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/SelfAdjointView_operatorNorm.cpp b/ext/eigen-3.2.9/doc/snippets/SelfAdjointView_operatorNorm.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/SelfAdjointView_operatorNorm.cpp rename to ext/eigen-3.2.9/doc/snippets/SelfAdjointView_operatorNorm.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_block.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_block.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_block.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_block.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_block_correct.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_block_correct.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_block_correct.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_block_correct.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_cwise.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_cwise.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_cwise.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_cwise.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult1.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult1.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult1.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult1.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult2.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult2.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult2.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult2.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult3.cpp b/ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult3.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicAliasing_mult3.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicAliasing_mult3.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/TopicStorageOrders_example.cpp b/ext/eigen-3.2.9/doc/snippets/TopicStorageOrders_example.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/TopicStorageOrders_example.cpp rename to ext/eigen-3.2.9/doc/snippets/TopicStorageOrders_example.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_compute.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_compute.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_compute.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_compute.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_decomposeInPlace.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_decomposeInPlace.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_decomposeInPlace.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_decomposeInPlace.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_diagonal.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_diagonal.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_diagonal.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_diagonal.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_householderCoefficients.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_householderCoefficients.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_householderCoefficients.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_householderCoefficients.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tridiagonalization_packedMatrix.cpp b/ext/eigen-3.2.9/doc/snippets/Tridiagonalization_packedMatrix.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tridiagonalization_packedMatrix.cpp rename to ext/eigen-3.2.9/doc/snippets/Tridiagonalization_packedMatrix.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_Map_rowmajor.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_Map_rowmajor.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_Map_rowmajor.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_Map_rowmajor.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_Map_using.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_Map_using.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_Map_using.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_Map_using.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_01.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_01.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_01.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_01.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_01b.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_01b.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_01b.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_01b.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_02.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_02.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_commainit_02.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_commainit_02.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_matrix_inverse.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_matrix_inverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_matrix_inverse.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_matrix_inverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_multiple_rhs.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_multiple_rhs.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_multiple_rhs.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_multiple_rhs.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_reuse_decomposition.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_reuse_decomposition.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_reuse_decomposition.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_reuse_decomposition.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_singular.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_singular.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_singular.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_singular.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_triangular.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_triangular.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_triangular.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_triangular.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Tutorial_solve_triangular_inplace.cpp b/ext/eigen-3.2.9/doc/snippets/Tutorial_solve_triangular_inplace.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Tutorial_solve_triangular_inplace.cpp rename to ext/eigen-3.2.9/doc/snippets/Tutorial_solve_triangular_inplace.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/Vectorwise_reverse.cpp b/ext/eigen-3.2.9/doc/snippets/Vectorwise_reverse.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/Vectorwise_reverse.cpp rename to ext/eigen-3.2.9/doc/snippets/Vectorwise_reverse.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/class_FullPivLU.cpp b/ext/eigen-3.2.9/doc/snippets/class_FullPivLU.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/class_FullPivLU.cpp rename to ext/eigen-3.2.9/doc/snippets/class_FullPivLU.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/compile_snippet.cpp.in b/ext/eigen-3.2.9/doc/snippets/compile_snippet.cpp.in similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/compile_snippet.cpp.in rename to ext/eigen-3.2.9/doc/snippets/compile_snippet.cpp.in diff --git a/ext/eigen-3.2.7/doc/snippets/tut_arithmetic_redux_minmax.cpp b/ext/eigen-3.2.9/doc/snippets/tut_arithmetic_redux_minmax.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/tut_arithmetic_redux_minmax.cpp rename to ext/eigen-3.2.9/doc/snippets/tut_arithmetic_redux_minmax.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_aliasing.cpp b/ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_aliasing.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_aliasing.cpp rename to ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_aliasing.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_conjugate.cpp b/ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_conjugate.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_conjugate.cpp rename to ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_conjugate.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_inplace.cpp b/ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_inplace.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/tut_arithmetic_transpose_inplace.cpp rename to ext/eigen-3.2.9/doc/snippets/tut_arithmetic_transpose_inplace.cpp diff --git a/ext/eigen-3.2.7/doc/snippets/tut_matrix_assignment_resizing.cpp b/ext/eigen-3.2.9/doc/snippets/tut_matrix_assignment_resizing.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/snippets/tut_matrix_assignment_resizing.cpp rename to ext/eigen-3.2.9/doc/snippets/tut_matrix_assignment_resizing.cpp diff --git a/ext/eigen-3.2.7/doc/special_examples/CMakeLists.txt b/ext/eigen-3.2.9/doc/special_examples/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/doc/special_examples/CMakeLists.txt rename to ext/eigen-3.2.9/doc/special_examples/CMakeLists.txt diff --git a/ext/eigen-3.2.7/doc/special_examples/Tutorial_sparse_example.cpp b/ext/eigen-3.2.9/doc/special_examples/Tutorial_sparse_example.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/special_examples/Tutorial_sparse_example.cpp rename to ext/eigen-3.2.9/doc/special_examples/Tutorial_sparse_example.cpp diff --git a/ext/eigen-3.2.7/doc/special_examples/Tutorial_sparse_example_details.cpp b/ext/eigen-3.2.9/doc/special_examples/Tutorial_sparse_example_details.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/special_examples/Tutorial_sparse_example_details.cpp rename to ext/eigen-3.2.9/doc/special_examples/Tutorial_sparse_example_details.cpp diff --git a/ext/eigen-3.2.7/doc/tutorial.cpp b/ext/eigen-3.2.9/doc/tutorial.cpp similarity index 100% rename from ext/eigen-3.2.7/doc/tutorial.cpp rename to ext/eigen-3.2.9/doc/tutorial.cpp diff --git a/ext/eigen-3.2.7/eigen3.pc.in b/ext/eigen-3.2.9/eigen3.pc.in similarity index 50% rename from ext/eigen-3.2.7/eigen3.pc.in rename to ext/eigen-3.2.9/eigen3.pc.in index c5855de..3368a3a 100644 --- a/ext/eigen-3.2.7/eigen3.pc.in +++ b/ext/eigen-3.2.9/eigen3.pc.in @@ -1,6 +1,9 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} + Name: Eigen3 Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms Requires: -Version: ${EIGEN_VERSION_NUMBER} +Version: @EIGEN_VERSION_NUMBER@ Libs: -Cflags: -I${INCLUDE_INSTALL_DIR} +Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@ diff --git a/ext/eigen-3.2.7/failtest/CMakeLists.txt b/ext/eigen-3.2.9/failtest/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/failtest/CMakeLists.txt rename to ext/eigen-3.2.9/failtest/CMakeLists.txt diff --git a/ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_0.cpp b/ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_0.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_0.cpp rename to ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_0.cpp diff --git a/ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_1.cpp b/ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_1.cpp rename to ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_1.cpp diff --git a/ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_2.cpp b/ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_2.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/block_nonconst_ctor_on_const_xpr_2.cpp rename to ext/eigen-3.2.9/failtest/block_nonconst_ctor_on_const_xpr_2.cpp diff --git a/ext/eigen-3.2.7/failtest/block_on_const_type_actually_const_0.cpp b/ext/eigen-3.2.9/failtest/block_on_const_type_actually_const_0.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/block_on_const_type_actually_const_0.cpp rename to ext/eigen-3.2.9/failtest/block_on_const_type_actually_const_0.cpp diff --git a/ext/eigen-3.2.7/failtest/block_on_const_type_actually_const_1.cpp b/ext/eigen-3.2.9/failtest/block_on_const_type_actually_const_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/block_on_const_type_actually_const_1.cpp rename to ext/eigen-3.2.9/failtest/block_on_const_type_actually_const_1.cpp diff --git a/ext/eigen-3.2.7/failtest/colpivqr_int.cpp b/ext/eigen-3.2.9/failtest/colpivqr_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/colpivqr_int.cpp rename to ext/eigen-3.2.9/failtest/colpivqr_int.cpp diff --git a/ext/eigen-3.2.7/failtest/const_qualified_block_method_retval_0.cpp b/ext/eigen-3.2.9/failtest/const_qualified_block_method_retval_0.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/const_qualified_block_method_retval_0.cpp rename to ext/eigen-3.2.9/failtest/const_qualified_block_method_retval_0.cpp diff --git a/ext/eigen-3.2.7/failtest/const_qualified_block_method_retval_1.cpp b/ext/eigen-3.2.9/failtest/const_qualified_block_method_retval_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/const_qualified_block_method_retval_1.cpp rename to ext/eigen-3.2.9/failtest/const_qualified_block_method_retval_1.cpp diff --git a/ext/eigen-3.2.7/failtest/const_qualified_diagonal_method_retval.cpp b/ext/eigen-3.2.9/failtest/const_qualified_diagonal_method_retval.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/const_qualified_diagonal_method_retval.cpp rename to ext/eigen-3.2.9/failtest/const_qualified_diagonal_method_retval.cpp diff --git a/ext/eigen-3.2.7/failtest/const_qualified_transpose_method_retval.cpp b/ext/eigen-3.2.9/failtest/const_qualified_transpose_method_retval.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/const_qualified_transpose_method_retval.cpp rename to ext/eigen-3.2.9/failtest/const_qualified_transpose_method_retval.cpp diff --git a/ext/eigen-3.2.7/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp b/ext/eigen-3.2.9/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp rename to ext/eigen-3.2.9/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp diff --git a/ext/eigen-3.2.7/failtest/diagonal_on_const_type_actually_const.cpp b/ext/eigen-3.2.9/failtest/diagonal_on_const_type_actually_const.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/diagonal_on_const_type_actually_const.cpp rename to ext/eigen-3.2.9/failtest/diagonal_on_const_type_actually_const.cpp diff --git a/ext/eigen-3.2.7/failtest/eigensolver_cplx.cpp b/ext/eigen-3.2.9/failtest/eigensolver_cplx.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/eigensolver_cplx.cpp rename to ext/eigen-3.2.9/failtest/eigensolver_cplx.cpp diff --git a/ext/eigen-3.2.7/failtest/eigensolver_int.cpp b/ext/eigen-3.2.9/failtest/eigensolver_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/eigensolver_int.cpp rename to ext/eigen-3.2.9/failtest/eigensolver_int.cpp diff --git a/ext/eigen-3.2.7/failtest/failtest_sanity_check.cpp b/ext/eigen-3.2.9/failtest/failtest_sanity_check.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/failtest_sanity_check.cpp rename to ext/eigen-3.2.9/failtest/failtest_sanity_check.cpp diff --git a/ext/eigen-3.2.7/failtest/fullpivlu_int.cpp b/ext/eigen-3.2.9/failtest/fullpivlu_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/fullpivlu_int.cpp rename to ext/eigen-3.2.9/failtest/fullpivlu_int.cpp diff --git a/ext/eigen-3.2.7/failtest/fullpivqr_int.cpp b/ext/eigen-3.2.9/failtest/fullpivqr_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/fullpivqr_int.cpp rename to ext/eigen-3.2.9/failtest/fullpivqr_int.cpp diff --git a/ext/eigen-3.2.7/failtest/jacobisvd_int.cpp b/ext/eigen-3.2.9/failtest/jacobisvd_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/jacobisvd_int.cpp rename to ext/eigen-3.2.9/failtest/jacobisvd_int.cpp diff --git a/ext/eigen-3.2.7/failtest/ldlt_int.cpp b/ext/eigen-3.2.9/failtest/ldlt_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ldlt_int.cpp rename to ext/eigen-3.2.9/failtest/ldlt_int.cpp diff --git a/ext/eigen-3.2.7/failtest/llt_int.cpp b/ext/eigen-3.2.9/failtest/llt_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/llt_int.cpp rename to ext/eigen-3.2.9/failtest/llt_int.cpp diff --git a/ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_0.cpp b/ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_0.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_0.cpp rename to ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_0.cpp diff --git a/ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_1.cpp b/ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_1.cpp rename to ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_1.cpp diff --git a/ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_2.cpp b/ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_2.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_2.cpp rename to ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_2.cpp diff --git a/ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_3.cpp b/ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_3.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_3.cpp rename to ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_3.cpp diff --git a/ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_4.cpp b/ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_4.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_nonconst_ctor_on_const_ptr_4.cpp rename to ext/eigen-3.2.9/failtest/map_nonconst_ctor_on_const_ptr_4.cpp diff --git a/ext/eigen-3.2.7/failtest/map_on_const_type_actually_const_0.cpp b/ext/eigen-3.2.9/failtest/map_on_const_type_actually_const_0.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_on_const_type_actually_const_0.cpp rename to ext/eigen-3.2.9/failtest/map_on_const_type_actually_const_0.cpp diff --git a/ext/eigen-3.2.7/failtest/map_on_const_type_actually_const_1.cpp b/ext/eigen-3.2.9/failtest/map_on_const_type_actually_const_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/map_on_const_type_actually_const_1.cpp rename to ext/eigen-3.2.9/failtest/map_on_const_type_actually_const_1.cpp diff --git a/ext/eigen-3.2.7/failtest/partialpivlu_int.cpp b/ext/eigen-3.2.9/failtest/partialpivlu_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/partialpivlu_int.cpp rename to ext/eigen-3.2.9/failtest/partialpivlu_int.cpp diff --git a/ext/eigen-3.2.7/failtest/qr_int.cpp b/ext/eigen-3.2.9/failtest/qr_int.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/qr_int.cpp rename to ext/eigen-3.2.9/failtest/qr_int.cpp diff --git a/ext/eigen-3.2.7/failtest/ref_1.cpp b/ext/eigen-3.2.9/failtest/ref_1.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ref_1.cpp rename to ext/eigen-3.2.9/failtest/ref_1.cpp diff --git a/ext/eigen-3.2.7/failtest/ref_2.cpp b/ext/eigen-3.2.9/failtest/ref_2.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ref_2.cpp rename to ext/eigen-3.2.9/failtest/ref_2.cpp diff --git a/ext/eigen-3.2.7/failtest/ref_3.cpp b/ext/eigen-3.2.9/failtest/ref_3.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ref_3.cpp rename to ext/eigen-3.2.9/failtest/ref_3.cpp diff --git a/ext/eigen-3.2.7/failtest/ref_4.cpp b/ext/eigen-3.2.9/failtest/ref_4.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ref_4.cpp rename to ext/eigen-3.2.9/failtest/ref_4.cpp diff --git a/ext/eigen-3.2.7/failtest/ref_5.cpp b/ext/eigen-3.2.9/failtest/ref_5.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/ref_5.cpp rename to ext/eigen-3.2.9/failtest/ref_5.cpp diff --git a/ext/eigen-3.2.7/failtest/transpose_nonconst_ctor_on_const_xpr.cpp b/ext/eigen-3.2.9/failtest/transpose_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/transpose_nonconst_ctor_on_const_xpr.cpp rename to ext/eigen-3.2.9/failtest/transpose_nonconst_ctor_on_const_xpr.cpp diff --git a/ext/eigen-3.2.7/failtest/transpose_on_const_type_actually_const.cpp b/ext/eigen-3.2.9/failtest/transpose_on_const_type_actually_const.cpp similarity index 100% rename from ext/eigen-3.2.7/failtest/transpose_on_const_type_actually_const.cpp rename to ext/eigen-3.2.9/failtest/transpose_on_const_type_actually_const.cpp diff --git a/ext/eigen-3.2.7/lapack/CMakeLists.txt b/ext/eigen-3.2.9/lapack/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/lapack/CMakeLists.txt rename to ext/eigen-3.2.9/lapack/CMakeLists.txt diff --git a/ext/eigen-3.2.7/lapack/cholesky.cpp b/ext/eigen-3.2.9/lapack/cholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/cholesky.cpp rename to ext/eigen-3.2.9/lapack/cholesky.cpp diff --git a/ext/eigen-3.2.7/lapack/clacgv.f b/ext/eigen-3.2.9/lapack/clacgv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/clacgv.f rename to ext/eigen-3.2.9/lapack/clacgv.f diff --git a/ext/eigen-3.2.7/lapack/cladiv.f b/ext/eigen-3.2.9/lapack/cladiv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/cladiv.f rename to ext/eigen-3.2.9/lapack/cladiv.f diff --git a/ext/eigen-3.2.7/lapack/clarf.f b/ext/eigen-3.2.9/lapack/clarf.f similarity index 100% rename from ext/eigen-3.2.7/lapack/clarf.f rename to ext/eigen-3.2.9/lapack/clarf.f diff --git a/ext/eigen-3.2.7/lapack/clarfb.f b/ext/eigen-3.2.9/lapack/clarfb.f similarity index 100% rename from ext/eigen-3.2.7/lapack/clarfb.f rename to ext/eigen-3.2.9/lapack/clarfb.f diff --git a/ext/eigen-3.2.7/lapack/clarfg.f b/ext/eigen-3.2.9/lapack/clarfg.f similarity index 100% rename from ext/eigen-3.2.7/lapack/clarfg.f rename to ext/eigen-3.2.9/lapack/clarfg.f diff --git a/ext/eigen-3.2.7/lapack/clarft.f b/ext/eigen-3.2.9/lapack/clarft.f similarity index 100% rename from ext/eigen-3.2.7/lapack/clarft.f rename to ext/eigen-3.2.9/lapack/clarft.f diff --git a/ext/eigen-3.2.7/lapack/complex_double.cpp b/ext/eigen-3.2.9/lapack/complex_double.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/complex_double.cpp rename to ext/eigen-3.2.9/lapack/complex_double.cpp diff --git a/ext/eigen-3.2.7/lapack/complex_single.cpp b/ext/eigen-3.2.9/lapack/complex_single.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/complex_single.cpp rename to ext/eigen-3.2.9/lapack/complex_single.cpp diff --git a/ext/eigen-3.2.7/lapack/dladiv.f b/ext/eigen-3.2.9/lapack/dladiv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dladiv.f rename to ext/eigen-3.2.9/lapack/dladiv.f diff --git a/ext/eigen-3.2.7/lapack/dlamch.f b/ext/eigen-3.2.9/lapack/dlamch.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlamch.f rename to ext/eigen-3.2.9/lapack/dlamch.f diff --git a/ext/eigen-3.2.7/lapack/dlapy2.f b/ext/eigen-3.2.9/lapack/dlapy2.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlapy2.f rename to ext/eigen-3.2.9/lapack/dlapy2.f diff --git a/ext/eigen-3.2.7/lapack/dlapy3.f b/ext/eigen-3.2.9/lapack/dlapy3.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlapy3.f rename to ext/eigen-3.2.9/lapack/dlapy3.f diff --git a/ext/eigen-3.2.7/lapack/dlarf.f b/ext/eigen-3.2.9/lapack/dlarf.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlarf.f rename to ext/eigen-3.2.9/lapack/dlarf.f diff --git a/ext/eigen-3.2.7/lapack/dlarfb.f b/ext/eigen-3.2.9/lapack/dlarfb.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlarfb.f rename to ext/eigen-3.2.9/lapack/dlarfb.f diff --git a/ext/eigen-3.2.7/lapack/dlarfg.f b/ext/eigen-3.2.9/lapack/dlarfg.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlarfg.f rename to ext/eigen-3.2.9/lapack/dlarfg.f diff --git a/ext/eigen-3.2.7/lapack/dlarft.f b/ext/eigen-3.2.9/lapack/dlarft.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dlarft.f rename to ext/eigen-3.2.9/lapack/dlarft.f diff --git a/ext/eigen-3.2.7/lapack/double.cpp b/ext/eigen-3.2.9/lapack/double.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/double.cpp rename to ext/eigen-3.2.9/lapack/double.cpp diff --git a/ext/eigen-3.2.7/lapack/dsecnd_NONE.f b/ext/eigen-3.2.9/lapack/dsecnd_NONE.f similarity index 100% rename from ext/eigen-3.2.7/lapack/dsecnd_NONE.f rename to ext/eigen-3.2.9/lapack/dsecnd_NONE.f diff --git a/ext/eigen-3.2.7/lapack/eigenvalues.cpp b/ext/eigen-3.2.9/lapack/eigenvalues.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/eigenvalues.cpp rename to ext/eigen-3.2.9/lapack/eigenvalues.cpp diff --git a/ext/eigen-3.2.7/lapack/ilaclc.f b/ext/eigen-3.2.9/lapack/ilaclc.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilaclc.f rename to ext/eigen-3.2.9/lapack/ilaclc.f diff --git a/ext/eigen-3.2.7/lapack/ilaclr.f b/ext/eigen-3.2.9/lapack/ilaclr.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilaclr.f rename to ext/eigen-3.2.9/lapack/ilaclr.f diff --git a/ext/eigen-3.2.7/lapack/iladlc.f b/ext/eigen-3.2.9/lapack/iladlc.f similarity index 100% rename from ext/eigen-3.2.7/lapack/iladlc.f rename to ext/eigen-3.2.9/lapack/iladlc.f diff --git a/ext/eigen-3.2.7/lapack/iladlr.f b/ext/eigen-3.2.9/lapack/iladlr.f similarity index 100% rename from ext/eigen-3.2.7/lapack/iladlr.f rename to ext/eigen-3.2.9/lapack/iladlr.f diff --git a/ext/eigen-3.2.7/lapack/ilaslc.f b/ext/eigen-3.2.9/lapack/ilaslc.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilaslc.f rename to ext/eigen-3.2.9/lapack/ilaslc.f diff --git a/ext/eigen-3.2.7/lapack/ilaslr.f b/ext/eigen-3.2.9/lapack/ilaslr.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilaslr.f rename to ext/eigen-3.2.9/lapack/ilaslr.f diff --git a/ext/eigen-3.2.7/lapack/ilazlc.f b/ext/eigen-3.2.9/lapack/ilazlc.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilazlc.f rename to ext/eigen-3.2.9/lapack/ilazlc.f diff --git a/ext/eigen-3.2.7/lapack/ilazlr.f b/ext/eigen-3.2.9/lapack/ilazlr.f similarity index 100% rename from ext/eigen-3.2.7/lapack/ilazlr.f rename to ext/eigen-3.2.9/lapack/ilazlr.f diff --git a/ext/eigen-3.2.7/lapack/lapack_common.h b/ext/eigen-3.2.9/lapack/lapack_common.h similarity index 100% rename from ext/eigen-3.2.7/lapack/lapack_common.h rename to ext/eigen-3.2.9/lapack/lapack_common.h diff --git a/ext/eigen-3.2.7/lapack/lu.cpp b/ext/eigen-3.2.9/lapack/lu.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/lu.cpp rename to ext/eigen-3.2.9/lapack/lu.cpp diff --git a/ext/eigen-3.2.7/lapack/second_NONE.f b/ext/eigen-3.2.9/lapack/second_NONE.f similarity index 100% rename from ext/eigen-3.2.7/lapack/second_NONE.f rename to ext/eigen-3.2.9/lapack/second_NONE.f diff --git a/ext/eigen-3.2.7/lapack/single.cpp b/ext/eigen-3.2.9/lapack/single.cpp similarity index 100% rename from ext/eigen-3.2.7/lapack/single.cpp rename to ext/eigen-3.2.9/lapack/single.cpp diff --git a/ext/eigen-3.2.7/lapack/sladiv.f b/ext/eigen-3.2.9/lapack/sladiv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/sladiv.f rename to ext/eigen-3.2.9/lapack/sladiv.f diff --git a/ext/eigen-3.2.7/lapack/slamch.f b/ext/eigen-3.2.9/lapack/slamch.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slamch.f rename to ext/eigen-3.2.9/lapack/slamch.f diff --git a/ext/eigen-3.2.7/lapack/slapy2.f b/ext/eigen-3.2.9/lapack/slapy2.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slapy2.f rename to ext/eigen-3.2.9/lapack/slapy2.f diff --git a/ext/eigen-3.2.7/lapack/slapy3.f b/ext/eigen-3.2.9/lapack/slapy3.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slapy3.f rename to ext/eigen-3.2.9/lapack/slapy3.f diff --git a/ext/eigen-3.2.7/lapack/slarf.f b/ext/eigen-3.2.9/lapack/slarf.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slarf.f rename to ext/eigen-3.2.9/lapack/slarf.f diff --git a/ext/eigen-3.2.7/lapack/slarfb.f b/ext/eigen-3.2.9/lapack/slarfb.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slarfb.f rename to ext/eigen-3.2.9/lapack/slarfb.f diff --git a/ext/eigen-3.2.7/lapack/slarfg.f b/ext/eigen-3.2.9/lapack/slarfg.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slarfg.f rename to ext/eigen-3.2.9/lapack/slarfg.f diff --git a/ext/eigen-3.2.7/lapack/slarft.f b/ext/eigen-3.2.9/lapack/slarft.f similarity index 100% rename from ext/eigen-3.2.7/lapack/slarft.f rename to ext/eigen-3.2.9/lapack/slarft.f diff --git a/ext/eigen-3.2.7/lapack/zlacgv.f b/ext/eigen-3.2.9/lapack/zlacgv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zlacgv.f rename to ext/eigen-3.2.9/lapack/zlacgv.f diff --git a/ext/eigen-3.2.7/lapack/zladiv.f b/ext/eigen-3.2.9/lapack/zladiv.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zladiv.f rename to ext/eigen-3.2.9/lapack/zladiv.f diff --git a/ext/eigen-3.2.7/lapack/zlarf.f b/ext/eigen-3.2.9/lapack/zlarf.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zlarf.f rename to ext/eigen-3.2.9/lapack/zlarf.f diff --git a/ext/eigen-3.2.7/lapack/zlarfb.f b/ext/eigen-3.2.9/lapack/zlarfb.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zlarfb.f rename to ext/eigen-3.2.9/lapack/zlarfb.f diff --git a/ext/eigen-3.2.7/lapack/zlarfg.f b/ext/eigen-3.2.9/lapack/zlarfg.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zlarfg.f rename to ext/eigen-3.2.9/lapack/zlarfg.f diff --git a/ext/eigen-3.2.7/lapack/zlarft.f b/ext/eigen-3.2.9/lapack/zlarft.f similarity index 100% rename from ext/eigen-3.2.7/lapack/zlarft.f rename to ext/eigen-3.2.9/lapack/zlarft.f diff --git a/ext/eigen-3.2.7/scripts/CMakeLists.txt b/ext/eigen-3.2.9/scripts/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/scripts/CMakeLists.txt rename to ext/eigen-3.2.9/scripts/CMakeLists.txt diff --git a/ext/eigen-3.2.7/scripts/buildtests.in b/ext/eigen-3.2.9/scripts/buildtests.in similarity index 100% rename from ext/eigen-3.2.7/scripts/buildtests.in rename to ext/eigen-3.2.9/scripts/buildtests.in diff --git a/ext/eigen-3.2.7/scripts/cdashtesting.cmake.in b/ext/eigen-3.2.9/scripts/cdashtesting.cmake.in similarity index 100% rename from ext/eigen-3.2.7/scripts/cdashtesting.cmake.in rename to ext/eigen-3.2.9/scripts/cdashtesting.cmake.in diff --git a/ext/eigen-3.2.7/scripts/check.in b/ext/eigen-3.2.9/scripts/check.in similarity index 100% rename from ext/eigen-3.2.7/scripts/check.in rename to ext/eigen-3.2.9/scripts/check.in diff --git a/ext/eigen-3.2.7/scripts/debug.in b/ext/eigen-3.2.9/scripts/debug.in similarity index 100% rename from ext/eigen-3.2.7/scripts/debug.in rename to ext/eigen-3.2.9/scripts/debug.in diff --git a/ext/eigen-3.2.7/scripts/eigen_gen_credits.cpp b/ext/eigen-3.2.9/scripts/eigen_gen_credits.cpp similarity index 100% rename from ext/eigen-3.2.7/scripts/eigen_gen_credits.cpp rename to ext/eigen-3.2.9/scripts/eigen_gen_credits.cpp diff --git a/ext/eigen-3.2.7/scripts/eigen_gen_docs b/ext/eigen-3.2.9/scripts/eigen_gen_docs similarity index 100% rename from ext/eigen-3.2.7/scripts/eigen_gen_docs rename to ext/eigen-3.2.9/scripts/eigen_gen_docs diff --git a/ext/eigen-3.2.7/scripts/release.in b/ext/eigen-3.2.9/scripts/release.in similarity index 100% rename from ext/eigen-3.2.7/scripts/release.in rename to ext/eigen-3.2.9/scripts/release.in diff --git a/ext/eigen-3.2.7/scripts/relicense.py b/ext/eigen-3.2.9/scripts/relicense.py similarity index 100% rename from ext/eigen-3.2.7/scripts/relicense.py rename to ext/eigen-3.2.9/scripts/relicense.py diff --git a/ext/eigen-3.2.7/signature_of_eigen3_matrix_library b/ext/eigen-3.2.9/signature_of_eigen3_matrix_library similarity index 100% rename from ext/eigen-3.2.7/signature_of_eigen3_matrix_library rename to ext/eigen-3.2.9/signature_of_eigen3_matrix_library diff --git a/ext/eigen-3.2.7/test/CMakeLists.txt b/ext/eigen-3.2.9/test/CMakeLists.txt similarity index 99% rename from ext/eigen-3.2.7/test/CMakeLists.txt rename to ext/eigen-3.2.9/test/CMakeLists.txt index 3739268..c0d8a4e 100644 --- a/ext/eigen-3.2.7/test/CMakeLists.txt +++ b/ext/eigen-3.2.9/test/CMakeLists.txt @@ -202,7 +202,9 @@ ei_add_test(geo_alignedbox) ei_add_test(stdvector) ei_add_test(stdvector_overload) ei_add_test(stdlist) +ei_add_test(stdlist_overload) ei_add_test(stddeque) +ei_add_test(stddeque_overload) ei_add_test(resize) ei_add_test(sparse_vector) ei_add_test(sparse_basic) diff --git a/ext/eigen-3.2.7/test/adjoint.cpp b/ext/eigen-3.2.9/test/adjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/test/adjoint.cpp rename to ext/eigen-3.2.9/test/adjoint.cpp diff --git a/ext/eigen-3.2.7/test/array.cpp b/ext/eigen-3.2.9/test/array.cpp similarity index 100% rename from ext/eigen-3.2.7/test/array.cpp rename to ext/eigen-3.2.9/test/array.cpp diff --git a/ext/eigen-3.2.7/test/array_for_matrix.cpp b/ext/eigen-3.2.9/test/array_for_matrix.cpp similarity index 100% rename from ext/eigen-3.2.7/test/array_for_matrix.cpp rename to ext/eigen-3.2.9/test/array_for_matrix.cpp diff --git a/ext/eigen-3.2.7/test/array_replicate.cpp b/ext/eigen-3.2.9/test/array_replicate.cpp similarity index 100% rename from ext/eigen-3.2.7/test/array_replicate.cpp rename to ext/eigen-3.2.9/test/array_replicate.cpp diff --git a/ext/eigen-3.2.7/test/array_reverse.cpp b/ext/eigen-3.2.9/test/array_reverse.cpp similarity index 100% rename from ext/eigen-3.2.7/test/array_reverse.cpp rename to ext/eigen-3.2.9/test/array_reverse.cpp diff --git a/ext/eigen-3.2.7/test/bandmatrix.cpp b/ext/eigen-3.2.9/test/bandmatrix.cpp similarity index 100% rename from ext/eigen-3.2.7/test/bandmatrix.cpp rename to ext/eigen-3.2.9/test/bandmatrix.cpp diff --git a/ext/eigen-3.2.7/test/basicstuff.cpp b/ext/eigen-3.2.9/test/basicstuff.cpp similarity index 100% rename from ext/eigen-3.2.7/test/basicstuff.cpp rename to ext/eigen-3.2.9/test/basicstuff.cpp diff --git a/ext/eigen-3.2.7/test/bicgstab.cpp b/ext/eigen-3.2.9/test/bicgstab.cpp similarity index 100% rename from ext/eigen-3.2.7/test/bicgstab.cpp rename to ext/eigen-3.2.9/test/bicgstab.cpp diff --git a/ext/eigen-3.2.7/test/block.cpp b/ext/eigen-3.2.9/test/block.cpp similarity index 100% rename from ext/eigen-3.2.7/test/block.cpp rename to ext/eigen-3.2.9/test/block.cpp diff --git a/ext/eigen-3.2.7/test/cholesky.cpp b/ext/eigen-3.2.9/test/cholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/test/cholesky.cpp rename to ext/eigen-3.2.9/test/cholesky.cpp diff --git a/ext/eigen-3.2.7/test/cholmod_support.cpp b/ext/eigen-3.2.9/test/cholmod_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/cholmod_support.cpp rename to ext/eigen-3.2.9/test/cholmod_support.cpp diff --git a/ext/eigen-3.2.7/test/commainitializer.cpp b/ext/eigen-3.2.9/test/commainitializer.cpp similarity index 99% rename from ext/eigen-3.2.7/test/commainitializer.cpp rename to ext/eigen-3.2.9/test/commainitializer.cpp index 99102b9..8e7019f 100644 --- a/ext/eigen-3.2.7/test/commainitializer.cpp +++ b/ext/eigen-3.2.9/test/commainitializer.cpp @@ -43,4 +43,5 @@ void test_commainitializer() 4, 5, 6, vec[2].transpose(); VERIFY_IS_APPROX(m3, ref); + } diff --git a/ext/eigen-3.2.7/test/conjugate_gradient.cpp b/ext/eigen-3.2.9/test/conjugate_gradient.cpp similarity index 100% rename from ext/eigen-3.2.7/test/conjugate_gradient.cpp rename to ext/eigen-3.2.9/test/conjugate_gradient.cpp diff --git a/ext/eigen-3.2.7/test/conservative_resize.cpp b/ext/eigen-3.2.9/test/conservative_resize.cpp similarity index 100% rename from ext/eigen-3.2.7/test/conservative_resize.cpp rename to ext/eigen-3.2.9/test/conservative_resize.cpp diff --git a/ext/eigen-3.2.7/test/corners.cpp b/ext/eigen-3.2.9/test/corners.cpp similarity index 100% rename from ext/eigen-3.2.7/test/corners.cpp rename to ext/eigen-3.2.9/test/corners.cpp diff --git a/ext/eigen-3.2.7/test/cwiseop.cpp b/ext/eigen-3.2.9/test/cwiseop.cpp similarity index 100% rename from ext/eigen-3.2.7/test/cwiseop.cpp rename to ext/eigen-3.2.9/test/cwiseop.cpp diff --git a/ext/eigen-3.2.7/test/denseLM.cpp b/ext/eigen-3.2.9/test/denseLM.cpp similarity index 100% rename from ext/eigen-3.2.7/test/denseLM.cpp rename to ext/eigen-3.2.9/test/denseLM.cpp diff --git a/ext/eigen-3.2.7/test/determinant.cpp b/ext/eigen-3.2.9/test/determinant.cpp similarity index 100% rename from ext/eigen-3.2.7/test/determinant.cpp rename to ext/eigen-3.2.9/test/determinant.cpp diff --git a/ext/eigen-3.2.7/test/diagonal.cpp b/ext/eigen-3.2.9/test/diagonal.cpp similarity index 100% rename from ext/eigen-3.2.7/test/diagonal.cpp rename to ext/eigen-3.2.9/test/diagonal.cpp diff --git a/ext/eigen-3.2.7/test/diagonalmatrices.cpp b/ext/eigen-3.2.9/test/diagonalmatrices.cpp similarity index 100% rename from ext/eigen-3.2.7/test/diagonalmatrices.cpp rename to ext/eigen-3.2.9/test/diagonalmatrices.cpp diff --git a/ext/eigen-3.2.7/test/dontalign.cpp b/ext/eigen-3.2.9/test/dontalign.cpp similarity index 100% rename from ext/eigen-3.2.7/test/dontalign.cpp rename to ext/eigen-3.2.9/test/dontalign.cpp diff --git a/ext/eigen-3.2.7/test/dynalloc.cpp b/ext/eigen-3.2.9/test/dynalloc.cpp similarity index 83% rename from ext/eigen-3.2.7/test/dynalloc.cpp rename to ext/eigen-3.2.9/test/dynalloc.cpp index 7e41bfa..ef92c05 100644 --- a/ext/eigen-3.2.7/test/dynalloc.cpp +++ b/ext/eigen-3.2.9/test/dynalloc.cpp @@ -87,6 +87,32 @@ template void check_dynaligned() delete obj; } +template void check_custom_new_delete() +{ + { + T* t = new T; + delete t; + } + + { + std::size_t N = internal::random(1,10); + T* t = new T[N]; + delete[] t; + } + +#ifdef EIGEN_ALIGN + { + T* t = static_cast((T::operator new)(sizeof(T))); + (T::operator delete)(t, sizeof(T)); + } + + { + T* t = static_cast((T::operator new)(sizeof(T))); + (T::operator delete)(t); + } +#endif +} + void test_dynalloc() { // low level dynamic memory allocation @@ -94,7 +120,9 @@ void test_dynalloc() CALL_SUBTEST(check_aligned_malloc()); CALL_SUBTEST(check_aligned_new()); CALL_SUBTEST(check_aligned_stack_alloc()); - + + // check static allocation, who knows ? + #if EIGEN_ALIGN_STATICALLY for (int i=0; i() ); @@ -102,10 +130,13 @@ void test_dynalloc() CALL_SUBTEST(check_dynaligned() ); CALL_SUBTEST(check_dynaligned() ); CALL_SUBTEST(check_dynaligned() ); + + CALL_SUBTEST( check_custom_new_delete() ); + CALL_SUBTEST( check_custom_new_delete() ); + CALL_SUBTEST( check_custom_new_delete() ); + CALL_SUBTEST( check_custom_new_delete() ); } - - // check static allocation, who knows ? - #if EIGEN_ALIGN_STATICALLY + { MyStruct foo0; VERIFY(size_t(foo0.avec.data())%ALIGNMENT==0); MyClassA fooA; VERIFY(size_t(fooA.avec.data())%ALIGNMENT==0); diff --git a/ext/eigen-3.2.7/test/eigen2/CMakeLists.txt b/ext/eigen-3.2.9/test/eigen2/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/CMakeLists.txt rename to ext/eigen-3.2.9/test/eigen2/CMakeLists.txt diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_adjoint.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_adjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_adjoint.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_adjoint.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_alignedbox.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_alignedbox.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_alignedbox.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_alignedbox.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_array.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_array.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_array.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_array.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_basicstuff.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_basicstuff.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_basicstuff.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_basicstuff.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_bug_132.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_bug_132.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_bug_132.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_bug_132.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_cholesky.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_cholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_cholesky.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_cholesky.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_commainitializer.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_commainitializer.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_commainitializer.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_commainitializer.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_cwiseop.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_cwiseop.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_cwiseop.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_cwiseop.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_determinant.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_determinant.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_determinant.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_determinant.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_dynalloc.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_dynalloc.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_dynalloc.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_dynalloc.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_eigensolver.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_eigensolver.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_eigensolver.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_eigensolver.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_first_aligned.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_first_aligned.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_first_aligned.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_first_aligned.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_geometry.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_geometry.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_geometry.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_geometry.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_hyperplane.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_hyperplane.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_hyperplane.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_hyperplane.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_inverse.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_inverse.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_inverse.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_inverse.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_linearstructure.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_linearstructure.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_linearstructure.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_linearstructure.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_lu.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_lu.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_lu.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_lu.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_map.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_map.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_map.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_map.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_meta.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_meta.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_meta.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_meta.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_miscmatrices.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_miscmatrices.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_miscmatrices.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_miscmatrices.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_mixingtypes.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_mixingtypes.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_mixingtypes.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_mixingtypes.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_newstdvector.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_newstdvector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_newstdvector.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_newstdvector.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_nomalloc.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_nomalloc.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_nomalloc.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_nomalloc.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_packetmath.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_packetmath.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_packetmath.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_packetmath.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_parametrizedline.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_parametrizedline.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_parametrizedline.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_parametrizedline.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_prec_inverse_4x4.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_prec_inverse_4x4.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_prec_inverse_4x4.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_prec_inverse_4x4.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_product_large.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_product_large.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_product_large.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_product_large.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_product_small.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_product_small.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_product_small.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_product_small.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_qr.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_qr.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_qr.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_qr.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_qtvector.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_qtvector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_qtvector.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_qtvector.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_regression.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_regression.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_regression.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_regression.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sizeof.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sizeof.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sizeof.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sizeof.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_smallvectors.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_smallvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_smallvectors.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_smallvectors.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sparse_basic.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sparse_basic.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sparse_basic.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sparse_basic.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sparse_product.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sparse_product.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sparse_product.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sparse_product.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sparse_solvers.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sparse_solvers.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sparse_solvers.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sparse_solvers.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sparse_vector.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sparse_vector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sparse_vector.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sparse_vector.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_stdvector.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_stdvector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_stdvector.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_stdvector.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_submatrices.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_submatrices.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_submatrices.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_submatrices.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_sum.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_sum.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_sum.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_sum.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_svd.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_svd.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_svd.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_svd.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_swap.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_swap.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_swap.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_swap.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_triangular.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_triangular.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_triangular.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_triangular.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_unalignedassert.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_unalignedassert.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_unalignedassert.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_unalignedassert.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/eigen2_visitor.cpp b/ext/eigen-3.2.9/test/eigen2/eigen2_visitor.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/eigen2_visitor.cpp rename to ext/eigen-3.2.9/test/eigen2/eigen2_visitor.cpp diff --git a/ext/eigen-3.2.7/test/eigen2/gsl_helper.h b/ext/eigen-3.2.9/test/eigen2/gsl_helper.h similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/gsl_helper.h rename to ext/eigen-3.2.9/test/eigen2/gsl_helper.h diff --git a/ext/eigen-3.2.7/test/eigen2/main.h b/ext/eigen-3.2.9/test/eigen2/main.h similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/main.h rename to ext/eigen-3.2.9/test/eigen2/main.h diff --git a/ext/eigen-3.2.7/test/eigen2/product.h b/ext/eigen-3.2.9/test/eigen2/product.h similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/product.h rename to ext/eigen-3.2.9/test/eigen2/product.h diff --git a/ext/eigen-3.2.7/test/eigen2/runtest.sh b/ext/eigen-3.2.9/test/eigen2/runtest.sh similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/runtest.sh rename to ext/eigen-3.2.9/test/eigen2/runtest.sh diff --git a/ext/eigen-3.2.7/test/eigen2/sparse.h b/ext/eigen-3.2.9/test/eigen2/sparse.h similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/sparse.h rename to ext/eigen-3.2.9/test/eigen2/sparse.h diff --git a/ext/eigen-3.2.7/test/eigen2/testsuite.cmake b/ext/eigen-3.2.9/test/eigen2/testsuite.cmake similarity index 100% rename from ext/eigen-3.2.7/test/eigen2/testsuite.cmake rename to ext/eigen-3.2.9/test/eigen2/testsuite.cmake diff --git a/ext/eigen-3.2.7/test/eigen2support.cpp b/ext/eigen-3.2.9/test/eigen2support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigen2support.cpp rename to ext/eigen-3.2.9/test/eigen2support.cpp diff --git a/ext/eigen-3.2.7/test/eigensolver_complex.cpp b/ext/eigen-3.2.9/test/eigensolver_complex.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigensolver_complex.cpp rename to ext/eigen-3.2.9/test/eigensolver_complex.cpp diff --git a/ext/eigen-3.2.7/test/eigensolver_generalized_real.cpp b/ext/eigen-3.2.9/test/eigensolver_generalized_real.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigensolver_generalized_real.cpp rename to ext/eigen-3.2.9/test/eigensolver_generalized_real.cpp diff --git a/ext/eigen-3.2.7/test/eigensolver_generic.cpp b/ext/eigen-3.2.9/test/eigensolver_generic.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigensolver_generic.cpp rename to ext/eigen-3.2.9/test/eigensolver_generic.cpp diff --git a/ext/eigen-3.2.7/test/eigensolver_selfadjoint.cpp b/ext/eigen-3.2.9/test/eigensolver_selfadjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/test/eigensolver_selfadjoint.cpp rename to ext/eigen-3.2.9/test/eigensolver_selfadjoint.cpp diff --git a/ext/eigen-3.2.7/test/exceptions.cpp b/ext/eigen-3.2.9/test/exceptions.cpp similarity index 100% rename from ext/eigen-3.2.7/test/exceptions.cpp rename to ext/eigen-3.2.9/test/exceptions.cpp diff --git a/ext/eigen-3.2.7/test/first_aligned.cpp b/ext/eigen-3.2.9/test/first_aligned.cpp similarity index 100% rename from ext/eigen-3.2.7/test/first_aligned.cpp rename to ext/eigen-3.2.9/test/first_aligned.cpp diff --git a/ext/eigen-3.2.7/test/geo_alignedbox.cpp b/ext/eigen-3.2.9/test/geo_alignedbox.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_alignedbox.cpp rename to ext/eigen-3.2.9/test/geo_alignedbox.cpp diff --git a/ext/eigen-3.2.7/test/geo_eulerangles.cpp b/ext/eigen-3.2.9/test/geo_eulerangles.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_eulerangles.cpp rename to ext/eigen-3.2.9/test/geo_eulerangles.cpp diff --git a/ext/eigen-3.2.7/test/geo_homogeneous.cpp b/ext/eigen-3.2.9/test/geo_homogeneous.cpp similarity index 96% rename from ext/eigen-3.2.7/test/geo_homogeneous.cpp rename to ext/eigen-3.2.9/test/geo_homogeneous.cpp index c91bde8..0133030 100644 --- a/ext/eigen-3.2.7/test/geo_homogeneous.cpp +++ b/ext/eigen-3.2.9/test/geo_homogeneous.cpp @@ -54,6 +54,8 @@ template void homogeneous(void) T2MatrixType t2 = T2MatrixType::Random(); VERIFY_IS_APPROX(t2 * (v0.homogeneous().eval()), t2 * v0.homogeneous()); VERIFY_IS_APPROX(t2 * (m0.colwise().homogeneous().eval()), t2 * m0.colwise().homogeneous()); + VERIFY_IS_APPROX(t2 * (v0.homogeneous().asDiagonal()), t2 * hv0.asDiagonal()); + VERIFY_IS_APPROX((v0.homogeneous().asDiagonal()) * t2, hv0.asDiagonal() * t2); VERIFY_IS_APPROX((v0.transpose().rowwise().homogeneous().eval()) * t2, v0.transpose().rowwise().homogeneous() * t2); diff --git a/ext/eigen-3.2.7/test/geo_hyperplane.cpp b/ext/eigen-3.2.9/test/geo_hyperplane.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_hyperplane.cpp rename to ext/eigen-3.2.9/test/geo_hyperplane.cpp diff --git a/ext/eigen-3.2.7/test/geo_orthomethods.cpp b/ext/eigen-3.2.9/test/geo_orthomethods.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_orthomethods.cpp rename to ext/eigen-3.2.9/test/geo_orthomethods.cpp diff --git a/ext/eigen-3.2.7/test/geo_parametrizedline.cpp b/ext/eigen-3.2.9/test/geo_parametrizedline.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_parametrizedline.cpp rename to ext/eigen-3.2.9/test/geo_parametrizedline.cpp diff --git a/ext/eigen-3.2.7/test/geo_quaternion.cpp b/ext/eigen-3.2.9/test/geo_quaternion.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_quaternion.cpp rename to ext/eigen-3.2.9/test/geo_quaternion.cpp diff --git a/ext/eigen-3.2.7/test/geo_transformations.cpp b/ext/eigen-3.2.9/test/geo_transformations.cpp similarity index 100% rename from ext/eigen-3.2.7/test/geo_transformations.cpp rename to ext/eigen-3.2.9/test/geo_transformations.cpp diff --git a/ext/eigen-3.2.7/test/hessenberg.cpp b/ext/eigen-3.2.9/test/hessenberg.cpp similarity index 100% rename from ext/eigen-3.2.7/test/hessenberg.cpp rename to ext/eigen-3.2.9/test/hessenberg.cpp diff --git a/ext/eigen-3.2.7/test/householder.cpp b/ext/eigen-3.2.9/test/householder.cpp similarity index 100% rename from ext/eigen-3.2.7/test/householder.cpp rename to ext/eigen-3.2.9/test/householder.cpp diff --git a/ext/eigen-3.2.7/test/integer_types.cpp b/ext/eigen-3.2.9/test/integer_types.cpp similarity index 100% rename from ext/eigen-3.2.7/test/integer_types.cpp rename to ext/eigen-3.2.9/test/integer_types.cpp diff --git a/ext/eigen-3.2.7/test/inverse.cpp b/ext/eigen-3.2.9/test/inverse.cpp similarity index 100% rename from ext/eigen-3.2.7/test/inverse.cpp rename to ext/eigen-3.2.9/test/inverse.cpp diff --git a/ext/eigen-3.2.7/test/jacobi.cpp b/ext/eigen-3.2.9/test/jacobi.cpp similarity index 100% rename from ext/eigen-3.2.7/test/jacobi.cpp rename to ext/eigen-3.2.9/test/jacobi.cpp diff --git a/ext/eigen-3.2.7/test/jacobisvd.cpp b/ext/eigen-3.2.9/test/jacobisvd.cpp similarity index 100% rename from ext/eigen-3.2.7/test/jacobisvd.cpp rename to ext/eigen-3.2.9/test/jacobisvd.cpp diff --git a/ext/eigen-3.2.7/test/linearstructure.cpp b/ext/eigen-3.2.9/test/linearstructure.cpp similarity index 100% rename from ext/eigen-3.2.7/test/linearstructure.cpp rename to ext/eigen-3.2.9/test/linearstructure.cpp diff --git a/ext/eigen-3.2.7/test/lu.cpp b/ext/eigen-3.2.9/test/lu.cpp similarity index 100% rename from ext/eigen-3.2.7/test/lu.cpp rename to ext/eigen-3.2.9/test/lu.cpp diff --git a/ext/eigen-3.2.7/test/main.h b/ext/eigen-3.2.9/test/main.h similarity index 100% rename from ext/eigen-3.2.7/test/main.h rename to ext/eigen-3.2.9/test/main.h diff --git a/ext/eigen-3.2.7/test/mapped_matrix.cpp b/ext/eigen-3.2.9/test/mapped_matrix.cpp similarity index 100% rename from ext/eigen-3.2.7/test/mapped_matrix.cpp rename to ext/eigen-3.2.9/test/mapped_matrix.cpp diff --git a/ext/eigen-3.2.7/test/mapstaticmethods.cpp b/ext/eigen-3.2.9/test/mapstaticmethods.cpp similarity index 100% rename from ext/eigen-3.2.7/test/mapstaticmethods.cpp rename to ext/eigen-3.2.9/test/mapstaticmethods.cpp diff --git a/ext/eigen-3.2.7/test/mapstride.cpp b/ext/eigen-3.2.9/test/mapstride.cpp similarity index 100% rename from ext/eigen-3.2.7/test/mapstride.cpp rename to ext/eigen-3.2.9/test/mapstride.cpp diff --git a/ext/eigen-3.2.7/test/meta.cpp b/ext/eigen-3.2.9/test/meta.cpp similarity index 100% rename from ext/eigen-3.2.7/test/meta.cpp rename to ext/eigen-3.2.9/test/meta.cpp diff --git a/ext/eigen-3.2.7/test/metis_support.cpp b/ext/eigen-3.2.9/test/metis_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/metis_support.cpp rename to ext/eigen-3.2.9/test/metis_support.cpp diff --git a/ext/eigen-3.2.7/test/miscmatrices.cpp b/ext/eigen-3.2.9/test/miscmatrices.cpp similarity index 100% rename from ext/eigen-3.2.7/test/miscmatrices.cpp rename to ext/eigen-3.2.9/test/miscmatrices.cpp diff --git a/ext/eigen-3.2.7/test/mixingtypes.cpp b/ext/eigen-3.2.9/test/mixingtypes.cpp similarity index 100% rename from ext/eigen-3.2.7/test/mixingtypes.cpp rename to ext/eigen-3.2.9/test/mixingtypes.cpp diff --git a/ext/eigen-3.2.7/test/mpl2only.cpp b/ext/eigen-3.2.9/test/mpl2only.cpp similarity index 100% rename from ext/eigen-3.2.7/test/mpl2only.cpp rename to ext/eigen-3.2.9/test/mpl2only.cpp diff --git a/ext/eigen-3.2.7/test/nesting_ops.cpp b/ext/eigen-3.2.9/test/nesting_ops.cpp similarity index 100% rename from ext/eigen-3.2.7/test/nesting_ops.cpp rename to ext/eigen-3.2.9/test/nesting_ops.cpp diff --git a/ext/eigen-3.2.7/test/nomalloc.cpp b/ext/eigen-3.2.9/test/nomalloc.cpp similarity index 100% rename from ext/eigen-3.2.7/test/nomalloc.cpp rename to ext/eigen-3.2.9/test/nomalloc.cpp diff --git a/ext/eigen-3.2.7/test/nullary.cpp b/ext/eigen-3.2.9/test/nullary.cpp similarity index 100% rename from ext/eigen-3.2.7/test/nullary.cpp rename to ext/eigen-3.2.9/test/nullary.cpp diff --git a/ext/eigen-3.2.7/test/packetmath.cpp b/ext/eigen-3.2.9/test/packetmath.cpp similarity index 100% rename from ext/eigen-3.2.7/test/packetmath.cpp rename to ext/eigen-3.2.9/test/packetmath.cpp diff --git a/ext/eigen-3.2.7/test/pardiso_support.cpp b/ext/eigen-3.2.9/test/pardiso_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/pardiso_support.cpp rename to ext/eigen-3.2.9/test/pardiso_support.cpp diff --git a/ext/eigen-3.2.7/test/pastix_support.cpp b/ext/eigen-3.2.9/test/pastix_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/pastix_support.cpp rename to ext/eigen-3.2.9/test/pastix_support.cpp diff --git a/ext/eigen-3.2.7/test/permutationmatrices.cpp b/ext/eigen-3.2.9/test/permutationmatrices.cpp similarity index 100% rename from ext/eigen-3.2.7/test/permutationmatrices.cpp rename to ext/eigen-3.2.9/test/permutationmatrices.cpp diff --git a/ext/eigen-3.2.7/test/prec_inverse_4x4.cpp b/ext/eigen-3.2.9/test/prec_inverse_4x4.cpp similarity index 100% rename from ext/eigen-3.2.7/test/prec_inverse_4x4.cpp rename to ext/eigen-3.2.9/test/prec_inverse_4x4.cpp diff --git a/ext/eigen-3.2.7/test/product.h b/ext/eigen-3.2.9/test/product.h similarity index 72% rename from ext/eigen-3.2.7/test/product.h rename to ext/eigen-3.2.9/test/product.h index 0b3abe4..397af24 100644 --- a/ext/eigen-3.2.7/test/product.h +++ b/ext/eigen-3.2.9/test/product.h @@ -136,9 +136,27 @@ template void product(const MatrixType& m) VERIFY_IS_APPROX(res.col(r).noalias() = square.adjoint() * square.col(r), (square.adjoint() * square.col(r)).eval()); VERIFY_IS_APPROX(res.col(r).noalias() = square * square.col(r), (square * square.col(r)).eval()); + // vector at runtime (see bug 1166) + { + RowSquareMatrixType ref(square); + ColSquareMatrixType ref2(square2); + ref = res = square; + VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.col(0).transpose() * square.transpose(), (ref.row(0) = m1.col(0).transpose() * square.transpose())); + VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.block(0,0,rows,1).transpose() * square.transpose(), (ref.row(0) = m1.col(0).transpose() * square.transpose())); + VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.col(0).transpose() * square, (ref.row(0) = m1.col(0).transpose() * square)); + VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.block(0,0,rows,1).transpose() * square, (ref.row(0) = m1.col(0).transpose() * square)); + ref2 = res2 = square2; + VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.row(0) * square2.transpose(), (ref2.row(0) = m1.row(0) * square2.transpose())); + VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.block(0,0,1,cols) * square2.transpose(), (ref2.row(0) = m1.row(0) * square2.transpose())); + VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.row(0) * square2, (ref2.row(0) = m1.row(0) * square2)); + VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.block(0,0,1,cols) * square2, (ref2.row(0) = m1.row(0) * square2)); + } + // inner product - Scalar x = square2.row(c) * square2.col(c2); - VERIFY_IS_APPROX(x, square2.row(c).transpose().cwiseProduct(square2.col(c2)).sum()); + { + Scalar x = square2.row(c) * square2.col(c2); + VERIFY_IS_APPROX(x, square2.row(c).transpose().cwiseProduct(square2.col(c2)).sum()); + } // outer product VERIFY_IS_APPROX(m1.col(c) * m1.row(r), m1.block(0,c,rows,1) * m1.block(r,0,1,cols)); @@ -146,5 +164,26 @@ template void product(const MatrixType& m) VERIFY_IS_APPROX(m1.block(0,c,rows,1) * m1.row(r), m1.block(0,c,rows,1) * m1.block(r,0,1,cols)); VERIFY_IS_APPROX(m1.col(c) * m1.block(r,0,1,cols), m1.block(0,c,rows,1) * m1.block(r,0,1,cols)); VERIFY_IS_APPROX(m1.leftCols(1) * m1.row(r), m1.block(0,0,rows,1) * m1.block(r,0,1,cols)); - VERIFY_IS_APPROX(m1.col(c) * m1.topRows(1), m1.block(0,c,rows,1) * m1.block(0,0,1,cols)); + VERIFY_IS_APPROX(m1.col(c) * m1.topRows(1), m1.block(0,c,rows,1) * m1.block(0,0,1,cols)); + + // Aliasing + { + ColVectorType x(cols); x.setRandom(); + ColVectorType z(x); + ColVectorType y(cols); y.setZero(); + ColSquareMatrixType A(cols,cols); A.setRandom(); + // CwiseBinaryOp + VERIFY_IS_APPROX(x = y + A*x, A*z); + x = z; + // CwiseUnaryOp + VERIFY_IS_APPROX(x = Scalar(1.)*(A*x), A*z); + } + + // regression for blas_trais + { + VERIFY_IS_APPROX(square * (square*square).transpose(), square * square.transpose() * square.transpose()); + VERIFY_IS_APPROX(square * (-(square*square)), -square * square * square); + VERIFY_IS_APPROX(square * (s1*(square*square)), s1 * square * square * square); + VERIFY_IS_APPROX(square * (square*square).conjugate(), square * square.conjugate() * square.conjugate()); + } } diff --git a/ext/eigen-3.2.7/test/product_extra.cpp b/ext/eigen-3.2.9/test/product_extra.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_extra.cpp rename to ext/eigen-3.2.9/test/product_extra.cpp diff --git a/ext/eigen-3.2.7/test/product_large.cpp b/ext/eigen-3.2.9/test/product_large.cpp similarity index 81% rename from ext/eigen-3.2.7/test/product_large.cpp rename to ext/eigen-3.2.9/test/product_large.cpp index 03d7bd8..6bb4d1a 100644 --- a/ext/eigen-3.2.7/test/product_large.cpp +++ b/ext/eigen-3.2.9/test/product_large.cpp @@ -9,6 +9,27 @@ #include "product.h" +template +void test_aliasing() +{ + int rows = internal::random(1,12); + int cols = internal::random(1,12); + typedef Matrix MatrixType; + typedef Matrix VectorType; + VectorType x(cols); x.setRandom(); + VectorType z(x); + VectorType y(rows); y.setZero(); + MatrixType A(rows,cols); A.setRandom(); + // CwiseBinaryOp + VERIFY_IS_APPROX(x = y + A*x, A*z); + x = z; + // CwiseUnaryOp + VERIFY_IS_APPROX(x = T(1.)*(A*x), A*z); + x = z; + VERIFY_IS_APPROX(x = y+(-(A*x)), -A*z); + x = z; +} + void test_product_large() { for(int i = 0; i < g_repeat; i++) { @@ -17,6 +38,8 @@ void test_product_large() CALL_SUBTEST_3( product(MatrixXi(internal::random(1,EIGEN_TEST_MAX_SIZE), internal::random(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_4( product(MatrixXcf(internal::random(1,EIGEN_TEST_MAX_SIZE/2), internal::random(1,EIGEN_TEST_MAX_SIZE/2))) ); CALL_SUBTEST_5( product(Matrix(internal::random(1,EIGEN_TEST_MAX_SIZE), internal::random(1,EIGEN_TEST_MAX_SIZE))) ); + + CALL_SUBTEST_1( test_aliasing() ); } #if defined EIGEN_TEST_PART_6 diff --git a/ext/eigen-3.2.7/test/product_mmtr.cpp b/ext/eigen-3.2.9/test/product_mmtr.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_mmtr.cpp rename to ext/eigen-3.2.9/test/product_mmtr.cpp diff --git a/ext/eigen-3.2.7/test/product_notemporary.cpp b/ext/eigen-3.2.9/test/product_notemporary.cpp similarity index 92% rename from ext/eigen-3.2.7/test/product_notemporary.cpp rename to ext/eigen-3.2.9/test/product_notemporary.cpp index 258d238..5599d26 100644 --- a/ext/eigen-3.2.7/test/product_notemporary.cpp +++ b/ext/eigen-3.2.9/test/product_notemporary.cpp @@ -58,10 +58,19 @@ template void product_notemporary(const MatrixType& m) r1 = internal::random(8,rows-r0); VERIFY_EVALUATION_COUNT( m3 = (m1 * m2.adjoint()), 1); + VERIFY_EVALUATION_COUNT( m3 = (m1 * m2.adjoint()).transpose(), 1); VERIFY_EVALUATION_COUNT( m3.noalias() = m1 * m2.adjoint(), 0); + VERIFY_EVALUATION_COUNT( m3 = s1 * (m1 * m2.transpose()), 1); + VERIFY_EVALUATION_COUNT( m3 = m3 + s1 * (m1 * m2.transpose()), 1); VERIFY_EVALUATION_COUNT( m3.noalias() = s1 * (m1 * m2.transpose()), 0); + VERIFY_EVALUATION_COUNT( m3 = m3 + (m1 * m2.adjoint()), 1); + VERIFY_EVALUATION_COUNT( m3 = m3 + (m1 * m2.adjoint()).transpose(), 1); + VERIFY_EVALUATION_COUNT( m3.noalias() = m3 + m1 * m2.transpose(), 1); // 0 in 3.3 + VERIFY_EVALUATION_COUNT( m3.noalias() += m3 + m1 * m2.transpose(), 1); // 0 in 3.3 + VERIFY_EVALUATION_COUNT( m3.noalias() -= m3 + m1 * m2.transpose(), 1); // 0 in 3.3 + VERIFY_EVALUATION_COUNT( m3.noalias() = s1 * m1 * s2 * m2.adjoint(), 0); VERIFY_EVALUATION_COUNT( m3.noalias() = s1 * m1 * s2 * (m1*s3+m2*s2).adjoint(), 1); VERIFY_EVALUATION_COUNT( m3.noalias() = (s1 * m1).adjoint() * s2 * m2, 0); diff --git a/ext/eigen-3.2.7/test/product_selfadjoint.cpp b/ext/eigen-3.2.9/test/product_selfadjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_selfadjoint.cpp rename to ext/eigen-3.2.9/test/product_selfadjoint.cpp diff --git a/ext/eigen-3.2.7/test/product_small.cpp b/ext/eigen-3.2.9/test/product_small.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_small.cpp rename to ext/eigen-3.2.9/test/product_small.cpp diff --git a/ext/eigen-3.2.7/test/product_symm.cpp b/ext/eigen-3.2.9/test/product_symm.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_symm.cpp rename to ext/eigen-3.2.9/test/product_symm.cpp diff --git a/ext/eigen-3.2.7/test/product_syrk.cpp b/ext/eigen-3.2.9/test/product_syrk.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_syrk.cpp rename to ext/eigen-3.2.9/test/product_syrk.cpp diff --git a/ext/eigen-3.2.7/test/product_trmm.cpp b/ext/eigen-3.2.9/test/product_trmm.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_trmm.cpp rename to ext/eigen-3.2.9/test/product_trmm.cpp diff --git a/ext/eigen-3.2.7/test/product_trmv.cpp b/ext/eigen-3.2.9/test/product_trmv.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_trmv.cpp rename to ext/eigen-3.2.9/test/product_trmv.cpp diff --git a/ext/eigen-3.2.7/test/product_trsolve.cpp b/ext/eigen-3.2.9/test/product_trsolve.cpp similarity index 100% rename from ext/eigen-3.2.7/test/product_trsolve.cpp rename to ext/eigen-3.2.9/test/product_trsolve.cpp diff --git a/ext/eigen-3.2.7/test/qr.cpp b/ext/eigen-3.2.9/test/qr.cpp similarity index 100% rename from ext/eigen-3.2.7/test/qr.cpp rename to ext/eigen-3.2.9/test/qr.cpp diff --git a/ext/eigen-3.2.7/test/qr_colpivoting.cpp b/ext/eigen-3.2.9/test/qr_colpivoting.cpp similarity index 100% rename from ext/eigen-3.2.7/test/qr_colpivoting.cpp rename to ext/eigen-3.2.9/test/qr_colpivoting.cpp diff --git a/ext/eigen-3.2.7/test/qr_fullpivoting.cpp b/ext/eigen-3.2.9/test/qr_fullpivoting.cpp similarity index 100% rename from ext/eigen-3.2.7/test/qr_fullpivoting.cpp rename to ext/eigen-3.2.9/test/qr_fullpivoting.cpp diff --git a/ext/eigen-3.2.7/test/qtvector.cpp b/ext/eigen-3.2.9/test/qtvector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/qtvector.cpp rename to ext/eigen-3.2.9/test/qtvector.cpp diff --git a/ext/eigen-3.2.7/test/real_qz.cpp b/ext/eigen-3.2.9/test/real_qz.cpp similarity index 100% rename from ext/eigen-3.2.7/test/real_qz.cpp rename to ext/eigen-3.2.9/test/real_qz.cpp diff --git a/ext/eigen-3.2.7/test/redux.cpp b/ext/eigen-3.2.9/test/redux.cpp similarity index 100% rename from ext/eigen-3.2.7/test/redux.cpp rename to ext/eigen-3.2.9/test/redux.cpp diff --git a/ext/eigen-3.2.7/test/ref.cpp b/ext/eigen-3.2.9/test/ref.cpp similarity index 97% rename from ext/eigen-3.2.7/test/ref.cpp rename to ext/eigen-3.2.9/test/ref.cpp index 44bbd3b..8297e26 100644 --- a/ext/eigen-3.2.7/test/ref.cpp +++ b/ext/eigen-3.2.9/test/ref.cpp @@ -34,6 +34,18 @@ inline void on_temporary_creation(int) { // test Ref.h +// Deal with i387 extended precision +#if EIGEN_ARCH_i386 && !(EIGEN_ARCH_x86_64) + +#if EIGEN_COMP_GNUC_STRICT && EIGEN_GNUC_AT_LEAST(4,4) +#pragma GCC optimize ("-ffloat-store") +#else +#undef VERIFY_IS_EQUAL +#define VERIFY_IS_EQUAL(X,Y) VERIFY_IS_APPROX(X,Y) +#endif + +#endif + template void ref_matrix(const MatrixType& m) { typedef typename MatrixType::Index Index; @@ -71,7 +83,6 @@ template void ref_matrix(const MatrixType& m) rm2 = m2.block(i,j,brows,bcols); VERIFY_IS_EQUAL(m1, m2); - ConstRefDynMat rm3 = m1.block(i,j,brows,bcols); m1.block(i,j,brows,bcols) *= 2; m2.block(i,j,brows,bcols) *= 2; diff --git a/ext/eigen-3.2.7/test/resize.cpp b/ext/eigen-3.2.9/test/resize.cpp similarity index 100% rename from ext/eigen-3.2.7/test/resize.cpp rename to ext/eigen-3.2.9/test/resize.cpp diff --git a/ext/eigen-3.2.7/test/runtest.sh b/ext/eigen-3.2.9/test/runtest.sh similarity index 100% rename from ext/eigen-3.2.7/test/runtest.sh rename to ext/eigen-3.2.9/test/runtest.sh diff --git a/ext/eigen-3.2.7/test/rvalue_types.cpp b/ext/eigen-3.2.9/test/rvalue_types.cpp similarity index 100% rename from ext/eigen-3.2.7/test/rvalue_types.cpp rename to ext/eigen-3.2.9/test/rvalue_types.cpp diff --git a/ext/eigen-3.2.7/test/schur_complex.cpp b/ext/eigen-3.2.9/test/schur_complex.cpp similarity index 100% rename from ext/eigen-3.2.7/test/schur_complex.cpp rename to ext/eigen-3.2.9/test/schur_complex.cpp diff --git a/ext/eigen-3.2.7/test/schur_real.cpp b/ext/eigen-3.2.9/test/schur_real.cpp similarity index 100% rename from ext/eigen-3.2.7/test/schur_real.cpp rename to ext/eigen-3.2.9/test/schur_real.cpp diff --git a/ext/eigen-3.2.7/test/selfadjoint.cpp b/ext/eigen-3.2.9/test/selfadjoint.cpp similarity index 100% rename from ext/eigen-3.2.7/test/selfadjoint.cpp rename to ext/eigen-3.2.9/test/selfadjoint.cpp diff --git a/ext/eigen-3.2.7/test/simplicial_cholesky.cpp b/ext/eigen-3.2.9/test/simplicial_cholesky.cpp similarity index 100% rename from ext/eigen-3.2.7/test/simplicial_cholesky.cpp rename to ext/eigen-3.2.9/test/simplicial_cholesky.cpp diff --git a/ext/eigen-3.2.7/test/sizeof.cpp b/ext/eigen-3.2.9/test/sizeof.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sizeof.cpp rename to ext/eigen-3.2.9/test/sizeof.cpp diff --git a/ext/eigen-3.2.7/test/sizeoverflow.cpp b/ext/eigen-3.2.9/test/sizeoverflow.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sizeoverflow.cpp rename to ext/eigen-3.2.9/test/sizeoverflow.cpp diff --git a/ext/eigen-3.2.7/test/smallvectors.cpp b/ext/eigen-3.2.9/test/smallvectors.cpp similarity index 100% rename from ext/eigen-3.2.7/test/smallvectors.cpp rename to ext/eigen-3.2.9/test/smallvectors.cpp diff --git a/ext/eigen-3.2.7/test/sparse.h b/ext/eigen-3.2.9/test/sparse.h similarity index 100% rename from ext/eigen-3.2.7/test/sparse.h rename to ext/eigen-3.2.9/test/sparse.h diff --git a/ext/eigen-3.2.7/test/sparseLM.cpp b/ext/eigen-3.2.9/test/sparseLM.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparseLM.cpp rename to ext/eigen-3.2.9/test/sparseLM.cpp diff --git a/ext/eigen-3.2.7/test/sparse_basic.cpp b/ext/eigen-3.2.9/test/sparse_basic.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparse_basic.cpp rename to ext/eigen-3.2.9/test/sparse_basic.cpp diff --git a/ext/eigen-3.2.7/test/sparse_permutations.cpp b/ext/eigen-3.2.9/test/sparse_permutations.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparse_permutations.cpp rename to ext/eigen-3.2.9/test/sparse_permutations.cpp diff --git a/ext/eigen-3.2.7/test/sparse_product.cpp b/ext/eigen-3.2.9/test/sparse_product.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparse_product.cpp rename to ext/eigen-3.2.9/test/sparse_product.cpp diff --git a/ext/eigen-3.2.7/test/sparse_solver.h b/ext/eigen-3.2.9/test/sparse_solver.h similarity index 100% rename from ext/eigen-3.2.7/test/sparse_solver.h rename to ext/eigen-3.2.9/test/sparse_solver.h diff --git a/ext/eigen-3.2.7/test/sparse_solvers.cpp b/ext/eigen-3.2.9/test/sparse_solvers.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparse_solvers.cpp rename to ext/eigen-3.2.9/test/sparse_solvers.cpp diff --git a/ext/eigen-3.2.7/test/sparse_vector.cpp b/ext/eigen-3.2.9/test/sparse_vector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparse_vector.cpp rename to ext/eigen-3.2.9/test/sparse_vector.cpp diff --git a/ext/eigen-3.2.7/test/sparselu.cpp b/ext/eigen-3.2.9/test/sparselu.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparselu.cpp rename to ext/eigen-3.2.9/test/sparselu.cpp diff --git a/ext/eigen-3.2.7/test/sparseqr.cpp b/ext/eigen-3.2.9/test/sparseqr.cpp similarity index 100% rename from ext/eigen-3.2.7/test/sparseqr.cpp rename to ext/eigen-3.2.9/test/sparseqr.cpp diff --git a/ext/eigen-3.2.7/test/special_numbers.cpp b/ext/eigen-3.2.9/test/special_numbers.cpp similarity index 100% rename from ext/eigen-3.2.7/test/special_numbers.cpp rename to ext/eigen-3.2.9/test/special_numbers.cpp diff --git a/ext/eigen-3.2.7/test/spqr_support.cpp b/ext/eigen-3.2.9/test/spqr_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/spqr_support.cpp rename to ext/eigen-3.2.9/test/spqr_support.cpp diff --git a/ext/eigen-3.2.7/test/stable_norm.cpp b/ext/eigen-3.2.9/test/stable_norm.cpp similarity index 100% rename from ext/eigen-3.2.7/test/stable_norm.cpp rename to ext/eigen-3.2.9/test/stable_norm.cpp diff --git a/ext/eigen-3.2.7/test/stddeque.cpp b/ext/eigen-3.2.9/test/stddeque.cpp similarity index 100% rename from ext/eigen-3.2.7/test/stddeque.cpp rename to ext/eigen-3.2.9/test/stddeque.cpp diff --git a/ext/eigen-3.2.9/test/stddeque_overload.cpp b/ext/eigen-3.2.9/test/stddeque_overload.cpp new file mode 100644 index 0000000..4da618b --- /dev/null +++ b/ext/eigen-3.2.9/test/stddeque_overload.cpp @@ -0,0 +1,158 @@ +// This file is part of Eigen, a lightweight C++ template library +// for linear algebra. +// +// Copyright (C) 2008 Benoit Jacob +// Copyright (C) 2010 Hauke Heibel +// +// This Source Code Form is subject to the terms of the Mozilla +// Public License v. 2.0. If a copy of the MPL was not distributed +// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include "main.h" + +#include +#include + +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Vector4f) + +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Matrix2f) +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Matrix4f) +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Matrix4d) + +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Affine3f) +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Affine3d) + +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Quaternionf) +EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(Quaterniond) + +template +void check_stddeque_matrix(const MatrixType& m) +{ + typename MatrixType::Index rows = m.rows(); + typename MatrixType::Index cols = m.cols(); + MatrixType x = MatrixType::Random(rows,cols), y = MatrixType::Random(rows,cols); + std::deque v(10, MatrixType(rows,cols)), w(20, y); + v[5] = x; + w[6] = v[5]; + VERIFY_IS_APPROX(w[6], v[5]); + v = w; + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(w[i], v[i]); + } + + v.resize(21); + v[20] = x; + VERIFY_IS_APPROX(v[20], x); + v.resize(22,y); + VERIFY_IS_APPROX(v[21], y); + v.push_back(x); + VERIFY_IS_APPROX(v[22], x); + + // do a lot of push_back such that the deque gets internally resized + // (with memory reallocation) + MatrixType* ref = &w[0]; + for(int i=0; i<30 || ((ref==&w[0]) && i<300); ++i) + v.push_back(w[i%w.size()]); + for(unsigned int i=23; i +void check_stddeque_transform(const TransformType&) +{ + typedef typename TransformType::MatrixType MatrixType; + TransformType x(MatrixType::Random()), y(MatrixType::Random()); + std::deque v(10), w(20, y); + v[5] = x; + w[6] = v[5]; + VERIFY_IS_APPROX(w[6], v[5]); + v = w; + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(w[i], v[i]); + } + + v.resize(21); + v[20] = x; + VERIFY_IS_APPROX(v[20], x); + v.resize(22,y); + VERIFY_IS_APPROX(v[21], y); + v.push_back(x); + VERIFY_IS_APPROX(v[22], x); + + // do a lot of push_back such that the deque gets internally resized + // (with memory reallocation) + TransformType* ref = &w[0]; + for(int i=0; i<30 || ((ref==&w[0]) && i<300); ++i) + v.push_back(w[i%w.size()]); + for(unsigned int i=23; i +void check_stddeque_quaternion(const QuaternionType&) +{ + typedef typename QuaternionType::Coefficients Coefficients; + QuaternionType x(Coefficients::Random()), y(Coefficients::Random()); + std::deque v(10), w(20, y); + v[5] = x; + w[6] = v[5]; + VERIFY_IS_APPROX(w[6], v[5]); + v = w; + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(w[i], v[i]); + } + + v.resize(21); + v[20] = x; + VERIFY_IS_APPROX(v[20], x); + v.resize(22,y); + VERIFY_IS_APPROX(v[21], y); + v.push_back(x); + VERIFY_IS_APPROX(v[22], x); + + // do a lot of push_back such that the deque gets internally resized + // (with memory reallocation) + QuaternionType* ref = &w[0]; + for(int i=0; i<30 || ((ref==&w[0]) && i<300); ++i) + v.push_back(w[i%w.size()]); + for(unsigned int i=23; i +// Copyright (C) 2010 Hauke Heibel +// +// This Source Code Form is subject to the terms of the Mozilla +// Public License v. 2.0. If a copy of the MPL was not distributed +// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include "main.h" + +#include +#include + +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Vector4f) + +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Matrix2f) +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Matrix4f) +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Matrix4d) + +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Affine3f) +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Affine3d) + +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Quaternionf) +EIGEN_DEFINE_STL_LIST_SPECIALIZATION(Quaterniond) + +template +typename Container::iterator get(Container & c, Position position) +{ + typename Container::iterator it = c.begin(); + std::advance(it, position); + return it; +} + +template +void set(Container & c, Position position, const Value & value) +{ + typename Container::iterator it = c.begin(); + std::advance(it, position); + *it = value; +} + +template +void check_stdlist_matrix(const MatrixType& m) +{ + typename MatrixType::Index rows = m.rows(); + typename MatrixType::Index cols = m.cols(); + MatrixType x = MatrixType::Random(rows,cols), y = MatrixType::Random(rows,cols); + std::list v(10, MatrixType(rows,cols)), w(20, y); + typename std::list::iterator itv = get(v, 5); + typename std::list::iterator itw = get(w, 6); + *itv = x; + *itw = *itv; + VERIFY_IS_APPROX(*itw, *itv); + v = w; + itv = v.begin(); + itw = w.begin(); + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(*itw, *itv); + ++itv; + ++itw; + } + + v.resize(21); + set(v, 20, x); + VERIFY_IS_APPROX(*get(v, 20), x); + v.resize(22,y); + VERIFY_IS_APPROX(*get(v, 21), y); + v.push_back(x); + VERIFY_IS_APPROX(*get(v, 22), x); + + // do a lot of push_back such that the list gets internally resized + // (with memory reallocation) + MatrixType* ref = &(*get(w, 0)); + for(int i=0; i<30 || ((ref==&(*get(w, 0))) && i<300); ++i) + v.push_back(*get(w, i%w.size())); + for(unsigned int i=23; i +void check_stdlist_transform(const TransformType&) +{ + typedef typename TransformType::MatrixType MatrixType; + TransformType x(MatrixType::Random()), y(MatrixType::Random()); + std::list v(10), w(20, y); + typename std::list::iterator itv = get(v, 5); + typename std::list::iterator itw = get(w, 6); + *itv = x; + *itw = *itv; + VERIFY_IS_APPROX(*itw, *itv); + v = w; + itv = v.begin(); + itw = w.begin(); + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(*itw, *itv); + ++itv; + ++itw; + } + + v.resize(21); + set(v, 20, x); + VERIFY_IS_APPROX(*get(v, 20), x); + v.resize(22,y); + VERIFY_IS_APPROX(*get(v, 21), y); + v.push_back(x); + VERIFY_IS_APPROX(*get(v, 22), x); + + // do a lot of push_back such that the list gets internally resized + // (with memory reallocation) + TransformType* ref = &(*get(w, 0)); + for(int i=0; i<30 || ((ref==&(*get(w, 0))) && i<300); ++i) + v.push_back(*get(w, i%w.size())); + for(unsigned int i=23; imatrix()==get(w, (i-23)%w.size())->matrix()); + } +} + +template +void check_stdlist_quaternion(const QuaternionType&) +{ + typedef typename QuaternionType::Coefficients Coefficients; + QuaternionType x(Coefficients::Random()), y(Coefficients::Random()); + std::list v(10), w(20, y); + typename std::list::iterator itv = get(v, 5); + typename std::list::iterator itw = get(w, 6); + *itv = x; + *itw = *itv; + VERIFY_IS_APPROX(*itw, *itv); + v = w; + itv = v.begin(); + itw = w.begin(); + for(int i = 0; i < 20; i++) + { + VERIFY_IS_APPROX(*itw, *itv); + ++itv; + ++itw; + } + + v.resize(21); + set(v, 20, x); + VERIFY_IS_APPROX(*get(v, 20), x); + v.resize(22,y); + VERIFY_IS_APPROX(*get(v, 21), y); + v.push_back(x); + VERIFY_IS_APPROX(*get(v, 22), x); + + // do a lot of push_back such that the list gets internally resized + // (with memory reallocation) + QuaternionType* ref = &(*get(w, 0)); + for(int i=0; i<30 || ((ref==&(*get(w, 0))) && i<300); ++i) + v.push_back(*get(w, i%w.size())); + for(unsigned int i=23; icoeffs()==get(w, (i-23)%w.size())->coeffs()); + } +} + +void test_stdlist_overload() +{ + // some non vectorizable fixed sizes + CALL_SUBTEST_1(check_stdlist_matrix(Vector2f())); + CALL_SUBTEST_1(check_stdlist_matrix(Matrix3f())); + CALL_SUBTEST_2(check_stdlist_matrix(Matrix3d())); + + // some vectorizable fixed sizes + CALL_SUBTEST_1(check_stdlist_matrix(Matrix2f())); + CALL_SUBTEST_1(check_stdlist_matrix(Vector4f())); + CALL_SUBTEST_1(check_stdlist_matrix(Matrix4f())); + CALL_SUBTEST_2(check_stdlist_matrix(Matrix4d())); + + // some dynamic sizes + CALL_SUBTEST_3(check_stdlist_matrix(MatrixXd(1,1))); + CALL_SUBTEST_3(check_stdlist_matrix(VectorXd(20))); + CALL_SUBTEST_3(check_stdlist_matrix(RowVectorXf(20))); + CALL_SUBTEST_3(check_stdlist_matrix(MatrixXcf(10,10))); + + // some Transform + CALL_SUBTEST_4(check_stdlist_transform(Affine2f())); // does not need the specialization (2+1)^2 = 9 + CALL_SUBTEST_4(check_stdlist_transform(Affine3f())); + CALL_SUBTEST_4(check_stdlist_transform(Affine3d())); + + // some Quaternion + CALL_SUBTEST_5(check_stdlist_quaternion(Quaternionf())); + CALL_SUBTEST_5(check_stdlist_quaternion(Quaterniond())); +} diff --git a/ext/eigen-3.2.7/test/stdvector.cpp b/ext/eigen-3.2.9/test/stdvector.cpp similarity index 100% rename from ext/eigen-3.2.7/test/stdvector.cpp rename to ext/eigen-3.2.9/test/stdvector.cpp diff --git a/ext/eigen-3.2.7/test/stdvector_overload.cpp b/ext/eigen-3.2.9/test/stdvector_overload.cpp similarity index 100% rename from ext/eigen-3.2.7/test/stdvector_overload.cpp rename to ext/eigen-3.2.9/test/stdvector_overload.cpp diff --git a/ext/eigen-3.2.7/test/superlu_support.cpp b/ext/eigen-3.2.9/test/superlu_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/superlu_support.cpp rename to ext/eigen-3.2.9/test/superlu_support.cpp diff --git a/ext/eigen-3.2.7/test/swap.cpp b/ext/eigen-3.2.9/test/swap.cpp similarity index 100% rename from ext/eigen-3.2.7/test/swap.cpp rename to ext/eigen-3.2.9/test/swap.cpp diff --git a/ext/eigen-3.2.7/test/testsuite.cmake b/ext/eigen-3.2.9/test/testsuite.cmake similarity index 100% rename from ext/eigen-3.2.7/test/testsuite.cmake rename to ext/eigen-3.2.9/test/testsuite.cmake diff --git a/ext/eigen-3.2.7/test/triangular.cpp b/ext/eigen-3.2.9/test/triangular.cpp similarity index 100% rename from ext/eigen-3.2.7/test/triangular.cpp rename to ext/eigen-3.2.9/test/triangular.cpp diff --git a/ext/eigen-3.2.7/test/umeyama.cpp b/ext/eigen-3.2.9/test/umeyama.cpp similarity index 100% rename from ext/eigen-3.2.7/test/umeyama.cpp rename to ext/eigen-3.2.9/test/umeyama.cpp diff --git a/ext/eigen-3.2.7/test/umfpack_support.cpp b/ext/eigen-3.2.9/test/umfpack_support.cpp similarity index 100% rename from ext/eigen-3.2.7/test/umfpack_support.cpp rename to ext/eigen-3.2.9/test/umfpack_support.cpp diff --git a/ext/eigen-3.2.7/test/unalignedassert.cpp b/ext/eigen-3.2.9/test/unalignedassert.cpp similarity index 100% rename from ext/eigen-3.2.7/test/unalignedassert.cpp rename to ext/eigen-3.2.9/test/unalignedassert.cpp diff --git a/ext/eigen-3.2.7/test/unalignedcount.cpp b/ext/eigen-3.2.9/test/unalignedcount.cpp similarity index 100% rename from ext/eigen-3.2.7/test/unalignedcount.cpp rename to ext/eigen-3.2.9/test/unalignedcount.cpp diff --git a/ext/eigen-3.2.7/test/upperbidiagonalization.cpp b/ext/eigen-3.2.9/test/upperbidiagonalization.cpp similarity index 100% rename from ext/eigen-3.2.7/test/upperbidiagonalization.cpp rename to ext/eigen-3.2.9/test/upperbidiagonalization.cpp diff --git a/ext/eigen-3.2.7/test/vectorization_logic.cpp b/ext/eigen-3.2.9/test/vectorization_logic.cpp similarity index 100% rename from ext/eigen-3.2.7/test/vectorization_logic.cpp rename to ext/eigen-3.2.9/test/vectorization_logic.cpp diff --git a/ext/eigen-3.2.7/test/vectorwiseop.cpp b/ext/eigen-3.2.9/test/vectorwiseop.cpp similarity index 100% rename from ext/eigen-3.2.7/test/vectorwiseop.cpp rename to ext/eigen-3.2.9/test/vectorwiseop.cpp diff --git a/ext/eigen-3.2.7/test/visitor.cpp b/ext/eigen-3.2.9/test/visitor.cpp similarity index 95% rename from ext/eigen-3.2.7/test/visitor.cpp rename to ext/eigen-3.2.9/test/visitor.cpp index 39a5d6b..844170e 100644 --- a/ext/eigen-3.2.7/test/visitor.cpp +++ b/ext/eigen-3.2.9/test/visitor.cpp @@ -55,6 +55,11 @@ template void matrixVisitor(const MatrixType& p) VERIFY_IS_APPROX(maxc, eigen_maxc); VERIFY_IS_APPROX(minc, m.minCoeff()); VERIFY_IS_APPROX(maxc, m.maxCoeff()); + + eigen_maxc = (m.adjoint()*m).maxCoeff(&eigen_maxrow,&eigen_maxcol); + eigen_maxc = (m.adjoint()*m).eval().maxCoeff(&maxrow,&maxcol); + VERIFY(maxrow == eigen_maxrow); + VERIFY(maxcol == eigen_maxcol); } template void vectorVisitor(const VectorType& w) diff --git a/ext/eigen-3.2.7/test/zerosized.cpp b/ext/eigen-3.2.9/test/zerosized.cpp similarity index 100% rename from ext/eigen-3.2.7/test/zerosized.cpp rename to ext/eigen-3.2.9/test/zerosized.cpp diff --git a/ext/eigen-3.2.7/unsupported/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/AdolcForward b/ext/eigen-3.2.9/unsupported/Eigen/AdolcForward similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/AdolcForward rename to ext/eigen-3.2.9/unsupported/Eigen/AdolcForward diff --git a/ext/eigen-3.2.7/unsupported/Eigen/AlignedVector3 b/ext/eigen-3.2.9/unsupported/Eigen/AlignedVector3 similarity index 97% rename from ext/eigen-3.2.7/unsupported/Eigen/AlignedVector3 rename to ext/eigen-3.2.9/unsupported/Eigen/AlignedVector3 index 7b45e6c..29d5c90 100644 --- a/ext/eigen-3.2.7/unsupported/Eigen/AlignedVector3 +++ b/ext/eigen-3.2.9/unsupported/Eigen/AlignedVector3 @@ -177,7 +177,7 @@ template class AlignedVector3 } template - inline bool isApprox(const MatrixBase& other, RealScalar eps=NumTraits::dummy_precision()) const + inline bool isApprox(const MatrixBase& other, const RealScalar& eps=NumTraits::dummy_precision()) const { return m_coeffs.template head<3>().isApprox(other,eps); } diff --git a/ext/eigen-3.2.7/unsupported/Eigen/ArpackSupport b/ext/eigen-3.2.9/unsupported/Eigen/ArpackSupport similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/ArpackSupport rename to ext/eigen-3.2.9/unsupported/Eigen/ArpackSupport diff --git a/ext/eigen-3.2.7/unsupported/Eigen/AutoDiff b/ext/eigen-3.2.9/unsupported/Eigen/AutoDiff similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/AutoDiff rename to ext/eigen-3.2.9/unsupported/Eigen/AutoDiff diff --git a/ext/eigen-3.2.7/unsupported/Eigen/BVH b/ext/eigen-3.2.9/unsupported/Eigen/BVH similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/BVH rename to ext/eigen-3.2.9/unsupported/Eigen/BVH diff --git a/ext/eigen-3.2.7/unsupported/Eigen/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/FFT b/ext/eigen-3.2.9/unsupported/Eigen/FFT similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/FFT rename to ext/eigen-3.2.9/unsupported/Eigen/FFT diff --git a/ext/eigen-3.2.7/unsupported/Eigen/IterativeSolvers b/ext/eigen-3.2.9/unsupported/Eigen/IterativeSolvers similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/IterativeSolvers rename to ext/eigen-3.2.9/unsupported/Eigen/IterativeSolvers diff --git a/ext/eigen-3.2.7/unsupported/Eigen/KroneckerProduct b/ext/eigen-3.2.9/unsupported/Eigen/KroneckerProduct similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/KroneckerProduct rename to ext/eigen-3.2.9/unsupported/Eigen/KroneckerProduct diff --git a/ext/eigen-3.2.7/unsupported/Eigen/LevenbergMarquardt b/ext/eigen-3.2.9/unsupported/Eigen/LevenbergMarquardt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/LevenbergMarquardt rename to ext/eigen-3.2.9/unsupported/Eigen/LevenbergMarquardt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/MPRealSupport b/ext/eigen-3.2.9/unsupported/Eigen/MPRealSupport similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/MPRealSupport rename to ext/eigen-3.2.9/unsupported/Eigen/MPRealSupport diff --git a/ext/eigen-3.2.7/unsupported/Eigen/MatrixFunctions b/ext/eigen-3.2.9/unsupported/Eigen/MatrixFunctions similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/MatrixFunctions rename to ext/eigen-3.2.9/unsupported/Eigen/MatrixFunctions diff --git a/ext/eigen-3.2.7/unsupported/Eigen/MoreVectorization b/ext/eigen-3.2.9/unsupported/Eigen/MoreVectorization similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/MoreVectorization rename to ext/eigen-3.2.9/unsupported/Eigen/MoreVectorization diff --git a/ext/eigen-3.2.7/unsupported/Eigen/NonLinearOptimization b/ext/eigen-3.2.9/unsupported/Eigen/NonLinearOptimization similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/NonLinearOptimization rename to ext/eigen-3.2.9/unsupported/Eigen/NonLinearOptimization diff --git a/ext/eigen-3.2.7/unsupported/Eigen/NumericalDiff b/ext/eigen-3.2.9/unsupported/Eigen/NumericalDiff similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/NumericalDiff rename to ext/eigen-3.2.9/unsupported/Eigen/NumericalDiff diff --git a/ext/eigen-3.2.7/unsupported/Eigen/OpenGLSupport b/ext/eigen-3.2.9/unsupported/Eigen/OpenGLSupport similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/OpenGLSupport rename to ext/eigen-3.2.9/unsupported/Eigen/OpenGLSupport diff --git a/ext/eigen-3.2.7/unsupported/Eigen/Polynomials b/ext/eigen-3.2.9/unsupported/Eigen/Polynomials similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/Polynomials rename to ext/eigen-3.2.9/unsupported/Eigen/Polynomials diff --git a/ext/eigen-3.2.7/unsupported/Eigen/SVD b/ext/eigen-3.2.9/unsupported/Eigen/SVD similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/SVD rename to ext/eigen-3.2.9/unsupported/Eigen/SVD diff --git a/ext/eigen-3.2.7/unsupported/Eigen/Skyline b/ext/eigen-3.2.9/unsupported/Eigen/Skyline similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/Skyline rename to ext/eigen-3.2.9/unsupported/Eigen/Skyline diff --git a/ext/eigen-3.2.7/unsupported/Eigen/SparseExtra b/ext/eigen-3.2.9/unsupported/Eigen/SparseExtra similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/SparseExtra rename to ext/eigen-3.2.9/unsupported/Eigen/SparseExtra diff --git a/ext/eigen-3.2.7/unsupported/Eigen/Splines b/ext/eigen-3.2.9/unsupported/Eigen/Splines similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/Splines rename to ext/eigen-3.2.9/unsupported/Eigen/Splines diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h b/ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h b/ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h b/ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/AutoDiff/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/AutoDiff/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/BVH/BVAlgorithms.h b/ext/eigen-3.2.9/unsupported/Eigen/src/BVH/BVAlgorithms.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/BVH/BVAlgorithms.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/BVH/BVAlgorithms.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/BVH/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/BVH/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/BVH/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/BVH/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/BVH/KdBVH.h b/ext/eigen-3.2.9/unsupported/Eigen/src/BVH/KdBVH.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/BVH/KdBVH.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/BVH/KdBVH.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/FFT/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/FFT/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/FFT/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/FFT/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/FFT/ei_fftw_impl.h b/ext/eigen-3.2.9/unsupported/Eigen/src/FFT/ei_fftw_impl.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/FFT/ei_fftw_impl.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/FFT/ei_fftw_impl.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/FFT/ei_kissfft_impl.h b/ext/eigen-3.2.9/unsupported/Eigen/src/FFT/ei_kissfft_impl.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/FFT/ei_kissfft_impl.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/FFT/ei_kissfft_impl.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/DGMRES.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/DGMRES.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/DGMRES.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/DGMRES.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/GMRES.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/GMRES.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/GMRES.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/GMRES.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IterationController.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IterationController.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/IterationController.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/IterationController.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/MINRES.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/MINRES.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/MINRES.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/MINRES.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/Scaling.h b/ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/Scaling.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/IterativeSolvers/Scaling.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/IterativeSolvers/Scaling.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h b/ext/eigen-3.2.9/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h b/ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h similarity index 98% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h index 6825a78..88dba54 100644 --- a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +++ b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h @@ -293,7 +293,7 @@ void MatrixExponential::computeUV(float) const float maxnorm = 3.925724783138660f; frexp(m_l1norm / maxnorm, &m_squarings); if (m_squarings < 0) m_squarings = 0; - MatrixType A = m_M / pow(Scalar(2), m_squarings); + MatrixType A = m_M / Scalar(pow(2, m_squarings)); pade7(A); } } @@ -315,7 +315,7 @@ void MatrixExponential::computeUV(double) const double maxnorm = 5.371920351148152; frexp(m_l1norm / maxnorm, &m_squarings); if (m_squarings < 0) m_squarings = 0; - MatrixType A = m_M / pow(Scalar(2), m_squarings); + MatrixType A = m_M / Scalar(pow(2, m_squarings)); pade13(A); } } @@ -340,7 +340,7 @@ void MatrixExponential::computeUV(long double) const long double maxnorm = 4.0246098906697353063L; frexp(m_l1norm / maxnorm, &m_squarings); if (m_squarings < 0) m_squarings = 0; - MatrixType A = m_M / pow(Scalar(2), m_squarings); + MatrixType A = m_M / Scalar(pow(2, m_squarings)); pade13(A); } #elif LDBL_MANT_DIG <= 106 // double-double @@ -376,7 +376,7 @@ void MatrixExponential::computeUV(long double) const long double maxnorm = 2.884233277829519311757165057717815L; frexp(m_l1norm / maxnorm, &m_squarings); if (m_squarings < 0) m_squarings = 0; - MatrixType A = m_M / pow(Scalar(2), m_squarings); + MatrixType A = m_M / Scalar(pow(2, m_squarings)); pade17(A); } #else diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/StemFunction.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/StemFunction.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MatrixFunctions/StemFunction.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MatrixFunctions/StemFunction.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/MoreVectorization/MathFunctions.h b/ext/eigen-3.2.9/unsupported/Eigen/src/MoreVectorization/MathFunctions.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/MoreVectorization/MathFunctions.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/MoreVectorization/MathFunctions.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/chkder.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/chkder.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/chkder.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/chkder.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/covar.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/covar.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/covar.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/covar.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/dogleg.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/dogleg.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/dogleg.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/dogleg.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/lmpar.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/lmpar.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/lmpar.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/lmpar.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/r1updt.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/r1updt.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/r1updt.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/r1updt.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h b/ext/eigen-3.2.9/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/Companion.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/Companion.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/Companion.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/Companion.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/PolynomialSolver.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/PolynomialSolver.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/PolynomialSolver.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/PolynomialSolver.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/PolynomialUtils.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/PolynomialUtils.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Polynomials/PolynomialUtils.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Polynomials/PolynomialUtils.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/BDCSVD.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/BDCSVD.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/BDCSVD.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/BDCSVD.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/JacobiSVD.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/JacobiSVD.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/JacobiSVD.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/JacobiSVD.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/SVDBase.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/SVDBase.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/SVDBase.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/SVDBase.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/TODOBdcsvd.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/TODOBdcsvd.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/TODOBdcsvd.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/TODOBdcsvd.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SVD/doneInBDCSVD.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/SVD/doneInBDCSVD.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SVD/doneInBDCSVD.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/SVD/doneInBDCSVD.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineMatrix.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineMatrix.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineMatrix.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineMatrix.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineProduct.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineProduct.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineProduct.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineProduct.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineStorage.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineStorage.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineStorage.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineStorage.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineUtil.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineUtil.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Skyline/SkylineUtil.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Skyline/SkylineUtil.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/MarketIO.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/MarketIO.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/MarketIO.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/MarketIO.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/RandomSetter.h b/ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/RandomSetter.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/SparseExtra/RandomSetter.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/SparseExtra/RandomSetter.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Splines/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/Eigen/src/Splines/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Splines/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/Eigen/src/Splines/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Splines/Spline.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Splines/Spline.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Splines/Spline.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Splines/Spline.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Splines/SplineFitting.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Splines/SplineFitting.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Splines/SplineFitting.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Splines/SplineFitting.h diff --git a/ext/eigen-3.2.7/unsupported/Eigen/src/Splines/SplineFwd.h b/ext/eigen-3.2.9/unsupported/Eigen/src/Splines/SplineFwd.h similarity index 88% rename from ext/eigen-3.2.7/unsupported/Eigen/src/Splines/SplineFwd.h rename to ext/eigen-3.2.9/unsupported/Eigen/src/Splines/SplineFwd.h index 49db8d3..9ea23a9 100644 --- a/ext/eigen-3.2.7/unsupported/Eigen/src/Splines/SplineFwd.h +++ b/ext/eigen-3.2.9/unsupported/Eigen/src/Splines/SplineFwd.h @@ -31,6 +31,8 @@ namespace Eigen enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ }; enum { NumOfDerivativesAtCompileTime = OrderAtCompileTime /*!< The number of derivatives defined for the current spline. */ }; + + enum { DerivativeMemoryLayout = Dimension==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ }; /** \brief The data type used to store non-zero basis functions. */ typedef Array BasisVectorType; @@ -39,7 +41,7 @@ namespace Eigen typedef Array BasisDerivativeType; /** \brief The data type used to store the spline's derivative values. */ - typedef Array DerivativeType; + typedef Array DerivativeType; /** \brief The point type the spline is representing. */ typedef Array PointType; @@ -62,12 +64,14 @@ namespace Eigen { enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ }; enum { NumOfDerivativesAtCompileTime = _DerivativeOrder==Dynamic ? Dynamic : _DerivativeOrder+1 /*!< The number of derivatives defined for the current spline. */ }; + + enum { DerivativeMemoryLayout = _Dim==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ }; /** \brief The data type used to store the values of the basis function derivatives. */ typedef Array<_Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType; /** \brief The data type used to store the spline's derivative values. */ - typedef Array<_Scalar,_Dim,Dynamic,ColMajor,_Dim,NumOfDerivativesAtCompileTime> DerivativeType; + typedef Array<_Scalar,_Dim,Dynamic,DerivativeMemoryLayout,_Dim,NumOfDerivativesAtCompileTime> DerivativeType; }; /** \brief 2D float B-spline with dynamic degree. */ diff --git a/ext/eigen-3.2.7/unsupported/README.txt b/ext/eigen-3.2.9/unsupported/README.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/README.txt rename to ext/eigen-3.2.9/unsupported/README.txt diff --git a/ext/eigen-3.2.7/unsupported/bench/bench_svd.cpp b/ext/eigen-3.2.9/unsupported/bench/bench_svd.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/bench/bench_svd.cpp rename to ext/eigen-3.2.9/unsupported/bench/bench_svd.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/doc/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/doc/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/doc/Overview.dox b/ext/eigen-3.2.9/unsupported/doc/Overview.dox similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/Overview.dox rename to ext/eigen-3.2.9/unsupported/doc/Overview.dox diff --git a/ext/eigen-3.2.7/unsupported/doc/eigendoxy_layout.xml.in b/ext/eigen-3.2.9/unsupported/doc/eigendoxy_layout.xml.in similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/eigendoxy_layout.xml.in rename to ext/eigen-3.2.9/unsupported/doc/eigendoxy_layout.xml.in diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/BVH_Example.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/BVH_Example.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/BVH_Example.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/BVH_Example.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/doc/examples/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/doc/examples/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/FFT.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/FFT.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/FFT.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/FFT.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixExponential.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixExponential.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixExponential.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixExponential.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixFunction.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixFunction.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixFunction.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixFunction.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixLogarithm.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixLogarithm.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixLogarithm.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixLogarithm.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixPower.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixPower.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixPower.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixPower.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixPower_optimal.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixPower_optimal.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixPower_optimal.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixPower_optimal.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixSine.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixSine.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixSine.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixSine.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixSinh.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixSinh.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixSinh.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixSinh.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/MatrixSquareRoot.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/MatrixSquareRoot.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/MatrixSquareRoot.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/MatrixSquareRoot.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/PolynomialSolver1.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/PolynomialSolver1.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/PolynomialSolver1.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/PolynomialSolver1.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/examples/PolynomialUtils1.cpp b/ext/eigen-3.2.9/unsupported/doc/examples/PolynomialUtils1.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/examples/PolynomialUtils1.cpp rename to ext/eigen-3.2.9/unsupported/doc/examples/PolynomialUtils1.cpp diff --git a/ext/eigen-3.2.7/unsupported/doc/snippets/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/doc/snippets/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/doc/snippets/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/doc/snippets/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/test/BVH.cpp b/ext/eigen-3.2.9/unsupported/test/BVH.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/BVH.cpp rename to ext/eigen-3.2.9/unsupported/test/BVH.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/CMakeLists.txt b/ext/eigen-3.2.9/unsupported/test/CMakeLists.txt similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/CMakeLists.txt rename to ext/eigen-3.2.9/unsupported/test/CMakeLists.txt diff --git a/ext/eigen-3.2.7/unsupported/test/FFT.cpp b/ext/eigen-3.2.9/unsupported/test/FFT.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/FFT.cpp rename to ext/eigen-3.2.9/unsupported/test/FFT.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/FFTW.cpp b/ext/eigen-3.2.9/unsupported/test/FFTW.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/FFTW.cpp rename to ext/eigen-3.2.9/unsupported/test/FFTW.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/NonLinearOptimization.cpp b/ext/eigen-3.2.9/unsupported/test/NonLinearOptimization.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/NonLinearOptimization.cpp rename to ext/eigen-3.2.9/unsupported/test/NonLinearOptimization.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/NumericalDiff.cpp b/ext/eigen-3.2.9/unsupported/test/NumericalDiff.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/NumericalDiff.cpp rename to ext/eigen-3.2.9/unsupported/test/NumericalDiff.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/alignedvector3.cpp b/ext/eigen-3.2.9/unsupported/test/alignedvector3.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/alignedvector3.cpp rename to ext/eigen-3.2.9/unsupported/test/alignedvector3.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/autodiff.cpp b/ext/eigen-3.2.9/unsupported/test/autodiff.cpp similarity index 93% rename from ext/eigen-3.2.7/unsupported/test/autodiff.cpp rename to ext/eigen-3.2.9/unsupported/test/autodiff.cpp index 087e7c5..7c112a1 100644 --- a/ext/eigen-3.2.7/unsupported/test/autodiff.cpp +++ b/ext/eigen-3.2.9/unsupported/test/autodiff.cpp @@ -162,6 +162,15 @@ void test_autodiff_jacobian() CALL_SUBTEST(( forward_jacobian(TestFunc1(3,3)) )); } +double bug_1222() { + typedef Eigen::AutoDiffScalar AD; + const double _cv1_3 = 1.0; + const AD chi_3 = 1.0; + // this line did not work, because operator+ returns ADS, which then cannot be converted to ADS + const AD denom = chi_3 + _cv1_3; + return denom.value(); +} + void test_autodiff() { for(int i = 0; i < g_repeat; i++) { @@ -169,5 +178,7 @@ void test_autodiff() CALL_SUBTEST_2( test_autodiff_vector() ); CALL_SUBTEST_3( test_autodiff_jacobian() ); } + + bug_1222(); } diff --git a/ext/eigen-3.2.7/unsupported/test/bdcsvd.cpp b/ext/eigen-3.2.9/unsupported/test/bdcsvd.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/bdcsvd.cpp rename to ext/eigen-3.2.9/unsupported/test/bdcsvd.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/dgmres.cpp b/ext/eigen-3.2.9/unsupported/test/dgmres.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/dgmres.cpp rename to ext/eigen-3.2.9/unsupported/test/dgmres.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/forward_adolc.cpp b/ext/eigen-3.2.9/unsupported/test/forward_adolc.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/forward_adolc.cpp rename to ext/eigen-3.2.9/unsupported/test/forward_adolc.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/gmres.cpp b/ext/eigen-3.2.9/unsupported/test/gmres.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/gmres.cpp rename to ext/eigen-3.2.9/unsupported/test/gmres.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/jacobisvd.cpp b/ext/eigen-3.2.9/unsupported/test/jacobisvd.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/jacobisvd.cpp rename to ext/eigen-3.2.9/unsupported/test/jacobisvd.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/kronecker_product.cpp b/ext/eigen-3.2.9/unsupported/test/kronecker_product.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/kronecker_product.cpp rename to ext/eigen-3.2.9/unsupported/test/kronecker_product.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/levenberg_marquardt.cpp b/ext/eigen-3.2.9/unsupported/test/levenberg_marquardt.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/levenberg_marquardt.cpp rename to ext/eigen-3.2.9/unsupported/test/levenberg_marquardt.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/matrix_exponential.cpp b/ext/eigen-3.2.9/unsupported/test/matrix_exponential.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/matrix_exponential.cpp rename to ext/eigen-3.2.9/unsupported/test/matrix_exponential.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/matrix_function.cpp b/ext/eigen-3.2.9/unsupported/test/matrix_function.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/matrix_function.cpp rename to ext/eigen-3.2.9/unsupported/test/matrix_function.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/matrix_functions.h b/ext/eigen-3.2.9/unsupported/test/matrix_functions.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/matrix_functions.h rename to ext/eigen-3.2.9/unsupported/test/matrix_functions.h diff --git a/ext/eigen-3.2.7/unsupported/test/matrix_power.cpp b/ext/eigen-3.2.9/unsupported/test/matrix_power.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/matrix_power.cpp rename to ext/eigen-3.2.9/unsupported/test/matrix_power.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/matrix_square_root.cpp b/ext/eigen-3.2.9/unsupported/test/matrix_square_root.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/matrix_square_root.cpp rename to ext/eigen-3.2.9/unsupported/test/matrix_square_root.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/minres.cpp b/ext/eigen-3.2.9/unsupported/test/minres.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/minres.cpp rename to ext/eigen-3.2.9/unsupported/test/minres.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/mpreal/mpreal.h b/ext/eigen-3.2.9/unsupported/test/mpreal/mpreal.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/mpreal/mpreal.h rename to ext/eigen-3.2.9/unsupported/test/mpreal/mpreal.h diff --git a/ext/eigen-3.2.7/unsupported/test/mpreal_support.cpp b/ext/eigen-3.2.9/unsupported/test/mpreal_support.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/mpreal_support.cpp rename to ext/eigen-3.2.9/unsupported/test/mpreal_support.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/openglsupport.cpp b/ext/eigen-3.2.9/unsupported/test/openglsupport.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/openglsupport.cpp rename to ext/eigen-3.2.9/unsupported/test/openglsupport.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/polynomialsolver.cpp b/ext/eigen-3.2.9/unsupported/test/polynomialsolver.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/polynomialsolver.cpp rename to ext/eigen-3.2.9/unsupported/test/polynomialsolver.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/polynomialutils.cpp b/ext/eigen-3.2.9/unsupported/test/polynomialutils.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/polynomialutils.cpp rename to ext/eigen-3.2.9/unsupported/test/polynomialutils.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/sparse_extra.cpp b/ext/eigen-3.2.9/unsupported/test/sparse_extra.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/sparse_extra.cpp rename to ext/eigen-3.2.9/unsupported/test/sparse_extra.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/splines.cpp b/ext/eigen-3.2.9/unsupported/test/splines.cpp similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/splines.cpp rename to ext/eigen-3.2.9/unsupported/test/splines.cpp diff --git a/ext/eigen-3.2.7/unsupported/test/svd_common.h b/ext/eigen-3.2.9/unsupported/test/svd_common.h similarity index 100% rename from ext/eigen-3.2.7/unsupported/test/svd_common.h rename to ext/eigen-3.2.9/unsupported/test/svd_common.h diff --git a/gui/fea_gui.pro b/gui/fea_gui.pro index 6525641..360cec2 100644 --- a/gui/fea_gui.pro +++ b/gui/fea_gui.pro @@ -12,7 +12,7 @@ TARGET = fea_gui TEMPLATE = app EXT_BOOST_ROOT = ../ext/boost_1_59_0 -EXT_EIGEN_ROOT = ../ext/eigen-3.2.4 +EXT_EIGEN_ROOT = ../ext/eigen-3.2.9 EXT_RAPIDJSON_ROOT = ../ext/rapidjson/include FEA_INCLUDE_ROOT = ../include FEA_SRC_ROOT = ../src