@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
|
@@ -10,388 +10,361 @@
|
|
|
10
10
|
#ifndef EIGEN_SPARSE_REF_H
|
|
11
11
|
#define EIGEN_SPARSE_REF_H
|
|
12
12
|
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
13
16
|
namespace Eigen {
|
|
14
17
|
|
|
15
18
|
enum {
|
|
16
|
-
StandardCompressedFormat =
|
|
19
|
+
StandardCompressedFormat =
|
|
20
|
+
2 /**< used by Ref<SparseMatrix> to specify whether the input storage must be in standard compressed form */
|
|
17
21
|
};
|
|
18
|
-
|
|
22
|
+
|
|
19
23
|
namespace internal {
|
|
20
24
|
|
|
21
|
-
template<typename Derived>
|
|
25
|
+
template <typename Derived>
|
|
26
|
+
class SparseRefBase;
|
|
22
27
|
|
|
23
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int
|
|
24
|
-
struct traits<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
enum {
|
|
29
|
-
Options = _Options,
|
|
30
|
-
Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit
|
|
31
|
-
};
|
|
28
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options_, typename StrideType_>
|
|
29
|
+
struct traits<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>>
|
|
30
|
+
: public traits<SparseMatrix<MatScalar, MatOptions, MatIndex>> {
|
|
31
|
+
typedef SparseMatrix<MatScalar, MatOptions, MatIndex> PlainObjectType;
|
|
32
|
+
enum { Options = Options_, Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit };
|
|
32
33
|
|
|
33
|
-
template<typename Derived>
|
|
34
|
+
template <typename Derived>
|
|
35
|
+
struct match {
|
|
34
36
|
enum {
|
|
35
|
-
StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime ||
|
|
36
|
-
|
|
37
|
+
StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime ||
|
|
38
|
+
((PlainObjectType::Flags & RowMajorBit) == (Derived::Flags & RowMajorBit)),
|
|
39
|
+
MatchAtCompileTime = (Derived::Flags & CompressedAccessBit) && StorageOrderMatch
|
|
37
40
|
};
|
|
38
|
-
typedef
|
|
41
|
+
typedef std::conditional_t<MatchAtCompileTime, internal::true_type, internal::false_type> type;
|
|
39
42
|
};
|
|
40
|
-
|
|
41
43
|
};
|
|
42
44
|
|
|
43
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int
|
|
44
|
-
struct traits<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>,
|
|
45
|
-
|
|
46
|
-
{
|
|
45
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options_, typename StrideType_>
|
|
46
|
+
struct traits<Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>>
|
|
47
|
+
: public traits<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>> {
|
|
47
48
|
enum {
|
|
48
|
-
Flags =
|
|
49
|
+
Flags =
|
|
50
|
+
(traits<SparseMatrix<MatScalar, MatOptions, MatIndex>>::Flags | CompressedAccessBit | NestByRefBit) & ~LvalueBit
|
|
49
51
|
};
|
|
50
52
|
};
|
|
51
53
|
|
|
52
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int
|
|
53
|
-
struct traits<Ref<SparseVector<MatScalar,MatOptions,MatIndex>,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
enum {
|
|
58
|
-
Options = _Options,
|
|
59
|
-
Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit
|
|
60
|
-
};
|
|
54
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options_, typename StrideType_>
|
|
55
|
+
struct traits<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>>
|
|
56
|
+
: public traits<SparseVector<MatScalar, MatOptions, MatIndex>> {
|
|
57
|
+
typedef SparseVector<MatScalar, MatOptions, MatIndex> PlainObjectType;
|
|
58
|
+
enum { Options = Options_, Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit };
|
|
61
59
|
|
|
62
|
-
template<typename Derived>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
|
|
60
|
+
template <typename Derived>
|
|
61
|
+
struct match {
|
|
62
|
+
enum { MatchAtCompileTime = (Derived::Flags & CompressedAccessBit) && Derived::IsVectorAtCompileTime };
|
|
63
|
+
typedef std::conditional_t<MatchAtCompileTime, internal::true_type, internal::false_type> type;
|
|
67
64
|
};
|
|
68
|
-
|
|
69
65
|
};
|
|
70
66
|
|
|
71
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int
|
|
72
|
-
struct traits<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>,
|
|
73
|
-
|
|
74
|
-
{
|
|
67
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options_, typename StrideType_>
|
|
68
|
+
struct traits<Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>>
|
|
69
|
+
: public traits<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options_, StrideType_>> {
|
|
75
70
|
enum {
|
|
76
|
-
Flags =
|
|
71
|
+
Flags =
|
|
72
|
+
(traits<SparseVector<MatScalar, MatOptions, MatIndex>>::Flags | CompressedAccessBit | NestByRefBit) & ~LvalueBit
|
|
77
73
|
};
|
|
78
74
|
};
|
|
79
75
|
|
|
80
|
-
template<typename Derived>
|
|
81
|
-
struct traits<SparseRefBase<Derived
|
|
82
|
-
|
|
83
|
-
template<typename Derived> class SparseRefBase
|
|
84
|
-
: public SparseMapBase<Derived>
|
|
85
|
-
{
|
|
86
|
-
public:
|
|
76
|
+
template <typename Derived>
|
|
77
|
+
struct traits<SparseRefBase<Derived>> : public traits<Derived> {};
|
|
87
78
|
|
|
79
|
+
template <typename Derived>
|
|
80
|
+
class SparseRefBase : public SparseMapBase<Derived> {
|
|
81
|
+
public:
|
|
88
82
|
typedef SparseMapBase<Derived> Base;
|
|
89
83
|
EIGEN_SPARSE_PUBLIC_INTERFACE(SparseRefBase)
|
|
90
84
|
|
|
91
85
|
SparseRefBase()
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
protected:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if(expr.outerIndexPtr()==0)
|
|
101
|
-
::new (static_cast<Base*>(this)) Base(expr.size(), expr.nonZeros(), expr.innerIndexPtr(), expr.valuePtr());
|
|
86
|
+
: Base(RowsAtCompileTime == Dynamic ? 0 : RowsAtCompileTime, ColsAtCompileTime == Dynamic ? 0 : ColsAtCompileTime,
|
|
87
|
+
0, 0, 0, 0, 0) {}
|
|
88
|
+
|
|
89
|
+
protected:
|
|
90
|
+
template <typename Expression>
|
|
91
|
+
void construct(Expression& expr) {
|
|
92
|
+
if (expr.outerIndexPtr() == 0)
|
|
93
|
+
internal::construct_at<Base>(this, expr.size(), expr.nonZeros(), expr.innerIndexPtr(), expr.valuePtr());
|
|
102
94
|
else
|
|
103
|
-
::
|
|
95
|
+
internal::construct_at<Base>(this, expr.rows(), expr.cols(), expr.nonZeros(), expr.outerIndexPtr(),
|
|
96
|
+
expr.innerIndexPtr(), expr.valuePtr(), expr.innerNonZeroPtr());
|
|
104
97
|
}
|
|
105
98
|
};
|
|
106
99
|
|
|
107
|
-
}
|
|
108
|
-
|
|
100
|
+
} // namespace internal
|
|
109
101
|
|
|
110
|
-
/**
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
102
|
+
/**
|
|
103
|
+
* \ingroup SparseCore_Module
|
|
104
|
+
*
|
|
105
|
+
* \brief A sparse matrix expression referencing an existing sparse expression
|
|
106
|
+
*
|
|
107
|
+
* \tparam SparseMatrixType the equivalent sparse matrix type of the referenced data, it must be a template instance of
|
|
108
|
+
* class SparseMatrix. \tparam Options specifies whether the a standard compressed format is required \c Options is \c
|
|
109
|
+
* #StandardCompressedFormat, or \c 0. The default is \c 0.
|
|
110
|
+
*
|
|
111
|
+
* \sa class Ref
|
|
112
|
+
*/
|
|
121
113
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
122
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
123
|
-
class Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
124
|
-
|
|
114
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
115
|
+
class Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>
|
|
116
|
+
: public internal::SparseRefBase<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
125
117
|
#else
|
|
126
|
-
template<typename SparseMatrixType, int Options>
|
|
118
|
+
template <typename SparseMatrixType, int Options>
|
|
127
119
|
class Ref<SparseMatrixType, Options>
|
|
128
|
-
|
|
120
|
+
: public SparseMapBase<Derived, WriteAccessors> // yes, that's weird to use Derived here, but that works!
|
|
129
121
|
#endif
|
|
130
122
|
{
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
public:
|
|
138
|
-
|
|
139
|
-
typedef internal::SparseRefBase<Ref> Base;
|
|
140
|
-
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
144
|
-
template<int OtherOptions>
|
|
145
|
-
inline Ref(SparseMatrix<MatScalar,OtherOptions,MatIndex>& expr)
|
|
146
|
-
{
|
|
147
|
-
EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseMatrix<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
148
|
-
eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
|
|
149
|
-
Base::construct(expr.derived());
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
template<int OtherOptions>
|
|
153
|
-
inline Ref(MappedSparseMatrix<MatScalar,OtherOptions,MatIndex>& expr)
|
|
154
|
-
{
|
|
155
|
-
EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseMatrix<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
156
|
-
eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
|
|
157
|
-
Base::construct(expr.derived());
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
template<typename Derived>
|
|
161
|
-
inline Ref(const SparseCompressedBase<Derived>& expr)
|
|
162
|
-
#else
|
|
163
|
-
/** Implicit constructor from any sparse expression (2D matrix or 1D vector) */
|
|
164
|
-
template<typename Derived>
|
|
165
|
-
inline Ref(SparseCompressedBase<Derived>& expr)
|
|
166
|
-
#endif
|
|
167
|
-
{
|
|
168
|
-
EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
|
|
169
|
-
EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
170
|
-
eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
|
|
171
|
-
Base::construct(expr.const_cast_derived());
|
|
172
|
-
}
|
|
173
|
-
};
|
|
123
|
+
typedef SparseMatrix<MatScalar, MatOptions, MatIndex> PlainObjectType;
|
|
124
|
+
typedef internal::traits<Ref> Traits;
|
|
125
|
+
template <int OtherOptions>
|
|
126
|
+
inline Ref(const SparseMatrix<MatScalar, OtherOptions, MatIndex>& expr);
|
|
127
|
+
template <int OtherOptions>
|
|
128
|
+
inline Ref(const Map<SparseMatrix<MatScalar, OtherOptions, MatIndex>>& expr);
|
|
174
129
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
: public internal::SparseRefBase<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
|
|
179
|
-
{
|
|
180
|
-
typedef SparseMatrix<MatScalar,MatOptions,MatIndex> TPlainObjectType;
|
|
181
|
-
typedef internal::traits<Ref> Traits;
|
|
182
|
-
public:
|
|
130
|
+
public:
|
|
131
|
+
typedef internal::SparseRefBase<Ref> Base;
|
|
132
|
+
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
183
133
|
|
|
184
|
-
|
|
185
|
-
|
|
134
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
135
|
+
template <int OtherOptions>
|
|
136
|
+
inline Ref(SparseMatrix<MatScalar, OtherOptions, MatIndex>& expr) {
|
|
137
|
+
EIGEN_STATIC_ASSERT(
|
|
138
|
+
bool(Traits::template match<SparseMatrix<MatScalar, OtherOptions, MatIndex>>::MatchAtCompileTime),
|
|
139
|
+
STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
140
|
+
eigen_assert(((Options & int(StandardCompressedFormat)) == 0) || (expr.isCompressed()));
|
|
141
|
+
Base::construct(expr.derived());
|
|
142
|
+
}
|
|
186
143
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
144
|
+
template <int OtherOptions>
|
|
145
|
+
inline Ref(Map<SparseMatrix<MatScalar, OtherOptions, MatIndex>>& expr) {
|
|
146
|
+
EIGEN_STATIC_ASSERT(
|
|
147
|
+
bool(Traits::template match<SparseMatrix<MatScalar, OtherOptions, MatIndex>>::MatchAtCompileTime),
|
|
148
|
+
STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
149
|
+
eigen_assert(((Options & int(StandardCompressedFormat)) == 0) || (expr.isCompressed()));
|
|
150
|
+
Base::construct(expr.derived());
|
|
151
|
+
}
|
|
192
152
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
153
|
+
template <typename Derived>
|
|
154
|
+
inline Ref(const SparseCompressedBase<Derived>& expr)
|
|
155
|
+
#else
|
|
156
|
+
/** Implicit constructor from any sparse expression (2D matrix or 1D vector) */
|
|
157
|
+
template <typename Derived>
|
|
158
|
+
inline Ref(SparseCompressedBase<Derived>& expr)
|
|
159
|
+
#endif
|
|
160
|
+
{
|
|
161
|
+
EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
|
|
162
|
+
EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
163
|
+
eigen_assert(((Options & int(StandardCompressedFormat)) == 0) || (expr.isCompressed()));
|
|
164
|
+
Base::construct(expr.const_cast_derived());
|
|
165
|
+
}
|
|
166
|
+
};
|
|
196
167
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
168
|
+
// this is the const ref version
|
|
169
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
170
|
+
class Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>
|
|
171
|
+
: public internal::SparseRefBase<Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>> {
|
|
172
|
+
typedef SparseMatrix<MatScalar, MatOptions, MatIndex> TPlainObjectType;
|
|
173
|
+
typedef internal::traits<Ref> Traits;
|
|
174
|
+
|
|
175
|
+
public:
|
|
176
|
+
typedef internal::SparseRefBase<Ref> Base;
|
|
177
|
+
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
178
|
+
|
|
179
|
+
template <typename Derived>
|
|
180
|
+
inline Ref(const SparseMatrixBase<Derived>& expr) : m_hasCopy(false) {
|
|
181
|
+
construct(expr.derived(), typename Traits::template match<Derived>::type());
|
|
182
|
+
}
|
|
201
183
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
obj->~TPlainObjectType();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
184
|
+
inline Ref(const Ref& other) : Base(other), m_hasCopy(false) {
|
|
185
|
+
// copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
|
|
186
|
+
}
|
|
208
187
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
template<
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
::new (obj) TPlainObjectType(expr);
|
|
218
|
-
m_hasCopy = true;
|
|
219
|
-
Base::construct(*obj);
|
|
220
|
-
}
|
|
221
|
-
else
|
|
222
|
-
{
|
|
223
|
-
Base::construct(expr);
|
|
224
|
-
}
|
|
188
|
+
template <typename OtherRef>
|
|
189
|
+
inline Ref(const RefBase<OtherRef>& other) : m_hasCopy(false) {
|
|
190
|
+
construct(other.derived(), typename Traits::template match<OtherRef>::type());
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
~Ref() {
|
|
194
|
+
if (m_hasCopy) {
|
|
195
|
+
internal::destroy_at(reinterpret_cast<TPlainObjectType*>(&m_storage));
|
|
225
196
|
}
|
|
197
|
+
}
|
|
226
198
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
199
|
+
protected:
|
|
200
|
+
template <typename Expression>
|
|
201
|
+
void construct(const Expression& expr, internal::true_type) {
|
|
202
|
+
if ((Options & int(StandardCompressedFormat)) && (!expr.isCompressed())) {
|
|
203
|
+
TPlainObjectType* obj = internal::construct_at(reinterpret_cast<TPlainObjectType*>(&m_storage), expr);
|
|
232
204
|
m_hasCopy = true;
|
|
233
205
|
Base::construct(*obj);
|
|
206
|
+
} else {
|
|
207
|
+
Base::construct(expr);
|
|
234
208
|
}
|
|
209
|
+
}
|
|
235
210
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
211
|
+
template <typename Expression>
|
|
212
|
+
void construct(const Expression& expr, internal::false_type) {
|
|
213
|
+
TPlainObjectType* obj = internal::construct_at(reinterpret_cast<TPlainObjectType*>(&m_storage), expr);
|
|
214
|
+
m_hasCopy = true;
|
|
215
|
+
Base::construct(*obj);
|
|
216
|
+
}
|
|
241
217
|
|
|
218
|
+
protected:
|
|
219
|
+
typename internal::aligned_storage<sizeof(TPlainObjectType), EIGEN_ALIGNOF(TPlainObjectType)>::type m_storage;
|
|
220
|
+
bool m_hasCopy;
|
|
221
|
+
};
|
|
242
222
|
|
|
243
223
|
/**
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
224
|
+
* \ingroup SparseCore_Module
|
|
225
|
+
*
|
|
226
|
+
* \brief A sparse vector expression referencing an existing sparse vector expression
|
|
227
|
+
*
|
|
228
|
+
* \tparam SparseVectorType the equivalent sparse vector type of the referenced data, it must be a template instance of
|
|
229
|
+
* class SparseVector.
|
|
230
|
+
*
|
|
231
|
+
* \sa class Ref
|
|
232
|
+
*/
|
|
252
233
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
253
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
254
|
-
class Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
255
|
-
|
|
234
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
235
|
+
class Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>
|
|
236
|
+
: public internal::SparseRefBase<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
256
237
|
#else
|
|
257
|
-
template<typename SparseVectorType>
|
|
258
|
-
class Ref<SparseVectorType>
|
|
259
|
-
: public SparseMapBase<Derived,WriteAccessors>
|
|
238
|
+
template <typename SparseVectorType>
|
|
239
|
+
class Ref<SparseVectorType> : public SparseMapBase<Derived, WriteAccessors>
|
|
260
240
|
#endif
|
|
261
241
|
{
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
public:
|
|
267
|
-
|
|
268
|
-
typedef internal::SparseRefBase<Ref> Base;
|
|
269
|
-
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
270
|
-
|
|
271
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
272
|
-
template<int OtherOptions>
|
|
273
|
-
inline Ref(SparseVector<MatScalar,OtherOptions,MatIndex>& expr)
|
|
274
|
-
{
|
|
275
|
-
EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseVector<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
276
|
-
Base::construct(expr.derived());
|
|
277
|
-
}
|
|
242
|
+
typedef SparseVector<MatScalar, MatOptions, MatIndex> PlainObjectType;
|
|
243
|
+
typedef internal::traits<Ref> Traits;
|
|
244
|
+
template <int OtherOptions>
|
|
245
|
+
inline Ref(const SparseVector<MatScalar, OtherOptions, MatIndex>& expr);
|
|
278
246
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
/** Implicit constructor from any 1D sparse vector expression */
|
|
283
|
-
template<typename Derived>
|
|
284
|
-
inline Ref(SparseCompressedBase<Derived>& expr)
|
|
285
|
-
#endif
|
|
286
|
-
{
|
|
287
|
-
EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
|
|
288
|
-
EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
289
|
-
Base::construct(expr.const_cast_derived());
|
|
290
|
-
}
|
|
291
|
-
};
|
|
247
|
+
public:
|
|
248
|
+
typedef internal::SparseRefBase<Ref> Base;
|
|
249
|
+
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
292
250
|
|
|
293
|
-
|
|
294
|
-
template<
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
251
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
252
|
+
template <int OtherOptions>
|
|
253
|
+
inline Ref(SparseVector<MatScalar, OtherOptions, MatIndex>& expr) {
|
|
254
|
+
EIGEN_STATIC_ASSERT(
|
|
255
|
+
bool(Traits::template match<SparseVector<MatScalar, OtherOptions, MatIndex>>::MatchAtCompileTime),
|
|
256
|
+
STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
257
|
+
Base::construct(expr.derived());
|
|
258
|
+
}
|
|
301
259
|
|
|
302
|
-
|
|
303
|
-
|
|
260
|
+
template <typename Derived>
|
|
261
|
+
inline Ref(const SparseCompressedBase<Derived>& expr)
|
|
262
|
+
#else
|
|
263
|
+
/** Implicit constructor from any 1D sparse vector expression */
|
|
264
|
+
template <typename Derived>
|
|
265
|
+
inline Ref(SparseCompressedBase<Derived>& expr)
|
|
266
|
+
#endif
|
|
267
|
+
{
|
|
268
|
+
EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
|
|
269
|
+
EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
|
|
270
|
+
Base::construct(expr.const_cast_derived());
|
|
271
|
+
}
|
|
272
|
+
};
|
|
304
273
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
274
|
+
// this is the const ref version
|
|
275
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
276
|
+
class Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>
|
|
277
|
+
: public internal::SparseRefBase<Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>> {
|
|
278
|
+
typedef SparseVector<MatScalar, MatOptions, MatIndex> TPlainObjectType;
|
|
279
|
+
typedef internal::traits<Ref> Traits;
|
|
280
|
+
|
|
281
|
+
public:
|
|
282
|
+
typedef internal::SparseRefBase<Ref> Base;
|
|
283
|
+
EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
|
|
284
|
+
|
|
285
|
+
template <typename Derived>
|
|
286
|
+
inline Ref(const SparseMatrixBase<Derived>& expr) : m_hasCopy(false) {
|
|
287
|
+
construct(expr.derived(), typename Traits::template match<Derived>::type());
|
|
288
|
+
}
|
|
310
289
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
290
|
+
inline Ref(const Ref& other) : Base(other), m_hasCopy(false) {
|
|
291
|
+
// copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
|
|
292
|
+
}
|
|
314
293
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
294
|
+
template <typename OtherRef>
|
|
295
|
+
inline Ref(const RefBase<OtherRef>& other) : m_hasCopy(false) {
|
|
296
|
+
construct(other.derived(), typename Traits::template match<OtherRef>::type());
|
|
297
|
+
}
|
|
319
298
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
obj->~TPlainObjectType();
|
|
324
|
-
}
|
|
299
|
+
~Ref() {
|
|
300
|
+
if (m_hasCopy) {
|
|
301
|
+
internal::destroy_at(reinterpret_cast<TPlainObjectType*>(&m_storage));
|
|
325
302
|
}
|
|
303
|
+
}
|
|
326
304
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
Base::construct(expr);
|
|
333
|
-
}
|
|
305
|
+
protected:
|
|
306
|
+
template <typename Expression>
|
|
307
|
+
void construct(const Expression& expr, internal::true_type) {
|
|
308
|
+
Base::construct(expr);
|
|
309
|
+
}
|
|
334
310
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
Base::construct(*obj);
|
|
342
|
-
}
|
|
311
|
+
template <typename Expression>
|
|
312
|
+
void construct(const Expression& expr, internal::false_type) {
|
|
313
|
+
TPlainObjectType* obj = internal::construct_at(reinterpret_cast<TPlainObjectType*>(&m_storage), expr);
|
|
314
|
+
m_hasCopy = true;
|
|
315
|
+
Base::construct(*obj);
|
|
316
|
+
}
|
|
343
317
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
318
|
+
protected:
|
|
319
|
+
typename internal::aligned_storage<sizeof(TPlainObjectType), EIGEN_ALIGNOF(TPlainObjectType)>::type m_storage;
|
|
320
|
+
bool m_hasCopy;
|
|
347
321
|
};
|
|
348
322
|
|
|
349
323
|
namespace internal {
|
|
350
324
|
|
|
351
|
-
// FIXME shall we introduce a general evaluatior_ref that we can specialize for any sparse object once, and thus remove
|
|
325
|
+
// FIXME shall we introduce a general evaluatior_ref that we can specialize for any sparse object once, and thus remove
|
|
326
|
+
// this copy-pasta thing...
|
|
352
327
|
|
|
353
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
354
|
-
struct evaluator<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
typedef
|
|
358
|
-
typedef Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
|
|
328
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
329
|
+
struct evaluator<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
330
|
+
: evaluator<SparseCompressedBase<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> {
|
|
331
|
+
typedef evaluator<SparseCompressedBase<Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> Base;
|
|
332
|
+
typedef Ref<SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType> XprType;
|
|
359
333
|
evaluator() : Base() {}
|
|
360
|
-
explicit evaluator(const XprType
|
|
334
|
+
explicit evaluator(const XprType& mat) : Base(mat) {}
|
|
361
335
|
};
|
|
362
336
|
|
|
363
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
364
|
-
struct evaluator<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
typedef Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
|
|
337
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
338
|
+
struct evaluator<Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
339
|
+
: evaluator<SparseCompressedBase<Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> {
|
|
340
|
+
typedef evaluator<SparseCompressedBase<Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType>>>
|
|
341
|
+
Base;
|
|
342
|
+
typedef Ref<const SparseMatrix<MatScalar, MatOptions, MatIndex>, Options, StrideType> XprType;
|
|
369
343
|
evaluator() : Base() {}
|
|
370
|
-
explicit evaluator(const XprType
|
|
344
|
+
explicit evaluator(const XprType& mat) : Base(mat) {}
|
|
371
345
|
};
|
|
372
346
|
|
|
373
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
374
|
-
struct evaluator<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
typedef
|
|
378
|
-
typedef Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
|
|
347
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
348
|
+
struct evaluator<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
349
|
+
: evaluator<SparseCompressedBase<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> {
|
|
350
|
+
typedef evaluator<SparseCompressedBase<Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> Base;
|
|
351
|
+
typedef Ref<SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType> XprType;
|
|
379
352
|
evaluator() : Base() {}
|
|
380
|
-
explicit evaluator(const XprType
|
|
353
|
+
explicit evaluator(const XprType& mat) : Base(mat) {}
|
|
381
354
|
};
|
|
382
355
|
|
|
383
|
-
template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
384
|
-
struct evaluator<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
typedef Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
|
|
356
|
+
template <typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
|
|
357
|
+
struct evaluator<Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>
|
|
358
|
+
: evaluator<SparseCompressedBase<Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>> {
|
|
359
|
+
typedef evaluator<SparseCompressedBase<Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType>>>
|
|
360
|
+
Base;
|
|
361
|
+
typedef Ref<const SparseVector<MatScalar, MatOptions, MatIndex>, Options, StrideType> XprType;
|
|
389
362
|
evaluator() : Base() {}
|
|
390
|
-
explicit evaluator(const XprType
|
|
363
|
+
explicit evaluator(const XprType& mat) : Base(mat) {}
|
|
391
364
|
};
|
|
392
365
|
|
|
393
|
-
}
|
|
366
|
+
} // namespace internal
|
|
394
367
|
|
|
395
|
-
}
|
|
368
|
+
} // end namespace Eigen
|
|
396
369
|
|
|
397
|
-
#endif
|
|
370
|
+
#endif // EIGEN_SPARSE_REF_H
|