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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3e3aa3215e693030f3069cab0fd62686e9d28ad4df6e93ee2e9c7ba9e29286f
|
|
4
|
+
data.tar.gz: 98e4f18488132f6130bd9523d8540dd73626e8b3e5a58a1656ce3aa1ddf8234b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 95b9d0697f58a9149c18cbbdcc7b93aa19dc7f335f12033fc80386a2ca6628bfc3c2a7a9c7299cd192459132f8d467663562de3da733cca00041da24361a6d9f
|
|
7
|
+
data.tar.gz: 9c0e12d32aedb8cb0689032f9b0fe54387b9b452a1e26b747137c4115e9813ea491fa09b6851b9e69ca6a3a86df159409d57322c3862b670ae3b3d4f8711469d
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
# tomoto
|
|
1
|
+
# tomoto.rb
|
|
2
2
|
|
|
3
3
|
:tomato: [tomoto](https://github.com/bab2min/tomotopy) - high performance topic modeling - for Ruby
|
|
4
4
|
|
|
5
|
-
[](https://github.com/ankane/tomoto/actions)
|
|
5
|
+
[](https://github.com/ankane/tomoto-ruby/actions)
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
9
|
Add this line to your application’s Gemfile:
|
|
10
10
|
|
|
11
11
|
```ruby
|
|
12
|
-
gem
|
|
12
|
+
gem "tomoto"
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
It can take 10-20 minutes to compile the extension.
|
|
16
|
-
|
|
17
15
|
## Getting Started
|
|
18
16
|
|
|
19
17
|
Train a model
|
|
@@ -142,22 +140,22 @@ Supported values are `:default`, `:none`, `:copy_merge`, and `:partition`.
|
|
|
142
140
|
|
|
143
141
|
## History
|
|
144
142
|
|
|
145
|
-
View the [changelog](https://github.com/ankane/tomoto/blob/master/CHANGELOG.md)
|
|
143
|
+
View the [changelog](https://github.com/ankane/tomoto-ruby/blob/master/CHANGELOG.md)
|
|
146
144
|
|
|
147
145
|
## Contributing
|
|
148
146
|
|
|
149
147
|
Everyone is encouraged to help improve this project. Here are a few ways you can help:
|
|
150
148
|
|
|
151
|
-
- [Report bugs](https://github.com/ankane/tomoto/issues)
|
|
152
|
-
- Fix bugs and [submit pull requests](https://github.com/ankane/tomoto/pulls)
|
|
149
|
+
- [Report bugs](https://github.com/ankane/tomoto-ruby/issues)
|
|
150
|
+
- Fix bugs and [submit pull requests](https://github.com/ankane/tomoto-ruby/pulls)
|
|
153
151
|
- Write, clarify, or fix documentation
|
|
154
152
|
- Suggest or add new features
|
|
155
153
|
|
|
156
154
|
To get started with development:
|
|
157
155
|
|
|
158
156
|
```sh
|
|
159
|
-
git clone --recursive https://github.com/ankane/tomoto.git
|
|
160
|
-
cd tomoto
|
|
157
|
+
git clone --recursive https://github.com/ankane/tomoto-ruby.git
|
|
158
|
+
cd tomoto-ruby
|
|
161
159
|
bundle install
|
|
162
160
|
bundle exec rake compile
|
|
163
161
|
bundle exec rake test
|
data/ext/tomoto/extconf.rb
CHANGED
|
@@ -2,7 +2,11 @@ require "mkmf-rice"
|
|
|
2
2
|
|
|
3
3
|
$CXXFLAGS += " -std=c++17 $(optflags) -DEIGEN_MPL2_ONLY"
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
unless ENV["RUBY_CC_VERSION"]
|
|
6
|
+
# AVX-512F not support yet
|
|
7
|
+
# https://github.com/bab2min/tomotopy/issues/188
|
|
8
|
+
$CXXFLAGS << " " << with_config("optflags", "-march=native -mno-avx512f")
|
|
9
|
+
end
|
|
6
10
|
|
|
7
11
|
apple_clang = RbConfig::CONFIG["CC_VERSION_MESSAGE"] =~ /apple clang/i
|
|
8
12
|
|
|
@@ -27,4 +31,4 @@ $srcs = Dir["{#{ext},#{tomoto}}/*.cpp"]
|
|
|
27
31
|
$INCFLAGS += " -I#{tomoto} -I#{eigen} -I#{eigen_rand} -I#{variant}"
|
|
28
32
|
$VPATH << tomoto
|
|
29
33
|
|
|
30
|
-
create_makefile("tomoto/
|
|
34
|
+
create_makefile("tomoto/tomoto")
|
data/lib/tomoto/version.rb
CHANGED
data/lib/tomoto.rb
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @file Core.h
|
|
3
3
|
* @author bab2min (bab2min@gmail.com)
|
|
4
4
|
* @brief
|
|
5
|
-
* @version 0.3.
|
|
6
|
-
* @date
|
|
5
|
+
* @version 0.3.3
|
|
6
|
+
* @date 2021-03-31
|
|
7
7
|
*
|
|
8
|
-
* @copyright Copyright (c) 2020
|
|
8
|
+
* @copyright Copyright (c) 2020-2021
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
11
|
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
#ifndef EIGENRAND_CORE_H
|
|
14
14
|
#define EIGENRAND_CORE_H
|
|
15
15
|
|
|
16
|
-
#include
|
|
16
|
+
#include "RandUtils.h"
|
|
17
17
|
|
|
18
|
-
#include
|
|
19
|
-
#include
|
|
20
|
-
#include
|
|
21
|
-
#include
|
|
18
|
+
#include "Dists/Basic.h"
|
|
19
|
+
#include "Dists/Discrete.h"
|
|
20
|
+
#include "Dists/NormalExp.h"
|
|
21
|
+
#include "Dists/GammaPoisson.h"
|
|
22
22
|
|
|
23
|
-
#include
|
|
24
|
-
#include
|
|
23
|
+
#include "MvDists/MvNormal.h"
|
|
24
|
+
#include "MvDists/Multinomial.h"
|
|
25
25
|
|
|
26
26
|
namespace Eigen
|
|
27
27
|
{
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @file Basic.h
|
|
3
3
|
* @author bab2min (bab2min@gmail.com)
|
|
4
4
|
* @brief
|
|
5
|
-
* @version 0.3.
|
|
6
|
-
* @date
|
|
5
|
+
* @version 0.3.3
|
|
6
|
+
* @date 2021-03-31
|
|
7
7
|
*
|
|
8
|
-
* @copyright Copyright (c) 2020
|
|
8
|
+
* @copyright Copyright (c) 2020-2021
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
11
|
|
|
@@ -238,6 +238,31 @@ namespace Eigen
|
|
|
238
238
|
|
|
239
239
|
using OptCacheStore = CacheStore<EIGEN_MAX_ALIGN_BYTES>;
|
|
240
240
|
|
|
241
|
+
template<typename _Scalar>
|
|
242
|
+
struct ExtractFirstUint;
|
|
243
|
+
|
|
244
|
+
template<>
|
|
245
|
+
struct ExtractFirstUint<float>
|
|
246
|
+
{
|
|
247
|
+
template<typename Packet>
|
|
248
|
+
auto operator()(Packet v) -> decltype(Eigen::internal::pfirst(v))
|
|
249
|
+
{
|
|
250
|
+
return Eigen::internal::pfirst(v);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
template<>
|
|
255
|
+
struct ExtractFirstUint<double>
|
|
256
|
+
{
|
|
257
|
+
template<typename Packet>
|
|
258
|
+
auto operator()(Packet v) -> uint64_t
|
|
259
|
+
{
|
|
260
|
+
uint64_t arr[sizeof(Packet) / 8];
|
|
261
|
+
Eigen::internal::pstoreu((Packet*)arr, v);
|
|
262
|
+
return arr[0];
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
|
|
241
266
|
/**
|
|
242
267
|
* @brief Generator of random bits for integral scalars
|
|
243
268
|
*
|
|
@@ -296,13 +321,52 @@ namespace Eigen
|
|
|
296
321
|
}
|
|
297
322
|
};
|
|
298
323
|
|
|
324
|
+
/**
|
|
325
|
+
* @brief Generator of reals in a range `[a, b]`
|
|
326
|
+
*
|
|
327
|
+
* @tparam _Scalar any real type
|
|
328
|
+
*/
|
|
329
|
+
template<typename _Scalar>
|
|
330
|
+
class Balanced2Gen : public GenBase<Balanced2Gen<_Scalar>, _Scalar>
|
|
331
|
+
{
|
|
332
|
+
static_assert(std::is_floating_point<_Scalar>::value, "balanced needs floating point types.");
|
|
333
|
+
_Scalar slope = 2, bias = -1;
|
|
334
|
+
public:
|
|
335
|
+
using Scalar = _Scalar;
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* @brief Construct a new balanced generator
|
|
339
|
+
*
|
|
340
|
+
* @param _a,_b left and right boundary
|
|
341
|
+
*/
|
|
342
|
+
Balanced2Gen(_Scalar _a = -1, _Scalar _b = 1)
|
|
343
|
+
: slope{ _b - _a }, bias{ _a }
|
|
344
|
+
{
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
template<typename Rng>
|
|
348
|
+
EIGEN_STRONG_INLINE const _Scalar operator() (Rng&& rng)
|
|
349
|
+
{
|
|
350
|
+
using namespace Eigen::internal;
|
|
351
|
+
return ((_Scalar)((int32_t)pfirst(std::forward<Rng>(rng)()) & 0x7FFFFFFF) / 0x7FFFFFFF) * slope + bias;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
template<typename Packet, typename Rng>
|
|
355
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(Rng&& rng)
|
|
356
|
+
{
|
|
357
|
+
using namespace Eigen::internal;
|
|
358
|
+
using RUtils = RandUtils<Packet, Rng>;
|
|
359
|
+
return RUtils{}.balanced(std::forward<Rng>(rng), slope, bias);
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
|
|
299
363
|
/**
|
|
300
364
|
* @brief Generator of reals in a range `[0, 1)`
|
|
301
365
|
*
|
|
302
366
|
* @tparam _Scalar any real type
|
|
303
367
|
*/
|
|
304
368
|
template<typename _Scalar>
|
|
305
|
-
class
|
|
369
|
+
class StdUniformRealGen : public GenBase<StdUniformRealGen<_Scalar>, _Scalar>
|
|
306
370
|
{
|
|
307
371
|
static_assert(std::is_floating_point<_Scalar>::value, "uniformReal needs floating point types.");
|
|
308
372
|
|
|
@@ -313,14 +377,14 @@ namespace Eigen
|
|
|
313
377
|
EIGEN_STRONG_INLINE const _Scalar operator() (Rng&& rng)
|
|
314
378
|
{
|
|
315
379
|
using namespace Eigen::internal;
|
|
316
|
-
return
|
|
380
|
+
return BitScalar<_Scalar>{}.to_ur(ExtractFirstUint<_Scalar>{}(std::forward<Rng>(rng)()));
|
|
317
381
|
}
|
|
318
382
|
|
|
319
383
|
template<typename Rng>
|
|
320
384
|
EIGEN_STRONG_INLINE const _Scalar nzur_scalar(Rng&& rng)
|
|
321
385
|
{
|
|
322
386
|
using namespace Eigen::internal;
|
|
323
|
-
return
|
|
387
|
+
return BitScalar<_Scalar>{}.to_nzur(ExtractFirstUint<_Scalar>{}(std::forward<Rng>(rng)()));
|
|
324
388
|
}
|
|
325
389
|
|
|
326
390
|
template<typename Packet, typename Rng>
|
|
@@ -332,6 +396,49 @@ namespace Eigen
|
|
|
332
396
|
}
|
|
333
397
|
};
|
|
334
398
|
|
|
399
|
+
/**
|
|
400
|
+
* @brief Generator of reals in a range `[a, b)`
|
|
401
|
+
*
|
|
402
|
+
* @tparam _Scalar any real type
|
|
403
|
+
*/
|
|
404
|
+
template<typename _Scalar>
|
|
405
|
+
class UniformRealGen : public GenBase<UniformRealGen<_Scalar>, _Scalar>
|
|
406
|
+
{
|
|
407
|
+
static_assert(std::is_floating_point<_Scalar>::value, "uniformReal needs floating point types.");
|
|
408
|
+
_Scalar bias, slope;
|
|
409
|
+
|
|
410
|
+
public:
|
|
411
|
+
using Scalar = _Scalar;
|
|
412
|
+
|
|
413
|
+
UniformRealGen(_Scalar _min = 0, _Scalar _max = 1)
|
|
414
|
+
: bias{ _min }, slope{ _max - _min }
|
|
415
|
+
{
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
UniformRealGen(const UniformRealGen&) = default;
|
|
419
|
+
UniformRealGen(UniformRealGen&&) = default;
|
|
420
|
+
|
|
421
|
+
UniformRealGen& operator=(const UniformRealGen&) = default;
|
|
422
|
+
UniformRealGen& operator=(UniformRealGen&&) = default;
|
|
423
|
+
|
|
424
|
+
template<typename Rng>
|
|
425
|
+
EIGEN_STRONG_INLINE const _Scalar operator() (Rng&& rng)
|
|
426
|
+
{
|
|
427
|
+
using namespace Eigen::internal;
|
|
428
|
+
return bias + BitScalar<_Scalar>{}.to_ur(pfirst(std::forward<Rng>(rng)())) * slope;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
template<typename Packet, typename Rng>
|
|
432
|
+
EIGEN_STRONG_INLINE const Packet packetOp(Rng&& rng)
|
|
433
|
+
{
|
|
434
|
+
using namespace Eigen::internal;
|
|
435
|
+
using RUtils = RandUtils<Packet, Rng>;
|
|
436
|
+
return padd(pmul(
|
|
437
|
+
RUtils{}.uniform_real(std::forward<Rng>(rng)), pset1<Packet>(slope)
|
|
438
|
+
), pset1<Packet>(bias));
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
|
|
335
442
|
|
|
336
443
|
/**
|
|
337
444
|
* @brief Generator of Bernoulli distribution
|
|
@@ -468,7 +575,53 @@ namespace Eigen
|
|
|
468
575
|
}
|
|
469
576
|
|
|
470
577
|
template<typename Derived, typename Urng>
|
|
471
|
-
using
|
|
578
|
+
using Balanced2Type = CwiseNullaryOp<internal::scalar_rng_adaptor<Balanced2Gen<typename Derived::Scalar>, typename Derived::Scalar, Urng, true>, const Derived>;
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* @brief generates reals in a range `[a, b]`
|
|
582
|
+
*
|
|
583
|
+
* @tparam Derived a type of Eigen::DenseBase
|
|
584
|
+
* @tparam Urng
|
|
585
|
+
* @param rows the number of rows being generated
|
|
586
|
+
* @param cols the number of columns being generated
|
|
587
|
+
* @param urng c++11-style random number generator
|
|
588
|
+
* @param a,b left and right boundary
|
|
589
|
+
* @return a random matrix expression with a shape (`rows`, `cols`)
|
|
590
|
+
*
|
|
591
|
+
* @see Eigen::Rand::BalancedGen
|
|
592
|
+
*/
|
|
593
|
+
template<typename Derived, typename Urng>
|
|
594
|
+
inline const Balanced2Type<Derived, Urng>
|
|
595
|
+
balanced(Index rows, Index cols, Urng&& urng, typename Derived::Scalar a, typename Derived::Scalar b)
|
|
596
|
+
{
|
|
597
|
+
return {
|
|
598
|
+
rows, cols, { std::forward<Urng>(urng), Balanced2Gen<typename Derived::Scalar>{a, b} }
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* @brief generates reals in a range `[a, b]`
|
|
604
|
+
*
|
|
605
|
+
* @tparam Derived
|
|
606
|
+
* @tparam Urng
|
|
607
|
+
* @param o an instance of any type of Eigen::DenseBase
|
|
608
|
+
* @param urng c++11-style random number generator
|
|
609
|
+
* @param a,b left and right boundary
|
|
610
|
+
* @return a random matrix expression of the same shape as `o`
|
|
611
|
+
*
|
|
612
|
+
* @see Eigen::Rand::BalancedGen
|
|
613
|
+
*/
|
|
614
|
+
template<typename Derived, typename Urng>
|
|
615
|
+
inline const Balanced2Type<Derived, Urng>
|
|
616
|
+
balancedLike(const Derived& o, Urng&& urng, typename Derived::Scalar a, typename Derived::Scalar b)
|
|
617
|
+
{
|
|
618
|
+
return {
|
|
619
|
+
o.rows(), o.cols(), { std::forward<Urng>(urng), Balanced2Gen<typename Derived::Scalar>{a, b} }
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
template<typename Derived, typename Urng>
|
|
624
|
+
using StdUniformRealType = CwiseNullaryOp<internal::scalar_rng_adaptor<StdUniformRealGen<typename Derived::Scalar>, typename Derived::Scalar, Urng, true>, const Derived>;
|
|
472
625
|
|
|
473
626
|
/**
|
|
474
627
|
* @brief generates reals in a range `[0, 1)`
|
|
@@ -483,7 +636,7 @@ namespace Eigen
|
|
|
483
636
|
* @see Eigen::Rand::UniformRealGen
|
|
484
637
|
*/
|
|
485
638
|
template<typename Derived, typename Urng>
|
|
486
|
-
inline const
|
|
639
|
+
inline const StdUniformRealType<Derived, Urng>
|
|
487
640
|
uniformReal(Index rows, Index cols, Urng&& urng)
|
|
488
641
|
{
|
|
489
642
|
return {
|
|
@@ -503,7 +656,7 @@ namespace Eigen
|
|
|
503
656
|
* @see Eigen::Rand::UniformRealGen
|
|
504
657
|
*/
|
|
505
658
|
template<typename Derived, typename Urng>
|
|
506
|
-
inline const
|
|
659
|
+
inline const StdUniformRealType<Derived, Urng>
|
|
507
660
|
uniformRealLike(Derived& o, Urng&& urng)
|
|
508
661
|
{
|
|
509
662
|
return {
|
|
@@ -511,6 +664,52 @@ namespace Eigen
|
|
|
511
664
|
};
|
|
512
665
|
}
|
|
513
666
|
|
|
667
|
+
template<typename Derived, typename Urng>
|
|
668
|
+
using UniformRealType = CwiseNullaryOp<internal::scalar_rng_adaptor<UniformRealGen<typename Derived::Scalar>, typename Derived::Scalar, Urng, true>, const Derived>;
|
|
669
|
+
|
|
670
|
+
/**
|
|
671
|
+
* @brief generates reals in a range `[min, max)`
|
|
672
|
+
*
|
|
673
|
+
* @tparam Derived a type of Eigen::DenseBase
|
|
674
|
+
* @tparam Urng
|
|
675
|
+
* @param rows the number of rows being generated
|
|
676
|
+
* @param cols the number of columns being generated
|
|
677
|
+
* @param urng c++11-style random number generator
|
|
678
|
+
* @param min, max the range of reals being generated
|
|
679
|
+
* @return a random matrix expression with a shape (`rows`, `cols`)
|
|
680
|
+
*
|
|
681
|
+
* @see Eigen::Rand::UniformRealGen
|
|
682
|
+
*/
|
|
683
|
+
template<typename Derived, typename Urng>
|
|
684
|
+
inline const UniformRealType<Derived, Urng>
|
|
685
|
+
uniformReal(Index rows, Index cols, Urng&& urng, typename Derived::Scalar min, typename Derived::Scalar max)
|
|
686
|
+
{
|
|
687
|
+
return {
|
|
688
|
+
rows, cols, { std::forward<Urng>(urng), UniformRealGen<typename Derived::Scalar>{ min, max } }
|
|
689
|
+
};
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* @brief generates reals in a range `[min, max)`
|
|
694
|
+
*
|
|
695
|
+
* @tparam Derived
|
|
696
|
+
* @tparam Urng
|
|
697
|
+
* @param o an instance of any type of Eigen::DenseBase
|
|
698
|
+
* @param urng c++11-style random number generator
|
|
699
|
+
* @param min, max the range of reals being generated
|
|
700
|
+
* @return a random matrix expression of the same shape as `o`
|
|
701
|
+
*
|
|
702
|
+
* @see Eigen::Rand::UniformRealGen
|
|
703
|
+
*/
|
|
704
|
+
template<typename Derived, typename Urng>
|
|
705
|
+
inline const UniformRealType<Derived, Urng>
|
|
706
|
+
uniformRealLike(Derived& o, Urng&& urng, typename Derived::Scalar min, typename Derived::Scalar max)
|
|
707
|
+
{
|
|
708
|
+
return {
|
|
709
|
+
o.rows(), o.cols(), { std::forward<Urng>(urng), UniformRealGen<typename Derived::Scalar>{ min, max } }
|
|
710
|
+
};
|
|
711
|
+
}
|
|
712
|
+
|
|
514
713
|
template<typename Derived, typename Urng>
|
|
515
714
|
using BernoulliType = CwiseNullaryOp<internal::scalar_rng_adaptor<BernoulliGen<typename Derived::Scalar>, typename Derived::Scalar, Urng, true>, const Derived>;
|
|
516
715
|
|