@smake/eigen 1.1.0 → 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 -20
- package/eigen/Eigen/CholmodSupport +28 -28
- package/eigen/Eigen/Core +187 -120
- package/eigen/Eigen/Eigenvalues +16 -13
- package/eigen/Eigen/Geometry +18 -18
- package/eigen/Eigen/Householder +9 -7
- package/eigen/Eigen/IterativeLinearSolvers +8 -4
- package/eigen/Eigen/Jacobi +14 -13
- package/eigen/Eigen/KLUSupport +23 -21
- package/eigen/Eigen/LU +15 -16
- package/eigen/Eigen/MetisSupport +12 -12
- package/eigen/Eigen/OrderingMethods +54 -51
- package/eigen/Eigen/PaStiXSupport +23 -21
- package/eigen/Eigen/PardisoSupport +17 -14
- package/eigen/Eigen/QR +18 -20
- package/eigen/Eigen/QtAlignedMalloc +5 -12
- package/eigen/Eigen/SPQRSupport +21 -14
- package/eigen/Eigen/SVD +23 -17
- package/eigen/Eigen/Sparse +1 -2
- package/eigen/Eigen/SparseCholesky +18 -15
- package/eigen/Eigen/SparseCore +18 -17
- package/eigen/Eigen/SparseLU +9 -9
- 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 +366 -405
- package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
- package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
- package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
- package/eigen/Eigen/src/Core/Array.h +329 -370
- package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
- package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
- package/eigen/Eigen/src/Core/Assign.h +30 -40
- package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
- package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
- package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
- package/eigen/Eigen/src/Core/Block.h +371 -390
- package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
- package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
- package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
- package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
- package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
- package/eigen/Eigen/src/Core/DenseBase.h +630 -658
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
- package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
- package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
- package/eigen/Eigen/src/Core/Diagonal.h +168 -207
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
- package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
- package/eigen/Eigen/src/Core/Dot.h +167 -217
- package/eigen/Eigen/src/Core/EigenBase.h +74 -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 -113
- package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
- package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
- package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
- package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
- package/eigen/Eigen/src/Core/IO.h +131 -156
- package/eigen/Eigen/src/Core/IndexedView.h +209 -125
- 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 +50 -59
- package/eigen/Eigen/src/Core/Map.h +123 -141
- package/eigen/Eigen/src/Core/MapBase.h +255 -282
- package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
- package/eigen/Eigen/src/Core/Matrix.h +463 -494
- package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
- package/eigen/Eigen/src/Core/NestByValue.h +58 -52
- package/eigen/Eigen/src/Core/NoAlias.h +79 -86
- package/eigen/Eigen/src/Core/NumTraits.h +206 -206
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
- package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
- package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
- package/eigen/Eigen/src/Core/Product.h +246 -130
- package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
- package/eigen/Eigen/src/Core/Random.h +153 -164
- 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 +334 -314
- package/eigen/Eigen/src/Core/Ref.h +259 -257
- package/eigen/Eigen/src/Core/Replicate.h +92 -104
- package/eigen/Eigen/src/Core/Reshaped.h +215 -271
- package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
- package/eigen/Eigen/src/Core/Reverse.h +133 -148
- package/eigen/Eigen/src/Core/Select.h +68 -140
- package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
- 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 +88 -102
- package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
- package/eigen/Eigen/src/Core/SolverBase.h +132 -133
- package/eigen/Eigen/src/Core/StableNorm.h +113 -147
- package/eigen/Eigen/src/Core/StlIterators.h +404 -248
- package/eigen/Eigen/src/Core/Stride.h +90 -92
- package/eigen/Eigen/src/Core/Swap.h +70 -39
- package/eigen/Eigen/src/Core/Transpose.h +258 -295
- package/eigen/Eigen/src/Core/Transpositions.h +270 -333
- package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
- package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
- package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
- package/eigen/Eigen/src/Core/Visitor.h +464 -308
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
- package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
- package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
- 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 +229 -41
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
- 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 +2380 -1362
- package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
- package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
- package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
- package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
- package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
- 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 +54 -82
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
- package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
- package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
- package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
- package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
- 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 -47
- 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 -277
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
- package/eigen/Eigen/src/Core/util/Assert.h +158 -0
- package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
- package/eigen/Eigen/src/Core/util/Constants.h +297 -262
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
- package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
- 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 +417 -116
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
- package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
- package/eigen/Eigen/src/Core/util/Macros.h +655 -773
- package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
- package/eigen/Eigen/src/Core/util/Memory.h +970 -748
- package/eigen/Eigen/src/Core/util/Meta.h +581 -633
- 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 +17 -17
- package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
- package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
- 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 +89 -105
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
- package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
- package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
- package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
- package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
- package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
- package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
- package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
- package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
- package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
- package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
- package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
- package/eigen/Eigen/src/Geometry/Transform.h +858 -936
- package/eigen/Eigen/src/Geometry/Translation.h +94 -92
- package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
- package/eigen/Eigen/src/Householder/Householder.h +102 -124
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
- package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
- package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
- package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
- package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
- package/eigen/Eigen/src/LU/Determinant.h +50 -69
- package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
- package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
- package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
- package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
- 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 +243 -265
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
- package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
- 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 -430
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
- package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
- package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
- 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 +244 -264
- package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
- 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 +577 -543
- package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
- package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
- package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
- package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
- package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
- package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
- 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 +1603 -1245
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
- package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
- 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 +370 -416
- 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 +138 -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 +756 -710
- 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 +245 -301
- 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 +89 -100
- 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 +124 -132
- 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 +450 -502
- package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
- 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 -730
- 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 +428 -464
- 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 +9972 -16179
- 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.h → BlockMethods.inc} +434 -506
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
- package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
- 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/package.json +1 -1
- package/eigen/COPYING.APACHE +0 -203
- package/eigen/COPYING.BSD +0 -26
- package/eigen/COPYING.GPL +0 -674
- package/eigen/COPYING.LGPL +0 -502
- package/eigen/COPYING.MINPACK +0 -51
- package/eigen/COPYING.MPL2 +0 -373
- package/eigen/COPYING.README +0 -18
- package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
- package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
- package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
- package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
- 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 -358
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
- package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
- package/eigen/README.md +0 -5
|
@@ -11,47 +11,48 @@
|
|
|
11
11
|
#ifndef EIGEN_RESHAPED_H
|
|
12
12
|
#define EIGEN_RESHAPED_H
|
|
13
13
|
|
|
14
|
+
// IWYU pragma: private
|
|
15
|
+
#include "./InternalHeaderCheck.h"
|
|
16
|
+
|
|
14
17
|
namespace Eigen {
|
|
15
18
|
|
|
16
19
|
/** \class Reshaped
|
|
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
|
-
*/
|
|
20
|
+
* \ingroup Core_Module
|
|
21
|
+
*
|
|
22
|
+
* \brief Expression of a fixed-size or dynamic-size reshape
|
|
23
|
+
*
|
|
24
|
+
* \tparam XprType the type of the expression in which we are taking a reshape
|
|
25
|
+
* \tparam Rows the number of rows of the reshape we are taking at compile time (optional)
|
|
26
|
+
* \tparam Cols the number of columns of the reshape we are taking at compile time (optional)
|
|
27
|
+
* \tparam Order can be ColMajor or RowMajor, default is ColMajor.
|
|
28
|
+
*
|
|
29
|
+
* This class represents an expression of either a fixed-size or dynamic-size reshape.
|
|
30
|
+
* It is the return type of DenseBase::reshaped(NRowsType,NColsType) and
|
|
31
|
+
* most of the time this is the only way it is used.
|
|
32
|
+
*
|
|
33
|
+
* If you want to directly manipulate reshaped expressions,
|
|
34
|
+
* for instance if you want to write a function returning such an expression,
|
|
35
|
+
* it is advised to use the \em auto keyword for such use cases.
|
|
36
|
+
*
|
|
37
|
+
* Here is an example illustrating the dynamic case:
|
|
38
|
+
* \include class_Reshaped.cpp
|
|
39
|
+
* Output: \verbinclude class_Reshaped.out
|
|
40
|
+
*
|
|
41
|
+
* Here is an example illustrating the fixed-size case:
|
|
42
|
+
* \include class_FixedReshaped.cpp
|
|
43
|
+
* Output: \verbinclude class_FixedReshaped.out
|
|
44
|
+
*
|
|
45
|
+
* \sa DenseBase::reshaped(NRowsType,NColsType)
|
|
46
|
+
*/
|
|
45
47
|
|
|
46
48
|
namespace internal {
|
|
47
49
|
|
|
48
|
-
template<typename XprType, int Rows, int Cols, int Order>
|
|
49
|
-
struct traits<Reshaped<XprType, Rows, Cols, Order> > : traits<XprType>
|
|
50
|
-
{
|
|
50
|
+
template <typename XprType, int Rows, int Cols, int Order>
|
|
51
|
+
struct traits<Reshaped<XprType, Rows, Cols, Order> > : traits<XprType> {
|
|
51
52
|
typedef typename traits<XprType>::Scalar Scalar;
|
|
52
53
|
typedef typename traits<XprType>::StorageKind StorageKind;
|
|
53
54
|
typedef typename traits<XprType>::XprKind XprKind;
|
|
54
|
-
enum{
|
|
55
|
+
enum {
|
|
55
56
|
MatrixRows = traits<XprType>::RowsAtCompileTime,
|
|
56
57
|
MatrixCols = traits<XprType>::ColsAtCompileTime,
|
|
57
58
|
RowsAtCompileTime = Rows,
|
|
@@ -59,212 +60,179 @@ struct traits<Reshaped<XprType, Rows, Cols, Order> > : traits<XprType>
|
|
|
59
60
|
MaxRowsAtCompileTime = Rows,
|
|
60
61
|
MaxColsAtCompileTime = Cols,
|
|
61
62
|
XpxStorageOrder = ((int(traits<XprType>::Flags) & RowMajorBit) == RowMajorBit) ? RowMajor : ColMajor,
|
|
62
|
-
ReshapedStorageOrder = (RowsAtCompileTime == 1 && ColsAtCompileTime != 1)
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
ReshapedStorageOrder = (RowsAtCompileTime == 1 && ColsAtCompileTime != 1) ? RowMajor
|
|
64
|
+
: (ColsAtCompileTime == 1 && RowsAtCompileTime != 1) ? ColMajor
|
|
65
|
+
: XpxStorageOrder,
|
|
65
66
|
HasSameStorageOrderAsXprType = (ReshapedStorageOrder == XpxStorageOrder),
|
|
66
|
-
InnerSize = (ReshapedStorageOrder==int(RowMajor)) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
|
|
67
|
-
InnerStrideAtCompileTime = HasSameStorageOrderAsXprType
|
|
68
|
-
? int(inner_stride_at_compile_time<XprType>::ret)
|
|
69
|
-
: Dynamic,
|
|
67
|
+
InnerSize = (ReshapedStorageOrder == int(RowMajor)) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
|
|
68
|
+
InnerStrideAtCompileTime = HasSameStorageOrderAsXprType ? int(inner_stride_at_compile_time<XprType>::ret) : Dynamic,
|
|
70
69
|
OuterStrideAtCompileTime = Dynamic,
|
|
71
70
|
|
|
72
|
-
HasDirectAccess = internal::has_direct_access<XprType>::ret
|
|
73
|
-
|
|
74
|
-
&& ((evaluator<XprType>::Flags&LinearAccessBit)==LinearAccessBit),
|
|
71
|
+
HasDirectAccess = internal::has_direct_access<XprType>::ret && (Order == int(XpxStorageOrder)) &&
|
|
72
|
+
((evaluator<XprType>::Flags & LinearAccessBit) == LinearAccessBit),
|
|
75
73
|
|
|
76
|
-
MaskPacketAccessBit =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
MaskPacketAccessBit =
|
|
75
|
+
(InnerSize == Dynamic || (InnerSize % packet_traits<Scalar>::size) == 0) && (InnerStrideAtCompileTime == 1)
|
|
76
|
+
? PacketAccessBit
|
|
77
|
+
: 0,
|
|
78
|
+
// MaskAlignedBit = ((OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * int(sizeof(Scalar))) % 16)
|
|
79
|
+
// == 0)) ? AlignedBit : 0,
|
|
80
80
|
FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1) ? LinearAccessBit : 0,
|
|
81
81
|
FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0,
|
|
82
|
-
FlagsRowMajorBit = (ReshapedStorageOrder==int(RowMajor)) ? RowMajorBit : 0,
|
|
82
|
+
FlagsRowMajorBit = (ReshapedStorageOrder == int(RowMajor)) ? RowMajorBit : 0,
|
|
83
83
|
FlagsDirectAccessBit = HasDirectAccess ? DirectAccessBit : 0,
|
|
84
|
-
Flags0 = traits<XprType>::Flags & (
|
|
84
|
+
Flags0 = traits<XprType>::Flags & ((HereditaryBits & ~RowMajorBit) | MaskPacketAccessBit),
|
|
85
85
|
|
|
86
86
|
Flags = (Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit | FlagsDirectAccessBit)
|
|
87
87
|
};
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
template<typename XprType, int Rows, int Cols, int Order, bool HasDirectAccess>
|
|
91
|
-
|
|
92
|
-
} // end namespace internal
|
|
93
|
-
|
|
94
|
-
template<typename XprType, int Rows, int Cols, int Order, typename StorageKind> class ReshapedImpl;
|
|
95
|
-
|
|
96
|
-
template<typename XprType, int Rows, int Cols, int Order> class Reshaped
|
|
97
|
-
: public ReshapedImpl<XprType, Rows, Cols, Order, typename internal::traits<XprType>::StorageKind>
|
|
98
|
-
{
|
|
99
|
-
typedef ReshapedImpl<XprType, Rows, Cols, Order, typename internal::traits<XprType>::StorageKind> Impl;
|
|
100
|
-
public:
|
|
101
|
-
//typedef typename Impl::Base Base;
|
|
102
|
-
typedef Impl Base;
|
|
103
|
-
EIGEN_GENERIC_PUBLIC_INTERFACE(Reshaped)
|
|
104
|
-
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reshaped)
|
|
105
|
-
|
|
106
|
-
/** Fixed-size constructor
|
|
107
|
-
*/
|
|
108
|
-
EIGEN_DEVICE_FUNC
|
|
109
|
-
inline Reshaped(XprType& xpr)
|
|
110
|
-
: Impl(xpr)
|
|
111
|
-
{
|
|
112
|
-
EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
|
|
113
|
-
eigen_assert(Rows * Cols == xpr.rows() * xpr.cols());
|
|
114
|
-
}
|
|
90
|
+
template <typename XprType, int Rows, int Cols, int Order, bool HasDirectAccess>
|
|
91
|
+
class ReshapedImpl_dense;
|
|
115
92
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
93
|
+
} // end namespace internal
|
|
94
|
+
|
|
95
|
+
template <typename XprType, int Rows, int Cols, int Order, typename StorageKind>
|
|
96
|
+
class ReshapedImpl;
|
|
97
|
+
|
|
98
|
+
template <typename XprType, int Rows, int Cols, int Order>
|
|
99
|
+
class Reshaped : public ReshapedImpl<XprType, Rows, Cols, Order, typename internal::traits<XprType>::StorageKind> {
|
|
100
|
+
typedef ReshapedImpl<XprType, Rows, Cols, Order, typename internal::traits<XprType>::StorageKind> Impl;
|
|
101
|
+
|
|
102
|
+
public:
|
|
103
|
+
// typedef typename Impl::Base Base;
|
|
104
|
+
typedef Impl Base;
|
|
105
|
+
EIGEN_GENERIC_PUBLIC_INTERFACE(Reshaped)
|
|
106
|
+
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reshaped)
|
|
107
|
+
|
|
108
|
+
/** Fixed-size constructor
|
|
109
|
+
*/
|
|
110
|
+
EIGEN_DEVICE_FUNC inline Reshaped(XprType& xpr) : Impl(xpr) {
|
|
111
|
+
EIGEN_STATIC_ASSERT(RowsAtCompileTime != Dynamic && ColsAtCompileTime != Dynamic,
|
|
112
|
+
THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
|
|
113
|
+
eigen_assert(Rows * Cols == xpr.rows() * xpr.cols());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Dynamic-size constructor
|
|
117
|
+
*/
|
|
118
|
+
EIGEN_DEVICE_FUNC inline Reshaped(XprType& xpr, Index reshapeRows, Index reshapeCols)
|
|
119
|
+
: Impl(xpr, reshapeRows, reshapeCols) {
|
|
120
|
+
eigen_assert((RowsAtCompileTime == Dynamic || RowsAtCompileTime == reshapeRows) &&
|
|
121
|
+
(ColsAtCompileTime == Dynamic || ColsAtCompileTime == reshapeCols));
|
|
122
|
+
eigen_assert(reshapeRows * reshapeCols == xpr.rows() * xpr.cols());
|
|
123
|
+
}
|
|
127
124
|
};
|
|
128
125
|
|
|
129
126
|
// The generic default implementation for dense reshape simply forward to the internal::ReshapedImpl_dense
|
|
130
127
|
// that must be specialized for direct and non-direct access...
|
|
131
|
-
template<typename XprType, int Rows, int Cols, int Order>
|
|
128
|
+
template <typename XprType, int Rows, int Cols, int Order>
|
|
132
129
|
class ReshapedImpl<XprType, Rows, Cols, Order, Dense>
|
|
133
|
-
|
|
134
|
-
{
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
130
|
+
: public internal::ReshapedImpl_dense<XprType, Rows, Cols, Order,
|
|
131
|
+
internal::traits<Reshaped<XprType, Rows, Cols, Order> >::HasDirectAccess> {
|
|
132
|
+
typedef internal::ReshapedImpl_dense<XprType, Rows, Cols, Order,
|
|
133
|
+
internal::traits<Reshaped<XprType, Rows, Cols, Order> >::HasDirectAccess>
|
|
134
|
+
Impl;
|
|
135
|
+
|
|
136
|
+
public:
|
|
137
|
+
typedef Impl Base;
|
|
138
|
+
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ReshapedImpl)
|
|
139
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl(XprType& xpr) : Impl(xpr) {}
|
|
140
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl(XprType& xpr, Index reshapeRows, Index reshapeCols)
|
|
141
141
|
: Impl(xpr, reshapeRows, reshapeCols) {}
|
|
142
142
|
};
|
|
143
143
|
|
|
144
144
|
namespace internal {
|
|
145
145
|
|
|
146
146
|
/** \internal Internal implementation of dense Reshaped in the general case. */
|
|
147
|
-
template<typename XprType, int Rows, int Cols, int Order>
|
|
148
|
-
class ReshapedImpl_dense<XprType,Rows,Cols,Order,false>
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
/** \returns the nested expression */
|
|
188
|
-
EIGEN_DEVICE_FUNC
|
|
189
|
-
const typename internal::remove_all<XprType>::type&
|
|
190
|
-
nestedExpression() const { return m_xpr; }
|
|
191
|
-
|
|
192
|
-
/** \returns the nested expression */
|
|
193
|
-
EIGEN_DEVICE_FUNC
|
|
194
|
-
typename internal::remove_reference<XprType>::type&
|
|
195
|
-
nestedExpression() { return m_xpr; }
|
|
196
|
-
|
|
197
|
-
protected:
|
|
198
|
-
|
|
199
|
-
MatrixTypeNested m_xpr;
|
|
200
|
-
const internal::variable_if_dynamic<Index, Rows> m_rows;
|
|
201
|
-
const internal::variable_if_dynamic<Index, Cols> m_cols;
|
|
202
|
-
};
|
|
147
|
+
template <typename XprType, int Rows, int Cols, int Order>
|
|
148
|
+
class ReshapedImpl_dense<XprType, Rows, Cols, Order, false>
|
|
149
|
+
: public internal::dense_xpr_base<Reshaped<XprType, Rows, Cols, Order> >::type {
|
|
150
|
+
typedef Reshaped<XprType, Rows, Cols, Order> ReshapedType;
|
|
151
|
+
|
|
152
|
+
public:
|
|
153
|
+
typedef typename internal::dense_xpr_base<ReshapedType>::type Base;
|
|
154
|
+
EIGEN_DENSE_PUBLIC_INTERFACE(ReshapedType)
|
|
155
|
+
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ReshapedImpl_dense)
|
|
156
|
+
|
|
157
|
+
typedef typename internal::ref_selector<XprType>::non_const_type MatrixTypeNested;
|
|
158
|
+
typedef internal::remove_all_t<XprType> NestedExpression;
|
|
159
|
+
|
|
160
|
+
class InnerIterator;
|
|
161
|
+
|
|
162
|
+
/** Fixed-size constructor
|
|
163
|
+
*/
|
|
164
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl_dense(XprType& xpr) : m_xpr(xpr), m_rows(Rows), m_cols(Cols) {}
|
|
165
|
+
|
|
166
|
+
/** Dynamic-size constructor
|
|
167
|
+
*/
|
|
168
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl_dense(XprType& xpr, Index nRows, Index nCols)
|
|
169
|
+
: m_xpr(xpr), m_rows(nRows), m_cols(nCols) {}
|
|
170
|
+
|
|
171
|
+
EIGEN_DEVICE_FUNC Index rows() const { return m_rows; }
|
|
172
|
+
EIGEN_DEVICE_FUNC Index cols() const { return m_cols; }
|
|
173
|
+
|
|
174
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
175
|
+
/** \sa MapBase::data() */
|
|
176
|
+
EIGEN_DEVICE_FUNC constexpr const Scalar* data() const;
|
|
177
|
+
EIGEN_DEVICE_FUNC inline Index innerStride() const;
|
|
178
|
+
EIGEN_DEVICE_FUNC inline Index outerStride() const;
|
|
179
|
+
#endif
|
|
180
|
+
|
|
181
|
+
/** \returns the nested expression */
|
|
182
|
+
EIGEN_DEVICE_FUNC const internal::remove_all_t<XprType>& nestedExpression() const { return m_xpr; }
|
|
183
|
+
|
|
184
|
+
/** \returns the nested expression */
|
|
185
|
+
EIGEN_DEVICE_FUNC std::remove_reference_t<XprType>& nestedExpression() { return m_xpr; }
|
|
203
186
|
|
|
187
|
+
protected:
|
|
188
|
+
MatrixTypeNested m_xpr;
|
|
189
|
+
const internal::variable_if_dynamic<Index, Rows> m_rows;
|
|
190
|
+
const internal::variable_if_dynamic<Index, Cols> m_cols;
|
|
191
|
+
};
|
|
204
192
|
|
|
205
193
|
/** \internal Internal implementation of dense Reshaped in the direct access case. */
|
|
206
|
-
template<typename XprType, int Rows, int Cols, int Order>
|
|
207
|
-
class ReshapedImpl_dense<XprType, Rows, Cols, Order, true>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
typedef Reshaped<XprType, Rows, Cols, Order> ReshapedType;
|
|
211
|
-
typedef typename internal::ref_selector<XprType>::non_const_type XprTypeNested;
|
|
212
|
-
public:
|
|
213
|
-
|
|
214
|
-
typedef MapBase<ReshapedType> Base;
|
|
215
|
-
EIGEN_DENSE_PUBLIC_INTERFACE(ReshapedType)
|
|
216
|
-
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ReshapedImpl_dense)
|
|
217
|
-
|
|
218
|
-
/** Fixed-size constructor
|
|
219
|
-
*/
|
|
220
|
-
EIGEN_DEVICE_FUNC
|
|
221
|
-
inline ReshapedImpl_dense(XprType& xpr)
|
|
222
|
-
: Base(xpr.data()), m_xpr(xpr)
|
|
223
|
-
{}
|
|
224
|
-
|
|
225
|
-
/** Dynamic-size constructor
|
|
226
|
-
*/
|
|
227
|
-
EIGEN_DEVICE_FUNC
|
|
228
|
-
inline ReshapedImpl_dense(XprType& xpr, Index nRows, Index nCols)
|
|
229
|
-
: Base(xpr.data(), nRows, nCols),
|
|
230
|
-
m_xpr(xpr)
|
|
231
|
-
{}
|
|
232
|
-
|
|
233
|
-
EIGEN_DEVICE_FUNC
|
|
234
|
-
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
|
|
235
|
-
{
|
|
236
|
-
return m_xpr;
|
|
237
|
-
}
|
|
194
|
+
template <typename XprType, int Rows, int Cols, int Order>
|
|
195
|
+
class ReshapedImpl_dense<XprType, Rows, Cols, Order, true> : public MapBase<Reshaped<XprType, Rows, Cols, Order> > {
|
|
196
|
+
typedef Reshaped<XprType, Rows, Cols, Order> ReshapedType;
|
|
197
|
+
typedef typename internal::ref_selector<XprType>::non_const_type XprTypeNested;
|
|
238
198
|
|
|
239
|
-
|
|
240
|
-
|
|
199
|
+
public:
|
|
200
|
+
typedef MapBase<ReshapedType> Base;
|
|
201
|
+
EIGEN_DENSE_PUBLIC_INTERFACE(ReshapedType)
|
|
202
|
+
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ReshapedImpl_dense)
|
|
241
203
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
{
|
|
246
|
-
return m_xpr.innerStride();
|
|
247
|
-
}
|
|
204
|
+
/** Fixed-size constructor
|
|
205
|
+
*/
|
|
206
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl_dense(XprType& xpr) : Base(xpr.data()), m_xpr(xpr) {}
|
|
248
207
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
208
|
+
/** Dynamic-size constructor
|
|
209
|
+
*/
|
|
210
|
+
EIGEN_DEVICE_FUNC inline ReshapedImpl_dense(XprType& xpr, Index nRows, Index nCols)
|
|
211
|
+
: Base(xpr.data(), nRows, nCols), m_xpr(xpr) {}
|
|
212
|
+
|
|
213
|
+
EIGEN_DEVICE_FUNC const internal::remove_all_t<XprTypeNested>& nestedExpression() const { return m_xpr; }
|
|
214
|
+
|
|
215
|
+
EIGEN_DEVICE_FUNC XprType& nestedExpression() { return m_xpr; }
|
|
255
216
|
|
|
256
|
-
|
|
217
|
+
/** \sa MapBase::innerStride() */
|
|
218
|
+
EIGEN_DEVICE_FUNC constexpr Index innerStride() const { return m_xpr.innerStride(); }
|
|
219
|
+
|
|
220
|
+
/** \sa MapBase::outerStride() */
|
|
221
|
+
EIGEN_DEVICE_FUNC constexpr Index outerStride() const {
|
|
222
|
+
return (((Flags & RowMajorBit) == RowMajorBit) ? this->cols() : this->rows()) * m_xpr.innerStride();
|
|
223
|
+
}
|
|
257
224
|
|
|
258
|
-
|
|
225
|
+
protected:
|
|
226
|
+
XprTypeNested m_xpr;
|
|
259
227
|
};
|
|
260
228
|
|
|
261
229
|
// Evaluators
|
|
262
|
-
template<typename ArgType, int Rows, int Cols, int Order, bool HasDirectAccess>
|
|
230
|
+
template <typename ArgType, int Rows, int Cols, int Order, bool HasDirectAccess>
|
|
231
|
+
struct reshaped_evaluator;
|
|
263
232
|
|
|
264
|
-
template<typename ArgType, int Rows, int Cols, int Order>
|
|
233
|
+
template <typename ArgType, int Rows, int Cols, int Order>
|
|
265
234
|
struct evaluator<Reshaped<ArgType, Rows, Cols, Order> >
|
|
266
|
-
|
|
267
|
-
{
|
|
235
|
+
: reshaped_evaluator<ArgType, Rows, Cols, Order, traits<Reshaped<ArgType, Rows, Cols, Order> >::HasDirectAccess> {
|
|
268
236
|
typedef Reshaped<ArgType, Rows, Cols, Order> XprType;
|
|
269
237
|
typedef typename XprType::Scalar Scalar;
|
|
270
238
|
// TODO: should check for smaller packet types
|
|
@@ -274,19 +242,22 @@ struct evaluator<Reshaped<ArgType, Rows, Cols, Order> >
|
|
|
274
242
|
CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
|
|
275
243
|
HasDirectAccess = traits<XprType>::HasDirectAccess,
|
|
276
244
|
|
|
277
|
-
// RowsAtCompileTime = traits<XprType>::RowsAtCompileTime,
|
|
278
|
-
// ColsAtCompileTime = traits<XprType>::ColsAtCompileTime,
|
|
279
|
-
// MaxRowsAtCompileTime = traits<XprType>::MaxRowsAtCompileTime,
|
|
280
|
-
// MaxColsAtCompileTime = traits<XprType>::MaxColsAtCompileTime,
|
|
281
|
-
//
|
|
282
|
-
// InnerStrideAtCompileTime = traits<XprType>::HasSameStorageOrderAsXprType
|
|
283
|
-
// ? int(inner_stride_at_compile_time<ArgType>::ret)
|
|
284
|
-
// : Dynamic,
|
|
285
|
-
// OuterStrideAtCompileTime = Dynamic,
|
|
286
|
-
|
|
287
|
-
FlagsLinearAccessBit =
|
|
288
|
-
|
|
289
|
-
|
|
245
|
+
// RowsAtCompileTime = traits<XprType>::RowsAtCompileTime,
|
|
246
|
+
// ColsAtCompileTime = traits<XprType>::ColsAtCompileTime,
|
|
247
|
+
// MaxRowsAtCompileTime = traits<XprType>::MaxRowsAtCompileTime,
|
|
248
|
+
// MaxColsAtCompileTime = traits<XprType>::MaxColsAtCompileTime,
|
|
249
|
+
//
|
|
250
|
+
// InnerStrideAtCompileTime = traits<XprType>::HasSameStorageOrderAsXprType
|
|
251
|
+
// ? int(inner_stride_at_compile_time<ArgType>::ret)
|
|
252
|
+
// : Dynamic,
|
|
253
|
+
// OuterStrideAtCompileTime = Dynamic,
|
|
254
|
+
|
|
255
|
+
FlagsLinearAccessBit =
|
|
256
|
+
(traits<XprType>::RowsAtCompileTime == 1 || traits<XprType>::ColsAtCompileTime == 1 || HasDirectAccess)
|
|
257
|
+
? LinearAccessBit
|
|
258
|
+
: 0,
|
|
259
|
+
FlagsRowMajorBit = (traits<XprType>::ReshapedStorageOrder == int(RowMajor)) ? RowMajorBit : 0,
|
|
260
|
+
FlagsDirectAccessBit = HasDirectAccess ? DirectAccessBit : 0,
|
|
290
261
|
Flags0 = evaluator<ArgType>::Flags & (HereditaryBits & ~RowMajorBit),
|
|
291
262
|
Flags = Flags0 | FlagsLinearAccessBit | FlagsRowMajorBit | FlagsDirectAccessBit,
|
|
292
263
|
|
|
@@ -294,16 +265,14 @@ struct evaluator<Reshaped<ArgType, Rows, Cols, Order> >
|
|
|
294
265
|
Alignment = evaluator<ArgType>::Alignment
|
|
295
266
|
};
|
|
296
267
|
typedef reshaped_evaluator<ArgType, Rows, Cols, Order, HasDirectAccess> reshaped_evaluator_type;
|
|
297
|
-
EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : reshaped_evaluator_type(xpr)
|
|
298
|
-
{
|
|
268
|
+
EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : reshaped_evaluator_type(xpr) {
|
|
299
269
|
EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
|
|
300
270
|
}
|
|
301
271
|
};
|
|
302
272
|
|
|
303
|
-
template<typename ArgType, int Rows, int Cols, int Order>
|
|
273
|
+
template <typename ArgType, int Rows, int Cols, int Order>
|
|
304
274
|
struct reshaped_evaluator<ArgType, Rows, Cols, Order, /* HasDirectAccess */ false>
|
|
305
|
-
|
|
306
|
-
{
|
|
275
|
+
: evaluator_base<Reshaped<ArgType, Rows, Cols, Order> > {
|
|
307
276
|
typedef Reshaped<ArgType, Rows, Cols, Order> XprType;
|
|
308
277
|
|
|
309
278
|
enum {
|
|
@@ -314,8 +283,7 @@ struct reshaped_evaluator<ArgType, Rows, Cols, Order, /* HasDirectAccess */ fals
|
|
|
314
283
|
Alignment = 0
|
|
315
284
|
};
|
|
316
285
|
|
|
317
|
-
EIGEN_DEVICE_FUNC explicit reshaped_evaluator(const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_xpr(xpr)
|
|
318
|
-
{
|
|
286
|
+
EIGEN_DEVICE_FUNC explicit reshaped_evaluator(const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_xpr(xpr) {
|
|
319
287
|
EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
|
|
320
288
|
}
|
|
321
289
|
|
|
@@ -324,67 +292,45 @@ struct reshaped_evaluator<ArgType, Rows, Cols, Order, /* HasDirectAccess */ fals
|
|
|
324
292
|
|
|
325
293
|
typedef std::pair<Index, Index> RowCol;
|
|
326
294
|
|
|
327
|
-
inline RowCol index_remap(Index rowId, Index colId) const
|
|
328
|
-
|
|
329
|
-
if(Order==ColMajor)
|
|
330
|
-
{
|
|
295
|
+
EIGEN_DEVICE_FUNC inline RowCol index_remap(Index rowId, Index colId) const {
|
|
296
|
+
if (Order == ColMajor) {
|
|
331
297
|
const Index nth_elem_idx = colId * m_xpr.rows() + rowId;
|
|
332
|
-
return RowCol(nth_elem_idx % m_xpr.nestedExpression().rows(),
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
else
|
|
336
|
-
{
|
|
298
|
+
return RowCol(nth_elem_idx % m_xpr.nestedExpression().rows(), nth_elem_idx / m_xpr.nestedExpression().rows());
|
|
299
|
+
} else {
|
|
337
300
|
const Index nth_elem_idx = colId + rowId * m_xpr.cols();
|
|
338
|
-
return RowCol(nth_elem_idx / m_xpr.nestedExpression().cols(),
|
|
339
|
-
nth_elem_idx % m_xpr.nestedExpression().cols());
|
|
301
|
+
return RowCol(nth_elem_idx / m_xpr.nestedExpression().cols(), nth_elem_idx % m_xpr.nestedExpression().cols());
|
|
340
302
|
}
|
|
341
303
|
}
|
|
342
304
|
|
|
343
|
-
EIGEN_DEVICE_FUNC
|
|
344
|
-
inline Scalar& coeffRef(Index rowId, Index colId)
|
|
345
|
-
{
|
|
305
|
+
EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index rowId, Index colId) {
|
|
346
306
|
EIGEN_STATIC_ASSERT_LVALUE(XprType)
|
|
347
307
|
const RowCol row_col = index_remap(rowId, colId);
|
|
348
308
|
return m_argImpl.coeffRef(row_col.first, row_col.second);
|
|
349
309
|
}
|
|
350
310
|
|
|
351
|
-
EIGEN_DEVICE_FUNC
|
|
352
|
-
inline const Scalar& coeffRef(Index rowId, Index colId) const
|
|
353
|
-
{
|
|
311
|
+
EIGEN_DEVICE_FUNC inline const Scalar& coeffRef(Index rowId, Index colId) const {
|
|
354
312
|
const RowCol row_col = index_remap(rowId, colId);
|
|
355
313
|
return m_argImpl.coeffRef(row_col.first, row_col.second);
|
|
356
314
|
}
|
|
357
315
|
|
|
358
|
-
EIGEN_DEVICE_FUNC
|
|
359
|
-
EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const
|
|
360
|
-
{
|
|
316
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const {
|
|
361
317
|
const RowCol row_col = index_remap(rowId, colId);
|
|
362
318
|
return m_argImpl.coeff(row_col.first, row_col.second);
|
|
363
319
|
}
|
|
364
320
|
|
|
365
|
-
EIGEN_DEVICE_FUNC
|
|
366
|
-
inline Scalar& coeffRef(Index index)
|
|
367
|
-
{
|
|
321
|
+
EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index index) {
|
|
368
322
|
EIGEN_STATIC_ASSERT_LVALUE(XprType)
|
|
369
|
-
const RowCol row_col = index_remap(Rows == 1 ? 0 : index,
|
|
370
|
-
Rows == 1 ? index : 0);
|
|
323
|
+
const RowCol row_col = index_remap(Rows == 1 ? 0 : index, Rows == 1 ? index : 0);
|
|
371
324
|
return m_argImpl.coeffRef(row_col.first, row_col.second);
|
|
372
|
-
|
|
373
325
|
}
|
|
374
326
|
|
|
375
|
-
EIGEN_DEVICE_FUNC
|
|
376
|
-
|
|
377
|
-
{
|
|
378
|
-
const RowCol row_col = index_remap(Rows == 1 ? 0 : index,
|
|
379
|
-
Rows == 1 ? index : 0);
|
|
327
|
+
EIGEN_DEVICE_FUNC inline const Scalar& coeffRef(Index index) const {
|
|
328
|
+
const RowCol row_col = index_remap(Rows == 1 ? 0 : index, Rows == 1 ? index : 0);
|
|
380
329
|
return m_argImpl.coeffRef(row_col.first, row_col.second);
|
|
381
330
|
}
|
|
382
331
|
|
|
383
|
-
EIGEN_DEVICE_FUNC
|
|
384
|
-
|
|
385
|
-
{
|
|
386
|
-
const RowCol row_col = index_remap(Rows == 1 ? 0 : index,
|
|
387
|
-
Rows == 1 ? index : 0);
|
|
332
|
+
EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index index) const {
|
|
333
|
+
const RowCol row_col = index_remap(Rows == 1 ? 0 : index, Rows == 1 ? index : 0);
|
|
388
334
|
return m_argImpl.coeff(row_col.first, row_col.second);
|
|
389
335
|
}
|
|
390
336
|
#if 0
|
|
@@ -424,31 +370,29 @@ struct reshaped_evaluator<ArgType, Rows, Cols, Order, /* HasDirectAccess */ fals
|
|
|
424
370
|
return m_argImpl.template packet<Unaligned>(row_col.first, row_col.second, val);
|
|
425
371
|
}
|
|
426
372
|
#endif
|
|
427
|
-
protected:
|
|
428
|
-
|
|
373
|
+
protected:
|
|
429
374
|
evaluator<ArgType> m_argImpl;
|
|
430
375
|
const XprType& m_xpr;
|
|
431
|
-
|
|
432
376
|
};
|
|
433
377
|
|
|
434
|
-
template<typename ArgType, int Rows, int Cols, int Order>
|
|
378
|
+
template <typename ArgType, int Rows, int Cols, int Order>
|
|
435
379
|
struct reshaped_evaluator<ArgType, Rows, Cols, Order, /* HasDirectAccess */ true>
|
|
436
|
-
: mapbase_evaluator<Reshaped<ArgType, Rows, Cols, Order>,
|
|
437
|
-
|
|
438
|
-
{
|
|
380
|
+
: mapbase_evaluator<Reshaped<ArgType, Rows, Cols, Order>,
|
|
381
|
+
typename Reshaped<ArgType, Rows, Cols, Order>::PlainObject> {
|
|
439
382
|
typedef Reshaped<ArgType, Rows, Cols, Order> XprType;
|
|
440
383
|
typedef typename XprType::Scalar Scalar;
|
|
441
384
|
|
|
442
385
|
EIGEN_DEVICE_FUNC explicit reshaped_evaluator(const XprType& xpr)
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
//
|
|
446
|
-
eigen_assert(((
|
|
386
|
+
: mapbase_evaluator<XprType, typename XprType::PlainObject>(xpr) {
|
|
387
|
+
// TODO: for the 3.4 release, this should be turned to an internal assertion, but let's keep it as is for the beta
|
|
388
|
+
// lifetime
|
|
389
|
+
eigen_assert(((std::uintptr_t(xpr.data()) % plain_enum_max(1, evaluator<XprType>::Alignment)) == 0) &&
|
|
390
|
+
"data is not aligned");
|
|
447
391
|
}
|
|
448
392
|
};
|
|
449
393
|
|
|
450
|
-
}
|
|
394
|
+
} // end namespace internal
|
|
451
395
|
|
|
452
|
-
}
|
|
396
|
+
} // end namespace Eigen
|
|
453
397
|
|
|
454
|
-
#endif
|
|
398
|
+
#endif // EIGEN_RESHAPED_H
|