ruby-eigen 0.0.9 → 0.0.10.pre1
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/LICENSE +22 -0
- data/README.md +21 -0
- data/ext/eigen/eigen3/COPYING.BSD +26 -0
- data/ext/eigen/eigen3/COPYING.MPL2 +373 -0
- data/ext/eigen/eigen3/COPYING.README +18 -0
- data/ext/eigen/eigen3/Eigen/Array +11 -0
- data/ext/eigen/eigen3/Eigen/Cholesky +32 -0
- data/ext/eigen/eigen3/Eigen/CholmodSupport +45 -0
- data/ext/eigen/eigen3/Eigen/Core +376 -0
- data/ext/eigen/eigen3/Eigen/Dense +7 -0
- data/ext/eigen/eigen3/Eigen/Eigen +2 -0
- data/ext/eigen/eigen3/Eigen/Eigen2Support +95 -0
- data/ext/eigen/eigen3/Eigen/Eigenvalues +48 -0
- data/ext/eigen/eigen3/Eigen/Geometry +63 -0
- data/ext/eigen/eigen3/Eigen/Householder +23 -0
- data/ext/eigen/eigen3/Eigen/IterativeLinearSolvers +40 -0
- data/ext/eigen/eigen3/Eigen/Jacobi +26 -0
- data/ext/eigen/eigen3/Eigen/LU +41 -0
- data/ext/eigen/eigen3/Eigen/LeastSquares +32 -0
- data/ext/eigen/eigen3/Eigen/MetisSupport +28 -0
- data/ext/eigen/eigen3/Eigen/PaStiXSupport +46 -0
- data/ext/eigen/eigen3/Eigen/PardisoSupport +30 -0
- data/ext/eigen/eigen3/Eigen/QR +45 -0
- data/ext/eigen/eigen3/Eigen/QtAlignedMalloc +34 -0
- data/ext/eigen/eigen3/Eigen/SPQRSupport +29 -0
- data/ext/eigen/eigen3/Eigen/SVD +37 -0
- data/ext/eigen/eigen3/Eigen/Sparse +27 -0
- data/ext/eigen/eigen3/Eigen/SparseCore +64 -0
- data/ext/eigen/eigen3/Eigen/SparseLU +49 -0
- data/ext/eigen/eigen3/Eigen/SparseQR +33 -0
- data/ext/eigen/eigen3/Eigen/StdDeque +27 -0
- data/ext/eigen/eigen3/Eigen/StdList +26 -0
- data/ext/eigen/eigen3/Eigen/StdVector +27 -0
- data/ext/eigen/eigen3/Eigen/SuperLUSupport +59 -0
- data/ext/eigen/eigen3/Eigen/UmfPackSupport +36 -0
- data/ext/eigen/eigen3/Eigen/src/Cholesky/LDLT.h +611 -0
- data/ext/eigen/eigen3/Eigen/src/Cholesky/LLT.h +498 -0
- data/ext/eigen/eigen3/Eigen/src/Cholesky/LLT_MKL.h +102 -0
- data/ext/eigen/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +607 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Array.h +323 -0
- data/ext/eigen/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- data/ext/eigen/eigen3/Eigen/src/Core/ArrayWrapper.h +264 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Assign.h +590 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Assign_MKL.h +224 -0
- data/ext/eigen/eigen3/Eigen/src/Core/BandMatrix.h +334 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Block.h +406 -0
- data/ext/eigen/eigen3/Eigen/src/Core/BooleanRedux.h +154 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CommaInitializer.h +154 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CoreIterators.h +61 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CwiseBinaryOp.h +230 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CwiseNullaryOp.h +864 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CwiseUnaryOp.h +126 -0
- data/ext/eigen/eigen3/Eigen/src/Core/CwiseUnaryView.h +139 -0
- data/ext/eigen/eigen3/Eigen/src/Core/DenseBase.h +521 -0
- data/ext/eigen/eigen3/Eigen/src/Core/DenseCoeffsBase.h +754 -0
- data/ext/eigen/eigen3/Eigen/src/Core/DenseStorage.h +434 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Diagonal.h +237 -0
- data/ext/eigen/eigen3/Eigen/src/Core/DiagonalMatrix.h +313 -0
- data/ext/eigen/eigen3/Eigen/src/Core/DiagonalProduct.h +131 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Dot.h +263 -0
- data/ext/eigen/eigen3/Eigen/src/Core/EigenBase.h +131 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Flagged.h +140 -0
- data/ext/eigen/eigen3/Eigen/src/Core/ForceAlignedAccess.h +146 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Functors.h +1026 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Fuzzy.h +150 -0
- data/ext/eigen/eigen3/Eigen/src/Core/GeneralProduct.h +635 -0
- data/ext/eigen/eigen3/Eigen/src/Core/GenericPacketMath.h +350 -0
- data/ext/eigen/eigen3/Eigen/src/Core/GlobalFunctions.h +92 -0
- data/ext/eigen/eigen3/Eigen/src/Core/IO.h +250 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Map.h +192 -0
- data/ext/eigen/eigen3/Eigen/src/Core/MapBase.h +247 -0
- data/ext/eigen/eigen3/Eigen/src/Core/MathFunctions.h +768 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Matrix.h +420 -0
- data/ext/eigen/eigen3/Eigen/src/Core/MatrixBase.h +563 -0
- data/ext/eigen/eigen3/Eigen/src/Core/NestByValue.h +111 -0
- data/ext/eigen/eigen3/Eigen/src/Core/NoAlias.h +134 -0
- data/ext/eigen/eigen3/Eigen/src/Core/NumTraits.h +150 -0
- data/ext/eigen/eigen3/Eigen/src/Core/PermutationMatrix.h +721 -0
- data/ext/eigen/eigen3/Eigen/src/Core/PlainObjectBase.h +822 -0
- data/ext/eigen/eigen3/Eigen/src/Core/ProductBase.h +290 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Random.h +152 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Redux.h +409 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Ref.h +278 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Replicate.h +177 -0
- data/ext/eigen/eigen3/Eigen/src/Core/ReturnByValue.h +99 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Reverse.h +224 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Select.h +162 -0
- data/ext/eigen/eigen3/Eigen/src/Core/SelfAdjointView.h +314 -0
- data/ext/eigen/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +191 -0
- data/ext/eigen/eigen3/Eigen/src/Core/SolveTriangular.h +260 -0
- data/ext/eigen/eigen3/Eigen/src/Core/StableNorm.h +203 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Stride.h +108 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Swap.h +126 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Transpose.h +419 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Transpositions.h +436 -0
- data/ext/eigen/eigen3/Eigen/src/Core/TriangularMatrix.h +839 -0
- data/ext/eigen/eigen3/Eigen/src/Core/VectorBlock.h +95 -0
- data/ext/eigen/eigen3/Eigen/src/Core/VectorwiseOp.h +642 -0
- data/ext/eigen/eigen3/Eigen/src/Core/Visitor.h +237 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +217 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +501 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/NEON/Complex.h +253 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +420 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/Complex.h +442 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +475 -0
- data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +649 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h +476 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1341 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +427 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +278 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h +146 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h +118 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +566 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h +131 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/Parallelizer.h +162 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +436 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h +295 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +281 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h +114 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +123 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +93 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +427 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h +309 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +348 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h +247 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +332 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h +155 -0
- data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +139 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/BlasUtil.h +264 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/Constants.h +451 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +40 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +302 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/MKL_support.h +158 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/Macros.h +451 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/Memory.h +977 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/Meta.h +243 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +14 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/StaticAssert.h +208 -0
- data/ext/eigen/eigen3/Eigen/src/Core/util/XprHelper.h +469 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Block.h +126 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Cwise.h +192 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h +298 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h +159 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/All.h +115 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h +214 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h +254 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h +141 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h +495 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h +145 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h +123 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h +167 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h +786 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h +184 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/LU.h +120 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Lazy.h +71 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/LeastSquares.h +169 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Macros.h +20 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/MathFunctions.h +57 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Memory.h +45 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Meta.h +75 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Minor.h +117 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/QR.h +67 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/SVD.h +637 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h +42 -0
- data/ext/eigen/eigen3/Eigen/src/Eigen2Support/VectorBlock.h +94 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +341 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +456 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h +94 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +607 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +350 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +227 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +373 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +160 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealQZ.h +624 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealSchur.h +525 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h +83 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +801 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h +92 -0
- data/ext/eigen/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +557 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/AlignedBox.h +392 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/AngleAxis.h +233 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/EulerAngles.h +104 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Homogeneous.h +307 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Hyperplane.h +280 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/OrthoMethods.h +218 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/ParametrizedLine.h +195 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Quaternion.h +776 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Rotation2D.h +160 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Scaling.h +166 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Transform.h +1455 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Translation.h +206 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/Umeyama.h +177 -0
- data/ext/eigen/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h +115 -0
- data/ext/eigen/eigen3/Eigen/src/Householder/BlockHouseholder.h +68 -0
- data/ext/eigen/eigen3/Eigen/src/Householder/Householder.h +171 -0
- data/ext/eigen/eigen3/Eigen/src/Householder/HouseholderSequence.h +441 -0
- data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -0
- data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +263 -0
- data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +256 -0
- data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +282 -0
- data/ext/eigen/eigen3/Eigen/src/Jacobi/Jacobi.h +433 -0
- data/ext/eigen/eigen3/Eigen/src/LU/Determinant.h +101 -0
- data/ext/eigen/eigen3/Eigen/src/LU/FullPivLU.h +751 -0
- data/ext/eigen/eigen3/Eigen/src/LU/Inverse.h +400 -0
- data/ext/eigen/eigen3/Eigen/src/LU/PartialPivLU.h +509 -0
- data/ext/eigen/eigen3/Eigen/src/LU/PartialPivLU_MKL.h +85 -0
- data/ext/eigen/eigen3/Eigen/src/LU/arch/Inverse_SSE.h +329 -0
- data/ext/eigen/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- data/ext/eigen/eigen3/Eigen/src/OrderingMethods/Amd.h +444 -0
- data/ext/eigen/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1850 -0
- data/ext/eigen/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +721 -0
- data/ext/eigen/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +592 -0
- data/ext/eigen/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +580 -0
- data/ext/eigen/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h +99 -0
- data/ext/eigen/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +622 -0
- data/ext/eigen/eigen3/Eigen/src/QR/HouseholderQR.h +388 -0
- data/ext/eigen/eigen3/Eigen/src/QR/HouseholderQR_MKL.h +71 -0
- data/ext/eigen/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +338 -0
- data/ext/eigen/eigen3/Eigen/src/SVD/JacobiSVD.h +976 -0
- data/ext/eigen/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h +92 -0
- data/ext/eigen/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +148 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +671 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +199 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/AmbiVector.h +373 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/CompressedStorage.h +233 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +245 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +181 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseBlock.h +537 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +325 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +163 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +311 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +196 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDot.h +101 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +26 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1262 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +461 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparsePermutation.h +148 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseProduct.h +188 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseRedux.h +45 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +507 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +150 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseTranspose.h +63 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +179 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseUtil.h +172 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseVector.h +448 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseView.h +99 -0
- data/ext/eigen/eigen3/Eigen/src/SparseCore/TriangularSolver.h +334 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU.h +806 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +227 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +111 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +298 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +180 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +177 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +106 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +279 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +127 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +135 -0
- data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- data/ext/eigen/eigen3/Eigen/src/SparseQR/SparseQR.h +714 -0
- data/ext/eigen/eigen3/Eigen/src/StlSupport/StdDeque.h +134 -0
- data/ext/eigen/eigen3/Eigen/src/StlSupport/StdList.h +114 -0
- data/ext/eigen/eigen3/Eigen/src/StlSupport/StdVector.h +126 -0
- data/ext/eigen/eigen3/Eigen/src/StlSupport/details.h +84 -0
- data/ext/eigen/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1026 -0
- data/ext/eigen/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +474 -0
- data/ext/eigen/eigen3/Eigen/src/misc/Image.h +84 -0
- data/ext/eigen/eigen3/Eigen/src/misc/Kernel.h +81 -0
- data/ext/eigen/eigen3/Eigen/src/misc/Solve.h +76 -0
- data/ext/eigen/eigen3/Eigen/src/misc/SparseSolve.h +128 -0
- data/ext/eigen/eigen3/Eigen/src/misc/blas.h +658 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +253 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +187 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/BlockMethods.h +935 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +46 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +172 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +143 -0
- data/ext/eigen/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +52 -0
- data/ext/eigen/eigen3/signature_of_eigen3_matrix_library +1 -0
- data/ext/eigen/eigen_wrap.cxx +19420 -10396
- data/ext/eigen/extconf.rb +37 -2
- data/lib/eigen.rb +146 -3
- metadata +294 -7
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
6
|
+
//
|
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
10
|
+
|
|
11
|
+
#ifndef EIGEN_BLOCK2_H
|
|
12
|
+
#define EIGEN_BLOCK2_H
|
|
13
|
+
|
|
14
|
+
namespace Eigen {
|
|
15
|
+
|
|
16
|
+
/** \returns a dynamic-size expression of a corner of *this.
|
|
17
|
+
*
|
|
18
|
+
* \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
|
|
19
|
+
* \a Eigen::BottomLeft, \a Eigen::BottomRight.
|
|
20
|
+
* \param cRows the number of rows in the corner
|
|
21
|
+
* \param cCols the number of columns in the corner
|
|
22
|
+
*
|
|
23
|
+
* Example: \include MatrixBase_corner_enum_int_int.cpp
|
|
24
|
+
* Output: \verbinclude MatrixBase_corner_enum_int_int.out
|
|
25
|
+
*
|
|
26
|
+
* \note Even though the returned expression has dynamic size, in the case
|
|
27
|
+
* when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
|
|
28
|
+
* which means that evaluating it does not cause a dynamic memory allocation.
|
|
29
|
+
*
|
|
30
|
+
* \sa class Block, block(Index,Index,Index,Index)
|
|
31
|
+
*/
|
|
32
|
+
template<typename Derived>
|
|
33
|
+
inline Block<Derived> DenseBase<Derived>
|
|
34
|
+
::corner(CornerType type, Index cRows, Index cCols)
|
|
35
|
+
{
|
|
36
|
+
switch(type)
|
|
37
|
+
{
|
|
38
|
+
default:
|
|
39
|
+
eigen_assert(false && "Bad corner type.");
|
|
40
|
+
case TopLeft:
|
|
41
|
+
return Block<Derived>(derived(), 0, 0, cRows, cCols);
|
|
42
|
+
case TopRight:
|
|
43
|
+
return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
|
|
44
|
+
case BottomLeft:
|
|
45
|
+
return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
|
|
46
|
+
case BottomRight:
|
|
47
|
+
return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** This is the const version of corner(CornerType, Index, Index).*/
|
|
52
|
+
template<typename Derived>
|
|
53
|
+
inline const Block<Derived>
|
|
54
|
+
DenseBase<Derived>::corner(CornerType type, Index cRows, Index cCols) const
|
|
55
|
+
{
|
|
56
|
+
switch(type)
|
|
57
|
+
{
|
|
58
|
+
default:
|
|
59
|
+
eigen_assert(false && "Bad corner type.");
|
|
60
|
+
case TopLeft:
|
|
61
|
+
return Block<Derived>(derived(), 0, 0, cRows, cCols);
|
|
62
|
+
case TopRight:
|
|
63
|
+
return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
|
|
64
|
+
case BottomLeft:
|
|
65
|
+
return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
|
|
66
|
+
case BottomRight:
|
|
67
|
+
return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** \returns a fixed-size expression of a corner of *this.
|
|
72
|
+
*
|
|
73
|
+
* \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
|
|
74
|
+
* \a Eigen::BottomLeft, \a Eigen::BottomRight.
|
|
75
|
+
*
|
|
76
|
+
* The template parameters CRows and CCols arethe number of rows and columns in the corner.
|
|
77
|
+
*
|
|
78
|
+
* Example: \include MatrixBase_template_int_int_corner_enum.cpp
|
|
79
|
+
* Output: \verbinclude MatrixBase_template_int_int_corner_enum.out
|
|
80
|
+
*
|
|
81
|
+
* \sa class Block, block(Index,Index,Index,Index)
|
|
82
|
+
*/
|
|
83
|
+
template<typename Derived>
|
|
84
|
+
template<int CRows, int CCols>
|
|
85
|
+
inline Block<Derived, CRows, CCols>
|
|
86
|
+
DenseBase<Derived>::corner(CornerType type)
|
|
87
|
+
{
|
|
88
|
+
switch(type)
|
|
89
|
+
{
|
|
90
|
+
default:
|
|
91
|
+
eigen_assert(false && "Bad corner type.");
|
|
92
|
+
case TopLeft:
|
|
93
|
+
return Block<Derived, CRows, CCols>(derived(), 0, 0);
|
|
94
|
+
case TopRight:
|
|
95
|
+
return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
|
|
96
|
+
case BottomLeft:
|
|
97
|
+
return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
|
|
98
|
+
case BottomRight:
|
|
99
|
+
return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** This is the const version of corner<int, int>(CornerType).*/
|
|
104
|
+
template<typename Derived>
|
|
105
|
+
template<int CRows, int CCols>
|
|
106
|
+
inline const Block<Derived, CRows, CCols>
|
|
107
|
+
DenseBase<Derived>::corner(CornerType type) const
|
|
108
|
+
{
|
|
109
|
+
switch(type)
|
|
110
|
+
{
|
|
111
|
+
default:
|
|
112
|
+
eigen_assert(false && "Bad corner type.");
|
|
113
|
+
case TopLeft:
|
|
114
|
+
return Block<Derived, CRows, CCols>(derived(), 0, 0);
|
|
115
|
+
case TopRight:
|
|
116
|
+
return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
|
|
117
|
+
case BottomLeft:
|
|
118
|
+
return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
|
|
119
|
+
case BottomRight:
|
|
120
|
+
return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
} // end namespace Eigen
|
|
125
|
+
|
|
126
|
+
#endif // EIGEN_BLOCK2_H
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
6
|
+
//
|
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
10
|
+
|
|
11
|
+
#ifndef EIGEN_CWISE_H
|
|
12
|
+
#define EIGEN_CWISE_H
|
|
13
|
+
|
|
14
|
+
namespace Eigen {
|
|
15
|
+
|
|
16
|
+
/** \internal
|
|
17
|
+
* convenient macro to defined the return type of a cwise binary operation */
|
|
18
|
+
#define EIGEN_CWISE_BINOP_RETURN_TYPE(OP) \
|
|
19
|
+
CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, OtherDerived>
|
|
20
|
+
|
|
21
|
+
/** \internal
|
|
22
|
+
* convenient macro to defined the return type of a cwise unary operation */
|
|
23
|
+
#define EIGEN_CWISE_UNOP_RETURN_TYPE(OP) \
|
|
24
|
+
CwiseUnaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType>
|
|
25
|
+
|
|
26
|
+
/** \internal
|
|
27
|
+
* convenient macro to defined the return type of a cwise comparison to a scalar */
|
|
28
|
+
#define EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(OP) \
|
|
29
|
+
CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, \
|
|
30
|
+
typename ExpressionType::ConstantReturnType >
|
|
31
|
+
|
|
32
|
+
/** \class Cwise
|
|
33
|
+
*
|
|
34
|
+
* \brief Pseudo expression providing additional coefficient-wise operations
|
|
35
|
+
*
|
|
36
|
+
* \param ExpressionType the type of the object on which to do coefficient-wise operations
|
|
37
|
+
*
|
|
38
|
+
* This class represents an expression with additional coefficient-wise features.
|
|
39
|
+
* It is the return type of MatrixBase::cwise()
|
|
40
|
+
* and most of the time this is the only way it is used.
|
|
41
|
+
*
|
|
42
|
+
* Example: \include MatrixBase_cwise_const.cpp
|
|
43
|
+
* Output: \verbinclude MatrixBase_cwise_const.out
|
|
44
|
+
*
|
|
45
|
+
* This class can be extended with the help of the plugin mechanism described on the page
|
|
46
|
+
* \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_CWISE_PLUGIN.
|
|
47
|
+
*
|
|
48
|
+
* \sa MatrixBase::cwise() const, MatrixBase::cwise()
|
|
49
|
+
*/
|
|
50
|
+
template<typename ExpressionType> class Cwise
|
|
51
|
+
{
|
|
52
|
+
public:
|
|
53
|
+
|
|
54
|
+
typedef typename internal::traits<ExpressionType>::Scalar Scalar;
|
|
55
|
+
typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
|
|
56
|
+
ExpressionType, const ExpressionType&>::type ExpressionTypeNested;
|
|
57
|
+
typedef CwiseUnaryOp<internal::scalar_add_op<Scalar>, ExpressionType> ScalarAddReturnType;
|
|
58
|
+
|
|
59
|
+
inline Cwise(const ExpressionType& matrix) : m_matrix(matrix) {}
|
|
60
|
+
|
|
61
|
+
/** \internal */
|
|
62
|
+
inline const ExpressionType& _expression() const { return m_matrix; }
|
|
63
|
+
|
|
64
|
+
template<typename OtherDerived>
|
|
65
|
+
const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
|
|
66
|
+
operator*(const MatrixBase<OtherDerived> &other) const;
|
|
67
|
+
|
|
68
|
+
template<typename OtherDerived>
|
|
69
|
+
const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
|
|
70
|
+
operator/(const MatrixBase<OtherDerived> &other) const;
|
|
71
|
+
|
|
72
|
+
/** \deprecated ArrayBase::min() */
|
|
73
|
+
template<typename OtherDerived>
|
|
74
|
+
const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)
|
|
75
|
+
(min)(const MatrixBase<OtherDerived> &other) const
|
|
76
|
+
{ return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)(_expression(), other.derived()); }
|
|
77
|
+
|
|
78
|
+
/** \deprecated ArrayBase::max() */
|
|
79
|
+
template<typename OtherDerived>
|
|
80
|
+
const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)
|
|
81
|
+
(max)(const MatrixBase<OtherDerived> &other) const
|
|
82
|
+
{ return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)(_expression(), other.derived()); }
|
|
83
|
+
|
|
84
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op) abs() const;
|
|
85
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op) abs2() const;
|
|
86
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op) square() const;
|
|
87
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op) cube() const;
|
|
88
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op) inverse() const;
|
|
89
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op) sqrt() const;
|
|
90
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op) exp() const;
|
|
91
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op) log() const;
|
|
92
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op) cos() const;
|
|
93
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op) sin() const;
|
|
94
|
+
const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op) pow(const Scalar& exponent) const;
|
|
95
|
+
|
|
96
|
+
const ScalarAddReturnType
|
|
97
|
+
operator+(const Scalar& scalar) const;
|
|
98
|
+
|
|
99
|
+
/** \relates Cwise */
|
|
100
|
+
friend const ScalarAddReturnType
|
|
101
|
+
operator+(const Scalar& scalar, const Cwise& mat)
|
|
102
|
+
{ return mat + scalar; }
|
|
103
|
+
|
|
104
|
+
ExpressionType& operator+=(const Scalar& scalar);
|
|
105
|
+
|
|
106
|
+
const ScalarAddReturnType
|
|
107
|
+
operator-(const Scalar& scalar) const;
|
|
108
|
+
|
|
109
|
+
ExpressionType& operator-=(const Scalar& scalar);
|
|
110
|
+
|
|
111
|
+
template<typename OtherDerived>
|
|
112
|
+
inline ExpressionType& operator*=(const MatrixBase<OtherDerived> &other);
|
|
113
|
+
|
|
114
|
+
template<typename OtherDerived>
|
|
115
|
+
inline ExpressionType& operator/=(const MatrixBase<OtherDerived> &other);
|
|
116
|
+
|
|
117
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
|
|
118
|
+
operator<(const MatrixBase<OtherDerived>& other) const;
|
|
119
|
+
|
|
120
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
|
|
121
|
+
operator<=(const MatrixBase<OtherDerived>& other) const;
|
|
122
|
+
|
|
123
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
|
|
124
|
+
operator>(const MatrixBase<OtherDerived>& other) const;
|
|
125
|
+
|
|
126
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
|
|
127
|
+
operator>=(const MatrixBase<OtherDerived>& other) const;
|
|
128
|
+
|
|
129
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
|
|
130
|
+
operator==(const MatrixBase<OtherDerived>& other) const;
|
|
131
|
+
|
|
132
|
+
template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
|
|
133
|
+
operator!=(const MatrixBase<OtherDerived>& other) const;
|
|
134
|
+
|
|
135
|
+
// comparisons to a scalar value
|
|
136
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
|
|
137
|
+
operator<(Scalar s) const;
|
|
138
|
+
|
|
139
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
|
|
140
|
+
operator<=(Scalar s) const;
|
|
141
|
+
|
|
142
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
|
|
143
|
+
operator>(Scalar s) const;
|
|
144
|
+
|
|
145
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
|
|
146
|
+
operator>=(Scalar s) const;
|
|
147
|
+
|
|
148
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
|
|
149
|
+
operator==(Scalar s) const;
|
|
150
|
+
|
|
151
|
+
const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
|
|
152
|
+
operator!=(Scalar s) const;
|
|
153
|
+
|
|
154
|
+
// allow to extend Cwise outside Eigen
|
|
155
|
+
#ifdef EIGEN_CWISE_PLUGIN
|
|
156
|
+
#include EIGEN_CWISE_PLUGIN
|
|
157
|
+
#endif
|
|
158
|
+
|
|
159
|
+
protected:
|
|
160
|
+
ExpressionTypeNested m_matrix;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
/** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
|
|
165
|
+
*
|
|
166
|
+
* Example: \include MatrixBase_cwise_const.cpp
|
|
167
|
+
* Output: \verbinclude MatrixBase_cwise_const.out
|
|
168
|
+
*
|
|
169
|
+
* \sa class Cwise, cwise()
|
|
170
|
+
*/
|
|
171
|
+
template<typename Derived>
|
|
172
|
+
inline const Cwise<Derived> MatrixBase<Derived>::cwise() const
|
|
173
|
+
{
|
|
174
|
+
return derived();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
|
|
178
|
+
*
|
|
179
|
+
* Example: \include MatrixBase_cwise.cpp
|
|
180
|
+
* Output: \verbinclude MatrixBase_cwise.out
|
|
181
|
+
*
|
|
182
|
+
* \sa class Cwise, cwise() const
|
|
183
|
+
*/
|
|
184
|
+
template<typename Derived>
|
|
185
|
+
inline Cwise<Derived> MatrixBase<Derived>::cwise()
|
|
186
|
+
{
|
|
187
|
+
return derived();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
} // end namespace Eigen
|
|
191
|
+
|
|
192
|
+
#endif // EIGEN_CWISE_H
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_ARRAY_CWISE_OPERATORS_H
|
|
11
|
+
#define EIGEN_ARRAY_CWISE_OPERATORS_H
|
|
12
|
+
|
|
13
|
+
namespace Eigen {
|
|
14
|
+
|
|
15
|
+
/***************************************************************************
|
|
16
|
+
* The following functions were defined in Core
|
|
17
|
+
***************************************************************************/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/** \deprecated ArrayBase::abs() */
|
|
21
|
+
template<typename ExpressionType>
|
|
22
|
+
EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op)
|
|
23
|
+
Cwise<ExpressionType>::abs() const
|
|
24
|
+
{
|
|
25
|
+
return _expression();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** \deprecated ArrayBase::abs2() */
|
|
29
|
+
template<typename ExpressionType>
|
|
30
|
+
EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op)
|
|
31
|
+
Cwise<ExpressionType>::abs2() const
|
|
32
|
+
{
|
|
33
|
+
return _expression();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** \deprecated ArrayBase::exp() */
|
|
37
|
+
template<typename ExpressionType>
|
|
38
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op)
|
|
39
|
+
Cwise<ExpressionType>::exp() const
|
|
40
|
+
{
|
|
41
|
+
return _expression();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** \deprecated ArrayBase::log() */
|
|
45
|
+
template<typename ExpressionType>
|
|
46
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op)
|
|
47
|
+
Cwise<ExpressionType>::log() const
|
|
48
|
+
{
|
|
49
|
+
return _expression();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** \deprecated ArrayBase::operator*() */
|
|
53
|
+
template<typename ExpressionType>
|
|
54
|
+
template<typename OtherDerived>
|
|
55
|
+
EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
|
|
56
|
+
Cwise<ExpressionType>::operator*(const MatrixBase<OtherDerived> &other) const
|
|
57
|
+
{
|
|
58
|
+
return EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)(_expression(), other.derived());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** \deprecated ArrayBase::operator/() */
|
|
62
|
+
template<typename ExpressionType>
|
|
63
|
+
template<typename OtherDerived>
|
|
64
|
+
EIGEN_STRONG_INLINE const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
|
|
65
|
+
Cwise<ExpressionType>::operator/(const MatrixBase<OtherDerived> &other) const
|
|
66
|
+
{
|
|
67
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)(_expression(), other.derived());
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** \deprecated ArrayBase::operator*=() */
|
|
71
|
+
template<typename ExpressionType>
|
|
72
|
+
template<typename OtherDerived>
|
|
73
|
+
inline ExpressionType& Cwise<ExpressionType>::operator*=(const MatrixBase<OtherDerived> &other)
|
|
74
|
+
{
|
|
75
|
+
return m_matrix.const_cast_derived() = *this * other;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** \deprecated ArrayBase::operator/=() */
|
|
79
|
+
template<typename ExpressionType>
|
|
80
|
+
template<typename OtherDerived>
|
|
81
|
+
inline ExpressionType& Cwise<ExpressionType>::operator/=(const MatrixBase<OtherDerived> &other)
|
|
82
|
+
{
|
|
83
|
+
return m_matrix.const_cast_derived() = *this / other;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/***************************************************************************
|
|
87
|
+
* The following functions were defined in Array
|
|
88
|
+
***************************************************************************/
|
|
89
|
+
|
|
90
|
+
// -- unary operators --
|
|
91
|
+
|
|
92
|
+
/** \deprecated ArrayBase::sqrt() */
|
|
93
|
+
template<typename ExpressionType>
|
|
94
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op)
|
|
95
|
+
Cwise<ExpressionType>::sqrt() const
|
|
96
|
+
{
|
|
97
|
+
return _expression();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/** \deprecated ArrayBase::cos() */
|
|
101
|
+
template<typename ExpressionType>
|
|
102
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op)
|
|
103
|
+
Cwise<ExpressionType>::cos() const
|
|
104
|
+
{
|
|
105
|
+
return _expression();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
/** \deprecated ArrayBase::sin() */
|
|
110
|
+
template<typename ExpressionType>
|
|
111
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op)
|
|
112
|
+
Cwise<ExpressionType>::sin() const
|
|
113
|
+
{
|
|
114
|
+
return _expression();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
/** \deprecated ArrayBase::log() */
|
|
119
|
+
template<typename ExpressionType>
|
|
120
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)
|
|
121
|
+
Cwise<ExpressionType>::pow(const Scalar& exponent) const
|
|
122
|
+
{
|
|
123
|
+
return EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)(_expression(), internal::scalar_pow_op<Scalar>(exponent));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
/** \deprecated ArrayBase::inverse() */
|
|
128
|
+
template<typename ExpressionType>
|
|
129
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op)
|
|
130
|
+
Cwise<ExpressionType>::inverse() const
|
|
131
|
+
{
|
|
132
|
+
return _expression();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** \deprecated ArrayBase::square() */
|
|
136
|
+
template<typename ExpressionType>
|
|
137
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op)
|
|
138
|
+
Cwise<ExpressionType>::square() const
|
|
139
|
+
{
|
|
140
|
+
return _expression();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** \deprecated ArrayBase::cube() */
|
|
144
|
+
template<typename ExpressionType>
|
|
145
|
+
inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op)
|
|
146
|
+
Cwise<ExpressionType>::cube() const
|
|
147
|
+
{
|
|
148
|
+
return _expression();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
// -- binary operators --
|
|
153
|
+
|
|
154
|
+
/** \deprecated ArrayBase::operator<() */
|
|
155
|
+
template<typename ExpressionType>
|
|
156
|
+
template<typename OtherDerived>
|
|
157
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
|
|
158
|
+
Cwise<ExpressionType>::operator<(const MatrixBase<OtherDerived> &other) const
|
|
159
|
+
{
|
|
160
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)(_expression(), other.derived());
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/** \deprecated ArrayBase::<=() */
|
|
164
|
+
template<typename ExpressionType>
|
|
165
|
+
template<typename OtherDerived>
|
|
166
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
|
|
167
|
+
Cwise<ExpressionType>::operator<=(const MatrixBase<OtherDerived> &other) const
|
|
168
|
+
{
|
|
169
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)(_expression(), other.derived());
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** \deprecated ArrayBase::operator>() */
|
|
173
|
+
template<typename ExpressionType>
|
|
174
|
+
template<typename OtherDerived>
|
|
175
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
|
|
176
|
+
Cwise<ExpressionType>::operator>(const MatrixBase<OtherDerived> &other) const
|
|
177
|
+
{
|
|
178
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)(_expression(), other.derived());
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** \deprecated ArrayBase::operator>=() */
|
|
182
|
+
template<typename ExpressionType>
|
|
183
|
+
template<typename OtherDerived>
|
|
184
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
|
|
185
|
+
Cwise<ExpressionType>::operator>=(const MatrixBase<OtherDerived> &other) const
|
|
186
|
+
{
|
|
187
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)(_expression(), other.derived());
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/** \deprecated ArrayBase::operator==() */
|
|
191
|
+
template<typename ExpressionType>
|
|
192
|
+
template<typename OtherDerived>
|
|
193
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
|
|
194
|
+
Cwise<ExpressionType>::operator==(const MatrixBase<OtherDerived> &other) const
|
|
195
|
+
{
|
|
196
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)(_expression(), other.derived());
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** \deprecated ArrayBase::operator!=() */
|
|
200
|
+
template<typename ExpressionType>
|
|
201
|
+
template<typename OtherDerived>
|
|
202
|
+
inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
|
|
203
|
+
Cwise<ExpressionType>::operator!=(const MatrixBase<OtherDerived> &other) const
|
|
204
|
+
{
|
|
205
|
+
return EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)(_expression(), other.derived());
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// comparisons to scalar value
|
|
209
|
+
|
|
210
|
+
/** \deprecated ArrayBase::operator<(Scalar) */
|
|
211
|
+
template<typename ExpressionType>
|
|
212
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
|
|
213
|
+
Cwise<ExpressionType>::operator<(Scalar s) const
|
|
214
|
+
{
|
|
215
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)(_expression(),
|
|
216
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/** \deprecated ArrayBase::operator<=(Scalar) */
|
|
220
|
+
template<typename ExpressionType>
|
|
221
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
|
|
222
|
+
Cwise<ExpressionType>::operator<=(Scalar s) const
|
|
223
|
+
{
|
|
224
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)(_expression(),
|
|
225
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/** \deprecated ArrayBase::operator>(Scalar) */
|
|
229
|
+
template<typename ExpressionType>
|
|
230
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
|
|
231
|
+
Cwise<ExpressionType>::operator>(Scalar s) const
|
|
232
|
+
{
|
|
233
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)(_expression(),
|
|
234
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/** \deprecated ArrayBase::operator>=(Scalar) */
|
|
238
|
+
template<typename ExpressionType>
|
|
239
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
|
|
240
|
+
Cwise<ExpressionType>::operator>=(Scalar s) const
|
|
241
|
+
{
|
|
242
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)(_expression(),
|
|
243
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/** \deprecated ArrayBase::operator==(Scalar) */
|
|
247
|
+
template<typename ExpressionType>
|
|
248
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
|
|
249
|
+
Cwise<ExpressionType>::operator==(Scalar s) const
|
|
250
|
+
{
|
|
251
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)(_expression(),
|
|
252
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/** \deprecated ArrayBase::operator!=(Scalar) */
|
|
256
|
+
template<typename ExpressionType>
|
|
257
|
+
inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
|
|
258
|
+
Cwise<ExpressionType>::operator!=(Scalar s) const
|
|
259
|
+
{
|
|
260
|
+
return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)(_expression(),
|
|
261
|
+
typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// scalar addition
|
|
265
|
+
|
|
266
|
+
/** \deprecated ArrayBase::operator+(Scalar) */
|
|
267
|
+
template<typename ExpressionType>
|
|
268
|
+
inline const typename Cwise<ExpressionType>::ScalarAddReturnType
|
|
269
|
+
Cwise<ExpressionType>::operator+(const Scalar& scalar) const
|
|
270
|
+
{
|
|
271
|
+
return typename Cwise<ExpressionType>::ScalarAddReturnType(m_matrix, internal::scalar_add_op<Scalar>(scalar));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/** \deprecated ArrayBase::operator+=(Scalar) */
|
|
275
|
+
template<typename ExpressionType>
|
|
276
|
+
inline ExpressionType& Cwise<ExpressionType>::operator+=(const Scalar& scalar)
|
|
277
|
+
{
|
|
278
|
+
return m_matrix.const_cast_derived() = *this + scalar;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/** \deprecated ArrayBase::operator-(Scalar) */
|
|
282
|
+
template<typename ExpressionType>
|
|
283
|
+
inline const typename Cwise<ExpressionType>::ScalarAddReturnType
|
|
284
|
+
Cwise<ExpressionType>::operator-(const Scalar& scalar) const
|
|
285
|
+
{
|
|
286
|
+
return *this + (-scalar);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/** \deprecated ArrayBase::operator-=(Scalar) */
|
|
290
|
+
template<typename ExpressionType>
|
|
291
|
+
inline ExpressionType& Cwise<ExpressionType>::operator-=(const Scalar& scalar)
|
|
292
|
+
{
|
|
293
|
+
return m_matrix.const_cast_derived() = *this - scalar;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
} // end namespace Eigen
|
|
297
|
+
|
|
298
|
+
#endif // EIGEN_ARRAY_CWISE_OPERATORS_H
|