@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
|
@@ -10,359 +10,314 @@
|
|
|
10
10
|
#ifndef EIGEN_TRANSPOSITIONS_H
|
|
11
11
|
#define EIGEN_TRANSPOSITIONS_H
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
{ return Transpose<TranspositionsBase>(derived()); }
|
|
99
|
-
|
|
100
|
-
/** \returns the tranpose transformation */
|
|
101
|
-
inline Transpose<TranspositionsBase> transpose() const
|
|
102
|
-
{ return Transpose<TranspositionsBase>(derived()); }
|
|
103
|
-
|
|
104
|
-
protected:
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
template <typename Derived>
|
|
19
|
+
class TranspositionsBase {
|
|
20
|
+
typedef internal::traits<Derived> Traits;
|
|
21
|
+
|
|
22
|
+
public:
|
|
23
|
+
typedef typename Traits::IndicesType IndicesType;
|
|
24
|
+
typedef typename IndicesType::Scalar StorageIndex;
|
|
25
|
+
typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
|
|
26
|
+
|
|
27
|
+
EIGEN_DEVICE_FUNC Derived& derived() { return *static_cast<Derived*>(this); }
|
|
28
|
+
EIGEN_DEVICE_FUNC const Derived& derived() const { return *static_cast<const Derived*>(this); }
|
|
29
|
+
|
|
30
|
+
/** Copies the \a other transpositions into \c *this */
|
|
31
|
+
template <typename OtherDerived>
|
|
32
|
+
Derived& operator=(const TranspositionsBase<OtherDerived>& other) {
|
|
33
|
+
indices() = other.indices();
|
|
34
|
+
return derived();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** \returns the number of transpositions */
|
|
38
|
+
EIGEN_DEVICE_FUNC Index size() const { return indices().size(); }
|
|
39
|
+
/** \returns the number of rows of the equivalent permutation matrix */
|
|
40
|
+
EIGEN_DEVICE_FUNC Index rows() const { return indices().size(); }
|
|
41
|
+
/** \returns the number of columns of the equivalent permutation matrix */
|
|
42
|
+
EIGEN_DEVICE_FUNC Index cols() const { return indices().size(); }
|
|
43
|
+
|
|
44
|
+
/** Direct access to the underlying index vector */
|
|
45
|
+
EIGEN_DEVICE_FUNC inline const StorageIndex& coeff(Index i) const { return indices().coeff(i); }
|
|
46
|
+
/** Direct access to the underlying index vector */
|
|
47
|
+
inline StorageIndex& coeffRef(Index i) { return indices().coeffRef(i); }
|
|
48
|
+
/** Direct access to the underlying index vector */
|
|
49
|
+
inline const StorageIndex& operator()(Index i) const { return indices()(i); }
|
|
50
|
+
/** Direct access to the underlying index vector */
|
|
51
|
+
inline StorageIndex& operator()(Index i) { return indices()(i); }
|
|
52
|
+
/** Direct access to the underlying index vector */
|
|
53
|
+
inline const StorageIndex& operator[](Index i) const { return indices()(i); }
|
|
54
|
+
/** Direct access to the underlying index vector */
|
|
55
|
+
inline StorageIndex& operator[](Index i) { return indices()(i); }
|
|
56
|
+
|
|
57
|
+
/** const version of indices(). */
|
|
58
|
+
EIGEN_DEVICE_FUNC const IndicesType& indices() const { return derived().indices(); }
|
|
59
|
+
/** \returns a reference to the stored array representing the transpositions. */
|
|
60
|
+
EIGEN_DEVICE_FUNC IndicesType& indices() { return derived().indices(); }
|
|
61
|
+
|
|
62
|
+
/** Resizes to given size. */
|
|
63
|
+
inline void resize(Index newSize) { indices().resize(newSize); }
|
|
64
|
+
|
|
65
|
+
/** Sets \c *this to represents an identity transformation */
|
|
66
|
+
void setIdentity() {
|
|
67
|
+
for (StorageIndex i = 0; i < indices().size(); ++i) coeffRef(i) = i;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// FIXME: do we want such methods ?
|
|
71
|
+
// might be useful when the target matrix expression is complex, e.g.:
|
|
72
|
+
// object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
|
|
73
|
+
/*
|
|
74
|
+
template<typename MatrixType>
|
|
75
|
+
void applyForwardToRows(MatrixType& mat) const
|
|
76
|
+
{
|
|
77
|
+
for(Index k=0 ; k<size() ; ++k)
|
|
78
|
+
if(m_indices(k)!=k)
|
|
79
|
+
mat.row(k).swap(mat.row(m_indices(k)));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
template<typename MatrixType>
|
|
83
|
+
void applyBackwardToRows(MatrixType& mat) const
|
|
84
|
+
{
|
|
85
|
+
for(Index k=size()-1 ; k>=0 ; --k)
|
|
86
|
+
if(m_indices(k)!=k)
|
|
87
|
+
mat.row(k).swap(mat.row(m_indices(k)));
|
|
88
|
+
}
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
/** \returns the inverse transformation */
|
|
92
|
+
inline Transpose<TranspositionsBase> inverse() const { return Transpose<TranspositionsBase>(derived()); }
|
|
93
|
+
|
|
94
|
+
/** \returns the transpose transformation */
|
|
95
|
+
inline Transpose<TranspositionsBase> transpose() const { return Transpose<TranspositionsBase>(derived()); }
|
|
96
|
+
|
|
97
|
+
protected:
|
|
105
98
|
};
|
|
106
99
|
|
|
107
100
|
namespace internal {
|
|
108
|
-
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename
|
|
109
|
-
struct traits<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
typedef Matrix<_StorageIndex, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
|
|
101
|
+
template <int SizeAtCompileTime, int MaxSizeAtCompileTime, typename StorageIndex_>
|
|
102
|
+
struct traits<Transpositions<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_> >
|
|
103
|
+
: traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_> > {
|
|
104
|
+
typedef Matrix<StorageIndex_, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
|
|
113
105
|
typedef TranspositionsStorage StorageKind;
|
|
114
106
|
};
|
|
115
|
-
}
|
|
107
|
+
} // namespace internal
|
|
116
108
|
|
|
117
109
|
/** \class Transpositions
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
protected:
|
|
186
|
-
|
|
187
|
-
IndicesType m_indices;
|
|
110
|
+
* \ingroup Core_Module
|
|
111
|
+
*
|
|
112
|
+
* \brief Represents a sequence of transpositions (row/column interchange)
|
|
113
|
+
*
|
|
114
|
+
* \tparam SizeAtCompileTime the number of transpositions, or Dynamic
|
|
115
|
+
* \tparam MaxSizeAtCompileTime the maximum number of transpositions, or Dynamic. This optional parameter defaults to
|
|
116
|
+
* SizeAtCompileTime. Most of the time, you should not have to specify it.
|
|
117
|
+
*
|
|
118
|
+
* This class represents a permutation transformation as a sequence of \em n transpositions
|
|
119
|
+
* \f$[T_{n-1} \ldots T_{i} \ldots T_{0}]\f$. It is internally stored as a vector of integers \c indices.
|
|
120
|
+
* Each transposition \f$ T_{i} \f$ applied on the left of a matrix (\f$ T_{i} M\f$) interchanges
|
|
121
|
+
* the rows \c i and \c indices[i] of the matrix \c M.
|
|
122
|
+
* A transposition applied on the right (e.g., \f$ M T_{i}\f$) yields a column interchange.
|
|
123
|
+
*
|
|
124
|
+
* Compared to the class PermutationMatrix, such a sequence of transpositions is what is
|
|
125
|
+
* computed during a decomposition with pivoting, and it is faster when applying the permutation in-place.
|
|
126
|
+
*
|
|
127
|
+
* To apply a sequence of transpositions to a matrix, simply use the operator * as in the following example:
|
|
128
|
+
* \code
|
|
129
|
+
* Transpositions tr;
|
|
130
|
+
* MatrixXf mat;
|
|
131
|
+
* mat = tr * mat;
|
|
132
|
+
* \endcode
|
|
133
|
+
* In this example, we detect that the matrix appears on both side, and so the transpositions
|
|
134
|
+
* are applied in-place without any temporary or extra copy.
|
|
135
|
+
*
|
|
136
|
+
* \sa class PermutationMatrix
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
template <int SizeAtCompileTime, int MaxSizeAtCompileTime, typename StorageIndex_>
|
|
140
|
+
class Transpositions
|
|
141
|
+
: public TranspositionsBase<Transpositions<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_> > {
|
|
142
|
+
typedef internal::traits<Transpositions> Traits;
|
|
143
|
+
|
|
144
|
+
public:
|
|
145
|
+
typedef TranspositionsBase<Transpositions> Base;
|
|
146
|
+
typedef typename Traits::IndicesType IndicesType;
|
|
147
|
+
typedef typename IndicesType::Scalar StorageIndex;
|
|
148
|
+
|
|
149
|
+
inline Transpositions() {}
|
|
150
|
+
|
|
151
|
+
/** Copy constructor. */
|
|
152
|
+
template <typename OtherDerived>
|
|
153
|
+
inline Transpositions(const TranspositionsBase<OtherDerived>& other) : m_indices(other.indices()) {}
|
|
154
|
+
|
|
155
|
+
/** Generic constructor from expression of the transposition indices. */
|
|
156
|
+
template <typename Other>
|
|
157
|
+
explicit inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indices) {}
|
|
158
|
+
|
|
159
|
+
/** Copies the \a other transpositions into \c *this */
|
|
160
|
+
template <typename OtherDerived>
|
|
161
|
+
Transpositions& operator=(const TranspositionsBase<OtherDerived>& other) {
|
|
162
|
+
return Base::operator=(other);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** Constructs an uninitialized permutation matrix of given size.
|
|
166
|
+
*/
|
|
167
|
+
inline Transpositions(Index size) : m_indices(size) {}
|
|
168
|
+
|
|
169
|
+
/** const version of indices(). */
|
|
170
|
+
EIGEN_DEVICE_FUNC const IndicesType& indices() const { return m_indices; }
|
|
171
|
+
/** \returns a reference to the stored array representing the transpositions. */
|
|
172
|
+
EIGEN_DEVICE_FUNC IndicesType& indices() { return m_indices; }
|
|
173
|
+
|
|
174
|
+
protected:
|
|
175
|
+
IndicesType m_indices;
|
|
188
176
|
};
|
|
189
177
|
|
|
190
|
-
|
|
191
178
|
namespace internal {
|
|
192
|
-
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename
|
|
193
|
-
struct traits<Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
typedef
|
|
197
|
-
typedef _StorageIndex StorageIndex;
|
|
179
|
+
template <int SizeAtCompileTime, int MaxSizeAtCompileTime, typename StorageIndex_, int PacketAccess_>
|
|
180
|
+
struct traits<Map<Transpositions<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_>, PacketAccess_> >
|
|
181
|
+
: traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_> > {
|
|
182
|
+
typedef Map<const Matrix<StorageIndex_, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1>, PacketAccess_> IndicesType;
|
|
183
|
+
typedef StorageIndex_ StorageIndex;
|
|
198
184
|
typedef TranspositionsStorage StorageKind;
|
|
199
185
|
};
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename
|
|
203
|
-
class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,
|
|
204
|
-
|
|
205
|
-
{
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
/** \returns a reference to the stored array representing the transpositions. */
|
|
243
|
-
IndicesType& indices() { return m_indices; }
|
|
244
|
-
|
|
245
|
-
protected:
|
|
246
|
-
|
|
247
|
-
IndicesType m_indices;
|
|
186
|
+
} // namespace internal
|
|
187
|
+
|
|
188
|
+
template <int SizeAtCompileTime, int MaxSizeAtCompileTime, typename StorageIndex_, int PacketAccess>
|
|
189
|
+
class Map<Transpositions<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_>, PacketAccess>
|
|
190
|
+
: public TranspositionsBase<
|
|
191
|
+
Map<Transpositions<SizeAtCompileTime, MaxSizeAtCompileTime, StorageIndex_>, PacketAccess> > {
|
|
192
|
+
typedef internal::traits<Map> Traits;
|
|
193
|
+
|
|
194
|
+
public:
|
|
195
|
+
typedef TranspositionsBase<Map> Base;
|
|
196
|
+
typedef typename Traits::IndicesType IndicesType;
|
|
197
|
+
typedef typename IndicesType::Scalar StorageIndex;
|
|
198
|
+
|
|
199
|
+
explicit inline Map(const StorageIndex* indicesPtr) : m_indices(indicesPtr) {}
|
|
200
|
+
|
|
201
|
+
inline Map(const StorageIndex* indicesPtr, Index size) : m_indices(indicesPtr, size) {}
|
|
202
|
+
|
|
203
|
+
/** Copies the \a other transpositions into \c *this */
|
|
204
|
+
template <typename OtherDerived>
|
|
205
|
+
Map& operator=(const TranspositionsBase<OtherDerived>& other) {
|
|
206
|
+
return Base::operator=(other);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
210
|
+
/** This is a special case of the templated operator=. Its purpose is to
|
|
211
|
+
* prevent a default operator= from hiding the templated operator=.
|
|
212
|
+
*/
|
|
213
|
+
Map& operator=(const Map& other) {
|
|
214
|
+
m_indices = other.m_indices;
|
|
215
|
+
return *this;
|
|
216
|
+
}
|
|
217
|
+
#endif
|
|
218
|
+
|
|
219
|
+
/** const version of indices(). */
|
|
220
|
+
EIGEN_DEVICE_FUNC const IndicesType& indices() const { return m_indices; }
|
|
221
|
+
|
|
222
|
+
/** \returns a reference to the stored array representing the transpositions. */
|
|
223
|
+
EIGEN_DEVICE_FUNC IndicesType& indices() { return m_indices; }
|
|
224
|
+
|
|
225
|
+
protected:
|
|
226
|
+
IndicesType m_indices;
|
|
248
227
|
};
|
|
249
228
|
|
|
250
229
|
namespace internal {
|
|
251
|
-
template<typename
|
|
252
|
-
struct traits<TranspositionsWrapper<
|
|
253
|
-
: traits<PermutationWrapper<_IndicesType> >
|
|
254
|
-
{
|
|
230
|
+
template <typename IndicesType_>
|
|
231
|
+
struct traits<TranspositionsWrapper<IndicesType_> > : traits<PermutationWrapper<IndicesType_> > {
|
|
255
232
|
typedef TranspositionsStorage StorageKind;
|
|
256
233
|
};
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
template<typename _IndicesType>
|
|
260
|
-
class TranspositionsWrapper
|
|
261
|
-
: public TranspositionsBase<TranspositionsWrapper<_IndicesType> >
|
|
262
|
-
{
|
|
263
|
-
typedef internal::traits<TranspositionsWrapper> Traits;
|
|
264
|
-
public:
|
|
234
|
+
} // namespace internal
|
|
265
235
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
236
|
+
template <typename IndicesType_>
|
|
237
|
+
class TranspositionsWrapper : public TranspositionsBase<TranspositionsWrapper<IndicesType_> > {
|
|
238
|
+
typedef internal::traits<TranspositionsWrapper> Traits;
|
|
269
239
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
240
|
+
public:
|
|
241
|
+
typedef TranspositionsBase<TranspositionsWrapper> Base;
|
|
242
|
+
typedef typename Traits::IndicesType IndicesType;
|
|
243
|
+
typedef typename IndicesType::Scalar StorageIndex;
|
|
273
244
|
|
|
274
|
-
|
|
275
|
-
template<typename OtherDerived>
|
|
276
|
-
TranspositionsWrapper& operator=(const TranspositionsBase<OtherDerived>& other)
|
|
277
|
-
{
|
|
278
|
-
return Base::operator=(other);
|
|
279
|
-
}
|
|
245
|
+
explicit inline TranspositionsWrapper(IndicesType& indices) : m_indices(indices) {}
|
|
280
246
|
|
|
281
|
-
|
|
282
|
-
|
|
247
|
+
/** Copies the \a other transpositions into \c *this */
|
|
248
|
+
template <typename OtherDerived>
|
|
249
|
+
TranspositionsWrapper& operator=(const TranspositionsBase<OtherDerived>& other) {
|
|
250
|
+
return Base::operator=(other);
|
|
251
|
+
}
|
|
283
252
|
|
|
284
|
-
|
|
285
|
-
|
|
253
|
+
/** const version of indices(). */
|
|
254
|
+
EIGEN_DEVICE_FUNC const IndicesType& indices() const { return m_indices; }
|
|
286
255
|
|
|
287
|
-
|
|
256
|
+
/** \returns a reference to the stored array representing the transpositions. */
|
|
257
|
+
EIGEN_DEVICE_FUNC IndicesType& indices() { return m_indices; }
|
|
288
258
|
|
|
289
|
-
|
|
259
|
+
protected:
|
|
260
|
+
typename IndicesType::Nested m_indices;
|
|
290
261
|
};
|
|
291
262
|
|
|
292
|
-
|
|
293
|
-
|
|
294
263
|
/** \returns the \a matrix with the \a transpositions applied to the columns.
|
|
295
|
-
|
|
296
|
-
template<typename MatrixDerived, typename TranspositionsDerived>
|
|
297
|
-
EIGEN_DEVICE_FUNC
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
const TranspositionsBase<TranspositionsDerived>& transpositions)
|
|
301
|
-
{
|
|
302
|
-
return Product<MatrixDerived, TranspositionsDerived, AliasFreeProduct>
|
|
303
|
-
(matrix.derived(), transpositions.derived());
|
|
264
|
+
*/
|
|
265
|
+
template <typename MatrixDerived, typename TranspositionsDerived>
|
|
266
|
+
EIGEN_DEVICE_FUNC const Product<MatrixDerived, TranspositionsDerived, AliasFreeProduct> operator*(
|
|
267
|
+
const MatrixBase<MatrixDerived>& matrix, const TranspositionsBase<TranspositionsDerived>& transpositions) {
|
|
268
|
+
return Product<MatrixDerived, TranspositionsDerived, AliasFreeProduct>(matrix.derived(), transpositions.derived());
|
|
304
269
|
}
|
|
305
270
|
|
|
306
271
|
/** \returns the \a matrix with the \a transpositions applied to the rows.
|
|
307
|
-
|
|
308
|
-
template<typename TranspositionsDerived, typename MatrixDerived>
|
|
309
|
-
EIGEN_DEVICE_FUNC
|
|
310
|
-
const
|
|
311
|
-
|
|
312
|
-
const MatrixBase<MatrixDerived>& matrix)
|
|
313
|
-
{
|
|
314
|
-
return Product<TranspositionsDerived, MatrixDerived, AliasFreeProduct>
|
|
315
|
-
(transpositions.derived(), matrix.derived());
|
|
272
|
+
*/
|
|
273
|
+
template <typename TranspositionsDerived, typename MatrixDerived>
|
|
274
|
+
EIGEN_DEVICE_FUNC const Product<TranspositionsDerived, MatrixDerived, AliasFreeProduct> operator*(
|
|
275
|
+
const TranspositionsBase<TranspositionsDerived>& transpositions, const MatrixBase<MatrixDerived>& matrix) {
|
|
276
|
+
return Product<TranspositionsDerived, MatrixDerived, AliasFreeProduct>(transpositions.derived(), matrix.derived());
|
|
316
277
|
}
|
|
317
278
|
|
|
318
279
|
// Template partial specialization for transposed/inverse transpositions
|
|
319
280
|
|
|
320
281
|
namespace internal {
|
|
321
282
|
|
|
322
|
-
template<typename Derived>
|
|
323
|
-
struct traits<Transpose<TranspositionsBase<Derived> > >
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
const TranspositionType& nestedExpression() const { return m_transpositions; }
|
|
361
|
-
|
|
362
|
-
protected:
|
|
363
|
-
const TranspositionType& m_transpositions;
|
|
283
|
+
template <typename Derived>
|
|
284
|
+
struct traits<Transpose<TranspositionsBase<Derived> > > : traits<Derived> {};
|
|
285
|
+
|
|
286
|
+
} // end namespace internal
|
|
287
|
+
|
|
288
|
+
template <typename TranspositionsDerived>
|
|
289
|
+
class Transpose<TranspositionsBase<TranspositionsDerived> > {
|
|
290
|
+
typedef TranspositionsDerived TranspositionType;
|
|
291
|
+
typedef typename TranspositionType::IndicesType IndicesType;
|
|
292
|
+
|
|
293
|
+
public:
|
|
294
|
+
explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
|
|
295
|
+
|
|
296
|
+
EIGEN_DEVICE_FUNC constexpr Index size() const noexcept { return m_transpositions.size(); }
|
|
297
|
+
EIGEN_DEVICE_FUNC constexpr Index rows() const noexcept { return m_transpositions.size(); }
|
|
298
|
+
EIGEN_DEVICE_FUNC constexpr Index cols() const noexcept { return m_transpositions.size(); }
|
|
299
|
+
|
|
300
|
+
/** \returns the \a matrix with the inverse transpositions applied to the columns.
|
|
301
|
+
*/
|
|
302
|
+
template <typename OtherDerived>
|
|
303
|
+
friend const Product<OtherDerived, Transpose, AliasFreeProduct> operator*(const MatrixBase<OtherDerived>& matrix,
|
|
304
|
+
const Transpose& trt) {
|
|
305
|
+
return Product<OtherDerived, Transpose, AliasFreeProduct>(matrix.derived(), trt);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/** \returns the \a matrix with the inverse transpositions applied to the rows.
|
|
309
|
+
*/
|
|
310
|
+
template <typename OtherDerived>
|
|
311
|
+
const Product<Transpose, OtherDerived, AliasFreeProduct> operator*(const MatrixBase<OtherDerived>& matrix) const {
|
|
312
|
+
return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
EIGEN_DEVICE_FUNC const TranspositionType& nestedExpression() const { return m_transpositions; }
|
|
316
|
+
|
|
317
|
+
protected:
|
|
318
|
+
const TranspositionType& m_transpositions;
|
|
364
319
|
};
|
|
365
320
|
|
|
366
|
-
}
|
|
321
|
+
} // end namespace Eigen
|
|
367
322
|
|
|
368
|
-
#endif
|
|
323
|
+
#endif // EIGEN_TRANSPOSITIONS_H
|