@smake/eigen 1.0.2 → 1.1.1
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/Eigen/AccelerateSupport +52 -0
- package/eigen/Eigen/Cholesky +18 -21
- package/eigen/Eigen/CholmodSupport +28 -28
- package/eigen/Eigen/Core +235 -326
- package/eigen/Eigen/Eigenvalues +16 -14
- package/eigen/Eigen/Geometry +21 -24
- package/eigen/Eigen/Householder +9 -8
- package/eigen/Eigen/IterativeLinearSolvers +8 -4
- package/eigen/Eigen/Jacobi +14 -14
- package/eigen/Eigen/KLUSupport +43 -0
- package/eigen/Eigen/LU +16 -20
- package/eigen/Eigen/MetisSupport +12 -12
- package/eigen/Eigen/OrderingMethods +54 -54
- package/eigen/Eigen/PaStiXSupport +23 -20
- package/eigen/Eigen/PardisoSupport +17 -14
- package/eigen/Eigen/QR +18 -21
- package/eigen/Eigen/QtAlignedMalloc +5 -13
- package/eigen/Eigen/SPQRSupport +21 -14
- package/eigen/Eigen/SVD +23 -18
- package/eigen/Eigen/Sparse +1 -4
- package/eigen/Eigen/SparseCholesky +18 -23
- package/eigen/Eigen/SparseCore +18 -17
- package/eigen/Eigen/SparseLU +12 -8
- package/eigen/Eigen/SparseQR +16 -14
- package/eigen/Eigen/StdDeque +5 -2
- package/eigen/Eigen/StdList +5 -2
- package/eigen/Eigen/StdVector +5 -2
- package/eigen/Eigen/SuperLUSupport +30 -24
- package/eigen/Eigen/ThreadPool +80 -0
- package/eigen/Eigen/UmfPackSupport +19 -17
- package/eigen/Eigen/Version +14 -0
- package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
- package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
- package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
- package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
- package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
- package/eigen/Eigen/src/Core/Array.h +341 -294
- package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
- package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
- package/eigen/Eigen/src/Core/Assign.h +30 -40
- package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
- package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
- package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
- package/eigen/Eigen/src/Core/Block.h +375 -398
- package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
- package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
- package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
- package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
- package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
- package/eigen/Eigen/src/Core/DenseBase.h +632 -571
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
- package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
- package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
- package/eigen/Eigen/src/Core/Diagonal.h +169 -210
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
- package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
- package/eigen/Eigen/src/Core/Dot.h +172 -222
- package/eigen/Eigen/src/Core/EigenBase.h +75 -85
- package/eigen/Eigen/src/Core/Fill.h +138 -0
- package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
- package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
- package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
- package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
- package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
- package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
- package/eigen/Eigen/src/Core/IO.h +147 -139
- package/eigen/Eigen/src/Core/IndexedView.h +321 -0
- package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
- package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/Inverse.h +56 -66
- package/eigen/Eigen/src/Core/Map.h +124 -142
- package/eigen/Eigen/src/Core/MapBase.h +256 -281
- package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
- package/eigen/Eigen/src/Core/Matrix.h +491 -416
- package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
- package/eigen/Eigen/src/Core/NestByValue.h +66 -85
- package/eigen/Eigen/src/Core/NoAlias.h +79 -85
- package/eigen/Eigen/src/Core/NumTraits.h +235 -148
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
- package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
- package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
- package/eigen/Eigen/src/Core/Product.h +260 -139
- package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
- package/eigen/Eigen/src/Core/Random.h +161 -136
- package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
- package/eigen/Eigen/src/Core/RealView.h +250 -0
- package/eigen/Eigen/src/Core/Redux.h +366 -336
- package/eigen/Eigen/src/Core/Ref.h +308 -209
- package/eigen/Eigen/src/Core/Replicate.h +94 -106
- package/eigen/Eigen/src/Core/Reshaped.h +398 -0
- package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
- package/eigen/Eigen/src/Core/Reverse.h +136 -145
- package/eigen/Eigen/src/Core/Select.h +70 -140
- package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
- package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
- package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
- package/eigen/Eigen/src/Core/Solve.h +97 -111
- package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
- package/eigen/Eigen/src/Core/SolverBase.h +138 -101
- package/eigen/Eigen/src/Core/StableNorm.h +156 -160
- package/eigen/Eigen/src/Core/StlIterators.h +619 -0
- package/eigen/Eigen/src/Core/Stride.h +91 -88
- package/eigen/Eigen/src/Core/Swap.h +70 -38
- package/eigen/Eigen/src/Core/Transpose.h +295 -273
- package/eigen/Eigen/src/Core/Transpositions.h +272 -317
- package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
- package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
- package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
- package/eigen/Eigen/src/Core/Visitor.h +480 -216
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
- package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
- package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
- package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
- package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
- package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
- package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
- package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
- package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
- package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
- package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
- package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
- package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
- package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
- package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
- package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
- package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
- package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
- package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
- package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
- package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
- package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
- package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
- package/eigen/Eigen/src/Core/util/Assert.h +158 -0
- package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
- package/eigen/Eigen/src/Core/util/Constants.h +314 -263
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
- package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
- package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
- package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
- package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
- package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
- package/eigen/Eigen/src/Core/util/Macros.h +939 -646
- package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
- package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
- package/eigen/Eigen/src/Core/util/Meta.h +618 -426
- package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
- package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
- package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
- package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
- package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
- package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
- package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
- package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
- package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
- package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
- package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
- package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
- package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
- package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
- package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
- package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
- package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
- package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
- package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
- package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
- package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
- package/eigen/Eigen/src/Geometry/Transform.h +896 -953
- package/eigen/Eigen/src/Geometry/Translation.h +100 -98
- package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
- package/eigen/Eigen/src/Householder/Householder.h +104 -122
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
- package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
- package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
- package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
- package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
- package/eigen/Eigen/src/LU/Determinant.h +60 -63
- package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
- package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
- package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
- package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
- package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
- package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
- package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
- package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
- package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
- package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
- package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
- package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
- package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
- package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
- package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
- package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
- package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
- package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
- package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
- package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
- package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
- package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
- package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
- package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
- package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
- package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
- package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
- package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
- package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
- package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
- package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
- package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
- package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
- package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
- package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
- package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
- package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
- package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
- package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
- package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
- package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
- package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
- package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
- package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
- package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
- package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
- package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
- package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
- package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
- package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
- package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
- package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
- package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
- package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
- package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
- package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
- package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
- package/eigen/Eigen/src/StlSupport/details.h +48 -50
- package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
- package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
- package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
- package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
- package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
- package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
- package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
- package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
- package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
- package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
- package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
- package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
- package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
- package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
- package/eigen/Eigen/src/misc/Image.h +41 -43
- package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/misc/Kernel.h +39 -41
- package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
- package/eigen/Eigen/src/misc/blas.h +83 -426
- package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
- package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
- package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
- package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
- package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
- package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
- package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -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/BooleanRedux.h +0 -164
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
- package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
- package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
- 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/Core/util/NonMPL2.h +0 -3
- package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
- package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
- package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
- package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
- package/eigen/Eigen/src/misc/lapack.h +0 -152
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
- package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
- package/lib/eigen.d.ts +0 -2
- package/lib/eigen.js +0 -15
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2017 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_RESHAPED_HELPER_H
|
|
11
|
+
#define EIGEN_RESHAPED_HELPER_H
|
|
12
|
+
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
enum AutoSize_t { AutoSize };
|
|
19
|
+
const int AutoOrder = 2;
|
|
20
|
+
|
|
21
|
+
namespace internal {
|
|
22
|
+
|
|
23
|
+
template <typename SizeType, typename OtherSize, int TotalSize>
|
|
24
|
+
struct get_compiletime_reshape_size {
|
|
25
|
+
enum { value = get_fixed_value<SizeType>::value };
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
template <typename SizeType>
|
|
29
|
+
Index get_runtime_reshape_size(SizeType size, Index /*other*/, Index /*total*/) {
|
|
30
|
+
return internal::get_runtime_value(size);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
template <typename OtherSize, int TotalSize>
|
|
34
|
+
struct get_compiletime_reshape_size<AutoSize_t, OtherSize, TotalSize> {
|
|
35
|
+
enum {
|
|
36
|
+
other_size = get_fixed_value<OtherSize>::value,
|
|
37
|
+
value = (TotalSize == Dynamic || other_size == Dynamic) ? Dynamic : TotalSize / other_size
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
inline Index get_runtime_reshape_size(AutoSize_t /*size*/, Index other, Index total) { return total / other; }
|
|
42
|
+
|
|
43
|
+
constexpr int get_compiletime_reshape_order(int flags, int order) {
|
|
44
|
+
return order == AutoOrder ? flags & RowMajorBit : order;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
} // namespace internal
|
|
48
|
+
|
|
49
|
+
} // end namespace Eigen
|
|
50
|
+
|
|
51
|
+
#endif // EIGEN_RESHAPED_HELPER_H
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2021 The Eigen Team
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_SERIALIZER_H
|
|
11
|
+
#define EIGEN_SERIALIZER_H
|
|
12
|
+
|
|
13
|
+
#include <type_traits>
|
|
14
|
+
|
|
15
|
+
// The Serializer class encodes data into a memory buffer so it can be later
|
|
16
|
+
// reconstructed. This is mainly used to send objects back-and-forth between
|
|
17
|
+
// the CPU and GPU.
|
|
18
|
+
|
|
19
|
+
namespace Eigen {
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Serializes an object to a memory buffer.
|
|
23
|
+
*
|
|
24
|
+
* Useful for transferring data (e.g. back-and-forth to a device).
|
|
25
|
+
*/
|
|
26
|
+
template <typename T, typename EnableIf = void>
|
|
27
|
+
class Serializer;
|
|
28
|
+
|
|
29
|
+
// Specialization for POD types.
|
|
30
|
+
template <typename T>
|
|
31
|
+
class Serializer<T,
|
|
32
|
+
typename std::enable_if_t<std::is_trivially_copyable<T>::value && std::is_standard_layout<T>::value>> {
|
|
33
|
+
public:
|
|
34
|
+
/**
|
|
35
|
+
* Determines the required size of the serialization buffer for a value.
|
|
36
|
+
*
|
|
37
|
+
* \param value the value to serialize.
|
|
38
|
+
* \return the required size.
|
|
39
|
+
*/
|
|
40
|
+
EIGEN_DEVICE_FUNC size_t size(const T& value) const { return sizeof(value); }
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Serializes a value to a byte buffer.
|
|
44
|
+
* \param dest the destination buffer; if this is nullptr, does nothing.
|
|
45
|
+
* \param end the end of the destination buffer.
|
|
46
|
+
* \param value the value to serialize.
|
|
47
|
+
* \return the next memory address past the end of the serialized data.
|
|
48
|
+
*/
|
|
49
|
+
EIGEN_DEVICE_FUNC uint8_t* serialize(uint8_t* dest, uint8_t* end, const T& value) {
|
|
50
|
+
if (EIGEN_PREDICT_FALSE(dest == nullptr)) return nullptr;
|
|
51
|
+
if (EIGEN_PREDICT_FALSE(dest + sizeof(value) > end)) return nullptr;
|
|
52
|
+
EIGEN_USING_STD(memcpy)
|
|
53
|
+
memcpy(dest, &value, sizeof(value));
|
|
54
|
+
return dest + sizeof(value);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Deserializes a value from a byte buffer.
|
|
59
|
+
* \param src the source buffer; if this is nullptr, does nothing.
|
|
60
|
+
* \param end the end of the source buffer.
|
|
61
|
+
* \param value the value to populate.
|
|
62
|
+
* \return the next unprocessed memory address; nullptr if parsing errors are detected.
|
|
63
|
+
*/
|
|
64
|
+
EIGEN_DEVICE_FUNC const uint8_t* deserialize(const uint8_t* src, const uint8_t* end, T& value) const {
|
|
65
|
+
if (EIGEN_PREDICT_FALSE(src == nullptr)) return nullptr;
|
|
66
|
+
if (EIGEN_PREDICT_FALSE(src + sizeof(value) > end)) return nullptr;
|
|
67
|
+
EIGEN_USING_STD(memcpy)
|
|
68
|
+
memcpy(&value, src, sizeof(value));
|
|
69
|
+
return src + sizeof(value);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// Specialization for DenseBase.
|
|
74
|
+
// Serializes [rows, cols, data...].
|
|
75
|
+
template <typename Derived>
|
|
76
|
+
class Serializer<DenseBase<Derived>, void> {
|
|
77
|
+
public:
|
|
78
|
+
typedef typename Derived::Scalar Scalar;
|
|
79
|
+
|
|
80
|
+
struct Header {
|
|
81
|
+
typename Derived::Index rows;
|
|
82
|
+
typename Derived::Index cols;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
EIGEN_DEVICE_FUNC size_t size(const Derived& value) const { return sizeof(Header) + sizeof(Scalar) * value.size(); }
|
|
86
|
+
|
|
87
|
+
EIGEN_DEVICE_FUNC uint8_t* serialize(uint8_t* dest, uint8_t* end, const Derived& value) {
|
|
88
|
+
if (EIGEN_PREDICT_FALSE(dest == nullptr)) return nullptr;
|
|
89
|
+
if (EIGEN_PREDICT_FALSE(dest + size(value) > end)) return nullptr;
|
|
90
|
+
const size_t header_bytes = sizeof(Header);
|
|
91
|
+
const size_t data_bytes = sizeof(Scalar) * value.size();
|
|
92
|
+
Header header = {value.rows(), value.cols()};
|
|
93
|
+
EIGEN_USING_STD(memcpy)
|
|
94
|
+
memcpy(dest, &header, header_bytes);
|
|
95
|
+
dest += header_bytes;
|
|
96
|
+
memcpy(dest, value.data(), data_bytes);
|
|
97
|
+
return dest + data_bytes;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
EIGEN_DEVICE_FUNC const uint8_t* deserialize(const uint8_t* src, const uint8_t* end, Derived& value) const {
|
|
101
|
+
if (EIGEN_PREDICT_FALSE(src == nullptr)) return nullptr;
|
|
102
|
+
if (EIGEN_PREDICT_FALSE(src + sizeof(Header) > end)) return nullptr;
|
|
103
|
+
const size_t header_bytes = sizeof(Header);
|
|
104
|
+
Header header;
|
|
105
|
+
EIGEN_USING_STD(memcpy)
|
|
106
|
+
memcpy(&header, src, header_bytes);
|
|
107
|
+
src += header_bytes;
|
|
108
|
+
const size_t data_bytes = sizeof(Scalar) * header.rows * header.cols;
|
|
109
|
+
if (EIGEN_PREDICT_FALSE(src + data_bytes > end)) return nullptr;
|
|
110
|
+
value.resize(header.rows, header.cols);
|
|
111
|
+
memcpy(value.data(), src, data_bytes);
|
|
112
|
+
return src + data_bytes;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
template <typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
|
|
117
|
+
class Serializer<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>
|
|
118
|
+
: public Serializer<DenseBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {};
|
|
119
|
+
|
|
120
|
+
template <typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
|
|
121
|
+
class Serializer<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>
|
|
122
|
+
: public Serializer<DenseBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {};
|
|
123
|
+
|
|
124
|
+
namespace internal {
|
|
125
|
+
|
|
126
|
+
// Recursive serialization implementation helper.
|
|
127
|
+
template <size_t N, typename... Types>
|
|
128
|
+
struct serialize_impl;
|
|
129
|
+
|
|
130
|
+
template <size_t N, typename T1, typename... Ts>
|
|
131
|
+
struct serialize_impl<N, T1, Ts...> {
|
|
132
|
+
using Serializer = Eigen::Serializer<typename std::decay<T1>::type>;
|
|
133
|
+
|
|
134
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size(const T1& value, const Ts&... args) {
|
|
135
|
+
Serializer serializer;
|
|
136
|
+
size_t size = serializer.size(value);
|
|
137
|
+
return size + serialize_impl<N - 1, Ts...>::serialize_size(args...);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* end, const T1& value,
|
|
141
|
+
const Ts&... args) {
|
|
142
|
+
Serializer serializer;
|
|
143
|
+
dest = serializer.serialize(dest, end, value);
|
|
144
|
+
return serialize_impl<N - 1, Ts...>::serialize(dest, end, args...);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* end,
|
|
148
|
+
T1& value, Ts&... args) {
|
|
149
|
+
Serializer serializer;
|
|
150
|
+
src = serializer.deserialize(src, end, value);
|
|
151
|
+
return serialize_impl<N - 1, Ts...>::deserialize(src, end, args...);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// Base case.
|
|
156
|
+
template <>
|
|
157
|
+
struct serialize_impl<0> {
|
|
158
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size() { return 0; }
|
|
159
|
+
|
|
160
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* /*end*/) { return dest; }
|
|
161
|
+
|
|
162
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* /*end*/) {
|
|
163
|
+
return src;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
} // namespace internal
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Determine the buffer size required to serialize a set of values.
|
|
171
|
+
*
|
|
172
|
+
* \param args ... arguments to serialize in sequence.
|
|
173
|
+
* \return the total size of the required buffer.
|
|
174
|
+
*/
|
|
175
|
+
template <typename... Args>
|
|
176
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size(const Args&... args) {
|
|
177
|
+
return internal::serialize_impl<sizeof...(args), Args...>::serialize_size(args...);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Serialize a set of values to the byte buffer.
|
|
182
|
+
*
|
|
183
|
+
* \param dest output byte buffer; if this is nullptr, does nothing.
|
|
184
|
+
* \param end the end of the output byte buffer.
|
|
185
|
+
* \param args ... arguments to serialize in sequence.
|
|
186
|
+
* \return the next address after all serialized values.
|
|
187
|
+
*/
|
|
188
|
+
template <typename... Args>
|
|
189
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* end, const Args&... args) {
|
|
190
|
+
return internal::serialize_impl<sizeof...(args), Args...>::serialize(dest, end, args...);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Deserialize a set of values from the byte buffer.
|
|
195
|
+
*
|
|
196
|
+
* \param src input byte buffer; if this is nullptr, does nothing.
|
|
197
|
+
* \param end the end of input byte buffer.
|
|
198
|
+
* \param args ... arguments to deserialize in sequence.
|
|
199
|
+
* \return the next address after all parsed values; nullptr if parsing errors are detected.
|
|
200
|
+
*/
|
|
201
|
+
template <typename... Args>
|
|
202
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* end,
|
|
203
|
+
Args&... args) {
|
|
204
|
+
return internal::serialize_impl<sizeof...(args), Args...>::deserialize(src, end, args...);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
} // namespace Eigen
|
|
208
|
+
|
|
209
|
+
#endif // EIGEN_SERIALIZER_H
|
|
@@ -16,10 +16,6 @@
|
|
|
16
16
|
* - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
|
|
17
17
|
* expression, and MSG an enum listed in struct internal::static_assertion<true>
|
|
18
18
|
*
|
|
19
|
-
* - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
|
|
20
|
-
* in that case, the static assertion is converted to the following runtime assert:
|
|
21
|
-
* eigen_assert(CONDITION && "MSG")
|
|
22
|
-
*
|
|
23
19
|
* - currently EIGEN_STATIC_ASSERT can only be used in function scope
|
|
24
20
|
*
|
|
25
21
|
*/
|
|
@@ -27,192 +23,83 @@
|
|
|
27
23
|
#ifndef EIGEN_STATIC_ASSERT
|
|
28
24
|
#ifndef EIGEN_NO_STATIC_ASSERT
|
|
29
25
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
namespace internal {
|
|
40
|
-
|
|
41
|
-
template<bool condition>
|
|
42
|
-
struct static_assertion {};
|
|
43
|
-
|
|
44
|
-
template<>
|
|
45
|
-
struct static_assertion<true>
|
|
46
|
-
{
|
|
47
|
-
enum {
|
|
48
|
-
YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX=1,
|
|
49
|
-
YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES=1,
|
|
50
|
-
YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES=1,
|
|
51
|
-
THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE=1,
|
|
52
|
-
THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE=1,
|
|
53
|
-
THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE=1,
|
|
54
|
-
OUT_OF_RANGE_ACCESS=1,
|
|
55
|
-
YOU_MADE_A_PROGRAMMING_MISTAKE=1,
|
|
56
|
-
EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT=1,
|
|
57
|
-
EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE=1,
|
|
58
|
-
YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR=1,
|
|
59
|
-
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR=1,
|
|
60
|
-
UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC=1,
|
|
61
|
-
THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES=1,
|
|
62
|
-
FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED=1,
|
|
63
|
-
NUMERIC_TYPE_MUST_BE_REAL=1,
|
|
64
|
-
COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED=1,
|
|
65
|
-
WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED=1,
|
|
66
|
-
THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE=1,
|
|
67
|
-
INVALID_MATRIX_PRODUCT=1,
|
|
68
|
-
INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS=1,
|
|
69
|
-
INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION=1,
|
|
70
|
-
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY=1,
|
|
71
|
-
THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES=1,
|
|
72
|
-
THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES=1,
|
|
73
|
-
INVALID_MATRIX_TEMPLATE_PARAMETERS=1,
|
|
74
|
-
INVALID_MATRIXBASE_TEMPLATE_PARAMETERS=1,
|
|
75
|
-
BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER=1,
|
|
76
|
-
THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX=1,
|
|
77
|
-
THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE=1,
|
|
78
|
-
THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES=1,
|
|
79
|
-
YOU_ALREADY_SPECIFIED_THIS_STRIDE=1,
|
|
80
|
-
INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION=1,
|
|
81
|
-
THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD=1,
|
|
82
|
-
PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1=1,
|
|
83
|
-
THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS=1,
|
|
84
|
-
YOU_CANNOT_MIX_ARRAYS_AND_MATRICES=1,
|
|
85
|
-
YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION=1,
|
|
86
|
-
THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY=1,
|
|
87
|
-
YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT=1,
|
|
88
|
-
THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS=1,
|
|
89
|
-
THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS=1,
|
|
90
|
-
THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL=1,
|
|
91
|
-
THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES=1,
|
|
92
|
-
YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED=1,
|
|
93
|
-
YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED=1,
|
|
94
|
-
THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE=1,
|
|
95
|
-
THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH=1,
|
|
96
|
-
OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG=1,
|
|
97
|
-
IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY=1,
|
|
98
|
-
STORAGE_LAYOUT_DOES_NOT_MATCH=1,
|
|
99
|
-
EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE=1,
|
|
100
|
-
THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS=1,
|
|
101
|
-
MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY=1,
|
|
102
|
-
THIS_TYPE_IS_NOT_SUPPORTED=1,
|
|
103
|
-
STORAGE_KIND_MUST_MATCH=1,
|
|
104
|
-
STORAGE_INDEX_MUST_MATCH=1,
|
|
105
|
-
CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY=1,
|
|
106
|
-
SELFADJOINTVIEW_ACCEPTS_UPPER_AND_LOWER_MODE_ONLY=1
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
} // end namespace internal
|
|
111
|
-
|
|
112
|
-
} // end namespace Eigen
|
|
113
|
-
|
|
114
|
-
// Specialized implementation for MSVC to avoid "conditional
|
|
115
|
-
// expression is constant" warnings. This implementation doesn't
|
|
116
|
-
// appear to work under GCC, hence the multiple implementations.
|
|
117
|
-
#if EIGEN_COMP_MSVC
|
|
118
|
-
|
|
119
|
-
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
|
120
|
-
{Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
|
|
121
|
-
|
|
122
|
-
#else
|
|
123
|
-
// In some cases clang interprets bool(CONDITION) as function declaration
|
|
124
|
-
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
|
125
|
-
if (Eigen::internal::static_assertion<static_cast<bool>(CONDITION)>::MSG) {}
|
|
126
|
-
|
|
127
|
-
#endif
|
|
128
|
-
|
|
129
|
-
#endif // not CXX0X
|
|
130
|
-
|
|
131
|
-
#else // EIGEN_NO_STATIC_ASSERT
|
|
132
|
-
|
|
133
|
-
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
|
|
134
|
-
|
|
135
|
-
#endif // EIGEN_NO_STATIC_ASSERT
|
|
136
|
-
#endif // EIGEN_STATIC_ASSERT
|
|
26
|
+
#define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
|
|
27
|
+
|
|
28
|
+
#else // EIGEN_NO_STATIC_ASSERT
|
|
29
|
+
|
|
30
|
+
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
|
|
31
|
+
|
|
32
|
+
#endif // EIGEN_NO_STATIC_ASSERT
|
|
33
|
+
#endif // EIGEN_STATIC_ASSERT
|
|
137
34
|
|
|
138
35
|
// static assertion failing if the type \a TYPE is not a vector type
|
|
139
36
|
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
|
|
140
|
-
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime,
|
|
141
|
-
YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
|
|
37
|
+
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
|
|
142
38
|
|
|
143
39
|
// static assertion failing if the type \a TYPE is not fixed-size
|
|
144
|
-
#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE)
|
|
145
|
-
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
|
|
40
|
+
#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
|
|
41
|
+
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime != Eigen::Dynamic, \
|
|
146
42
|
YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
|
|
147
43
|
|
|
148
44
|
// static assertion failing if the type \a TYPE is not dynamic-size
|
|
149
|
-
#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE)
|
|
150
|
-
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
|
|
45
|
+
#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
|
|
46
|
+
EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime == Eigen::Dynamic, \
|
|
151
47
|
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
|
|
152
48
|
|
|
153
49
|
// static assertion failing if the type \a TYPE is not a vector type of the given size
|
|
154
|
-
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
|
|
155
|
-
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime
|
|
50
|
+
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
|
|
51
|
+
EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime&& TYPE::SizeAtCompileTime == SIZE, \
|
|
156
52
|
THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
|
|
157
53
|
|
|
158
54
|
// static assertion failing if the type \a TYPE is not a vector type of the given size
|
|
159
|
-
#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS)
|
|
160
|
-
EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
|
|
55
|
+
#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
|
|
56
|
+
EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime == ROWS && TYPE::ColsAtCompileTime == COLS, \
|
|
161
57
|
THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
|
|
162
58
|
|
|
163
59
|
// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
|
|
164
|
-
#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1)
|
|
165
|
-
EIGEN_STATIC_ASSERT(
|
|
166
|
-
(int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|| int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
|
|
178
|
-
&& (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
|
|
179
|
-
|| int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
|
|
180
|
-
|| int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
|
|
181
|
-
) \
|
|
182
|
-
)
|
|
60
|
+
#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0, TYPE1) \
|
|
61
|
+
EIGEN_STATIC_ASSERT( \
|
|
62
|
+
(int(TYPE0::SizeAtCompileTime) == Eigen::Dynamic || int(TYPE1::SizeAtCompileTime) == Eigen::Dynamic || \
|
|
63
|
+
int(TYPE0::SizeAtCompileTime) == int(TYPE1::SizeAtCompileTime)), \
|
|
64
|
+
YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
|
|
65
|
+
|
|
66
|
+
#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0, TYPE1) \
|
|
67
|
+
((int(Eigen::internal::size_of_xpr_at_compile_time<TYPE0>::ret) == 0 && \
|
|
68
|
+
int(Eigen::internal::size_of_xpr_at_compile_time<TYPE1>::ret) == 0) || \
|
|
69
|
+
((int(TYPE0::RowsAtCompileTime) == Eigen::Dynamic || int(TYPE1::RowsAtCompileTime) == Eigen::Dynamic || \
|
|
70
|
+
int(TYPE0::RowsAtCompileTime) == int(TYPE1::RowsAtCompileTime)) && \
|
|
71
|
+
(int(TYPE0::ColsAtCompileTime) == Eigen::Dynamic || int(TYPE1::ColsAtCompileTime) == Eigen::Dynamic || \
|
|
72
|
+
int(TYPE0::ColsAtCompileTime) == int(TYPE1::ColsAtCompileTime))))
|
|
183
73
|
|
|
184
74
|
#define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
|
|
185
|
-
|
|
186
|
-
|
|
75
|
+
EIGEN_STATIC_ASSERT(!Eigen::NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
|
|
187
76
|
|
|
188
|
-
// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
|
|
77
|
+
// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different
|
|
78
|
+
// sizes
|
|
79
|
+
#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0, TYPE1) \
|
|
80
|
+
EIGEN_STATIC_ASSERT(EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0, TYPE1), YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
|
|
193
81
|
|
|
194
|
-
#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE)
|
|
195
|
-
|
|
196
|
-
(TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
|
|
197
|
-
|
|
82
|
+
#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
|
|
83
|
+
EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Eigen::Dynamic) && \
|
|
84
|
+
(TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Eigen::Dynamic), \
|
|
85
|
+
THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
|
|
198
86
|
|
|
199
87
|
#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
|
|
200
|
-
|
|
201
|
-
THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
|
|
88
|
+
EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
|
|
202
89
|
|
|
203
|
-
#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived)
|
|
204
|
-
|
|
205
|
-
|
|
90
|
+
#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
|
|
91
|
+
EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived>::XprKind, ArrayXpr>::value), \
|
|
92
|
+
THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
|
|
206
93
|
|
|
207
|
-
#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
|
|
94
|
+
#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
|
|
95
|
+
EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived1>::XprKind, \
|
|
96
|
+
typename Eigen::internal::traits<Derived2>::XprKind>::value), \
|
|
97
|
+
YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
|
|
212
98
|
|
|
213
99
|
// Check that a cost value is positive, and that is stay within a reasonable range
|
|
214
100
|
// TODO this check could be enabled for internal debugging only
|
|
215
|
-
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C)
|
|
216
|
-
|
|
101
|
+
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C) \
|
|
102
|
+
EIGEN_STATIC_ASSERT((C) >= 0 && (C) <= HugeCost * HugeCost, \
|
|
103
|
+
EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE);
|
|
217
104
|
|
|
218
|
-
#endif
|
|
105
|
+
#endif // EIGEN_STATIC_ASSERT_H
|