@smake/eigen 1.0.2 → 1.1.0
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/COPYING.APACHE +203 -0
- package/eigen/COPYING.BSD +26 -0
- package/eigen/COPYING.GPL +674 -0
- package/eigen/COPYING.LGPL +502 -0
- package/eigen/COPYING.MINPACK +51 -0
- package/eigen/COPYING.MPL2 +373 -0
- package/eigen/COPYING.README +18 -0
- package/eigen/Eigen/Cholesky +0 -1
- package/eigen/Eigen/Core +108 -266
- package/eigen/Eigen/Eigenvalues +0 -1
- package/eigen/Eigen/Geometry +3 -6
- package/eigen/Eigen/Householder +0 -1
- package/eigen/Eigen/Jacobi +0 -1
- package/eigen/Eigen/KLUSupport +41 -0
- package/eigen/Eigen/LU +2 -5
- package/eigen/Eigen/OrderingMethods +0 -3
- package/eigen/Eigen/PaStiXSupport +1 -0
- package/eigen/Eigen/PardisoSupport +0 -0
- package/eigen/Eigen/QR +0 -1
- package/eigen/Eigen/QtAlignedMalloc +0 -1
- package/eigen/Eigen/SVD +0 -1
- package/eigen/Eigen/Sparse +0 -2
- package/eigen/Eigen/SparseCholesky +0 -8
- package/eigen/Eigen/SparseLU +4 -0
- package/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
- package/eigen/Eigen/src/Cholesky/LLT.h +39 -23
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
- package/eigen/Eigen/src/Core/Array.h +99 -11
- package/eigen/Eigen/src/Core/ArrayBase.h +1 -1
- package/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
- package/eigen/Eigen/src/Core/Assign.h +1 -1
- package/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
- package/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
- package/eigen/Eigen/src/Core/BandMatrix.h +16 -16
- package/eigen/Eigen/src/Core/Block.h +56 -60
- package/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
- package/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
- package/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
- package/eigen/Eigen/src/Core/CoreIterators.h +5 -0
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +12 -10
- package/eigen/Eigen/src/Core/DenseBase.h +128 -39
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
- package/eigen/Eigen/src/Core/DenseStorage.h +150 -68
- package/eigen/Eigen/src/Core/Diagonal.h +21 -23
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
- package/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
- package/eigen/Eigen/src/Core/Dot.h +10 -10
- package/eigen/Eigen/src/Core/EigenBase.h +10 -9
- package/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
- package/eigen/Eigen/src/Core/Fuzzy.h +3 -3
- package/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
- package/eigen/Eigen/src/Core/GenericPacketMath.h +597 -147
- package/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
- package/eigen/Eigen/src/Core/IO.h +40 -7
- package/eigen/Eigen/src/Core/IndexedView.h +237 -0
- package/eigen/Eigen/src/Core/Inverse.h +9 -10
- package/eigen/Eigen/src/Core/Map.h +7 -7
- package/eigen/Eigen/src/Core/MapBase.h +5 -3
- package/eigen/Eigen/src/Core/MathFunctions.h +756 -120
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
- package/eigen/Eigen/src/Core/Matrix.h +131 -25
- package/eigen/Eigen/src/Core/MatrixBase.h +19 -2
- package/eigen/Eigen/src/Core/NestByValue.h +25 -50
- package/eigen/Eigen/src/Core/NoAlias.h +4 -3
- package/eigen/Eigen/src/Core/NumTraits.h +107 -20
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- package/eigen/Eigen/src/Core/PermutationMatrix.h +3 -3
- package/eigen/Eigen/src/Core/PlainObjectBase.h +145 -54
- package/eigen/Eigen/src/Core/Product.h +30 -25
- package/eigen/Eigen/src/Core/ProductEvaluators.h +183 -142
- package/eigen/Eigen/src/Core/Random.h +37 -1
- package/eigen/Eigen/src/Core/Redux.h +180 -170
- package/eigen/Eigen/src/Core/Ref.h +118 -21
- package/eigen/Eigen/src/Core/Replicate.h +8 -8
- package/eigen/Eigen/src/Core/Reshaped.h +454 -0
- package/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
- package/eigen/Eigen/src/Core/Reverse.h +18 -12
- package/eigen/Eigen/src/Core/Select.h +8 -6
- package/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
- package/eigen/Eigen/src/Core/Solve.h +14 -14
- package/eigen/Eigen/src/Core/SolveTriangular.h +13 -13
- package/eigen/Eigen/src/Core/SolverBase.h +41 -3
- package/eigen/Eigen/src/Core/StableNorm.h +100 -70
- package/eigen/Eigen/src/Core/StlIterators.h +463 -0
- package/eigen/Eigen/src/Core/Stride.h +9 -4
- package/eigen/Eigen/src/Core/Swap.h +5 -4
- package/eigen/Eigen/src/Core/Transpose.h +86 -27
- package/eigen/Eigen/src/Core/Transpositions.h +26 -8
- package/eigen/Eigen/src/Core/TriangularMatrix.h +88 -72
- package/eigen/Eigen/src/Core/VectorBlock.h +5 -5
- package/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
- package/eigen/Eigen/src/Core/Visitor.h +137 -29
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +186 -213
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1250 -252
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- package/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
- package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- package/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- package/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +354 -15
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1073 -585
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +29 -7
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +4 -4
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +1 -1
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
- package/eigen/Eigen/src/Core/products/Parallelizer.h +23 -9
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +23 -6
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
- package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +2 -2
- package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +3 -3
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +5 -3
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
- package/eigen/Eigen/src/Core/util/BlasUtil.h +208 -124
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- package/eigen/Eigen/src/Core/util/Constants.h +25 -9
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +14 -2
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +28 -4
- package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
- package/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
- package/eigen/Eigen/src/Core/util/Macros.h +661 -250
- package/eigen/Eigen/src/Core/util/Memory.h +222 -52
- package/eigen/Eigen/src/Core/util/Meta.h +349 -105
- package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- package/eigen/Eigen/src/Core/util/XprHelper.h +48 -30
- package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
- package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +10 -5
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +75 -42
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
- package/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
- package/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
- package/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
- package/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
- package/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
- package/eigen/Eigen/src/Geometry/Quaternion.h +52 -14
- package/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
- package/eigen/Eigen/src/Geometry/Scaling.h +22 -4
- package/eigen/Eigen/src/Geometry/Transform.h +86 -65
- package/eigen/Eigen/src/Geometry/Translation.h +6 -6
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
- package/eigen/Eigen/src/Householder/Householder.h +8 -4
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
- package/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- package/eigen/Eigen/src/LU/Determinant.h +35 -19
- package/eigen/Eigen/src/LU/FullPivLU.h +29 -43
- package/eigen/Eigen/src/LU/InverseImpl.h +25 -8
- package/eigen/Eigen/src/LU/PartialPivLU.h +67 -57
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
- package/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
- package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
- package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +10 -9
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
- package/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
- package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
- package/eigen/Eigen/src/SVD/BDCSVD.h +137 -48
- package/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
- package/eigen/Eigen/src/SVD/SVDBase.h +82 -21
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +16 -8
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +11 -36
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +2 -2
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
- package/eigen/Eigen/src/SparseCore/SparseMatrix.h +124 -10
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
- package/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
- package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
- package/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU.h +160 -10
- package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
- package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
- package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
- package/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
- package/eigen/Eigen/src/StlSupport/StdDeque.h +2 -14
- package/eigen/Eigen/src/StlSupport/StdList.h +2 -2
- package/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
- package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
- package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
- package/eigen/Eigen/src/misc/lapacke.h +5 -4
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +27 -1
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
- package/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
- package/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
- package/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
- package/eigen/README.md +5 -0
- package/lib/LibEigen.d.ts +4 -0
- package/lib/LibEigen.js +14 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +7 -3
- package/package.json +2 -10
- package/eigen/Eigen/CMakeLists.txt +0 -19
- package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
- package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
- package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
- package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
- package/lib/eigen.d.ts +0 -2
- package/lib/eigen.js +0 -15
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#ifndef EIGEN_BLOCK_H
|
|
12
12
|
#define EIGEN_BLOCK_H
|
|
13
13
|
|
|
14
|
-
namespace Eigen {
|
|
14
|
+
namespace Eigen {
|
|
15
15
|
|
|
16
16
|
namespace internal {
|
|
17
17
|
template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
|
|
@@ -52,7 +52,7 @@ struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprTyp
|
|
|
52
52
|
FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0,
|
|
53
53
|
Flags = (traits<XprType>::Flags & (DirectAccessBit | (InnerPanel?CompressedAccessBit:0))) | FlagsLvalueBit | FlagsRowMajorBit,
|
|
54
54
|
// FIXME DirectAccessBit should not be handled by expressions
|
|
55
|
-
//
|
|
55
|
+
//
|
|
56
56
|
// Alignment is needed by MapBase's assertions
|
|
57
57
|
// We can sefely set it to false here. Internal alignment errors will be detected by an eigen_internal_assert in the respective evaluator
|
|
58
58
|
Alignment = 0
|
|
@@ -61,7 +61,7 @@ struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprTyp
|
|
|
61
61
|
|
|
62
62
|
template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false,
|
|
63
63
|
bool HasDirectAccess = internal::has_direct_access<XprType>::ret> class BlockImpl_dense;
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
} // end namespace internal
|
|
66
66
|
|
|
67
67
|
template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, typename StorageKind> class BlockImpl;
|
|
@@ -109,13 +109,13 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class
|
|
|
109
109
|
typedef Impl Base;
|
|
110
110
|
EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
|
|
111
111
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
typedef typename internal::remove_all<XprType>::type NestedExpression;
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
/** Column or Row constructor
|
|
116
116
|
*/
|
|
117
|
-
EIGEN_DEVICE_FUNC
|
|
118
|
-
|
|
117
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
118
|
+
Block(XprType& xpr, Index i) : Impl(xpr,i)
|
|
119
119
|
{
|
|
120
120
|
eigen_assert( (i>=0) && (
|
|
121
121
|
((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows())
|
|
@@ -124,8 +124,8 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class
|
|
|
124
124
|
|
|
125
125
|
/** Fixed-size constructor
|
|
126
126
|
*/
|
|
127
|
-
EIGEN_DEVICE_FUNC
|
|
128
|
-
|
|
127
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
128
|
+
Block(XprType& xpr, Index startRow, Index startCol)
|
|
129
129
|
: Impl(xpr, startRow, startCol)
|
|
130
130
|
{
|
|
131
131
|
EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
|
|
@@ -135,8 +135,8 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class
|
|
|
135
135
|
|
|
136
136
|
/** Dynamic-size constructor
|
|
137
137
|
*/
|
|
138
|
-
EIGEN_DEVICE_FUNC
|
|
139
|
-
|
|
138
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
139
|
+
Block(XprType& xpr,
|
|
140
140
|
Index startRow, Index startCol,
|
|
141
141
|
Index blockRows, Index blockCols)
|
|
142
142
|
: Impl(xpr, startRow, startCol, blockRows, blockCols)
|
|
@@ -147,7 +147,7 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class
|
|
|
147
147
|
&& startCol >= 0 && blockCols >= 0 && startCol <= xpr.cols() - blockCols);
|
|
148
148
|
}
|
|
149
149
|
};
|
|
150
|
-
|
|
150
|
+
|
|
151
151
|
// The generic default implementation for dense block simplu forward to the internal::BlockImpl_dense
|
|
152
152
|
// that must be specialized for direct and non-direct access...
|
|
153
153
|
template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
|
|
@@ -159,10 +159,10 @@ class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
|
|
|
159
159
|
public:
|
|
160
160
|
typedef Impl Base;
|
|
161
161
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
|
|
162
|
-
EIGEN_DEVICE_FUNC
|
|
163
|
-
EIGEN_DEVICE_FUNC
|
|
162
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
|
|
163
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE BlockImpl(XprType& xpr, Index startRow, Index startCol) : Impl(xpr, startRow, startCol) {}
|
|
164
164
|
EIGEN_DEVICE_FUNC
|
|
165
|
-
|
|
165
|
+
EIGEN_STRONG_INLINE BlockImpl(XprType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
|
|
166
166
|
: Impl(xpr, startRow, startCol, blockRows, blockCols) {}
|
|
167
167
|
};
|
|
168
168
|
|
|
@@ -294,25 +294,25 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool H
|
|
|
294
294
|
EIGEN_DEVICE_FUNC inline Index outerStride() const;
|
|
295
295
|
#endif
|
|
296
296
|
|
|
297
|
-
EIGEN_DEVICE_FUNC
|
|
297
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
298
298
|
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
|
|
299
|
-
{
|
|
300
|
-
return m_xpr;
|
|
299
|
+
{
|
|
300
|
+
return m_xpr;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
-
EIGEN_DEVICE_FUNC
|
|
303
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
304
304
|
XprType& nestedExpression() { return m_xpr; }
|
|
305
|
-
|
|
306
|
-
EIGEN_DEVICE_FUNC
|
|
307
|
-
StorageIndex startRow() const
|
|
308
|
-
{
|
|
309
|
-
return m_startRow.value();
|
|
305
|
+
|
|
306
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
307
|
+
StorageIndex startRow() const EIGEN_NOEXCEPT
|
|
308
|
+
{
|
|
309
|
+
return m_startRow.value();
|
|
310
310
|
}
|
|
311
|
-
|
|
312
|
-
EIGEN_DEVICE_FUNC
|
|
313
|
-
StorageIndex startCol() const
|
|
314
|
-
{
|
|
315
|
-
return m_startCol.value();
|
|
311
|
+
|
|
312
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
313
|
+
StorageIndex startCol() const EIGEN_NOEXCEPT
|
|
314
|
+
{
|
|
315
|
+
return m_startCol.value();
|
|
316
316
|
}
|
|
317
317
|
|
|
318
318
|
protected:
|
|
@@ -342,9 +342,9 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
342
342
|
|
|
343
343
|
/** Column or Row constructor
|
|
344
344
|
*/
|
|
345
|
-
EIGEN_DEVICE_FUNC
|
|
346
|
-
|
|
347
|
-
: Base(xpr.data() + i * ( ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && (!XprTypeIsRowMajor))
|
|
345
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
346
|
+
BlockImpl_dense(XprType& xpr, Index i)
|
|
347
|
+
: Base(xpr.data() + i * ( ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && (!XprTypeIsRowMajor))
|
|
348
348
|
|| ((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && ( XprTypeIsRowMajor)) ? xpr.innerStride() : xpr.outerStride()),
|
|
349
349
|
BlockRows==1 ? 1 : xpr.rows(),
|
|
350
350
|
BlockCols==1 ? 1 : xpr.cols()),
|
|
@@ -357,8 +357,8 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
357
357
|
|
|
358
358
|
/** Fixed-size constructor
|
|
359
359
|
*/
|
|
360
|
-
EIGEN_DEVICE_FUNC
|
|
361
|
-
|
|
360
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
361
|
+
BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
|
|
362
362
|
: Base(xpr.data()+xpr.innerStride()*(XprTypeIsRowMajor?startCol:startRow) + xpr.outerStride()*(XprTypeIsRowMajor?startRow:startCol)),
|
|
363
363
|
m_xpr(xpr), m_startRow(startRow), m_startCol(startCol)
|
|
364
364
|
{
|
|
@@ -367,8 +367,8 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
367
367
|
|
|
368
368
|
/** Dynamic-size constructor
|
|
369
369
|
*/
|
|
370
|
-
EIGEN_DEVICE_FUNC
|
|
371
|
-
|
|
370
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
371
|
+
BlockImpl_dense(XprType& xpr,
|
|
372
372
|
Index startRow, Index startCol,
|
|
373
373
|
Index blockRows, Index blockCols)
|
|
374
374
|
: Base(xpr.data()+xpr.innerStride()*(XprTypeIsRowMajor?startCol:startRow) + xpr.outerStride()*(XprTypeIsRowMajor?startRow:startCol), blockRows, blockCols),
|
|
@@ -377,18 +377,18 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
377
377
|
init();
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
EIGEN_DEVICE_FUNC
|
|
381
|
-
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
|
|
382
|
-
{
|
|
383
|
-
return m_xpr;
|
|
380
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
381
|
+
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const EIGEN_NOEXCEPT
|
|
382
|
+
{
|
|
383
|
+
return m_xpr;
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
EIGEN_DEVICE_FUNC
|
|
386
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
387
387
|
XprType& nestedExpression() { return m_xpr; }
|
|
388
|
-
|
|
388
|
+
|
|
389
389
|
/** \sa MapBase::innerStride() */
|
|
390
|
-
EIGEN_DEVICE_FUNC
|
|
391
|
-
|
|
390
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
391
|
+
Index innerStride() const EIGEN_NOEXCEPT
|
|
392
392
|
{
|
|
393
393
|
return internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
|
394
394
|
? m_xpr.innerStride()
|
|
@@ -396,23 +396,19 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
/** \sa MapBase::outerStride() */
|
|
399
|
-
EIGEN_DEVICE_FUNC
|
|
400
|
-
|
|
399
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
400
|
+
Index outerStride() const EIGEN_NOEXCEPT
|
|
401
401
|
{
|
|
402
|
-
return
|
|
402
|
+
return internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
|
403
|
+
? m_xpr.outerStride()
|
|
404
|
+
: m_xpr.innerStride();
|
|
403
405
|
}
|
|
404
406
|
|
|
405
|
-
EIGEN_DEVICE_FUNC
|
|
406
|
-
StorageIndex startRow() const
|
|
407
|
-
{
|
|
408
|
-
return m_startRow.value();
|
|
409
|
-
}
|
|
407
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
408
|
+
StorageIndex startRow() const EIGEN_NOEXCEPT { return m_startRow.value(); }
|
|
410
409
|
|
|
411
|
-
EIGEN_DEVICE_FUNC
|
|
412
|
-
StorageIndex startCol() const
|
|
413
|
-
{
|
|
414
|
-
return m_startCol.value();
|
|
415
|
-
}
|
|
410
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
411
|
+
StorageIndex startCol() const EIGEN_NOEXCEPT { return m_startCol.value(); }
|
|
416
412
|
|
|
417
413
|
#ifndef __SUNPRO_CC
|
|
418
414
|
// FIXME sunstudio is not friendly with the above friend...
|
|
@@ -422,8 +418,8 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
422
418
|
|
|
423
419
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
424
420
|
/** \internal used by allowAligned() */
|
|
425
|
-
EIGEN_DEVICE_FUNC
|
|
426
|
-
|
|
421
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
422
|
+
BlockImpl_dense(XprType& xpr, const Scalar* data, Index blockRows, Index blockCols)
|
|
427
423
|
: Base(data, blockRows, blockCols), m_xpr(xpr)
|
|
428
424
|
{
|
|
429
425
|
init();
|
|
@@ -431,7 +427,7 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|
|
431
427
|
#endif
|
|
432
428
|
|
|
433
429
|
protected:
|
|
434
|
-
EIGEN_DEVICE_FUNC
|
|
430
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
435
431
|
void init()
|
|
436
432
|
{
|
|
437
433
|
m_outerStride = internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
|
@@ -14,58 +14,56 @@ namespace Eigen {
|
|
|
14
14
|
|
|
15
15
|
namespace internal {
|
|
16
16
|
|
|
17
|
-
template<typename Derived, int UnrollCount>
|
|
17
|
+
template<typename Derived, int UnrollCount, int Rows>
|
|
18
18
|
struct all_unroller
|
|
19
19
|
{
|
|
20
|
-
typedef typename Derived::ExpressionTraits Traits;
|
|
21
20
|
enum {
|
|
22
|
-
col = (UnrollCount-1) /
|
|
23
|
-
row = (UnrollCount-1) %
|
|
21
|
+
col = (UnrollCount-1) / Rows,
|
|
22
|
+
row = (UnrollCount-1) % Rows
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
static inline bool run(const Derived &mat)
|
|
25
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived &mat)
|
|
27
26
|
{
|
|
28
|
-
return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
|
|
27
|
+
return all_unroller<Derived, UnrollCount-1, Rows>::run(mat) && mat.coeff(row, col);
|
|
29
28
|
}
|
|
30
29
|
};
|
|
31
30
|
|
|
32
|
-
template<typename Derived>
|
|
33
|
-
struct all_unroller<Derived, 0>
|
|
31
|
+
template<typename Derived, int Rows>
|
|
32
|
+
struct all_unroller<Derived, 0, Rows>
|
|
34
33
|
{
|
|
35
|
-
static inline bool run(const Derived &/*mat*/) { return true; }
|
|
34
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived &/*mat*/) { return true; }
|
|
36
35
|
};
|
|
37
36
|
|
|
38
|
-
template<typename Derived>
|
|
39
|
-
struct all_unroller<Derived, Dynamic>
|
|
37
|
+
template<typename Derived, int Rows>
|
|
38
|
+
struct all_unroller<Derived, Dynamic, Rows>
|
|
40
39
|
{
|
|
41
|
-
static inline bool run(const Derived &) { return false; }
|
|
40
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived &) { return false; }
|
|
42
41
|
};
|
|
43
42
|
|
|
44
|
-
template<typename Derived, int UnrollCount>
|
|
43
|
+
template<typename Derived, int UnrollCount, int Rows>
|
|
45
44
|
struct any_unroller
|
|
46
45
|
{
|
|
47
|
-
typedef typename Derived::ExpressionTraits Traits;
|
|
48
46
|
enum {
|
|
49
|
-
col = (UnrollCount-1) /
|
|
50
|
-
row = (UnrollCount-1) %
|
|
47
|
+
col = (UnrollCount-1) / Rows,
|
|
48
|
+
row = (UnrollCount-1) % Rows
|
|
51
49
|
};
|
|
52
50
|
|
|
53
|
-
static inline bool run(const Derived &mat)
|
|
51
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived &mat)
|
|
54
52
|
{
|
|
55
|
-
return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
|
|
53
|
+
return any_unroller<Derived, UnrollCount-1, Rows>::run(mat) || mat.coeff(row, col);
|
|
56
54
|
}
|
|
57
55
|
};
|
|
58
56
|
|
|
59
|
-
template<typename Derived>
|
|
60
|
-
struct any_unroller<Derived, 0>
|
|
57
|
+
template<typename Derived, int Rows>
|
|
58
|
+
struct any_unroller<Derived, 0, Rows>
|
|
61
59
|
{
|
|
62
|
-
static inline bool run(const Derived & /*mat*/) { return false; }
|
|
60
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived & /*mat*/) { return false; }
|
|
63
61
|
};
|
|
64
62
|
|
|
65
|
-
template<typename Derived>
|
|
66
|
-
struct any_unroller<Derived, Dynamic>
|
|
63
|
+
template<typename Derived, int Rows>
|
|
64
|
+
struct any_unroller<Derived, Dynamic, Rows>
|
|
67
65
|
{
|
|
68
|
-
static inline bool run(const Derived &) { return false; }
|
|
66
|
+
EIGEN_DEVICE_FUNC static inline bool run(const Derived &) { return false; }
|
|
69
67
|
};
|
|
70
68
|
|
|
71
69
|
} // end namespace internal
|
|
@@ -78,16 +76,16 @@ struct any_unroller<Derived, Dynamic>
|
|
|
78
76
|
* \sa any(), Cwise::operator<()
|
|
79
77
|
*/
|
|
80
78
|
template<typename Derived>
|
|
81
|
-
inline bool DenseBase<Derived>::all() const
|
|
79
|
+
EIGEN_DEVICE_FUNC inline bool DenseBase<Derived>::all() const
|
|
82
80
|
{
|
|
83
81
|
typedef internal::evaluator<Derived> Evaluator;
|
|
84
82
|
enum {
|
|
85
83
|
unroll = SizeAtCompileTime != Dynamic
|
|
86
|
-
&& SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
|
|
84
|
+
&& SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits<Scalar>::AddCost)) <= EIGEN_UNROLLING_LIMIT
|
|
87
85
|
};
|
|
88
86
|
Evaluator evaluator(derived());
|
|
89
87
|
if(unroll)
|
|
90
|
-
return internal::all_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
|
|
88
|
+
return internal::all_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic, internal::traits<Derived>::RowsAtCompileTime>::run(evaluator);
|
|
91
89
|
else
|
|
92
90
|
{
|
|
93
91
|
for(Index j = 0; j < cols(); ++j)
|
|
@@ -102,16 +100,16 @@ inline bool DenseBase<Derived>::all() const
|
|
|
102
100
|
* \sa all()
|
|
103
101
|
*/
|
|
104
102
|
template<typename Derived>
|
|
105
|
-
inline bool DenseBase<Derived>::any() const
|
|
103
|
+
EIGEN_DEVICE_FUNC inline bool DenseBase<Derived>::any() const
|
|
106
104
|
{
|
|
107
105
|
typedef internal::evaluator<Derived> Evaluator;
|
|
108
106
|
enum {
|
|
109
107
|
unroll = SizeAtCompileTime != Dynamic
|
|
110
|
-
&& SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
|
|
108
|
+
&& SizeAtCompileTime * (int(Evaluator::CoeffReadCost) + int(NumTraits<Scalar>::AddCost)) <= EIGEN_UNROLLING_LIMIT
|
|
111
109
|
};
|
|
112
110
|
Evaluator evaluator(derived());
|
|
113
111
|
if(unroll)
|
|
114
|
-
return internal::any_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
|
|
112
|
+
return internal::any_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic, internal::traits<Derived>::RowsAtCompileTime>::run(evaluator);
|
|
115
113
|
else
|
|
116
114
|
{
|
|
117
115
|
for(Index j = 0; j < cols(); ++j)
|
|
@@ -126,7 +124,7 @@ inline bool DenseBase<Derived>::any() const
|
|
|
126
124
|
* \sa all(), any()
|
|
127
125
|
*/
|
|
128
126
|
template<typename Derived>
|
|
129
|
-
inline Eigen::Index DenseBase<Derived>::count() const
|
|
127
|
+
EIGEN_DEVICE_FUNC inline Eigen::Index DenseBase<Derived>::count() const
|
|
130
128
|
{
|
|
131
129
|
return derived().template cast<bool>().template cast<Index>().sum();
|
|
132
130
|
}
|
|
@@ -33,6 +33,8 @@ struct CommaInitializer
|
|
|
33
33
|
inline CommaInitializer(XprType& xpr, const Scalar& s)
|
|
34
34
|
: m_xpr(xpr), m_row(0), m_col(1), m_currentBlockRows(1)
|
|
35
35
|
{
|
|
36
|
+
eigen_assert(m_xpr.rows() > 0 && m_xpr.cols() > 0
|
|
37
|
+
&& "Cannot comma-initialize a 0x0 matrix (operator<<)");
|
|
36
38
|
m_xpr.coeffRef(0,0) = s;
|
|
37
39
|
}
|
|
38
40
|
|
|
@@ -41,6 +43,8 @@ struct CommaInitializer
|
|
|
41
43
|
inline CommaInitializer(XprType& xpr, const DenseBase<OtherDerived>& other)
|
|
42
44
|
: m_xpr(xpr), m_row(0), m_col(other.cols()), m_currentBlockRows(other.rows())
|
|
43
45
|
{
|
|
46
|
+
eigen_assert(m_xpr.rows() >= other.rows() && m_xpr.cols() >= other.cols()
|
|
47
|
+
&& "Cannot comma-initialize a 0x0 matrix (operator<<)");
|
|
44
48
|
m_xpr.block(0, 0, other.rows(), other.cols()) = other;
|
|
45
49
|
}
|
|
46
50
|
|
|
@@ -103,7 +107,7 @@ struct CommaInitializer
|
|
|
103
107
|
EIGEN_EXCEPTION_SPEC(Eigen::eigen_assert_exception)
|
|
104
108
|
#endif
|
|
105
109
|
{
|
|
106
|
-
|
|
110
|
+
finished();
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
/** \returns the built matrix once all its coefficients have been set.
|
|
@@ -141,7 +145,7 @@ struct CommaInitializer
|
|
|
141
145
|
* \sa CommaInitializer::finished(), class CommaInitializer
|
|
142
146
|
*/
|
|
143
147
|
template<typename Derived>
|
|
144
|
-
inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
|
|
148
|
+
EIGEN_DEVICE_FUNC inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
|
|
145
149
|
{
|
|
146
150
|
return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
|
|
147
151
|
}
|
|
@@ -149,7 +153,7 @@ inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s
|
|
|
149
153
|
/** \sa operator<<(const Scalar&) */
|
|
150
154
|
template<typename Derived>
|
|
151
155
|
template<typename OtherDerived>
|
|
152
|
-
inline CommaInitializer<Derived>
|
|
156
|
+
EIGEN_DEVICE_FUNC inline CommaInitializer<Derived>
|
|
153
157
|
DenseBase<Derived>::operator<<(const DenseBase<OtherDerived>& other)
|
|
154
158
|
{
|
|
155
159
|
return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
|