├── README.md
├── SRC
├── 3DFinderOsg.pro
├── 3DFinderOsg.pro.user
├── images.qrc
├── images
│ ├── faceView_.png
│ ├── leftView_.png
│ ├── startView_.png
│ └── upView_.png
├── include
│ ├── eigen3
│ │ ├── Eigen
│ │ │ ├── Cholesky
│ │ │ ├── CholmodSupport
│ │ │ ├── Core
│ │ │ ├── Dense
│ │ │ ├── Eigen
│ │ │ ├── Eigenvalues
│ │ │ ├── Geometry
│ │ │ ├── Householder
│ │ │ ├── IterativeLinearSolvers
│ │ │ ├── Jacobi
│ │ │ ├── LU
│ │ │ ├── MetisSupport
│ │ │ ├── OrderingMethods
│ │ │ ├── PaStiXSupport
│ │ │ ├── PardisoSupport
│ │ │ ├── QR
│ │ │ ├── QtAlignedMalloc
│ │ │ ├── SPQRSupport
│ │ │ ├── SVD
│ │ │ ├── Sparse
│ │ │ ├── SparseCholesky
│ │ │ ├── SparseCore
│ │ │ ├── SparseLU
│ │ │ ├── SparseQR
│ │ │ ├── StdDeque
│ │ │ ├── StdList
│ │ │ ├── StdVector
│ │ │ ├── SuperLUSupport
│ │ │ ├── UmfPackSupport
│ │ │ └── src
│ │ │ │ ├── Cholesky
│ │ │ │ ├── LDLT.h
│ │ │ │ ├── LLT.h
│ │ │ │ └── LLT_MKL.h
│ │ │ │ ├── CholmodSupport
│ │ │ │ └── CholmodSupport.h
│ │ │ │ ├── Core
│ │ │ │ ├── Array.h
│ │ │ │ ├── ArrayBase.h
│ │ │ │ ├── ArrayWrapper.h
│ │ │ │ ├── Assign.h
│ │ │ │ ├── AssignEvaluator.h
│ │ │ │ ├── Assign_MKL.h
│ │ │ │ ├── BandMatrix.h
│ │ │ │ ├── Block.h
│ │ │ │ ├── BooleanRedux.h
│ │ │ │ ├── CommaInitializer.h
│ │ │ │ ├── CoreEvaluators.h
│ │ │ │ ├── CoreIterators.h
│ │ │ │ ├── CwiseBinaryOp.h
│ │ │ │ ├── CwiseNullaryOp.h
│ │ │ │ ├── CwiseUnaryOp.h
│ │ │ │ ├── CwiseUnaryView.h
│ │ │ │ ├── DenseBase.h
│ │ │ │ ├── DenseCoeffsBase.h
│ │ │ │ ├── DenseStorage.h
│ │ │ │ ├── Diagonal.h
│ │ │ │ ├── DiagonalMatrix.h
│ │ │ │ ├── DiagonalProduct.h
│ │ │ │ ├── Dot.h
│ │ │ │ ├── EigenBase.h
│ │ │ │ ├── ForceAlignedAccess.h
│ │ │ │ ├── Fuzzy.h
│ │ │ │ ├── GeneralProduct.h
│ │ │ │ ├── GenericPacketMath.h
│ │ │ │ ├── GlobalFunctions.h
│ │ │ │ ├── IO.h
│ │ │ │ ├── Inverse.h
│ │ │ │ ├── Map.h
│ │ │ │ ├── MapBase.h
│ │ │ │ ├── MathFunctions.h
│ │ │ │ ├── Matrix.h
│ │ │ │ ├── MatrixBase.h
│ │ │ │ ├── NestByValue.h
│ │ │ │ ├── NoAlias.h
│ │ │ │ ├── NumTraits.h
│ │ │ │ ├── PermutationMatrix.h
│ │ │ │ ├── PlainObjectBase.h
│ │ │ │ ├── Product.h
│ │ │ │ ├── ProductEvaluators.h
│ │ │ │ ├── Random.h
│ │ │ │ ├── Redux.h
│ │ │ │ ├── Ref.h
│ │ │ │ ├── Replicate.h
│ │ │ │ ├── ReturnByValue.h
│ │ │ │ ├── Reverse.h
│ │ │ │ ├── Select.h
│ │ │ │ ├── SelfAdjointView.h
│ │ │ │ ├── SelfCwiseBinaryOp.h
│ │ │ │ ├── Solve.h
│ │ │ │ ├── SolveTriangular.h
│ │ │ │ ├── SolverBase.h
│ │ │ │ ├── SpecialFunctions.h
│ │ │ │ ├── StableNorm.h
│ │ │ │ ├── Stride.h
│ │ │ │ ├── Swap.h
│ │ │ │ ├── Transpose.h
│ │ │ │ ├── Transpositions.h
│ │ │ │ ├── TriangularMatrix.h
│ │ │ │ ├── VectorBlock.h
│ │ │ │ ├── VectorwiseOp.h
│ │ │ │ ├── Visitor.h
│ │ │ │ ├── arch
│ │ │ │ │ ├── AVX
│ │ │ │ │ │ ├── Complex.h
│ │ │ │ │ │ ├── MathFunctions.h
│ │ │ │ │ │ ├── PacketMath.h
│ │ │ │ │ │ └── TypeCasting.h
│ │ │ │ │ ├── AltiVec
│ │ │ │ │ │ ├── Complex.h
│ │ │ │ │ │ ├── MathFunctions.h
│ │ │ │ │ │ └── PacketMath.h
│ │ │ │ │ ├── CUDA
│ │ │ │ │ │ ├── MathFunctions.h
│ │ │ │ │ │ └── PacketMath.h
│ │ │ │ │ ├── Default
│ │ │ │ │ │ └── Settings.h
│ │ │ │ │ ├── NEON
│ │ │ │ │ │ ├── Complex.h
│ │ │ │ │ │ ├── MathFunctions.h
│ │ │ │ │ │ └── PacketMath.h
│ │ │ │ │ └── SSE
│ │ │ │ │ │ ├── Complex.h
│ │ │ │ │ │ ├── MathFunctions.h
│ │ │ │ │ │ ├── PacketMath.h
│ │ │ │ │ │ └── TypeCasting.h
│ │ │ │ ├── functors
│ │ │ │ │ ├── AssignmentFunctors.h
│ │ │ │ │ ├── BinaryFunctors.h
│ │ │ │ │ ├── NullaryFunctors.h
│ │ │ │ │ ├── StlFunctors.h
│ │ │ │ │ └── UnaryFunctors.h
│ │ │ │ ├── products
│ │ │ │ │ ├── GeneralBlockPanelKernel.h
│ │ │ │ │ ├── GeneralMatrixMatrix.h
│ │ │ │ │ ├── GeneralMatrixMatrixTriangular.h
│ │ │ │ │ ├── GeneralMatrixMatrixTriangular_MKL.h
│ │ │ │ │ ├── GeneralMatrixMatrix_MKL.h
│ │ │ │ │ ├── GeneralMatrixVector.h
│ │ │ │ │ ├── GeneralMatrixVector_MKL.h
│ │ │ │ │ ├── Parallelizer.h
│ │ │ │ │ ├── SelfadjointMatrixMatrix.h
│ │ │ │ │ ├── SelfadjointMatrixMatrix_MKL.h
│ │ │ │ │ ├── SelfadjointMatrixVector.h
│ │ │ │ │ ├── SelfadjointMatrixVector_MKL.h
│ │ │ │ │ ├── SelfadjointProduct.h
│ │ │ │ │ ├── SelfadjointRank2Update.h
│ │ │ │ │ ├── TriangularMatrixMatrix.h
│ │ │ │ │ ├── TriangularMatrixMatrix_MKL.h
│ │ │ │ │ ├── TriangularMatrixVector.h
│ │ │ │ │ ├── TriangularMatrixVector_MKL.h
│ │ │ │ │ ├── TriangularSolverMatrix.h
│ │ │ │ │ ├── TriangularSolverMatrix_MKL.h
│ │ │ │ │ └── TriangularSolverVector.h
│ │ │ │ └── util
│ │ │ │ │ ├── BlasUtil.h
│ │ │ │ │ ├── Constants.h
│ │ │ │ │ ├── DisableStupidWarnings.h
│ │ │ │ │ ├── ForwardDeclarations.h
│ │ │ │ │ ├── MKL_support.h
│ │ │ │ │ ├── Macros.h
│ │ │ │ │ ├── Memory.h
│ │ │ │ │ ├── Meta.h
│ │ │ │ │ ├── NonMPL2.h
│ │ │ │ │ ├── ReenableStupidWarnings.h
│ │ │ │ │ ├── StaticAssert.h
│ │ │ │ │ └── XprHelper.h
│ │ │ │ ├── Eigenvalues
│ │ │ │ ├── ComplexEigenSolver.h
│ │ │ │ ├── ComplexSchur.h
│ │ │ │ ├── ComplexSchur_MKL.h
│ │ │ │ ├── EigenSolver.h
│ │ │ │ ├── GeneralizedEigenSolver.h
│ │ │ │ ├── GeneralizedSelfAdjointEigenSolver.h
│ │ │ │ ├── HessenbergDecomposition.h
│ │ │ │ ├── MatrixBaseEigenvalues.h
│ │ │ │ ├── RealQZ.h
│ │ │ │ ├── RealSchur.h
│ │ │ │ ├── RealSchur_MKL.h
│ │ │ │ ├── SelfAdjointEigenSolver.h
│ │ │ │ ├── SelfAdjointEigenSolver_MKL.h
│ │ │ │ └── Tridiagonalization.h
│ │ │ │ ├── Geometry
│ │ │ │ ├── AlignedBox.h
│ │ │ │ ├── AngleAxis.h
│ │ │ │ ├── EulerAngles.h
│ │ │ │ ├── Homogeneous.h
│ │ │ │ ├── Hyperplane.h
│ │ │ │ ├── OrthoMethods.h
│ │ │ │ ├── ParametrizedLine.h
│ │ │ │ ├── Quaternion.h
│ │ │ │ ├── Rotation2D.h
│ │ │ │ ├── RotationBase.h
│ │ │ │ ├── Scaling.h
│ │ │ │ ├── Transform.h
│ │ │ │ ├── Translation.h
│ │ │ │ ├── Umeyama.h
│ │ │ │ └── arch
│ │ │ │ │ └── Geometry_SSE.h
│ │ │ │ ├── Householder
│ │ │ │ ├── BlockHouseholder.h
│ │ │ │ ├── Householder.h
│ │ │ │ └── HouseholderSequence.h
│ │ │ │ ├── IterativeLinearSolvers
│ │ │ │ ├── BasicPreconditioners.h
│ │ │ │ ├── BiCGSTAB.h
│ │ │ │ ├── ConjugateGradient.h
│ │ │ │ ├── IncompleteCholesky.h
│ │ │ │ ├── IncompleteLUT.h
│ │ │ │ ├── IterativeSolverBase.h
│ │ │ │ ├── LeastSquareConjugateGradient.h
│ │ │ │ └── SolveWithGuess.h
│ │ │ │ ├── Jacobi
│ │ │ │ └── Jacobi.h
│ │ │ │ ├── LU
│ │ │ │ ├── Determinant.h
│ │ │ │ ├── FullPivLU.h
│ │ │ │ ├── InverseImpl.h
│ │ │ │ ├── PartialPivLU.h
│ │ │ │ ├── PartialPivLU_MKL.h
│ │ │ │ └── arch
│ │ │ │ │ └── Inverse_SSE.h
│ │ │ │ ├── MetisSupport
│ │ │ │ └── MetisSupport.h
│ │ │ │ ├── OrderingMethods
│ │ │ │ ├── Amd.h
│ │ │ │ ├── Eigen_Colamd.h
│ │ │ │ └── Ordering.h
│ │ │ │ ├── PaStiXSupport
│ │ │ │ └── PaStiXSupport.h
│ │ │ │ ├── PardisoSupport
│ │ │ │ └── PardisoSupport.h
│ │ │ │ ├── QR
│ │ │ │ ├── ColPivHouseholderQR.h
│ │ │ │ ├── ColPivHouseholderQR_MKL.h
│ │ │ │ ├── FullPivHouseholderQR.h
│ │ │ │ ├── HouseholderQR.h
│ │ │ │ └── HouseholderQR_MKL.h
│ │ │ │ ├── SPQRSupport
│ │ │ │ └── SuiteSparseQRSupport.h
│ │ │ │ ├── SVD
│ │ │ │ ├── BDCSVD.h
│ │ │ │ ├── JacobiSVD.h
│ │ │ │ ├── JacobiSVD_MKL.h
│ │ │ │ ├── SVDBase.h
│ │ │ │ └── UpperBidiagonalization.h
│ │ │ │ ├── SparseCholesky
│ │ │ │ ├── SimplicialCholesky.h
│ │ │ │ └── SimplicialCholesky_impl.h
│ │ │ │ ├── SparseCore
│ │ │ │ ├── AmbiVector.h
│ │ │ │ ├── CompressedStorage.h
│ │ │ │ ├── ConservativeSparseSparseProduct.h
│ │ │ │ ├── MappedSparseMatrix.h
│ │ │ │ ├── SparseAssign.h
│ │ │ │ ├── SparseBlock.h
│ │ │ │ ├── SparseColEtree.h
│ │ │ │ ├── SparseCompressedBase.h
│ │ │ │ ├── SparseCwiseBinaryOp.h
│ │ │ │ ├── SparseCwiseUnaryOp.h
│ │ │ │ ├── SparseDenseProduct.h
│ │ │ │ ├── SparseDiagonalProduct.h
│ │ │ │ ├── SparseDot.h
│ │ │ │ ├── SparseFuzzy.h
│ │ │ │ ├── SparseMap.h
│ │ │ │ ├── SparseMatrix.h
│ │ │ │ ├── SparseMatrixBase.h
│ │ │ │ ├── SparsePermutation.h
│ │ │ │ ├── SparseProduct.h
│ │ │ │ ├── SparseRedux.h
│ │ │ │ ├── SparseRef.h
│ │ │ │ ├── SparseSelfAdjointView.h
│ │ │ │ ├── SparseSolverBase.h
│ │ │ │ ├── SparseSparseProductWithPruning.h
│ │ │ │ ├── SparseTranspose.h
│ │ │ │ ├── SparseTriangularView.h
│ │ │ │ ├── SparseUtil.h
│ │ │ │ ├── SparseVector.h
│ │ │ │ ├── SparseView.h
│ │ │ │ └── TriangularSolver.h
│ │ │ │ ├── SparseLU
│ │ │ │ ├── SparseLU.h
│ │ │ │ ├── SparseLUImpl.h
│ │ │ │ ├── SparseLU_Memory.h
│ │ │ │ ├── SparseLU_Structs.h
│ │ │ │ ├── SparseLU_SupernodalMatrix.h
│ │ │ │ ├── SparseLU_Utils.h
│ │ │ │ ├── SparseLU_column_bmod.h
│ │ │ │ ├── SparseLU_column_dfs.h
│ │ │ │ ├── SparseLU_copy_to_ucol.h
│ │ │ │ ├── SparseLU_gemm_kernel.h
│ │ │ │ ├── SparseLU_heap_relax_snode.h
│ │ │ │ ├── SparseLU_kernel_bmod.h
│ │ │ │ ├── SparseLU_panel_bmod.h
│ │ │ │ ├── SparseLU_panel_dfs.h
│ │ │ │ ├── SparseLU_pivotL.h
│ │ │ │ ├── SparseLU_pruneL.h
│ │ │ │ └── SparseLU_relax_snode.h
│ │ │ │ ├── SparseQR
│ │ │ │ └── SparseQR.h
│ │ │ │ ├── StlSupport
│ │ │ │ ├── StdDeque.h
│ │ │ │ ├── StdList.h
│ │ │ │ ├── StdVector.h
│ │ │ │ └── details.h
│ │ │ │ ├── SuperLUSupport
│ │ │ │ └── SuperLUSupport.h
│ │ │ │ ├── UmfPackSupport
│ │ │ │ └── UmfPackSupport.h
│ │ │ │ ├── misc
│ │ │ │ ├── Image.h
│ │ │ │ ├── Kernel.h
│ │ │ │ └── blas.h
│ │ │ │ └── plugins
│ │ │ │ ├── ArrayCwiseBinaryOps.h
│ │ │ │ ├── ArrayCwiseUnaryOps.h
│ │ │ │ ├── BlockMethods.h
│ │ │ │ ├── CommonCwiseBinaryOps.h
│ │ │ │ ├── CommonCwiseUnaryOps.h
│ │ │ │ ├── MatrixCwiseBinaryOps.h
│ │ │ │ └── MatrixCwiseUnaryOps.h
│ │ ├── signature_of_eigen3_matrix_library
│ │ └── unsupported
│ │ │ └── Eigen
│ │ │ ├── AdolcForward
│ │ │ ├── AlignedVector3
│ │ │ ├── ArpackSupport
│ │ │ ├── AutoDiff
│ │ │ ├── BVH
│ │ │ ├── CXX11
│ │ │ ├── Core
│ │ │ ├── Tensor
│ │ │ ├── TensorSymmetry
│ │ │ └── src
│ │ │ │ ├── Core
│ │ │ │ └── util
│ │ │ │ │ ├── CXX11Meta.h
│ │ │ │ │ ├── CXX11Workarounds.h
│ │ │ │ │ ├── EmulateArray.h
│ │ │ │ │ └── EmulateCXX11Meta.h
│ │ │ │ ├── Tensor
│ │ │ │ ├── Tensor.h
│ │ │ │ ├── TensorArgMax.h
│ │ │ │ ├── TensorAssign.h
│ │ │ │ ├── TensorBase.h
│ │ │ │ ├── TensorBroadcasting.h
│ │ │ │ ├── TensorChipping.h
│ │ │ │ ├── TensorConcatenation.h
│ │ │ │ ├── TensorContraction.h
│ │ │ │ ├── TensorContractionCuda.h
│ │ │ │ ├── TensorContractionThreadPool.h
│ │ │ │ ├── TensorConversion.h
│ │ │ │ ├── TensorConvolution.h
│ │ │ │ ├── TensorCustomOp.h
│ │ │ │ ├── TensorDevice.h
│ │ │ │ ├── TensorDeviceCuda.h
│ │ │ │ ├── TensorDeviceDefault.h
│ │ │ │ ├── TensorDeviceThreadPool.h
│ │ │ │ ├── TensorDimensionList.h
│ │ │ │ ├── TensorDimensions.h
│ │ │ │ ├── TensorEvalTo.h
│ │ │ │ ├── TensorEvaluator.h
│ │ │ │ ├── TensorExecutor.h
│ │ │ │ ├── TensorExpr.h
│ │ │ │ ├── TensorFFT.h
│ │ │ │ ├── TensorFixedSize.h
│ │ │ │ ├── TensorForcedEval.h
│ │ │ │ ├── TensorForwardDeclarations.h
│ │ │ │ ├── TensorFunctors.h
│ │ │ │ ├── TensorGenerator.h
│ │ │ │ ├── TensorIO.h
│ │ │ │ ├── TensorImagePatch.h
│ │ │ │ ├── TensorIndexList.h
│ │ │ │ ├── TensorInflation.h
│ │ │ │ ├── TensorInitializer.h
│ │ │ │ ├── TensorIntDiv.h
│ │ │ │ ├── TensorLayoutSwap.h
│ │ │ │ ├── TensorMacros.h
│ │ │ │ ├── TensorMap.h
│ │ │ │ ├── TensorMeta.h
│ │ │ │ ├── TensorMorphing.h
│ │ │ │ ├── TensorPadding.h
│ │ │ │ ├── TensorPatch.h
│ │ │ │ ├── TensorReduction.h
│ │ │ │ ├── TensorReductionCuda.h
│ │ │ │ ├── TensorRef.h
│ │ │ │ ├── TensorReverse.h
│ │ │ │ ├── TensorShuffling.h
│ │ │ │ ├── TensorStorage.h
│ │ │ │ ├── TensorStriding.h
│ │ │ │ ├── TensorTraits.h
│ │ │ │ ├── TensorUInt128.h
│ │ │ │ └── TensorVolumePatch.h
│ │ │ │ └── TensorSymmetry
│ │ │ │ ├── DynamicSymmetry.h
│ │ │ │ ├── StaticSymmetry.h
│ │ │ │ ├── Symmetry.h
│ │ │ │ └── util
│ │ │ │ └── TemplateGroupTheory.h
│ │ │ ├── FFT
│ │ │ ├── IterativeSolvers
│ │ │ ├── KroneckerProduct
│ │ │ ├── LevenbergMarquardt
│ │ │ ├── MPRealSupport
│ │ │ ├── MatrixFunctions
│ │ │ ├── MoreVectorization
│ │ │ ├── NonLinearOptimization
│ │ │ ├── NumericalDiff
│ │ │ ├── OpenGLSupport
│ │ │ ├── Polynomials
│ │ │ ├── Skyline
│ │ │ ├── SparseExtra
│ │ │ ├── Splines
│ │ │ └── src
│ │ │ ├── AutoDiff
│ │ │ ├── AutoDiffJacobian.h
│ │ │ ├── AutoDiffScalar.h
│ │ │ └── AutoDiffVector.h
│ │ │ ├── BVH
│ │ │ ├── BVAlgorithms.h
│ │ │ └── KdBVH.h
│ │ │ ├── Eigenvalues
│ │ │ └── ArpackSelfAdjointEigenSolver.h
│ │ │ ├── FFT
│ │ │ ├── ei_fftw_impl.h
│ │ │ └── ei_kissfft_impl.h
│ │ │ ├── IterativeSolvers
│ │ │ ├── ConstrainedConjGrad.h
│ │ │ ├── DGMRES.h
│ │ │ ├── GMRES.h
│ │ │ ├── IncompleteLU.h
│ │ │ ├── IterationController.h
│ │ │ ├── MINRES.h
│ │ │ └── Scaling.h
│ │ │ ├── KroneckerProduct
│ │ │ └── KroneckerTensorProduct.h
│ │ │ ├── LevenbergMarquardt
│ │ │ ├── LMcovar.h
│ │ │ ├── LMonestep.h
│ │ │ ├── LMpar.h
│ │ │ ├── LMqrsolv.h
│ │ │ └── LevenbergMarquardt.h
│ │ │ ├── MatrixFunctions
│ │ │ ├── MatrixExponential.h
│ │ │ ├── MatrixFunction.h
│ │ │ ├── MatrixLogarithm.h
│ │ │ ├── MatrixPower.h
│ │ │ ├── MatrixSquareRoot.h
│ │ │ └── StemFunction.h
│ │ │ ├── MoreVectorization
│ │ │ └── MathFunctions.h
│ │ │ ├── NonLinearOptimization
│ │ │ ├── HybridNonLinearSolver.h
│ │ │ ├── LevenbergMarquardt.h
│ │ │ ├── chkder.h
│ │ │ ├── covar.h
│ │ │ ├── dogleg.h
│ │ │ ├── fdjac1.h
│ │ │ ├── lmpar.h
│ │ │ ├── qrsolv.h
│ │ │ ├── r1mpyq.h
│ │ │ ├── r1updt.h
│ │ │ └── rwupdt.h
│ │ │ ├── NumericalDiff
│ │ │ └── NumericalDiff.h
│ │ │ ├── Polynomials
│ │ │ ├── Companion.h
│ │ │ ├── PolynomialSolver.h
│ │ │ └── PolynomialUtils.h
│ │ │ ├── Skyline
│ │ │ ├── SkylineInplaceLU.h
│ │ │ ├── SkylineMatrix.h
│ │ │ ├── SkylineMatrixBase.h
│ │ │ ├── SkylineProduct.h
│ │ │ ├── SkylineStorage.h
│ │ │ └── SkylineUtil.h
│ │ │ ├── SparseExtra
│ │ │ ├── BlockOfDynamicSparseMatrix.h
│ │ │ ├── BlockSparseMatrix.h
│ │ │ ├── DynamicSparseMatrix.h
│ │ │ ├── MarketIO.h
│ │ │ ├── MatrixMarketIterator.h
│ │ │ └── RandomSetter.h
│ │ │ └── Splines
│ │ │ ├── Spline.h
│ │ │ ├── SplineFitting.h
│ │ │ └── SplineFwd.h
│ ├── osgModeling
│ │ ├── Algorithm
│ │ ├── Bezier
│ │ ├── BoolOperator
│ │ ├── BspTree
│ │ ├── Curve
│ │ ├── Export
│ │ ├── Extrude
│ │ ├── Helix
│ │ ├── Lathe
│ │ ├── Loft
│ │ ├── Model
│ │ ├── ModelVisitor
│ │ ├── NormalVisitor
│ │ ├── Nurbs
│ │ ├── PolyMesh
│ │ ├── Subdivision
│ │ ├── TexCoordVisitor
│ │ └── Utilities
│ └── pcl-1.8
│ │ └── pcl
│ │ ├── 2d
│ │ ├── convolution.h
│ │ ├── edge.h
│ │ ├── impl
│ │ │ ├── convolution.hpp
│ │ │ ├── edge.hpp
│ │ │ └── morphology.hpp
│ │ ├── kernel.h
│ │ └── morphology.h
│ │ ├── ModelCoefficients.h
│ │ ├── PCLHeader.h
│ │ ├── PCLImage.h
│ │ ├── PCLPointCloud2.h
│ │ ├── PCLPointField.h
│ │ ├── PointIndices.h
│ │ ├── PolygonMesh.h
│ │ ├── TextureMesh.h
│ │ ├── Vertices.h
│ │ ├── cloud_iterator.h
│ │ ├── common
│ │ ├── angles.h
│ │ ├── bivariate_polynomial.h
│ │ ├── boost.h
│ │ ├── centroid.h
│ │ ├── colors.h
│ │ ├── common.h
│ │ ├── common_headers.h
│ │ ├── concatenate.h
│ │ ├── copy_point.h
│ │ ├── distances.h
│ │ ├── eigen.h
│ │ ├── feature_histogram.h
│ │ ├── fft
│ │ │ ├── _kiss_fft_guts.h
│ │ │ ├── kiss_fft.h
│ │ │ └── kiss_fftr.h
│ │ ├── file_io.h
│ │ ├── gaussian.h
│ │ ├── generate.h
│ │ ├── geometry.h
│ │ ├── impl
│ │ │ ├── accumulators.hpp
│ │ │ ├── angles.hpp
│ │ │ ├── bivariate_polynomial.hpp
│ │ │ ├── centroid.hpp
│ │ │ ├── common.hpp
│ │ │ ├── copy_point.hpp
│ │ │ ├── eigen.hpp
│ │ │ ├── file_io.hpp
│ │ │ ├── gaussian.hpp
│ │ │ ├── generate.hpp
│ │ │ ├── intensity.hpp
│ │ │ ├── intersections.hpp
│ │ │ ├── io.hpp
│ │ │ ├── norms.hpp
│ │ │ ├── pca.hpp
│ │ │ ├── piecewise_linear_function.hpp
│ │ │ ├── polynomial_calculations.hpp
│ │ │ ├── projection_matrix.hpp
│ │ │ ├── random.hpp
│ │ │ ├── spring.hpp
│ │ │ ├── transformation_from_correspondences.hpp
│ │ │ ├── transforms.hpp
│ │ │ └── vector_average.hpp
│ │ ├── intensity.h
│ │ ├── intersections.h
│ │ ├── io.h
│ │ ├── norms.h
│ │ ├── pca.h
│ │ ├── piecewise_linear_function.h
│ │ ├── point_operators.h
│ │ ├── point_tests.h
│ │ ├── polynomial_calculations.h
│ │ ├── poses_from_matches.h
│ │ ├── projection_matrix.h
│ │ ├── random.h
│ │ ├── spring.h
│ │ ├── synchronizer.h
│ │ ├── time.h
│ │ ├── time_trigger.h
│ │ ├── transformation_from_correspondences.h
│ │ ├── transforms.h
│ │ ├── utils.h
│ │ └── vector_average.h
│ │ ├── compression
│ │ ├── color_coding.h
│ │ ├── compression_profiles.h
│ │ ├── entropy_range_coder.h
│ │ ├── libpng_wrapper.h
│ │ ├── octree_pointcloud_compression.h
│ │ ├── organized_pointcloud_conversion.h
│ │ └── point_coding.h
│ │ ├── console
│ │ ├── parse.h
│ │ ├── print.h
│ │ └── time.h
│ │ ├── conversions.h
│ │ ├── correspondence.h
│ │ ├── exceptions.h
│ │ ├── features
│ │ ├── 3dsc.h
│ │ ├── board.h
│ │ ├── boost.h
│ │ ├── boundary.h
│ │ ├── brisk_2d.h
│ │ ├── cppf.h
│ │ ├── crh.h
│ │ ├── cvfh.h
│ │ ├── don.h
│ │ ├── eigen.h
│ │ ├── esf.h
│ │ ├── feature.h
│ │ ├── fpfh.h
│ │ ├── fpfh_omp.h
│ │ ├── from_meshes.h
│ │ ├── gfpfh.h
│ │ ├── grsd.h
│ │ ├── impl
│ │ │ ├── 3dsc.hpp
│ │ │ ├── board.hpp
│ │ │ ├── boundary.hpp
│ │ │ ├── brisk_2d.hpp
│ │ │ ├── cppf.hpp
│ │ │ ├── crh.hpp
│ │ │ ├── cvfh.hpp
│ │ │ ├── don.hpp
│ │ │ ├── esf.hpp
│ │ │ ├── feature.hpp
│ │ │ ├── fpfh.hpp
│ │ │ ├── fpfh_omp.hpp
│ │ │ ├── gfpfh.hpp
│ │ │ ├── grsd.hpp
│ │ │ ├── integral_image2D.hpp
│ │ │ ├── integral_image_normal.hpp
│ │ │ ├── intensity_gradient.hpp
│ │ │ ├── intensity_spin.hpp
│ │ │ ├── linear_least_squares_normal.hpp
│ │ │ ├── moment_invariants.hpp
│ │ │ ├── moment_of_inertia_estimation.hpp
│ │ │ ├── multiscale_feature_persistence.hpp
│ │ │ ├── narf.hpp
│ │ │ ├── normal_3d.hpp
│ │ │ ├── normal_3d_omp.hpp
│ │ │ ├── normal_based_signature.hpp
│ │ │ ├── organized_edge_detection.hpp
│ │ │ ├── our_cvfh.hpp
│ │ │ ├── pfh.hpp
│ │ │ ├── pfhrgb.hpp
│ │ │ ├── ppf.hpp
│ │ │ ├── ppfrgb.hpp
│ │ │ ├── principal_curvatures.hpp
│ │ │ ├── range_image_border_extractor.hpp
│ │ │ ├── rift.hpp
│ │ │ ├── rops_estimation.hpp
│ │ │ ├── rsd.hpp
│ │ │ ├── shot.hpp
│ │ │ ├── shot_lrf.hpp
│ │ │ ├── shot_lrf_omp.hpp
│ │ │ ├── shot_omp.hpp
│ │ │ ├── spin_image.hpp
│ │ │ ├── statistical_multiscale_interest_region_extraction.hpp
│ │ │ ├── usc.hpp
│ │ │ └── vfh.hpp
│ │ ├── integral_image2D.h
│ │ ├── integral_image_normal.h
│ │ ├── intensity_gradient.h
│ │ ├── intensity_spin.h
│ │ ├── linear_least_squares_normal.h
│ │ ├── moment_invariants.h
│ │ ├── moment_of_inertia_estimation.h
│ │ ├── multiscale_feature_persistence.h
│ │ ├── narf.h
│ │ ├── narf_descriptor.h
│ │ ├── normal_3d.h
│ │ ├── normal_3d_omp.h
│ │ ├── normal_based_signature.h
│ │ ├── organized_edge_detection.h
│ │ ├── our_cvfh.h
│ │ ├── pfh.h
│ │ ├── pfh_tools.h
│ │ ├── pfhrgb.h
│ │ ├── ppf.h
│ │ ├── ppfrgb.h
│ │ ├── principal_curvatures.h
│ │ ├── range_image_border_extractor.h
│ │ ├── rift.h
│ │ ├── rops_estimation.h
│ │ ├── rsd.h
│ │ ├── shot.h
│ │ ├── shot_lrf.h
│ │ ├── shot_lrf_omp.h
│ │ ├── shot_omp.h
│ │ ├── spin_image.h
│ │ ├── statistical_multiscale_interest_region_extraction.h
│ │ ├── usc.h
│ │ └── vfh.h
│ │ ├── filters
│ │ ├── approximate_voxel_grid.h
│ │ ├── bilateral.h
│ │ ├── boost.h
│ │ ├── box_clipper3D.h
│ │ ├── clipper3D.h
│ │ ├── conditional_removal.h
│ │ ├── convolution.h
│ │ ├── convolution_3d.h
│ │ ├── covariance_sampling.h
│ │ ├── crop_box.h
│ │ ├── crop_hull.h
│ │ ├── extract_indices.h
│ │ ├── fast_bilateral.h
│ │ ├── fast_bilateral_omp.h
│ │ ├── filter.h
│ │ ├── filter_indices.h
│ │ ├── frustum_culling.h
│ │ ├── grid_minimum.h
│ │ ├── impl
│ │ │ ├── approximate_voxel_grid.hpp
│ │ │ ├── bilateral.hpp
│ │ │ ├── box_clipper3D.hpp
│ │ │ ├── conditional_removal.hpp
│ │ │ ├── convolution.hpp
│ │ │ ├── convolution_3d.hpp
│ │ │ ├── covariance_sampling.hpp
│ │ │ ├── crop_box.hpp
│ │ │ ├── crop_hull.hpp
│ │ │ ├── extract_indices.hpp
│ │ │ ├── fast_bilateral.hpp
│ │ │ ├── fast_bilateral_omp.hpp
│ │ │ ├── filter.hpp
│ │ │ ├── filter_indices.hpp
│ │ │ ├── frustum_culling.hpp
│ │ │ ├── grid_minimum.hpp
│ │ │ ├── local_maximum.hpp
│ │ │ ├── median_filter.hpp
│ │ │ ├── model_outlier_removal.hpp
│ │ │ ├── morphological_filter.hpp
│ │ │ ├── normal_refinement.hpp
│ │ │ ├── normal_space.hpp
│ │ │ ├── passthrough.hpp
│ │ │ ├── plane_clipper3D.hpp
│ │ │ ├── project_inliers.hpp
│ │ │ ├── radius_outlier_removal.hpp
│ │ │ ├── random_sample.hpp
│ │ │ ├── sampling_surface_normal.hpp
│ │ │ ├── shadowpoints.hpp
│ │ │ ├── statistical_outlier_removal.hpp
│ │ │ ├── uniform_sampling.hpp
│ │ │ ├── voxel_grid.hpp
│ │ │ ├── voxel_grid_covariance.hpp
│ │ │ └── voxel_grid_occlusion_estimation.hpp
│ │ ├── local_maximum.h
│ │ ├── median_filter.h
│ │ ├── model_outlier_removal.h
│ │ ├── morphological_filter.h
│ │ ├── normal_refinement.h
│ │ ├── normal_space.h
│ │ ├── passthrough.h
│ │ ├── plane_clipper3D.h
│ │ ├── project_inliers.h
│ │ ├── radius_outlier_removal.h
│ │ ├── random_sample.h
│ │ ├── sampling_surface_normal.h
│ │ ├── shadowpoints.h
│ │ ├── statistical_outlier_removal.h
│ │ ├── uniform_sampling.h
│ │ ├── voxel_grid.h
│ │ ├── voxel_grid_covariance.h
│ │ ├── voxel_grid_label.h
│ │ └── voxel_grid_occlusion_estimation.h
│ │ ├── for_each_type.h
│ │ ├── geometry
│ │ ├── boost.h
│ │ ├── eigen.h
│ │ ├── get_boundary.h
│ │ ├── impl
│ │ │ └── polygon_operations.hpp
│ │ ├── line_iterator.h
│ │ ├── mesh_base.h
│ │ ├── mesh_circulators.h
│ │ ├── mesh_conversion.h
│ │ ├── mesh_elements.h
│ │ ├── mesh_indices.h
│ │ ├── mesh_io.h
│ │ ├── mesh_traits.h
│ │ ├── organized_index_iterator.h
│ │ ├── planar_polygon.h
│ │ ├── polygon_mesh.h
│ │ ├── polygon_operations.h
│ │ ├── quad_mesh.h
│ │ └── triangle_mesh.h
│ │ ├── impl
│ │ ├── cloud_iterator.hpp
│ │ ├── instantiate.hpp
│ │ ├── pcl_base.hpp
│ │ └── point_types.hpp
│ │ ├── io
│ │ ├── ascii_io.h
│ │ ├── auto_io.h
│ │ ├── boost.h
│ │ ├── debayer.h
│ │ ├── dinast_grabber.h
│ │ ├── eigen.h
│ │ ├── file_grabber.h
│ │ ├── file_io.h
│ │ ├── grabber.h
│ │ ├── hdl_grabber.h
│ │ ├── ifs_io.h
│ │ ├── image_grabber.h
│ │ ├── impl
│ │ │ ├── ascii_io.hpp
│ │ │ ├── auto_io.hpp
│ │ │ ├── entropy_range_coder.hpp
│ │ │ ├── lzf_image_io.hpp
│ │ │ ├── octree_pointcloud_compression.hpp
│ │ │ ├── pcd_io.hpp
│ │ │ ├── point_cloud_image_extractors.hpp
│ │ │ └── synchronized_queue.hpp
│ │ ├── io.h
│ │ ├── io_exception.h
│ │ ├── lzf.h
│ │ ├── lzf_image_io.h
│ │ ├── obj_io.h
│ │ ├── pcd_grabber.h
│ │ ├── pcd_io.h
│ │ ├── ply
│ │ │ ├── byte_order.h
│ │ │ ├── io_operators.h
│ │ │ ├── ply.h
│ │ │ └── ply_parser.h
│ │ ├── ply_io.h
│ │ ├── point_cloud_image_extractors.h
│ │ ├── pxc_grabber.h
│ │ ├── robot_eye_grabber.h
│ │ ├── tar.h
│ │ ├── vlp_grabber.h
│ │ └── vtk_io.h
│ │ ├── kdtree
│ │ ├── flann.h
│ │ ├── impl
│ │ │ ├── io.hpp
│ │ │ └── kdtree_flann.hpp
│ │ ├── io.h
│ │ ├── kdtree.h
│ │ └── kdtree_flann.h
│ │ ├── keypoints
│ │ ├── agast_2d.h
│ │ ├── brisk_2d.h
│ │ ├── harris_2d.h
│ │ ├── harris_3d.h
│ │ ├── harris_6d.h
│ │ ├── impl
│ │ │ ├── agast_2d.hpp
│ │ │ ├── brisk_2d.hpp
│ │ │ ├── harris_2d.hpp
│ │ │ ├── harris_3d.hpp
│ │ │ ├── harris_6d.hpp
│ │ │ ├── iss_3d.hpp
│ │ │ ├── keypoint.hpp
│ │ │ ├── sift_keypoint.hpp
│ │ │ ├── smoothed_surfaces_keypoint.hpp
│ │ │ └── susan.hpp
│ │ ├── iss_3d.h
│ │ ├── keypoint.h
│ │ ├── narf_keypoint.h
│ │ ├── sift_keypoint.h
│ │ ├── smoothed_surfaces_keypoint.h
│ │ ├── susan.h
│ │ └── uniform_sampling.h
│ │ ├── ml
│ │ ├── branch_estimator.h
│ │ ├── decision_forest.h
│ │ ├── decision_forest_evaluator.h
│ │ ├── decision_forest_trainer.h
│ │ ├── decision_tree.h
│ │ ├── decision_tree_data_provider.h
│ │ ├── decision_tree_evaluator.h
│ │ ├── decision_tree_trainer.h
│ │ ├── densecrf.h
│ │ ├── feature_handler.h
│ │ ├── fern.h
│ │ ├── fern_evaluator.h
│ │ ├── fern_trainer.h
│ │ ├── kmeans.h
│ │ ├── multi_channel_2d_comparison_feature.h
│ │ ├── multi_channel_2d_comparison_feature_handler.h
│ │ ├── multi_channel_2d_data_set.h
│ │ ├── multiple_data_2d_example_index.h
│ │ ├── pairwise_potential.h
│ │ ├── permutohedral.h
│ │ ├── point_xy_32f.h
│ │ ├── point_xy_32i.h
│ │ ├── regression_variance_stats_estimator.h
│ │ ├── stats_estimator.h
│ │ ├── svm.h
│ │ └── svm_wrapper.h
│ │ ├── octree
│ │ ├── boost.h
│ │ ├── impl
│ │ │ ├── octree2buf_base.hpp
│ │ │ ├── octree_base.hpp
│ │ │ ├── octree_iterator.hpp
│ │ │ ├── octree_pointcloud.hpp
│ │ │ ├── octree_pointcloud_adjacency.hpp
│ │ │ ├── octree_pointcloud_voxelcentroid.hpp
│ │ │ └── octree_search.hpp
│ │ ├── octree.h
│ │ ├── octree2buf_base.h
│ │ ├── octree_base.h
│ │ ├── octree_container.h
│ │ ├── octree_impl.h
│ │ ├── octree_iterator.h
│ │ ├── octree_key.h
│ │ ├── octree_nodes.h
│ │ ├── octree_pointcloud.h
│ │ ├── octree_pointcloud_adjacency.h
│ │ ├── octree_pointcloud_adjacency_container.h
│ │ ├── octree_pointcloud_changedetector.h
│ │ ├── octree_pointcloud_density.h
│ │ ├── octree_pointcloud_occupancy.h
│ │ ├── octree_pointcloud_pointvector.h
│ │ ├── octree_pointcloud_singlepoint.h
│ │ ├── octree_pointcloud_voxelcentroid.h
│ │ └── octree_search.h
│ │ ├── pcl_base.h
│ │ ├── pcl_config.h
│ │ ├── pcl_exports.h
│ │ ├── pcl_macros.h
│ │ ├── pcl_tests.h
│ │ ├── point_cloud.h
│ │ ├── point_representation.h
│ │ ├── point_traits.h
│ │ ├── point_types.h
│ │ ├── point_types_conversion.h
│ │ ├── range_image
│ │ ├── bearing_angle_image.h
│ │ ├── impl
│ │ │ ├── range_image.hpp
│ │ │ ├── range_image_planar.hpp
│ │ │ └── range_image_spherical.hpp
│ │ ├── range_image.h
│ │ ├── range_image_planar.h
│ │ └── range_image_spherical.h
│ │ ├── recognition
│ │ ├── 3rdparty
│ │ │ └── metslib
│ │ │ │ ├── abstract-search.hh
│ │ │ │ ├── local-search.hh
│ │ │ │ ├── mets.hh
│ │ │ │ ├── metslib_config.hh
│ │ │ │ ├── model.hh
│ │ │ │ ├── observer.hh
│ │ │ │ ├── simulated-annealing.hh
│ │ │ │ ├── tabu-search.hh
│ │ │ │ └── termination-criteria.hh
│ │ ├── auxiliary.h
│ │ ├── boost.h
│ │ ├── bvh.h
│ │ ├── cg
│ │ │ ├── correspondence_grouping.h
│ │ │ ├── geometric_consistency.h
│ │ │ └── hough_3d.h
│ │ ├── color_gradient_dot_modality.h
│ │ ├── color_gradient_modality.h
│ │ ├── color_modality.h
│ │ ├── crh_alignment.h
│ │ ├── dense_quantized_multi_mod_template.h
│ │ ├── distance_map.h
│ │ ├── dot_modality.h
│ │ ├── dotmod.h
│ │ ├── face_detection
│ │ │ ├── face_common.h
│ │ │ ├── face_detector_data_provider.h
│ │ │ ├── rf_face_detector_trainer.h
│ │ │ └── rf_face_utils.h
│ │ ├── hv
│ │ │ ├── greedy_verification.h
│ │ │ ├── hv_go.h
│ │ │ ├── hv_papazov.h
│ │ │ ├── hypotheses_verification.h
│ │ │ └── occlusion_reasoning.h
│ │ ├── hypothesis.h
│ │ ├── impl
│ │ │ ├── cg
│ │ │ │ ├── correspondence_grouping.hpp
│ │ │ │ ├── geometric_consistency.hpp
│ │ │ │ └── hough_3d.hpp
│ │ │ ├── hv
│ │ │ │ ├── greedy_verification.hpp
│ │ │ │ ├── hv_go.hpp
│ │ │ │ ├── hv_papazov.hpp
│ │ │ │ └── occlusion_reasoning.hpp
│ │ │ ├── implicit_shape_model.hpp
│ │ │ ├── line_rgbd.hpp
│ │ │ ├── linemod
│ │ │ │ └── line_rgbd.hpp
│ │ │ ├── ransac_based
│ │ │ │ ├── simple_octree.hpp
│ │ │ │ └── voxel_structure.hpp
│ │ │ ├── simple_octree.hpp
│ │ │ └── voxel_structure.hpp
│ │ ├── implicit_shape_model.h
│ │ ├── line_rgbd.h
│ │ ├── linemod.h
│ │ ├── linemod
│ │ │ └── line_rgbd.h
│ │ ├── mask_map.h
│ │ ├── model_library.h
│ │ ├── obj_rec_ransac.h
│ │ ├── orr_graph.h
│ │ ├── orr_octree.h
│ │ ├── orr_octree_zprojection.h
│ │ ├── point_types.h
│ │ ├── quantizable_modality.h
│ │ ├── quantized_map.h
│ │ ├── ransac_based
│ │ │ ├── auxiliary.h
│ │ │ ├── bvh.h
│ │ │ ├── hypothesis.h
│ │ │ ├── model_library.h
│ │ │ ├── obj_rec_ransac.h
│ │ │ ├── orr_graph.h
│ │ │ ├── orr_octree.h
│ │ │ ├── orr_octree_zprojection.h
│ │ │ ├── rigid_transform_space.h
│ │ │ ├── simple_octree.h
│ │ │ ├── trimmed_icp.h
│ │ │ └── voxel_structure.h
│ │ ├── region_xy.h
│ │ ├── rigid_transform_space.h
│ │ ├── simple_octree.h
│ │ ├── sparse_quantized_multi_mod_template.h
│ │ ├── surface_normal_modality.h
│ │ ├── trimmed_icp.h
│ │ └── voxel_structure.h
│ │ ├── register_point_struct.h
│ │ ├── registration
│ │ ├── bfgs.h
│ │ ├── boost.h
│ │ ├── boost_graph.h
│ │ ├── convergence_criteria.h
│ │ ├── correspondence_estimation.h
│ │ ├── correspondence_estimation_backprojection.h
│ │ ├── correspondence_estimation_normal_shooting.h
│ │ ├── correspondence_estimation_organized_projection.h
│ │ ├── correspondence_rejection.h
│ │ ├── correspondence_rejection_distance.h
│ │ ├── correspondence_rejection_features.h
│ │ ├── correspondence_rejection_median_distance.h
│ │ ├── correspondence_rejection_one_to_one.h
│ │ ├── correspondence_rejection_organized_boundary.h
│ │ ├── correspondence_rejection_poly.h
│ │ ├── correspondence_rejection_sample_consensus.h
│ │ ├── correspondence_rejection_sample_consensus_2d.h
│ │ ├── correspondence_rejection_surface_normal.h
│ │ ├── correspondence_rejection_trimmed.h
│ │ ├── correspondence_rejection_var_trimmed.h
│ │ ├── correspondence_sorting.h
│ │ ├── correspondence_types.h
│ │ ├── default_convergence_criteria.h
│ │ ├── distances.h
│ │ ├── eigen.h
│ │ ├── elch.h
│ │ ├── exceptions.h
│ │ ├── gicp.h
│ │ ├── gicp6d.h
│ │ ├── ia_fpcs.h
│ │ ├── ia_kfpcs.h
│ │ ├── ia_ransac.h
│ │ ├── icp.h
│ │ ├── icp_nl.h
│ │ ├── impl
│ │ │ ├── correspondence_estimation.hpp
│ │ │ ├── correspondence_estimation_backprojection.hpp
│ │ │ ├── correspondence_estimation_normal_shooting.hpp
│ │ │ ├── correspondence_estimation_organized_projection.hpp
│ │ │ ├── correspondence_rejection.hpp
│ │ │ ├── correspondence_rejection_distance.hpp
│ │ │ ├── correspondence_rejection_features.hpp
│ │ │ ├── correspondence_rejection_median_distance.hpp
│ │ │ ├── correspondence_rejection_one_to_one.hpp
│ │ │ ├── correspondence_rejection_organized_boundary.hpp
│ │ │ ├── correspondence_rejection_poly.hpp
│ │ │ ├── correspondence_rejection_sample_consensus.hpp
│ │ │ ├── correspondence_rejection_sample_consensus_2d.hpp
│ │ │ ├── correspondence_rejection_surface_normal.hpp
│ │ │ ├── correspondence_rejection_trimmed.hpp
│ │ │ ├── correspondence_rejection_var_trimmed.hpp
│ │ │ ├── correspondence_types.hpp
│ │ │ ├── default_convergence_criteria.hpp
│ │ │ ├── elch.hpp
│ │ │ ├── gicp.hpp
│ │ │ ├── ia_fpcs.hpp
│ │ │ ├── ia_kfpcs.hpp
│ │ │ ├── ia_ransac.hpp
│ │ │ ├── icp.hpp
│ │ │ ├── icp_nl.hpp
│ │ │ ├── incremental_registration.hpp
│ │ │ ├── joint_icp.hpp
│ │ │ ├── lum.hpp
│ │ │ ├── meta_registration.hpp
│ │ │ ├── ndt.hpp
│ │ │ ├── ndt_2d.hpp
│ │ │ ├── ppf_registration.hpp
│ │ │ ├── pyramid_feature_matching.hpp
│ │ │ ├── registration.hpp
│ │ │ ├── sample_consensus_prerejective.hpp
│ │ │ ├── transformation_estimation_2D.hpp
│ │ │ ├── transformation_estimation_3point.hpp
│ │ │ ├── transformation_estimation_dual_quaternion.hpp
│ │ │ ├── transformation_estimation_lm.hpp
│ │ │ ├── transformation_estimation_point_to_plane_lls.hpp
│ │ │ ├── transformation_estimation_point_to_plane_lls_weighted.hpp
│ │ │ ├── transformation_estimation_point_to_plane_weighted.hpp
│ │ │ ├── transformation_estimation_svd.hpp
│ │ │ ├── transformation_estimation_svd_scale.hpp
│ │ │ └── transformation_validation_euclidean.hpp
│ │ ├── incremental_registration.h
│ │ ├── joint_icp.h
│ │ ├── lum.h
│ │ ├── matching_candidate.h
│ │ ├── meta_registration.h
│ │ ├── ndt.h
│ │ ├── ndt_2d.h
│ │ ├── pairwise_graph_registration.hpp
│ │ ├── ppf_registration.h
│ │ ├── pyramid_feature_matching.h
│ │ ├── registration.h
│ │ ├── sample_consensus_prerejective.h
│ │ ├── transformation_estimation.h
│ │ ├── transformation_estimation_2D.h
│ │ ├── transformation_estimation_3point.h
│ │ ├── transformation_estimation_dual_quaternion.h
│ │ ├── transformation_estimation_lm.h
│ │ ├── transformation_estimation_point_to_plane.h
│ │ ├── transformation_estimation_point_to_plane_lls.h
│ │ ├── transformation_estimation_point_to_plane_lls_weighted.h
│ │ ├── transformation_estimation_point_to_plane_weighted.h
│ │ ├── transformation_estimation_svd.h
│ │ ├── transformation_estimation_svd_scale.h
│ │ ├── transformation_validation.h
│ │ ├── transformation_validation_euclidean.h
│ │ ├── transforms.h
│ │ ├── warp_point_rigid.h
│ │ ├── warp_point_rigid_3d.h
│ │ └── warp_point_rigid_6d.h
│ │ ├── ros
│ │ ├── conversions.h
│ │ └── register_point_struct.h
│ │ ├── sample_consensus
│ │ ├── boost.h
│ │ ├── eigen.h
│ │ ├── impl
│ │ │ ├── lmeds.hpp
│ │ │ ├── mlesac.hpp
│ │ │ ├── msac.hpp
│ │ │ ├── prosac.hpp
│ │ │ ├── ransac.hpp
│ │ │ ├── rmsac.hpp
│ │ │ ├── rransac.hpp
│ │ │ ├── sac_model_circle.hpp
│ │ │ ├── sac_model_circle3d.hpp
│ │ │ ├── sac_model_cone.hpp
│ │ │ ├── sac_model_cylinder.hpp
│ │ │ ├── sac_model_line.hpp
│ │ │ ├── sac_model_normal_parallel_plane.hpp
│ │ │ ├── sac_model_normal_plane.hpp
│ │ │ ├── sac_model_normal_sphere.hpp
│ │ │ ├── sac_model_parallel_line.hpp
│ │ │ ├── sac_model_parallel_plane.hpp
│ │ │ ├── sac_model_perpendicular_plane.hpp
│ │ │ ├── sac_model_plane.hpp
│ │ │ ├── sac_model_registration.hpp
│ │ │ ├── sac_model_registration_2d.hpp
│ │ │ ├── sac_model_sphere.hpp
│ │ │ └── sac_model_stick.hpp
│ │ ├── lmeds.h
│ │ ├── method_types.h
│ │ ├── mlesac.h
│ │ ├── model_types.h
│ │ ├── msac.h
│ │ ├── prosac.h
│ │ ├── ransac.h
│ │ ├── rmsac.h
│ │ ├── rransac.h
│ │ ├── sac.h
│ │ ├── sac_model.h
│ │ ├── sac_model_circle.h
│ │ ├── sac_model_circle3d.h
│ │ ├── sac_model_cone.h
│ │ ├── sac_model_cylinder.h
│ │ ├── sac_model_line.h
│ │ ├── sac_model_normal_parallel_plane.h
│ │ ├── sac_model_normal_plane.h
│ │ ├── sac_model_normal_sphere.h
│ │ ├── sac_model_parallel_line.h
│ │ ├── sac_model_parallel_plane.h
│ │ ├── sac_model_perpendicular_plane.h
│ │ ├── sac_model_plane.h
│ │ ├── sac_model_registration.h
│ │ ├── sac_model_registration_2d.h
│ │ ├── sac_model_sphere.h
│ │ └── sac_model_stick.h
│ │ ├── search
│ │ ├── brute_force.h
│ │ ├── flann_search.h
│ │ ├── impl
│ │ │ ├── brute_force.hpp
│ │ │ ├── flann_search.hpp
│ │ │ ├── kdtree.hpp
│ │ │ ├── organized.hpp
│ │ │ └── search.hpp
│ │ ├── kdtree.h
│ │ ├── octree.h
│ │ ├── organized.h
│ │ ├── pcl_search.h
│ │ └── search.h
│ │ ├── segmentation
│ │ ├── approximate_progressive_morphological_filter.h
│ │ ├── boost.h
│ │ ├── comparator.h
│ │ ├── conditional_euclidean_clustering.h
│ │ ├── cpc_segmentation.h
│ │ ├── crf_normal_segmentation.h
│ │ ├── crf_segmentation.h
│ │ ├── edge_aware_plane_comparator.h
│ │ ├── euclidean_cluster_comparator.h
│ │ ├── euclidean_plane_coefficient_comparator.h
│ │ ├── extract_clusters.h
│ │ ├── extract_labeled_clusters.h
│ │ ├── extract_polygonal_prism_data.h
│ │ ├── grabcut_segmentation.h
│ │ ├── ground_plane_comparator.h
│ │ ├── impl
│ │ │ ├── approximate_progressive_morphological_filter.hpp
│ │ │ ├── conditional_euclidean_clustering.hpp
│ │ │ ├── cpc_segmentation.hpp
│ │ │ ├── crf_normal_segmentation.hpp
│ │ │ ├── crf_segmentation.hpp
│ │ │ ├── extract_clusters.hpp
│ │ │ ├── extract_labeled_clusters.hpp
│ │ │ ├── extract_polygonal_prism_data.hpp
│ │ │ ├── grabcut_segmentation.hpp
│ │ │ ├── lccp_segmentation.hpp
│ │ │ ├── min_cut_segmentation.hpp
│ │ │ ├── organized_connected_component_segmentation.hpp
│ │ │ ├── organized_multi_plane_segmentation.hpp
│ │ │ ├── planar_polygon_fusion.hpp
│ │ │ ├── progressive_morphological_filter.hpp
│ │ │ ├── random_walker.hpp
│ │ │ ├── region_growing.hpp
│ │ │ ├── region_growing_rgb.hpp
│ │ │ ├── sac_segmentation.hpp
│ │ │ ├── seeded_hue_segmentation.hpp
│ │ │ ├── segment_differences.hpp
│ │ │ ├── supervoxel_clustering.hpp
│ │ │ └── unary_classifier.hpp
│ │ ├── lccp_segmentation.h
│ │ ├── min_cut_segmentation.h
│ │ ├── organized_connected_component_segmentation.h
│ │ ├── organized_multi_plane_segmentation.h
│ │ ├── planar_polygon_fusion.h
│ │ ├── planar_region.h
│ │ ├── plane_coefficient_comparator.h
│ │ ├── plane_refinement_comparator.h
│ │ ├── progressive_morphological_filter.h
│ │ ├── random_walker.h
│ │ ├── region_3d.h
│ │ ├── region_growing.h
│ │ ├── region_growing_rgb.h
│ │ ├── rgb_plane_coefficient_comparator.h
│ │ ├── sac_segmentation.h
│ │ ├── seeded_hue_segmentation.h
│ │ ├── segment_differences.h
│ │ ├── supervoxel_clustering.h
│ │ └── unary_classifier.h
│ │ ├── sse.h
│ │ ├── stereo
│ │ ├── digital_elevation_map.h
│ │ ├── disparity_map_converter.h
│ │ ├── impl
│ │ │ └── disparity_map_converter.hpp
│ │ ├── stereo_grabber.h
│ │ └── stereo_matching.h
│ │ ├── surface
│ │ ├── 3rdparty
│ │ │ └── poisson4
│ │ │ │ ├── allocator.h
│ │ │ │ ├── binary_node.h
│ │ │ │ ├── bspline_data.h
│ │ │ │ ├── bspline_data.hpp
│ │ │ │ ├── factor.h
│ │ │ │ ├── function_data.h
│ │ │ │ ├── function_data.hpp
│ │ │ │ ├── geometry.h
│ │ │ │ ├── geometry.hpp
│ │ │ │ ├── hash.h
│ │ │ │ ├── marching_cubes_poisson.h
│ │ │ │ ├── mat.h
│ │ │ │ ├── mat.hpp
│ │ │ │ ├── multi_grid_octree_data.h
│ │ │ │ ├── multi_grid_octree_data.hpp
│ │ │ │ ├── octree_poisson.h
│ │ │ │ ├── octree_poisson.hpp
│ │ │ │ ├── polynomial.h
│ │ │ │ ├── polynomial.hpp
│ │ │ │ ├── ppolynomial.h
│ │ │ │ ├── ppolynomial.hpp
│ │ │ │ ├── sparse_matrix.h
│ │ │ │ ├── sparse_matrix.hpp
│ │ │ │ ├── vector.h
│ │ │ │ └── vector.hpp
│ │ ├── bilateral_upsampling.h
│ │ ├── boost.h
│ │ ├── concave_hull.h
│ │ ├── convex_hull.h
│ │ ├── ear_clipping.h
│ │ ├── eigen.h
│ │ ├── gp3.h
│ │ ├── grid_projection.h
│ │ ├── impl
│ │ │ ├── bilateral_upsampling.hpp
│ │ │ ├── concave_hull.hpp
│ │ │ ├── convex_hull.hpp
│ │ │ ├── gp3.hpp
│ │ │ ├── grid_projection.hpp
│ │ │ ├── marching_cubes.hpp
│ │ │ ├── marching_cubes_hoppe.hpp
│ │ │ ├── marching_cubes_rbf.hpp
│ │ │ ├── mls.hpp
│ │ │ ├── organized_fast_mesh.hpp
│ │ │ ├── poisson.hpp
│ │ │ ├── processing.hpp
│ │ │ ├── reconstruction.hpp
│ │ │ ├── surfel_smoothing.hpp
│ │ │ └── texture_mapping.hpp
│ │ ├── marching_cubes.h
│ │ ├── marching_cubes_hoppe.h
│ │ ├── marching_cubes_rbf.h
│ │ ├── mls.h
│ │ ├── organized_fast_mesh.h
│ │ ├── poisson.h
│ │ ├── processing.h
│ │ ├── qhull.h
│ │ ├── reconstruction.h
│ │ ├── simplification_remove_unused_vertices.h
│ │ ├── surfel_smoothing.h
│ │ └── texture_mapping.h
│ │ └── tracking
│ │ ├── approx_nearest_pair_point_cloud_coherence.h
│ │ ├── boost.h
│ │ ├── coherence.h
│ │ ├── distance_coherence.h
│ │ ├── hsv_color_coherence.h
│ │ ├── impl
│ │ ├── approx_nearest_pair_point_cloud_coherence.hpp
│ │ ├── coherence.hpp
│ │ ├── distance_coherence.hpp
│ │ ├── hsv_color_coherence.hpp
│ │ ├── kld_adaptive_particle_filter.hpp
│ │ ├── kld_adaptive_particle_filter_omp.hpp
│ │ ├── nearest_pair_point_cloud_coherence.hpp
│ │ ├── normal_coherence.hpp
│ │ ├── particle_filter.hpp
│ │ ├── particle_filter_omp.hpp
│ │ ├── pyramidal_klt.hpp
│ │ ├── tracker.hpp
│ │ └── tracking.hpp
│ │ ├── kld_adaptive_particle_filter.h
│ │ ├── kld_adaptive_particle_filter_omp.h
│ │ ├── nearest_pair_point_cloud_coherence.h
│ │ ├── normal_coherence.h
│ │ ├── particle_filter.h
│ │ ├── particle_filter_omp.h
│ │ ├── pyramidal_klt.h
│ │ ├── tracker.h
│ │ └── tracking.h
├── lib
│ ├── libosgModeling.so
│ ├── libpcl_common.so.1.8
│ ├── libpcl_io.so.1.8
│ └── libpcl_io_ply.so.1.8
├── main.cpp
├── osgpick.cpp
├── osgpick.h
├── osgskybox.cpp
├── osgskybox.h
├── osgviewwidget.cpp
├── osgviewwidget.h
├── paramaxisdragger.cpp
├── paramaxisdragger.h
├── paramtrackballdragger.cpp
├── paramtrackballdragger.h
├── qosgabsolutemodeltransform.cpp
├── qosgabsolutemodeltransform.h
├── qosgcollectverticesvisitor.cpp
├── qosgcollectverticesvisitor.h
├── qosgcollsioncheck.cpp
├── qosgcollsioncheck.h
├── qosgcommon.cpp
├── qosgcommon.h
├── qosgcomputetrimeshvisitor.cpp
├── qosgcomputetrimeshvisitor.h
├── qosgenvmodel.cpp
├── qosgenvmodel.h
├── qosgkeyboardeventhandler.cpp
├── qosgkeyboardeventhandler.h
├── qosgmainwindow.cpp
├── qosgmainwindow.h
├── qosgoctreebuilder.cpp
├── qosgoctreebuilder.h
├── qosgselecteditemdraggercallback.cpp
├── qosgselecteditemdraggercallback.h
├── qosgtrackball.cpp
├── qosgtrackball.h
├── qosgupdatecallbackcheckcollsion.cpp
├── qosgupdatecallbackcheckcollsion.h
├── qtosgleftsidebar.cpp
└── qtosgleftsidebar.h
├── render
└── arial.ttf
└── resource
├── Screenshot from 2018-07-14 16-49-25.png
├── Screenshot from 2018-07-14 16-51-10.png
├── Screenshot from 2018-07-14 17-02-49.png
├── Screenshot from 2018-07-14 17-03-11.png
├── Screenshot from 2018-07-14 17-03-16.png
├── Screenshot from 2018-07-14 17-03-20.png
├── Screenshot from 2018-07-14 17-03-26.png
└── Screenshot from 2018-07-14 17-03-33.png
/README.md:
--------------------------------------------------------------------------------
1 | # osgQTWidget
2 | 集成osg到qt的一个widget中
3 |
4 | 一个使用osg和qt制作的渲染widget.可以做到即插即用JimmieKJ/osgQTWidget一个使用osg和qt制作的渲染widget.可以做到即插即用
5 |
6 | 版本信息---osg
7 | (3.4) qt (5.5) ubuntu(16.04)
8 |
9 | 使用的库
10 | :
11 |
12 | osg: http://www.openscenegraph.org/index.php/community/press-releases/220-openscenegraph-3.4-1.release
13 |
14 |
15 |
16 | bullet: https://github.com/bulletphysics/bullet3
17 |
18 |
19 |
20 | osgWorks: https://github.com/mccdo/osgworks
21 |
22 |
23 |
24 | osgBullet: https://github.com/mccdo/osgbullet
25 |
26 |
27 |
28 | osgModeling: https://github.com/ijk123/osgModeling
29 |
30 |
31 |
32 | 实现的功能:
33 |
34 | 1. 无缝集成到qt
35 |
36 | 2. 渲染模型,百万级以上点云,边框等
37 |
38 | 3.支持透明渲染显示,点击选中,拖动物体的位姿等
39 |
40 | 4.集成了bullet的碰撞检测,支持复杂模型精确的碰撞检测,支持点云与模型碰撞检测
41 |
42 | 5. 支持一个界面多个渲染窗口
43 |
44 |
45 | 
46 | 
47 | 
48 | 
49 | 
50 | 
51 |
52 |
53 |
--------------------------------------------------------------------------------
/SRC/images.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | images/faceView_.png
4 | images/upView_.png
5 | images/leftView_.png
6 | images/startView_.png
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SRC/images/faceView_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/faceView_.png
--------------------------------------------------------------------------------
/SRC/images/leftView_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/leftView_.png
--------------------------------------------------------------------------------
/SRC/images/startView_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/startView_.png
--------------------------------------------------------------------------------
/SRC/images/upView_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JimmieKJ/osgQTWidget/7b9b1a74b5bb3bf2a0dd90e1213ba80622ff0abe/SRC/images/upView_.png
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Cholesky:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_CHOLESKY_MODULE_H
9 | #define EIGEN_CHOLESKY_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | /** \defgroup Cholesky_Module Cholesky module
16 | *
17 | *
18 | *
19 | * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
20 | * Those decompositions are also accessible via the following methods:
21 | * - MatrixBase::llt()
22 | * - MatrixBase::ldlt()
23 | * - SelfAdjointView::llt()
24 | * - SelfAdjointView::ldlt()
25 | *
26 | * \code
27 | * #include
28 | * \endcode
29 | */
30 |
31 | #include "src/Cholesky/LLT.h"
32 | #include "src/Cholesky/LDLT.h"
33 | #ifdef EIGEN_USE_LAPACKE
34 | #include "src/Cholesky/LLT_MKL.h"
35 | #endif
36 |
37 | #include "src/Core/util/ReenableStupidWarnings.h"
38 |
39 | #endif // EIGEN_CHOLESKY_MODULE_H
40 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
41 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/CholmodSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
9 | #define EIGEN_CHOLMODSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | extern "C" {
16 | #include
17 | }
18 |
19 | /** \ingroup Support_modules
20 | * \defgroup CholmodSupport_Module CholmodSupport module
21 | *
22 | * This module provides an interface to the Cholmod library which is part of the suitesparse package.
23 | * It provides the two following main factorization classes:
24 | * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
25 | * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
26 | *
27 | * For the sake of completeness, this module also propose the two following classes:
28 | * - class CholmodSimplicialLLT
29 | * - class CholmodSimplicialLDLT
30 | * Note that these classes does not bring any particular advantage compared to the built-in
31 | * SimplicialLLT and SimplicialLDLT factorization classes.
32 | *
33 | * \code
34 | * #include
35 | * \endcode
36 | *
37 | * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
38 | * The dependencies depend on how cholmod has been compiled.
39 | * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
40 | *
41 | */
42 |
43 | #include "src/CholmodSupport/CholmodSupport.h"
44 |
45 | #include "src/Core/util/ReenableStupidWarnings.h"
46 |
47 | #endif // EIGEN_CHOLMODSUPPORT_MODULE_H
48 |
49 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Dense:
--------------------------------------------------------------------------------
1 | #include "Core"
2 | #include "LU"
3 | #include "Cholesky"
4 | #include "QR"
5 | #include "SVD"
6 | #include "Geometry"
7 | #include "Eigenvalues"
8 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Eigen:
--------------------------------------------------------------------------------
1 | #include "Dense"
2 | #include "Sparse"
3 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Eigenvalues:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_EIGENVALUES_MODULE_H
9 | #define EIGEN_EIGENVALUES_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include "Cholesky"
16 | #include "Jacobi"
17 | #include "Householder"
18 | #include "LU"
19 | #include "Geometry"
20 |
21 | /** \defgroup Eigenvalues_Module Eigenvalues module
22 | *
23 | *
24 | *
25 | * This module mainly provides various eigenvalue solvers.
26 | * This module also provides some MatrixBase methods, including:
27 | * - MatrixBase::eigenvalues(),
28 | * - MatrixBase::operatorNorm()
29 | *
30 | * \code
31 | * #include
32 | * \endcode
33 | */
34 |
35 | #include "src/Eigenvalues/Tridiagonalization.h"
36 | #include "src/Eigenvalues/RealSchur.h"
37 | #include "src/Eigenvalues/EigenSolver.h"
38 | #include "src/Eigenvalues/SelfAdjointEigenSolver.h"
39 | #include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h"
40 | #include "src/Eigenvalues/HessenbergDecomposition.h"
41 | #include "src/Eigenvalues/ComplexSchur.h"
42 | #include "src/Eigenvalues/ComplexEigenSolver.h"
43 | #include "src/Eigenvalues/RealQZ.h"
44 | #include "src/Eigenvalues/GeneralizedEigenSolver.h"
45 | #include "src/Eigenvalues/MatrixBaseEigenvalues.h"
46 | #ifdef EIGEN_USE_LAPACKE
47 | #include "src/Eigenvalues/RealSchur_MKL.h"
48 | #include "src/Eigenvalues/ComplexSchur_MKL.h"
49 | #include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h"
50 | #endif
51 |
52 | #include "src/Core/util/ReenableStupidWarnings.h"
53 |
54 | #endif // EIGEN_EIGENVALUES_MODULE_H
55 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
56 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Geometry:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_GEOMETRY_MODULE_H
9 | #define EIGEN_GEOMETRY_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include "SVD"
16 | #include "LU"
17 | #include
18 |
19 | /** \defgroup Geometry_Module Geometry module
20 | *
21 | *
22 | *
23 | * This module provides support for:
24 | * - fixed-size homogeneous transformations
25 | * - translation, scaling, 2D and 3D rotations
26 | * - quaternions
27 | * - \ref MatrixBase::cross() "cross product"
28 | * - \ref MatrixBase::unitOrthogonal() "orthognal vector generation"
29 | * - some linear components: parametrized-lines and hyperplanes
30 | *
31 | * \code
32 | * #include
33 | * \endcode
34 | */
35 |
36 | #include "src/Geometry/OrthoMethods.h"
37 | #include "src/Geometry/EulerAngles.h"
38 |
39 | #include "src/Geometry/Homogeneous.h"
40 | #include "src/Geometry/RotationBase.h"
41 | #include "src/Geometry/Rotation2D.h"
42 | #include "src/Geometry/Quaternion.h"
43 | #include "src/Geometry/AngleAxis.h"
44 | #include "src/Geometry/Transform.h"
45 | #include "src/Geometry/Translation.h"
46 | #include "src/Geometry/Scaling.h"
47 | #include "src/Geometry/Hyperplane.h"
48 | #include "src/Geometry/ParametrizedLine.h"
49 | #include "src/Geometry/AlignedBox.h"
50 | #include "src/Geometry/Umeyama.h"
51 |
52 | // Use the SSE optimized version whenever possible. At the moment the
53 | // SSE version doesn't compile when AVX is enabled
54 | #if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
55 | #include "src/Geometry/arch/Geometry_SSE.h"
56 | #endif
57 |
58 | #include "src/Core/util/ReenableStupidWarnings.h"
59 |
60 | #endif // EIGEN_GEOMETRY_MODULE_H
61 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
62 |
63 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Householder:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_HOUSEHOLDER_MODULE_H
9 | #define EIGEN_HOUSEHOLDER_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | /** \defgroup Householder_Module Householder module
16 | * This module provides Householder transformations.
17 | *
18 | * \code
19 | * #include
20 | * \endcode
21 | */
22 |
23 | #include "src/Householder/Householder.h"
24 | #include "src/Householder/HouseholderSequence.h"
25 | #include "src/Householder/BlockHouseholder.h"
26 |
27 | #include "src/Core/util/ReenableStupidWarnings.h"
28 |
29 | #endif // EIGEN_HOUSEHOLDER_MODULE_H
30 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
31 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/IterativeLinearSolvers:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
9 | #define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
10 |
11 | #include "SparseCore"
12 | #include "OrderingMethods"
13 |
14 | #include "src/Core/util/DisableStupidWarnings.h"
15 |
16 | /**
17 | * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
18 | *
19 | * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse.
20 | * Those solvers are accessible via the following classes:
21 | * - ConjugateGradient for selfadjoint (hermitian) matrices,
22 | * - LeastSquaresConjugateGradient for rectangular least-square problems,
23 | * - BiCGSTAB for general square matrices.
24 | *
25 | * These iterative solvers are associated with some preconditioners:
26 | * - IdentityPreconditioner - not really useful
27 | * - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices.
28 | * - IncompleteLUT - incomplete LU factorization with dual thresholding
29 | *
30 | * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
31 | *
32 | \code
33 | #include
34 | \endcode
35 | */
36 |
37 | #include "src/IterativeLinearSolvers/SolveWithGuess.h"
38 | #include "src/IterativeLinearSolvers/IterativeSolverBase.h"
39 | #include "src/IterativeLinearSolvers/BasicPreconditioners.h"
40 | #include "src/IterativeLinearSolvers/ConjugateGradient.h"
41 | #include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h"
42 | #include "src/IterativeLinearSolvers/BiCGSTAB.h"
43 | #include "src/IterativeLinearSolvers/IncompleteLUT.h"
44 | #include "src/IterativeLinearSolvers/IncompleteCholesky.h"
45 |
46 | #include "src/Core/util/ReenableStupidWarnings.h"
47 |
48 | #endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
49 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Jacobi:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_JACOBI_MODULE_H
9 | #define EIGEN_JACOBI_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | /** \defgroup Jacobi_Module Jacobi module
16 | * This module provides Jacobi and Givens rotations.
17 | *
18 | * \code
19 | * #include
20 | * \endcode
21 | *
22 | * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation:
23 | * - MatrixBase::applyOnTheLeft()
24 | * - MatrixBase::applyOnTheRight().
25 | */
26 |
27 | #include "src/Jacobi/Jacobi.h"
28 |
29 | #include "src/Core/util/ReenableStupidWarnings.h"
30 |
31 | #endif // EIGEN_JACOBI_MODULE_H
32 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
33 |
34 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/LU:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_LU_MODULE_H
9 | #define EIGEN_LU_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | /** \defgroup LU_Module LU module
16 | * This module includes %LU decomposition and related notions such as matrix inversion and determinant.
17 | * This module defines the following MatrixBase methods:
18 | * - MatrixBase::inverse()
19 | * - MatrixBase::determinant()
20 | *
21 | * \code
22 | * #include
23 | * \endcode
24 | */
25 |
26 | #include "src/misc/Kernel.h"
27 | #include "src/misc/Image.h"
28 | #include "src/LU/FullPivLU.h"
29 | #include "src/LU/PartialPivLU.h"
30 | #ifdef EIGEN_USE_LAPACKE
31 | #include "src/LU/PartialPivLU_MKL.h"
32 | #endif
33 | #include "src/LU/Determinant.h"
34 | #include "src/LU/InverseImpl.h"
35 |
36 | // Use the SSE optimized version whenever possible. At the moment the
37 | // SSE version doesn't compile when AVX is enabled
38 | #if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
39 | #include "src/LU/arch/Inverse_SSE.h"
40 | #endif
41 |
42 | #include "src/Core/util/ReenableStupidWarnings.h"
43 |
44 | #endif // EIGEN_LU_MODULE_H
45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
46 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/MetisSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_METISSUPPORT_MODULE_H
9 | #define EIGEN_METISSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | extern "C" {
16 | #include
17 | }
18 |
19 |
20 | /** \ingroup Support_modules
21 | * \defgroup MetisSupport_Module MetisSupport module
22 | *
23 | * \code
24 | * #include
25 | * \endcode
26 | * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis).
27 | * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
28 | */
29 |
30 |
31 | #include "src/MetisSupport/MetisSupport.h"
32 |
33 | #include "src/Core/util/ReenableStupidWarnings.h"
34 |
35 | #endif // EIGEN_METISSUPPORT_MODULE_H
36 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/PaStiXSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_PASTIXSUPPORT_MODULE_H
9 | #define EIGEN_PASTIXSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include
16 | extern "C" {
17 | #include
18 | #include
19 | }
20 |
21 | #ifdef complex
22 | #undef complex
23 | #endif
24 |
25 | /** \ingroup Support_modules
26 | * \defgroup PaStiXSupport_Module PaStiXSupport module
27 | *
28 | * This module provides an interface to the PaSTiX library.
29 | * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
30 | * It provides the two following main factorization classes:
31 | * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
32 | * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
33 | * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
34 | *
35 | * \code
36 | * #include
37 | * \endcode
38 | *
39 | * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
40 | * The dependencies depend on how PaSTiX has been compiled.
41 | * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
42 | *
43 | */
44 |
45 | #include "src/PaStiXSupport/PaStiXSupport.h"
46 |
47 | #include "src/Core/util/ReenableStupidWarnings.h"
48 |
49 | #endif // EIGEN_PASTIXSUPPORT_MODULE_H
50 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/PardisoSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_PARDISOSUPPORT_MODULE_H
9 | #define EIGEN_PARDISOSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include
16 |
17 | /** \ingroup Support_modules
18 | * \defgroup PardisoSupport_Module PardisoSupport module
19 | *
20 | * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
21 | *
22 | * \code
23 | * #include
24 | * \endcode
25 | *
26 | * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies.
27 | * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
28 | *
29 | */
30 |
31 | #include "src/PardisoSupport/PardisoSupport.h"
32 |
33 | #include "src/Core/util/ReenableStupidWarnings.h"
34 |
35 | #endif // EIGEN_PARDISOSUPPORT_MODULE_H
36 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/QR:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_QR_MODULE_H
9 | #define EIGEN_QR_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include "Cholesky"
16 | #include "Jacobi"
17 | #include "Householder"
18 |
19 | /** \defgroup QR_Module QR module
20 | *
21 | *
22 | *
23 | * This module provides various QR decompositions
24 | * This module also provides some MatrixBase methods, including:
25 | * - MatrixBase::householderQr()
26 | * - MatrixBase::colPivHouseholderQr()
27 | * - MatrixBase::fullPivHouseholderQr()
28 | *
29 | * \code
30 | * #include
31 | * \endcode
32 | */
33 |
34 | #include "src/QR/HouseholderQR.h"
35 | #include "src/QR/FullPivHouseholderQR.h"
36 | #include "src/QR/ColPivHouseholderQR.h"
37 | #ifdef EIGEN_USE_LAPACKE
38 | #include "src/QR/HouseholderQR_MKL.h"
39 | #include "src/QR/ColPivHouseholderQR_MKL.h"
40 | #endif
41 |
42 | #include "src/Core/util/ReenableStupidWarnings.h"
43 |
44 | #endif // EIGEN_QR_MODULE_H
45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
46 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/QtAlignedMalloc:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_QTMALLOC_MODULE_H
9 | #define EIGEN_QTMALLOC_MODULE_H
10 |
11 | #include "Core"
12 |
13 | #if (!EIGEN_MALLOC_ALREADY_ALIGNED)
14 |
15 | #include "src/Core/util/DisableStupidWarnings.h"
16 |
17 | void *qMalloc(size_t size)
18 | {
19 | return Eigen::internal::aligned_malloc(size);
20 | }
21 |
22 | void qFree(void *ptr)
23 | {
24 | Eigen::internal::aligned_free(ptr);
25 | }
26 |
27 | void *qRealloc(void *ptr, size_t size)
28 | {
29 | void* newPtr = Eigen::internal::aligned_malloc(size);
30 | memcpy(newPtr, ptr, size);
31 | Eigen::internal::aligned_free(ptr);
32 | return newPtr;
33 | }
34 |
35 | #include "src/Core/util/ReenableStupidWarnings.h"
36 |
37 | #endif
38 |
39 | #endif // EIGEN_QTMALLOC_MODULE_H
40 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
41 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/SPQRSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_SPQRSUPPORT_MODULE_H
9 | #define EIGEN_SPQRSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | #include "SuiteSparseQR.hpp"
16 |
17 | /** \ingroup Support_modules
18 | * \defgroup SPQRSupport_Module SuiteSparseQR module
19 | *
20 | * This module provides an interface to the SPQR library, which is part of the suitesparse package.
21 | *
22 | * \code
23 | * #include
24 | * \endcode
25 | *
26 | * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
27 | * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
28 | *
29 | */
30 |
31 | #include "src/CholmodSupport/CholmodSupport.h"
32 | #include "src/SPQRSupport/SuiteSparseQRSupport.h"
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/SVD:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_SVD_MODULE_H
9 | #define EIGEN_SVD_MODULE_H
10 |
11 | #include "QR"
12 | #include "Householder"
13 | #include "Jacobi"
14 |
15 | #include "src/Core/util/DisableStupidWarnings.h"
16 |
17 | /** \defgroup SVD_Module SVD module
18 | *
19 | *
20 | *
21 | * This module provides SVD decomposition for matrices (both real and complex).
22 | * Two decomposition algorithms are provided:
23 | * - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones.
24 | * - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems.
25 | * These decompositions are accessible via the respective classes and following MatrixBase methods:
26 | * - MatrixBase::jacobiSvd()
27 | * - MatrixBase::bdcSvd()
28 | *
29 | * \code
30 | * #include
31 | * \endcode
32 | */
33 |
34 | #include "src/SVD/UpperBidiagonalization.h"
35 | #include "src/SVD/SVDBase.h"
36 | #include "src/SVD/JacobiSVD.h"
37 | #include "src/SVD/BDCSVD.h"
38 | #if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
39 | #include "src/SVD/JacobiSVD_MKL.h"
40 | #endif
41 |
42 | #include "src/Core/util/ReenableStupidWarnings.h"
43 |
44 | #endif // EIGEN_SVD_MODULE_H
45 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
46 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/Sparse:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_SPARSE_MODULE_H
9 | #define EIGEN_SPARSE_MODULE_H
10 |
11 | /** \defgroup Sparse_Module Sparse meta-module
12 | *
13 | * Meta-module including all related modules:
14 | * - \ref SparseCore_Module
15 | * - \ref OrderingMethods_Module
16 | * - \ref SparseCholesky_Module
17 | * - \ref SparseLU_Module
18 | * - \ref SparseQR_Module
19 | * - \ref IterativeLinearSolvers_Module
20 | *
21 | \code
22 | #include
23 | \endcode
24 | */
25 |
26 | #include "SparseCore"
27 | #include "OrderingMethods"
28 | #include "SparseCholesky"
29 | #include "SparseLU"
30 | #include "SparseQR"
31 | #include "IterativeLinearSolvers"
32 |
33 | #endif // EIGEN_SPARSE_MODULE_H
34 |
35 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/SparseCholesky:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2013 Gael Guennebaud
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_SPARSECHOLESKY_MODULE_H
11 | #define EIGEN_SPARSECHOLESKY_MODULE_H
12 |
13 | #include "SparseCore"
14 | #include "OrderingMethods"
15 |
16 | #include "src/Core/util/DisableStupidWarnings.h"
17 |
18 | /**
19 | * \defgroup SparseCholesky_Module SparseCholesky module
20 | *
21 | * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
22 | * Those decompositions are accessible via the following classes:
23 | * - SimplicialLLt,
24 | * - SimplicialLDLt
25 | *
26 | * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
27 | *
28 | * \code
29 | * #include
30 | * \endcode
31 | */
32 |
33 | #ifdef EIGEN_MPL2_ONLY
34 | #error The SparseCholesky module has nothing to offer in MPL2 only mode
35 | #endif
36 |
37 | #include "src/SparseCholesky/SimplicialCholesky.h"
38 |
39 | #ifndef EIGEN_MPL2_ONLY
40 | #include "src/SparseCholesky/SimplicialCholesky_impl.h"
41 | #endif
42 |
43 | #include "src/Core/util/ReenableStupidWarnings.h"
44 |
45 | #endif // EIGEN_SPARSECHOLESKY_MODULE_H
46 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/SparseLU:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2012 Désiré Nuentsa-Wakam
5 | // Copyright (C) 2012 Gael Guennebaud
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_SPARSELU_MODULE_H
12 | #define EIGEN_SPARSELU_MODULE_H
13 |
14 | #include "SparseCore"
15 |
16 | /**
17 | * \defgroup SparseLU_Module SparseLU module
18 | * This module defines a supernodal factorization of general sparse matrices.
19 | * The code is fully optimized for supernode-panel updates with specialized kernels.
20 | * Please, see the documentation of the SparseLU class for more details.
21 | */
22 |
23 | // Ordering interface
24 | #include "OrderingMethods"
25 |
26 | #include "src/SparseLU/SparseLU_gemm_kernel.h"
27 |
28 | #include "src/SparseLU/SparseLU_Structs.h"
29 | #include "src/SparseLU/SparseLU_SupernodalMatrix.h"
30 | #include "src/SparseLU/SparseLUImpl.h"
31 | #include "src/SparseCore/SparseColEtree.h"
32 | #include "src/SparseLU/SparseLU_Memory.h"
33 | #include "src/SparseLU/SparseLU_heap_relax_snode.h"
34 | #include "src/SparseLU/SparseLU_relax_snode.h"
35 | #include "src/SparseLU/SparseLU_pivotL.h"
36 | #include "src/SparseLU/SparseLU_panel_dfs.h"
37 | #include "src/SparseLU/SparseLU_kernel_bmod.h"
38 | #include "src/SparseLU/SparseLU_panel_bmod.h"
39 | #include "src/SparseLU/SparseLU_column_dfs.h"
40 | #include "src/SparseLU/SparseLU_column_bmod.h"
41 | #include "src/SparseLU/SparseLU_copy_to_ucol.h"
42 | #include "src/SparseLU/SparseLU_pruneL.h"
43 | #include "src/SparseLU/SparseLU_Utils.h"
44 | #include "src/SparseLU/SparseLU.h"
45 |
46 | #endif // EIGEN_SPARSELU_MODULE_H
47 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/SparseQR:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_SPARSEQR_MODULE_H
9 | #define EIGEN_SPARSEQR_MODULE_H
10 |
11 | #include "SparseCore"
12 | #include "OrderingMethods"
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | /** \defgroup SparseQR_Module SparseQR module
16 | * \brief Provides QR decomposition for sparse matrices
17 | *
18 | * This module provides a simplicial version of the left-looking Sparse QR decomposition.
19 | * The columns of the input matrix should be reordered to limit the fill-in during the
20 | * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end.
21 | * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list
22 | * of built-in and external ordering methods.
23 | *
24 | * \code
25 | * #include
26 | * \endcode
27 | *
28 | *
29 | */
30 |
31 | #include "OrderingMethods"
32 | #include "src/SparseCore/SparseColEtree.h"
33 | #include "src/SparseQR/SparseQR.h"
34 |
35 | #include "src/Core/util/ReenableStupidWarnings.h"
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/StdDeque:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009 Gael Guennebaud
5 | // Copyright (C) 2009 Hauke Heibel
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_STDDEQUE_MODULE_H
12 | #define EIGEN_STDDEQUE_MODULE_H
13 |
14 | #include "Core"
15 | #include
16 |
17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* MSVC auto aligns in 64 bit builds */
18 |
19 | #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...)
20 |
21 | #else
22 |
23 | #include "src/StlSupport/StdDeque.h"
24 |
25 | #endif
26 |
27 | #endif // EIGEN_STDDEQUE_MODULE_H
28 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/StdList:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009 Hauke Heibel
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_STDLIST_MODULE_H
11 | #define EIGEN_STDLIST_MODULE_H
12 |
13 | #include "Core"
14 | #include
15 |
16 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* MSVC auto aligns in 64 bit builds */
17 |
18 | #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...)
19 |
20 | #else
21 |
22 | #include "src/StlSupport/StdList.h"
23 |
24 | #endif
25 |
26 | #endif // EIGEN_STDLIST_MODULE_H
27 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/StdVector:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009 Gael Guennebaud
5 | // Copyright (C) 2009 Hauke Heibel
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_STDVECTOR_MODULE_H
12 | #define EIGEN_STDVECTOR_MODULE_H
13 |
14 | #include "Core"
15 | #include
16 |
17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 /* MSVC auto aligns in 64 bit builds */
18 |
19 | #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...)
20 |
21 | #else
22 |
23 | #include "src/StlSupport/StdVector.h"
24 |
25 | #endif
26 |
27 | #endif // EIGEN_STDVECTOR_MODULE_H
28 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/UmfPackSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla
5 | // Public License v. 2.0. If a copy of the MPL was not distributed
6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef EIGEN_UMFPACKSUPPORT_MODULE_H
9 | #define EIGEN_UMFPACKSUPPORT_MODULE_H
10 |
11 | #include "SparseCore"
12 |
13 | #include "src/Core/util/DisableStupidWarnings.h"
14 |
15 | extern "C" {
16 | #include
17 | }
18 |
19 | /** \ingroup Support_modules
20 | * \defgroup UmfPackSupport_Module UmfPackSupport module
21 | *
22 | * This module provides an interface to the UmfPack library which is part of the suitesparse package.
23 | * It provides the following factorization class:
24 | * - class UmfPackLU: a multifrontal sequential LU factorization.
25 | *
26 | * \code
27 | * #include
28 | * \endcode
29 | *
30 | * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies.
31 | * The dependencies depend on how umfpack has been compiled.
32 | * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task.
33 | *
34 | */
35 |
36 | #include "src/UmfPackSupport/UmfPackSupport.h"
37 |
38 | #include "src/Core/util/ReenableStupidWarnings.h"
39 |
40 | #endif // EIGEN_UMFPACKSUPPORT_MODULE_H
41 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/DiagonalProduct.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008 Gael Guennebaud
5 | // Copyright (C) 2007-2009 Benoit Jacob
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_DIAGONALPRODUCT_H
12 | #define EIGEN_DIAGONALPRODUCT_H
13 |
14 | namespace Eigen {
15 |
16 | /** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal.
17 | */
18 | template
19 | template
20 | inline const Product
21 | MatrixBase::operator*(const DiagonalBase &a_diagonal) const
22 | {
23 | return Product(derived(),a_diagonal.derived());
24 | }
25 |
26 | } // end namespace Eigen
27 |
28 | #endif // EIGEN_DIAGONALPRODUCT_H
29 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009-2010 Gael Guennebaud
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_SELFCWISEBINARYOP_H
11 | #define EIGEN_SELFCWISEBINARYOP_H
12 |
13 | namespace Eigen {
14 |
15 | template
16 | inline Derived& DenseBase::operator*=(const Scalar& other)
17 | {
18 | typedef typename Derived::PlainObject PlainObject;
19 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op());
20 | return derived();
21 | }
22 |
23 | template
24 | inline Derived& ArrayBase::operator+=(const Scalar& other)
25 | {
26 | typedef typename Derived::PlainObject PlainObject;
27 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::add_assign_op());
28 | return derived();
29 | }
30 |
31 | template
32 | inline Derived& ArrayBase::operator-=(const Scalar& other)
33 | {
34 | typedef typename Derived::PlainObject PlainObject;
35 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::sub_assign_op());
36 | return derived();
37 | }
38 |
39 | template
40 | inline Derived& DenseBase::operator/=(const Scalar& other)
41 | {
42 | typedef typename Derived::PlainObject PlainObject;
43 | internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op());
44 | return derived();
45 | }
46 |
47 | } // end namespace Eigen
48 |
49 | #endif // EIGEN_SELFCWISEBINARYOP_H
50 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2015 Benoit Steiner
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_TYPE_CASTING_AVX_H
11 | #define EIGEN_TYPE_CASTING_AVX_H
12 |
13 | namespace Eigen {
14 |
15 | namespace internal {
16 |
17 | // For now we use SSE to handle integers, so we can't use AVX instructions to cast
18 | // from int to float
19 | template <>
20 | struct type_casting_traits {
21 | enum {
22 | VectorizedCast = 0,
23 | SrcCoeffRatio = 1,
24 | TgtCoeffRatio = 1
25 | };
26 | };
27 |
28 | template <>
29 | struct type_casting_traits {
30 | enum {
31 | VectorizedCast = 0,
32 | SrcCoeffRatio = 1,
33 | TgtCoeffRatio = 1
34 | };
35 | };
36 |
37 |
38 |
39 | template<> EIGEN_STRONG_INLINE Packet8i pcast(const Packet8f& a) {
40 | return _mm256_cvtps_epi32(a);
41 | }
42 |
43 | template<> EIGEN_STRONG_INLINE Packet8f pcast(const Packet8i& a) {
44 | return _mm256_cvtepi32_ps(a);
45 | }
46 |
47 | } // end namespace internal
48 |
49 | } // end namespace Eigen
50 |
51 | #endif // EIGEN_TYPE_CASTING_AVX_H
52 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/arch/Default/Settings.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2010 Gael Guennebaud
5 | // Copyright (C) 2006-2008 Benoit Jacob
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 |
12 | /* All the parameters defined in this file can be specialized in the
13 | * architecture specific files, and/or by the user.
14 | * More to come... */
15 |
16 | #ifndef EIGEN_DEFAULT_SETTINGS_H
17 | #define EIGEN_DEFAULT_SETTINGS_H
18 |
19 | /** Defines the maximal loop size to enable meta unrolling of loops.
20 | * Note that the value here is expressed in Eigen's own notion of "number of FLOPS",
21 | * it does not correspond to the number of iterations or the number of instructions
22 | */
23 | #ifndef EIGEN_UNROLLING_LIMIT
24 | #define EIGEN_UNROLLING_LIMIT 100
25 | #endif
26 |
27 | /** Defines the threshold between a "small" and a "large" matrix.
28 | * This threshold is mainly used to select the proper product implementation.
29 | */
30 | #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
31 | #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
32 | #endif
33 |
34 | /** Defines the maximal width of the blocks used in the triangular product and solver
35 | * for vectors (level 2 blas xTRMV and xTRSV). The default is 8.
36 | */
37 | #ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH
38 | #define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8
39 | #endif
40 |
41 |
42 | /** Defines the default number of registers available for that architecture.
43 | * Currently it must be 8 or 16. Other values will fail.
44 | */
45 | #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
46 | #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
47 | #endif
48 |
49 | #endif // EIGEN_DEFAULT_SETTINGS_H
50 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2015 Benoit Steiner
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_TYPE_CASTING_SSE_H
11 | #define EIGEN_TYPE_CASTING_SSE_H
12 |
13 | namespace Eigen {
14 |
15 | namespace internal {
16 |
17 | template <>
18 | struct type_casting_traits {
19 | enum {
20 | VectorizedCast = 1,
21 | SrcCoeffRatio = 1,
22 | TgtCoeffRatio = 1
23 | };
24 | };
25 |
26 | template<> EIGEN_STRONG_INLINE Packet4i pcast(const Packet4f& a) {
27 | return _mm_cvttps_epi32(a);
28 | }
29 |
30 |
31 | template <>
32 | struct type_casting_traits {
33 | enum {
34 | VectorizedCast = 1,
35 | SrcCoeffRatio = 1,
36 | TgtCoeffRatio = 1
37 | };
38 | };
39 |
40 | template<> EIGEN_STRONG_INLINE Packet4f pcast(const Packet4i& a) {
41 | return _mm_cvtepi32_ps(a);
42 | }
43 |
44 |
45 | template <>
46 | struct type_casting_traits {
47 | enum {
48 | VectorizedCast = 1,
49 | SrcCoeffRatio = 2,
50 | TgtCoeffRatio = 1
51 | };
52 | };
53 |
54 | template<> EIGEN_STRONG_INLINE Packet4f pcast(const Packet2d& a, const Packet2d& b) {
55 | return _mm_shuffle_ps(_mm_cvtpd_ps(a), _mm_cvtpd_ps(b), (1 << 2) | (1 << 6));
56 | }
57 |
58 | template <>
59 | struct type_casting_traits {
60 | enum {
61 | VectorizedCast = 1,
62 | SrcCoeffRatio = 1,
63 | TgtCoeffRatio = 2
64 | };
65 | };
66 |
67 | template<> EIGEN_STRONG_INLINE Packet2d pcast(const Packet4f& a) {
68 | // Simply discard the second half of the input
69 | return _mm_cvtps_pd(a);
70 | }
71 |
72 |
73 | } // end namespace internal
74 |
75 | } // end namespace Eigen
76 |
77 | #endif // EIGEN_TYPE_CASTING_SSE_H
78 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/util/NonMPL2.h:
--------------------------------------------------------------------------------
1 | #ifdef EIGEN_MPL2_ONLY
2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode
3 | #endif
4 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h:
--------------------------------------------------------------------------------
1 | #ifdef EIGEN_WARNINGS_DISABLED
2 | #undef EIGEN_WARNINGS_DISABLED
3 |
4 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
5 | #ifdef _MSC_VER
6 | #pragma warning( pop )
7 | #elif defined __INTEL_COMPILER
8 | #pragma warning pop
9 | #elif defined __clang__
10 | #pragma clang diagnostic pop
11 | #endif
12 | #endif
13 |
14 | #endif // EIGEN_WARNINGS_DISABLED
15 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2014 Gael Guennebaud
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_SPARSE_FUZZY_H
11 | #define EIGEN_SPARSE_FUZZY_H
12 |
13 | namespace Eigen {
14 |
15 | template
16 | template
17 | bool SparseMatrixBase::isApprox(const SparseMatrixBase& other, const RealScalar &prec) const
18 | {
19 | const typename internal::nested_eval::type actualA(derived());
20 | typename internal::conditional::type,
22 | const PlainObject>::type actualB(other.derived());
23 |
24 | return (actualA - actualB).squaredNorm() <= prec * prec * numext::mini(actualA.squaredNorm(), actualB.squaredNorm());
25 | }
26 |
27 | } // end namespace Eigen
28 |
29 | #endif // EIGEN_SPARSE_FUZZY_H
30 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/SparseCore/SparseRedux.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2014 Gael Guennebaud
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_SPARSEREDUX_H
11 | #define EIGEN_SPARSEREDUX_H
12 |
13 | namespace Eigen {
14 |
15 | template
16 | typename internal::traits::Scalar
17 | SparseMatrixBase::sum() const
18 | {
19 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
20 | Scalar res(0);
21 | internal::evaluator thisEval(derived());
22 | for (Index j=0; j::InnerIterator iter(thisEval,j); iter; ++iter)
24 | res += iter.value();
25 | return res;
26 | }
27 |
28 | template
29 | typename internal::traits >::Scalar
30 | SparseMatrix<_Scalar,_Options,_Index>::sum() const
31 | {
32 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
33 | return Matrix::Map(&m_data.value(0), m_data.size()).sum();
34 | }
35 |
36 | template
37 | typename internal::traits >::Scalar
38 | SparseVector<_Scalar,_Options,_Index>::sum() const
39 | {
40 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
41 | return Matrix::Map(&m_data.value(0), m_data.size()).sum();
42 | }
43 |
44 | } // end namespace Eigen
45 |
46 | #endif // EIGEN_SPARSEREDUX_H
47 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2012 Désiré Nuentsa-Wakam
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 |
11 | #ifndef EIGEN_SPARSELU_UTILS_H
12 | #define EIGEN_SPARSELU_UTILS_H
13 |
14 | namespace Eigen {
15 | namespace internal {
16 |
17 | /**
18 | * \brief Count Nonzero elements in the factors
19 | */
20 | template
21 | void SparseLUImpl::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu)
22 | {
23 | nnzL = 0;
24 | nnzU = (glu.xusub)(n);
25 | Index nsuper = (glu.supno)(n);
26 | Index jlen;
27 | Index i, j, fsupc;
28 | if (n <= 0 ) return;
29 | // For each supernode
30 | for (i = 0; i <= nsuper; i++)
31 | {
32 | fsupc = glu.xsup(i);
33 | jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
34 |
35 | for (j = fsupc; j < glu.xsup(i+1); j++)
36 | {
37 | nnzL += jlen;
38 | nnzU += j - fsupc + 1;
39 | jlen--;
40 | }
41 | }
42 | }
43 |
44 | /**
45 | * \brief Fix up the data storage lsub for L-subscripts.
46 | *
47 | * It removes the subscripts sets for structural pruning,
48 | * and applies permutation to the remaining subscripts
49 | *
50 | */
51 | template
52 | void SparseLUImpl::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu)
53 | {
54 | Index fsupc, i, j, k, jstart;
55 |
56 | StorageIndex nextl = 0;
57 | Index nsuper = (glu.supno)(n);
58 |
59 | // For each supernode
60 | for (i = 0; i <= nsuper; i++)
61 | {
62 | fsupc = glu.xsup(i);
63 | jstart = glu.xlsub(fsupc);
64 | glu.xlsub(fsupc) = nextl;
65 | for (j = jstart; j < glu.xlsub(fsupc + 1); j++)
66 | {
67 | glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A
68 | nextl++;
69 | }
70 | for (k = fsupc+1; k < glu.xsup(i+1); k++)
71 | glu.xlsub(k) = nextl; // other columns in supernode i
72 | }
73 |
74 | glu.xlsub(n) = nextl;
75 | }
76 |
77 | } // end namespace internal
78 |
79 | } // end namespace Eigen
80 | #endif // EIGEN_SPARSELU_UTILS_H
81 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2009 Gael Guennebaud
5 | // Copyright (C) 2006-2008 Benoit Jacob
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 | // This file is a base class plugin containing common coefficient wise functions.
12 |
13 | /** \returns an expression of the difference of \c *this and \a other
14 | *
15 | * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-().
16 | *
17 | * \sa class CwiseBinaryOp, operator-=()
18 | */
19 | EIGEN_MAKE_CWISE_BINARY_OP(operator-,internal::scalar_difference_op)
20 |
21 | /** \returns an expression of the sum of \c *this and \a other
22 | *
23 | * \note If you want to add a given scalar to all coefficients, see Cwise::operator+().
24 | *
25 | * \sa class CwiseBinaryOp, operator+=()
26 | */
27 | EIGEN_MAKE_CWISE_BINARY_OP(operator+,internal::scalar_sum_op)
28 |
29 | /** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other
30 | *
31 | * The template parameter \a CustomBinaryOp is the type of the functor
32 | * of the custom operator (see class CwiseBinaryOp for an example)
33 | *
34 | * Here is an example illustrating the use of custom functors:
35 | * \include class_CwiseBinaryOp.cpp
36 | * Output: \verbinclude class_CwiseBinaryOp.out
37 | *
38 | * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct()
39 | */
40 | template
41 | EIGEN_DEVICE_FUNC
42 | EIGEN_STRONG_INLINE const CwiseBinaryOp
43 | binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS &other, const CustomBinaryOp& func = CustomBinaryOp()) const
44 | {
45 | return CwiseBinaryOp(derived(), other.derived(), func);
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/signature_of_eigen3_matrix_library:
--------------------------------------------------------------------------------
1 | This file is just there as a signature to help identify directories containing Eigen3. When writing a script looking for Eigen3, just look for this file. This is especially useful to help disambiguate with Eigen2...
2 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/ArpackSupport:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla
6 | // Public License v. 2.0. If a copy of the MPL was not distributed
7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | #ifndef EIGEN_ARPACKSUPPORT_MODULE_H
10 | #define EIGEN_ARPACKSUPPORT_MODULE_H
11 |
12 | #include
13 |
14 | #include
15 |
16 | /** \defgroup ArpackSupport_Module Arpack support module
17 | *
18 | * This module provides a wrapper to Arpack, a library for sparse eigenvalue decomposition.
19 | *
20 | * \code
21 | * #include
22 | * \endcode
23 | */
24 |
25 | #include
26 | #include "src/Eigenvalues/ArpackSelfAdjointEigenSolver.h"
27 |
28 | #include
29 |
30 | #endif // EIGEN_ARPACKSUPPORT_MODULE_H
31 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */
32 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/AutoDiff:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2009 Gael Guennebaud
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_AUTODIFF_MODULE
11 | #define EIGEN_AUTODIFF_MODULE
12 |
13 | namespace Eigen {
14 |
15 | /**
16 | * \defgroup AutoDiff_Module Auto Diff module
17 | *
18 | * This module features forward automatic differentation via a simple
19 | * templated scalar type wrapper AutoDiffScalar.
20 | *
21 | * Warning : this should NOT be confused with numerical differentiation, which
22 | * is a different method and has its own module in Eigen : \ref NumericalDiff_Module.
23 | *
24 | * \code
25 | * #include
26 | * \endcode
27 | */
28 | //@{
29 |
30 | }
31 |
32 | #include "src/AutoDiff/AutoDiffScalar.h"
33 | // #include "src/AutoDiff/AutoDiffVector.h"
34 | #include "src/AutoDiff/AutoDiffJacobian.h"
35 |
36 | namespace Eigen {
37 | //@}
38 | }
39 |
40 | #endif // EIGEN_AUTODIFF_MODULE
41 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/CXX11/Core:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2013 Christian Seiler
5 | // Copyright (C) 2014 Benoit Steiner
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_CXX11_CORE_MODULE
12 | #define EIGEN_CXX11_CORE_MODULE
13 |
14 | #include
15 |
16 | #include
17 |
18 | /** \defgroup CXX11_Core_Module C++11 Core Module
19 | *
20 | * This module provides common core features for all modules that
21 | * explicitly depend on C++11. Currently, this is only the Tensor
22 | * module. Note that at this stage, you should not need to include
23 | * this module directly.
24 | *
25 | * It also provides a limited fallback for compilers that don't support
26 | * CXX11 yet, such as nvcc.
27 | *
28 | * \code
29 | * #include
30 | * \endcode
31 | */
32 |
33 | #include
34 |
35 | #include "src/Core/util/EmulateArray.h"
36 |
37 | // Emulate the cxx11 functionality that we need if the compiler doesn't support it.
38 | #if __cplusplus <= 199711L
39 | #include "src/Core/util/EmulateCXX11Meta.h"
40 | #else
41 | #include "src/Core/util/CXX11Workarounds.h"
42 | #include "src/Core/util/CXX11Meta.h"
43 | #endif
44 |
45 | #include
46 |
47 | #endif // EIGEN_CXX11_CORE_MODULE
48 |
49 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2013 Christian Seiler
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_CXX11_TENSORSYMMETRY_MODULE
11 | #define EIGEN_CXX11_TENSORSYMMETRY_MODULE
12 |
13 | #include
14 |
15 | #include
16 |
17 | /** \defgroup CXX11_TensorSymmetry_Module Tensor Symmetry Module
18 | *
19 | * This module provides a classes that allow for the definition of
20 | * symmetries w.r.t. tensor indices.
21 | *
22 | * Including this module will implicitly include the Tensor module.
23 | *
24 | * \code
25 | * #include
26 | * \endcode
27 | */
28 |
29 | #include "src/TensorSymmetry/util/TemplateGroupTheory.h"
30 | #include "src/TensorSymmetry/Symmetry.h"
31 | #include "src/TensorSymmetry/StaticSymmetry.h"
32 | #include "src/TensorSymmetry/DynamicSymmetry.h"
33 |
34 | #include
35 |
36 | #endif // EIGEN_CXX11_TENSORSYMMETRY_MODULE
37 |
38 | /*
39 | * kate: space-indent on; indent-width 2; mixedindent off; indent-mode cstyle;
40 | */
41 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2014 Benoit Steiner
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_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H
11 | #define EIGEN_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H
12 |
13 |
14 | namespace Eigen {
15 |
16 | // Default device for the machine (typically a single cpu core)
17 | struct DefaultDevice {
18 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void* allocate(size_t num_bytes) const {
19 | return internal::aligned_malloc(num_bytes);
20 | }
21 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void deallocate(void* buffer) const {
22 | internal::aligned_free(buffer);
23 | }
24 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpy(void* dst, const void* src, size_t n) const {
25 | ::memcpy(dst, src, n);
26 | }
27 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpyHostToDevice(void* dst, const void* src, size_t n) const {
28 | memcpy(dst, src, n);
29 | }
30 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memcpyDeviceToHost(void* dst, const void* src, size_t n) const {
31 | memcpy(dst, src, n);
32 | }
33 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void memset(void* buffer, int c, size_t n) const {
34 | ::memset(buffer, c, n);
35 | }
36 |
37 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t numThreads() const {
38 | #ifndef __CUDA_ARCH__
39 | // Running on the host CPU
40 | return 1;
41 | #else
42 | // Running on a CUDA device
43 | return 32;
44 | #endif
45 | }
46 |
47 | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE int majorDeviceVersion() const {
48 | #ifndef __CUDA_ARCH__
49 | // Running single threaded on the host CPU
50 | // Should return an enum that encodes the ISA supported by the CPU
51 | return 1;
52 | #else
53 | // Running on a CUDA device
54 | return __CUDA_ARCH__ / 100;
55 | #endif
56 | }
57 | };
58 |
59 | } // namespace Eigen
60 |
61 | #endif // EIGEN_CXX11_TENSOR_TENSOR_DEVICE_DEFAULT_H
62 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2014 Benoit Steiner
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_CXX11_TENSOR_TENSOR_IO_H
11 | #define EIGEN_CXX11_TENSOR_TENSOR_IO_H
12 |
13 | namespace Eigen {
14 |
15 | namespace internal {
16 | template<>
17 | struct significant_decimals_impl
18 | : significant_decimals_default_impl
19 | {};
20 | }
21 |
22 |
23 | template
24 | std::ostream& operator << (std::ostream& os, const TensorBase& expr) {
25 | // Evaluate the expression if needed
26 | TensorForcedEvalOp eval = expr.eval();
27 | TensorEvaluator, DefaultDevice> tensor(eval, DefaultDevice());
28 | tensor.evalSubExprsIfNeeded(NULL);
29 |
30 | typedef typename internal::remove_const::type Scalar;
31 | typedef typename T::Index Index;
32 | typedef typename TensorEvaluator, DefaultDevice>::Dimensions Dimensions;
33 | const Index total_size = internal::array_prod(tensor.dimensions());
34 |
35 | // Print the tensor as a 1d vector or a 2d matrix.
36 | static const int rank = internal::array_size::value;
37 | if (rank == 0) {
38 | os << tensor.coeff(0);
39 | } else if (rank == 1) {
40 | Map > array(const_cast(tensor.data()), total_size);
41 | os << array;
42 | } else {
43 | const Index first_dim = Eigen::internal::array_get<0>(tensor.dimensions());
44 | static const int layout = TensorEvaluator, DefaultDevice>::Layout;
45 | Map > matrix(const_cast(tensor.data()), first_dim, total_size/first_dim);
46 | os << matrix;
47 | }
48 |
49 | // Cleanup.
50 | tensor.cleanup();
51 | return os;
52 | }
53 |
54 | } // end namespace Eigen
55 |
56 | #endif // EIGEN_CXX11_TENSOR_TENSOR_IO_H
57 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2015 Benoit Steiner
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_CXX11_TENSOR_TENSOR_META_MACROS_H
11 | #define EIGEN_CXX11_TENSOR_TENSOR_META_MACROS_H
12 |
13 |
14 | /** use this macro in sfinae selection in templated functions
15 | *
16 | * template::value , int >::type = 0
18 | * >
19 | * void foo(){}
20 | *
21 | * becomes =>
22 | *
23 | * template::value )
25 | * >
26 | * void foo(){}
27 | */
28 |
29 | // SFINAE requires variadic templates
30 | #ifndef __CUDACC__
31 | #ifdef EIGEN_HAS_VARIADIC_TEMPLATES
32 | // SFINAE doesn't work for gcc <= 4.7
33 | #ifdef EIGEN_COMP_GNUC
34 | #if EIGEN_GNUC_AT_LEAST(4,8)
35 | #define EIGEN_HAS_SFINAE
36 | #endif
37 | #else
38 | #define EIGEN_HAS_SFINAE
39 | #endif
40 | #endif
41 | #endif
42 |
43 | #define EIGEN_SFINAE_ENABLE_IF( __condition__ ) \
44 | typename internal::enable_if< ( __condition__ ) , int >::type = 0
45 |
46 |
47 | #if defined(EIGEN_HAS_CONSTEXPR)
48 | #define EIGEN_CONSTEXPR constexpr
49 | #else
50 | #define EIGEN_CONSTEXPR
51 | #endif
52 |
53 |
54 | #endif
55 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/IterativeSolvers:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2008-2009 Gael Guennebaud
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_ITERATIVE_SOLVERS_MODULE_H
11 | #define EIGEN_ITERATIVE_SOLVERS_MODULE_H
12 |
13 | #include
14 |
15 | /**
16 | * \defgroup IterativeSolvers_Module Iterative solvers module
17 | * This module aims to provide various iterative linear and non linear solver algorithms.
18 | * It currently provides:
19 | * - a constrained conjugate gradient
20 | * - a Householder GMRES implementation
21 | * \code
22 | * #include
23 | * \endcode
24 | */
25 | //@{
26 |
27 | #ifndef EIGEN_MPL2_ONLY
28 | #include "src/IterativeSolvers/IterationController.h"
29 | #include "src/IterativeSolvers/ConstrainedConjGrad.h"
30 | #endif
31 |
32 | #include "src/IterativeSolvers/IncompleteLU.h"
33 | #include "../../Eigen/Jacobi"
34 | #include "../../Eigen/Householder"
35 | #include "src/IterativeSolvers/GMRES.h"
36 | #include "src/IterativeSolvers/DGMRES.h"
37 | //#include "src/IterativeSolvers/SSORPreconditioner.h"
38 | #include "src/IterativeSolvers/MINRES.h"
39 |
40 | //@}
41 |
42 | #endif // EIGEN_ITERATIVE_SOLVERS_MODULE_H
43 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/KroneckerProduct:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla
6 | // Public License v. 2.0. If a copy of the MPL was not distributed
7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | #ifndef EIGEN_KRONECKER_PRODUCT_MODULE_H
10 | #define EIGEN_KRONECKER_PRODUCT_MODULE_H
11 |
12 | #include "../../Eigen/Core"
13 |
14 | #include "../../Eigen/src/Core/util/DisableStupidWarnings.h"
15 |
16 | namespace Eigen {
17 |
18 | /**
19 | * \defgroup KroneckerProduct_Module KroneckerProduct module
20 | *
21 | * This module contains an experimental Kronecker product implementation.
22 | *
23 | * \code
24 | * #include
25 | * \endcode
26 | */
27 |
28 | } // namespace Eigen
29 |
30 | #include "src/KroneckerProduct/KroneckerTensorProduct.h"
31 |
32 | #include "../../Eigen/src/Core/util/ReenableStupidWarnings.h"
33 |
34 | #endif // EIGEN_KRONECKER_PRODUCT_MODULE_H
35 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/LevenbergMarquardt:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009 Thomas Capricelli
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_LEVENBERGMARQUARDT_MODULE
11 | #define EIGEN_LEVENBERGMARQUARDT_MODULE
12 |
13 | // #include
14 |
15 | #include
16 | #include
17 | #include
18 | #include
19 |
20 | #include
21 |
22 | /**
23 | * \defgroup LevenbergMarquardt_Module Levenberg-Marquardt module
24 | *
25 | * \code
26 | * #include
27 | * \endcode
28 | *
29 | *
30 | */
31 |
32 | #include "Eigen/SparseCore"
33 | #ifndef EIGEN_PARSED_BY_DOXYGEN
34 |
35 | #include "src/LevenbergMarquardt/LMqrsolv.h"
36 | #include "src/LevenbergMarquardt/LMcovar.h"
37 | #include "src/LevenbergMarquardt/LMpar.h"
38 |
39 | #endif
40 |
41 | #include "src/LevenbergMarquardt/LevenbergMarquardt.h"
42 | #include "src/LevenbergMarquardt/LMonestep.h"
43 |
44 |
45 | #endif // EIGEN_LEVENBERGMARQUARDT_MODULE
46 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/MoreVectorization:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla
6 | // Public License v. 2.0. If a copy of the MPL was not distributed
7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | #ifndef EIGEN_MOREVECTORIZATION_MODULE_H
10 | #define EIGEN_MOREVECTORIZATION_MODULE_H
11 |
12 | #include
13 |
14 | namespace Eigen {
15 |
16 | /**
17 | * \defgroup MoreVectorization More vectorization module
18 | */
19 |
20 | }
21 |
22 | #include "src/MoreVectorization/MathFunctions.h"
23 |
24 | #endif // EIGEN_MOREVECTORIZATION_MODULE_H
25 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/NumericalDiff:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | // Copyright (C) 2009 Thomas Capricelli
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_NUMERICALDIFF_MODULE
11 | #define EIGEN_NUMERICALDIFF_MODULE
12 |
13 | #include
14 |
15 | namespace Eigen {
16 |
17 | /**
18 | * \defgroup NumericalDiff_Module Numerical differentiation module
19 | *
20 | * \code
21 | * #include
22 | * \endcode
23 | *
24 | * See http://en.wikipedia.org/wiki/Numerical_differentiation
25 | *
26 | * Warning : this should NOT be confused with automatic differentiation, which
27 | * is a different method and has its own module in Eigen : \ref
28 | * AutoDiff_Module.
29 | *
30 | * Currently only "Forward" and "Central" schemes are implemented. Those
31 | * are basic methods, and there exist some more elaborated way of
32 | * computing such approximates. They are implemented using both
33 | * proprietary and free software, and usually requires linking to an
34 | * external library. It is very easy for you to write a functor
35 | * using such software, and the purpose is quite orthogonal to what we
36 | * want to achieve with Eigen.
37 | *
38 | * This is why we will not provide wrappers for every great numerical
39 | * differentiation software that exist, but should rather stick with those
40 | * basic ones, that still are useful for testing.
41 | *
42 | * Also, the \ref NonLinearOptimization_Module needs this in order to
43 | * provide full features compatibility with the original (c)minpack
44 | * package.
45 | *
46 | */
47 | }
48 |
49 | //@{
50 |
51 | #include "src/NumericalDiff/NumericalDiff.h"
52 |
53 | //@}
54 |
55 |
56 | #endif // EIGEN_NUMERICALDIFF_MODULE
57 |
--------------------------------------------------------------------------------
/SRC/include/eigen3/unsupported/Eigen/Skyline:
--------------------------------------------------------------------------------
1 | // This file is part of Eigen, a lightweight C++ template library
2 | // for linear algebra.
3 | //
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla
6 | // Public License v. 2.0. If a copy of the MPL was not distributed
7 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | #ifndef EIGEN_SKYLINE_MODULE_H
10 | #define EIGEN_SKYLINE_MODULE_H
11 |
12 |
13 | #include "Eigen/Core"
14 |
15 | #include "Eigen/src/Core/util/DisableStupidWarnings.h"
16 |
17 | #include