tomoto 0.2.3 → 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 +6 -0
- data/README.md +8 -10
- data/ext/tomoto/extconf.rb +6 -2
- data/ext/tomoto/{ext.cpp → tomoto.cpp} +1 -1
- 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 +21 -0
- data/vendor/tomotopy/README.rst +20 -0
- data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +2 -2
- data/vendor/tomotopy/src/Labeling/Phraser.hpp +1 -1
- data/vendor/tomotopy/src/TopicModel/CTModel.hpp +2 -1
- data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +2 -1
- data/vendor/tomotopy/src/TopicModel/DTModel.hpp +1 -1
- 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 +53 -2
- data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +1 -1
- data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +1 -0
- data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +2 -2
- data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +16 -5
- data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +1 -0
- data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +1 -0
- data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +1 -0
- data/vendor/tomotopy/src/TopicModel/PT.h +3 -1
- data/vendor/tomotopy/src/TopicModel/PTModel.hpp +31 -1
- data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +2 -2
- data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +7 -5
- data/vendor/tomotopy/src/Utils/EigenAddonOps.hpp +36 -1
- data/vendor/tomotopy/src/Utils/exception.h +6 -0
- data/vendor/tomotopy/src/Utils/sample.hpp +14 -12
- data/vendor/tomotopy/src/Utils/sse_gamma.h +0 -3
- metadata +60 -14
- 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
@@ -11,7 +11,7 @@
|
|
11
11
|
#ifndef EIGEN_TRANSPOSE_H
|
12
12
|
#define EIGEN_TRANSPOSE_H
|
13
13
|
|
14
|
-
namespace Eigen {
|
14
|
+
namespace Eigen {
|
15
15
|
|
16
16
|
namespace internal {
|
17
17
|
template<typename MatrixType>
|
@@ -61,24 +61,27 @@ template<typename MatrixType> class Transpose
|
|
61
61
|
typedef typename internal::remove_all<MatrixType>::type NestedExpression;
|
62
62
|
|
63
63
|
EIGEN_DEVICE_FUNC
|
64
|
-
explicit
|
64
|
+
explicit EIGEN_STRONG_INLINE Transpose(MatrixType& matrix) : m_matrix(matrix) {}
|
65
65
|
|
66
66
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
|
67
67
|
|
68
|
-
EIGEN_DEVICE_FUNC
|
69
|
-
|
68
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
69
|
+
Index rows() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
70
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
71
|
+
Index cols() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
70
72
|
|
71
73
|
/** \returns the nested expression */
|
72
|
-
EIGEN_DEVICE_FUNC
|
74
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
73
75
|
const typename internal::remove_all<MatrixTypeNested>::type&
|
74
76
|
nestedExpression() const { return m_matrix; }
|
75
77
|
|
76
78
|
/** \returns the nested expression */
|
77
|
-
EIGEN_DEVICE_FUNC
|
79
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
78
80
|
typename internal::remove_reference<MatrixTypeNested>::type&
|
79
81
|
nestedExpression() { return m_matrix; }
|
80
82
|
|
81
83
|
/** \internal */
|
84
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
82
85
|
void resize(Index nrows, Index ncols) {
|
83
86
|
m_matrix.resize(ncols,nrows);
|
84
87
|
}
|
@@ -122,8 +125,10 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
|
|
122
125
|
EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
|
123
126
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
|
124
127
|
|
125
|
-
EIGEN_DEVICE_FUNC
|
126
|
-
|
128
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
129
|
+
Index innerStride() const { return derived().nestedExpression().innerStride(); }
|
130
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
131
|
+
Index outerStride() const { return derived().nestedExpression().outerStride(); }
|
127
132
|
|
128
133
|
typedef typename internal::conditional<
|
129
134
|
internal::is_lvalue<MatrixType>::value,
|
@@ -131,21 +136,25 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
|
|
131
136
|
const Scalar
|
132
137
|
>::type ScalarWithConstIfNotLvalue;
|
133
138
|
|
134
|
-
EIGEN_DEVICE_FUNC
|
135
|
-
|
139
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
140
|
+
ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
|
141
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
142
|
+
const Scalar* data() const { return derived().nestedExpression().data(); }
|
136
143
|
|
137
144
|
// FIXME: shall we keep the const version of coeffRef?
|
138
|
-
EIGEN_DEVICE_FUNC
|
139
|
-
|
145
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
146
|
+
const Scalar& coeffRef(Index rowId, Index colId) const
|
140
147
|
{
|
141
148
|
return derived().nestedExpression().coeffRef(colId, rowId);
|
142
149
|
}
|
143
150
|
|
144
|
-
EIGEN_DEVICE_FUNC
|
145
|
-
|
151
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
152
|
+
const Scalar& coeffRef(Index index) const
|
146
153
|
{
|
147
154
|
return derived().nestedExpression().coeffRef(index);
|
148
155
|
}
|
156
|
+
protected:
|
157
|
+
EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(TransposeImpl)
|
149
158
|
};
|
150
159
|
|
151
160
|
/** \returns an expression of the transpose of *this.
|
@@ -168,7 +177,8 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
|
|
168
177
|
*
|
169
178
|
* \sa transposeInPlace(), adjoint() */
|
170
179
|
template<typename Derived>
|
171
|
-
|
180
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
181
|
+
Transpose<Derived>
|
172
182
|
DenseBase<Derived>::transpose()
|
173
183
|
{
|
174
184
|
return TransposeReturnType(derived());
|
@@ -180,7 +190,8 @@ DenseBase<Derived>::transpose()
|
|
180
190
|
*
|
181
191
|
* \sa transposeInPlace(), adjoint() */
|
182
192
|
template<typename Derived>
|
183
|
-
|
193
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
194
|
+
typename DenseBase<Derived>::ConstTransposeReturnType
|
184
195
|
DenseBase<Derived>::transpose() const
|
185
196
|
{
|
186
197
|
return ConstTransposeReturnType(derived());
|
@@ -206,7 +217,7 @@ DenseBase<Derived>::transpose() const
|
|
206
217
|
*
|
207
218
|
* \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
|
208
219
|
template<typename Derived>
|
209
|
-
inline const typename MatrixBase<Derived>::AdjointReturnType
|
220
|
+
EIGEN_DEVICE_FUNC inline const typename MatrixBase<Derived>::AdjointReturnType
|
210
221
|
MatrixBase<Derived>::adjoint() const
|
211
222
|
{
|
212
223
|
return AdjointReturnType(this->transpose());
|
@@ -228,11 +239,10 @@ struct inplace_transpose_selector;
|
|
228
239
|
template<typename MatrixType>
|
229
240
|
struct inplace_transpose_selector<MatrixType,true,false> { // square matrix
|
230
241
|
static void run(MatrixType& m) {
|
231
|
-
m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
|
242
|
+
m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
|
232
243
|
}
|
233
244
|
};
|
234
245
|
|
235
|
-
// TODO: vectorized path is currently limited to LargestPacketSize x LargestPacketSize cases only.
|
236
246
|
template<typename MatrixType>
|
237
247
|
struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x PacketSize
|
238
248
|
static void run(MatrixType& m) {
|
@@ -249,16 +259,66 @@ struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x Packet
|
|
249
259
|
}
|
250
260
|
};
|
251
261
|
|
262
|
+
|
263
|
+
template <typename MatrixType, Index Alignment>
|
264
|
+
void BlockedInPlaceTranspose(MatrixType& m) {
|
265
|
+
typedef typename MatrixType::Scalar Scalar;
|
266
|
+
typedef typename internal::packet_traits<typename MatrixType::Scalar>::type Packet;
|
267
|
+
const Index PacketSize = internal::packet_traits<Scalar>::size;
|
268
|
+
eigen_assert(m.rows() == m.cols());
|
269
|
+
int row_start = 0;
|
270
|
+
for (; row_start + PacketSize <= m.rows(); row_start += PacketSize) {
|
271
|
+
for (int col_start = row_start; col_start + PacketSize <= m.cols(); col_start += PacketSize) {
|
272
|
+
PacketBlock<Packet> A;
|
273
|
+
if (row_start == col_start) {
|
274
|
+
for (Index i=0; i<PacketSize; ++i)
|
275
|
+
A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
|
276
|
+
internal::ptranspose(A);
|
277
|
+
for (Index i=0; i<PacketSize; ++i)
|
278
|
+
m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), A.packet[i]);
|
279
|
+
} else {
|
280
|
+
PacketBlock<Packet> B;
|
281
|
+
for (Index i=0; i<PacketSize; ++i) {
|
282
|
+
A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
|
283
|
+
B.packet[i] = m.template packetByOuterInner<Alignment>(col_start + i, row_start);
|
284
|
+
}
|
285
|
+
internal::ptranspose(A);
|
286
|
+
internal::ptranspose(B);
|
287
|
+
for (Index i=0; i<PacketSize; ++i) {
|
288
|
+
m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), B.packet[i]);
|
289
|
+
m.template writePacket<Alignment>(m.rowIndexByOuterInner(col_start + i, row_start), m.colIndexByOuterInner(col_start + i,row_start), A.packet[i]);
|
290
|
+
}
|
291
|
+
}
|
292
|
+
}
|
293
|
+
}
|
294
|
+
for (Index row = row_start; row < m.rows(); ++row) {
|
295
|
+
m.matrix().row(row).head(row).swap(
|
296
|
+
m.matrix().col(row).head(row).transpose());
|
297
|
+
}
|
298
|
+
}
|
299
|
+
|
252
300
|
template<typename MatrixType,bool MatchPacketSize>
|
253
|
-
struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square matrix
|
301
|
+
struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square or dynamic matrix
|
254
302
|
static void run(MatrixType& m) {
|
255
|
-
|
256
|
-
|
257
|
-
|
303
|
+
typedef typename MatrixType::Scalar Scalar;
|
304
|
+
if (m.rows() == m.cols()) {
|
305
|
+
const Index PacketSize = internal::packet_traits<Scalar>::size;
|
306
|
+
if (!NumTraits<Scalar>::IsComplex && m.rows() >= PacketSize) {
|
307
|
+
if ((m.rows() % PacketSize) == 0)
|
308
|
+
BlockedInPlaceTranspose<MatrixType,internal::evaluator<MatrixType>::Alignment>(m);
|
309
|
+
else
|
310
|
+
BlockedInPlaceTranspose<MatrixType,Unaligned>(m);
|
311
|
+
}
|
312
|
+
else {
|
313
|
+
m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
|
314
|
+
}
|
315
|
+
} else {
|
258
316
|
m = m.transpose().eval();
|
317
|
+
}
|
259
318
|
}
|
260
319
|
};
|
261
320
|
|
321
|
+
|
262
322
|
} // end namespace internal
|
263
323
|
|
264
324
|
/** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
|
@@ -276,12 +336,12 @@ struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non squ
|
|
276
336
|
* Notice however that this method is only useful if you want to replace a matrix by its own transpose.
|
277
337
|
* If you just need the transpose of a matrix, use transpose().
|
278
338
|
*
|
279
|
-
* \note if the matrix is not square, then \c *this must be a resizable matrix.
|
339
|
+
* \note if the matrix is not square, then \c *this must be a resizable matrix.
|
280
340
|
* This excludes (non-square) fixed-size matrices, block-expressions and maps.
|
281
341
|
*
|
282
342
|
* \sa transpose(), adjoint(), adjointInPlace() */
|
283
343
|
template<typename Derived>
|
284
|
-
inline void DenseBase<Derived>::transposeInPlace()
|
344
|
+
EIGEN_DEVICE_FUNC inline void DenseBase<Derived>::transposeInPlace()
|
285
345
|
{
|
286
346
|
eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
|
287
347
|
&& "transposeInPlace() called on a non-square non-resizable matrix");
|
@@ -312,7 +372,7 @@ inline void DenseBase<Derived>::transposeInPlace()
|
|
312
372
|
*
|
313
373
|
* \sa transpose(), adjoint(), transposeInPlace() */
|
314
374
|
template<typename Derived>
|
315
|
-
inline void MatrixBase<Derived>::adjointInPlace()
|
375
|
+
EIGEN_DEVICE_FUNC inline void MatrixBase<Derived>::adjointInPlace()
|
316
376
|
{
|
317
377
|
derived() = adjoint().eval();
|
318
378
|
}
|
@@ -391,7 +451,8 @@ struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
|
|
391
451
|
template<typename Dst, typename Src>
|
392
452
|
void check_for_aliasing(const Dst &dst, const Src &src)
|
393
453
|
{
|
394
|
-
|
454
|
+
if((!Dst::IsVectorAtCompileTime) && dst.rows()>1 && dst.cols()>1)
|
455
|
+
internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
|
395
456
|
}
|
396
457
|
|
397
458
|
} // end namespace internal
|
@@ -10,20 +10,22 @@
|
|
10
10
|
#ifndef EIGEN_TRANSPOSITIONS_H
|
11
11
|
#define EIGEN_TRANSPOSITIONS_H
|
12
12
|
|
13
|
-
namespace Eigen {
|
13
|
+
namespace Eigen {
|
14
14
|
|
15
15
|
template<typename Derived>
|
16
16
|
class TranspositionsBase
|
17
17
|
{
|
18
18
|
typedef internal::traits<Derived> Traits;
|
19
|
-
|
19
|
+
|
20
20
|
public:
|
21
21
|
|
22
22
|
typedef typename Traits::IndicesType IndicesType;
|
23
23
|
typedef typename IndicesType::Scalar StorageIndex;
|
24
24
|
typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
|
25
25
|
|
26
|
+
EIGEN_DEVICE_FUNC
|
26
27
|
Derived& derived() { return *static_cast<Derived*>(this); }
|
28
|
+
EIGEN_DEVICE_FUNC
|
27
29
|
const Derived& derived() const { return *static_cast<const Derived*>(this); }
|
28
30
|
|
29
31
|
/** Copies the \a other transpositions into \c *this */
|
@@ -33,26 +35,19 @@ class TranspositionsBase
|
|
33
35
|
indices() = other.indices();
|
34
36
|
return derived();
|
35
37
|
}
|
36
|
-
|
37
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
38
|
-
/** This is a special case of the templated operator=. Its purpose is to
|
39
|
-
* prevent a default operator= from hiding the templated operator=.
|
40
|
-
*/
|
41
|
-
Derived& operator=(const TranspositionsBase& other)
|
42
|
-
{
|
43
|
-
indices() = other.indices();
|
44
|
-
return derived();
|
45
|
-
}
|
46
|
-
#endif
|
47
38
|
|
48
39
|
/** \returns the number of transpositions */
|
40
|
+
EIGEN_DEVICE_FUNC
|
49
41
|
Index size() const { return indices().size(); }
|
50
42
|
/** \returns the number of rows of the equivalent permutation matrix */
|
43
|
+
EIGEN_DEVICE_FUNC
|
51
44
|
Index rows() const { return indices().size(); }
|
52
45
|
/** \returns the number of columns of the equivalent permutation matrix */
|
46
|
+
EIGEN_DEVICE_FUNC
|
53
47
|
Index cols() const { return indices().size(); }
|
54
48
|
|
55
49
|
/** Direct access to the underlying index vector */
|
50
|
+
EIGEN_DEVICE_FUNC
|
56
51
|
inline const StorageIndex& coeff(Index i) const { return indices().coeff(i); }
|
57
52
|
/** Direct access to the underlying index vector */
|
58
53
|
inline StorageIndex& coeffRef(Index i) { return indices().coeffRef(i); }
|
@@ -66,8 +61,10 @@ class TranspositionsBase
|
|
66
61
|
inline StorageIndex& operator[](Index i) { return indices()(i); }
|
67
62
|
|
68
63
|
/** const version of indices(). */
|
64
|
+
EIGEN_DEVICE_FUNC
|
69
65
|
const IndicesType& indices() const { return derived().indices(); }
|
70
66
|
/** \returns a reference to the stored array representing the transpositions. */
|
67
|
+
EIGEN_DEVICE_FUNC
|
71
68
|
IndicesType& indices() { return derived().indices(); }
|
72
69
|
|
73
70
|
/** Resizes to given size. */
|
@@ -84,7 +81,7 @@ class TranspositionsBase
|
|
84
81
|
}
|
85
82
|
|
86
83
|
// FIXME: do we want such methods ?
|
87
|
-
// might be
|
84
|
+
// might be useful when the target matrix expression is complex, e.g.:
|
88
85
|
// object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
|
89
86
|
/*
|
90
87
|
template<typename MatrixType>
|
@@ -171,12 +168,6 @@ class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTim
|
|
171
168
|
inline Transpositions(const TranspositionsBase<OtherDerived>& other)
|
172
169
|
: m_indices(other.indices()) {}
|
173
170
|
|
174
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
175
|
-
/** Standard copy constructor. Defined only to prevent a default copy constructor
|
176
|
-
* from hiding the other templated constructor */
|
177
|
-
inline Transpositions(const Transpositions& other) : m_indices(other.indices()) {}
|
178
|
-
#endif
|
179
|
-
|
180
171
|
/** Generic constructor from expression of the transposition indices. */
|
181
172
|
template<typename Other>
|
182
173
|
explicit inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indices)
|
@@ -189,25 +180,16 @@ class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTim
|
|
189
180
|
return Base::operator=(other);
|
190
181
|
}
|
191
182
|
|
192
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
193
|
-
/** This is a special case of the templated operator=. Its purpose is to
|
194
|
-
* prevent a default operator= from hiding the templated operator=.
|
195
|
-
*/
|
196
|
-
Transpositions& operator=(const Transpositions& other)
|
197
|
-
{
|
198
|
-
m_indices = other.m_indices;
|
199
|
-
return *this;
|
200
|
-
}
|
201
|
-
#endif
|
202
|
-
|
203
183
|
/** Constructs an uninitialized permutation matrix of given size.
|
204
184
|
*/
|
205
185
|
inline Transpositions(Index size) : m_indices(size)
|
206
186
|
{}
|
207
187
|
|
208
188
|
/** const version of indices(). */
|
189
|
+
EIGEN_DEVICE_FUNC
|
209
190
|
const IndicesType& indices() const { return m_indices; }
|
210
191
|
/** \returns a reference to the stored array representing the transpositions. */
|
192
|
+
EIGEN_DEVICE_FUNC
|
211
193
|
IndicesType& indices() { return m_indices; }
|
212
194
|
|
213
195
|
protected:
|
@@ -265,9 +247,11 @@ class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,P
|
|
265
247
|
#endif
|
266
248
|
|
267
249
|
/** const version of indices(). */
|
250
|
+
EIGEN_DEVICE_FUNC
|
268
251
|
const IndicesType& indices() const { return m_indices; }
|
269
|
-
|
252
|
+
|
270
253
|
/** \returns a reference to the stored array representing the transpositions. */
|
254
|
+
EIGEN_DEVICE_FUNC
|
271
255
|
IndicesType& indices() { return m_indices; }
|
272
256
|
|
273
257
|
protected:
|
@@ -306,21 +290,12 @@ class TranspositionsWrapper
|
|
306
290
|
return Base::operator=(other);
|
307
291
|
}
|
308
292
|
|
309
|
-
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
310
|
-
/** This is a special case of the templated operator=. Its purpose is to
|
311
|
-
* prevent a default operator= from hiding the templated operator=.
|
312
|
-
*/
|
313
|
-
TranspositionsWrapper& operator=(const TranspositionsWrapper& other)
|
314
|
-
{
|
315
|
-
m_indices = other.m_indices;
|
316
|
-
return *this;
|
317
|
-
}
|
318
|
-
#endif
|
319
|
-
|
320
293
|
/** const version of indices(). */
|
294
|
+
EIGEN_DEVICE_FUNC
|
321
295
|
const IndicesType& indices() const { return m_indices; }
|
322
296
|
|
323
297
|
/** \returns a reference to the stored array representing the transpositions. */
|
298
|
+
EIGEN_DEVICE_FUNC
|
324
299
|
IndicesType& indices() { return m_indices; }
|
325
300
|
|
326
301
|
protected:
|
@@ -374,9 +349,12 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
|
|
374
349
|
|
375
350
|
explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
|
376
351
|
|
377
|
-
|
378
|
-
Index
|
379
|
-
|
352
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
353
|
+
Index size() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
354
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
355
|
+
Index rows() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
356
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
357
|
+
Index cols() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
380
358
|
|
381
359
|
/** \returns the \a matrix with the inverse transpositions applied to the columns.
|
382
360
|
*/
|
@@ -395,7 +373,8 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
|
|
395
373
|
{
|
396
374
|
return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
|
397
375
|
}
|
398
|
-
|
376
|
+
|
377
|
+
EIGEN_DEVICE_FUNC
|
399
378
|
const TranspositionType& nestedExpression() const { return m_transpositions; }
|
400
379
|
|
401
380
|
protected:
|