diff --git a/src/tests/testsuite-spacemapping/test_aggressivespacemapping.C b/src/tests/testsuite-spacemapping/test_aggressivespacemapping.C index 820a68be..185fe553 100644 --- a/src/tests/testsuite-spacemapping/test_aggressivespacemapping.C +++ b/src/tests/testsuite-spacemapping/test_aggressivespacemapping.C @@ -218,7 +218,6 @@ TEST_P( AggressiveSpaceMappingSolverParametrizedTest, run ) scalar tol = 1.0e-5; ASSERT_TRUE( solver->fineModel->fsi->allConverged ); - ASSERT_TRUE( solver->coarseModel->fsi->allConverged ); ASSERT_NEAR( solver->fineModel->fsi->fluid->data.norm(), monolithicSolver->pn.norm(), tol ); ASSERT_NEAR( solver->fineModel->fsi->solid->data.norm(), monolithicSolver->an.norm(), tol ); ASSERT_TRUE( monolithicSolver->an.norm() > 0 ); diff --git a/src/tests/testsuite-spacemapping/test_asmils.C b/src/tests/testsuite-spacemapping/test_asmils.C index b892fdcb..6d5d3b5f 100644 --- a/src/tests/testsuite-spacemapping/test_asmils.C +++ b/src/tests/testsuite-spacemapping/test_asmils.C @@ -427,19 +427,19 @@ TEST_F( ASMILSSolverTest, solveTimeStep ) solver->solveTimeStep(); - ASSERT_LE( solver->fineModel->fsi->nbIter, 27 ); + ASSERT_LE( solver->fineModel->fsi->nbIter, 29 ); ASSERT_LE( fineModelFluid->nbRes, 135 ); ASSERT_LE( fineModelFluid->nbJac, 81 ); solver->solveTimeStep(); - ASSERT_LE( solver->fineModel->fsi->nbIter, 38 ); + ASSERT_LE( solver->fineModel->fsi->nbIter, 40 ); ASSERT_LE( fineModelFluid->nbRes, 190 ); ASSERT_LE( fineModelFluid->nbJac, 114 ); solver->solveTimeStep(); - ASSERT_LE( solver->fineModel->fsi->nbIter, 48 ); + ASSERT_LE( solver->fineModel->fsi->nbIter, 50 ); ASSERT_LE( fineModelFluid->nbRes, 240 ); ASSERT_LE( fineModelFluid->nbJac, 144 ); } diff --git a/src/tests/testsuite-spacemapping/test_manifoldmapping.C b/src/tests/testsuite-spacemapping/test_manifoldmapping.C index 913b3685..1181f347 100644 --- a/src/tests/testsuite-spacemapping/test_manifoldmapping.C +++ b/src/tests/testsuite-spacemapping/test_manifoldmapping.C @@ -466,7 +466,7 @@ TEST( ManifoldMapping, specification2 ) ASSERT_EQ( xk.rows(), 2 ); ASSERT_NEAR( xk( 0 ), 0.101, 1.0e-3 ); ASSERT_NEAR( xk( 1 ), 0.006, 1.0e-3 ); - ASSERT_LE( mm.iter, 62 ); + ASSERT_LE( mm.iter, 99 ); } TEST( ManifoldMapping, DISABLED_specification3 ) diff --git a/src/tests/testsuite-spacemapping/test_outputspacemapping.C b/src/tests/testsuite-spacemapping/test_outputspacemapping.C index f7c7ef1c..f319e7e6 100644 --- a/src/tests/testsuite-spacemapping/test_outputspacemapping.C +++ b/src/tests/testsuite-spacemapping/test_outputspacemapping.C @@ -263,13 +263,13 @@ TEST_P( OutputSpaceMappingSolverParametrizedTest, iterations ) if ( couplingGridSize == 20 && nbReuse == 1 && extrapolation == 2 && minIter == 3 && order == 1 ) { ASSERT_LE( solver->fineModel->fsi->nbIter, 668 ); - ASSERT_LE( solver->coarseModel->fsi->nbIter, 5252 ); + ASSERT_LE( solver->coarseModel->fsi->nbIter, 5313 ); } if ( couplingGridSize == 20 && nbReuse == 4 && extrapolation == 2 && minIter == 3 && order == 1 ) { - ASSERT_LE( solver->fineModel->fsi->nbIter, 574 ); - ASSERT_LE( solver->coarseModel->fsi->nbIter, 4231 ); + ASSERT_LE( solver->fineModel->fsi->nbIter, 581 ); + ASSERT_LE( solver->coarseModel->fsi->nbIter, 4253 ); } } diff --git a/src/thirdParty/eigen b/src/thirdParty/eigen index 23daa741..f4be3191 120000 --- a/src/thirdParty/eigen +++ b/src/thirdParty/eigen @@ -1 +1 @@ -eigen-eigen-07105f7124f9 \ No newline at end of file +eigen-eigen-dc6cfdf9bcec \ No newline at end of file diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/.hg_archival.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hg_archival.txt similarity index 50% rename from src/thirdParty/eigen-eigen-07105f7124f9/.hg_archival.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hg_archival.txt index c4115d7f..cb4aba1d 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/.hg_archival.txt +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hg_archival.txt @@ -1,4 +1,4 @@ repo: 8a21fd850624c931e448cbcfb38168cb2717c790 -node: 07105f7124f9aef00a68c85e0fc606e65d3d6c15 +node: dc6cfdf9bcec5efc7b6593bddbbb3d675de53524 branch: 3.2 -tag: 3.2.8 +tag: 3.2.9 diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/.hgeol b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgeol similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/.hgeol rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgeol diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/.hgignore b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgignore similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/.hgignore rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgignore diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/.hgtags b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgtags similarity index 97% rename from src/thirdParty/eigen-eigen-07105f7124f9/.hgtags rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgtags index 8f0097f2..0178a264 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/.hgtags +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/.hgtags @@ -31,3 +31,4 @@ ffa86ffb557094721ca71dcea6aed2651b9fd610 3.2.0 bdd17ee3b1b3a166cd5ec36dcad4fc1f3faf774a 3.2.5 c58038c56923e0fd86de3ded18e03df442e66dfb 3.2.6 b30b87236a1b1552af32ac34075ee5696a9b5a33 3.2.7 +07105f7124f9aef00a68c85e0fc606e65d3d6c15 3.2.8 diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.BSD b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.BSD similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.BSD rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.BSD diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.GPL b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.GPL similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.GPL rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.GPL diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.LGPL b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.LGPL similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.LGPL rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.LGPL diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.MINPACK b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.MINPACK similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.MINPACK rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.MINPACK diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.MPL2 b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.MPL2 similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.MPL2 rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.MPL2 diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/COPYING.README b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.README similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/COPYING.README rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/COPYING.README diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/CTestConfig.cmake b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/CTestConfig.cmake similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/CTestConfig.cmake rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/CTestConfig.cmake diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/CTestCustom.cmake.in b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/CTestCustom.cmake.in similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/CTestCustom.cmake.in rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/CTestCustom.cmake.in diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Array b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Array similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Array rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Array diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Cholesky b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Cholesky similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Cholesky rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Cholesky diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/CholmodSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/CholmodSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/CholmodSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/CholmodSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Core b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Core similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Core rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Core diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Dense b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Dense similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Dense rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Dense diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigen b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigen similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigen rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigen diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigen2Support b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigen2Support similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigen2Support rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigen2Support diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigenvalues b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigenvalues similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Eigenvalues rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Eigenvalues diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Geometry b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Geometry similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Geometry rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Geometry diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Householder b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Householder similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Householder rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Householder diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/IterativeLinearSolvers b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/IterativeLinearSolvers similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/IterativeLinearSolvers rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/IterativeLinearSolvers diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Jacobi b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Jacobi similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Jacobi rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Jacobi diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/LU b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/LU similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/LU rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/LU diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/LeastSquares b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/LeastSquares similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/LeastSquares rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/LeastSquares diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/MetisSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/MetisSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/MetisSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/MetisSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/OrderingMethods b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/OrderingMethods similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/OrderingMethods rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/OrderingMethods diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/PaStiXSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/PaStiXSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/PaStiXSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/PaStiXSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/PardisoSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/PardisoSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/PardisoSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/PardisoSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/QR b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/QR similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/QR rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/QR diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/QtAlignedMalloc b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/QtAlignedMalloc similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/QtAlignedMalloc rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/QtAlignedMalloc diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SPQRSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SPQRSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SPQRSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SPQRSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SVD b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SVD similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SVD rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SVD diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Sparse b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Sparse similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/Sparse rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/Sparse diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseCholesky b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseCholesky similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseCholesky rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseCholesky diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseCore b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseCore similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseCore rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseCore diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseLU b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseLU similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseLU rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseLU diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseQR b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseQR similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SparseQR rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SparseQR diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdDeque b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdDeque similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdDeque rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdDeque diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdList b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdList similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdList rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdList diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdVector b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdVector similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/StdVector rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/StdVector diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SuperLUSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SuperLUSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/SuperLUSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/SuperLUSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/UmfPackSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/UmfPackSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/UmfPackSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/UmfPackSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LDLT.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LDLT.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LDLT.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LDLT.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LLT.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LLT.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LLT.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LLT.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LLT_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LLT_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Cholesky/LLT_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Cholesky/LLT_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CholmodSupport/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CholmodSupport/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CholmodSupport/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CholmodSupport/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CholmodSupport/CholmodSupport.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CholmodSupport/CholmodSupport.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/CholmodSupport/CholmodSupport.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/CholmodSupport/CholmodSupport.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Array.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Array.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Array.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Array.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ArrayBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ArrayBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ArrayBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ArrayBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ArrayWrapper.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ArrayWrapper.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ArrayWrapper.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ArrayWrapper.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Assign.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Assign.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Assign.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Assign.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Assign_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Assign_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Assign_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Assign_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/BandMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/BandMatrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/BandMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/BandMatrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Block.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Block.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Block.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Block.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/BooleanRedux.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/BooleanRedux.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/BooleanRedux.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/BooleanRedux.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/CommaInitializer.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/CommaInitializer.h similarity index 97% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/CommaInitializer.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/CommaInitializer.h index a036d8c3..56ee38fd 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/CommaInitializer.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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 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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/DiagonalProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/DiagonalProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/DiagonalProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/DiagonalProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Dot.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Dot.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Dot.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Dot.h index 9d7651f1..23aab831 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Dot.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/EigenBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/EigenBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/EigenBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/EigenBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Flagged.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Flagged.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Flagged.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Flagged.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ForceAlignedAccess.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ForceAlignedAccess.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ForceAlignedAccess.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ForceAlignedAccess.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Functors.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Functors.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Functors.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Functors.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Fuzzy.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Fuzzy.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Fuzzy.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Fuzzy.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GeneralProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GeneralProduct.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GeneralProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GeneralProduct.h index 29ac522d..5744eb71 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GeneralProduct.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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; } }; diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GenericPacketMath.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GenericPacketMath.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GenericPacketMath.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GenericPacketMath.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GlobalFunctions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GlobalFunctions.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/GlobalFunctions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/GlobalFunctions.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/IO.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/IO.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/IO.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/IO.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Map.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Map.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Map.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Map.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MapBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MapBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MapBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MapBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MathFunctions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MathFunctions.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MathFunctions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MathFunctions.h index 4e17ecd4..dc2c698e 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MathFunctions.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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 { diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Matrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Matrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Matrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Matrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MatrixBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MatrixBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/MatrixBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/MatrixBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NestByValue.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NestByValue.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NestByValue.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NestByValue.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NoAlias.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NoAlias.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NoAlias.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NoAlias.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NumTraits.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NumTraits.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/NumTraits.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/NumTraits.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PermutationMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/PermutationMatrix.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PermutationMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/PermutationMatrix.h index 85ffae26..bda79fa0 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PermutationMatrix.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PlainObjectBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/PlainObjectBase.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PlainObjectBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/PlainObjectBase.h index a4e4af4a..9f71956f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/PlainObjectBase.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ProductBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ProductBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ProductBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ProductBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Random.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Random.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Random.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Random.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Redux.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Redux.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Redux.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Redux.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Ref.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Ref.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Ref.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Ref.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Replicate.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Replicate.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Replicate.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Replicate.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ReturnByValue.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ReturnByValue.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/ReturnByValue.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/ReturnByValue.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Reverse.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Reverse.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Reverse.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Reverse.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Select.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Select.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Select.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Select.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SelfAdjointView.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SelfAdjointView.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SelfAdjointView.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SelfAdjointView.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SelfCwiseBinaryOp.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SelfCwiseBinaryOp.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SelfCwiseBinaryOp.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SelfCwiseBinaryOp.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SolveTriangular.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SolveTriangular.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SolveTriangular.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SolveTriangular.h index 83565ddd..30c9c38e 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/SolveTriangular.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/SolveTriangular.h @@ -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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/StableNorm.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/StableNorm.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/StableNorm.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/StableNorm.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Stride.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Stride.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Stride.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Stride.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Swap.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Swap.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Swap.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Swap.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpose.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Transpose.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpose.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Transpose.h index 22096ea2..2abce3c6 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpose.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpositions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Transpositions.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpositions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/Transpositions.h index e4ba0756..16bc1ce1 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/Transpositions.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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:k0 ? 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; diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/products/TriangularSolverVector.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/products/TriangularSolverVector.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/products/TriangularSolverVector.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/products/TriangularSolverVector.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/BlasUtil.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/BlasUtil.h similarity index 88% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/BlasUtil.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/BlasUtil.h index a28f16fa..9d03af31 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/BlasUtil.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/BlasUtil.h @@ -171,12 +171,13 @@ template 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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/ForwardDeclarations.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/ForwardDeclarations.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/ForwardDeclarations.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/ForwardDeclarations.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/MKL_support.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/MKL_support.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/MKL_support.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/MKL_support.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Macros.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Macros.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Macros.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Macros.h index e0d90eb8..16c248c6 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Macros.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Macros.h @@ -13,7 +13,7 @@ #define EIGEN_WORLD_VERSION 3 #define EIGEN_MAJOR_VERSION 2 -#define EIGEN_MINOR_VERSION 8 +#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 && \ diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Memory.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Memory.h similarity index 94% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Memory.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Memory.h index bc1ea69e..ffa7e34f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Memory.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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) *** *****************************************************************************/ @@ -655,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; - - template - struct rebind - { - typedef aligned_allocator other; - }; - - pointer address( reference value ) const - { - return &value; - } - - const_pointer address( const_reference value ) const - { - return &value; - } - - aligned_allocator() - { - } - - aligned_allocator( const aligned_allocator& ) - { - } - - template - aligned_allocator( const aligned_allocator& ) - { - } - - ~aligned_allocator() - { - } - - size_type max_size() const - { - return (std::numeric_limits::max)(); - } + 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; + }; - 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) ) ); - } + aligned_allocator() : std::allocator() {} - void construct( pointer p, const T& value ) - { - ::new( p ) T( value ); - } + aligned_allocator(const aligned_allocator& other) : std::allocator(other) {} - void destroy( pointer p ) - { - p->~T(); - } + template + aligned_allocator(const aligned_allocator& other) : std::allocator(other) {} - void deallocate( pointer p, size_type /*num*/ ) - { - internal::aligned_free( p ); - } + ~aligned_allocator() {} - bool operator!=(const aligned_allocator& ) const - { return false; } + pointer allocate(size_type num, const void* /*hint*/ = 0) + { + internal::check_size_for_overflow(num); + return static_cast( internal::aligned_malloc(num * sizeof(T)) ); + } - bool operator==(const aligned_allocator& ) const - { return true; } + void deallocate(pointer p, size_type /*num*/) + { + internal::aligned_free(p); + } }; //---------- Cache sizes ---------- diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Meta.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Meta.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/Meta.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/Meta.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/NonMPL2.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/NonMPL2.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/NonMPL2.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/NonMPL2.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/ReenableStupidWarnings.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/ReenableStupidWarnings.h similarity index 81% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/ReenableStupidWarnings.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/ReenableStupidWarnings.h index 5ddfbd4a..d573bbd4 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/ReenableStupidWarnings.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/StaticAssert.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/StaticAssert.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/StaticAssert.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/StaticAssert.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/XprHelper.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/XprHelper.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Core/util/XprHelper.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Core/util/XprHelper.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Block.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Block.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Block.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Block.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Cwise.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Cwise.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Cwise.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Cwise.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/CwiseOperators.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/CwiseOperators.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/CwiseOperators.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/CwiseOperators.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/AlignedBox.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/AlignedBox.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/AlignedBox.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/AlignedBox.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/All.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/All.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/All.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/All.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/AngleAxis.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/AngleAxis.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/AngleAxis.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/AngleAxis.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Hyperplane.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Hyperplane.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Hyperplane.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Hyperplane.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Quaternion.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Quaternion.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Quaternion.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Quaternion.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Rotation2D.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Rotation2D.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Rotation2D.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Rotation2D.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/RotationBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/RotationBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/RotationBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/RotationBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Scaling.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Scaling.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Scaling.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Scaling.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Transform.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Transform.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Transform.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Transform.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Translation.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Translation.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Geometry/Translation.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Geometry/Translation.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/LU.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/LU.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/LU.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/LU.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Lazy.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Lazy.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Lazy.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Lazy.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/LeastSquares.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/LeastSquares.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/LeastSquares.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/LeastSquares.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Macros.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Macros.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Macros.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Macros.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/MathFunctions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/MathFunctions.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/MathFunctions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/MathFunctions.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Memory.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Memory.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Memory.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Memory.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Meta.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Meta.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Meta.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Meta.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Minor.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Minor.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/Minor.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/Minor.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/QR.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/QR.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/QR.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/QR.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/SVD.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/SVD.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/SVD.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/SVD.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/TriangularSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/TriangularSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/TriangularSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/TriangularSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/VectorBlock.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/VectorBlock.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigen2Support/VectorBlock.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigen2Support/VectorBlock.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexEigenSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexEigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexEigenSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexSchur.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexSchur.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexSchur.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexSchur.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexSchur_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexSchur_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/ComplexSchur_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/ComplexSchur_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/EigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/EigenSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/EigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/EigenSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h similarity index 88% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h index 956e80d9..e5131d20 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/HessenbergDecomposition.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/HessenbergDecomposition.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/HessenbergDecomposition.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealQZ.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealQZ.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealQZ.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealQZ.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealSchur.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealSchur.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealSchur.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealSchur.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealSchur_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealSchur_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/RealSchur_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/RealSchur_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/Tridiagonalization.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/Tridiagonalization.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/Tridiagonalization.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Eigenvalues/Tridiagonalization.h index 192278d6..a63c08ae 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Eigenvalues/Tridiagonalization.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/AlignedBox.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/AlignedBox.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/AlignedBox.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/AlignedBox.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/AngleAxis.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/AngleAxis.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/AngleAxis.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/AngleAxis.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/EulerAngles.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/EulerAngles.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/EulerAngles.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/EulerAngles.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Homogeneous.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Homogeneous.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Homogeneous.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Homogeneous.h index 372e422b..820ac96f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Homogeneous.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Hyperplane.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Hyperplane.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Hyperplane.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Hyperplane.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/OrthoMethods.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/OrthoMethods.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/OrthoMethods.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/OrthoMethods.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/ParametrizedLine.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/ParametrizedLine.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/ParametrizedLine.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/ParametrizedLine.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Quaternion.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Quaternion.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Quaternion.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Quaternion.h index 25ed17bb..e89ba80b 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Quaternion.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Quaternion.h @@ -276,7 +276,7 @@ class Quaternion : public QuaternionBase > 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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Rotation2D.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Rotation2D.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Rotation2D.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Rotation2D.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/RotationBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/RotationBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/RotationBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/RotationBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Scaling.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Scaling.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Scaling.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Scaling.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Transform.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Transform.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Transform.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Transform.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Translation.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Translation.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Translation.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Translation.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Umeyama.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Umeyama.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/Umeyama.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/Umeyama.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/arch/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/arch/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/arch/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/arch/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/arch/Geometry_SSE.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/arch/Geometry_SSE.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Geometry/arch/Geometry_SSE.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Geometry/arch/Geometry_SSE.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/BlockHouseholder.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/BlockHouseholder.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/BlockHouseholder.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/BlockHouseholder.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/Householder.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/Householder.h similarity index 97% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/Householder.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/Householder.h index 32112af9..4c1f499a 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/Householder.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/HouseholderSequence.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/HouseholderSequence.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/HouseholderSequence.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Householder/HouseholderSequence.h index d800ca1f..aea2439a 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Householder/HouseholderSequence.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Jacobi/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Jacobi/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Jacobi/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Jacobi/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Jacobi/Jacobi.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Jacobi/Jacobi.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/Jacobi/Jacobi.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/Jacobi/Jacobi.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/Determinant.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/Determinant.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/Determinant.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/Determinant.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/FullPivLU.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/FullPivLU.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/FullPivLU.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/FullPivLU.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/Inverse.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/Inverse.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/Inverse.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/Inverse.h index 3cf88719..e836fd69 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/Inverse.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/PartialPivLU.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/PartialPivLU.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/PartialPivLU.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/PartialPivLU.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/PartialPivLU_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/PartialPivLU_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/PartialPivLU_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/PartialPivLU_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/arch/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/arch/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/arch/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/arch/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/arch/Inverse_SSE.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/arch/Inverse_SSE.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/LU/arch/Inverse_SSE.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/LU/arch/Inverse_SSE.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/MetisSupport/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/MetisSupport/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/MetisSupport/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/MetisSupport/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/MetisSupport/MetisSupport.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/MetisSupport/MetisSupport.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/MetisSupport/MetisSupport.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/MetisSupport/MetisSupport.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Amd.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Amd.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Amd.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Amd.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Eigen_Colamd.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Eigen_Colamd.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Eigen_Colamd.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Eigen_Colamd.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Ordering.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Ordering.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/OrderingMethods/Ordering.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/OrderingMethods/Ordering.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PaStiXSupport/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PaStiXSupport/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PaStiXSupport/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PaStiXSupport/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PaStiXSupport/PaStiXSupport.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PaStiXSupport/PaStiXSupport.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PaStiXSupport/PaStiXSupport.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PaStiXSupport/PaStiXSupport.h index a955287d..20acc022 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PaStiXSupport/PaStiXSupport.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PardisoSupport/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PardisoSupport/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PardisoSupport/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PardisoSupport/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PardisoSupport/PardisoSupport.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PardisoSupport/PardisoSupport.h similarity index 95% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PardisoSupport/PardisoSupport.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/PardisoSupport/PardisoSupport.h index 18cd7d88..0faacc5f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/PardisoSupport/PardisoSupport.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/ColPivHouseholderQR.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/ColPivHouseholderQR.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/ColPivHouseholderQR.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/ColPivHouseholderQR.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/ColPivHouseholderQR_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/ColPivHouseholderQR_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/ColPivHouseholderQR_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/ColPivHouseholderQR_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/FullPivHouseholderQR.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/FullPivHouseholderQR.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/FullPivHouseholderQR.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/FullPivHouseholderQR.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/HouseholderQR.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/HouseholderQR.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/HouseholderQR.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/HouseholderQR.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/HouseholderQR_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/HouseholderQR_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/QR/HouseholderQR_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/QR/HouseholderQR_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SPQRSupport/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SPQRSupport/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SPQRSupport/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SPQRSupport/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/JacobiSVD.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/JacobiSVD.h similarity index 92% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/JacobiSVD.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/JacobiSVD.h index 89ace381..7a5821d4 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/JacobiSVD.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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 @@ -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); - - // 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); + // 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()); + + 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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/JacobiSVD_MKL.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/JacobiSVD_MKL.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/JacobiSVD_MKL.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/JacobiSVD_MKL.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/UpperBidiagonalization.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/UpperBidiagonalization.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SVD/UpperBidiagonalization.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SVD/UpperBidiagonalization.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/SimplicialCholesky.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/SimplicialCholesky.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/SimplicialCholesky.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/SimplicialCholesky.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/AmbiVector.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/AmbiVector.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/AmbiVector.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/AmbiVector.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/CompressedStorage.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/CompressedStorage.h similarity index 94% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/CompressedStorage.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/CompressedStorage.h index a667cb56..34cad3df 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/CompressedStorage.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/MappedSparseMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/MappedSparseMatrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/MappedSparseMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/MappedSparseMatrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseBlock.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseBlock.h similarity index 93% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseBlock.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseBlock.h index 4f498350..a1151309 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseBlock.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseBlock.h @@ -1,539 +1,538 @@ -// This file is part of Eigen, a lightweight C++ template library -// for linear algebra. -// -// Copyright (C) 2008-2009 Gael Guennebaud -// -// 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/. - -#ifndef EIGEN_SPARSE_BLOCK_H -#define EIGEN_SPARSE_BLOCK_H - -namespace Eigen { - -template -class BlockImpl - : public SparseMatrixBase > -{ - typedef typename internal::remove_all::type _MatrixTypeNested; - typedef Block BlockType; -public: - enum { IsRowMajor = internal::traits::IsRowMajor }; -protected: - enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; -public: - EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) - - class InnerIterator: public XprType::InnerIterator - { - typedef typename BlockImpl::Index Index; - public: - inline InnerIterator(const BlockType& xpr, Index outer) - : XprType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - class ReverseInnerIterator: public XprType::ReverseInnerIterator - { - typedef typename BlockImpl::Index Index; - public: - inline ReverseInnerIterator(const BlockType& xpr, Index outer) - : XprType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - - inline BlockImpl(const XprType& xpr, int i) - : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) - {} - - inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols) - : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) - {} - - inline const Scalar coeff(int row, int col) const - { - return m_matrix.coeff(row + IsRowMajor ? m_outerStart : 0, col +IsRowMajor ? 0 : m_outerStart); - } - - inline const Scalar coeff(int index) const - { - return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); - } - - EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } - EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } - - protected: - - typename XprType::Nested m_matrix; - Index m_outerStart; - const internal::variable_if_dynamic m_outerSize; - - EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) - private: - Index nonZeros() const; -}; - - -/*************************************************************************** -* specialisation for SparseMatrix -***************************************************************************/ - -template -class BlockImpl,BlockRows,BlockCols,true,Sparse> - : public SparseMatrixBase,BlockRows,BlockCols,true> > -{ - typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType; - typedef typename internal::remove_all::type _MatrixTypeNested; - typedef Block BlockType; - typedef Block ConstBlockType; -public: - enum { IsRowMajor = internal::traits::IsRowMajor }; - EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) -protected: - enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; -public: - - class InnerIterator: public SparseMatrixType::InnerIterator - { - public: - inline InnerIterator(const BlockType& xpr, Index outer) - : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator - { - public: - inline ReverseInnerIterator(const BlockType& xpr, Index outer) - : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - - inline BlockImpl(const SparseMatrixType& xpr, int i) - : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) - {} - - inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols) - : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) - {} - - template - inline BlockType& operator=(const SparseMatrixBase& other) - { - typedef typename internal::remove_all::type _NestedMatrixType; - _NestedMatrixType& matrix = const_cast<_NestedMatrixType&>(m_matrix);; - // This assignement is slow if this vector set is not empty - // and/or it is not at the end of the nonzeros of the underlying matrix. - - // 1 - eval to a temporary to avoid transposition and/or aliasing issues - SparseMatrix tmp(other); - - // 2 - let's check whether there is enough allocated memory - Index nnz = tmp.nonZeros(); - Index start = m_outerStart==0 ? 0 : matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block - Index end = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending posiiton of the current block - Index block_size = end - start; // available room in the current block - Index tail_size = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end; - - Index free_size = m_matrix.isCompressed() - ? Index(matrix.data().allocatedSize()) + block_size - : block_size; - - if(nnz>free_size) - { - // 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.value(start), &tmp.data().value(0), nnz*sizeof(Scalar)); - std::memcpy(&newdata.index(start), &tmp.data().index(0), 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)); - - newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz); - - matrix.data().swap(newdata); - } - else - { - // 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::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)); - } - - // update innerNonZeros - if(!m_matrix.isCompressed()) - for(Index j=0; j(other); - } - - inline const Scalar* valuePtr() const - { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - inline Scalar* valuePtr() - { return m_matrix.const_cast_derived().valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - - inline const Index* innerIndexPtr() const - { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - inline Index* innerIndexPtr() - { return m_matrix.const_cast_derived().innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - - inline const Index* outerIndexPtr() const - { return m_matrix.outerIndexPtr() + m_outerStart; } - inline Index* outerIndexPtr() - { return m_matrix.const_cast_derived().outerIndexPtr() + m_outerStart; } - - Index nonZeros() const - { - if(m_matrix.isCompressed()) - return std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]) - - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]); - else if(m_outerSize.value()==0) - return 0; - else - return Map >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum(); - } - - inline Scalar& coeffRef(int row, int col) - { - return m_matrix.const_cast_derived().coeffRef(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); - } - - inline const Scalar coeff(int row, int col) const - { - return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); - } - - inline const Scalar coeff(int index) const - { - return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); - } - - const Scalar& lastCoeff() const - { - EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl); - eigen_assert(nonZeros()>0); - if(m_matrix.isCompressed()) - return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1]; - else - return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1]; - } - - EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } - EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } - - protected: - - typename SparseMatrixType::Nested m_matrix; - Index m_outerStart; - const internal::variable_if_dynamic m_outerSize; - -}; - - -template -class BlockImpl,BlockRows,BlockCols,true,Sparse> - : public SparseMatrixBase,BlockRows,BlockCols,true> > -{ - typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType; - typedef typename internal::remove_all::type _MatrixTypeNested; - typedef Block BlockType; -public: - enum { IsRowMajor = internal::traits::IsRowMajor }; - EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) -protected: - enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; -public: - - class InnerIterator: public SparseMatrixType::InnerIterator - { - public: - inline InnerIterator(const BlockType& xpr, Index outer) - : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator - { - public: - inline ReverseInnerIterator(const BlockType& xpr, Index outer) - : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) - {} - inline Index row() const { return IsRowMajor ? m_outer : this->index(); } - inline Index col() const { return IsRowMajor ? this->index() : m_outer; } - protected: - Index m_outer; - }; - - inline BlockImpl(const SparseMatrixType& xpr, int i) - : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) - {} - - inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols) - : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) - {} - - inline const Scalar* valuePtr() const - { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - - inline const Index* innerIndexPtr() const - { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } - - inline const Index* outerIndexPtr() const - { return m_matrix.outerIndexPtr() + m_outerStart; } - - Index nonZeros() const - { - if(m_matrix.isCompressed()) - return std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]) - - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]); - else if(m_outerSize.value()==0) - return 0; - else - return Map >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum(); - } - - inline const Scalar coeff(int row, int col) const - { - return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); - } - - inline const Scalar coeff(int index) const - { - return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); - } - - const Scalar& lastCoeff() const - { - EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl); - eigen_assert(nonZeros()>0); - if(m_matrix.isCompressed()) - return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1]; - else - return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1]; - } - - EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } - EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } - - protected: - - EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) - - typename SparseMatrixType::Nested m_matrix; - Index m_outerStart; - const internal::variable_if_dynamic m_outerSize; -}; - -//---------- - -/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this - * is col-major (resp. row-major). - */ -template -typename SparseMatrixBase::InnerVectorReturnType SparseMatrixBase::innerVector(Index outer) -{ return InnerVectorReturnType(derived(), outer); } - -/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this - * is col-major (resp. row-major). Read-only. - */ -template -const typename SparseMatrixBase::ConstInnerVectorReturnType SparseMatrixBase::innerVector(Index outer) const -{ return ConstInnerVectorReturnType(derived(), outer); } - -/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this - * is col-major (resp. row-major). - */ -template -typename SparseMatrixBase::InnerVectorsReturnType -SparseMatrixBase::innerVectors(Index outerStart, Index outerSize) -{ - return Block(derived(), - IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart, - IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize); - -} - -/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this - * is col-major (resp. row-major). Read-only. - */ -template -const typename SparseMatrixBase::ConstInnerVectorsReturnType -SparseMatrixBase::innerVectors(Index outerStart, Index outerSize) const -{ - return Block(derived(), - IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart, - IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize); - -} - -/** Generic implementation of sparse Block expression. - * Real-only. - */ -template -class BlockImpl - : public SparseMatrixBase >, internal::no_assignment_operator -{ - typedef typename internal::remove_all::type _MatrixTypeNested; - typedef Block BlockType; -public: - enum { IsRowMajor = internal::traits::IsRowMajor }; - EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) - - /** Column or Row constructor - */ - inline BlockImpl(const XprType& xpr, int i) - : m_matrix(xpr), - m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0), - m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0), - m_blockRows(BlockRows==1 ? 1 : xpr.rows()), - m_blockCols(BlockCols==1 ? 1 : xpr.cols()) - {} - - /** Dynamic-size constructor - */ - inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols) - : m_matrix(xpr), m_startRow(startRow), m_startCol(startCol), m_blockRows(blockRows), m_blockCols(blockCols) - {} - - inline int rows() const { return m_blockRows.value(); } - inline int cols() const { return m_blockCols.value(); } - - inline Scalar& coeffRef(int row, int col) - { - return m_matrix.const_cast_derived() - .coeffRef(row + m_startRow.value(), col + m_startCol.value()); - } - - inline const Scalar coeff(int row, int col) const - { - return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value()); - } - - inline Scalar& coeffRef(int index) - { - return m_matrix.const_cast_derived() - .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index), - m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0)); - } - - inline const Scalar coeff(int index) const - { - return m_matrix - .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index), - m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0)); - } - - inline const _MatrixTypeNested& nestedExpression() const { return m_matrix; } - - class InnerIterator : public _MatrixTypeNested::InnerIterator - { - typedef typename _MatrixTypeNested::InnerIterator Base; - const BlockType& m_block; - Index m_end; - public: - - EIGEN_STRONG_INLINE InnerIterator(const BlockType& block, Index outer) - : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())), - m_block(block), - m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value()) - { - while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) ) - Base::operator++(); - } - - inline Index index() const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); } - inline Index outer() const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); } - inline Index row() const { return Base::row() - m_block.m_startRow.value(); } - inline Index col() const { return Base::col() - m_block.m_startCol.value(); } - - inline operator bool() const { return Base::operator bool() && Base::index() < m_end; } - }; - class ReverseInnerIterator : public _MatrixTypeNested::ReverseInnerIterator - { - typedef typename _MatrixTypeNested::ReverseInnerIterator Base; - const BlockType& m_block; - Index m_begin; - public: - - EIGEN_STRONG_INLINE ReverseInnerIterator(const BlockType& block, Index outer) - : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())), - m_block(block), - m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value()) - { - while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) ) - Base::operator--(); - } - - inline Index index() const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); } - inline Index outer() const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); } - inline Index row() const { return Base::row() - m_block.m_startRow.value(); } - inline Index col() const { return Base::col() - m_block.m_startCol.value(); } - - inline operator bool() const { return Base::operator bool() && Base::index() >= m_begin; } - }; - protected: - friend class InnerIterator; - friend class ReverseInnerIterator; - - EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) - - typename XprType::Nested m_matrix; - const internal::variable_if_dynamic m_startRow; - 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 - +// This file is part of Eigen, a lightweight C++ template library +// for linear algebra. +// +// Copyright (C) 2008-2009 Gael Guennebaud +// +// 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/. + +#ifndef EIGEN_SPARSE_BLOCK_H +#define EIGEN_SPARSE_BLOCK_H + +namespace Eigen { + +template +class BlockImpl + : public SparseMatrixBase > +{ + typedef typename internal::remove_all::type _MatrixTypeNested; + typedef Block BlockType; +public: + enum { IsRowMajor = internal::traits::IsRowMajor }; +protected: + enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; +public: + EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) + + class InnerIterator: public XprType::InnerIterator + { + typedef typename BlockImpl::Index Index; + public: + inline InnerIterator(const BlockType& xpr, Index outer) + : XprType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + class ReverseInnerIterator: public XprType::ReverseInnerIterator + { + typedef typename BlockImpl::Index Index; + public: + inline ReverseInnerIterator(const BlockType& xpr, Index outer) + : XprType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + + inline BlockImpl(const XprType& xpr, int i) + : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) + {} + + inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols) + : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) + {} + + inline const Scalar coeff(int row, int col) const + { + return m_matrix.coeff(row + IsRowMajor ? m_outerStart : 0, col +IsRowMajor ? 0 : m_outerStart); + } + + inline const Scalar coeff(int index) const + { + return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); + } + + EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } + EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } + + protected: + + typename XprType::Nested m_matrix; + Index m_outerStart; + const internal::variable_if_dynamic m_outerSize; + + EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) + private: + Index nonZeros() const; +}; + + +/*************************************************************************** +* specialisation for SparseMatrix +***************************************************************************/ + +template +class BlockImpl,BlockRows,BlockCols,true,Sparse> + : public SparseMatrixBase,BlockRows,BlockCols,true> > +{ + typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType; + typedef typename internal::remove_all::type _MatrixTypeNested; + typedef Block BlockType; + typedef Block ConstBlockType; +public: + enum { IsRowMajor = internal::traits::IsRowMajor }; + EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) +protected: + enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; +public: + + class InnerIterator: public SparseMatrixType::InnerIterator + { + public: + inline InnerIterator(const BlockType& xpr, Index outer) + : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator + { + public: + inline ReverseInnerIterator(const BlockType& xpr, Index outer) + : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + + inline BlockImpl(const SparseMatrixType& xpr, int i) + : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) + {} + + inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols) + : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) + {} + + template + inline BlockType& operator=(const SparseMatrixBase& other) + { + typedef typename internal::remove_all::type _NestedMatrixType; + _NestedMatrixType& matrix = const_cast<_NestedMatrixType&>(m_matrix);; + // This assignement is slow if this vector set is not empty + // and/or it is not at the end of the nonzeros of the underlying matrix. + + // 1 - eval to a temporary to avoid transposition and/or aliasing issues + SparseMatrix tmp(other); + + // 2 - let's check whether there is enough allocated memory + Index nnz = tmp.nonZeros(); + Index start = m_outerStart==0 ? 0 : matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block + Index end = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending posiiton of the current block + Index block_size = end - start; // available room in the current block + Index tail_size = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end; + + Index free_size = m_matrix.isCompressed() + ? Index(matrix.data().allocatedSize()) + block_size + : block_size; + + if(nnz>free_size) + { + // realloc manually to reduce copies + typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz); + + 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.valuePtr() + start, tmp.data().valuePtr(), nnz*sizeof(Scalar)); + std::memcpy(newdata.indexPtr() + start, tmp.data().indexPtr(), nnz*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); + + matrix.data().swap(newdata); + } + else + { + // 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().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().valuePtr()+start, tmp.data().valuePtr(), nnz*sizeof(Scalar)); + std::memcpy(matrix.data().indexPtr()+start, tmp.data().indexPtr(), nnz*sizeof(Index)); + } + + // update innerNonZeros + if(!m_matrix.isCompressed()) + for(Index j=0; j(other); + } + + inline const Scalar* valuePtr() const + { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + inline Scalar* valuePtr() + { return m_matrix.const_cast_derived().valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + + inline const Index* innerIndexPtr() const + { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + inline Index* innerIndexPtr() + { return m_matrix.const_cast_derived().innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + + inline const Index* outerIndexPtr() const + { return m_matrix.outerIndexPtr() + m_outerStart; } + inline Index* outerIndexPtr() + { return m_matrix.const_cast_derived().outerIndexPtr() + m_outerStart; } + + Index nonZeros() const + { + if(m_matrix.isCompressed()) + return std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]) + - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]); + else if(m_outerSize.value()==0) + return 0; + else + return Map >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum(); + } + + inline Scalar& coeffRef(int row, int col) + { + return m_matrix.const_cast_derived().coeffRef(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); + } + + inline const Scalar coeff(int row, int col) const + { + return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); + } + + inline const Scalar coeff(int index) const + { + return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); + } + + const Scalar& lastCoeff() const + { + EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl); + eigen_assert(nonZeros()>0); + if(m_matrix.isCompressed()) + return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1]; + else + return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1]; + } + + EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } + EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } + + protected: + + typename SparseMatrixType::Nested m_matrix; + Index m_outerStart; + const internal::variable_if_dynamic m_outerSize; + +}; + + +template +class BlockImpl,BlockRows,BlockCols,true,Sparse> + : public SparseMatrixBase,BlockRows,BlockCols,true> > +{ + typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType; + typedef typename internal::remove_all::type _MatrixTypeNested; + typedef Block BlockType; +public: + enum { IsRowMajor = internal::traits::IsRowMajor }; + EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) +protected: + enum { OuterSize = IsRowMajor ? BlockRows : BlockCols }; +public: + + class InnerIterator: public SparseMatrixType::InnerIterator + { + public: + inline InnerIterator(const BlockType& xpr, Index outer) + : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator + { + public: + inline ReverseInnerIterator(const BlockType& xpr, Index outer) + : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer) + {} + inline Index row() const { return IsRowMajor ? m_outer : this->index(); } + inline Index col() const { return IsRowMajor ? this->index() : m_outer; } + protected: + Index m_outer; + }; + + inline BlockImpl(const SparseMatrixType& xpr, int i) + : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize) + {} + + inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols) + : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols) + {} + + inline const Scalar* valuePtr() const + { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + + inline const Index* innerIndexPtr() const + { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; } + + inline const Index* outerIndexPtr() const + { return m_matrix.outerIndexPtr() + m_outerStart; } + + Index nonZeros() const + { + if(m_matrix.isCompressed()) + return std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]) + - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]); + else if(m_outerSize.value()==0) + return 0; + else + return Map >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum(); + } + + inline const Scalar coeff(int row, int col) const + { + return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart)); + } + + inline const Scalar coeff(int index) const + { + return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart); + } + + const Scalar& lastCoeff() const + { + EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl); + eigen_assert(nonZeros()>0); + if(m_matrix.isCompressed()) + return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1]; + else + return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1]; + } + + EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); } + EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); } + + protected: + + EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) + + typename SparseMatrixType::Nested m_matrix; + Index m_outerStart; + const internal::variable_if_dynamic m_outerSize; +}; + +//---------- + +/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this + * is col-major (resp. row-major). + */ +template +typename SparseMatrixBase::InnerVectorReturnType SparseMatrixBase::innerVector(Index outer) +{ return InnerVectorReturnType(derived(), outer); } + +/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this + * is col-major (resp. row-major). Read-only. + */ +template +const typename SparseMatrixBase::ConstInnerVectorReturnType SparseMatrixBase::innerVector(Index outer) const +{ return ConstInnerVectorReturnType(derived(), outer); } + +/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this + * is col-major (resp. row-major). + */ +template +typename SparseMatrixBase::InnerVectorsReturnType +SparseMatrixBase::innerVectors(Index outerStart, Index outerSize) +{ + return Block(derived(), + IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart, + IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize); + +} + +/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this + * is col-major (resp. row-major). Read-only. + */ +template +const typename SparseMatrixBase::ConstInnerVectorsReturnType +SparseMatrixBase::innerVectors(Index outerStart, Index outerSize) const +{ + return Block(derived(), + IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart, + IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize); + +} + +/** Generic implementation of sparse Block expression. + * Real-only. + */ +template +class BlockImpl + : public SparseMatrixBase >, internal::no_assignment_operator +{ + typedef typename internal::remove_all::type _MatrixTypeNested; + typedef Block BlockType; +public: + enum { IsRowMajor = internal::traits::IsRowMajor }; + EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType) + + /** Column or Row constructor + */ + inline BlockImpl(const XprType& xpr, int i) + : m_matrix(xpr), + m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0), + m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0), + m_blockRows(BlockRows==1 ? 1 : xpr.rows()), + m_blockCols(BlockCols==1 ? 1 : xpr.cols()) + {} + + /** Dynamic-size constructor + */ + inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols) + : m_matrix(xpr), m_startRow(startRow), m_startCol(startCol), m_blockRows(blockRows), m_blockCols(blockCols) + {} + + inline int rows() const { return m_blockRows.value(); } + inline int cols() const { return m_blockCols.value(); } + + inline Scalar& coeffRef(int row, int col) + { + return m_matrix.const_cast_derived() + .coeffRef(row + m_startRow.value(), col + m_startCol.value()); + } + + inline const Scalar coeff(int row, int col) const + { + return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value()); + } + + inline Scalar& coeffRef(int index) + { + return m_matrix.const_cast_derived() + .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index), + m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0)); + } + + inline const Scalar coeff(int index) const + { + return m_matrix + .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index), + m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0)); + } + + inline const _MatrixTypeNested& nestedExpression() const { return m_matrix; } + + class InnerIterator : public _MatrixTypeNested::InnerIterator + { + typedef typename _MatrixTypeNested::InnerIterator Base; + const BlockType& m_block; + Index m_end; + public: + + EIGEN_STRONG_INLINE InnerIterator(const BlockType& block, Index outer) + : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())), + m_block(block), + m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value()) + { + while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) ) + Base::operator++(); + } + + inline Index index() const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); } + inline Index outer() const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); } + inline Index row() const { return Base::row() - m_block.m_startRow.value(); } + inline Index col() const { return Base::col() - m_block.m_startCol.value(); } + + inline operator bool() const { return Base::operator bool() && Base::index() < m_end; } + }; + class ReverseInnerIterator : public _MatrixTypeNested::ReverseInnerIterator + { + typedef typename _MatrixTypeNested::ReverseInnerIterator Base; + const BlockType& m_block; + Index m_begin; + public: + + EIGEN_STRONG_INLINE ReverseInnerIterator(const BlockType& block, Index outer) + : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())), + m_block(block), + m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value()) + { + while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) ) + Base::operator--(); + } + + inline Index index() const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); } + inline Index outer() const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); } + inline Index row() const { return Base::row() - m_block.m_startRow.value(); } + inline Index col() const { return Base::col() - m_block.m_startCol.value(); } + + inline operator bool() const { return Base::operator bool() && Base::index() >= m_begin; } + }; + protected: + friend class InnerIterator; + friend class ReverseInnerIterator; + + EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl) + + typename XprType::Nested m_matrix; + const internal::variable_if_dynamic m_startRow; + 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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseColEtree.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseColEtree.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseColEtree.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseColEtree.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseCwiseBinaryOp.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseCwiseBinaryOp.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseCwiseBinaryOp.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseCwiseUnaryOp.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseCwiseUnaryOp.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseCwiseUnaryOp.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDenseProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDenseProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDenseProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDenseProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDiagonalProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDiagonalProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDiagonalProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDiagonalProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDot.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDot.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseDot.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseDot.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseFuzzy.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseFuzzy.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseFuzzy.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseFuzzy.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseMatrix.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseMatrix.h index 2ff20155..3b8946a9 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrix.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrixBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseMatrixBase.h similarity index 99% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrixBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseMatrixBase.h index 9341d9ad..6f4a47cf 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseMatrixBase.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparsePermutation.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparsePermutation.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparsePermutation.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparsePermutation.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseRedux.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseRedux.h similarity index 86% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseRedux.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseRedux.h index f3da93a7..51ed9aeb 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseRedux.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseSelfAdjointView.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseSelfAdjointView.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseSelfAdjointView.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseSelfAdjointView.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseSparseProductWithPruning.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/Eigen/src/SparseCore/SparseSparseProductWithPruning.h index fcc18f5c..55b84a4e 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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 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/src/thirdParty/eigen-eigen-07105f7124f9/test/geo_hyperplane.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_hyperplane.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/geo_hyperplane.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_hyperplane.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/geo_orthomethods.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_orthomethods.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/geo_orthomethods.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_orthomethods.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/geo_parametrizedline.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_parametrizedline.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/geo_parametrizedline.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_parametrizedline.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/geo_quaternion.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_quaternion.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/geo_quaternion.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_quaternion.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/geo_transformations.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_transformations.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/geo_transformations.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/geo_transformations.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/hessenberg.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/hessenberg.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/hessenberg.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/hessenberg.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/householder.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/householder.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/householder.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/householder.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/integer_types.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/integer_types.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/integer_types.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/integer_types.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/inverse.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/inverse.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/inverse.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/inverse.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/jacobi.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/jacobi.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/jacobi.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/jacobi.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/jacobisvd.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/jacobisvd.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/jacobisvd.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/jacobisvd.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/linearstructure.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/linearstructure.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/linearstructure.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/linearstructure.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/lu.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/lu.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/lu.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/lu.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/main.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/main.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/main.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/main.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/mapped_matrix.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapped_matrix.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/mapped_matrix.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapped_matrix.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/mapstaticmethods.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapstaticmethods.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/mapstaticmethods.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapstaticmethods.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/mapstride.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapstride.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/mapstride.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mapstride.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/meta.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/meta.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/meta.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/meta.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/metis_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/metis_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/metis_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/metis_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/miscmatrices.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/miscmatrices.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/miscmatrices.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/miscmatrices.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/mixingtypes.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mixingtypes.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/mixingtypes.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mixingtypes.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/mpl2only.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mpl2only.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/mpl2only.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/mpl2only.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/nesting_ops.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nesting_ops.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/nesting_ops.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nesting_ops.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/nomalloc.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nomalloc.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/nomalloc.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nomalloc.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/nullary.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nullary.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/nullary.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/nullary.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/packetmath.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/packetmath.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/packetmath.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/packetmath.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/pardiso_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/pardiso_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/pardiso_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/pardiso_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/pastix_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/pastix_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/pastix_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/pastix_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/permutationmatrices.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/permutationmatrices.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/permutationmatrices.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/permutationmatrices.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/prec_inverse_4x4.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/prec_inverse_4x4.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/prec_inverse_4x4.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/prec_inverse_4x4.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product.h similarity index 95% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product.h index 0d054ff4..397af24a 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/test/product.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product.h @@ -178,4 +178,12 @@ template void product(const MatrixType& m) // 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/src/thirdParty/eigen-eigen-07105f7124f9/test/product_extra.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_extra.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_extra.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_extra.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_large.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_large.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_large.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_large.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_mmtr.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_mmtr.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_mmtr.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_mmtr.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_notemporary.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_notemporary.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_notemporary.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_notemporary.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_selfadjoint.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_selfadjoint.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_selfadjoint.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_selfadjoint.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_small.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_small.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_small.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_small.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_symm.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_symm.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_symm.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_symm.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_syrk.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_syrk.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_syrk.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_syrk.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_trmm.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trmm.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_trmm.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trmm.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_trmv.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trmv.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_trmv.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trmv.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/product_trsolve.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trsolve.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/product_trsolve.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/product_trsolve.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/qr.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/qr.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/qr_colpivoting.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr_colpivoting.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/qr_colpivoting.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr_colpivoting.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/qr_fullpivoting.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr_fullpivoting.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/qr_fullpivoting.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qr_fullpivoting.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/qtvector.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qtvector.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/qtvector.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/qtvector.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/real_qz.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/real_qz.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/real_qz.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/real_qz.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/redux.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/redux.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/redux.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/redux.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/ref.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/ref.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/ref.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/ref.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/resize.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/resize.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/resize.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/resize.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/runtest.sh b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/runtest.sh similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/runtest.sh rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/runtest.sh diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/rvalue_types.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/rvalue_types.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/rvalue_types.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/rvalue_types.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/schur_complex.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/schur_complex.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/schur_complex.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/schur_complex.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/schur_real.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/schur_real.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/schur_real.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/schur_real.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/selfadjoint.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/selfadjoint.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/selfadjoint.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/selfadjoint.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/simplicial_cholesky.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/simplicial_cholesky.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/simplicial_cholesky.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/simplicial_cholesky.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sizeof.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sizeof.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sizeof.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sizeof.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sizeoverflow.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sizeoverflow.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sizeoverflow.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sizeoverflow.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/smallvectors.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/smallvectors.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/smallvectors.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/smallvectors.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparseLM.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparseLM.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparseLM.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparseLM.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_basic.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_basic.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_basic.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_basic.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_permutations.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_permutations.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_permutations.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_permutations.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_product.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_product.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_product.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_product.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_solver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_solver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_solver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_solver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_solvers.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_solvers.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_solvers.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_solvers.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_vector.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_vector.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparse_vector.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparse_vector.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparselu.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparselu.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparselu.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparselu.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/sparseqr.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparseqr.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/sparseqr.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/sparseqr.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/special_numbers.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/special_numbers.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/special_numbers.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/special_numbers.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/spqr_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/spqr_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/spqr_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/spqr_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stable_norm.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stable_norm.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stable_norm.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stable_norm.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stddeque.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stddeque.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stddeque.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stddeque.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stddeque_overload.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stddeque_overload.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stddeque_overload.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stddeque_overload.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stdlist.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdlist.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stdlist.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdlist.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stdlist_overload.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdlist_overload.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stdlist_overload.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdlist_overload.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stdvector.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdvector.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stdvector.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdvector.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/stdvector_overload.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdvector_overload.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/stdvector_overload.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/stdvector_overload.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/superlu_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/superlu_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/superlu_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/superlu_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/swap.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/swap.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/swap.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/swap.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/testsuite.cmake b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/testsuite.cmake similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/testsuite.cmake rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/testsuite.cmake diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/triangular.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/triangular.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/triangular.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/triangular.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/umeyama.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/umeyama.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/umeyama.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/umeyama.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/umfpack_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/umfpack_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/umfpack_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/umfpack_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/unalignedassert.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/unalignedassert.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/unalignedassert.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/unalignedassert.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/unalignedcount.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/unalignedcount.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/unalignedcount.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/unalignedcount.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/upperbidiagonalization.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/upperbidiagonalization.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/upperbidiagonalization.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/upperbidiagonalization.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/vectorization_logic.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/vectorization_logic.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/vectorization_logic.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/vectorization_logic.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/vectorwiseop.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/vectorwiseop.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/vectorwiseop.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/vectorwiseop.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/visitor.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/visitor.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/visitor.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/visitor.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/test/zerosized.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/zerosized.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/test/zerosized.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/test/zerosized.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AdolcForward b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AdolcForward similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AdolcForward rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AdolcForward diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AlignedVector3 b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AlignedVector3 similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AlignedVector3 rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AlignedVector3 diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/ArpackSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/ArpackSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/ArpackSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/ArpackSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AutoDiff b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AutoDiff similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/AutoDiff rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/AutoDiff diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/BVH b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/BVH similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/BVH rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/BVH diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/FFT b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/FFT similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/FFT rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/FFT diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/IterativeSolvers b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/IterativeSolvers similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/IterativeSolvers rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/IterativeSolvers diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/KroneckerProduct b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/KroneckerProduct similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/KroneckerProduct rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/KroneckerProduct diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/LevenbergMarquardt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/LevenbergMarquardt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/LevenbergMarquardt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/LevenbergMarquardt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MPRealSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MPRealSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MPRealSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MPRealSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MatrixFunctions b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MatrixFunctions similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MatrixFunctions rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MatrixFunctions diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MoreVectorization b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MoreVectorization similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/MoreVectorization rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/MoreVectorization diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/NonLinearOptimization b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/NonLinearOptimization similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/NonLinearOptimization rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/NonLinearOptimization diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/NumericalDiff b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/NumericalDiff similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/NumericalDiff rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/NumericalDiff diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/OpenGLSupport b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/OpenGLSupport similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/OpenGLSupport rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/OpenGLSupport diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Polynomials b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Polynomials similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Polynomials rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Polynomials diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/SVD b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/SVD similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/SVD rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/SVD diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Skyline b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Skyline similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Skyline rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Skyline diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/SparseExtra b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/SparseExtra similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/SparseExtra rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/SparseExtra diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Splines b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Splines similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/Splines rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/Splines diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/AutoDiff/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/AutoDiff/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/BVAlgorithms.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/BVAlgorithms.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/BVAlgorithms.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/BVAlgorithms.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/KdBVH.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/KdBVH.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/BVH/KdBVH.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/BVH/KdBVH.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Eigenvalues/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/ei_fftw_impl.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/ei_fftw_impl.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/ei_fftw_impl.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/ei_fftw_impl.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/ei_kissfft_impl.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/ei_kissfft_impl.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/FFT/ei_kissfft_impl.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/FFT/ei_kissfft_impl.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/DGMRES.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/DGMRES.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/DGMRES.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/DGMRES.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/GMRES.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/GMRES.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/GMRES.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/GMRES.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IterationController.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IterationController.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/IterationController.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/IterationController.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/MINRES.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/MINRES.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/MINRES.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/MINRES.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/Scaling.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/Scaling.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/IterativeSolvers/Scaling.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/IterativeSolvers/Scaling.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/KroneckerProduct/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h similarity index 98% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h index 6825a788..88dba54f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/StemFunction.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/StemFunction.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MatrixFunctions/StemFunction.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MatrixFunctions/StemFunction.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MoreVectorization/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MoreVectorization/MathFunctions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MoreVectorization/MathFunctions.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/MoreVectorization/MathFunctions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/MoreVectorization/MathFunctions.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/chkder.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/chkder.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/chkder.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/chkder.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/covar.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/covar.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/covar.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/covar.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/dogleg.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/dogleg.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/dogleg.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/dogleg.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/lmpar.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/lmpar.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/lmpar.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/lmpar.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/r1updt.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/r1updt.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/r1updt.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/r1updt.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NumericalDiff/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/Companion.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/Companion.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/Companion.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/Companion.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/PolynomialSolver.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/PolynomialSolver.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/PolynomialSolver.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/PolynomialSolver.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/PolynomialUtils.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/PolynomialUtils.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Polynomials/PolynomialUtils.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Polynomials/PolynomialUtils.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/BDCSVD.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/BDCSVD.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/BDCSVD.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/BDCSVD.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/JacobiSVD.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/JacobiSVD.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/JacobiSVD.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/JacobiSVD.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/SVDBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/SVDBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/SVDBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/SVDBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/TODOBdcsvd.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/TODOBdcsvd.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/TODOBdcsvd.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/TODOBdcsvd.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/doneInBDCSVD.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/doneInBDCSVD.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SVD/doneInBDCSVD.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SVD/doneInBDCSVD.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineMatrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineMatrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineProduct.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineProduct.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineProduct.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineProduct.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineStorage.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineStorage.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineStorage.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineStorage.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineUtil.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineUtil.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Skyline/SkylineUtil.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Skyline/SkylineUtil.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/MarketIO.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/MarketIO.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/MarketIO.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/MarketIO.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/RandomSetter.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/RandomSetter.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/SparseExtra/RandomSetter.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/SparseExtra/RandomSetter.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/Spline.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/Spline.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/Spline.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/Spline.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/SplineFitting.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/SplineFitting.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/SplineFitting.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/SplineFitting.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/SplineFwd.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/SplineFwd.h similarity index 88% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/SplineFwd.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/Eigen/src/Splines/SplineFwd.h index 49db8d35..9ea23a9a 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/Eigen/src/Splines/SplineFwd.h +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/README.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/README.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/README.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/README.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/bench/bench_svd.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/bench/bench_svd.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/bench/bench_svd.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/bench/bench_svd.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/Overview.dox b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/Overview.dox similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/Overview.dox rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/Overview.dox diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/eigendoxy_layout.xml.in b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/eigendoxy_layout.xml.in similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/eigendoxy_layout.xml.in rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/eigendoxy_layout.xml.in diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/BVH_Example.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/BVH_Example.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/BVH_Example.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/BVH_Example.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/FFT.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/FFT.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/FFT.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/FFT.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixExponential.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixExponential.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixExponential.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixExponential.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixFunction.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixFunction.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixFunction.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixFunction.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixLogarithm.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixLogarithm.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixLogarithm.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixLogarithm.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixPower.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixPower.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixPower.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixPower.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixPower_optimal.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixPower_optimal.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixPower_optimal.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixPower_optimal.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSine.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSine.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSine.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSine.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSinh.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSinh.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSinh.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSinh.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSquareRoot.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSquareRoot.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/MatrixSquareRoot.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/MatrixSquareRoot.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/PolynomialSolver1.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/PolynomialSolver1.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/PolynomialSolver1.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/PolynomialSolver1.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/PolynomialUtils1.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/PolynomialUtils1.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/examples/PolynomialUtils1.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/examples/PolynomialUtils1.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/snippets/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/snippets/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/doc/snippets/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/doc/snippets/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/BVH.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/BVH.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/BVH.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/BVH.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/CMakeLists.txt b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/CMakeLists.txt similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/CMakeLists.txt rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/CMakeLists.txt diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/FFT.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/FFT.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/FFT.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/FFT.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/FFTW.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/FFTW.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/FFTW.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/FFTW.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/NonLinearOptimization.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/NonLinearOptimization.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/NonLinearOptimization.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/NonLinearOptimization.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/NumericalDiff.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/NumericalDiff.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/NumericalDiff.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/NumericalDiff.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/alignedvector3.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/alignedvector3.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/alignedvector3.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/alignedvector3.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/autodiff.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/autodiff.cpp similarity index 93% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/autodiff.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/autodiff.cpp index 087e7c54..7c112a1f 100644 --- a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/autodiff.cpp +++ b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/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/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/bdcsvd.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/bdcsvd.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/bdcsvd.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/bdcsvd.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/dgmres.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/dgmres.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/dgmres.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/dgmres.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/forward_adolc.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/forward_adolc.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/forward_adolc.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/forward_adolc.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/gmres.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/gmres.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/gmres.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/gmres.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/jacobisvd.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/jacobisvd.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/jacobisvd.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/jacobisvd.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/kronecker_product.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/kronecker_product.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/kronecker_product.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/kronecker_product.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/levenberg_marquardt.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/levenberg_marquardt.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/levenberg_marquardt.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/levenberg_marquardt.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_exponential.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_exponential.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_exponential.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_exponential.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_function.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_function.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_function.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_function.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_functions.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_functions.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_functions.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_functions.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_power.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_power.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_power.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_power.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_square_root.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_square_root.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/matrix_square_root.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/matrix_square_root.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/minres.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/minres.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/minres.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/minres.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/mpreal/mpreal.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/mpreal/mpreal.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/mpreal/mpreal.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/mpreal/mpreal.h diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/mpreal_support.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/mpreal_support.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/mpreal_support.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/mpreal_support.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/openglsupport.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/openglsupport.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/openglsupport.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/openglsupport.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/polynomialsolver.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/polynomialsolver.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/polynomialsolver.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/polynomialsolver.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/polynomialutils.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/polynomialutils.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/polynomialutils.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/polynomialutils.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/sparse_extra.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/sparse_extra.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/sparse_extra.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/sparse_extra.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/splines.cpp b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/splines.cpp similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/splines.cpp rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/splines.cpp diff --git a/src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/svd_common.h b/src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/svd_common.h similarity index 100% rename from src/thirdParty/eigen-eigen-07105f7124f9/unsupported/test/svd_common.h rename to src/thirdParty/eigen-eigen-dc6cfdf9bcec/unsupported/test/svd_common.h