tomoto 0.2.2 → 0.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +8 -10
- data/ext/tomoto/ct.cpp +11 -11
- data/ext/tomoto/dmr.cpp +14 -13
- data/ext/tomoto/dt.cpp +14 -14
- data/ext/tomoto/extconf.rb +7 -5
- data/ext/tomoto/gdmr.cpp +7 -7
- data/ext/tomoto/hdp.cpp +9 -9
- data/ext/tomoto/hlda.cpp +13 -13
- data/ext/tomoto/hpa.cpp +5 -5
- data/ext/tomoto/lda.cpp +42 -39
- data/ext/tomoto/llda.cpp +6 -6
- data/ext/tomoto/mglda.cpp +15 -15
- data/ext/tomoto/pa.cpp +6 -6
- data/ext/tomoto/plda.cpp +6 -6
- data/ext/tomoto/slda.cpp +8 -8
- data/ext/tomoto/{ext.cpp → tomoto.cpp} +8 -8
- data/ext/tomoto/utils.h +16 -70
- data/lib/tomoto/version.rb +1 -1
- data/lib/tomoto.rb +5 -1
- data/vendor/EigenRand/EigenRand/Core.h +10 -10
- data/vendor/EigenRand/EigenRand/Dists/Basic.h +208 -9
- data/vendor/EigenRand/EigenRand/Dists/Discrete.h +52 -31
- data/vendor/EigenRand/EigenRand/Dists/GammaPoisson.h +9 -8
- data/vendor/EigenRand/EigenRand/Dists/NormalExp.h +28 -21
- data/vendor/EigenRand/EigenRand/EigenRand +11 -6
- data/vendor/EigenRand/EigenRand/Macro.h +13 -7
- data/vendor/EigenRand/EigenRand/MorePacketMath.h +348 -740
- data/vendor/EigenRand/EigenRand/MvDists/Multinomial.h +5 -3
- data/vendor/EigenRand/EigenRand/MvDists/MvNormal.h +9 -3
- data/vendor/EigenRand/EigenRand/PacketFilter.h +11 -253
- data/vendor/EigenRand/EigenRand/PacketRandomEngine.h +21 -47
- data/vendor/EigenRand/EigenRand/RandUtils.h +50 -344
- data/vendor/EigenRand/EigenRand/arch/AVX/MorePacketMath.h +619 -0
- data/vendor/EigenRand/EigenRand/arch/AVX/PacketFilter.h +149 -0
- data/vendor/EigenRand/EigenRand/arch/AVX/RandUtils.h +228 -0
- data/vendor/EigenRand/EigenRand/arch/NEON/MorePacketMath.h +473 -0
- data/vendor/EigenRand/EigenRand/arch/NEON/PacketFilter.h +142 -0
- data/vendor/EigenRand/EigenRand/arch/NEON/RandUtils.h +126 -0
- data/vendor/EigenRand/EigenRand/arch/SSE/MorePacketMath.h +501 -0
- data/vendor/EigenRand/EigenRand/arch/SSE/PacketFilter.h +133 -0
- data/vendor/EigenRand/EigenRand/arch/SSE/RandUtils.h +120 -0
- data/vendor/EigenRand/EigenRand/doc.h +24 -12
- data/vendor/EigenRand/README.md +57 -4
- data/vendor/eigen/COPYING.APACHE +203 -0
- data/vendor/eigen/COPYING.BSD +1 -1
- data/vendor/eigen/COPYING.MINPACK +51 -52
- data/vendor/eigen/Eigen/Cholesky +0 -1
- data/vendor/eigen/Eigen/Core +112 -265
- data/vendor/eigen/Eigen/Eigenvalues +2 -3
- data/vendor/eigen/Eigen/Geometry +5 -8
- data/vendor/eigen/Eigen/Householder +0 -1
- data/vendor/eigen/Eigen/Jacobi +0 -1
- data/vendor/eigen/Eigen/KLUSupport +41 -0
- data/vendor/eigen/Eigen/LU +2 -5
- data/vendor/eigen/Eigen/OrderingMethods +0 -3
- data/vendor/eigen/Eigen/PaStiXSupport +1 -0
- data/vendor/eigen/Eigen/PardisoSupport +0 -0
- data/vendor/eigen/Eigen/QR +2 -3
- data/vendor/eigen/Eigen/QtAlignedMalloc +0 -1
- data/vendor/eigen/Eigen/SVD +0 -1
- data/vendor/eigen/Eigen/Sparse +0 -2
- data/vendor/eigen/Eigen/SparseCholesky +0 -8
- data/vendor/eigen/Eigen/SparseLU +4 -0
- data/vendor/eigen/Eigen/SparseQR +0 -1
- data/vendor/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
- data/vendor/eigen/Eigen/src/Cholesky/LLT.h +39 -23
- data/vendor/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
- data/vendor/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
- data/vendor/eigen/Eigen/src/Core/Array.h +99 -11
- data/vendor/eigen/Eigen/src/Core/ArrayBase.h +3 -3
- data/vendor/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
- data/vendor/eigen/Eigen/src/Core/Assign.h +1 -1
- data/vendor/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
- data/vendor/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
- data/vendor/eigen/Eigen/src/Core/BandMatrix.h +16 -16
- data/vendor/eigen/Eigen/src/Core/Block.h +56 -60
- data/vendor/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
- data/vendor/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
- data/vendor/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
- data/vendor/eigen/Eigen/src/Core/CoreIterators.h +5 -0
- data/vendor/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
- data/vendor/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
- data/vendor/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
- data/vendor/eigen/Eigen/src/Core/CwiseUnaryView.h +14 -10
- data/vendor/eigen/Eigen/src/Core/DenseBase.h +132 -42
- data/vendor/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
- data/vendor/eigen/Eigen/src/Core/DenseStorage.h +153 -71
- data/vendor/eigen/Eigen/src/Core/Diagonal.h +21 -23
- data/vendor/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
- data/vendor/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
- data/vendor/eigen/Eigen/src/Core/Dot.h +10 -10
- data/vendor/eigen/Eigen/src/Core/EigenBase.h +10 -9
- data/vendor/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
- data/vendor/eigen/Eigen/src/Core/Fuzzy.h +3 -3
- data/vendor/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
- data/vendor/eigen/Eigen/src/Core/GenericPacketMath.h +599 -152
- data/vendor/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
- data/vendor/eigen/Eigen/src/Core/IO.h +40 -7
- data/vendor/eigen/Eigen/src/Core/IndexedView.h +237 -0
- data/vendor/eigen/Eigen/src/Core/Inverse.h +9 -10
- data/vendor/eigen/Eigen/src/Core/Map.h +7 -7
- data/vendor/eigen/Eigen/src/Core/MapBase.h +10 -3
- data/vendor/eigen/Eigen/src/Core/MathFunctions.h +767 -125
- data/vendor/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
- data/vendor/eigen/Eigen/src/Core/Matrix.h +131 -25
- data/vendor/eigen/Eigen/src/Core/MatrixBase.h +21 -3
- data/vendor/eigen/Eigen/src/Core/NestByValue.h +25 -50
- data/vendor/eigen/Eigen/src/Core/NoAlias.h +4 -3
- data/vendor/eigen/Eigen/src/Core/NumTraits.h +107 -20
- data/vendor/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- data/vendor/eigen/Eigen/src/Core/PermutationMatrix.h +3 -31
- data/vendor/eigen/Eigen/src/Core/PlainObjectBase.h +152 -59
- data/vendor/eigen/Eigen/src/Core/Product.h +30 -25
- data/vendor/eigen/Eigen/src/Core/ProductEvaluators.h +192 -125
- data/vendor/eigen/Eigen/src/Core/Random.h +37 -1
- data/vendor/eigen/Eigen/src/Core/Redux.h +180 -170
- data/vendor/eigen/Eigen/src/Core/Ref.h +121 -23
- data/vendor/eigen/Eigen/src/Core/Replicate.h +8 -8
- data/vendor/eigen/Eigen/src/Core/Reshaped.h +454 -0
- data/vendor/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
- data/vendor/eigen/Eigen/src/Core/Reverse.h +18 -12
- data/vendor/eigen/Eigen/src/Core/Select.h +8 -6
- data/vendor/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
- data/vendor/eigen/Eigen/src/Core/Solve.h +14 -14
- data/vendor/eigen/Eigen/src/Core/SolveTriangular.h +16 -16
- data/vendor/eigen/Eigen/src/Core/SolverBase.h +41 -3
- data/vendor/eigen/Eigen/src/Core/StableNorm.h +100 -70
- data/vendor/eigen/Eigen/src/Core/StlIterators.h +463 -0
- data/vendor/eigen/Eigen/src/Core/Stride.h +9 -4
- data/vendor/eigen/Eigen/src/Core/Swap.h +5 -4
- data/vendor/eigen/Eigen/src/Core/Transpose.h +88 -27
- data/vendor/eigen/Eigen/src/Core/Transpositions.h +26 -47
- data/vendor/eigen/Eigen/src/Core/TriangularMatrix.h +93 -75
- data/vendor/eigen/Eigen/src/Core/VectorBlock.h +5 -5
- data/vendor/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
- data/vendor/eigen/Eigen/src/Core/Visitor.h +137 -29
- data/vendor/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
- data/vendor/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
- data/vendor/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
- data/vendor/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
- data/vendor/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- data/vendor/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +207 -236
- data/vendor/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1482 -495
- data/vendor/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- data/vendor/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
- data/vendor/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
- data/vendor/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- data/vendor/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
- data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- data/vendor/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
- data/vendor/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
- data/vendor/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- data/vendor/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
- data/vendor/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- data/vendor/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- data/vendor/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- data/vendor/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- data/vendor/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- data/vendor/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- data/vendor/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
- data/vendor/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- data/vendor/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
- data/vendor/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
- data/vendor/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- data/vendor/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
- data/vendor/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
- data/vendor/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
- data/vendor/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
- data/vendor/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- data/vendor/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- data/vendor/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- data/vendor/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- data/vendor/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- data/vendor/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- data/vendor/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- data/vendor/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- data/vendor/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
- data/vendor/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
- data/vendor/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
- data/vendor/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
- data/vendor/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
- data/vendor/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
- data/vendor/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
- data/vendor/eigen/Eigen/src/Core/functors/UnaryFunctors.h +355 -16
- data/vendor/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1075 -586
- data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +49 -24
- data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +41 -35
- data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +6 -6
- data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +4 -2
- data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
- data/vendor/eigen/Eigen/src/Core/products/Parallelizer.h +22 -5
- data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +53 -30
- data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +16 -8
- data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
- data/vendor/eigen/Eigen/src/Core/products/SelfadjointProduct.h +4 -4
- data/vendor/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
- data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +33 -27
- data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +14 -12
- data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +36 -34
- data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +8 -4
- data/vendor/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
- data/vendor/eigen/Eigen/src/Core/util/BlasUtil.h +304 -119
- data/vendor/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- data/vendor/eigen/Eigen/src/Core/util/Constants.h +25 -9
- data/vendor/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +26 -3
- data/vendor/eigen/Eigen/src/Core/util/ForwardDeclarations.h +29 -9
- data/vendor/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- data/vendor/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
- data/vendor/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
- data/vendor/eigen/Eigen/src/Core/util/Macros.h +709 -246
- data/vendor/eigen/Eigen/src/Core/util/Memory.h +222 -52
- data/vendor/eigen/Eigen/src/Core/util/Meta.h +355 -77
- data/vendor/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +5 -1
- data/vendor/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- data/vendor/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
- data/vendor/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- data/vendor/eigen/Eigen/src/Core/util/XprHelper.h +65 -30
- data/vendor/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
- data/vendor/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +7 -4
- data/vendor/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
- data/vendor/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
- data/vendor/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
- data/vendor/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
- data/vendor/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
- data/vendor/eigen/Eigen/src/Eigenvalues/RealSchur.h +21 -9
- data/vendor/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +77 -43
- data/vendor/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
- data/vendor/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
- data/vendor/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
- data/vendor/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
- data/vendor/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
- data/vendor/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
- data/vendor/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
- data/vendor/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
- data/vendor/eigen/Eigen/src/Geometry/Quaternion.h +70 -14
- data/vendor/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
- data/vendor/eigen/Eigen/src/Geometry/Scaling.h +23 -5
- data/vendor/eigen/Eigen/src/Geometry/Transform.h +88 -67
- data/vendor/eigen/Eigen/src/Geometry/Translation.h +6 -12
- data/vendor/eigen/Eigen/src/Geometry/Umeyama.h +1 -1
- data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- data/vendor/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
- data/vendor/eigen/Eigen/src/Householder/Householder.h +8 -4
- data/vendor/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
- data/vendor/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
- data/vendor/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
- data/vendor/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- data/vendor/eigen/Eigen/src/LU/Determinant.h +35 -19
- data/vendor/eigen/Eigen/src/LU/FullPivLU.h +29 -43
- data/vendor/eigen/Eigen/src/LU/InverseImpl.h +25 -8
- data/vendor/eigen/Eigen/src/LU/PartialPivLU.h +71 -58
- data/vendor/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
- data/vendor/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
- data/vendor/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
- data/vendor/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
- data/vendor/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
- data/vendor/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +9 -7
- data/vendor/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
- data/vendor/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
- data/vendor/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
- data/vendor/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
- data/vendor/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
- data/vendor/eigen/Eigen/src/SVD/BDCSVD.h +183 -63
- data/vendor/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
- data/vendor/eigen/Eigen/src/SVD/SVDBase.h +83 -22
- data/vendor/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
- data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +17 -9
- data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +12 -37
- data/vendor/eigen/Eigen/src/SparseCore/AmbiVector.h +3 -2
- data/vendor/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
- data/vendor/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
- data/vendor/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
- data/vendor/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
- data/vendor/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
- data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
- data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +4 -2
- data/vendor/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
- data/vendor/eigen/Eigen/src/SparseCore/SparseMatrix.h +126 -11
- data/vendor/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
- data/vendor/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
- data/vendor/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
- data/vendor/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +5 -2
- data/vendor/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
- data/vendor/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
- data/vendor/eigen/Eigen/src/SparseCore/SparseView.h +1 -0
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU.h +162 -12
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
- data/vendor/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
- data/vendor/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
- data/vendor/eigen/Eigen/src/StlSupport/StdDeque.h +2 -12
- data/vendor/eigen/Eigen/src/StlSupport/StdList.h +2 -2
- data/vendor/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
- data/vendor/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
- data/vendor/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
- data/vendor/eigen/Eigen/src/misc/lapacke.h +5 -4
- data/vendor/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +28 -2
- data/vendor/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
- data/vendor/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
- data/vendor/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
- data/vendor/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- data/vendor/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
- data/vendor/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
- data/vendor/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
- data/vendor/eigen/README.md +2 -0
- data/vendor/eigen/bench/btl/README +1 -1
- data/vendor/eigen/bench/tensors/README +6 -7
- data/vendor/eigen/ci/README.md +56 -0
- data/vendor/eigen/demos/mix_eigen_and_c/README +1 -1
- data/vendor/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md +213 -158
- data/vendor/eigen/unsupported/README.txt +1 -1
- data/vendor/tomotopy/README.kr.rst +78 -0
- data/vendor/tomotopy/README.rst +75 -0
- data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +2 -2
- data/vendor/tomotopy/src/Labeling/Phraser.hpp +4 -4
- data/vendor/tomotopy/src/TopicModel/CTModel.hpp +7 -3
- data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +7 -3
- data/vendor/tomotopy/src/TopicModel/DTModel.hpp +6 -3
- data/vendor/tomotopy/src/TopicModel/GDMRModel.hpp +2 -2
- data/vendor/tomotopy/src/TopicModel/HDP.h +1 -0
- data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +57 -6
- data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +6 -3
- data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +3 -2
- data/vendor/tomotopy/src/TopicModel/LDA.h +3 -3
- data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +5 -5
- data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +50 -19
- data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +6 -2
- data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +3 -2
- data/vendor/tomotopy/src/TopicModel/PAModel.hpp +1 -1
- data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +6 -2
- data/vendor/tomotopy/src/TopicModel/PT.h +3 -1
- data/vendor/tomotopy/src/TopicModel/PTModel.hpp +36 -3
- data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +6 -3
- data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +55 -26
- data/vendor/tomotopy/src/Utils/AliasMethod.hpp +5 -4
- data/vendor/tomotopy/src/Utils/Dictionary.h +2 -2
- data/vendor/tomotopy/src/Utils/EigenAddonOps.hpp +36 -1
- data/vendor/tomotopy/src/Utils/MultiNormalDistribution.hpp +1 -1
- data/vendor/tomotopy/src/Utils/TruncMultiNormal.hpp +1 -1
- data/vendor/tomotopy/src/Utils/exception.h +6 -0
- data/vendor/tomotopy/src/Utils/math.h +2 -2
- data/vendor/tomotopy/src/Utils/sample.hpp +14 -12
- data/vendor/tomotopy/src/Utils/serializer.hpp +30 -5
- data/vendor/tomotopy/src/Utils/sse_gamma.h +0 -3
- metadata +64 -18
- data/vendor/eigen/Eigen/CMakeLists.txt +0 -19
- data/vendor/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -674
- data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
- data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
- data/vendor/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
- data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
- data/vendor/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
@@ -14,15 +14,15 @@
|
|
14
14
|
namespace Eigen {
|
15
15
|
|
16
16
|
namespace internal {
|
17
|
-
|
17
|
+
|
18
18
|
// The index type defined by EIGEN_DEFAULT_DENSE_INDEX_TYPE must be a signed type.
|
19
19
|
// This dummy function simply aims at checking that at compile time.
|
20
20
|
static inline void check_DenseIndex_is_signed() {
|
21
|
-
EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE)
|
21
|
+
EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE)
|
22
22
|
}
|
23
23
|
|
24
24
|
} // end namespace internal
|
25
|
-
|
25
|
+
|
26
26
|
/** \class DenseBase
|
27
27
|
* \ingroup Core_Module
|
28
28
|
*
|
@@ -40,7 +40,7 @@ static inline void check_DenseIndex_is_signed() {
|
|
40
40
|
*/
|
41
41
|
template<typename Derived> class DenseBase
|
42
42
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
43
|
-
: public DenseCoeffsBase<Derived>
|
43
|
+
: public DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value>
|
44
44
|
#else
|
45
45
|
: public DenseCoeffsBase<Derived,DirectWriteAccessors>
|
46
46
|
#endif // not EIGEN_PARSED_BY_DOXYGEN
|
@@ -64,14 +64,14 @@ template<typename Derived> class DenseBase
|
|
64
64
|
|
65
65
|
/** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc. */
|
66
66
|
typedef typename internal::traits<Derived>::Scalar Scalar;
|
67
|
-
|
67
|
+
|
68
68
|
/** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.
|
69
69
|
*
|
70
70
|
* It is an alias for the Scalar type */
|
71
71
|
typedef Scalar value_type;
|
72
|
-
|
72
|
+
|
73
73
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
74
|
-
typedef DenseCoeffsBase<Derived> Base;
|
74
|
+
typedef DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value> Base;
|
75
75
|
|
76
76
|
using Base::derived;
|
77
77
|
using Base::const_cast_derived;
|
@@ -150,13 +150,18 @@ template<typename Derived> class DenseBase
|
|
150
150
|
* \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
|
151
151
|
*/
|
152
152
|
|
153
|
-
IsVectorAtCompileTime = internal::traits<Derived>::
|
154
|
-
|| internal::traits<Derived>::
|
153
|
+
IsVectorAtCompileTime = internal::traits<Derived>::RowsAtCompileTime == 1
|
154
|
+
|| internal::traits<Derived>::ColsAtCompileTime == 1,
|
155
155
|
/**< This is set to true if either the number of rows or the number of
|
156
156
|
* columns is known at compile-time to be equal to 1. Indeed, in that case,
|
157
157
|
* we are dealing with a column-vector (if there is only one column) or with
|
158
158
|
* a row-vector (if there is only one row). */
|
159
159
|
|
160
|
+
NumDimensions = int(MaxSizeAtCompileTime) == 1 ? 0 : bool(IsVectorAtCompileTime) ? 1 : 2,
|
161
|
+
/**< This value is equal to Tensor::NumDimensions, i.e. 0 for scalars, 1 for vectors,
|
162
|
+
* and 2 for matrices.
|
163
|
+
*/
|
164
|
+
|
160
165
|
Flags = internal::traits<Derived>::Flags,
|
161
166
|
/**< This stores expression \ref flags flags which may or may not be inherited by new expressions
|
162
167
|
* constructed from this one. See the \ref flags "list of flags".
|
@@ -170,11 +175,11 @@ template<typename Derived> class DenseBase
|
|
170
175
|
InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
|
171
176
|
OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
|
172
177
|
};
|
173
|
-
|
178
|
+
|
174
179
|
typedef typename internal::find_best_packet<Scalar,SizeAtCompileTime>::type PacketScalar;
|
175
180
|
|
176
181
|
enum { IsPlainObjectBase = 0 };
|
177
|
-
|
182
|
+
|
178
183
|
/** The plain matrix type corresponding to this expression.
|
179
184
|
* \sa PlainObject */
|
180
185
|
typedef Matrix<typename internal::traits<Derived>::Scalar,
|
@@ -184,7 +189,7 @@ template<typename Derived> class DenseBase
|
|
184
189
|
internal::traits<Derived>::MaxRowsAtCompileTime,
|
185
190
|
internal::traits<Derived>::MaxColsAtCompileTime
|
186
191
|
> PlainMatrix;
|
187
|
-
|
192
|
+
|
188
193
|
/** The plain array type corresponding to this expression.
|
189
194
|
* \sa PlainObject */
|
190
195
|
typedef Array<typename internal::traits<Derived>::Scalar,
|
@@ -206,7 +211,7 @@ template<typename Derived> class DenseBase
|
|
206
211
|
|
207
212
|
/** \returns the number of nonzero coefficients which is in practice the number
|
208
213
|
* of stored coefficients. */
|
209
|
-
EIGEN_DEVICE_FUNC
|
214
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
210
215
|
inline Index nonZeros() const { return size(); }
|
211
216
|
|
212
217
|
/** \returns the outer size.
|
@@ -214,7 +219,7 @@ template<typename Derived> class DenseBase
|
|
214
219
|
* \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
|
215
220
|
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
|
216
221
|
* column-major matrix, and the number of rows for a row-major matrix. */
|
217
|
-
EIGEN_DEVICE_FUNC
|
222
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
218
223
|
Index outerSize() const
|
219
224
|
{
|
220
225
|
return IsVectorAtCompileTime ? 1
|
@@ -224,9 +229,9 @@ template<typename Derived> class DenseBase
|
|
224
229
|
/** \returns the inner size.
|
225
230
|
*
|
226
231
|
* \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
|
227
|
-
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
|
232
|
+
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
|
228
233
|
* column-major matrix, and the number of columns for a row-major matrix. */
|
229
|
-
EIGEN_DEVICE_FUNC
|
234
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
230
235
|
Index innerSize() const
|
231
236
|
{
|
232
237
|
return IsVectorAtCompileTime ? this->size()
|
@@ -261,9 +266,9 @@ template<typename Derived> class DenseBase
|
|
261
266
|
/** \internal Represents a matrix with all coefficients equal to one another*/
|
262
267
|
typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
|
263
268
|
/** \internal \deprecated Represents a vector with linearly spaced coefficients that allows sequential access only. */
|
264
|
-
typedef CwiseNullaryOp<internal::linspaced_op<Scalar
|
269
|
+
EIGEN_DEPRECATED typedef CwiseNullaryOp<internal::linspaced_op<Scalar>,PlainObject> SequentialLinSpacedReturnType;
|
265
270
|
/** \internal Represents a vector with linearly spaced coefficients that allows random access. */
|
266
|
-
typedef CwiseNullaryOp<internal::linspaced_op<Scalar
|
271
|
+
typedef CwiseNullaryOp<internal::linspaced_op<Scalar>,PlainObject> RandomAccessLinSpacedReturnType;
|
267
272
|
/** \internal the return type of MatrixBase::eigenvalues() */
|
268
273
|
typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
|
269
274
|
|
@@ -297,17 +302,17 @@ template<typename Derived> class DenseBase
|
|
297
302
|
Derived& operator=(const ReturnByValue<OtherDerived>& func);
|
298
303
|
|
299
304
|
/** \internal
|
300
|
-
* Copies \a other into *this without evaluating other. \returns a reference to *this.
|
301
|
-
* \deprecated */
|
305
|
+
* Copies \a other into *this without evaluating other. \returns a reference to *this. */
|
302
306
|
template<typename OtherDerived>
|
303
|
-
|
307
|
+
/** \deprecated */
|
308
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC
|
304
309
|
Derived& lazyAssign(const DenseBase<OtherDerived>& other);
|
305
310
|
|
306
311
|
EIGEN_DEVICE_FUNC
|
307
312
|
CommaInitializer<Derived> operator<< (const Scalar& s);
|
308
313
|
|
309
|
-
/** \deprecated it now returns \c *this */
|
310
314
|
template<unsigned int Added,unsigned int Removed>
|
315
|
+
/** \deprecated it now returns \c *this */
|
311
316
|
EIGEN_DEPRECATED
|
312
317
|
const Derived& flagged() const
|
313
318
|
{ return derived(); }
|
@@ -332,12 +337,13 @@ template<typename Derived> class DenseBase
|
|
332
337
|
EIGEN_DEVICE_FUNC static const ConstantReturnType
|
333
338
|
Constant(const Scalar& value);
|
334
339
|
|
335
|
-
EIGEN_DEVICE_FUNC static const
|
340
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
|
336
341
|
LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
|
342
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
|
343
|
+
LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
|
344
|
+
|
337
345
|
EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
|
338
346
|
LinSpaced(Index size, const Scalar& low, const Scalar& high);
|
339
|
-
EIGEN_DEVICE_FUNC static const SequentialLinSpacedReturnType
|
340
|
-
LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
|
341
347
|
EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
|
342
348
|
LinSpaced(const Scalar& low, const Scalar& high);
|
343
349
|
|
@@ -369,7 +375,7 @@ template<typename Derived> class DenseBase
|
|
369
375
|
template<typename OtherDerived> EIGEN_DEVICE_FUNC
|
370
376
|
bool isApprox(const DenseBase<OtherDerived>& other,
|
371
377
|
const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
|
372
|
-
EIGEN_DEVICE_FUNC
|
378
|
+
EIGEN_DEVICE_FUNC
|
373
379
|
bool isMuchSmallerThan(const RealScalar& other,
|
374
380
|
const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
|
375
381
|
template<typename OtherDerived> EIGEN_DEVICE_FUNC
|
@@ -380,7 +386,7 @@ template<typename Derived> class DenseBase
|
|
380
386
|
EIGEN_DEVICE_FUNC bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
|
381
387
|
EIGEN_DEVICE_FUNC bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
|
382
388
|
EIGEN_DEVICE_FUNC bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
|
383
|
-
|
389
|
+
|
384
390
|
inline bool hasNaN() const;
|
385
391
|
inline bool allFinite() const;
|
386
392
|
|
@@ -394,8 +400,8 @@ template<typename Derived> class DenseBase
|
|
394
400
|
*
|
395
401
|
* Notice that in the case of a plain matrix or vector (not an expression) this function just returns
|
396
402
|
* a const reference, in order to avoid a useless copy.
|
397
|
-
*
|
398
|
-
* \warning Be
|
403
|
+
*
|
404
|
+
* \warning Be careful with eval() and the auto C++ keyword, as detailed in this \link TopicPitfalls_auto_keyword page \endlink.
|
399
405
|
*/
|
400
406
|
EIGEN_DEVICE_FUNC
|
401
407
|
EIGEN_STRONG_INLINE EvalReturnType eval() const
|
@@ -405,12 +411,12 @@ template<typename Derived> class DenseBase
|
|
405
411
|
// size types on MSVC.
|
406
412
|
return typename internal::eval<Derived>::type(derived());
|
407
413
|
}
|
408
|
-
|
414
|
+
|
409
415
|
/** swaps *this with the expression \a other.
|
410
416
|
*
|
411
417
|
*/
|
412
418
|
template<typename OtherDerived>
|
413
|
-
EIGEN_DEVICE_FUNC
|
419
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
414
420
|
void swap(const DenseBase<OtherDerived>& other)
|
415
421
|
{
|
416
422
|
EIGEN_STATIC_ASSERT(!OtherDerived::IsPlainObjectBase,THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
|
@@ -422,7 +428,7 @@ template<typename Derived> class DenseBase
|
|
422
428
|
*
|
423
429
|
*/
|
424
430
|
template<typename OtherDerived>
|
425
|
-
EIGEN_DEVICE_FUNC
|
431
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
426
432
|
void swap(PlainObjectBase<OtherDerived>& other)
|
427
433
|
{
|
428
434
|
eigen_assert(rows()==other.rows() && cols()==other.cols());
|
@@ -443,18 +449,58 @@ template<typename Derived> class DenseBase
|
|
443
449
|
|
444
450
|
EIGEN_DEVICE_FUNC Scalar prod() const;
|
445
451
|
|
452
|
+
template<int NaNPropagation>
|
446
453
|
EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar minCoeff() const;
|
454
|
+
template<int NaNPropagation>
|
447
455
|
EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar maxCoeff() const;
|
448
456
|
|
449
|
-
|
457
|
+
|
458
|
+
// By default, the fastest version with undefined NaN propagation semantics is
|
459
|
+
// used.
|
460
|
+
// TODO(rmlarsen): Replace with default template argument when we move to
|
461
|
+
// c++11 or beyond.
|
462
|
+
EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar minCoeff() const {
|
463
|
+
return minCoeff<PropagateFast>();
|
464
|
+
}
|
465
|
+
EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar maxCoeff() const {
|
466
|
+
return maxCoeff<PropagateFast>();
|
467
|
+
}
|
468
|
+
|
469
|
+
template<int NaNPropagation, typename IndexType>
|
470
|
+
EIGEN_DEVICE_FUNC
|
450
471
|
typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
|
451
|
-
template<typename IndexType>
|
472
|
+
template<int NaNPropagation, typename IndexType>
|
473
|
+
EIGEN_DEVICE_FUNC
|
452
474
|
typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
|
453
|
-
template<typename IndexType>
|
475
|
+
template<int NaNPropagation, typename IndexType>
|
476
|
+
EIGEN_DEVICE_FUNC
|
454
477
|
typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
|
455
|
-
template<typename IndexType>
|
478
|
+
template<int NaNPropagation, typename IndexType>
|
479
|
+
EIGEN_DEVICE_FUNC
|
456
480
|
typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
|
457
481
|
|
482
|
+
// TODO(rmlarsen): Replace these methods with a default template argument.
|
483
|
+
template<typename IndexType>
|
484
|
+
EIGEN_DEVICE_FUNC inline
|
485
|
+
typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const {
|
486
|
+
return minCoeff<PropagateFast>(row, col);
|
487
|
+
}
|
488
|
+
template<typename IndexType>
|
489
|
+
EIGEN_DEVICE_FUNC inline
|
490
|
+
typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const {
|
491
|
+
return maxCoeff<PropagateFast>(row, col);
|
492
|
+
}
|
493
|
+
template<typename IndexType>
|
494
|
+
EIGEN_DEVICE_FUNC inline
|
495
|
+
typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const {
|
496
|
+
return minCoeff<PropagateFast>(index);
|
497
|
+
}
|
498
|
+
template<typename IndexType>
|
499
|
+
EIGEN_DEVICE_FUNC inline
|
500
|
+
typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const {
|
501
|
+
return maxCoeff<PropagateFast>(index);
|
502
|
+
}
|
503
|
+
|
458
504
|
template<typename BinaryOp>
|
459
505
|
EIGEN_DEVICE_FUNC
|
460
506
|
Scalar redux(const BinaryOp& func) const;
|
@@ -493,7 +539,7 @@ template<typename Derived> class DenseBase
|
|
493
539
|
typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
|
494
540
|
typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
|
495
541
|
|
496
|
-
/** \returns a VectorwiseOp wrapper of *this
|
542
|
+
/** \returns a VectorwiseOp wrapper of *this for broadcasting and partial reductions
|
497
543
|
*
|
498
544
|
* Example: \include MatrixBase_rowwise.cpp
|
499
545
|
* Output: \verbinclude MatrixBase_rowwise.out
|
@@ -506,7 +552,7 @@ template<typename Derived> class DenseBase
|
|
506
552
|
}
|
507
553
|
EIGEN_DEVICE_FUNC RowwiseReturnType rowwise();
|
508
554
|
|
509
|
-
/** \returns a VectorwiseOp wrapper of *this
|
555
|
+
/** \returns a VectorwiseOp wrapper of *this broadcasting and partial reductions
|
510
556
|
*
|
511
557
|
* Example: \include MatrixBase_colwise.cpp
|
512
558
|
* Output: \verbinclude MatrixBase_colwise.out
|
@@ -524,16 +570,16 @@ template<typename Derived> class DenseBase
|
|
524
570
|
static const RandomReturnType Random();
|
525
571
|
|
526
572
|
template<typename ThenDerived,typename ElseDerived>
|
527
|
-
const Select<Derived,ThenDerived,ElseDerived>
|
573
|
+
inline EIGEN_DEVICE_FUNC const Select<Derived,ThenDerived,ElseDerived>
|
528
574
|
select(const DenseBase<ThenDerived>& thenMatrix,
|
529
575
|
const DenseBase<ElseDerived>& elseMatrix) const;
|
530
576
|
|
531
577
|
template<typename ThenDerived>
|
532
|
-
inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
|
578
|
+
inline EIGEN_DEVICE_FUNC const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
|
533
579
|
select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
|
534
580
|
|
535
581
|
template<typename ElseDerived>
|
536
|
-
inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
|
582
|
+
inline EIGEN_DEVICE_FUNC const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
|
537
583
|
select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
|
538
584
|
|
539
585
|
template<int p> RealScalar lpNorm() const;
|
@@ -567,16 +613,59 @@ template<typename Derived> class DenseBase
|
|
567
613
|
}
|
568
614
|
EIGEN_DEVICE_FUNC void reverseInPlace();
|
569
615
|
|
616
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
617
|
+
/** STL-like <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">RandomAccessIterator</a>
|
618
|
+
* iterator type as returned by the begin() and end() methods.
|
619
|
+
*/
|
620
|
+
typedef random_access_iterator_type iterator;
|
621
|
+
/** This is the const version of iterator (aka read-only) */
|
622
|
+
typedef random_access_iterator_type const_iterator;
|
623
|
+
#else
|
624
|
+
typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
|
625
|
+
internal::pointer_based_stl_iterator<Derived>,
|
626
|
+
internal::generic_randaccess_stl_iterator<Derived>
|
627
|
+
>::type iterator_type;
|
628
|
+
|
629
|
+
typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
|
630
|
+
internal::pointer_based_stl_iterator<const Derived>,
|
631
|
+
internal::generic_randaccess_stl_iterator<const Derived>
|
632
|
+
>::type const_iterator_type;
|
633
|
+
|
634
|
+
// Stl-style iterators are supported only for vectors.
|
635
|
+
|
636
|
+
typedef typename internal::conditional< IsVectorAtCompileTime,
|
637
|
+
iterator_type,
|
638
|
+
void
|
639
|
+
>::type iterator;
|
640
|
+
|
641
|
+
typedef typename internal::conditional< IsVectorAtCompileTime,
|
642
|
+
const_iterator_type,
|
643
|
+
void
|
644
|
+
>::type const_iterator;
|
645
|
+
#endif
|
646
|
+
|
647
|
+
inline iterator begin();
|
648
|
+
inline const_iterator begin() const;
|
649
|
+
inline const_iterator cbegin() const;
|
650
|
+
inline iterator end();
|
651
|
+
inline const_iterator end() const;
|
652
|
+
inline const_iterator cend() const;
|
653
|
+
|
570
654
|
#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
|
571
655
|
#define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
572
656
|
#define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
|
657
|
+
#define EIGEN_DOC_UNARY_ADDONS(X,Y)
|
658
|
+
# include "../plugins/CommonCwiseUnaryOps.h"
|
573
659
|
# include "../plugins/BlockMethods.h"
|
660
|
+
# include "../plugins/IndexedViewMethods.h"
|
661
|
+
# include "../plugins/ReshapedMethods.h"
|
574
662
|
# ifdef EIGEN_DENSEBASE_PLUGIN
|
575
663
|
# include EIGEN_DENSEBASE_PLUGIN
|
576
664
|
# endif
|
577
665
|
#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
|
578
666
|
#undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
|
579
667
|
#undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
|
668
|
+
#undef EIGEN_DOC_UNARY_ADDONS
|
580
669
|
|
581
670
|
// disable the use of evalTo for dense objects with a nice compilation error
|
582
671
|
template<typename Dest>
|
@@ -587,11 +676,12 @@ template<typename Derived> class DenseBase
|
|
587
676
|
}
|
588
677
|
|
589
678
|
protected:
|
679
|
+
EIGEN_DEFAULT_COPY_CONSTRUCTOR(DenseBase)
|
590
680
|
/** Default constructor. Do nothing. */
|
591
681
|
EIGEN_DEVICE_FUNC DenseBase()
|
592
682
|
{
|
593
683
|
/* Just checks for self-consistency of the flags.
|
594
|
-
* Only do it when debugging Eigen, as this borders on
|
684
|
+
* Only do it when debugging Eigen, as this borders on paranoia and could slow compilation down
|
595
685
|
*/
|
596
686
|
#ifdef EIGEN_INTERNAL_DEBUGGING
|
597
687
|
EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
|
@@ -22,11 +22,12 @@ template<typename T> struct add_const_on_value_type_if_arithmetic
|
|
22
22
|
/** \brief Base class providing read-only coefficient access to matrices and arrays.
|
23
23
|
* \ingroup Core_Module
|
24
24
|
* \tparam Derived Type of the derived class
|
25
|
-
*
|
25
|
+
*
|
26
|
+
* \note #ReadOnlyAccessors Constant indicating read-only access
|
26
27
|
*
|
27
28
|
* This class defines the \c operator() \c const function and friends, which can be used to read specific
|
28
29
|
* entries of a matrix or array.
|
29
|
-
*
|
30
|
+
*
|
30
31
|
* \sa DenseCoeffsBase<Derived, WriteAccessors>, DenseCoeffsBase<Derived, DirectAccessors>,
|
31
32
|
* \ref TopicClassHierarchy
|
32
33
|
*/
|
@@ -288,12 +289,13 @@ class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
|
|
288
289
|
/** \brief Base class providing read/write coefficient access to matrices and arrays.
|
289
290
|
* \ingroup Core_Module
|
290
291
|
* \tparam Derived Type of the derived class
|
291
|
-
*
|
292
|
+
*
|
293
|
+
* \note #WriteAccessors Constant indicating read/write access
|
292
294
|
*
|
293
295
|
* This class defines the non-const \c operator() function and friends, which can be used to write specific
|
294
296
|
* entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
|
295
297
|
* defines the const variant for reading specific entries.
|
296
|
-
*
|
298
|
+
*
|
297
299
|
* \sa DenseCoeffsBase<Derived, DirectAccessors>, \ref TopicClassHierarchy
|
298
300
|
*/
|
299
301
|
template<typename Derived>
|
@@ -466,7 +468,8 @@ class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived,
|
|
466
468
|
/** \brief Base class providing direct read-only coefficient access to matrices and arrays.
|
467
469
|
* \ingroup Core_Module
|
468
470
|
* \tparam Derived Type of the derived class
|
469
|
-
*
|
471
|
+
*
|
472
|
+
* \note #DirectAccessors Constant indicating direct access
|
470
473
|
*
|
471
474
|
* This class defines functions to work with strides which can be used to access entries directly. This class
|
472
475
|
* inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
|
@@ -492,7 +495,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|
492
495
|
*
|
493
496
|
* \sa outerStride(), rowStride(), colStride()
|
494
497
|
*/
|
495
|
-
EIGEN_DEVICE_FUNC
|
498
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
496
499
|
inline Index innerStride() const
|
497
500
|
{
|
498
501
|
return derived().innerStride();
|
@@ -503,14 +506,14 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|
503
506
|
*
|
504
507
|
* \sa innerStride(), rowStride(), colStride()
|
505
508
|
*/
|
506
|
-
EIGEN_DEVICE_FUNC
|
509
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
507
510
|
inline Index outerStride() const
|
508
511
|
{
|
509
512
|
return derived().outerStride();
|
510
513
|
}
|
511
514
|
|
512
515
|
// FIXME shall we remove it ?
|
513
|
-
inline Index stride() const
|
516
|
+
EIGEN_CONSTEXPR inline Index stride() const
|
514
517
|
{
|
515
518
|
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
516
519
|
}
|
@@ -519,7 +522,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|
519
522
|
*
|
520
523
|
* \sa innerStride(), outerStride(), colStride()
|
521
524
|
*/
|
522
|
-
EIGEN_DEVICE_FUNC
|
525
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
523
526
|
inline Index rowStride() const
|
524
527
|
{
|
525
528
|
return Derived::IsRowMajor ? outerStride() : innerStride();
|
@@ -529,7 +532,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|
529
532
|
*
|
530
533
|
* \sa innerStride(), outerStride(), rowStride()
|
531
534
|
*/
|
532
|
-
EIGEN_DEVICE_FUNC
|
535
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
533
536
|
inline Index colStride() const
|
534
537
|
{
|
535
538
|
return Derived::IsRowMajor ? innerStride() : outerStride();
|
@@ -539,7 +542,8 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|
539
542
|
/** \brief Base class providing direct read/write coefficient access to matrices and arrays.
|
540
543
|
* \ingroup Core_Module
|
541
544
|
* \tparam Derived Type of the derived class
|
542
|
-
*
|
545
|
+
*
|
546
|
+
* \note #DirectWriteAccessors Constant indicating direct access
|
543
547
|
*
|
544
548
|
* This class defines functions to work with strides which can be used to access entries directly. This class
|
545
549
|
* inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
|
@@ -566,8 +570,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|
566
570
|
*
|
567
571
|
* \sa outerStride(), rowStride(), colStride()
|
568
572
|
*/
|
569
|
-
EIGEN_DEVICE_FUNC
|
570
|
-
inline Index innerStride() const
|
573
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
574
|
+
inline Index innerStride() const EIGEN_NOEXCEPT
|
571
575
|
{
|
572
576
|
return derived().innerStride();
|
573
577
|
}
|
@@ -577,14 +581,14 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|
577
581
|
*
|
578
582
|
* \sa innerStride(), rowStride(), colStride()
|
579
583
|
*/
|
580
|
-
EIGEN_DEVICE_FUNC
|
581
|
-
inline Index outerStride() const
|
584
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
585
|
+
inline Index outerStride() const EIGEN_NOEXCEPT
|
582
586
|
{
|
583
587
|
return derived().outerStride();
|
584
588
|
}
|
585
589
|
|
586
590
|
// FIXME shall we remove it ?
|
587
|
-
inline Index stride() const
|
591
|
+
EIGEN_CONSTEXPR inline Index stride() const EIGEN_NOEXCEPT
|
588
592
|
{
|
589
593
|
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
590
594
|
}
|
@@ -593,8 +597,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|
593
597
|
*
|
594
598
|
* \sa innerStride(), outerStride(), colStride()
|
595
599
|
*/
|
596
|
-
EIGEN_DEVICE_FUNC
|
597
|
-
inline Index rowStride() const
|
600
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
601
|
+
inline Index rowStride() const EIGEN_NOEXCEPT
|
598
602
|
{
|
599
603
|
return Derived::IsRowMajor ? outerStride() : innerStride();
|
600
604
|
}
|
@@ -603,8 +607,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|
603
607
|
*
|
604
608
|
* \sa innerStride(), outerStride(), rowStride()
|
605
609
|
*/
|
606
|
-
EIGEN_DEVICE_FUNC
|
607
|
-
inline Index colStride() const
|
610
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
611
|
+
inline Index colStride() const EIGEN_NOEXCEPT
|
608
612
|
{
|
609
613
|
return Derived::IsRowMajor ? innerStride() : outerStride();
|
610
614
|
}
|
@@ -615,7 +619,7 @@ namespace internal {
|
|
615
619
|
template<int Alignment, typename Derived, bool JustReturnZero>
|
616
620
|
struct first_aligned_impl
|
617
621
|
{
|
618
|
-
static inline Index run(const Derived&)
|
622
|
+
static EIGEN_CONSTEXPR inline Index run(const Derived&) EIGEN_NOEXCEPT
|
619
623
|
{ return 0; }
|
620
624
|
};
|
621
625
|
|