@smake/eigen 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/eigen/COPYING.APACHE +203 -0
- package/eigen/COPYING.BSD +1 -1
- package/eigen/COPYING.MINPACK +51 -52
- package/eigen/Eigen/Cholesky +0 -1
- package/eigen/Eigen/Core +108 -266
- package/eigen/Eigen/Eigenvalues +0 -1
- package/eigen/Eigen/Geometry +3 -6
- package/eigen/Eigen/Householder +0 -1
- package/eigen/Eigen/Jacobi +0 -1
- package/eigen/Eigen/KLUSupport +41 -0
- package/eigen/Eigen/LU +2 -5
- package/eigen/Eigen/OrderingMethods +0 -3
- package/eigen/Eigen/PaStiXSupport +1 -0
- package/eigen/Eigen/PardisoSupport +0 -0
- package/eigen/Eigen/QR +0 -1
- package/eigen/Eigen/QtAlignedMalloc +0 -1
- package/eigen/Eigen/SVD +0 -1
- package/eigen/Eigen/Sparse +0 -2
- package/eigen/Eigen/SparseCholesky +0 -8
- package/eigen/Eigen/SparseLU +4 -0
- package/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
- package/eigen/Eigen/src/Cholesky/LLT.h +39 -23
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
- package/eigen/Eigen/src/Core/Array.h +99 -11
- package/eigen/Eigen/src/Core/ArrayBase.h +1 -1
- package/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
- package/eigen/Eigen/src/Core/Assign.h +1 -1
- package/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
- package/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
- package/eigen/Eigen/src/Core/BandMatrix.h +16 -16
- package/eigen/Eigen/src/Core/Block.h +56 -60
- package/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
- package/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
- package/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
- package/eigen/Eigen/src/Core/CoreIterators.h +5 -0
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +12 -10
- package/eigen/Eigen/src/Core/DenseBase.h +128 -39
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
- package/eigen/Eigen/src/Core/DenseStorage.h +150 -68
- package/eigen/Eigen/src/Core/Diagonal.h +21 -23
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
- package/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
- package/eigen/Eigen/src/Core/Dot.h +10 -10
- package/eigen/Eigen/src/Core/EigenBase.h +10 -9
- package/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
- package/eigen/Eigen/src/Core/Fuzzy.h +3 -3
- package/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
- package/eigen/Eigen/src/Core/GenericPacketMath.h +597 -147
- package/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
- package/eigen/Eigen/src/Core/IO.h +40 -7
- package/eigen/Eigen/src/Core/IndexedView.h +237 -0
- package/eigen/Eigen/src/Core/Inverse.h +9 -10
- package/eigen/Eigen/src/Core/Map.h +7 -7
- package/eigen/Eigen/src/Core/MapBase.h +5 -3
- package/eigen/Eigen/src/Core/MathFunctions.h +756 -120
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
- package/eigen/Eigen/src/Core/Matrix.h +131 -25
- package/eigen/Eigen/src/Core/MatrixBase.h +19 -2
- package/eigen/Eigen/src/Core/NestByValue.h +25 -50
- package/eigen/Eigen/src/Core/NoAlias.h +4 -3
- package/eigen/Eigen/src/Core/NumTraits.h +107 -20
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- package/eigen/Eigen/src/Core/PermutationMatrix.h +3 -3
- package/eigen/Eigen/src/Core/PlainObjectBase.h +145 -54
- package/eigen/Eigen/src/Core/Product.h +30 -25
- package/eigen/Eigen/src/Core/ProductEvaluators.h +183 -142
- package/eigen/Eigen/src/Core/Random.h +37 -1
- package/eigen/Eigen/src/Core/Redux.h +180 -170
- package/eigen/Eigen/src/Core/Ref.h +118 -21
- package/eigen/Eigen/src/Core/Replicate.h +8 -8
- package/eigen/Eigen/src/Core/Reshaped.h +454 -0
- package/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
- package/eigen/Eigen/src/Core/Reverse.h +18 -12
- package/eigen/Eigen/src/Core/Select.h +8 -6
- package/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
- package/eigen/Eigen/src/Core/Solve.h +14 -14
- package/eigen/Eigen/src/Core/SolveTriangular.h +13 -13
- package/eigen/Eigen/src/Core/SolverBase.h +41 -3
- package/eigen/Eigen/src/Core/StableNorm.h +100 -70
- package/eigen/Eigen/src/Core/StlIterators.h +463 -0
- package/eigen/Eigen/src/Core/Stride.h +9 -4
- package/eigen/Eigen/src/Core/Swap.h +5 -4
- package/eigen/Eigen/src/Core/Transpose.h +86 -27
- package/eigen/Eigen/src/Core/Transpositions.h +26 -8
- package/eigen/Eigen/src/Core/TriangularMatrix.h +88 -72
- package/eigen/Eigen/src/Core/VectorBlock.h +5 -5
- package/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
- package/eigen/Eigen/src/Core/Visitor.h +137 -29
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +186 -213
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1250 -252
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- package/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
- package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- package/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- package/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +354 -15
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1073 -585
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +29 -7
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +4 -4
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +1 -1
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
- package/eigen/Eigen/src/Core/products/Parallelizer.h +23 -9
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +23 -6
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
- package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +2 -2
- package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +3 -3
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +5 -3
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
- package/eigen/Eigen/src/Core/util/BlasUtil.h +208 -124
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- package/eigen/Eigen/src/Core/util/Constants.h +25 -9
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +14 -2
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +28 -4
- package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
- package/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
- package/eigen/Eigen/src/Core/util/Macros.h +661 -250
- package/eigen/Eigen/src/Core/util/Memory.h +222 -52
- package/eigen/Eigen/src/Core/util/Meta.h +349 -105
- package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- package/eigen/Eigen/src/Core/util/XprHelper.h +48 -30
- package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +10 -5
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +75 -42
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
- package/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
- package/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
- package/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
- package/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
- package/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
- package/eigen/Eigen/src/Geometry/Quaternion.h +52 -14
- package/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
- package/eigen/Eigen/src/Geometry/Scaling.h +22 -4
- package/eigen/Eigen/src/Geometry/Transform.h +86 -65
- package/eigen/Eigen/src/Geometry/Translation.h +6 -6
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
- package/eigen/Eigen/src/Householder/Householder.h +8 -4
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
- package/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- package/eigen/Eigen/src/LU/Determinant.h +35 -19
- package/eigen/Eigen/src/LU/FullPivLU.h +29 -43
- package/eigen/Eigen/src/LU/InverseImpl.h +25 -8
- package/eigen/Eigen/src/LU/PartialPivLU.h +67 -57
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
- package/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
- package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
- package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +10 -9
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
- package/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
- package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
- package/eigen/Eigen/src/SVD/BDCSVD.h +137 -48
- package/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
- package/eigen/Eigen/src/SVD/SVDBase.h +82 -21
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +16 -8
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +11 -36
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +2 -2
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
- package/eigen/Eigen/src/SparseCore/SparseMatrix.h +124 -10
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
- package/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
- package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
- package/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU.h +160 -10
- package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
- package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
- package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
- package/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
- package/eigen/Eigen/src/StlSupport/StdDeque.h +2 -14
- package/eigen/Eigen/src/StlSupport/StdList.h +2 -2
- package/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
- package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
- package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
- package/eigen/Eigen/src/misc/lapacke.h +5 -4
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +27 -1
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
- package/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
- package/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
- package/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
- package/eigen/README.md +2 -0
- package/lib/LibEigen.d.ts +4 -0
- package/lib/LibEigen.js +14 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +7 -3
- package/package.json +2 -10
- package/eigen/Eigen/CMakeLists.txt +0 -19
- package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
- package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
- package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
- package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
- package/lib/eigen.d.ts +0 -2
- package/lib/eigen.js +0 -15
package/eigen/Eigen/Core
CHANGED
|
@@ -11,251 +11,55 @@
|
|
|
11
11
|
#ifndef EIGEN_CORE_H
|
|
12
12
|
#define EIGEN_CORE_H
|
|
13
13
|
|
|
14
|
-
// first thing Eigen does: stop the compiler from
|
|
14
|
+
// first thing Eigen does: stop the compiler from reporting useless warnings.
|
|
15
15
|
#include "src/Core/util/DisableStupidWarnings.h"
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
#
|
|
20
|
-
|
|
21
|
-
#if defined(__CUDA_ARCH__) && !defined(EIGEN_NO_CUDA)
|
|
22
|
-
#define EIGEN_CUDA_ARCH __CUDA_ARCH__
|
|
23
|
-
#endif
|
|
24
|
-
|
|
25
|
-
#if defined(__CUDACC_VER_MAJOR__) && (__CUDACC_VER_MAJOR__ >= 9)
|
|
26
|
-
#define EIGEN_CUDACC_VER ((__CUDACC_VER_MAJOR__ * 10000) + (__CUDACC_VER_MINOR__ * 100))
|
|
27
|
-
#elif defined(__CUDACC_VER__)
|
|
28
|
-
#define EIGEN_CUDACC_VER __CUDACC_VER__
|
|
29
|
-
#else
|
|
30
|
-
#define EIGEN_CUDACC_VER 0
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
|
-
// Handle NVCC/CUDA/SYCL
|
|
34
|
-
#if defined(__CUDACC__) || defined(__SYCL_DEVICE_ONLY__)
|
|
35
|
-
// Do not try asserts on CUDA and SYCL!
|
|
36
|
-
#ifndef EIGEN_NO_DEBUG
|
|
37
|
-
#define EIGEN_NO_DEBUG
|
|
38
|
-
#endif
|
|
39
|
-
|
|
40
|
-
#ifdef EIGEN_INTERNAL_DEBUGGING
|
|
41
|
-
#undef EIGEN_INTERNAL_DEBUGGING
|
|
42
|
-
#endif
|
|
43
|
-
|
|
44
|
-
#ifdef EIGEN_EXCEPTIONS
|
|
45
|
-
#undef EIGEN_EXCEPTIONS
|
|
46
|
-
#endif
|
|
47
|
-
|
|
48
|
-
// All functions callable from CUDA code must be qualified with __device__
|
|
49
|
-
#ifdef __CUDACC__
|
|
50
|
-
// Do not try to vectorize on CUDA and SYCL!
|
|
51
|
-
#ifndef EIGEN_DONT_VECTORIZE
|
|
52
|
-
#define EIGEN_DONT_VECTORIZE
|
|
53
|
-
#endif
|
|
54
|
-
|
|
55
|
-
#define EIGEN_DEVICE_FUNC __host__ __device__
|
|
56
|
-
// We need cuda_runtime.h to ensure that that EIGEN_USING_STD_MATH macro
|
|
57
|
-
// works properly on the device side
|
|
58
|
-
#include <cuda_runtime.h>
|
|
59
|
-
#else
|
|
60
|
-
#define EIGEN_DEVICE_FUNC
|
|
61
|
-
#endif
|
|
62
|
-
|
|
63
|
-
#else
|
|
64
|
-
#define EIGEN_DEVICE_FUNC
|
|
17
|
+
// then include this file where all our macros are defined. It's really important to do it first because
|
|
18
|
+
// it's where we do all the compiler/OS/arch detections and define most defaults.
|
|
19
|
+
#include "src/Core/util/Macros.h"
|
|
65
20
|
|
|
66
|
-
|
|
21
|
+
// This detects SSE/AVX/NEON/etc. and configure alignment settings
|
|
22
|
+
#include "src/Core/util/ConfigureVectorization.h"
|
|
67
23
|
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
|
|
73
|
-
#
|
|
74
|
-
#define EIGEN_USING_STD_MATH(FUNC) using std::FUNC;
|
|
24
|
+
// We need cuda_runtime.h/hip_runtime.h to ensure that
|
|
25
|
+
// the EIGEN_USING_STD macro works properly on the device side
|
|
26
|
+
#if defined(EIGEN_CUDACC)
|
|
27
|
+
#include <cuda_runtime.h>
|
|
28
|
+
#elif defined(EIGEN_HIPCC)
|
|
29
|
+
#include <hip/hip_runtime.h>
|
|
75
30
|
#endif
|
|
76
31
|
|
|
77
|
-
#if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(__CUDA_ARCH__) && !defined(EIGEN_EXCEPTIONS) && !defined(EIGEN_USE_SYCL)
|
|
78
|
-
#define EIGEN_EXCEPTIONS
|
|
79
|
-
#endif
|
|
80
32
|
|
|
81
33
|
#ifdef EIGEN_EXCEPTIONS
|
|
82
34
|
#include <new>
|
|
83
35
|
#endif
|
|
84
36
|
|
|
85
|
-
// then include this file where all our macros are defined. It's really important to do it first because
|
|
86
|
-
// it's where we do all the alignment settings (platform detection and honoring the user's will if he
|
|
87
|
-
// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
|
|
88
|
-
#include "src/Core/util/Macros.h"
|
|
89
|
-
|
|
90
37
|
// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
|
|
91
38
|
// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
|
|
92
|
-
#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6)
|
|
39
|
+
#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6) && EIGEN_GNUC_AT_MOST(5,5)
|
|
93
40
|
#pragma GCC optimize ("-fno-ipa-cp-clone")
|
|
94
41
|
#endif
|
|
95
42
|
|
|
43
|
+
// Prevent ICC from specializing std::complex operators that silently fail
|
|
44
|
+
// on device. This allows us to use our own device-compatible specializations
|
|
45
|
+
// instead.
|
|
46
|
+
#if defined(EIGEN_COMP_ICC) && defined(EIGEN_GPU_COMPILE_PHASE) \
|
|
47
|
+
&& !defined(_OVERRIDE_COMPLEX_SPECIALIZATION_)
|
|
48
|
+
#define _OVERRIDE_COMPLEX_SPECIALIZATION_ 1
|
|
49
|
+
#endif
|
|
96
50
|
#include <complex>
|
|
97
51
|
|
|
98
52
|
// this include file manages BLAS and MKL related macros
|
|
99
53
|
// and inclusion of their respective header files
|
|
100
54
|
#include "src/Core/util/MKL_support.h"
|
|
101
55
|
|
|
102
|
-
// if alignment is disabled, then disable vectorization. Note: EIGEN_MAX_ALIGN_BYTES is the proper check, it takes into
|
|
103
|
-
// account both the user's will (EIGEN_MAX_ALIGN_BYTES,EIGEN_DONT_ALIGN) and our own platform checks
|
|
104
|
-
#if EIGEN_MAX_ALIGN_BYTES==0
|
|
105
|
-
#ifndef EIGEN_DONT_VECTORIZE
|
|
106
|
-
#define EIGEN_DONT_VECTORIZE
|
|
107
|
-
#endif
|
|
108
|
-
#endif
|
|
109
56
|
|
|
110
|
-
#if
|
|
111
|
-
#
|
|
112
|
-
#if (EIGEN_COMP_MSVC >= 1500) // 2008 or later
|
|
113
|
-
// Remember that usage of defined() in a #define is undefined by the standard.
|
|
114
|
-
// a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
|
|
115
|
-
#if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || EIGEN_ARCH_x86_64
|
|
116
|
-
#define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
|
|
117
|
-
#endif
|
|
118
|
-
#endif
|
|
119
|
-
#else
|
|
120
|
-
// Remember that usage of defined() in a #define is undefined by the standard
|
|
121
|
-
#if (defined __SSE2__) && ( (!EIGEN_COMP_GNUC) || EIGEN_COMP_ICC || EIGEN_GNUC_AT_LEAST(4,2) )
|
|
122
|
-
#define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
|
|
123
|
-
#endif
|
|
124
|
-
#endif
|
|
125
|
-
|
|
126
|
-
#ifndef EIGEN_DONT_VECTORIZE
|
|
127
|
-
|
|
128
|
-
#if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
|
|
129
|
-
|
|
130
|
-
// Defines symbols for compile-time detection of which instructions are
|
|
131
|
-
// used.
|
|
132
|
-
// EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
|
|
133
|
-
#define EIGEN_VECTORIZE
|
|
134
|
-
#define EIGEN_VECTORIZE_SSE
|
|
135
|
-
#define EIGEN_VECTORIZE_SSE2
|
|
136
|
-
|
|
137
|
-
// Detect sse3/ssse3/sse4:
|
|
138
|
-
// gcc and icc defines __SSE3__, ...
|
|
139
|
-
// there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
|
|
140
|
-
// want to force the use of those instructions with msvc.
|
|
141
|
-
#ifdef __SSE3__
|
|
142
|
-
#define EIGEN_VECTORIZE_SSE3
|
|
143
|
-
#endif
|
|
144
|
-
#ifdef __SSSE3__
|
|
145
|
-
#define EIGEN_VECTORIZE_SSSE3
|
|
146
|
-
#endif
|
|
147
|
-
#ifdef __SSE4_1__
|
|
148
|
-
#define EIGEN_VECTORIZE_SSE4_1
|
|
149
|
-
#endif
|
|
150
|
-
#ifdef __SSE4_2__
|
|
151
|
-
#define EIGEN_VECTORIZE_SSE4_2
|
|
152
|
-
#endif
|
|
153
|
-
#ifdef __AVX__
|
|
154
|
-
#define EIGEN_VECTORIZE_AVX
|
|
155
|
-
#define EIGEN_VECTORIZE_SSE3
|
|
156
|
-
#define EIGEN_VECTORIZE_SSSE3
|
|
157
|
-
#define EIGEN_VECTORIZE_SSE4_1
|
|
158
|
-
#define EIGEN_VECTORIZE_SSE4_2
|
|
159
|
-
#endif
|
|
160
|
-
#ifdef __AVX2__
|
|
161
|
-
#define EIGEN_VECTORIZE_AVX2
|
|
162
|
-
#endif
|
|
163
|
-
#ifdef __FMA__
|
|
164
|
-
#define EIGEN_VECTORIZE_FMA
|
|
165
|
-
#endif
|
|
166
|
-
#if defined(__AVX512F__) && defined(EIGEN_ENABLE_AVX512)
|
|
167
|
-
#define EIGEN_VECTORIZE_AVX512
|
|
168
|
-
#define EIGEN_VECTORIZE_AVX2
|
|
169
|
-
#define EIGEN_VECTORIZE_AVX
|
|
170
|
-
#define EIGEN_VECTORIZE_FMA
|
|
171
|
-
#ifdef __AVX512DQ__
|
|
172
|
-
#define EIGEN_VECTORIZE_AVX512DQ
|
|
173
|
-
#endif
|
|
174
|
-
#ifdef __AVX512ER__
|
|
175
|
-
#define EIGEN_VECTORIZE_AVX512ER
|
|
176
|
-
#endif
|
|
177
|
-
#endif
|
|
178
|
-
|
|
179
|
-
// include files
|
|
180
|
-
|
|
181
|
-
// This extern "C" works around a MINGW-w64 compilation issue
|
|
182
|
-
// https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
|
|
183
|
-
// In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
|
|
184
|
-
// However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
|
|
185
|
-
// with conflicting linkage. The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
|
|
186
|
-
// so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
|
|
187
|
-
// notice that since these are C headers, the extern "C" is theoretically needed anyways.
|
|
188
|
-
extern "C" {
|
|
189
|
-
// In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
|
|
190
|
-
// Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
|
|
191
|
-
#if EIGEN_COMP_ICC >= 1110
|
|
192
|
-
#include <immintrin.h>
|
|
193
|
-
#else
|
|
194
|
-
#include <mmintrin.h>
|
|
195
|
-
#include <emmintrin.h>
|
|
196
|
-
#include <xmmintrin.h>
|
|
197
|
-
#ifdef EIGEN_VECTORIZE_SSE3
|
|
198
|
-
#include <pmmintrin.h>
|
|
199
|
-
#endif
|
|
200
|
-
#ifdef EIGEN_VECTORIZE_SSSE3
|
|
201
|
-
#include <tmmintrin.h>
|
|
202
|
-
#endif
|
|
203
|
-
#ifdef EIGEN_VECTORIZE_SSE4_1
|
|
204
|
-
#include <smmintrin.h>
|
|
205
|
-
#endif
|
|
206
|
-
#ifdef EIGEN_VECTORIZE_SSE4_2
|
|
207
|
-
#include <nmmintrin.h>
|
|
208
|
-
#endif
|
|
209
|
-
#if defined(EIGEN_VECTORIZE_AVX) || defined(EIGEN_VECTORIZE_AVX512)
|
|
210
|
-
#include <immintrin.h>
|
|
211
|
-
#endif
|
|
212
|
-
#endif
|
|
213
|
-
} // end extern "C"
|
|
214
|
-
#elif defined __VSX__
|
|
215
|
-
#define EIGEN_VECTORIZE
|
|
216
|
-
#define EIGEN_VECTORIZE_VSX
|
|
217
|
-
#include <altivec.h>
|
|
218
|
-
// We need to #undef all these ugly tokens defined in <altivec.h>
|
|
219
|
-
// => use __vector instead of vector
|
|
220
|
-
#undef bool
|
|
221
|
-
#undef vector
|
|
222
|
-
#undef pixel
|
|
223
|
-
#elif defined __ALTIVEC__
|
|
224
|
-
#define EIGEN_VECTORIZE
|
|
225
|
-
#define EIGEN_VECTORIZE_ALTIVEC
|
|
226
|
-
#include <altivec.h>
|
|
227
|
-
// We need to #undef all these ugly tokens defined in <altivec.h>
|
|
228
|
-
// => use __vector instead of vector
|
|
229
|
-
#undef bool
|
|
230
|
-
#undef vector
|
|
231
|
-
#undef pixel
|
|
232
|
-
#elif (defined __ARM_NEON) || (defined __ARM_NEON__)
|
|
233
|
-
#define EIGEN_VECTORIZE
|
|
234
|
-
#define EIGEN_VECTORIZE_NEON
|
|
235
|
-
#include <arm_neon.h>
|
|
236
|
-
#elif (defined __s390x__ && defined __VEC__)
|
|
237
|
-
#define EIGEN_VECTORIZE
|
|
238
|
-
#define EIGEN_VECTORIZE_ZVECTOR
|
|
239
|
-
#include <vecintrin.h>
|
|
240
|
-
#endif
|
|
241
|
-
#endif
|
|
242
|
-
|
|
243
|
-
#if defined(__F16C__) && !defined(EIGEN_COMP_CLANG)
|
|
244
|
-
// We can use the optimized fp16 to float and float to fp16 conversion routines
|
|
245
|
-
#define EIGEN_HAS_FP16_C
|
|
246
|
-
#endif
|
|
247
|
-
|
|
248
|
-
#if defined __CUDACC__
|
|
249
|
-
#define EIGEN_VECTORIZE_CUDA
|
|
250
|
-
#include <vector_types.h>
|
|
251
|
-
#if EIGEN_CUDACC_VER >= 70500
|
|
252
|
-
#define EIGEN_HAS_CUDA_FP16
|
|
253
|
-
#endif
|
|
57
|
+
#if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
|
|
58
|
+
#define EIGEN_HAS_GPU_FP16
|
|
254
59
|
#endif
|
|
255
60
|
|
|
256
|
-
#if defined
|
|
257
|
-
#
|
|
258
|
-
#include <cuda_fp16.h>
|
|
61
|
+
#if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
|
|
62
|
+
#define EIGEN_HAS_GPU_BF16
|
|
259
63
|
#endif
|
|
260
64
|
|
|
261
65
|
#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
|
|
@@ -290,6 +94,10 @@
|
|
|
290
94
|
// for min/max:
|
|
291
95
|
#include <algorithm>
|
|
292
96
|
|
|
97
|
+
#if EIGEN_HAS_CXX11
|
|
98
|
+
#include <array>
|
|
99
|
+
#endif
|
|
100
|
+
|
|
293
101
|
// for std::is_nothrow_move_assignable
|
|
294
102
|
#ifdef EIGEN_INCLUDE_TYPE_TRAITS
|
|
295
103
|
#include <type_traits>
|
|
@@ -305,38 +113,25 @@
|
|
|
305
113
|
#include <intrin.h>
|
|
306
114
|
#endif
|
|
307
115
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
#
|
|
313
|
-
|
|
314
|
-
#
|
|
315
|
-
|
|
316
|
-
#
|
|
317
|
-
|
|
318
|
-
#
|
|
319
|
-
|
|
320
|
-
#
|
|
321
|
-
|
|
322
|
-
#
|
|
323
|
-
|
|
324
|
-
#
|
|
325
|
-
return "SSE, SSE2";
|
|
326
|
-
#elif defined(EIGEN_VECTORIZE_ALTIVEC)
|
|
327
|
-
return "AltiVec";
|
|
328
|
-
#elif defined(EIGEN_VECTORIZE_VSX)
|
|
329
|
-
return "VSX";
|
|
330
|
-
#elif defined(EIGEN_VECTORIZE_NEON)
|
|
331
|
-
return "ARM NEON";
|
|
332
|
-
#elif defined(EIGEN_VECTORIZE_ZVECTOR)
|
|
333
|
-
return "S390X ZVECTOR";
|
|
334
|
-
#else
|
|
335
|
-
return "None";
|
|
116
|
+
#if defined(EIGEN_USE_SYCL)
|
|
117
|
+
#undef min
|
|
118
|
+
#undef max
|
|
119
|
+
#undef isnan
|
|
120
|
+
#undef isinf
|
|
121
|
+
#undef isfinite
|
|
122
|
+
#include <CL/sycl.hpp>
|
|
123
|
+
#include <map>
|
|
124
|
+
#include <memory>
|
|
125
|
+
#include <utility>
|
|
126
|
+
#include <thread>
|
|
127
|
+
#ifndef EIGEN_SYCL_LOCAL_THREAD_DIM0
|
|
128
|
+
#define EIGEN_SYCL_LOCAL_THREAD_DIM0 16
|
|
129
|
+
#endif
|
|
130
|
+
#ifndef EIGEN_SYCL_LOCAL_THREAD_DIM1
|
|
131
|
+
#define EIGEN_SYCL_LOCAL_THREAD_DIM1 16
|
|
132
|
+
#endif
|
|
336
133
|
#endif
|
|
337
|
-
}
|
|
338
134
|
|
|
339
|
-
} // end namespace Eigen
|
|
340
135
|
|
|
341
136
|
#if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || defined EIGEN2_SUPPORT
|
|
342
137
|
// This will generate an error message:
|
|
@@ -345,7 +140,7 @@ inline static const char *SimdInstructionSetsInUse(void) {
|
|
|
345
140
|
|
|
346
141
|
namespace Eigen {
|
|
347
142
|
|
|
348
|
-
// we use size_t frequently and we'll never remember to prepend it with std::
|
|
143
|
+
// we use size_t frequently and we'll never remember to prepend it with std:: every time just to
|
|
349
144
|
// ensure QNX/QCC support
|
|
350
145
|
using std::size_t;
|
|
351
146
|
// gcc 4.6.0 wants std:: for ptrdiff_t
|
|
@@ -369,60 +164,90 @@ using std::ptrdiff_t;
|
|
|
369
164
|
#include "src/Core/util/StaticAssert.h"
|
|
370
165
|
#include "src/Core/util/XprHelper.h"
|
|
371
166
|
#include "src/Core/util/Memory.h"
|
|
167
|
+
#include "src/Core/util/IntegralConstant.h"
|
|
168
|
+
#include "src/Core/util/SymbolicIndex.h"
|
|
372
169
|
|
|
373
170
|
#include "src/Core/NumTraits.h"
|
|
374
171
|
#include "src/Core/MathFunctions.h"
|
|
375
172
|
#include "src/Core/GenericPacketMath.h"
|
|
376
173
|
#include "src/Core/MathFunctionsImpl.h"
|
|
377
174
|
#include "src/Core/arch/Default/ConjHelper.h"
|
|
175
|
+
// Generic half float support
|
|
176
|
+
#include "src/Core/arch/Default/Half.h"
|
|
177
|
+
#include "src/Core/arch/Default/BFloat16.h"
|
|
178
|
+
#include "src/Core/arch/Default/TypeCasting.h"
|
|
179
|
+
#include "src/Core/arch/Default/GenericPacketMathFunctionsFwd.h"
|
|
378
180
|
|
|
379
181
|
#if defined EIGEN_VECTORIZE_AVX512
|
|
380
182
|
#include "src/Core/arch/SSE/PacketMath.h"
|
|
381
|
-
#include "src/Core/arch/SSE/
|
|
183
|
+
#include "src/Core/arch/SSE/TypeCasting.h"
|
|
184
|
+
#include "src/Core/arch/SSE/Complex.h"
|
|
382
185
|
#include "src/Core/arch/AVX/PacketMath.h"
|
|
383
|
-
#include "src/Core/arch/AVX/
|
|
186
|
+
#include "src/Core/arch/AVX/TypeCasting.h"
|
|
187
|
+
#include "src/Core/arch/AVX/Complex.h"
|
|
384
188
|
#include "src/Core/arch/AVX512/PacketMath.h"
|
|
189
|
+
#include "src/Core/arch/AVX512/TypeCasting.h"
|
|
190
|
+
#include "src/Core/arch/AVX512/Complex.h"
|
|
191
|
+
#include "src/Core/arch/SSE/MathFunctions.h"
|
|
192
|
+
#include "src/Core/arch/AVX/MathFunctions.h"
|
|
385
193
|
#include "src/Core/arch/AVX512/MathFunctions.h"
|
|
386
194
|
#elif defined EIGEN_VECTORIZE_AVX
|
|
387
195
|
// Use AVX for floats and doubles, SSE for integers
|
|
388
196
|
#include "src/Core/arch/SSE/PacketMath.h"
|
|
197
|
+
#include "src/Core/arch/SSE/TypeCasting.h"
|
|
389
198
|
#include "src/Core/arch/SSE/Complex.h"
|
|
390
|
-
#include "src/Core/arch/SSE/MathFunctions.h"
|
|
391
199
|
#include "src/Core/arch/AVX/PacketMath.h"
|
|
392
|
-
#include "src/Core/arch/AVX/MathFunctions.h"
|
|
393
|
-
#include "src/Core/arch/AVX/Complex.h"
|
|
394
200
|
#include "src/Core/arch/AVX/TypeCasting.h"
|
|
395
|
-
#include "src/Core/arch/
|
|
201
|
+
#include "src/Core/arch/AVX/Complex.h"
|
|
202
|
+
#include "src/Core/arch/SSE/MathFunctions.h"
|
|
203
|
+
#include "src/Core/arch/AVX/MathFunctions.h"
|
|
396
204
|
#elif defined EIGEN_VECTORIZE_SSE
|
|
397
205
|
#include "src/Core/arch/SSE/PacketMath.h"
|
|
206
|
+
#include "src/Core/arch/SSE/TypeCasting.h"
|
|
398
207
|
#include "src/Core/arch/SSE/MathFunctions.h"
|
|
399
208
|
#include "src/Core/arch/SSE/Complex.h"
|
|
400
|
-
#include "src/Core/arch/SSE/TypeCasting.h"
|
|
401
209
|
#elif defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
|
|
402
210
|
#include "src/Core/arch/AltiVec/PacketMath.h"
|
|
403
211
|
#include "src/Core/arch/AltiVec/MathFunctions.h"
|
|
404
212
|
#include "src/Core/arch/AltiVec/Complex.h"
|
|
405
213
|
#elif defined EIGEN_VECTORIZE_NEON
|
|
406
214
|
#include "src/Core/arch/NEON/PacketMath.h"
|
|
215
|
+
#include "src/Core/arch/NEON/TypeCasting.h"
|
|
407
216
|
#include "src/Core/arch/NEON/MathFunctions.h"
|
|
408
217
|
#include "src/Core/arch/NEON/Complex.h"
|
|
218
|
+
#elif defined EIGEN_VECTORIZE_SVE
|
|
219
|
+
#include "src/Core/arch/SVE/PacketMath.h"
|
|
220
|
+
#include "src/Core/arch/SVE/TypeCasting.h"
|
|
221
|
+
#include "src/Core/arch/SVE/MathFunctions.h"
|
|
409
222
|
#elif defined EIGEN_VECTORIZE_ZVECTOR
|
|
410
223
|
#include "src/Core/arch/ZVector/PacketMath.h"
|
|
411
224
|
#include "src/Core/arch/ZVector/MathFunctions.h"
|
|
412
225
|
#include "src/Core/arch/ZVector/Complex.h"
|
|
226
|
+
#elif defined EIGEN_VECTORIZE_MSA
|
|
227
|
+
#include "src/Core/arch/MSA/PacketMath.h"
|
|
228
|
+
#include "src/Core/arch/MSA/MathFunctions.h"
|
|
229
|
+
#include "src/Core/arch/MSA/Complex.h"
|
|
413
230
|
#endif
|
|
414
231
|
|
|
415
|
-
|
|
416
|
-
#include "src/Core/arch/
|
|
417
|
-
#include "src/Core/arch/
|
|
418
|
-
#include "src/Core/arch/
|
|
232
|
+
#if defined EIGEN_VECTORIZE_GPU
|
|
233
|
+
#include "src/Core/arch/GPU/PacketMath.h"
|
|
234
|
+
#include "src/Core/arch/GPU/MathFunctions.h"
|
|
235
|
+
#include "src/Core/arch/GPU/TypeCasting.h"
|
|
236
|
+
#endif
|
|
419
237
|
|
|
420
|
-
#if defined
|
|
421
|
-
#include "src/Core/arch/
|
|
422
|
-
#include "src/Core/arch/
|
|
238
|
+
#if defined(EIGEN_USE_SYCL)
|
|
239
|
+
#include "src/Core/arch/SYCL/SyclMemoryModel.h"
|
|
240
|
+
#include "src/Core/arch/SYCL/InteropHeaders.h"
|
|
241
|
+
#if !defined(EIGEN_DONT_VECTORIZE_SYCL)
|
|
242
|
+
#include "src/Core/arch/SYCL/PacketMath.h"
|
|
243
|
+
#include "src/Core/arch/SYCL/MathFunctions.h"
|
|
244
|
+
#include "src/Core/arch/SYCL/TypeCasting.h"
|
|
245
|
+
#endif
|
|
423
246
|
#endif
|
|
424
247
|
|
|
425
248
|
#include "src/Core/arch/Default/Settings.h"
|
|
249
|
+
// This file provides generic implementations valid for scalar as well
|
|
250
|
+
#include "src/Core/arch/Default/GenericPacketMathFunctions.h"
|
|
426
251
|
|
|
427
252
|
#include "src/Core/functors/TernaryFunctors.h"
|
|
428
253
|
#include "src/Core/functors/BinaryFunctors.h"
|
|
@@ -433,9 +258,16 @@ using std::ptrdiff_t;
|
|
|
433
258
|
|
|
434
259
|
// Specialized functors to enable the processing of complex numbers
|
|
435
260
|
// on CUDA devices
|
|
261
|
+
#ifdef EIGEN_CUDACC
|
|
436
262
|
#include "src/Core/arch/CUDA/Complex.h"
|
|
263
|
+
#endif
|
|
437
264
|
|
|
438
|
-
#include "src/Core/
|
|
265
|
+
#include "src/Core/util/IndexedViewHelper.h"
|
|
266
|
+
#include "src/Core/util/ReshapedHelper.h"
|
|
267
|
+
#include "src/Core/ArithmeticSequence.h"
|
|
268
|
+
#ifndef EIGEN_NO_IO
|
|
269
|
+
#include "src/Core/IO.h"
|
|
270
|
+
#endif
|
|
439
271
|
#include "src/Core/DenseCoeffsBase.h"
|
|
440
272
|
#include "src/Core/DenseBase.h"
|
|
441
273
|
#include "src/Core/MatrixBase.h"
|
|
@@ -476,6 +308,8 @@ using std::ptrdiff_t;
|
|
|
476
308
|
#include "src/Core/Ref.h"
|
|
477
309
|
#include "src/Core/Block.h"
|
|
478
310
|
#include "src/Core/VectorBlock.h"
|
|
311
|
+
#include "src/Core/IndexedView.h"
|
|
312
|
+
#include "src/Core/Reshaped.h"
|
|
479
313
|
#include "src/Core/Transpose.h"
|
|
480
314
|
#include "src/Core/DiagonalMatrix.h"
|
|
481
315
|
#include "src/Core/Diagonal.h"
|
|
@@ -512,13 +346,21 @@ using std::ptrdiff_t;
|
|
|
512
346
|
#include "src/Core/CoreIterators.h"
|
|
513
347
|
#include "src/Core/ConditionEstimator.h"
|
|
514
348
|
|
|
349
|
+
#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
|
|
350
|
+
#include "src/Core/arch/AltiVec/MatrixProduct.h"
|
|
351
|
+
#elif defined EIGEN_VECTORIZE_NEON
|
|
352
|
+
#include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
|
|
353
|
+
#endif
|
|
354
|
+
|
|
515
355
|
#include "src/Core/BooleanRedux.h"
|
|
516
356
|
#include "src/Core/Select.h"
|
|
517
357
|
#include "src/Core/VectorwiseOp.h"
|
|
358
|
+
#include "src/Core/PartialReduxEvaluator.h"
|
|
518
359
|
#include "src/Core/Random.h"
|
|
519
360
|
#include "src/Core/Replicate.h"
|
|
520
361
|
#include "src/Core/Reverse.h"
|
|
521
362
|
#include "src/Core/ArrayWrapper.h"
|
|
363
|
+
#include "src/Core/StlIterators.h"
|
|
522
364
|
|
|
523
365
|
#ifdef EIGEN_USE_BLAS
|
|
524
366
|
#include "src/Core/products/GeneralMatrixMatrix_BLAS.h"
|
package/eigen/Eigen/Eigenvalues
CHANGED
package/eigen/Eigen/Geometry
CHANGED
|
@@ -49,14 +49,11 @@
|
|
|
49
49
|
#include "src/Geometry/AlignedBox.h"
|
|
50
50
|
#include "src/Geometry/Umeyama.h"
|
|
51
51
|
|
|
52
|
-
// Use the SSE optimized version whenever possible.
|
|
53
|
-
|
|
54
|
-
#
|
|
55
|
-
#include "src/Geometry/arch/Geometry_SSE.h"
|
|
52
|
+
// Use the SSE optimized version whenever possible.
|
|
53
|
+
#if (defined EIGEN_VECTORIZE_SSE) || (defined EIGEN_VECTORIZE_NEON)
|
|
54
|
+
#include "src/Geometry/arch/Geometry_SIMD.h"
|
|
56
55
|
#endif
|
|
57
56
|
|
|
58
57
|
#include "src/Core/util/ReenableStupidWarnings.h"
|
|
59
58
|
|
|
60
59
|
#endif // EIGEN_GEOMETRY_MODULE_H
|
|
61
|
-
/* vim: set filetype=cpp et sw=2 ts=2 ai: */
|
|
62
|
-
|
package/eigen/Eigen/Householder
CHANGED
package/eigen/Eigen/Jacobi
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
7
|
+
|
|
8
|
+
#ifndef EIGEN_KLUSUPPORT_MODULE_H
|
|
9
|
+
#define EIGEN_KLUSUPPORT_MODULE_H
|
|
10
|
+
|
|
11
|
+
#include <Eigen/SparseCore>
|
|
12
|
+
|
|
13
|
+
#include <Eigen/src/Core/util/DisableStupidWarnings.h>
|
|
14
|
+
|
|
15
|
+
extern "C" {
|
|
16
|
+
#include <btf.h>
|
|
17
|
+
#include <klu.h>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** \ingroup Support_modules
|
|
21
|
+
* \defgroup KLUSupport_Module KLUSupport module
|
|
22
|
+
*
|
|
23
|
+
* This module provides an interface to the KLU library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
|
|
24
|
+
* It provides the following factorization class:
|
|
25
|
+
* - class KLU: a sparse LU factorization, well-suited for circuit simulation.
|
|
26
|
+
*
|
|
27
|
+
* \code
|
|
28
|
+
* #include <Eigen/KLUSupport>
|
|
29
|
+
* \endcode
|
|
30
|
+
*
|
|
31
|
+
* In order to use this module, the klu and btf headers must be accessible from the include paths, and your binary must be linked to the klu library and its dependencies.
|
|
32
|
+
* The dependencies depend on how umfpack has been compiled.
|
|
33
|
+
* For a cmake based project, you can use our FindKLU.cmake module to help you in this task.
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#include "src/KLUSupport/KLUSupport.h"
|
|
38
|
+
|
|
39
|
+
#include <Eigen/src/Core/util/ReenableStupidWarnings.h>
|
|
40
|
+
|
|
41
|
+
#endif // EIGEN_KLUSUPPORT_MODULE_H
|
package/eigen/Eigen/LU
CHANGED
|
@@ -38,13 +38,10 @@
|
|
|
38
38
|
#include "src/LU/Determinant.h"
|
|
39
39
|
#include "src/LU/InverseImpl.h"
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
#if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
|
|
44
|
-
#include "src/LU/arch/Inverse_SSE.h"
|
|
41
|
+
#if defined EIGEN_VECTORIZE_SSE || defined EIGEN_VECTORIZE_NEON
|
|
42
|
+
#include "src/LU/arch/InverseSize4.h"
|
|
45
43
|
#endif
|
|
46
44
|
|
|
47
45
|
#include "src/Core/util/ReenableStupidWarnings.h"
|
|
48
46
|
|
|
49
47
|
#endif // EIGEN_LU_MODULE_H
|
|
50
|
-
/* vim: set filetype=cpp et sw=2 ts=2 ai: */
|
|
@@ -36,6 +36,7 @@ extern "C" {
|
|
|
36
36
|
* \endcode
|
|
37
37
|
*
|
|
38
38
|
* In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
|
|
39
|
+
* This wrapper resuires PaStiX version 5.x compiled without MPI support.
|
|
39
40
|
* The dependencies depend on how PaSTiX has been compiled.
|
|
40
41
|
* For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
|
|
41
42
|
*
|
|
File without changes
|
package/eigen/Eigen/QR
CHANGED
package/eigen/Eigen/SVD
CHANGED
package/eigen/Eigen/Sparse
CHANGED
|
@@ -30,16 +30,8 @@
|
|
|
30
30
|
* \endcode
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
-
#ifdef EIGEN_MPL2_ONLY
|
|
34
|
-
#error The SparseCholesky module has nothing to offer in MPL2 only mode
|
|
35
|
-
#endif
|
|
36
|
-
|
|
37
33
|
#include "src/SparseCholesky/SimplicialCholesky.h"
|
|
38
|
-
|
|
39
|
-
#ifndef EIGEN_MPL2_ONLY
|
|
40
34
|
#include "src/SparseCholesky/SimplicialCholesky_impl.h"
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
35
|
#include "src/Core/util/ReenableStupidWarnings.h"
|
|
44
36
|
|
|
45
37
|
#endif // EIGEN_SPARSECHOLESKY_MODULE_H
|