@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
|
@@ -18,37 +18,62 @@ typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMaj
|
|
|
18
18
|
typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
|
|
19
19
|
/// \internal expression type of a block of whole columns */
|
|
20
20
|
typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
|
|
21
|
-
typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor>
|
|
21
|
+
typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor>
|
|
22
|
+
ConstColsBlockXpr;
|
|
22
23
|
/// \internal expression type of a block of whole rows */
|
|
23
24
|
typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
|
|
24
25
|
typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
|
|
25
26
|
/// \internal expression type of a block of whole columns */
|
|
26
|
-
template<int N>
|
|
27
|
-
|
|
27
|
+
template <int N>
|
|
28
|
+
struct NColsBlockXpr {
|
|
29
|
+
typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type;
|
|
30
|
+
};
|
|
31
|
+
template <int N>
|
|
32
|
+
struct ConstNColsBlockXpr {
|
|
33
|
+
typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type;
|
|
34
|
+
};
|
|
28
35
|
/// \internal expression type of a block of whole rows */
|
|
29
|
-
template<int N>
|
|
30
|
-
|
|
36
|
+
template <int N>
|
|
37
|
+
struct NRowsBlockXpr {
|
|
38
|
+
typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type;
|
|
39
|
+
};
|
|
40
|
+
template <int N>
|
|
41
|
+
struct ConstNRowsBlockXpr {
|
|
42
|
+
typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type;
|
|
43
|
+
};
|
|
31
44
|
/// \internal expression of a block */
|
|
32
45
|
typedef Block<Derived> BlockXpr;
|
|
33
46
|
typedef const Block<const Derived> ConstBlockXpr;
|
|
34
47
|
/// \internal expression of a block of fixed sizes */
|
|
35
|
-
template<int Rows, int Cols>
|
|
36
|
-
|
|
48
|
+
template <int Rows, int Cols>
|
|
49
|
+
struct FixedBlockXpr {
|
|
50
|
+
typedef Block<Derived, Rows, Cols> Type;
|
|
51
|
+
};
|
|
52
|
+
template <int Rows, int Cols>
|
|
53
|
+
struct ConstFixedBlockXpr {
|
|
54
|
+
typedef Block<const Derived, Rows, Cols> Type;
|
|
55
|
+
};
|
|
37
56
|
|
|
38
57
|
typedef VectorBlock<Derived> SegmentReturnType;
|
|
39
58
|
typedef const VectorBlock<const Derived> ConstSegmentReturnType;
|
|
40
|
-
template<int Size>
|
|
41
|
-
|
|
59
|
+
template <int Size>
|
|
60
|
+
struct FixedSegmentReturnType {
|
|
61
|
+
typedef VectorBlock<Derived, Size> Type;
|
|
62
|
+
};
|
|
63
|
+
template <int Size>
|
|
64
|
+
struct ConstFixedSegmentReturnType {
|
|
65
|
+
typedef const VectorBlock<const Derived, Size> Type;
|
|
66
|
+
};
|
|
42
67
|
|
|
43
68
|
/// \internal inner-vector
|
|
44
|
-
typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true>
|
|
45
|
-
typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
|
|
69
|
+
typedef Block<Derived, IsRowMajor ? 1 : Dynamic, IsRowMajor ? Dynamic : 1, true> InnerVectorReturnType;
|
|
70
|
+
typedef Block<const Derived, IsRowMajor ? 1 : Dynamic, IsRowMajor ? Dynamic : 1, true> ConstInnerVectorReturnType;
|
|
46
71
|
|
|
47
72
|
/// \internal set of inner-vectors
|
|
48
|
-
typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
|
|
49
|
-
typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
|
|
73
|
+
typedef Block<Derived, Dynamic, Dynamic, true> InnerVectorsReturnType;
|
|
74
|
+
typedef Block<const Derived, Dynamic, Dynamic, true> ConstInnerVectorsReturnType;
|
|
50
75
|
|
|
51
|
-
#endif
|
|
76
|
+
#endif // not EIGEN_PARSED_BY_DOXYGEN
|
|
52
77
|
|
|
53
78
|
/// \returns an expression of a block in \c *this with either dynamic or fixed sizes.
|
|
54
79
|
///
|
|
@@ -64,16 +89,15 @@ typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
|
|
|
64
89
|
///
|
|
65
90
|
/// \newin{3.4}:
|
|
66
91
|
///
|
|
67
|
-
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
68
|
-
/// or Eigen::fix<N>(n) as arguments. In the later case, \c n plays the role of a runtime fallback value
|
|
69
|
-
/// Here is an example with a fixed number of rows \c NRows and dynamic number of
|
|
70
|
-
/// \code
|
|
71
|
-
/// mat.block(i,j,fix<NRows>,cols)
|
|
72
|
-
/// \endcode
|
|
92
|
+
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
93
|
+
/// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. In the later case, \c n plays the role of a runtime fallback value
|
|
94
|
+
/// in case \c N equals Eigen::Dynamic. Here is an example with a fixed number of rows \c NRows and dynamic number of
|
|
95
|
+
/// columns \c cols: \code mat.block(i,j,fix<NRows>,cols) \endcode
|
|
73
96
|
///
|
|
74
97
|
/// This function thus fully covers the features offered by the following overloads block<NRows,NCols>(Index, Index),
|
|
75
98
|
/// and block<NRows,NCols>(Index, Index, Index, Index) that are thus obsolete. Indeed, this generic version avoids
|
|
76
|
-
/// redundancy, it preserves the argument order, and prevents the need to rely on the template keyword in templated
|
|
99
|
+
/// redundancy, it preserves the argument order, and prevents the need to rely on the template keyword in templated
|
|
100
|
+
/// code.
|
|
77
101
|
///
|
|
78
102
|
/// but with less redundancy and more consistency as it does not modify the argument order
|
|
79
103
|
/// and seamlessly enable hybrid fixed/dynamic sizes.
|
|
@@ -86,35 +110,40 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
86
110
|
///
|
|
87
111
|
/// \sa class Block, fix, fix<N>(int)
|
|
88
112
|
///
|
|
89
|
-
template<typename NRowsType, typename NColsType>
|
|
113
|
+
template <typename NRowsType, typename NColsType>
|
|
90
114
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
91
115
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
92
|
-
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
116
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
117
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
93
118
|
#else
|
|
94
|
-
typename FixedBlockXpr
|
|
119
|
+
typename FixedBlockXpr<..., ...>::Type
|
|
95
120
|
#endif
|
|
96
|
-
block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
121
|
+
block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) {
|
|
122
|
+
return
|
|
123
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
124
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), startRow, startCol,
|
|
125
|
+
internal::get_runtime_value(blockRows),
|
|
126
|
+
internal::get_runtime_value(blockCols));
|
|
100
127
|
}
|
|
101
128
|
|
|
102
129
|
/// This is the const version of block(Index,Index,NRowsType,NColsType)
|
|
103
|
-
template<typename NRowsType, typename NColsType>
|
|
130
|
+
template <typename NRowsType, typename NColsType>
|
|
104
131
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
105
132
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
106
|
-
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
133
|
+
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
134
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
107
135
|
#else
|
|
108
|
-
const typename ConstFixedBlockXpr
|
|
136
|
+
const typename ConstFixedBlockXpr<..., ...>::Type
|
|
109
137
|
#endif
|
|
110
|
-
block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
138
|
+
block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) const {
|
|
139
|
+
return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
140
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), startRow, startCol,
|
|
141
|
+
internal::get_runtime_value(
|
|
142
|
+
blockRows),
|
|
143
|
+
internal::get_runtime_value(
|
|
144
|
+
blockCols));
|
|
114
145
|
}
|
|
115
146
|
|
|
116
|
-
|
|
117
|
-
|
|
118
147
|
/// \returns a expression of a top-right corner of \c *this with either dynamic or fixed sizes.
|
|
119
148
|
///
|
|
120
149
|
/// \param cRows the number of rows in the corner
|
|
@@ -125,38 +154,50 @@ block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols)
|
|
|
125
154
|
/// Example with dynamic sizes: \include MatrixBase_topRightCorner_int_int.cpp
|
|
126
155
|
/// Output: \verbinclude MatrixBase_topRightCorner_int_int.out
|
|
127
156
|
///
|
|
128
|
-
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
129
|
-
/// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
157
|
+
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
158
|
+
/// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
159
|
+
/// for the details.
|
|
130
160
|
///
|
|
131
161
|
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
132
162
|
///
|
|
133
163
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
134
164
|
///
|
|
135
|
-
template<typename NRowsType, typename NColsType>
|
|
165
|
+
template <typename NRowsType, typename NColsType>
|
|
136
166
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
137
167
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
138
|
-
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
168
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
169
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
139
170
|
#else
|
|
140
|
-
typename FixedBlockXpr
|
|
171
|
+
typename FixedBlockXpr<..., ...>::Type
|
|
141
172
|
#endif
|
|
142
|
-
topRightCorner(NRowsType cRows, NColsType cCols)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
173
|
+
topRightCorner(NRowsType cRows, NColsType cCols) {
|
|
174
|
+
return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
175
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), 0,
|
|
176
|
+
cols() - internal::get_runtime_value(
|
|
177
|
+
cCols),
|
|
178
|
+
internal::get_runtime_value(cRows),
|
|
179
|
+
internal::get_runtime_value(cCols));
|
|
146
180
|
}
|
|
147
181
|
|
|
148
182
|
/// This is the const version of topRightCorner(NRowsType, NColsType).
|
|
149
|
-
template<typename NRowsType, typename NColsType>
|
|
183
|
+
template <typename NRowsType, typename NColsType>
|
|
150
184
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
151
185
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
152
|
-
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
186
|
+
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
187
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
153
188
|
#else
|
|
154
|
-
const typename ConstFixedBlockXpr
|
|
189
|
+
const typename ConstFixedBlockXpr<..., ...>::Type
|
|
155
190
|
#endif
|
|
156
|
-
topRightCorner(NRowsType cRows, NColsType cCols) const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
191
|
+
topRightCorner(NRowsType cRows, NColsType cCols) const {
|
|
192
|
+
return
|
|
193
|
+
typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
194
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), 0,
|
|
195
|
+
cols() -
|
|
196
|
+
internal::get_runtime_value(
|
|
197
|
+
cCols),
|
|
198
|
+
internal::get_runtime_value(cRows),
|
|
199
|
+
internal::get_runtime_value(
|
|
200
|
+
cCols));
|
|
160
201
|
}
|
|
161
202
|
|
|
162
203
|
/// \returns an expression of a fixed-size top-right corner of \c *this.
|
|
@@ -171,19 +212,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
171
212
|
///
|
|
172
213
|
/// \sa class Block, block<int,int>(Index,Index)
|
|
173
214
|
///
|
|
174
|
-
template<int CRows, int CCols>
|
|
175
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
176
|
-
typename FixedBlockXpr<CRows,CCols>::Type
|
|
177
|
-
{
|
|
178
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
|
|
215
|
+
template <int CRows, int CCols>
|
|
216
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topRightCorner() {
|
|
217
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - CCols);
|
|
179
218
|
}
|
|
180
219
|
|
|
181
220
|
/// This is the const version of topRightCorner<int, int>().
|
|
182
|
-
template<int CRows, int CCols>
|
|
183
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
184
|
-
|
|
185
|
-
{
|
|
186
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
|
|
221
|
+
template <int CRows, int CCols>
|
|
222
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topRightCorner() const {
|
|
223
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - CCols);
|
|
187
224
|
}
|
|
188
225
|
|
|
189
226
|
/// \returns an expression of a top-right corner of \c *this.
|
|
@@ -205,23 +242,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
205
242
|
///
|
|
206
243
|
/// \sa class Block
|
|
207
244
|
///
|
|
208
|
-
template<int CRows, int CCols>
|
|
209
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
|
|
245
|
+
template <int CRows, int CCols>
|
|
246
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topRightCorner(Index cRows,
|
|
247
|
+
Index cCols) {
|
|
248
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
|
|
213
249
|
}
|
|
214
250
|
|
|
215
251
|
/// This is the const version of topRightCorner<int, int>(Index, Index).
|
|
216
|
-
template<int CRows, int CCols>
|
|
217
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
|
|
252
|
+
template <int CRows, int CCols>
|
|
253
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topRightCorner(
|
|
254
|
+
Index cRows, Index cCols) const {
|
|
255
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
|
|
221
256
|
}
|
|
222
257
|
|
|
223
|
-
|
|
224
|
-
|
|
225
258
|
/// \returns an expression of a top-left corner of \c *this with either dynamic or fixed sizes.
|
|
226
259
|
///
|
|
227
260
|
/// \param cRows the number of rows in the corner
|
|
@@ -232,38 +265,45 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows,
|
|
|
232
265
|
/// Example: \include MatrixBase_topLeftCorner_int_int.cpp
|
|
233
266
|
/// Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
|
|
234
267
|
///
|
|
235
|
-
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
236
|
-
/// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
268
|
+
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
269
|
+
/// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
270
|
+
/// for the details.
|
|
237
271
|
///
|
|
238
272
|
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
239
273
|
///
|
|
240
274
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
241
275
|
///
|
|
242
|
-
template<typename NRowsType, typename NColsType>
|
|
276
|
+
template <typename NRowsType, typename NColsType>
|
|
243
277
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
244
278
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
245
|
-
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
279
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
280
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
246
281
|
#else
|
|
247
|
-
typename FixedBlockXpr
|
|
282
|
+
typename FixedBlockXpr<..., ...>::Type
|
|
248
283
|
#endif
|
|
249
|
-
topLeftCorner(NRowsType cRows, NColsType cCols)
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
284
|
+
topLeftCorner(NRowsType cRows, NColsType cCols) {
|
|
285
|
+
return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
286
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0,
|
|
287
|
+
internal::get_runtime_value(cRows),
|
|
288
|
+
internal::get_runtime_value(cCols));
|
|
253
289
|
}
|
|
254
290
|
|
|
255
291
|
/// This is the const version of topLeftCorner(Index, Index).
|
|
256
|
-
template<typename NRowsType, typename NColsType>
|
|
292
|
+
template <typename NRowsType, typename NColsType>
|
|
257
293
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
258
294
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
259
|
-
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
295
|
+
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
296
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
260
297
|
#else
|
|
261
|
-
const typename ConstFixedBlockXpr
|
|
298
|
+
const typename ConstFixedBlockXpr<..., ...>::Type
|
|
262
299
|
#endif
|
|
263
|
-
topLeftCorner(NRowsType cRows, NColsType cCols) const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
300
|
+
topLeftCorner(NRowsType cRows, NColsType cCols) const {
|
|
301
|
+
return
|
|
302
|
+
typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
303
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0,
|
|
304
|
+
internal::get_runtime_value(cRows),
|
|
305
|
+
internal::get_runtime_value(
|
|
306
|
+
cCols));
|
|
267
307
|
}
|
|
268
308
|
|
|
269
309
|
/// \returns an expression of a fixed-size top-left corner of \c *this.
|
|
@@ -277,19 +317,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
277
317
|
///
|
|
278
318
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
279
319
|
///
|
|
280
|
-
template<int CRows, int CCols>
|
|
281
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
282
|
-
typename FixedBlockXpr<CRows,CCols>::Type
|
|
283
|
-
{
|
|
284
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
|
|
320
|
+
template <int CRows, int CCols>
|
|
321
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topLeftCorner() {
|
|
322
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0);
|
|
285
323
|
}
|
|
286
324
|
|
|
287
325
|
/// This is the const version of topLeftCorner<int, int>().
|
|
288
|
-
template<int CRows, int CCols>
|
|
289
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
290
|
-
|
|
291
|
-
{
|
|
292
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
|
|
326
|
+
template <int CRows, int CCols>
|
|
327
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topLeftCorner() const {
|
|
328
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0);
|
|
293
329
|
}
|
|
294
330
|
|
|
295
331
|
/// \returns an expression of a top-left corner of \c *this.
|
|
@@ -311,23 +347,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
311
347
|
///
|
|
312
348
|
/// \sa class Block
|
|
313
349
|
///
|
|
314
|
-
template<int CRows, int CCols>
|
|
315
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
|
|
350
|
+
template <int CRows, int CCols>
|
|
351
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topLeftCorner(Index cRows,
|
|
352
|
+
Index cCols) {
|
|
353
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0, cRows, cCols);
|
|
319
354
|
}
|
|
320
355
|
|
|
321
356
|
/// This is the const version of topLeftCorner<int, int>(Index, Index).
|
|
322
|
-
template<int CRows, int CCols>
|
|
323
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
|
|
357
|
+
template <int CRows, int CCols>
|
|
358
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topLeftCorner(
|
|
359
|
+
Index cRows, Index cCols) const {
|
|
360
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0, cRows, cCols);
|
|
327
361
|
}
|
|
328
362
|
|
|
329
|
-
|
|
330
|
-
|
|
331
363
|
/// \returns an expression of a bottom-right corner of \c *this with either dynamic or fixed sizes.
|
|
332
364
|
///
|
|
333
365
|
/// \param cRows the number of rows in the corner
|
|
@@ -338,40 +370,45 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows,
|
|
|
338
370
|
/// Example: \include MatrixBase_bottomRightCorner_int_int.cpp
|
|
339
371
|
/// Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
|
|
340
372
|
///
|
|
341
|
-
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
342
|
-
/// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
373
|
+
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
374
|
+
/// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
375
|
+
/// for the details.
|
|
343
376
|
///
|
|
344
377
|
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
345
378
|
///
|
|
346
379
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
347
380
|
///
|
|
348
|
-
template<typename NRowsType, typename NColsType>
|
|
381
|
+
template <typename NRowsType, typename NColsType>
|
|
349
382
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
350
383
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
351
|
-
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
384
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
385
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
352
386
|
#else
|
|
353
|
-
typename FixedBlockXpr
|
|
387
|
+
typename FixedBlockXpr<..., ...>::Type
|
|
354
388
|
#endif
|
|
355
|
-
bottomRightCorner(NRowsType cRows, NColsType cCols)
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
389
|
+
bottomRightCorner(NRowsType cRows, NColsType cCols) {
|
|
390
|
+
return
|
|
391
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value, internal::get_fixed_value<NColsType>::value>::
|
|
392
|
+
Type(derived(), rows() - internal::get_runtime_value(cRows), cols() - internal::get_runtime_value(cCols),
|
|
393
|
+
internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
|
|
360
394
|
}
|
|
361
395
|
|
|
362
396
|
/// This is the const version of bottomRightCorner(NRowsType, NColsType).
|
|
363
|
-
template<typename NRowsType, typename NColsType>
|
|
397
|
+
template <typename NRowsType, typename NColsType>
|
|
364
398
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
365
399
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
366
|
-
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
400
|
+
const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
401
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
367
402
|
#else
|
|
368
|
-
const typename ConstFixedBlockXpr
|
|
403
|
+
const typename ConstFixedBlockXpr<..., ...>::Type
|
|
369
404
|
#endif
|
|
370
|
-
bottomRightCorner(NRowsType cRows, NColsType cCols) const
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
405
|
+
bottomRightCorner(NRowsType cRows, NColsType cCols) const {
|
|
406
|
+
return typename ConstFixedBlockXpr<
|
|
407
|
+
internal::get_fixed_value<NRowsType>::value,
|
|
408
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), rows() - internal::get_runtime_value(cRows),
|
|
409
|
+
cols() - internal::get_runtime_value(cCols),
|
|
410
|
+
internal::get_runtime_value(cRows),
|
|
411
|
+
internal::get_runtime_value(cCols));
|
|
375
412
|
}
|
|
376
413
|
|
|
377
414
|
/// \returns an expression of a fixed-size bottom-right corner of \c *this.
|
|
@@ -385,19 +422,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
385
422
|
///
|
|
386
423
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
387
424
|
///
|
|
388
|
-
template<int CRows, int CCols>
|
|
389
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
390
|
-
typename FixedBlockXpr<CRows,CCols>::Type
|
|
391
|
-
{
|
|
392
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
|
|
425
|
+
template <int CRows, int CCols>
|
|
426
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomRightCorner() {
|
|
427
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, cols() - CCols);
|
|
393
428
|
}
|
|
394
429
|
|
|
395
430
|
/// This is the const version of bottomRightCorner<int, int>().
|
|
396
|
-
template<int CRows, int CCols>
|
|
397
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
398
|
-
|
|
399
|
-
{
|
|
400
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
|
|
431
|
+
template <int CRows, int CCols>
|
|
432
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomRightCorner() const {
|
|
433
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, cols() - CCols);
|
|
401
434
|
}
|
|
402
435
|
|
|
403
436
|
/// \returns an expression of a bottom-right corner of \c *this.
|
|
@@ -419,23 +452,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
419
452
|
///
|
|
420
453
|
/// \sa class Block
|
|
421
454
|
///
|
|
422
|
-
template<int CRows, int CCols>
|
|
423
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
455
|
+
template <int CRows, int CCols>
|
|
456
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomRightCorner(Index cRows,
|
|
457
|
+
Index cCols) {
|
|
458
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
427
459
|
}
|
|
428
460
|
|
|
429
461
|
/// This is the const version of bottomRightCorner<int, int>(Index, Index).
|
|
430
|
-
template<int CRows, int CCols>
|
|
431
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
462
|
+
template <int CRows, int CCols>
|
|
463
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomRightCorner(
|
|
464
|
+
Index cRows, Index cCols) const {
|
|
465
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
435
466
|
}
|
|
436
467
|
|
|
437
|
-
|
|
438
|
-
|
|
439
468
|
/// \returns an expression of a bottom-left corner of \c *this with either dynamic or fixed sizes.
|
|
440
469
|
///
|
|
441
470
|
/// \param cRows the number of rows in the corner
|
|
@@ -446,40 +475,47 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRo
|
|
|
446
475
|
/// Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
|
|
447
476
|
/// Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
|
|
448
477
|
///
|
|
449
|
-
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
450
|
-
/// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
478
|
+
/// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
|
|
479
|
+
/// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
|
|
480
|
+
/// for the details.
|
|
451
481
|
///
|
|
452
482
|
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
453
483
|
///
|
|
454
484
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
455
485
|
///
|
|
456
|
-
template<typename NRowsType, typename NColsType>
|
|
486
|
+
template <typename NRowsType, typename NColsType>
|
|
457
487
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
458
488
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
459
|
-
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
489
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
490
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
460
491
|
#else
|
|
461
|
-
typename FixedBlockXpr
|
|
492
|
+
typename FixedBlockXpr<..., ...>::Type
|
|
462
493
|
#endif
|
|
463
|
-
bottomLeftCorner(NRowsType cRows, NColsType cCols)
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
494
|
+
bottomLeftCorner(NRowsType cRows, NColsType cCols) {
|
|
495
|
+
return
|
|
496
|
+
typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
497
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(),
|
|
498
|
+
rows() -
|
|
499
|
+
internal::get_runtime_value(cRows),
|
|
500
|
+
0, internal::get_runtime_value(cRows),
|
|
501
|
+
internal::get_runtime_value(cCols));
|
|
468
502
|
}
|
|
469
503
|
|
|
470
504
|
/// This is the const version of bottomLeftCorner(NRowsType, NColsType).
|
|
471
|
-
template<typename NRowsType, typename NColsType>
|
|
505
|
+
template <typename NRowsType, typename NColsType>
|
|
472
506
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
473
507
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
474
|
-
typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
508
|
+
typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
|
|
509
|
+
internal::get_fixed_value<NColsType>::value>::Type
|
|
475
510
|
#else
|
|
476
|
-
typename ConstFixedBlockXpr
|
|
511
|
+
typename ConstFixedBlockXpr<..., ...>::Type
|
|
477
512
|
#endif
|
|
478
|
-
bottomLeftCorner(NRowsType cRows, NColsType cCols) const
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
513
|
+
bottomLeftCorner(NRowsType cRows, NColsType cCols) const {
|
|
514
|
+
return typename ConstFixedBlockXpr<
|
|
515
|
+
internal::get_fixed_value<NRowsType>::value,
|
|
516
|
+
internal::get_fixed_value<NColsType>::value>::Type(derived(), rows() - internal::get_runtime_value(cRows), 0,
|
|
517
|
+
internal::get_runtime_value(cRows),
|
|
518
|
+
internal::get_runtime_value(cCols));
|
|
483
519
|
}
|
|
484
520
|
|
|
485
521
|
/// \returns an expression of a fixed-size bottom-left corner of \c *this.
|
|
@@ -493,19 +529,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
493
529
|
///
|
|
494
530
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
495
531
|
///
|
|
496
|
-
template<int CRows, int CCols>
|
|
497
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
498
|
-
typename FixedBlockXpr<CRows,CCols>::Type
|
|
499
|
-
{
|
|
500
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
|
|
532
|
+
template <int CRows, int CCols>
|
|
533
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomLeftCorner() {
|
|
534
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, 0);
|
|
501
535
|
}
|
|
502
536
|
|
|
503
537
|
/// This is the const version of bottomLeftCorner<int, int>().
|
|
504
|
-
template<int CRows, int CCols>
|
|
505
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
506
|
-
|
|
507
|
-
{
|
|
508
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
|
|
538
|
+
template <int CRows, int CCols>
|
|
539
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomLeftCorner() const {
|
|
540
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, 0);
|
|
509
541
|
}
|
|
510
542
|
|
|
511
543
|
/// \returns an expression of a bottom-left corner of \c *this.
|
|
@@ -527,23 +559,18 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
527
559
|
///
|
|
528
560
|
/// \sa class Block
|
|
529
561
|
///
|
|
530
|
-
template<int CRows, int CCols>
|
|
531
|
-
EIGEN_STRONG_INLINE
|
|
532
|
-
typename FixedBlockXpr<CRows,CCols>::Type
|
|
533
|
-
{
|
|
534
|
-
return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
|
|
562
|
+
template <int CRows, int CCols>
|
|
563
|
+
EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomLeftCorner(Index cRows, Index cCols) {
|
|
564
|
+
return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
|
|
535
565
|
}
|
|
536
566
|
|
|
537
567
|
/// This is the const version of bottomLeftCorner<int, int>(Index, Index).
|
|
538
|
-
template<int CRows, int CCols>
|
|
539
|
-
EIGEN_STRONG_INLINE
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
|
|
568
|
+
template <int CRows, int CCols>
|
|
569
|
+
EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomLeftCorner(Index cRows,
|
|
570
|
+
Index cCols) const {
|
|
571
|
+
return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
|
|
543
572
|
}
|
|
544
573
|
|
|
545
|
-
|
|
546
|
-
|
|
547
574
|
/// \returns a block consisting of the top rows of \c *this.
|
|
548
575
|
///
|
|
549
576
|
/// \param n the number of rows in the block
|
|
@@ -556,35 +583,33 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRow
|
|
|
556
583
|
/// or Eigen::fix<N>(n) as arguments.
|
|
557
584
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
558
585
|
///
|
|
559
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
586
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
560
587
|
///
|
|
561
588
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
562
589
|
///
|
|
563
|
-
template<typename NRowsType>
|
|
590
|
+
template <typename NRowsType>
|
|
564
591
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
565
592
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
566
|
-
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
593
|
+
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
567
594
|
#else
|
|
568
|
-
typename NRowsBlockXpr<...>::Type
|
|
595
|
+
typename NRowsBlockXpr<...>::Type
|
|
569
596
|
#endif
|
|
570
|
-
topRows(NRowsType n)
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
(derived(), 0, 0, internal::get_runtime_value(n), cols());
|
|
597
|
+
topRows(NRowsType n) {
|
|
598
|
+
return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
599
|
+
derived(), 0, 0, internal::get_runtime_value(n), cols());
|
|
574
600
|
}
|
|
575
601
|
|
|
576
602
|
/// This is the const version of topRows(NRowsType).
|
|
577
|
-
template<typename NRowsType>
|
|
603
|
+
template <typename NRowsType>
|
|
578
604
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
579
605
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
580
|
-
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
606
|
+
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
581
607
|
#else
|
|
582
|
-
const typename ConstNRowsBlockXpr<...>::Type
|
|
608
|
+
const typename ConstNRowsBlockXpr<...>::Type
|
|
583
609
|
#endif
|
|
584
|
-
topRows(NRowsType n) const
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
(derived(), 0, 0, internal::get_runtime_value(n), cols());
|
|
610
|
+
topRows(NRowsType n) const {
|
|
611
|
+
return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
612
|
+
derived(), 0, 0, internal::get_runtime_value(n), cols());
|
|
588
613
|
}
|
|
589
614
|
|
|
590
615
|
/// \returns a block consisting of the top rows of \c *this.
|
|
@@ -598,27 +623,21 @@ topRows(NRowsType n) const
|
|
|
598
623
|
/// Example: \include MatrixBase_template_int_topRows.cpp
|
|
599
624
|
/// Output: \verbinclude MatrixBase_template_int_topRows.out
|
|
600
625
|
///
|
|
601
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
626
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
602
627
|
///
|
|
603
628
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
604
629
|
///
|
|
605
|
-
template<int N>
|
|
606
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
607
|
-
typename NRowsBlockXpr<N>::Type topRows(Index n = N)
|
|
608
|
-
{
|
|
630
|
+
template <int N>
|
|
631
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type topRows(Index n = N) {
|
|
609
632
|
return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
|
|
610
633
|
}
|
|
611
634
|
|
|
612
635
|
/// This is the const version of topRows<int>().
|
|
613
|
-
template<int N>
|
|
614
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
615
|
-
typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
|
|
616
|
-
{
|
|
636
|
+
template <int N>
|
|
637
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const {
|
|
617
638
|
return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
|
|
618
639
|
}
|
|
619
640
|
|
|
620
|
-
|
|
621
|
-
|
|
622
641
|
/// \returns a block consisting of the bottom rows of \c *this.
|
|
623
642
|
///
|
|
624
643
|
/// \param n the number of rows in the block
|
|
@@ -631,35 +650,33 @@ typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
|
|
|
631
650
|
/// or Eigen::fix<N>(n) as arguments.
|
|
632
651
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
633
652
|
///
|
|
634
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
653
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
635
654
|
///
|
|
636
655
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
637
656
|
///
|
|
638
|
-
template<typename NRowsType>
|
|
657
|
+
template <typename NRowsType>
|
|
639
658
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
640
659
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
641
|
-
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
660
|
+
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
642
661
|
#else
|
|
643
|
-
typename NRowsBlockXpr<...>::Type
|
|
662
|
+
typename NRowsBlockXpr<...>::Type
|
|
644
663
|
#endif
|
|
645
|
-
bottomRows(NRowsType n)
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
(derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
|
|
664
|
+
bottomRows(NRowsType n) {
|
|
665
|
+
return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
666
|
+
derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
|
|
649
667
|
}
|
|
650
668
|
|
|
651
669
|
/// This is the const version of bottomRows(NRowsType).
|
|
652
|
-
template<typename NRowsType>
|
|
670
|
+
template <typename NRowsType>
|
|
653
671
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
654
672
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
655
|
-
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
673
|
+
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
656
674
|
#else
|
|
657
|
-
const typename ConstNRowsBlockXpr<...>::Type
|
|
675
|
+
const typename ConstNRowsBlockXpr<...>::Type
|
|
658
676
|
#endif
|
|
659
|
-
bottomRows(NRowsType n) const
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
(derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
|
|
677
|
+
bottomRows(NRowsType n) const {
|
|
678
|
+
return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
679
|
+
derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
|
|
663
680
|
}
|
|
664
681
|
|
|
665
682
|
/// \returns a block consisting of the bottom rows of \c *this.
|
|
@@ -673,27 +690,21 @@ bottomRows(NRowsType n) const
|
|
|
673
690
|
/// Example: \include MatrixBase_template_int_bottomRows.cpp
|
|
674
691
|
/// Output: \verbinclude MatrixBase_template_int_bottomRows.out
|
|
675
692
|
///
|
|
676
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
693
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
677
694
|
///
|
|
678
695
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
679
696
|
///
|
|
680
|
-
template<int N>
|
|
681
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
682
|
-
typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
|
|
683
|
-
{
|
|
697
|
+
template <int N>
|
|
698
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type bottomRows(Index n = N) {
|
|
684
699
|
return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
|
|
685
700
|
}
|
|
686
701
|
|
|
687
702
|
/// This is the const version of bottomRows<int>().
|
|
688
|
-
template<int N>
|
|
689
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
690
|
-
typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
|
|
691
|
-
{
|
|
703
|
+
template <int N>
|
|
704
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const {
|
|
692
705
|
return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
|
|
693
706
|
}
|
|
694
707
|
|
|
695
|
-
|
|
696
|
-
|
|
697
708
|
/// \returns a block consisting of a range of rows of \c *this.
|
|
698
709
|
///
|
|
699
710
|
/// \param startRow the index of the first row in the block
|
|
@@ -707,35 +718,33 @@ typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
|
|
|
707
718
|
/// or Eigen::fix<N>(n) as arguments.
|
|
708
719
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
709
720
|
///
|
|
710
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
721
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
711
722
|
///
|
|
712
723
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
713
724
|
///
|
|
714
|
-
template<typename NRowsType>
|
|
725
|
+
template <typename NRowsType>
|
|
715
726
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
716
727
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
717
|
-
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
728
|
+
typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
718
729
|
#else
|
|
719
|
-
typename NRowsBlockXpr<...>::Type
|
|
730
|
+
typename NRowsBlockXpr<...>::Type
|
|
720
731
|
#endif
|
|
721
|
-
middleRows(Index startRow, NRowsType n)
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
(derived(), startRow, 0, internal::get_runtime_value(n), cols());
|
|
732
|
+
middleRows(Index startRow, NRowsType n) {
|
|
733
|
+
return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
734
|
+
derived(), startRow, 0, internal::get_runtime_value(n), cols());
|
|
725
735
|
}
|
|
726
736
|
|
|
727
737
|
/// This is the const version of middleRows(Index,NRowsType).
|
|
728
|
-
template<typename NRowsType>
|
|
738
|
+
template <typename NRowsType>
|
|
729
739
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
730
740
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
731
|
-
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
741
|
+
const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
|
|
732
742
|
#else
|
|
733
|
-
const typename ConstNRowsBlockXpr<...>::Type
|
|
743
|
+
const typename ConstNRowsBlockXpr<...>::Type
|
|
734
744
|
#endif
|
|
735
|
-
middleRows(Index startRow, NRowsType n) const
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
(derived(), startRow, 0, internal::get_runtime_value(n), cols());
|
|
745
|
+
middleRows(Index startRow, NRowsType n) const {
|
|
746
|
+
return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
|
|
747
|
+
derived(), startRow, 0, internal::get_runtime_value(n), cols());
|
|
739
748
|
}
|
|
740
749
|
|
|
741
750
|
/// \returns a block consisting of a range of rows of \c *this.
|
|
@@ -750,27 +759,22 @@ middleRows(Index startRow, NRowsType n) const
|
|
|
750
759
|
/// Example: \include DenseBase_template_int_middleRows.cpp
|
|
751
760
|
/// Output: \verbinclude DenseBase_template_int_middleRows.out
|
|
752
761
|
///
|
|
753
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
762
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
754
763
|
///
|
|
755
764
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
756
765
|
///
|
|
757
|
-
template<int N>
|
|
758
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
759
|
-
typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
|
|
760
|
-
{
|
|
766
|
+
template <int N>
|
|
767
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) {
|
|
761
768
|
return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
|
|
762
769
|
}
|
|
763
770
|
|
|
764
771
|
/// This is the const version of middleRows<int>().
|
|
765
|
-
template<int N>
|
|
766
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
767
|
-
|
|
768
|
-
{
|
|
772
|
+
template <int N>
|
|
773
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow,
|
|
774
|
+
Index n = N) const {
|
|
769
775
|
return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
|
|
770
776
|
}
|
|
771
777
|
|
|
772
|
-
|
|
773
|
-
|
|
774
778
|
/// \returns a block consisting of the left columns of \c *this.
|
|
775
779
|
///
|
|
776
780
|
/// \param n the number of columns in the block
|
|
@@ -783,35 +787,33 @@ typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) con
|
|
|
783
787
|
/// or Eigen::fix<N>(n) as arguments.
|
|
784
788
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
785
789
|
///
|
|
786
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
790
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
787
791
|
///
|
|
788
792
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
789
793
|
///
|
|
790
|
-
template<typename NColsType>
|
|
794
|
+
template <typename NColsType>
|
|
791
795
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
792
796
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
793
|
-
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
797
|
+
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
794
798
|
#else
|
|
795
|
-
typename NColsBlockXpr<...>::Type
|
|
799
|
+
typename NColsBlockXpr<...>::Type
|
|
796
800
|
#endif
|
|
797
|
-
leftCols(NColsType n)
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
(derived(), 0, 0, rows(), internal::get_runtime_value(n));
|
|
801
|
+
leftCols(NColsType n) {
|
|
802
|
+
return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0, rows(),
|
|
803
|
+
internal::get_runtime_value(n));
|
|
801
804
|
}
|
|
802
805
|
|
|
803
806
|
/// This is the const version of leftCols(NColsType).
|
|
804
|
-
template<typename NColsType>
|
|
807
|
+
template <typename NColsType>
|
|
805
808
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
806
809
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
807
|
-
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
810
|
+
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
808
811
|
#else
|
|
809
|
-
const typename ConstNColsBlockXpr<...>::Type
|
|
812
|
+
const typename ConstNColsBlockXpr<...>::Type
|
|
810
813
|
#endif
|
|
811
|
-
leftCols(NColsType n) const
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
(derived(), 0, 0, rows(), internal::get_runtime_value(n));
|
|
814
|
+
leftCols(NColsType n) const {
|
|
815
|
+
return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0, rows(),
|
|
816
|
+
internal::get_runtime_value(n));
|
|
815
817
|
}
|
|
816
818
|
|
|
817
819
|
/// \returns a block consisting of the left columns of \c *this.
|
|
@@ -825,27 +827,21 @@ leftCols(NColsType n) const
|
|
|
825
827
|
/// Example: \include MatrixBase_template_int_leftCols.cpp
|
|
826
828
|
/// Output: \verbinclude MatrixBase_template_int_leftCols.out
|
|
827
829
|
///
|
|
828
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
830
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
829
831
|
///
|
|
830
832
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
831
833
|
///
|
|
832
|
-
template<int N>
|
|
833
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
834
|
-
typename NColsBlockXpr<N>::Type leftCols(Index n = N)
|
|
835
|
-
{
|
|
834
|
+
template <int N>
|
|
835
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type leftCols(Index n = N) {
|
|
836
836
|
return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
|
|
837
837
|
}
|
|
838
838
|
|
|
839
839
|
/// This is the const version of leftCols<int>().
|
|
840
|
-
template<int N>
|
|
841
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
842
|
-
typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
|
|
843
|
-
{
|
|
840
|
+
template <int N>
|
|
841
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const {
|
|
844
842
|
return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
|
|
845
843
|
}
|
|
846
844
|
|
|
847
|
-
|
|
848
|
-
|
|
849
845
|
/// \returns a block consisting of the right columns of \c *this.
|
|
850
846
|
///
|
|
851
847
|
/// \param n the number of columns in the block
|
|
@@ -858,35 +854,33 @@ typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
|
|
|
858
854
|
/// or Eigen::fix<N>(n) as arguments.
|
|
859
855
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
860
856
|
///
|
|
861
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
857
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
862
858
|
///
|
|
863
859
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
864
860
|
///
|
|
865
|
-
template<typename NColsType>
|
|
861
|
+
template <typename NColsType>
|
|
866
862
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
867
863
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
868
|
-
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
864
|
+
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
869
865
|
#else
|
|
870
|
-
typename NColsBlockXpr<...>::Type
|
|
866
|
+
typename NColsBlockXpr<...>::Type
|
|
871
867
|
#endif
|
|
872
|
-
rightCols(NColsType n)
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
(derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
|
|
868
|
+
rightCols(NColsType n) {
|
|
869
|
+
return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
|
|
870
|
+
derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
|
|
876
871
|
}
|
|
877
872
|
|
|
878
873
|
/// This is the const version of rightCols(NColsType).
|
|
879
|
-
template<typename NColsType>
|
|
874
|
+
template <typename NColsType>
|
|
880
875
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
881
876
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
882
|
-
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
877
|
+
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
883
878
|
#else
|
|
884
|
-
const typename ConstNColsBlockXpr<...>::Type
|
|
879
|
+
const typename ConstNColsBlockXpr<...>::Type
|
|
885
880
|
#endif
|
|
886
|
-
rightCols(NColsType n) const
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
(derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
|
|
881
|
+
rightCols(NColsType n) const {
|
|
882
|
+
return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
|
|
883
|
+
derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
|
|
890
884
|
}
|
|
891
885
|
|
|
892
886
|
/// \returns a block consisting of the right columns of \c *this.
|
|
@@ -900,27 +894,21 @@ rightCols(NColsType n) const
|
|
|
900
894
|
/// Example: \include MatrixBase_template_int_rightCols.cpp
|
|
901
895
|
/// Output: \verbinclude MatrixBase_template_int_rightCols.out
|
|
902
896
|
///
|
|
903
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
897
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
904
898
|
///
|
|
905
899
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
906
900
|
///
|
|
907
|
-
template<int N>
|
|
908
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
909
|
-
typename NColsBlockXpr<N>::Type rightCols(Index n = N)
|
|
910
|
-
{
|
|
901
|
+
template <int N>
|
|
902
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type rightCols(Index n = N) {
|
|
911
903
|
return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
|
|
912
904
|
}
|
|
913
905
|
|
|
914
906
|
/// This is the const version of rightCols<int>().
|
|
915
|
-
template<int N>
|
|
916
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
917
|
-
typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
|
|
918
|
-
{
|
|
907
|
+
template <int N>
|
|
908
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const {
|
|
919
909
|
return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
|
|
920
910
|
}
|
|
921
911
|
|
|
922
|
-
|
|
923
|
-
|
|
924
912
|
/// \returns a block consisting of a range of columns of \c *this.
|
|
925
913
|
///
|
|
926
914
|
/// \param startCol the index of the first column in the block
|
|
@@ -934,35 +922,33 @@ typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
|
|
|
934
922
|
/// or Eigen::fix<N>(n) as arguments.
|
|
935
923
|
/// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
|
|
936
924
|
///
|
|
937
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
925
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
938
926
|
///
|
|
939
927
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
940
928
|
///
|
|
941
|
-
template<typename NColsType>
|
|
929
|
+
template <typename NColsType>
|
|
942
930
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
943
931
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
944
|
-
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
932
|
+
typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
945
933
|
#else
|
|
946
|
-
typename NColsBlockXpr<...>::Type
|
|
934
|
+
typename NColsBlockXpr<...>::Type
|
|
947
935
|
#endif
|
|
948
|
-
middleCols(Index startCol, NColsType numCols)
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
(derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
|
|
936
|
+
middleCols(Index startCol, NColsType numCols) {
|
|
937
|
+
return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
|
|
938
|
+
derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
|
|
952
939
|
}
|
|
953
940
|
|
|
954
941
|
/// This is the const version of middleCols(Index,NColsType).
|
|
955
|
-
template<typename NColsType>
|
|
942
|
+
template <typename NColsType>
|
|
956
943
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
957
944
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
958
|
-
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
945
|
+
const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
|
|
959
946
|
#else
|
|
960
|
-
const typename ConstNColsBlockXpr<...>::Type
|
|
947
|
+
const typename ConstNColsBlockXpr<...>::Type
|
|
961
948
|
#endif
|
|
962
|
-
middleCols(Index startCol, NColsType numCols) const
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
(derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
|
|
949
|
+
middleCols(Index startCol, NColsType numCols) const {
|
|
950
|
+
return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
|
|
951
|
+
derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
|
|
966
952
|
}
|
|
967
953
|
|
|
968
954
|
/// \returns a block consisting of a range of columns of \c *this.
|
|
@@ -977,27 +963,22 @@ middleCols(Index startCol, NColsType numCols) const
|
|
|
977
963
|
/// Example: \include DenseBase_template_int_middleCols.cpp
|
|
978
964
|
/// Output: \verbinclude DenseBase_template_int_middleCols.out
|
|
979
965
|
///
|
|
980
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
966
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
981
967
|
///
|
|
982
968
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
983
969
|
///
|
|
984
|
-
template<int N>
|
|
985
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
986
|
-
typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
|
|
987
|
-
{
|
|
970
|
+
template <int N>
|
|
971
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) {
|
|
988
972
|
return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
|
|
989
973
|
}
|
|
990
974
|
|
|
991
975
|
/// This is the const version of middleCols<int>().
|
|
992
|
-
template<int N>
|
|
993
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
994
|
-
|
|
995
|
-
{
|
|
976
|
+
template <int N>
|
|
977
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol,
|
|
978
|
+
Index n = N) const {
|
|
996
979
|
return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
|
|
997
980
|
}
|
|
998
981
|
|
|
999
|
-
|
|
1000
|
-
|
|
1001
982
|
/// \returns a fixed-size expression of a block of \c *this.
|
|
1002
983
|
///
|
|
1003
984
|
/// The template parameters \a NRows and \a NCols are the number of
|
|
@@ -1022,19 +1003,16 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
1022
1003
|
///
|
|
1023
1004
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
1024
1005
|
///
|
|
1025
|
-
template<int NRows, int NCols>
|
|
1026
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1027
|
-
typename FixedBlockXpr<NRows,NCols>::Type
|
|
1028
|
-
{
|
|
1029
|
-
return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
|
|
1006
|
+
template <int NRows, int NCols>
|
|
1007
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<NRows, NCols>::Type block(Index startRow, Index startCol) {
|
|
1008
|
+
return typename FixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol);
|
|
1030
1009
|
}
|
|
1031
1010
|
|
|
1032
1011
|
/// This is the const version of block<>(Index, Index). */
|
|
1033
|
-
template<int NRows, int NCols>
|
|
1034
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
|
|
1012
|
+
template <int NRows, int NCols>
|
|
1013
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<NRows, NCols>::Type block(
|
|
1014
|
+
Index startRow, Index startCol) const {
|
|
1015
|
+
return typename ConstFixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol);
|
|
1038
1016
|
}
|
|
1039
1017
|
|
|
1040
1018
|
/// \returns an expression of a block of \c *this.
|
|
@@ -1068,21 +1046,18 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
|
|
1068
1046
|
///
|
|
1069
1047
|
/// \sa block(Index,Index,NRowsType,NColsType), class Block
|
|
1070
1048
|
///
|
|
1071
|
-
template<int NRows, int NCols>
|
|
1072
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
|
|
1049
|
+
template <int NRows, int NCols>
|
|
1050
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<NRows, NCols>::Type block(Index startRow, Index startCol,
|
|
1051
|
+
Index blockRows,
|
|
1052
|
+
Index blockCols) {
|
|
1053
|
+
return typename FixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
|
|
1077
1054
|
}
|
|
1078
1055
|
|
|
1079
1056
|
/// This is the const version of block<>(Index, Index, Index, Index).
|
|
1080
|
-
template<int NRows, int NCols>
|
|
1081
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
{
|
|
1085
|
-
return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
|
|
1057
|
+
template <int NRows, int NCols>
|
|
1058
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<NRows, NCols>::Type block(
|
|
1059
|
+
Index startRow, Index startCol, Index blockRows, Index blockCols) const {
|
|
1060
|
+
return typename ConstFixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
|
|
1086
1061
|
}
|
|
1087
1062
|
|
|
1088
1063
|
/// \returns an expression of the \a i-th column of \c *this. Note that the numbering starts at 0.
|
|
@@ -1090,42 +1065,26 @@ const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index
|
|
|
1090
1065
|
/// Example: \include MatrixBase_col.cpp
|
|
1091
1066
|
/// Output: \verbinclude MatrixBase_col.out
|
|
1092
1067
|
///
|
|
1093
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
|
|
1068
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
|
|
1094
1069
|
/**
|
|
1095
|
-
|
|
1096
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1097
|
-
ColXpr col(Index i)
|
|
1098
|
-
{
|
|
1099
|
-
return ColXpr(derived(), i);
|
|
1100
|
-
}
|
|
1070
|
+
* \sa row(), class Block */
|
|
1071
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ColXpr col(Index i) { return ColXpr(derived(), i); }
|
|
1101
1072
|
|
|
1102
1073
|
/// This is the const version of col().
|
|
1103
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1104
|
-
ConstColXpr col(Index i) const
|
|
1105
|
-
{
|
|
1106
|
-
return ConstColXpr(derived(), i);
|
|
1107
|
-
}
|
|
1074
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ConstColXpr col(Index i) const { return ConstColXpr(derived(), i); }
|
|
1108
1075
|
|
|
1109
1076
|
/// \returns an expression of the \a i-th row of \c *this. Note that the numbering starts at 0.
|
|
1110
1077
|
///
|
|
1111
1078
|
/// Example: \include MatrixBase_row.cpp
|
|
1112
1079
|
/// Output: \verbinclude MatrixBase_row.out
|
|
1113
1080
|
///
|
|
1114
|
-
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
|
|
1081
|
+
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
|
|
1115
1082
|
/**
|
|
1116
|
-
|
|
1117
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1118
|
-
RowXpr row(Index i)
|
|
1119
|
-
{
|
|
1120
|
-
return RowXpr(derived(), i);
|
|
1121
|
-
}
|
|
1083
|
+
* \sa col(), class Block */
|
|
1084
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RowXpr row(Index i) { return RowXpr(derived(), i); }
|
|
1122
1085
|
|
|
1123
1086
|
/// This is the const version of row(). */
|
|
1124
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1125
|
-
ConstRowXpr row(Index i) const
|
|
1126
|
-
{
|
|
1127
|
-
return ConstRowXpr(derived(), i);
|
|
1128
|
-
}
|
|
1087
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ConstRowXpr row(Index i) const { return ConstRowXpr(derived(), i); }
|
|
1129
1088
|
|
|
1130
1089
|
/// \returns an expression of a segment (i.e. a vector block) in \c *this with either dynamic or fixed sizes.
|
|
1131
1090
|
///
|
|
@@ -1148,34 +1107,31 @@ ConstRowXpr row(Index i) const
|
|
|
1148
1107
|
///
|
|
1149
1108
|
/// \sa block(Index,Index,NRowsType,NColsType), fix<N>, fix<N>(int), class Block
|
|
1150
1109
|
///
|
|
1151
|
-
template<typename NType>
|
|
1110
|
+
template <typename NType>
|
|
1152
1111
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1153
1112
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1154
|
-
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1113
|
+
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1155
1114
|
#else
|
|
1156
|
-
typename FixedSegmentReturnType<...>::Type
|
|
1115
|
+
typename FixedSegmentReturnType<...>::Type
|
|
1157
1116
|
#endif
|
|
1158
|
-
segment(Index start, NType n)
|
|
1159
|
-
{
|
|
1117
|
+
segment(Index start, NType n) {
|
|
1160
1118
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1161
|
-
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1162
|
-
|
|
1119
|
+
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(derived(), start,
|
|
1120
|
+
internal::get_runtime_value(n));
|
|
1163
1121
|
}
|
|
1164
1122
|
|
|
1165
|
-
|
|
1166
1123
|
/// This is the const version of segment(Index,NType).
|
|
1167
|
-
template<typename NType>
|
|
1124
|
+
template <typename NType>
|
|
1168
1125
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1169
1126
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1170
|
-
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1127
|
+
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1171
1128
|
#else
|
|
1172
|
-
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1129
|
+
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1173
1130
|
#endif
|
|
1174
|
-
segment(Index start, NType n) const
|
|
1175
|
-
{
|
|
1131
|
+
segment(Index start, NType n) const {
|
|
1176
1132
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1177
|
-
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1178
|
-
|
|
1133
|
+
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
|
|
1134
|
+
derived(), start, internal::get_runtime_value(n));
|
|
1179
1135
|
}
|
|
1180
1136
|
|
|
1181
1137
|
/// \returns an expression of the first coefficients of \c *this with either dynamic or fixed sizes.
|
|
@@ -1198,33 +1154,31 @@ segment(Index start, NType n) const
|
|
|
1198
1154
|
///
|
|
1199
1155
|
/// \sa class Block, block(Index,Index)
|
|
1200
1156
|
///
|
|
1201
|
-
template<typename NType>
|
|
1157
|
+
template <typename NType>
|
|
1202
1158
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1203
1159
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1204
|
-
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1160
|
+
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1205
1161
|
#else
|
|
1206
|
-
typename FixedSegmentReturnType<...>::Type
|
|
1162
|
+
typename FixedSegmentReturnType<...>::Type
|
|
1207
1163
|
#endif
|
|
1208
|
-
head(NType n)
|
|
1209
|
-
{
|
|
1164
|
+
head(NType n) {
|
|
1210
1165
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1211
|
-
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1212
|
-
|
|
1166
|
+
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(derived(), 0,
|
|
1167
|
+
internal::get_runtime_value(n));
|
|
1213
1168
|
}
|
|
1214
1169
|
|
|
1215
1170
|
/// This is the const version of head(NType).
|
|
1216
|
-
template<typename NType>
|
|
1171
|
+
template <typename NType>
|
|
1217
1172
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1218
1173
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1219
|
-
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1174
|
+
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1220
1175
|
#else
|
|
1221
|
-
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1176
|
+
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1222
1177
|
#endif
|
|
1223
|
-
head(NType n) const
|
|
1224
|
-
{
|
|
1178
|
+
head(NType n) const {
|
|
1225
1179
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1226
|
-
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1227
|
-
|
|
1180
|
+
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
|
|
1181
|
+
derived(), 0, internal::get_runtime_value(n));
|
|
1228
1182
|
}
|
|
1229
1183
|
|
|
1230
1184
|
/// \returns an expression of a last coefficients of \c *this with either dynamic or fixed sizes.
|
|
@@ -1247,33 +1201,31 @@ head(NType n) const
|
|
|
1247
1201
|
///
|
|
1248
1202
|
/// \sa class Block, block(Index,Index)
|
|
1249
1203
|
///
|
|
1250
|
-
template<typename NType>
|
|
1204
|
+
template <typename NType>
|
|
1251
1205
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1252
1206
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1253
|
-
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1207
|
+
typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1254
1208
|
#else
|
|
1255
|
-
typename FixedSegmentReturnType<...>::Type
|
|
1209
|
+
typename FixedSegmentReturnType<...>::Type
|
|
1256
1210
|
#endif
|
|
1257
|
-
tail(NType n)
|
|
1258
|
-
{
|
|
1211
|
+
tail(NType n) {
|
|
1259
1212
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1260
|
-
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1261
|
-
|
|
1213
|
+
return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
|
|
1214
|
+
derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
|
|
1262
1215
|
}
|
|
1263
1216
|
|
|
1264
1217
|
/// This is the const version of tail(Index).
|
|
1265
|
-
template<typename NType>
|
|
1218
|
+
template <typename NType>
|
|
1266
1219
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1267
1220
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
1268
|
-
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1221
|
+
const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1269
1222
|
#else
|
|
1270
|
-
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1223
|
+
const typename ConstFixedSegmentReturnType<...>::Type
|
|
1271
1224
|
#endif
|
|
1272
|
-
tail(NType n) const
|
|
1273
|
-
{
|
|
1225
|
+
tail(NType n) const {
|
|
1274
1226
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1275
|
-
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
|
|
1276
|
-
|
|
1227
|
+
return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
|
|
1228
|
+
derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
|
|
1277
1229
|
}
|
|
1278
1230
|
|
|
1279
1231
|
/// \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
|
|
@@ -1292,19 +1244,16 @@ tail(NType n) const
|
|
|
1292
1244
|
///
|
|
1293
1245
|
/// \sa segment(Index,NType), class Block
|
|
1294
1246
|
///
|
|
1295
|
-
template<int N>
|
|
1296
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1297
|
-
typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
|
|
1298
|
-
{
|
|
1247
|
+
template <int N>
|
|
1248
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N) {
|
|
1299
1249
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1300
1250
|
return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
|
|
1301
1251
|
}
|
|
1302
1252
|
|
|
1303
1253
|
/// This is the const version of segment<int>(Index).
|
|
1304
|
-
template<int N>
|
|
1305
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1306
|
-
|
|
1307
|
-
{
|
|
1254
|
+
template <int N>
|
|
1255
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type segment(Index start,
|
|
1256
|
+
Index n = N) const {
|
|
1308
1257
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1309
1258
|
return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
|
|
1310
1259
|
}
|
|
@@ -1324,19 +1273,15 @@ typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
|
|
|
1324
1273
|
///
|
|
1325
1274
|
/// \sa head(NType), class Block
|
|
1326
1275
|
///
|
|
1327
|
-
template<int N>
|
|
1328
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1329
|
-
typename FixedSegmentReturnType<N>::Type head(Index n = N)
|
|
1330
|
-
{
|
|
1276
|
+
template <int N>
|
|
1277
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type head(Index n = N) {
|
|
1331
1278
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1332
1279
|
return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
|
|
1333
1280
|
}
|
|
1334
1281
|
|
|
1335
1282
|
/// This is the const version of head<int>().
|
|
1336
|
-
template<int N>
|
|
1337
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1338
|
-
typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
|
|
1339
|
-
{
|
|
1283
|
+
template <int N>
|
|
1284
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const {
|
|
1340
1285
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1341
1286
|
return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
|
|
1342
1287
|
}
|
|
@@ -1356,87 +1301,70 @@ typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
|
|
|
1356
1301
|
///
|
|
1357
1302
|
/// \sa tail(NType), class Block
|
|
1358
1303
|
///
|
|
1359
|
-
template<int N>
|
|
1360
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1361
|
-
typename FixedSegmentReturnType<N>::Type tail(Index n = N)
|
|
1362
|
-
{
|
|
1304
|
+
template <int N>
|
|
1305
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type tail(Index n = N) {
|
|
1363
1306
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1364
|
-
return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
|
|
1307
|
+
return typename FixedSegmentReturnType<N>::Type(derived(), size() - n, n);
|
|
1365
1308
|
}
|
|
1366
1309
|
|
|
1367
1310
|
/// This is the const version of tail<int>.
|
|
1368
|
-
template<int N>
|
|
1369
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1370
|
-
typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
|
|
1371
|
-
{
|
|
1311
|
+
template <int N>
|
|
1312
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const {
|
|
1372
1313
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
|
|
1373
|
-
return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
|
|
1314
|
+
return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n, n);
|
|
1374
1315
|
}
|
|
1375
1316
|
|
|
1376
1317
|
/// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
|
|
1377
1318
|
/// is col-major (resp. row-major).
|
|
1378
1319
|
///
|
|
1379
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1380
|
-
InnerVectorReturnType
|
|
1381
|
-
|
|
1320
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE InnerVectorReturnType innerVector(Index outer) {
|
|
1321
|
+
return InnerVectorReturnType(derived(), outer);
|
|
1322
|
+
}
|
|
1382
1323
|
|
|
1383
1324
|
/// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
|
|
1384
1325
|
/// is col-major (resp. row-major). Read-only.
|
|
1385
1326
|
///
|
|
1386
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1387
|
-
|
|
1388
|
-
|
|
1327
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ConstInnerVectorReturnType innerVector(Index outer) const {
|
|
1328
|
+
return ConstInnerVectorReturnType(derived(), outer);
|
|
1329
|
+
}
|
|
1389
1330
|
|
|
1390
1331
|
/// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
|
|
1391
1332
|
/// is col-major (resp. row-major).
|
|
1392
1333
|
///
|
|
1393
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
{
|
|
1397
|
-
return Block<Derived,Dynamic,Dynamic,true>(derived(),
|
|
1398
|
-
IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
|
|
1399
|
-
IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
|
|
1400
|
-
|
|
1334
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize) {
|
|
1335
|
+
return Block<Derived, Dynamic, Dynamic, true>(derived(), IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
|
|
1336
|
+
IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
|
|
1401
1337
|
}
|
|
1402
1338
|
|
|
1403
1339
|
/// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
|
|
1404
1340
|
/// is col-major (resp. row-major). Read-only.
|
|
1405
1341
|
///
|
|
1406
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1407
|
-
const
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
|
|
1412
|
-
IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
|
|
1413
|
-
|
|
1342
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ConstInnerVectorsReturnType innerVectors(Index outerStart,
|
|
1343
|
+
Index outerSize) const {
|
|
1344
|
+
return Block<const Derived, Dynamic, Dynamic, true>(derived(), IsRowMajor ? outerStart : 0,
|
|
1345
|
+
IsRowMajor ? 0 : outerStart, IsRowMajor ? outerSize : rows(),
|
|
1346
|
+
IsRowMajor ? cols() : outerSize);
|
|
1414
1347
|
}
|
|
1415
1348
|
|
|
1416
1349
|
/** \returns the i-th subvector (column or vector) according to the \c Direction
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
template<DirectionType Direction>
|
|
1420
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1421
|
-
|
|
1422
|
-
subVector(Index i)
|
|
1423
|
-
{
|
|
1424
|
-
return typename internal::conditional<Direction==Vertical,ColXpr,RowXpr>::type(derived(),i);
|
|
1350
|
+
* \sa subVectors()
|
|
1351
|
+
*/
|
|
1352
|
+
template <DirectionType Direction>
|
|
1353
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::conditional_t<Direction == Vertical, ColXpr, RowXpr> subVector(Index i) {
|
|
1354
|
+
return std::conditional_t<Direction == Vertical, ColXpr, RowXpr>(derived(), i);
|
|
1425
1355
|
}
|
|
1426
1356
|
|
|
1427
1357
|
/** This is the const version of subVector(Index) */
|
|
1428
|
-
template<DirectionType Direction>
|
|
1429
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
{
|
|
1433
|
-
return typename internal::conditional<Direction==Vertical,ConstColXpr,ConstRowXpr>::type(derived(),i);
|
|
1358
|
+
template <DirectionType Direction>
|
|
1359
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::conditional_t<Direction == Vertical, ConstColXpr, ConstRowXpr> subVector(
|
|
1360
|
+
Index i) const {
|
|
1361
|
+
return std::conditional_t<Direction == Vertical, ConstColXpr, ConstRowXpr>(derived(), i);
|
|
1434
1362
|
}
|
|
1435
1363
|
|
|
1436
1364
|
/** \returns the number of subvectors (rows or columns) in the direction \c Direction
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
template<DirectionType Direction>
|
|
1440
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
1441
|
-
|
|
1442
|
-
|
|
1365
|
+
* \sa subVector(Index)
|
|
1366
|
+
*/
|
|
1367
|
+
template <DirectionType Direction>
|
|
1368
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index subVectors() const {
|
|
1369
|
+
return (Direction == Vertical) ? cols() : rows();
|
|
1370
|
+
}
|