[Bf-blender-cvs] [b19c437eff7] master: Update Eigen to 3.3.7

Sebastian Parborg noreply at git.blender.org
Wed Aug 21 14:15:07 CEST 2019


Commit: b19c437eff7f822e68244fd5a48819ebe0506c90
Author: Sebastian Parborg
Date:   Wed Aug 21 14:13:09 2019 +0200
Branches: master
https://developer.blender.org/rBb19c437eff7f822e68244fd5a48819ebe0506c90

Update Eigen to 3.3.7

This is in preparation for the QuadriFlow remesher lib.

Reviewed By: Brecht

Differential Revision: http://developer.blender.org/D5549

===================================================================

M	extern/Eigen3/Eigen/Cholesky
M	extern/Eigen3/Eigen/CholmodSupport
M	extern/Eigen3/Eigen/Core
M	extern/Eigen3/Eigen/Eigen
M	extern/Eigen3/Eigen/Eigenvalues
M	extern/Eigen3/Eigen/Geometry
M	extern/Eigen3/Eigen/Householder
M	extern/Eigen3/Eigen/IterativeLinearSolvers
M	extern/Eigen3/Eigen/Jacobi
M	extern/Eigen3/Eigen/LU
M	extern/Eigen3/Eigen/MetisSupport
M	extern/Eigen3/Eigen/OrderingMethods
M	extern/Eigen3/Eigen/PaStiXSupport
M	extern/Eigen3/Eigen/PardisoSupport
M	extern/Eigen3/Eigen/QR
M	extern/Eigen3/Eigen/QtAlignedMalloc
M	extern/Eigen3/Eigen/SPQRSupport
M	extern/Eigen3/Eigen/SVD
M	extern/Eigen3/Eigen/Sparse
M	extern/Eigen3/Eigen/SparseCholesky
M	extern/Eigen3/Eigen/SparseCore
M	extern/Eigen3/Eigen/SparseLU
M	extern/Eigen3/Eigen/SparseQR
M	extern/Eigen3/Eigen/StdDeque
M	extern/Eigen3/Eigen/StdList
M	extern/Eigen3/Eigen/StdVector
M	extern/Eigen3/Eigen/SuperLUSupport
M	extern/Eigen3/Eigen/UmfPackSupport
M	extern/Eigen3/Eigen/src/Cholesky/LDLT.h
M	extern/Eigen3/Eigen/src/Cholesky/LLT.h
A	extern/Eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
M	extern/Eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
M	extern/Eigen3/Eigen/src/Core/Array.h
M	extern/Eigen3/Eigen/src/Core/ArrayBase.h
M	extern/Eigen3/Eigen/src/Core/ArrayWrapper.h
M	extern/Eigen3/Eigen/src/Core/Assign.h
A	extern/Eigen3/Eigen/src/Core/AssignEvaluator.h
M	extern/Eigen3/Eigen/src/Core/Assign_MKL.h
M	extern/Eigen3/Eigen/src/Core/BandMatrix.h
M	extern/Eigen3/Eigen/src/Core/Block.h
M	extern/Eigen3/Eigen/src/Core/BooleanRedux.h
M	extern/Eigen3/Eigen/src/Core/CommaInitializer.h
A	extern/Eigen3/Eigen/src/Core/ConditionEstimator.h
A	extern/Eigen3/Eigen/src/Core/CoreEvaluators.h
M	extern/Eigen3/Eigen/src/Core/CoreIterators.h
M	extern/Eigen3/Eigen/src/Core/CwiseBinaryOp.h
M	extern/Eigen3/Eigen/src/Core/CwiseNullaryOp.h
A	extern/Eigen3/Eigen/src/Core/CwiseTernaryOp.h
M	extern/Eigen3/Eigen/src/Core/CwiseUnaryOp.h
M	extern/Eigen3/Eigen/src/Core/CwiseUnaryView.h
M	extern/Eigen3/Eigen/src/Core/DenseBase.h
M	extern/Eigen3/Eigen/src/Core/DenseCoeffsBase.h
M	extern/Eigen3/Eigen/src/Core/DenseStorage.h
M	extern/Eigen3/Eigen/src/Core/Diagonal.h
M	extern/Eigen3/Eigen/src/Core/DiagonalMatrix.h
M	extern/Eigen3/Eigen/src/Core/DiagonalProduct.h
M	extern/Eigen3/Eigen/src/Core/Dot.h
M	extern/Eigen3/Eigen/src/Core/EigenBase.h
M	extern/Eigen3/Eigen/src/Core/ForceAlignedAccess.h
M	extern/Eigen3/Eigen/src/Core/Fuzzy.h
M	extern/Eigen3/Eigen/src/Core/GeneralProduct.h
M	extern/Eigen3/Eigen/src/Core/GenericPacketMath.h
M	extern/Eigen3/Eigen/src/Core/GlobalFunctions.h
M	extern/Eigen3/Eigen/src/Core/IO.h
A	extern/Eigen3/Eigen/src/Core/Inverse.h
M	extern/Eigen3/Eigen/src/Core/Map.h
M	extern/Eigen3/Eigen/src/Core/MapBase.h
M	extern/Eigen3/Eigen/src/Core/MathFunctions.h
A	extern/Eigen3/Eigen/src/Core/MathFunctionsImpl.h
M	extern/Eigen3/Eigen/src/Core/Matrix.h
M	extern/Eigen3/Eigen/src/Core/MatrixBase.h
M	extern/Eigen3/Eigen/src/Core/NestByValue.h
M	extern/Eigen3/Eigen/src/Core/NoAlias.h
M	extern/Eigen3/Eigen/src/Core/NumTraits.h
M	extern/Eigen3/Eigen/src/Core/PermutationMatrix.h
M	extern/Eigen3/Eigen/src/Core/PlainObjectBase.h
M	extern/Eigen3/Eigen/src/Core/Product.h
A	extern/Eigen3/Eigen/src/Core/ProductEvaluators.h
M	extern/Eigen3/Eigen/src/Core/Random.h
M	extern/Eigen3/Eigen/src/Core/Redux.h
M	extern/Eigen3/Eigen/src/Core/Ref.h
M	extern/Eigen3/Eigen/src/Core/Replicate.h
M	extern/Eigen3/Eigen/src/Core/ReturnByValue.h
M	extern/Eigen3/Eigen/src/Core/Reverse.h
M	extern/Eigen3/Eigen/src/Core/Select.h
M	extern/Eigen3/Eigen/src/Core/SelfAdjointView.h
M	extern/Eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
A	extern/Eigen3/Eigen/src/Core/Solve.h
M	extern/Eigen3/Eigen/src/Core/SolveTriangular.h
A	extern/Eigen3/Eigen/src/Core/SolverBase.h
M	extern/Eigen3/Eigen/src/Core/StableNorm.h
M	extern/Eigen3/Eigen/src/Core/Stride.h
M	extern/Eigen3/Eigen/src/Core/Swap.h
M	extern/Eigen3/Eigen/src/Core/Transpose.h
M	extern/Eigen3/Eigen/src/Core/Transpositions.h
M	extern/Eigen3/Eigen/src/Core/TriangularMatrix.h
M	extern/Eigen3/Eigen/src/Core/VectorBlock.h
M	extern/Eigen3/Eigen/src/Core/VectorwiseOp.h
M	extern/Eigen3/Eigen/src/Core/Visitor.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX/Complex.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
A	extern/Eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
M	extern/Eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
A	extern/Eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
M	extern/Eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/Complex.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/Half.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
A	extern/Eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
A	extern/Eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
M	extern/Eigen3/Eigen/src/Core/arch/NEON/Complex.h
A	extern/Eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
M	extern/Eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
M	extern/Eigen3/Eigen/src/Core/arch/SSE/Complex.h
M	extern/Eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
M	extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
A	extern/Eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
A	extern/Eigen3/Eigen/src/Core/arch/ZVector/Complex.h
A	extern/Eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
A	extern/Eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
A	extern/Eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
A	extern/Eigen3/Eigen/src/Core/functors/BinaryFunctors.h
A	extern/Eigen3/Eigen/src/Core/functors/NullaryFunctors.h
A	extern/Eigen3/Eigen/src/Core/functors/StlFunctors.h
A	extern/Eigen3/Eigen/src/Core/functors/TernaryFunctors.h
A	extern/Eigen3/Eigen/src/Core/functors/UnaryFunctors.h
M	extern/Eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
M	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
M	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
A	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
A	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
A	extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/Parallelizer.h
M	extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
A	extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
A	extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/SelfadjointProduct.h
M	extern/Eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
M	extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
A	extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
A	extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
A	extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
M	extern/Eigen3/Eigen/src/Core/products/TriangularSolverVector.h
M	extern/Eigen3/Eigen/src/Core/util/BlasUtil.h
M	extern/Eigen3/Eigen/src/Core/util/Constants.h
M	extern/Eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
M	extern/Eigen3/Eigen/src/Core/util/ForwardDeclarations.h
M	extern/Eigen3/Eigen/src/Core/util/MKL_support.h
M	extern/Eigen3/Eigen/src/Core/util/Macros.h
M	extern/Eigen3/Eigen/src/Core/util/Memory.h
M	extern/Eigen3/Eigen/src/Core/util/Meta.h
M	extern/Eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
M	extern/Eigen3/Eigen/src/Core/util/StaticAssert.h
M	extern/Eigen3/Eigen/src/Core/util/XprHelper.h
M	extern/Eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
M	extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
A	extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
M	extern/Eigen3/Eigen/src/Eigenvalues/EigenSolver.h
M	extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
M	extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
M	extern/Eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
M	extern/Eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
M	extern/Eigen3/Eigen/src/Eigenvalues/RealQZ.h
M	extern/Eigen3/Eigen/src/Eigenvalues/RealSchur.h
A	extern/Eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
M	extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
A	extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
M	extern/Eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
M	extern/Eigen3/Eigen/src/Geometry/AlignedBox.h
M	extern/Eigen3/Eigen/src/Geometry/AngleAxis.h
M	extern/Eigen3/Eigen/src/Geometry/EulerAngles.h
M	extern/Eigen3/Eigen/src/Geometry/Homogeneous.h
M	extern/Eigen3/Eigen/src/Geometry/Hyperplane.h
M	extern/Eigen3/Eigen/src/Geometry/OrthoMethods.h
M	extern/Eigen3/Eigen/src/Geometry/ParametrizedLine.h
M	extern/Eigen3/Eigen/src/Geometry/Quaternion.h
M	extern/Eigen3/Eigen/src/Geometry/Rotation2D.h
M	extern/Eigen3/Eigen/src/Geometry/RotationBase.h
M	extern/Eigen3/Eigen/src/Geometry/Scaling.h
M	extern/Eigen3/Eigen/src/Geometry/Transform.h
M	extern/Eigen3/Eigen/src/Geometry/Translation.h
M	extern/Eigen3/Eigen/src/Geometry/Umeyama.h
M	extern/Eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
M	extern/Eigen3/Eigen/src/Householder/BlockHouseholder.h
M	extern/Eigen3/Eigen/src/Householder/Householder.h
M	extern/Eigen3/Eigen/src/Householder/HouseholderSequence.h
M	extern/Eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
M	extern/Eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
M	extern/Eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
A	extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
M	extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
M	extern/Eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
A	extern/Eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
A	extern/Eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
M	extern/Eigen3/Eigen/src/Jacobi/Jacobi.h
M	extern/Eigen3/Eigen/src/LU/Determinant.h
M	extern/Eigen3/Eigen/src/LU/FullPivLU.h
A	extern/Eigen3/Eigen/src/LU/InverseImpl.h
M	extern/Eigen3/Eigen/src/LU/PartialPivLU.h
A	extern/Eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
M	extern/Eigen3/Eigen/src/LU/arch/Inverse_SSE.h
M	extern/Eigen3/Eigen/src/MetisSupport/MetisSupport.h
M	extern/Eigen3/Eigen/src/OrderingMethods/Amd.h
M	extern/Eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
M	extern/Eigen3/Eigen/src/OrderingMethods/Ordering.h
M	extern/Eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
M	extern/Eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
M	extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR.h
A	extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
A	extern/Eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
M	extern/Eigen3/Eigen/src/QR/FullPivHouseholderQR.h
M	extern/Eigen3/Eigen/src/QR/HouseholderQR.h
A	extern/Eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
M	extern/Eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
A	extern/Eigen3/Eigen/src/SVD/BDCSVD.h
M	extern/Eigen3/Eigen/src/SVD/JacobiSVD.h
A	extern/Eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
A	extern/Eigen3/Eigen/src/SVD/SVDBase.h
M	extern/Eigen3/Eigen/src/SVD/UpperBidiagonalization.h
M	extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
M	extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
M	extern/Eigen3/Eigen/src/SparseCore/AmbiVector.h
M	extern/Eigen3/Eigen/src/SparseCore/CompressedStorage.h
M	extern/Eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
M	extern/Eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseAssign.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseBlock.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseColEtree.h
A	extern/Eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseDot.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseFuzzy.h
A	extern/Eigen3/Eigen/src/SparseCore/SparseMap.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseMatrix.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
M	extern/Eigen3/Eigen/src/SparseCore/SparsePermutation.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseProduct.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseRedux.h
A	extern/Eigen3/Eigen/src/SparseCore/SparseRef.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
A	extern/Eigen3/Eigen/src/SparseCore/SparseSolverBase.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseTranspose.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseTriangularView.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseUtil.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseVector.h
M	extern/Eigen3/Eigen/src/SparseCore/SparseView.h
M	extern/Eigen3/Eigen/src/SparseCore/TriangularSolver.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLUImpl.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
M	extern/Eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
M	extern/Eigen3/Eigen/src/SparseQR/SparseQR.h
M	extern/Eigen3/Eigen/src/StlSupport/StdDeque.h
M	extern/Eigen3/Eigen/src/StlSupport/StdList.h
M	extern/Eigen3/Eigen/src/StlSupport/StdVector.h
M	extern/Eigen3/Eigen/src/StlSupport/details.h
M	extern/Eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
M	extern/Eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
M	extern/Eigen3/Eigen/src/misc/Image.h
M	extern/Eigen3/Eigen/src/misc/Kernel.h
A	extern/Eigen3/Eigen/src/misc/RealSvd2x2.h
M	extern/Eigen3/Eigen/src/misc/blas.h
A	extern/Eigen3/Eigen/src/misc/lapack.h
A	extern/Eigen3/Eigen/src/misc/lapacke.h
A	extern/Eigen3/Eigen/src/misc/lapacke_mangling.h
M	extern/Eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
M	extern/Eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
M	extern/Eigen3/Eigen/src/plugins/BlockMethods.h
M	extern/Eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
M	extern/Eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
M	extern/Eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
M	extern/Eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
M	extern/Eigen3/eigen-update.sh

===================================================================

diff --git a/extern/Eigen3/Eigen/Cholesky b/extern/Eigen3/Eigen/Cholesky
index f727f5d89c0..1332b540d83 100644
--- a/extern/Eigen3/Eigen/Cholesky
+++ b/extern/Eigen3/Eigen/Cholesky
@@ -1,7 +1,15 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// 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_CHOLESKY_MODULE_H
 #define EIGEN_CHOLESKY_MODULE_H
 
 #include "Core"
+#include "Jacobi"
 
 #include "src/Core/util/DisableStupidWarnings.h"
 
@@ -10,20 +18,26 @@
   *
   *
   * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
-  * Those decompositions are accessible via the following MatrixBase methods:
-  *  - MatrixBase::llt(),
+  * Those decompositions are also accessible via the following methods:
+  *  - MatrixBase::llt()
   *  - MatrixBase::ldlt()
+  *  - SelfAdjointView::llt()
+  *  - SelfAdjointView::ldlt()
   *
   * \code
   * #include <Eigen/Cholesky>
   * \endcode
   */
 
-#include "src/misc/Solve.h"
 #include "src/Cholesky/LLT.h"
 #include "src/Cholesky/LDLT.h"
 #ifdef EIGEN_USE_LAPACKE
-#include "src/Cholesky/LLT_MKL.h"
+#ifdef EIGEN_USE_MKL
+#include "mkl_lapacke.h"
+#else
+#include "src/misc/lapacke.h"
+#endif
+#include "src/Cholesky/LLT_LAPACKE.h"
 #endif
 
 #include "src/Core/util/ReenableStupidWarnings.h"
diff --git a/extern/Eigen3/Eigen/CholmodSupport b/extern/Eigen3/Eigen/CholmodSupport
index 745b884e74d..bed8924d31e 100644
--- a/extern/Eigen3/Eigen/CholmodSupport
+++ b/extern/Eigen3/Eigen/CholmodSupport
@@ -1,3 +1,10 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// 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_CHOLMODSUPPORT_MODULE_H
 #define EIGEN_CHOLMODSUPPORT_MODULE_H
 
@@ -12,7 +19,7 @@ extern "C" {
 /** \ingroup Support_modules
   * \defgroup CholmodSupport_Module CholmodSupport module
   *
-  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> package.
+  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
   * It provides the two following main factorization classes:
   * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
   * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
@@ -33,12 +40,8 @@ extern "C" {
   *
   */
 
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
 #include "src/CholmodSupport/CholmodSupport.h"
 
-
 #include "src/Core/util/ReenableStupidWarnings.h"
 
 #endif // EIGEN_CHOLMODSUPPORT_MODULE_H
diff --git a/extern/Eigen3/Eigen/Core b/extern/Eigen3/Eigen/Core
index 509c529e13d..b923b8c000c 100644
--- a/extern/Eigen3/Eigen/Core
+++ b/extern/Eigen3/Eigen/Core
@@ -14,6 +14,74 @@
 // first thing Eigen does: stop the compiler from committing suicide
 #include "src/Core/util/DisableStupidWarnings.h"
 
+#if defined(__CUDACC__) && !defined(EIGEN_NO_CUDA)
+  #define EIGEN_CUDACC __CUDACC__
+#endif
+
+#if defined(__CUDA_ARCH__) && !defined(EIGEN_NO_CUDA)
+  #define EIGEN_CUDA_ARCH __CUDA_ARCH__
+#endif
+
+#if defined(__CUDACC_VER_MAJOR__) && (__CUDACC_VER_MAJOR__ >= 9)
+#define EIGEN_CUDACC_VER  ((__CUDACC_VER_MAJOR__ * 10000) + (__CUDACC_VER_MINOR__ * 100))
+#elif defined(__CUDACC_VER__)
+#define EIGEN_CUDACC_VER __CUDACC_VER__
+#else
+#define EIGEN_CUDACC_VER 0
+#endif
+
+// Handle NVCC/CUDA/SYCL
+#if defined(__CUDACC__) || defined(__SYCL_DEVICE_ONLY__)
+  // Do not try asserts on CUDA and SYCL!
+  #ifndef EIGEN_NO_DEBUG
+  #define EIGEN_NO_DEBUG
+  #endif
+
+  #ifdef EIGEN_INTERNAL_DEBUGGING
+  #undef EIGEN_INTERNAL_DEBUGGING
+  #endif
+
+  #ifdef EIGEN_EXCEPTIONS
+  #undef EIGEN_EXCEPTIONS
+  #endif
+
+  // All functions callable from CUDA code must be qualified with __device__
+  #ifdef __CUDACC__
+    // Do not try to vectorize on CUDA and SYCL!
+    #ifndef EIGEN_DONT_VECTORIZE
+    #define EIGEN_DONT_VECTORIZE
+    #endif
+
+    #define EIGEN_DEVICE_FUNC __host__ __device__
+    // We need cuda_runtime.h to ensure that that EIGEN_USING_STD_MATH macro
+    // works properly on the device side
+    #include <cuda_runtime.h>
+  #else
+    #define EIGEN_DEVICE_FUNC
+  #endif
+
+#else
+  #define EIGEN_DEVICE_FUNC
+
+#endif
+
+// When compiling CUDA device code with NVCC, pull in math functions from the
+// global namespace.  In host mode, and when device doee with clang, use the
+// std versions.
+#if defined(__CUDA_ARCH__) && defined(__NVCC__)
+  #define EIGEN_USING_STD_MATH(FUNC) using ::FUNC;
+#else
+  #define EIGEN_USING_STD_MATH(FUNC) using std::FUNC;
+#endif
+
+#if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(__CUDA_ARCH__) && !defined(EIGEN_EXCEPTIONS) && !defined(EIGEN_USE_SYCL)
+  #define EIGEN_EXCEPTIONS
+#endif
+
+#ifdef EIGEN_EXCEPTIONS
+  #include <new>
+#endif
+
 // then include this file where all our macros are defined. It's really important to do it first because
 // it's where we do all the alignment settings (platform detection and honoring the user's will if he
 // defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
@@ -21,7 +89,7 @@
 
 // Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
 // See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
-#if defined(__MINGW32__) && EIGEN_GNUC_AT_LEAST(4,6)
+#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6)
   #pragma GCC optimize ("-fno-ipa-cp-clone")
 #endif
 
@@ -31,26 +99,26 @@
 // and inclusion of their respective header files
 #include "src/Core/util/MKL_support.h"
 
-// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into
-// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
-#if !EIGEN_ALIGN
+// if alignment is disabled, then disable vectorization. Note: EIGEN_MAX_ALIGN_BYTES is the proper check, it takes into
+// account both the user's will (EIGEN_MAX_ALIGN_BYTES,EIGEN_DONT_ALIGN) and our own platform checks
+#if EIGEN_MAX_ALIGN_BYTES==0
   #ifndef EIGEN_DONT_VECTORIZE
     #define EIGEN_DONT_VECTORIZE
   #endif
 #endif
 
-#ifdef _MSC_VER
+#if EIGEN_COMP_MSVC
   #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
-  #if (_MSC_VER >= 1500) // 2008 or later
+  #if (EIGEN_COMP_MSVC >= 1500) // 2008 or later
     // Remember that usage of defined() in a #define is undefined by the standard.
     // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
-    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(_M_X64)
+    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || EIGEN_ARCH_x86_64
       #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
     #endif
   #endif
 #else
   // Remember that usage of defined() in a #define is undefined by the standard
-  #if (defined __SSE2__) && ( (!defined __GNUC__) || (defined __INTEL_COMPILER) || EIGEN_GNUC_AT_LEAST(4,2) )
+  #if (defined __SSE2__) && ( (!EIGEN_COMP_GNUC) || EIGEN_COMP_ICC || EIGEN_GNUC_AT_LEAST(4,2) )
     #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
   #endif
 #endif
@@ -82,6 +150,31 @@
     #ifdef __SSE4_2__
       #define EIGEN_VECTORIZE_SSE4_2
     #endif
+    #ifdef __AVX__
+      #define EIGEN_VECTORIZE_AVX
+      #define EIGEN_VECTORIZE_SSE3
+      #define EIGEN_VECTORIZE_SSSE3
+      #define EIGEN_VECTORIZE_SSE4_1
+      #define EIGEN_VECTORIZE_SSE4_2
+    #endif
+    #ifdef __AVX2__
+      #define EIGEN_VECTORIZE_AVX2
+    #endif
+    #ifdef __FMA__
+      #define EIGEN_VECTORIZE_FMA
+    #endif
+    #if defined(__AVX512F__) && defined(EIGEN_ENABLE_AVX512)
+      #define EIGEN_VECTORIZE_AVX512
+      #define EIGEN_VECTORIZE_AVX2
+      #define EIGEN_VECTORIZE_AVX
+      #define EIGEN_VECTORIZE_FMA
+      #ifdef __AVX512DQ__
+        #define EIGEN_VECTORIZE_AVX512DQ
+      #endif
+      #ifdef __AVX512ER__
+        #define EIGEN_VECTORIZE_AVX512ER
+      #endif
+    #endif
 
     // include files
 
@@ -95,9 +188,10 @@
     extern "C" {
       // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
       // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
-      #if defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1110
+      #if EIGEN_COMP_ICC >= 1110
         #include <immintrin.h>
       #else
+        #include <mmintrin.h>
         #include <emmintrin.h>
         #include <xmmintrin.h>
         #ifdef  EIGEN_VECTORIZE_SSE3
@@ -112,8 +206,20 @@
         #ifdef EIGEN_VECTORIZE_SSE4_2
         #include <nmmintrin.h>
         #endif
+        #if defined(EIGEN_VECTORIZE_AVX) || defined(EIGEN_VECTORIZE_AVX512)
+        #include <immintrin.h>
+        #endif
       #endif
     } // end extern "C"
+  #elif defined __VSX__
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_VSX
+    #include <altivec.h>
+    // We need to #undef all these ugly tokens defined in <altivec.h>
+    // => use __vector instead of vector
+    #undef bool
+    #undef vector
+    #undef pixel
   #elif defined __ALTIVEC__
     #define EIGEN_VECTORIZE
     #define EIGEN_VECTORIZE_ALTIVEC
@@ -123,13 +229,35 @@
     #undef bool
     #undef vector
     #undef pixel
-  #elif defined  __ARM_NEON
+  #elif (defined  __ARM_NEON) || (defined __ARM_NEON__)
     #define EIGEN_VECTORIZE
     #define EIGEN_VECTORIZE_NEON
     #include <arm_neon.h>
+  #elif (defined __s390x__ && defined __VEC__)
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_ZVECTOR
+    #include <vecintrin.h>
   #endif
 #endif
 
+#if defined(__F16C__) && !defined(EIGEN_COMP_CLANG)
+  // We can use the optimized fp16 to float and float to fp16 conve

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list