Full Code of yyccR/Location for AI

master 3d163f28970d cached
1683 files
13.4 MB
3.6M tokens
7488 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (14,442K chars total). Download the full file to get everything.
Repository: yyccR/Location
Branch: master
Commit: 3d163f28970d
Files: 1683
Total size: 13.4 MB

Directory structure:
gitextract_8z7l01r9/

├── .gitignore
├── .travis.yml
├── CMakeLists.txt
├── README.md
├── README_CN.md
├── config/
│   ├── CMakeLists.txt
│   ├── Config.cpp
│   ├── Config.h
│   └── config_files/
│       ├── Android.config
│       └── IOS.config
├── docs/
│   ├── SensorCalibration.md
│   ├── SensorDataChecking.md
│   ├── SomeTestCaseResults.md
│   ├── apiCallDetails.md
│   ├── implementDetails.md
│   ├── sensors.md
│   ├── trainingStopDetectModel.md
│   └── workflow.md
├── include/
│   └── eigen3/
│       ├── .hg_archival.txt
│       ├── .hgeol
│       ├── .hgignore
│       ├── .hgtags
│       ├── CMakeLists.txt
│       ├── COPYING.BSD
│       ├── COPYING.GPL
│       ├── COPYING.LGPL
│       ├── COPYING.MINPACK
│       ├── COPYING.MPL2
│       ├── COPYING.README
│       ├── CTestConfig.cmake
│       ├── CTestCustom.cmake.in
│       ├── Eigen/
│       │   ├── CMakeLists.txt
│       │   ├── 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_LAPACKE.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
│       │       │   ├── ConditionEstimator.h
│       │       │   ├── CoreEvaluators.h
│       │       │   ├── CoreIterators.h
│       │       │   ├── CwiseBinaryOp.h
│       │       │   ├── CwiseNullaryOp.h
│       │       │   ├── CwiseTernaryOp.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
│       │       │   ├── MathFunctionsImpl.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
│       │       │   ├── 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
│       │       │   │   ├── AVX512/
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── AltiVec/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── CUDA/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── Half.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   ├── PacketMath.h
│       │       │   │   │   ├── PacketMathHalf.h
│       │       │   │   │   └── TypeCasting.h
│       │       │   │   ├── Default/
│       │       │   │   │   ├── ConjHelper.h
│       │       │   │   │   └── Settings.h
│       │       │   │   ├── NEON/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── SSE/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   ├── PacketMath.h
│       │       │   │   │   └── TypeCasting.h
│       │       │   │   └── ZVector/
│       │       │   │       ├── Complex.h
│       │       │   │       ├── MathFunctions.h
│       │       │   │       └── PacketMath.h
│       │       │   ├── functors/
│       │       │   │   ├── AssignmentFunctors.h
│       │       │   │   ├── BinaryFunctors.h
│       │       │   │   ├── NullaryFunctors.h
│       │       │   │   ├── StlFunctors.h
│       │       │   │   ├── TernaryFunctors.h
│       │       │   │   └── UnaryFunctors.h
│       │       │   ├── products/
│       │       │   │   ├── GeneralBlockPanelKernel.h
│       │       │   │   ├── GeneralMatrixMatrix.h
│       │       │   │   ├── GeneralMatrixMatrixTriangular.h
│       │       │   │   ├── GeneralMatrixMatrixTriangular_BLAS.h
│       │       │   │   ├── GeneralMatrixMatrix_BLAS.h
│       │       │   │   ├── GeneralMatrixVector.h
│       │       │   │   ├── GeneralMatrixVector_BLAS.h
│       │       │   │   ├── Parallelizer.h
│       │       │   │   ├── SelfadjointMatrixMatrix.h
│       │       │   │   ├── SelfadjointMatrixMatrix_BLAS.h
│       │       │   │   ├── SelfadjointMatrixVector.h
│       │       │   │   ├── SelfadjointMatrixVector_BLAS.h
│       │       │   │   ├── SelfadjointProduct.h
│       │       │   │   ├── SelfadjointRank2Update.h
│       │       │   │   ├── TriangularMatrixMatrix.h
│       │       │   │   ├── TriangularMatrixMatrix_BLAS.h
│       │       │   │   ├── TriangularMatrixVector.h
│       │       │   │   ├── TriangularMatrixVector_BLAS.h
│       │       │   │   ├── TriangularSolverMatrix.h
│       │       │   │   ├── TriangularSolverMatrix_BLAS.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_LAPACKE.h
│       │       │   ├── EigenSolver.h
│       │       │   ├── GeneralizedEigenSolver.h
│       │       │   ├── GeneralizedSelfAdjointEigenSolver.h
│       │       │   ├── HessenbergDecomposition.h
│       │       │   ├── MatrixBaseEigenvalues.h
│       │       │   ├── RealQZ.h
│       │       │   ├── RealSchur.h
│       │       │   ├── RealSchur_LAPACKE.h
│       │       │   ├── SelfAdjointEigenSolver.h
│       │       │   ├── SelfAdjointEigenSolver_LAPACKE.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_LAPACKE.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_LAPACKE.h
│       │       │   ├── CompleteOrthogonalDecomposition.h
│       │       │   ├── FullPivHouseholderQR.h
│       │       │   ├── HouseholderQR.h
│       │       │   └── HouseholderQR_LAPACKE.h
│       │       ├── SPQRSupport/
│       │       │   └── SuiteSparseQRSupport.h
│       │       ├── SVD/
│       │       │   ├── BDCSVD.h
│       │       │   ├── JacobiSVD.h
│       │       │   ├── JacobiSVD_LAPACKE.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
│       │       │   ├── RealSvd2x2.h
│       │       │   ├── blas.h
│       │       │   ├── lapack.h
│       │       │   ├── lapacke.h
│       │       │   └── lapacke_mangling.h
│       │       └── plugins/
│       │           ├── ArrayCwiseBinaryOps.h
│       │           ├── ArrayCwiseUnaryOps.h
│       │           ├── BlockMethods.h
│       │           ├── CommonCwiseBinaryOps.h
│       │           ├── CommonCwiseUnaryOps.h
│       │           ├── MatrixCwiseBinaryOps.h
│       │           └── MatrixCwiseUnaryOps.h
│       ├── INSTALL
│       ├── README.md
│       ├── bench/
│       │   ├── BenchSparseUtil.h
│       │   ├── BenchTimer.h
│       │   ├── BenchUtil.h
│       │   ├── README.txt
│       │   ├── analyze-blocking-sizes.cpp
│       │   ├── basicbench.cxxlist
│       │   ├── basicbenchmark.cpp
│       │   ├── basicbenchmark.h
│       │   ├── benchBlasGemm.cpp
│       │   ├── benchCholesky.cpp
│       │   ├── benchEigenSolver.cpp
│       │   ├── benchFFT.cpp
│       │   ├── benchGeometry.cpp
│       │   ├── benchVecAdd.cpp
│       │   ├── bench_gemm.cpp
│       │   ├── bench_multi_compilers.sh
│       │   ├── bench_norm.cpp
│       │   ├── bench_reverse.cpp
│       │   ├── bench_sum.cpp
│       │   ├── bench_unrolling
│       │   ├── benchmark-blocking-sizes.cpp
│       │   ├── benchmark.cpp
│       │   ├── benchmarkSlice.cpp
│       │   ├── benchmarkX.cpp
│       │   ├── benchmarkXcwise.cpp
│       │   ├── benchmark_suite
│       │   ├── btl/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── COPYING
│       │   │   ├── README
│       │   │   ├── actions/
│       │   │   │   ├── action_aat_product.hh
│       │   │   │   ├── action_ata_product.hh
│       │   │   │   ├── action_atv_product.hh
│       │   │   │   ├── action_axpby.hh
│       │   │   │   ├── action_axpy.hh
│       │   │   │   ├── action_cholesky.hh
│       │   │   │   ├── action_ger.hh
│       │   │   │   ├── action_hessenberg.hh
│       │   │   │   ├── action_lu_decomp.hh
│       │   │   │   ├── action_lu_solve.hh
│       │   │   │   ├── action_matrix_matrix_product.hh
│       │   │   │   ├── action_matrix_matrix_product_bis.hh
│       │   │   │   ├── action_matrix_vector_product.hh
│       │   │   │   ├── action_partial_lu.hh
│       │   │   │   ├── action_rot.hh
│       │   │   │   ├── action_symv.hh
│       │   │   │   ├── action_syr2.hh
│       │   │   │   ├── action_trisolve.hh
│       │   │   │   ├── action_trisolve_matrix.hh
│       │   │   │   ├── action_trmm.hh
│       │   │   │   └── basic_actions.hh
│       │   │   ├── cmake/
│       │   │   │   ├── FindACML.cmake
│       │   │   │   ├── FindATLAS.cmake
│       │   │   │   ├── FindBLAZE.cmake
│       │   │   │   ├── FindBlitz.cmake
│       │   │   │   ├── FindCBLAS.cmake
│       │   │   │   ├── FindGMM.cmake
│       │   │   │   ├── FindMKL.cmake
│       │   │   │   ├── FindMTL4.cmake
│       │   │   │   ├── FindOPENBLAS.cmake
│       │   │   │   ├── FindPackageHandleStandardArgs.cmake
│       │   │   │   ├── FindTvmet.cmake
│       │   │   │   └── MacroOptionalAddSubdirectory.cmake
│       │   │   ├── data/
│       │   │   │   ├── CMakeLists.txt
│       │   │   │   ├── action_settings.txt
│       │   │   │   ├── gnuplot_common_settings.hh
│       │   │   │   ├── go_mean
│       │   │   │   ├── mean.cxx
│       │   │   │   ├── mk_gnuplot_script.sh
│       │   │   │   ├── mk_mean_script.sh
│       │   │   │   ├── mk_new_gnuplot.sh
│       │   │   │   ├── perlib_plot_settings.txt
│       │   │   │   ├── regularize.cxx
│       │   │   │   ├── smooth.cxx
│       │   │   │   └── smooth_all.sh
│       │   │   ├── generic_bench/
│       │   │   │   ├── bench.hh
│       │   │   │   ├── bench_parameter.hh
│       │   │   │   ├── btl.hh
│       │   │   │   ├── init/
│       │   │   │   │   ├── init_function.hh
│       │   │   │   │   ├── init_matrix.hh
│       │   │   │   │   └── init_vector.hh
│       │   │   │   ├── static/
│       │   │   │   │   ├── bench_static.hh
│       │   │   │   │   ├── intel_bench_fixed_size.hh
│       │   │   │   │   └── static_size_generator.hh
│       │   │   │   ├── timers/
│       │   │   │   │   ├── STL_perf_analyzer.hh
│       │   │   │   │   ├── STL_timer.hh
│       │   │   │   │   ├── mixed_perf_analyzer.hh
│       │   │   │   │   ├── portable_perf_analyzer.hh
│       │   │   │   │   ├── portable_perf_analyzer_old.hh
│       │   │   │   │   ├── portable_timer.hh
│       │   │   │   │   ├── x86_perf_analyzer.hh
│       │   │   │   │   └── x86_timer.hh
│       │   │   │   └── utils/
│       │   │   │       ├── size_lin_log.hh
│       │   │   │       ├── size_log.hh
│       │   │   │       ├── utilities.h
│       │   │   │       └── xy_file.hh
│       │   │   └── libs/
│       │   │       ├── BLAS/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blas.h
│       │   │       │   ├── blas_interface.hh
│       │   │       │   ├── blas_interface_impl.hh
│       │   │       │   ├── c_interface_base.h
│       │   │       │   └── main.cpp
│       │   │       ├── STL/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── STL_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── blaze/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blaze_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── blitz/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blitz_LU_solve_interface.hh
│       │   │       │   ├── blitz_interface.hh
│       │   │       │   ├── btl_blitz.cpp
│       │   │       │   ├── btl_tiny_blitz.cpp
│       │   │       │   └── tiny_blitz_interface.hh
│       │   │       ├── eigen2/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── btl_tiny_eigen2.cpp
│       │   │       │   ├── eigen2_interface.hh
│       │   │       │   ├── main_adv.cpp
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   └── main_vecmat.cpp
│       │   │       ├── eigen3/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── btl_tiny_eigen3.cpp
│       │   │       │   ├── eigen3_interface.hh
│       │   │       │   ├── main_adv.cpp
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   └── main_vecmat.cpp
│       │   │       ├── gmm/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── gmm_LU_solve_interface.hh
│       │   │       │   ├── gmm_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── mtl4/
│       │   │       │   ├── .kdbgrc.main
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main.cpp
│       │   │       │   ├── mtl4_LU_solve_interface.hh
│       │   │       │   └── mtl4_interface.hh
│       │   │       ├── tensors/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   ├── main_vecmat.cpp
│       │   │       │   └── tensor_interface.hh
│       │   │       ├── tvmet/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main.cpp
│       │   │       │   └── tvmet_interface.hh
│       │   │       └── ublas/
│       │   │           ├── CMakeLists.txt
│       │   │           ├── main.cpp
│       │   │           └── ublas_interface.hh
│       │   ├── check_cache_queries.cpp
│       │   ├── dense_solvers.cpp
│       │   ├── eig33.cpp
│       │   ├── geometry.cpp
│       │   ├── perf_monitoring/
│       │   │   └── gemm/
│       │   │       ├── changesets.txt
│       │   │       ├── gemm.cpp
│       │   │       ├── gemm_settings.txt
│       │   │       ├── lazy_gemm.cpp
│       │   │       ├── lazy_gemm_settings.txt
│       │   │       ├── make_plot.sh
│       │   │       └── run.sh
│       │   ├── product_threshold.cpp
│       │   ├── quat_slerp.cpp
│       │   ├── quatmul.cpp
│       │   ├── sparse_cholesky.cpp
│       │   ├── sparse_dense_product.cpp
│       │   ├── sparse_lu.cpp
│       │   ├── sparse_product.cpp
│       │   ├── sparse_randomsetter.cpp
│       │   ├── sparse_setter.cpp
│       │   ├── sparse_transpose.cpp
│       │   ├── sparse_trisolver.cpp
│       │   ├── spbench/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── sp_solver.cpp
│       │   │   ├── spbench.dtd
│       │   │   ├── spbenchsolver.cpp
│       │   │   ├── spbenchsolver.h
│       │   │   ├── spbenchstyle.h
│       │   │   └── test_sparseLU.cpp
│       │   ├── spmv.cpp
│       │   ├── tensors/
│       │   │   ├── README
│       │   │   ├── benchmark.h
│       │   │   ├── benchmark_main.cc
│       │   │   ├── contraction_benchmarks_cpu.cc
│       │   │   ├── tensor_benchmarks.h
│       │   │   ├── tensor_benchmarks_cpu.cc
│       │   │   ├── tensor_benchmarks_fp16_gpu.cu
│       │   │   ├── tensor_benchmarks_gpu.cu
│       │   │   └── tensor_benchmarks_sycl.cc
│       │   └── vdw_new.cpp
│       ├── blas/
│       │   ├── BandTriangularSolver.h
│       │   ├── CMakeLists.txt
│       │   ├── GeneralRank1Update.h
│       │   ├── PackedSelfadjointProduct.h
│       │   ├── PackedTriangularMatrixVector.h
│       │   ├── PackedTriangularSolverVector.h
│       │   ├── README.txt
│       │   ├── Rank2Update.h
│       │   ├── common.h
│       │   ├── complex_double.cpp
│       │   ├── complex_single.cpp
│       │   ├── double.cpp
│       │   ├── f2c/
│       │   │   ├── chbmv.c
│       │   │   ├── chpmv.c
│       │   │   ├── complexdots.c
│       │   │   ├── ctbmv.c
│       │   │   ├── d_cnjg.c
│       │   │   ├── datatypes.h
│       │   │   ├── drotm.c
│       │   │   ├── drotmg.c
│       │   │   ├── dsbmv.c
│       │   │   ├── dspmv.c
│       │   │   ├── dtbmv.c
│       │   │   ├── lsame.c
│       │   │   ├── r_cnjg.c
│       │   │   ├── srotm.c
│       │   │   ├── srotmg.c
│       │   │   ├── ssbmv.c
│       │   │   ├── sspmv.c
│       │   │   ├── stbmv.c
│       │   │   ├── zhbmv.c
│       │   │   ├── zhpmv.c
│       │   │   └── ztbmv.c
│       │   ├── fortran/
│       │   │   └── complexdots.f
│       │   ├── level1_cplx_impl.h
│       │   ├── level1_impl.h
│       │   ├── level1_real_impl.h
│       │   ├── level2_cplx_impl.h
│       │   ├── level2_impl.h
│       │   ├── level2_real_impl.h
│       │   ├── level3_impl.h
│       │   ├── single.cpp
│       │   ├── testing/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── cblat1.f
│       │   │   ├── cblat2.f
│       │   │   ├── cblat3.f
│       │   │   ├── dblat1.f
│       │   │   ├── dblat2.f
│       │   │   ├── dblat3.f
│       │   │   ├── runblastest.sh
│       │   │   ├── sblat1.f
│       │   │   ├── sblat2.f
│       │   │   ├── sblat3.f
│       │   │   ├── zblat1.f
│       │   │   ├── zblat2.f
│       │   │   └── zblat3.f
│       │   └── xerbla.cpp
│       ├── cmake/
│       │   ├── Eigen3Config.cmake.in
│       │   ├── Eigen3ConfigLegacy.cmake.in
│       │   ├── EigenConfigureTesting.cmake
│       │   ├── EigenDetermineOSVersion.cmake
│       │   ├── EigenDetermineVSServicePack.cmake
│       │   ├── EigenTesting.cmake
│       │   ├── EigenUninstall.cmake
│       │   ├── FindAdolc.cmake
│       │   ├── FindBLAS.cmake
│       │   ├── FindBLASEXT.cmake
│       │   ├── FindCholmod.cmake
│       │   ├── FindComputeCpp.cmake
│       │   ├── FindEigen2.cmake
│       │   ├── FindEigen3.cmake
│       │   ├── FindFFTW.cmake
│       │   ├── FindGLEW.cmake
│       │   ├── FindGMP.cmake
│       │   ├── FindGSL.cmake
│       │   ├── FindGoogleHash.cmake
│       │   ├── FindHWLOC.cmake
│       │   ├── FindLAPACK.cmake
│       │   ├── FindMPFR.cmake
│       │   ├── FindMetis.cmake
│       │   ├── FindPTSCOTCH.cmake
│       │   ├── FindPastix.cmake
│       │   ├── FindSPQR.cmake
│       │   ├── FindScotch.cmake
│       │   ├── FindStandardMathLibrary.cmake
│       │   ├── FindSuperLU.cmake
│       │   ├── FindUmfpack.cmake
│       │   ├── RegexUtils.cmake
│       │   ├── UseEigen3.cmake
│       │   └── language_support.cmake
│       ├── debug/
│       │   ├── gdb/
│       │   │   ├── __init__.py
│       │   │   └── printers.py
│       │   └── msvc/
│       │       └── eigen.natvis
│       ├── demos/
│       │   ├── CMakeLists.txt
│       │   ├── mandelbrot/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── README
│       │   │   ├── mandelbrot.cpp
│       │   │   └── mandelbrot.h
│       │   ├── mix_eigen_and_c/
│       │   │   ├── README
│       │   │   ├── binary_library.cpp
│       │   │   ├── binary_library.h
│       │   │   └── example.c
│       │   └── opengl/
│       │       ├── CMakeLists.txt
│       │       ├── README
│       │       ├── camera.cpp
│       │       ├── camera.h
│       │       ├── gpuhelper.cpp
│       │       ├── gpuhelper.h
│       │       ├── icosphere.cpp
│       │       ├── icosphere.h
│       │       ├── quaternion_demo.cpp
│       │       ├── quaternion_demo.h
│       │       ├── trackball.cpp
│       │       └── trackball.h
│       ├── doc/
│       │   ├── A05_PortingFrom2To3.dox
│       │   ├── AsciiQuickReference.txt
│       │   ├── B01_Experimental.dox
│       │   ├── CMakeLists.txt
│       │   ├── ClassHierarchy.dox
│       │   ├── CoeffwiseMathFunctionsTable.dox
│       │   ├── CustomizingEigen_CustomScalar.dox
│       │   ├── CustomizingEigen_InheritingMatrix.dox
│       │   ├── CustomizingEigen_NullaryExpr.dox
│       │   ├── CustomizingEigen_Plugins.dox
│       │   ├── DenseDecompositionBenchmark.dox
│       │   ├── Doxyfile.in
│       │   ├── FixedSizeVectorizable.dox
│       │   ├── FunctionsTakingEigenTypes.dox
│       │   ├── HiPerformance.dox
│       │   ├── InplaceDecomposition.dox
│       │   ├── InsideEigenExample.dox
│       │   ├── LeastSquares.dox
│       │   ├── Manual.dox
│       │   ├── MatrixfreeSolverExample.dox
│       │   ├── NewExpressionType.dox
│       │   ├── Overview.dox
│       │   ├── PassingByValue.dox
│       │   ├── Pitfalls.dox
│       │   ├── PreprocessorDirectives.dox
│       │   ├── QuickReference.dox
│       │   ├── QuickStartGuide.dox
│       │   ├── SparseLinearSystems.dox
│       │   ├── SparseQuickReference.dox
│       │   ├── StlContainers.dox
│       │   ├── StorageOrders.dox
│       │   ├── StructHavingEigenMembers.dox
│       │   ├── TemplateKeyword.dox
│       │   ├── TopicAliasing.dox
│       │   ├── TopicAssertions.dox
│       │   ├── TopicCMakeGuide.dox
│       │   ├── TopicEigenExpressionTemplates.dox
│       │   ├── TopicLazyEvaluation.dox
│       │   ├── TopicLinearAlgebraDecompositions.dox
│       │   ├── TopicMultithreading.dox
│       │   ├── TopicResizing.dox
│       │   ├── TopicScalarTypes.dox
│       │   ├── TopicVectorization.dox
│       │   ├── TutorialAdvancedInitialization.dox
│       │   ├── TutorialArrayClass.dox
│       │   ├── TutorialBlockOperations.dox
│       │   ├── TutorialGeometry.dox
│       │   ├── TutorialLinearAlgebra.dox
│       │   ├── TutorialMapClass.dox
│       │   ├── TutorialMatrixArithmetic.dox
│       │   ├── TutorialMatrixClass.dox
│       │   ├── TutorialReductionsVisitorsBroadcasting.dox
│       │   ├── TutorialReshapeSlicing.dox
│       │   ├── TutorialSparse.dox
│       │   ├── TutorialSparse_example_details.dox
│       │   ├── UnalignedArrayAssert.dox
│       │   ├── UsingBlasLapackBackends.dox
│       │   ├── UsingIntelMKL.dox
│       │   ├── UsingNVCC.dox
│       │   ├── WrongStackAlignment.dox
│       │   ├── eigen_navtree_hacks.js
│       │   ├── eigendoxy.css
│       │   ├── eigendoxy_footer.html.in
│       │   ├── eigendoxy_header.html.in
│       │   ├── eigendoxy_layout.xml.in
│       │   ├── eigendoxy_tabs.css
│       │   ├── examples/
│       │   │   ├── .krazy
│       │   │   ├── CMakeLists.txt
│       │   │   ├── CustomizingEigen_Inheritance.cpp
│       │   │   ├── Cwise_erf.cpp
│       │   │   ├── Cwise_erfc.cpp
│       │   │   ├── Cwise_lgamma.cpp
│       │   │   ├── DenseBase_middleCols_int.cpp
│       │   │   ├── DenseBase_middleRows_int.cpp
│       │   │   ├── DenseBase_template_int_middleCols.cpp
│       │   │   ├── DenseBase_template_int_middleRows.cpp
│       │   │   ├── QuickStart_example.cpp
│       │   │   ├── QuickStart_example2_dynamic.cpp
│       │   │   ├── QuickStart_example2_fixed.cpp
│       │   │   ├── TemplateKeyword_flexible.cpp
│       │   │   ├── TemplateKeyword_simple.cpp
│       │   │   ├── TutorialInplaceLU.cpp
│       │   │   ├── TutorialLinAlgComputeTwice.cpp
│       │   │   ├── TutorialLinAlgExComputeSolveError.cpp
│       │   │   ├── TutorialLinAlgExSolveColPivHouseholderQR.cpp
│       │   │   ├── TutorialLinAlgExSolveLDLT.cpp
│       │   │   ├── TutorialLinAlgInverseDeterminant.cpp
│       │   │   ├── TutorialLinAlgRankRevealing.cpp
│       │   │   ├── TutorialLinAlgSVDSolve.cpp
│       │   │   ├── TutorialLinAlgSelfAdjointEigenSolver.cpp
│       │   │   ├── TutorialLinAlgSetThreshold.cpp
│       │   │   ├── Tutorial_ArrayClass_accessors.cpp
│       │   │   ├── Tutorial_ArrayClass_addition.cpp
│       │   │   ├── Tutorial_ArrayClass_cwise_other.cpp
│       │   │   ├── Tutorial_ArrayClass_interop.cpp
│       │   │   ├── Tutorial_ArrayClass_interop_matrix.cpp
│       │   │   ├── Tutorial_ArrayClass_mult.cpp
│       │   │   ├── Tutorial_BlockOperations_block_assignment.cpp
│       │   │   ├── Tutorial_BlockOperations_colrow.cpp
│       │   │   ├── Tutorial_BlockOperations_corner.cpp
│       │   │   ├── Tutorial_BlockOperations_print_block.cpp
│       │   │   ├── Tutorial_BlockOperations_vector.cpp
│       │   │   ├── Tutorial_PartialLU_solve.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp
│       │   │   ├── Tutorial_simple_example_dynamic_size.cpp
│       │   │   ├── Tutorial_simple_example_fixed_size.cpp
│       │   │   ├── class_Block.cpp
│       │   │   ├── class_CwiseBinaryOp.cpp
│       │   │   ├── class_CwiseUnaryOp.cpp
│       │   │   ├── class_CwiseUnaryOp_ptrfun.cpp
│       │   │   ├── class_FixedBlock.cpp
│       │   │   ├── class_FixedVectorBlock.cpp
│       │   │   ├── class_VectorBlock.cpp
│       │   │   ├── function_taking_eigenbase.cpp
│       │   │   ├── function_taking_ref.cpp
│       │   │   ├── make_circulant.cpp
│       │   │   ├── make_circulant.cpp.entry
│       │   │   ├── make_circulant.cpp.evaluator
│       │   │   ├── make_circulant.cpp.expression
│       │   │   ├── make_circulant.cpp.main
│       │   │   ├── make_circulant.cpp.preamble
│       │   │   ├── make_circulant.cpp.traits
│       │   │   ├── make_circulant2.cpp
│       │   │   ├── matrixfree_cg.cpp
│       │   │   ├── nullary_indexing.cpp
│       │   │   ├── tut_arithmetic_add_sub.cpp
│       │   │   ├── tut_arithmetic_dot_cross.cpp
│       │   │   ├── tut_arithmetic_matrix_mul.cpp
│       │   │   ├── tut_arithmetic_redux_basic.cpp
│       │   │   ├── tut_arithmetic_scalar_mul_div.cpp
│       │   │   ├── tut_matrix_coefficient_accessors.cpp
│       │   │   ├── tut_matrix_resize.cpp
│       │   │   └── tut_matrix_resize_fixed_size.cpp
│       │   ├── snippets/
│       │   │   ├── .krazy
│       │   │   ├── AngleAxis_mimic_euler.cpp
│       │   │   ├── BiCGSTAB_simple.cpp
│       │   │   ├── BiCGSTAB_step_by_step.cpp
│       │   │   ├── CMakeLists.txt
│       │   │   ├── ColPivHouseholderQR_solve.cpp
│       │   │   ├── ComplexEigenSolver_compute.cpp
│       │   │   ├── ComplexEigenSolver_eigenvalues.cpp
│       │   │   ├── ComplexEigenSolver_eigenvectors.cpp
│       │   │   ├── ComplexSchur_compute.cpp
│       │   │   ├── ComplexSchur_matrixT.cpp
│       │   │   ├── ComplexSchur_matrixU.cpp
│       │   │   ├── Cwise_abs.cpp
│       │   │   ├── Cwise_abs2.cpp
│       │   │   ├── Cwise_acos.cpp
│       │   │   ├── Cwise_arg.cpp
│       │   │   ├── Cwise_array_power_array.cpp
│       │   │   ├── Cwise_asin.cpp
│       │   │   ├── Cwise_atan.cpp
│       │   │   ├── Cwise_boolean_and.cpp
│       │   │   ├── Cwise_boolean_not.cpp
│       │   │   ├── Cwise_boolean_or.cpp
│       │   │   ├── Cwise_boolean_xor.cpp
│       │   │   ├── Cwise_ceil.cpp
│       │   │   ├── Cwise_cos.cpp
│       │   │   ├── Cwise_cosh.cpp
│       │   │   ├── Cwise_cube.cpp
│       │   │   ├── Cwise_equal_equal.cpp
│       │   │   ├── Cwise_exp.cpp
│       │   │   ├── Cwise_floor.cpp
│       │   │   ├── Cwise_greater.cpp
│       │   │   ├── Cwise_greater_equal.cpp
│       │   │   ├── Cwise_inverse.cpp
│       │   │   ├── Cwise_isFinite.cpp
│       │   │   ├── Cwise_isInf.cpp
│       │   │   ├── Cwise_isNaN.cpp
│       │   │   ├── Cwise_less.cpp
│       │   │   ├── Cwise_less_equal.cpp
│       │   │   ├── Cwise_log.cpp
│       │   │   ├── Cwise_log10.cpp
│       │   │   ├── Cwise_max.cpp
│       │   │   ├── Cwise_min.cpp
│       │   │   ├── Cwise_minus.cpp
│       │   │   ├── Cwise_minus_equal.cpp
│       │   │   ├── Cwise_not_equal.cpp
│       │   │   ├── Cwise_plus.cpp
│       │   │   ├── Cwise_plus_equal.cpp
│       │   │   ├── Cwise_pow.cpp
│       │   │   ├── Cwise_product.cpp
│       │   │   ├── Cwise_quotient.cpp
│       │   │   ├── Cwise_round.cpp
│       │   │   ├── Cwise_scalar_power_array.cpp
│       │   │   ├── Cwise_sign.cpp
│       │   │   ├── Cwise_sin.cpp
│       │   │   ├── Cwise_sinh.cpp
│       │   │   ├── Cwise_slash_equal.cpp
│       │   │   ├── Cwise_sqrt.cpp
│       │   │   ├── Cwise_square.cpp
│       │   │   ├── Cwise_tan.cpp
│       │   │   ├── Cwise_tanh.cpp
│       │   │   ├── Cwise_times_equal.cpp
│       │   │   ├── DenseBase_LinSpaced.cpp
│       │   │   ├── DenseBase_LinSpacedInt.cpp
│       │   │   ├── DenseBase_LinSpaced_seq.cpp
│       │   │   ├── DenseBase_setLinSpaced.cpp
│       │   │   ├── DirectionWise_hnormalized.cpp
│       │   │   ├── DirectionWise_replicate.cpp
│       │   │   ├── DirectionWise_replicate_int.cpp
│       │   │   ├── EigenSolver_EigenSolver_MatrixType.cpp
│       │   │   ├── EigenSolver_compute.cpp
│       │   │   ├── EigenSolver_eigenvalues.cpp
│       │   │   ├── EigenSolver_eigenvectors.cpp
│       │   │   ├── EigenSolver_pseudoEigenvectors.cpp
│       │   │   ├── FullPivHouseholderQR_solve.cpp
│       │   │   ├── FullPivLU_image.cpp
│       │   │   ├── FullPivLU_kernel.cpp
│       │   │   ├── FullPivLU_solve.cpp
│       │   │   ├── GeneralizedEigenSolver.cpp
│       │   │   ├── HessenbergDecomposition_compute.cpp
│       │   │   ├── HessenbergDecomposition_matrixH.cpp
│       │   │   ├── HessenbergDecomposition_packedMatrix.cpp
│       │   │   ├── HouseholderQR_householderQ.cpp
│       │   │   ├── HouseholderQR_solve.cpp
│       │   │   ├── HouseholderSequence_HouseholderSequence.cpp
│       │   │   ├── IOFormat.cpp
│       │   │   ├── JacobiSVD_basic.cpp
│       │   │   ├── Jacobi_makeGivens.cpp
│       │   │   ├── Jacobi_makeJacobi.cpp
│       │   │   ├── LLT_example.cpp
│       │   │   ├── LLT_solve.cpp
│       │   │   ├── LeastSquaresNormalEquations.cpp
│       │   │   ├── LeastSquaresQR.cpp
│       │   │   ├── Map_general_stride.cpp
│       │   │   ├── Map_inner_stride.cpp
│       │   │   ├── Map_outer_stride.cpp
│       │   │   ├── Map_placement_new.cpp
│       │   │   ├── Map_simple.cpp
│       │   │   ├── MatrixBase_adjoint.cpp
│       │   │   ├── MatrixBase_all.cpp
│       │   │   ├── MatrixBase_applyOnTheLeft.cpp
│       │   │   ├── MatrixBase_applyOnTheRight.cpp
│       │   │   ├── MatrixBase_array.cpp
│       │   │   ├── MatrixBase_array_const.cpp
│       │   │   ├── MatrixBase_asDiagonal.cpp
│       │   │   ├── MatrixBase_block_int_int.cpp
│       │   │   ├── MatrixBase_block_int_int_int_int.cpp
│       │   │   ├── MatrixBase_bottomLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_bottomRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_bottomRows_int.cpp
│       │   │   ├── MatrixBase_cast.cpp
│       │   │   ├── MatrixBase_col.cpp
│       │   │   ├── MatrixBase_colwise.cpp
│       │   │   ├── MatrixBase_computeInverseAndDetWithCheck.cpp
│       │   │   ├── MatrixBase_computeInverseWithCheck.cpp
│       │   │   ├── MatrixBase_cwiseAbs.cpp
│       │   │   ├── MatrixBase_cwiseAbs2.cpp
│       │   │   ├── MatrixBase_cwiseEqual.cpp
│       │   │   ├── MatrixBase_cwiseInverse.cpp
│       │   │   ├── MatrixBase_cwiseMax.cpp
│       │   │   ├── MatrixBase_cwiseMin.cpp
│       │   │   ├── MatrixBase_cwiseNotEqual.cpp
│       │   │   ├── MatrixBase_cwiseProduct.cpp
│       │   │   ├── MatrixBase_cwiseQuotient.cpp
│       │   │   ├── MatrixBase_cwiseSign.cpp
│       │   │   ├── MatrixBase_cwiseSqrt.cpp
│       │   │   ├── MatrixBase_diagonal.cpp
│       │   │   ├── MatrixBase_diagonal_int.cpp
│       │   │   ├── MatrixBase_diagonal_template_int.cpp
│       │   │   ├── MatrixBase_eigenvalues.cpp
│       │   │   ├── MatrixBase_end_int.cpp
│       │   │   ├── MatrixBase_eval.cpp
│       │   │   ├── MatrixBase_fixedBlock_int_int.cpp
│       │   │   ├── MatrixBase_hnormalized.cpp
│       │   │   ├── MatrixBase_homogeneous.cpp
│       │   │   ├── MatrixBase_identity.cpp
│       │   │   ├── MatrixBase_identity_int_int.cpp
│       │   │   ├── MatrixBase_inverse.cpp
│       │   │   ├── MatrixBase_isDiagonal.cpp
│       │   │   ├── MatrixBase_isIdentity.cpp
│       │   │   ├── MatrixBase_isOnes.cpp
│       │   │   ├── MatrixBase_isOrthogonal.cpp
│       │   │   ├── MatrixBase_isUnitary.cpp
│       │   │   ├── MatrixBase_isZero.cpp
│       │   │   ├── MatrixBase_leftCols_int.cpp
│       │   │   ├── MatrixBase_noalias.cpp
│       │   │   ├── MatrixBase_ones.cpp
│       │   │   ├── MatrixBase_ones_int.cpp
│       │   │   ├── MatrixBase_ones_int_int.cpp
│       │   │   ├── MatrixBase_operatorNorm.cpp
│       │   │   ├── MatrixBase_prod.cpp
│       │   │   ├── MatrixBase_random.cpp
│       │   │   ├── MatrixBase_random_int.cpp
│       │   │   ├── MatrixBase_random_int_int.cpp
│       │   │   ├── MatrixBase_replicate.cpp
│       │   │   ├── MatrixBase_replicate_int_int.cpp
│       │   │   ├── MatrixBase_reverse.cpp
│       │   │   ├── MatrixBase_rightCols_int.cpp
│       │   │   ├── MatrixBase_row.cpp
│       │   │   ├── MatrixBase_rowwise.cpp
│       │   │   ├── MatrixBase_segment_int_int.cpp
│       │   │   ├── MatrixBase_select.cpp
│       │   │   ├── MatrixBase_selfadjointView.cpp
│       │   │   ├── MatrixBase_set.cpp
│       │   │   ├── MatrixBase_setIdentity.cpp
│       │   │   ├── MatrixBase_setOnes.cpp
│       │   │   ├── MatrixBase_setRandom.cpp
│       │   │   ├── MatrixBase_setZero.cpp
│       │   │   ├── MatrixBase_start_int.cpp
│       │   │   ├── MatrixBase_template_int_bottomRows.cpp
│       │   │   ├── MatrixBase_template_int_end.cpp
│       │   │   ├── MatrixBase_template_int_int_block_int_int_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomLeftCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomRightCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_topLeftCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_topLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_topRightCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_topRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_leftCols.cpp
│       │   │   ├── MatrixBase_template_int_rightCols.cpp
│       │   │   ├── MatrixBase_template_int_segment.cpp
│       │   │   ├── MatrixBase_template_int_start.cpp
│       │   │   ├── MatrixBase_template_int_topRows.cpp
│       │   │   ├── MatrixBase_topLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_topRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_topRows_int.cpp
│       │   │   ├── MatrixBase_transpose.cpp
│       │   │   ├── MatrixBase_triangularView.cpp
│       │   │   ├── MatrixBase_zero.cpp
│       │   │   ├── MatrixBase_zero_int.cpp
│       │   │   ├── MatrixBase_zero_int_int.cpp
│       │   │   ├── Matrix_Map_stride.cpp
│       │   │   ├── Matrix_resize_NoChange_int.cpp
│       │   │   ├── Matrix_resize_int.cpp
│       │   │   ├── Matrix_resize_int_NoChange.cpp
│       │   │   ├── Matrix_resize_int_int.cpp
│       │   │   ├── Matrix_setConstant_int.cpp
│       │   │   ├── Matrix_setConstant_int_int.cpp
│       │   │   ├── Matrix_setIdentity_int_int.cpp
│       │   │   ├── Matrix_setOnes_int.cpp
│       │   │   ├── Matrix_setOnes_int_int.cpp
│       │   │   ├── Matrix_setRandom_int.cpp
│       │   │   ├── Matrix_setRandom_int_int.cpp
│       │   │   ├── Matrix_setZero_int.cpp
│       │   │   ├── Matrix_setZero_int_int.cpp
│       │   │   ├── PartialPivLU_solve.cpp
│       │   │   ├── PartialRedux_count.cpp
│       │   │   ├── PartialRedux_maxCoeff.cpp
│       │   │   ├── PartialRedux_minCoeff.cpp
│       │   │   ├── PartialRedux_norm.cpp
│       │   │   ├── PartialRedux_prod.cpp
│       │   │   ├── PartialRedux_squaredNorm.cpp
│       │   │   ├── PartialRedux_sum.cpp
│       │   │   ├── RealQZ_compute.cpp
│       │   │   ├── RealSchur_RealSchur_MatrixType.cpp
│       │   │   ├── RealSchur_compute.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
│       │   │   ├── SelfAdjointEigenSolver_compute_MatrixType.cpp
│       │   │   ├── SelfAdjointEigenSolver_compute_MatrixType2.cpp
│       │   │   ├── SelfAdjointEigenSolver_eigenvalues.cpp
│       │   │   ├── SelfAdjointEigenSolver_eigenvectors.cpp
│       │   │   ├── SelfAdjointEigenSolver_operatorInverseSqrt.cpp
│       │   │   ├── SelfAdjointEigenSolver_operatorSqrt.cpp
│       │   │   ├── SelfAdjointView_eigenvalues.cpp
│       │   │   ├── SelfAdjointView_operatorNorm.cpp
│       │   │   ├── SparseMatrix_coeffs.cpp
│       │   │   ├── TopicAliasing_block.cpp
│       │   │   ├── TopicAliasing_block_correct.cpp
│       │   │   ├── TopicAliasing_cwise.cpp
│       │   │   ├── TopicAliasing_mult1.cpp
│       │   │   ├── TopicAliasing_mult2.cpp
│       │   │   ├── TopicAliasing_mult3.cpp
│       │   │   ├── TopicAliasing_mult4.cpp
│       │   │   ├── TopicAliasing_mult5.cpp
│       │   │   ├── TopicStorageOrders_example.cpp
│       │   │   ├── Triangular_solve.cpp
│       │   │   ├── Tridiagonalization_Tridiagonalization_MatrixType.cpp
│       │   │   ├── Tridiagonalization_compute.cpp
│       │   │   ├── Tridiagonalization_decomposeInPlace.cpp
│       │   │   ├── Tridiagonalization_diagonal.cpp
│       │   │   ├── Tridiagonalization_householderCoefficients.cpp
│       │   │   ├── Tridiagonalization_packedMatrix.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Block.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_CommaTemporary.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Join.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_LinSpaced.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_ThreeWays.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Zero.cpp
│       │   │   ├── Tutorial_Map_rowmajor.cpp
│       │   │   ├── Tutorial_Map_using.cpp
│       │   │   ├── Tutorial_ReshapeMat2Mat.cpp
│       │   │   ├── Tutorial_ReshapeMat2Vec.cpp
│       │   │   ├── Tutorial_SlicingCol.cpp
│       │   │   ├── Tutorial_SlicingVec.cpp
│       │   │   ├── Tutorial_commainit_01.cpp
│       │   │   ├── Tutorial_commainit_01b.cpp
│       │   │   ├── Tutorial_commainit_02.cpp
│       │   │   ├── Tutorial_solve_matrix_inverse.cpp
│       │   │   ├── Tutorial_solve_multiple_rhs.cpp
│       │   │   ├── Tutorial_solve_reuse_decomposition.cpp
│       │   │   ├── Tutorial_solve_singular.cpp
│       │   │   ├── Tutorial_solve_triangular.cpp
│       │   │   ├── Tutorial_solve_triangular_inplace.cpp
│       │   │   ├── VectorwiseOp_homogeneous.cpp
│       │   │   ├── Vectorwise_reverse.cpp
│       │   │   ├── class_FullPivLU.cpp
│       │   │   ├── compile_snippet.cpp.in
│       │   │   ├── tut_arithmetic_redux_minmax.cpp
│       │   │   ├── tut_arithmetic_transpose_aliasing.cpp
│       │   │   ├── tut_arithmetic_transpose_conjugate.cpp
│       │   │   ├── tut_arithmetic_transpose_inplace.cpp
│       │   │   └── tut_matrix_assignment_resizing.cpp
│       │   ├── special_examples/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Tutorial_sparse_example.cpp
│       │   │   ├── Tutorial_sparse_example_details.cpp
│       │   │   └── random_cpp11.cpp
│       │   └── tutorial.cpp
│       ├── eigen3.pc.in
│       ├── failtest/
│       │   ├── CMakeLists.txt
│       │   ├── bdcsvd_int.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_0.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_1.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_2.cpp
│       │   ├── block_on_const_type_actually_const_0.cpp
│       │   ├── block_on_const_type_actually_const_1.cpp
│       │   ├── colpivqr_int.cpp
│       │   ├── const_qualified_block_method_retval_0.cpp
│       │   ├── const_qualified_block_method_retval_1.cpp
│       │   ├── const_qualified_diagonal_method_retval.cpp
│       │   ├── const_qualified_transpose_method_retval.cpp
│       │   ├── cwiseunaryview_nonconst_ctor_on_const_xpr.cpp
│       │   ├── cwiseunaryview_on_const_type_actually_const.cpp
│       │   ├── diagonal_nonconst_ctor_on_const_xpr.cpp
│       │   ├── diagonal_on_const_type_actually_const.cpp
│       │   ├── eigensolver_cplx.cpp
│       │   ├── eigensolver_int.cpp
│       │   ├── failtest_sanity_check.cpp
│       │   ├── fullpivlu_int.cpp
│       │   ├── fullpivqr_int.cpp
│       │   ├── jacobisvd_int.cpp
│       │   ├── ldlt_int.cpp
│       │   ├── llt_int.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_0.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_1.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_2.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_3.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_4.cpp
│       │   ├── map_on_const_type_actually_const_0.cpp
│       │   ├── map_on_const_type_actually_const_1.cpp
│       │   ├── partialpivlu_int.cpp
│       │   ├── qr_int.cpp
│       │   ├── ref_1.cpp
│       │   ├── ref_2.cpp
│       │   ├── ref_3.cpp
│       │   ├── ref_4.cpp
│       │   ├── ref_5.cpp
│       │   ├── selfadjointview_nonconst_ctor_on_const_xpr.cpp
│       │   ├── selfadjointview_on_const_type_actually_const.cpp
│       │   ├── sparse_ref_1.cpp
│       │   ├── sparse_ref_2.cpp
│       │   ├── sparse_ref_3.cpp
│       │   ├── sparse_ref_4.cpp
│       │   ├── sparse_ref_5.cpp
│       │   ├── sparse_storage_mismatch.cpp
│       │   ├── swap_1.cpp
│       │   ├── swap_2.cpp
│       │   ├── ternary_1.cpp
│       │   ├── ternary_2.cpp
│       │   ├── transpose_nonconst_ctor_on_const_xpr.cpp
│       │   ├── transpose_on_const_type_actually_const.cpp
│       │   ├── triangularview_nonconst_ctor_on_const_xpr.cpp
│       │   └── triangularview_on_const_type_actually_const.cpp
│       ├── lapack/
│       │   ├── CMakeLists.txt
│       │   ├── cholesky.cpp
│       │   ├── clacgv.f
│       │   ├── cladiv.f
│       │   ├── clarf.f
│       │   ├── clarfb.f
│       │   ├── clarfg.f
│       │   ├── clarft.f
│       │   ├── complex_double.cpp
│       │   ├── complex_single.cpp
│       │   ├── dladiv.f
│       │   ├── dlamch.f
│       │   ├── dlapy2.f
│       │   ├── dlapy3.f
│       │   ├── dlarf.f
│       │   ├── dlarfb.f
│       │   ├── dlarfg.f
│       │   ├── dlarft.f
│       │   ├── double.cpp
│       │   ├── dsecnd_NONE.f
│       │   ├── eigenvalues.cpp
│       │   ├── ilaclc.f
│       │   ├── ilaclr.f
│       │   ├── iladlc.f
│       │   ├── iladlr.f
│       │   ├── ilaslc.f
│       │   ├── ilaslr.f
│       │   ├── ilazlc.f
│       │   ├── ilazlr.f
│       │   ├── lapack_common.h
│       │   ├── lu.cpp
│       │   ├── second_NONE.f
│       │   ├── single.cpp
│       │   ├── sladiv.f
│       │   ├── slamch.f
│       │   ├── slapy2.f
│       │   ├── slapy3.f
│       │   ├── slarf.f
│       │   ├── slarfb.f
│       │   ├── slarfg.f
│       │   ├── slarft.f
│       │   ├── svd.cpp
│       │   ├── zlacgv.f
│       │   ├── zladiv.f
│       │   ├── zlarf.f
│       │   ├── zlarfb.f
│       │   ├── zlarfg.f
│       │   └── zlarft.f
│       ├── scripts/
│       │   ├── CMakeLists.txt
│       │   ├── buildtests.in
│       │   ├── cdashtesting.cmake.in
│       │   ├── check.in
│       │   ├── debug.in
│       │   ├── eigen_gen_credits.cpp
│       │   ├── eigen_gen_docs
│       │   ├── release.in
│       │   └── relicense.py
│       ├── signature_of_eigen3_matrix_library
│       ├── test/
│       │   ├── CMakeLists.txt
│       │   ├── adjoint.cpp
│       │   ├── array.cpp
│       │   ├── array_for_matrix.cpp
│       │   ├── array_of_string.cpp
│       │   ├── array_replicate.cpp
│       │   ├── array_reverse.cpp
│       │   ├── bandmatrix.cpp
│       │   ├── basicstuff.cpp
│       │   ├── bdcsvd.cpp
│       │   ├── bicgstab.cpp
│       │   ├── block.cpp
│       │   ├── boostmultiprec.cpp
│       │   ├── bug1213.cpp
│       │   ├── bug1213.h
│       │   ├── bug1213_main.cpp
│       │   ├── cholesky.cpp
│       │   ├── cholmod_support.cpp
│       │   ├── commainitializer.cpp
│       │   ├── conjugate_gradient.cpp
│       │   ├── conservative_resize.cpp
│       │   ├── constructor.cpp
│       │   ├── corners.cpp
│       │   ├── ctorleak.cpp
│       │   ├── cuda_basic.cu
│       │   ├── cuda_common.h
│       │   ├── denseLM.cpp
│       │   ├── dense_storage.cpp
│       │   ├── determinant.cpp
│       │   ├── diagonal.cpp
│       │   ├── diagonalmatrices.cpp
│       │   ├── dontalign.cpp
│       │   ├── dynalloc.cpp
│       │   ├── eigen2support.cpp
│       │   ├── eigensolver_complex.cpp
│       │   ├── eigensolver_generalized_real.cpp
│       │   ├── eigensolver_generic.cpp
│       │   ├── eigensolver_selfadjoint.cpp
│       │   ├── evaluator_common.h
│       │   ├── evaluators.cpp
│       │   ├── exceptions.cpp
│       │   ├── fastmath.cpp
│       │   ├── first_aligned.cpp
│       │   ├── geo_alignedbox.cpp
│       │   ├── geo_eulerangles.cpp
│       │   ├── geo_homogeneous.cpp
│       │   ├── geo_hyperplane.cpp
│       │   ├── geo_orthomethods.cpp
│       │   ├── geo_parametrizedline.cpp
│       │   ├── geo_quaternion.cpp
│       │   ├── geo_transformations.cpp
│       │   ├── half_float.cpp
│       │   ├── hessenberg.cpp
│       │   ├── householder.cpp
│       │   ├── incomplete_cholesky.cpp
│       │   ├── inplace_decomposition.cpp
│       │   ├── integer_types.cpp
│       │   ├── inverse.cpp
│       │   ├── is_same_dense.cpp
│       │   ├── jacobi.cpp
│       │   ├── jacobisvd.cpp
│       │   ├── linearstructure.cpp
│       │   ├── lscg.cpp
│       │   ├── lu.cpp
│       │   ├── main.h
│       │   ├── mapped_matrix.cpp
│       │   ├── mapstaticmethods.cpp
│       │   ├── mapstride.cpp
│       │   ├── meta.cpp
│       │   ├── metis_support.cpp
│       │   ├── miscmatrices.cpp
│       │   ├── mixingtypes.cpp
│       │   ├── mpl2only.cpp
│       │   ├── nesting_ops.cpp
│       │   ├── nomalloc.cpp
│       │   ├── nullary.cpp
│       │   ├── numext.cpp
│       │   ├── packetmath.cpp
│       │   ├── pardiso_support.cpp
│       │   ├── pastix_support.cpp
│       │   ├── permutationmatrices.cpp
│       │   ├── prec_inverse_4x4.cpp
│       │   ├── product.h
│       │   ├── product_extra.cpp
│       │   ├── product_large.cpp
│       │   ├── product_mmtr.cpp
│       │   ├── product_notemporary.cpp
│       │   ├── product_selfadjoint.cpp
│       │   ├── product_small.cpp
│       │   ├── product_symm.cpp
│       │   ├── product_syrk.cpp
│       │   ├── product_trmm.cpp
│       │   ├── product_trmv.cpp
│       │   ├── product_trsolve.cpp
│       │   ├── qr.cpp
│       │   ├── qr_colpivoting.cpp
│       │   ├── qr_fullpivoting.cpp
│       │   ├── qtvector.cpp
│       │   ├── rand.cpp
│       │   ├── real_qz.cpp
│       │   ├── redux.cpp
│       │   ├── ref.cpp
│       │   ├── resize.cpp
│       │   ├── rvalue_types.cpp
│       │   ├── schur_complex.cpp
│       │   ├── schur_real.cpp
│       │   ├── selfadjoint.cpp
│       │   ├── simplicial_cholesky.cpp
│       │   ├── sizeof.cpp
│       │   ├── sizeoverflow.cpp
│       │   ├── smallvectors.cpp
│       │   ├── sparse.h
│       │   ├── sparseLM.cpp
│       │   ├── sparse_basic.cpp
│       │   ├── sparse_block.cpp
│       │   ├── sparse_permutations.cpp
│       │   ├── sparse_product.cpp
│       │   ├── sparse_ref.cpp
│       │   ├── sparse_solver.h
│       │   ├── sparse_solvers.cpp
│       │   ├── sparse_vector.cpp
│       │   ├── sparselu.cpp
│       │   ├── sparseqr.cpp
│       │   ├── special_numbers.cpp
│       │   ├── spqr_support.cpp
│       │   ├── stable_norm.cpp
│       │   ├── stddeque.cpp
│       │   ├── stddeque_overload.cpp
│       │   ├── stdlist.cpp
│       │   ├── stdlist_overload.cpp
│       │   ├── stdvector.cpp
│       │   ├── stdvector_overload.cpp
│       │   ├── superlu_support.cpp
│       │   ├── svd_common.h
│       │   ├── svd_fill.h
│       │   ├── swap.cpp
│       │   ├── triangular.cpp
│       │   ├── umeyama.cpp
│       │   ├── umfpack_support.cpp
│       │   ├── unalignedassert.cpp
│       │   ├── unalignedcount.cpp
│       │   ├── upperbidiagonalization.cpp
│       │   ├── vectorization_logic.cpp
│       │   ├── vectorwiseop.cpp
│       │   ├── visitor.cpp
│       │   └── zerosized.cpp
│       └── unsupported/
│           ├── CMakeLists.txt
│           ├── Eigen/
│           │   ├── AdolcForward
│           │   ├── AlignedVector3
│           │   ├── ArpackSupport
│           │   ├── AutoDiff
│           │   ├── BVH
│           │   ├── CMakeLists.txt
│           │   ├── CXX11/
│           │   │   ├── CMakeLists.txt
│           │   │   ├── Tensor
│           │   │   ├── TensorSymmetry
│           │   │   ├── ThreadPool
│           │   │   └── src/
│           │   │       ├── Tensor/
│           │   │       │   ├── README.md
│           │   │       │   ├── Tensor.h
│           │   │       │   ├── TensorArgMax.h
│           │   │       │   ├── TensorAssign.h
│           │   │       │   ├── TensorBase.h
│           │   │       │   ├── TensorBroadcasting.h
│           │   │       │   ├── TensorChipping.h
│           │   │       │   ├── TensorConcatenation.h
│           │   │       │   ├── TensorContraction.h
│           │   │       │   ├── TensorContractionBlocking.h
│           │   │       │   ├── TensorContractionCuda.h
│           │   │       │   ├── TensorContractionMapper.h
│           │   │       │   ├── TensorContractionThreadPool.h
│           │   │       │   ├── TensorConversion.h
│           │   │       │   ├── TensorConvolution.h
│           │   │       │   ├── TensorCostModel.h
│           │   │       │   ├── TensorCustomOp.h
│           │   │       │   ├── TensorDevice.h
│           │   │       │   ├── TensorDeviceCuda.h
│           │   │       │   ├── TensorDeviceDefault.h
│           │   │       │   ├── TensorDeviceSycl.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
│           │   │       │   ├── TensorGlobalFunctions.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
│           │   │       │   ├── TensorRandom.h
│           │   │       │   ├── TensorReduction.h
│           │   │       │   ├── TensorReductionCuda.h
│           │   │       │   ├── TensorReductionSycl.h
│           │   │       │   ├── TensorRef.h
│           │   │       │   ├── TensorReverse.h
│           │   │       │   ├── TensorScan.h
│           │   │       │   ├── TensorShuffling.h
│           │   │       │   ├── TensorStorage.h
│           │   │       │   ├── TensorStriding.h
│           │   │       │   ├── TensorSycl.h
│           │   │       │   ├── TensorSyclConvertToDeviceExpression.h
│           │   │       │   ├── TensorSyclExprConstructor.h
│           │   │       │   ├── TensorSyclExtractAccessor.h
│           │   │       │   ├── TensorSyclExtractFunctors.h
│           │   │       │   ├── TensorSyclLeafCount.h
│           │   │       │   ├── TensorSyclPlaceHolderExpr.h
│           │   │       │   ├── TensorSyclRun.h
│           │   │       │   ├── TensorSyclTuple.h
│           │   │       │   ├── TensorTraits.h
│           │   │       │   ├── TensorUInt128.h
│           │   │       │   └── TensorVolumePatch.h
│           │   │       ├── TensorSymmetry/
│           │   │       │   ├── DynamicSymmetry.h
│           │   │       │   ├── StaticSymmetry.h
│           │   │       │   ├── Symmetry.h
│           │   │       │   └── util/
│           │   │       │       └── TemplateGroupTheory.h
│           │   │       ├── ThreadPool/
│           │   │       │   ├── EventCount.h
│           │   │       │   ├── NonBlockingThreadPool.h
│           │   │       │   ├── RunQueue.h
│           │   │       │   ├── SimpleThreadPool.h
│           │   │       │   ├── ThreadEnvironment.h
│           │   │       │   ├── ThreadLocal.h
│           │   │       │   ├── ThreadPoolInterface.h
│           │   │       │   └── ThreadYield.h
│           │   │       └── util/
│           │   │           ├── CXX11Meta.h
│           │   │           ├── CXX11Workarounds.h
│           │   │           ├── EmulateArray.h
│           │   │           ├── EmulateCXX11Meta.h
│           │   │           └── MaxSizeVector.h
│           │   ├── EulerAngles
│           │   ├── FFT
│           │   ├── IterativeSolvers
│           │   ├── KroneckerProduct
│           │   ├── LevenbergMarquardt
│           │   ├── MPRealSupport
│           │   ├── MatrixFunctions
│           │   ├── MoreVectorization
│           │   ├── NonLinearOptimization
│           │   ├── NumericalDiff
│           │   ├── OpenGLSupport
│           │   ├── Polynomials
│           │   ├── Skyline
│           │   ├── SparseExtra
│           │   ├── SpecialFunctions
│           │   ├── Splines
│           │   └── src/
│           │       ├── AutoDiff/
│           │       │   ├── AutoDiffJacobian.h
│           │       │   ├── AutoDiffScalar.h
│           │       │   └── AutoDiffVector.h
│           │       ├── BVH/
│           │       │   ├── BVAlgorithms.h
│           │       │   └── KdBVH.h
│           │       ├── Eigenvalues/
│           │       │   └── ArpackSelfAdjointEigenSolver.h
│           │       ├── EulerAngles/
│           │       │   ├── CMakeLists.txt
│           │       │   ├── EulerAngles.h
│           │       │   └── EulerSystem.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/
│           │       │   ├── CopyrightMINPACK.txt
│           │       │   ├── 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
│           │       ├── SpecialFunctions/
│           │       │   ├── SpecialFunctionsArrayAPI.h
│           │       │   ├── SpecialFunctionsFunctors.h
│           │       │   ├── SpecialFunctionsHalf.h
│           │       │   ├── SpecialFunctionsImpl.h
│           │       │   ├── SpecialFunctionsPacketMath.h
│           │       │   └── arch/
│           │       │       └── CUDA/
│           │       │           └── CudaSpecialFunctions.h
│           │       └── Splines/
│           │           ├── Spline.h
│           │           ├── SplineFitting.h
│           │           └── SplineFwd.h
│           ├── README.txt
│           ├── bench/
│           │   └── bench_svd.cpp
│           ├── doc/
│           │   ├── CMakeLists.txt
│           │   ├── Overview.dox
│           │   ├── eigendoxy_layout.xml.in
│           │   ├── examples/
│           │   │   ├── BVH_Example.cpp
│           │   │   ├── CMakeLists.txt
│           │   │   ├── EulerAngles.cpp
│           │   │   ├── FFT.cpp
│           │   │   ├── MatrixExponential.cpp
│           │   │   ├── MatrixFunction.cpp
│           │   │   ├── MatrixLogarithm.cpp
│           │   │   ├── MatrixPower.cpp
│           │   │   ├── MatrixPower_optimal.cpp
│           │   │   ├── MatrixSine.cpp
│           │   │   ├── MatrixSinh.cpp
│           │   │   ├── MatrixSquareRoot.cpp
│           │   │   ├── PolynomialSolver1.cpp
│           │   │   └── PolynomialUtils1.cpp
│           │   └── snippets/
│           │       └── CMakeLists.txt
│           └── test/
│               ├── BVH.cpp
│               ├── CMakeLists.txt
│               ├── EulerAngles.cpp
│               ├── FFT.cpp
│               ├── FFTW.cpp
│               ├── NonLinearOptimization.cpp
│               ├── NumericalDiff.cpp
│               ├── alignedvector3.cpp
│               ├── autodiff.cpp
│               ├── autodiff_scalar.cpp
│               ├── cxx11_eventcount.cpp
│               ├── cxx11_meta.cpp
│               ├── cxx11_non_blocking_thread_pool.cpp
│               ├── cxx11_runqueue.cpp
│               ├── cxx11_tensor_argmax.cpp
│               ├── cxx11_tensor_argmax_cuda.cu
│               ├── cxx11_tensor_assign.cpp
│               ├── cxx11_tensor_broadcast_sycl.cpp
│               ├── cxx11_tensor_broadcasting.cpp
│               ├── cxx11_tensor_cast_float16_cuda.cu
│               ├── cxx11_tensor_casts.cpp
│               ├── cxx11_tensor_chipping.cpp
│               ├── cxx11_tensor_comparisons.cpp
│               ├── cxx11_tensor_complex_cuda.cu
│               ├── cxx11_tensor_complex_cwise_ops_cuda.cu
│               ├── cxx11_tensor_concatenation.cpp
│               ├── cxx11_tensor_const.cpp
│               ├── cxx11_tensor_contract_cuda.cu
│               ├── cxx11_tensor_contraction.cpp
│               ├── cxx11_tensor_convolution.cpp
│               ├── cxx11_tensor_cuda.cu
│               ├── cxx11_tensor_custom_index.cpp
│               ├── cxx11_tensor_custom_op.cpp
│               ├── cxx11_tensor_device.cu
│               ├── cxx11_tensor_device_sycl.cpp
│               ├── cxx11_tensor_dimension.cpp
│               ├── cxx11_tensor_empty.cpp
│               ├── cxx11_tensor_expr.cpp
│               ├── cxx11_tensor_fft.cpp
│               ├── cxx11_tensor_fixed_size.cpp
│               ├── cxx11_tensor_forced_eval.cpp
│               ├── cxx11_tensor_forced_eval_sycl.cpp
│               ├── cxx11_tensor_generator.cpp
│               ├── cxx11_tensor_ifft.cpp
│               ├── cxx11_tensor_image_patch.cpp
│               ├── cxx11_tensor_index_list.cpp
│               ├── cxx11_tensor_inflation.cpp
│               ├── cxx11_tensor_intdiv.cpp
│               ├── cxx11_tensor_io.cpp
│               ├── cxx11_tensor_layout_swap.cpp
│               ├── cxx11_tensor_lvalue.cpp
│               ├── cxx11_tensor_map.cpp
│               ├── cxx11_tensor_math.cpp
│               ├── cxx11_tensor_mixed_indices.cpp
│               ├── cxx11_tensor_morphing.cpp
│               ├── cxx11_tensor_notification.cpp
│               ├── cxx11_tensor_of_complex.cpp
│               ├── cxx11_tensor_of_const_values.cpp
│               ├── cxx11_tensor_of_float16_cuda.cu
│               ├── cxx11_tensor_of_strings.cpp
│               ├── cxx11_tensor_padding.cpp
│               ├── cxx11_tensor_patch.cpp
│               ├── cxx11_tensor_random.cpp
│               ├── cxx11_tensor_random_cuda.cu
│               ├── cxx11_tensor_reduction.cpp
│               ├── cxx11_tensor_reduction_cuda.cu
│               ├── cxx11_tensor_reduction_sycl.cpp
│               ├── cxx11_tensor_ref.cpp
│               ├── cxx11_tensor_reverse.cpp
│               ├── cxx11_tensor_roundings.cpp
│               ├── cxx11_tensor_scan.cpp
│               ├── cxx11_tensor_scan_cuda.cu
│               ├── cxx11_tensor_shuffling.cpp
│               ├── cxx11_tensor_simple.cpp
│               ├── cxx11_tensor_striding.cpp
│               ├── cxx11_tensor_sugar.cpp
│               ├── cxx11_tensor_sycl.cpp
│               ├── cxx11_tensor_symmetry.cpp
│               ├── cxx11_tensor_thread_pool.cpp
│               ├── cxx11_tensor_uint128.cpp
│               ├── cxx11_tensor_volume_patch.cpp
│               ├── dgmres.cpp
│               ├── forward_adolc.cpp
│               ├── gmres.cpp
│               ├── kronecker_product.cpp
│               ├── levenberg_marquardt.cpp
│               ├── matrix_exponential.cpp
│               ├── matrix_function.cpp
│               ├── matrix_functions.h
│               ├── matrix_power.cpp
│               ├── matrix_square_root.cpp
│               ├── minres.cpp
│               ├── mpreal/
│               │   └── mpreal.h
│               ├── mpreal_support.cpp
│               ├── openglsupport.cpp
│               ├── polynomialsolver.cpp
│               ├── polynomialutils.cpp
│               ├── sparse_extra.cpp
│               ├── special_functions.cpp
│               └── splines.cpp
├── location/
│   ├── CMakeLists.txt
│   ├── Location.cpp
│   └── Location.h
├── main.cpp
├── math/
│   ├── CMakeLists.txt
│   ├── Coordinate.cpp
│   ├── Coordinate.h
│   ├── KalmanFilter.cpp
│   ├── KalmanFilter.h
│   ├── LPF.cpp
│   ├── LPF.h
│   ├── Optimizer.cpp
│   ├── Optimizer.h
│   ├── Quaternions.cpp
│   └── Quaternions.h
├── models/
│   ├── AHRS.cpp
│   ├── AHRS.h
│   ├── CMakeLists.txt
│   ├── StopDetection.cpp
│   ├── StopDetection.h
│   ├── StrapdownAHRS.cpp
│   ├── StrapdownAHRS.h
│   ├── XgboostDetector.cpp
│   └── XgboostDetector.h
├── sensor/
│   ├── Accelerometer.cpp
│   ├── Accelerometer.h
│   ├── CMakeLists.txt
│   ├── Compass.cpp
│   ├── Compass.h
│   ├── GPS.cpp
│   ├── GPS.h
│   ├── Gravity.cpp
│   ├── Gravity.h
│   ├── Gyroscope.cpp
│   ├── Gyroscope.h
│   ├── Magnetometer.cpp
│   ├── Magnetometer.h
│   ├── Sensor.cpp
│   └── Sensor.h
├── system/
│   ├── CMakeLists.txt
│   ├── Status.cpp
│   └── Status.h
├── test/
│   ├── CMakeLists.txt
│   ├── TestCalibration.cpp
│   ├── TestCalibration.h
│   ├── TestLocation.cpp
│   ├── TestLocation.h
│   ├── TestXgboostDetector.cpp
│   ├── TestXgboostDetector.h
│   ├── data/
│   │   ├── EEWalk2.csv
│   │   ├── McLaneWalk.csv
│   │   ├── Sensor_record_20151030_105902_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110329_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110417_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110448_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110521_AndroSensor.csv
│   │   └── Sensor_record_20151030_110553_AndroSensor.csv
│   └── utils/
│       ├── DataFormat.cpp
│       ├── DataFormat.h
│       └── ReadSensor.log.py
├── utils/
│   ├── CMakeLists.txt
│   ├── Tools.cpp
│   └── Tools.h
└── 更新日志.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Created by .ignore support plugin (hsz.mobi)
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests
.idea

================================================
FILE: .travis.yml
================================================
language: cpp

compiler:
  - gcc

script:
  - mkdir build
  - cd build
  - cmake .. && make
  - ./Location

================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.9)
project(Location)
set(CMAKE_CXX_STANDARD 11)

set(INC_DIR ./include/eigen3/)
include_directories(${INC_DIR})

include_directories(${PROJECT_SOURCE_DIR}/math)
add_subdirectory(math)

include_directories(${PROJECT_SOURCE_DIR}/models)
add_subdirectory(models)

include_directories(${PROJECT_SOURCE_DIR}/location)
add_subdirectory(location)

include_directories(${PROJECT_SOURCE_DIR}/sensor)
add_subdirectory(sensor)

include_directories(${PROJECT_SOURCE_DIR}/system)
add_subdirectory(system)

include_directories(${PROJECT_SOURCE_DIR}/utils)
add_subdirectory(utils)

include_directories(${PROJECT_SOURCE_DIR}/test)
add_subdirectory(test)

#add_library(lib ./math/KalmanFilter.h ./math/KalmanFilter.cpp ./models/AHRS.cpp ./sensor/Accelerometer.cpp ./sensor/Gyroscope.cpp ./sensor/GPS.cpp ./sensor/Magnetometer.cpp ./math/Quaternions.cpp math/Optimizer.cpp sensor/Sensor.cpp sensor/Sensor.h location/Location.cpp system/Status.cpp ./include/googletest/ test/utils/DataFormat.cpp test/utils/DataFormat.h test/TestLocation.cpp test/TestCalibration.cpp test/TestCalibration.h math/LPF.cpp math/LPF.h models/StrapdownAHRS.cpp config/Config.cpp config/Config.h sensor/Gravity.cpp sensor/Gravity.h sensor/Compass.cpp sensor/Compass.h)
#link_libraries(lib)
#add_executable(Location main.cpp ${lib})
add_executable(Location main.cpp)

target_link_libraries(Location Location_math)
target_link_libraries(Location Location_models)
target_link_libraries(Location Location_location)
target_link_libraries(Location Location_sensor)
target_link_libraries(Location Location_system)
target_link_libraries(Location Location_utils)
target_link_libraries(Location Location_test)

================================================
FILE: README.md
================================================
# LOCATION

[![Build Status](https://travis-ci.org/yyccR/Location.svg?branch=master)](https://travis-ci.org/yyccR/Location)

> Positioning is the most basic and crucial step in the driving navigation. An accurate positioning can effectively improve the accuracy of the road-binding, and can also sense the change of the driving pattern more accurately. Since the project is mainly based on mobile phones for navigation and positioning, Currently used is the built-in sensor data (gyroscope, accelerometer, geomagnetic meter, direction sensor, gravity sensor) and GPS data fusion positioning.

## Sensor data required.

- [X] gyroscope(x, y, z).
- [X] accelerometer(x, y, z).
- [X] geomagnetic meter(x, y, z).
- [X] gravity sensor(x, y, z).
- [X] direction sensor(roll, pitch, yaw).
- [X] compass(degree).
- [X] road info(distance to next cross, bearing, road type).
- [X] GPS(lng, lat, alt, accuracy, speed, bearing, t).


## Some implement details

- sensor data filter.

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/ornt_filter.png" width="1000" height="800" />

- GPS fusion INS under uncoupling system.

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/origin location.png" width="390" height="310" /> <img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/final location.png" width="390" height="310" />

## Quick start
First make sure gcc and cmake was installed, and include this library into your project.

```
git clone https://github.com/yyccR/Location.git
```

Second open your `CMakeLists.txt` and add these:

```
include_directories(${PROJECT_SOURCE_DIR}/Location/include/eigen3)

include_directories(${PROJECT_SOURCE_DIR}/Location/math)
add_subdirectory(Location/math)

include_directories(${PROJECT_SOURCE_DIR}/Location/models)
add_subdirectory(Location/models)

include_directories(${PROJECT_SOURCE_DIR}/Location/location)
add_subdirectory(Location/location)

include_directories(${PROJECT_SOURCE_DIR}/Location/sensor)
add_subdirectory(Location/sensor)

include_directories(${PROJECT_SOURCE_DIR}/Location/system)
add_subdirectory(Location/system)

target_link_libraries(${PROJECT_NAME} Location_math)
target_link_libraries(${PROJECT_NAME} Location_models)
target_link_libraries(${PROJECT_NAME} Location_location)
target_link_libraries(${PROJECT_NAME} Location_sensor)
target_link_libraries(${PROJECT_NAME} Location_system)
target_link_libraries(${PROJECT_NAME} Location_test)
```

final open your main file, and add the test code.

```
#include <iomanip>
#include <Eigen/Dense>
#include "sensor/GPS.h"
#include "location/Location.h"

using namespace Eigen;
using namespace std;

int main() {

    Location location;
    Vector3d gyro_data_v(0.004263,0.019169,-0.001014);
    Vector3d mag_data_v(-2.313675,-82.446960,-366.183838);
    Vector3d acc_data_v(0.105081,0.108075,9.774973);
    VectorXd gps_data_v(7);
    gps_data_v << 114.174118,22.283789,0.0,0.0,24.0,0.0,1554348968704.665039;
    Vector3d g_data_v(0.094139, 0.107857,9.808955);
    Vector3d ornt_data_v(-0.549866,0.629957,-0.069398);
    Vector3d road_data(1000.0, 0.0, 0);
    location.PredictCurrentPosition(gyro_data_v,acc_data_v,mag_data_v,gps_data_v,g_data_v,ornt_data_v, road_data);
    cout << location.GetGNSSINS().lng << " " << location.GetGNSSINS().lat << endl;
    return 0;
}
```

if you see the output `114.174 22.2838` that means this library was embedded to your project successfully.

## Input data format.

- gyroscope(x, y, z), origin gyroscope data, unit rad/s

- accelerometer(x, y, z), origin accelerometer data, unit m/s²

- geomagnetic meter(x, y, z), origin geomagnetic data, unit μt

- gravity sensor(x, y, z), origin gravity data, unit m/s²

- direction sensor(roll, pitch, yaw), origin sensor data, unit degree

Note that direction sensor doesn't exit actually , the 'sensor data' is computation result from system underlying algorithm.

- compass(degree), origin sensor data, unit degree

- road info(distance to next cross, bearing, road type)

This data is from map data, and if you couldn't search map server data, just fill in all zero `(0.0, 0.0, 0.0)`

- GPS(lng, lat, alt, accuracy, speed, bearing, t)
  - lng, longitude, double
  - lat, latitude, double
  - alt, altitude, double
  - accuracy, double
  - speed, double
  - bearing, double, unit degree
  - t, timestampe, unit millisecond

## More detail tutorial.

- [Api calls details](docs/apiCallDetails.md)
- [Sensor data checking](docs/SensorDataChecking.md)
- [Impelement details](docs/implementDetails.md)
- [Sensor calibration](docs/SensorCalibration.md)
- [Training Stop detection model](docs/trainingStopDetectModel.md)

## TODO

- [X] improve CMake.
- [X] Clean the garbage code.
- [ ] Template processing.
- [X] Using smart pointer instead.
- [X] Complete all kinds of documents.
- [X] Add quick start.
- [ ] Add more test case.
- [ ] Design a suitable pattern.

## reference:

1. 《惯性导航》秦永元
2. 《捷联惯性导航技术(第2版 译本)》译者:张天光/王秀萍/王丽霞 作者:DavidH.Titte
3. [An efficient orientation filter for inertial and
    inertial/magnetic sensor arrays](http://x-io.co.uk/res/doc/madgwick_internal_report.pdf)
4. [Estimation of IMU and MARG orientation using a gradient descent algorithm](http://vigir.missouri.edu/~gdesouza/Research/Conference_CDs/RehabWeekZ%C3%BCrich/icorr/papers/Madgwick_Estimation%20of%20IMU%20and%20MARG%20orientation%20using%20a%20gradient%20descent%20algorithm_ICORR2011.pdf)
5. [Direction Cosine Matrix IMU Theory](https://www.researchgate.net/publication/265755808_Direction_Cosine_Matrix_IMU_Theory)
6. [METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS](http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf)
7. [A Calibration Algorithm for Microelectromechanical Systems Accelerometers in Inertial Navigation Sensors](https://arxiv.org/pdf/1309.5075.pdf)
8. [A Calibration Method of Three-axis Magnetic Sensor Based on Ellipsoid Fitting](https://www.researchgate.net/publication/273845104_A_Calibration_Method_of_Three-axis_Magnetic_Sensor_Based_on_Ellipsoid_Fitting)
9. [Accuracy Improvement of Low Cost INS/GPS for Land Applications](https://prism.ucalgary.ca/bitstream/handle/1880/41142/2001_Shin.pdf?sequence=1)
10. [Trajectory preprocessing: Computing with Spatial Trajectories](https://books.google.com.hk/books?hl=zh-CN&lr=&id=JShQJF23xBgC&oi=fnd&pg=PR3&dq=Trajectory+preprocessing.+Computing+with+Spatial+Trajectories&ots=6NUeew5i9_&sig=o7XM_QcuUnmOv5KNeezTN4H8PMw&redir_esc=y&hl=zh-CN&sourceid=cndr#v=onepage&q=Trajectory%20preprocessing.%20Computing%20with%20Spatial%20Trajectories&f=false)

================================================
FILE: README_CN.md
================================================
# Location

> 定位是驾驶导航过程中是最基础的一步,也是十分关键的一步,一个准确的定位可以有效提高绑路的精度,也能更加精准感知驾驶形态的变化,由于本项目主要基于手机做导航定位,目前采用的是手机内置的传感器数据(陀螺仪,加速计,地磁计)以及GPS数据融合定位。

## 项目所需的传感器.

- [X] 陀螺仪(x, y, z).
- [X] 加速计(x, y, z).
- [X] 地磁计(x, y, z).
- [X] 重力感应器(x, y, z).
- [X] 方向传感器(roll, pitch, yaw).
- [X] 指南针(degree).
- [X] 道路信息(距下个路口的距离, 道路方向, 道路类型).
- [X] GPS(经度, 纬度, 海拔, 精度, 速度, 方向, 时间戳).


## 一些实现细节

- 传感器噪声过滤与修正.

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/ornt_filter.png" width="1000" height="800" />

- 基于非耦合的GPS融合INS.

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/origin location.png" width="350" height="290" /> <img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/final location.png" width="350" height="290" />

## 快速开始
确保安装了gcc和cmake, 下载本项目到你的项目下

```
git clone https://github.com/yyccR/Location.git
```

在项目根目录下新建`CMakeLists.txt`, 同时添加如下:

```
include_directories(${PROJECT_SOURCE_DIR}/Location/include/eigen3)

include_directories(${PROJECT_SOURCE_DIR}/Location/math)
add_subdirectory(Location/math)

include_directories(${PROJECT_SOURCE_DIR}/Location/models)
add_subdirectory(Location/models)

include_directories(${PROJECT_SOURCE_DIR}/Location/location)
add_subdirectory(Location/location)

include_directories(${PROJECT_SOURCE_DIR}/Location/sensor)
add_subdirectory(Location/sensor)

include_directories(${PROJECT_SOURCE_DIR}/Location/system)
add_subdirectory(Location/system)

target_link_libraries(${PROJECT_NAME} Location_math)
target_link_libraries(${PROJECT_NAME} Location_models)
target_link_libraries(${PROJECT_NAME} Location_location)
target_link_libraries(${PROJECT_NAME} Location_sensor)
target_link_libraries(${PROJECT_NAME} Location_system)
target_link_libraries(${PROJECT_NAME} Location_test)
```

在main文件里添加如下测试代码.

```
#include <iomanip>
#include <Eigen/Dense>
#include "sensor/GPS.h"
#include "location/Location.h"

using namespace Eigen;
using namespace std;

int main() {

    Location location;
    Vector3d gyro_data_v(0.004263,0.019169,-0.001014);
    Vector3d mag_data_v(-2.313675,-82.446960,-366.183838);
    Vector3d acc_data_v(0.105081,0.108075,9.774973);
    VectorXd gps_data_v(7);
    gps_data_v << 114.174118,22.283789,0.0,0.0,24.0,0.0,1554348968704.665039;
    Vector3d g_data_v(0.094139, 0.107857,9.808955);
    Vector3d ornt_data_v(-0.549866,0.629957,-0.069398);
    Vector3d road_data(1000.0, 0.0, 0);
    location.PredictCurrentPosition(gyro_data_v,acc_data_v,mag_data_v,gps_data_v,g_data_v,ornt_data_v, road_data);
    cout << location.GetGNSSINS().lng << " " << location.GetGNSSINS().lat << endl;
    return 0;
}
```

如果输出 `114.174 22.2838` 表示已经成功内嵌了本项目.

## 数据格式.

- 陀螺仪(x, y, z), 单位 rad/s

- 加速计(x, y, z), 单位 m/s²

- 地磁计(x, y, z), 单位 μt

- 重力感应器(x, y, z), 单位 m/s²

- 方向传感器(roll, pitch, yaw), 单位 角度(degree)

手机并没有方向传感器, 这个所谓的传感器数据是手机底层算法计算得到的。

- 指南针(degree), 单位 角度(degree)

- 道路信息(距离下个路口距离, 当前位置道路方向, 道路类型编码)

如果拿不到道路数据, 则全部填0即可, `(0.0, 0.0, 0.0)`

- GPS(lng, lat, alt, accuracy, speed, bearing, t)
  - lng, 经度, double
  - lat, 纬度, double
  - alt, 海拔, double
  - accuracy, 精度, double
  - speed, 速度, double
  - bearing, 方向, double, 单位 角度(degree)
  - t, 时间戳, 单位 毫秒(millisecond)

## 更加详细的调用细节

详见 docs/apiCallDetails.md

## TODO

- [X] CMakeLists 优化.
- [ ] 清理垃圾代码.
- [ ] 模板化.
- [ ] 替换普通指针为智能指针.
- [ ] 完善文档.
- [x] 添加快速开始.
- [ ] 增加更多测试案例.
- [ ] 使用合适的设计模式.


## 参考:

1. 《惯性导航》秦永元
2. 《捷联惯性导航技术(第2版 译本)》译者:张天光/王秀萍/王丽霞 作者:DavidH.Titte
3. [An efficient orientation filter for inertial and
    inertial/magnetic sensor arrays](http://x-io.co.uk/res/doc/madgwick_internal_report.pdf)
4. [Estimation of IMU and MARG orientation using a gradient descent algorithm](http://vigir.missouri.edu/~gdesouza/Research/Conference_CDs/RehabWeekZ%C3%BCrich/icorr/papers/Madgwick_Estimation%20of%20IMU%20and%20MARG%20orientation%20using%20a%20gradient%20descent%20algorithm_ICORR2011.pdf)
5. [Direction Cosine Matrix IMU Theory](https://www.researchgate.net/publication/265755808_Direction_Cosine_Matrix_IMU_Theory)
6. [METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS](http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf)
7. [A Calibration Algorithm for Microelectromechanical Systems Accelerometers in Inertial Navigation Sensors](https://arxiv.org/pdf/1309.5075.pdf)
8. [A Calibration Method of Three-axis Magnetic Sensor Based on Ellipsoid Fitting](https://www.researchgate.net/publication/273845104_A_Calibration_Method_of_Three-axis_Magnetic_Sensor_Based_on_Ellipsoid_Fitting)
9. [Accuracy Improvement of Low Cost INS/GPS for Land Applications](https://prism.ucalgary.ca/bitstream/handle/1880/41142/2001_Shin.pdf?sequence=1)
10. [Trajectory preprocessing: Computing with Spatial Trajectories](https://books.google.com.hk/books?hl=zh-CN&lr=&id=JShQJF23xBgC&oi=fnd&pg=PR3&dq=Trajectory+preprocessing.+Computing+with+Spatial+Trajectories&ots=6NUeew5i9_&sig=o7XM_QcuUnmOv5KNeezTN4H8PMw&redir_esc=y&hl=zh-CN&sourceid=cndr#v=onepage&q=Trajectory%20preprocessing.%20Computing%20with%20Spatial%20Trajectories&f=false)

================================================
FILE: config/CMakeLists.txt
================================================
aux_source_directory(. config_src_lists)
add_library(Location_config ${config_src_lists})

================================================
FILE: config/Config.cpp
================================================
//
// Created by yangcheng on 2019/3/22.
//

#include <fstream>
#include "Config.h"
#include <string>
#include "iostream"
#include <exception>

using namespace std;

class FileNotFoundException : public  exception {
    virtual const char* what() const throw()
    {
        return "file not found!";
    }
};

Config::Config(string file_name, string delimiter, string comment) : delimiter(delimiter), comment(comment) {
    std::ifstream in_file(file_name);
    cout << file_name << endl;
    if (!in_file) throw FileNotFoundException();
    in_file >> (*this);
    in_file.close();
}


istream &operator>>(istream &is, Config &cfg) {

    string line;
    while (getline(is, line)) {

        // 忽略开头注释和空行
        string::size_type pos = line.find(cfg.comment);
        if (line.length() == 0 || pos == 0) continue;

        // 忽略末尾注释
        string param = line;
        if (pos < string::npos) param = line.substr(0, pos + cfg.comment.length());

        // key value截取
        string::size_type pos2 = param.find(cfg.delimiter);
        if (pos2 < string::npos) {
            string key = param.substr(0, pos2);
            string value = param.replace(0, pos2 + 1, "");
            // 删除前后空白和一些特殊字符
            cfg.Trim(key);
            cfg.Trim(value);
            cfg.cfg_settings[key] = value;
        }
    }
    return is;
}

ostream &operator<<(std::ostream &os, const Config &cfg) {
    map<string, string>::const_iterator key_value;
    for (key_value = cfg.cfg_settings.begin(); key_value != cfg.cfg_settings.end(); ++key_value) {
        os << key_value->first << " : " << key_value->second << endl;
    }
    return os;
}

void Config::Trim(std::string &s) {
    // 删掉头尾的特殊符号
    const char whitespace[] = " \n\t\v\r\f";
    s.erase(0, s.find_first_not_of(whitespace));
    s.erase(s.find_last_not_of(whitespace) + 1);
}

void Config::SetDelimiter(std::string &d) {
    this->delimiter = d;
}

void Config::SetComment(std::string &c) {
    this->comment = c;
}

std::string Config::Read(const std::string &key) const {
    auto value = this->cfg_settings.find(key);
    if (value != this->cfg_settings.end()) {
        return value->second;
    } else {
        return "";
    }
}

bool Config::FileExist(const std::string file_name) {
    bool exist = false;
    ifstream in(file_name);
    if (in) {
        exist = true;
    }
    in.close();
    return exist;
}

void Config::ReadFile(const std::string file_name, const std::string delimiter, const std::string comment) {
    this->delimiter = delimiter;
    this->comment = comment;
    ifstream in(file_name);
    if (!in) {
        throw "file not found";
    } else {
        in >> (*this);
    }
}



================================================
FILE: config/Config.h
================================================
//
// Created by yangcheng on 2019/3/22.
//

#ifndef LOCATION_CONFIG_H
#define LOCATION_CONFIG_H


#include <string>
#include <map>
#include <exception>

class Config {
private:
    std::string delimiter;
    std::string comment;
    std::map<std::string, std::string> cfg_settings;

public:

    Config(std::string file_name, std::string delimiter = "=", std::string comment = "#");

    std::string Read(const std::string &key) const;

    bool FileExist(const std::string file_name);
    void ReadFile(const std::string file_name, const std::string delimiter, const std::string comment);

    friend std::istream &operator>>(std::istream &is, Config &cfg);
    friend std::ostream &operator<<(std::ostream &os, const Config &cfg);

    void Trim(std::string &s);
    void SetDelimiter(std::string &d);
    void SetComment(std::string &c);

};


#endif //LOCATION_CONFIG_H


================================================
FILE: config/config_files/Android.config
================================================
gnssins.lng = 0.0
gnssins.lat = 0.0
gnssins.altitude = 0.0
gnssins.accuracy = 0.0
gnssins.speed = 0.0
gnssins.bearing = 0.0

velocity.v_x = 0.0
velocity.v_y = 0.0
velocity.v_z = 0.0

position.x = 0.0
position.y = 0.0
position.z = 0.0
position.lng = 0.0
position.lat = 0.0
position.altitude = 0.0

attitude.roll = 0.0
attitude.pitch = 0.0
attitude.yaw = 0.0


Vector3d gyro_coef(0.0,0.0,0.0)
parameters.gyro_coef = gyro_coef
VectorXd acc_coef(6)
acc_coef << 0.0,0.0,0.0,1.0,1.0,1.0
parameters.acc_coef = acc_coef
VectorXd mag_coef(6)
mag_coef << 0.0,0.0,0.0,1.0,1.0,1.0
parameters.mag_coef = mag_coef

parameters.weak_gps = 100
parameters.gamma = 1.0
parameters.epsilon = 0.000001
parameters.max_step = 200

parameters.acc_a1 = 0.0
parameters.acc_a2 = 0.0
parameters.acc_b0 = 0.0
parameters.acc_hz = 5.0
Vector3d acc(0.0,0.0,0.0)
parameters.last_acc_data = acc
parameters.sec_last_acc_data = acc
parameters.acc_thres = 0.1

Vector3d err(0.0,0.0,0.0)
parameters.err = err
parameters.ki = 0.05
parameters.kp = 10.0
parameters.Hz = 10.0
parameters.halfT = 0.05
parameters.static_t_factor = 0.35
parameters.move_t_factor = 0.27
parameters.t = 0.285714

parameters.move_distance_threshod = 500000.0
parameters.ins_count = 0

parameters.gps_static_speed_threshold = 0.02
parameters.gps_count = 0
parameters.gps_init_threshold = 1
parameters.gps_pre_lng = 0.0
parameters.gps_pre_lat = 0.0
parameters.gps_pre_t = 0.0
parameters.gps_pre_speed = 0.0
parameters.gps_pre_accuracy = 0.0
parameters.gps_pre_bearing = 0.0
parameters.gps_pre_altitude = 0.0

parameters.g = 9.805567
parameters.mag = 157.44
parameters.we = 0.000072921158
parameters.R = 6378137.0



================================================
FILE: config/config_files/IOS.config
================================================


================================================
FILE: docs/SensorCalibration.md
================================================


================================================
FILE: docs/SensorDataChecking.md
================================================
# Sensor data checking

- [X] checking orientation sensor data

The orientation sensor contains roll, pitch and yaw three values. Actually it is not a hardware output, it is
calculated by accelerometer and magnetometer. Some smartphone systems may contain the method
`getRotationMatrix` and `getOrientation` to calculate the orientation, so if we have got the orientation data,
we need to make sure it's available, below show the steps how to do these:

Suppose we have got the orientation `(57.221,-0.543, 143.2)` and the corresponding gravity
`(0.041, 8.248, 5.311)`, then using the follow code:

```
#include <iostream>
#include <Eigen/Dense>
#include <math/Quaternions.cpp>
using namespace std;

Eigen::Vector3d e(57.221,-0.543, 143.2);
Quaternions quaternions;
Eigen::Vector4d q = quaternions.GetQFromEuler(e);
Eigen::MatrixXd dcm = quaternions.GetDCMFromQ(q);
Eigen::Vector3d gb(0.041, 8.248, 5.311);
Eigen::Vector3d gn = dcm * gb;
cout << gn.transpose() << endl;
```
  The code above doing three things:
  1. convert the orientation into quaternion.
  2. convert the quaternion into direction cosine matrix(DCM).
  3. using the DCM to rotate the gravity.

  We can see the output vector is `(0.0415164,-0.0312637,9.80995)`, that means we succeed in
rotating the gravity from body frame to navigation frame using the orientation data.

  Because the gravity in navigation frame should always similar to  `(0,0,g)`, so we can say that the
orientation data is available if it can rotate the origin gravity data into `(0,0,g)`.


- [ ] checking magnetometer sensor data

- [ ] checking accelerometer sensor data

- [ ] checking gyroscope sensor data


================================================
FILE: docs/SomeTestCaseResults.md
================================================
# Some test case results.

- left is origin GPS trajectory, right is INS trajectory.

|      |                    origin GPS trajectory                     |                        INS trajectory                        |
| :--: | :----------------------------------------------------------: | :----------------------------------------------------------: |
|  1   | <img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/origin location.png" width="430" height="350" /> | <img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/final location.png" width="430" height="350" /> |
|  2   |                                                              |                                                              |
|  3   |                                                              |                                                              |
|  4   |                                                              |                                                              |


================================================
FILE: docs/apiCallDetails.md
================================================
# Api call details

## Input data format

- gyroscope(x, y, z), origin gyroscope data, unit rad/s

- accelerometer(x, y, z), origin accelerometer data, unit m/s²

- geomagnetic meter(x, y, z), origin geomagnetic data, unit μt

- gravity sensor(x, y, z), origin gravity data, unit m/s²

- direction sensor(roll, pitch, yaw), origin sensor data, unit degree

Note that direction sensor doesn't exit actually , the 'sensor data' is computation result from system underlying algorithm.

- compass(degree), origin sensor data, unit degree

- road info(distance to next cross, bearing, road type)

This data is from map data, and if you couldn't search map server data, just fill in all zero `(0.0, 0.0, 0.0)`, road type now have two value, 0 represent common road, and 1 represent tunnel.

- GPS(lng, lat, alt, accuracy, speed, bearing, t)
  - lng, longitude, double
  - lat, latitude, double
  - alt, altitude, double
  - accuracy, double
  - speed, double
  - bearing, double, unit degree
  - t, timestampe, unit millisecond

## Api call details

There only one entry class needed consider, `location/Location.h`.

First need to initial the Location class.

```
#include <Eigen/Dense>
#include "location/Location.h"
using namespace routing;

Location location;
```

Second set the data frequency you provided, default is 20.

```
location.SetHz(20.0);
```

Third call the `PredictCurrentPosition` method to compute the current position according to the input sensor data.

```
location.PredictCurrentPosition(gyro_data_v, acc_data_v, mag_data_v, gps_data_v, g_data_v, ornt_data_v, road_data_v);
```

Note that all the data here using Eigen::Vector structure, for example:

```
Vector3d gyro_data_v(0.004263,0.019169,-0.001014);
Vector3d mag_data_v(-2.313675,-82.446960,-366.183838);
Vector3d acc_data_v(0.105081,0.108075,9.774973);
VectorXd gps_data_v(7);
gps_data_v << 114.174118,22.283789,0.0,0.0,24.0,0.0,1554348968704.665039;
Vector3d g_data_v(0.094139, 0.107857,9.808955);
Vector3d ornt_data_v(-0.549866,0.629957,-0.069398);
Vector3d road_data(1000.0, 0.0, 0);
```

The method `PredictCurrentPosition` will not return any values, all the process result was store in Status structure.

Final if you want to get the positioning result, just type:

```
GNSSINS gnssins = location.GetGNSSINS();
```

Below is the `GNSSINS` structure which defined in `system/Status.h`

```
struct GNSSINS {
    double lng;
    double lat;
    double altitude;
    double accuracy;
    double speed;
    double bearing;
};
```

## Input data frequency

- The frequency of `PredictCurrentPosition` calls should be the same or not very different from the frequency set by the `location.SetHz()` method.

- When GPS is in gap period, all data of GPS should be sent 0, v(0, 0, 0, 0, 0, 0, 0)

- When `road info` in gap period, the data should be the same as before, and should be set to zero during rerouting or no such server.


## Data examples

| acc_x      | acc_y     | acc_z     | g_x       | g_y       | g_z       | gyro_x       | gyro_y      | gyro_z      | mag_x   | mag_y    | mag_z    | ornt_z    | ornt_x    | ornt_y    | latitude    | longitude   | altitude | altitude-google | gps-speed   | gps-accuracy | gps-bearing | gps-Satellites | time-using | time-format | timestamp     | road-dist to next cross | road-heading | road-type |
| ---------- | --------- | --------- | --------- | --------- | --------- | ------------ | ----------- | ----------- | ------- | -------- | -------- | --------- | --------- | --------- | ----------- | ----------- | -------- | --------------- | ----------- | ------------ | ----------- | -------------- | ---------- | ----------- | ------------- | ----------------------- | ------------ | --------- |
| 1.3190615  | 7.3327217 | 6.973821  | 0.9129    | 7.2721996 | 6.5154    | 0.15892968   | 0.026389379 | 0.043231804 | 59.3125 | -25.5625 | -30.75   | 269.3907  | 47.864853 | 7.976027  | 23.14972849 | 113.3213488 | 87.41    | 0               | 0.75        | 55           | 334.0499878 | 0              | 0          | 0           | 1558586596582 | 64.29145398             | 257.9223308  | 0         |
| 0.52454084 | 7.3596897 | 5.2365403 | 0.8429    | 7.5298996 | 6.2257    | 0.29626963   | 0.07393215  | 0.06407104  | 59.75   | -24.9375 | -28.25   | 269.42166 | 50.160385 | 7.7104144 | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 1.1784357  | 7.0913377 | 4.977162  | 0.8384    | 7.5929    | 6.1492996 | 0.162176     | 0.15879005  | 0.031991884 | 59.9375 | -24.875  | -28.25   | 269.6926  | 50.73855  | 7.763878  | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 0.2054225  | 6.91365   | 5.1467767 | 0.7237    | 7.6397996 | 6.1056    | -0.014154621 | 0.6226113   | 0.15730652  | 60.25   | -25      | -26.6875 | 269.49725 | 51.173664 | 6.75976   | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 0.6924606  | 7.58598   | 6.012683  | 0.6529    | 7.634     | 6.1208    | -0.11070623  | 0.2043955   | 0.10725048  | 60.3125 | -25.4375 | -26.0625 | 269.29425 | 51.119728 | 6.0886636 | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 1.6083577  | 7.45473   | 7.067147  | 0.6153    | 7.5783997 | 6.1934    | -0.19556414  | 0.43769366  | 0.14540339  | 60.9375 | -26.5    | -24.75   | 267.7838  | 50.604874 | 5.6735864 | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 0.23061907 | 6.588575  | 6.834823  | 0.5119    | 7.5508    | 6.2363997 | 0.22787018   | 0.29204595  | 0.06716027  | 61      | -27.3125 | -23.5    | 267.04623 | 50.351337 | 4.6924677 | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 1.0430675  | 7.6366796 | 5.488736  | 0.4615    | 7.6019998 | 6.1777997 | 0.16502088   | 0.5134933   | 0.259513    | 61.125  | -27.9375 | -22.4375 | 266.4972  | 50.822758 | 4.2722297 | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 64.29145398             | 257.9223308  | 0         |
| 2.6479583  | 6.8948793 | 6.831893  | 1.9764999 | 6.5432    | 7.0319996 | 0.081279986  | 0.031311207 | -0.07298967 | 53.9375 | -53.375  | -18      | 236.26198 | 41.853275 | 15.6992   | 23.14982671 | 113.3206776 | 131.78   | 0               | 2.700000048 | 47           | 258.3500061 | 0              | 0          | 0           | 1558586640000 | 47.3517091              | 257.9223308  | 0         |
| 1.9768157  | 6.7945433 | 6.9858017 | 1.9095    | 6.5825    | 7.0137997 | 0.059236474  | 0.13137093  | -0.16161749 | 54.375  | -53.125  | -17.6875 | 236.70316 | 42.16233  | 15.22961  | 0           | 0           | 0        | 0               | 0           | 0            | 0           | 0              | 0          | 0           | 0             | 47.3517091              | 257.9223308  | 0         |


- Note that in gps gap time, all the gps data should be fill zero, and the road info should be the same as before.

================================================
FILE: docs/implementDetails.md
================================================


================================================
FILE: docs/sensors.md
================================================
- Smartphone sensor data:

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/Location/sensordata1.png" width="300" height="600" />

- Because the posture of the smartphone could be arbitrary, so we need the gps bearing and road heading to correct the compass, below show some difference between compass and gps bearing.

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/gps_compass.png" width="1000" height="300" />

================================================
FILE: docs/trainingStopDetectModel.md
================================================
# Training stop detection model.

## Xgboost model

- **data input**

  - orientation diff between previous record and current.
  ```
  Vector3d pre_ornt = ornt_data.row(i-1);
  Vector3d current_ornt = ornt_data.row(i);
  Vector3d ornt_diff = current_ornt - pre_ornt;
  ```

  - normalized accelerometer in b frame and n frame.
  ```
  Vector4d q = quaternions.GetQFromEuler(current_ornt);
  Matrix3d dcm = quaternions.GetDCMFromQ(q);

  Vector3d acc_v = acc_data;
  Vector3d acc_n = dcm * acc_v;
  Vector3d acc_v_norm = Normalise(acc_v);
  Vector3d acc_n_norm = Normalise(acc_n);
  ```

  - normalized gravity in b frame and n frame.
  ```
  Vector3d g_v = g_data;
  Vector3d g_n = dcm * g_v;
  Vector3d g_v_norm = Normalise(g_v);
  Vector3d g_n_norm = Normalise(g_n);
  ```

  - diff between accelerometer and gravity in n frame.
  ```
  Vector3d a_diff = acc_n - g_n;
  ```

  - normalized gyroscope.
  ```
  Vector3d gyro_v = gyro_data;
  Vector3d gyro_v_norm = Normalise(gyro_v);
  ```

  - normalized magnetic diff between previous record and current in n frame.
  ```
  Vector3d pre_mag_v = mag_data.row(i-1);
  Vector3d current_mag_v = mag_data.row(i);
  Vector3d mag_v_diff = (dcm * current_mag_v) - (dcm * pre_mag_v);
  Vector3d mag_v_norm = accelerometer.Normalise(mag_v_diff);
  ```

  - examples:

| acc_b_norm_x | acc_b_norm_y | acc_b_norm_z | acc_n_norm_x | acc_n_norm_y | acc_n_norm_z | g_b_norm_x   | g_b_norm_y   | g_b_norm_z  | g_n_norm_x   | g_n_norm_y  | g_n_norm_z  | gyro_norm_x  | gyro_norm_y  | gyro_norm_z  | mag_n_norm_x | mag_n_norm_y | mag_n_norm_z | mag_n_diff_norm_x | mag_n_diff_norm_y | mag_n_diff_norm_z | acc_g_n_diff_x | acc_g_n_diff_y | acc_g_n_diff_z | ornt_diff_x | ornt_diff_y | ornt_diff_z | label |
| ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ----------- | ------------ | ----------- | ----------- | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ----------------- | ----------------- | ----------------- | -------------- | -------------- | -------------- | ----------- | ----------- | ----------- | ----- |
| 0.129066189  | 0.489784426  | 0.862237285  | -0.504075138 | 0.568416979  | 0.65023872   | 0.161449964  | 0.394004726  | 0.904817211 | -0.406554964 | 0.597145075 | 0.691470043 | 0.457245866  | -0.07097188  | -0.886503925 | 0.482868564  | 0.285974018  | 0.827681588  | 3.382281287       | 2.003121847       | 5.797544418       | -1.374394617   | 0.189218618    | 0.134366798    | -2.456686   | 2.903637    | -2.6312     | 1     |
| 0.098092756  | 0.441567958  | 0.891849511  | -0.417273415 | 0.538611451  | 0.731970356  | 0.115516734  | 0.376209022  | 0.919305529 | -0.350114553 | 0.550039758 | 0.758205819 | -0.52091589  | 0.693465674  | -0.497746918 | 0.485898133  | -0.436930527 | -0.756964146 | 1.580799524       | -1.421490477      | -2.462673718      | -0.715750162   | -0.038637689   | -0.157519063   | 2.954984    | -1.104863   | -1.016671   | 1     |
| 0.128268463  | 0.385579444  | 0.913715324  | -0.340256272 | 0.575695299  | 0.74350561   | 0.11413304   | 0.384831439  | 0.915903058 | -0.34341474  | 0.563926869 | 0.751034489 | 0.785250568  | -0.150309687 | -0.60065676  | 0.722509897  | 0.322986569  | 0.611276635  | 0.872183616       | 0.389895827       | 0.737907491       | 0.210543669    | -0.188356055   | -0.466219017   | 0.05889     | 0.534217    | -1.278368   | 1     |
| 0.090377072  | 0.506492751  | 0.857494652  | -0.430280858 | 0.540274825  | 0.723160768  | 0.0714945    | 0.373371378  | 0.924922889 | -0.305098583 | 0.513380471 | 0.80209435  | -0.40415878  | 0.907416845  | -0.115110168 | -0.018786556 | -0.478580999 | -0.877842408 | -0.056784486      | -1.446565096      | -2.653377777      | -1.56801271    | 0.690716987    | -0.202952674   | 2.683109    | -0.709583   | 0.002222    | 1     |
| 0.003769136  | 0.413187081  | 0.910638364  | -0.273759419 | 0.441200565  | 0.854633162  | -0.006953619 | 0.349818259  | 0.936791777 | -0.214272881 | 0.418783958 | 0.882443839 | -0.299333594 | 0.767442181  | -0.566949644 | 0.452037207  | -0.074923127 | -0.888846943 | 1.474141036       | -0.244332222      | -2.898623682      | -0.583401164   | 0.219646233    | -0.273327666   | 4.845336    | -1.44749    | -2.451917   | 1     |
| -0.012789521 | 0.414001052  | 0.910186551  | -0.238513744 | 0.437943501  | 0.866785258  | -0.033002042 | 0.360327767  | 0.932241796 | -0.192046192 | 0.40733654  | 0.892857885 | 0.761586392  | 0.040498834  | -0.646796732 | 0.696550054  | -0.020242884 | -0.717222593 | 1.845812816       | -0.053642339      | -1.900593713      | -0.3771996     | 0.155847649    | -0.54158446    | 1.602177    | 0.644123    | -1.650386   | 1     |
| -0.08225435  | -0.306475501 | 0.948317979  | -0.278243257 | 0.417762745  | 0.864901716  | -0.059733105 | -0.286562656 | 0.956197574 | -0.263618426 | 0.394924855 | 0.880079363 | -0.425352445 | -0.817550551 | -0.388183453 | 0.75555205   | -0.627310411 | -0.188739898 | 0.464302059       | -0.385494971      | -0.115984495      | -0.155815903   | 0.242576808    | -0.110514225   | -0.023439   | 0.017182    | -0.004636   | 0     |
| -0.072043    | -0.295740867 | 0.952547713  | -0.269786878 | 0.407713857  | 0.872344227  | -0.05961394  | -0.287154194 | 0.956027535 | -0.264061745 | 0.395357894 | 0.879751971 | -0.463747259 | -0.805428147 | -0.369085328 | -0.402699867 | 0.40874646   | -0.81899887  | -0.229401034      | 0.232845521       | -0.466548918      | -0.066589347   | 0.136967852    | -0.038958311   | -0.006482   | -0.035383   | 0.009744    | 0     |
| -0.06279196  | -0.294665    | 0.953535373  | -0.270584795 | 0.399787014  | 0.87575922   | -0.059551967 | -0.287931685 | 0.955797525 | -0.264696252 | 0.396037988 | 0.879255256 | -0.259987511 | -0.746441091 | -0.61256199  | 0.52469785   | -0.850812152 | 0.028475391  | 0.171805847       | -0.278587957      | 0.009323916       | -0.044139517   | 0.016644083    | -0.078400482   | -0.002848   | -0.046509   | 0.009805    | 0     |
| -0.060826806 | -0.287624644 | 0.95580969   | -0.26442447  | 0.397496032  | 0.878678897  | -0.059906299 | -0.288264403 | 0.955675086 | -0.265247511 | 0.396729437 | 0.878777282 | 0.260738265  | -0.506384611 | -0.821942932 | 0.162231636  | -0.868545219 | 0.468305562  | 0.066946532       | -0.358414006      | 0.193251046       | 0.034322951    | -0.031938411   | -0.088189996   | 0.02162     | -0.019908   | 0.002586    | 0     |
| -0.069062529 | -0.288161093 | 0.955088243  | -0.263882463 | 0.405076711  | 0.87537358   | -0.060623123 | -0.288152188 | 0.955663724 | -0.265685523 | 0.397368956 | 0.878355916 | 0.06959041   | -0.568321684 | -0.819858304 | 0.812688923  | -0.011961465 | 0.582575006  | 0.219561499       | -0.00323159       | 0.157392377       | 0.059482981    | 0.011454942    | -0.16790262    | 0.042848    | 0.006716    | -0.002917   | 0     |


- **training**
```
import xgboost as xgb
train_x, train_y, test_x, test_y = LoadData()
x, y = LoadVaildData()

D_train = xgb.DMatrix(train_x, label=train_y)
D_test = xgb.DMatrix(test_x, label=test_y)
D_validation = xgb.DMatrix(x, label=y)

param = {
    'objective':'multi:softprob',
    'eta': 0.3,
    'max_depth': 10,
    'num_class': 2
}

start_time = time.time()
model = xgb.train(param, D_train, 100)
end_time = time.time()

test_preds = model.predict(D_test)
test_best_preds = np.asarray([np.argmax(line) for line in test_preds])
vali_preds = model.predict(D_validation)
vali_best_preds = np.asarray([np.argmax(line) for line in vali_preds])

# dump model
 model.dump_model('./raw_model.txt', dump_format='txt')
print("Cost time: " + str(int(end_time - start_time)))
print(classification_report(test_y, test_best_preds, target_names=["停车", "运动"]))
print(classification_report(y, vali_best_preds, target_names=["停车", "运动"]))
```

- **rewrite the prediction in c++**
```
#include "utils/Tools.h"
#include "models/XgboostDetector.h"
std::string model_path = "raw_model.txt";
XgboostDetector xgboostDetector = XgboostDetector(model_path);
StopDetection &stopDetection = xgboostDetector;
bool is_stop = stopDetection.IsStopping(input_data);
```


================================================
FILE: docs/workflow.md
================================================
## Workflow:

<img src="https://raw.githubusercontent.com/yyccR/Pictures/master/INS/framework.png" width="1100" height="800" />

================================================
FILE: include/eigen3/.hg_archival.txt
================================================
repo: 8a21fd850624c931e448cbcfb38168cb2717c790
node: b3f3d4950030e3fa2e8fde6b68405106ae5685e1
branch: 3.3
tag: 3.3.5


================================================
FILE: include/eigen3/.hgeol
================================================
[patterns]
*.sh = LF
*.MINPACK = CRLF
scripts/*.in = LF
debug/msvc/*.dat = CRLF
debug/msvc/*.natvis = CRLF
unsupported/test/mpreal/*.* = CRLF
** = native

[repository]
native = LF


================================================
FILE: include/eigen3/.hgignore
================================================
syntax: glob
qrc_*cxx
*.orig
*.pyc
*.diff
diff
*.save
save
*.old
*.gmo
*.qm
core
core.*
*.bak
*~
*build*
*.moc.*
*.moc
ui_*
CMakeCache.txt
tags
.*.swp
activity.png
*.out
*.php*
*.log
*.orig
*.rej
log
patch
a
a.*
lapack/testing
lapack/reference


================================================
FILE: include/eigen3/.hgtags
================================================
2db9468678c6480c9633b6272ff0e3599d1e11a3 2.0-beta3
375224817dce669b6fa31d920d4c895a63fabf32 2.0-beta1
3b8120f077865e2a072e10f5be33e1d942b83a06 2.0-rc1
19dfc0e7666bcee26f7a49eb42f39a0280a3485e 2.0-beta5
7a7d8a9526f003ffa2430dfb0c2c535b5add3023 2.0-beta4
7d14ad088ac23769c349518762704f0257f6a39b 2.0.1
b9d48561579fd7d4c05b2aa42235dc9de6484bf2 2.0-beta6
e17630a40408243cb1a51ad0fe3a99beb75b7450 before-hg-migration
eda654d4cda2210ce80719addcf854773e6dec5a 2.0.0
ee9a7c468a9e73fab12f38f02bac24b07f29ed71 2.0-beta2
d49097c25d8049e730c254a2fed725a240ce4858 after-hg-migration
655348878731bcb5d9bbe0854077b052e75e5237 actual-start-from-scratch
12a658962d4e6dfdc9a1c350fe7b69e36e70675c 3.0-beta1
5c4180ad827b3f869b13b1d82f5a6ce617d6fcee 3.0-beta2
7ae24ca6f3891d5ac58ddc7db60ad413c8d6ec35 3.0-beta3
c40708b9088d622567fecc9208ad4a426621d364 3.0-beta4
b6456624eae74f49ae8683d8e7b2882a2ca0342a 3.0-rc1
a810d5dbab47acfe65b3350236efdd98f67d4d8a 3.1.0-alpha1
304c88ca3affc16dd0b008b1104873986edd77af 3.1.0-alpha2
920fc730b5930daae0a6dbe296d60ce2e3808215 3.1.0-beta1
8383e883ebcc6f14695ff0b5e20bb631abab43fb 3.1.0-rc1
bf4cb8c934fa3a79f45f1e629610f0225e93e493 3.1.0-rc2
da195914abcc1d739027cbee7c52077aab30b336 3.2-beta1
a8e0d153fc5e239ef8b06e3665f1f9e8cb8d49c8 before-evaluators
09a8e21866106b49c5dec1d6d543e5794e82efa0 3.3-alpha1
ce5a455b34c0a0ac3545a1497cb4a16c38ed90e8 3.3-beta1
69d418c0699907bcd0bf9e0b3ba0a112ed091d85 3.3-beta2
bef509908b9da05d0d07ffc0da105e2c8c6d3996 3.3-rc1
04ab5fa4b241754afcf631117572276444c67239 3.3-rc2
26667be4f70baf4f0d39e96f330714c87b399090 3.3.0
f562a193118d4f40514e2f4a0ace6e974926ef06 3.3.1
da9b4e14c2550e0d11078a3c39e6d56eba9905df 3.3.2
67e894c6cd8f5f1f604b27d37ed47fdf012674ff 3.3.3
5a0156e40feb7c4136680b493c6e433d91a6f355 3.3.4


================================================
FILE: include/eigen3/CMakeLists.txt
================================================
project(Eigen3)

cmake_minimum_required(VERSION 2.8.5)

# guard against in-source builds

if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
  message(FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt. ")
endif()

# Alias Eigen_*_DIR to Eigen3_*_DIR:

set(Eigen_SOURCE_DIR ${Eigen3_SOURCE_DIR})
set(Eigen_BINARY_DIR ${Eigen3_BINARY_DIR})

# guard against bad build-type strings

if (NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE "Release")
endif()

string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower)
if(    NOT cmake_build_type_tolower STREQUAL "debug"
   AND NOT cmake_build_type_tolower STREQUAL "release"
   AND NOT cmake_build_type_tolower STREQUAL "relwithdebinfo")
  message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).")
endif()


#############################################################################
# retrieve version infomation                                               #
#############################################################################

# automatically parse the version number
file(READ "${PROJECT_SOURCE_DIR}/Eigen/src/Core/util/Macros.h" _eigen_version_header)
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen_world_version_match "${_eigen_version_header}")
set(EIGEN_WORLD_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen_major_version_match "${_eigen_version_header}")
set(EIGEN_MAJOR_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen_minor_version_match "${_eigen_version_header}")
set(EIGEN_MINOR_VERSION "${CMAKE_MATCH_1}")
set(EIGEN_VERSION_NUMBER ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})

# if we are not in a mercurial clone
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.hg)
  # if the mercurial program is absent or this will leave the EIGEN_HG_CHANGESET string empty,
  # but won't stop CMake.
  execute_process(COMMAND hg tip -R ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE EIGEN_HGTIP_OUTPUT)
  execute_process(COMMAND hg branch -R ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE EIGEN_BRANCH_OUTPUT)
endif()

# if this is the default (aka development) branch, extract the mercurial changeset number from the hg tip output...
if(EIGEN_BRANCH_OUTPUT MATCHES "default")
string(REGEX MATCH "^changeset: *[0-9]*:([0-9;a-f]+).*" EIGEN_HG_CHANGESET_MATCH "${EIGEN_HGTIP_OUTPUT}")
set(EIGEN_HG_CHANGESET "${CMAKE_MATCH_1}")
endif(EIGEN_BRANCH_OUTPUT MATCHES "default")
#...and show it next to the version number
if(EIGEN_HG_CHANGESET)
  set(EIGEN_VERSION "${EIGEN_VERSION_NUMBER} (mercurial changeset ${EIGEN_HG_CHANGESET})")
else(EIGEN_HG_CHANGESET)
  set(EIGEN_VERSION "${EIGEN_VERSION_NUMBER}")
endif(EIGEN_HG_CHANGESET)


include(CheckCXXCompilerFlag)
include(GNUInstallDirs)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

#############################################################################
# find how to link to the standard libraries                                #
#############################################################################

find_package(StandardMathLibrary)


set(EIGEN_TEST_CUSTOM_LINKER_FLAGS  "" CACHE STRING "Additional linker flags when linking unit tests.")
set(EIGEN_TEST_CUSTOM_CXX_FLAGS     "" CACHE STRING "Additional compiler flags when compiling unit tests.")

set(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO "")

if(NOT STANDARD_MATH_LIBRARY_FOUND)

  message(FATAL_ERROR
    "Can't link to the standard math library. Please report to the Eigen developers, telling them about your platform.")

else()

  if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
    set(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO "${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO} ${STANDARD_MATH_LIBRARY}")
  else()
    set(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO "${STANDARD_MATH_LIBRARY}")
  endif()

endif()

if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
  message(STATUS "Standard libraries to link to explicitly: ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO}")
else()
  message(STATUS "Standard libraries to link to explicitly: none")
endif()

option(EIGEN_BUILD_BTL "Build benchmark suite" OFF)

# Disable pkgconfig only for native Windows builds
if(NOT WIN32 OR NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
  option(EIGEN_BUILD_PKGCONFIG "Build pkg-config .pc file for Eigen" ON)
endif()

set(CMAKE_INCLUDE_CURRENT_DIR ON)

option(EIGEN_SPLIT_LARGE_TESTS "Split large tests into smaller executables" ON)

option(EIGEN_DEFAULT_TO_ROW_MAJOR "Use row-major as default matrix storage order" OFF)
if(EIGEN_DEFAULT_TO_ROW_MAJOR)
  add_definitions("-DEIGEN_DEFAULT_TO_ROW_MAJOR")
endif()

set(EIGEN_TEST_MAX_SIZE "320" CACHE STRING "Maximal matrix/vector size, default is 320")

macro(ei_add_cxx_compiler_flag FLAG)
  string(REGEX REPLACE "-" "" SFLAG1 ${FLAG})
  string(REGEX REPLACE "\\+" "p" SFLAG ${SFLAG1})
  check_cxx_compiler_flag(${FLAG} COMPILER_SUPPORT_${SFLAG})
  if(COMPILER_SUPPORT_${SFLAG})
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
  endif()
endmacro(ei_add_cxx_compiler_flag)

if(NOT MSVC)
  # We assume that other compilers are partly compatible with GNUCC

  # clang outputs some warnings for unknown flags that are not caught by check_cxx_compiler_flag
  # adding -Werror turns such warnings into errors
  check_cxx_compiler_flag("-Werror" COMPILER_SUPPORT_WERROR)
  if(COMPILER_SUPPORT_WERROR)
    set(CMAKE_REQUIRED_FLAGS "-Werror")
  endif()
  ei_add_cxx_compiler_flag("-pedantic")
  ei_add_cxx_compiler_flag("-Wall")
  ei_add_cxx_compiler_flag("-Wextra")
  #ei_add_cxx_compiler_flag("-Weverything")              # clang
  
  ei_add_cxx_compiler_flag("-Wundef")
  ei_add_cxx_compiler_flag("-Wcast-align")
  ei_add_cxx_compiler_flag("-Wchar-subscripts")
  ei_add_cxx_compiler_flag("-Wnon-virtual-dtor")
  ei_add_cxx_compiler_flag("-Wunused-local-typedefs")
  ei_add_cxx_compiler_flag("-Wpointer-arith")
  ei_add_cxx_compiler_flag("-Wwrite-strings")
  ei_add_cxx_compiler_flag("-Wformat-security")
  ei_add_cxx_compiler_flag("-Wshorten-64-to-32")
  ei_add_cxx_compiler_flag("-Wlogical-op")
  ei_add_cxx_compiler_flag("-Wenum-conversion")
  ei_add_cxx_compiler_flag("-Wc++11-extensions")
  ei_add_cxx_compiler_flag("-Wdouble-promotion")
#  ei_add_cxx_compiler_flag("-Wconversion")
  
  # -Wshadow is insanely too strict with gcc, hopefully it will become usable with gcc 6
  # if(NOT CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "5.0.0"))
  if(NOT CMAKE_COMPILER_IS_GNUCXX)
    ei_add_cxx_compiler_flag("-Wshadow")
  endif()
  
  ei_add_cxx_compiler_flag("-Wno-psabi")
  ei_add_cxx_compiler_flag("-Wno-variadic-macros")
  ei_add_cxx_compiler_flag("-Wno-long-long")
  
  ei_add_cxx_compiler_flag("-fno-check-new")
  ei_add_cxx_compiler_flag("-fno-common")
  ei_add_cxx_compiler_flag("-fstrict-aliasing")
  ei_add_cxx_compiler_flag("-wd981")                    # disable ICC's "operands are evaluated in unspecified order" remark
  ei_add_cxx_compiler_flag("-wd2304")                   # disable ICC's "warning #2304: non-explicit constructor with single argument may cause implicit type conversion" produced by -Wnon-virtual-dtor
  
  
  # The -ansi flag must be added last, otherwise it is also used as a linker flag by check_cxx_compiler_flag making it fails
  # Moreover we should not set both -strict-ansi and -ansi
  check_cxx_compiler_flag("-strict-ansi" COMPILER_SUPPORT_STRICTANSI)
  ei_add_cxx_compiler_flag("-Qunused-arguments")        # disable clang warning: argument unused during compilation: '-ansi'
  
  if(COMPILER_SUPPORT_STRICTANSI)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -strict-ansi")
  else()
    ei_add_cxx_compiler_flag("-ansi")
  endif()

  if(ANDROID_NDK)
    ei_add_cxx_compiler_flag("-pie")
    ei_add_cxx_compiler_flag("-fPIE")
  endif()
  
  set(CMAKE_REQUIRED_FLAGS "")

  option(EIGEN_TEST_SSE2 "Enable/Disable SSE2 in tests/examples" OFF)
  if(EIGEN_TEST_SSE2)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
    message(STATUS "Enabling SSE2 in tests/examples")
  endif()

  option(EIGEN_TEST_SSE3 "Enable/Disable SSE3 in tests/examples" OFF)
  if(EIGEN_TEST_SSE3)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse3")
    message(STATUS "Enabling SSE3 in tests/examples")
  endif()

  option(EIGEN_TEST_SSSE3 "Enable/Disable SSSE3 in tests/examples" OFF)
  if(EIGEN_TEST_SSSE3)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3")
    message(STATUS "Enabling SSSE3 in tests/examples")
  endif()

  option(EIGEN_TEST_SSE4_1 "Enable/Disable SSE4.1 in tests/examples" OFF)
  if(EIGEN_TEST_SSE4_1)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
    message(STATUS "Enabling SSE4.1 in tests/examples")
  endif()

  option(EIGEN_TEST_SSE4_2 "Enable/Disable SSE4.2 in tests/examples" OFF)
  if(EIGEN_TEST_SSE4_2)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
    message(STATUS "Enabling SSE4.2 in tests/examples")
  endif()

  option(EIGEN_TEST_AVX "Enable/Disable AVX in tests/examples" OFF)
  if(EIGEN_TEST_AVX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
    message(STATUS "Enabling AVX in tests/examples")
  endif()

  option(EIGEN_TEST_FMA "Enable/Disable FMA in tests/examples" OFF)
  if(EIGEN_TEST_FMA AND NOT EIGEN_TEST_NEON)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfma")
    message(STATUS "Enabling FMA in tests/examples")
  endif()

  option(EIGEN_TEST_AVX512 "Enable/Disable AVX512 in tests/examples" OFF)
  if(EIGEN_TEST_AVX512)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx512f -fabi-version=6 -DEIGEN_ENABLE_AVX512")
    message(STATUS "Enabling AVX512 in tests/examples")
  endif()

  option(EIGEN_TEST_F16C "Enable/Disable F16C in tests/examples" OFF)
  if(EIGEN_TEST_F16C)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mf16c")
    message(STATUS "Enabling F16C in tests/examples")
  endif()

  option(EIGEN_TEST_ALTIVEC "Enable/Disable AltiVec in tests/examples" OFF)
  if(EIGEN_TEST_ALTIVEC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maltivec -mabi=altivec")
    message(STATUS "Enabling AltiVec in tests/examples")
  endif()

  option(EIGEN_TEST_VSX "Enable/Disable VSX in tests/examples" OFF)
  if(EIGEN_TEST_VSX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -mvsx")
    message(STATUS "Enabling VSX in tests/examples")
  endif()

  option(EIGEN_TEST_NEON "Enable/Disable Neon in tests/examples" OFF)
  if(EIGEN_TEST_NEON)
    if(EIGEN_TEST_FMA)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon-vfpv4")
    else()
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon")
    endif()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=hard")
    message(STATUS "Enabling NEON in tests/examples")
  endif()

  option(EIGEN_TEST_NEON64 "Enable/Disable Neon in tests/examples" OFF)
  if(EIGEN_TEST_NEON64)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
    message(STATUS "Enabling NEON in tests/examples")
  endif()

  option(EIGEN_TEST_ZVECTOR "Enable/Disable S390X(zEC13) ZVECTOR in tests/examples" OFF)
  if(EIGEN_TEST_ZVECTOR)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z13 -mzvector")
    message(STATUS "Enabling S390X(zEC13) ZVECTOR in tests/examples")
  endif()

  check_cxx_compiler_flag("-fopenmp" COMPILER_SUPPORT_OPENMP)
  if(COMPILER_SUPPORT_OPENMP)
    option(EIGEN_TEST_OPENMP "Enable/Disable OpenMP in tests/examples" OFF)
    if(EIGEN_TEST_OPENMP)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
      message(STATUS "Enabling OpenMP in tests/examples")
    endif()
  endif()

else(NOT MSVC)

  # C4127 - conditional expression is constant
  # C4714 - marked as __forceinline not inlined (I failed to deactivate it selectively)
  #         We can disable this warning in the unit tests since it is clear that it occurs
  #         because we are oftentimes returning objects that have a destructor or may
  #         throw exceptions - in particular in the unit tests we are throwing extra many
  #         exceptions to cover indexing errors.
  # C4505 - unreferenced local function has been removed (impossible to deactive selectively)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /wd4127 /wd4505 /wd4714")

  # replace all /Wx by /W4
  string(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")

  check_cxx_compiler_flag("/openmp" COMPILER_SUPPORT_OPENMP)
  if(COMPILER_SUPPORT_OPENMP)
    option(EIGEN_TEST_OPENMP "Enable/Disable OpenMP in tests/examples" OFF)
    if(EIGEN_TEST_OPENMP)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /openmp")
      message(STATUS "Enabling OpenMP in tests/examples")
    endif()
  endif()

  option(EIGEN_TEST_SSE2 "Enable/Disable SSE2 in tests/examples" OFF)
  if(EIGEN_TEST_SSE2)
    if(NOT CMAKE_CL_64)
      # arch is not supported on 64 bit systems, SSE is enabled automatically.
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2")
    endif(NOT CMAKE_CL_64)
    message(STATUS "Enabling SSE2 in tests/examples")
  endif(EIGEN_TEST_SSE2)
endif(NOT MSVC)

option(EIGEN_TEST_NO_EXPLICIT_VECTORIZATION "Disable explicit vectorization in tests/examples" OFF)
option(EIGEN_TEST_X87 "Force using X87 instructions. Implies no vectorization." OFF)
option(EIGEN_TEST_32BIT "Force generating 32bit code." OFF)

if(EIGEN_TEST_X87)
  set(EIGEN_TEST_NO_EXPLICIT_VECTORIZATION ON)
  if(CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=387")
    message(STATUS "Forcing use of x87 instructions in tests/examples")
  else()
    message(STATUS "EIGEN_TEST_X87 ignored on your compiler")
  endif()
endif()

if(EIGEN_TEST_32BIT)
  if(CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
    message(STATUS "Forcing generation of 32-bit code in tests/examples")
  else()
    message(STATUS "EIGEN_TEST_32BIT ignored on your compiler")
  endif()
endif()

if(EIGEN_TEST_NO_EXPLICIT_VECTORIZATION)
  add_definitions(-DEIGEN_DONT_VECTORIZE=1)
  message(STATUS "Disabling vectorization in tests/examples")
endif()

option(EIGEN_TEST_NO_EXPLICIT_ALIGNMENT "Disable explicit alignment (hence vectorization) in tests/examples" OFF)
if(EIGEN_TEST_NO_EXPLICIT_ALIGNMENT)
  add_definitions(-DEIGEN_DONT_ALIGN=1)
  message(STATUS "Disabling alignment in tests/examples")
endif()

option(EIGEN_TEST_NO_EXCEPTIONS "Disables C++ exceptions" OFF)
if(EIGEN_TEST_NO_EXCEPTIONS)
  ei_add_cxx_compiler_flag("-fno-exceptions")
  message(STATUS "Disabling exceptions in tests/examples")
endif()

option(EIGEN_TEST_CXX11 "Enable testing with C++11 and C++11 features (e.g. Tensor module)." OFF)

set(EIGEN_CUDA_COMPUTE_ARCH 30 CACHE STRING "The CUDA compute architecture level to target when compiling CUDA code")

include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})

# Backward compatibility support for EIGEN_INCLUDE_INSTALL_DIR
if(EIGEN_INCLUDE_INSTALL_DIR)
  message(WARNING "EIGEN_INCLUDE_INSTALL_DIR is deprecated. Use INCLUDE_INSTALL_DIR instead.")
endif()

if(EIGEN_INCLUDE_INSTALL_DIR AND NOT INCLUDE_INSTALL_DIR)
  set(INCLUDE_INSTALL_DIR ${EIGEN_INCLUDE_INSTALL_DIR}
      CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed")
else()
  set(INCLUDE_INSTALL_DIR
      "${CMAKE_INSTALL_INCLUDEDIR}/eigen3"
      CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen header files are installed"
      )
endif()
set(CMAKEPACKAGE_INSTALL_DIR
    "${CMAKE_INSTALL_DATADIR}/eigen3/cmake"
    CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where Eigen3Config.cmake is installed"
    )
set(PKGCONFIG_INSTALL_DIR
    "${CMAKE_INSTALL_DATADIR}/pkgconfig"
    CACHE PATH "The directory relative to CMAKE_PREFIX_PATH where eigen3.pc is installed"
    )


# similar to set_target_properties but append the property instead of overwriting it
macro(ei_add_target_property target prop value)

  get_target_property(previous ${target} ${prop})
  # if the property wasn't previously set, ${previous} is now "previous-NOTFOUND" which cmake allows catching with plain if()
  if(NOT previous)
    set(previous "")
  endif(NOT previous)
  set_target_properties(${target} PROPERTIES ${prop} "${previous} ${value}")
endmacro(ei_add_target_property)

install(FILES
  signature_of_eigen3_matrix_library
  DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel
  )

if(EIGEN_BUILD_PKGCONFIG)
    configure_file(eigen3.pc.in eigen3.pc @ONLY)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc
        DESTINATION ${PKGCONFIG_INSTALL_DIR}
        )
endif()

add_subdirectory(Eigen)

add_subdirectory(doc EXCLUDE_FROM_ALL)

option(BUILD_TESTING "Enable creation of Eigen tests." ON)
if(BUILD_TESTING)
  include(EigenConfigureTesting)

  if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
    add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest
  else()
    add_subdirectory(test EXCLUDE_FROM_ALL)
  endif()
endif()

if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
  add_subdirectory(blas)
  add_subdirectory(lapack)
else()
  add_subdirectory(blas EXCLUDE_FROM_ALL)
  add_subdirectory(lapack EXCLUDE_FROM_ALL)
endif()

# add SYCL
option(EIGEN_TEST_SYCL "Add Sycl support." OFF)
if(EIGEN_TEST_SYCL)
  set (CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" "cmake/Modules/" "${CMAKE_MODULE_PATH}")
  include(FindComputeCpp)
endif()

add_subdirectory(unsupported)

add_subdirectory(demos EXCLUDE_FROM_ALL)

# must be after test and unsupported, for configuring buildtests.in
add_subdirectory(scripts EXCLUDE_FROM_ALL)

# TODO: consider also replacing EIGEN_BUILD_BTL by a custom target "make btl"?
if(EIGEN_BUILD_BTL)
  add_subdirectory(bench/btl EXCLUDE_FROM_ALL)
endif(EIGEN_BUILD_BTL)

if(NOT WIN32)
  add_subdirectory(bench/spbench EXCLUDE_FROM_ALL)
endif(NOT WIN32)

configure_file(scripts/cdashtesting.cmake.in cdashtesting.cmake @ONLY)

if(BUILD_TESTING)
  ei_testing_print_summary()
endif()

message(STATUS "")
message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}")
message(STATUS "")

option(EIGEN_FAILTEST "Enable failtests." OFF)
if(EIGEN_FAILTEST)
  add_subdirectory(failtest)
endif()

string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_tolower)
if(cmake_generator_tolower MATCHES "makefile")
  message(STATUS "Some things you can do now:")
  message(STATUS "--------------+--------------------------------------------------------------")
  message(STATUS "Command       |   Description")
  message(STATUS "--------------+--------------------------------------------------------------")
  message(STATUS "make install  | Install Eigen. Headers will be installed to:")
  message(STATUS "              |     <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>")
  message(STATUS "              |   Using the following values:")
  message(STATUS "              |     CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
  message(STATUS "              |     INCLUDE_INSTALL_DIR:  ${INCLUDE_INSTALL_DIR}")
  message(STATUS "              |   Change the install location of Eigen headers using:")
  message(STATUS "              |     cmake . -DCMAKE_INSTALL_PREFIX=yourprefix")
  message(STATUS "              |   Or:")
  message(STATUS "              |     cmake . -DINCLUDE_INSTALL_DIR=yourdir")
  message(STATUS "make doc      | Generate the API documentation, requires Doxygen & LaTeX")
  message(STATUS "make check    | Build and run the unit-tests. Read this page:")
  message(STATUS "              |   http://eigen.tuxfamily.org/index.php?title=Tests")
  message(STATUS "make blas     | Build BLAS library (not the same thing as Eigen)")
  message(STATUS "make uninstall| Removes files installed by make install")
  message(STATUS "--------------+--------------------------------------------------------------")
else()
  message(STATUS "To build/run the unit tests, read this page:")
  message(STATUS "  http://eigen.tuxfamily.org/index.php?title=Tests")
endif()

message(STATUS "")


set ( EIGEN_VERSION_STRING ${EIGEN_VERSION_NUMBER} )
set ( EIGEN_VERSION_MAJOR  ${EIGEN_WORLD_VERSION} )
set ( EIGEN_VERSION_MINOR  ${EIGEN_MAJOR_VERSION} )
set ( EIGEN_VERSION_PATCH  ${EIGEN_MINOR_VERSION} )
set ( EIGEN_DEFINITIONS "")
set ( EIGEN_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}" )
set ( EIGEN_ROOT_DIR ${CMAKE_INSTALL_PREFIX} )

# Interface libraries require at least CMake 3.0
if (NOT CMAKE_VERSION VERSION_LESS 3.0)
  include (CMakePackageConfigHelpers)

  # Imported target support
  add_library (eigen INTERFACE)

  target_compile_definitions (eigen INTERFACE ${EIGEN_DEFINITIONS})
  target_include_directories (eigen INTERFACE
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
    $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
  )

  # Export as title case Eigen
  set_target_properties (eigen PROPERTIES EXPORT_NAME Eigen)

  install (TARGETS eigen EXPORT Eigen3Targets)

  configure_package_config_file (
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3Config.cmake.in
    ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
    PATH_VARS EIGEN_INCLUDE_DIR EIGEN_ROOT_DIR
    INSTALL_DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
    NO_CHECK_REQUIRED_COMPONENTS_MACRO # Eigen does not provide components
  )
  # Remove CMAKE_SIZEOF_VOID_P from Eigen3ConfigVersion.cmake since Eigen does
  # not depend on architecture specific settings or libraries. More
  # specifically, an Eigen3Config.cmake generated from a 64 bit target can be
  # used for 32 bit targets as well (and vice versa).
  set (_Eigen3_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
  unset (CMAKE_SIZEOF_VOID_P)
  write_basic_package_version_file (Eigen3ConfigVersion.cmake
                                    VERSION ${EIGEN_VERSION_NUMBER}
                                    COMPATIBILITY SameMajorVersion)
  set (CMAKE_SIZEOF_VOID_P ${_Eigen3_CMAKE_SIZEOF_VOID_P})

  # The Eigen target will be located in the Eigen3 namespace. Other CMake
  # targets can refer to it using Eigen3::Eigen.
  export (TARGETS eigen NAMESPACE Eigen3:: FILE Eigen3Targets.cmake)
  # Export Eigen3 package to CMake registry such that it can be easily found by
  # CMake even if it has not been installed to a standard directory.
  export (PACKAGE Eigen3)

  install (EXPORT Eigen3Targets NAMESPACE Eigen3:: DESTINATION ${CMAKEPACKAGE_INSTALL_DIR})

else (NOT CMAKE_VERSION VERSION_LESS 3.0)
  # Fallback to legacy Eigen3Config.cmake without the imported target
  
  # If CMakePackageConfigHelpers module is available (CMake >= 2.8.8)
  # create a relocatable Config file, otherwise leave the hardcoded paths       
  include(CMakePackageConfigHelpers OPTIONAL RESULT_VARIABLE CPCH_PATH)
  
  if(CPCH_PATH)
    configure_package_config_file (
      ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3ConfigLegacy.cmake.in
      ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
      PATH_VARS EIGEN_INCLUDE_DIR EIGEN_ROOT_DIR
      INSTALL_DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
      NO_CHECK_REQUIRED_COMPONENTS_MACRO # Eigen does not provide components
    )
  else() 
    # The PACKAGE_* variables are defined by the configure_package_config_file
    # but without it we define them manually to the hardcoded paths
    set(PACKAGE_INIT "")
    set(PACKAGE_EIGEN_INCLUDE_DIR ${EIGEN_INCLUDE_DIR})
    set(PACKAGE_EIGEN_ROOT_DIR ${EIGEN_ROOT_DIR})
    configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3ConfigLegacy.cmake.in
                     ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
                     @ONLY ESCAPE_QUOTES )
  endif()

  write_basic_package_version_file( Eigen3ConfigVersion.cmake
                                    VERSION ${EIGEN_VERSION_NUMBER}
                                    COMPATIBILITY SameMajorVersion )

endif (NOT CMAKE_VERSION VERSION_LESS 3.0)

install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UseEigen3.cmake
                ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
                ${CMAKE_CURRENT_BINARY_DIR}/Eigen3ConfigVersion.cmake
          DESTINATION ${CMAKEPACKAGE_INSTALL_DIR} )

# Add uninstall target
add_custom_target ( uninstall
    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/EigenUninstall.cmake)


================================================
FILE: include/eigen3/COPYING.BSD
================================================
/*
 Copyright (c) 2011, Intel Corporation. All rights reserved.

 Redistribution and use in source and binary forms, with or without modification,
 are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.
 * Neither the name of Intel Corporation nor the names of its contributors may
   be used to endorse or promote products derived from this software without
   specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

================================================
FILE: include/eigen3/COPYING.GPL
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.


================================================
FILE: include/eigen3/COPYING.LGPL
================================================
                  GNU LESSER GENERAL PUBLIC LICENSE
                       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

                  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

                            NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

                     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: include/eigen3/COPYING.MINPACK
================================================
Minpack Copyright Notice (1999) University of Chicago.  All rights reserved

Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the
following conditions are met:

1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.

2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.

3. The end-user documentation included with the
redistribution, if any, must include the following
acknowledgment:

   "This product includes software developed by the
   University of Chicago, as Operator of Argonne National
   Laboratory.

Alternately, this acknowledgment may appear in the software
itself, if and wherever such third-party acknowledgments
normally appear.

4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
BE CORRECTED.

5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
POSSIBILITY OF SUCH LOSS OR DAMAGES.



================================================
FILE: include/eigen3/COPYING.MPL2
================================================
Mozilla Public License Version 2.0
==================================

1. Definitions
--------------

1.1. "Contributor"
    means each individual or legal entity that creates, contributes to
    the creation of, or owns Covered Software.

1.2. "Contributor Version"
    means the combination of the Contributions of others (if any) used
    by a Contributor and that particular Contributor's Contribution.

1.3. "Contribution"
    means Covered Software of a particular Contributor.

1.4. "Covered Software"
    means Source Code Form to which the initial Contributor has attached
    the notice in Exhibit A, the Executable Form of such Source Code
    Form, and Modifications of such Source Code Form, in each case
    including portions thereof.

1.5. "Incompatible With Secondary Licenses"
    means

    (a) that the initial Contributor has attached the notice described
        in Exhibit B to the Covered Software; or

    (b) that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the
        terms of a Secondary License.

1.6. "Executable Form"
    means any form of the work other than Source Code Form.

1.7. "Larger Work"
    means a work that combines Covered Software with other material, in 
    a separate file or files, that is not Covered Software.

1.8. "License"
    means this document.

1.9. "Licensable"
    means having the right to grant, to the maximum extent possible,
    whether at the time of the initial grant or subsequently, any and
    all of the rights conveyed by this License.

1.10. "Modifications"
    means any of the following:

    (a) any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered
        Software; or

    (b) any new file in Source Code Form that contains any Covered
        Software.

1.11. "Patent Claims" of a Contributor
    means any patent claim(s), including without limitation, method,
    process, and apparatus claims, in any patent Licensable by such
    Contributor that would be infringed, but for the grant of the
    License, by the making, using, selling, offering for sale, having
    made, import, or transfer of either its Contributions or its
    Contributor Version.

1.12. "Secondary License"
    means either the GNU General Public License, Version 2.0, the GNU
    Lesser General Public License, Version 2.1, the GNU Affero General
    Public License, Version 3.0, or any later versions of those
    licenses.

1.13. "Source Code Form"
    means the form of the work preferred for making modifications.

1.14. "You" (or "Your")
    means an individual or a legal entity exercising rights under this
    License. For legal entities, "You" includes any entity that
    controls, is controlled by, or is under common control with You. For
    purposes of this definition, "control" means (a) the power, direct
    or indirect, to cause the direction or management of such entity,
    whether by contract or otherwise, or (b) ownership of more than
    fifty percent (50%) of the outstanding shares or beneficial
    ownership of such entity.

2. License Grants and Conditions
--------------------------------

2.1. Grants

Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:

(a) under intellectual property rights (other than patent or trademark)
    Licensable by such Contributor to use, reproduce, make available,
    modify, display, perform, distribute, and otherwise exploit its
    Contributions, either on an unmodified basis, with Modifications, or
    as part of a Larger Work; and

(b) under Patent Claims of such Contributor to make, use, sell, offer
    for sale, have made, import, and otherwise transfer either its
    Contributions or its Contributor Version.

2.2. Effective Date

The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.

2.3. Limitations on Grant Scope

The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:

(a) for any code that a Contributor has removed from Covered Software;
    or

(b) for infringements caused by: (i) Your and any other third party's
    modifications of Covered Software, or (ii) the combination of its
    Contributions with other software (except as part of its Contributor
    Version); or

(c) under Patent Claims infringed by Covered Software in the absence of
    its Contributions.

This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).

2.4. Subsequent Licenses

No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).

2.5. Representation

Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.

2.7. Conditions

Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.

3. Responsibilities
-------------------

3.1. Distribution of Source Form

All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.

3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

(a) such Covered Software must also be made available in Source Code
    Form, as described in Section 3.1, and You must inform recipients of
    the Executable Form how they can obtain a copy of such Source Code
    Form by reasonable means in a timely manner, at a charge no more
    than the cost of distribution to the recipient; and

(b) You may distribute such Executable Form under the terms of this
    License, or sublicense it under different terms, provided that the
    license for the Executable Form does not attempt to limit or alter
    the recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).

3.4. Notices

You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.

4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------

If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.

5. Termination
--------------

5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.

************************************************************************
*                                                                      *
*  6. Disclaimer of Warranty                                           *
*  -------------------------                                           *
*                                                                      *
*  Covered Software is provided under this License on an "as is"       *
*  basis, without warranty of any kind, either expressed, implied, or  *
*  statutory, including, without limitation, warranties that the       *
*  Covered Software is free of defects, merchantable, fit for a        *
*  particular purpose or non-infringing. The entire risk as to the     *
*  quality and performance of the Covered Software is with You.        *
*  Should any Covered Software prove defective in any respect, You     *
*  (not any Contributor) assume the cost of any necessary servicing,   *
*  repair, or correction. This disclaimer of warranty constitutes an   *
*  essential part of this License. No use of any Covered Software is   *
*  authorized under this License except under this disclaimer.         *
*                                                                      *
************************************************************************

************************************************************************
*                                                                      *
*  7. Limitation of Liability                                          *
*  --------------------------                                          *
*                                                                      *
*  Under no circumstances and under no legal theory, whether tort      *
*  (including negligence), contract, or otherwise, shall any           *
*  Contributor, or anyone who distributes Covered Software as          *
*  permitted above, be liable to You for any direct, indirect,         *
*  special, incidental, or consequential damages of any character      *
*  including, without limitation, damages for lost profits, loss of    *
*  goodwill, work stoppage, computer failure or malfunction, or any    *
*  and all other commercial damages or losses, even if such party      *
*  shall have been informed of the possibility of such damages. This   *
*  limitation of liability shall not apply to liability for death or   *
*  personal injury resulting from such party's negligence to the       *
*  extent applicable law prohibits such limitation. Some               *
*  jurisdictions do not allow the exclusion or limitation of           *
*  incidental or consequential damages, so this exclusion and          *
*  limitation may not apply to You.                                    *
*                                                                      *
************************************************************************

8. Litigation
-------------

Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.

9. Miscellaneous
----------------

This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.

10. Versions of the License
---------------------------

10.1. New Versions

Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.

10.2. Effect of New Versions

You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.

10.3. Modified Versions

If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses

If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice
-------------------------------------------

  This Source Code Form is subject to the terms of the Mozilla Public
  License, v. 2.0. If a copy of the MPL was not distributed with this
  file, You can obtain one at http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------

  This Source Code Form is "Incompatible With Secondary Licenses", as
  defined by the Mozilla Public License, v. 2.0.


================================================
FILE: include/eigen3/COPYING.README
================================================
Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:
  http://www.mozilla.org/MPL/2.0/
  http://www.mozilla.org/MPL/2.0/FAQ.html

Some files contain third-party code under BSD or LGPL licenses, whence the other
COPYING.* files here.

All the LGPL code is either LGPL 2.1-only, or LGPL 2.1-or-later.
For this reason, the COPYING.LGPL file contains the LGPL 2.1 text.

If you want to guarantee that the Eigen code that you are #including is licensed
under the MPL2 and possibly more permissive licenses (like BSD), #define this
preprocessor symbol:
  EIGEN_MPL2_ONLY
For example, with most compilers, you could add this to your project CXXFLAGS:
  -DEIGEN_MPL2_ONLY
This will cause a compilation error to be generated if you #include any code that is
LGPL licensed.


================================================
FILE: include/eigen3/CTestConfig.cmake
================================================
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
## # The following are required to uses Dart and the Cdash dashboard
##   ENABLE_TESTING()
##   INCLUDE(CTest)
set(CTEST_PROJECT_NAME "Eigen 3.3")
set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC")

set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "manao.inria.fr")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=Eigen+3.3")
set(CTEST_DROP_SITE_CDASH TRUE)


================================================
FILE: include/eigen3/CTestCustom.cmake.in
================================================

set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS "2000")
set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS   "2000")


================================================
FILE: include/eigen3/Eigen/CMakeLists.txt
================================================
include(RegexUtils)
test_escape_string_as_regex()

file(GLOB Eigen_directory_files "*")

escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")

foreach(f ${Eigen_directory_files})
  if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src")
    list(APPEND Eigen_directory_files_to_install ${f})
  endif()
endforeach(f ${Eigen_directory_files})

install(FILES
  ${Eigen_directory_files_to_install}
  DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel
  )

install(DIRECTORY src DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel FILES_MATCHING PATTERN "*.h")


================================================
FILE: include/eigen3/Eigen/Cholesky
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_CHOLESKY_MODULE_H
#define EIGEN_CHOLESKY_MODULE_H

#include "Core"
#include "Jacobi"

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup Cholesky_Module Cholesky module
  *
  *
  *
  * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
  * Those decompositions are also accessible via the following methods:
  *  - MatrixBase::llt()
  *  - MatrixBase::ldlt()
  *  - SelfAdjointView::llt()
  *  - SelfAdjointView::ldlt()
  *
  * \code
  * #include <Eigen/Cholesky>
  * \endcode
  */

#include "src/Cholesky/LLT.h"
#include "src/Cholesky/LDLT.h"
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/Cholesky/LLT_LAPACKE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_CHOLESKY_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/CholmodSupport
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
#define EIGEN_CHOLMODSUPPORT_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

extern "C" {
  #include <cholmod.h>
}

/** \ingroup Support_modules
  * \defgroup CholmodSupport_Module CholmodSupport module
  *
  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
  * It provides the two following main factorization classes:
  * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
  * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
  *
  * For the sake of completeness, this module also propose the two following classes:
  * - class CholmodSimplicialLLT
  * - class CholmodSimplicialLDLT
  * Note that these classes does not bring any particular advantage compared to the built-in
  * SimplicialLLT and SimplicialLDLT factorization classes.
  *
  * \code
  * #include <Eigen/CholmodSupport>
  * \endcode
  *
  * 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.
  * The dependencies depend on how cholmod has been compiled.
  * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
  *
  */

#include "src/CholmodSupport/CholmodSupport.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_CHOLMODSUPPORT_MODULE_H



================================================
FILE: include/eigen3/Eigen/Core
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_CORE_H
#define EIGEN_CORE_H

// first thing Eigen does: stop the compiler from committing suicide
#include "src/Core/util/DisableStupidWarnings.h"

#if defined(__CUDACC__) && !defined(EIGEN_NO_CUDA)
  #define EIGEN_CUDACC __CUDACC__
#endif

#if defined(__CUDA_ARCH__) && !defined(EIGEN_NO_CUDA)
  #define EIGEN_CUDA_ARCH __CUDA_ARCH__
#endif

#if defined(__CUDACC_VER_MAJOR__) && (__CUDACC_VER_MAJOR__ >= 9)
#define EIGEN_CUDACC_VER  ((__CUDACC_VER_MAJOR__ * 10000) + (__CUDACC_VER_MINOR__ * 100))
#elif defined(__CUDACC_VER__)
#define EIGEN_CUDACC_VER __CUDACC_VER__
#else
#define EIGEN_CUDACC_VER 0
#endif

// Handle NVCC/CUDA/SYCL
#if defined(__CUDACC__) || defined(__SYCL_DEVICE_ONLY__)
  // Do not try asserts on CUDA and SYCL!
  #ifndef EIGEN_NO_DEBUG
  #define EIGEN_NO_DEBUG
  #endif

  #ifdef EIGEN_INTERNAL_DEBUGGING
  #undef EIGEN_INTERNAL_DEBUGGING
  #endif

  #ifdef EIGEN_EXCEPTIONS
  #undef EIGEN_EXCEPTIONS
  #endif

  // All functions callable from CUDA code must be qualified with __device__
  #ifdef __CUDACC__
    // Do not try to vectorize on CUDA and SYCL!
    #ifndef EIGEN_DONT_VECTORIZE
    #define EIGEN_DONT_VECTORIZE
    #endif

    #define EIGEN_DEVICE_FUNC __host__ __device__
    // We need math_functions.hpp to ensure that that EIGEN_USING_STD_MATH macro
    // works properly on the device side
    #include <math_functions.hpp>
  #else
    #define EIGEN_DEVICE_FUNC
  #endif

#else
  #define EIGEN_DEVICE_FUNC

#endif

// When compiling CUDA device code with NVCC, pull in math functions from the
// global namespace.  In host mode, and when device doee with clang, use the
// std versions.
#if defined(__CUDA_ARCH__) && defined(__NVCC__)
  #define EIGEN_USING_STD_MATH(FUNC) using ::FUNC;
#else
  #define EIGEN_USING_STD_MATH(FUNC) using std::FUNC;
#endif

#if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(__CUDA_ARCH__) && !defined(EIGEN_EXCEPTIONS) && !defined(EIGEN_USE_SYCL)
  #define EIGEN_EXCEPTIONS
#endif

#ifdef EIGEN_EXCEPTIONS
  #include <new>
#endif

// then include this file where all our macros are defined. It's really important to do it first because
// it's where we do all the alignment settings (platform detection and honoring the user's will if he
// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
#include "src/Core/util/Macros.h"

// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6)
  #pragma GCC optimize ("-fno-ipa-cp-clone")
#endif

#include <complex>

// this include file manages BLAS and MKL related macros
// and inclusion of their respective header files
#include "src/Core/util/MKL_support.h"

// if alignment is disabled, then disable vectorization. Note: EIGEN_MAX_ALIGN_BYTES is the proper check, it takes into
// account both the user's will (EIGEN_MAX_ALIGN_BYTES,EIGEN_DONT_ALIGN) and our own platform checks
#if EIGEN_MAX_ALIGN_BYTES==0
  #ifndef EIGEN_DONT_VECTORIZE
    #define EIGEN_DONT_VECTORIZE
  #endif
#endif

#if EIGEN_COMP_MSVC
  #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
  #if (EIGEN_COMP_MSVC >= 1500) // 2008 or later
    // Remember that usage of defined() in a #define is undefined by the standard.
    // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || EIGEN_ARCH_x86_64
      #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
    #endif
  #endif
#else
  // Remember that usage of defined() in a #define is undefined by the standard
  #if (defined __SSE2__) && ( (!EIGEN_COMP_GNUC) || EIGEN_COMP_ICC || EIGEN_GNUC_AT_LEAST(4,2) )
    #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
  #endif
#endif

#ifndef EIGEN_DONT_VECTORIZE

  #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)

    // Defines symbols for compile-time detection of which instructions are
    // used.
    // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_SSE
    #define EIGEN_VECTORIZE_SSE2

    // Detect sse3/ssse3/sse4:
    // gcc and icc defines __SSE3__, ...
    // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
    // want to force the use of those instructions with msvc.
    #ifdef __SSE3__
      #define EIGEN_VECTORIZE_SSE3
    #endif
    #ifdef __SSSE3__
      #define EIGEN_VECTORIZE_SSSE3
    #endif
    #ifdef __SSE4_1__
      #define EIGEN_VECTORIZE_SSE4_1
    #endif
    #ifdef __SSE4_2__
      #define EIGEN_VECTORIZE_SSE4_2
    #endif
    #ifdef __AVX__
      #define EIGEN_VECTORIZE_AVX
      #define EIGEN_VECTORIZE_SSE3
      #define EIGEN_VECTORIZE_SSSE3
      #define EIGEN_VECTORIZE_SSE4_1
      #define EIGEN_VECTORIZE_SSE4_2
    #endif
    #ifdef __AVX2__
      #define EIGEN_VECTORIZE_AVX2
    #endif
    #ifdef __FMA__
      #define EIGEN_VECTORIZE_FMA
    #endif
    #if defined(__AVX512F__) && defined(EIGEN_ENABLE_AVX512)
      #define EIGEN_VECTORIZE_AVX512
      #define EIGEN_VECTORIZE_AVX2
      #define EIGEN_VECTORIZE_AVX
      #define EIGEN_VECTORIZE_FMA
      #ifdef __AVX512DQ__
        #define EIGEN_VECTORIZE_AVX512DQ
      #endif
      #ifdef __AVX512ER__
        #define EIGEN_VECTORIZE_AVX512ER
      #endif
    #endif

    // include files

    // This extern "C" works around a MINGW-w64 compilation issue
    // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
    // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
    // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
    // with conflicting linkage.  The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
    // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
    // notice that since these are C headers, the extern "C" is theoretically needed anyways.
    extern "C" {
      // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
      // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
      #if EIGEN_COMP_ICC >= 1110
        #include <immintrin.h>
      #else
        #include <mmintrin.h>
        #include <emmintrin.h>
        #include <xmmintrin.h>
        #ifdef  EIGEN_VECTORIZE_SSE3
        #include <pmmintrin.h>
        #endif
        #ifdef EIGEN_VECTORIZE_SSSE3
        #include <tmmintrin.h>
        #endif
        #ifdef EIGEN_VECTORIZE_SSE4_1
        #include <smmintrin.h>
        #endif
        #ifdef EIGEN_VECTORIZE_SSE4_2
        #include <nmmintrin.h>
        #endif
        #if defined(EIGEN_VECTORIZE_AVX) || defined(EIGEN_VECTORIZE_AVX512)
        #include <immintrin.h>
        #endif
      #endif
    } // end extern "C"
  #elif defined __VSX__
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_VSX
    #include <altivec.h>
    // We need to #undef all these ugly tokens defined in <altivec.h>
    // => use __vector instead of vector
    #undef bool
    #undef vector
    #undef pixel
  #elif defined __ALTIVEC__
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_ALTIVEC
    #include <altivec.h>
    // We need to #undef all these ugly tokens defined in <altivec.h>
    // => use __vector instead of vector
    #undef bool
    #undef vector
    #undef pixel
  #elif (defined  __ARM_NEON) || (defined __ARM_NEON__)
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_NEON
    #include <arm_neon.h>
  #elif (defined __s390x__ && defined __VEC__)
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_ZVECTOR
    #include <vecintrin.h>
  #endif
#endif

#if defined(__F16C__) && !defined(EIGEN_COMP_CLANG)
  // We can use the optimized fp16 to float and float to fp16 conversion routines
  #define EIGEN_HAS_FP16_C
#endif

#if defined __CUDACC__
  #define EIGEN_VECTORIZE_CUDA
  #include <vector_types.h>
  #if EIGEN_CUDACC_VER >= 70500
    #define EIGEN_HAS_CUDA_FP16
  #endif
#endif

#if defined EIGEN_HAS_CUDA_FP16
  #include <host_defines.h>
  #include <cuda_fp16.h>
#endif

#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
  #define EIGEN_HAS_OPENMP
#endif

#ifdef EIGEN_HAS_OPENMP
#include <omp.h>
#endif

// MSVC for windows mobile does not have the errno.h file
#if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
#define EIGEN_HAS_ERRNO
#endif

#ifdef EIGEN_HAS_ERRNO
#include <cerrno>
#endif
#include <cstddef>
#include <cstdlib>
#include <cmath>
#include <cassert>
#include <functional>
#include <iosfwd>
#include <cstring>
#include <string>
#include <limits>
#include <climits> // for CHAR_BIT
// for min/max:
#include <algorithm>

// for std::is_nothrow_move_assignable
#ifdef EIGEN_INCLUDE_TYPE_TRAITS
#include <type_traits>
#endif

// for outputting debug info
#ifdef EIGEN_DEBUG_ASSIGN
#include <iostream>
#endif

// required for __cpuid, needs to be included after cmath
#if EIGEN_COMP_MSVC && EIGEN_ARCH_i386_OR_x86_64 && !EIGEN_OS_WINCE
  #include <intrin.h>
#endif

/** \brief Namespace containing all symbols from the %Eigen library. */
namespace Eigen {

inline static const char *SimdInstructionSetsInUse(void) {
#if defined(EIGEN_VECTORIZE_AVX512)
  return "AVX512, FMA, AVX2, AVX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
#elif defined(EIGEN_VECTORIZE_AVX)
  return "AVX SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
#elif defined(EIGEN_VECTORIZE_SSE4_2)
  return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
#elif defined(EIGEN_VECTORIZE_SSE4_1)
  return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
#elif defined(EIGEN_VECTORIZE_SSSE3)
  return "SSE, SSE2, SSE3, SSSE3";
#elif defined(EIGEN_VECTORIZE_SSE3)
  return "SSE, SSE2, SSE3";
#elif defined(EIGEN_VECTORIZE_SSE2)
  return "SSE, SSE2";
#elif defined(EIGEN_VECTORIZE_ALTIVEC)
  return "AltiVec";
#elif defined(EIGEN_VECTORIZE_VSX)
  return "VSX";
#elif defined(EIGEN_VECTORIZE_NEON)
  return "ARM NEON";
#elif defined(EIGEN_VECTORIZE_ZVECTOR)
  return "S390X ZVECTOR";
#else
  return "None";
#endif
}

} // end namespace Eigen

#if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || defined EIGEN2_SUPPORT
// This will generate an error message:
#error Eigen2-support is only available up to version 3.2. Please go to "http://eigen.tuxfamily.org/index.php?title=Eigen2" for further information
#endif

namespace Eigen {

// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
// ensure QNX/QCC support
using std::size_t;
// gcc 4.6.0 wants std:: for ptrdiff_t
using std::ptrdiff_t;

}

/** \defgroup Core_Module Core module
  * This is the main module of Eigen providing dense matrix and vector support
  * (both fixed and dynamic size) with all the features corresponding to a BLAS library
  * and much more...
  *
  * \code
  * #include <Eigen/Core>
  * \endcode
  */

#include "src/Core/util/Constants.h"
#include "src/Core/util/Meta.h"
#include "src/Core/util/ForwardDeclarations.h"
#include "src/Core/util/StaticAssert.h"
#include "src/Core/util/XprHelper.h"
#include "src/Core/util/Memory.h"

#include "src/Core/NumTraits.h"
#include "src/Core/MathFunctions.h"
#include "src/Core/GenericPacketMath.h"
#include "src/Core/MathFunctionsImpl.h"
#include "src/Core/arch/Default/ConjHelper.h"

#if defined EIGEN_VECTORIZE_AVX512
  #include "src/Core/arch/SSE/PacketMath.h"
  #include "src/Core/arch/AVX/PacketMath.h"
  #include "src/Core/arch/AVX512/PacketMath.h"
  #include "src/Core/arch/AVX512/MathFunctions.h"
#elif defined EIGEN_VECTORIZE_AVX
  // Use AVX for floats and doubles, SSE for integers
  #include "src/Core/arch/SSE/PacketMath.h"
  #include "src/Core/arch/SSE/Complex.h"
  #include "src/Core/arch/SSE/MathFunctions.h"
  #include "src/Core/arch/AVX/PacketMath.h"
  #include "src/Core/arch/AVX/MathFunctions.h"
  #include "src/Core/arch/AVX/Complex.h"
  #include "src/Core/arch/AVX/TypeCasting.h"
  #include "src/Core/arch/SSE/TypeCasting.h"
#elif defined EIGEN_VECTORIZE_SSE
  #include "src/Core/arch/SSE/PacketMath.h"
  #include "src/Core/arch/SSE/MathFunctions.h"
  #include "src/Core/arch/SSE/Complex.h"
  #include "src/Core/arch/SSE/TypeCasting.h"
#elif defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
  #include "src/Core/arch/AltiVec/PacketMath.h"
  #include "src/Core/arch/AltiVec/MathFunctions.h"
  #include "src/Core/arch/AltiVec/Complex.h"
#elif defined EIGEN_VECTORIZE_NEON
  #include "src/Core/arch/NEON/PacketMath.h"
  #include "src/Core/arch/NEON/MathFunctions.h"
  #include "src/Core/arch/NEON/Complex.h"
#elif defined EIGEN_VECTORIZE_ZVECTOR
  #include "src/Core/arch/ZVector/PacketMath.h"
  #include "src/Core/arch/ZVector/MathFunctions.h"
  #include "src/Core/arch/ZVector/Complex.h"
#endif

// Half float support
#include "src/Core/arch/CUDA/Half.h"
#include "src/Core/arch/CUDA/PacketMathHalf.h"
#include "src/Core/arch/CUDA/TypeCasting.h"

#if defined EIGEN_VECTORIZE_CUDA
  #include "src/Core/arch/CUDA/PacketMath.h"
  #include "src/Core/arch/CUDA/MathFunctions.h"
#endif

#include "src/Core/arch/Default/Settings.h"

#include "src/Core/functors/TernaryFunctors.h"
#include "src/Core/functors/BinaryFunctors.h"
#include "src/Core/functors/UnaryFunctors.h"
#include "src/Core/functors/NullaryFunctors.h"
#include "src/Core/functors/StlFunctors.h"
#include "src/Core/functors/AssignmentFunctors.h"

// Specialized functors to enable the processing of complex numbers
// on CUDA devices
#include "src/Core/arch/CUDA/Complex.h"

#include "src/Core/IO.h"
#include "src/Core/DenseCoeffsBase.h"
#include "src/Core/DenseBase.h"
#include "src/Core/MatrixBase.h"
#include "src/Core/EigenBase.h"

#include "src/Core/Product.h"
#include "src/Core/CoreEvaluators.h"
#include "src/Core/AssignEvaluator.h"

#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
                                // at least confirmed with Doxygen 1.5.5 and 1.5.6
  #include "src/Core/Assign.h"
#endif

#include "src/Core/ArrayBase.h"
#include "src/Core/util/BlasUtil.h"
#include "src/Core/DenseStorage.h"
#include "src/Core/NestByValue.h"

// #include "src/Core/ForceAlignedAccess.h"

#include "src/Core/ReturnByValue.h"
#include "src/Core/NoAlias.h"
#include "src/Core/PlainObjectBase.h"
#include "src/Core/Matrix.h"
#include "src/Core/Array.h"
#include "src/Core/CwiseTernaryOp.h"
#include "src/Core/CwiseBinaryOp.h"
#include "src/Core/CwiseUnaryOp.h"
#include "src/Core/CwiseNullaryOp.h"
#include "src/Core/CwiseUnaryView.h"
#include "src/Core/SelfCwiseBinaryOp.h"
#include "src/Core/Dot.h"
#include "src/Core/StableNorm.h"
#include "src/Core/Stride.h"
#include "src/Core/MapBase.h"
#include "src/Core/Map.h"
#include "src/Core/Ref.h"
#include "src/Core/Block.h"
#include "src/Core/VectorBlock.h"
#include "src/Core/Transpose.h"
#include "src/Core/DiagonalMatrix.h"
#include "src/Core/Diagonal.h"
#include "src/Core/DiagonalProduct.h"
#include "src/Core/Redux.h"
#include "src/Core/Visitor.h"
#include "src/Core/Fuzzy.h"
#include "src/Core/Swap.h"
#include "src/Core/CommaInitializer.h"
#include "src/Core/GeneralProduct.h"
#include "src/Core/Solve.h"
#include "src/Core/Inverse.h"
#include "src/Core/SolverBase.h"
#include "src/Core/PermutationMatrix.h"
#include "src/Core/Transpositions.h"
#include "src/Core/TriangularMatrix.h"
#include "src/Core/SelfAdjointView.h"
#include "src/Core/products/GeneralBlockPanelKernel.h"
#include "src/Core/products/Parallelizer.h"
#include "src/Core/ProductEvaluators.h"
#include "src/Core/products/GeneralMatrixVector.h"
#include "src/Core/products/GeneralMatrixMatrix.h"
#include "src/Core/SolveTriangular.h"
#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
#include "src/Core/products/SelfadjointMatrixVector.h"
#include "src/Core/products/SelfadjointMatrixMatrix.h"
#include "src/Core/products/SelfadjointProduct.h"
#include "src/Core/products/SelfadjointRank2Update.h"
#include "src/Core/products/TriangularMatrixVector.h"
#include "src/Core/products/TriangularMatrixMatrix.h"
#include "src/Core/products/TriangularSolverMatrix.h"
#include "src/Core/products/TriangularSolverVector.h"
#include "src/Core/BandMatrix.h"
#include "src/Core/CoreIterators.h"
#include "src/Core/ConditionEstimator.h"

#include "src/Core/BooleanRedux.h"
#include "src/Core/Select.h"
#include "src/Core/VectorwiseOp.h"
#include "src/Core/Random.h"
#include "src/Core/Replicate.h"
#include "src/Core/Reverse.h"
#include "src/Core/ArrayWrapper.h"

#ifdef EIGEN_USE_BLAS
#include "src/Core/products/GeneralMatrixMatrix_BLAS.h"
#include "src/Core/products/GeneralMatrixVector_BLAS.h"
#include "src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h"
#include "src/Core/products/SelfadjointMatrixMatrix_BLAS.h"
#include "src/Core/products/SelfadjointMatrixVector_BLAS.h"
#include "src/Core/products/TriangularMatrixMatrix_BLAS.h"
#include "src/Core/products/TriangularMatrixVector_BLAS.h"
#include "src/Core/products/TriangularSolverMatrix_BLAS.h"
#endif // EIGEN_USE_BLAS

#ifdef EIGEN_USE_MKL_VML
#include "src/Core/Assign_MKL.h"
#endif

#include "src/Core/GlobalFunctions.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_CORE_H


================================================
FILE: include/eigen3/Eigen/Dense
================================================
#include "Core"
#include "LU"
#include "Cholesky"
#include "QR"
#include "SVD"
#include "Geometry"
#include "Eigenvalues"


================================================
FILE: include/eigen3/Eigen/Eigen
================================================
#include "Dense"
#include "Sparse"


================================================
FILE: include/eigen3/Eigen/Eigenvalues
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_EIGENVALUES_MODULE_H
#define EIGEN_EIGENVALUES_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

#include "Cholesky"
#include "Jacobi"
#include "Householder"
#include "LU"
#include "Geometry"

/** \defgroup Eigenvalues_Module Eigenvalues module
  *
  *
  *
  * This module mainly provides various eigenvalue solvers.
  * This module also provides some MatrixBase methods, including:
  *  - MatrixBase::eigenvalues(),
  *  - MatrixBase::operatorNorm()
  *
  * \code
  * #include <Eigen/Eigenvalues>
  * \endcode
  */

#include "src/misc/RealSvd2x2.h"
#include "src/Eigenvalues/Tridiagonalization.h"
#include "src/Eigenvalues/RealSchur.h"
#include "src/Eigenvalues/EigenSolver.h"
#include "src/Eigenvalues/SelfAdjointEigenSolver.h"
#include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h"
#include "src/Eigenvalues/HessenbergDecomposition.h"
#include "src/Eigenvalues/ComplexSchur.h"
#include "src/Eigenvalues/ComplexEigenSolver.h"
#include "src/Eigenvalues/RealQZ.h"
#include "src/Eigenvalues/GeneralizedEigenSolver.h"
#include "src/Eigenvalues/MatrixBaseEigenvalues.h"
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/Eigenvalues/RealSchur_LAPACKE.h"
#include "src/Eigenvalues/ComplexSchur_LAPACKE.h"
#include "src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_EIGENVALUES_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/Geometry
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_GEOMETRY_MODULE_H
#define EIGEN_GEOMETRY_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

#include "SVD"
#include "LU"
#include <limits>

/** \defgroup Geometry_Module Geometry module
  *
  * This module provides support for:
  *  - fixed-size homogeneous transformations
  *  - translation, scaling, 2D and 3D rotations
  *  - \link Quaternion quaternions \endlink
  *  - cross products (\ref MatrixBase::cross, \ref MatrixBase::cross3)
  *  - orthognal vector generation (\ref MatrixBase::unitOrthogonal)
  *  - some linear components: \link ParametrizedLine parametrized-lines \endlink and \link Hyperplane hyperplanes \endlink
  *  - \link AlignedBox axis aligned bounding boxes \endlink
  *  - \link umeyama least-square transformation fitting \endlink
  *
  * \code
  * #include <Eigen/Geometry>
  * \endcode
  */

#include "src/Geometry/OrthoMethods.h"
#include "src/Geometry/EulerAngles.h"

#include "src/Geometry/Homogeneous.h"
#include "src/Geometry/RotationBase.h"
#include "src/Geometry/Rotation2D.h"
#include "src/Geometry/Quaternion.h"
#include "src/Geometry/AngleAxis.h"
#include "src/Geometry/Transform.h"
#include "src/Geometry/Translation.h"
#include "src/Geometry/Scaling.h"
#include "src/Geometry/Hyperplane.h"
#include "src/Geometry/ParametrizedLine.h"
#include "src/Geometry/AlignedBox.h"
#include "src/Geometry/Umeyama.h"

// Use the SSE optimized version whenever possible. At the moment the
// SSE version doesn't compile when AVX is enabled
#if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
#include "src/Geometry/arch/Geometry_SSE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_GEOMETRY_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */



================================================
FILE: include/eigen3/Eigen/Householder
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_HOUSEHOLDER_MODULE_H
#define EIGEN_HOUSEHOLDER_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup Householder_Module Householder module
  * This module provides Householder transformations.
  *
  * \code
  * #include <Eigen/Householder>
  * \endcode
  */

#include "src/Householder/Householder.h"
#include "src/Householder/HouseholderSequence.h"
#include "src/Householder/BlockHouseholder.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_HOUSEHOLDER_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/IterativeLinearSolvers
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H

#include "SparseCore"
#include "OrderingMethods"

#include "src/Core/util/DisableStupidWarnings.h"

/** 
  * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
  *
  * 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.
  * Those solvers are accessible via the following classes:
  *  - ConjugateGradient for selfadjoint (hermitian) matrices,
  *  - LeastSquaresConjugateGradient for rectangular least-square problems,
  *  - BiCGSTAB for general square matrices.
  *
  * These iterative solvers are associated with some preconditioners:
  *  - IdentityPreconditioner - not really useful
  *  - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices.
  *  - IncompleteLUT - incomplete LU factorization with dual thresholding
  *
  * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
  *
    \code
    #include <Eigen/IterativeLinearSolvers>
    \endcode
  */

#include "src/IterativeLinearSolvers/SolveWithGuess.h"
#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
#include "src/IterativeLinearSolvers/ConjugateGradient.h"
#include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h"
#include "src/IterativeLinearSolvers/BiCGSTAB.h"
#include "src/IterativeLinearSolvers/IncompleteLUT.h"
#include "src/IterativeLinearSolvers/IncompleteCholesky.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H


================================================
FILE: include/eigen3/Eigen/Jacobi
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_JACOBI_MODULE_H
#define EIGEN_JACOBI_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup Jacobi_Module Jacobi module
  * This module provides Jacobi and Givens rotations.
  *
  * \code
  * #include <Eigen/Jacobi>
  * \endcode
  *
  * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation:
  *  - MatrixBase::applyOnTheLeft()
  *  - MatrixBase::applyOnTheRight().
  */

#include "src/Jacobi/Jacobi.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_JACOBI_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */



================================================
FILE: include/eigen3/Eigen/LU
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_LU_MODULE_H
#define EIGEN_LU_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup LU_Module LU module
  * This module includes %LU decomposition and related notions such as matrix inversion and determinant.
  * This module defines the following MatrixBase methods:
  *  - MatrixBase::inverse()
  *  - MatrixBase::determinant()
  *
  * \code
  * #include <Eigen/LU>
  * \endcode
  */

#include "src/misc/Kernel.h"
#include "src/misc/Image.h"
#include "src/LU/FullPivLU.h"
#include "src/LU/PartialPivLU.h"
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/LU/PartialPivLU_LAPACKE.h"
#endif
#include "src/LU/Determinant.h"
#include "src/LU/InverseImpl.h"

// Use the SSE optimized version whenever possible. At the moment the
// SSE version doesn't compile when AVX is enabled
#if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
  #include "src/LU/arch/Inverse_SSE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_LU_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/MetisSupport
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_METISSUPPORT_MODULE_H
#define EIGEN_METISSUPPORT_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

extern "C" {
#include <metis.h>
}


/** \ingroup Support_modules
  * \defgroup MetisSupport_Module MetisSupport module
  *
  * \code
  * #include <Eigen/MetisSupport>
  * \endcode
  * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 
  * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
  */


#include "src/MetisSupport/MetisSupport.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_METISSUPPORT_MODULE_H


================================================
FILE: include/eigen3/Eigen/OrderingMethods
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_ORDERINGMETHODS_MODULE_H
#define EIGEN_ORDERINGMETHODS_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

/** 
  * \defgroup OrderingMethods_Module OrderingMethods module
  *
  * This module is currently for internal use only
  * 
  * It defines various built-in and external ordering methods for sparse matrices. 
  * They are typically used to reduce the number of elements during 
  * the sparse matrix decomposition (LLT, LU, QR).
  * Precisely, in a preprocessing step, a permutation matrix P is computed using 
  * those ordering methods and applied to the columns of the matrix. 
  * Using for instance the sparse Cholesky decomposition, it is expected that 
  * the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).
  * 
  * 
  * Usage : 
  * \code
  * #include <Eigen/OrderingMethods>
  * \endcode
  * 
  * A simple usage is as a template parameter in the sparse decomposition classes : 
  * 
  * \code 
  * SparseLU<MatrixType, COLAMDOrdering<int> > solver;
  * \endcode 
  * 
  * \code 
  * SparseQR<MatrixType, COLAMDOrdering<int> > solver;
  * \endcode
  * 
  * It is possible as well to call directly a particular ordering method for your own purpose, 
  * \code 
  * AMDOrdering<int> ordering;
  * PermutationMatrix<Dynamic, Dynamic, int> perm;
  * SparseMatrix<double> A; 
  * //Fill the matrix ...
  * 
  * ordering(A, perm); // Call AMD
  * \endcode
  * 
  * \note Some of these methods (like AMD or METIS), need the sparsity pattern 
  * of the input matrix to be symmetric. When the matrix is structurally unsymmetric, 
  * Eigen computes internally the pattern of \f$A^T*A\f$ before calling the method.
  * If your matrix is already symmetric (at leat in structure), you can avoid that
  * by calling the method with a SelfAdjointView type.
  * 
  * \code
  *  // Call the ordering on the pattern of the lower triangular matrix A
  * ordering(A.selfadjointView<Lower>(), perm);
  * \endcode
  */

#ifndef EIGEN_MPL2_ONLY
#include "src/OrderingMethods/Amd.h"
#endif

#include "src/OrderingMethods/Ordering.h"
#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_ORDERINGMETHODS_MODULE_H


================================================
FILE: include/eigen3/Eigen/PaStiXSupport
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
#define EIGEN_PASTIXSUPPORT_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

extern "C" {
#include <pastix_nompi.h>
#include <pastix.h>
}

#ifdef complex
#undef complex
#endif

/** \ingroup Support_modules
  * \defgroup PaStiXSupport_Module PaStiXSupport module
  * 
  * This module provides an interface to the <a href="http://pastix.gforge.inria.fr/">PaSTiX</a> library.
  * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
  * It provides the two following main factorization classes:
  * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
  * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
  * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
  * 
  * \code
  * #include <Eigen/PaStiXSupport>
  * \endcode
  *
  * 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.
  * The dependencies depend on how PaSTiX has been compiled.
  * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
  *
  */

#include "src/PaStiXSupport/PaStiXSupport.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_PASTIXSUPPORT_MODULE_H


================================================
FILE: include/eigen3/Eigen/PardisoSupport
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_PARDISOSUPPORT_MODULE_H
#define EIGEN_PARDISOSUPPORT_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

#include <mkl_pardiso.h>

/** \ingroup Support_modules
  * \defgroup PardisoSupport_Module PardisoSupport module
  *
  * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
  *
  * \code
  * #include <Eigen/PardisoSupport>
  * \endcode
  *
  * 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.
  * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
  * 
  */

#include "src/PardisoSupport/PardisoSupport.h"

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_PARDISOSUPPORT_MODULE_H


================================================
FILE: include/eigen3/Eigen/QR
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_QR_MODULE_H
#define EIGEN_QR_MODULE_H

#include "Core"

#include "src/Core/util/DisableStupidWarnings.h"

#include "Cholesky"
#include "Jacobi"
#include "Householder"

/** \defgroup QR_Module QR module
  *
  *
  *
  * This module provides various QR decompositions
  * This module also provides some MatrixBase methods, including:
  *  - MatrixBase::householderQr()
  *  - MatrixBase::colPivHouseholderQr()
  *  - MatrixBase::fullPivHouseholderQr()
  *
  * \code
  * #include <Eigen/QR>
  * \endcode
  */

#include "src/QR/HouseholderQR.h"
#include "src/QR/FullPivHouseholderQR.h"
#include "src/QR/ColPivHouseholderQR.h"
#include "src/QR/CompleteOrthogonalDecomposition.h"
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/QR/HouseholderQR_LAPACKE.h"
#include "src/QR/ColPivHouseholderQR_LAPACKE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_QR_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/QtAlignedMalloc
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_QTMALLOC_MODULE_H
#define EIGEN_QTMALLOC_MODULE_H

#include "Core"

#if (!EIGEN_MALLOC_ALREADY_ALIGNED)

#include "src/Core/util/DisableStupidWarnings.h"

void *qMalloc(std::size_t size)
{
  return Eigen::internal::aligned_malloc(size);
}

void qFree(void *ptr)
{
  Eigen::internal::aligned_free(ptr);
}

void *qRealloc(void *ptr, std::size_t size)
{
  void* newPtr = Eigen::internal::aligned_malloc(size);
  std::memcpy(newPtr, ptr, size);
  Eigen::internal::aligned_free(ptr);
  return newPtr;
}

#include "src/Core/util/ReenableStupidWarnings.h"

#endif

#endif // EIGEN_QTMALLOC_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/SPQRSupport
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_SPQRSUPPORT_MODULE_H
#define EIGEN_SPQRSUPPORT_MODULE_H

#include "SparseCore"

#include "src/Core/util/DisableStupidWarnings.h"

#include "SuiteSparseQR.hpp"

/** \ingroup Support_modules
  * \defgroup SPQRSupport_Module SuiteSparseQR module
  * 
  * This module provides an interface to the SPQR library, which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
  *
  * \code
  * #include <Eigen/SPQRSupport>
  * \endcode
  *
  * 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,...).
  * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
  *
  */

#include "src/CholmodSupport/CholmodSupport.h"
#include "src/SPQRSupport/SuiteSparseQRSupport.h"

#endif


================================================
FILE: include/eigen3/Eigen/SVD
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_SVD_MODULE_H
#define EIGEN_SVD_MODULE_H

#include "QR"
#include "Householder"
#include "Jacobi"

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup SVD_Module SVD module
  *
  *
  *
  * This module provides SVD decomposition for matrices (both real and complex).
  * Two decomposition algorithms are provided:
  *  - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones.
  *  - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems.
  * These decompositions are accessible via the respective classes and following MatrixBase methods:
  *  - MatrixBase::jacobiSvd()
  *  - MatrixBase::bdcSvd()
  *
  * \code
  * #include <Eigen/SVD>
  * \endcode
  */

#include "src/misc/RealSvd2x2.h"
#include "src/SVD/UpperBidiagonalization.h"
#include "src/SVD/SVDBase.h"
#include "src/SVD/JacobiSVD.h"
#include "src/SVD/BDCSVD.h"
#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#else
#include "src/misc/lapacke.h"
#endif
#include "src/SVD/JacobiSVD_LAPACKE.h"
#endif

#include "src/Core/util/ReenableStupidWarnings.h"

#endif // EIGEN_SVD_MODULE_H
/* vim: set filetype=cpp et sw=2 ts=2 ai: */


================================================
FILE: include/eigen3/Eigen/Sparse
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_SPARSE_MODULE_H
#define EIGEN_SPARSE_MODULE_H

/** \defgroup Sparse_Module Sparse meta-module
  *
  * Meta-module including all related modules:
  * - \ref SparseCore_Module
  * - \ref OrderingMethods_Module
  * - \ref SparseCholesky_Module
  * - \ref SparseLU_Module
  * - \ref SparseQR_Module
  * - \ref IterativeLinearSolvers_Module
  *
    \code
    #include <Eigen/Sparse>
    \endcode
  */

#include "SparseCore"
#include "OrderingMethods"
#ifndef EIGEN_MPL2_ONLY
#include "SparseCholesky"
#endif
#include "SparseLU"
#include "SparseQR"
#include "IterativeLinearSolvers"

#endif // EIGEN_SPARSE_MODULE_H



================================================
FILE: include/eigen3/Eigen/SparseCholesky
================================================
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2008-2013 Gael Guennebaud <gael.guennebaud@inria.fr>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
#define EIGEN_SPARSECHOLESKY_MODULE_H

#include "SparseCore"
#include "OrderingMethods"

#include "src/Core/util/DisableStupidWarnings.h"

/** 
  * \defgroup Spar
Download .txt
gitextract_8z7l01r9/

├── .gitignore
├── .travis.yml
├── CMakeLists.txt
├── README.md
├── README_CN.md
├── config/
│   ├── CMakeLists.txt
│   ├── Config.cpp
│   ├── Config.h
│   └── config_files/
│       ├── Android.config
│       └── IOS.config
├── docs/
│   ├── SensorCalibration.md
│   ├── SensorDataChecking.md
│   ├── SomeTestCaseResults.md
│   ├── apiCallDetails.md
│   ├── implementDetails.md
│   ├── sensors.md
│   ├── trainingStopDetectModel.md
│   └── workflow.md
├── include/
│   └── eigen3/
│       ├── .hg_archival.txt
│       ├── .hgeol
│       ├── .hgignore
│       ├── .hgtags
│       ├── CMakeLists.txt
│       ├── COPYING.BSD
│       ├── COPYING.GPL
│       ├── COPYING.LGPL
│       ├── COPYING.MINPACK
│       ├── COPYING.MPL2
│       ├── COPYING.README
│       ├── CTestConfig.cmake
│       ├── CTestCustom.cmake.in
│       ├── Eigen/
│       │   ├── CMakeLists.txt
│       │   ├── 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_LAPACKE.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
│       │       │   ├── ConditionEstimator.h
│       │       │   ├── CoreEvaluators.h
│       │       │   ├── CoreIterators.h
│       │       │   ├── CwiseBinaryOp.h
│       │       │   ├── CwiseNullaryOp.h
│       │       │   ├── CwiseTernaryOp.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
│       │       │   ├── MathFunctionsImpl.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
│       │       │   ├── 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
│       │       │   │   ├── AVX512/
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── AltiVec/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── CUDA/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── Half.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   ├── PacketMath.h
│       │       │   │   │   ├── PacketMathHalf.h
│       │       │   │   │   └── TypeCasting.h
│       │       │   │   ├── Default/
│       │       │   │   │   ├── ConjHelper.h
│       │       │   │   │   └── Settings.h
│       │       │   │   ├── NEON/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   └── PacketMath.h
│       │       │   │   ├── SSE/
│       │       │   │   │   ├── Complex.h
│       │       │   │   │   ├── MathFunctions.h
│       │       │   │   │   ├── PacketMath.h
│       │       │   │   │   └── TypeCasting.h
│       │       │   │   └── ZVector/
│       │       │   │       ├── Complex.h
│       │       │   │       ├── MathFunctions.h
│       │       │   │       └── PacketMath.h
│       │       │   ├── functors/
│       │       │   │   ├── AssignmentFunctors.h
│       │       │   │   ├── BinaryFunctors.h
│       │       │   │   ├── NullaryFunctors.h
│       │       │   │   ├── StlFunctors.h
│       │       │   │   ├── TernaryFunctors.h
│       │       │   │   └── UnaryFunctors.h
│       │       │   ├── products/
│       │       │   │   ├── GeneralBlockPanelKernel.h
│       │       │   │   ├── GeneralMatrixMatrix.h
│       │       │   │   ├── GeneralMatrixMatrixTriangular.h
│       │       │   │   ├── GeneralMatrixMatrixTriangular_BLAS.h
│       │       │   │   ├── GeneralMatrixMatrix_BLAS.h
│       │       │   │   ├── GeneralMatrixVector.h
│       │       │   │   ├── GeneralMatrixVector_BLAS.h
│       │       │   │   ├── Parallelizer.h
│       │       │   │   ├── SelfadjointMatrixMatrix.h
│       │       │   │   ├── SelfadjointMatrixMatrix_BLAS.h
│       │       │   │   ├── SelfadjointMatrixVector.h
│       │       │   │   ├── SelfadjointMatrixVector_BLAS.h
│       │       │   │   ├── SelfadjointProduct.h
│       │       │   │   ├── SelfadjointRank2Update.h
│       │       │   │   ├── TriangularMatrixMatrix.h
│       │       │   │   ├── TriangularMatrixMatrix_BLAS.h
│       │       │   │   ├── TriangularMatrixVector.h
│       │       │   │   ├── TriangularMatrixVector_BLAS.h
│       │       │   │   ├── TriangularSolverMatrix.h
│       │       │   │   ├── TriangularSolverMatrix_BLAS.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_LAPACKE.h
│       │       │   ├── EigenSolver.h
│       │       │   ├── GeneralizedEigenSolver.h
│       │       │   ├── GeneralizedSelfAdjointEigenSolver.h
│       │       │   ├── HessenbergDecomposition.h
│       │       │   ├── MatrixBaseEigenvalues.h
│       │       │   ├── RealQZ.h
│       │       │   ├── RealSchur.h
│       │       │   ├── RealSchur_LAPACKE.h
│       │       │   ├── SelfAdjointEigenSolver.h
│       │       │   ├── SelfAdjointEigenSolver_LAPACKE.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_LAPACKE.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_LAPACKE.h
│       │       │   ├── CompleteOrthogonalDecomposition.h
│       │       │   ├── FullPivHouseholderQR.h
│       │       │   ├── HouseholderQR.h
│       │       │   └── HouseholderQR_LAPACKE.h
│       │       ├── SPQRSupport/
│       │       │   └── SuiteSparseQRSupport.h
│       │       ├── SVD/
│       │       │   ├── BDCSVD.h
│       │       │   ├── JacobiSVD.h
│       │       │   ├── JacobiSVD_LAPACKE.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
│       │       │   ├── RealSvd2x2.h
│       │       │   ├── blas.h
│       │       │   ├── lapack.h
│       │       │   ├── lapacke.h
│       │       │   └── lapacke_mangling.h
│       │       └── plugins/
│       │           ├── ArrayCwiseBinaryOps.h
│       │           ├── ArrayCwiseUnaryOps.h
│       │           ├── BlockMethods.h
│       │           ├── CommonCwiseBinaryOps.h
│       │           ├── CommonCwiseUnaryOps.h
│       │           ├── MatrixCwiseBinaryOps.h
│       │           └── MatrixCwiseUnaryOps.h
│       ├── INSTALL
│       ├── README.md
│       ├── bench/
│       │   ├── BenchSparseUtil.h
│       │   ├── BenchTimer.h
│       │   ├── BenchUtil.h
│       │   ├── README.txt
│       │   ├── analyze-blocking-sizes.cpp
│       │   ├── basicbench.cxxlist
│       │   ├── basicbenchmark.cpp
│       │   ├── basicbenchmark.h
│       │   ├── benchBlasGemm.cpp
│       │   ├── benchCholesky.cpp
│       │   ├── benchEigenSolver.cpp
│       │   ├── benchFFT.cpp
│       │   ├── benchGeometry.cpp
│       │   ├── benchVecAdd.cpp
│       │   ├── bench_gemm.cpp
│       │   ├── bench_multi_compilers.sh
│       │   ├── bench_norm.cpp
│       │   ├── bench_reverse.cpp
│       │   ├── bench_sum.cpp
│       │   ├── bench_unrolling
│       │   ├── benchmark-blocking-sizes.cpp
│       │   ├── benchmark.cpp
│       │   ├── benchmarkSlice.cpp
│       │   ├── benchmarkX.cpp
│       │   ├── benchmarkXcwise.cpp
│       │   ├── benchmark_suite
│       │   ├── btl/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── COPYING
│       │   │   ├── README
│       │   │   ├── actions/
│       │   │   │   ├── action_aat_product.hh
│       │   │   │   ├── action_ata_product.hh
│       │   │   │   ├── action_atv_product.hh
│       │   │   │   ├── action_axpby.hh
│       │   │   │   ├── action_axpy.hh
│       │   │   │   ├── action_cholesky.hh
│       │   │   │   ├── action_ger.hh
│       │   │   │   ├── action_hessenberg.hh
│       │   │   │   ├── action_lu_decomp.hh
│       │   │   │   ├── action_lu_solve.hh
│       │   │   │   ├── action_matrix_matrix_product.hh
│       │   │   │   ├── action_matrix_matrix_product_bis.hh
│       │   │   │   ├── action_matrix_vector_product.hh
│       │   │   │   ├── action_partial_lu.hh
│       │   │   │   ├── action_rot.hh
│       │   │   │   ├── action_symv.hh
│       │   │   │   ├── action_syr2.hh
│       │   │   │   ├── action_trisolve.hh
│       │   │   │   ├── action_trisolve_matrix.hh
│       │   │   │   ├── action_trmm.hh
│       │   │   │   └── basic_actions.hh
│       │   │   ├── cmake/
│       │   │   │   ├── FindACML.cmake
│       │   │   │   ├── FindATLAS.cmake
│       │   │   │   ├── FindBLAZE.cmake
│       │   │   │   ├── FindBlitz.cmake
│       │   │   │   ├── FindCBLAS.cmake
│       │   │   │   ├── FindGMM.cmake
│       │   │   │   ├── FindMKL.cmake
│       │   │   │   ├── FindMTL4.cmake
│       │   │   │   ├── FindOPENBLAS.cmake
│       │   │   │   ├── FindPackageHandleStandardArgs.cmake
│       │   │   │   ├── FindTvmet.cmake
│       │   │   │   └── MacroOptionalAddSubdirectory.cmake
│       │   │   ├── data/
│       │   │   │   ├── CMakeLists.txt
│       │   │   │   ├── action_settings.txt
│       │   │   │   ├── gnuplot_common_settings.hh
│       │   │   │   ├── go_mean
│       │   │   │   ├── mean.cxx
│       │   │   │   ├── mk_gnuplot_script.sh
│       │   │   │   ├── mk_mean_script.sh
│       │   │   │   ├── mk_new_gnuplot.sh
│       │   │   │   ├── perlib_plot_settings.txt
│       │   │   │   ├── regularize.cxx
│       │   │   │   ├── smooth.cxx
│       │   │   │   └── smooth_all.sh
│       │   │   ├── generic_bench/
│       │   │   │   ├── bench.hh
│       │   │   │   ├── bench_parameter.hh
│       │   │   │   ├── btl.hh
│       │   │   │   ├── init/
│       │   │   │   │   ├── init_function.hh
│       │   │   │   │   ├── init_matrix.hh
│       │   │   │   │   └── init_vector.hh
│       │   │   │   ├── static/
│       │   │   │   │   ├── bench_static.hh
│       │   │   │   │   ├── intel_bench_fixed_size.hh
│       │   │   │   │   └── static_size_generator.hh
│       │   │   │   ├── timers/
│       │   │   │   │   ├── STL_perf_analyzer.hh
│       │   │   │   │   ├── STL_timer.hh
│       │   │   │   │   ├── mixed_perf_analyzer.hh
│       │   │   │   │   ├── portable_perf_analyzer.hh
│       │   │   │   │   ├── portable_perf_analyzer_old.hh
│       │   │   │   │   ├── portable_timer.hh
│       │   │   │   │   ├── x86_perf_analyzer.hh
│       │   │   │   │   └── x86_timer.hh
│       │   │   │   └── utils/
│       │   │   │       ├── size_lin_log.hh
│       │   │   │       ├── size_log.hh
│       │   │   │       ├── utilities.h
│       │   │   │       └── xy_file.hh
│       │   │   └── libs/
│       │   │       ├── BLAS/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blas.h
│       │   │       │   ├── blas_interface.hh
│       │   │       │   ├── blas_interface_impl.hh
│       │   │       │   ├── c_interface_base.h
│       │   │       │   └── main.cpp
│       │   │       ├── STL/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── STL_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── blaze/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blaze_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── blitz/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── blitz_LU_solve_interface.hh
│       │   │       │   ├── blitz_interface.hh
│       │   │       │   ├── btl_blitz.cpp
│       │   │       │   ├── btl_tiny_blitz.cpp
│       │   │       │   └── tiny_blitz_interface.hh
│       │   │       ├── eigen2/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── btl_tiny_eigen2.cpp
│       │   │       │   ├── eigen2_interface.hh
│       │   │       │   ├── main_adv.cpp
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   └── main_vecmat.cpp
│       │   │       ├── eigen3/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── btl_tiny_eigen3.cpp
│       │   │       │   ├── eigen3_interface.hh
│       │   │       │   ├── main_adv.cpp
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   └── main_vecmat.cpp
│       │   │       ├── gmm/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── gmm_LU_solve_interface.hh
│       │   │       │   ├── gmm_interface.hh
│       │   │       │   └── main.cpp
│       │   │       ├── mtl4/
│       │   │       │   ├── .kdbgrc.main
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main.cpp
│       │   │       │   ├── mtl4_LU_solve_interface.hh
│       │   │       │   └── mtl4_interface.hh
│       │   │       ├── tensors/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main_linear.cpp
│       │   │       │   ├── main_matmat.cpp
│       │   │       │   ├── main_vecmat.cpp
│       │   │       │   └── tensor_interface.hh
│       │   │       ├── tvmet/
│       │   │       │   ├── CMakeLists.txt
│       │   │       │   ├── main.cpp
│       │   │       │   └── tvmet_interface.hh
│       │   │       └── ublas/
│       │   │           ├── CMakeLists.txt
│       │   │           ├── main.cpp
│       │   │           └── ublas_interface.hh
│       │   ├── check_cache_queries.cpp
│       │   ├── dense_solvers.cpp
│       │   ├── eig33.cpp
│       │   ├── geometry.cpp
│       │   ├── perf_monitoring/
│       │   │   └── gemm/
│       │   │       ├── changesets.txt
│       │   │       ├── gemm.cpp
│       │   │       ├── gemm_settings.txt
│       │   │       ├── lazy_gemm.cpp
│       │   │       ├── lazy_gemm_settings.txt
│       │   │       ├── make_plot.sh
│       │   │       └── run.sh
│       │   ├── product_threshold.cpp
│       │   ├── quat_slerp.cpp
│       │   ├── quatmul.cpp
│       │   ├── sparse_cholesky.cpp
│       │   ├── sparse_dense_product.cpp
│       │   ├── sparse_lu.cpp
│       │   ├── sparse_product.cpp
│       │   ├── sparse_randomsetter.cpp
│       │   ├── sparse_setter.cpp
│       │   ├── sparse_transpose.cpp
│       │   ├── sparse_trisolver.cpp
│       │   ├── spbench/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── sp_solver.cpp
│       │   │   ├── spbench.dtd
│       │   │   ├── spbenchsolver.cpp
│       │   │   ├── spbenchsolver.h
│       │   │   ├── spbenchstyle.h
│       │   │   └── test_sparseLU.cpp
│       │   ├── spmv.cpp
│       │   ├── tensors/
│       │   │   ├── README
│       │   │   ├── benchmark.h
│       │   │   ├── benchmark_main.cc
│       │   │   ├── contraction_benchmarks_cpu.cc
│       │   │   ├── tensor_benchmarks.h
│       │   │   ├── tensor_benchmarks_cpu.cc
│       │   │   ├── tensor_benchmarks_fp16_gpu.cu
│       │   │   ├── tensor_benchmarks_gpu.cu
│       │   │   └── tensor_benchmarks_sycl.cc
│       │   └── vdw_new.cpp
│       ├── blas/
│       │   ├── BandTriangularSolver.h
│       │   ├── CMakeLists.txt
│       │   ├── GeneralRank1Update.h
│       │   ├── PackedSelfadjointProduct.h
│       │   ├── PackedTriangularMatrixVector.h
│       │   ├── PackedTriangularSolverVector.h
│       │   ├── README.txt
│       │   ├── Rank2Update.h
│       │   ├── common.h
│       │   ├── complex_double.cpp
│       │   ├── complex_single.cpp
│       │   ├── double.cpp
│       │   ├── f2c/
│       │   │   ├── chbmv.c
│       │   │   ├── chpmv.c
│       │   │   ├── complexdots.c
│       │   │   ├── ctbmv.c
│       │   │   ├── d_cnjg.c
│       │   │   ├── datatypes.h
│       │   │   ├── drotm.c
│       │   │   ├── drotmg.c
│       │   │   ├── dsbmv.c
│       │   │   ├── dspmv.c
│       │   │   ├── dtbmv.c
│       │   │   ├── lsame.c
│       │   │   ├── r_cnjg.c
│       │   │   ├── srotm.c
│       │   │   ├── srotmg.c
│       │   │   ├── ssbmv.c
│       │   │   ├── sspmv.c
│       │   │   ├── stbmv.c
│       │   │   ├── zhbmv.c
│       │   │   ├── zhpmv.c
│       │   │   └── ztbmv.c
│       │   ├── fortran/
│       │   │   └── complexdots.f
│       │   ├── level1_cplx_impl.h
│       │   ├── level1_impl.h
│       │   ├── level1_real_impl.h
│       │   ├── level2_cplx_impl.h
│       │   ├── level2_impl.h
│       │   ├── level2_real_impl.h
│       │   ├── level3_impl.h
│       │   ├── single.cpp
│       │   ├── testing/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── cblat1.f
│       │   │   ├── cblat2.f
│       │   │   ├── cblat3.f
│       │   │   ├── dblat1.f
│       │   │   ├── dblat2.f
│       │   │   ├── dblat3.f
│       │   │   ├── runblastest.sh
│       │   │   ├── sblat1.f
│       │   │   ├── sblat2.f
│       │   │   ├── sblat3.f
│       │   │   ├── zblat1.f
│       │   │   ├── zblat2.f
│       │   │   └── zblat3.f
│       │   └── xerbla.cpp
│       ├── cmake/
│       │   ├── Eigen3Config.cmake.in
│       │   ├── Eigen3ConfigLegacy.cmake.in
│       │   ├── EigenConfigureTesting.cmake
│       │   ├── EigenDetermineOSVersion.cmake
│       │   ├── EigenDetermineVSServicePack.cmake
│       │   ├── EigenTesting.cmake
│       │   ├── EigenUninstall.cmake
│       │   ├── FindAdolc.cmake
│       │   ├── FindBLAS.cmake
│       │   ├── FindBLASEXT.cmake
│       │   ├── FindCholmod.cmake
│       │   ├── FindComputeCpp.cmake
│       │   ├── FindEigen2.cmake
│       │   ├── FindEigen3.cmake
│       │   ├── FindFFTW.cmake
│       │   ├── FindGLEW.cmake
│       │   ├── FindGMP.cmake
│       │   ├── FindGSL.cmake
│       │   ├── FindGoogleHash.cmake
│       │   ├── FindHWLOC.cmake
│       │   ├── FindLAPACK.cmake
│       │   ├── FindMPFR.cmake
│       │   ├── FindMetis.cmake
│       │   ├── FindPTSCOTCH.cmake
│       │   ├── FindPastix.cmake
│       │   ├── FindSPQR.cmake
│       │   ├── FindScotch.cmake
│       │   ├── FindStandardMathLibrary.cmake
│       │   ├── FindSuperLU.cmake
│       │   ├── FindUmfpack.cmake
│       │   ├── RegexUtils.cmake
│       │   ├── UseEigen3.cmake
│       │   └── language_support.cmake
│       ├── debug/
│       │   ├── gdb/
│       │   │   ├── __init__.py
│       │   │   └── printers.py
│       │   └── msvc/
│       │       └── eigen.natvis
│       ├── demos/
│       │   ├── CMakeLists.txt
│       │   ├── mandelbrot/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── README
│       │   │   ├── mandelbrot.cpp
│       │   │   └── mandelbrot.h
│       │   ├── mix_eigen_and_c/
│       │   │   ├── README
│       │   │   ├── binary_library.cpp
│       │   │   ├── binary_library.h
│       │   │   └── example.c
│       │   └── opengl/
│       │       ├── CMakeLists.txt
│       │       ├── README
│       │       ├── camera.cpp
│       │       ├── camera.h
│       │       ├── gpuhelper.cpp
│       │       ├── gpuhelper.h
│       │       ├── icosphere.cpp
│       │       ├── icosphere.h
│       │       ├── quaternion_demo.cpp
│       │       ├── quaternion_demo.h
│       │       ├── trackball.cpp
│       │       └── trackball.h
│       ├── doc/
│       │   ├── A05_PortingFrom2To3.dox
│       │   ├── AsciiQuickReference.txt
│       │   ├── B01_Experimental.dox
│       │   ├── CMakeLists.txt
│       │   ├── ClassHierarchy.dox
│       │   ├── CoeffwiseMathFunctionsTable.dox
│       │   ├── CustomizingEigen_CustomScalar.dox
│       │   ├── CustomizingEigen_InheritingMatrix.dox
│       │   ├── CustomizingEigen_NullaryExpr.dox
│       │   ├── CustomizingEigen_Plugins.dox
│       │   ├── DenseDecompositionBenchmark.dox
│       │   ├── Doxyfile.in
│       │   ├── FixedSizeVectorizable.dox
│       │   ├── FunctionsTakingEigenTypes.dox
│       │   ├── HiPerformance.dox
│       │   ├── InplaceDecomposition.dox
│       │   ├── InsideEigenExample.dox
│       │   ├── LeastSquares.dox
│       │   ├── Manual.dox
│       │   ├── MatrixfreeSolverExample.dox
│       │   ├── NewExpressionType.dox
│       │   ├── Overview.dox
│       │   ├── PassingByValue.dox
│       │   ├── Pitfalls.dox
│       │   ├── PreprocessorDirectives.dox
│       │   ├── QuickReference.dox
│       │   ├── QuickStartGuide.dox
│       │   ├── SparseLinearSystems.dox
│       │   ├── SparseQuickReference.dox
│       │   ├── StlContainers.dox
│       │   ├── StorageOrders.dox
│       │   ├── StructHavingEigenMembers.dox
│       │   ├── TemplateKeyword.dox
│       │   ├── TopicAliasing.dox
│       │   ├── TopicAssertions.dox
│       │   ├── TopicCMakeGuide.dox
│       │   ├── TopicEigenExpressionTemplates.dox
│       │   ├── TopicLazyEvaluation.dox
│       │   ├── TopicLinearAlgebraDecompositions.dox
│       │   ├── TopicMultithreading.dox
│       │   ├── TopicResizing.dox
│       │   ├── TopicScalarTypes.dox
│       │   ├── TopicVectorization.dox
│       │   ├── TutorialAdvancedInitialization.dox
│       │   ├── TutorialArrayClass.dox
│       │   ├── TutorialBlockOperations.dox
│       │   ├── TutorialGeometry.dox
│       │   ├── TutorialLinearAlgebra.dox
│       │   ├── TutorialMapClass.dox
│       │   ├── TutorialMatrixArithmetic.dox
│       │   ├── TutorialMatrixClass.dox
│       │   ├── TutorialReductionsVisitorsBroadcasting.dox
│       │   ├── TutorialReshapeSlicing.dox
│       │   ├── TutorialSparse.dox
│       │   ├── TutorialSparse_example_details.dox
│       │   ├── UnalignedArrayAssert.dox
│       │   ├── UsingBlasLapackBackends.dox
│       │   ├── UsingIntelMKL.dox
│       │   ├── UsingNVCC.dox
│       │   ├── WrongStackAlignment.dox
│       │   ├── eigen_navtree_hacks.js
│       │   ├── eigendoxy.css
│       │   ├── eigendoxy_footer.html.in
│       │   ├── eigendoxy_header.html.in
│       │   ├── eigendoxy_layout.xml.in
│       │   ├── eigendoxy_tabs.css
│       │   ├── examples/
│       │   │   ├── .krazy
│       │   │   ├── CMakeLists.txt
│       │   │   ├── CustomizingEigen_Inheritance.cpp
│       │   │   ├── Cwise_erf.cpp
│       │   │   ├── Cwise_erfc.cpp
│       │   │   ├── Cwise_lgamma.cpp
│       │   │   ├── DenseBase_middleCols_int.cpp
│       │   │   ├── DenseBase_middleRows_int.cpp
│       │   │   ├── DenseBase_template_int_middleCols.cpp
│       │   │   ├── DenseBase_template_int_middleRows.cpp
│       │   │   ├── QuickStart_example.cpp
│       │   │   ├── QuickStart_example2_dynamic.cpp
│       │   │   ├── QuickStart_example2_fixed.cpp
│       │   │   ├── TemplateKeyword_flexible.cpp
│       │   │   ├── TemplateKeyword_simple.cpp
│       │   │   ├── TutorialInplaceLU.cpp
│       │   │   ├── TutorialLinAlgComputeTwice.cpp
│       │   │   ├── TutorialLinAlgExComputeSolveError.cpp
│       │   │   ├── TutorialLinAlgExSolveColPivHouseholderQR.cpp
│       │   │   ├── TutorialLinAlgExSolveLDLT.cpp
│       │   │   ├── TutorialLinAlgInverseDeterminant.cpp
│       │   │   ├── TutorialLinAlgRankRevealing.cpp
│       │   │   ├── TutorialLinAlgSVDSolve.cpp
│       │   │   ├── TutorialLinAlgSelfAdjointEigenSolver.cpp
│       │   │   ├── TutorialLinAlgSetThreshold.cpp
│       │   │   ├── Tutorial_ArrayClass_accessors.cpp
│       │   │   ├── Tutorial_ArrayClass_addition.cpp
│       │   │   ├── Tutorial_ArrayClass_cwise_other.cpp
│       │   │   ├── Tutorial_ArrayClass_interop.cpp
│       │   │   ├── Tutorial_ArrayClass_interop_matrix.cpp
│       │   │   ├── Tutorial_ArrayClass_mult.cpp
│       │   │   ├── Tutorial_BlockOperations_block_assignment.cpp
│       │   │   ├── Tutorial_BlockOperations_colrow.cpp
│       │   │   ├── Tutorial_BlockOperations_corner.cpp
│       │   │   ├── Tutorial_BlockOperations_print_block.cpp
│       │   │   ├── Tutorial_BlockOperations_vector.cpp
│       │   │   ├── Tutorial_PartialLU_solve.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp
│       │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp
│       │   │   ├── Tutorial_simple_example_dynamic_size.cpp
│       │   │   ├── Tutorial_simple_example_fixed_size.cpp
│       │   │   ├── class_Block.cpp
│       │   │   ├── class_CwiseBinaryOp.cpp
│       │   │   ├── class_CwiseUnaryOp.cpp
│       │   │   ├── class_CwiseUnaryOp_ptrfun.cpp
│       │   │   ├── class_FixedBlock.cpp
│       │   │   ├── class_FixedVectorBlock.cpp
│       │   │   ├── class_VectorBlock.cpp
│       │   │   ├── function_taking_eigenbase.cpp
│       │   │   ├── function_taking_ref.cpp
│       │   │   ├── make_circulant.cpp
│       │   │   ├── make_circulant.cpp.entry
│       │   │   ├── make_circulant.cpp.evaluator
│       │   │   ├── make_circulant.cpp.expression
│       │   │   ├── make_circulant.cpp.main
│       │   │   ├── make_circulant.cpp.preamble
│       │   │   ├── make_circulant.cpp.traits
│       │   │   ├── make_circulant2.cpp
│       │   │   ├── matrixfree_cg.cpp
│       │   │   ├── nullary_indexing.cpp
│       │   │   ├── tut_arithmetic_add_sub.cpp
│       │   │   ├── tut_arithmetic_dot_cross.cpp
│       │   │   ├── tut_arithmetic_matrix_mul.cpp
│       │   │   ├── tut_arithmetic_redux_basic.cpp
│       │   │   ├── tut_arithmetic_scalar_mul_div.cpp
│       │   │   ├── tut_matrix_coefficient_accessors.cpp
│       │   │   ├── tut_matrix_resize.cpp
│       │   │   └── tut_matrix_resize_fixed_size.cpp
│       │   ├── snippets/
│       │   │   ├── .krazy
│       │   │   ├── AngleAxis_mimic_euler.cpp
│       │   │   ├── BiCGSTAB_simple.cpp
│       │   │   ├── BiCGSTAB_step_by_step.cpp
│       │   │   ├── CMakeLists.txt
│       │   │   ├── ColPivHouseholderQR_solve.cpp
│       │   │   ├── ComplexEigenSolver_compute.cpp
│       │   │   ├── ComplexEigenSolver_eigenvalues.cpp
│       │   │   ├── ComplexEigenSolver_eigenvectors.cpp
│       │   │   ├── ComplexSchur_compute.cpp
│       │   │   ├── ComplexSchur_matrixT.cpp
│       │   │   ├── ComplexSchur_matrixU.cpp
│       │   │   ├── Cwise_abs.cpp
│       │   │   ├── Cwise_abs2.cpp
│       │   │   ├── Cwise_acos.cpp
│       │   │   ├── Cwise_arg.cpp
│       │   │   ├── Cwise_array_power_array.cpp
│       │   │   ├── Cwise_asin.cpp
│       │   │   ├── Cwise_atan.cpp
│       │   │   ├── Cwise_boolean_and.cpp
│       │   │   ├── Cwise_boolean_not.cpp
│       │   │   ├── Cwise_boolean_or.cpp
│       │   │   ├── Cwise_boolean_xor.cpp
│       │   │   ├── Cwise_ceil.cpp
│       │   │   ├── Cwise_cos.cpp
│       │   │   ├── Cwise_cosh.cpp
│       │   │   ├── Cwise_cube.cpp
│       │   │   ├── Cwise_equal_equal.cpp
│       │   │   ├── Cwise_exp.cpp
│       │   │   ├── Cwise_floor.cpp
│       │   │   ├── Cwise_greater.cpp
│       │   │   ├── Cwise_greater_equal.cpp
│       │   │   ├── Cwise_inverse.cpp
│       │   │   ├── Cwise_isFinite.cpp
│       │   │   ├── Cwise_isInf.cpp
│       │   │   ├── Cwise_isNaN.cpp
│       │   │   ├── Cwise_less.cpp
│       │   │   ├── Cwise_less_equal.cpp
│       │   │   ├── Cwise_log.cpp
│       │   │   ├── Cwise_log10.cpp
│       │   │   ├── Cwise_max.cpp
│       │   │   ├── Cwise_min.cpp
│       │   │   ├── Cwise_minus.cpp
│       │   │   ├── Cwise_minus_equal.cpp
│       │   │   ├── Cwise_not_equal.cpp
│       │   │   ├── Cwise_plus.cpp
│       │   │   ├── Cwise_plus_equal.cpp
│       │   │   ├── Cwise_pow.cpp
│       │   │   ├── Cwise_product.cpp
│       │   │   ├── Cwise_quotient.cpp
│       │   │   ├── Cwise_round.cpp
│       │   │   ├── Cwise_scalar_power_array.cpp
│       │   │   ├── Cwise_sign.cpp
│       │   │   ├── Cwise_sin.cpp
│       │   │   ├── Cwise_sinh.cpp
│       │   │   ├── Cwise_slash_equal.cpp
│       │   │   ├── Cwise_sqrt.cpp
│       │   │   ├── Cwise_square.cpp
│       │   │   ├── Cwise_tan.cpp
│       │   │   ├── Cwise_tanh.cpp
│       │   │   ├── Cwise_times_equal.cpp
│       │   │   ├── DenseBase_LinSpaced.cpp
│       │   │   ├── DenseBase_LinSpacedInt.cpp
│       │   │   ├── DenseBase_LinSpaced_seq.cpp
│       │   │   ├── DenseBase_setLinSpaced.cpp
│       │   │   ├── DirectionWise_hnormalized.cpp
│       │   │   ├── DirectionWise_replicate.cpp
│       │   │   ├── DirectionWise_replicate_int.cpp
│       │   │   ├── EigenSolver_EigenSolver_MatrixType.cpp
│       │   │   ├── EigenSolver_compute.cpp
│       │   │   ├── EigenSolver_eigenvalues.cpp
│       │   │   ├── EigenSolver_eigenvectors.cpp
│       │   │   ├── EigenSolver_pseudoEigenvectors.cpp
│       │   │   ├── FullPivHouseholderQR_solve.cpp
│       │   │   ├── FullPivLU_image.cpp
│       │   │   ├── FullPivLU_kernel.cpp
│       │   │   ├── FullPivLU_solve.cpp
│       │   │   ├── GeneralizedEigenSolver.cpp
│       │   │   ├── HessenbergDecomposition_compute.cpp
│       │   │   ├── HessenbergDecomposition_matrixH.cpp
│       │   │   ├── HessenbergDecomposition_packedMatrix.cpp
│       │   │   ├── HouseholderQR_householderQ.cpp
│       │   │   ├── HouseholderQR_solve.cpp
│       │   │   ├── HouseholderSequence_HouseholderSequence.cpp
│       │   │   ├── IOFormat.cpp
│       │   │   ├── JacobiSVD_basic.cpp
│       │   │   ├── Jacobi_makeGivens.cpp
│       │   │   ├── Jacobi_makeJacobi.cpp
│       │   │   ├── LLT_example.cpp
│       │   │   ├── LLT_solve.cpp
│       │   │   ├── LeastSquaresNormalEquations.cpp
│       │   │   ├── LeastSquaresQR.cpp
│       │   │   ├── Map_general_stride.cpp
│       │   │   ├── Map_inner_stride.cpp
│       │   │   ├── Map_outer_stride.cpp
│       │   │   ├── Map_placement_new.cpp
│       │   │   ├── Map_simple.cpp
│       │   │   ├── MatrixBase_adjoint.cpp
│       │   │   ├── MatrixBase_all.cpp
│       │   │   ├── MatrixBase_applyOnTheLeft.cpp
│       │   │   ├── MatrixBase_applyOnTheRight.cpp
│       │   │   ├── MatrixBase_array.cpp
│       │   │   ├── MatrixBase_array_const.cpp
│       │   │   ├── MatrixBase_asDiagonal.cpp
│       │   │   ├── MatrixBase_block_int_int.cpp
│       │   │   ├── MatrixBase_block_int_int_int_int.cpp
│       │   │   ├── MatrixBase_bottomLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_bottomRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_bottomRows_int.cpp
│       │   │   ├── MatrixBase_cast.cpp
│       │   │   ├── MatrixBase_col.cpp
│       │   │   ├── MatrixBase_colwise.cpp
│       │   │   ├── MatrixBase_computeInverseAndDetWithCheck.cpp
│       │   │   ├── MatrixBase_computeInverseWithCheck.cpp
│       │   │   ├── MatrixBase_cwiseAbs.cpp
│       │   │   ├── MatrixBase_cwiseAbs2.cpp
│       │   │   ├── MatrixBase_cwiseEqual.cpp
│       │   │   ├── MatrixBase_cwiseInverse.cpp
│       │   │   ├── MatrixBase_cwiseMax.cpp
│       │   │   ├── MatrixBase_cwiseMin.cpp
│       │   │   ├── MatrixBase_cwiseNotEqual.cpp
│       │   │   ├── MatrixBase_cwiseProduct.cpp
│       │   │   ├── MatrixBase_cwiseQuotient.cpp
│       │   │   ├── MatrixBase_cwiseSign.cpp
│       │   │   ├── MatrixBase_cwiseSqrt.cpp
│       │   │   ├── MatrixBase_diagonal.cpp
│       │   │   ├── MatrixBase_diagonal_int.cpp
│       │   │   ├── MatrixBase_diagonal_template_int.cpp
│       │   │   ├── MatrixBase_eigenvalues.cpp
│       │   │   ├── MatrixBase_end_int.cpp
│       │   │   ├── MatrixBase_eval.cpp
│       │   │   ├── MatrixBase_fixedBlock_int_int.cpp
│       │   │   ├── MatrixBase_hnormalized.cpp
│       │   │   ├── MatrixBase_homogeneous.cpp
│       │   │   ├── MatrixBase_identity.cpp
│       │   │   ├── MatrixBase_identity_int_int.cpp
│       │   │   ├── MatrixBase_inverse.cpp
│       │   │   ├── MatrixBase_isDiagonal.cpp
│       │   │   ├── MatrixBase_isIdentity.cpp
│       │   │   ├── MatrixBase_isOnes.cpp
│       │   │   ├── MatrixBase_isOrthogonal.cpp
│       │   │   ├── MatrixBase_isUnitary.cpp
│       │   │   ├── MatrixBase_isZero.cpp
│       │   │   ├── MatrixBase_leftCols_int.cpp
│       │   │   ├── MatrixBase_noalias.cpp
│       │   │   ├── MatrixBase_ones.cpp
│       │   │   ├── MatrixBase_ones_int.cpp
│       │   │   ├── MatrixBase_ones_int_int.cpp
│       │   │   ├── MatrixBase_operatorNorm.cpp
│       │   │   ├── MatrixBase_prod.cpp
│       │   │   ├── MatrixBase_random.cpp
│       │   │   ├── MatrixBase_random_int.cpp
│       │   │   ├── MatrixBase_random_int_int.cpp
│       │   │   ├── MatrixBase_replicate.cpp
│       │   │   ├── MatrixBase_replicate_int_int.cpp
│       │   │   ├── MatrixBase_reverse.cpp
│       │   │   ├── MatrixBase_rightCols_int.cpp
│       │   │   ├── MatrixBase_row.cpp
│       │   │   ├── MatrixBase_rowwise.cpp
│       │   │   ├── MatrixBase_segment_int_int.cpp
│       │   │   ├── MatrixBase_select.cpp
│       │   │   ├── MatrixBase_selfadjointView.cpp
│       │   │   ├── MatrixBase_set.cpp
│       │   │   ├── MatrixBase_setIdentity.cpp
│       │   │   ├── MatrixBase_setOnes.cpp
│       │   │   ├── MatrixBase_setRandom.cpp
│       │   │   ├── MatrixBase_setZero.cpp
│       │   │   ├── MatrixBase_start_int.cpp
│       │   │   ├── MatrixBase_template_int_bottomRows.cpp
│       │   │   ├── MatrixBase_template_int_end.cpp
│       │   │   ├── MatrixBase_template_int_int_block_int_int_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomLeftCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomRightCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_topLeftCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_topLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_int_topRightCorner.cpp
│       │   │   ├── MatrixBase_template_int_int_topRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_template_int_leftCols.cpp
│       │   │   ├── MatrixBase_template_int_rightCols.cpp
│       │   │   ├── MatrixBase_template_int_segment.cpp
│       │   │   ├── MatrixBase_template_int_start.cpp
│       │   │   ├── MatrixBase_template_int_topRows.cpp
│       │   │   ├── MatrixBase_topLeftCorner_int_int.cpp
│       │   │   ├── MatrixBase_topRightCorner_int_int.cpp
│       │   │   ├── MatrixBase_topRows_int.cpp
│       │   │   ├── MatrixBase_transpose.cpp
│       │   │   ├── MatrixBase_triangularView.cpp
│       │   │   ├── MatrixBase_zero.cpp
│       │   │   ├── MatrixBase_zero_int.cpp
│       │   │   ├── MatrixBase_zero_int_int.cpp
│       │   │   ├── Matrix_Map_stride.cpp
│       │   │   ├── Matrix_resize_NoChange_int.cpp
│       │   │   ├── Matrix_resize_int.cpp
│       │   │   ├── Matrix_resize_int_NoChange.cpp
│       │   │   ├── Matrix_resize_int_int.cpp
│       │   │   ├── Matrix_setConstant_int.cpp
│       │   │   ├── Matrix_setConstant_int_int.cpp
│       │   │   ├── Matrix_setIdentity_int_int.cpp
│       │   │   ├── Matrix_setOnes_int.cpp
│       │   │   ├── Matrix_setOnes_int_int.cpp
│       │   │   ├── Matrix_setRandom_int.cpp
│       │   │   ├── Matrix_setRandom_int_int.cpp
│       │   │   ├── Matrix_setZero_int.cpp
│       │   │   ├── Matrix_setZero_int_int.cpp
│       │   │   ├── PartialPivLU_solve.cpp
│       │   │   ├── PartialRedux_count.cpp
│       │   │   ├── PartialRedux_maxCoeff.cpp
│       │   │   ├── PartialRedux_minCoeff.cpp
│       │   │   ├── PartialRedux_norm.cpp
│       │   │   ├── PartialRedux_prod.cpp
│       │   │   ├── PartialRedux_squaredNorm.cpp
│       │   │   ├── PartialRedux_sum.cpp
│       │   │   ├── RealQZ_compute.cpp
│       │   │   ├── RealSchur_RealSchur_MatrixType.cpp
│       │   │   ├── RealSchur_compute.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
│       │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
│       │   │   ├── SelfAdjointEigenSolver_compute_MatrixType.cpp
│       │   │   ├── SelfAdjointEigenSolver_compute_MatrixType2.cpp
│       │   │   ├── SelfAdjointEigenSolver_eigenvalues.cpp
│       │   │   ├── SelfAdjointEigenSolver_eigenvectors.cpp
│       │   │   ├── SelfAdjointEigenSolver_operatorInverseSqrt.cpp
│       │   │   ├── SelfAdjointEigenSolver_operatorSqrt.cpp
│       │   │   ├── SelfAdjointView_eigenvalues.cpp
│       │   │   ├── SelfAdjointView_operatorNorm.cpp
│       │   │   ├── SparseMatrix_coeffs.cpp
│       │   │   ├── TopicAliasing_block.cpp
│       │   │   ├── TopicAliasing_block_correct.cpp
│       │   │   ├── TopicAliasing_cwise.cpp
│       │   │   ├── TopicAliasing_mult1.cpp
│       │   │   ├── TopicAliasing_mult2.cpp
│       │   │   ├── TopicAliasing_mult3.cpp
│       │   │   ├── TopicAliasing_mult4.cpp
│       │   │   ├── TopicAliasing_mult5.cpp
│       │   │   ├── TopicStorageOrders_example.cpp
│       │   │   ├── Triangular_solve.cpp
│       │   │   ├── Tridiagonalization_Tridiagonalization_MatrixType.cpp
│       │   │   ├── Tridiagonalization_compute.cpp
│       │   │   ├── Tridiagonalization_decomposeInPlace.cpp
│       │   │   ├── Tridiagonalization_diagonal.cpp
│       │   │   ├── Tridiagonalization_householderCoefficients.cpp
│       │   │   ├── Tridiagonalization_packedMatrix.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Block.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_CommaTemporary.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Join.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_LinSpaced.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_ThreeWays.cpp
│       │   │   ├── Tutorial_AdvancedInitialization_Zero.cpp
│       │   │   ├── Tutorial_Map_rowmajor.cpp
│       │   │   ├── Tutorial_Map_using.cpp
│       │   │   ├── Tutorial_ReshapeMat2Mat.cpp
│       │   │   ├── Tutorial_ReshapeMat2Vec.cpp
│       │   │   ├── Tutorial_SlicingCol.cpp
│       │   │   ├── Tutorial_SlicingVec.cpp
│       │   │   ├── Tutorial_commainit_01.cpp
│       │   │   ├── Tutorial_commainit_01b.cpp
│       │   │   ├── Tutorial_commainit_02.cpp
│       │   │   ├── Tutorial_solve_matrix_inverse.cpp
│       │   │   ├── Tutorial_solve_multiple_rhs.cpp
│       │   │   ├── Tutorial_solve_reuse_decomposition.cpp
│       │   │   ├── Tutorial_solve_singular.cpp
│       │   │   ├── Tutorial_solve_triangular.cpp
│       │   │   ├── Tutorial_solve_triangular_inplace.cpp
│       │   │   ├── VectorwiseOp_homogeneous.cpp
│       │   │   ├── Vectorwise_reverse.cpp
│       │   │   ├── class_FullPivLU.cpp
│       │   │   ├── compile_snippet.cpp.in
│       │   │   ├── tut_arithmetic_redux_minmax.cpp
│       │   │   ├── tut_arithmetic_transpose_aliasing.cpp
│       │   │   ├── tut_arithmetic_transpose_conjugate.cpp
│       │   │   ├── tut_arithmetic_transpose_inplace.cpp
│       │   │   └── tut_matrix_assignment_resizing.cpp
│       │   ├── special_examples/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Tutorial_sparse_example.cpp
│       │   │   ├── Tutorial_sparse_example_details.cpp
│       │   │   └── random_cpp11.cpp
│       │   └── tutorial.cpp
│       ├── eigen3.pc.in
│       ├── failtest/
│       │   ├── CMakeLists.txt
│       │   ├── bdcsvd_int.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_0.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_1.cpp
│       │   ├── block_nonconst_ctor_on_const_xpr_2.cpp
│       │   ├── block_on_const_type_actually_const_0.cpp
│       │   ├── block_on_const_type_actually_const_1.cpp
│       │   ├── colpivqr_int.cpp
│       │   ├── const_qualified_block_method_retval_0.cpp
│       │   ├── const_qualified_block_method_retval_1.cpp
│       │   ├── const_qualified_diagonal_method_retval.cpp
│       │   ├── const_qualified_transpose_method_retval.cpp
│       │   ├── cwiseunaryview_nonconst_ctor_on_const_xpr.cpp
│       │   ├── cwiseunaryview_on_const_type_actually_const.cpp
│       │   ├── diagonal_nonconst_ctor_on_const_xpr.cpp
│       │   ├── diagonal_on_const_type_actually_const.cpp
│       │   ├── eigensolver_cplx.cpp
│       │   ├── eigensolver_int.cpp
│       │   ├── failtest_sanity_check.cpp
│       │   ├── fullpivlu_int.cpp
│       │   ├── fullpivqr_int.cpp
│       │   ├── jacobisvd_int.cpp
│       │   ├── ldlt_int.cpp
│       │   ├── llt_int.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_0.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_1.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_2.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_3.cpp
│       │   ├── map_nonconst_ctor_on_const_ptr_4.cpp
│       │   ├── map_on_const_type_actually_const_0.cpp
│       │   ├── map_on_const_type_actually_const_1.cpp
│       │   ├── partialpivlu_int.cpp
│       │   ├── qr_int.cpp
│       │   ├── ref_1.cpp
│       │   ├── ref_2.cpp
│       │   ├── ref_3.cpp
│       │   ├── ref_4.cpp
│       │   ├── ref_5.cpp
│       │   ├── selfadjointview_nonconst_ctor_on_const_xpr.cpp
│       │   ├── selfadjointview_on_const_type_actually_const.cpp
│       │   ├── sparse_ref_1.cpp
│       │   ├── sparse_ref_2.cpp
│       │   ├── sparse_ref_3.cpp
│       │   ├── sparse_ref_4.cpp
│       │   ├── sparse_ref_5.cpp
│       │   ├── sparse_storage_mismatch.cpp
│       │   ├── swap_1.cpp
│       │   ├── swap_2.cpp
│       │   ├── ternary_1.cpp
│       │   ├── ternary_2.cpp
│       │   ├── transpose_nonconst_ctor_on_const_xpr.cpp
│       │   ├── transpose_on_const_type_actually_const.cpp
│       │   ├── triangularview_nonconst_ctor_on_const_xpr.cpp
│       │   └── triangularview_on_const_type_actually_const.cpp
│       ├── lapack/
│       │   ├── CMakeLists.txt
│       │   ├── cholesky.cpp
│       │   ├── clacgv.f
│       │   ├── cladiv.f
│       │   ├── clarf.f
│       │   ├── clarfb.f
│       │   ├── clarfg.f
│       │   ├── clarft.f
│       │   ├── complex_double.cpp
│       │   ├── complex_single.cpp
│       │   ├── dladiv.f
│       │   ├── dlamch.f
│       │   ├── dlapy2.f
│       │   ├── dlapy3.f
│       │   ├── dlarf.f
│       │   ├── dlarfb.f
│       │   ├── dlarfg.f
│       │   ├── dlarft.f
│       │   ├── double.cpp
│       │   ├── dsecnd_NONE.f
│       │   ├── eigenvalues.cpp
│       │   ├── ilaclc.f
│       │   ├── ilaclr.f
│       │   ├── iladlc.f
│       │   ├── iladlr.f
│       │   ├── ilaslc.f
│       │   ├── ilaslr.f
│       │   ├── ilazlc.f
│       │   ├── ilazlr.f
│       │   ├── lapack_common.h
│       │   ├── lu.cpp
│       │   ├── second_NONE.f
│       │   ├── single.cpp
│       │   ├── sladiv.f
│       │   ├── slamch.f
│       │   ├── slapy2.f
│       │   ├── slapy3.f
│       │   ├── slarf.f
│       │   ├── slarfb.f
│       │   ├── slarfg.f
│       │   ├── slarft.f
│       │   ├── svd.cpp
│       │   ├── zlacgv.f
│       │   ├── zladiv.f
│       │   ├── zlarf.f
│       │   ├── zlarfb.f
│       │   ├── zlarfg.f
│       │   └── zlarft.f
│       ├── scripts/
│       │   ├── CMakeLists.txt
│       │   ├── buildtests.in
│       │   ├── cdashtesting.cmake.in
│       │   ├── check.in
│       │   ├── debug.in
│       │   ├── eigen_gen_credits.cpp
│       │   ├── eigen_gen_docs
│       │   ├── release.in
│       │   └── relicense.py
│       ├── signature_of_eigen3_matrix_library
│       ├── test/
│       │   ├── CMakeLists.txt
│       │   ├── adjoint.cpp
│       │   ├── array.cpp
│       │   ├── array_for_matrix.cpp
│       │   ├── array_of_string.cpp
│       │   ├── array_replicate.cpp
│       │   ├── array_reverse.cpp
│       │   ├── bandmatrix.cpp
│       │   ├── basicstuff.cpp
│       │   ├── bdcsvd.cpp
│       │   ├── bicgstab.cpp
│       │   ├── block.cpp
│       │   ├── boostmultiprec.cpp
│       │   ├── bug1213.cpp
│       │   ├── bug1213.h
│       │   ├── bug1213_main.cpp
│       │   ├── cholesky.cpp
│       │   ├── cholmod_support.cpp
│       │   ├── commainitializer.cpp
│       │   ├── conjugate_gradient.cpp
│       │   ├── conservative_resize.cpp
│       │   ├── constructor.cpp
│       │   ├── corners.cpp
│       │   ├── ctorleak.cpp
│       │   ├── cuda_basic.cu
│       │   ├── cuda_common.h
│       │   ├── denseLM.cpp
│       │   ├── dense_storage.cpp
│       │   ├── determinant.cpp
│       │   ├── diagonal.cpp
│       │   ├── diagonalmatrices.cpp
│       │   ├── dontalign.cpp
│       │   ├── dynalloc.cpp
│       │   ├── eigen2support.cpp
│       │   ├── eigensolver_complex.cpp
│       │   ├── eigensolver_generalized_real.cpp
│       │   ├── eigensolver_generic.cpp
│       │   ├── eigensolver_selfadjoint.cpp
│       │   ├── evaluator_common.h
│       │   ├── evaluators.cpp
│       │   ├── exceptions.cpp
│       │   ├── fastmath.cpp
│       │   ├── first_aligned.cpp
│       │   ├── geo_alignedbox.cpp
│       │   ├── geo_eulerangles.cpp
│       │   ├── geo_homogeneous.cpp
│       │   ├── geo_hyperplane.cpp
│       │   ├── geo_orthomethods.cpp
│       │   ├── geo_parametrizedline.cpp
│       │   ├── geo_quaternion.cpp
│       │   ├── geo_transformations.cpp
│       │   ├── half_float.cpp
│       │   ├── hessenberg.cpp
│       │   ├── householder.cpp
│       │   ├── incomplete_cholesky.cpp
│       │   ├── inplace_decomposition.cpp
│       │   ├── integer_types.cpp
│       │   ├── inverse.cpp
│       │   ├── is_same_dense.cpp
│       │   ├── jacobi.cpp
│       │   ├── jacobisvd.cpp
│       │   ├── linearstructure.cpp
│       │   ├── lscg.cpp
│       │   ├── lu.cpp
│       │   ├── main.h
│       │   ├── mapped_matrix.cpp
│       │   ├── mapstaticmethods.cpp
│       │   ├── mapstride.cpp
│       │   ├── meta.cpp
│       │   ├── metis_support.cpp
│       │   ├── miscmatrices.cpp
│       │   ├── mixingtypes.cpp
│       │   ├── mpl2only.cpp
│       │   ├── nesting_ops.cpp
│       │   ├── nomalloc.cpp
│       │   ├── nullary.cpp
│       │   ├── numext.cpp
│       │   ├── packetmath.cpp
│       │   ├── pardiso_support.cpp
│       │   ├── pastix_support.cpp
│       │   ├── permutationmatrices.cpp
│       │   ├── prec_inverse_4x4.cpp
│       │   ├── product.h
│       │   ├── product_extra.cpp
│       │   ├── product_large.cpp
│       │   ├── product_mmtr.cpp
│       │   ├── product_notemporary.cpp
│       │   ├── product_selfadjoint.cpp
│       │   ├── product_small.cpp
│       │   ├── product_symm.cpp
│       │   ├── product_syrk.cpp
│       │   ├── product_trmm.cpp
│       │   ├── product_trmv.cpp
│       │   ├── product_trsolve.cpp
│       │   ├── qr.cpp
│       │   ├── qr_colpivoting.cpp
│       │   ├── qr_fullpivoting.cpp
│       │   ├── qtvector.cpp
│       │   ├── rand.cpp
│       │   ├── real_qz.cpp
│       │   ├── redux.cpp
│       │   ├── ref.cpp
│       │   ├── resize.cpp
│       │   ├── rvalue_types.cpp
│       │   ├── schur_complex.cpp
│       │   ├── schur_real.cpp
│       │   ├── selfadjoint.cpp
│       │   ├── simplicial_cholesky.cpp
│       │   ├── sizeof.cpp
│       │   ├── sizeoverflow.cpp
│       │   ├── smallvectors.cpp
│       │   ├── sparse.h
│       │   ├── sparseLM.cpp
│       │   ├── sparse_basic.cpp
│       │   ├── sparse_block.cpp
│       │   ├── sparse_permutations.cpp
│       │   ├── sparse_product.cpp
│       │   ├── sparse_ref.cpp
│       │   ├── sparse_solver.h
│       │   ├── sparse_solvers.cpp
│       │   ├── sparse_vector.cpp
│       │   ├── sparselu.cpp
│       │   ├── sparseqr.cpp
│       │   ├── special_numbers.cpp
│       │   ├── spqr_support.cpp
│       │   ├── stable_norm.cpp
│       │   ├── stddeque.cpp
│       │   ├── stddeque_overload.cpp
│       │   ├── stdlist.cpp
│       │   ├── stdlist_overload.cpp
│       │   ├── stdvector.cpp
│       │   ├── stdvector_overload.cpp
│       │   ├── superlu_support.cpp
│       │   ├── svd_common.h
│       │   ├── svd_fill.h
│       │   ├── swap.cpp
│       │   ├── triangular.cpp
│       │   ├── umeyama.cpp
│       │   ├── umfpack_support.cpp
│       │   ├── unalignedassert.cpp
│       │   ├── unalignedcount.cpp
│       │   ├── upperbidiagonalization.cpp
│       │   ├── vectorization_logic.cpp
│       │   ├── vectorwiseop.cpp
│       │   ├── visitor.cpp
│       │   └── zerosized.cpp
│       └── unsupported/
│           ├── CMakeLists.txt
│           ├── Eigen/
│           │   ├── AdolcForward
│           │   ├── AlignedVector3
│           │   ├── ArpackSupport
│           │   ├── AutoDiff
│           │   ├── BVH
│           │   ├── CMakeLists.txt
│           │   ├── CXX11/
│           │   │   ├── CMakeLists.txt
│           │   │   ├── Tensor
│           │   │   ├── TensorSymmetry
│           │   │   ├── ThreadPool
│           │   │   └── src/
│           │   │       ├── Tensor/
│           │   │       │   ├── README.md
│           │   │       │   ├── Tensor.h
│           │   │       │   ├── TensorArgMax.h
│           │   │       │   ├── TensorAssign.h
│           │   │       │   ├── TensorBase.h
│           │   │       │   ├── TensorBroadcasting.h
│           │   │       │   ├── TensorChipping.h
│           │   │       │   ├── TensorConcatenation.h
│           │   │       │   ├── TensorContraction.h
│           │   │       │   ├── TensorContractionBlocking.h
│           │   │       │   ├── TensorContractionCuda.h
│           │   │       │   ├── TensorContractionMapper.h
│           │   │       │   ├── TensorContractionThreadPool.h
│           │   │       │   ├── TensorConversion.h
│           │   │       │   ├── TensorConvolution.h
│           │   │       │   ├── TensorCostModel.h
│           │   │       │   ├── TensorCustomOp.h
│           │   │       │   ├── TensorDevice.h
│           │   │       │   ├── TensorDeviceCuda.h
│           │   │       │   ├── TensorDeviceDefault.h
│           │   │       │   ├── TensorDeviceSycl.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
│           │   │       │   ├── TensorGlobalFunctions.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
│           │   │       │   ├── TensorRandom.h
│           │   │       │   ├── TensorReduction.h
│           │   │       │   ├── TensorReductionCuda.h
│           │   │       │   ├── TensorReductionSycl.h
│           │   │       │   ├── TensorRef.h
│           │   │       │   ├── TensorReverse.h
│           │   │       │   ├── TensorScan.h
│           │   │       │   ├── TensorShuffling.h
│           │   │       │   ├── TensorStorage.h
│           │   │       │   ├── TensorStriding.h
│           │   │       │   ├── TensorSycl.h
│           │   │       │   ├── TensorSyclConvertToDeviceExpression.h
│           │   │       │   ├── TensorSyclExprConstructor.h
│           │   │       │   ├── TensorSyclExtractAccessor.h
│           │   │       │   ├── TensorSyclExtractFunctors.h
│           │   │       │   ├── TensorSyclLeafCount.h
│           │   │       │   ├── TensorSyclPlaceHolderExpr.h
│           │   │       │   ├── TensorSyclRun.h
│           │   │       │   ├── TensorSyclTuple.h
│           │   │       │   ├── TensorTraits.h
│           │   │       │   ├── TensorUInt128.h
│           │   │       │   └── TensorVolumePatch.h
│           │   │       ├── TensorSymmetry/
│           │   │       │   ├── DynamicSymmetry.h
│           │   │       │   ├── StaticSymmetry.h
│           │   │       │   ├── Symmetry.h
│           │   │       │   └── util/
│           │   │       │       └── TemplateGroupTheory.h
│           │   │       ├── ThreadPool/
│           │   │       │   ├── EventCount.h
│           │   │       │   ├── NonBlockingThreadPool.h
│           │   │       │   ├── RunQueue.h
│           │   │       │   ├── SimpleThreadPool.h
│           │   │       │   ├── ThreadEnvironment.h
│           │   │       │   ├── ThreadLocal.h
│           │   │       │   ├── ThreadPoolInterface.h
│           │   │       │   └── ThreadYield.h
│           │   │       └── util/
│           │   │           ├── CXX11Meta.h
│           │   │           ├── CXX11Workarounds.h
│           │   │           ├── EmulateArray.h
│           │   │           ├── EmulateCXX11Meta.h
│           │   │           └── MaxSizeVector.h
│           │   ├── EulerAngles
│           │   ├── FFT
│           │   ├── IterativeSolvers
│           │   ├── KroneckerProduct
│           │   ├── LevenbergMarquardt
│           │   ├── MPRealSupport
│           │   ├── MatrixFunctions
│           │   ├── MoreVectorization
│           │   ├── NonLinearOptimization
│           │   ├── NumericalDiff
│           │   ├── OpenGLSupport
│           │   ├── Polynomials
│           │   ├── Skyline
│           │   ├── SparseExtra
│           │   ├── SpecialFunctions
│           │   ├── Splines
│           │   └── src/
│           │       ├── AutoDiff/
│           │       │   ├── AutoDiffJacobian.h
│           │       │   ├── AutoDiffScalar.h
│           │       │   └── AutoDiffVector.h
│           │       ├── BVH/
│           │       │   ├── BVAlgorithms.h
│           │       │   └── KdBVH.h
│           │       ├── Eigenvalues/
│           │       │   └── ArpackSelfAdjointEigenSolver.h
│           │       ├── EulerAngles/
│           │       │   ├── CMakeLists.txt
│           │       │   ├── EulerAngles.h
│           │       │   └── EulerSystem.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/
│           │       │   ├── CopyrightMINPACK.txt
│           │       │   ├── 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
│           │       ├── SpecialFunctions/
│           │       │   ├── SpecialFunctionsArrayAPI.h
│           │       │   ├── SpecialFunctionsFunctors.h
│           │       │   ├── SpecialFunctionsHalf.h
│           │       │   ├── SpecialFunctionsImpl.h
│           │       │   ├── SpecialFunctionsPacketMath.h
│           │       │   └── arch/
│           │       │       └── CUDA/
│           │       │           └── CudaSpecialFunctions.h
│           │       └── Splines/
│           │           ├── Spline.h
│           │           ├── SplineFitting.h
│           │           └── SplineFwd.h
│           ├── README.txt
│           ├── bench/
│           │   └── bench_svd.cpp
│           ├── doc/
│           │   ├── CMakeLists.txt
│           │   ├── Overview.dox
│           │   ├── eigendoxy_layout.xml.in
│           │   ├── examples/
│           │   │   ├── BVH_Example.cpp
│           │   │   ├── CMakeLists.txt
│           │   │   ├── EulerAngles.cpp
│           │   │   ├── FFT.cpp
│           │   │   ├── MatrixExponential.cpp
│           │   │   ├── MatrixFunction.cpp
│           │   │   ├── MatrixLogarithm.cpp
│           │   │   ├── MatrixPower.cpp
│           │   │   ├── MatrixPower_optimal.cpp
│           │   │   ├── MatrixSine.cpp
│           │   │   ├── MatrixSinh.cpp
│           │   │   ├── MatrixSquareRoot.cpp
│           │   │   ├── PolynomialSolver1.cpp
│           │   │   └── PolynomialUtils1.cpp
│           │   └── snippets/
│           │       └── CMakeLists.txt
│           └── test/
│               ├── BVH.cpp
│               ├── CMakeLists.txt
│               ├── EulerAngles.cpp
│               ├── FFT.cpp
│               ├── FFTW.cpp
│               ├── NonLinearOptimization.cpp
│               ├── NumericalDiff.cpp
│               ├── alignedvector3.cpp
│               ├── autodiff.cpp
│               ├── autodiff_scalar.cpp
│               ├── cxx11_eventcount.cpp
│               ├── cxx11_meta.cpp
│               ├── cxx11_non_blocking_thread_pool.cpp
│               ├── cxx11_runqueue.cpp
│               ├── cxx11_tensor_argmax.cpp
│               ├── cxx11_tensor_argmax_cuda.cu
│               ├── cxx11_tensor_assign.cpp
│               ├── cxx11_tensor_broadcast_sycl.cpp
│               ├── cxx11_tensor_broadcasting.cpp
│               ├── cxx11_tensor_cast_float16_cuda.cu
│               ├── cxx11_tensor_casts.cpp
│               ├── cxx11_tensor_chipping.cpp
│               ├── cxx11_tensor_comparisons.cpp
│               ├── cxx11_tensor_complex_cuda.cu
│               ├── cxx11_tensor_complex_cwise_ops_cuda.cu
│               ├── cxx11_tensor_concatenation.cpp
│               ├── cxx11_tensor_const.cpp
│               ├── cxx11_tensor_contract_cuda.cu
│               ├── cxx11_tensor_contraction.cpp
│               ├── cxx11_tensor_convolution.cpp
│               ├── cxx11_tensor_cuda.cu
│               ├── cxx11_tensor_custom_index.cpp
│               ├── cxx11_tensor_custom_op.cpp
│               ├── cxx11_tensor_device.cu
│               ├── cxx11_tensor_device_sycl.cpp
│               ├── cxx11_tensor_dimension.cpp
│               ├── cxx11_tensor_empty.cpp
│               ├── cxx11_tensor_expr.cpp
│               ├── cxx11_tensor_fft.cpp
│               ├── cxx11_tensor_fixed_size.cpp
│               ├── cxx11_tensor_forced_eval.cpp
│               ├── cxx11_tensor_forced_eval_sycl.cpp
│               ├── cxx11_tensor_generator.cpp
│               ├── cxx11_tensor_ifft.cpp
│               ├── cxx11_tensor_image_patch.cpp
│               ├── cxx11_tensor_index_list.cpp
│               ├── cxx11_tensor_inflation.cpp
│               ├── cxx11_tensor_intdiv.cpp
│               ├── cxx11_tensor_io.cpp
│               ├── cxx11_tensor_layout_swap.cpp
│               ├── cxx11_tensor_lvalue.cpp
│               ├── cxx11_tensor_map.cpp
│               ├── cxx11_tensor_math.cpp
│               ├── cxx11_tensor_mixed_indices.cpp
│               ├── cxx11_tensor_morphing.cpp
│               ├── cxx11_tensor_notification.cpp
│               ├── cxx11_tensor_of_complex.cpp
│               ├── cxx11_tensor_of_const_values.cpp
│               ├── cxx11_tensor_of_float16_cuda.cu
│               ├── cxx11_tensor_of_strings.cpp
│               ├── cxx11_tensor_padding.cpp
│               ├── cxx11_tensor_patch.cpp
│               ├── cxx11_tensor_random.cpp
│               ├── cxx11_tensor_random_cuda.cu
│               ├── cxx11_tensor_reduction.cpp
│               ├── cxx11_tensor_reduction_cuda.cu
│               ├── cxx11_tensor_reduction_sycl.cpp
│               ├── cxx11_tensor_ref.cpp
│               ├── cxx11_tensor_reverse.cpp
│               ├── cxx11_tensor_roundings.cpp
│               ├── cxx11_tensor_scan.cpp
│               ├── cxx11_tensor_scan_cuda.cu
│               ├── cxx11_tensor_shuffling.cpp
│               ├── cxx11_tensor_simple.cpp
│               ├── cxx11_tensor_striding.cpp
│               ├── cxx11_tensor_sugar.cpp
│               ├── cxx11_tensor_sycl.cpp
│               ├── cxx11_tensor_symmetry.cpp
│               ├── cxx11_tensor_thread_pool.cpp
│               ├── cxx11_tensor_uint128.cpp
│               ├── cxx11_tensor_volume_patch.cpp
│               ├── dgmres.cpp
│               ├── forward_adolc.cpp
│               ├── gmres.cpp
│               ├── kronecker_product.cpp
│               ├── levenberg_marquardt.cpp
│               ├── matrix_exponential.cpp
│               ├── matrix_function.cpp
│               ├── matrix_functions.h
│               ├── matrix_power.cpp
│               ├── matrix_square_root.cpp
│               ├── minres.cpp
│               ├── mpreal/
│               │   └── mpreal.h
│               ├── mpreal_support.cpp
│               ├── openglsupport.cpp
│               ├── polynomialsolver.cpp
│               ├── polynomialutils.cpp
│               ├── sparse_extra.cpp
│               ├── special_functions.cpp
│               └── splines.cpp
├── location/
│   ├── CMakeLists.txt
│   ├── Location.cpp
│   └── Location.h
├── main.cpp
├── math/
│   ├── CMakeLists.txt
│   ├── Coordinate.cpp
│   ├── Coordinate.h
│   ├── KalmanFilter.cpp
│   ├── KalmanFilter.h
│   ├── LPF.cpp
│   ├── LPF.h
│   ├── Optimizer.cpp
│   ├── Optimizer.h
│   ├── Quaternions.cpp
│   └── Quaternions.h
├── models/
│   ├── AHRS.cpp
│   ├── AHRS.h
│   ├── CMakeLists.txt
│   ├── StopDetection.cpp
│   ├── StopDetection.h
│   ├── StrapdownAHRS.cpp
│   ├── StrapdownAHRS.h
│   ├── XgboostDetector.cpp
│   └── XgboostDetector.h
├── sensor/
│   ├── Accelerometer.cpp
│   ├── Accelerometer.h
│   ├── CMakeLists.txt
│   ├── Compass.cpp
│   ├── Compass.h
│   ├── GPS.cpp
│   ├── GPS.h
│   ├── Gravity.cpp
│   ├── Gravity.h
│   ├── Gyroscope.cpp
│   ├── Gyroscope.h
│   ├── Magnetometer.cpp
│   ├── Magnetometer.h
│   ├── Sensor.cpp
│   └── Sensor.h
├── system/
│   ├── CMakeLists.txt
│   ├── Status.cpp
│   └── Status.h
├── test/
│   ├── CMakeLists.txt
│   ├── TestCalibration.cpp
│   ├── TestCalibration.h
│   ├── TestLocation.cpp
│   ├── TestLocation.h
│   ├── TestXgboostDetector.cpp
│   ├── TestXgboostDetector.h
│   ├── data/
│   │   ├── EEWalk2.csv
│   │   ├── McLaneWalk.csv
│   │   ├── Sensor_record_20151030_105902_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110329_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110417_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110448_AndroSensor.csv
│   │   ├── Sensor_record_20151030_110521_AndroSensor.csv
│   │   └── Sensor_record_20151030_110553_AndroSensor.csv
│   └── utils/
│       ├── DataFormat.cpp
│       ├── DataFormat.h
│       └── ReadSensor.log.py
├── utils/
│   ├── CMakeLists.txt
│   ├── Tools.cpp
│   └── Tools.h
└── 更新日志.md
Download .txt
Showing preview only (670K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7488 symbols across 991 files)

FILE: config/Config.cpp
  class FileNotFoundException (line 13) | class FileNotFoundException : public  exception {
  function istream (line 29) | istream &operator>>(istream &is, Config &cfg) {
  function ostream (line 56) | ostream &operator<<(std::ostream &os, const Config &cfg) {

FILE: config/Config.h
  function class (line 13) | class Config {

FILE: include/eigen3/Eigen/src/Cholesky/LDLT.h
  function namespace (line 16) | namespace Eigen {
  function namespace (line 287) | namespace internal {
  function Upper (line 453) | struct ldlt_inplace<Upper>
  type TriangularView (line 473) | typedef const TriangularView<const typename
  function MatrixL (line 474) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
  function MatrixU (line 475) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoi...
  type TriangularView (line 481) | typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
  function MatrixL (line 482) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoi...
  function MatrixU (line 483) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
  type typename (line 534) | typedef typename TranspositionType::StorageIndex IndexType;

FILE: include/eigen3/Eigen/src/Cholesky/LLT.h
  function namespace (line 13) | namespace Eigen {
  function namespace (line 228) | namespace internal {
  type typename (line 372) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type TriangularView (line 397) | typedef const TriangularView<const typename
  function MatrixL (line 398) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
  function MatrixU (line 399) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoi...
  function inplace_decomposition (line 400) | static bool inplace_decomposition(MatrixType& m)
  type TriangularView (line 407) | typedef const TriangularView<const MatrixType, Upper> MatrixU;
  function MatrixL (line 408) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoi...
  function MatrixU (line 409) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
  function inplace_decomposition (line 410) | static bool inplace_decomposition(MatrixType& m)

FILE: include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
  function namespace (line 13) | namespace Eigen {
  function cholmod_sparse (line 105) | cholmod_sparse viewAsCholmod(const SparseMatrix<_Scalar,_Options,_Index>...
  function cholmod_sparse (line 112) | cholmod_sparse viewAsCholmod(const SparseVector<_Scalar,_Options,_Index>...
  type typename (line 137) | typedef typename Derived::Scalar Scalar;
  type CholmodMode (line 162) | enum CholmodMode {
  type typename (line 182) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 183) | typedef typename MatrixType::RealScalar RealScalar;
  type MatrixType (line 184) | typedef MatrixType CholMatrixType;
  type typename (line 185) | typedef typename MatrixType::StorageIndex StorageIndex;
  function StorageIndex (line 217) | inline StorageIndex cols() const { return internal::convert_index<Storag...
  function analyzePattern (line 245) | void analyzePattern(const MatrixType& matrix)
  function factorize (line 267) | void factorize(const MatrixType& matrix)
  function Scalar (line 348) | Scalar determinant() const
  function Base (line 445) | CholmodSimplicialLLT(const MatrixType& matrix) : Base()
  function Base (line 496) | CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
  function Base (line 545) | CholmodSupernodalLLT(const MatrixType& matrix) : Base()
  function Base (line 596) | CholmodDecomposition(const MatrixType& matrix) : Base()
  function setMode (line 604) | void setMode(CholmodMode mode)

FILE: include/eigen3/Eigen/src/Core/Array.h
  function namespace (line 13) | namespace Eigen {
  function enum (line 51) | EIGEN_DENSE_PUBLIC_INTERFACE(Array)
  function EIGEN_DEVICE_FUNC (line 141) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 151) | EIGEN_DEVICE_FUNC
  function EIGEN_STRONG_INLINE (line 170) | EIGEN_STRONG_INLINE explicit Array(const T& x)
  function EIGEN_STRONG_INLINE (line 178) | EIGEN_STRONG_INLINE Array(const T0& val0, const T1& val1)
  function Base (line 230) | Array(const Array& other)
  type PrivateType (line 235) | struct PrivateType {}
  function EIGEN_STRONG_INLINE (line 241) | EIGEN_STRONG_INLINE Array(const EigenBase<OtherDerived> &other,
  type internal (line 257) | struct internal

FILE: include/eigen3/Eigen/src/Core/ArrayBase.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/ArrayWrapper.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Assign.h
  function namespace (line 15) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/AssignEvaluator.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 347) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type unaligned_dense_assignment_loop (line 372) | struct unaligned_dense_assignment_loop
  type typename (line 400) | typedef typename Kernel::Scalar Scalar;
  type typename (line 401) | typedef typename Kernel::PacketType PacketType;
  type typename (line 427) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 428) | typedef typename Kernel::PacketType PacketType;
  function run (line 451) | void run(Kernel &kernel)
  type typename (line 467) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 477) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 478) | typedef typename Kernel::AssignmentTraits Traits;
  type typename (line 506) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 520) | typedef typename Kernel::Scalar Scalar;
  type typename (line 521) | typedef typename Kernel::PacketType PacketType;
  type typename (line 568) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 569) | typedef typename Kernel::PacketType PacketType;
  type typename (line 600) | typedef typename SrcEvaluatorTypeT::XprType SrcXprType;
  type SrcEvaluatorTypeT (line 604) | typedef SrcEvaluatorTypeT SrcEvaluatorType;
  type typename (line 605) | typedef typename DstEvaluatorType::Scalar Scalar;
  type copy_using_evaluator_traits (line 606) | typedef copy_using_evaluator_traits<DstEvaluatorTypeT, SrcEvaluatorTypeT...
  type typename (line 607) | typedef typename AssignmentTraits::PacketType PacketType;
  function EIGEN_DEVICE_FUNC (line 625) | EIGEN_DEVICE_FUNC DstEvaluatorType& dstEvaluator() { return m_dst; }
  function assignCoeff (line 629) | void assignCoeff(Index row, Index col)
  function assignCoeff (line 635) | void assignCoeff(Index index)
  function assignCoeffByOuterInner (line 641) | void assignCoeffByOuterInner(Index outer, Index inner)
  function assignPacket (line 650) | void assignPacket(Index row, Index col)
  function assignPacket (line 656) | void assignPacket(Index index)
  function assignPacketByOuterInner (line 662) | void assignPacketByOuterInner(Index outer, Index inner)
  function Index (line 669) | Index rowIndexByOuterInner(Index outer, Index inner)
  function Index (line 678) | Index colIndexByOuterInner(Index outer, Index inner)
  function EIGEN_DEVICE_FUNC (line 687) | EIGEN_DEVICE_FUNC const Scalar* dstDataPtr() const
  function resize_if_allowed (line 706) | void resize_if_allowed(DstXprType &dst, const SrcXprType& src, const Fun...
  type evaluator (line 728) | typedef evaluator<SrcXprType> SrcEvaluatorType;
  type generic_dense_assignment_kernel (line 738) | typedef generic_dense_assignment_kernel<DstEvaluatorType,SrcEvaluatorTyp...
  function call_dense_assignment_loop (line 745) | void call_dense_assignment_loop(DstXprType& dst, const SrcXprType& src)
  type Dense2Dense (line 760) | struct Dense2Dense {}
  type EigenBase2EigenBase (line 761) | struct EigenBase2EigenBase {}
  type EigenBase2EigenBase (line 763) | typedef EigenBase2EigenBase Kind;
  type AssignmentKind (line 764) | struct AssignmentKind
  type Dense2Dense (line 764) | typedef Dense2Dense Kind;
  function call_assignment (line 780) | void call_assignment(Dst& dst, const Src& src)
  function call_assignment (line 786) | void call_assignment(const Dst& dst, const Src& src)
  function call_assignment_no_alias (line 819) | void call_assignment_no_alias(Dst& dst, const Src& src, const Func& func)
  function call_assignment_no_alias (line 840) | void call_assignment_no_alias(Dst& dst, const Src& src)
  function call_assignment_no_alias_no_transpose (line 847) | void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src, con...
  function call_assignment_no_alias_no_transpose (line 858) | void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src)
  type Assignment (line 888) | struct Assignment

FILE: include/eigen3/Eigen/src/Core/Assign_MKL.h
  function namespace (line 37) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/BandMatrix.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 103) | typedef typename internal::conditional<Conjugate,
  function typename (line 115) | const typename DiagonalIntReturnType<N>::Type diagonal() const
  function DenseMatrixType (line 145) | DenseMatrixType toDenseMatrix() const
  type Dense (line 181) | typedef Dense StorageKind;
  type Eigen (line 182) | typedef Eigen::Index StorageIndex;
  type Matrix (line 195) | typedef Matrix<Scalar,DataRowsAtCompileTime,ColsAtCompileTime,Options
  type typename (line 203) | typedef typename internal::traits<BandMatrix>::Scalar Scalar;
  type typename (line 204) | typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
  type typename (line 205) | typedef typename internal::traits<BandMatrix>::CoefficientsType Coeffici...
  function CoefficientsType (line 226) | inline CoefficientsType& coeffs() { return m_coeffs; }
  type typename (line 243) | typedef typename _CoefficientsType::StorageKind StorageKind;
  type typename (line 244) | typedef typename _CoefficientsType::StorageIndex StorageIndex;
  type _CoefficientsType (line 257) | typedef _CoefficientsType CoefficientsType;
  type typename (line 266) | typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType C...
  type typename (line 267) | typedef typename internal::traits<BandMatrixWrapper>::StorageIndex Stora...
  type typename (line 315) | typedef typename Base::StorageIndex StorageIndex;
  type BandShape (line 331) | struct BandShape {}
  type AssignmentKind (line 347) | struct AssignmentKind
  type EigenBase2EigenBase (line 347) | typedef EigenBase2EigenBase Kind;

FILE: include/eigen3/Eigen/src/Core/Block.h
  function namespace (line 14) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 117) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 127) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 138) | EIGEN_DEVICE_FUNC
  type typename (line 158) | typedef typename XprType::StorageIndex StorageIndex;
  function Impl (line 162) | inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
  function EIGEN_DEVICE_FUNC (line 163) | EIGEN_DEVICE_FUNC inline BlockImpl(XprType& xpr, Index startRow, Index s...
  function EIGEN_DEVICE_FUNC (line 164) | EIGEN_DEVICE_FUNC
  function namespace (line 169) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/BooleanRedux.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/CommaInitializer.h
  function namespace (line 14) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 116) | EIGEN_DEVICE_FUNC

FILE: include/eigen3/Eigen/src/Core/ConditionEstimator.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/CoreEvaluators.h
  function namespace (line 16) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 241) | EIGEN_DEVICE_FUNC evaluator() {}
  function EIGEN_DEVICE_FUNC (line 243) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& m)
  function EIGEN_DEVICE_FUNC (line 254) | EIGEN_DEVICE_FUNC evaluator() {}
  function EIGEN_DEVICE_FUNC (line 256) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& m)
  function EIGEN_DEVICE_FUNC (line 275) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& t) : m_argImpl...
  type typename (line 277) | typedef typename XprType::Scalar Scalar;
  type typename (line 278) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 281) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 287) | CoeffReturnType coeff(Index index) const
  function typename (line 299) | typename XprType::Scalar& coeffRef(Index index)
  function PacketType (line 306) | PacketType packet(Index row, Index col) const
  function PacketType (line 313) | PacketType packet(Index index) const
  function writePacket (line 320) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 327) | void writePacket(Index index, const PacketType& x)
  function EIGEN_STRONG_INLINE (line 349) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 351) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 352) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {...
  function EIGEN_STRONG_INLINE (line 382) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 388) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 390) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {...
  function EIGEN_STRONG_INLINE (line 430) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 438) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 445) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {
  type typename (line 459) | typedef typename internal::remove_all<PlainObjectType>::type PlainObject...
  function EIGEN_DEVICE_FUNC (line 472) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& n)
  type typename (line 478) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function EIGEN_STRONG_INLINE (line 481) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 488) | EIGEN_STRONG_INLINE
  function PacketType (line 496) | PacketType packet(IndexType row, IndexType col) const
  function PacketType (line 503) | PacketType packet(IndexType index) const
  function explicit (line 530) | explicit unary_evaluator(const XprType& op)
  type typename (line 538) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 541) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 547) | CoeffReturnType coeff(Index index) const
  function PacketType (line 554) | PacketType packet(Index row, Index col) const
  function PacketType (line 561) | PacketType packet(Index index) const
  type ternary_evaluator (line 579) | typedef ternary_evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > ...
  function EIGEN_DEVICE_FUNC (line 581) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
  type typename (line 622) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 625) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 631) | CoeffReturnType coeff(Index index) const
  function PacketType (line 638) | PacketType packet(Index row, Index col) const
  function PacketType (line 647) | PacketType packet(Index index) const
  type binary_evaluator (line 669) | typedef binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs> > Base;
  function EIGEN_DEVICE_FUNC (line 671) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
  type typename (line 708) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 711) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 717) | CoeffReturnType coeff(Index index) const
  function PacketType (line 724) | PacketType packet(Index row, Index col) const
  function PacketType (line 732) | PacketType packet(Index index) const
  function EIGEN_DEVICE_FUNC (line 760) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& op)
  type typename (line 768) | typedef typename XprType::Scalar Scalar;
  type typename (line 769) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 772) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 778) | CoeffReturnType coeff(Index index) const
  type Derived (line 810) | typedef Derived  XprType;
  type typename (line 811) | typedef typename XprType::PointerType PointerType;
  type typename (line 812) | typedef typename XprType::Scalar Scalar;
  type typename (line 813) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 832) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 838) | CoeffReturnType coeff(Index index) const
  function PacketType (line 857) | PacketType packet(Index row, Index col) const
  function PacketType (line 865) | PacketType packet(Index index) const
  function writePacket (line 872) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 880) | void writePacket(Index index, const PacketType& x)
  type typename (line 900) | typedef typename XprType::Scalar Scalar;
  type typename (line 902) | typedef typename packet_traits<Scalar>::type PacketScalar;
  function EIGEN_DEVICE_FUNC (line 923) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& map)
  function EIGEN_DEVICE_FUNC (line 941) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& ref)
  type typename (line 956) | typedef typename XprType::Scalar Scalar;
  type typename (line 958) | typedef typename packet_traits<Scalar>::type PacketScalar;
  type block_evaluator (line 995) | typedef block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel> block...
  function EIGEN_DEVICE_FUNC (line 996) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& block) : block_evalu...
  function EIGEN_DEVICE_FUNC (line 1009) | EIGEN_DEVICE_FUNC explicit block_evaluator(const XprType& block)
  function CoeffReturnType (line 1036) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1042) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1067) | PacketType packet(Index row, Index col) const
  function PacketType (line 1074) | PacketType packet(Index index) const
  function writePacket (line 1085) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1092) | void writePacket(Index index, const PacketType& x)
  type typename (line 1118) | typedef typename XprType::Scalar Scalar;
  type typename (line 1156) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1159) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1168) | CoeffReturnType coeff(Index index) const
  type typename (line 1190) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  type typename (line 1194) | typedef typename internal::nested_eval<ArgType,Factor>::type ArgTypeNested;
  type typename (line 1195) | typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNested...
  function CoeffReturnType (line 1227) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1239) | PacketType packet(Index row, Index col) const
  function PacketType (line 1253) | PacketType packet(Index index) const
  type typename (line 1277) | typedef typename internal::nested_eval<ArgType,1>::type ArgTypeNested;
  type typename (line 1278) | typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNested...
  type typename (line 1279) | typedef typename ArgType::Scalar InputScalar;
  type typename (line 1280) | typedef typename XprType::Scalar Scalar;
  type typename (line 1284) | typedef typename MemberOp::template Cost<InputScalar,int(TraversalSize)>...
  function EIGEN_DEVICE_FUNC (line 1294) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType xpr)
  type typename (line 1301) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function Scalar (line 1304) | const Scalar coeff(Index i, Index j) const
  function Scalar (line 1313) | const Scalar coeff(Index index) const
  type typename (line 1336) | typedef typename remove_all<typename XprType::NestedExpressionType>::typ...
  function EIGEN_DEVICE_FUNC (line 1343) | EIGEN_DEVICE_FUNC explicit evaluator_wrapper_base(const ArgType& arg) : ...
  type typename (line 1345) | typedef typename ArgType::Scalar Scalar;
  type typename (line 1346) | typedef typename ArgType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1349) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1355) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1374) | PacketType packet(Index row, Index col) const
  function PacketType (line 1381) | PacketType packet(Index index) const
  function writePacket (line 1388) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1395) | void writePacket(Index index, const PacketType& x)
  function EIGEN_DEVICE_FUNC (line 1410) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& wrapper)
  function EIGEN_DEVICE_FUNC (line 1421) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& wrapper)
  type typename (line 1437) | typedef typename XprType::Scalar Scalar;
  type typename (line 1438) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1477) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1497) | PacketType packet(Index row, Index col) const
  function PacketType (line 1512) | PacketType packet(Index index) const
  function writePacket (line 1520) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1537) | void writePacket(Index index, const PacketType& x)
  function EIGEN_DEVICE_FUNC (line 1570) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& diagonal)
  type typename (line 1575) | typedef typename XprType::Scalar Scalar;
  type typename (line 1576) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1579) | CoeffReturnType coeff(Index row, Index) const
  function CoeffReturnType (line 1585) | CoeffReturnType coeff(Index index) const
  function EvalToTemp (line 1634) | EIGEN_GENERIC_PUBLIC_INTERFACE(EvalToTemp)
  type typename (line 1664) | typedef typename ArgType::PlainObject         PlainObject;
  type evaluator (line 1665) | typedef evaluator<PlainObject> Base;
  function EIGEN_DEVICE_FUNC (line 1667) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
  function EIGEN_DEVICE_FUNC (line 1674) | EIGEN_DEVICE_FUNC evaluator(const ArgType& arg)

FILE: include/eigen3/Eigen/src/Core/CoreIterators.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 88) | typedef typename internal::remove_all<LhsType>::type Lhs;
  type typename (line 89) | typedef typename internal::remove_all<RhsType>::type Rhs;
  type typename (line 91) | typedef typename CwiseBinaryOpImpl<
  type typename (line 99) | typedef typename internal::ref_selector<RhsType>::type RhsNested;
  type typename (line 100) | typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
  type typename (line 101) | typedef typename internal::remove_reference<RhsNested>::type _RhsNested;

FILE: include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
  function namespace (line 13) | namespace Eigen {
  function if (line 137) | EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
  function namespace (line 739) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 91) | typedef typename internal::remove_all<Arg2Type>::type Arg2;
  type typename (line 92) | typedef typename internal::remove_all<Arg3Type>::type Arg3;
  type typename (line 94) | typedef typename CwiseTernaryOpImpl<
  type typename (line 100) | typedef typename internal::ref_selector<Arg2Type>::type Arg2Nested;
  type typename (line 101) | typedef typename internal::ref_selector<Arg3Type>::type Arg3Nested;
  type typename (line 102) | typedef typename internal::remove_reference<Arg1Nested>::type _Arg1Nested;
  type typename (line 103) | typedef typename internal::remove_reference<Arg2Nested>::type _Arg2Nested;
  type typename (line 104) | typedef typename internal::remove_reference<Arg3Nested>::type _Arg3Nested;

FILE: include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 62) | typedef typename internal::remove_all<XprType>::type NestedExpression;
  function typename (line 84) | typename internal::remove_all<XprTypeNested>::type&

FILE: include/eigen3/Eigen/src/Core/CwiseUnaryView.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 65) | typedef typename internal::remove_all<MatrixType>::type NestedExpression;
  function explicit (line 67) | explicit inline CwiseUnaryView(MatrixType& mat, const ViewOp& func = Vie...
  function typename (line 83) | typename internal::remove_reference<MatrixTypeNested>::type&
  type typename (line 107) | typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, Matrix...
  function EIGEN_INHERIT_ASSIGNMENT_OPERATORS (line 109) | EIGEN_DENSE_PUBLIC_INTERFACE(Derived)

FILE: include/eigen3/Eigen/src/Core/DenseBase.h
  function namespace (line 16) | namespace internal {
  type typename (line 55) | typedef typename internal::traits<Derived>::StorageKind StorageKind;
  type typename (line 63) | typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
  type typename (line 66) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type Scalar (line 71) | typedef Scalar value_type;
  type typename (line 73) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type DenseCoeffsBase (line 74) | typedef DenseCoeffsBase<Derived> Base;
  type typename (line 96) | typedef typename Base::CoeffReturnType CoeffReturnType;
  type typename (line 174) | typedef typename internal::find_best_packet<Scalar,SizeAtCompileTime>::t...
  type Matrix (line 180) | typedef Matrix<typename
  type Array (line 190) | typedef Array<typename
  type typename (line 204) | typedef typename internal::conditional<internal::is_same<typename
  function EIGEN_DEVICE_FUNC (line 240) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 251) | EIGEN_DEVICE_FUNC
  type CwiseNullaryOp (line 262) | typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject>...
  type CwiseNullaryOp (line 264) | typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,Plain...
  type CwiseNullaryOp (line 266) | typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,Plain...
  type Matrix (line 268) | typedef Matrix<typename
  type Transpose (line 319) | typedef Transpose<Derived> TransposeReturnType;
  type typename (line 322) | typedef typename internal::add_const<Transpose<const Derived> >::type Co...

FILE: include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 483) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type typename (line 484) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function Index (line 513) | inline Index stride() const
  type typename (line 557) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type typename (line 558) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function Index (line 587) | inline Index stride() const
  function EIGEN_DEVICE_FUNC (line 606) | EIGEN_DEVICE_FUNC
  function Index (line 639) | inline Index first_aligned(const DenseBase<Derived>& m)
  function Index (line 646) | inline Index first_default_aligned(const DenseBase<Derived>& m)

FILE: include/eigen3/Eigen/src/Core/DenseStorage.h
  function namespace (line 21) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 125) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 132) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 144) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 151) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 162) | EIGEN_DEVICE_FUNC plain_array() {}
  function EIGEN_DEVICE_FUNC (line 163) | EIGEN_DEVICE_FUNC plain_array(constructor_without_unaligned_array_assert...
  function EIGEN_DEVICE_FUNC (line 193) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 203) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) {
  function EIGEN_DEVICE_FUNC (line 211) | EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
  function EIGEN_DEVICE_FUNC (line 212) | EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
  function EIGEN_DEVICE_FUNC (line 213) | EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 214) | EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 215) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 216) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 223) | EIGEN_DEVICE_FUNC DenseStorage() {}
  function EIGEN_DEVICE_FUNC (line 224) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 225) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage&) {}
  function EIGEN_DEVICE_FUNC (line 227) | EIGEN_DEVICE_FUNC DenseStorage(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 268) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index cols) : m_rows(r...
  function EIGEN_DEVICE_FUNC (line 273) | EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index cols)...
  function EIGEN_DEVICE_FUNC (line 274) | EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index cols) { m_rows = ...
  function EIGEN_DEVICE_FUNC (line 275) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 276) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 286) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 288) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other) : m_data(other...
  function EIGEN_DEVICE_FUNC (line 298) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index) : m_rows(rows) {}
  function EIGEN_DEVICE_FUNC (line 300) | EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
  function EIGEN_DEVICE_FUNC (line 301) | EIGEN_DEVICE_FUNC Index cols(void) const {return _Cols;}
  function EIGEN_DEVICE_FUNC (line 302) | EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index) { m_...
  function EIGEN_DEVICE_FUNC (line 303) | EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index) { m_rows = rows; }
  function EIGEN_DEVICE_FUNC (line 304) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 305) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 315) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 317) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other) : m_data(other...
  function EIGEN_DEVICE_FUNC (line 327) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index, Index cols) : m_cols(cols) {}
  function EIGEN_DEVICE_FUNC (line 329) | EIGEN_DEVICE_FUNC Index rows(void) const {return _Rows;}
  function EIGEN_DEVICE_FUNC (line 330) | EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
  function conservativeResize (line 331) | void conservativeResize(Index, Index, Index cols) { m_cols = cols; }
  function resize (line 332) | void resize(Index, Index, Index cols) { m_cols = cols; }
  function EIGEN_DEVICE_FUNC (line 333) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 334) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 391) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function EIGEN_DEVICE_FUNC (line 394) | EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
  function EIGEN_DEVICE_FUNC (line 395) | EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
  function conservativeResize (line 396) | void conservativeResize(Index size, Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 402) | EIGEN_DEVICE_FUNC void resize(Index size, Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 416) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 417) | EIGEN_DEVICE_FUNC T *data() { return m_data; }
  function explicit (line 427) | explicit DenseStorage(internal::constructor_without_unaligned_array_asse...
  function EIGEN_DEVICE_FUNC (line 428) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_d...
  function EIGEN_DEVICE_FUNC (line 434) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 451) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 468) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function EIGEN_DEVICE_FUNC (line 470) | EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
  function EIGEN_DEVICE_FUNC (line 471) | EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
  function EIGEN_DEVICE_FUNC (line 472) | EIGEN_DEVICE_FUNC void conservativeResize(Index size, Index, Index cols)
  function resize (line 477) | void resize(Index size, Index, Index cols)
  function EIGEN_DEVICE_FUNC (line 490) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 491) | EIGEN_DEVICE_FUNC T *data() { return m_data; }
  function explicit (line 501) | explicit DenseStorage(internal::constructor_without_unaligned_array_asse...
  function EIGEN_DEVICE_FUNC (line 502) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_d...
  function EIGEN_DEVICE_FUNC (line 508) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 525) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 542) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function EIGEN_DEVICE_FUNC (line 544) | EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
  function EIGEN_DEVICE_FUNC (line 545) | EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
  function conservativeResize (line 546) | void conservativeResize(Index size, Index rows, Index)
  function resize (line 551) | void resize(Index size, Index rows, Index)
  function EIGEN_DEVICE_FUNC (line 564) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 565) | EIGEN_DEVICE_FUNC T *data() { return m_data; }

FILE: include/eigen3/Eigen/src/Core/Diagonal.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 69) | typedef typename internal::dense_xpr_base<Diagonal>::type Base;
  function explicit (line 73) | explicit inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) ...
  type typename (line 102) | typedef typename internal::conditional<
  function EIGEN_DEVICE_FUNC (line 108) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 110) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 113) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 120) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 126) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 132) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 139) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 145) | EIGEN_DEVICE_FUNC

FILE: include/eigen3/Eigen/src/Core/DiagonalMatrix.h
  function namespace (line 14) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 138) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 142) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 146) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 150) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 154) | EIGEN_DEVICE_FUNC
  function m_diagonal (line 160) | inline DiagonalMatrix(const DiagonalBase<OtherDerived>& other) : m_diago...
  function m_diagonal (line 164) | inline DiagonalMatrix(const DiagonalMatrix& other) : m_diagonal(other.di...
  function explicit (line 170) | explicit inline DiagonalMatrix(const MatrixBase<OtherDerived>& other) : ...
  function EIGEN_DEVICE_FUNC (line 195) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 198) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 201) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 204) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 207) | EIGEN_DEVICE_FUNC
  function namespace (line 225) | namespace internal {
  type _DiagonalVectorType (line 250) | typedef _DiagonalVectorType DiagonalVectorType;
  type DiagonalWrapper (line 251) | typedef DiagonalWrapper Nested;
  function m_diagonal (line 256) | inline DiagonalWrapper(DiagonalVectorType& a_diagonal) : m_diagonal(a_di...
  function namespace (line 309) | namespace internal {
  function run (line 335) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: include/eigen3/Eigen/src/Core/DiagonalProduct.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Dot.h
  function namespace (line 13) | namespace Eigen {
  type internal (line 78) | typedef internal::scalar_conj_product_op<Scalar,typename
  type typename (line 126) | typedef typename internal::nested_eval<Derived,2>::type _Nested;
  type typename (line 169) | typedef typename internal::nested_eval<Derived,3>::type _Nested;
  function namespace (line 201) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/EigenBase.h
  function namespace (line 14) | namespace Eigen {
  function evalTo (line 71) | inline void evalTo(Dest& dst) const
  function addTo (line 77) | inline void addTo(Dest& dst) const
  function subTo (line 89) | inline void subTo(Dest& dst) const
  function applyThisOnTheRight (line 100) | inline void applyThisOnTheRight(Dest& dst) const
  function applyThisOnTheLeft (line 109) | inline void applyThisOnTheLeft(Dest& dst) const

FILE: include/eigen3/Eigen/src/Core/ForceAlignedAccess.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Fuzzy.h
  function namespace (line 14) | namespace Eigen {
  function typename (line 65) | typename Derived::RealScalar& prec)
  function EIGEN_DEVICE_FUNC (line 74) | EIGEN_DEVICE_FUNC

FILE: include/eigen3/Eigen/src/Core/GeneralProduct.h
  function namespace (line 14) | namespace Eigen {
  type product_type_selector (line 93) | struct product_type_selector
  type product_type_selector (line 94) | struct product_type_selector
  type product_type_selector (line 95) | struct product_type_selector
  type product_type_selector (line 96) | struct product_type_selector
  type product_type_selector (line 97) | struct product_type_selector
  type product_type_selector (line 98) | struct product_type_selector
  type product_type_selector (line 99) | struct product_type_selector
  type product_type_selector (line 100) | struct product_type_selector
  type product_type_selector (line 101) | struct product_type_selector
  type product_type_selector (line 102) | struct product_type_selector
  type product_type_selector (line 103) | struct product_type_selector
  type product_type_selector (line 104) | struct product_type_selector
  type product_type_selector (line 105) | struct product_type_selector
  type product_type_selector (line 106) | struct product_type_selector
  type product_type_selector (line 107) | struct product_type_selector
  type product_type_selector (line 108) | struct product_type_selector
  type product_type_selector (line 109) | struct product_type_selector
  type product_type_selector (line 110) | struct product_type_selector
  type product_type_selector (line 111) | struct product_type_selector
  type product_type_selector (line 112) | struct product_type_selector
  function namespace (line 142) | namespace internal {
  function namespace (line 149) | namespace internal {
  function EIGEN_STRONG_INLINE (line 174) | EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
  function EIGEN_STRONG_INLINE (line 179) | EIGEN_STRONG_INLINE Scalar* data() {
  type gemv_dense_selector (line 201) | struct gemv_dense_selector
  function run (line 204) | inline void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typena...
  type gemv_dense_selector (line 295) | struct gemv_dense_selector
  function run (line 298) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...
  type gemv_dense_selector (line 348) | struct gemv_dense_selector
  function run (line 351) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...
  type gemv_dense_selector (line 362) | struct gemv_dense_selector
  function run (line 365) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...

FILE: include/eigen3/Eigen/src/Core/GenericPacketMath.h
  function namespace (line 14) | namespace Eigen {
  function ptranspose (line 543) | inline void
  function Packet (line 556) | inline Packet
  function Packet (line 562) | inline Packet
  function Packet (line 576) | inline Packet

FILE: include/eigen3/Eigen/src/Core/GlobalFunctions.h
  function namespace (line 54) | namespace Eigen

FILE: include/eigen3/Eigen/src/Core/IO.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 112) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/Inverse.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 74) | typedef typename XprType::Scalar Scalar;
  function namespace (line 81) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/Map.h
  function namespace (line 14) | namespace Eigen {
  type PointerType (line 103) | typedef PointerType PointerArgType;
  function EIGEN_DEVICE_FUNC (line 104) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 107) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 128) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 141) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 155) | EIGEN_DEVICE_FUNC

FILE: include/eigen3/Eigen/src/Core/MapBase.h
  function namespace (line 18) | namespace Eigen {
  type typename (line 223) | typedef typename Base::Scalar Scalar;
  type typename (line 224) | typedef typename Base::PacketScalar PacketScalar;
  type typename (line 225) | typedef typename Base::StorageIndex StorageIndex;
  type typename (line 226) | typedef typename Base::PointerType PointerType;
  type typename (line 240) | typedef typename internal::conditional<
  function EIGEN_DEVICE_FUNC (line 246) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 248) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 251) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 257) | EIGEN_DEVICE_FUNC
  function Base (line 279) | Base(dataPtr) {}
  function EIGEN_DEVICE_FUNC (line 280) | EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize) : B...
  function EIGEN_DEVICE_FUNC (line 281) | EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index ...

FILE: include/eigen3/Eigen/src/Core/MathFunctions.h
  function namespace (line 18) | namespace Eigen {
  type Scalar (line 549) | typedef Scalar type;
  function Scalar (line 562) | static inline Scalar run()
  type typename (line 620) | typedef typename conditional<NumTraits<Scalar>::IsSigned,std::ptrdiff_t,...
  function Scalar (line 638) | static inline Scalar run()
  function Scalar (line 661) | static inline Scalar run()
  function isinf_impl (line 721) | bool>::type
  function isinf_msvc_helper (line 753) | bool isinf_msvc_helper(T x)
  function EIGEN_DEVICE_FUNC (line 759) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const long double& x) { return ...
  function EIGEN_DEVICE_FUNC (line 760) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const double& x)      { return ...
  function EIGEN_DEVICE_FUNC (line 761) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const float& x)       { return ...
  function EIGEN_DEVICE_FUNC (line 763) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const long double& x) { return ...
  function EIGEN_DEVICE_FUNC (line 764) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const double& x)      { return ...
  function EIGEN_DEVICE_FUNC (line 765) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const float& x)       { return ...
  function isnan_impl (line 777) | bool isnan_impl(const long double& x) { return __builtin_isnan(x); }
  function isnan_impl (line 778) | bool isnan_impl(const double& x)      { return __builtin_isnan(x); }
  function isnan_impl (line 779) | bool isnan_impl(const float& x)       { return __builtin_isnan(x); }
  function isinf_impl (line 780) | bool isinf_impl(const double& x)      { return __builtin_isinf(x); }
  function isinf_impl (line 781) | bool isinf_impl(const float& x)       { return __builtin_isinf(x); }
  function isinf_impl (line 782) | bool isinf_impl(const long double& x) { return __builtin_isinf(x); }
  function namespace (line 803) | namespace numext {
  function floor (line 969) | float floor(const float &x) { return ::floorf(x); }
  function floor (line 972) | double floor(const double &x) { return ::floor(x); }
  function ceil (line 985) | float ceil(const float &x) { return ::ceilf(x); }
  function ceil (line 988) | double ceil(const double &x) { return ::ceil(x); }
  function log2 (line 994) | inline int log2(int x)
  function log (line 1032) | float log(const float &x) { return ::logf(x); }
  function log (line 1035) | double log(const double &x) { return ::log(x); }
  function typename (line 1048) | typename NumTraits<T>::Real>::type
  function EIGEN_ALWAYS_INLINE (line 1054) | EIGEN_ALWAYS_INLINE float   abs(float x) { return cl::sycl::fabs(x); }
  function EIGEN_ALWAYS_INLINE (line 1055) | EIGEN_ALWAYS_INLINE double  abs(double x) { return cl::sycl::fabs(x); }
  function abs (line 1060) | float abs(const float &x) { return ::fabsf(x); }
  function abs (line 1063) | double abs(const double &x) { return ::fabs(x); }
  function exp (line 1085) | float exp(const float &x) { return ::expf(x); }
  function exp (line 1088) | double exp(const double &x) { return ::exp(x); }
  function cos (line 1100) | float cos(const float &x) { return ::cosf(x); }
  function cos (line 1103) | double cos(const double &x) { return ::cos(x); }
  function sin (line 1115) | float sin(const float &x) { return ::sinf(x); }
  function sin (line 1118) | double sin(const double &x) { return ::sin(x); }
  function tan (line 1130) | float tan(const float &x) { return ::tanf(x); }
  function tan (line 1133) | double tan(const double &x) { return ::tan(x); }
  function acos (line 1145) | float acos(const float &x) { return ::acosf(x); }
  function acos (line 1148) | double acos(const double &x) { return ::acos(x); }
  function asin (line 1160) | float asin(const float &x) { return ::asinf(x); }
  function asin (line 1163) | double asin(const double &x) { return ::asin(x); }
  function atan (line 1175) | float atan(const float &x) { return ::atanf(x); }
  function atan (line 1178) | double atan(const double &x) { return ::atan(x); }
  function cosh (line 1191) | float cosh(const float &x) { return ::coshf(x); }
  function cosh (line 1194) | double cosh(const double &x) { return ::cosh(x); }
  function sinh (line 1206) | float sinh(const float &x) { return ::sinhf(x); }
  function sinh (line 1209) | double sinh(const double &x) { return ::sinh(x); }
  function tanh (line 1221) | float tanh(float x) { return internal::generic_fast_tanh_float(x); }
  function tanh (line 1226) | float tanh(const float &x) { return ::tanhf(x); }
  function tanh (line 1229) | double tanh(const double &x) { return ::tanh(x); }
  function fmod (line 1242) | float fmod(const float& a, const float& b) {
  function fmod (line 1248) | double fmod(const double& a, const double& b) {
  function namespace (line 1255) | namespace internal {
  type typename (line 1308) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function isMuchSmallerThan (line 1310) | static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, con...
  function EIGEN_DEVICE_FUNC (line 1314) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 1319) | EIGEN_DEVICE_FUNC
  type typename (line 1329) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function isMuchSmallerThan (line 1331) | static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar&...
  function EIGEN_DEVICE_FUNC (line 1335) | EIGEN_DEVICE_FUNC
  function isMuchSmallerThan (line 1346) | bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
  function isApprox (line 1353) | bool isApprox(const Scalar& x, const Scalar& y,
  function isApproxOrLessThan (line 1360) | bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
  function bool (line 1370) | struct random_impl<bool>
  function bool (line 1378) | struct scalar_fuzzy_impl<bool>

FILE: include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Matrix.h
  function namespace (line 14) | namespace Eigen {
  type PlainObjectBase (line 186) | typedef PlainObjectBase<Matrix> Base;
  function explicit (line 267) | explicit Matrix(internal::constructor_without_unaligned_array_assert)
  function EIGEN_DEVICE_FUNC (line 272) | EIGEN_DEVICE_FUNC
  function EIGEN_STRONG_INLINE (line 293) | EIGEN_STRONG_INLINE explicit Matrix(const T& x)
  function EIGEN_STRONG_INLINE (line 301) | EIGEN_STRONG_INLINE Matrix(const T0& x, const T1& y)
  function Base (line 370) | Matrix(const Matrix& other) : Base(other)
  function EIGEN_STRONG_INLINE (line 378) | EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
  type internal (line 401) | struct internal

FILE: include/eigen3/Eigen/src/Core/MatrixBase.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/NestByValue.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/NoAlias.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/NumTraits.h
  function namespace (line 13) | namespace Eigen {
  type T (line 100) | typedef T Real;
  type typename (line 101) | typedef typename internal::conditional<
  type T (line 106) | typedef T Nested;
  type T (line 107) | typedef T Literal;
  function EIGEN_DEVICE_FUNC (line 109) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 115) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 121) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 129) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 134) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 139) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 144) | EIGEN_DEVICE_FUNC
  type NumTraits (line 153) | struct NumTraits
  function EIGEN_DEVICE_FUNC (line 156) | EIGEN_DEVICE_FUNC
  type NumTraits (line 160) | struct NumTraits
  function EIGEN_DEVICE_FUNC (line 162) | EIGEN_DEVICE_FUNC
  type NumTraits (line 166) | struct NumTraits
  function dummy_precision (line 169) | static inline long double dummy_precision() { return 1e-15l; }
  type _Real (line 175) | typedef _Real Real;
  type typename (line 176) | typedef typename NumTraits<_Real>::Literal Literal;
  function EIGEN_DEVICE_FUNC (line 185) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 187) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 189) | EIGEN_DEVICE_FUNC
  type typename (line 197) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type Array (line 198) | typedef Array<RealScalar, Rows, Cols, Options, MaxRows, MaxCols> Real;
  type typename (line 199) | typedef typename NumTraits<Scalar>::NonInteger NonIntegerScalar;
  type Array (line 200) | typedef Array<NonIntegerScalar, Rows, Cols, Options, MaxRows, MaxCols> N...
  type ArrayType (line 201) | typedef ArrayType & Nested;
  type typename (line 202) | typedef typename NumTraits<Scalar>::Literal Literal;
  function EIGEN_DEVICE_FUNC (line 214) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 216) | EIGEN_DEVICE_FUNC
  function digits10 (line 219) | static inline int digits10() { return NumTraits<Scalar>::digits10(); }
  function string (line 222) | struct NumTraits<std::string>
  function void (line 244) | struct NumTraits<void> {}

FILE: include/eigen3/Eigen/src/Core/PermutationMatrix.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 282) | namespace internal {
  type internal (line 311) | typedef internal::traits<PermutationMatrix> Traits;
  type typename (line 317) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 318) | typedef typename Traits::StorageIndex StorageIndex;
  function explicit (line 326) | explicit inline PermutationMatrix(Index size) : m_indices(size)
  function m_indices (line 339) | inline PermutationMatrix(const PermutationMatrix& other) : m_indices(oth...
  function m_indices (line 350) | inline PermutationMatrix(const MatrixBase<Other>& indices) : m_indices(i...
  function namespace (line 419) | namespace internal {
  type internal (line 436) | typedef internal::traits<Map> Traits;
  type typename (line 440) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 441) | typedef typename IndicesType::Scalar StorageIndex;
  function m_indices (line 444) | inline Map(const StorageIndex* indicesPtr)
  function namespace (line 484) | namespace internal {
  type internal (line 517) | typedef internal::traits<PermutationWrapper> Traits;
  type typename (line 521) | typedef typename Traits::IndicesType IndicesType;
  function m_indices (line 524) | inline PermutationWrapper(const IndicesType& indices)
  type internal (line 568) | typedef internal::traits<PermutationType> PermTraits;
  type typename (line 576) | typedef typename PermutationType::DenseMatrixType DenseMatrixType;
  function namespace (line 625) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/PlainObjectBase.h
  function namespace (line 25) | namespace Eigen {
  function Scalar (line 160) | const Scalar& coeff(Index rowId, Index colId) const
  function Scalar (line 173) | const Scalar& coeff(Index index) const
  function Scalar (line 204) | const Scalar& coeffRef(Index rowId, Index colId) const
  function Scalar (line 215) | const Scalar& coeffRef(Index index) const
  function PacketScalar (line 222) | PacketScalar packet(Index rowId, Index colId) const
  function PacketScalar (line 232) | PacketScalar packet(Index index) const
  function writePacket (line 239) | void writePacket(Index rowId, Index colId, const PacketScalar& val)
  function writePacket (line 249) | void writePacket(Index index, const PacketScalar& val)
  function Scalar (line 255) | const Scalar *data() const
  function Scalar (line 259) | Scalar *data()
  function resize (line 279) | void resize(Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 308) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 333) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 347) | EIGEN_DEVICE_FUNC
  function conservativeResize (line 390) | void conservativeResize(Index rows, Index cols)
  function conservativeResize (line 403) | void conservativeResize(Index rows, NoChange_t)
  function conservativeResize (line 417) | void conservativeResize(NoChange_t, Index cols)
  function conservativeResize (line 432) | void conservativeResize(Index size)
  function EIGEN_DEVICE_FUNC (line 493) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 502) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 521) | EIGEN_DEVICE_FUNC
  function EIGEN_STRONG_INLINE (line 532) | EIGEN_STRONG_INLINE PlainObjectBase(const DenseBase<OtherDerived> &other)
  function EIGEN_STRONG_INLINE (line 543) | EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase<OtherDerived> &other)
  function EIGEN_STRONG_INLINE (line 553) | EIGEN_STRONG_INLINE PlainObjectBase(const ReturnByValue<OtherDerived>& o...
  function ConstMapType (line 587) | static inline ConstMapType Map(const Scalar* data)
  function MapType (line 589) | static inline MapType Map(Scalar* data)
  function ConstMapType (line 591) | static inline ConstMapType Map(const Scalar* data, Index size)
  function MapType (line 593) | static inline MapType Map(Scalar* data, Index size)
  function ConstMapType (line 595) | static inline ConstMapType Map(const Scalar* data, Index rows, Index cols)
  function MapType (line 597) | static inline MapType Map(Scalar* data, Index rows, Index cols)
  function ConstAlignedMapType (line 600) | static inline ConstAlignedMapType MapAligned(const Scalar* data)
  function AlignedMapType (line 602) | static inline AlignedMapType MapAligned(Scalar* data)
  function ConstAlignedMapType (line 604) | static inline ConstAlignedMapType MapAligned(const Scalar* data, Index s...
  function AlignedMapType (line 606) | static inline AlignedMapType MapAligned(Scalar* data, Index size)
  function ConstAlignedMapType (line 608) | static inline ConstAlignedMapType MapAligned(const Scalar* data, Index r...
  function AlignedMapType (line 610) | static inline AlignedMapType MapAligned(Scalar* data, Index rows, Index ...
  function _init2 (line 757) | void _init2(const Index& val0, const Index& val1,
  function _init1 (line 795) | void _init1(const Index& val0,
  function _init1 (line 808) | void _init1(const Scalar* data){
  function _init1 (line 822) | void _init1(const Derived& other){
  function EIGEN_STRONG_INLINE (line 843) | EIGEN_STRONG_INLINE void _init1(const RotationBase<OtherDerived,ColsAtCo...

FILE: include/eigen3/Eigen/src/Core/Product.h
  function namespace (line 13) | namespace Eigen {
  type _Rhs (line 79) | typedef _Rhs Rhs;
  type typename (line 81) | typedef typename ProductImpl<
  type typename (line 89) | typedef typename internal::ref_selector<Rhs>::type RhsNested;
  type typename (line 90) | typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
  type typename (line 91) | typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
  function EIGEN_DEVICE_FUNC (line 93) | EIGEN_DEVICE_FUNC Product(const Lhs& lhs, const Rhs& rhs) : m_lhs(lhs), ...
  function namespace (line 112) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/ProductEvaluators.h
  function namespace (line 16) | namespace Eigen {
  type evaluator (line 56) | typedef evaluator<Product<EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar1...
  function explicit (line 58) | explicit evaluator(const XprType& xpr)
  type evaluator (line 69) | typedef evaluator<Diagonal<const Product<Lhs, Rhs, LazyProduct>, DiagInd...
  function explicit (line 71) | explicit evaluator(const XprType& xpr)
  type typename (line 100) | typedef typename XprType::PlainObject PlainObject;
  type evaluator (line 101) | typedef evaluator<PlainObject> Base;
  function explicit (line 107) | explicit product_evaluator(const XprType& xpr)
  type Product (line 157) | typedef Product<Lhs,Rhs,Options> SrcXprType;
  type Product (line 172) | typedef Product<Lhs,Rhs,Options> SrcXprType;
  type CwiseBinaryOp (line 190) | typedef CwiseBinaryOp<internal::scalar_product_op<ScalarBis,Scalar>,
  function addTo (line 255) | void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  function subTo (line 261) | void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  type typename (line 489) | typedef typename find_best_packet<Scalar,RowsAtCompileTime>::type LhsVec...
  type typename (line 490) | typedef typename find_best_packet<Scalar,ColsAtCompileTime>::type RhsVec...
  function CoeffReturnType (line 550) | const CoeffReturnType coeff(Index row, Index col) const
  function EIGEN_DEVICE_FUNC (line 559) | EIGEN_DEVICE_FUNC const CoeffReturnType coeff(Index index) const
  function PacketType (line 567) | PacketType packet(Index row, Index col) const
  function PacketType (line 578) | PacketType packet(Index index) const
  type Product (line 600) | typedef Product<Lhs, Rhs, DefaultProduct> XprType;
  type Product (line 601) | typedef Product<Lhs, Rhs, LazyProduct> BaseProduct;
  type product_evaluator (line 602) | typedef product_evaluator<BaseProduct, CoeffBasedProductMode, DenseShape...
  function EIGEN_DEVICE_FUNC (line 606) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function EIGEN_STRONG_INLINE (line 618) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  function EIGEN_STRONG_INLINE (line 628) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  function EIGEN_STRONG_INLINE (line 638) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  function EIGEN_STRONG_INLINE (line 647) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  function EIGEN_STRONG_INLINE (line 656) | static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const ...
  function EIGEN_STRONG_INLINE (line 665) | static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const ...
  function EIGEN_STRONG_INLINE (line 674) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  function EIGEN_STRONG_INLINE (line 685) | static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs...
  type typename (line 706) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 720) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 741) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 754) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 772) | typedef typename ScalarBinaryOpTraits<typename MatrixType::Scalar, typename
  function PacketType (line 812) | PacketType packet_impl(Index row, Index col, Index id, internal::true_ty...
  function PacketType (line 819) | PacketType packet_impl(Index row, Index col, Index id, internal::false_t...
  type typename (line 842) | typedef typename Base::Scalar Scalar;
  type Product (line 844) | typedef Product<Lhs, Rhs, ProductKind> XprType;
  type typename (line 845) | typedef typename XprType::PlainObject PlainObject;
  function EIGEN_DEVICE_FUNC (line 851) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function Scalar (line 856) | const Scalar coeff(Index row, Index col) const
  function PacketType (line 863) | PacketType packet(Index row, Index col) const
  function PacketType (line 872) | PacketType packet(Index idx) const
  type typename (line 888) | typedef typename Base::Scalar Scalar;
  type Product (line 890) | typedef Product<Lhs, Rhs, ProductKind> XprType;
  type typename (line 891) | typedef typename XprType::PlainObject PlainObject;
  function EIGEN_DEVICE_FUNC (line 895) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function Scalar (line 900) | const Scalar coeff(Index row, Index col) const
  function PacketType (line 907) | PacketType packet(Index row, Index col) const
  function PacketType (line 914) | PacketType packet(Index idx) const
  type typename (line 937) | typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
  function run (line 940) | inline void run(Dest& dst, const PermutationType& perm, const Expression...
  type typename (line 1044) | typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
  type typename (line 1045) | typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
  function run (line 1048) | inline void run(Dest& dst, const TranspositionType& tr, const Expression...

FILE: include/eigen3/Eigen/src/Core/Random.h
  function namespace (line 15) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/Redux.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 145) | typedef typename Derived::Scalar Scalar;
  type typename (line 146) | typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
  type typename (line 166) | typedef typename Derived::Scalar Scalar;
  type typename (line 167) | typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
  function Scalar (line 190) | Scalar run(const Derived &mat, const Func& func)
  type typename (line 213) | typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
  function Scalar (line 215) | static Scalar run(const Derived &mat, const Func& func)
  type typename (line 272) | typedef typename redux_traits<Func, Derived>::PacketType PacketType;
  function EIGEN_DEVICE_FUNC (line 274) | EIGEN_DEVICE_FUNC static Scalar run(const Derived &mat, const Func& func)
  type typename (line 311) | typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
  function Scalar (line 317) | Scalar run(const Derived &mat, const Func& func)
  function EIGEN_DEVICE_FUNC (line 338) | EIGEN_DEVICE_FUNC explicit redux_evaluator(const XprType &xpr) : m_evalu...
  type typename (line 340) | typedef typename XprType::Scalar Scalar;
  type typename (line 341) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  type typename (line 342) | typedef typename XprType::PacketScalar PacketScalar;
  type typename (line 343) | typedef typename XprType::PacketReturnType PacketReturnType;
  function EIGEN_DEVICE_FUNC (line 363) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 367) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 379) | EIGEN_DEVICE_FUNC
  function typename (line 410) | typename internal::traits<Derived>::Scalar

FILE: include/eigen3/Eigen/src/Core/Ref.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 61) | typedef typename internal::traits<Derived>::PlainObjectType PlainObjectT...
  type typename (line 62) | typedef typename internal::traits<Derived>::StrideType StrideType;
  function Index (line 69) | inline Index innerStride() const
  function EIGEN_DEVICE_FUNC (line 253) | EIGEN_DEVICE_FUNC inline Ref(const Ref& other) : Base(other) {
  function construct (line 265) | void construct(const Expression& expr,internal::true_type)
  function construct (line 271) | void construct(const Expression& expr, internal::false_type)

FILE: include/eigen3/Eigen/src/Core/Replicate.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 64) | typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTyp...
  type typename (line 65) | typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixT...

FILE: include/eigen3/Eigen/src/Core/ReturnByValue.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 56) | typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
  function evalTo (line 61) | inline void evalTo(Dest& dst) const
  function class (line 68) | class Unusable{
  function namespace (line 88) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/Reverse.h
  function namespace (line 15) | namespace Eigen {
  type internal (line 85) | typedef internal::reverse_packet_cond<PacketScalar,ReversePacket> revers...
  function m_matrix (line 88) | inline Reverse(const MatrixType& matrix) : m_matrix(matrix) { }
  function namespace (line 163) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/Select.h
  function namespace (line 13) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 73) | inline EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 82) | inline EIGEN_DEVICE_FUNC
  function typename (line 139) | typename ThenDerived::Scalar& elseScalar) const

FILE: include/eigen3/Eigen/src/Core/SelfAdjointView.h
  function namespace (line 13) | namespace Eigen {
  type _MatrixType (line 54) | typedef _MatrixType MatrixType;
  type TriangularBase (line 55) | typedef TriangularBase<SelfAdjointView> Base;
  type typename (line 56) | typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested Mat...
  type typename (line 57) | typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedClea...
  type MatrixTypeNestedCleaned (line 58) | typedef MatrixTypeNestedCleaned NestedExpression;
  type typename (line 61) | typedef typename internal::traits<SelfAdjointView>::Scalar Scalar;
  type typename (line 62) | typedef typename MatrixType::StorageIndex StorageIndex;
  type typename (line 63) | typedef typename internal::remove_all<typename
  type typename (line 70) | typedef typename MatrixType::PlainObject PlainObject;
  function m_matrix (line 73) | inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
  function EIGEN_DEVICE_FUNC (line 90) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 100) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 114) | EIGEN_DEVICE_FUNC
  type SelfAdjointView (line 194) | typedef SelfAdjointView<const MatrixConjugateReturnType,UpLo> ConjugateR...
  function EIGEN_DEVICE_FUNC (line 196) | EIGEN_DEVICE_FUNC
  type typename (line 284) | typedef typename Base::DstXprType DstXprType;
  type typename (line 285) | typedef typename Base::SrcXprType SrcXprType;
  type typename (line 292) | typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
  type typename (line 293) | typedef typename Base::Scalar Scalar;
  type typename (line 294) | typedef typename Base::AssignmentTraits AssignmentTraits;
  function EIGEN_DEVICE_FUNC (line 297) | EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &d...
  function EIGEN_DEVICE_FUNC (line 301) | EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
  function EIGEN_DEVICE_FUNC (line 309) | EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
  function EIGEN_DEVICE_FUNC (line 314) | EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index, Index)

FILE: include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Solve.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 66) | typedef typename internal::traits<Solve>::StorageIndex StorageIndex;
  function namespace (line 110) | namespace internal {
  type Solve (line 139) | typedef Solve<DecType,RhsType> SrcXprType;
  function run (line 140) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  type Solve (line 155) | typedef Solve<Transpose<const DecType>,RhsType> SrcXprType;
  function run (line 156) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  function run (line 173) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: include/eigen3/Eigen/src/Core/SolveTriangular.h
  function namespace (line 13) | namespace Eigen {
  function run (line 121) | static void run(const Lhs& lhs, Rhs& rhs)
  function run (line 141) | static void run(const Lhs& lhs, Rhs& rhs)
  type typename (line 174) | typedef typename internal::conditional<copy,
  function namespace (line 194) | namespace internal {
  type ReturnByValue (line 207) | typedef ReturnByValue<triangular_solve_retval> Base;

FILE: include/eigen3/Eigen/src/Core/SolverBase.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/StableNorm.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Stride.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Swap.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/Transpose.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 90) | namespace internal {
  type typename (line 128) | typedef typename internal::conditional<
  function EIGEN_DEVICE_FUNC (line 134) | EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue* data() { return der...
  function EIGEN_DEVICE_FUNC (line 135) | EIGEN_DEVICE_FUNC inline const Scalar* data() const { return derived().n...
  function EIGEN_DEVICE_FUNC (line 138) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 144) | EIGEN_DEVICE_FUNC
  function namespace (line 219) | namespace internal {
  type typename (line 239) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 240) | typedef typename internal::packet_traits<typename
  function namespace (line 324) | namespace internal {
  function run (line 343) | static bool run(const Scalar* dest, const OtherDerived& src)
  function run (line 372) | static void run(const Derived& dst, const OtherDerived& other)

FILE: include/eigen3/Eigen/src/Core/Transpositions.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 164) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 165) | typedef typename IndicesType::Scalar StorageIndex;
  function m_indices (line 177) | inline Transpositions(const Transpositions& other) : m_indices(other.ind...
  function m_indices (line 182) | inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indi...
  function m_indices (line 205) | inline Transpositions(Index size) : m_indices(size)
  function namespace (line 219) | namespace internal {
  type typename (line 238) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 239) | typedef typename IndicesType::Scalar StorageIndex;
  function explicit (line 241) | explicit inline Map(const StorageIndex* indicesPtr)
  function namespace (line 278) | namespace internal {
  type typename (line 295) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 296) | typedef typename IndicesType::Scalar StorageIndex;
  function explicit (line 298) | explicit inline TranspositionsWrapper(IndicesType& indices)
  function namespace (line 359) | namespace internal {
  type TranspositionsDerived (line 371) | typedef TranspositionsDerived TranspositionType;
  type typename (line 372) | typedef typename TranspositionType::IndicesType IndicesType;

FILE: include/eigen3/Eigen/src/Core/TriangularMatrix.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 192) | typedef typename internal::traits<TriangularView>::Scalar Scalar;
  type _MatrixType (line 193) | typedef _MatrixType MatrixType;
  type typename (line 197) | typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRe...
  type typename (line 199) | typedef typename internal::remove_all<typename
  type typename (line 204) | typedef typename internal::traits<TriangularView>::MatrixTypeNestedClean...
  function m_matrix (line 217) | inline TriangularView(MatrixType& matrix) : m_matrix(matrix)
  function EIGEN_DEVICE_FUNC (line 236) | EIGEN_DEVICE_FUNC
  type TriangularView (line 239) | typedef TriangularView<const MatrixConjugateReturnType,Mode> ConjugateRe...
  function EIGEN_DEVICE_FUNC (line 241) | EIGEN_DEVICE_FUNC
  type TriangularBase (line 339) | typedef TriangularBase<TriangularViewType> Base;
  type typename (line 340) | typedef typename internal::traits<TriangularViewType>::Scalar Scalar;
  type _MatrixType (line 342) | typedef _MatrixType MatrixType;
  type typename (line 343) | typedef typename MatrixType::PlainObject DenseMatrixType;
  type DenseMatrixType (line 344) | typedef DenseMatrixType PlainObject;
  type typename (line 350) | typedef typename internal::traits<TriangularViewType>::StorageKind Stora...
  function EIGEN_DEVICE_FUNC (line 389) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 392) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 396) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 399) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 405) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 415) | EIGEN_DEVICE_FUNC
  function solveInPlace (line 510) | void solveInPlace(const MatrixBase<OtherDerived>& other) const
  function swap (line 519) | void swap(TriangularBase<OtherDerived> const & other)
  function namespace (line 699) | namespace internal {
  type evaluator (line 717) | typedef evaluator<typename
  function Base (line 718) | unary_evaluator(const XprType &xpr) : Base(xpr.nestedExpression()) {}
  type Triangular2Triangular (line 722) | struct Triangular2Triangular    {}
  type Triangular2Dense (line 723) | struct Triangular2Dense         {}
  type Dense2Triangular (line 724) | struct Dense2Triangular         {}
  type typename (line 740) | typedef typename Base::DstXprType DstXprType;
  type typename (line 741) | typedef typename Base::SrcXprType SrcXprType;
  type typename (line 748) | typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
  type typename (line 749) | typedef typename Base::Scalar Scalar;
  type typename (line 750) | typedef typename Base::AssignmentTraits AssignmentTraits;
  function EIGEN_DEVICE_FUNC (line 753) | EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &d...
  function EIGEN_DEVICE_FUNC (line 758) | EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
  function EIGEN_DEVICE_FUNC (line 767) | EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
  function EIGEN_DEVICE_FUNC (line 774) | EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index row, Index col)
  type evaluator (line 786) | typedef evaluator<DstXprType> DstEvaluatorType;
  type evaluator (line 787) | typedef evaluator<SrcXprType> SrcEvaluatorType;
  type triangular_dense_assignment_kernel (line 797) | typedef triangular_dense_assignment_kernel< Mode
  function Kernel (line 799) | Kernel kernel(dstEvaluator, srcEvaluator, func, dst.const_cast_derived());
  type AssignmentKind (line 818) | struct AssignmentKind
  type Triangular2Dense (line 818) | typedef Triangular2Dense      Kind;
  type AssignmentKind (line 819) | struct AssignmentKind
  type Dense2Triangular (line 819) | typedef Dense2Triangular      Kind;
  type typename (line 857) | typedef typename DstEvaluatorType::XprType DstXprType;
  type typename (line 864) | typedef typename Kernel::Scalar Scalar;
  function namespace (line 939) | namespace internal {
  function run (line 962) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  function run (line 973) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: include/eigen3/Eigen/src/Core/VectorBlock.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/VectorwiseOp.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 97) | namespace internal {
  type typename (line 161) | typedef typename ExpressionType::RealScalar RealScalar;
  type Eigen (line 162) | typedef Eigen::Index Index;
  type typename (line 163) | typedef typename internal::ref_selector<ExpressionType>::non_const_type ...
  type typename (line 164) | typedef typename internal::remove_all<ExpressionTypeNested>::type Expres...
  type PartialReduxExpr (line 169) | typedef PartialReduxExpr<ExpressionType,
  type PartialReduxExpr (line 177) | typedef PartialReduxExpr<ExpressionType,
  function EIGEN_DEVICE_FUNC (line 195) | EIGEN_DEVICE_FUNC
  type Replicate (line 208) | typedef Replicate<OtherDerived,
  type Replicate (line 231) | typedef Replicate<OtherDerived,
  function m_matrix (line 255) | inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
  function EIGEN_DEVICE_FUNC (line 258) | EIGEN_DEVICE_FUNC

FILE: include/eigen3/Eigen/src/Core/Visitor.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 66) | typedef typename XprType::Scalar Scalar;
  type typename (line 67) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function EIGEN_DEVICE_FUNC (line 78) | EIGEN_DEVICE_FUNC CoeffReturnType coeff(Index row, Index col) const
  type typename (line 109) | typedef typename internal::visitor_evaluator<Derived> ThisEvaluator;
  function namespace (line 119) | namespace internal {
  function typename (line 206) | typename internal::traits<Derived>::Scalar
  function typename (line 224) | typename internal::traits<Derived>::Scalar
  function typename (line 243) | typename internal::traits<Derived>::Scalar
  function typename (line 261) | typename internal::traits<Derived>::Scalar

FILE: include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
  function namespace (line 13) | namespace Eigen {
  function Packet4cf (line 124) | Packet4cf preverse(const Packet4cf& a) {
  type conj_helper (line 174) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 176) | EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf&...
  function EIGEN_STRONG_INLINE (line 179) | EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& ...
  type conj_helper (line 185) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 187) | EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf&...
  function EIGEN_STRONG_INLINE (line 190) | EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& ...
  type conj_helper (line 196) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 198) | EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf&...
  function EIGEN_STRONG_INLINE (line 201) | EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& ...
  type Packet2cd (line 224) | struct Packet2cd
  type packet_traits (line 231) | struct packet_traits
  function default_packet_traits (line 231) | double> >  : default_packet_traits
  function Packet2cd (line 254) | struct unpacket_traits<Packet2cd> { typedef std::complex<double> type; e...
  function Packet2cd (line 258) | Packet2cd pnegate(const Packet2cd& a) { return Packet2cd(pnegate(a.v)); }
  function Packet2cd (line 259) | Packet2cd pconj(const Packet2cd& a)
  function Packet2cd (line 319) | Packet2cd preverse(const Packet2cd& a) {
  type conj_helper (line 354) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 356) | EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd&...
  function EIGEN_STRONG_INLINE (line 359) | EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& ...
  type conj_helper (line 365) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 367) | EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd&...
  function EIGEN_STRONG_INLINE (line 370) | EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& ...
  type conj_helper (line 376) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 378) | EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd&...
  function EIGEN_STRONG_INLINE (line 381) | EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& ...
  function Packet4cf (line 427) | Packet4cf pinsertfirst(const Packet4cf& a, std::complex<float> b)
  function Packet2cd (line 432) | Packet2cd pinsertfirst(const Packet2cd& a, std::complex<double> b)
  function Packet4cf (line 437) | Packet4cf pinsertlast(const Packet4cf& a, std::complex<float> b)
  function Packet2cd (line 442) | Packet2cd pinsertlast(const Packet2cd& a, std::complex<double> b)

FILE: include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
  function namespace (line 17) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
  function namespace (line 13) | namespace Eigen {
  function Packet8f (line 136) | Packet8f pnegate(const Packet8f& a)
  function Packet4d (line 140) | Packet4d pnegate(const Packet4d& a)
  function Packet8f (line 145) | Packet8f pconj(const Packet8f& a) { return a; }
  function Packet4d (line 146) | Packet4d pconj(const Packet4d& a) { return a; }
  function Packet8i (line 147) | Packet8i pconj(const Packet8i& a) { return a; }
  function Index (line 284) | Index stride)

FILE: include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
  function namespace (line 13) | namespace Eigen {
  function Packet16f (line 174) | Packet16f pnegate(const Packet16f& a) {
  function Packet8d (line 178) | Packet8d pnegate(const Packet8d& a) {
  function Packet16f (line 183) | Packet16f pconj(const Packet16f& a) {
  function Packet8d (line 187) | Packet8d pconj(const Packet8d& a) {
  function Packet16i (line 191) | Packet16i pconj(const Packet16i& a) {
  function Packet16f (line 219) | Packet16f pmadd(const Packet16f& a, const Packet16f& b,
  function Packet8d (line 224) | Packet8d pmadd(const Packet8d& a, const Packet8d& b,
  function Packet16f (line 638) | Packet16f preverse(const Packet16f& a)
  function Packet8d (line 643) | Packet8d preverse(const Packet8d& a)
  function Packet16f (line 648) | Packet16f pabs(const Packet16f& a)
  function Packet8d (line 654) | Packet8d pabs(const Packet8d& a) {
  function Packet16f (line 1298) | Packet16f pblend(const Selector<16>& /*ifPacket*/,
  function Packet8d (line 1305) | Packet8d pblend(const Selector<8>& /*ifPacket*/,

FILE: include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
  function namespace (line 14) | namespace Eigen {
  function Packet2cf (line 100) | Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(a.v)); }
  function Packet2cf (line 101) | Packet2cf pconj(const Packet2cf& a) { return Packet2cf(pxor<Packet4f>(a....
  function Packet2cf (line 137) | Packet2cf preverse(const Packet2cf& a)
  type conj_helper (line 194) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 196) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 199) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 205) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 207) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 210) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 216) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 218) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 221) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  function Packet2cf (line 250) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...
  type Packet1cd (line 259) | struct Packet1cd
  type packet_traits (line 266) | struct packet_traits
  function default_packet_traits (line 266) | double> >  : default_packet_traits
  function Packet1cd (line 289) | struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; e...
  function Packet1cd (line 316) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet1cd (line 317) | Packet1cd pconj(const Packet1cd& a) { return Packet1cd(pxor(a.v, reinter...
  function Packet1cd (line 354) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 373) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 376) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 382) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 384) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 387) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 393) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 395) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 398) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  function EIGEN_STRONG_INLINE (line 414) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)

FILE: include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
  function namespace (line 19) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
  function namespace (line 13) | namespace Eigen {
  function Packet4f (line 355) | Packet4f pnegate(const Packet4f& a) { return p4f_ZERO - a; }
  function Packet4i (line 356) | Packet4i pnegate(const Packet4i& a) { return p4i_ZERO - a; }
  function Packet4f (line 358) | Packet4f pconj(const Packet4f& a) { return a; }
  function Packet4i (line 359) | Packet4i pconj(const Packet4i& a) { return a; }
  type __vector (line 774) | typedef __vector double              Packet2d;
  type Packet2ul (line 775) | typedef __vector unsigned long long  Packet2ul;
  type Packet2l (line 776) | typedef __vector long long           Packet2l;
  type Packet2ul (line 778) | typedef Packet2ul                    Packet2bl;
  type __vector (line 780) | typedef __vector __bool
  function default_packet_traits (line 807) | struct packet_traits<double> : default_packet_traits
  function Packet2d (line 838) | struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, al...

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
  function namespace (line 15) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
  function namespace (line 46) | namespace Eigen {
  function namespace (line 495) | namespace std {
  function namespace (line 534) | namespace Eigen {
  function namespace (line 626) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
  function namespace (line 14) | namespace Eigen {
  function ptranspose (line 107) | void
  type Packet16h (line 338) | typedef struct {
  function Packet16h (line 343) | struct is_arithmetic<Packet16h> { enum { value = true }; }
  function default_packet_traits (line 346) | struct packet_traits<half> : default_packet_traits {
  function Packet16h (line 375) | struct unpacket_traits<Packet16h> { typedef Eigen::half type; enum {size...
  function Packet16h (line 407) | Packet16h
  function EIGEN_STRONG_INLINE (line 418) | EIGEN_STRONG_INLINE Packet16f half2float(const Packet16h& a) {
  function EIGEN_STRONG_INLINE (line 446) | EIGEN_STRONG_INLINE Packet16h float2half(const Packet16f& a) {
  type Packet8h (line 706) | typedef struct {
  function Packet8h (line 711) | struct is_arithmetic<Packet8h> { enum { value = true }; }
  function default_packet_traits (line 714) | struct packet_traits<Eigen::half> : default_packet_traits {
  function Packet8h (line 743) | struct unpacket_traits<Packet8h> { typedef Eigen::half type; enum {size=...
  function EIGEN_STRONG_INLINE (line 784) | EIGEN_STRONG_INLINE Packet8f half2float(const Packet8h& a) {
  function EIGEN_STRONG_INLINE (line 803) | EIGEN_STRONG_INLINE Packet8h float2half(const Packet8f& a) {
  function Packet8h (line 826) | Packet8h pconj(const Packet8h& a) { return a; }
  type Packet4h (line 965) | typedef struct {
  function Packet4h (line 970) | struct is_arithmetic<Packet4h> { enum { value = true }; }
  function default_packet_traits (line 973) | struct packet_traits<Eigen::half> : default_packet_traits {
  function Packet4h (line 1002) | struct unpacket_traits<Packet4h> { typedef Eigen::half type; enum {size=...
  function Packet4h (line 1014) | Packet4h pconj(const Packet4h& a) { return a; }

FILE: include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
  function namespace (line 14) | namespace Eigen {
  function Packet2cf (line 154) | Packet2cf preverse(const Packet2cf& a)
  type conj_helper (line 235) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 237) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 240) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 246) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 248) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 251) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 257) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 259) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 262) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type Packet1cd (line 301) | struct Packet1cd
  type packet_traits (line 308) | struct packet_traits
  function default_packet_traits (line 308) | double> >  : default_packet_traits
  function Packet1cd (line 331) | struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; e...
  function Packet1cd (line 341) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate<Packet2...
  function Packet1cd (line 342) | Packet1cd pconj(const Packet1cd& a) { return Packet1cd(vreinterpretq_f64...
  function Packet1cd (line 410) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 430) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 433) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 439) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 441) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 444) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 450) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 452) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 455) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  function EIGEN_STRONG_INLINE (line 473) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)

FILE: include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
  function namespace (line 15) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
  function namespace (line 15) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
  function namespace (line 13) | namespace Eigen {
  function Packet2cf (line 148) | Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(...
  type conj_helper (line 178) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 180) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 183) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 196) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 198) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 201) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 214) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 216) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 219) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  function EIGEN_STRONG_INLINE (line 242) | EIGEN_STRONG_INLINE Packet2cf pcplxflip/* <Packet2cf> */(const Packet2cf...
  type Packet1cd (line 249) | struct Packet1cd
  type packet_traits (line 259) | struct packet_traits
  function default_packet_traits (line 259) | double> >  : default_packet_traits
  function Packet1cd (line 283) | struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; e...
  function Packet1cd (line 287) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet1cd (line 288) | Packet1cd pconj(const Packet1cd& a)
  function Packet1cd (line 336) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 365) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 368) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 381) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 383) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 386) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 399) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 401) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 404) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  function EIGEN_STRONG_INLINE (line 427) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/* <Packet1cd> */(const Packet1cd...
  function Packet2cf (line 442) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...
  function Packet2cf (line 447) | Packet2cf pinsertfirst(const Packet2cf& a, std::complex<float> b)
  function Packet1cd (line 452) | Packet1cd pinsertfirst(const Packet1cd&, std::complex<double> b)
  function Packet2cf (line 457) | Packet2cf pinsertlast(const Packet2cf& a, std::complex<float> b)
  function Packet1cd (line 462) | Packet1cd pinsertlast(const Packet1cd&, std::complex<double> b)

FILE: include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
  function namespace (line 18) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
  function namespace (line 13) | namespace Eigen {
  function Packet4f (line 441) | Packet4f preverse(const Packet4f& a)
  function Packet2d (line 443) | Packet2d preverse(const Packet2d& a)
  function Packet4i (line 445) | Packet4i preverse(const Packet4i& a)
  function Packet4f (line 448) | Packet4f pabs(const Packet4f& a)
  function Packet2d (line 453) | Packet2d pabs(const Packet2d& a)
  function Packet4i (line 458) | Packet4i pabs(const Packet4i& a)
  function EIGEN_STRONG_INLINE (line 500) | EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
  function Packet4i (line 802) | Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket,...
  function Packet4f (line 812) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,...
  function Packet2d (line 822) | Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket,...
  function Packet4f (line 833) | Packet4f pinsertfirst(const Packet4f& a, float b)
  function Packet2d (line 842) | Packet2d pinsertfirst(const Packet2d& a, double b)
  function Packet4f (line 851) | Packet4f pinsertlast(const Packet4f& a, float b)
  function Packet2d (line 861) | Packet2d pinsertlast(const Packet2d& a, double b)
  function pmadd (line 873) | float pmadd(const float& a, const float& b, const float& c) {
  function pmadd (line 876) | double pmadd(const double& a, const double& b, const double& c) {
  function __m128 (line 887) | static inline __m128  _mm_castpd_ps   (__m128d x) { return reinterpret_c...
  function __m128i (line 888) | static inline __m128i _mm_castpd_si128(__m128d x) { return reinterpret_c...
  function __m128d (line 889) | static inline __m128d _mm_castps_pd   (__m128  x) { return reinterpret_c...
  function __m128i (line 890) | static inline __m128i _mm_castps_si128(__m128  x) { return reinterpret_c...
  function __m128 (line 891) | static inline __m128  _mm_castsi128_ps(__m128i x) { return reinterpret_c...
  function __m128d (line 892) | static inline __m128d _mm_castsi128_pd(__m128i x) { return reinterpret_c...

FILE: include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
  function namespace (line 14) | namespace Eigen {
  function Packet1cd (line 138) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet2cf (line 139) | Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(Packet4...
  function Packet1cd (line 140) | Packet1cd pconj(const Packet1cd& a) { return Packet1cd((Packet2d)vec_xor...
  function Packet2cf (line 141) | Packet2cf pconj(const Packet2cf& a)
  function Packet1cd (line 204) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function Packet2cf (line 205) | Packet2cf preverse(const Packet2cf& a)
  type conj_helper (line 273) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 275) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 278) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 284) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 286) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 289) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 295) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 297) | EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd&...
  function EIGEN_STRONG_INLINE (line 300) | EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& ...
  type conj_helper (line 306) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 308) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 311) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 317) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 319) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 322) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  type conj_helper (line 328) | struct conj_helper
  function EIGEN_STRONG_INLINE (line 330) | EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf&...
  function EIGEN_STRONG_INLINE (line 333) | EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& ...
  function EIGEN_STRONG_INLINE (line 359) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
  function EIGEN_STRONG_INLINE (line 364) | EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
  function Packet2cf (line 386) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...

FILE: include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
  function namespace (line 19) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function Packet4i (line 538) | Packet4i pnegate(const Packet4i& a) { return (-a); }
  function Packet4f (line 539) | Packet4f pnegate(const Packet4f& a)
  function Packet2d (line 546) | Packet2d pnegate(const Packet2d& a) { return (-a); }
  function Packet4i (line 548) | Packet4i pconj(const Packet4i& a) { return a; }
  function Packet4f (line 549) | Packet4f pconj(const Packet4f& a) { return a; }
  function Packet2d (line 550) | Packet2d pconj(const Packet2d& a) { return a; }
  function Packet4i (line 552) | Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) ...
  function Packet4f (line 553) | Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c)
  function Packet2d (line 560) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) ...
  function Packet4i (line 688) | Packet4i preverse(const Packet4i& a)
  function Packet2d (line 693) | Packet2d preverse(const Packet2d& a)
  function Packet4f (line 698) | Packet4f preverse(const Packet4f& a)
  function Packet4i (line 918) | Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket,...
  function Packet4f (line 924) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,...
  function Packet2d (line 935) | Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket,...

FILE: include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
  function namespace (line 13) | namespace Eigen {
  function assignCoeff (line 70) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a -= b; }
  function assignPacket (line 73) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 92) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a *= b; }
  function assignPacket (line 95) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 113) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a /= b; }
  function assignPacket (line 116) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 145) | void assignCoeff(Scalar& a, const Scalar& b) const

FILE: include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 116) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_conj_pr...
  function EIGEN_STRONG_INLINE (line 119) | EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, co...
  function Packet (line 123) | const Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 142) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_min_op>...
  function EIGEN_STRONG_INLINE (line 144) | EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, co...
  function Packet (line 146) | const Packet packetOp(const Packet& a, const Packet& b) const
  function result_type (line 149) | const result_type predux(const Packet& a) const
  type typename (line 168) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_max_op>...
  function EIGEN_STRONG_INLINE (line 170) | EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, co...
  function Packet (line 172) | const Packet packetOp(const Packet& a, const Packet& b) const
  function result_type (line 175) | const result_type predux(const Packet& a) const
  function const (line 211) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a=...
  function const (line 218) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<b;}
  function const (line 225) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<...
  function const (line 232) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>b;}
  function const (line 239) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>...
  function const (line 246) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return !(...
  function const (line 253) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a!...
  function Scalar (line 267) | const Scalar operator() (const Scalar &x, const Scalar &y) const
  type typename (line 294) | typedef typename ScalarBinaryOpTraits<Scalar,Exponent,scalar_pow_op>::Re...
  type Scalar (line 299) | typedef Scalar LhsScalar;
  type Exponent (line 300) | typedef Exponent RhsScalar;
  function EIGEN_DEVICE_FUNC (line 304) | EIGEN_DEVICE_FUNC
  type typename (line 324) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_differe...
  function result_type (line 332) | const result_type operator() (const LhsScalar& a, const RhsScalar& b) co...
  function Packet (line 334) | const Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 353) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_quotien...
  function result_type (line 361) | const result_type operator() (const LhsScalar& a, const RhsScalar& b) co...
  function Packet (line 363) | const Packet packetOp(const Packet& a, const Packet& b) const
  type scalar_boolean_and_op (line 382) | struct scalar_boolean_and_op {
  function scalar_boolean_and_op (line 386) | struct functor_traits<scalar_boolean_and_op> {
  type scalar_boolean_or_op (line 398) | struct scalar_boolean_or_op {
  function scalar_boolean_or_op (line 402) | struct functor_traits<scalar_boolean_or_op> {
  type scalar_boolean_xor_op (line 414) | struct scalar_boolean_xor_op {
  function scalar_boolean_xor_op (line 418) | struct functor_traits<scalar_boolean_xor_op> {
  type typename (line 435) | typedef typename BinaryOp::first_argument_type  first_argument_type;
  type typename (line 436) | typedef typename BinaryOp::second_argument_type second_argument_type;
  type typename (line 437) | typedef typename BinaryOp::result_type          result_type;
  function m_value (line 439) | bind1st_op(const first_argument_type &val) : m_value(val) {}
  function result_type (line 441) | const result_type operator() (const second_argument_type& b) const { ret...
  function Packet (line 444) | const Packet packetOp(const Packet& b) const
  type typename (line 454) | typedef typename BinaryOp::first_argument_type  first_argument_type;
  type typename (line 455) | typedef typename BinaryOp::second_argument_type second_argument_type;
  type typename (line 456) | typedef typename BinaryOp::result_type          result_type;
  function m_value (line 458) | bind2nd_op(const second_argument_type &val) : m_value(val) {}
  function result_type (line 460) | const result_type operator() (const first_argument_type& a) const { retu...
  function Packet (line 463) | const Packet packetOp(const Packet& a) const

FILE: include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
  function namespace (line 13) | namespace Eigen {
  function Scalar (line 136) | const Scalar operator() (IndexType i) const { return impl(i); }
  function EIGEN_STRONG_INLINE (line 139) | EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const { return im...

FILE: include/eigen3/Eigen/src/Core/functors/StlFunctors.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
  function namespace (line 13) | namespace Eigen {
  function result_type (line 171) | result_type operator() (const Scalar& a) const { return numext::real(a); }
  function result_type (line 187) | result_type operator() (const Scalar& a) const { return numext::imag(a); }
  function Scalar (line 233) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 235) | inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
  function Scalar (line 273) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 275) | inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
  function Scalar (line 304) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 306) | inline Packet packetOp(const Packet& a) const { return internal::plog1p(...
  function Scalar (line 324) | inline const Scalar operator() (const Scalar& a) const { EIGEN_USING_STD...
  function Packet (line 326) | inline Packet packetOp(const Packet& a) const { return internal::plog10(...
  function Scalar (line 338) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 340) | inline Packet packetOp(const Packet& a) const { return internal::psqrt(a...
  function Scalar (line 365) | inline const Scalar operator() (const Scalar& a) const { return Scalar(1...
  function Packet (line 367) | inline Packet packetOp(const Packet& a) const { return internal::prsqrt(...
  function Scalar (line 384) | inline Scalar operator() (const Scalar& a) const { return numext::cos(a); }
  function Packet (line 386) | inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
  function Scalar (line 403) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 405) | inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
  function Scalar (line 423) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 425) | inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
  function Scalar (line 442) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 444) | inline Packet packetOp(const Packet& a) const { return internal::pacos(a...
  function Scalar (line 461) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 463) | inline Packet packetOp(const Packet& a) const { return internal::pasin(a...
  function Scalar (line 481) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 483) | inline Packet packetOp(const Packet& a) const { return internal::patan(a...
  function Scalar (line 501) | inline const Scalar operator()(const Scalar& a) const { return numext::t...
  function Packet (line 503) | inline Packet packetOp(const Packet& x) const { return ptanh(x); }
  function Scalar (line 537) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 539) | inline Packet packetOp(const Packet& a) const { return internal::psinh(a...
  function Scalar (line 556) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 558) | inline Packet packetOp(const Packet& a) const { return internal::pcosh(a...
  function Scalar (line 576) | inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
  function Packet (line 578) | inline const Packet packetOp(const Packet& a) const
  function Scalar (line 592) | inline Scalar operator() (const Scalar& a) const { return a*a; }
  function Packet (line 594) | inline const Packet packetOp(const Packet& a) const
  function Scalar (line 608) | inline Scalar operator() (const Scalar& a) const { return a*a*a; }
  function Packet (line 610) | inline const Packet packetOp(const Packet& a) const
  function EIGEN_STRONG_INLINE (line 623) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 625) | inline Packet packetOp(const Packet& a) const { return internal::pround(...
  function EIGEN_STRONG_INLINE (line 642) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 644) | inline Packet packetOp(const Packet& a) const { return internal::pfloor(...
  function EIGEN_STRONG_INLINE (line 661) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 663) | inline Packet packetOp(const Packet& a) const { return internal::pceil(a...
  function result_type (line 681) | result_type operator() (const Scalar& a) const { return (numext::isnan)(...
  function result_type (line 699) | result_type operator() (const Scalar& a) const { return (numext::isinf)(...
  function result_type (line 717) | result_type operator() (const Scalar& a) const { return (numext::isfinit...
  function const (line 735) | bool operator() (const bool& a) const { return !a; }
  function EIGEN_DEVICE_FUNC (line 753) | EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
  function EIGEN_DEVICE_FUNC (line 764) | EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const

FILE: include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
  function namespace (line 14) | namespace Eigen {
  function EIGEN_ALWAYS_INLINE (line 317) | EIGEN_ALWAYS_INLINE static void run(const CJ& cj, A& a, B& b, C& c, T& /...
  function gebp_madd (line 331) | void gebp_madd(const CJ& cj, A& a, B& b, C& c, T& t)
  type _RhsScalar (line 355) | typedef _RhsScalar RhsScalar;
  type typename (line 356) | typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ...
  type typename (line 386) | typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
  type typename (line 387) | typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
  type typename (line 388) | typedef typename packet_traits<ResScalar>::type  _ResPacket;
  type typename (line 390) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 391) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 392) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type ResPacket (line 394) | typedef ResPacket AccPacket;
  function EIGEN_STRONG_INLINE (line 401) | EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0,...
  function loadRhs (line 412) | void loadRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 417) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest...
  function loadLhs (line 423) | void loadLhs(const LhsScalar* a, LhsPacketType& dest) const
  function loadLhsUnaligned (line 429) | void loadLhsUnaligned(const LhsScalar* a, LhsPacketType& dest) const
  function madd (line 435) | void madd(const LhsPacketType& a, const RhsPacketType& b, AccPacketType&...
  function EIGEN_STRONG_INLINE (line 450) | EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha,...
  function acc (line 456) | void acc(const ResPacketHalf& c, const ResPacketHalf& alpha, ResPacketHa...
  type RealScalar (line 468) | typedef RealScalar RhsScalar;
  type typename (line 469) | typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ...
  type typename (line 492) | typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
  type typename (line 493) | typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
  type typename (line 494) | typedef typename packet_traits<ResScalar>::type  _ResPacket;
  type typename (line 496) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 497) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 498) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type ResPacket (line 500) | typedef ResPacket AccPacket;
  function EIGEN_STRONG_INLINE (line 507) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
  function EIGEN_STRONG_INLINE (line 512) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest...
  function EIGEN_STRONG_INLINE (line 517) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function EIGEN_STRONG_INLINE (line 522) | EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket&...
  function EIGEN_STRONG_INLINE (line 527) | EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0,...
  function EIGEN_STRONG_INLINE (line 537) | EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, Ac...
  function EIGEN_STRONG_INLINE (line 542) | EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& ...
  function EIGEN_STRONG_INLINE (line 552) | EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& ...
  function EIGEN_STRONG_INLINE (line 557) | EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha,...
  type std (line 603) | typedef std::complex<RealScalar>  LhsScalar;
  type std (line 604) | typedef std::complex<RealScalar>  RhsScalar;
  type std (line 605) | typedef std::complex<RealScalar>  ResScalar;
  type typename (line 625) | typedef typename packet_traits<RealScalar>::type RealPacket;
  type typename (line 626) | typedef typename packet_traits<Scalar>::type     ScalarPacket;
  type DoublePacket (line 627) | typedef DoublePacket<RealPacket> DoublePacketType;
  type typename (line 629) | typedef typename conditional<Vectorizable,RealPacket,  Scalar>::type Lhs...
  type typename (line 630) | typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type...
  type typename (line 631) | typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type Res...
  type typename (line 632) | typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type...
  function EIGEN_STRONG_INLINE (line 643) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ResPacket& dest) const
  function EIGEN_STRONG_INLINE (line 649) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, DoublePacketType& d...
  function EIGEN_STRONG_INLINE (line 655) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, ResPacket& dest...
  function EIGEN_STRONG_INLINE (line 659) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, DoublePacketTyp...
  function EIGEN_STRONG_INLINE (line 665) | EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0,...
  function EIGEN_STRONG_INLINE (line 675) | EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, DoublePacketTy...
  function EIGEN_STRONG_INLINE (line 683) | EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsScalar& b0,...
  function EIGEN_STRONG_INLINE (line 691) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function EIGEN_STRONG_INLINE (line 696) | EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket&...
  function EIGEN_STRONG_INLINE (line 701) | EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, Do...
  function EIGEN_STRONG_INLINE (line 707) | EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, Re...
  function EIGEN_STRONG_INLINE (line 712) | EIGEN_STRONG_INLINE void acc(const Scalar& c, const Scalar& alpha, Scala...
  function EIGEN_STRONG_INLINE (line 714) | EIGEN_STRONG_INLINE void acc(const DoublePacketType& c, const ResPacket&...
  type RealScalar (line 751) | typedef RealScalar  LhsScalar;
  type Scalar (line 752) | typedef Scalar      RhsScalar;
  type Scalar (line 753) | typedef Scalar      ResScalar;
  type typename (line 773) | typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
  type typename (line 774) | typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
  type typename (line 775) | typedef typename packet_traits<ResScalar>::type  _ResPacket;
  type typename (line 777) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 778) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 779) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type ResPacket (line 781) | typedef ResPacket AccPacket;
  function EIGEN_STRONG_INLINE (line 788) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
  function broadcastRhs (line 793) | void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1, RhsP...
  function EIGEN_STRONG_INLINE (line 805) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function EIGEN_STRONG_INLINE (line 810) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest...
  function EIGEN_STRONG_INLINE (line 816) | EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket&...
  function EIGEN_STRONG_INLINE (line 821) | EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, Ac...
  function EIGEN_STRONG_INLINE (line 826) | EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& ...
  function EIGEN_STRONG_INLINE (line 837) | EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& ...
  function EIGEN_STRONG_INLINE (line 842) | EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha,...
  type gebp_traits (line 861) | typedef gebp_traits<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> Traits;
  type typename (line 862) | typedef typename Traits::ResScalar ResScalar;
  type typename (line 863) | typedef typename Traits::LhsPacket LhsPacket;
  type typename (line 864) | typedef typename Traits::RhsPacket RhsPacket;
  type typename (line 865) | typedef typename Traits::ResPacket ResPacket;
  type typename (line 866) | typedef typename Traits::AccPacket AccPacket;
  type gebp_traits (line 868) | typedef gebp_traits<RhsScalar,LhsScalar,ConjugateRhs,ConjugateLhs> Swapp...
  type typename (line 869) | typedef typename SwappedTraits::ResScalar SResScalar;
  type typename (line 870) | typedef typename SwappedTraits::LhsPacket SLhsPacket;
  type typename (line 871) | typedef typename SwappedTraits::RhsPacket SRhsPacket;
  type typename (line 872) | typedef typename SwappedTraits::ResPacket SResPacket;
  type typename (line 873) | typedef typename SwappedTraits::AccPacket SAccPacket;
  type typename (line 875) | typedef typename DataMapper::LinearMapper LinearMapper;
  type typename (line 1529) | typedef typename unpacket_traits<SResPacket>::half SResPacketHalf;
  type typename (line 1584) | typedef typename conditional<SwappedTraits::LhsProgress>=8,typename
  type typename (line 1585) | typedef typename conditional<SwappedTraits::LhsProgress>=8,typename
  type typename (line 1586) | typedef typename conditional<SwappedTraits::LhsProgress>=8,typename
  type typename (line 1587) | typedef typename conditional<SwappedTraits::LhsProgress>=8,typename
  type typename (line 1894) | typedef typename DataMapper::LinearMapper LinearMapper;
  type typename (line 2018) | typedef typename DataMapper::LinearMapper LinearMapper;
  function l1CacheSize (line 2111) | inline std::ptrdiff_t l1CacheSize()
  function l2CacheSize (line 2120) | inline std::ptrdiff_t l2CacheSize()
  function l3CacheSize (line 2130) | inline std::ptrdiff_t l3CacheSize()
  function setCpuCacheSizes (line 2142) | inline void setCpuCacheSizes(std::ptrdiff_t l1, std::ptrdiff_t l2, std::...

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 58) | typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ...
  type const_blas_data_mapper (line 68) | typedef const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> RhsMap...
  type blas_data_mapper (line 69) | typedef blas_data_mapper<typename
  function initParallelSession (line 215) | void initParallelSession(Index num_threads) const
  type typename (line 233) | typedef typename Gemm::Traits Traits;
  type _LhsScalar (line 249) | typedef _LhsScalar LhsScalar;
  type _RhsScalar (line 250) | typedef _RhsScalar RhsScalar;
  function LhsScalar (line 270) | inline LhsScalar* blockA() { return m_blockA; }
  function RhsScalar (line 271) | inline RhsScalar* blockB() { return m_blockB; }
  type typename (line 285) | typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsS...
  type typename (line 286) | typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsS...
  type gebp_traits (line 287) | typedef gebp_traits<LhsScalar,RhsScalar> Traits;
  function initParallel (line 317) | void initParallel(Index, Index, Index, Index)
  function allocateA (line 320) | inline void allocateA() {}
  function allocateB (line 321) | inline void allocateB() {}
  function allocateAll (line 322) | inline void allocateAll() {}
  type typename (line 334) | typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsS...
  type typename (line 335) | typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsS...
  type gebp_traits (line 336) | typedef gebp_traits<LhsScalar,RhsScalar> Traits;
  function initParallel (line 363) | void initParallel(Index rows, Index cols, Index depth, Index num_threads)
  function allocateA (line 376) | void allocateA()
  function allocateB (line 382) | void allocateB()
  function allocateAll (line 388) | void allocateAll()
  function namespace (line 403) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
  function namespace (line 13) | namespace Eigen {
  type gebp_traits (line 139) | typedef gebp_traits<LhsScalar,RhsScalar,ConjLhs,ConjRhs> Traits;
  type typename (line 140) | typedef typename Traits::ResScalar ResScalar;
  type blas_data_mapper (line 147) | typedef blas_data_mapper<ResScalar, Index, ColMajor> ResMapper;
  type typename (line 206) | typedef typename internal::remove_all<typename
  type internal (line 207) | typedef internal::blas_traits<Lhs> LhsBlasTraits;
  type typename (line 208) | typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
  type typename (line 209) | typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
  type typename (line 212) | typedef typename internal::remove_all<typename
  type internal (line 213) | typedef internal::blas_traits<Rhs> RhsBlasTraits;
  type typename (line 214) | typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
  type typename (line 215) | typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
  type internal (line 253) | typedef internal::blas_traits<Lhs> LhsBlasTraits;
  type typename (line 254) | typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
  type typename (line 255) | typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
  type typename (line 258) | typedef typename internal::remove_all<typename
  type internal (line 259) | typedef internal::blas_traits<Rhs> RhsBlasTraits;
  type typename (line 260) | typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
  type typename (line 261) | typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
  type internal (line 281) | typedef internal::gemm_blocking_space<IsRowMajor ? RowMajor : ColMajor,t...

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
  function namespace (line 38) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 347) | typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
  type typename (line 348) | typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
  type typename (line 349) | typedef typename packet_traits<ResScalar>::type  _ResPacket;
  type typename (line 351) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 352) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 353) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type typename (line 387) | typedef typename LhsMapper::VectorMapper LhsScalars;

FILE: include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/Parallelizer.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
  function namespace (line 13) | namespace Eigen {
  type gebp_traits (line 332) | typedef gebp_traits<Scalar,Scalar> Traits;
  type const_blas_data_mapper (line 334) | typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
  type const_blas_data_mapper (line 335) | typedef const_blas_data_mapper<Scalar, Index, (LhsStorageOrder == RowMaj...
  type const_blas_data_mapper (line 336) | typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
  type blas_data_mapper (line 337) | typedef blas_data_mapper<typename
  type gebp_traits (line 425) | typedef gebp_traits<Scalar,Scalar> Traits;
  type const_blas_data_mapper (line 427) | typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
  type blas_data_mapper (line 428) | typedef blas_data_mapper<typename
  function namespace (line 466) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
  function namespace (line 13) | namespace Eigen {
  function namespace (line 160) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
  function namespace (line 19) | namespace Eigen {
  type internal (line 56) | typedef internal::blas_traits<OtherType> OtherBlasTraits;
  type typename (line 57) | typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
  type typename (line 58) | typedef typename internal::remove_all<ActualOtherType>::type _ActualOthe...
  type internal (line 88) | typedef internal::blas_traits<OtherType> OtherBlasTraits;
  type typename (line 89) | typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
  type typename (line 90) | typedef typename internal::remove_all<ActualOtherType>::type _ActualOthe...
  type internal (line 103) | typedef internal::gemm_blocking_space<IsRowMajor ? RowMajor : ColMajor,S...

FILE: include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 64) | typedef typename UBlasTraits::DirectLinearAccessType ActualUType;
  type typename (line 65) | typedef typename internal::remove_all<ActualUType>::type _ActualUType;
  type internal (line 68) | typedef internal::blas_traits<DerivedV> VBlasTraits;
  type typename (line 69) | typedef typename VBlasTraits::DirectLinearAccessType ActualVType;
  type typename (line 70) | typedef typename internal::remove_all<ActualVType>::type _ActualVType;
  type typename (line 82) | typedef typename internal::remove_all<typename
  type typename (line 83) | typedef typename internal::remove_all<typename

FILE: include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
  function namespace (line 13) | namespace Eigen {
  type const_blas_data_mapper (line 120) | typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
  type const_blas_data_mapper (line 121) | typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
  type blas_data_mapper (line 122) | typedef blas_data_mapper<typename
  type const_blas_data_mapper (line 277) | typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
  type const_blas_data_mapper (line 278) | typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
  type blas_data_mapper (line 279) | typedef blas_data_mapper<typename
  function namespace (line 397) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
  function namespace (line 13) | namespace Eigen {
  type Map (line 114) | typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterSt...
  function LhsMap (line 115) | const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
  function namespace (line 171) | namespace internal {
  function namespace (line 200) | namespace internal {
  function run (line 290) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...

FILE: include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
  type VectorX (line 96) | typedef VectorX##EIGPREFIX VectorRhs;
  type VectorX (line 185) | typedef VectorX##EIGPREFIX VectorRhs;

FILE: include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
  function namespace (line 13) | namespace Eigen {
  type const_blas_data_mapper (line 56) | typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> TriMapper;
  type blas_data_mapper (line 57) | typedef blas_data_mapper<Scalar, Index, ColMajor> OtherMapper;
  type gebp_traits (line 61) | typedef gebp_traits<Scalar,Scalar> Traits;
  type typename (line 205) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type blas_data_mapper (line 207) | typedef blas_data_mapper<Scalar, Index, ColMajor> LhsMapper;
  type const_blas_data_mapper (line 208) | typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> RhsMapper;
  type gebp_traits (line 212) | typedef gebp_traits<Scalar,Scalar> Traits;

FILE: include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
  function namespace (line 13) | namespace Eigen {
  type Map (line 38) | typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterSt...

FILE: include/eigen3/Eigen/src/Core/util/BlasUtil.h
  function namespace (line 16) | namespace Eigen {
  function EIGEN_STRONG_INLINE (line 81) | EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const...
  function EIGEN_STRONG_INLINE (line 84) | EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
  function EIGEN_STRONG_INLINE (line 91) | EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const...
  function EIGEN_STRONG_INLINE (line 94) | EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
  function EIGEN_STRONG_INLINE (line 101) | EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const...
  function EIGEN_STRONG_INLINE (line 104) | EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
  type std (line 110) | typedef std::complex<RealScalar> Scalar;
  function EIGEN_STRONG_INLINE (line 111) | EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const RealScalar& y, c...
  function EIGEN_STRONG_INLINE (line 113) | EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const RealScalar& y) const
  type std (line 119) | typedef std::complex<RealScalar> Scalar;
  function EIGEN_STRONG_INLINE (line 120) | EIGEN_STRONG_INLINE Scalar pmadd(const RealScalar& x, const Scalar& y, c...
  function EIGEN_STRONG_INLINE (line 122) | EIGEN_STRONG_INLINE Scalar pmul(const RealScalar& x, const Scalar& y) const
  function To (line 127) | To run(const From& x) { return To(x); }
  function typename (line 132) | typename NumTraits<Scalar>::Real run(const Scalar& x) { return numext::r...
  function m_data (line 139) | m_data(data) {}
  function Scalar (line 141) | Scalar operator()(Index i) const {
  function EIGEN_ALWAYS_INLINE (line 145) | EIGEN_ALWAYS_INLINE Packet load(Index i) const {
  function aligned (line 150) | bool aligned(Index i) const {
  type typename (line 162) | typedef typename packet_traits<Scalar>::half HalfPacket;
  function m_data (line 164) | m_data(data) {}
  function prefetch (line 166) | void prefetch(int i) const {
  function Packet (line 174) | Packet loadPacket(Index i) const {
  function HalfPacket (line 178) | HalfPacket loadHalfPacket(Index i) const {
  function storePacket (line 182) | void storePacket(Index i, const Packet &p) const {
  type typename (line 195) | typedef typename packet_traits<Scalar>::half HalfPacket;
  type BlasLinearMapper (line 197) | typedef BlasLinearMapper<Scalar, Index, AlignmentType> LinearMapper;
  type BlasVectorMapper (line 198) | typedef BlasVectorMapper<Scalar, Index> VectorMapper;
  function EIGEN_DEVICE_FUNC (line 200) | EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE blas_data_mapper(Scalar* data, Ind...
  function LinearMapper (line 207) | LinearMapper getLinearMapper(Index i, Index j) const {
  function VectorMapper (line 211) | VectorMapper getVectorMapper(Index i, Index j) const {
  function Packet (line 221) | Packet loadPacket(Index i, Index j) const {
  function HalfPacket (line 225) | HalfPacket loadHalfPacket(Index i, Index j) const {
  function scatterPacket (line 230) | void scatterPacket(Index i, Index j, const SubPacket &p) const {
  function EIGEN_ALWAYS_INLINE (line 235) | EIGEN_ALWAYS_INLINE SubPacket gatherPacket(Index i, Index j) const {
  function EIGEN_DEVICE_FUNC (line 240) | EIGEN_DEVICE_FUNC const Scalar* data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 242) | EIGEN_DEVICE_FUNC Index firstAligned(Index size) const {
  type typename (line 271) | typedef typename traits<XprType>::Scalar Scalar;
  type XprType (line 272) | typedef const XprType& ExtractType;
  type XprType (line 273) | typedef XprType _ExtractType;
  type typename (line 283) | typedef typename conditional<bool(HasUsableDirectAccess),
  function ExtractType (line 287) | static inline ExtractType extract(const XprType& x) { return x; }
  function Scalar (line 288) | static inline const Scalar extractScalarFactor(const XprType&) { return ...
  type CwiseUnaryOp (line 297) | typedef CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> XprType;
  type typename (line 298) | typedef typename Base::ExtractType ExtractType;
  function ExtractType (line 304) | static inline ExtractType extract(const XprType& x) { return Base::extra...
  function Scalar (line 305) | static inline Scalar extractScalarFactor(const XprType& x) { return conj...
  type CwiseBinaryOp (line 314) | typedef CwiseBinaryOp<scalar_product_op<Scalar>, const
  type typename (line 315) | typedef typename Base::ExtractType ExtractType;
  function ExtractType (line 316) | static inline ExtractType extract(const XprType& x) { return Base::extra...
  function Scalar (line 317) | static inline Scalar extractScalarFactor(const XprType& x)
  type CwiseBinaryOp (line 325) | typedef CwiseBinaryOp<scalar_product_op<Scalar>, NestedXpr, const
  type typename (line 326) | typedef typename Base::ExtractType ExtractType;
  function ExtractType (line 327) | static inline ExtractType extract(const XprType& x) { return Base::extra...
  function Scalar (line 328) | static inline Scalar extractScalarFactor(const XprType& x)
  type CwiseUnaryOp (line 343) | typedef CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> XprType;
  type typename (line 344) | typedef typename Base::ExtractType ExtractType;
  function ExtractType (line 345) | static inline ExtractType extract(const XprType& x) { return Base::extra...
  function Scalar (line 346) | static inline Scalar extractScalarFactor(const XprType& x)
  type typename (line 355) | typedef typename NestedXpr::Scalar Scalar;
  type blas_traits (line 356) | typedef blas_traits<NestedXpr> Base;
  type Transpose (line 357) | typedef Transpose<NestedXpr> XprType;
  type Transpose (line 358) | typedef Transpose<const typename
  type Transpose (line 359) | typedef Transpose<const typename
  type typename (line 360) | typedef typename conditional<bool(Base::HasUsableDirectAccess),
  function ExtractType (line 367) | static inline ExtractType extract(const XprType& x) { return ExtractType...
  function Scalar (line 368) | static inline Scalar extractScalarFactor(const XprType& x) { return Base...
  function typename (line 378) | static const typename T::Scalar* run(const T& m)
  function typename (line 386) | static typename T::Scalar* run(const T&) { return 0; }
  function typename (line 389) | typename T::Scalar* extract_data(const T& m)

FILE: include/eigen3/Eigen/src/Core/util/Constants.h
  type UpLoType (line 202) | enum UpLoType {
  type AlignmentType (line 227) | enum AlignmentType {
  type CornerType (line 257) | enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight }
  type DirectionType (line 262) | enum DirectionType {
  type TraversalType (line 276) | enum TraversalType {
  type UnrollingType (line 298) | enum UnrollingType {
  type SpecializedType (line 310) | enum SpecializedType {
  type StorageOptions (line 318) | enum StorageOptions {
  type SideType (line 331) | enum SideType {
  type NoChange_t (line 350) | enum NoChange_t   { NoChange }
  type Sequential_t (line 351) | enum Sequential_t { Sequential }
  type Default_t (line 352) | enum Default_t    { Default }
  type AmbiVectorMode (line 356) | enum AmbiVectorMode {
  type AccessorLevels (line 364) | enum AccessorLevels {
  type DecompositionOptions (line 377) | enum DecompositionOptions {
  type QRPreconditioners (line 413) | enum QRPreconditioners {
  type ComputationInfo (line 430) | enum ComputationInfo {
  type TransformTraits (line 445) | enum TransformTraits {
  function namespace (line 459) | namespace Architecture
  type ProductImplType (line 483) | enum ProductImplType
  type Action (line 488) | enum Action {GetAction, SetAction}
  type Dense (line 491) | struct Dense {}
  type Sparse (line 494) | struct Sparse {}
  type SolverStorage (line 497) | struct SolverStorage {}
  type PermutationStorage (line 500) | struct PermutationStorage {}
  type TranspositionsStorage (line 503) | struct TranspositionsStorage {}
  type MatrixXpr (line 506) | struct MatrixXpr {}
  type ArrayXpr (line 509) | struct ArrayXpr {}
  type HomogeneousShape (line 514) | struct HomogeneousShape       { static std::string debugName() { return ...

FILE: include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/util/MKL_support.h
  function namespace (line 116) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/util/Macros.h
  function namespace (line 544) | namespace Eigen {
  function namespace (line 555) | namespace Eigen {
  function namespace (line 613) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/util/Memory.h
  function namespace (line 62) | namespace Eigen {
  function conditional_aligned_free (line 228) | inline void conditional_aligned_free(void *ptr)
  function destruct_elements_of_array (line 255) | inline void destruct_elements_of_array(T *ptr, std::size_t size)
  function T (line 265) | inline T* construct_elements_of_array(T *ptr, std::size_t size)
  function check_size_for_overflow (line 286) | void check_size_for_overflow(std::size_t size)
  function T (line 296) | inline T* aligned_new(std::size_t size)
  function T (line 312) | inline T* conditional_aligned_new(std::size_t size)
  function aligned_delete (line 331) | inline void aligned_delete(T *ptr, std::size_t size)
  function conditional_aligned_delete (line 340) | inline void conditional_aligned_delete(T *ptr, std::size_t size)
  function T (line 346) | inline T* conditional_aligned_realloc_new(T* pts, std::size_t new_size, ...
  function T (line 369) | inline T* conditional_aligned_new_auto(std::size_t size)
  function conditional_aligned_delete_auto (line 412) | inline void conditional_aligned_delete_auto(T *ptr, std::size_t size)
  function Index (line 439) | inline Index first_aligned(const Scalar* array, Index size)
  function Index (line 467) | inline Index first_default_aligned(const Scalar* array, Index size)
  function Index (line 476) | Index first_multiple(Index size, Index base)
  function smart_copy (line 485) | void smart_copy(const T* start, const T* end, T* target)
  function EIGEN_DEVICE_FUNC (line 491) | EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T...
  function EIGEN_DEVICE_FUNC (line 501) | EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T...
  function run (line 514) | static inline void run(const T* start, const T* end, T* target)
  function run (line 524) | static inline void run(const T* start, const T* end, T* target)
  function T (line 596) | const T& operator[](std::ptrdiff_t i) const { return m_ptr[i]; }
  function T (line 598) | const T* ptr() const { return m_ptr; }
  function operator (line 599) | operator const T*() const { return m_ptr; }
  function operator (line 682) | operator delete(void *ptr, const std::nothrow_t&) EIGEN_NO_THROW { \
  type eigen_aligned_operator_new_marker_type (line 685) | typedef void eigen_aligned_operator_new_marker_type;
  type T (line 726) | typedef T*              pointer;
  type T (line 727) | typedef const T*        const_pointer;
  type T (line 728) | typedef T&              reference;
  type T (line 729) | typedef const T&        const_reference;
  type T (line 730) | typedef T               value_type;
  type aligned_allocator (line 735) | typedef aligned_allocator<U> other;
  function deallocate (line 753) | void deallocate(pointer p, size_type /*num*/)
  function namespace (line 784) | namespace internal {

FILE: include/eigen3/Eigen/src/Core/util/Meta.h
  function namespace (line 23) | namespace Eigen {
  type T (line 118) | typedef const T type;
  type T (line 119) | typedef T const& type;
  type T (line 120) | typedef T const* type;
  type T (line 121) | typedef T const* const type;
  type T (line 122) | typedef T const* const type;
  type any_conversion (line 129) | struct any_conversion
  type yes (line 134) | struct yes {int a[1];}
  type no (line 135) | struct no  {int a[2];}
  type T (line 165) | typedef T type;
  function namespace (line 173) | namespace device {
  function class (line 272) | class noncopyable
  type typename (line 290) | typedef typename std::result_of<T>::type type1;
  type typename (line 291) | typedef typename remove_all<type1>::type type;
  type has_none (line 296) | struct has_none {int a[1];}
  type has_std_result_type (line 297) | struct has_std_result_type {int a[2];}
  type has_tr1_result (line 298) | struct has_tr1_result {int a[3];}
  type typename (line 301) | typedef typename internal::remove_all<ArgType>::type type;
  type typename (line 319) | typedef typename unary_result_of_select<Func, ArgType, FunctorType>::typ...
  type typename (line 323) | typedef typename internal::remove_all<ArgType0>::type type;
  type typename (line 343) | typedef typename binary_result_of_select<Func, ArgType0, ArgType1, Funct...
  type typename (line 347) | typedef typename internal::remove_all<ArgType0>::type type;
  type typename (line 367) | typedef typename ternary_result_of_select<Func, ArgType0, ArgType1, ArgT...
  type meta_yes (line 371) | struct meta_yes { char a[1]; }
  type meta_no (line 372) | struct meta_no  { char a[2]; }
  function meta_yes (line 389) | meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>(...

FILE: include/eigen3/Eigen/src/Core/util/StaticAssert.h
  function namespace (line 37) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Core/util/XprHelper.h
  function namespace (line 25) | namespace Eigen {
  function class (line 89) | class no_assignment_operator
  function EIGEN_STRONG_INLINE (line 110) | EIGEN_STRONG_INLINE explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_...
  function T (line 111) | T value() { return T(Value); }
  function setValue (line 112) | void setValue(T) {}
  function EIGEN_DEVICE_FUNC (line 118) | EIGEN_DEVICE_FUNC variable_if_dynamic() { eigen_assert(false); }
  function explicit (line 120) | explicit variable_if_dynamic(T value) : m_value(value) {}
  function setValue (line 122) | void setValue(T value) { m_value = value; }
  function EIGEN_STRONG_INLINE (line 131) | EIGEN_STRONG_INLINE explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_...
  function T (line 132) | T value() { return T(Value); }
  function setValue (line 133) | void setValue(T) {}
  function EIGEN_DEVICE_FUNC (line 139) | EIGEN_DEVICE_FUNC variable_if_dynamicindex() { eigen_assert(false); }
  function explicit (line 141) | explicit variable_if_dynamicindex(T value) : m_value(value) {}
  function setValue (line 143) | void setValue(T value) { m_value = value; }
  type T (line 160) | typedef T type;
  type T (line 161) | typedef T half;
  type typename (line 188) | typedef typename find_best_packet_helper<Size,typename
  type typename (line 279) | typedef typename plain_matrix_type_dense<T,typename
  type typename (line 283) | typedef typename T::PlainObject type;
  type typename (line 316) | typedef typename plain_matrix_type<T>::type type;
  type typename (line 329) | typedef typename plain_matrix_type<T>::type type;
  type typename (line 352) | typedef typename plain_matrix_type_dense<T,typename
  type Matrix (line 365) | typedef Matrix<typename
  type Matrix (line 383) | typedef Matrix<typename
  type typename (line 398) | typedef typename conditional<
  type typename (line 404) | typedef typename conditional<
  type typename (line 415) | typedef typename conditional<
  type typename (line 452) | typedef typename conditional<Evaluate, PlainObject, typename
  function T (line 457) | inline T* const_cast_ptr(const T* ptr)
  type typename (line 491) | typedef typename XprType::Scalar CurrentScalarType;
  type typename (line 492) | typedef typename remove_all<CastType>::type _CastType;
  type typename (line 493) | typedef typename _CastType::Scalar NewScalarType;
  type typename (line 494) | typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::v...
  type A (line 502) | typedef A ret;
  type A (line 506) | typedef A ret;
  type A (line 510) | typedef A ret;
  type Matrix (line 581) | typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
  type Array (line 583) | typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
  type typename (line 586) | typedef typename conditional<
  type Matrix (line 596) | typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
  type Array (line 598) | typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
  type typename (line 601) | typedef typename conditional<
  type Matrix (line 614) | typedef Matrix<Scalar, diag_size, 1, ExpressionType::PlainObject::Options
  type Array (line 615) | typedef Array<Scalar, diag_size, 1, ExpressionType::PlainObject::Options
  type typename (line 617) | typedef typename conditional<
  type Array (line 629) | typedef Array<Scalar,  traits<Expr>::RowsAtCompileTime,   traits<Expr>::...
  type Matrix (line 632) | typedef Matrix<Scalar,  traits<Expr>::RowsAtCompileTime,   traits<Expr>:...
  type CwiseNullaryOp (line 635) | typedef CwiseNullaryOp<scalar_constant_op<Scalar>, const
  type glue_shapes (line 658) | struct glue_shapes
  type TriangularShape (line 658) | typedef TriangularShape type;
  type ScalarBinaryOpTraits (line 766) | struct ScalarBinaryOpTraits
  type T (line 776) | typedef T ReturnType;
  type T (line 782) | typedef T ReturnType;
  type T (line 787) | typedef T ReturnType;
  type T (line 794) | typedef T ReturnType;
  type T (line 801) | typedef T ReturnType;
  type ReturnType (line 808) | typedef void ReturnType;

FILE: include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
  function namespace (line 17) | namespace Eigen {
  function EigenvalueType (line 182) | const EigenvalueType& eigenvalues() const
  function Index (line 233) | Index getMaxIterations()

FILE: include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
  function namespace (line 17) | namespace Eigen {
  function ComplexMatrixType (line 162) | const ComplexMatrixType& matrixT() const
  function Index (line 235) | Index getMaxIterations()
  function namespace (line 349) | namespace internal {

FILE: include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
  function namespace (line 16) | namespace Eigen {
  function EigenvalueType (line 244) | const EigenvalueType& eigenvalues() const
  function Index (line 295) | Index getMaxIterations()
  type Matrix (line 319) | typedef Matrix<Scalar, ColsAtCompileTime, 1, Options

FILE: include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
  function namespace (line 17) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
  function namespace (line 16) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
  function namespace (line 14) | namespace Eigen {
  function CoeffVectorType (line 179) | const CoeffVectorType& householderCoefficients() const
  type typename (line 271) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function namespace (line 322) | namespace internal {

FILE: include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
  function namespace (line 13) | namespace Eigen {
  function MatrixType (line 139) | const MatrixType& matrixS() const {
  type Matrix (line 200) | typedef Matrix<Scalar,3,1> Vector3s;
  type Matrix (line 201) | typedef Matrix<Scalar,2,1> Vector2s;
  type Matrix (line 202) | typedef Matrix<Scalar,2,2> Matrix2s;
  type JacobiRotation (line 203) | typedef JacobiRotation<Scalar> JRs;

FILE: include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
  function namespace (line 16) | namespace Eigen {
  function MatrixType (line 144) | const MatrixType& matrixT() const
  function Index (line 213) | Index getMaxIterations()
  type Matrix (line 236) | typedef Matrix<Scalar,3,1> Vector3s;
  function typename (line 353) | typename MatrixType::Scalar RealSchur<MatrixType>::computeNormOfT()

FILE: include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
  function namespace (line 16) | namespace Eigen {
  function namespace (line 370) | namespace internal {
  function namespace (line 469) | namespace internal {
  type typename (line 715) | typedef typename SolverType::RealVectorType VectorType;
  type typename (line 716) | typedef typename SolverType::Scalar Scalar;
  type typename (line 717) | typedef typename SolverType::EigenvectorsType EigenvectorsType;
  function EIGEN_DEVICE_FUNC (line 719) | EIGEN_DEVICE_FUNC
  function namespace (line 805) | namespace internal {

FILE: include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 321) | namespace internal {
  type typename (line 439) | typedef typename Tridiagonalization<MatrixType>::CoeffVectorType CoeffVe...
  type typename (line 440) | typedef typename Tridiagonalization<MatrixType>::HouseholderSequenceType...
  type typename (line 463) | typedef typename MatrixType::RealScalar RealScalar;

FILE: include/eigen3/Eigen/src/Geometry/AlignedBox.h
  function namespace (line 13) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 146) | EIGEN_DEVICE_FUNC inline VectorType corner(CornerType corner) const
  function EIGEN_DEVICE_FUNC (line 164) | EIGEN_DEVICE_FUNC inline VectorType sample() const
  function contains (line 182) | inline bool contains(const MatrixBase<Derived>& p) const
  function EIGEN_DEVICE_FUNC (line 189) | EIGEN_DEVICE_FUNC inline bool contains(const AlignedBox& b) const
  function EIGEN_DEVICE_FUNC (line 194) | EIGEN_DEVICE_FUNC inline bool intersects(const AlignedBox& b) const
  function EIGEN_DEVICE_FUNC (line 210) | EIGEN_DEVICE_FUNC inline AlignedBox& extend(const AlignedBox& b)
  function EIGEN_DEVICE_FUNC (line 220) | EIGEN_DEVICE_FUNC inline AlignedBox& clamp(const AlignedBox& b)
  function EIGEN_DEVICE_FUNC (line 230) | EIGEN_DEVICE_FUNC inline AlignedBox intersection(const AlignedBox& b) const
  function EIGEN_DEVICE_FUNC (line 236) | EIGEN_DEVICE_FUNC inline AlignedBox merged(const AlignedBox& b) const
  function NonInteger (line 267) | inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
  function EIGEN_DEVICE_FUNC (line 274) | EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const AlignedBox& b...
  function explicit (line 292) | inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAt...

FILE: include/eigen3/Eigen/src/Geometry/AngleAxis.h
  function namespace (line 13) | namespace Eigen {
  function explicit (line 139) | inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
  function EIGEN_DEVICE_FUNC (line 145) | EIGEN_DEVICE_FUNC static inline const AngleAxis Identity() { return Angl...
  function EIGEN_DEVICE_FUNC (line 151) | EIGEN_DEVICE_FUNC bool isApprox(const AngleAxis& other, const typename N...
  type AngleAxis (line 157) | typedef AngleAxis<float> AngleAxisf;
  type AngleAxis (line 160) | typedef AngleAxis<double> AngleAxisd;

FILE: include/eigen3/Eigen/src/Geometry/EulerAngles.h
  function namespace (line 13) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Geometry/Homogeneous.h
  function namespace (line 13) | namespace Eigen {
  type MatrixBase (line 68) | typedef MatrixBase<Homogeneous> Base;
  function explicit (line 71) | explicit inline Homogeneous(const MatrixType& matrix)
  function EIGEN_DEVICE_FUNC (line 299) | EIGEN_DEVICE_FUNC homogeneous_right_product_impl(const MatrixType& lhs, ...
  type HomogeneousShape (line 325) | typedef HomogeneousShape Shape;
  type AssignmentKind (line 328) | struct AssignmentKind
  type Dense2Dense (line 328) | typedef Dense2Dense Kind;
  type typename (line 336) | typedef typename XprType::PlainObject PlainObject;
  type evaluator (line 337) | typedef evaluator<PlainObject> Base;
  function EIGEN_DEVICE_FUNC (line 339) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& op)
  type Homogeneous (line 370) | typedef Homogeneous<ArgType,Horizontal> SrcXprType;
  type typename (line 400) | typedef typename Rhs::template
  type typename (line 401) | typedef typename remove_const<LinearBlockConst>::type                 Li...
  type typename (line 402) | typedef typename Rhs::ConstRowXpr                                     Co...
  type Replicate (line 403) | typedef Replicate<const ConstantColumn,Rows,1>                        Co...
  type Product (line 404) | typedef Product<Lhs,LinearBlock,LazyProduct>                          Li...
  type CwiseBinaryOp (line 405) | typedef CwiseBinaryOp<internal::scalar_sum_op<typename
  type homogeneous_right_product_refactoring_helper (line 413) | typedef homogeneous_right_product_refactoring_helper<typename
  type typename (line 414) | typedef typename helper::ConstantBlock ConstantBlock;
  type typename (line 415) | typedef typename helper::Xpr RefactoredXpr;
  type evaluator (line 416) | typedef evaluator<RefactoredXpr> Base;
  function EIGEN_DEVICE_FUNC (line 418) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  type typename (line 453) | typedef typename Lhs::template
  type typename (line 454) | typedef typename remove_const<LinearBlockConst>::type                 Li...
  type typename (line 455) | typedef typename Lhs::ConstColXpr                                     Co...
  type Replicate (line 456) | typedef Replicate<const ConstantColumn,1,Cols>                        Co...
  type Product (line 457) | typedef Product<LinearBlock,Rhs,LazyProduct>                          Li...
  type CwiseBinaryOp (line 458) | typedef CwiseBinaryOp<internal::scalar_sum_op<typename
  type homogeneous_left_product_refactoring_helper (line 466) | typedef homogeneous_left_product_refactoring_helper<Lhs,typename
  type typename (line 467) | typedef typename helper::ConstantBlock ConstantBlock;
  type typename (line 468) | typedef typename helper::Xpr RefactoredXpr;
  type evaluator (line 469) | typedef evaluator<RefactoredXpr> Base;
  function EIGEN_DEVICE_FUNC (line 471) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function evalTo (line 482) | static void evalTo(Dest& dst, const TransformType& lhs, const Homogeneou...

FILE: include/eigen3/Eigen/src/Geometry/Hyperplane.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Geometry/OrthoMethods.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 50) | namespace internal {
  type typename (line 87) | typedef typename internal::nested_eval<Derived,2>::type DerivedNested;
  type typename (line 88) | typedef typename internal::nested_eval<OtherDerived,2>::type OtherDerive...
  function namespace (line 137) | namespace internal {

FILE: include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Geometry/Quaternion.h
  function namespace (line 13) | namespace Eigen {
  type Quaternion (line 307) | typedef Quaternion<float> Quaternionf;
  type Quaternion (line 310) | typedef Quaternion<double> Quaterniond;
  function namespace (line 316) | namespace internal {
  function namespace (line 324) | namespace internal {
  type _Scalar (line 354) | typedef _Scalar Scalar;
  type typename (line 355) | typedef typename internal::traits<Map>::Coefficients Coefficients;
  function EIGEN_STRONG_INLINE (line 365) | EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
  type _Scalar (line 391) | typedef _Scalar Scalar;
  type typename (line 392) | typedef typename internal::traits<Map>::Coefficients Coefficients;
  function EIGEN_STRONG_INLINE (line 402) | EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
  function EIGEN_DEVICE_FUNC (line 404) | EIGEN_DEVICE_FUNC inline Coefficients& coeffs() { return m_coeffs; }
  type Map (line 413) | typedef Map<Quaternion<float>, 0>         QuaternionMapf;
  type Map (line 416) | typedef Map<Quaternion<double>, 0>        QuaternionMapd;
  type Map (line 419) | typedef Map<Quaternion<float>, Aligned>   QuaternionMapAlignedf;
  type Map (line 422) | typedef Map<Quaternion<double>, Aligned>  QuaternionMapAlignedd;
  function namespace (line 430) | namespace internal {
  function typename (line 535) | inline typename QuaternionBase<Derived>::Matrix3
  function namespace (line 678) | namespace internal {
  function typename (line 707) | inline typename internal::traits<Derived>::Scalar
  function namespace (line 756) | namespace internal {
  function run (line 804) | static inline void run(QuaternionBase<Derived>& q, const Other& vec)

FILE: include/eigen3/Eigen/src/Geometry/Rotation2D.h
  function namespace (line 13) | namespace Eigen {
  function explicit (line 147) | inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
  function EIGEN_DEVICE_FUNC (line 152) | EIGEN_DEVICE_FUNC static inline Rotation2D Identity() { return Rotation2...
  function EIGEN_DEVICE_FUNC (line 158) | EIGEN_DEVICE_FUNC bool isApprox(const Rotation2D& other, const typename ...
  type Rotation2D (line 165) | typedef Rotation2D<float> Rotation2Df;
  type Rotation2D (line 168) | typedef Rotation2D<double> Rotation2Dd;

FILE: include/eigen3/Eigen/src/Geometry/RotationBase.h
  function namespace (line 13) | namespace Eigen {
  function VectorType (line 93) | inline VectorType _transformVector(const OtherVectorType& v) const
  function namespace (line 97) | namespace internal {
  function EIGEN_DEVICE_FUNC (line 113) | EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r,...
  type Matrix (line 125) | typedef Matrix<typename
  function ReturnType (line 126) | ReturnType run(const RotationDerived& r, const OtherVectorType& v)
  function namespace (line 161) | namespace internal {

FILE: include/eigen3/Eigen/src/Geometry/Scaling.h
  function explicit (line 48) | explicit inline UniformScaling(const Scalar& s) : m_factor(s) {}
  function Scalar (line 51) | inline Scalar& factor() { return m_factor; }
  function UniformScaling (line 54) | inline UniformScaling operator* (const UniformScaling& other) const
  function typename (line 73) | typename internal::plain_matrix_type<Derived>::type operator* (const Mat...
  function UniformScaling (line 81) | inline UniformScaling inverse() const
  type DiagonalMatrix (line 146) | typedef DiagonalMatrix<float, 2> AlignedScaling2f;
  type DiagonalMatrix (line 148) | typedef DiagonalMatrix<double,2> AlignedScaling2d;
  type DiagonalMatrix (line 150) | typedef DiagonalMatrix<float, 3> AlignedScaling3f;
  type DiagonalMatrix (line 152) | typedef DiagonalMatrix<double,3> AlignedScaling3d;

FILE: include/eigen3/Eigen/src/Geometry/Transform.h
  function namespace (line 15) | namespace Eigen {
  type _Scalar (line 213) | typedef _Scalar Scalar;
  type Eigen (line 214) | typedef Eigen::Index StorageIndex;
  type Eigen (line 215) | typedef Eigen::Index Index;
  type typename (line 217) | typedef typename internal::make_proper_matrix_type<Scalar,Rows,HDim,Opti...
  type MatrixType (line 219) | typedef const MatrixType ConstMatrixType;
  type Matrix (line 221) | typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
  type Block (line 223) | typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&...
  type Block (line 225) | typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact) &...
  type typename (line 227) | typedef typename internal::conditional<int(Mode)==int(AffineCompact),
  type typename (line 231) | typedef typename internal::conditional<int(Mode)==int(AffineCompact),
  type Matrix (line 235) | typedef Matrix<Scalar,Dim,1> VectorType;
  type Block (line 237) | typedef Block<MatrixType,Dim,1,!(internal::traits<MatrixType>::Flags & R...
  type Block (line 239) | typedef const Block<ConstMatrixType,Dim,1,!(internal::traits<MatrixType>...
  type Translation (line 241) | typedef Translation<Scalar,Dim> TranslationType;
  type Transform (line 246) | typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDia...
  function EIGEN_DEVICE_FUNC (line 262) | EIGEN_DEVICE_FUNC inline Transform(const Transform& other)
  function EIGEN_DEVICE_FUNC (line 268) | EIGEN_DEVICE_FUNC inline explicit Transform(const TranslationType& t)
  function EIGEN_DEVICE_FUNC (line 273) | EIGEN_DEVICE_FUNC inline explicit Transform(const UniformScaling<Scalar>...
  function explicit (line 279) | inline explicit Transform(const RotationBase<Derived, Dim>& r)
  type internal (line 288) | typedef internal::transform_take_affine_part<Transform> take_affine_part;
  function explicit (line 292) | inline explicit Transform(const EigenBase<OtherDerived>& other)
  type typename (line 348) | typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixTyp...
  function EIGEN_DEVICE_FUNC (line 389) | EIGEN_DEVICE_FUNC inline Scalar operator() (Index row, Index col) const ...
  function EIGEN_DEVICE_FUNC (line 392) | EIGEN_DEVICE_FUNC inline Scalar& operator() (Index row, Index col) { ret...
  function EIGEN_DEVICE_FUNC (line 397) | EIGEN_DEVICE_FUNC inline MatrixType& matrix() { return m_matrix; }
  function EIGEN_DEVICE_FUNC (line 402) | EIGEN_DEVICE_FUNC inline LinearPart linear() { return LinearPart(m_matri...
  function EIGEN_DEVICE_FUNC (line 405) | EIGEN_DEVICE_FUNC inline ConstAffinePart affine() const { return take_af...
  type internal (line 509) | typedef internal::transform_transform_product_impl<Transform,Transform<S...
  type typename (line 510) | typedef typename ProductType::ResultType ResultType;
  type typename (line 519) | typedef typename icc_11_workaround<OtherMode,OtherOptions>::ProductType ...
  function EIGEN_DEVICE_FUNC (line 533) | EIGEN_DEVICE_FUNC void setIdentity() { m_matrix.setIdentity(); }
  function EIGEN_DEVICE_FUNC (line 539) | EIGEN_DEVICE_FUNC static const Transform Identity()
  function Scalar (line 622) | const Scalar* data() const { return m_matrix.data(); }
  function EIGEN_DEVICE_FUNC (line 624) | EIGEN_DEVICE_FUNC Scalar* data() { return m_matrix.data(); }
  function explicit (line 637) | inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Optio...
  function EIGEN_DEVICE_FUNC (line 647) | EIGEN_DEVICE_FUNC bool isApprox(const Transform& other, const typename N...
  function EIGEN_DEVICE_FUNC (line 652) | EIGEN_DEVICE_FUNC void makeAffine()
  function check_template_params (line 690) | void check_template_params()
  function else (line 917) | else
  function namespace (line 1140) | namespace internal {
  function namespace (line 1231) | namespace internal {
  function MatrixType (line 1251) | static inline const MatrixType& run(const MatrixType& m) { return m; }
  function EIGEN_STRONG_INLINE (line 1315) | static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const ...
  type typename (line 1331) | typedef typename MatrixType::PlainObject ResultType;
  function EIGEN_STRONG_INLINE (line 1333) | static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const ...
  type typename (line 1357) | typedef typename MatrixType::PlainObject ResultType;
  function EIGEN_STRONG_INLINE (line 1359) | static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const ...
  type typename (line 1382) | typedef typename MatrixType::PlainObject ResultType;
  function EIGEN_STRONG_INLINE (line 1384) | static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const ...
  type typename (line 1404) | typedef typename TransformType::MatrixType MatrixType;
  type Transform (line 1405) | typedef Transform<typename
  function ResultType (line 1406) | static ResultType run(const Other& other,const TransformType& tr)
  type typename (line 1415) | typedef typename TransformType::MatrixType MatrixType;
  type Transform (line 1416) | typedef Transform<typename
  function ResultType (line 1417) | static ResultType run(const Other& other,const TransformType& tr)
  type typename (line 1431) | typedef typename TransformType::MatrixType MatrixType;
  type TransformType (line 1432) | typedef TransformType ResultType;
  function ResultType (line 1433) | static ResultType run(const Other& other,const TransformType& tr)
  type typename (line 1447) | typedef typename TransformType::MatrixType MatrixType;
  type TransformType (line 1448) | typedef TransformType ResultType;
  function ResultType (line 1449) | static ResultType run(const Other& other,const TransformType& tr)
  type typename (line 1463) | typedef typename TransformType::MatrixType MatrixType;
  type TransformType (line 1464) | typedef TransformType ResultType;
  function ResultType (line 1465) | static ResultType run(const Other& other, const TransformType& tr)
  type Transform (line 1484) | typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
  type Transform (line 1485) | typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
  type Transform (line 1486) | typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
  function ResultType (line 1487) | static ResultType run(const Lhs& lhs, const Rhs& rhs)
  type Transform (line 1501) | typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
  type Transform (line 1502) | typedef Transform<Scalar,Dim,Projective> ResultType;
  function ResultType (line 1503) | static ResultType run(const Lhs& lhs, const Rhs& rhs)
  type Transform (line 1513) | typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
  type Transform (line 1514) | typedef Transform<Scalar,Dim,Projective> ResultType;
  function ResultType (line 1515) | static ResultType run(const Lhs& lhs, const Rhs& rhs)
  type Transform (line 1528) | typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
  type Transform (line 1529) | typedef Transform<Scalar,Dim,Projective> ResultType;
  function ResultType (line 1530) | static ResultType run(const Lhs& lhs, const Rhs& rhs)

FILE: include/eigen3/Eigen/src/Geometry/Translation.h
  function namespace (line 13) | namespace Eigen {
  function explicit (line 160) | inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
  function EIGEN_DEVICE_FUNC (line 167) | EIGEN_DEVICE_FUNC bool isApprox(const Translation& other, const typename...
  type Translation (line 174) | typedef Translation<float, 2> Translation2f;
  type Translation (line 175) | typedef Translation<double,2> Translation2d;
  type Translation (line 176) | typedef Translation<float, 3> Translation3f;
  type Translation (line 177) | typedef Translation<double,3> Translation3d;

FILE: include/eigen3/Eigen/src/Geometry/Umeyama.h
  function namespace (line 26) | namespace internal {
  type typename (line 97) | typedef typename internal::umeyama_transform_matrix_type<Derived, OtherD...
  type typename (line 98) | typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
  type typename (line 99) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function EIGEN_STATIC_ASSERT (line 102) | EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits...

FILE: include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
  function namespace (line 14) | namespace Eigen {
  function Quaternion (line 91) | static inline Quaternion<double> run(const QuaternionBase<Derived>& _a, ...
  function Quaternion (line 146) | static inline Quaternion<double> run(const QuaternionBase<Derived>& q)

FILE: include/eigen3/Eigen/src/Householder/BlockHouseholder.h
  function namespace (line 16) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Householder/Householder.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/Householder/HouseholderSequence.h
  function namespace (line 14) | namespace Eigen {
  type Block (line 88) | typedef Block<const VectorsType, Dynamic, 1> EssentialVectorType;
  type HouseholderSequence (line 89) | typedef HouseholderSequence<VectorsType, CoeffsType, OnTheLeft> Househol...
  function EssentialVectorType (line 90) | static inline const EssentialVectorType essentialVector(const Householde...
  type HouseholderSequence (line 101) | typedef HouseholderSequence<VectorsType, CoeffsType, OnTheRight> Househo...
  function EssentialVectorType (line 102) | static inline const EssentialVectorType essentialVector(const Householde...
  type typename (line 111) | typedef typename ScalarBinaryOpTraits<OtherScalarType, typename
  type Matrix (line 113) | typedef Matrix<ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::...
  type typename (line 131) | typedef typename internal::traits<HouseholderSequence>::Scalar Scalar;
  type HouseholderSequence (line 133) | typedef HouseholderSequence<
  function EssentialVectorType (line 202) | const EssentialVectorType essentialVector(Index k) const
  type Block (line 326) | typedef Block<typename
  type internal (line 364) | struct internal

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
  function namespace (line 13) | namespace Eigen {
  type _Scalar (line 130) | typedef _Scalar Scalar;
  type typename (line 131) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type DiagonalPreconditioner (line 132) | typedef DiagonalPreconditioner<_Scalar> Base;
  function Base (line 139) | LeastSquareDiagonalPreconditioner(const MatType& mat) : Base()
  function ComputationInfo (line 188) | ComputationInfo info() { return Success; }

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 168) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 169) | typedef typename MatrixType::RealScalar RealScalar;
  type _Preconditioner (line 170) | typedef _Preconditioner Preconditioner;

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 167) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 168) | typedef typename MatrixType::RealScalar RealScalar;
  type _Preconditioner (line 169) | typedef _Preconditioner Preconditioner;
  type typename (line 199) | typedef typename Base::MatrixWrapper MatrixWrapper;
  type typename (line 200) | typedef typename Base::ActualMatrixType ActualMatrixType;
  type typename (line 207) | typedef typename internal::conditional<TransposeInput,Transpose<const Ac...
  type typename (line 209) | typedef typename internal::conditional<UpLo==(Lower|Upper),

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
  function namespace (line 17) | namespace Eigen {

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
  function namespace (line 15) | namespace Eigen {

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 151) | typedef typename internal::traits<Derived>::Preconditioner Preconditioner;
  type typename (line 152) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 153) | typedef typename MatrixType::StorageIndex StorageIndex;
  type typename (line 154) | typedef typename MatrixType::RealScalar RealScalar;
  type typename (line 341) | typedef typename DestDerived::Scalar DestScalar;
  type internal (line 366) | typedef internal::generic_matrix_wrapper<MatrixType> MatrixWrapper;
  type typename (line 367) | typedef typename MatrixWrapper::ActualMatrixType ActualMatrixType;

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 159) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 160) | typedef typename MatrixType::RealScalar RealScalar;
  type _Preconditioner (line 161) | typedef _Preconditioner Preconditioner;

FILE: include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
  function namespace (line 13) | namespace Eigen {
  function namespace (line 70) | namespace internal {
  type SolveWithGuess (line 98) | typedef SolveWithGuess<DecType,RhsType,GuessType> SrcXprType;
  function run (line 99) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: include/eigen3/Eigen/src/Jacobi/Jacobi.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 259) | namespace internal {
  function namespace (line 300) | namespace internal {
  type typename (line 435) | typedef typename VectorX::Scalar Scalar;

FILE: include/eigen3/Eigen/src/LU/Determinant.h
  function namespace (line 15) | namespace internal {

FILE: include/eigen3/Eigen/src/LU/FullPivLU.h
  function namespace (line 13) | namespace Eigen {
  function MatrixType (line 407) | MatrixType reconstructedMatrix() const;
  type internal (line 518) | typedef internal::scalar_score_coeff_op<Scalar> Scoring;
  type typename (line 519) | typedef typename Scoring::result_type Score;
  function namespace (line 617) | namespace internal {
  function namespace (line 858) | namespace internal {

FILE: include/eigen3/Eigen/src/LU/InverseImpl.h
  function namespace (line 14) | namespace Eigen {
  function compute_inverse_size2_helper (line 76) | inline void compute_inverse_size2_helper(
  function run (line 90) | static inline void run(const MatrixType& matrix, ResultType& result)
  function run (line 102) | static inline void run(
  function typename (line 126) | inline typename MatrixType::Scalar cofactor_3x3(const MatrixType& m)
  function compute_inverse_size3_helper (line 140) | inline void compute_inverse_size3_helper(
  function run (line 159) | static inline void run(const MatrixType& matrix, ResultType& result)
  function run (line 176) | static inline void run(
  function typename (line 204) | inline const typename Derived::Scalar general_det3_helper
  function typename (line 213) | inline typename MatrixType::Scalar cofactor_4x4(const MatrixType& matrix)
  function EIGEN_DEVICE_FUNC (line 231) | EIGEN_DEVICE_FUNC
  function run (line 265) | static inline void run(
  function namespace (line 286) | namespace internal {
  type typename (line 373) | typedef typename internal::conditional<

FILE: include/eigen3/Eigen/src/LU/PartialPivLU.h
  function namespace (line 14) | namespace Eigen {
  function namespace (line 339) | namespace internal {
  function namespace (line 564) | namespace internal {

FILE: include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
  function namespace (line 30) | namespace Eigen {

FILE: include/eigen3/Eigen/src/MetisSupport/MetisSupport.h
  function namespace (line 12) | namespace Eigen {

FILE: include/eigen3/Eigen/src/OrderingMethods/Amd.h
  function namespace (line 34) | namespace Eigen {

FILE: include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
  function namespace (line 50) | namespace internal {

FILE: include/eigen3/Eigen/src/OrderingMethods/Ordering.h
  function namespace (line 14) | namespace Eigen {
  type Matrix (line 122) | typedef Matrix<StorageIndex, Dynamic, 1> IndexVector;

FILE: include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
  function namespace (line 13) | namespace Eigen {
  function eigen_pastix (line 67) | inline void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, i...
  function eigen_pastix (line 74) | inline void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, i...
  function eigen_pastix (line 81) | inline void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, i...
  function eigen_pastix (line 88) | inline void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, i...
  type typename (line 137) | typedef typename internal::pastix_traits<Derived>::MatrixType _MatrixType;
  type _MatrixType (line 138) | typedef _MatrixType MatrixType;
  type typename (line 139) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 140) | typedef typename MatrixType::RealScalar RealScalar;
  type typename (line 141) | typedef typename MatrixType::StorageIndex StorageIndex;
  type Matrix (line 142) | typedef Matrix<Scalar,Dynamic,1> Vector;
  type SparseMatrix (line 143) | typedef SparseMatrix<Scalar, ColMajor> ColSpMatrix;
  function iparm (line 178) | int& iparm(int idxparam)
  function dparm (line 196) | double& dparm(int idxparam)
  function clean (line 230) | void clean()
  type PastixBase (line 416) | typedef PastixBase<PastixLU<MatrixType> > Base;
  type typename (line 417) | typedef typename Base::ColSpMatrix ColSpMatrix;
  type typename (line 418) | typedef typename MatrixType::StorageIndex StorageIndex;
  function explicit (line 426) | explicit PastixLU(const MatrixType& matrix):Base()
  function compute (line 436) | void compute (const MatrixType& matrix)
  function analyzePattern (line 448) | void analyzePattern(const MatrixType& matrix)
  function factorize (line 461) | void factorize(const MatrixType& matrix)
  function grabMatrix (line 476) | void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
  type PastixBase (line 528) | typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Base;
  type typename (line 529) | typedef typename Base::ColSpMatrix ColSpMatrix;
  function explicit (line 538) | explicit PastixLLT(const MatrixType& matrix):Base()
  function compute (line 547) | void compute (const MatrixType& matrix)
  function analyzePattern (line 558) | void analyzePattern(const MatrixType& matrix)
  function factorize (line 567) | void factorize(const MatrixType& matrix)
  function init (line 576) | void init()
  function grabMatrix (line 582) | void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
  type PastixBase (line 612) | typedef PastixBase<PastixLDLT<MatrixType, _UpLo> > Base;
  type typename (line 613) | typedef typename Base::ColSpMatrix ColSpMatrix;
  function explicit (line 622) | explicit PastixLDLT(const MatrixType& matrix):Base()
  function compute (line 631) | void compute (const MatrixType& matrix)
  function analyzePattern (line 642) | void analyzePattern(const MatrixType& matrix)
  function factorize (line 651) | void factorize(const MatrixType& matrix)
  function init (line 661) | void init()
  function grabMatrix (line 667) | void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)

FILE: include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
  function namespace (line 35) | namespace Eigen {
  type internal (line 106) | typedef internal::pardiso_traits<Derived> Traits;
  type typename (line 110) | typedef typename Traits::MatrixType MatrixType;
  type typename (line 111) | typedef typename Traits::Scalar Scalar;
  type typename (line 112) | typedef typename Traits::RealScalar RealScalar;
  type typename (line 113) | typedef typename Traits::StorageIndex StorageIndex;
  type SparseMatrix (line 114) | typedef SparseMatrix<Scalar,RowMajor,StorageIndex> SparseMatrixType;
  type Matrix (line 115) | typedef Matrix<Scalar,Dynamic,1> VectorType;
  type Matrix (line 116) | typedef Matrix<StorageIndex, 1, MatrixType::ColsAtCompileTime> IntRowVec...
  type Matrix (line 117) | typedef Matrix<StorageIndex, MatrixType::RowsAtCompileTime, 1> IntColVec...
  function pardisoInit (line 192) | void pardisoInit(int type)
  type typename (line 388) | typedef typename Base::Scalar Scalar;
  type typename (line 389) | typedef typename Base::RealScalar RealScalar;
  function explicit (line 405) | explicit PardisoLU(const MatrixType& matrix)
  type typename (line 443) | typedef typename Base::Scalar Scalar;
  type typename (line 444) | typedef typename Base::RealScalar RealScalar;
  function explicit (line 461) | explicit PardisoLLT(const MatrixType& matrix)
  type typename (line 506) | typedef typename Base::Scalar Scalar;
  type typename (line 507) | typedef typename Base::RealScalar RealScalar;
  function explicit (line 524) | explicit PardisoLDLT(const MatrixType& matrix)
  function getMatrix (line 531) | void getMatrix(const MatrixType& matrix)

FILE: include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
  function namespace (line 14) | namespace Eigen {
  function HouseholderSequenceType (line 181) | HouseholderSequenceType householderQ() const;
  function isInjective (line 285) | inline bool isInjective() const
  function isInvertible (line 310) | inline bool isInvertible() const
  function Index (line 394) | inline Index nonzeroPivots() const
  function check_template_parameters (line 427) | static void check_template_parameters()
  function namespace (line 614) | namespace internal {

FILE: include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
  function namespace (line 37) | namespace Eigen {

FILE: include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
  function namespace (line 13) | namespace Eigen {
  function namespace (line 528) | namespace internal {

FILE: include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
  function namespace (line 14) | namespace Eigen {
  function MatrixType (line 188) | const MatrixType& matrixQR() const
  function isInjective (line 276) | inline bool isInjective() const
  function isInvertible (line 301) | inline bool isInvertible() const
  function Index (line 385) | inline Index nonzeroPivots() const
  type internal (line 485) | typedef internal::scalar_score_coeff_op<Scalar> Scoring;
  type typename (line 486) | typedef typename Scoring::result_type Score;
  function namespace (line 576) | namespace internal {

FILE: include/eigen3/Eigen/src/QR/HouseholderQR.h
  function namespace (line 15) | namespace Eigen {
  function namespace (line 252) | namespace internal {

FILE: include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
  function namespace (line 37) | namespace Eigen {

FILE: include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 67) | typedef typename _MatrixType::RealScalar RealScalar;
  type SuiteSparse_long (line 68) | typedef SuiteSparse_long StorageIndex ;
  type SparseMatrix (line 69) | typedef SparseMatrix<Scalar, ColMajor, StorageIndex> MatrixType;
  type Map (line 70) | typedef Map<PermutationMatrix<Dynamic, Dynamic, StorageIndex> > Permutat...
  function SPQR_free (line 94) | void SPQR_free()
  function compute (line 103) | void compute(const _MatrixType& matrix)
  function setSPQROrdering (line 209) | void setSPQROrdering(int ord) { m_ordering = ord;}
  function setPivotThreshold (line 211) | void setPivotThreshold(const RealScalar& tol)
  function cholmod_common (line 218) | cholmod_common *cholmodCommon() const { return &m_cc; }
  type SPQR_QProduct (line 249) | struct SPQR_QProduct
  type typename (line 255) | typedef typename SPQRType::Scalar Scalar;
  type typename (line 256) | typedef typename SPQRType::StorageIndex StorageIndex;
  function m_spqr (line 283) | SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
  function m_spqr (line 303) | SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}

FILE: include/eigen3/Eigen/src/SVD/BDCSVD.h
  function namespace (line 25) | namespace Eigen {
  function setSwitchSize (line 167) | void setSwitchSize(int s)

FILE: include/eigen3/Eigen/src/SVD/JacobiSVD.h
  function namespace (line 14) | namespace Eigen {
  type typename (line 108) | typedef typename MatrixType::Scalar Scalar;
  type Matrix (line 119) | typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, TrOptions, ...
  function allocate (line 122) | void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditi...
  function run (line 133) | bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd,...
  function allocate (line 159) | void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditio...
  function run (line 170) | bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, ...
  type typename (line 198) | typedef typename MatrixType::Scalar Scalar;
  type Matrix (line 210) | typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, TrOptions, ...
  function allocate (line 213) | void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditio...
  function run (line 225) | bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, ...
  function allocate (line 258) | void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& ...
  function run (line 269) | bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const ...
  type typename (line 296) | typedef typename MatrixType::Scalar Scalar;
  type Matrix (line 306) | typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, Ma...
  function allocate (line 309) | void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& ...
  function run (line 321) | bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const ...
  type typename (line 357) | typedef typename MatrixType::RealScalar RealScalar;
  function run (line 358) | static bool run(typename SVD::WorkMatrixType&, SVD&, Index, Index, RealS...
  type typename (line 365) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 366) | typedef typename MatrixType::RealScalar RealScalar;
  function run (line 367) | static bool run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Ind...
  type typename (line 494) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 495) | typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
  type typename (line 506) | typedef typename Base::MatrixUType MatrixUType;
  type typename (line 507) | typedef typename Base::MatrixVType MatrixVType;
  type typename (line 508) | typedef typename Base::SingularValuesType SingularValuesType;
  type typename (line 510) | typedef typename internal::plain_row_type<MatrixType>::type RowType;
  type typename (line 511) | typedef typename internal::plain_col_type<MatrixType>::type ColType;
  type Matrix (line 512) | typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
  type internal (line 603) | struct internal
  type internal (line 605) | struct internal

FILE: include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
  function namespace (line 36) | namespace Eigen {

FILE: include/eigen3/Eigen/src/SVD/SVDBase.h
  function namespace (line 19) | namespace Eigen {
  function SingularValuesType (line 111) | const SingularValuesType& singularValues() const
  function Index (line 130) | inline Index rank() const

FILE: include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
  function namespace (line 14) | namespace Eigen {

FILE: include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
  function namespace (line 13) | namespace Eigen {
  function analyzePattern (line 230) | void analyzePattern(const MatrixType& a, bool doLDLT)
  type keep_diag (line 244) | struct keep_diag {
  function namespace (line 270) | namespace internal {
  type _Ordering (line 289) | typedef _Ordering OrderingType;
  type typename (line 291) | typedef typename MatrixType::Scalar                             Scalar;
  type typename (line 292) | typedef typename MatrixType::StorageIndex                       StorageI...
  type SparseMatrix (line 293) | typedef SparseMatrix<Scalar, ColMajor, StorageIndex>            CholMatr...
  type TriangularView (line 294) | typedef TriangularView<const CholMatrixType, Eigen::UnitLower>  MatrixL;
  type TriangularView (line 295) | typedef TriangularView<const typename
  function MatrixL (line 296) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
  function MatrixU (line 297) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoi...
  type _Ordering (line 303) | typedef _Ordering OrderingType;
  type _MatrixType (line 333) | typedef _MatrixType MatrixType;
  type SimplicialCholeskyBase (line 335) | typedef SimplicialCholeskyBase<SimplicialLLT> Base;
  type typename (line 336) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 337) | typedef typename MatrixType::RealScalar RealScalar;
  type typename (line 338) | typedef typename MatrixType::StorageIndex StorageIndex;
  type SparseMatrix (line 339) | typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
  type Matrix (line 340) | typedef Matrix<Scalar,Dynamic,1> VectorType;
  type internal (line 341) | typedef internal::traits<SimplicialLLT> Traits;
  type typename (line 342) | typedef typename Traits::MatrixL  MatrixL;
  type typename (line 343) | typedef typename Traits::MatrixU  MatrixU;
  function explicit (line 348) | explicit SimplicialLLT(const MatrixType& matrix)
  function analyzePattern (line 376) | void analyzePattern(const MatrixType& a)
  function factorize (line 387) | void factorize(const MatrixType& a)
  type _MatrixType (line 424) | typedef _MatrixType MatrixType;
  type SimplicialCholeskyBase (line 426) | typedef SimplicialCholeskyBase<SimplicialLDLT> Base;
  type typename (line 427) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 428) | typedef typename MatrixType::RealScalar RealScalar;
  type typename (line 429) | typedef typename MatrixType::StorageIndex StorageIndex;
  type SparseMatrix (line 430) | typedef SparseMatrix<Scalar,ColMajor,StorageIndex> CholMatrixType;
  type Matrix (line 431) | typedef Matrix<Scalar,Dynamic,1> VectorType;
  type internal (line 432) | typedef internal::traits<SimplicialLDLT> Traits;
  type typename (line 433) | typedef typename Traits::MatrixL  MatrixL;
  type typename (line 434) | typedef typename Traits::MatrixU  MatrixU;
  function explicit (line 440) | explicit SimplicialLDLT(const MatrixType& matrix)
  function MatrixU (line 455) | inline const MatrixU matrixU() const {
  function analyzePattern (line 473) | void analyzePattern(const MatrixType& a)
  function factorize (line 484) | void factorize(const MatrixType& a)
  function Scalar (line 490) | Scalar determinant() const
  function VectorType (line 543) | inline const VectorType vectorD() const {
  function analyzePattern (line 568) | void analyzePattern(const MatrixType& a)
  function factorize (line 579) | void factorize(const MatrixType& a)

FILE: include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
  function namespace (line 48) | namespace Eigen {

FILE: include/eigen3/Eigen/src/SparseCore/AmbiVector.h
  function namespace (line 13) | namespace Eigen {
  type typename (line 287) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function m_vector (line 296) | m_vector(vec)

FILE: include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
  function namespace (line 13) | namespace
Copy disabled (too large) Download .json
Condensed preview — 1683 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (14,602K chars).
[
  {
    "path": ".gitignore",
    "chars": 1374,
    "preview": "# Created by .ignore support plugin (hsz.mobi)\n### JetBrains template\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpSt"
  },
  {
    "path": ".travis.yml",
    "chars": 106,
    "preview": "language: cpp\n\ncompiler:\n  - gcc\n\nscript:\n  - mkdir build\n  - cd build\n  - cmake .. && make\n  - ./Location"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 1690,
    "preview": "cmake_minimum_required(VERSION 3.9)\nproject(Location)\nset(CMAKE_CXX_STANDARD 11)\n\nset(INC_DIR ./include/eigen3/)\ninclude"
  },
  {
    "path": "README.md",
    "chars": 6563,
    "preview": "# LOCATION\n\n[![Build Status](https://travis-ci.org/yyccR/Location.svg?branch=master)](https://travis-ci.org/yyccR/Locati"
  },
  {
    "path": "README_CN.md",
    "chars": 4999,
    "preview": "# Location\n\n> 定位是驾驶导航过程中是最基础的一步,也是十分关键的一步,一个准确的定位可以有效提高绑路的精度,也能更加精准感知驾驶形态的变化,由于本项目主要基于手机做导航定位,目前采用的是手机内置的传感器数据(陀螺仪,加速计,地"
  },
  {
    "path": "config/CMakeLists.txt",
    "chars": 89,
    "preview": "aux_source_directory(. config_src_lists)\nadd_library(Location_config ${config_src_lists})"
  },
  {
    "path": "config/Config.cpp",
    "chars": 2676,
    "preview": "//\n// Created by yangcheng on 2019/3/22.\n//\n\n#include <fstream>\n#include \"Config.h\"\n#include <string>\n#include \"iostream"
  },
  {
    "path": "config/Config.h",
    "chars": 875,
    "preview": "//\n// Created by yangcheng on 2019/3/22.\n//\n\n#ifndef LOCATION_CONFIG_H\n#define LOCATION_CONFIG_H\n\n\n#include <string>\n#in"
  },
  {
    "path": "config/config_files/Android.config",
    "chars": 1646,
    "preview": "gnssins.lng = 0.0\ngnssins.lat = 0.0\ngnssins.altitude = 0.0\ngnssins.accuracy = 0.0\ngnssins.speed = 0.0\ngnssins.bearing = "
  },
  {
    "path": "config/config_files/IOS.config",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/SensorCalibration.md",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/SensorDataChecking.md",
    "chars": 1653,
    "preview": "# Sensor data checking\n\n- [X] checking orientation sensor data\n\nThe orientation sensor contains roll, pitch and yaw thre"
  },
  {
    "path": "docs/SomeTestCaseResults.md",
    "chars": 1011,
    "preview": "# Some test case results.\n\n- left is origin GPS trajectory, right is INS trajectory.\n\n|      |                    origin"
  },
  {
    "path": "docs/apiCallDetails.md",
    "chars": 7828,
    "preview": "# Api call details\n\n## Input data format\n\n- gyroscope(x, y, z), origin gyroscope data, unit rad/s\n\n- accelerometer(x, y,"
  },
  {
    "path": "docs/implementDetails.md",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/sensors.md",
    "chars": 452,
    "preview": "- Smartphone sensor data:\n\n<img src=\"https://raw.githubusercontent.com/yyccR/Pictures/master/Location/sensordata1.png\" w"
  },
  {
    "path": "docs/trainingStopDetectModel.md",
    "chars": 8150,
    "preview": "# Training stop detection model.\n\n## Xgboost model\n\n- **data input**\n\n  - orientation diff between previous record and c"
  },
  {
    "path": "docs/workflow.md",
    "chars": 127,
    "preview": "## Workflow:\n\n<img src=\"https://raw.githubusercontent.com/yyccR/Pictures/master/INS/framework.png\" width=\"1100\" height=\""
  },
  {
    "path": "include/eigen3/.hg_archival.txt",
    "chars": 117,
    "preview": "repo: 8a21fd850624c931e448cbcfb38168cb2717c790\nnode: b3f3d4950030e3fa2e8fde6b68405106ae5685e1\nbranch: 3.3\ntag: 3.3.5\n"
  },
  {
    "path": "include/eigen3/.hgeol",
    "chars": 180,
    "preview": "[patterns]\n*.sh = LF\n*.MINPACK = CRLF\nscripts/*.in = LF\ndebug/msvc/*.dat = CRLF\ndebug/msvc/*.natvis = CRLF\nunsupported/t"
  },
  {
    "path": "include/eigen3/.hgignore",
    "chars": 244,
    "preview": "syntax: glob\nqrc_*cxx\n*.orig\n*.pyc\n*.diff\ndiff\n*.save\nsave\n*.old\n*.gmo\n*.qm\ncore\ncore.*\n*.bak\n*~\n*build*\n*.moc.*\n*.moc\nu"
  },
  {
    "path": "include/eigen3/.hgtags",
    "chars": 1750,
    "preview": "2db9468678c6480c9633b6272ff0e3599d1e11a3 2.0-beta3\n375224817dce669b6fa31d920d4c895a63fabf32 2.0-beta1\n3b8120f077865e2a07"
  },
  {
    "path": "include/eigen3/CMakeLists.txt",
    "chars": 23934,
    "preview": "project(Eigen3)\n\ncmake_minimum_required(VERSION 2.8.5)\n\n# guard against in-source builds\n\nif(${CMAKE_SOURCE_DIR} STREQUA"
  },
  {
    "path": "include/eigen3/COPYING.BSD",
    "chars": 1516,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/COPYING.GPL",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "include/eigen3/COPYING.LGPL",
    "chars": 26530,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "include/eigen3/COPYING.MINPACK",
    "chars": 2194,
    "preview": "Minpack Copyright Notice (1999) University of Chicago.  All rights reserved\n\nRedistribution and use in source and binary"
  },
  {
    "path": "include/eigen3/COPYING.MPL2",
    "chars": 16726,
    "preview": "Mozilla Public License Version 2.0\n==================================\n\n1. Definitions\n--------------\n\n1.1. \"Contributor\""
  },
  {
    "path": "include/eigen3/COPYING.README",
    "chars": 779,
    "preview": "Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:\n  http://www.mozilla.org/MPL/2.0/\n  http://www.mozil"
  },
  {
    "path": "include/eigen3/CTestConfig.cmake",
    "chars": 543,
    "preview": "## This file should be placed in the root directory of your project.\n## Then modify the CMakeLists.txt file in the root "
  },
  {
    "path": "include/eigen3/CTestCustom.cmake.in",
    "chars": 105,
    "preview": "\nset(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS \"2000\")\nset(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS   \"2000\")\n"
  },
  {
    "path": "include/eigen3/Eigen/CMakeLists.txt",
    "chars": 694,
    "preview": "include(RegexUtils)\ntest_escape_string_as_regex()\n\nfile(GLOB Eigen_directory_files \"*\")\n\nescape_string_as_regex(ESCAPED_"
  },
  {
    "path": "include/eigen3/Eigen/Cholesky",
    "chars": 1206,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/CholmodSupport",
    "chars": 1900,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/Core",
    "chars": 17969,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/Dense",
    "chars": 122,
    "preview": "#include \"Core\"\n#include \"LU\"\n#include \"Cholesky\"\n#include \"QR\"\n#include \"SVD\"\n#include \"Geometry\"\n#include \"Eigenvalues"
  },
  {
    "path": "include/eigen3/Eigen/Eigen",
    "chars": 35,
    "preview": "#include \"Dense\"\n#include \"Sparse\"\n"
  },
  {
    "path": "include/eigen3/Eigen/Eigenvalues",
    "chars": 1822,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/Geometry",
    "chars": 2050,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/Householder",
    "chars": 874,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/IterativeLinearSolvers",
    "chars": 2083,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/Jacobi",
    "chars": 939,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/LU",
    "chars": 1433,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/MetisSupport",
    "chars": 991,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/OrderingMethods",
    "chars": 2483,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/PaStiXSupport",
    "chars": 1676,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/PardisoSupport",
    "chars": 1116,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/QR",
    "chars": 1317,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/QtAlignedMalloc",
    "chars": 945,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/SPQRSupport",
    "chars": 1162,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/SVD",
    "chars": 1629,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/Sparse",
    "chars": 919,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/SparseCholesky",
    "chars": 1371,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2013 G"
  },
  {
    "path": "include/eigen3/Eigen/SparseCore",
    "chars": 2240,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/SparseLU",
    "chars": 1711,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2012 Désiré"
  },
  {
    "path": "include/eigen3/Eigen/SparseQR",
    "chars": 1222,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/StdDeque",
    "chars": 797,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/StdList",
    "chars": 726,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Hauke "
  },
  {
    "path": "include/eigen3/Eigen/StdVector",
    "chars": 803,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/SuperLUSupport",
    "chars": 2243,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/UmfPackSupport",
    "chars": 1382,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/src/Cholesky/LDLT.h",
    "chars": 24440,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2011 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Cholesky/LLT.h",
    "chars": 18395,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h",
    "chars": 3974,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h",
    "chars": 22307,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Array.h",
    "chars": 12218,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ArrayBase.h",
    "chars": 8179,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ArrayWrapper.h",
    "chars": 6775,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Assign.h",
    "chars": 2720,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007 Michae"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/AssignEvaluator.h",
    "chars": 38153,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2011 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Assign_MKL.h",
    "chars": 12479,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inr"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/BandMatrix.h",
    "chars": 13910,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Block.h",
    "chars": 18064,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/BooleanRedux.h",
    "chars": 4249,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CommaInitializer.h",
    "chars": 5689,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ConditionEstimator.h",
    "chars": 6970,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Rasmus"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CoreEvaluators.h",
    "chars": 62197,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2011 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CoreIterators.h",
    "chars": 4525,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CwiseBinaryOp.h",
    "chars": 7593,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CwiseNullaryOp.h",
    "chars": 31424,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CwiseTernaryOp.h",
    "chars": 8256,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CwiseUnaryOp.h",
    "chars": 3877,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/CwiseUnaryView.h",
    "chars": 5282,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/DenseBase.h",
    "chars": 27420,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/DenseCoeffsBase.h",
    "chars": 24212,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/DenseStorage.h",
    "chars": 21959,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Diagonal.h",
    "chars": 9597,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2009 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/DiagonalMatrix.h",
    "chars": 12666,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/DiagonalProduct.h",
    "chars": 970,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Dot.h",
    "chars": 11507,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008, "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/EigenBase.h",
    "chars": 5619,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ForceAlignedAccess.h",
    "chars": 4769,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Fuzzy.h",
    "chars": 5705,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/GeneralProduct.h",
    "chars": 21123,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/GenericPacketMath.h",
    "chars": 22185,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/GlobalFunctions.h",
    "chars": 10222,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010-2016 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/IO.h",
    "chars": 7076,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Inverse.h",
    "chars": 3519,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Map.h",
    "chars": 7239,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/MapBase.h",
    "chars": 10621,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/MathFunctions.h",
    "chars": 40402,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/MathFunctionsImpl.h",
    "chars": 3369,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Pedro "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Matrix.h",
    "chars": 19170,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/MatrixBase.h",
    "chars": 22154,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2009 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/NestByValue.h",
    "chars": 3400,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/NoAlias.h",
    "chars": 3582,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/NumTraits.h",
    "chars": 9234,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/PermutationMatrix.h",
    "chars": 21646,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/PlainObjectBase.h",
    "chars": 45180,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Product.h",
    "chars": 7235,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2011 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ProductEvaluators.h",
    "chars": 49497,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Random.h",
    "chars": 6379,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Redux.h",
    "chars": 17852,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Ref.h",
    "chars": 12800,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2012 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Replicate.h",
    "chars": 5595,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/ReturnByValue.h",
    "chars": 4200,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Reverse.h",
    "chars": 7073,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Select.h",
    "chars": 6020,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/SelfAdjointView.h",
    "chars": 14245,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h",
    "chars": 1697,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Solve.h",
    "chars": 6795,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/SolveTriangular.h",
    "chars": 9031,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/SolverBase.h",
    "chars": 4365,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2015 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/StableNorm.h",
    "chars": 7692,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Stride.h",
    "chars": 3865,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Swap.h",
    "chars": 2683,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Transpose.h",
    "chars": 14777,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Transpositions.h",
    "chars": 14386,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010-2011 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/TriangularMatrix.h",
    "chars": 37234,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/VectorBlock.h",
    "chars": 3462,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/VectorwiseOp.h",
    "chars": 29441,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/Visitor.h",
    "chars": 8074,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX/Complex.h",
    "chars": 18037,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h",
    "chars": 17776,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Pedro "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h",
    "chars": 27787,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h",
    "chars": 1194,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2015 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h",
    "chars": 15733,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Pedro "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h",
    "chars": 50936,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h",
    "chars": 16443,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h",
    "chars": 10797,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007 Julien"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h",
    "chars": 37671,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2016 K"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h",
    "chars": 4240,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/Half.h",
    "chars": 22059,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h",
    "chars": 2387,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h",
    "chars": 10744,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h",
    "chars": 35442,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h",
    "chars": 5509,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h",
    "chars": 1989,
    "preview": "\n// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2017 Gael "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/Default/Settings.h",
    "chars": 1746,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/NEON/Complex.h",
    "chars": 17706,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h",
    "chars": 2846,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h",
    "chars": 28726,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/SSE/Complex.h",
    "chars": 19426,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h",
    "chars": 18888,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007 Julien"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h",
    "chars": 35825,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h",
    "chars": 1759,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2015 Benoit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h",
    "chars": 15366,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h",
    "chars": 4418,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007 Julien"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h",
    "chars": 32283,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Konsta"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h",
    "chars": 6284,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h",
    "chars": 18263,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h",
    "chars": 8229,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2016 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/StlFunctors.h",
    "chars": 4400,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h",
    "chars": 607,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Eugene"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h",
    "chars": 27944,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2016 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h",
    "chars": 81106,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h",
    "chars": 18478,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h",
    "chars": 15188,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h",
    "chars": 6907,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h",
    "chars": 5017,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h",
    "chars": 26808,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h",
    "chars": 6368,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/Parallelizer.h",
    "chars": 4905,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h",
    "chars": 19632,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h",
    "chars": 11198,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h",
    "chars": 9901,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h",
    "chars": 5209,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h",
    "chars": 6105,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h",
    "chars": 4066,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h",
    "chars": 20403,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h",
    "chars": 13743,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h",
    "chars": 14722,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h",
    "chars": 10571,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h",
    "chars": 13979,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h",
    "chars": 6513,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h",
    "chars": 5741,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/BlasUtil.h",
    "chars": 15722,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/Constants.h",
    "chars": 21579,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2015 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h",
    "chars": 3564,
    "preview": "#ifndef EIGEN_WARNINGS_DISABLED\n#define EIGEN_WARNINGS_DISABLED\n\n#ifdef _MSC_VER\n  // 4100 - unreferenced formal paramet"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h",
    "chars": 14150,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/MKL_support.h",
    "chars": 4026,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/Macros.h",
    "chars": 36570,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2015 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/Memory.h",
    "chars": 40154,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2015 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/Meta.h",
    "chars": 19365,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2015 G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/NonMPL2.h",
    "chars": 85,
    "preview": "#ifdef EIGEN_MPL2_ONLY\n#error Including non-MPL2 code in EIGEN_MPL2_ONLY mode\n#endif\n"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h",
    "chars": 809,
    "preview": "#ifdef EIGEN_WARNINGS_DISABLED\n#undef EIGEN_WARNINGS_DISABLED\n\n#ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS\n  #ifde"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/StaticAssert.h",
    "chars": 10518,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Core/util/XprHelper.h",
    "chars": 34198,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h",
    "chars": 12558,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Claire"
  },
  {
    "path": "include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h",
    "chars": 17021,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Claire"
  }
]

// ... and 1483 more files (download for full content)

About this extraction

This page contains the full source code of the yyccR/Location GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1683 files (13.4 MB), approximately 3.6M tokens, and a symbol index with 7488 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!