├── .clang-format ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── feature-request.md │ └── questions-help-support.md ├── scripts │ ├── python.sh │ ├── python_wheels │ │ ├── build_wheels.sh │ │ ├── cibw_before_all.sh │ │ └── cleanup_gtsam_develop.sh │ └── unix.sh └── workflows │ ├── build-cibw.yml │ ├── build-linux.yml │ ├── build-macos.yml │ ├── build-python.yml │ ├── build-special.yml │ ├── build-windows.yml │ ├── deploy.yml │ ├── prod-cibw.yml │ ├── trigger-packaging.yml │ ├── trigger-python.yml │ └── vcpkg.yml ├── .gitignore ├── .project ├── .settings ├── .gitignore └── org.eclipse.cdt.core.prefs ├── CMakeLists.txt ├── CppUnitLite ├── CMakeLists.txt ├── Failure.h ├── Test.cpp ├── Test.h ├── TestHarness.h ├── TestRegistry.cpp ├── TestRegistry.h ├── TestResult.cpp └── TestResult.h ├── DEVELOP.md ├── GTSAM-Concepts.md ├── INSTALL.md ├── LICENSE ├── LICENSE.BSD ├── README.md ├── THANKS.md ├── USAGE.md ├── Using-GTSAM-EXPORT.md ├── cmake ├── CMakeLists.txt ├── Config.cmake.in ├── FindGooglePerfTools.cmake ├── FindMKL.cmake ├── FindNumPy.cmake ├── GTSAMCMakeToolsConfig.cmake ├── GtsamAddPch.cmake ├── GtsamBuildTypes.cmake ├── GtsamMakeConfigFile.cmake ├── GtsamPrinting.cmake ├── GtsamTesting.cmake ├── HandleAllocators.cmake ├── HandleBoost.cmake ├── HandleCCache.cmake ├── HandleCPack.cmake ├── HandleCephes.cmake ├── HandleEigen.cmake ├── HandleFinalChecks.cmake ├── HandleGeneralOptions.cmake ├── HandleGlobalBuildFlags.cmake ├── HandleMKL.cmake ├── HandleMetis.cmake ├── HandleOpenMP.cmake ├── HandlePerfTools.cmake ├── HandlePrintConfiguration.cmake ├── HandlePython.cmake ├── HandleTBB.cmake ├── HandleUninstall.cmake ├── README.html ├── README.md ├── cmake_uninstall.cmake.in ├── dllexport.h.in ├── example_cmake_find_gtsam │ ├── CMakeLists.txt │ └── main.cpp └── obsolete │ ├── FindCppUnitLite.cmake │ ├── FindWrap.cmake │ └── GtsamTestingObsolete.cmake ├── containers ├── Containerfile ├── README.md ├── compose.yaml ├── gtsam-vnc │ ├── Containerfile │ ├── bootstrap.sh │ ├── compose.yaml │ └── hub_push.sh └── hub_push.sh ├── doc ├── .gitignore ├── CMakeLists.txt ├── Code │ ├── LocalizationExample2.cpp │ ├── LocalizationFactor.cpp │ ├── LocalizationOutput5.txt │ ├── OdometryExample.cpp │ ├── OdometryMarginals.cpp │ ├── OdometryOptimize.cpp │ ├── OdometryOutput1.txt │ ├── OdometryOutput2.txt │ ├── OdometryOutput3.txt │ ├── PlanarSLAMExample.m │ ├── PlanarSLAMExample.txt │ ├── Pose2SLAMExample-graph.m │ ├── Pose2SLAMExample.cpp │ ├── Pose2SLAMExample.m │ ├── Pose3SLAMExample-graph.m │ ├── SFMExample.m │ ├── VisualISAMExample.cpp │ ├── calls.txt │ ├── print.txt │ └── whos.txt ├── CodingGuidelines.docx ├── CodingGuidelines.lyx ├── Doxyfile.in ├── DoxygenLayout.xml ├── Hybrid.lyx ├── Hybrid.pdf ├── ImuFactor.lyx ├── ImuFactor.pdf ├── LieGroups.lyx ├── LieGroups.pdf ├── Mathematica │ ├── CalibratedCamera.nb │ ├── CalibratedStereoCamera.nb │ ├── Quaternion-Logmap.nb │ ├── Rot3.nb │ ├── StereoCamera.nb │ └── dexpInvL_SE2.nb ├── PreintegratedIMUJacobians.pdf ├── cholesky.lyx ├── common_macros.tex ├── examples.md ├── expressions.md ├── generating │ └── gpt_generate.py ├── gtsam-coordinate-frames.lyx ├── gtsam-coordinate-frames.pdf ├── gtsam.bib ├── gtsam.lyx ├── gtsam.pdf ├── images │ ├── Beijing.pdf │ ├── FactorGraph.pdf │ ├── FactorGraph2.pdf │ ├── FactorGraph3.pdf │ ├── FactorGraph4.pdf │ ├── Localization.pdf │ ├── Odometry.pdf │ ├── Victoria.pdf │ ├── circular.pdf │ ├── circular.png │ ├── cube.pdf │ ├── example1.pdf │ ├── example2.pdf │ ├── gtsam-structure.graffle │ ├── gtsam-structure.pdf │ ├── hmm-FG.pdf │ ├── hmm.pdf │ ├── littleRobot.pdf │ ├── n-steps.pdf │ ├── n-steps.png │ ├── sphere2500-result.pdf │ └── w100-result.pdf ├── macros.lyx ├── math.lyx ├── math.pdf ├── refs.bib ├── robust.pdf ├── stats.html ├── trustregion.bib ├── trustregion.lyx ├── trustregion.pdf └── user_guide.md ├── examples ├── ABC.h ├── ABC_EQF.h ├── ABC_EQF_Demo.cpp ├── CMakeLists.txt ├── CameraResectioning.cpp ├── City10000.h ├── CombinedImuFactorsExample.cpp ├── CreateSFMExampleData.cpp ├── Data │ ├── .gitignore │ ├── 18pointExample1.txt │ ├── 5pointExample1.txt │ ├── 5pointExample2.txt │ ├── Balbianello.out │ ├── Balbianello │ │ ├── BalbianelloMedium-1.jpg │ │ ├── BalbianelloMedium-1.key.gz │ │ ├── BalbianelloMedium-2.jpg │ │ ├── BalbianelloMedium-2.key.gz │ │ ├── BalbianelloMedium-3.jpg │ │ ├── BalbianelloMedium-3.key.gz │ │ ├── BalbianelloMedium-4.jpg │ │ ├── BalbianelloMedium-4.key.gz │ │ ├── BalbianelloMedium-5.jpg │ │ └── BalbianelloMedium-5.key.gz │ ├── EqFdata.csv │ ├── HS21.QPS │ ├── HS268.QPS │ ├── HS35.QPS │ ├── HS35MOD.QPS │ ├── HS51.QPS │ ├── HS52.QPS │ ├── ISAM2_GT_city10000.txt │ ├── ISAM2_SmartFactorStereo_IMU.txt │ ├── KittiEquivBiasedImu.txt │ ├── KittiEquivBiasedImu_metadata.txt │ ├── KittiGps_converted.txt │ ├── Klaus3.g2o │ ├── Plaza1_.mat │ ├── Plaza1_DR.txt │ ├── Plaza1_TD.txt │ ├── Plaza2_.mat │ ├── Plaza2_DR.txt │ ├── Plaza2_TD.txt │ ├── QPExample.QPS │ ├── QPTEST.QPS │ ├── T1_city10000_04.txt │ ├── VO_calibration.txt │ ├── VO_calibration00.txt │ ├── VO_calibration00s.txt │ ├── VO_camera_poses00.txt │ ├── VO_camera_poses00s.txt │ ├── VO_camera_poses_large.txt │ ├── VO_stereo_factors00.txt │ ├── VO_stereo_factors00s.txt │ ├── VO_stereo_factors_large.txt │ ├── dubrovnik-1-1-pre.txt │ ├── dubrovnik-3-7-18-pre.txt │ ├── dubrovnik-3-7-pre.txt │ ├── example.graph │ ├── example_with_vertices.g2o │ ├── imuAndGPSdata.csv │ ├── issue1452.txt │ ├── noisyToyGraph.txt │ ├── optimizedNoisyToyGraph.txt │ ├── orientationsNoisyToyGraph.txt │ ├── pose2example.txt │ ├── pose3Localizationexample.txt │ ├── pose3example-grid.txt │ ├── pose3example-offdiagonal-rewritten.txt │ ├── pose3example-offdiagonal.txt │ ├── pose3example.txt │ ├── quadraped_imu_data.csv │ ├── randomGrid3D.xml │ ├── simpleGraph10gradIter.txt │ ├── sphere2500.txt │ ├── sphere2500_groundtruth.txt │ ├── sphere_smallnoise.graph │ ├── toy3D.xml │ ├── toyExample.g2o │ ├── victoria_park.txt │ ├── w100.graph │ ├── w10000.graph │ └── w20000.txt ├── DiscreteBayesNetExample.cpp ├── DiscreteBayesNet_FG.cpp ├── EssentialViewGraphExample.cpp ├── FisheyeExample.cpp ├── FixedLagSmootherExample.cpp ├── GEKF_Rot3Example.cpp ├── GNCExample.cpp ├── HMMExample.cpp ├── Hybrid_City10000.cpp ├── IEKF_NavstateExample.cpp ├── IEKF_SE2Example.cpp ├── IMUKittiExampleGPS.cpp ├── ISAM2Example_SmartFactor.cpp ├── ISAM2_City10000.cpp ├── ImuFactorsExample.cpp ├── ImuFactorsExample2.cpp ├── IncrementalFixedLagSmootherExample.cpp ├── InverseKinematicsExampleExpressions.cpp ├── LocalizationExample.cpp ├── METISOrderingExample.cpp ├── OdometryExample.cpp ├── PlanarSLAMExample.cpp ├── Pose2SLAMExample.cpp ├── Pose2SLAMExampleExpressions.cpp ├── Pose2SLAMExample_g2o.cpp ├── Pose2SLAMExample_graph.cpp ├── Pose2SLAMExample_graphviz.cpp ├── Pose2SLAMExample_lago.cpp ├── Pose2SLAMStressTest.cpp ├── Pose2SLAMwSPCG.cpp ├── Pose3Localization.cpp ├── Pose3SLAMExampleExpressions_BearingRangeWithTransform.cpp ├── Pose3SLAMExample_changeKeys.cpp ├── Pose3SLAMExample_g2o.cpp ├── Pose3SLAMExample_initializePose3Chordal.cpp ├── Pose3SLAMExample_initializePose3Gradient.cpp ├── README.md ├── RangeISAMExample_plaza2.cpp ├── SFMExample.cpp ├── SFMExampleExpressions.cpp ├── SFMExampleExpressions_bal.cpp ├── SFMExample_SmartFactor.cpp ├── SFMExample_SmartFactorPCG.cpp ├── SFMExample_bal.cpp ├── SFMExample_bal_COLAMD_METIS.cpp ├── SFMdata.h ├── SelfCalibrationExample.cpp ├── ShonanAveragingCLI.cpp ├── SimpleRotation.cpp ├── SolverComparer.cpp ├── StereoVOExample.cpp ├── StereoVOExample_large.cpp ├── TimeTBB.cpp ├── TriangulationLOSTExample.cpp ├── UGM_chain.cpp ├── UGM_small.cpp ├── ViewGraphExample.cpp ├── VisualISAM2Example.cpp ├── VisualISAMExample.cpp ├── easyPoint2KalmanFilter.cpp ├── elaboratePoint2KalmanFilter.cpp └── plot_city10000.m ├── gtsam ├── 3rdparty │ ├── CCOLAMD │ │ ├── Demo │ │ │ ├── Makefile │ │ │ ├── ccolamd_example.c │ │ │ ├── ccolamd_example.out │ │ │ ├── ccolamd_l_example.c │ │ │ └── ccolamd_l_example.out │ │ ├── Doc │ │ │ ├── ChangeLog │ │ │ ├── License.txt │ │ │ └── lesser.txt │ │ ├── Include │ │ │ └── ccolamd.h │ │ ├── Lib │ │ │ └── Makefile │ │ ├── MATLAB │ │ │ ├── Contents.m │ │ │ ├── ccolamd.m │ │ │ ├── ccolamd_demo.m │ │ │ ├── ccolamd_install.m │ │ │ ├── ccolamd_make.m │ │ │ ├── ccolamd_test.m │ │ │ ├── ccolamdmex.c │ │ │ ├── ccolamdtestmex.c │ │ │ ├── ccolamdtestmex.m │ │ │ ├── csymamd.m │ │ │ ├── csymamdmex.c │ │ │ ├── csymamdtestmex.c │ │ │ ├── csymamdtestmex.m │ │ │ └── luflops.m │ │ ├── Makefile │ │ ├── README.txt │ │ └── Source │ │ │ └── ccolamd.c │ ├── CMakeLists.txt │ ├── Eigen │ │ ├── .gitignore │ │ ├── .gitlab-ci.yml │ │ ├── .gitlab │ │ │ ├── issue_templates │ │ │ │ ├── Bug Report.md │ │ │ │ └── Feature Request.md │ │ │ └── merge_request_templates │ │ │ │ └── Merge Request Template.md │ │ ├── .hgeol │ │ ├── CMakeLists.txt │ │ ├── COPYING.APACHE │ │ ├── COPYING.BSD │ │ ├── COPYING.GPL │ │ ├── COPYING.LGPL │ │ ├── COPYING.MINPACK │ │ ├── COPYING.MPL2 │ │ ├── COPYING.README │ │ ├── CTestConfig.cmake │ │ ├── CTestCustom.cmake.in │ │ ├── Eigen │ │ │ ├── Cholesky │ │ │ ├── CholmodSupport │ │ │ ├── Core │ │ │ ├── Dense │ │ │ ├── Eigen │ │ │ ├── Eigenvalues │ │ │ ├── Geometry │ │ │ ├── Householder │ │ │ ├── IterativeLinearSolvers │ │ │ ├── Jacobi │ │ │ ├── KLUSupport │ │ │ ├── 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 │ │ │ │ ├── ArithmeticSequence.h │ │ │ │ ├── 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 │ │ │ │ ├── IndexedView.h │ │ │ │ ├── Inverse.h │ │ │ │ ├── Map.h │ │ │ │ ├── MapBase.h │ │ │ │ ├── MathFunctions.h │ │ │ │ ├── MathFunctionsImpl.h │ │ │ │ ├── Matrix.h │ │ │ │ ├── MatrixBase.h │ │ │ │ ├── NestByValue.h │ │ │ │ ├── NoAlias.h │ │ │ │ ├── NumTraits.h │ │ │ │ ├── PartialReduxEvaluator.h │ │ │ │ ├── PermutationMatrix.h │ │ │ │ ├── PlainObjectBase.h │ │ │ │ ├── Product.h │ │ │ │ ├── ProductEvaluators.h │ │ │ │ ├── Random.h │ │ │ │ ├── Redux.h │ │ │ │ ├── Ref.h │ │ │ │ ├── Replicate.h │ │ │ │ ├── Reshaped.h │ │ │ │ ├── ReturnByValue.h │ │ │ │ ├── Reverse.h │ │ │ │ ├── Select.h │ │ │ │ ├── SelfAdjointView.h │ │ │ │ ├── SelfCwiseBinaryOp.h │ │ │ │ ├── Solve.h │ │ │ │ ├── SolveTriangular.h │ │ │ │ ├── SolverBase.h │ │ │ │ ├── StableNorm.h │ │ │ │ ├── StlIterators.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 │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── AltiVec │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── MatrixProduct.h │ │ │ │ │ │ ├── MatrixProductCommon.h │ │ │ │ │ │ ├── MatrixProductMMA.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── CUDA │ │ │ │ │ │ └── Complex.h │ │ │ │ │ ├── Default │ │ │ │ │ │ ├── BFloat16.h │ │ │ │ │ │ ├── ConjHelper.h │ │ │ │ │ │ ├── GenericPacketMathFunctions.h │ │ │ │ │ │ ├── GenericPacketMathFunctionsFwd.h │ │ │ │ │ │ ├── Half.h │ │ │ │ │ │ ├── Settings.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── GPU │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── HIP │ │ │ │ │ │ └── hcc │ │ │ │ │ │ │ └── math_constants.h │ │ │ │ │ ├── MSA │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ └── PacketMath.h │ │ │ │ │ ├── NEON │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── GeneralBlockPanelKernel.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SSE │ │ │ │ │ │ ├── Complex.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SVE │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ └── TypeCasting.h │ │ │ │ │ ├── SYCL │ │ │ │ │ │ ├── InteropHeaders.h │ │ │ │ │ │ ├── MathFunctions.h │ │ │ │ │ │ ├── PacketMath.h │ │ │ │ │ │ ├── SyclMemoryModel.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 │ │ │ │ │ ├── ConfigureVectorization.h │ │ │ │ │ ├── Constants.h │ │ │ │ │ ├── DisableStupidWarnings.h │ │ │ │ │ ├── ForwardDeclarations.h │ │ │ │ │ ├── IndexedViewHelper.h │ │ │ │ │ ├── IntegralConstant.h │ │ │ │ │ ├── MKL_support.h │ │ │ │ │ ├── Macros.h │ │ │ │ │ ├── Memory.h │ │ │ │ │ ├── Meta.h │ │ │ │ │ ├── NonMPL2.h │ │ │ │ │ ├── ReenableStupidWarnings.h │ │ │ │ │ ├── ReshapedHelper.h │ │ │ │ │ ├── StaticAssert.h │ │ │ │ │ ├── SymbolicIndex.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_SIMD.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 │ │ │ │ ├── KLUSupport │ │ │ │ └── KLUSupport.h │ │ │ │ ├── LU │ │ │ │ ├── Determinant.h │ │ │ │ ├── FullPivLU.h │ │ │ │ ├── InverseImpl.h │ │ │ │ ├── PartialPivLU.h │ │ │ │ ├── PartialPivLU_LAPACKE.h │ │ │ │ └── arch │ │ │ │ │ └── InverseSize4.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 │ │ │ │ ├── IndexedViewMethods.h │ │ │ │ ├── MatrixCwiseBinaryOps.h │ │ │ │ ├── MatrixCwiseUnaryOps.h │ │ │ │ └── ReshapedMethods.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_move_semantics.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 │ │ │ │ ├── changesets.txt │ │ │ │ ├── gemm.cpp │ │ │ │ ├── gemm_common.h │ │ │ │ ├── gemm_settings.txt │ │ │ │ ├── gemm_square_settings.txt │ │ │ │ ├── gemv.cpp │ │ │ │ ├── gemv_common.h │ │ │ │ ├── gemv_settings.txt │ │ │ │ ├── gemv_square_settings.txt │ │ │ │ ├── gemvt.cpp │ │ │ │ ├── lazy_gemm.cpp │ │ │ │ ├── lazy_gemm_settings.txt │ │ │ │ ├── llt.cpp │ │ │ │ ├── make_plot.sh │ │ │ │ ├── resources │ │ │ │ │ ├── chart_footer.html │ │ │ │ │ ├── chart_header.html │ │ │ │ │ ├── footer.html │ │ │ │ │ ├── header.html │ │ │ │ │ ├── s1.js │ │ │ │ │ └── s2.js │ │ │ │ ├── run.sh │ │ │ │ ├── runall.sh │ │ │ │ ├── trmv_lo.cpp │ │ │ │ ├── trmv_lot.cpp │ │ │ │ ├── trmv_up.cpp │ │ │ │ └── trmv_upt.cpp │ │ │ ├── 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 │ │ │ │ ├── eigen_sycl_bench.sh │ │ │ │ ├── eigen_sycl_bench_contract.sh │ │ │ │ ├── tensor_benchmarks.h │ │ │ │ ├── tensor_benchmarks_cpu.cc │ │ │ │ ├── tensor_benchmarks_fp16_gpu.cu │ │ │ │ ├── tensor_benchmarks_gpu.cu │ │ │ │ ├── tensor_benchmarks_sycl.cc │ │ │ │ └── tensor_contract_sycl_bench.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.dat │ │ │ │ ├── cblat2.f │ │ │ │ ├── cblat3.dat │ │ │ │ ├── cblat3.f │ │ │ │ ├── dblat1.f │ │ │ │ ├── dblat2.dat │ │ │ │ ├── dblat2.f │ │ │ │ ├── dblat3.dat │ │ │ │ ├── dblat3.f │ │ │ │ ├── runblastest.sh │ │ │ │ ├── sblat1.f │ │ │ │ ├── sblat2.dat │ │ │ │ ├── sblat2.f │ │ │ │ ├── sblat3.dat │ │ │ │ ├── sblat3.f │ │ │ │ ├── zblat1.f │ │ │ │ ├── zblat2.dat │ │ │ │ ├── zblat2.f │ │ │ │ ├── zblat3.dat │ │ │ │ └── zblat3.f │ │ │ └── xerbla.cpp │ │ ├── ci │ │ │ ├── CTest2JUnit.xsl │ │ │ ├── README.md │ │ │ ├── build.gitlab-ci.yml │ │ │ ├── smoketests.gitlab-ci.yml │ │ │ └── test.gitlab-ci.yml │ │ ├── cmake │ │ │ ├── ComputeCppCompilerChecks.cmake │ │ │ ├── ComputeCppIRMap.cmake │ │ │ ├── Eigen3Config.cmake.in │ │ │ ├── Eigen3ConfigLegacy.cmake.in │ │ │ ├── EigenConfigureTesting.cmake │ │ │ ├── EigenDetermineOSVersion.cmake │ │ │ ├── EigenDetermineVSServicePack.cmake │ │ │ ├── EigenSmokeTestList.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 │ │ │ ├── FindKLU.cmake │ │ │ ├── FindLAPACK.cmake │ │ │ ├── FindMPFR.cmake │ │ │ ├── FindMPREAL.cmake │ │ │ ├── FindMetis.cmake │ │ │ ├── FindPTSCOTCH.cmake │ │ │ ├── FindPastix.cmake │ │ │ ├── FindSPQR.cmake │ │ │ ├── FindScotch.cmake │ │ │ ├── FindStandardMathLibrary.cmake │ │ │ ├── FindSuperLU.cmake │ │ │ ├── FindTriSYCL.cmake │ │ │ ├── FindUmfpack.cmake │ │ │ ├── RegexUtils.cmake │ │ │ └── UseEigen3.cmake │ │ ├── debug │ │ │ ├── gdb │ │ │ │ ├── __init__.py │ │ │ │ └── printers.py │ │ │ └── msvc │ │ │ │ ├── eigen.natvis │ │ │ │ └── eigen_autoexp_part.dat │ │ ├── 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 │ │ │ ├── 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 │ │ │ ├── Eigen_Silly_Professor_64x64.png │ │ │ ├── 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 │ │ │ ├── TutorialReshape.dox │ │ │ ├── TutorialSTL.dox │ │ │ ├── TutorialSlicingIndexing.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_FixedReshaped.cpp │ │ │ │ ├── class_FixedVectorBlock.cpp │ │ │ │ ├── class_Reshaped.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 │ │ │ ├── ftv2node.png │ │ │ ├── ftv2pnode.png │ │ │ ├── snippets │ │ │ │ ├── .krazy │ │ │ │ ├── AngleAxis_mimic_euler.cpp │ │ │ │ ├── Array_initializer_list_23_cxx11.cpp │ │ │ │ ├── Array_initializer_list_vector_cxx11.cpp │ │ │ │ ├── Array_variadic_ctor_cxx11.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_rint.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_deprecated.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_colwise_iterator_cxx11.cpp │ │ │ │ ├── MatrixBase_computeInverseAndDetWithCheck.cpp │ │ │ │ ├── MatrixBase_computeInverseWithCheck.cpp │ │ │ │ ├── MatrixBase_cwiseAbs.cpp │ │ │ │ ├── MatrixBase_cwiseAbs2.cpp │ │ │ │ ├── MatrixBase_cwiseArg.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_reshaped_auto.cpp │ │ │ │ ├── MatrixBase_reshaped_fixed.cpp │ │ │ │ ├── MatrixBase_reshaped_int_int.cpp │ │ │ │ ├── MatrixBase_reshaped_to_vector.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_initializer_list_23_cxx11.cpp │ │ │ │ ├── Matrix_initializer_list_vector_cxx11.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 │ │ │ │ ├── Matrix_variadic_ctor_cxx11.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 │ │ │ │ ├── Slicing_arrayexpr.cpp │ │ │ │ ├── Slicing_custom_padding_cxx11.cpp │ │ │ │ ├── Slicing_rawarray_cxx11.cpp │ │ │ │ ├── Slicing_stdvector_cxx11.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_range_for_loop_1d_cxx11.cpp │ │ │ │ ├── Tutorial_range_for_loop_2d_cxx11.cpp │ │ │ │ ├── Tutorial_reshaped_vs_resize_1.cpp │ │ │ │ ├── Tutorial_reshaped_vs_resize_2.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 │ │ │ │ ├── Tutorial_std_sort.cpp │ │ │ │ ├── Tutorial_std_sort_rows_cxx11.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 │ │ │ ├── initializer_list_1.cpp │ │ │ ├── initializer_list_2.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 │ │ │ ├── eigen_gen_split_test_help.cmake │ │ │ ├── eigen_monitor_perf.sh │ │ │ ├── release.in │ │ │ └── relicense.py │ │ ├── signature_of_eigen3_matrix_library │ │ ├── test │ │ │ ├── AnnoyingScalar.h │ │ │ ├── CMakeLists.txt │ │ │ ├── MovableScalar.h │ │ │ ├── SafeScalar.h │ │ │ ├── adjoint.cpp │ │ │ ├── array_cwise.cpp │ │ │ ├── array_for_matrix.cpp │ │ │ ├── array_of_string.cpp │ │ │ ├── array_replicate.cpp │ │ │ ├── array_reverse.cpp │ │ │ ├── bandmatrix.cpp │ │ │ ├── basicstuff.cpp │ │ │ ├── bdcsvd.cpp │ │ │ ├── bfloat16_float.cpp │ │ │ ├── bicgstab.cpp │ │ │ ├── blasutil.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 │ │ │ ├── denseLM.cpp │ │ │ ├── dense_storage.cpp │ │ │ ├── determinant.cpp │ │ │ ├── diagonal.cpp │ │ │ ├── diagonal_matrix_variadic_ctor.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 │ │ │ ├── gpu_basic.cu │ │ │ ├── gpu_common.h │ │ │ ├── half_float.cpp │ │ │ ├── hessenberg.cpp │ │ │ ├── householder.cpp │ │ │ ├── incomplete_cholesky.cpp │ │ │ ├── indexed_view.cpp │ │ │ ├── initializer_list_construction.cpp │ │ │ ├── inplace_decomposition.cpp │ │ │ ├── integer_types.cpp │ │ │ ├── inverse.cpp │ │ │ ├── io.cpp │ │ │ ├── is_same_dense.cpp │ │ │ ├── jacobi.cpp │ │ │ ├── jacobisvd.cpp │ │ │ ├── klu_support.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 │ │ │ ├── nestbyvalue.cpp │ │ │ ├── nesting_ops.cpp │ │ │ ├── nomalloc.cpp │ │ │ ├── nullary.cpp │ │ │ ├── num_dimensions.cpp │ │ │ ├── numext.cpp │ │ │ ├── packetmath.cpp │ │ │ ├── packetmath_test_shared.h │ │ │ ├── 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 │ │ │ ├── random_without_cast_overflow.h │ │ │ ├── real_qz.cpp │ │ │ ├── redux.cpp │ │ │ ├── ref.cpp │ │ │ ├── reshape.cpp │ │ │ ├── resize.cpp │ │ │ ├── rvalue_types.cpp │ │ │ ├── schur_complex.cpp │ │ │ ├── schur_real.cpp │ │ │ ├── selfadjoint.cpp │ │ │ ├── simplicial_cholesky.cpp │ │ │ ├── sizeof.cpp │ │ │ ├── sizeoverflow.cpp │ │ │ ├── smallvectors.cpp │ │ │ ├── solverbase.h │ │ │ ├── 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 │ │ │ ├── split_test_helper.h │ │ │ ├── spqr_support.cpp │ │ │ ├── stable_norm.cpp │ │ │ ├── stddeque.cpp │ │ │ ├── stddeque_overload.cpp │ │ │ ├── stdlist.cpp │ │ │ ├── stdlist_overload.cpp │ │ │ ├── stdvector.cpp │ │ │ ├── stdvector_overload.cpp │ │ │ ├── stl_iterators.cpp │ │ │ ├── superlu_support.cpp │ │ │ ├── svd_common.h │ │ │ ├── svd_fill.h │ │ │ ├── swap.cpp │ │ │ ├── symbolic_index.cpp │ │ │ ├── triangular.cpp │ │ │ ├── type_alias.cpp │ │ │ ├── umeyama.cpp │ │ │ ├── umfpack_support.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 │ │ │ │ │ ├── TensorBlock.h │ │ │ │ │ ├── TensorBroadcasting.h │ │ │ │ │ ├── TensorChipping.h │ │ │ │ │ ├── TensorConcatenation.h │ │ │ │ │ ├── TensorContraction.h │ │ │ │ │ ├── TensorContractionBlocking.h │ │ │ │ │ ├── TensorContractionCuda.h │ │ │ │ │ ├── TensorContractionGpu.h │ │ │ │ │ ├── TensorContractionMapper.h │ │ │ │ │ ├── TensorContractionSycl.h │ │ │ │ │ ├── TensorContractionThreadPool.h │ │ │ │ │ ├── TensorConversion.h │ │ │ │ │ ├── TensorConvolution.h │ │ │ │ │ ├── TensorConvolutionSycl.h │ │ │ │ │ ├── TensorCostModel.h │ │ │ │ │ ├── TensorCustomOp.h │ │ │ │ │ ├── TensorDevice.h │ │ │ │ │ ├── TensorDeviceCuda.h │ │ │ │ │ ├── TensorDeviceDefault.h │ │ │ │ │ ├── TensorDeviceGpu.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 │ │ │ │ │ ├── TensorGpuHipCudaDefines.h │ │ │ │ │ ├── TensorGpuHipCudaUndefines.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 │ │ │ │ │ ├── TensorReductionGpu.h │ │ │ │ │ ├── TensorReductionSycl.h │ │ │ │ │ ├── TensorRef.h │ │ │ │ │ ├── TensorReverse.h │ │ │ │ │ ├── TensorScan.h │ │ │ │ │ ├── TensorScanSycl.h │ │ │ │ │ ├── TensorShuffling.h │ │ │ │ │ ├── TensorStorage.h │ │ │ │ │ ├── TensorStriding.h │ │ │ │ │ ├── TensorTrace.h │ │ │ │ │ ├── TensorTraits.h │ │ │ │ │ ├── TensorUInt128.h │ │ │ │ │ └── TensorVolumePatch.h │ │ │ │ │ ├── TensorSymmetry │ │ │ │ │ ├── DynamicSymmetry.h │ │ │ │ │ ├── StaticSymmetry.h │ │ │ │ │ ├── Symmetry.h │ │ │ │ │ └── util │ │ │ │ │ │ └── TemplateGroupTheory.h │ │ │ │ │ ├── ThreadPool │ │ │ │ │ ├── Barrier.h │ │ │ │ │ ├── EventCount.h │ │ │ │ │ ├── NonBlockingThreadPool.h │ │ │ │ │ ├── RunQueue.h │ │ │ │ │ ├── ThreadCancel.h │ │ │ │ │ ├── ThreadEnvironment.h │ │ │ │ │ ├── ThreadLocal.h │ │ │ │ │ ├── ThreadPoolInterface.h │ │ │ │ │ └── ThreadYield.h │ │ │ │ │ └── util │ │ │ │ │ ├── CXX11Meta.h │ │ │ │ │ ├── CXX11Workarounds.h │ │ │ │ │ ├── EmulateArray.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 │ │ │ │ ├── IDRS.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 │ │ │ │ ├── BesselFunctionsArrayAPI.h │ │ │ │ ├── BesselFunctionsBFloat16.h │ │ │ │ ├── BesselFunctionsFunctors.h │ │ │ │ ├── BesselFunctionsHalf.h │ │ │ │ ├── BesselFunctionsImpl.h │ │ │ │ ├── BesselFunctionsPacketMath.h │ │ │ │ ├── HipVectorCompatibility.h │ │ │ │ ├── SpecialFunctionsArrayAPI.h │ │ │ │ ├── SpecialFunctionsBFloat16.h │ │ │ │ ├── SpecialFunctionsFunctors.h │ │ │ │ ├── SpecialFunctionsHalf.h │ │ │ │ ├── SpecialFunctionsImpl.h │ │ │ │ ├── SpecialFunctionsPacketMath.h │ │ │ │ └── arch │ │ │ │ │ ├── AVX │ │ │ │ │ ├── BesselFunctions.h │ │ │ │ │ └── SpecialFunctions.h │ │ │ │ │ ├── AVX512 │ │ │ │ │ ├── BesselFunctions.h │ │ │ │ │ └── SpecialFunctions.h │ │ │ │ │ ├── GPU │ │ │ │ │ └── SpecialFunctions.h │ │ │ │ │ └── NEON │ │ │ │ │ ├── BesselFunctions.h │ │ │ │ │ └── SpecialFunctions.h │ │ │ │ └── Splines │ │ │ │ ├── Spline.h │ │ │ │ ├── SplineFitting.h │ │ │ │ └── SplineFwd.h │ │ │ ├── README.txt │ │ │ ├── bench │ │ │ └── bench_svd.cpp │ │ │ ├── doc │ │ │ ├── CMakeLists.txt │ │ │ ├── Overview.dox │ │ │ ├── SYCL.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 │ │ │ │ └── SYCL │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── CwiseMul.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 │ │ │ ├── bessel_functions.cpp │ │ │ ├── cxx11_eventcount.cpp │ │ │ ├── cxx11_maxsizevector.cpp │ │ │ ├── cxx11_meta.cpp │ │ │ ├── cxx11_non_blocking_thread_pool.cpp │ │ │ ├── cxx11_runqueue.cpp │ │ │ ├── cxx11_tensor_argmax.cpp │ │ │ ├── cxx11_tensor_argmax_gpu.cu │ │ │ ├── cxx11_tensor_argmax_sycl.cpp │ │ │ ├── cxx11_tensor_assign.cpp │ │ │ ├── cxx11_tensor_block_access.cpp │ │ │ ├── cxx11_tensor_block_eval.cpp │ │ │ ├── cxx11_tensor_block_io.cpp │ │ │ ├── cxx11_tensor_broadcast_sycl.cpp │ │ │ ├── cxx11_tensor_broadcasting.cpp │ │ │ ├── cxx11_tensor_builtins_sycl.cpp │ │ │ ├── cxx11_tensor_cast_float16_gpu.cu │ │ │ ├── cxx11_tensor_casts.cpp │ │ │ ├── cxx11_tensor_chipping.cpp │ │ │ ├── cxx11_tensor_chipping_sycl.cpp │ │ │ ├── cxx11_tensor_comparisons.cpp │ │ │ ├── cxx11_tensor_complex_cwise_ops_gpu.cu │ │ │ ├── cxx11_tensor_complex_gpu.cu │ │ │ ├── cxx11_tensor_concatenation.cpp │ │ │ ├── cxx11_tensor_concatenation_sycl.cpp │ │ │ ├── cxx11_tensor_const.cpp │ │ │ ├── cxx11_tensor_contract_gpu.cu │ │ │ ├── cxx11_tensor_contract_sycl.cpp │ │ │ ├── cxx11_tensor_contraction.cpp │ │ │ ├── cxx11_tensor_convolution.cpp │ │ │ ├── cxx11_tensor_convolution_sycl.cpp │ │ │ ├── cxx11_tensor_custom_index.cpp │ │ │ ├── cxx11_tensor_custom_op.cpp │ │ │ ├── cxx11_tensor_custom_op_sycl.cpp │ │ │ ├── cxx11_tensor_device.cu │ │ │ ├── cxx11_tensor_device_sycl.cpp │ │ │ ├── cxx11_tensor_dimension.cpp │ │ │ ├── cxx11_tensor_empty.cpp │ │ │ ├── cxx11_tensor_executor.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_generator_sycl.cpp │ │ │ ├── cxx11_tensor_gpu.cu │ │ │ ├── cxx11_tensor_ifft.cpp │ │ │ ├── cxx11_tensor_image_op_sycl.cpp │ │ │ ├── cxx11_tensor_image_patch.cpp │ │ │ ├── cxx11_tensor_image_patch_sycl.cpp │ │ │ ├── cxx11_tensor_index_list.cpp │ │ │ ├── cxx11_tensor_inflation.cpp │ │ │ ├── cxx11_tensor_inflation_sycl.cpp │ │ │ ├── cxx11_tensor_intdiv.cpp │ │ │ ├── cxx11_tensor_io.cpp │ │ │ ├── cxx11_tensor_layout_swap.cpp │ │ │ ├── cxx11_tensor_layout_swap_sycl.cpp │ │ │ ├── cxx11_tensor_lvalue.cpp │ │ │ ├── cxx11_tensor_map.cpp │ │ │ ├── cxx11_tensor_math.cpp │ │ │ ├── cxx11_tensor_math_sycl.cpp │ │ │ ├── cxx11_tensor_mixed_indices.cpp │ │ │ ├── cxx11_tensor_morphing.cpp │ │ │ ├── cxx11_tensor_morphing_sycl.cpp │ │ │ ├── cxx11_tensor_move.cpp │ │ │ ├── cxx11_tensor_notification.cpp │ │ │ ├── cxx11_tensor_of_complex.cpp │ │ │ ├── cxx11_tensor_of_const_values.cpp │ │ │ ├── cxx11_tensor_of_float16_gpu.cu │ │ │ ├── cxx11_tensor_of_strings.cpp │ │ │ ├── cxx11_tensor_padding.cpp │ │ │ ├── cxx11_tensor_padding_sycl.cpp │ │ │ ├── cxx11_tensor_patch.cpp │ │ │ ├── cxx11_tensor_patch_sycl.cpp │ │ │ ├── cxx11_tensor_random.cpp │ │ │ ├── cxx11_tensor_random_gpu.cu │ │ │ ├── cxx11_tensor_random_sycl.cpp │ │ │ ├── cxx11_tensor_reduction.cpp │ │ │ ├── cxx11_tensor_reduction_gpu.cu │ │ │ ├── cxx11_tensor_reduction_sycl.cpp │ │ │ ├── cxx11_tensor_ref.cpp │ │ │ ├── cxx11_tensor_reverse.cpp │ │ │ ├── cxx11_tensor_reverse_sycl.cpp │ │ │ ├── cxx11_tensor_roundings.cpp │ │ │ ├── cxx11_tensor_scan.cpp │ │ │ ├── cxx11_tensor_scan_gpu.cu │ │ │ ├── cxx11_tensor_scan_sycl.cpp │ │ │ ├── cxx11_tensor_shuffling.cpp │ │ │ ├── cxx11_tensor_shuffling_sycl.cpp │ │ │ ├── cxx11_tensor_simple.cpp │ │ │ ├── cxx11_tensor_striding.cpp │ │ │ ├── cxx11_tensor_striding_sycl.cpp │ │ │ ├── cxx11_tensor_sugar.cpp │ │ │ ├── cxx11_tensor_sycl.cpp │ │ │ ├── cxx11_tensor_symmetry.cpp │ │ │ ├── cxx11_tensor_thread_local.cpp │ │ │ ├── cxx11_tensor_thread_pool.cpp │ │ │ ├── cxx11_tensor_trace.cpp │ │ │ ├── cxx11_tensor_uint128.cpp │ │ │ ├── cxx11_tensor_volume_patch.cpp │ │ │ ├── cxx11_tensor_volume_patch_sycl.cpp │ │ │ ├── dgmres.cpp │ │ │ ├── forward_adolc.cpp │ │ │ ├── gmres.cpp │ │ │ ├── idrs.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_support.cpp │ │ │ ├── openglsupport.cpp │ │ │ ├── polynomialsolver.cpp │ │ │ ├── polynomialutils.cpp │ │ │ ├── sparse_extra.cpp │ │ │ ├── special_functions.cpp │ │ │ ├── special_packetmath.cpp │ │ │ └── splines.cpp │ ├── GeographicLib │ │ ├── 00README.txt │ │ ├── AUTHORS │ │ ├── CMakeLists.txt │ │ ├── INSTALL │ │ ├── LICENSE.txt │ │ ├── Makefile │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── Makefile.mk │ │ ├── NEWS │ │ ├── README.md │ │ ├── aclocal.m4 │ │ ├── cmake │ │ │ ├── CMakeLists.txt │ │ │ ├── FindGeographicLib.cmake │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── project-config-version.cmake.in │ │ │ ├── project-config.cmake.in │ │ │ └── project.pc.in │ │ ├── compile │ │ ├── config.guess │ │ ├── config.sub │ │ ├── configure │ │ ├── configure.ac │ │ ├── depcomp │ │ ├── doc │ │ │ ├── CMakeLists.txt │ │ │ ├── GeographicLib.dox.in │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── NETGeographicLib.dox │ │ │ ├── NETGeographicLib1.png │ │ │ ├── NETGeographicLib2.png │ │ │ ├── NETGeographicLib3.png │ │ │ ├── doxyfile-c.in │ │ │ ├── doxyfile-for.in │ │ │ ├── doxyfile-net.in │ │ │ ├── doxyfile.in │ │ │ ├── gauss-krueger-convergence-scale.png │ │ │ ├── gauss-krueger-error.png │ │ │ ├── gauss-krueger-graticule-a.png │ │ │ ├── gauss-krueger-graticule.png │ │ │ ├── gauss-schreiber-graticule-a.png │ │ │ ├── geodesic-c.dox │ │ │ ├── geodesic-for.dox │ │ │ ├── geodseries30.html │ │ │ ├── index.html.in │ │ │ ├── meridian-measures.png │ │ │ ├── normal-gravity-potential-1.svg │ │ │ ├── thompson-tm-graticule-a.png │ │ │ ├── thompson-tm-graticule.png │ │ │ ├── tmseries30.html │ │ │ ├── utilities.html.in │ │ │ └── vptree.gif │ │ ├── dotnet │ │ │ ├── NETGeographicLib │ │ │ │ ├── Accumulator.cpp │ │ │ │ ├── Accumulator.h │ │ │ │ ├── AlbersEqualArea.cpp │ │ │ │ ├── AlbersEqualArea.h │ │ │ │ ├── AssemblyInfo.cpp │ │ │ │ ├── AzimuthalEquidistant.cpp │ │ │ │ ├── AzimuthalEquidistant.h │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── CassiniSoldner.cpp │ │ │ │ ├── CassiniSoldner.h │ │ │ │ ├── CircularEngine.cpp │ │ │ │ ├── CircularEngine.h │ │ │ │ ├── DMS.cpp │ │ │ │ ├── DMS.h │ │ │ │ ├── Ellipsoid.cpp │ │ │ │ ├── Ellipsoid.h │ │ │ │ ├── EllipticFunction.cpp │ │ │ │ ├── EllipticFunction.h │ │ │ │ ├── GARS.cpp │ │ │ │ ├── GARS.h │ │ │ │ ├── GeoCoords.cpp │ │ │ │ ├── GeoCoords.h │ │ │ │ ├── Geocentric.cpp │ │ │ │ ├── Geocentric.h │ │ │ │ ├── Geodesic.cpp │ │ │ │ ├── Geodesic.h │ │ │ │ ├── GeodesicExact.cpp │ │ │ │ ├── GeodesicExact.h │ │ │ │ ├── GeodesicLine.cpp │ │ │ │ ├── GeodesicLine.h │ │ │ │ ├── GeodesicLineExact.cpp │ │ │ │ ├── GeodesicLineExact.h │ │ │ │ ├── Geohash.cpp │ │ │ │ ├── Geohash.h │ │ │ │ ├── Geoid.cpp │ │ │ │ ├── Geoid.h │ │ │ │ ├── Georef.cpp │ │ │ │ ├── Georef.h │ │ │ │ ├── Gnomonic.cpp │ │ │ │ ├── Gnomonic.h │ │ │ │ ├── GravityCircle.cpp │ │ │ │ ├── GravityCircle.h │ │ │ │ ├── GravityModel.cpp │ │ │ │ ├── GravityModel.h │ │ │ │ ├── LambertConformalConic.cpp │ │ │ │ ├── LambertConformalConic.h │ │ │ │ ├── LocalCartesian.cpp │ │ │ │ ├── LocalCartesian.h │ │ │ │ ├── MGRS.cpp │ │ │ │ ├── MGRS.h │ │ │ │ ├── MagneticCircle.cpp │ │ │ │ ├── MagneticCircle.h │ │ │ │ ├── MagneticModel.cpp │ │ │ │ ├── MagneticModel.h │ │ │ │ ├── NETGeographicLib.cpp │ │ │ │ ├── NETGeographicLib.h │ │ │ │ ├── NormalGravity.cpp │ │ │ │ ├── NormalGravity.h │ │ │ │ ├── OSGB.cpp │ │ │ │ ├── OSGB.h │ │ │ │ ├── PolarStereographic.cpp │ │ │ │ ├── PolarStereographic.h │ │ │ │ ├── PolygonArea.cpp │ │ │ │ ├── PolygonArea.h │ │ │ │ ├── ReadMe.txt │ │ │ │ ├── Rhumb.cpp │ │ │ │ ├── Rhumb.h │ │ │ │ ├── SphericalCoefficients.cpp │ │ │ │ ├── SphericalCoefficients.h │ │ │ │ ├── SphericalHarmonic.cpp │ │ │ │ ├── SphericalHarmonic.h │ │ │ │ ├── SphericalHarmonic1.cpp │ │ │ │ ├── SphericalHarmonic1.h │ │ │ │ ├── SphericalHarmonic2.cpp │ │ │ │ ├── SphericalHarmonic2.h │ │ │ │ ├── TransverseMercator.cpp │ │ │ │ ├── TransverseMercator.h │ │ │ │ ├── TransverseMercatorExact.cpp │ │ │ │ ├── TransverseMercatorExact.h │ │ │ │ ├── UTMUPS.cpp │ │ │ │ ├── UTMUPS.h │ │ │ │ ├── stdafx.cpp │ │ │ │ └── stdafx.h │ │ │ ├── Projections │ │ │ │ ├── AccumPanel.Designer.cs │ │ │ │ ├── AccumPanel.cs │ │ │ │ ├── AccumPanel.resx │ │ │ │ ├── AlbersPanel.Designer.cs │ │ │ │ ├── AlbersPanel.cs │ │ │ │ ├── AlbersPanel.resx │ │ │ │ ├── EllipsoidPanel.Designer.cs │ │ │ │ ├── EllipsoidPanel.cs │ │ │ │ ├── EllipsoidPanel.resx │ │ │ │ ├── EllipticPanel.Designer.cs │ │ │ │ ├── EllipticPanel.cs │ │ │ │ ├── EllipticPanel.resx │ │ │ │ ├── Form1.Designer.cs │ │ │ │ ├── Form1.cs │ │ │ │ ├── Form1.resx │ │ │ │ ├── GeocentricPanel.Designer.cs │ │ │ │ ├── GeocentricPanel.cs │ │ │ │ ├── GeocentricPanel.resx │ │ │ │ ├── GeodesicPanel.Designer.cs │ │ │ │ ├── GeodesicPanel.cs │ │ │ │ ├── GeodesicPanel.resx │ │ │ │ ├── GeoidPanel.Designer.cs │ │ │ │ ├── GeoidPanel.cs │ │ │ │ ├── GeoidPanel.resx │ │ │ │ ├── GravityPanel.Designer.cs │ │ │ │ ├── GravityPanel.cs │ │ │ │ ├── GravityPanel.resx │ │ │ │ ├── LocalCartesianPanel.Designer.cs │ │ │ │ ├── LocalCartesianPanel.cs │ │ │ │ ├── LocalCartesianPanel.resx │ │ │ │ ├── MagneticPanel.Designer.cs │ │ │ │ ├── MagneticPanel.cs │ │ │ │ ├── MagneticPanel.resx │ │ │ │ ├── MiscPanel.Designer.cs │ │ │ │ ├── MiscPanel.cs │ │ │ │ ├── MiscPanel.resx │ │ │ │ ├── PolarStereoPanel.Designer.cs │ │ │ │ ├── PolarStereoPanel.cs │ │ │ │ ├── PolarStereoPanel.resx │ │ │ │ ├── PolyPanel.Designer.cs │ │ │ │ ├── PolyPanel.cs │ │ │ │ ├── PolyPanel.resx │ │ │ │ ├── Program.cs │ │ │ │ ├── Projections-vs13.csproj │ │ │ │ ├── Projections.csproj │ │ │ │ ├── ProjectionsPanel.Designer.cs │ │ │ │ ├── ProjectionsPanel.cs │ │ │ │ ├── ProjectionsPanel.resx │ │ │ │ ├── Properties │ │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ │ ├── Resources.Designer.cs │ │ │ │ │ ├── Resources.resx │ │ │ │ │ ├── Settings.Designer.cs │ │ │ │ │ └── Settings.settings │ │ │ │ ├── RhumbPanel.Designer.cs │ │ │ │ ├── RhumbPanel.cs │ │ │ │ ├── RhumbPanel.resx │ │ │ │ ├── SphericalHarmonicsPanel.Designer.cs │ │ │ │ ├── SphericalHarmonicsPanel.cs │ │ │ │ ├── SphericalHarmonicsPanel.resx │ │ │ │ ├── TypeIIIProjPanel.Designer.cs │ │ │ │ ├── TypeIIIProjPanel.cs │ │ │ │ └── TypeIIIProjPanel.resx │ │ │ └── examples │ │ │ │ ├── CS │ │ │ │ ├── example-Accumulator.cs │ │ │ │ ├── example-AlbersEqualArea.cs │ │ │ │ ├── example-AzimuthalEquidistant.cs │ │ │ │ ├── example-CassiniSoldner.cs │ │ │ │ ├── example-CircularEngine.cs │ │ │ │ ├── example-DMS.cs │ │ │ │ ├── example-Ellipsoid.cs │ │ │ │ ├── example-EllipticFunction.cs │ │ │ │ ├── example-GARS.cs │ │ │ │ ├── example-GeoCoords.cs │ │ │ │ ├── example-Geocentric.cs │ │ │ │ ├── example-Geodesic.cs │ │ │ │ ├── example-GeodesicExact.cs │ │ │ │ ├── example-GeodesicLine.cs │ │ │ │ ├── example-GeodesicLineExact.cs │ │ │ │ ├── example-Geohash.cs │ │ │ │ ├── example-Geoid.cs │ │ │ │ ├── example-Georef.cs │ │ │ │ ├── example-Gnomonic.cs │ │ │ │ ├── example-GravityCircle.cs │ │ │ │ ├── example-GravityModel.cs │ │ │ │ ├── example-LambertConformalConic.cs │ │ │ │ ├── example-LocalCartesian.cs │ │ │ │ ├── example-MGRS.cs │ │ │ │ ├── example-MagneticCircle.cs │ │ │ │ ├── example-MagneticModel.cs │ │ │ │ ├── example-NormalGravity.cs │ │ │ │ ├── example-OSGB.cs │ │ │ │ ├── example-PolarStereographic.cs │ │ │ │ ├── example-PolygonArea.cs │ │ │ │ ├── example-Rhumb.cs │ │ │ │ ├── example-RhumbLine.cs │ │ │ │ ├── example-SphericalHarmonic.cs │ │ │ │ ├── example-SphericalHarmonic1.cs │ │ │ │ ├── example-SphericalHarmonic2.cs │ │ │ │ ├── example-TransverseMercator.cs │ │ │ │ ├── example-TransverseMercatorExact.cs │ │ │ │ └── example-UTMUPS.cs │ │ │ │ ├── ManagedCPP │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── example-Accumulator.cpp │ │ │ │ ├── example-AlbersEqualArea.cpp │ │ │ │ ├── example-AzimuthalEquidistant.cpp │ │ │ │ ├── example-CassiniSoldner.cpp │ │ │ │ ├── example-CircularEngine.cpp │ │ │ │ ├── example-DMS.cpp │ │ │ │ ├── example-Ellipsoid.cpp │ │ │ │ ├── example-EllipticFunction.cpp │ │ │ │ ├── example-GARS.cpp │ │ │ │ ├── example-GeoCoords.cpp │ │ │ │ ├── example-Geocentric.cpp │ │ │ │ ├── example-Geodesic-small.cpp │ │ │ │ ├── example-Geodesic.cpp │ │ │ │ ├── example-GeodesicExact.cpp │ │ │ │ ├── example-GeodesicLine.cpp │ │ │ │ ├── example-GeodesicLineExact.cpp │ │ │ │ ├── example-Geohash.cpp │ │ │ │ ├── example-Geoid.cpp │ │ │ │ ├── example-Georef.cpp │ │ │ │ ├── example-Gnomonic.cpp │ │ │ │ ├── example-GravityCircle.cpp │ │ │ │ ├── example-GravityModel.cpp │ │ │ │ ├── example-LambertConformalConic.cpp │ │ │ │ ├── example-LocalCartesian.cpp │ │ │ │ ├── example-MGRS.cpp │ │ │ │ ├── example-MagneticCircle.cpp │ │ │ │ ├── example-MagneticModel.cpp │ │ │ │ ├── example-NormalGravity.cpp │ │ │ │ ├── example-OSGB.cpp │ │ │ │ ├── example-PolarStereographic.cpp │ │ │ │ ├── example-PolygonArea.cpp │ │ │ │ ├── example-Rhumb.cpp │ │ │ │ ├── example-RhumbLine.cpp │ │ │ │ ├── example-SphericalHarmonic.cpp │ │ │ │ ├── example-SphericalHarmonic1.cpp │ │ │ │ ├── example-SphericalHarmonic2.cpp │ │ │ │ ├── example-TransverseMercator.cpp │ │ │ │ ├── example-TransverseMercatorExact.cpp │ │ │ │ └── example-UTMUPS.cpp │ │ │ │ └── VB │ │ │ │ ├── example-Accumulator.vb │ │ │ │ ├── example-AlbersEqualArea.vb │ │ │ │ ├── example-AzimuthalEquidistant.vb │ │ │ │ ├── example-CassiniSoldner.vb │ │ │ │ ├── example-CircularEngine.vb │ │ │ │ ├── example-DMS.vb │ │ │ │ ├── example-Ellipsoid.vb │ │ │ │ ├── example-EllipticFunction.vb │ │ │ │ ├── example-GARS.vb │ │ │ │ ├── example-GeoCoords.vb │ │ │ │ ├── example-Geocentric.vb │ │ │ │ ├── example-Geodesic.vb │ │ │ │ ├── example-GeodesicExact.vb │ │ │ │ ├── example-GeodesicLine.vb │ │ │ │ ├── example-GeodesicLineExact.vb │ │ │ │ ├── example-Geohash.vb │ │ │ │ ├── example-Geoid.vb │ │ │ │ ├── example-Georef.vb │ │ │ │ ├── example-Gnomonic.vb │ │ │ │ ├── example-GravityCircle.vb │ │ │ │ ├── example-GravityModel.vb │ │ │ │ ├── example-LambertConformalConic.vb │ │ │ │ ├── example-LocalCartesian.vb │ │ │ │ ├── example-MGRS.vb │ │ │ │ ├── example-MagneticCircle.vb │ │ │ │ ├── example-MagneticModel.vb │ │ │ │ ├── example-NormalGravity.vb │ │ │ │ ├── example-OSGB.vb │ │ │ │ ├── example-PolarStereographic.vb │ │ │ │ ├── example-PolygonArea.vb │ │ │ │ ├── example-Rhumb.vb │ │ │ │ ├── example-RhumbLine.vb │ │ │ │ ├── example-SphericalHarmonic.vb │ │ │ │ ├── example-SphericalHarmonic1.vb │ │ │ │ ├── example-SphericalHarmonic2.vb │ │ │ │ ├── example-TransverseMercator.vb │ │ │ │ ├── example-TransverseMercatorExact.vb │ │ │ │ └── example-UTMUPS.vb │ │ ├── examples │ │ │ ├── CMakeLists.txt │ │ │ ├── GeoidToGTX.cpp │ │ │ ├── JacobiConformal.cpp │ │ │ ├── JacobiConformal.hpp │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── example-Accumulator.cpp │ │ │ ├── example-AlbersEqualArea.cpp │ │ │ ├── example-AzimuthalEquidistant.cpp │ │ │ ├── example-CassiniSoldner.cpp │ │ │ ├── example-CircularEngine.cpp │ │ │ ├── example-Constants.cpp │ │ │ ├── example-DMS.cpp │ │ │ ├── example-Ellipsoid.cpp │ │ │ ├── example-EllipticFunction.cpp │ │ │ ├── example-GARS.cpp │ │ │ ├── example-GeoCoords.cpp │ │ │ ├── example-Geocentric.cpp │ │ │ ├── example-Geodesic-small.cpp │ │ │ ├── example-Geodesic.cpp │ │ │ ├── example-GeodesicExact.cpp │ │ │ ├── example-GeodesicLine.cpp │ │ │ ├── example-GeodesicLineExact.cpp │ │ │ ├── example-GeographicErr.cpp │ │ │ ├── example-Geohash.cpp │ │ │ ├── example-Geoid.cpp │ │ │ ├── example-Georef.cpp │ │ │ ├── example-Gnomonic.cpp │ │ │ ├── example-GravityCircle.cpp │ │ │ ├── example-GravityModel.cpp │ │ │ ├── example-LambertConformalConic.cpp │ │ │ ├── example-LocalCartesian.cpp │ │ │ ├── example-MGRS.cpp │ │ │ ├── example-MagneticCircle.cpp │ │ │ ├── example-MagneticModel.cpp │ │ │ ├── example-Math.cpp │ │ │ ├── example-NearestNeighbor.cpp │ │ │ ├── example-NormalGravity.cpp │ │ │ ├── example-OSGB.cpp │ │ │ ├── example-PolarStereographic.cpp │ │ │ ├── example-PolygonArea.cpp │ │ │ ├── example-Rhumb.cpp │ │ │ ├── example-RhumbLine.cpp │ │ │ ├── example-SphericalEngine.cpp │ │ │ ├── example-SphericalHarmonic.cpp │ │ │ ├── example-SphericalHarmonic1.cpp │ │ │ ├── example-SphericalHarmonic2.cpp │ │ │ ├── example-TransverseMercator.cpp │ │ │ ├── example-TransverseMercatorExact.cpp │ │ │ ├── example-UTMUPS.cpp │ │ │ ├── example-Utility.cpp │ │ │ └── make-egmcof.cpp │ │ ├── include │ │ │ ├── GeographicLib │ │ │ │ ├── Accumulator.hpp │ │ │ │ ├── AlbersEqualArea.hpp │ │ │ │ ├── AzimuthalEquidistant.hpp │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── CassiniSoldner.hpp │ │ │ │ ├── CircularEngine.hpp │ │ │ │ ├── Config-ac.h.in │ │ │ │ ├── Config.h │ │ │ │ ├── Config.h.in │ │ │ │ ├── Constants.hpp │ │ │ │ ├── DMS.hpp │ │ │ │ ├── Ellipsoid.hpp │ │ │ │ ├── EllipticFunction.hpp │ │ │ │ ├── GARS.hpp │ │ │ │ ├── GeoCoords.hpp │ │ │ │ ├── Geocentric.hpp │ │ │ │ ├── Geodesic.hpp │ │ │ │ ├── GeodesicExact.hpp │ │ │ │ ├── GeodesicLine.hpp │ │ │ │ ├── GeodesicLineExact.hpp │ │ │ │ ├── Geohash.hpp │ │ │ │ ├── Geoid.hpp │ │ │ │ ├── Georef.hpp │ │ │ │ ├── Gnomonic.hpp │ │ │ │ ├── GravityCircle.hpp │ │ │ │ ├── GravityModel.hpp │ │ │ │ ├── LambertConformalConic.hpp │ │ │ │ ├── LocalCartesian.hpp │ │ │ │ ├── MGRS.hpp │ │ │ │ ├── MagneticCircle.hpp │ │ │ │ ├── MagneticModel.hpp │ │ │ │ ├── Math.hpp │ │ │ │ ├── NearestNeighbor.hpp │ │ │ │ ├── NormalGravity.hpp │ │ │ │ ├── OSGB.hpp │ │ │ │ ├── PolarStereographic.hpp │ │ │ │ ├── PolygonArea.hpp │ │ │ │ ├── Rhumb.hpp │ │ │ │ ├── SphericalEngine.hpp │ │ │ │ ├── SphericalHarmonic.hpp │ │ │ │ ├── SphericalHarmonic1.hpp │ │ │ │ ├── SphericalHarmonic2.hpp │ │ │ │ ├── TransverseMercator.hpp │ │ │ │ ├── TransverseMercatorExact.hpp │ │ │ │ ├── UTMUPS.hpp │ │ │ │ └── Utility.hpp │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ └── Makefile.mk │ │ ├── install-sh │ │ ├── java │ │ │ ├── README.txt │ │ │ ├── direct │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Direct.java │ │ │ ├── inverse │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Inverse.java │ │ │ ├── planimeter │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Planimeter.java │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ └── java │ │ │ │ │ └── net │ │ │ │ │ └── sf │ │ │ │ │ └── geographiclib │ │ │ │ │ ├── Accumulator.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── GeoMath.java │ │ │ │ │ ├── Geodesic.java │ │ │ │ │ ├── GeodesicData.java │ │ │ │ │ ├── GeodesicLine.java │ │ │ │ │ ├── GeodesicMask.java │ │ │ │ │ ├── GeographicErr.java │ │ │ │ │ ├── Gnomonic.java │ │ │ │ │ ├── GnomonicData.java │ │ │ │ │ ├── Pair.java │ │ │ │ │ ├── PolygonArea.java │ │ │ │ │ ├── PolygonResult.java │ │ │ │ │ └── package-info.java │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── net │ │ │ │ └── sf │ │ │ │ └── geographiclib │ │ │ │ └── GeodesicTest.java │ │ ├── js │ │ │ ├── CMakeLists.txt │ │ │ ├── GeographicLib.md │ │ │ ├── HEADER.js │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── README.md │ │ │ ├── conf.json │ │ │ ├── doc │ │ │ │ ├── 1-geodesics.md │ │ │ │ ├── 2-interface.md │ │ │ │ ├── 3-examples.md │ │ │ │ └── tutorials.json │ │ │ ├── js-cat.sh │ │ │ ├── js-compress.sh │ │ │ ├── package.json │ │ │ ├── samples │ │ │ │ ├── geod-calc.html │ │ │ │ ├── geod-google-instructions.html │ │ │ │ └── geod-google.html │ │ │ ├── src │ │ │ │ ├── DMS.js │ │ │ │ ├── Geodesic.js │ │ │ │ ├── GeodesicLine.js │ │ │ │ ├── Math.js │ │ │ │ └── PolygonArea.js │ │ │ └── test │ │ │ │ └── geodesictest.js │ │ ├── legacy │ │ │ ├── C │ │ │ │ ├── 00README.txt │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── direct.c │ │ │ │ ├── geodesic.c │ │ │ │ ├── geodesic.h │ │ │ │ ├── geodtest.c │ │ │ │ ├── inverse.c │ │ │ │ └── planimeter.c │ │ │ └── Fortran │ │ │ │ ├── 00README.txt │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── geoddirect.for │ │ │ │ ├── geodesic.for │ │ │ │ ├── geodesic.inc │ │ │ │ ├── geodinverse.for │ │ │ │ ├── geodtest.for │ │ │ │ ├── ngscommon.for │ │ │ │ ├── ngsforward.for │ │ │ │ ├── ngsinverse.for │ │ │ │ └── planimeter.for │ │ ├── ltmain.sh │ │ ├── m4 │ │ │ ├── libtool.m4 │ │ │ ├── ltoptions.m4 │ │ │ ├── ltsugar.m4 │ │ │ ├── ltversion.m4 │ │ │ ├── lt~obsolete.m4 │ │ │ └── pkg.m4 │ │ ├── man │ │ │ ├── CMakeLists.txt │ │ │ ├── CartConvert.1 │ │ │ ├── CartConvert.1.html │ │ │ ├── CartConvert.pod │ │ │ ├── CartConvert.usage │ │ │ ├── ConicProj.1 │ │ │ ├── ConicProj.1.html │ │ │ ├── ConicProj.pod │ │ │ ├── ConicProj.usage │ │ │ ├── GeoConvert.1 │ │ │ ├── GeoConvert.1.html │ │ │ ├── GeoConvert.pod │ │ │ ├── GeoConvert.usage │ │ │ ├── GeodSolve.1 │ │ │ ├── GeodSolve.1.html │ │ │ ├── GeodSolve.pod │ │ │ ├── GeodSolve.usage │ │ │ ├── GeodesicProj.1 │ │ │ ├── GeodesicProj.1.html │ │ │ ├── GeodesicProj.pod │ │ │ ├── GeodesicProj.usage │ │ │ ├── GeoidEval.1 │ │ │ ├── GeoidEval.1.html │ │ │ ├── GeoidEval.pod │ │ │ ├── GeoidEval.usage │ │ │ ├── Gravity.1 │ │ │ ├── Gravity.1.html │ │ │ ├── Gravity.pod │ │ │ ├── Gravity.usage │ │ │ ├── MagneticField.1 │ │ │ ├── MagneticField.1.html │ │ │ ├── MagneticField.pod │ │ │ ├── MagneticField.usage │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── Planimeter.1 │ │ │ ├── Planimeter.1.html │ │ │ ├── Planimeter.pod │ │ │ ├── Planimeter.usage │ │ │ ├── RhumbSolve.1 │ │ │ ├── RhumbSolve.1.html │ │ │ ├── RhumbSolve.pod │ │ │ ├── RhumbSolve.usage │ │ │ ├── TransverseMercatorProj.1 │ │ │ ├── TransverseMercatorProj.1.html │ │ │ ├── TransverseMercatorProj.pod │ │ │ ├── TransverseMercatorProj.usage │ │ │ ├── dummy.1.html.in │ │ │ ├── dummy.1.in │ │ │ ├── dummy.usage.in │ │ │ ├── makeusage.sh │ │ │ └── script.8.in │ │ ├── matlab │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── geographiclib-legacy │ │ │ │ ├── Contents.m │ │ │ │ ├── geocentricforward.m │ │ │ │ ├── geocentricreverse.m │ │ │ │ ├── geodesicdirect.m │ │ │ │ ├── geodesicinverse.m │ │ │ │ ├── geodesicline.m │ │ │ │ ├── geoidheight.m │ │ │ │ ├── localcartesianforward.m │ │ │ │ ├── localcartesianreverse.m │ │ │ │ ├── mgrsforward.m │ │ │ │ ├── mgrsreverse.m │ │ │ │ ├── polygonarea.m │ │ │ │ ├── utmupsforward.m │ │ │ │ └── utmupsreverse.m │ │ │ └── geographiclib │ │ │ │ ├── Contents.m │ │ │ │ ├── cassini_fwd.m │ │ │ │ ├── cassini_inv.m │ │ │ │ ├── defaultellipsoid.m │ │ │ │ ├── ecc2flat.m │ │ │ │ ├── eqdazim_fwd.m │ │ │ │ ├── eqdazim_inv.m │ │ │ │ ├── flat2ecc.m │ │ │ │ ├── gedistance.m │ │ │ │ ├── gedoc.m │ │ │ │ ├── geocent_fwd.m │ │ │ │ ├── geocent_inv.m │ │ │ │ ├── geodarea.m │ │ │ │ ├── geoddistance.m │ │ │ │ ├── geoddoc.m │ │ │ │ ├── geodreckon.m │ │ │ │ ├── geographiclib_test.m │ │ │ │ ├── geoid_height.m │ │ │ │ ├── geoid_load.m │ │ │ │ ├── gereckon.m │ │ │ │ ├── gnomonic_fwd.m │ │ │ │ ├── gnomonic_inv.m │ │ │ │ ├── loccart_fwd.m │ │ │ │ ├── loccart_inv.m │ │ │ │ ├── mgrs_fwd.m │ │ │ │ ├── mgrs_inv.m │ │ │ │ ├── polarst_fwd.m │ │ │ │ ├── polarst_inv.m │ │ │ │ ├── private │ │ │ │ ├── A1m1f.m │ │ │ │ ├── A2m1f.m │ │ │ │ ├── A3coeff.m │ │ │ │ ├── A3f.m │ │ │ │ ├── AngDiff.m │ │ │ │ ├── AngNormalize.m │ │ │ │ ├── AngRound.m │ │ │ │ ├── C1f.m │ │ │ │ ├── C1pf.m │ │ │ │ ├── C2f.m │ │ │ │ ├── C3coeff.m │ │ │ │ ├── C3f.m │ │ │ │ ├── C4coeff.m │ │ │ │ ├── C4f.m │ │ │ │ ├── G4coeff.m │ │ │ │ ├── GeoRotation.m │ │ │ │ ├── LatFix.m │ │ │ │ ├── SinCosSeries.m │ │ │ │ ├── atan2dx.m │ │ │ │ ├── cbrtx.m │ │ │ │ ├── copysignx.m │ │ │ │ ├── cvmgt.m │ │ │ │ ├── eatanhe.m │ │ │ │ ├── geoid_file.m │ │ │ │ ├── geoid_load_file.m │ │ │ │ ├── norm2.m │ │ │ │ ├── sincosdx.m │ │ │ │ ├── sumx.m │ │ │ │ ├── swap.m │ │ │ │ ├── tauf.m │ │ │ │ └── taupf.m │ │ │ │ ├── projdoc.m │ │ │ │ ├── tranmerc_fwd.m │ │ │ │ ├── tranmerc_inv.m │ │ │ │ ├── utmups_fwd.m │ │ │ │ └── utmups_inv.m │ │ ├── maxima │ │ │ ├── Makefile.mk │ │ │ ├── auxlat.mac │ │ │ ├── ellint.mac │ │ │ ├── gearea.mac │ │ │ ├── geod.mac │ │ │ ├── geodesic.mac │ │ │ ├── polyprint.mac │ │ │ ├── rhumbarea.mac │ │ │ ├── tm.mac │ │ │ └── tmseries.mac │ │ ├── missing │ │ ├── python │ │ │ ├── MANIFEST.in │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── README.rst │ │ │ ├── doc │ │ │ │ ├── code.rst │ │ │ │ ├── conf.py │ │ │ │ ├── examples.rst │ │ │ │ ├── geodesics.rst │ │ │ │ ├── index.rst │ │ │ │ └── interface.rst │ │ │ ├── geographiclib │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── __init__.py │ │ │ │ ├── accumulator.py │ │ │ │ ├── constants.py │ │ │ │ ├── geodesic.py │ │ │ │ ├── geodesiccapability.py │ │ │ │ ├── geodesicline.py │ │ │ │ ├── geomath.py │ │ │ │ ├── polygonarea.py │ │ │ │ └── test │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_geodesic.py │ │ │ └── setup.py │ │ ├── src │ │ │ ├── Accumulator.cpp │ │ │ ├── AlbersEqualArea.cpp │ │ │ ├── AzimuthalEquidistant.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── CassiniSoldner.cpp │ │ │ ├── CircularEngine.cpp │ │ │ ├── DMS.cpp │ │ │ ├── Ellipsoid.cpp │ │ │ ├── EllipticFunction.cpp │ │ │ ├── GARS.cpp │ │ │ ├── GeoCoords.cpp │ │ │ ├── Geocentric.cpp │ │ │ ├── Geodesic.cpp │ │ │ ├── GeodesicExact.cpp │ │ │ ├── GeodesicExactC4.cpp │ │ │ ├── GeodesicLine.cpp │ │ │ ├── GeodesicLineExact.cpp │ │ │ ├── Geohash.cpp │ │ │ ├── Geoid.cpp │ │ │ ├── Georef.cpp │ │ │ ├── Gnomonic.cpp │ │ │ ├── GravityCircle.cpp │ │ │ ├── GravityModel.cpp │ │ │ ├── LambertConformalConic.cpp │ │ │ ├── LocalCartesian.cpp │ │ │ ├── MGRS.cpp │ │ │ ├── MagneticCircle.cpp │ │ │ ├── MagneticModel.cpp │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── Math.cpp │ │ │ ├── NormalGravity.cpp │ │ │ ├── OSGB.cpp │ │ │ ├── PolarStereographic.cpp │ │ │ ├── PolygonArea.cpp │ │ │ ├── Rhumb.cpp │ │ │ ├── SphericalEngine.cpp │ │ │ ├── TransverseMercator.cpp │ │ │ ├── TransverseMercatorExact.cpp │ │ │ ├── UTMUPS.cpp │ │ │ └── Utility.cpp │ │ ├── tools │ │ │ ├── CMakeLists.txt │ │ │ ├── CartConvert.cpp │ │ │ ├── ConicProj.cpp │ │ │ ├── GeoConvert.cpp │ │ │ ├── GeodSolve.cpp │ │ │ ├── GeodesicProj.cpp │ │ │ ├── GeoidEval.cpp │ │ │ ├── Gravity.cpp │ │ │ ├── MagneticField.cpp │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── Makefile.mk │ │ │ ├── Planimeter.cpp │ │ │ ├── RhumbSolve.cpp │ │ │ ├── TransverseMercatorProj.cpp │ │ │ ├── geographiclib-get-geoids.sh │ │ │ ├── geographiclib-get-gravity.sh │ │ │ ├── geographiclib-get-magnetic.sh │ │ │ └── tests.cmake │ │ ├── windows │ │ │ ├── CartConvert-vc10.vcxproj │ │ │ ├── CartConvert-vc10x.vcxproj │ │ │ ├── CartConvert-vc9.vcproj │ │ │ ├── ConicProj-vc10.vcxproj │ │ │ ├── ConicProj-vc10x.vcxproj │ │ │ ├── ConicProj-vc9.vcproj │ │ │ ├── GeoConvert-vc10.vcxproj │ │ │ ├── GeoConvert-vc10x.vcxproj │ │ │ ├── GeoConvert-vc9.vcproj │ │ │ ├── GeodSolve-vc10.vcxproj │ │ │ ├── GeodSolve-vc10x.vcxproj │ │ │ ├── GeodSolve-vc9.vcproj │ │ │ ├── GeodesicProj-vc10.vcxproj │ │ │ ├── GeodesicProj-vc10x.vcxproj │ │ │ ├── GeodesicProj-vc9.vcproj │ │ │ ├── Geographic-vc10.vcxproj │ │ │ ├── Geographic-vc10x.vcxproj │ │ │ ├── Geographic-vc13n.vcxproj │ │ │ ├── Geographic-vc9.vcproj │ │ │ ├── GeographicLib-vc10.sln │ │ │ ├── GeographicLib-vc10x.sln │ │ │ ├── GeographicLib-vc9.sln │ │ │ ├── GeoidEval-vc10.vcxproj │ │ │ ├── GeoidEval-vc10x.vcxproj │ │ │ ├── GeoidEval-vc9.vcproj │ │ │ ├── Gravity-vc10.vcxproj │ │ │ ├── Gravity-vc10x.vcxproj │ │ │ ├── Gravity-vc9.vcproj │ │ │ ├── MagneticField-vc10.vcxproj │ │ │ ├── MagneticField-vc10x.vcxproj │ │ │ ├── MagneticField-vc9.vcproj │ │ │ ├── NETGeographic-vc10.sln │ │ │ ├── NETGeographic-vc10.vcxproj │ │ │ ├── NETGeographic-vc13.sln │ │ │ ├── NETGeographic-vc13.vcxproj │ │ │ ├── Planimeter-vc10.vcxproj │ │ │ ├── Planimeter-vc10x.vcxproj │ │ │ ├── Planimeter-vc9.vcproj │ │ │ ├── RhumbSolve-vc10.vcxproj │ │ │ ├── RhumbSolve-vc10x.vcxproj │ │ │ ├── RhumbSolve-vc9.vcproj │ │ │ ├── TransverseMercatorProj-vc10.vcxproj │ │ │ ├── TransverseMercatorProj-vc10x.vcxproj │ │ │ └── TransverseMercatorProj-vc9.vcproj │ │ └── wrapper │ │ │ ├── 00README.txt │ │ │ ├── C │ │ │ ├── 00README.txt │ │ │ ├── CMakeLists.txt │ │ │ ├── cgeoid.cpp │ │ │ ├── cgeoid.h │ │ │ └── geoidtest.c │ │ │ ├── js │ │ │ └── 00README.txt │ │ │ ├── matlab │ │ │ ├── 00README.txt │ │ │ ├── geodesicinverse.cpp │ │ │ ├── geodesicinverse.m │ │ │ └── geographiclibinterface.m │ │ │ └── python │ │ │ ├── 00README.txt │ │ │ ├── CMakeLists.txt │ │ │ └── PyGeographicLib.cpp │ ├── Spectra │ │ ├── DavidsonSymEigsSolver.h │ │ ├── GenEigsBase.h │ │ ├── GenEigsComplexShiftSolver.h │ │ ├── GenEigsRealShiftSolver.h │ │ ├── GenEigsSolver.h │ │ ├── HermEigsBase.h │ │ ├── HermEigsSolver.h │ │ ├── JDSymEigsBase.h │ │ ├── LinAlg │ │ │ ├── Arnoldi.h │ │ │ ├── BKLDLT.h │ │ │ ├── DoubleShiftQR.h │ │ │ ├── Lanczos.h │ │ │ ├── Orthogonalization.h │ │ │ ├── RitzPairs.h │ │ │ ├── SearchSpace.h │ │ │ ├── TridiagEigen.h │ │ │ ├── UpperHessenbergEigen.h │ │ │ ├── UpperHessenbergQR.h │ │ │ └── UpperHessenbergSchur.h │ │ ├── MatOp │ │ │ ├── DenseCholesky.h │ │ │ ├── DenseGenComplexShiftSolve.h │ │ │ ├── DenseGenMatProd.h │ │ │ ├── DenseGenRealShiftSolve.h │ │ │ ├── DenseHermMatProd.h │ │ │ ├── DenseSymMatProd.h │ │ │ ├── DenseSymShiftSolve.h │ │ │ ├── SparseCholesky.h │ │ │ ├── SparseGenComplexShiftSolve.h │ │ │ ├── SparseGenMatProd.h │ │ │ ├── SparseGenRealShiftSolve.h │ │ │ ├── SparseHermMatProd.h │ │ │ ├── SparseRegularInverse.h │ │ │ ├── SparseSymMatProd.h │ │ │ ├── SparseSymShiftSolve.h │ │ │ ├── SymShiftInvert.h │ │ │ └── internal │ │ │ │ ├── ArnoldiOp.h │ │ │ │ ├── SymGEigsBucklingOp.h │ │ │ │ ├── SymGEigsCayleyOp.h │ │ │ │ ├── SymGEigsCholeskyOp.h │ │ │ │ ├── SymGEigsRegInvOp.h │ │ │ │ └── SymGEigsShiftInvertOp.h │ │ ├── SymEigsShiftSolver.h │ │ ├── SymEigsSolver.h │ │ ├── SymGEigsShiftSolver.h │ │ ├── SymGEigsSolver.h │ │ ├── Util │ │ │ ├── CompInfo.h │ │ │ ├── GEigsMode.h │ │ │ ├── SelectionRule.h │ │ │ ├── SimpleRandom.h │ │ │ ├── TypeTraits.h │ │ │ └── Version.h │ │ └── contrib │ │ │ ├── LOBPCGSolver.h │ │ │ └── PartialSVDSolver.h │ ├── SuiteSparse_config │ │ ├── Makefile │ │ ├── README.txt │ │ ├── SuiteSparse_config.c │ │ ├── SuiteSparse_config.h │ │ ├── SuiteSparse_config.mk │ │ └── xerbla │ │ │ ├── Makefile │ │ │ ├── xerbla.c │ │ │ ├── xerbla.f │ │ │ └── xerbla.h │ ├── cephes │ │ ├── CMakeLists.txt │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── cephes.h │ │ ├── cephes │ │ │ ├── airy.c │ │ │ ├── bdtr.c │ │ │ ├── besselpoly.c │ │ │ ├── beta.c │ │ │ ├── btdtr.c │ │ │ ├── cbrt.c │ │ │ ├── chbevl.c │ │ │ ├── chdtr.c │ │ │ ├── const.c │ │ │ ├── dawsn.c │ │ │ ├── dd_idefs.h │ │ │ ├── dd_real.c │ │ │ ├── dd_real.h │ │ │ ├── dd_real_idefs.h │ │ │ ├── ellie.c │ │ │ ├── ellik.c │ │ │ ├── ellpe.c │ │ │ ├── ellpj.c │ │ │ ├── ellpk.c │ │ │ ├── erfinv.c │ │ │ ├── exp10.c │ │ │ ├── exp2.c │ │ │ ├── expn.c │ │ │ ├── expn.h │ │ │ ├── fdtr.c │ │ │ ├── fresnl.c │ │ │ ├── gamma.c │ │ │ ├── gammasgn.c │ │ │ ├── gdtr.c │ │ │ ├── hyp2f1.c │ │ │ ├── hyperg.c │ │ │ ├── i0.c │ │ │ ├── i1.c │ │ │ ├── igam.c │ │ │ ├── igam.h │ │ │ ├── igami.c │ │ │ ├── incbet.c │ │ │ ├── incbi.c │ │ │ ├── j0.c │ │ │ ├── j1.c │ │ │ ├── jv.c │ │ │ ├── k0.c │ │ │ ├── k1.c │ │ │ ├── kn.c │ │ │ ├── kolmogorov.c │ │ │ ├── lanczos.c │ │ │ ├── lanczos.h │ │ │ ├── mconf.h │ │ │ ├── nbdtr.c │ │ │ ├── ndtr.c │ │ │ ├── ndtri.c │ │ │ ├── owens_t.c │ │ │ ├── pdtr.c │ │ │ ├── poch.c │ │ │ ├── polevl.h │ │ │ ├── psi.c │ │ │ ├── rgamma.c │ │ │ ├── round.c │ │ │ ├── scipy_iv.c │ │ │ ├── sf_error.c │ │ │ ├── sf_error.h │ │ │ ├── shichi.c │ │ │ ├── sici.c │ │ │ ├── sindg.c │ │ │ ├── sinpi.c │ │ │ ├── spence.c │ │ │ ├── stdtr.c │ │ │ ├── struve.c │ │ │ ├── tandg.c │ │ │ ├── tukey.c │ │ │ ├── unity.c │ │ │ ├── yn.c │ │ │ ├── yv.c │ │ │ ├── zeta.c │ │ │ └── zetac.c │ │ └── dllexport.h │ ├── ceres │ │ ├── CMakeLists.txt │ │ ├── autodiff.h │ │ ├── eigen.h │ │ ├── example.h │ │ ├── fixed_array.h │ │ ├── fpclassify.h │ │ ├── jet.h │ │ ├── macros.h │ │ ├── manual_constructor.h │ │ ├── rotation.h │ │ └── variadic_evaluate.h │ └── metis │ │ ├── BUILD-Windows.txt │ │ ├── BUILD.txt │ │ ├── CMakeLists.txt │ │ ├── Changelog │ │ ├── GKlib │ │ ├── BUILD.txt │ │ ├── CMakeLists.txt │ │ ├── GKlib.h │ │ ├── GKlibSystem.cmake │ │ ├── Makefile │ │ ├── b64.c │ │ ├── blas.c │ │ ├── conf │ │ │ └── check_thread_storage.c │ │ ├── csr.c │ │ ├── error.c │ │ ├── evaluate.c │ │ ├── fkvkselect.c │ │ ├── fs.c │ │ ├── getopt.c │ │ ├── gk_arch.h │ │ ├── gk_defs.h │ │ ├── gk_externs.h │ │ ├── gk_getopt.h │ │ ├── gk_macros.h │ │ ├── gk_mkblas.h │ │ ├── gk_mkmemory.h │ │ ├── gk_mkpqueue.h │ │ ├── gk_mkpqueue2.h │ │ ├── gk_mkrandom.h │ │ ├── gk_mksort.h │ │ ├── gk_mkutils.h │ │ ├── gk_proto.h │ │ ├── gk_struct.h │ │ ├── gk_types.h │ │ ├── gkregex.c │ │ ├── gkregex.h │ │ ├── graph.c │ │ ├── htable.c │ │ ├── io.c │ │ ├── itemsets.c │ │ ├── mcore.c │ │ ├── memory.c │ │ ├── ms_inttypes.h │ │ ├── ms_stat.h │ │ ├── ms_stdint.h │ │ ├── omp.c │ │ ├── pdb.c │ │ ├── pqueue.c │ │ ├── random.c │ │ ├── rw.c │ │ ├── seq.c │ │ ├── sort.c │ │ ├── string.c │ │ ├── test │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile.in.old │ │ │ ├── Makefile.old │ │ │ ├── fis.c │ │ │ ├── gkgraph.c │ │ │ ├── gksort.c │ │ │ ├── rw.c │ │ │ └── strings.c │ │ ├── timers.c │ │ ├── tokenizer.c │ │ └── util.c │ │ ├── Install.txt │ │ ├── LICENSE.txt │ │ ├── Makefile │ │ ├── graphs │ │ ├── 4elt.graph │ │ ├── README │ │ ├── copter2.graph │ │ ├── mdual.graph │ │ ├── metis.mesh │ │ └── test.mgraph │ │ ├── include │ │ ├── CMakeLists.txt │ │ └── metis.h │ │ ├── libmetis │ │ ├── CMakeLists.txt │ │ ├── auxapi.c │ │ ├── balance.c │ │ ├── bucketsort.c │ │ ├── checkgraph.c │ │ ├── coarsen.c │ │ ├── compress.c │ │ ├── contig.c │ │ ├── debug.c │ │ ├── defs.h │ │ ├── fm.c │ │ ├── fortran.c │ │ ├── frename.c │ │ ├── gklib.c │ │ ├── gklib_defs.h │ │ ├── gklib_rename.h │ │ ├── graph.c │ │ ├── initpart.c │ │ ├── kmetis.c │ │ ├── kwayfm.c │ │ ├── kwayrefine.c │ │ ├── macros.h │ │ ├── mcutil.c │ │ ├── mesh.c │ │ ├── meshpart.c │ │ ├── metislib.h │ │ ├── minconn.c │ │ ├── mincover.c │ │ ├── mmd.c │ │ ├── ometis.c │ │ ├── options.c │ │ ├── parmetis.c │ │ ├── pmetis.c │ │ ├── proto.h │ │ ├── refine.c │ │ ├── rename.h │ │ ├── separator.c │ │ ├── sfm.c │ │ ├── srefine.c │ │ ├── stat.c │ │ ├── stdheaders.h │ │ ├── struct.h │ │ ├── timing.c │ │ ├── util.c │ │ └── wspace.c │ │ ├── manual │ │ └── manual.pdf │ │ ├── metis.h │ │ ├── programs │ │ ├── CMakeLists.txt │ │ ├── cmdline_gpmetis.c │ │ ├── cmdline_m2gmetis.c │ │ ├── cmdline_mpmetis.c │ │ ├── cmdline_ndmetis.c │ │ ├── cmpfillin.c │ │ ├── defs.h │ │ ├── gpmetis.c │ │ ├── graphchk.c │ │ ├── io.c │ │ ├── m2gmetis.c │ │ ├── metisbin.h │ │ ├── mpmetis.c │ │ ├── ndmetis.c │ │ ├── proto.h │ │ ├── smbfactor.c │ │ ├── stat.c │ │ └── struct.h │ │ └── vsgen.bat ├── CMakeLists.txt ├── base │ ├── CMakeLists.txt │ ├── ConcurrentMap.h │ ├── DSFMap.h │ ├── DSFVector.cpp │ ├── DSFVector.h │ ├── FastDefaultAllocator.h │ ├── FastList.h │ ├── FastMap.h │ ├── FastSet.h │ ├── FastVector.h │ ├── GenericValue.h │ ├── Group.h │ ├── Lie.h │ ├── Manifold.h │ ├── Matrix.cpp │ ├── Matrix.h │ ├── MatrixLieGroup.h │ ├── MatrixSerialization.h │ ├── OptionalJacobian.h │ ├── ProductLieGroup.h │ ├── SymmetricBlockMatrix.cpp │ ├── SymmetricBlockMatrix.h │ ├── Testable.h │ ├── TestableAssertions.h │ ├── ThreadsafeException.h │ ├── Value.h │ ├── Vector.cpp │ ├── Vector.h │ ├── VectorSerialization.h │ ├── VectorSpace.h │ ├── VerticalBlockMatrix.cpp │ ├── VerticalBlockMatrix.h │ ├── WeightedSampler.h │ ├── base.i │ ├── chartTesting.h │ ├── cholesky.cpp │ ├── cholesky.h │ ├── concepts.h │ ├── debug.cpp │ ├── debug.h │ ├── kruskal-inl.h │ ├── kruskal.h │ ├── lieProxies.h │ ├── make_shared.h │ ├── numericalDerivative.h │ ├── serialization.h │ ├── serializationTestHelpers.h │ ├── std_optional_serialization.h │ ├── testLie.h │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── testCholesky.cpp │ │ ├── testDSFMap.cpp │ │ ├── testDSFVector.cpp │ │ ├── testDebug.cpp │ │ ├── testFastContainers.cpp │ │ ├── testGroup.cpp │ │ ├── testKruskal.cpp │ │ ├── testMatrix.cpp │ │ ├── testNumericalDerivative.cpp │ │ ├── testOptionalJacobian.cpp │ │ ├── testSerializationBase.cpp │ │ ├── testStdOptionalSerialization.cpp │ │ ├── testSymmetricBlockMatrix.cpp │ │ ├── testTreeTraversal.cpp │ │ ├── testVector.cpp │ │ ├── testVerticalBlockMatrix.cpp │ │ └── testWeightedSampler.cpp │ ├── timing.cpp │ ├── timing.h │ ├── treeTraversal-inst.h │ ├── treeTraversal │ │ ├── parallelTraversalTasks.h │ │ └── statistics.h │ ├── types.cpp │ ├── types.h │ ├── utilities.cpp │ └── utilities.h ├── basis │ ├── Basis.cpp │ ├── Basis.h │ ├── BasisFactors.h │ ├── CMakeLists.txt │ ├── Chebyshev.cpp │ ├── Chebyshev.h │ ├── Chebyshev2.cpp │ ├── Chebyshev2.h │ ├── FitBasis.h │ ├── Fourier.h │ ├── basis.i │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testBasisFactors.cpp │ │ ├── testChebyshev.cpp │ │ ├── testChebyshev2.cpp │ │ └── testFourier.cpp ├── config.h.in ├── constrained │ ├── AugmentedLagrangianOptimizer.cpp │ ├── AugmentedLagrangianOptimizer.h │ ├── CMakeLists.txt │ ├── ConstrainedOptProblem.cpp │ ├── ConstrainedOptProblem.h │ ├── ConstrainedOptimizer.h │ ├── InequalityPenaltyFunction.cpp │ ├── InequalityPenaltyFunction.h │ ├── NonlinearConstraint.h │ ├── NonlinearEqualityConstraint-inl.h │ ├── NonlinearEqualityConstraint.cpp │ ├── NonlinearEqualityConstraint.h │ ├── NonlinearInequalityConstraint.cpp │ ├── NonlinearInequalityConstraint.h │ ├── PenaltyOptimizer.cpp │ ├── PenaltyOptimizer.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── constrainedExample.h │ │ ├── testAugmentedLagrangianOptimizer.cpp │ │ ├── testInequalityPenaltyFunction.cpp │ │ ├── testNonlinearEqualityConstraint.cpp │ │ ├── testNonlinearInequalityConstraint.cpp │ │ └── testPenaltyOptimizer.cpp ├── discrete │ ├── AlgebraicDecisionTree.cpp │ ├── AlgebraicDecisionTree.h │ ├── Assignment.h │ ├── CMakeLists.txt │ ├── DecisionTree-inl.h │ ├── DecisionTree.h │ ├── DecisionTreeFactor.cpp │ ├── DecisionTreeFactor.h │ ├── DiscreteBayesNet.cpp │ ├── DiscreteBayesNet.h │ ├── DiscreteBayesTree.cpp │ ├── DiscreteBayesTree.h │ ├── DiscreteConditional.cpp │ ├── DiscreteConditional.h │ ├── DiscreteDistribution.cpp │ ├── DiscreteDistribution.h │ ├── DiscreteEliminationTree.cpp │ ├── DiscreteEliminationTree.h │ ├── DiscreteFactor.cpp │ ├── DiscreteFactor.h │ ├── DiscreteFactorGraph.cpp │ ├── DiscreteFactorGraph.h │ ├── DiscreteJunctionTree.cpp │ ├── DiscreteJunctionTree.h │ ├── DiscreteKey.cpp │ ├── DiscreteKey.h │ ├── DiscreteLookupDAG.cpp │ ├── DiscreteLookupDAG.h │ ├── DiscreteMarginals.cpp │ ├── DiscreteMarginals.h │ ├── DiscreteSearch.cpp │ ├── DiscreteSearch.h │ ├── DiscreteValues.cpp │ ├── DiscreteValues.h │ ├── Ring.h │ ├── Signature.cpp │ ├── Signature.h │ ├── SignatureParser.cpp │ ├── SignatureParser.h │ ├── TableDistribution.cpp │ ├── TableDistribution.h │ ├── TableFactor.cpp │ ├── TableFactor.h │ ├── discrete.i │ └── tests │ │ ├── AsiaExample.h │ │ ├── CMakeLists.txt │ │ ├── data │ │ ├── FG │ │ │ └── alarm.fg │ │ └── UAI │ │ │ ├── sampleMARKOV.uai │ │ │ ├── sampleMARKOV.uai.evid │ │ │ ├── uai08_test1.uai │ │ │ ├── uai08_test1.uai.evid │ │ │ ├── uai08_test1.uai.output │ │ │ ├── uai08_test2.uai │ │ │ ├── uai08_test2.uai.evid │ │ │ ├── uai08_test2.uai.output │ │ │ ├── uai08_test3.uai │ │ │ ├── uai08_test3.uai.evid │ │ │ └── uai08_test3.uai.output │ │ ├── testAlgebraicDecisionTree.cpp │ │ ├── testDecisionTree.cpp │ │ ├── testDecisionTreeFactor.cpp │ │ ├── testDiscreteBayesNet.cpp │ │ ├── testDiscreteBayesTree.cpp │ │ ├── testDiscreteBayesTree.pdf │ │ ├── testDiscreteConditional.cpp │ │ ├── testDiscreteDistribution.cpp │ │ ├── testDiscreteFactor.cpp │ │ ├── testDiscreteFactorGraph.cpp │ │ ├── testDiscreteLookupDAG.cpp │ │ ├── testDiscreteMarginals.cpp │ │ ├── testDiscreteSearch.cpp │ │ ├── testDiscreteValues.cpp │ │ ├── testSerializationDiscrete.cpp │ │ ├── testSignature.cpp │ │ ├── testSignatureParser.cpp │ │ └── testTableFactor.cpp ├── geometry │ ├── BearingRange.h │ ├── CMakeLists.txt │ ├── Cal3.cpp │ ├── Cal3.h │ ├── Cal3Bundler.cpp │ ├── Cal3Bundler.h │ ├── Cal3DS2.cpp │ ├── Cal3DS2.h │ ├── Cal3DS2_Base.cpp │ ├── Cal3DS2_Base.h │ ├── Cal3Fisheye.cpp │ ├── Cal3Fisheye.h │ ├── Cal3Unified.cpp │ ├── Cal3Unified.h │ ├── Cal3_S2.cpp │ ├── Cal3_S2.h │ ├── Cal3_S2Stereo.cpp │ ├── Cal3_S2Stereo.h │ ├── Cal3f.cpp │ ├── Cal3f.h │ ├── CalibratedCamera.cpp │ ├── CalibratedCamera.h │ ├── CameraSet.h │ ├── Cyclic.cpp │ ├── Cyclic.h │ ├── EssentialMatrix.cpp │ ├── EssentialMatrix.h │ ├── Event.cpp │ ├── Event.h │ ├── FundamentalMatrix.cpp │ ├── FundamentalMatrix.h │ ├── Gal3.cpp │ ├── Gal3.h │ ├── Line3.cpp │ ├── Line3.h │ ├── OrientedPlane3.cpp │ ├── OrientedPlane3.h │ ├── PinholeCamera.h │ ├── PinholePose.h │ ├── PinholeSet.h │ ├── Point2.cpp │ ├── Point2.h │ ├── Point3.cpp │ ├── Point3.h │ ├── Pose2.cpp │ ├── Pose2.h │ ├── Pose3.cpp │ ├── Pose3.h │ ├── Quaternion.h │ ├── Rot2.cpp │ ├── Rot2.h │ ├── Rot3.cpp │ ├── Rot3.h │ ├── Rot3M.cpp │ ├── Rot3Q.cpp │ ├── SO3.cpp │ ├── SO3.h │ ├── SO4.cpp │ ├── SO4.h │ ├── SOn-inl.h │ ├── SOn.cpp │ ├── SOn.h │ ├── Similarity2.cpp │ ├── Similarity2.h │ ├── Similarity3.cpp │ ├── Similarity3.h │ ├── SimpleCamera.h │ ├── SphericalCamera.cpp │ ├── SphericalCamera.h │ ├── StereoCamera.cpp │ ├── StereoCamera.h │ ├── StereoPoint2.cpp │ ├── StereoPoint2.h │ ├── Unit3.cpp │ ├── Unit3.h │ ├── concepts.h │ ├── doc │ │ ├── Cal3_S2.ipynb │ │ ├── Pose2.ipynb │ │ ├── Pose3.ipynb │ │ ├── Rot2.ipynb │ │ ├── Rot3.ipynb │ │ ├── SO3.ipynb │ │ ├── Similarity2.ipynb │ │ └── Similarity3.ipynb │ ├── geometry.i │ ├── geometry.md │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── testBearingRange.cpp │ │ ├── testCal3Bundler.cpp │ │ ├── testCal3DFisheye.cpp │ │ ├── testCal3DS2.cpp │ │ ├── testCal3Unified.cpp │ │ ├── testCal3_S2.cpp │ │ ├── testCal3_S2Stereo.cpp │ │ ├── testCal3f.cpp │ │ ├── testCalibratedCamera.cpp │ │ ├── testCameraSet.cpp │ │ ├── testCyclic.cpp │ │ ├── testEssentialMatrix.cpp │ │ ├── testEvent.cpp │ │ ├── testFundamentalMatrix.cpp │ │ ├── testGal3.cpp │ │ ├── testLine3.cpp │ │ ├── testOrientedPlane3.cpp │ │ ├── testPinholeCamera.cpp │ │ ├── testPinholePose.cpp │ │ ├── testPinholeSet.cpp │ │ ├── testPoint2.cpp │ │ ├── testPoint3.cpp │ │ ├── testPose2.cpp │ │ ├── testPose3.cpp │ │ ├── testPoseAdjointMap.h │ │ ├── testQuaternion.cpp │ │ ├── testRot2.cpp │ │ ├── testRot3.cpp │ │ ├── testRot3M.cpp │ │ ├── testRot3Q.cpp │ │ ├── testSO3.cpp │ │ ├── testSO4.cpp │ │ ├── testSOn.cpp │ │ ├── testSerializationGeometry.cpp │ │ ├── testSimilarity2.cpp │ │ ├── testSimilarity3.cpp │ │ ├── testSphericalCamera.cpp │ │ ├── testStereoCamera.cpp │ │ ├── testStereoPoint2.cpp │ │ ├── testTriangulation.cpp │ │ └── testUnit3.cpp │ ├── triangulation.cpp │ └── triangulation.h ├── global_includes.h ├── groups.dox ├── gtsam.i ├── hybrid │ ├── CMakeLists.txt │ ├── DCSAM.cpp │ ├── DCSAM.h │ ├── DiscreteBoundaryFactor.cpp │ ├── DiscreteBoundaryFactor.h │ ├── HybridBayesNet.cpp │ ├── HybridBayesNet.h │ ├── HybridBayesTree.cpp │ ├── HybridBayesTree.h │ ├── HybridConditional.cpp │ ├── HybridConditional.h │ ├── HybridEliminationTree.cpp │ ├── HybridEliminationTree.h │ ├── HybridFactor.cpp │ ├── HybridFactor.h │ ├── HybridFactorGraph.cpp │ ├── HybridFactorGraph.h │ ├── HybridGaussianConditional.cpp │ ├── HybridGaussianConditional.h │ ├── HybridGaussianFactor.cpp │ ├── HybridGaussianFactor.h │ ├── HybridGaussianFactorGraph.cpp │ ├── HybridGaussianFactorGraph.h │ ├── HybridGaussianISAM.cpp │ ├── HybridGaussianISAM.h │ ├── HybridGaussianProductFactor.cpp │ ├── HybridGaussianProductFactor.h │ ├── HybridJunctionTree.cpp │ ├── HybridJunctionTree.h │ ├── HybridNonlinearFactor.cpp │ ├── HybridNonlinearFactor.h │ ├── HybridNonlinearFactorGraph.cpp │ ├── HybridNonlinearFactorGraph.h │ ├── HybridNonlinearISAM.cpp │ ├── HybridNonlinearISAM.h │ ├── HybridSmoother.cpp │ ├── HybridSmoother.h │ ├── HybridValues.cpp │ ├── HybridValues.h │ ├── doc │ │ ├── HybridBayesNet.ipynb │ │ ├── HybridConditional.ipynb │ │ └── HybridValues.ipynb │ ├── hybrid.i │ ├── hybrid.md │ └── tests │ │ ├── CMakeLists.txt │ │ ├── DiscreteFixture.h │ │ ├── Switching.h │ │ ├── TinyHybridExample.h │ │ ├── testDCSAM.cpp │ │ ├── testGaussianMixture.cpp │ │ ├── testHybridBayesNet.cpp │ │ ├── testHybridBayesTree.cpp │ │ ├── testHybridConditional.cpp │ │ ├── testHybridEstimation.cpp │ │ ├── testHybridFactorGraph.cpp │ │ ├── testHybridGaussianConditional.cpp │ │ ├── testHybridGaussianFactor.cpp │ │ ├── testHybridGaussianFactorGraph.cpp │ │ ├── testHybridGaussianISAM.cpp │ │ ├── testHybridGaussianProductFactor.cpp │ │ ├── testHybridMotionModel.cpp │ │ ├── testHybridNonlinearFactor.cpp │ │ ├── testHybridNonlinearFactorGraph.cpp │ │ ├── testHybridNonlinearISAM.cpp │ │ ├── testHybridSmoother.cpp │ │ ├── testHybridValues.cpp │ │ └── testSerializationHybrid.cpp ├── inference │ ├── BayesNet-inst.h │ ├── BayesNet.h │ ├── BayesTree-inst.h │ ├── BayesTree.cpp │ ├── BayesTree.h │ ├── BayesTreeCliqueBase-inst.h │ ├── BayesTreeCliqueBase.h │ ├── CMakeLists.txt │ ├── ClusterTree-inst.h │ ├── ClusterTree.h │ ├── Conditional-inst.h │ ├── Conditional.h │ ├── DotWriter.cpp │ ├── DotWriter.h │ ├── EdgeKey.cpp │ ├── EdgeKey.h │ ├── EliminateableFactorGraph-inst.h │ ├── EliminateableFactorGraph.h │ ├── EliminationTree-inst.h │ ├── EliminationTree.h │ ├── Factor.cpp │ ├── Factor.h │ ├── FactorGraph-inst.h │ ├── FactorGraph.h │ ├── ISAM-inst.h │ ├── ISAM.h │ ├── JunctionTree-inst.h │ ├── JunctionTree.h │ ├── Key.cpp │ ├── Key.h │ ├── LabeledSymbol.cpp │ ├── LabeledSymbol.h │ ├── MetisIndex-inl.h │ ├── MetisIndex.h │ ├── Ordering.cpp │ ├── Ordering.h │ ├── Symbol.cpp │ ├── Symbol.h │ ├── VariableIndex-inl.h │ ├── VariableIndex.cpp │ ├── VariableIndex.h │ ├── VariableSlots.cpp │ ├── VariableSlots.h │ ├── doc │ │ ├── BayesNet.ipynb │ │ ├── BayesTree.ipynb │ │ ├── ClusterTree.ipynb │ │ ├── Conditional.ipynb │ │ ├── DotWriter.ipynb │ │ ├── EdgeKey.ipynb │ │ ├── EliminationTree.ipynb │ │ ├── Factor.ipynb │ │ ├── FactorGraph.ipynb │ │ ├── ISAM.ipynb │ │ ├── JunctionTree.ipynb │ │ ├── Key.ipynb │ │ ├── LabeledSymbol.ipynb │ │ ├── Ordering.ipynb │ │ ├── Shortcuts.ipynb │ │ ├── Symbol.ipynb │ │ └── VariableIndex.ipynb │ ├── graph-inl.h │ ├── graph.h │ ├── inference-inst.h │ ├── inference.i │ ├── inference.md │ ├── inferenceExceptions.cpp │ ├── inferenceExceptions.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testEdgeKey.cpp │ │ ├── testKey.cpp │ │ ├── testLabeledSymbol.cpp │ │ ├── testOrdering.cpp │ │ ├── testSymbol.cpp │ │ └── testVariableSlots.cpp ├── linear │ ├── AcceleratedPowerMethod.h │ ├── BinaryJacobianFactor.h │ ├── CMakeLists.txt │ ├── ConjugateGradientSolver.cpp │ ├── ConjugateGradientSolver.h │ ├── Errors.cpp │ ├── Errors.h │ ├── GaussianBayesNet.cpp │ ├── GaussianBayesNet.h │ ├── GaussianBayesTree-inl.h │ ├── GaussianBayesTree.cpp │ ├── GaussianBayesTree.h │ ├── GaussianConditional-inl.h │ ├── GaussianConditional.cpp │ ├── GaussianConditional.h │ ├── GaussianDensity.cpp │ ├── GaussianDensity.h │ ├── GaussianEliminationTree.cpp │ ├── GaussianEliminationTree.h │ ├── GaussianFactor.cpp │ ├── GaussianFactor.h │ ├── GaussianFactorGraph.cpp │ ├── GaussianFactorGraph.h │ ├── GaussianISAM.cpp │ ├── GaussianISAM.h │ ├── GaussianJunctionTree.cpp │ ├── GaussianJunctionTree.h │ ├── HessianFactor-inl.h │ ├── HessianFactor.cpp │ ├── HessianFactor.h │ ├── IterativeSolver.cpp │ ├── IterativeSolver.h │ ├── JacobianFactor-inl.h │ ├── JacobianFactor.cpp │ ├── JacobianFactor.h │ ├── KalmanFilter.cpp │ ├── KalmanFilter.h │ ├── LossFunctions.cpp │ ├── LossFunctions.h │ ├── NoiseModel.cpp │ ├── NoiseModel.h │ ├── PCGSolver.cpp │ ├── PCGSolver.h │ ├── PowerMethod.h │ ├── Preconditioner.cpp │ ├── Preconditioner.h │ ├── RegularHessianFactor.h │ ├── RegularJacobianFactor.h │ ├── Sampler.cpp │ ├── Sampler.h │ ├── Scatter.cpp │ ├── Scatter.h │ ├── SparseEigen.h │ ├── SubgraphBuilder.cpp │ ├── SubgraphBuilder.h │ ├── SubgraphPreconditioner.cpp │ ├── SubgraphPreconditioner.h │ ├── SubgraphSolver.cpp │ ├── SubgraphSolver.h │ ├── VectorValues.cpp │ ├── VectorValues.h │ ├── iterative-inl.h │ ├── iterative.cpp │ ├── iterative.h │ ├── linear.i │ ├── linearAlgorithms-inst.h │ ├── linearExceptions.cpp │ ├── linearExceptions.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── powerMethodExample.h │ │ ├── testAcceleratedPowerMethod.cpp │ │ ├── testErrors.cpp │ │ ├── testGaussianBayesNet.cpp │ │ ├── testGaussianBayesTree.cpp │ │ ├── testGaussianConditional.cpp │ │ ├── testGaussianDensity.cpp │ │ ├── testGaussianFactorGraph.cpp │ │ ├── testHessianFactor.cpp │ │ ├── testJacobianFactor.cpp │ │ ├── testKalmanFilter.cpp │ │ ├── testNoiseModel.cpp │ │ ├── testPowerMethod.cpp │ │ ├── testRegularHessianFactor.cpp │ │ ├── testRegularJacobianFactor.cpp │ │ ├── testSampler.cpp │ │ ├── testScatter.cpp │ │ ├── testSerializationLinear.cpp │ │ ├── testSparseEigen.cpp │ │ └── testVectorValues.cpp ├── mainpage.dox ├── navigation │ ├── .gitignore │ ├── AHRSFactor.cpp │ ├── AHRSFactor.h │ ├── AttitudeFactor.cpp │ ├── AttitudeFactor.h │ ├── AttitudeFactor.md │ ├── BarometricFactor.cpp │ ├── BarometricFactor.h │ ├── CMakeLists.txt │ ├── CombinedImuFactor.cpp │ ├── CombinedImuFactor.h │ ├── ConstantVelocityFactor.h │ ├── GPSFactor.cpp │ ├── GPSFactor.h │ ├── ImuBias.cpp │ ├── ImuBias.h │ ├── ImuFactor.cpp │ ├── ImuFactor.h │ ├── InvariantEKF.h │ ├── LieGroupEKF.h │ ├── MagFactor.h │ ├── MagPoseFactor.h │ ├── ManifoldEKF.h │ ├── ManifoldPreintegration.cpp │ ├── ManifoldPreintegration.h │ ├── NavState.cpp │ ├── NavState.h │ ├── PreintegratedRotation.cpp │ ├── PreintegratedRotation.h │ ├── PreintegrationBase.cpp │ ├── PreintegrationBase.h │ ├── PreintegrationCombinedParams.h │ ├── PreintegrationParams.cpp │ ├── PreintegrationParams.h │ ├── README.md │ ├── Scenario.h │ ├── ScenarioRunner.cpp │ ├── ScenarioRunner.h │ ├── TangentPreintegration.cpp │ ├── TangentPreintegration.h │ ├── doc │ │ ├── AHRSFactor.ipynb │ │ ├── AttitudeFactor.ipynb │ │ ├── BarometricFactor.ipynb │ │ ├── CombinedImuFactor.ipynb │ │ ├── ConstantVelocityFactor.ipynb │ │ ├── GPSFactor.ipynb │ │ ├── ImuFactor.ipynb │ │ ├── InvariantEKF.md │ │ ├── MagFactor.ipynb │ │ ├── MagPoseFactor.ipynb │ │ ├── PreintegratedCombinedMeasurements.ipynb │ │ ├── PreintegratedImuMeasurements.ipynb │ │ ├── PreintegratedRotation.ipynb │ │ ├── PreintegrationCombinedParams.ipynb │ │ ├── PreintegrationParams.ipynb │ │ ├── Scenario.ipynb │ │ └── ScenarioRunner.ipynb │ ├── expressions.h │ ├── navigation.i │ ├── navigation.md │ └── tests │ │ ├── CMakeLists.txt │ │ ├── imuFactorTesting.h │ │ ├── testAHRSFactor.cpp │ │ ├── testAttitudeFactor.cpp │ │ ├── testBarometricFactor.cpp │ │ ├── testCombinedImuFactor.cpp │ │ ├── testConstantVelocityFactor.cpp │ │ ├── testGPSFactor.cpp │ │ ├── testGeographicLib.cpp │ │ ├── testImuBias.cpp │ │ ├── testImuFactor.cpp │ │ ├── testInvariantEKF.cpp │ │ ├── testLieGroupEKF.cpp │ │ ├── testMagFactor.cpp │ │ ├── testMagPoseFactor.cpp │ │ ├── testManifoldEKF.cpp │ │ ├── testManifoldPreintegration.cpp │ │ ├── testNavExpressions.cpp │ │ ├── testNavState.cpp │ │ ├── testPoseVelocityBias.cpp │ │ ├── testPreintegratedRotation.cpp │ │ ├── testScenario.cpp │ │ ├── testScenarioRunner.cpp │ │ ├── testSerializationNavigation.cpp │ │ └── testTangentPreintegration.cpp ├── nonlinear │ ├── AdaptAutoDiff.h │ ├── BatchFixedLagSmoother.cpp │ ├── BatchFixedLagSmoother.h │ ├── BayesTreeMarginalizationHelper.h │ ├── CMakeLists.txt │ ├── CustomFactor.cpp │ ├── CustomFactor.h │ ├── DoglegOptimizer.cpp │ ├── DoglegOptimizer.h │ ├── DoglegOptimizerImpl.cpp │ ├── DoglegOptimizerImpl.h │ ├── Expression-inl.h │ ├── Expression.h │ ├── ExpressionFactor.h │ ├── ExpressionFactorGraph.h │ ├── ExtendedKalmanFilter-inl.h │ ├── ExtendedKalmanFilter.h │ ├── FixedLagSmoother.cpp │ ├── FixedLagSmoother.h │ ├── FunctorizedFactor.h │ ├── GaussNewtonOptimizer.cpp │ ├── GaussNewtonOptimizer.h │ ├── GncOptimizer.h │ ├── GncParams.h │ ├── GraphvizFormatting.cpp │ ├── GraphvizFormatting.h │ ├── ISAM2-impl.cpp │ ├── ISAM2-impl.h │ ├── ISAM2.cpp │ ├── ISAM2.h │ ├── ISAM2Clique.cpp │ ├── ISAM2Clique.h │ ├── ISAM2Params.cpp │ ├── ISAM2Params.h │ ├── ISAM2Result.h │ ├── ISAM2UpdateParams.h │ ├── IncrementalFixedLagSmoother.cpp │ ├── IncrementalFixedLagSmoother.h │ ├── LevenbergMarquardtOptimizer.cpp │ ├── LevenbergMarquardtOptimizer.h │ ├── LevenbergMarquardtParams.cpp │ ├── LevenbergMarquardtParams.h │ ├── LinearContainerFactor.cpp │ ├── LinearContainerFactor.h │ ├── Marginals.cpp │ ├── Marginals.h │ ├── NonlinearConjugateGradientOptimizer.cpp │ ├── NonlinearConjugateGradientOptimizer.h │ ├── NonlinearEquality.h │ ├── NonlinearFactor.cpp │ ├── NonlinearFactor.h │ ├── NonlinearFactorGraph.cpp │ ├── NonlinearFactorGraph.h │ ├── NonlinearISAM.cpp │ ├── NonlinearISAM.h │ ├── NonlinearOptimizer.cpp │ ├── NonlinearOptimizer.h │ ├── NonlinearOptimizerParams.cpp │ ├── NonlinearOptimizerParams.h │ ├── PriorFactor.h │ ├── Symbol.h │ ├── Values-inl.h │ ├── Values.cpp │ ├── Values.h │ ├── WhiteNoiseFactor.h │ ├── custom.i │ ├── doc │ │ ├── BatchFixedLagSmoother.ipynb │ │ ├── CustomFactor.ipynb │ │ ├── DoglegOptimizer.ipynb │ │ ├── ExpressionFactor.ipynb │ │ ├── ExpressionFactorGraph.ipynb │ │ ├── ExtendedKalmanFilter.ipynb │ │ ├── FixedLagSmoother.ipynb │ │ ├── GaussNewtonOptimizer.ipynb │ │ ├── GncOptimizer.ipynb │ │ ├── ISAM2.ipynb │ │ ├── IncrementalFixedLagSmoother.ipynb │ │ ├── LevenbergMarquardtOptimizer.ipynb │ │ ├── LinearContainerFactor.ipynb │ │ ├── NonlinearConjugateGradientOptimizer.ipynb │ │ ├── NonlinearEquality.ipynb │ │ ├── NonlinearFactor.ipynb │ │ ├── NonlinearFactorGraph.ipynb │ │ ├── NonlinearISAM.ipynb │ │ ├── NonlinearOptimizer.ipynb │ │ ├── PriorFactor.ipynb │ │ └── WhiteNoiseFactor.ipynb │ ├── expressionTesting.h │ ├── expressions.h │ ├── factorTesting.h │ ├── internal │ │ ├── CallRecord.h │ │ ├── ChiSquaredInverse.h │ │ ├── ExecutionTrace.h │ │ ├── ExpressionNode.h │ │ ├── JacobianMap.h │ │ ├── LevenbergMarquardtState.h │ │ └── NonlinearOptimizerState.h │ ├── nonlinear.i │ ├── nonlinear.md │ ├── nonlinearExceptions.h │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── priorFactor.xml │ │ ├── testAdaptAutoDiff.cpp │ │ ├── testBatchFixedLagSmoother.cpp │ │ ├── testCallRecord.cpp │ │ ├── testExecutionTrace.cpp │ │ ├── testExpression.cpp │ │ ├── testFactorTesting.cpp │ │ ├── testFunctorizedFactor.cpp │ │ ├── testIncrementalFixedLagSmoother.cpp │ │ ├── testLinearContainerFactor.cpp │ │ ├── testNonlinearConjugateGradientOptimizer.cpp │ │ ├── testSerializationNonlinear.cpp │ │ ├── testUtilities.cpp │ │ ├── testValues.cpp │ │ └── testWhiteNoiseFactor.cpp │ ├── utilities.h │ └── values.i ├── precompiled_header.cpp ├── precompiled_header.h ├── sam │ ├── BearingFactor.h │ ├── BearingRangeFactor.h │ ├── CMakeLists.txt │ ├── RangeFactor.h │ ├── sam.i │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testBearingFactor.cpp │ │ ├── testBearingRangeFactor.cpp │ │ ├── testRangeFactor.cpp │ │ └── testSerializationSam.cpp ├── sfm │ ├── BinaryMeasurement.h │ ├── CMakeLists.txt │ ├── DsfTrackGenerator.cpp │ ├── DsfTrackGenerator.h │ ├── MFAS.cpp │ ├── MFAS.h │ ├── SfmData.cpp │ ├── SfmData.h │ ├── SfmTrack.cpp │ ├── SfmTrack.h │ ├── ShonanAveraging.cpp │ ├── ShonanAveraging.h │ ├── ShonanFactor.cpp │ ├── ShonanFactor.h │ ├── ShonanGaugeFactor.h │ ├── TransferFactor.h │ ├── TranslationFactor.h │ ├── TranslationRecovery.cpp │ ├── TranslationRecovery.h │ ├── sfm.i │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testBinaryMeasurement.cpp │ │ ├── testMFAS.cpp │ │ ├── testSfmData.cpp │ │ ├── testSfmTrack.cpp │ │ ├── testShonanAveraging.cpp │ │ ├── testShonanFactor.cpp │ │ ├── testShonanGaugeFactor.cpp │ │ ├── testTransferFactor.cpp │ │ └── testTranslationFactor.cpp ├── slam │ ├── AntiFactor.h │ ├── BearingFactor.h │ ├── BearingRangeFactor.h │ ├── BetweenFactor.h │ ├── BoundingConstraint.h │ ├── CMakeLists.txt │ ├── EssentialMatrixConstraint.cpp │ ├── EssentialMatrixConstraint.h │ ├── EssentialMatrixFactor.h │ ├── FrobeniusFactor.cpp │ ├── FrobeniusFactor.h │ ├── GeneralSFMFactor.h │ ├── InitializePose.h │ ├── InitializePose3.cpp │ ├── InitializePose3.h │ ├── JacobianFactorQ.h │ ├── JacobianFactorQR.h │ ├── JacobianFactorSVD.h │ ├── KarcherMeanFactor-inl.h │ ├── KarcherMeanFactor.h │ ├── OrientedPlane3Factor.cpp │ ├── OrientedPlane3Factor.h │ ├── PlanarProjectionFactor.h │ ├── PoseRotationPrior.h │ ├── PoseTranslationPrior.h │ ├── PriorFactor.h │ ├── ProjectionFactor.h │ ├── README.md │ ├── RangeFactor.h │ ├── ReferenceFrameFactor.h │ ├── RegularImplicitSchurFactor.h │ ├── RotateFactor.h │ ├── SmartFactorBase.h │ ├── SmartFactorParams.h │ ├── SmartProjectionFactor.h │ ├── SmartProjectionPoseFactor.h │ ├── SmartProjectionRigFactor.h │ ├── StereoFactor.h │ ├── TriangulationFactor.h │ ├── dataset.cpp │ ├── dataset.h │ ├── doc │ │ ├── BetweenFactor.ipynb │ │ ├── EssentialMatrixConstraint.ipynb │ │ ├── EssentialMatrixFactor.ipynb │ │ ├── FrobeniusFactor.ipynb │ │ ├── GeneralSFMFactor.ipynb │ │ ├── InitializePose3.ipynb │ │ ├── KarcherMeanFactor.ipynb │ │ ├── OrientedPlane3Factor.ipynb │ │ ├── PlanarProjectionFactor.ipynb │ │ ├── PoseRotationPrior.ipynb │ │ ├── PoseTranslationPrior.ipynb │ │ ├── ProjectionFactor.ipynb │ │ ├── ReferenceFrameFactor.ipynb │ │ ├── RotateFactor.ipynb │ │ ├── SmartFactors.md │ │ ├── SmartProjectionFactor.ipynb │ │ ├── SmartProjectionParams.ipynb │ │ ├── SmartProjectionPoseFactor.ipynb │ │ ├── SmartProjectionRigFactor.ipynb │ │ ├── StereoFactor.ipynb │ │ ├── TriangulationFactor.ipynb │ │ ├── dataset.ipynb │ │ └── lago.ipynb │ ├── expressions.h │ ├── lago.cpp │ ├── lago.h │ ├── slam.i │ ├── slam.md │ └── tests │ │ ├── CMakeLists.txt │ │ ├── PinholeFactor.h │ │ ├── smartFactorScenarios.h │ │ ├── testAntiFactor.cpp │ │ ├── testBetweenFactor.cpp │ │ ├── testDataset.cpp │ │ ├── testEssentialMatrixConstraint.cpp │ │ ├── testEssentialMatrixFactor.cpp │ │ ├── testFrobeniusFactor.cpp │ │ ├── testGeneralSFMFactor.cpp │ │ ├── testGeneralSFMFactor_Cal3Bundler.cpp │ │ ├── testInitializePose.cpp │ │ ├── testInitializePose3.cpp │ │ ├── testKarcherMeanFactor.cpp │ │ ├── testLago.cpp │ │ ├── testOrientedPlane3Factor.cpp │ │ ├── testPlanarProjectionFactor.cpp │ │ ├── testPoseRotationPrior.cpp │ │ ├── testPoseTranslationPrior.cpp │ │ ├── testPriorFactor.cpp │ │ ├── testProjectionFactor.cpp │ │ ├── testReferenceFrameFactor.cpp │ │ ├── testRegularImplicitSchurFactor.cpp │ │ ├── testRotateFactor.cpp │ │ ├── testSerializationDataset.cpp │ │ ├── testSerializationInSlam.cpp │ │ ├── testSlamExpressions.cpp │ │ ├── testSmartFactorBase.cpp │ │ ├── testSmartProjectionFactor.cpp │ │ ├── testSmartProjectionPoseFactor.cpp │ │ ├── testSmartProjectionRigFactor.cpp │ │ ├── testStereoFactor.cpp │ │ └── testTriangulationFactor.cpp └── symbolic │ ├── CMakeLists.txt │ ├── SymbolicBayesNet.cpp │ ├── SymbolicBayesNet.h │ ├── SymbolicBayesTree.cpp │ ├── SymbolicBayesTree.h │ ├── SymbolicConditional.cpp │ ├── SymbolicConditional.h │ ├── SymbolicEliminationTree.cpp │ ├── SymbolicEliminationTree.h │ ├── SymbolicFactor-inst.h │ ├── SymbolicFactor.cpp │ ├── SymbolicFactor.h │ ├── SymbolicFactorGraph.cpp │ ├── SymbolicFactorGraph.h │ ├── SymbolicISAM.cpp │ ├── SymbolicISAM.h │ ├── SymbolicJunctionTree.cpp │ ├── SymbolicJunctionTree.h │ ├── doc │ ├── SymbolicBayesNet.ipynb │ ├── SymbolicBayesTree.ipynb │ ├── SymbolicBayesTreeClique.ipynb │ ├── SymbolicConditional.ipynb │ ├── SymbolicEliminationTree.ipynb │ ├── SymbolicFactor.ipynb │ ├── SymbolicFactorGraph.ipynb │ └── SymbolicJunctionTree.ipynb │ ├── symbolic.i │ ├── symbolic.md │ └── tests │ ├── CMakeLists.txt │ ├── symbolicExampleGraphs.h │ ├── testSerializationSymbolic.cpp │ ├── testSymbolicBayesNet.cpp │ ├── testSymbolicBayesTree.cpp │ ├── testSymbolicConditional.cpp │ ├── testSymbolicEliminationTree.cpp │ ├── testSymbolicFactor.cpp │ ├── testSymbolicFactorGraph.cpp │ ├── testSymbolicISAM.cpp │ ├── testSymbolicJunctionTree.cpp │ └── testVariableIndex.cpp ├── gtsam_extra.cmake.in ├── gtsam_unstable ├── CMakeLists.txt ├── base │ ├── BTree.h │ ├── CMakeLists.txt │ ├── DSF.h │ ├── Dummy.cpp │ ├── Dummy.h │ ├── FixedVector.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testBTree.cpp │ │ ├── testDSF.cpp │ │ └── testFixedVector.cpp ├── discrete │ ├── AllDiff.cpp │ ├── AllDiff.h │ ├── BinaryAllDiff.h │ ├── CMakeLists.txt │ ├── CSP.cpp │ ├── CSP.h │ ├── Constraint.h │ ├── Domain.cpp │ ├── Domain.h │ ├── Scheduler.cpp │ ├── Scheduler.h │ ├── SingleValue.cpp │ ├── SingleValue.h │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── Doodle.csv │ │ ├── Doodle.xls │ │ ├── Doodle2012.csv │ │ ├── Doodle2012.xls │ │ ├── Doodle2013.csv │ │ ├── Doodle2013.xls │ │ ├── intrusive.xlsx │ │ ├── schedulingExample.cpp │ │ ├── schedulingQuals12.cpp │ │ ├── schedulingQuals13.cpp │ │ └── small.csv │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testCSP.cpp │ │ ├── testLoopyBelief.cpp │ │ ├── testScheduler.cpp │ │ └── testSudoku.cpp ├── dynamics │ ├── CMakeLists.txt │ ├── DynamicsPriors.h │ ├── FullIMUFactor.h │ ├── IMUFactor.h │ ├── Pendulum.h │ ├── PoseRTV.cpp │ ├── PoseRTV.h │ ├── SimpleHelicopter.cpp │ ├── SimpleHelicopter.h │ ├── VelocityConstraint.h │ ├── VelocityConstraint3.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testIMUSystem.cpp │ │ ├── testPendulumFactors.cpp │ │ ├── testPoseRTV.cpp │ │ ├── testSimpleHelicopter.cpp │ │ ├── testVelocityConstraint.cpp │ │ └── testVelocityConstraint3.cpp ├── examples │ ├── CMakeLists.txt │ ├── ConcurrentCalibration.cpp │ ├── ConcurrentFilteringAndSmoothingExample.cpp │ ├── GncPoseAveragingExample.cpp │ ├── ISAM2_SmartFactorStereo_IMU.cpp │ ├── README.md │ ├── SmartProjectionFactorExample.cpp │ ├── SmartRangeExample_plaza1.cpp │ ├── SmartRangeExample_plaza2.cpp │ ├── SmartStereoProjectionFactorExample.cpp │ ├── TimeOfArrivalExample.cpp │ └── plotRangeResults.p ├── geometry │ ├── BearingS2.cpp │ ├── BearingS2.h │ ├── CMakeLists.txt │ ├── InvDepthCamera3.h │ ├── Pose3Upright.cpp │ ├── Pose3Upright.h │ ├── SimPolygon2D.cpp │ ├── SimPolygon2D.h │ ├── SimWall2D.cpp │ ├── SimWall2D.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testBearingS2.cpp │ │ ├── testInvDepthCamera3.cpp │ │ ├── testPose3Upright.cpp │ │ ├── testSimPolygon2D.cpp │ │ └── testSimWall2D.cpp ├── gtsam_unstable.i ├── linear │ ├── ActiveSetSolver-inl.h │ ├── ActiveSetSolver.h │ ├── CMakeLists.txt │ ├── EqualityFactorGraph.h │ ├── InequalityFactorGraph.h │ ├── InfeasibleInitialValues.h │ ├── InfeasibleOrUnboundedProblem.h │ ├── LP.h │ ├── LPInitSolver.cpp │ ├── LPInitSolver.h │ ├── LPSolver.cpp │ ├── LPSolver.h │ ├── LinearCost.h │ ├── LinearEquality.h │ ├── LinearInequality.h │ ├── QP.h │ ├── QPInitSolver.h │ ├── QPSParser.cpp │ ├── QPSParser.h │ ├── QPSParserException.h │ ├── QPSolver.cpp │ ├── QPSolver.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testLPSolver.cpp │ │ ├── testLinearEquality.cpp │ │ └── testQPSolver.cpp ├── mainpage.dox ├── nonlinear │ ├── BatchFixedLagSmoother.h │ ├── BayesTreeMarginalizationHelper.h │ ├── CMakeLists.txt │ ├── ConcurrentBatchFilter.cpp │ ├── ConcurrentBatchFilter.h │ ├── ConcurrentBatchSmoother.cpp │ ├── ConcurrentBatchSmoother.h │ ├── ConcurrentFilteringAndSmoothing.cpp │ ├── ConcurrentFilteringAndSmoothing.h │ ├── ConcurrentIncrementalFilter.cpp │ ├── ConcurrentIncrementalFilter.h │ ├── ConcurrentIncrementalSmoother.cpp │ ├── ConcurrentIncrementalSmoother.h │ ├── FixedLagSmoother.h │ ├── IncrementalFixedLagSmoother.h │ ├── LinearizedFactor.cpp │ ├── LinearizedFactor.h │ ├── NonlinearClusterTree.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testConcurrentBatchFilter.cpp │ │ ├── testConcurrentBatchSmoother.cpp │ │ ├── testConcurrentIncrementalFilter.cpp │ │ ├── testConcurrentIncrementalSmootherDL.cpp │ │ ├── testConcurrentIncrementalSmootherGN.cpp │ │ ├── testCustomChartExpression.cpp │ │ ├── testLinearizedFactor.cpp │ │ ├── testNonlinearClusterTree.cpp │ │ └── testParticleFactor.cpp ├── partition │ ├── CMakeLists.txt │ ├── FindSeparator-inl.h │ ├── FindSeparator.h │ ├── GenericGraph.cpp │ ├── GenericGraph.h │ ├── NestedDissection-inl.h │ ├── NestedDissection.h │ ├── PartitionWorkSpace.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testFindSeparator.cpp │ │ ├── testGenericGraph.cpp │ │ └── testNestedDissection.cpp ├── slam │ ├── AHRS.cpp │ ├── AHRS.h │ ├── BetweenFactorEM.h │ ├── BiasedGPSFactor.h │ ├── CMakeLists.txt │ ├── DummyFactor.cpp │ ├── DummyFactor.h │ ├── EquivInertialNavFactor_GlobalVel.h │ ├── EquivInertialNavFactor_GlobalVel_NoBias.h │ ├── GaussMarkov1stOrderFactor.h │ ├── InertialNavFactor_GlobalVelocity.h │ ├── InvDepthFactor3.h │ ├── InvDepthFactorVariant1.h │ ├── InvDepthFactorVariant2.h │ ├── InvDepthFactorVariant3.h │ ├── LocalOrientedPlane3Factor.cpp │ ├── LocalOrientedPlane3Factor.h │ ├── Mechanization_bRn2.cpp │ ├── Mechanization_bRn2.h │ ├── MultiProjectionFactor.h │ ├── PartialPriorFactor.h │ ├── PoseBetweenFactor.h │ ├── PosePriorFactor.h │ ├── PoseToPointFactor.h │ ├── ProjectionFactorPPP.h │ ├── ProjectionFactorPPPC.h │ ├── ProjectionFactorRollingShutter.cpp │ ├── ProjectionFactorRollingShutter.h │ ├── README.md │ ├── RelativeElevationFactor.cpp │ ├── RelativeElevationFactor.h │ ├── SmartProjectionPoseFactorRollingShutter.h │ ├── SmartRangeFactor.h │ ├── SmartStereoProjectionFactor.h │ ├── SmartStereoProjectionFactorPP.cpp │ ├── SmartStereoProjectionFactorPP.h │ ├── SmartStereoProjectionPoseFactor.cpp │ ├── SmartStereoProjectionPoseFactor.h │ ├── TOAFactor.h │ ├── TSAMFactors.h │ ├── TransformBtwRobotsUnaryFactor.h │ ├── TransformBtwRobotsUnaryFactorEM.h │ ├── doc │ │ └── ypr.nb │ ├── serialization.cpp │ ├── serialization.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── testAHRS.cpp │ │ ├── testBetweenFactorEM.cpp │ │ ├── testBiasedGPSFactor.cpp │ │ ├── testDummyFactor.cpp │ │ ├── testEquivInertialNavFactor_GlobalVel.cpp │ │ ├── testGaussMarkov1stOrderFactor.cpp │ │ ├── testInertialNavFactor_GlobalVelocity.cpp │ │ ├── testInvDepthFactor3.cpp │ │ ├── testInvDepthFactorVariant1.cpp │ │ ├── testInvDepthFactorVariant2.cpp │ │ ├── testInvDepthFactorVariant3.cpp │ │ ├── testLocalOrientedPlane3Factor.cpp │ │ ├── testMultiProjectionFactor.cpp │ │ ├── testOccupancyGrid.cpp │ │ ├── testPartialPriorFactor.cpp │ │ ├── testPoseBetweenFactor.cpp │ │ ├── testPosePriorFactor.cpp │ │ ├── testPoseToPointFactor.cpp │ │ ├── testProjectionFactorPPP.cpp │ │ ├── testProjectionFactorPPPC.cpp │ │ ├── testProjectionFactorRollingShutter.cpp │ │ ├── testRelativeElevationFactor.cpp │ │ ├── testSerialization.cpp │ │ ├── testSmartProjectionPoseFactorRollingShutter.cpp │ │ ├── testSmartRangeFactor.cpp │ │ ├── testSmartStereoFactor_iSAM2.cpp │ │ ├── testSmartStereoProjectionFactorPP.cpp │ │ ├── testSmartStereoProjectionPoseFactor.cpp │ │ ├── testTOAFactor.cpp │ │ ├── testTSAMFactors.cpp │ │ ├── testTransformBtwRobotsUnaryFactor.cpp │ │ └── testTransformBtwRobotsUnaryFactorEM.cpp ├── testing_tools │ ├── base │ │ ├── cholChainTest.m │ │ ├── cholScalingTest.m │ │ └── choleskyNaive.m │ └── inference │ │ ├── eliminate.m │ │ ├── jointMarginalsTestProblems.m │ │ └── shortcut.m └── timing │ ├── CMakeLists.txt │ ├── process_shonan_timing_results.py │ ├── timeDSFvariants.cpp │ ├── timeDSFvariants.xlsx │ ├── timeDSFvariants2.xlsx │ ├── timeInertialNavFactor_GlobalVelocity.cpp │ └── timeShonanAveraging.cpp ├── makestats.sh ├── matlab ├── +gtsam │ ├── CHECK.m │ ├── Contents.m │ ├── EQUALITY.m │ ├── EXPECT.m │ ├── Point2.m │ ├── Point3.m │ ├── VisualISAMGenerateData.m │ ├── VisualISAMInitialize.m │ ├── VisualISAMPlot.m │ ├── VisualISAMStep.m │ ├── circlePose2.m │ ├── circlePose3.m │ ├── covarianceEllipse.m │ ├── covarianceEllipse3D.m │ ├── cylinderSampleProjection.m │ ├── cylinderSampleProjectionStereo.m │ ├── cylinderSampling.m │ ├── findExampleDataFile.m │ ├── load3D.m │ ├── plot2DPoints.m │ ├── plot2DTrajectory.m │ ├── plot3DPoints.m │ ├── plot3DTrajectory.m │ ├── plotBayesNet.m │ ├── plotBayesTree.m │ ├── plotCamera.m │ ├── plotCylinderSamples.m │ ├── plotFlyingResults.m │ ├── plotPoint2.m │ ├── plotPoint3.m │ ├── plotPose2.m │ ├── plotPose3.m │ ├── points2DTrackMonocular.m │ └── points2DTrackStereo.m ├── CMakeLists.txt ├── README.md ├── gtsam_examples │ ├── CameraFlyingExample.m │ ├── IMUKittiExampleGPS.m │ ├── LocalizationExample.m │ ├── MonocularVOExample.m │ ├── OdometryExample.m │ ├── PlanarSLAMExample.m │ ├── PlanarSLAMExample_graph.m │ ├── PlanarSLAMExample_sampling.m │ ├── Pose2SLAMExample.m │ ├── Pose2SLAMExample_advanced.m │ ├── Pose2SLAMExample_circle.m │ ├── Pose2SLAMExample_graph.m │ ├── Pose2SLAMwSPCG.m │ ├── Pose3SLAMExample.m │ ├── Pose3SLAMExample_graph.m │ ├── RangeISAMExample_plaza.m │ ├── RangeSLAMExample_plaza.m │ ├── SBAExample.m │ ├── SFMExample.m │ ├── StereoVOExample.m │ ├── StereoVOExample_large.m │ ├── VisualISAMDemo.m │ ├── VisualISAMExample.m │ ├── VisualISAM_gui.fig │ ├── VisualISAM_gui.m │ ├── VisualizeMEstimators.m │ ├── deg2utm.m │ ├── gtsamExamples.fig │ └── gtsamExamples.m ├── gtsam_tests │ ├── .gitignore │ ├── testCal3Unified.m │ ├── testEnum.m │ ├── testJacobianFactor.m │ ├── testKalmanFilter.m │ ├── testLocalizationExample.m │ ├── testOdometryExample.m │ ├── testPlanarSLAMExample.m │ ├── testPose2SLAMExample.m │ ├── testPose3SLAMExample.m │ ├── testPriorFactor.m │ ├── testProperties.m │ ├── testSFMExample.m │ ├── testSerialization.m │ ├── testStereoVOExample.m │ ├── testThinBayesTree.m │ ├── testThinTree.m │ ├── testThinTreeBayesNet.m │ ├── testTriangulation.m │ ├── testUtilities.m │ ├── testValues.m │ ├── testVisualISAMExample.m │ ├── test_gtsam.m │ ├── thinBayesTree.m │ ├── thinTree.m │ └── thinTreeBayesNet.m └── unstable_examples │ ├── +imuSimulator │ ├── +lib │ │ ├── antisim.m │ │ ├── arrow3d.m │ │ ├── getxyz.m │ │ ├── plot_trajectory.m │ │ ├── ref_frame_plot.m │ │ ├── rotatePoints.m │ │ └── uth2rot.m │ ├── IMUComparison.m │ ├── IMUComparison_with_cov.m │ ├── LatLonHRad_to_ECEF.m │ ├── OdometryExample3D.m │ ├── calculateIMUMeas_coriolis.m │ ├── calculateIMUMeasurement.m │ ├── coriolisExample.m │ ├── coriolisTestMonteCarlo.m │ ├── covarianceAnalysisBetween.m │ ├── covarianceAnalysisCreateFactorGraph.m │ ├── covarianceAnalysisCreateTrajectory.m │ ├── ct2ENU.m │ ├── getPoseFromGtScenario.m │ ├── integrateIMUTrajectory.m │ ├── integrateIMUTrajectory_bodyFrame.m │ ├── integrateIMUTrajectory_navFrame.m │ ├── integrateTrajectory.m │ ├── runConsistencyTests.m │ ├── test1onestep.m │ ├── test2constglobal.m │ ├── test3constbody.m │ └── test4circle.m │ ├── .gitignore │ ├── ConcurrentFilteringAndSmoothingExample.m │ ├── FlightCameraTransformIMU.m │ ├── IMUKittiExampleAdvanced.m │ ├── IMUKittiExampleVO.m │ ├── SmartRangeFactorExample.m │ ├── TransformCalProjectionFactorExampleISAM.m │ ├── TransformCalProjectionFactorIMUExampleISAM.m │ ├── TransformProjectionFactorExample.m │ ├── TransformProjectionFactorExampleISAM.m │ ├── flight_trajectory.m │ ├── ground_landmarks.m │ ├── plot_projected_landmarks.m │ ├── project_landmarks.m │ └── testTSAMFactors.m ├── myst.yml ├── package.xml ├── python ├── CMakeLists.txt ├── CustomFactors.md ├── MANIFEST.in ├── README.md ├── dev_requirements.txt ├── gtsam │ ├── __init__.py │ ├── examples │ │ ├── .gitignore │ │ ├── CameraResectioning.ipynb │ │ ├── CombinedImuFactorExample.py │ │ ├── CustomFactorExample.py │ │ ├── DiscreteBayesTree.ipynb │ │ ├── DiscreteSwitching.ipynb │ │ ├── DogLegOptimizerExample.py │ │ ├── EKF_SLAM.ipynb │ │ ├── EqF.ipynb │ │ ├── EqF.py │ │ ├── EssentialViewGraphExample.py │ │ ├── FixedLagSmootherExample.py │ │ ├── GPSFactorExample.py │ │ ├── HybridCity10000.py │ │ ├── IMUKittiExampleGPS.py │ │ ├── ImuFactorExample.py │ │ ├── ImuFactorISAM2Example.py │ │ ├── OdometryExample.py │ │ ├── PlanarManipulatorExample.py │ │ ├── PlanarSLAMExample.ipynb │ │ ├── Pose2ISAM2Example.py │ │ ├── Pose2SLAMExample.ipynb │ │ ├── Pose2SLAMExample_g2o.py │ │ ├── Pose2SLAMExample_lago.py │ │ ├── Pose3ISAM2Example.py │ │ ├── Pose3SLAMExample_g2o.py │ │ ├── Pose3SLAMExample_initializePose3Chordal.py │ │ ├── PreintegrationExample.py │ │ ├── README.md │ │ ├── RangeISAMExample_plaza2.ipynb │ │ ├── RangeSLAMExample_plaza2.ipynb │ │ ├── SFMExample.py │ │ ├── SFMExample_bal.py │ │ ├── SFMdata.py │ │ ├── SelfCalibrationExample.py │ │ ├── ShonanAveragingCLI.py │ │ ├── SimpleRotation.py │ │ ├── StereoVOExample.ipynb │ │ ├── TranslationAveragingExample.py │ │ ├── ViewGraphComparison.py │ │ ├── ViewGraphExample.py │ │ ├── VisualISAM2Example.py │ │ ├── VisualISAMExample.py │ │ ├── __init__.py │ │ ├── easyPoint2KalmanFilter.ipynb │ │ ├── elaboratePoint2KalmanFilter.ipynb │ │ ├── gtsam_plotly.py │ │ ├── plot_city10000.py │ │ └── simulation.py │ ├── gtsam.tpl │ ├── gtsfm.py │ ├── imuBias.py │ ├── noiseModel.py │ ├── notebooks │ │ └── ellipses.ipynb │ ├── preamble │ │ ├── base.h │ │ ├── basis.h │ │ ├── custom.h │ │ ├── discrete.h │ │ ├── geometry.h │ │ ├── gtsam.h │ │ ├── hybrid.h │ │ ├── inference.h │ │ ├── linear.h │ │ ├── navigation.h │ │ ├── nonlinear.h │ │ ├── sam.h │ │ ├── sfm.h │ │ ├── slam.h │ │ ├── symbolic.h │ │ └── values.h │ ├── specializations │ │ ├── base.h │ │ ├── basis.h │ │ ├── custom.h │ │ ├── discrete.h │ │ ├── geometry.h │ │ ├── gtsam.h │ │ ├── hybrid.h │ │ ├── inference.h │ │ ├── linear.h │ │ ├── navigation.h │ │ ├── nonlinear.h │ │ ├── sam.h │ │ ├── sfm.h │ │ ├── slam.h │ │ ├── symbolic.h │ │ └── values.h │ ├── symbol_shorthand.py │ ├── tests │ │ ├── dfg_utils.py │ │ ├── testEssentialMatrixConstraint.py │ │ ├── testScenarioRunner.py │ │ ├── test_Cal3Fisheye.py │ │ ├── test_Cal3Unified.py │ │ ├── test_Chebyshev2.py │ │ ├── test_DSFMap.py │ │ ├── test_DecisionTreeFactor.py │ │ ├── test_DiscreteBayesNet.py │ │ ├── test_DiscreteBayesTree.dot │ │ ├── test_DiscreteBayesTree.py │ │ ├── test_DiscreteConditional.py │ │ ├── test_DiscreteDistribution.py │ │ ├── test_DiscreteFactorGraph.py │ │ ├── test_DiscreteSearch.py │ │ ├── test_DsfTrackGenerator.py │ │ ├── test_Factors.py │ │ ├── test_FixedLagSmootherExample.py │ │ ├── test_FrobeniusFactor.py │ │ ├── test_FundamentalMatrix.py │ │ ├── test_GaussianBayesNet.py │ │ ├── test_GaussianFactorGraph.py │ │ ├── test_GraphvizFormatting.py │ │ ├── test_HybridBayesNet.py │ │ ├── test_HybridFactorGraph.py │ │ ├── test_HybridNonlinearFactorGraph.py │ │ ├── test_HybridValues.py │ │ ├── test_JacobianFactor.py │ │ ├── test_KalmanFilter.py │ │ ├── test_KarcherMeanFactor.py │ │ ├── test_LocalizationExample.py │ │ ├── test_NonlinearOptimizer.py │ │ ├── test_OdometryExample.py │ │ ├── test_PinholeCamera.py │ │ ├── test_PlanarSLAMExample.py │ │ ├── test_Point2.py │ │ ├── test_Point3.py │ │ ├── test_Pose2.py │ │ ├── test_Pose2SLAMExample.py │ │ ├── test_Pose3.py │ │ ├── test_Pose3SLAMExample.py │ │ ├── test_PriorFactor.py │ │ ├── test_Robust.py │ │ ├── test_Rot3.py │ │ ├── test_SFMExample.py │ │ ├── test_SO4.py │ │ ├── test_SOn.py │ │ ├── test_Scenario.py │ │ ├── test_Serialization.py │ │ ├── test_SfmData.py │ │ ├── test_ShonanAveraging.py │ │ ├── test_Sim2.py │ │ ├── test_Sim3.py │ │ ├── test_SimpleCamera.py │ │ ├── test_StereoVOExample.py │ │ ├── test_TranslationRecovery.py │ │ ├── test_Triangulation.py │ │ ├── test_Utilities.py │ │ ├── test_Values.py │ │ ├── test_VisualISAMExample.py │ │ ├── test_backwards_compatibility.py │ │ ├── test_basis.py │ │ ├── test_custom_factor.py │ │ ├── test_dataset.py │ │ ├── test_initialize_pose3.py │ │ ├── test_lago.py │ │ ├── test_logging_optimizer.py │ │ ├── test_numerical_derivative.py │ │ ├── test_pickle.py │ │ └── test_sam.py │ └── utils │ │ ├── __init__.py │ │ ├── circlePose3.py │ │ ├── logging_optimizer.py │ │ ├── numerical_derivative.py │ │ ├── plot.py │ │ ├── test_case.py │ │ ├── visual_data_generator.py │ │ └── visual_isam.py ├── gtsam_unstable │ ├── __init__.py │ ├── examples │ │ ├── LocalizationExample.py │ │ ├── TimeOfArrivalExample.py │ │ └── __init__.py │ ├── gtsam_unstable.tpl │ ├── preamble.h │ ├── specializations │ │ └── gtsam_unstable.h │ └── tests │ │ ├── __init__.py │ │ └── test_ProjectionFactorRollingShutter.py ├── requirements.txt └── setup.py.in ├── tests ├── CMakeLists.txt ├── ImuMeasurement.h ├── Measurement.h ├── simulated2D.h ├── simulated2DConstraints.h ├── simulated2DOriented.h ├── simulated3D.h ├── smallExample.h ├── testBoundingConstraint.cpp ├── testDoglegOptimizer.cpp ├── testExpressionFactor.cpp ├── testExtendedKalmanFilter.cpp ├── testGaussianBayesTreeB.cpp ├── testGaussianFactorGraphB.cpp ├── testGaussianISAM.cpp ├── testGaussianISAM2.cpp ├── testGaussianJunctionTreeB.cpp ├── testGeneralSFMFactorB.cpp ├── testGncOptimizer.cpp ├── testGraph.cpp ├── testImuPreintegration.cpp ├── testIterative.cpp ├── testLie.cpp ├── testManifold.cpp ├── testMarginals.cpp ├── testNonlinearEquality.cpp ├── testNonlinearFactor.cpp ├── testNonlinearFactorGraph.cpp ├── testNonlinearISAM.cpp ├── testNonlinearOptimizer.cpp ├── testPCGSolver.cpp ├── testPreconditioner.cpp ├── testRobust.cpp ├── testRot3Optimization.cpp ├── testSerializationSlam.cpp ├── testSimulated2D.cpp ├── testSimulated2DOriented.cpp ├── testSimulated3D.cpp ├── testSubgraphPreconditioner.cpp ├── testSubgraphSolver.cpp ├── testTranslationRecovery.cpp └── testVisualISAM2.cpp ├── timing ├── CMakeLists.txt ├── DummyFactor.h ├── timeAdaptAutoDiff.cpp ├── timeBatch.cpp ├── timeCalibratedCamera.cpp ├── timeCameraExpression.cpp ├── timeCholesky.cpp ├── timeFactorOverhead.cpp ├── timeFrobeniusFactor.cpp ├── timeGaussianFactor.cpp ├── timeGaussianFactorGraph.cpp ├── timeIncremental.cpp ├── timeLago.cpp ├── timeLinearize.h ├── timeMatrix.cpp ├── timeMatrixOps.cpp ├── timeOneCameraExpression.cpp ├── timePinholeCamera.cpp ├── timePose2.cpp ├── timePose3.cpp ├── timeRot2.cpp ├── timeRot3.cpp ├── timeSFMBAL.cpp ├── timeSFMBAL.h ├── timeSFMBALautodiff.cpp ├── timeSFMBALcamTnav.cpp ├── timeSFMBALnavTcam.cpp ├── timeSFMBALsmart.cpp ├── timeSFMExpressions.cpp ├── timeSchurFactors.cpp ├── timeShonanFactor.cpp ├── timeStereoCamera.cpp ├── timeTest.cpp ├── timeVirtual.cpp ├── timeVirtual2.cpp └── timeiSAM2Chain.cpp ├── update_wrap.sh └── wrap ├── .github └── workflows │ ├── linux-ci.yml │ └── macos-ci.yml ├── .gitignore ├── CMakeLists.txt ├── DOCS.md ├── LICENSE ├── README.md ├── cmake ├── GtwrapUtils.cmake ├── MatlabWrap.cmake ├── PybindWrap.cmake └── gtwrapConfig.cmake.in ├── docs ├── doc_template.py ├── docs.py └── parser │ ├── doxygen.conf │ ├── parse_doxygen_xml.py │ └── parse_xml.py ├── gtwrap ├── __init__.py ├── interface_parser │ ├── __init__.py │ ├── classes.py │ ├── declaration.py │ ├── enum.py │ ├── function.py │ ├── module.py │ ├── namespace.py │ ├── template.py │ ├── tokens.py │ ├── type.py │ ├── utils.py │ └── variable.py ├── matlab_wrapper │ ├── __init__.py │ ├── mixins.py │ ├── templates.py │ └── wrapper.py ├── pybind_wrapper.py ├── template_instantiator │ ├── __init__.py │ ├── classes.py │ ├── constructor.py │ ├── declaration.py │ ├── function.py │ ├── helpers.py │ ├── method.py │ └── namespace.py └── xml_parser │ ├── __init__.py │ └── xml_parser.py ├── matlab.h ├── pybind11 ├── .appveyor.yml ├── .clang-format ├── .clang-tidy ├── .cmake-format.yaml ├── .codespell-ignore-lines ├── .gitattributes ├── .github │ ├── CODEOWNERS │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE │ │ ├── bug-report.yml │ │ └── config.yml │ ├── dependabot.yml │ ├── labeler.yml │ ├── labeler_merged.yml │ ├── matchers │ │ └── pylint.json │ ├── pull_request_template.md │ └── workflows │ │ ├── ci.yml │ │ ├── configure.yml │ │ ├── emscripten.yaml │ │ ├── format.yml │ │ ├── labeler.yml │ │ ├── pip.yml │ │ └── upstream.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yml ├── CMakeLists.txt ├── LICENSE ├── MANIFEST.in ├── README.rst ├── SECURITY.md ├── docs │ ├── Doxyfile │ ├── Makefile │ ├── _static │ │ └── css │ │ │ └── custom.css │ ├── advanced │ │ ├── cast │ │ │ ├── chrono.rst │ │ │ ├── custom.rst │ │ │ ├── eigen.rst │ │ │ ├── functional.rst │ │ │ ├── index.rst │ │ │ ├── overview.rst │ │ │ ├── stl.rst │ │ │ └── strings.rst │ │ ├── classes.rst │ │ ├── embedding.rst │ │ ├── exceptions.rst │ │ ├── functions.rst │ │ ├── misc.rst │ │ ├── pycpp │ │ │ ├── index.rst │ │ │ ├── numpy.rst │ │ │ ├── object.rst │ │ │ └── utilities.rst │ │ └── smart_ptrs.rst │ ├── basics.rst │ ├── benchmark.py │ ├── benchmark.rst │ ├── changelog.rst │ ├── classes.rst │ ├── cmake │ │ └── index.rst │ ├── compiling.rst │ ├── conf.py │ ├── faq.rst │ ├── index.rst │ ├── installing.rst │ ├── limitations.rst │ ├── pybind11-logo.png │ ├── pybind11_vs_boost_python1.png │ ├── pybind11_vs_boost_python1.svg │ ├── pybind11_vs_boost_python2.png │ ├── pybind11_vs_boost_python2.svg │ ├── reference.rst │ ├── release.rst │ ├── requirements.in │ ├── requirements.txt │ └── upgrade.rst ├── include │ └── pybind11 │ │ ├── attr.h │ │ ├── buffer_info.h │ │ ├── cast.h │ │ ├── chrono.h │ │ ├── common.h │ │ ├── complex.h │ │ ├── detail │ │ ├── class.h │ │ ├── common.h │ │ ├── cpp_conduit.h │ │ ├── descr.h │ │ ├── exception_translation.h │ │ ├── init.h │ │ ├── internals.h │ │ ├── type_caster_base.h │ │ ├── typeid.h │ │ └── value_and_holder.h │ │ ├── eigen.h │ │ ├── eigen │ │ ├── common.h │ │ ├── matrix.h │ │ └── tensor.h │ │ ├── embed.h │ │ ├── eval.h │ │ ├── functional.h │ │ ├── gil.h │ │ ├── gil_safe_call_once.h │ │ ├── iostream.h │ │ ├── numpy.h │ │ ├── operators.h │ │ ├── options.h │ │ ├── pybind11.h │ │ ├── pytypes.h │ │ ├── stl.h │ │ ├── stl │ │ └── filesystem.h │ │ ├── stl_bind.h │ │ ├── type_caster_pyobject_ptr.h │ │ └── typing.h ├── noxfile.py ├── pybind11 │ ├── __init__.py │ ├── __main__.py │ ├── _version.py │ ├── commands.py │ ├── py.typed │ └── setup_helpers.py ├── pyproject.toml ├── setup.cfg ├── setup.py ├── tests │ ├── CMakeLists.txt │ ├── conftest.py │ ├── constructor_stats.h │ ├── cross_module_gil_utils.cpp │ ├── cross_module_interleaved_error_already_set.cpp │ ├── eigen_tensor_avoid_stl_array.cpp │ ├── env.py │ ├── exo_planet_c_api.cpp │ ├── exo_planet_pybind11.cpp │ ├── extra_python_package │ │ ├── pytest.ini │ │ └── test_files.py │ ├── extra_setuptools │ │ ├── pytest.ini │ │ └── test_setuphelper.py │ ├── home_planet_very_lonely_traveler.cpp │ ├── local_bindings.h │ ├── object.h │ ├── pybind11_cross_module_tests.cpp │ ├── pybind11_tests.cpp │ ├── pybind11_tests.h │ ├── pyproject.toml │ ├── pytest.ini │ ├── requirements.txt │ ├── test_async.cpp │ ├── test_async.py │ ├── test_buffers.cpp │ ├── test_buffers.py │ ├── test_builtin_casters.cpp │ ├── test_builtin_casters.py │ ├── test_call_policies.cpp │ ├── test_call_policies.py │ ├── test_callbacks.cpp │ ├── test_callbacks.py │ ├── test_chrono.cpp │ ├── test_chrono.py │ ├── test_class.cpp │ ├── test_class.py │ ├── test_cmake_build │ │ ├── CMakeLists.txt │ │ ├── embed.cpp │ │ ├── installed_embed │ │ │ └── CMakeLists.txt │ │ ├── installed_function │ │ │ └── CMakeLists.txt │ │ ├── installed_target │ │ │ └── CMakeLists.txt │ │ ├── main.cpp │ │ ├── subdirectory_embed │ │ │ └── CMakeLists.txt │ │ ├── subdirectory_function │ │ │ └── CMakeLists.txt │ │ ├── subdirectory_target │ │ │ └── CMakeLists.txt │ │ └── test.py │ ├── test_const_name.cpp │ ├── test_const_name.py │ ├── test_constants_and_functions.cpp │ ├── test_constants_and_functions.py │ ├── test_copy_move.cpp │ ├── test_copy_move.py │ ├── test_cpp_conduit.cpp │ ├── test_cpp_conduit.py │ ├── test_cpp_conduit_traveler_bindings.h │ ├── test_cpp_conduit_traveler_types.h │ ├── test_custom_type_casters.cpp │ ├── test_custom_type_casters.py │ ├── test_custom_type_setup.cpp │ ├── test_custom_type_setup.py │ ├── test_docstring_options.cpp │ ├── test_docstring_options.py │ ├── test_eigen_matrix.cpp │ ├── test_eigen_matrix.py │ ├── test_eigen_tensor.cpp │ ├── test_eigen_tensor.inl │ ├── test_eigen_tensor.py │ ├── test_embed │ │ ├── CMakeLists.txt │ │ ├── catch.cpp │ │ ├── external_module.cpp │ │ ├── test_interpreter.cpp │ │ ├── test_interpreter.py │ │ └── test_trampoline.py │ ├── test_enum.cpp │ ├── test_enum.py │ ├── test_eval.cpp │ ├── test_eval.py │ ├── test_eval_call.py │ ├── test_exceptions.cpp │ ├── test_exceptions.h │ ├── test_exceptions.py │ ├── test_factory_constructors.cpp │ ├── test_factory_constructors.py │ ├── test_gil_scoped.cpp │ ├── test_gil_scoped.py │ ├── test_iostream.cpp │ ├── test_iostream.py │ ├── test_kwargs_and_defaults.cpp │ ├── test_kwargs_and_defaults.py │ ├── test_local_bindings.cpp │ ├── test_local_bindings.py │ ├── test_methods_and_attributes.cpp │ ├── test_methods_and_attributes.py │ ├── test_modules.cpp │ ├── test_modules.py │ ├── test_multiple_inheritance.cpp │ ├── test_multiple_inheritance.py │ ├── test_numpy_array.cpp │ ├── test_numpy_array.py │ ├── test_numpy_dtypes.cpp │ ├── test_numpy_dtypes.py │ ├── test_numpy_vectorize.cpp │ ├── test_numpy_vectorize.py │ ├── test_opaque_types.cpp │ ├── test_opaque_types.py │ ├── test_operator_overloading.cpp │ ├── test_operator_overloading.py │ ├── test_pickling.cpp │ ├── test_pickling.py │ ├── test_python_multiple_inheritance.cpp │ ├── test_python_multiple_inheritance.py │ ├── test_pytypes.cpp │ ├── test_pytypes.py │ ├── test_sequences_and_iterators.cpp │ ├── test_sequences_and_iterators.py │ ├── test_smart_ptr.cpp │ ├── test_smart_ptr.py │ ├── test_stl.cpp │ ├── test_stl.py │ ├── test_stl_binders.cpp │ ├── test_stl_binders.py │ ├── test_tagbased_polymorphic.cpp │ ├── test_tagbased_polymorphic.py │ ├── test_thread.cpp │ ├── test_thread.py │ ├── test_type_caster_pyobject_ptr.cpp │ ├── test_type_caster_pyobject_ptr.py │ ├── test_type_caster_std_function_specializations.cpp │ ├── test_type_caster_std_function_specializations.py │ ├── test_union.cpp │ ├── test_union.py │ ├── test_unnamed_namespace_a.cpp │ ├── test_unnamed_namespace_a.py │ ├── test_unnamed_namespace_b.cpp │ ├── test_unnamed_namespace_b.py │ ├── test_vector_unique_ptr_member.cpp │ ├── test_vector_unique_ptr_member.py │ ├── test_virtual_functions.cpp │ ├── test_virtual_functions.py │ ├── valgrind-numpy-scipy.supp │ └── valgrind-python.supp └── tools │ ├── FindCatch.cmake │ ├── FindEigen3.cmake │ ├── FindPythonLibsNew.cmake │ ├── JoinPaths.cmake │ ├── check-style.sh │ ├── cmake_uninstall.cmake.in │ ├── codespell_ignore_lines_from_errors.py │ ├── libsize.py │ ├── make_changelog.py │ ├── pybind11.pc.in │ ├── pybind11Common.cmake │ ├── pybind11Config.cmake.in │ ├── pybind11GuessPythonExtSuffix.cmake │ ├── pybind11NewTools.cmake │ ├── pybind11Tools.cmake │ ├── pyproject.toml │ ├── setup_global.py.in │ ├── setup_main.py.in │ └── test-pybind11GuessPythonExtSuffix.cmake ├── requirements.txt ├── scripts ├── matlab_wrap.py └── pybind_wrap.py ├── setup.py ├── sphinx ├── Makefile ├── conf.py ├── index.rst ├── make.bat └── wrap.rst ├── templates ├── matlab_wrapper.tpl.in └── pybind_wrapper.tpl.example ├── tests ├── .gitignore ├── CMakeLists.txt ├── actual │ └── .gitignore ├── expected │ ├── matlab │ │ ├── +Pet │ │ │ └── Kind.m │ │ ├── +gtsam │ │ │ ├── +MCU │ │ │ │ ├── Avengers.m │ │ │ │ └── GotG.m │ │ │ ├── +OptimizerGaussNewtonParams │ │ │ │ └── Verbosity.m │ │ │ ├── Class1.m │ │ │ ├── Class2.m │ │ │ ├── ClassA.m │ │ │ ├── GeneralSFMFactorCal3Bundler.m │ │ │ ├── NonlinearFactorGraph.m │ │ │ ├── PinholeCameraCal3Bundler.m │ │ │ ├── Point2.m │ │ │ ├── Point3.m │ │ │ ├── SfmTrack.m │ │ │ ├── Values.m │ │ │ └── VerbosityLM.m │ │ ├── +ns1 │ │ │ ├── ClassA.m │ │ │ ├── ClassB.m │ │ │ └── aGlobalFunction.m │ │ ├── +ns2 │ │ │ ├── +ns3 │ │ │ │ └── ClassB.m │ │ │ ├── ClassA.m │ │ │ ├── ClassC.m │ │ │ ├── aGlobalFunction.m │ │ │ └── overloadedGlobalFunction.m │ │ ├── ClassD.m │ │ ├── Color.m │ │ ├── DefaultFuncInt.m │ │ ├── DefaultFuncObj.m │ │ ├── DefaultFuncString.m │ │ ├── DefaultFuncVector.m │ │ ├── DefaultFuncZero.m │ │ ├── FastSet.m │ │ ├── ForwardKinematics.m │ │ ├── ForwardKinematicsFactor.m │ │ ├── FunDouble.m │ │ ├── FunRange.m │ │ ├── MultiTemplatedFunctionDoubleSize_tDouble.m │ │ ├── MultiTemplatedFunctionStringSize_tDouble.m │ │ ├── MultipleTemplatesIntDouble.m │ │ ├── MultipleTemplatesIntFloat.m │ │ ├── MyBase.m │ │ ├── MyFactorPosePoint2.m │ │ ├── MyTemplateMatrix.m │ │ ├── MyTemplatePoint2.m │ │ ├── MyVector12.m │ │ ├── MyVector3.m │ │ ├── PrimitiveRefDouble.m │ │ ├── ScopedTemplateResult.m │ │ ├── TemplatedConstructor.m │ │ ├── TemplatedFunctionRot3.m │ │ ├── Test.m │ │ ├── aGlobalFunction.m │ │ ├── class_wrapper.cpp │ │ ├── enum_wrapper.cpp │ │ ├── functions_wrapper.cpp │ │ ├── geometry_wrapper.cpp │ │ ├── inheritance_wrapper.cpp │ │ ├── load2D.m │ │ ├── multiple_files_wrapper.cpp │ │ ├── namespaces_wrapper.cpp │ │ ├── overloadedGlobalFunction.m │ │ ├── setPose.m │ │ ├── special_cases_wrapper.cpp │ │ └── template_wrapper.cpp │ ├── python │ │ ├── class_pybind.cpp │ │ ├── enum_pybind.cpp │ │ ├── functions_pybind.cpp │ │ ├── geometry_pybind.cpp │ │ ├── inheritance_pybind.cpp │ │ ├── namespaces_pybind.cpp │ │ ├── operator_pybind.cpp │ │ ├── special_cases_pybind.cpp │ │ └── templates_pybind.cpp │ └── xml │ │ ├── JacobianFactorQ_8h.xml │ │ ├── NonlinearFactor_8h.xml │ │ ├── classgtsam_1_1JacobianFactorQ.xml │ │ ├── classgtsam_1_1NoiseModelFactor.xml │ │ ├── classgtsam_1_1NoiseModelFactor1.xml │ │ ├── classgtsam_1_1NoiseModelFactor2.xml │ │ ├── classgtsam_1_1NoiseModelFactor3.xml │ │ ├── classgtsam_1_1NoiseModelFactor4.xml │ │ ├── classgtsam_1_1NoiseModelFactor5.xml │ │ ├── classgtsam_1_1NoiseModelFactor6.xml │ │ ├── classgtsam_1_1NonlinearFactor.xml │ │ ├── combine.xslt │ │ ├── compound.xsd │ │ ├── deprecated.xml │ │ ├── dir_59425e443f801f1f2fd8bbe4959a3ccf.xml │ │ ├── dir_e4787312bc569bb879bb1171628269de.xml │ │ ├── index.xml │ │ ├── index.xsd │ │ ├── namespacegtsam.xml │ │ ├── structgtsam_1_1traits_3_01JacobianFactorQ_3_01D_00_01ZDim_01_4_01_4.xml │ │ └── structgtsam_1_1traits_3_01NonlinearFactor_01_4.xml ├── fixtures │ ├── class.i │ ├── enum.i │ ├── functions.i │ ├── geometry.i │ ├── inheritance.i │ ├── namespaces.i │ ├── operator.i │ ├── part1.i │ ├── part2.i │ ├── special_cases.i │ └── templates.i ├── pybind_wrapper.tpl ├── pybind_wrapper_test.cc ├── pybind_wrapper_test.gth ├── pybind_wrapper_test.h ├── pybind_wrapper_test_script.py ├── testDependencies.h ├── testMemory.m ├── test_docs.py ├── test_interface_parser.py ├── test_matlab_wrapper.py ├── test_pybind_wrapper.py └── test_template_instantiator.py └── utilities └── update.sh /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Google 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/questions-help-support.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Questions/Help/Support" 3 | --- 4 | 5 | Please post questions and support requests in the [GTSAM Google group](https://groups.google.com/forum/#!forum/gtsam-users) and not on Github. 6 | -------------------------------------------------------------------------------- /.settings/.gitignore: -------------------------------------------------------------------------------- 1 | /org.eclipse.cdt.codan.core.prefs 2 | -------------------------------------------------------------------------------- /cmake/GTSAMCMakeToolsConfig.cmake: -------------------------------------------------------------------------------- 1 | # This config file modifies CMAKE_MODULE_PATH so that the GTSAM-CMakeTools files may be included 2 | 3 | set(GTSAM_CMAKE_TOOLS_DIR "${CMAKE_CURRENT_LIST_DIR}") 4 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 5 | -------------------------------------------------------------------------------- /cmake/HandlePerfTools.cmake: -------------------------------------------------------------------------------- 1 | 2 | ############################################################################### 3 | # Find Google perftools 4 | find_package(GooglePerfTools) -------------------------------------------------------------------------------- /containers/gtsam-vnc/compose.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | gtsam_vnc: 3 | build: 4 | args: 5 | GTSAM_TAG: ${GTSAM_TAG} 6 | context: . 7 | dockerfile: Containerfile 8 | env_file: 9 | - .env 10 | image: gtsam-vnc:${GTSAM_TAG} 11 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | /html/ 2 | *.lyx~ 3 | *.bib~ 4 | -------------------------------------------------------------------------------- /doc/Code/LocalizationExample2.cpp: -------------------------------------------------------------------------------- 1 | // add unary measurement factors, like GPS, on all three poses 2 | auto unaryNoise = 3 | noiseModel::Diagonal::Sigmas(Vector2(0.1, 0.1)); // 10cm std on x,y 4 | graph.emplace_shared<UnaryFactor>(1, 0.0, 0.0, unaryNoise); 5 | graph.emplace_shared<UnaryFactor>(2, 2.0, 0.0, unaryNoise); 6 | graph.emplace_shared<UnaryFactor>(3, 4.0, 0.0, unaryNoise); 7 | 8 | -------------------------------------------------------------------------------- /doc/Code/OdometryMarginals.cpp: -------------------------------------------------------------------------------- 1 | // Query the marginals 2 | cout.precision(2); 3 | Marginals marginals(graph, result); 4 | cout << "x1 covariance:\n" << marginals.marginalCovariance(1) << endl; 5 | cout << "x2 covariance:\n" << marginals.marginalCovariance(2) << endl; 6 | cout << "x3 covariance:\n" << marginals.marginalCovariance(3) << endl; 7 | -------------------------------------------------------------------------------- /doc/Code/OdometryOptimize.cpp: -------------------------------------------------------------------------------- 1 | // create (deliberatly inaccurate) initial estimate 2 | Values initial; 3 | initial.insert(1, Pose2(0.5, 0.0, 0.2)); 4 | initial.insert(2, Pose2(2.3, 0.1, -0.2)); 5 | initial.insert(3, Pose2(4.1, 0.1, 0.1)); 6 | 7 | // optimize using Levenberg-Marquardt optimization 8 | Values result = LevenbergMarquardtOptimizer(graph, initial).optimize(); 9 | 10 | -------------------------------------------------------------------------------- /doc/Code/OdometryOutput1.txt: -------------------------------------------------------------------------------- 1 | Factor Graph: 2 | size: 3 3 | 4 | Factor 0: PriorFactor on 1 5 | prior mean: (0, 0, 0) 6 | noise model: diagonal sigmas [0.3; 0.3; 0.1]; 7 | 8 | Factor 1: BetweenFactor(1,2) 9 | measured: (2, 0, 0) 10 | noise model: diagonal sigmas [0.2; 0.2; 0.1]; 11 | 12 | Factor 2: BetweenFactor(2,3) 13 | measured: (2, 0, 0) 14 | noise model: diagonal sigmas [0.2; 0.2; 0.1]; -------------------------------------------------------------------------------- /doc/Code/OdometryOutput3.txt: -------------------------------------------------------------------------------- 1 | x1 covariance: 2 | 0.09 1.7e-33 2.8e-33 3 | 1.7e-33 0.09 2.6e-17 4 | 2.8e-33 2.6e-17 0.01 5 | x2 covariance: 6 | 0.13 1.2e-18 6.1e-19 7 | 1.2e-18 0.17 0.02 8 | 6.1e-19 0.02 0.02 9 | x3 covariance: 10 | 0.17 8.6e-18 2.7e-18 11 | 8.6e-18 0.37 0.06 12 | 2.7e-18 0.06 0.03 -------------------------------------------------------------------------------- /doc/Code/PlanarSLAMExample.txt: -------------------------------------------------------------------------------- 1 | >> result 2 | Values with 5 values: 3 | l1: (2, 2) 4 | l2: (4, 2) 5 | x1: (-1.8e-16, 5.1e-17, -1.5e-17) 6 | x2: (2, -5.8e-16, -4.6e-16) 7 | x3: (4, -3.1e-15, -4.6e-16) 8 | -------------------------------------------------------------------------------- /doc/Code/SFMExample.m: -------------------------------------------------------------------------------- 1 | %% Add factors for all measurements 2 | noise = noiseModel.Isotropic.Sigma(2, measurementNoiseSigma); 3 | for i = 1:length(Z), 4 | for k = 1:length(Z{i}) 5 | j = J{i}{k}; 6 | G.add(GenericProjectionFactorCal3_S2( 7 | Z{i}{k}, noise, symbol('x', i), symbol('p', j), K)); 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /doc/Code/calls.txt: -------------------------------------------------------------------------------- 1 | >> graph.error(initialEstimate) 2 | ans = 3 | 20.1086 4 | 5 | >> graph.error(result) 6 | ans = 7 | 8.2631e-18 8 | -------------------------------------------------------------------------------- /doc/CodingGuidelines.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/CodingGuidelines.docx -------------------------------------------------------------------------------- /doc/Hybrid.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/Hybrid.pdf -------------------------------------------------------------------------------- /doc/ImuFactor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/ImuFactor.pdf -------------------------------------------------------------------------------- /doc/LieGroups.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/LieGroups.pdf -------------------------------------------------------------------------------- /doc/PreintegratedIMUJacobians.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/PreintegratedIMUJacobians.pdf -------------------------------------------------------------------------------- /doc/examples.md: -------------------------------------------------------------------------------- 1 | # Examples 2 | 3 | This section contains python examples in interactive Python notebooks (`*.ipynb`). Python notebooks with an <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> button near the top can be opened in your browser, where you can run the files yourself and make edits to play with and understand GTSAM. -------------------------------------------------------------------------------- /doc/gtsam-coordinate-frames.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/gtsam-coordinate-frames.pdf -------------------------------------------------------------------------------- /doc/gtsam.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/gtsam.pdf -------------------------------------------------------------------------------- /doc/images/Beijing.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/Beijing.pdf -------------------------------------------------------------------------------- /doc/images/FactorGraph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/FactorGraph.pdf -------------------------------------------------------------------------------- /doc/images/FactorGraph2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/FactorGraph2.pdf -------------------------------------------------------------------------------- /doc/images/FactorGraph3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/FactorGraph3.pdf -------------------------------------------------------------------------------- /doc/images/FactorGraph4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/FactorGraph4.pdf -------------------------------------------------------------------------------- /doc/images/Localization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/Localization.pdf -------------------------------------------------------------------------------- /doc/images/Odometry.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/Odometry.pdf -------------------------------------------------------------------------------- /doc/images/Victoria.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/Victoria.pdf -------------------------------------------------------------------------------- /doc/images/circular.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/circular.pdf -------------------------------------------------------------------------------- /doc/images/circular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/circular.png -------------------------------------------------------------------------------- /doc/images/cube.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/cube.pdf -------------------------------------------------------------------------------- /doc/images/example1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/example1.pdf -------------------------------------------------------------------------------- /doc/images/example2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/example2.pdf -------------------------------------------------------------------------------- /doc/images/gtsam-structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/gtsam-structure.pdf -------------------------------------------------------------------------------- /doc/images/hmm-FG.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/hmm-FG.pdf -------------------------------------------------------------------------------- /doc/images/hmm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/hmm.pdf -------------------------------------------------------------------------------- /doc/images/littleRobot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/littleRobot.pdf -------------------------------------------------------------------------------- /doc/images/n-steps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/n-steps.pdf -------------------------------------------------------------------------------- /doc/images/n-steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/n-steps.png -------------------------------------------------------------------------------- /doc/images/sphere2500-result.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/sphere2500-result.pdf -------------------------------------------------------------------------------- /doc/images/w100-result.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/images/w100-result.pdf -------------------------------------------------------------------------------- /doc/math.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/math.pdf -------------------------------------------------------------------------------- /doc/robust.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/robust.pdf -------------------------------------------------------------------------------- /doc/trustregion.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/doc/trustregion.pdf -------------------------------------------------------------------------------- /examples/Data/.gitignore: -------------------------------------------------------------------------------- 1 | *.txt 2 | -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-1.jpg -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-1.key.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-1.key.gz -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-2.jpg -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-2.key.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-2.key.gz -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-3.jpg -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-3.key.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-3.key.gz -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-4.jpg -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-4.key.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-4.key.gz -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-5.jpg -------------------------------------------------------------------------------- /examples/Data/Balbianello/BalbianelloMedium-5.key.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Balbianello/BalbianelloMedium-5.key.gz -------------------------------------------------------------------------------- /examples/Data/KittiEquivBiasedImu_metadata.txt: -------------------------------------------------------------------------------- 1 | BodyPtx BodyPty BodyPtz BodyPrx BodyPry BodyPrz AccelerometerSigma GyroscopeSigma IntegrationSigma AccelerometerBiasSigma GyroscopeBiasSigma AverageDeltaT 2 | 0 0 0 0 0 0 0.01 0.000175 0 0.000167 2.91e-006 0.0100395199348279 3 | -------------------------------------------------------------------------------- /examples/Data/Plaza1_.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Plaza1_.mat -------------------------------------------------------------------------------- /examples/Data/Plaza2_.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/examples/Data/Plaza2_.mat -------------------------------------------------------------------------------- /examples/Data/VO_calibration.txt: -------------------------------------------------------------------------------- 1 | 721.5377 721.5377 0.0 609.5593 172.854 0.537150588 -------------------------------------------------------------------------------- /examples/Data/VO_calibration00.txt: -------------------------------------------------------------------------------- 1 | 718.856 718.856 0.0 607.1928 185.2157 0.5371657189 -------------------------------------------------------------------------------- /examples/Data/VO_calibration00s.txt: -------------------------------------------------------------------------------- 1 | 718.856 718.856 0.0 607.1928 185.2157 0.5371657189 -------------------------------------------------------------------------------- /examples/Data/pose3example-offdiagonal-rewritten.txt: -------------------------------------------------------------------------------- 1 | VERTEX_SE3:QUAT 0 0 0 0 0 0 0 1 2 | VERTEX_SE3:QUAT 1 1.00137 0.01539 0.004948 0.190253 0.283162 -0.392318 0.85423 3 | EDGE_SE3:QUAT 0 1 1.00137 0.01539 0.004948 0.190253 0.283162 -0.392318 0.85423 10000 1 1 1 1 1 10000 2 2 2 2 10000 3 3 3 10000 4 4 10000 5 10000 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/.gitlab/issue_templates/Feature Request.md: -------------------------------------------------------------------------------- 1 | ### Describe the feature you would like to be implemented. 2 | 3 | ### Would such a feature be useful for other users? Why? 4 | 5 | ### Any hints on how to implement the requested feature? 6 | 7 | ### Additional resources 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/.hgeol: -------------------------------------------------------------------------------- 1 | [patterns] 2 | *.sh = LF 3 | *.MINPACK = CRLF 4 | scripts/*.in = LF 5 | debug/msvc/*.dat = CRLF 6 | debug/msvc/*.natvis = CRLF 7 | unsupported/test/mpreal/*.* = CRLF 8 | ** = native 9 | 10 | [repository] 11 | native = LF 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/CTestCustom.cmake.in: -------------------------------------------------------------------------------- 1 | 2 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS "2000") 3 | set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS "2000") 4 | list(APPEND CTEST_CUSTOM_ERROR_EXCEPTION @EIGEN_CTEST_ERROR_EXCEPTION@) 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | #include "Sparse" 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/Eigen/src/Core/util/NonMPL2.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_MPL2_ONLY 2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode 3 | #endif 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/README.md: -------------------------------------------------------------------------------- 1 | **Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.** 2 | 3 | For more information go to http://eigen.tuxfamily.org/. 4 | 5 | For ***pull request***, ***bug reports***, and ***feature requests***, go to https://gitlab.com/libeigen/eigen. 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/static/static_size_generator.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/static/static_size_generator.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/STL_timer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/STL_timer.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/generic_bench/utils/size_lin_log.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/bench/btl/generic_bench/utils/size_lin_log.hh -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/STL/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | btl_add_bench(btl_STL main.cpp OFF) 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/gmm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | find_package(GMM) 3 | if (GMM_FOUND) 4 | include_directories(${GMM_INCLUDES}) 5 | btl_add_bench(btl_gmm main.cpp) 6 | endif () 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/mtl4/.kdbgrc.main: -------------------------------------------------------------------------------- 1 | [General] 2 | DebuggerCmdStr= 3 | DriverName=GDB 4 | FileVersion=1 5 | OptionsSelected= 6 | ProgramArgs= 7 | TTYLevel=7 8 | WorkingDirectory= 9 | 10 | [Memory] 11 | ColumnWidths=80,0 12 | NumExprs=0 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/mtl4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | find_package(MTL4) 3 | if (MTL4_FOUND) 4 | include_directories(${MTL4_INCLUDE_DIR}) 5 | btl_add_bench(btl_mtl4 main.cpp) 6 | endif () 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/tvmet/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | find_package(Tvmet) 3 | if (TVMET_FOUND) 4 | include_directories(${TVMET_INCLUDE_DIR}) 5 | btl_add_bench(btl_tvmet main.cpp OFF) 6 | endif () 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/btl/libs/ublas/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | find_package(Boost) 3 | if (Boost_FOUND) 4 | include_directories(${Boost_INCLUDE_DIRS}) 5 | include_directories(${Boost_INCLUDES}) 6 | btl_add_bench(btl_ublas main.cpp) 7 | endif () 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemm.cpp: -------------------------------------------------------------------------------- 1 | #include "gemm_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void gemm(const Mat &A, const Mat &B, Mat &C) 5 | { 6 | C.noalias() += A * B; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemm(argc, argv, gemm); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemm_settings.txt: -------------------------------------------------------------------------------- 1 | 8 8 8 2 | 9 9 9 3 | 24 24 24 4 | 239 239 239 5 | 240 240 240 6 | 2400 24 24 7 | 24 2400 24 8 | 24 24 2400 9 | 24 2400 2400 10 | 2400 24 2400 11 | 2400 2400 24 12 | 2400 2400 64 13 | 4800 23 160 14 | 23 4800 160 15 | 2400 2400 2400 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemm_square_settings.txt: -------------------------------------------------------------------------------- 1 | 8 8 8 2 | 9 9 9 3 | 12 12 12 4 | 15 15 15 5 | 16 16 16 6 | 24 24 24 7 | 102 102 102 8 | 239 239 239 9 | 240 240 240 10 | 2400 2400 2400 11 | 2463 2463 2463 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemv.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void gemv(const Mat &A, const Vec &B, Vec &C) 5 | { 6 | C.noalias() += A * B; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, gemv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemv_settings.txt: -------------------------------------------------------------------------------- 1 | 8 8 2 | 9 9 3 | 24 24 4 | 239 239 5 | 240 240 6 | 2400 24 7 | 24 2400 8 | 24 240 9 | 2400 2400 10 | 4800 23 11 | 23 4800 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemv_square_settings.txt: -------------------------------------------------------------------------------- 1 | 8 8 2 | 9 9 3 | 12 12 4 | 15 15 5 | 16 16 6 | 24 24 7 | 53 53 8 | 74 74 9 | 102 102 10 | 239 239 11 | 240 240 12 | 2400 2400 13 | 2463 2463 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/gemvt.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void gemv(const Mat &A, Vec &B, const Vec &C) 5 | { 6 | B.noalias() += A.transpose() * C; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, gemv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/lazy_gemm_settings.txt: -------------------------------------------------------------------------------- 1 | 1 1 1 0 2 | 2 2 2 0 3 | 3 3 3 0 4 | 4 4 4 0 5 | 4 4 4 1 6 | 5 5 5 0 7 | 6 6 6 0 8 | 7 7 7 0 9 | 7 7 7 1 10 | 8 8 8 0 11 | 9 9 9 0 12 | 10 10 10 0 13 | 11 11 11 0 14 | 12 12 12 0 15 | 12 12 12 1 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/resources/footer.html: -------------------------------------------------------------------------------- 1 | </table> 2 | </body> 3 | </html> 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/trmv_lo.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void trmv(const Mat &A, const Vec &B, Vec &C) 5 | { 6 | C.noalias() += A.triangularView<Lower>() * B; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, trmv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/trmv_lot.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void trmv(const Mat &A, Vec &B, const Vec &C) 5 | { 6 | B.noalias() += A.transpose().triangularView<Lower>() * C; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, trmv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/trmv_up.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void trmv(const Mat &A, const Vec &B, Vec &C) 5 | { 6 | C.noalias() += A.triangularView<Upper>() * B; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, trmv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/bench/perf_monitoring/trmv_upt.cpp: -------------------------------------------------------------------------------- 1 | #include "gemv_common.h" 2 | 3 | EIGEN_DONT_INLINE 4 | void trmv(const Mat &A, Vec &B, const Vec &C) 5 | { 6 | B.noalias() += A.transpose().triangularView<Upper>() * C; 7 | } 8 | 9 | int main(int argc, char **argv) 10 | { 11 | return main_gemv(argc, argv, trmv); 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/blas/README.txt: -------------------------------------------------------------------------------- 1 | 2 | This directory contains a BLAS library built on top of Eigen. 3 | 4 | This module is not built by default. In order to compile it, you need to 5 | type 'make blas' from within your build dir. 6 | 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/blas/f2c/d_cnjg.c: -------------------------------------------------------------------------------- 1 | #include "datatypes.h" 2 | 3 | void d_cnjg(doublecomplex *r, doublecomplex *z) { 4 | r->r = z->r; 5 | r->i = -(z->i); 6 | } 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/blas/f2c/r_cnjg.c: -------------------------------------------------------------------------------- 1 | #include "datatypes.h" 2 | 3 | void r_cnjg(complex *r, complex *z) { 4 | r->r = z->r; 5 | r->i = -(z->i); 6 | } 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/cmake/UseEigen3.cmake: -------------------------------------------------------------------------------- 1 | # -*- cmake -*- 2 | # 3 | # UseEigen3.cmake 4 | 5 | add_definitions ( ${EIGEN3_DEFINITIONS} ) 6 | include_directories ( ${EIGEN3_INCLUDE_DIRS} ) 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/debug/gdb/__init__.py: -------------------------------------------------------------------------------- 1 | # Intentionally empty 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/demos/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(EigenDemos) 2 | 3 | add_custom_target(demos) 4 | 5 | if(NOT EIGEN_TEST_NOQT) 6 | find_package(Qt4) 7 | if(QT4_FOUND) 8 | add_subdirectory(mandelbrot) 9 | add_subdirectory(opengl) 10 | else() 11 | message(STATUS "Qt4 not found, so disabling the mandelbrot and opengl demos") 12 | endif() 13 | endif() 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/demos/mix_eigen_and_c/README: -------------------------------------------------------------------------------- 1 | This is an example of how one can wrap some of Eigen into a C library. 2 | 3 | To try this with GCC, do: 4 | 5 | g++ -c binary_library.cpp -O2 -msse2 -I ../.. 6 | gcc example.c binary_library.o -o example -lstdc++ 7 | ./example 8 | 9 | TODO: add CMakeLists, add more explanations here 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/Eigen_Silly_Professor_64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/doc/Eigen_Silly_Professor_64x64.png -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/TopicEigenExpressionTemplates.dox: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | /** \page TopicEigenExpressionTemplates Expression templates in Eigen 4 | 5 | 6 | TODO: write this dox page! 7 | 8 | Is linked from the tutorial on arithmetic ops. 9 | 10 | */ 11 | 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/TopicResizing.dox: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | /** \page TopicResizing Resizing 4 | 5 | 6 | TODO: write this dox page! 7 | 8 | Is linked from the tutorial on the Matrix class. 9 | 10 | */ 11 | } 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/TopicScalarTypes.dox: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | /** \page TopicScalarTypes Scalar types 4 | 5 | 6 | TODO: write this dox page! 7 | 8 | Is linked from the tutorial on the Matrix class. 9 | 10 | */ 11 | 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/TopicVectorization.dox: -------------------------------------------------------------------------------- 1 | namespace Eigen { 2 | 3 | /** \page TopicVectorization Vectorization 4 | 5 | 6 | TODO: write this dox page! 7 | 8 | */ 9 | } 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/TutorialSparse_example_details.dox: -------------------------------------------------------------------------------- 1 | /** 2 | \page TutorialSparse_example_details 3 | \include Tutorial_sparse_example_details.cpp 4 | */ 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/.krazy: -------------------------------------------------------------------------------- 1 | EXCLUDE copyright 2 | EXCLUDE license 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Cwise_erf.cpp: -------------------------------------------------------------------------------- 1 | #include <Eigen/Core> 2 | #include <unsupported/Eigen/SpecialFunctions> 3 | #include <iostream> 4 | using namespace Eigen; 5 | int main() 6 | { 7 | Array4d v(-0.5,2,0,-7); 8 | std::cout << v.erf() << std::endl; 9 | } 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Cwise_erfc.cpp: -------------------------------------------------------------------------------- 1 | #include <Eigen/Core> 2 | #include <unsupported/Eigen/SpecialFunctions> 3 | #include <iostream> 4 | using namespace Eigen; 5 | int main() 6 | { 7 | Array4d v(-0.5,2,0,-7); 8 | std::cout << v.erfc() << std::endl; 9 | } 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Cwise_lgamma.cpp: -------------------------------------------------------------------------------- 1 | #include <Eigen/Core> 2 | #include <unsupported/Eigen/SpecialFunctions> 3 | #include <iostream> 4 | using namespace Eigen; 5 | int main() 6 | { 7 | Array4d v(0.5,10,0,-1); 8 | std::cout << v.lgamma() << std::endl; 9 | } 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/QuickStart_example.cpp: -------------------------------------------------------------------------------- 1 | #include <iostream> 2 | #include <Eigen/Dense> 3 | 4 | using Eigen::MatrixXd; 5 | 6 | int main() 7 | { 8 | MatrixXd m(2,2); 9 | m(0,0) = 3; 10 | m(1,0) = 2.5; 11 | m(0,1) = -1; 12 | m(1,1) = m(1,0) + m(0,1); 13 | std::cout << m << std::endl; 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Tutorial_ArrayClass_mult.cpp: -------------------------------------------------------------------------------- 1 | #include <Eigen/Dense> 2 | #include <iostream> 3 | 4 | using namespace Eigen; 5 | using namespace std; 6 | 7 | int main() 8 | { 9 | ArrayXXf a(2,2); 10 | ArrayXXf b(2,2); 11 | a << 1,2, 12 | 3,4; 13 | b << 5,6, 14 | 7,8; 15 | cout << "a * b = " << endl << a * b << endl; 16 | } 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp: -------------------------------------------------------------------------------- 1 | #include <iostream> 2 | #include <Eigen/Dense> 3 | 4 | using namespace std; 5 | int main() 6 | { 7 | Eigen::MatrixXf mat(2,4); 8 | mat << 1, 2, 6, 9, 9 | 3, 1, 7, 2; 10 | 11 | std::cout << "Column's maximum: " << std::endl 12 | << mat.colwise().maxCoeff() << std::endl; 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp: -------------------------------------------------------------------------------- 1 | #include <iostream> 2 | #include <Eigen/Dense> 3 | 4 | using namespace std; 5 | int main() 6 | { 7 | Eigen::MatrixXf mat(2,4); 8 | mat << 1, 2, 6, 9, 9 | 3, 1, 7, 2; 10 | 11 | std::cout << "Row's maximum: " << std::endl 12 | << mat.rowwise().maxCoeff() << std::endl; 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/make_circulant.cpp.entry: -------------------------------------------------------------------------------- 1 | template <class ArgType> 2 | Circulant<ArgType> makeCirculant(const Eigen::MatrixBase<ArgType>& arg) 3 | { 4 | return Circulant<ArgType>(arg.derived()); 5 | } 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/make_circulant.cpp.main: -------------------------------------------------------------------------------- 1 | int main() 2 | { 3 | Eigen::VectorXd vec(4); 4 | vec << 1, 2, 4, 8; 5 | Eigen::MatrixXd mat; 6 | mat = makeCirculant(vec); 7 | std::cout << mat << std::endl; 8 | } 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/make_circulant.cpp.preamble: -------------------------------------------------------------------------------- 1 | #include <Eigen/Core> 2 | #include <iostream> 3 | 4 | template <class ArgType> class Circulant; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/examples/tut_matrix_resize_fixed_size.cpp: -------------------------------------------------------------------------------- 1 | #include <iostream> 2 | #include <Eigen/Dense> 3 | 4 | using namespace Eigen; 5 | 6 | int main() 7 | { 8 | Matrix4d m; 9 | m.resize(4,4); // no operation 10 | std::cout << "The matrix m is of size " 11 | << m.rows() << "x" << m.cols() << std::endl; 12 | } 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/doc/ftv2node.png -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/doc/ftv2pnode.png -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/.krazy: -------------------------------------------------------------------------------- 1 | EXCLUDE copyright 2 | EXCLUDE license 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/AngleAxis_mimic_euler.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f m; 2 | m = AngleAxisf(0.25*M_PI, Vector3f::UnitX()) 3 | * AngleAxisf(0.5*M_PI, Vector3f::UnitY()) 4 | * AngleAxisf(0.33*M_PI, Vector3f::UnitZ()); 5 | cout << m << endl << "is unitary: " << m.isUnitary() << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Array_initializer_list_23_cxx11.cpp: -------------------------------------------------------------------------------- 1 | ArrayXXi a { 2 | {1, 2, 3}, 3 | {3, 4, 5} 4 | }; 5 | cout << a << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Array_initializer_list_vector_cxx11.cpp: -------------------------------------------------------------------------------- 1 | Array<int, Dynamic, 1> v {{1, 2, 3, 4, 5}}; 2 | cout << v << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Array_variadic_ctor_cxx11.cpp: -------------------------------------------------------------------------------- 1 | Array<int, 1, 6> a(1, 2, 3, 4, 5, 6); 2 | Array<int, 3, 1> b {1, 2, 3}; 3 | cout << a << "\n\n" << b << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/ComplexEigenSolver_eigenvalues.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf ones = MatrixXcf::Ones(3,3); 2 | ComplexEigenSolver<MatrixXcf> ces(ones, /* computeEigenvectors = */ false); 3 | cout << "The eigenvalues of the 3x3 matrix of ones are:" 4 | << endl << ces.eigenvalues() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/ComplexEigenSolver_eigenvectors.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf ones = MatrixXcf::Ones(3,3); 2 | ComplexEigenSolver<MatrixXcf> ces(ones); 3 | cout << "The first eigenvector of the 3x3 matrix of ones is:" 4 | << endl << ces.eigenvectors().col(0) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/ComplexSchur_compute.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf A = MatrixXcf::Random(4,4); 2 | ComplexSchur<MatrixXcf> schur(4); 3 | schur.compute(A); 4 | cout << "The matrix T in the decomposition of A is:" << endl << schur.matrixT() << endl; 5 | schur.compute(A.inverse()); 6 | cout << "The matrix T in the decomposition of A^(-1) is:" << endl << schur.matrixT() << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/ComplexSchur_matrixT.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf A = MatrixXcf::Random(4,4); 2 | cout << "Here is a random 4x4 matrix, A:" << endl << A << endl << endl; 3 | ComplexSchur<MatrixXcf> schurOfA(A, false); // false means do not compute U 4 | cout << "The triangular matrix T is:" << endl << schurOfA.matrixT() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/ComplexSchur_matrixU.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf A = MatrixXcf::Random(4,4); 2 | cout << "Here is a random 4x4 matrix, A:" << endl << A << endl << endl; 3 | ComplexSchur<MatrixXcf> schurOfA(A); 4 | cout << "The unitary matrix U is:" << endl << schurOfA.matrixU() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_abs.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,-2,-3); 2 | cout << v.abs() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_abs2.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,-2,-3); 2 | cout << v.abs2() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_acos.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(0, sqrt(2.)/2, 1); 2 | cout << v.acos() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_arg.cpp: -------------------------------------------------------------------------------- 1 | ArrayXcf v = ArrayXcf::Random(3); 2 | cout << v << endl << endl; 3 | cout << arg(v) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_array_power_array.cpp: -------------------------------------------------------------------------------- 1 | Array<double,1,3> x(8,25,3), 2 | e(1./3.,0.5,2.); 3 | cout << "[" << x << "]^[" << e << "] = " << x.pow(e) << endl; // using ArrayBase::pow 4 | cout << "[" << x << "]^[" << e << "] = " << pow(x,e) << endl; // using Eigen::pow 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_asin.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(0, sqrt(2.)/2, 1); 2 | cout << v.asin() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_atan.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(5,0,1); 2 | cout << v.atan() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_boolean_and.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(-1,2,1), w(-3,2,3); 2 | cout << ((v<w) && (v<0)) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_boolean_not.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v(1) *= 0.0/0.0; 3 | v(2) /= 0.0; 4 | cout << v << endl << endl; 5 | cout << !isfinite(v) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_boolean_or.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(-1,2,1), w(-3,2,3); 2 | cout << ((v<w) || (v<0)) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_boolean_xor.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(-1,2,1), w(-3,2,3); 2 | cout << ((v<w) ^ (v<0)) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_ceil.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(7,-2,2); 2 | cout << v << endl << endl; 3 | cout << ceil(v) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_cos.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(M_PI, M_PI/2, M_PI/3); 2 | cout << v.cos() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_cosh.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(5,0,1); 2 | cout << cosh(v) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_cube.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4); 2 | cout << v.cube() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_equal_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v==w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_exp.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | cout << v.exp() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_floor.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(7,-2,2); 2 | cout << v << endl << endl; 3 | cout << floor(v) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_greater.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v>w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_greater_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v>=w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_inverse.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4); 2 | cout << v.inverse() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_isFinite.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v(1) *= 0.0/0.0; 3 | v(2) /= 0.0; 4 | cout << v << endl << endl; 5 | cout << isfinite(v) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_isInf.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v(1) *= 0.0/0.0; 3 | v(2) /= 0.0; 4 | cout << v << endl << endl; 5 | cout << isinf(v) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_isNaN.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v(1) *= 0.0/0.0; 3 | v(2) /= 0.0; 4 | cout << v << endl << endl; 5 | cout << isnan(v) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_less.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v<w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_less_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v<=w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_log.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | cout << v.log() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_log10.cpp: -------------------------------------------------------------------------------- 1 | Array4d v(-1,0,1,2); 2 | cout << log10(v) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_max.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4), w(4,2,3); 2 | cout << v.max(w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_min.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4), w(4,2,3); 2 | cout << v.min(w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_minus.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | cout << v-5 << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_minus_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v -= 5; 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_not_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(3,2,1); 2 | cout << (v!=w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_plus.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | cout << v+5 << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_plus_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3); 2 | v += 5; 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_pow.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(8,27,64); 2 | cout << v.pow(0.333333) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_product.cpp: -------------------------------------------------------------------------------- 1 | Array33i a = Array33i::Random(), b = Array33i::Random(); 2 | Array33i c = a * b; 3 | cout << "a:\n" << a << "\nb:\n" << b << "\nc:\n" << c << endl; 4 | 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_quotient.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4), w(4,2,3); 2 | cout << v/w << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_rint.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(7,-2,2); 2 | cout << v << endl << endl; 3 | cout << rint(v) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_round.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(7,-2,2); 2 | cout << v << endl << endl; 3 | cout << round(v) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_scalar_power_array.cpp: -------------------------------------------------------------------------------- 1 | Array<double,1,3> e(2,-3,1./3.); 2 | cout << "10^[" << e << "] = " << pow(10,e) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_sign.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(-3,5,0); 2 | cout << v.sign() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_sin.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(M_PI, M_PI/2, M_PI/3); 2 | cout << v.sin() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_sinh.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(5,0,1); 2 | cout << sinh(v) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_slash_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(3,2,4), w(5,4,2); 2 | v /= w; 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_sqrt.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,4); 2 | cout << v.sqrt() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_square.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(2,3,4); 2 | cout << v.square() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_tan.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(M_PI, M_PI/2, M_PI/3); 2 | cout << v.tan() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_tanh.cpp: -------------------------------------------------------------------------------- 1 | ArrayXd v = ArrayXd::LinSpaced(5,0,1); 2 | cout << tanh(v) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Cwise_times_equal.cpp: -------------------------------------------------------------------------------- 1 | Array3d v(1,2,3), w(2,3,0); 2 | v *= w; 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/DenseBase_LinSpaced.cpp: -------------------------------------------------------------------------------- 1 | cout << VectorXi::LinSpaced(4,7,10).transpose() << endl; 2 | cout << VectorXd::LinSpaced(5,0.0,1.0).transpose() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/DenseBase_LinSpaced_seq_deprecated.cpp: -------------------------------------------------------------------------------- 1 | cout << VectorXi::LinSpaced(Sequential,4,7,10).transpose() << endl; 2 | cout << VectorXd::LinSpaced(Sequential,5,0.0,1.0).transpose() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/DenseBase_setLinSpaced.cpp: -------------------------------------------------------------------------------- 1 | VectorXf v; 2 | v.setLinSpaced(5,0.5f,1.5f); 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/DirectionWise_replicate.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m = MatrixXi::Random(2,3); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "m.colwise().replicate<3>() = ..." << endl; 4 | cout << m.colwise().replicate<3>() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/DirectionWise_replicate_int.cpp: -------------------------------------------------------------------------------- 1 | Vector3i v = Vector3i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "v.rowwise().replicate(5) = ..." << endl; 4 | cout << v.rowwise().replicate(5) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/EigenSolver_eigenvalues.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | EigenSolver<MatrixXd> es(ones, false); 3 | cout << "The eigenvalues of the 3x3 matrix of ones are:" 4 | << endl << es.eigenvalues() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/EigenSolver_eigenvectors.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | EigenSolver<MatrixXd> es(ones); 3 | cout << "The first eigenvector of the 3x3 matrix of ones is:" 4 | << endl << es.eigenvectors().col(0) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/FullPivLU_kernel.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m = MatrixXf::Random(3,5); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | MatrixXf ker = m.fullPivLu().kernel(); 4 | cout << "Here is a matrix whose columns form a basis of the kernel of m:" 5 | << endl << ker << endl; 6 | cout << "By definition of the kernel, m*ker is zero:" 7 | << endl << m*ker << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/HouseholderQR_householderQ.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf A(MatrixXf::Random(5,3)), thinQ(MatrixXf::Identity(5,3)), Q; 2 | A.setRandom(); 3 | HouseholderQR<MatrixXf> qr(A); 4 | Q = qr.householderQ(); 5 | thinQ = qr.householderQ() * thinQ; 6 | std::cout << "The complete unitary matrix Q is:\n" << Q << "\n\n"; 7 | std::cout << "The thin matrix Q is:\n" << thinQ << "\n\n"; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Jacobi_makeGivens.cpp: -------------------------------------------------------------------------------- 1 | Vector2f v = Vector2f::Random(); 2 | JacobiRotation<float> G; 3 | G.makeGivens(v.x(), v.y()); 4 | cout << "Here is the vector v:" << endl << v << endl; 5 | v.applyOnTheLeft(0, 1, G.adjoint()); 6 | cout << "Here is the vector J' * v:" << endl << v << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Jacobi_makeJacobi.cpp: -------------------------------------------------------------------------------- 1 | Matrix2f m = Matrix2f::Random(); 2 | m = (m + m.adjoint()).eval(); 3 | JacobiRotation<float> J; 4 | J.makeJacobi(m, 0, 1); 5 | cout << "Here is the matrix m:" << endl << m << endl; 6 | m.applyOnTheLeft(0, 1, J.adjoint()); 7 | m.applyOnTheRight(0, 1, J); 8 | cout << "Here is the matrix J' * m * J:" << endl << m << endl; 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/LeastSquaresNormalEquations.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf A = MatrixXf::Random(3, 2); 2 | VectorXf b = VectorXf::Random(3); 3 | cout << "The solution using normal equations is:\n" 4 | << (A.transpose() * A).ldlt().solve(A.transpose() * b) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/LeastSquaresQR.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf A = MatrixXf::Random(3, 2); 2 | VectorXf b = VectorXf::Random(3); 3 | cout << "The solution using the QR decomposition is:\n" 4 | << A.colPivHouseholderQr().solve(b) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Map_general_stride.cpp: -------------------------------------------------------------------------------- 1 | int array[24]; 2 | for(int i = 0; i < 24; ++i) array[i] = i; 3 | cout << Map<MatrixXi, 0, Stride<Dynamic,2> > 4 | (array, 3, 3, Stride<Dynamic,2>(8, 2)) 5 | << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Map_inner_stride.cpp: -------------------------------------------------------------------------------- 1 | int array[12]; 2 | for(int i = 0; i < 12; ++i) array[i] = i; 3 | cout << Map<VectorXi, 0, InnerStride<2> > 4 | (array, 6) // the inner stride has already been passed as template parameter 5 | << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Map_outer_stride.cpp: -------------------------------------------------------------------------------- 1 | int array[12]; 2 | for(int i = 0; i < 12; ++i) array[i] = i; 3 | cout << Map<MatrixXi, 0, OuterStride<> >(array, 3, 3, OuterStride<>(4)) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Map_placement_new.cpp: -------------------------------------------------------------------------------- 1 | int data[] = {1,2,3,4,5,6,7,8,9}; 2 | Map<RowVectorXi> v(data,4); 3 | cout << "The mapped vector v is: " << v << "\n"; 4 | new (&v) Map<RowVectorXi>(data+4,5); 5 | cout << "Now v is: " << v << "\n"; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Map_simple.cpp: -------------------------------------------------------------------------------- 1 | int array[9]; 2 | for(int i = 0; i < 9; ++i) array[i] = i; 3 | cout << Map<Matrix3i>(array) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_adjoint.cpp: -------------------------------------------------------------------------------- 1 | Matrix2cf m = Matrix2cf::Random(); 2 | cout << "Here is the 2x2 complex matrix m:" << endl << m << endl; 3 | cout << "Here is the adjoint of m:" << endl << m.adjoint() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_applyOnTheLeft.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A = Matrix3f::Random(3,3), B; 2 | B << 0,1,0, 3 | 0,0,1, 4 | 1,0,0; 5 | cout << "At start, A = " << endl << A << endl; 6 | A.applyOnTheLeft(B); 7 | cout << "After applyOnTheLeft, A = " << endl << A << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_applyOnTheRight.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A = Matrix3f::Random(3,3), B; 2 | B << 0,1,0, 3 | 0,0,1, 4 | 1,0,0; 5 | cout << "At start, A = " << endl << A << endl; 6 | A *= B; 7 | cout << "After A *= B, A = " << endl << A << endl; 8 | A.applyOnTheRight(B); // equivalent to A *= B 9 | cout << "After applyOnTheRight, A = " << endl << A << endl; 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_array.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(1,2,3); 2 | v.array() += 3; 3 | v.array() -= 2; 4 | cout << v << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_array_const.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(-1,2,-3); 2 | cout << "the absolute values:" << endl << v.array().abs() << endl; 3 | cout << "the absolute values plus one:" << endl << v.array().abs()+1 << endl; 4 | cout << "sum of the squares: " << v.array().square().sum() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_asDiagonal.cpp: -------------------------------------------------------------------------------- 1 | cout << Matrix3i(Vector3i(2,5,6).asDiagonal()) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_block_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.block<2,2>(1,1):" << endl << m.block<2,2>(1,1) << endl; 4 | m.block<2,2>(1,1).setZero(); 5 | cout << "Now the matrix m is:" << endl << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_block_int_int_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.block(1, 1, 2, 2):" << endl << m.block(1, 1, 2, 2) << endl; 4 | m.block(1, 1, 2, 2).setZero(); 5 | cout << "Now the matrix m is:" << endl << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.bottomLeftCorner(2, 2):" << endl; 4 | cout << m.bottomLeftCorner(2, 2) << endl; 5 | m.bottomLeftCorner(2, 2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.bottomRightCorner(2, 2):" << endl; 4 | cout << m.bottomRightCorner(2, 2) << endl; 5 | m.bottomRightCorner(2, 2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_bottomRows_int.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.bottomRows(2):" << endl; 4 | cout << a.bottomRows(2) << endl; 5 | a.bottomRows(2).setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cast.cpp: -------------------------------------------------------------------------------- 1 | Matrix2d md = Matrix2d::Identity() * 0.45; 2 | Matrix2f mf = Matrix2f::Identity(); 3 | cout << md + mf.cast<double>() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_col.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Identity(); 2 | m.col(1) = Vector3d(4,5,6); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_colwise.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the sum of each column:" << endl << m.colwise().sum() << endl; 4 | cout << "Here is the maximum absolute value of each column:" 5 | << endl << m.cwiseAbs().colwise().maxCoeff() << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseAbs.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(2,3); 2 | m << 2, -4, 6, 3 | -5, 1, 0; 4 | cout << m.cwiseAbs() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseAbs2.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(2,3); 2 | m << 2, -4, 6, 3 | -5, 1, 0; 4 | cout << m.cwiseAbs2() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseArg.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf v = MatrixXcf::Random(2, 3); 2 | cout << v << endl << endl; 3 | cout << v.cwiseArg() << endl; -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseEqual.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m(2,2); 2 | m << 1, 0, 3 | 1, 1; 4 | cout << "Comparing m with identity matrix:" << endl; 5 | cout << m.cwiseEqual(MatrixXi::Identity(2,2)) << endl; 6 | Index count = m.cwiseEqual(MatrixXi::Identity(2,2)).count(); 7 | cout << "Number of coefficients that are equal: " << count << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseInverse.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(2,3); 2 | m << 2, 0.5, 1, 3 | 3, 0.25, 1; 4 | cout << m.cwiseInverse() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseMax.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(2,3,4), w(4,2,3); 2 | cout << v.cwiseMax(w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseMin.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(2,3,4), w(4,2,3); 2 | cout << v.cwiseMin(w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseNotEqual.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m(2,2); 2 | m << 1, 0, 3 | 1, 1; 4 | cout << "Comparing m with identity matrix:" << endl; 5 | cout << m.cwiseNotEqual(MatrixXi::Identity(2,2)) << endl; 6 | Index count = m.cwiseNotEqual(MatrixXi::Identity(2,2)).count(); 7 | cout << "Number of coefficients that are not equal: " << count << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseProduct.cpp: -------------------------------------------------------------------------------- 1 | Matrix3i a = Matrix3i::Random(), b = Matrix3i::Random(); 2 | Matrix3i c = a.cwiseProduct(b); 3 | cout << "a:\n" << a << "\nb:\n" << b << "\nc:\n" << c << endl; 4 | 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseQuotient.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(2,3,4), w(4,2,3); 2 | cout << v.cwiseQuotient(w) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseSign.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(2,3); 2 | m << 2, -4, 6, 3 | -5, 1, 0; 4 | cout << m.cwiseSign() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_cwiseSqrt.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(1,2,4); 2 | cout << v.cwiseSqrt() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_diagonal.cpp: -------------------------------------------------------------------------------- 1 | Matrix3i m = Matrix3i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here are the coefficients on the main diagonal of m:" << endl 4 | << m.diagonal() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_diagonal_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here are the coefficients on the 1st super-diagonal and 2nd sub-diagonal of m:" << endl 4 | << m.diagonal(1).transpose() << endl 5 | << m.diagonal(-2).transpose() << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_diagonal_template_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here are the coefficients on the 1st super-diagonal and 2nd sub-diagonal of m:" << endl 4 | << m.diagonal<1>().transpose() << endl 5 | << m.diagonal<-2>().transpose() << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_eigenvalues.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | VectorXcd eivals = ones.eigenvalues(); 3 | cout << "The eigenvalues of the 3x3 matrix of ones are:" << endl << eivals << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_end_int.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.tail(2):" << endl << v.tail(2) << endl; 4 | v.tail(2).setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_fixedBlock_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4d m = Vector4d(1,2,3,4).asDiagonal(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.fixed<2, 2>(2, 2):" << endl << m.block<2, 2>(2, 2) << endl; 4 | m.block<2, 2>(2, 0) = m.block<2, 2>(2, 2); 5 | cout << "Now the matrix m is:" << endl << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_identity.cpp: -------------------------------------------------------------------------------- 1 | cout << Matrix<double, 3, 4>::Identity() << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_identity_int_int.cpp: -------------------------------------------------------------------------------- 1 | cout << MatrixXd::Identity(4, 3) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_inverse.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Its inverse is:" << endl << m.inverse() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isDiagonal.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = 10000 * Matrix3d::Identity(); 2 | m(0,2) = 1; 3 | cout << "Here's the matrix m:" << endl << m << endl; 4 | cout << "m.isDiagonal() returns: " << m.isDiagonal() << endl; 5 | cout << "m.isDiagonal(1e-3) returns: " << m.isDiagonal(1e-3) << endl; 6 | 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isIdentity.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Identity(); 2 | m(0,2) = 1e-4; 3 | cout << "Here's the matrix m:" << endl << m << endl; 4 | cout << "m.isIdentity() returns: " << m.isIdentity() << endl; 5 | cout << "m.isIdentity(1e-3) returns: " << m.isIdentity(1e-3) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isOnes.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Ones(); 2 | m(0,2) += 1e-4; 3 | cout << "Here's the matrix m:" << endl << m << endl; 4 | cout << "m.isOnes() returns: " << m.isOnes() << endl; 5 | cout << "m.isOnes(1e-3) returns: " << m.isOnes(1e-3) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isOrthogonal.cpp: -------------------------------------------------------------------------------- 1 | Vector3d v(1,0,0); 2 | Vector3d w(1e-4,0,1); 3 | cout << "Here's the vector v:" << endl << v << endl; 4 | cout << "Here's the vector w:" << endl << w << endl; 5 | cout << "v.isOrthogonal(w) returns: " << v.isOrthogonal(w) << endl; 6 | cout << "v.isOrthogonal(w,1e-3) returns: " << v.isOrthogonal(w,1e-3) << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isUnitary.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Identity(); 2 | m(0,2) = 1e-4; 3 | cout << "Here's the matrix m:" << endl << m << endl; 4 | cout << "m.isUnitary() returns: " << m.isUnitary() << endl; 5 | cout << "m.isUnitary(1e-3) returns: " << m.isUnitary(1e-3) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_isZero.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Zero(); 2 | m(0,2) = 1e-4; 3 | cout << "Here's the matrix m:" << endl << m << endl; 4 | cout << "m.isZero() returns: " << m.isZero() << endl; 5 | cout << "m.isZero(1e-3) returns: " << m.isZero(1e-3) << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_leftCols_int.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.leftCols(2):" << endl; 4 | cout << a.leftCols(2) << endl; 5 | a.leftCols(2).setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_noalias.cpp: -------------------------------------------------------------------------------- 1 | Matrix2d a, b, c; a << 1,2,3,4; b << 5,6,7,8; 2 | c.noalias() = a * b; // this computes the product directly to c 3 | cout << c << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_ones.cpp: -------------------------------------------------------------------------------- 1 | cout << Matrix2d::Ones() << endl; 2 | cout << 6 * RowVector4i::Ones() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_ones_int.cpp: -------------------------------------------------------------------------------- 1 | cout << 6 * RowVectorXi::Ones(4) << endl; 2 | cout << VectorXf::Ones(2) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_ones_int_int.cpp: -------------------------------------------------------------------------------- 1 | cout << MatrixXi::Ones(2,3) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_operatorNorm.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | cout << "The operator norm of the 3x3 matrix of ones is " 3 | << ones.operatorNorm() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_prod.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the product of all the coefficients:" << endl << m.prod() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_random.cpp: -------------------------------------------------------------------------------- 1 | cout << 100 * Matrix2i::Random() << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_random_int.cpp: -------------------------------------------------------------------------------- 1 | cout << VectorXi::Random(2) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_random_int_int.cpp: -------------------------------------------------------------------------------- 1 | cout << MatrixXi::Random(2,3) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_replicate.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m = MatrixXi::Random(2,3); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "m.replicate<3,2>() = ..." << endl; 4 | cout << m.replicate<3,2>() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_replicate_int_int.cpp: -------------------------------------------------------------------------------- 1 | Vector3i v = Vector3i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "v.replicate(2,5) = ..." << endl; 4 | cout << v.replicate(2,5) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_reshaped_auto.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.reshaped(2, AutoSize):" << endl << m.reshaped(2, AutoSize) << endl; 4 | cout << "Here is m.reshaped<RowMajor>(AutoSize, fix<8>):" << endl << m.reshaped<RowMajor>(AutoSize, fix<8>) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_reshaped_fixed.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.reshaped(fix<2>,fix<8>):" << endl << m.reshaped(fix<2>,fix<8>) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_reshaped_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.reshaped(2, 8):" << endl << m.reshaped(2, 8) << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_reshaped_to_vector.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.reshaped().transpose():" << endl << m.reshaped().transpose() << endl; 4 | cout << "Here is m.reshaped<RowMajor>().transpose(): " << endl << m.reshaped<RowMajor>().transpose() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_rightCols_int.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.rightCols(2):" << endl; 4 | cout << a.rightCols(2) << endl; 5 | a.rightCols(2).setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_row.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Identity(); 2 | m.row(1) = Vector3d(4,5,6); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_rowwise.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the sum of each row:" << endl << m.rowwise().sum() << endl; 4 | cout << "Here is the maximum absolute value of each row:" 5 | << endl << m.cwiseAbs().rowwise().maxCoeff() << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_segment_int_int.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.segment(1, 2):" << endl << v.segment(1, 2) << endl; 4 | v.segment(1, 2).setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_select.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m(3, 3); 2 | m << 1, 2, 3, 3 | 4, 5, 6, 4 | 7, 8, 9; 5 | m = (m.array() >= 5).select(-m, m); 6 | cout << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_set.cpp: -------------------------------------------------------------------------------- 1 | Matrix3i m1; 2 | m1 << 1, 2, 3, 3 | 4, 5, 6, 4 | 7, 8, 9; 5 | cout << m1 << endl << endl; 6 | Matrix3i m2 = Matrix3i::Identity(); 7 | m2.block(0,0, 2,2) << 10, 11, 12, 13; 8 | cout << m2 << endl << endl; 9 | Vector2i v1; 10 | v1 << 14, 15; 11 | m2 << v1.transpose(), 16, 12 | v1, m1.block(1,1,2,2); 13 | cout << m2 << endl; 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_setIdentity.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Zero(); 2 | m.block<3,3>(1,0).setIdentity(); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_setOnes.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | m.row(1).setOnes(); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_setRandom.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Zero(); 2 | m.col(1).setRandom(); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_setZero.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | m.row(1).setZero(); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_start_int.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.head(2):" << endl << v.head(2) << endl; 4 | v.head(2).setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_bottomRows.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.bottomRows<2>():" << endl; 4 | cout << a.bottomRows<2>() << endl; 5 | a.bottomRows<2>().setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_end.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.tail(2):" << endl << v.tail<2>() << endl; 4 | v.tail<2>().setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the block:" << endl << m.block<2, Dynamic>(1, 1, 2, 3) << endl; 4 | m.block<2, Dynamic>(1, 1, 2, 3).setZero(); 5 | cout << "Now the matrix m is:" << endl << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.bottomLeftCorner<2,2>():" << endl; 4 | cout << m.bottomLeftCorner<2,2>() << endl; 5 | m.bottomLeftCorner<2,2>().setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.bottomLeftCorner<2,Dynamic>(2,2):" << endl; 4 | cout << m.bottomLeftCorner<2,Dynamic>(2,2) << endl; 5 | m.bottomLeftCorner<2,Dynamic>(2,2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.bottomRightCorner<2,2>():" << endl; 4 | cout << m.bottomRightCorner<2,2>() << endl; 5 | m.bottomRightCorner<2,2>().setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topLeftCorner<2,2>():" << endl; 4 | cout << m.topLeftCorner<2,2>() << endl; 5 | m.topLeftCorner<2,2>().setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topLeftCorner<2,Dynamic>(2,2):" << endl; 4 | cout << m.topLeftCorner<2,Dynamic>(2,2) << endl; 5 | m.topLeftCorner<2,Dynamic>(2,2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topRightCorner<2,2>():" << endl; 4 | cout << m.topRightCorner<2,2>() << endl; 5 | m.topRightCorner<2,2>().setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topRightCorner<2,Dynamic>(2,2):" << endl; 4 | cout << m.topRightCorner<2,Dynamic>(2,2) << endl; 5 | m.topRightCorner<2,Dynamic>(2,2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_leftCols.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.leftCols<2>():" << endl; 4 | cout << a.leftCols<2>() << endl; 5 | a.leftCols<2>().setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_rightCols.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.rightCols<2>():" << endl; 4 | cout << a.rightCols<2>() << endl; 5 | a.rightCols<2>().setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_segment.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.segment<2>(1):" << endl << v.segment<2>(1) << endl; 4 | v.segment<2>(2).setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_start.cpp: -------------------------------------------------------------------------------- 1 | RowVector4i v = RowVector4i::Random(); 2 | cout << "Here is the vector v:" << endl << v << endl; 3 | cout << "Here is v.head(2):" << endl << v.head<2>() << endl; 4 | v.head<2>().setZero(); 5 | cout << "Now the vector v is:" << endl << v << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_template_int_topRows.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.topRows<2>():" << endl; 4 | cout << a.topRows<2>() << endl; 5 | a.topRows<2>().setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topLeftCorner(2, 2):" << endl; 4 | cout << m.topLeftCorner(2, 2) << endl; 5 | m.topLeftCorner(2, 2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_topRightCorner_int_int.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.topRightCorner(2, 2):" << endl; 4 | cout << m.topRightCorner(2, 2) << endl; 5 | m.topRightCorner(2, 2).setZero(); 6 | cout << "Now the matrix m is:" << endl << m << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_topRows_int.cpp: -------------------------------------------------------------------------------- 1 | Array44i a = Array44i::Random(); 2 | cout << "Here is the array a:" << endl << a << endl; 3 | cout << "Here is a.topRows(2):" << endl; 4 | cout << a.topRows(2) << endl; 5 | a.topRows(2).setZero(); 6 | cout << "Now the array a is:" << endl << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_zero.cpp: -------------------------------------------------------------------------------- 1 | cout << Matrix2d::Zero() << endl; 2 | cout << RowVector4i::Zero() << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_zero_int.cpp: -------------------------------------------------------------------------------- 1 | cout << RowVectorXi::Zero(4) << endl; 2 | cout << VectorXf::Zero(2) << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/MatrixBase_zero_int_int.cpp: -------------------------------------------------------------------------------- 1 | cout << MatrixXi::Zero(2,3) << endl; 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_Map_stride.cpp: -------------------------------------------------------------------------------- 1 | Matrix4i A; 2 | A << 1, 2, 3, 4, 3 | 5, 6, 7, 8, 4 | 9, 10, 11, 12, 5 | 13, 14, 15, 16; 6 | 7 | std::cout << Matrix2i::Map(&A(1,1),Stride<8,2>()) << std::endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_initializer_list_23_cxx11.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m { 2 | {1, 2, 3}, 3 | {4, 5, 6} 4 | }; 5 | cout << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_initializer_list_vector_cxx11.cpp: -------------------------------------------------------------------------------- 1 | VectorXi v {{1, 2}}; 2 | cout << v << endl; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_resize_NoChange_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(3,4); 2 | m.resize(NoChange, 5); 3 | cout << "m: " << m.rows() << " rows, " << m.cols() << " cols" << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_resize_int.cpp: -------------------------------------------------------------------------------- 1 | VectorXd v(10); 2 | v.resize(3); 3 | RowVector3d w; 4 | w.resize(3); // this is legal, but has no effect 5 | cout << "v: " << v.rows() << " rows, " << v.cols() << " cols" << endl; 6 | cout << "w: " << w.rows() << " rows, " << w.cols() << " cols" << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_resize_int_NoChange.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd m(3,4); 2 | m.resize(5, NoChange); 3 | cout << "m: " << m.rows() << " rows, " << m.cols() << " cols" << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setConstant_int.cpp: -------------------------------------------------------------------------------- 1 | VectorXf v; 2 | v.setConstant(3, 5); 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setConstant_int_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m; 2 | m.setConstant(3, 3, 5); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setIdentity_int_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m; 2 | m.setIdentity(3, 3); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setOnes_int.cpp: -------------------------------------------------------------------------------- 1 | VectorXf v; 2 | v.setOnes(3); 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setOnes_int_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m; 2 | m.setOnes(3, 3); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setRandom_int.cpp: -------------------------------------------------------------------------------- 1 | VectorXf v; 2 | v.setRandom(3); 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setRandom_int_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m; 2 | m.setRandom(3, 3); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setZero_int.cpp: -------------------------------------------------------------------------------- 1 | VectorXf v; 2 | v.setZero(3); 3 | cout << v << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_setZero_int_int.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf m; 2 | m.setZero(3, 3); 3 | cout << m << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Matrix_variadic_ctor_cxx11.cpp: -------------------------------------------------------------------------------- 1 | Matrix<int, 1, 6> a(1, 2, 3, 4, 5, 6); 2 | Matrix<int, 3, 1> b {1, 2, 3}; 3 | cout << a << "\n\n" << b << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_count.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | Matrix<ptrdiff_t, 3, 1> res = (m.array() >= 0.5).rowwise().count(); 4 | cout << "Here is the count of elements larger or equal than 0.5 of each row:" << endl; 5 | cout << res << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_maxCoeff.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the maximum of each column:" << endl << m.colwise().maxCoeff() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_minCoeff.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the minimum of each column:" << endl << m.colwise().minCoeff() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_norm.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the norm of each column:" << endl << m.colwise().norm() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_prod.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the product of each row:" << endl << m.rowwise().prod() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_squaredNorm.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the square norm of each row:" << endl << m.rowwise().squaredNorm() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/PartialRedux_sum.cpp: -------------------------------------------------------------------------------- 1 | Matrix3d m = Matrix3d::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is the sum of each row:" << endl << m.rowwise().sum() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | SelfAdjointEigenSolver<MatrixXd> es(ones); 3 | cout << "The eigenvalues of the 3x3 matrix of ones are:" 4 | << endl << es.eigenvalues() << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | SelfAdjointEigenSolver<MatrixXd> es(ones); 3 | cout << "The first eigenvector of the 3x3 matrix of ones is:" 4 | << endl << es.eigenvectors().col(0) << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/SelfAdjointView_eigenvalues.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | VectorXd eivals = ones.selfadjointView<Lower>().eigenvalues(); 3 | cout << "The eigenvalues of the 3x3 matrix of ones are:" << endl << eivals << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/SelfAdjointView_operatorNorm.cpp: -------------------------------------------------------------------------------- 1 | MatrixXd ones = MatrixXd::Ones(3,3); 2 | cout << "The operator norm of the 3x3 matrix of ones is " 3 | << ones.selfadjointView<Lower>().operatorNorm() << endl; 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Slicing_arrayexpr.cpp: -------------------------------------------------------------------------------- 1 | ArrayXi ind(5); ind<<4,2,5,5,3; 2 | MatrixXi A = MatrixXi::Random(4,6); 3 | cout << "Initial matrix A:\n" << A << "\n\n"; 4 | cout << "A(all,ind-1):\n" << A(all,ind-1) << "\n\n"; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Slicing_rawarray_cxx11.cpp: -------------------------------------------------------------------------------- 1 | #if EIGEN_HAS_STATIC_ARRAY_TEMPLATE 2 | MatrixXi A = MatrixXi::Random(4,6); 3 | cout << "Initial matrix A:\n" << A << "\n\n"; 4 | cout << "A(all,{4,2,5,5,3}):\n" << A(all,{4,2,5,5,3}) << "\n\n"; 5 | #endif 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Slicing_stdvector_cxx11.cpp: -------------------------------------------------------------------------------- 1 | std::vector<int> ind{4,2,5,5,3}; 2 | MatrixXi A = MatrixXi::Random(4,6); 3 | cout << "Initial matrix A:\n" << A << "\n\n"; 4 | cout << "A(all,ind):\n" << A(all,ind) << "\n\n"; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_block.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi mat(3,3); 2 | mat << 1, 2, 3, 4, 5, 6, 7, 8, 9; 3 | cout << "Here is the matrix mat:\n" << mat << endl; 4 | 5 | // This assignment shows the aliasing problem 6 | mat.bottomRightCorner(2,2) = mat.topLeftCorner(2,2); 7 | cout << "After the assignment, mat = \n" << mat << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_block_correct.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi mat(3,3); 2 | mat << 1, 2, 3, 4, 5, 6, 7, 8, 9; 3 | cout << "Here is the matrix mat:\n" << mat << endl; 4 | 5 | // The eval() solves the aliasing problem 6 | mat.bottomRightCorner(2,2) = mat.topLeftCorner(2,2).eval(); 7 | cout << "After the assignment, mat = \n" << mat << endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_mult1.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf matA(2,2); 2 | matA << 2, 0, 0, 2; 3 | matA = matA * matA; 4 | cout << matA; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_mult2.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf matA(2,2), matB(2,2); 2 | matA << 2, 0, 0, 2; 3 | 4 | // Simple but not quite as efficient 5 | matB = matA * matA; 6 | cout << matB << endl << endl; 7 | 8 | // More complicated but also more efficient 9 | matB.noalias() = matA * matA; 10 | cout << matB; 11 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_mult3.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf matA(2,2); 2 | matA << 2, 0, 0, 2; 3 | matA.noalias() = matA * matA; 4 | cout << matA; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_mult4.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf A(2,2), B(3,2); 2 | B << 2, 0, 0, 3, 1, 1; 3 | A << 2, 0, 0, -2; 4 | A = (B * A).cwiseAbs(); 5 | cout << A; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/TopicAliasing_mult5.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf A(2,2), B(3,2); 2 | B << 2, 0, 0, 3, 1, 1; 3 | A << 2, 0, 0, -2; 4 | A = (B * A).eval().cwiseAbs(); 5 | cout << A; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tridiagonalization_householderCoefficients.cpp: -------------------------------------------------------------------------------- 1 | Matrix4d X = Matrix4d::Random(4,4); 2 | Matrix4d A = X + X.transpose(); 3 | cout << "Here is a random symmetric 4x4 matrix:" << endl << A << endl; 4 | Tridiagonalization<Matrix4d> triOfA(A); 5 | Vector3d hc = triOfA.householderCoefficients(); 6 | cout << "The vector of Householder coefficients is:" << endl << hc << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf matA(2, 2); 2 | matA << 1, 2, 3, 4; 3 | MatrixXf matB(4, 4); 4 | matB << matA, matA/10, matA/10, matA; 5 | std::cout << matB << std::endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf mat = MatrixXf::Random(2, 3); 2 | std::cout << mat << std::endl << std::endl; 3 | mat = (MatrixXf(2,2) << 0, 1, 1, 0).finished() * mat; 4 | std::cout << mat << std::endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp: -------------------------------------------------------------------------------- 1 | RowVectorXd vec1(3); 2 | vec1 << 1, 2, 3; 3 | std::cout << "vec1 = " << vec1 << std::endl; 4 | 5 | RowVectorXd vec2(4); 6 | vec2 << 1, 4, 9, 16; 7 | std::cout << "vec2 = " << vec2 << std::endl; 8 | 9 | RowVectorXd joined(7); 10 | joined << vec1, vec2; 11 | std::cout << "joined = " << joined << std::endl; 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp: -------------------------------------------------------------------------------- 1 | ArrayXXf table(10, 4); 2 | table.col(0) = ArrayXf::LinSpaced(10, 0, 90); 3 | table.col(1) = M_PI / 180 * table.col(0); 4 | table.col(2) = table.col(1).sin(); 5 | table.col(3) = table.col(1).cos(); 6 | std::cout << " Degrees Radians Sine Cosine\n"; 7 | std::cout << table << std::endl; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_Map_rowmajor.cpp: -------------------------------------------------------------------------------- 1 | int array[8]; 2 | for(int i = 0; i < 8; ++i) array[i] = i; 3 | cout << "Column-major:\n" << Map<Matrix<int,2,4> >(array) << endl; 4 | cout << "Row-major:\n" << Map<Matrix<int,2,4,RowMajor> >(array) << endl; 5 | cout << "Row-major using stride:\n" << 6 | Map<Matrix<int,2,4>, Unaligned, Stride<1,4> >(array) << endl; 7 | 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_ReshapeMat2Mat.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf M1(2,6); // Column-major storage 2 | M1 << 1, 2, 3, 4, 5, 6, 3 | 7, 8, 9, 10, 11, 12; 4 | 5 | Map<MatrixXf> M2(M1.data(), 6,2); 6 | cout << "M2:" << endl << M2 << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_ReshapeMat2Vec.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf M1(3,3); // Column-major storage 2 | M1 << 1, 2, 3, 3 | 4, 5, 6, 4 | 7, 8, 9; 5 | 6 | Map<RowVectorXf> v1(M1.data(), M1.size()); 7 | cout << "v1:" << endl << v1 << endl; 8 | 9 | Matrix<float,Dynamic,Dynamic,RowMajor> M2(M1); 10 | Map<RowVectorXf> v2(M2.data(), M2.size()); 11 | cout << "v2:" << endl << v2 << endl; 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_SlicingVec.cpp: -------------------------------------------------------------------------------- 1 | RowVectorXf v = RowVectorXf::LinSpaced(20,0,19); 2 | cout << "Input:" << endl << v << endl; 3 | Map<RowVectorXf,0,InnerStride<2> > v2(v.data(), v.size()/2); 4 | cout << "Even:" << v2 << endl; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_commainit_01.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f m; 2 | m << 1, 2, 3, 3 | 4, 5, 6, 4 | 7, 8, 9; 5 | std::cout << m; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_commainit_01b.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f m; 2 | m.row(0) << 1, 2, 3; 3 | m.block(1,0,2,2) << 4, 5, 7, 8; 4 | m.col(2).tail(2) << 6, 9; 5 | std::cout << m; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_commainit_02.cpp: -------------------------------------------------------------------------------- 1 | int rows=5, cols=5; 2 | MatrixXf m(rows,cols); 3 | m << (Matrix3f() << 1, 2, 3, 4, 5, 6, 7, 8, 9).finished(), 4 | MatrixXf::Zero(3,cols-3), 5 | MatrixXf::Zero(rows-3,3), 6 | MatrixXf::Identity(rows-3,cols-3); 7 | cout << m; 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_range_for_loop_1d_cxx11.cpp: -------------------------------------------------------------------------------- 1 | VectorXi v = VectorXi::Random(4); 2 | cout << "Here is the vector v:\n"; 3 | for(auto x : v) cout << x << " "; 4 | cout << "\n"; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_range_for_loop_2d_cxx11.cpp: -------------------------------------------------------------------------------- 1 | Matrix2i A = Matrix2i::Random(); 2 | cout << "Here are the coeffs of the 2x2 matrix A:\n"; 3 | for(auto x : A.reshaped()) 4 | cout << x << " "; 5 | cout << "\n"; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_reshaped_vs_resize_1.cpp: -------------------------------------------------------------------------------- 1 | MatrixXi m = Matrix4i::Random(); 2 | cout << "Here is the matrix m:" << endl << m << endl; 3 | cout << "Here is m.reshaped(2, 8):" << endl << m.reshaped(2, 8) << endl; 4 | m.resize(2,8); 5 | cout << "Here is the matrix m after m.resize(2,8):" << endl << m << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_solve_matrix_inverse.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A; 2 | Vector3f b; 3 | A << 1,2,3, 4,5,6, 7,8,10; 4 | b << 3, 3, 4; 5 | Vector3f x = A.inverse() * b; 6 | cout << "The solution is:" << endl << x << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_solve_singular.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A; 2 | Vector3f b; 3 | A << 1,2,3, 4,5,6, 7,8,9; 4 | b << 3, 3, 4; 5 | cout << "Here is the matrix A:" << endl << A << endl; 6 | cout << "Here is the vector b:" << endl << b << endl; 7 | Vector3f x; 8 | x = A.lu().solve(b); 9 | cout << "The solution is:" << endl << x << endl; 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_solve_triangular.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A; 2 | Vector3f b; 3 | A << 1,2,3, 0,5,6, 0,0,10; 4 | b << 3, 3, 4; 5 | cout << "Here is the matrix A:" << endl << A << endl; 6 | cout << "Here is the vector b:" << endl << b << endl; 7 | Vector3f x = A.triangularView<Upper>().solve(b); 8 | cout << "The solution is:" << endl << x << endl; 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_solve_triangular_inplace.cpp: -------------------------------------------------------------------------------- 1 | Matrix3f A; 2 | Vector3f b; 3 | A << 1,2,3, 0,5,6, 0,0,10; 4 | b << 3, 3, 4; 5 | A.triangularView<Upper>().solveInPlace(b); 6 | cout << "The solution is:" << endl << b << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_std_sort.cpp: -------------------------------------------------------------------------------- 1 | Array4i v = Array4i::Random().abs(); 2 | cout << "Here is the initial vector v:\n" << v.transpose() << "\n"; 3 | std::sort(v.begin(), v.end()); 4 | cout << "Here is the sorted vector v:\n" << v.transpose() << "\n"; 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/Tutorial_std_sort_rows_cxx11.cpp: -------------------------------------------------------------------------------- 1 | ArrayXXi A = ArrayXXi::Random(4,4).abs(); 2 | cout << "Here is the initial matrix A:\n" << A << "\n"; 3 | for(auto row : A.rowwise()) 4 | std::sort(row.begin(), row.end()); 5 | cout << "Here is the sorted matrix A:\n" << A << "\n"; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/tut_arithmetic_transpose_aliasing.cpp: -------------------------------------------------------------------------------- 1 | Matrix2i a; a << 1, 2, 3, 4; 2 | cout << "Here is the matrix a:\n" << a << endl; 3 | 4 | a = a.transpose(); // !!! do NOT do this !!! 5 | cout << "and the result of the aliasing effect:\n" << a << endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/tut_arithmetic_transpose_conjugate.cpp: -------------------------------------------------------------------------------- 1 | MatrixXcf a = MatrixXcf::Random(2,2); 2 | cout << "Here is the matrix a\n" << a << endl; 3 | 4 | cout << "Here is the matrix a^T\n" << a.transpose() << endl; 5 | 6 | 7 | cout << "Here is the conjugate of a\n" << a.conjugate() << endl; 8 | 9 | 10 | cout << "Here is the matrix a^*\n" << a.adjoint() << endl; 11 | 12 | 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/tut_arithmetic_transpose_inplace.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf a(2,3); a << 1, 2, 3, 4, 5, 6; 2 | cout << "Here is the initial matrix a:\n" << a << endl; 3 | 4 | 5 | a.transposeInPlace(); 6 | cout << "and after being transposed:\n" << a << endl; 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/doc/snippets/tut_matrix_assignment_resizing.cpp: -------------------------------------------------------------------------------- 1 | MatrixXf a(2,2); 2 | std::cout << "a is of size " << a.rows() << "x" << a.cols() << std::endl; 3 | MatrixXf b(3,3); 4 | a = b; 5 | std::cout << "a is now of size " << a.rows() << "x" << a.cols() << std::endl; 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/eigen3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | 4 | Name: Eigen3 5 | Description: A C++ template library for linear algebra: vectors, matrices, and related algorithms 6 | Requires: 7 | Version: @EIGEN_VERSION_NUMBER@ 8 | Libs: 9 | Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@ 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/bdcsvd_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/SVD" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | BDCSVD<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Block<Matrix3d,3,3> b(m,0,0); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Block<Matrix3d> b(m,0,0,3,3); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | // row/column constructor 13 | Block<Matrix3d,3,1> b(m,0); 14 | } 15 | 16 | int main() {} 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/block_on_const_type_actually_const_0.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(){ 12 | Matrix3f m; 13 | Block<CV_QUALIFIER Matrix3f>(m, 0, 0, 3, 3).coeffRef(0, 0) = 1.0f; 14 | } 15 | 16 | int main() {} 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/block_on_const_type_actually_const_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(){ 12 | MatrixXf m; 13 | Block<CV_QUALIFIER MatrixXf, 3, 3>(m, 0, 0).coeffRef(0, 0) = 1.0f; 14 | } 15 | 16 | int main() {} 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/colpivqr_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/QR" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | ColPivHouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/const_qualified_block_method_retval_0.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Block<Matrix3d,3,3> b(m.block<3,3>(0,0)); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/const_qualified_block_method_retval_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Block<Matrix3d> b(m.block(0,0,3,3)); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/const_qualified_diagonal_method_retval.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Diagonal<Matrix3d> b(m.diagonal()); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/const_qualified_transpose_method_retval.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Transpose<Matrix3d> b(m.transpose()); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Diagonal<Matrix3d> d(m); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/diagonal_on_const_type_actually_const.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(){ 12 | MatrixXf m; 13 | Diagonal<CV_QUALIFIER MatrixXf>(m).coeffRef(0) = 1.0f; 14 | } 15 | 16 | int main() {} 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/eigensolver_cplx.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Eigenvalues" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR std::complex<double> 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | EigenSolver<Matrix<SCALAR,Dynamic,Dynamic> > eig(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/eigensolver_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Eigenvalues" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | EigenSolver<Matrix<SCALAR,Dynamic,Dynamic> > eig(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/failtest_sanity_check.cpp: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 2 | This is just some text that won't compile as a C++ file, as a basic sanity check for failtest. 3 | #else 4 | int main() {} 5 | #endif 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/fullpivlu_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/LU" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | FullPivLU<Matrix<SCALAR,Dynamic,Dynamic> > lu(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/fullpivqr_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/QR" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | FullPivHouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/initializer_list_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define ROWS Dynamic 5 | #else 6 | #define ROWS 3 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | Matrix<int, ROWS, 1> {1, 2, 3}; 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/initializer_list_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define ROWS Dynamic 5 | #define COLS Dynamic 6 | #else 7 | #define ROWS 3 8 | #define COLS 1 9 | #endif 10 | 11 | using namespace Eigen; 12 | 13 | int main() 14 | { 15 | Matrix<int, ROWS, COLS> {1, 2, 3}; 16 | } 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/jacobisvd_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/SVD" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | JacobiSVD<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ldlt_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Cholesky" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | LDLT<Matrix<SCALAR,Dynamic,Dynamic> > ldlt(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/llt_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Cholesky" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | LLT<Matrix<SCALAR,Dynamic,Dynamic> > llt(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER float *ptr){ 12 | Map<Matrix3f> m(ptr); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER float *ptr, DenseIndex size){ 12 | Map<ArrayXf> m(ptr, size); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER float *ptr, DenseIndex rows, DenseIndex cols){ 12 | Map<MatrixXf> m(ptr, rows, cols); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/map_on_const_type_actually_const_0.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(float *ptr){ 12 | Map<CV_QUALIFIER MatrixXf>(ptr, 1, 1).coeffRef(0,0) = 1.0f; 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/map_on_const_type_actually_const_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(float *ptr){ 12 | Map<CV_QUALIFIER Vector3f>(ptr).coeffRef(0) = 1.0f; 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/partialpivlu_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/LU" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | PartialPivLU<Matrix<SCALAR,Dynamic,Dynamic> > lu(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/qr_int.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/QR" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define SCALAR int 5 | #else 6 | #define SCALAR float 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | int main() 12 | { 13 | HouseholderQR<Matrix<SCALAR,Dynamic,Dynamic> > qr(Matrix<SCALAR,Dynamic,Dynamic>::Random(10,10)); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ref_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void call_ref(Ref<VectorXf> a) { } 12 | 13 | int main() 14 | { 15 | VectorXf a(10); 16 | CV_QUALIFIER VectorXf& ac(a); 17 | call_ref(ac); 18 | } 19 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ref_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<VectorXf> a) { } 6 | 7 | int main() 8 | { 9 | MatrixXf A(10,10); 10 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 11 | call_ref(A.row(3)); 12 | #else 13 | call_ref(A.col(3)); 14 | #endif 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ref_3.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 6 | void call_ref(Ref<VectorXf> a) { } 7 | #else 8 | void call_ref(const Ref<const VectorXf> &a) { } 9 | #endif 10 | 11 | int main() 12 | { 13 | VectorXf a(10); 14 | call_ref(a+a); 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ref_4.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<MatrixXf,0,OuterStride<> > a) {} 6 | 7 | int main() 8 | { 9 | MatrixXf A(10,10); 10 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 11 | call_ref(A.transpose()); 12 | #else 13 | call_ref(A); 14 | #endif 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ref_5.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<VectorXf> a) { } 6 | 7 | int main() 8 | { 9 | VectorXf a(10); 10 | DenseBase<VectorXf> &ac(a); 11 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 12 | call_ref(ac); 13 | #else 14 | call_ref(ac.derived()); 15 | #endif 16 | } 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/selfadjointview_nonconst_ctor_on_const_xpr.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | SelfAdjointView<Matrix3d,Upper> t(m); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/sparse_ref_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Sparse" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<SparseMatrix<float> > a) { } 6 | 7 | int main() 8 | { 9 | SparseMatrix<float> A(10,10); 10 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 11 | call_ref(A.row(3)); 12 | #else 13 | call_ref(A.col(3)); 14 | #endif 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/sparse_ref_3.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Sparse" 2 | 3 | using namespace Eigen; 4 | 5 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 6 | void call_ref(Ref<SparseMatrix<float> > a) { } 7 | #else 8 | void call_ref(const Ref<const SparseMatrix<float> > &a) { } 9 | #endif 10 | 11 | int main() 12 | { 13 | SparseMatrix<float> a(10,10); 14 | call_ref(a+a); 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/sparse_ref_4.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Sparse" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<SparseMatrix<float> > a) {} 6 | 7 | int main() 8 | { 9 | SparseMatrix<float> A(10,10); 10 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 11 | call_ref(A.transpose()); 12 | #else 13 | call_ref(A); 14 | #endif 15 | } 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/sparse_ref_5.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Sparse" 2 | 3 | using namespace Eigen; 4 | 5 | void call_ref(Ref<SparseMatrix<float> > a) { } 6 | 7 | int main() 8 | { 9 | SparseMatrix<float> a(10,10); 10 | SparseMatrixBase<SparseMatrix<float> > &ac(a); 11 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 12 | call_ref(ac); 13 | #else 14 | call_ref(ac.derived()); 15 | #endif 16 | } 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/swap_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | int main() 6 | { 7 | VectorXf a(10), b(10); 8 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 9 | const DenseBase<VectorXf> &ac(a); 10 | #else 11 | DenseBase<VectorXf> &ac(a); 12 | #endif 13 | b.swap(ac); 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/swap_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | int main() 6 | { 7 | VectorXf a(10), b(10); 8 | VectorXf const &ac(a); 9 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 10 | b.swap(ac); 11 | #else 12 | b.swap(ac.const_cast_derived()); 13 | #endif 14 | } 15 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ternary_1.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | int main(int argc,char **) 6 | { 7 | VectorXf a(10), b(10); 8 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 9 | b = argc>1 ? 2*a : -a; 10 | #else 11 | b = argc>1 ? 2*a : VectorXf(-a); 12 | #endif 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/ternary_2.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | using namespace Eigen; 4 | 5 | int main(int argc,char **) 6 | { 7 | VectorXf a(10), b(10); 8 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 9 | b = argc>1 ? 2*a : a+a; 10 | #else 11 | b = argc>1 ? VectorXf(2*a) : VectorXf(a+a); 12 | #endif 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | Transpose<Matrix3d> t(m); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/transpose_on_const_type_actually_const.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(){ 12 | MatrixXf m; 13 | Transpose<CV_QUALIFIER MatrixXf>(m).coeffRef(0, 0) = 1.0f; 14 | } 15 | 16 | int main() {} 17 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/failtest/triangularview_nonconst_ctor_on_const_xpr.cpp: -------------------------------------------------------------------------------- 1 | #include "../Eigen/Core" 2 | 3 | #ifdef EIGEN_SHOULD_FAIL_TO_BUILD 4 | #define CV_QUALIFIER const 5 | #else 6 | #define CV_QUALIFIER 7 | #endif 8 | 9 | using namespace Eigen; 10 | 11 | void foo(CV_QUALIFIER Matrix3d &m){ 12 | TriangularView<Matrix3d,Upper> t(m); 13 | } 14 | 15 | int main() {} 16 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/scripts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | get_property(EIGEN_TESTS_LIST GLOBAL PROPERTY EIGEN_TESTS_LIST) 2 | configure_file(buildtests.in ${CMAKE_BINARY_DIR}/buildtests.sh @ONLY) 3 | 4 | configure_file(check.in ${CMAKE_BINARY_DIR}/check.sh COPYONLY) 5 | configure_file(debug.in ${CMAKE_BINARY_DIR}/debug.sh COPYONLY) 6 | configure_file(release.in ${CMAKE_BINARY_DIR}/release.sh COPYONLY) 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/scripts/debug.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cmake -DCMAKE_BUILD_TYPE=Debug . 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/scripts/release.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cmake -DCMAKE_BUILD_TYPE=Release . 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/signature_of_eigen3_matrix_library: -------------------------------------------------------------------------------- 1 | This file is just there as a signature to help identify directories containing Eigen3. When writing a script looking for Eigen3, just look for this file. This is especially useful to help disambiguate with Eigen2... 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/test/bug1213.cpp: -------------------------------------------------------------------------------- 1 | 2 | // This anonymous enum is essential to trigger the linking issue 3 | enum { 4 | Foo 5 | }; 6 | 7 | #include "bug1213.h" 8 | 9 | bool bug1213_1(const Eigen::Vector3f& x) 10 | { 11 | return bug1213_2(x); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/test/bug1213.h: -------------------------------------------------------------------------------- 1 | 2 | #include <Eigen/Core> 3 | 4 | template<typename T, int dim> 5 | bool bug1213_2(const Eigen::Matrix<T,dim,1>& x); 6 | 7 | bool bug1213_1(const Eigen::Vector3f& x); 8 | 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/test/bug1213_main.cpp: -------------------------------------------------------------------------------- 1 | 2 | // This is a regression unit regarding a weird linking issue with gcc. 3 | 4 | #include "bug1213.h" 5 | 6 | int main() 7 | { 8 | return 0; 9 | } 10 | 11 | 12 | template<typename T, int dim> 13 | bool bug1213_2(const Eigen::Matrix<T,dim,1>& ) 14 | { 15 | return true; 16 | } 17 | 18 | template bool bug1213_2<float,3>(const Eigen::Vector3f&); 19 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/test/evaluator_common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/Eigen/test/evaluator_common.h -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(Eigen) 2 | if(EIGEN_BUILD_DOC) 3 | add_subdirectory(doc EXCLUDE_FROM_ALL) 4 | endif() 5 | if(BUILD_TESTING) 6 | if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) 7 | add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest 8 | else() 9 | add_subdirectory(test EXCLUDE_FROM_ALL) 10 | endif() 11 | endif() 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/Eigen/CXX11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(Eigen_CXX11_HEADERS Tensor TensorSymmetry ThreadPool) 2 | 3 | install(FILES 4 | ${Eigen_CXX11_HEADERS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/CXX11 COMPONENT Devel 6 | ) 7 | 8 | install(DIRECTORY src DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/CXX11 COMPONENT Devel FILES_MATCHING PATTERN "*.h") 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h: -------------------------------------------------------------------------------- 1 | 2 | #if defined(__clang__) || defined(__GNUC__) 3 | #warning "Deprecated header file, please either include the main Eigen/CXX11/Tensor header or the respective TensorContractionGpu.h file" 4 | #endif 5 | 6 | #include "TensorContractionGpu.h" 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h: -------------------------------------------------------------------------------- 1 | 2 | #if defined(__clang__) || defined(__GNUC__) 3 | #warning "Deprecated header file, please either include the main Eigen/CXX11/Tensor header or the respective TensorDeviceGpu.h file" 4 | #endif 5 | 6 | #include "TensorDeviceGpu.h" 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h: -------------------------------------------------------------------------------- 1 | 2 | #if defined(__clang__) || defined(__GNUC__) 3 | #warning "Deprecated header file, please either include the main Eigen/CXX11/Tensor header or the respective TensorReductionGpu.h file" 4 | #endif 5 | 6 | #include "TensorReductionGpu.h" 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/Eigen/src/EulerAngles/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB Eigen_EulerAngles_SRCS "*.h") 2 | 3 | install(FILES 4 | ${Eigen_EulerAngles_SRCS} 5 | DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/src/EulerAngles COMPONENT Devel 6 | ) 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/doc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE) 2 | 3 | add_subdirectory(examples) 4 | add_subdirectory(snippets) 5 | -------------------------------------------------------------------------------- /gtsam/3rdparty/Eigen/unsupported/test/FFT.cpp: -------------------------------------------------------------------------------- 1 | #define test_FFTW test_FFT 2 | #include "FFTW.cpp" 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/INSTALL: -------------------------------------------------------------------------------- 1 | For installation instructions, open 2 | 3 | https://geographiclib.sourceforge.io/html/install.html 4 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/Makefile: -------------------------------------------------------------------------------- 1 | include Makefile.mk 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/README.md: -------------------------------------------------------------------------------- 1 | GeographicLib 2 | ============= 3 | 4 | A C++ library for geographic projections. The web site for the package 5 | is 6 | 7 | > https://geographiclib.sourceforge.io 8 | 9 | The API for the library is documented at 10 | 11 | > https://geographiclib.sourceforge.io/html 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/cmake/Makefile.mk: -------------------------------------------------------------------------------- 1 | DEST = $(PREFIX)/share/cmake/GeographicLib 2 | 3 | INSTALL=install -b 4 | 5 | all: 6 | @: 7 | install: 8 | test -d $(DEST) || mkdir -p $(DEST) 9 | $(INSTALL) -m 644 FindGeographicLib.cmake $(DEST) 10 | clean: 11 | @: 12 | 13 | .PHONY: all install clean 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/NETGeographicLib1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/NETGeographicLib1.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/NETGeographicLib2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/NETGeographicLib2.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/NETGeographicLib3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/NETGeographicLib3.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/gauss-krueger-convergence-scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/gauss-krueger-convergence-scale.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/gauss-krueger-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/gauss-krueger-error.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/gauss-krueger-graticule-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/gauss-krueger-graticule-a.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/gauss-krueger-graticule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/gauss-krueger-graticule.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/gauss-schreiber-graticule-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/gauss-schreiber-graticule-a.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/meridian-measures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/meridian-measures.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/thompson-tm-graticule-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/thompson-tm-graticule-a.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/thompson-tm-graticule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/thompson-tm-graticule.png -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/doc/vptree.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/GeographicLib/doc/vptree.gif -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/dotnet/NETGeographicLib/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // NETGeographic.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/dotnet/NETGeographicLib/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, 3 | // but are changed infrequently 4 | 5 | #pragma once 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/dotnet/Projections/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/include/GeographicLib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install the header files including the generated Config.h (which is in 2 | # the build tree). 3 | file (GLOB HEADERS [A-Za-z]*.hpp) 4 | install (FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GeographicLib) 5 | install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Config.h 6 | DESTINATION include/GeographicLib) 7 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/js/doc/tutorials.json: -------------------------------------------------------------------------------- 1 | { 2 | "1-geodesics": { 3 | "title": "General information on geodesics" 4 | }, 5 | "2-interface": { 6 | "title": "The library interface" 7 | }, 8 | "3-examples": { 9 | "title": "Examples of use" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/man/dummy.1.in: -------------------------------------------------------------------------------- 1 | .TH @TOOL@ 1 "" "GeographicLib Utilities" "GeographicLib Utilities" 2 | .SH NAME 3 | @TOOL@ \-\- a GeographicLib utility 4 | .SH DESCRIPTION 5 | .B @TOOL@ 6 | is part of GeographicLib, <https://geographiclib.sourceforge.io>. For 7 | documentation, see 8 | .PP 9 | https://geographiclib.sourceforge.io/@PROJECT_VERSION@/@TOOL@.1.html 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/man/dummy.usage.in: -------------------------------------------------------------------------------- 1 | // Dummy usage file to be used when the man page isn't available 2 | 3 | int usage(int retval, bool /* brief */) { 4 | ( retval ? std::cerr : std::cout ) 5 | << "For full documentation on @TOOL@, see\n" 6 | << " https://geographiclib.sourceforge.io/@PROJECT_VERSION@/@TOOL@.1.html\n"; 7 | return retval; 8 | } 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/ecc2flat.m: -------------------------------------------------------------------------------- 1 | function f = ecc2flat(e) 2 | %ECC2FLAT Convert eccentricity to flattening 3 | % 4 | % f = ECC2FLAT(e) 5 | % 6 | % returns the flattening of an ellipsoid given the eccentricity. 7 | % 8 | % See also FLAT2ECC. 9 | 10 | e2 = real(e.^2); 11 | f = e2 ./ (1 + sqrt(1 - e2)); 12 | end 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/flat2ecc.m: -------------------------------------------------------------------------------- 1 | function e = flat2ecc(f) 2 | %FLAT2ECC Convert flattening to eccentricity 3 | % 4 | % e = FLAT2ECC(f) 5 | % 6 | % returns the eccentricity of an ellipsoid given the flattening. 7 | % 8 | % See also ECC2FLAT. 9 | 10 | e = sqrt(f .* (2 - f)); 11 | end 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/A3f.m: -------------------------------------------------------------------------------- 1 | function A3 = A3f(epsi, A3x) 2 | %A3F Evaluate A_3 3 | % 4 | % A3 = A3F(epsi, A3x) evaluates A_3 using Eq. (24) and the coefficient 5 | % vector A3x. epsi and A3 are K x 1 arrays. A3x is a 1 x 6 array. 6 | 7 | A3 = polyval(A3x, epsi); 8 | end 9 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/AngNormalize.m: -------------------------------------------------------------------------------- 1 | function x = AngNormalize(x) 2 | %ANGNORMALIZE Reduce angle to range (-180, 180] 3 | % 4 | % x = ANGNORMALIZE(x) reduces angles to the range (-180, 180]. x can be 5 | % any shape. 6 | 7 | x = rem(x, 360); 8 | x(x > 180) = x(x > 180) - 360; 9 | x(x <= -180) = x(x <= -180) + 360; 10 | end 11 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/LatFix.m: -------------------------------------------------------------------------------- 1 | function y = LatFix(x) 2 | %LATFIX Check that latitiude is in [-90, 90] 3 | % 4 | % y = LATFIX(x) returns x is it is in the range [-90, 90]; otherwise it 5 | % returns NaN. x can be any shape. 6 | 7 | y = x; 8 | y(abs(x) > 90) = nan; 9 | end 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/eatanhe.m: -------------------------------------------------------------------------------- 1 | function y = eatanhe(x, e2) 2 | %EATANHE e*atanh(e*x) 3 | % 4 | % EATANHE(x, e2) returns e*atanh(e*x) where e = sqrt(e2) 5 | % e2 is a scalar; x can be any shape. 6 | 7 | e = sqrt(abs(e2)); 8 | if (e2 >= 0) 9 | y = e * atanh(e * x); 10 | else 11 | y = -e * atan(e * x); 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/norm2.m: -------------------------------------------------------------------------------- 1 | function [x, y] = norm2(x, y) 2 | %NORM2 Normalize x and y 3 | % 4 | % [x, y] = NORM2(x, y) normalize x and y so that x^2 + y^2 = 1. x and y 5 | % can be any shape. 6 | 7 | r = hypot(x, y); 8 | x = x ./ r; 9 | y = y ./ r; 10 | end 11 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/matlab/geographiclib/private/swap.m: -------------------------------------------------------------------------------- 1 | function [y, x] = swap(x, y) 2 | %SWAP Swap two variables. 3 | % 4 | % [a, b] = SWAP(x, y) sets A to Y and B to X. 5 | end 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/maxima/Makefile.mk: -------------------------------------------------------------------------------- 1 | MAXIMA = tm ellint tmseries geod geodesic auxlat 2 | MAXIMASOURCES = $(addsuffix .mac,$(MAXIMA)) 3 | 4 | all: 5 | @: 6 | install: 7 | @: 8 | clean: 9 | @: 10 | 11 | .PHONY: all install clean 12 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/python/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/python/README.rst: -------------------------------------------------------------------------------- 1 | This implements 2 | `algorithms for geodesics <https://doi.org/10.1007/s00190-012-0578-z>`_ 3 | (Karney, 2013) for solving the direct and inverse problems for an 4 | ellipsoid of revolution. 5 | 6 | Documentation is available at 7 | `<https://geographiclib.sourceforge.io/1.49/python/>`_. 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/python/geographiclib/__init__.py: -------------------------------------------------------------------------------- 1 | """geographiclib: geodesic routines from GeographicLib""" 2 | 3 | __version_info__ = (1, 49, 0) 4 | """GeographicLib version as a tuple""" 5 | 6 | __version__ = "1.49" 7 | """GeographicLib version as a string""" 8 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/python/geographiclib/test/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | test_geodesic: test the geodesic routines from GeographicLib 4 | 5 | Run these tests with one of 6 | 7 | python2 -m unittest -v geographiclib.test.test_geodesic 8 | python3 -m unittest -v geographiclib.test.test_geodesic 9 | 10 | executed in this directory's parent directory. 11 | 12 | """ 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/wrapper/C/cgeoid.h: -------------------------------------------------------------------------------- 1 | #if !defined(CGEOID_H) 2 | #define CGEOID_H 1 3 | 4 | #if defined(__cplusplus) 5 | extern "C" 6 | #endif 7 | double HeightAboveEllipsoid(double lat, double lon, double h); 8 | 9 | #endif /* CGEOID_H */ 10 | -------------------------------------------------------------------------------- /gtsam/3rdparty/GeographicLib/wrapper/C/geoidtest.c: -------------------------------------------------------------------------------- 1 | #include <stdio.h> 2 | #include "cgeoid.h" 3 | 4 | #if defined(_MSC_VER) 5 | /* Squelch warnings about scanf */ 6 | # pragma warning (disable: 4996) 7 | #endif 8 | 9 | int main() { 10 | double lat, lon, h; 11 | while(scanf("%lf %lf %lf", &lat, &lon, &h) == 3) 12 | printf("%.3f\n", HeightAboveEllipsoid(lat, lon, h)); 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/SuiteSparse_config/xerbla/xerbla.c: -------------------------------------------------------------------------------- 1 | 2 | void xerbla_ (char *srname, int *info) 3 | { 4 | /* do nothing */ ; 5 | } 6 | 7 | 8 | void xerbla (char *srname, int *info) 9 | { 10 | /* do nothing */ ; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /gtsam/3rdparty/SuiteSparse_config/xerbla/xerbla.h: -------------------------------------------------------------------------------- 1 | void xerbla_ (char *srname, int *info) ; 2 | void xerbla (char *srname, int *info) ; 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/ceres/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB ceres_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") 2 | install(FILES ${ceres_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/ceres) 3 | -------------------------------------------------------------------------------- /gtsam/3rdparty/metis/GKlib/conf/check_thread_storage.c: -------------------------------------------------------------------------------- 1 | extern __thread int x; 2 | 3 | int main(int argc, char **argv) { 4 | return 0; 5 | } 6 | -------------------------------------------------------------------------------- /gtsam/3rdparty/metis/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(FILES metis.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/metis) 2 | -------------------------------------------------------------------------------- /gtsam/3rdparty/metis/manual/manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/3rdparty/metis/manual/manual.pdf -------------------------------------------------------------------------------- /gtsam/3rdparty/metis/metis.h: -------------------------------------------------------------------------------- 1 | /* 2 | * metis.h 3 | * Dummy header, not installed! 4 | * Created on: Nov 24, 2014 5 | * Author: cbeall3 6 | */ 7 | 8 | #ifndef GTSAM_3RDPARTY_METIS_METIS_H_ 9 | #define GTSAM_3RDPARTY_METIS_METIS_H_ 10 | 11 | #include <gtsam/3rdparty/metis/include/metis.h> 12 | 13 | #endif /* GTSAM_3RDPARTY_METIS_METIS_H_ */ 14 | -------------------------------------------------------------------------------- /gtsam/3rdparty/metis/vsgen.bat: -------------------------------------------------------------------------------- 1 | MKDIR build\windows 2 | CD build\windows 3 | cmake -DCMAKE_CONFIGURATION_TYPES="Release" ..\.. %* 4 | ECHO VS files have been generated in build\windows 5 | CD ..\..\ 6 | -------------------------------------------------------------------------------- /gtsam/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB base_headers "*.h") 3 | install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base) 4 | 5 | file(GLOB base_headers_tree "treeTraversal/*.h") 6 | install(FILES ${base_headers_tree} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base/treeTraversal) 7 | 8 | # Build tests 9 | add_subdirectory(tests) 10 | -------------------------------------------------------------------------------- /gtsam/base/utilities.cpp: -------------------------------------------------------------------------------- 1 | #include <gtsam/base/utilities.h> 2 | 3 | namespace gtsam { 4 | 5 | std::string RedirectCout::str() const { 6 | return ssBuffer_.str(); 7 | } 8 | 9 | RedirectCout::~RedirectCout() { 10 | std::cout.rdbuf(coutBuffer_); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /gtsam/basis/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB basis_headers "*.h") 3 | install(FILES ${basis_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/basis) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/basis/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(basis "test*.cpp" "" "gtsam") 2 | -------------------------------------------------------------------------------- /gtsam/constrained/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB constraint_headers "*.h") 3 | install(FILES ${constraint_headers} DESTINATION include/gtsam/constrained) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/constrained/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationConstraint.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(constraint "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam/discrete/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | set(subdir discrete) 3 | file(GLOB discrete_headers "*.h") 4 | # FIXME: exclude headers 5 | install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/discrete) 6 | 7 | # Add all tests 8 | add_subdirectory(tests) 9 | -------------------------------------------------------------------------------- /gtsam/discrete/tests/data/UAI/sampleMARKOV.uai: -------------------------------------------------------------------------------- 1 | MARKOV 2 | 3 3 | 2 2 3 4 | 3 5 | 1 0 6 | 2 0 1 7 | 2 1 2 8 | 9 | 2 10 | 0.436 0.564 11 | 12 | 4 13 | 0.128 0.872 14 | 0.920 0.080 15 | 16 | 6 17 | 0.210 0.333 0.457 18 | 0.811 0.000 0.189 -------------------------------------------------------------------------------- /gtsam/discrete/tests/data/UAI/sampleMARKOV.uai.evid: -------------------------------------------------------------------------------- 1 | 2 2 | 1 0 3 | 2 1 -------------------------------------------------------------------------------- /gtsam/discrete/tests/data/UAI/uai08_test1.uai.evid: -------------------------------------------------------------------------------- 1 | 10 2 | 0 1 3 | 2 0 4 | 9 0 5 | 16 1 6 | 20 1 7 | 21 1 8 | 22 0 9 | 26 1 10 | 39 0 11 | 41 1 12 | -------------------------------------------------------------------------------- /gtsam/discrete/tests/data/UAI/uai08_test2.uai.evid: -------------------------------------------------------------------------------- 1 | 12 2 | 17 0 3 | 10 0 4 | 19 0 5 | 18 0 6 | 11 0 7 | 13 0 8 | 15 0 9 | 20 0 10 | 9 0 11 | 12 0 12 | 16 0 13 | 14 0 14 | -------------------------------------------------------------------------------- /gtsam/discrete/tests/data/UAI/uai08_test3.uai.evid: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /gtsam/discrete/tests/testDiscreteBayesTree.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam/discrete/tests/testDiscreteBayesTree.pdf -------------------------------------------------------------------------------- /gtsam/geometry/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB geometry_headers "*.h") 3 | install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/geometry) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/geometry/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationGeometry.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(geometry "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam/hybrid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | set(subdir hybrid) 3 | file(GLOB hybrid_headers "*.h") 4 | install(FILES ${hybrid_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/hybrid) 5 | 6 | # Add all tests 7 | add_subdirectory(tests) 8 | -------------------------------------------------------------------------------- /gtsam/hybrid/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationHybrid.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(hybrid "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam/inference/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB inference_headers "*.h") 3 | install(FILES ${inference_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/inference) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/inference/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(inference "test*.cpp" "" "gtsam") 2 | -------------------------------------------------------------------------------- /gtsam/linear/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB linear_headers "*.h") 3 | install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/linear) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/navigation/.gitignore: -------------------------------------------------------------------------------- 1 | /*.*~ 2 | -------------------------------------------------------------------------------- /gtsam/navigation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB navigation_headers "*.h") 3 | install(FILES ${navigation_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/navigation) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/nonlinear/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationNonlinear.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(nonlinear "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam/sam/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB sam_headers "*.h") 3 | install(FILES ${sam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sam) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/sam/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationSam.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(sam "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam/sfm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB sfm_headers "*.h") 3 | install(FILES ${sfm_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sfm) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/sfm/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(sfm "test*.cpp" "" "gtsam") 2 | -------------------------------------------------------------------------------- /gtsam/slam/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | set (slam_excluded_headers #"") 3 | "${CMAKE_CURRENT_SOURCE_DIR}/serialization.h" 4 | ) 5 | 6 | file(GLOB slam_headers "*.h") 7 | install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/slam) 8 | 9 | # Build tests 10 | add_subdirectory(tests) 11 | -------------------------------------------------------------------------------- /gtsam/symbolic/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB symbolic_headers "*.h") 3 | install(FILES ${symbolic_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/symbolic) 4 | 5 | # Build tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam/symbolic/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # if GTSAM_ENABLE_BOOST_SERIALIZATION is OFF then exclude some tests 2 | if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) 3 | # create a semicolon seperated list of files to exclude 4 | set(EXCLUDE_TESTS "testSerializationSymbolic.cpp") 5 | else() 6 | set(EXCLUDE_TESTS "") 7 | endif() 8 | 9 | gtsamAddTestsGlob(symbolic "test*.cpp" "${EXCLUDE_TESTS}" "gtsam") 10 | -------------------------------------------------------------------------------- /gtsam_unstable/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB base_headers "*.h") 3 | install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/base) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam_unstable/base/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(base_unstable "test*.cpp" "" "gtsam_unstable") 2 | -------------------------------------------------------------------------------- /gtsam_unstable/discrete/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB discrete_headers "*.h") 3 | install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/discrete) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | 8 | # Add examples 9 | add_subdirectory(examples) 10 | -------------------------------------------------------------------------------- /gtsam_unstable/discrete/examples/Doodle.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/discrete/examples/Doodle.xls -------------------------------------------------------------------------------- /gtsam_unstable/discrete/examples/Doodle2012.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/discrete/examples/Doodle2012.xls -------------------------------------------------------------------------------- /gtsam_unstable/discrete/examples/Doodle2013.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/discrete/examples/Doodle2013.xls -------------------------------------------------------------------------------- /gtsam_unstable/discrete/examples/intrusive.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/discrete/examples/intrusive.xlsx -------------------------------------------------------------------------------- /gtsam_unstable/discrete/examples/small.csv: -------------------------------------------------------------------------------- 1 | ,Frank,Harvey,Magnus,Andrea Mon,1,1,1, Wed,1,1,1,1 Fri,,1,1,1 -------------------------------------------------------------------------------- /gtsam_unstable/discrete/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(excluded_sources "") 2 | if (NOT GTSAM_USE_BOOST_FEATURES) 3 | list(APPEND excluded_sources "testScheduler.cpp") 4 | endif() 5 | 6 | gtsamAddTestsGlob(discrete_unstable "test*.cpp" "${excluded_sources}" "gtsam_unstable") 7 | -------------------------------------------------------------------------------- /gtsam_unstable/dynamics/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB dynamics_headers "*.h") 3 | install(FILES ${dynamics_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/dynamics) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam_unstable/dynamics/SimpleHelicopter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SimpleHelicopter.cpp 3 | * 4 | * Created on: Apr 21, 2013 5 | * Author: thduynguyen 6 | */ 7 | 8 | #include "SimpleHelicopter.h" 9 | -------------------------------------------------------------------------------- /gtsam_unstable/dynamics/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set (excluded_tests "") 2 | 3 | # TODO(dellaert): these segfault, and are rather obsolete, so we stop compiling them: 4 | list(APPEND excluded_tests "testIMUSystem.cpp" "testPoseRTV.cpp") 5 | 6 | # Build tests 7 | gtsamAddTestsGlob(dynamics_unstable "test*.cpp" "${excluded_tests}" "gtsam_unstable") 8 | -------------------------------------------------------------------------------- /gtsam_unstable/examples/README.md: -------------------------------------------------------------------------------- 1 | This directory contains a number of examples that illustrate the use of unstable components in GTSAM: 2 | 3 | FixedLagSmootherExample: a 2D Pose SLAM example fusing measurements from multiple odometry-type sensors 4 | ConcurrentFilteringAndSmoothingExample: a 2D Pose SLAM example demonstrating the Concurrent Filtering and Smoothing architecture 5 | -------------------------------------------------------------------------------- /gtsam_unstable/examples/plotRangeResults.p: -------------------------------------------------------------------------------- 1 | #!/opt/local/bin/gnuplot 2 | reset 3 | #set terminal pdf 4 | set title "Smart range SLAM result" 5 | set size ratio -1 6 | plot "rangeResult.txt" using 2:3 with lines, "rangeResultLM.txt" using 2:3:4 with circles, "rangeResultSR.txt" using 2:3:4 with circles -------------------------------------------------------------------------------- /gtsam_unstable/geometry/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB geometry_headers "*.h") 3 | install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/geometry) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam_unstable/geometry/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(geometry_unstable "test*.cpp" "" "gtsam_unstable") 2 | -------------------------------------------------------------------------------- /gtsam_unstable/linear/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB linear_headers "*.h") 3 | install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/linear) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam_unstable/nonlinear/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB nonlinear_headers "*.h") 3 | install(FILES ${nonlinear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/nonlinear) 4 | 5 | # Add all tests 6 | add_subdirectory(tests) 7 | -------------------------------------------------------------------------------- /gtsam_unstable/nonlinear/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(nonlinear_unstable "test*.cpp" "testCustomChartExpression.cpp" "gtsam_unstable") 2 | -------------------------------------------------------------------------------- /gtsam_unstable/partition/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | file(GLOB partition_headers "*.h") 3 | install(FILES ${partition_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/partition) 4 | 5 | add_subdirectory(tests) 6 | -------------------------------------------------------------------------------- /gtsam_unstable/partition/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(ignore_test "testNestedDissection.cpp") 2 | 3 | if (NOT GTSAM_USE_BOOST_FEATURES OR MSVC) 4 | list(APPEND ignore_test "testFindSeparator.cpp") 5 | endif() 6 | 7 | gtsamAddTestsGlob(partition "test*.cpp" "${ignore_test}" "gtsam_unstable;gtsam;metis-gtsam-if") 8 | -------------------------------------------------------------------------------- /gtsam_unstable/slam/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Install headers 2 | set (slam_excluded_headers #"") 3 | "${CMAKE_CURRENT_SOURCE_DIR}/serialization.h" 4 | ) 5 | 6 | file(GLOB slam_headers "*.h") 7 | list(REMOVE_ITEM slam_headers ${slam_excluded_headers}) 8 | install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/slam) 9 | 10 | # Add all tests 11 | add_subdirectory(tests) 12 | -------------------------------------------------------------------------------- /gtsam_unstable/slam/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | # Exclude tests that don't work 3 | set (slam_excluded_tests 4 | testSerialization.cpp 5 | ) 6 | 7 | gtsamAddTestsGlob(slam_unstable "test*.cpp" "${slam_excluded_tests}" "gtsam_unstable") 8 | -------------------------------------------------------------------------------- /gtsam_unstable/timing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTimingGlob("*.cpp" "" "gtsam_unstable" ${GTSAM_BUILD_TIMING_ALWAYS}) 2 | -------------------------------------------------------------------------------- /gtsam_unstable/timing/timeDSFvariants.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/timing/timeDSFvariants.xlsx -------------------------------------------------------------------------------- /gtsam_unstable/timing/timeDSFvariants2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/gtsam_unstable/timing/timeDSFvariants2.xlsx -------------------------------------------------------------------------------- /makestats.sh: -------------------------------------------------------------------------------- 1 | java -jar ~/src/statsvn-0.7.0/statsvn.jar -output-dir stats -exclude "examples/Data/**/*;gtsam/3rdparty/**/*" logfile.log . 2 | -------------------------------------------------------------------------------- /matlab/+gtsam/CHECK.m: -------------------------------------------------------------------------------- 1 | function CHECK(name,assertion) 2 | % CHECK throw an error if an assertion fails 3 | % 4 | % CHECK(name,assertion) 5 | % - name of test 6 | % - assertion 7 | 8 | if (assertion~=1) 9 | error(['CHECK ' name ' fails']); 10 | end 11 | -------------------------------------------------------------------------------- /matlab/+gtsam/EXPECT.m: -------------------------------------------------------------------------------- 1 | function EXPECT(name,assertion) 2 | % EXPECT throw a warning if an assertion fails 3 | % 4 | % EXPECT(name,assertion) 5 | % - name of test 6 | % - assertion 7 | 8 | if (assertion~=1) 9 | warning(['EXPECT ' name ' fails']); 10 | end 11 | -------------------------------------------------------------------------------- /matlab/+gtsam/Point2.m: -------------------------------------------------------------------------------- 1 | function pt = Point2(varargin) 2 | % Point2 shim 3 | if nargin == 2 && isa(varargin{1}, 'double') 4 | pt = [varargin{1} varargin{2}]'; 5 | elseif nargin == 1 6 | pt = varargin{1}; 7 | elseif nargin == 0 8 | pt = [0 0]'; 9 | else 10 | error('Arguments do not match any overload of Point2 shim'); 11 | end 12 | end -------------------------------------------------------------------------------- /matlab/+gtsam/Point3.m: -------------------------------------------------------------------------------- 1 | function pt = Point3(varargin) 2 | % Point3 shim 3 | if nargin == 3 && isa(varargin{1}, 'double') 4 | pt = [varargin{1} varargin{2} varargin{3}]'; 5 | elseif nargin == 1 6 | pt = varargin{1}; 7 | elseif nargin == 0 8 | pt = [0 0 0]'; 9 | else 10 | error('Arguments do not match any overload of Point3 shim'); 11 | end 12 | end -------------------------------------------------------------------------------- /matlab/+gtsam/plotBayesNet.m: -------------------------------------------------------------------------------- 1 | function plotBayesNet(bayesNet) 2 | % plotBayesNet saves as dot file, renders, and shows as image 3 | % Needs dot installed 4 | 5 | bayesNet.saveGraph('/tmp/bayesNet.dot') 6 | !dot -Tpng -o /tmp/dotImage.png /tmp/bayesNet.dot 7 | dotImage=imread('/tmp/dotImage.png'); 8 | imshow(dotImage) 9 | 10 | end -------------------------------------------------------------------------------- /matlab/+gtsam/plotBayesTree.m: -------------------------------------------------------------------------------- 1 | function plotBayesTree(bayesTree) 2 | % plotBayesTree saves as dot file, renders, and shows as image 3 | % Needs dot installed 4 | 5 | bayesTree.saveGraph('/tmp/bayesTree.dot') 6 | !dot -Tpng -o /tmp/dotImage.png /tmp/bayesTree.dot 7 | dotImage=imread('/tmp/dotImage.png'); 8 | imshow(dotImage) 9 | 10 | end -------------------------------------------------------------------------------- /matlab/+gtsam/plotPoint2.m: -------------------------------------------------------------------------------- 1 | function plotPoint2(p,color,P) 2 | % plotPoint2 shows a Point2, possibly with covariance matrix 3 | if size(color,2)==1 4 | plot(p(1),p(2),[color '*']); 5 | else 6 | plot(p(1),p(2),color); 7 | end 8 | if exist('P', 'var') && (~isempty(P)) 9 | gtsam.covarianceEllipse([p(1);p(2)],P,color(1)); 10 | end -------------------------------------------------------------------------------- /matlab/+gtsam/plotPoint3.m: -------------------------------------------------------------------------------- 1 | function plotPoint3(p, color, P) 2 | %PLOTPOINT3 Plot a Point3 with an optional covariance matrix 3 | if size(color,2)==1 4 | plot3(p(1),p(2),p(3),[color '*']); 5 | else 6 | plot3(p(1),p(2),p(3),color); 7 | end 8 | if exist('P', 'var') 9 | gtsam.covarianceEllipse3D([p(1);p(2);p(3)],P); 10 | end 11 | 12 | end 13 | 14 | -------------------------------------------------------------------------------- /matlab/gtsam_examples/VisualISAMDemo.m: -------------------------------------------------------------------------------- 1 | % VisualISAMDemo: runs VisualSLAM iSAM demo in a GUI 2 | % Authors: Duy Nguyen Ta 3 | 4 | % Make sure global variables are visible on command prompt 5 | % so you can examine how they change as you step through 6 | global options truth data noiseModels isam result frame_i 7 | 8 | % Start GUI 9 | VisualISAM_gui -------------------------------------------------------------------------------- /matlab/gtsam_examples/VisualISAM_gui.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/matlab/gtsam_examples/VisualISAM_gui.fig -------------------------------------------------------------------------------- /matlab/gtsam_examples/gtsamExamples.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/matlab/gtsam_examples/gtsamExamples.fig -------------------------------------------------------------------------------- /matlab/gtsam_tests/.gitignore: -------------------------------------------------------------------------------- 1 | *.m~ 2 | -------------------------------------------------------------------------------- /matlab/gtsam_tests/testEnum.m: -------------------------------------------------------------------------------- 1 | % test Enum 2 | import gtsam.*; 3 | 4 | params = GncLMParams(); 5 | 6 | EXPECT('Get lossType',params.lossType==GncLossType.TLS); 7 | 8 | params.lossType = GncLossType.GM; 9 | EXPECT('Set lossType',params.lossType==GncLossType.GM); 10 | 11 | params.setLossType(GncLossType.TLS); 12 | EXPECT('setLossType',params.lossType==GncLossType.TLS); 13 | -------------------------------------------------------------------------------- /matlab/gtsam_tests/thinBayesTree.m: -------------------------------------------------------------------------------- 1 | function bayesTree = thinBayesTree(depth, width) 2 | import gtsam.* 3 | bayesNet = thinTreeBayesNet(depth, width); 4 | fg = GaussianFactorGraph(bayesNet); 5 | bayesTree = fg.eliminateMultifrontal(); 6 | end -------------------------------------------------------------------------------- /matlab/unstable_examples/+imuSimulator/+lib/antisim.m: -------------------------------------------------------------------------------- 1 | function S = antisim(v) 2 | 3 | % costruisce la matrice antisimmetrica S (3x3) a partire dal vettore v 4 | % Uso: S = antisim(v) 5 | 6 | S=[0 -v(3) v(2); v(3) 0 -v(1); -v(2) v(1) 0]; 7 | 8 | -------------------------------------------------------------------------------- /matlab/unstable_examples/+imuSimulator/+lib/uth2rot.m: -------------------------------------------------------------------------------- 1 | function R = uth2rot(u,teta) 2 | 3 | % Uso: R = uth2rot(u,teta) 4 | % 5 | % calcola la matrice R 6 | % a partire da asse u ed angolo di rotazione teta (in rad) 7 | 8 | S=antisim(u); 9 | t=teta; 10 | 11 | n=norm(u); 12 | 13 | R = eye(3) + sin(t)/n*S + (1-cos(t))/n^2*S^2; 14 | 15 | -------------------------------------------------------------------------------- /matlab/unstable_examples/.gitignore: -------------------------------------------------------------------------------- 1 | *.m~ 2 | *.avi 3 | -------------------------------------------------------------------------------- /python/CustomFactors.md: -------------------------------------------------------------------------------- 1 | # GTSAM Python-based factors 2 | 3 | One now can build factors purely in Python using the `CustomFactor` factor. See [this notebook](../gtsam/nonlinear/doc/CustomFactor.ipynb) for usage. 4 | 5 | -------------------------------------------------------------------------------- /python/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include gtsam/Data * 2 | -------------------------------------------------------------------------------- /python/dev_requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | pyparsing>=2.4.2 3 | pybind11-stubgen>=2.5.1 -------------------------------------------------------------------------------- /python/gtsam/examples/.gitignore: -------------------------------------------------------------------------------- 1 | *.txt 2 | -------------------------------------------------------------------------------- /python/gtsam/examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam/examples/__init__.py -------------------------------------------------------------------------------- /python/gtsam/gtsfm.py: -------------------------------------------------------------------------------- 1 | # This trick is to allow direct import of sub-modules 2 | # without this, we can only do `from gtsam.gtsam.gtsfm import X` 3 | # with this trick, we can do `from gtsam.gtsfm import X` 4 | from .gtsam.gtsfm import * -------------------------------------------------------------------------------- /python/gtsam/imuBias.py: -------------------------------------------------------------------------------- 1 | # This trick is to allow direct import of sub-modules 2 | # without this, we can only do `from gtsam.gtsam.imuBias import X` 3 | # with this trick, we can do `from gtsam.imuBias import X` 4 | from .gtsam.imuBias import * 5 | -------------------------------------------------------------------------------- /python/gtsam/noiseModel.py: -------------------------------------------------------------------------------- 1 | # This trick is to allow direct import of sub-modules 2 | # without this, we can only do `from gtsam.gtsam.noiseModel import X` 3 | # with this trick, we can do `from gtsam.noiseModel import X` 4 | from .gtsam.noiseModel import * -------------------------------------------------------------------------------- /python/gtsam/specializations/hybrid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam/specializations/hybrid.h -------------------------------------------------------------------------------- /python/gtsam/symbol_shorthand.py: -------------------------------------------------------------------------------- 1 | # This trick is to allow direct import of sub-modules 2 | # without this, we can only do `from gtsam.gtsam.symbol_shorthand import X` 3 | # with this trick, we can do `from gtsam.symbol_shorthand import X` 4 | from .gtsam.symbol_shorthand import * 5 | -------------------------------------------------------------------------------- /python/gtsam_unstable/__init__.py: -------------------------------------------------------------------------------- 1 | from .gtsam_unstable import * 2 | -------------------------------------------------------------------------------- /python/gtsam_unstable/examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam_unstable/examples/__init__.py -------------------------------------------------------------------------------- /python/gtsam_unstable/preamble.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam_unstable/preamble.h -------------------------------------------------------------------------------- /python/gtsam_unstable/specializations/gtsam_unstable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam_unstable/specializations/gtsam_unstable.h -------------------------------------------------------------------------------- /python/gtsam_unstable/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/python/gtsam_unstable/tests/__init__.py -------------------------------------------------------------------------------- /python/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy>=1.11.0 2 | -------------------------------------------------------------------------------- /wrap/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | .vscode/ 3 | *build* 4 | *install* 5 | *dist* 6 | *.egg-info 7 | 8 | **/.DS_Store 9 | 10 | # Files related to code coverage stats 11 | **/.coverage 12 | 13 | gtwrap/matlab_wrapper/matlab_wrapper.tpl 14 | -------------------------------------------------------------------------------- /wrap/gtwrap/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/gtwrap/__init__.py -------------------------------------------------------------------------------- /wrap/gtwrap/matlab_wrapper/__init__.py: -------------------------------------------------------------------------------- 1 | """Package to wrap C++ code to Matlab via MEX.""" 2 | 3 | from .wrapper import MatlabWrapper 4 | -------------------------------------------------------------------------------- /wrap/gtwrap/xml_parser/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/gtwrap/xml_parser/__init__.py -------------------------------------------------------------------------------- /wrap/pybind11/.gitattributes: -------------------------------------------------------------------------------- 1 | docs/*.svg binary 2 | -------------------------------------------------------------------------------- /wrap/pybind11/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | *.cmake @henryiii 2 | CMakeLists.txt @henryiii 3 | *.yml @henryiii 4 | *.yaml @henryiii 5 | /tools/ @henryiii 6 | /pybind11/ @henryiii 7 | noxfile.py @henryiii 8 | .clang-format @henryiii 9 | .clang-tidy @henryiii 10 | -------------------------------------------------------------------------------- /wrap/pybind11/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/pybind/pybind11/discussions/new 5 | about: Please ask and answer questions here, or propose new ideas. 6 | - name: Gitter room 7 | url: https://gitter.im/pybind/Lobby 8 | about: A room for discussing pybind11 with an active community 9 | -------------------------------------------------------------------------------- /wrap/pybind11/.github/labeler.yml: -------------------------------------------------------------------------------- 1 | docs: 2 | all: 3 | - changed-files: 4 | - all-globs-to-all-files: 5 | - '!docs/changelog.rst' 6 | - '!docs/upgrade.rst' 7 | - base-branch: "^(?!dependabot).*" 8 | - base-branch: "^(?!pre-commit-ci).*" 9 | 10 | ci: 11 | - changed-files: 12 | - any-glob-to-any-file: 13 | - '.github/workflows/*.yml' 14 | -------------------------------------------------------------------------------- /wrap/pybind11/.github/labeler_merged.yml: -------------------------------------------------------------------------------- 1 | # Add 'needs changelog` label to any change to code files as long as the `CHANGELOG` hasn't changed 2 | # Skip dependabot and pre-commit-ci PRs 3 | needs changelog: 4 | - all: 5 | - changed-files: 6 | - all-globs-to-all-files: "!docs/changelog.rst" 7 | - base-branch: "^(?!dependabot).*" 8 | - base-branch: "^(?!pre-commit-ci).*" 9 | -------------------------------------------------------------------------------- /wrap/pybind11/.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # https://blog.readthedocs.com/migrate-configuration-v2/ 2 | 3 | version: 2 4 | 5 | build: 6 | os: ubuntu-22.04 7 | apt_packages: 8 | - librsvg2-bin 9 | tools: 10 | python: "3.11" 11 | 12 | sphinx: 13 | configuration: docs/conf.py 14 | 15 | python: 16 | install: 17 | - requirements: docs/requirements.txt 18 | 19 | formats: 20 | - pdf 21 | -------------------------------------------------------------------------------- /wrap/pybind11/MANIFEST.in: -------------------------------------------------------------------------------- 1 | prune tests 2 | recursive-include pybind11/include/pybind11 *.h 3 | recursive-include pybind11 *.py 4 | recursive-include pybind11 py.typed 5 | include pybind11/share/cmake/pybind11/*.cmake 6 | include LICENSE README.rst SECURITY.md pyproject.toml setup.py setup.cfg 7 | -------------------------------------------------------------------------------- /wrap/pybind11/docs/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | .highlight .go { 2 | color: #707070; 3 | } 4 | -------------------------------------------------------------------------------- /wrap/pybind11/docs/advanced/pycpp/index.rst: -------------------------------------------------------------------------------- 1 | Python C++ interface 2 | #################### 3 | 4 | pybind11 exposes Python types and functions using thin C++ wrappers, which 5 | makes it possible to conveniently call Python code from C++ without resorting 6 | to Python's C API. 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | object 12 | numpy 13 | utilities 14 | -------------------------------------------------------------------------------- /wrap/pybind11/docs/cmake/index.rst: -------------------------------------------------------------------------------- 1 | CMake helpers 2 | ------------- 3 | 4 | Pybind11 can be used with ``add_subdirectory(extern/pybind11)``, or from an 5 | install with ``find_package(pybind11 CONFIG)``. The interface provided in 6 | either case is functionally identical. 7 | 8 | .. cmake-module:: ../../tools/pybind11Config.cmake.in 9 | -------------------------------------------------------------------------------- /wrap/pybind11/docs/pybind11-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/docs/pybind11-logo.png -------------------------------------------------------------------------------- /wrap/pybind11/docs/pybind11_vs_boost_python1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/docs/pybind11_vs_boost_python1.png -------------------------------------------------------------------------------- /wrap/pybind11/docs/pybind11_vs_boost_python2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/docs/pybind11_vs_boost_python2.png -------------------------------------------------------------------------------- /wrap/pybind11/docs/requirements.in: -------------------------------------------------------------------------------- 1 | breathe 2 | furo 3 | sphinx 4 | sphinx-copybutton 5 | sphinxcontrib-moderncmakedomain 6 | sphinxcontrib-svg2pdfconverter 7 | -------------------------------------------------------------------------------- /wrap/pybind11/include/pybind11/common.h: -------------------------------------------------------------------------------- 1 | #include "detail/common.h" 2 | #warning "Including 'common.h' is deprecated. It will be removed in v3.0. Use 'pybind11.h'." 3 | -------------------------------------------------------------------------------- /wrap/pybind11/pybind11/_version.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | 4 | def _to_int(s: str) -> int | str: 5 | try: 6 | return int(s) 7 | except ValueError: 8 | return s 9 | 10 | 11 | __version__ = "2.13.6" 12 | version_info = tuple(_to_int(s) for s in __version__.split(".")) 13 | -------------------------------------------------------------------------------- /wrap/pybind11/pybind11/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/pybind11/py.typed -------------------------------------------------------------------------------- /wrap/pybind11/tests/extra_python_package/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/tests/extra_python_package/pytest.ini -------------------------------------------------------------------------------- /wrap/pybind11/tests/extra_setuptools/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/borglab/gtsam/b6675f54d63582cf33bf1662bfb76f7eff02933f/wrap/pybind11/tests/extra_setuptools/pytest.ini -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_cmake_build/main.cpp: -------------------------------------------------------------------------------- 1 | #include <pybind11/pybind11.h> 2 | namespace py = pybind11; 3 | 4 | PYBIND11_MODULE(test_cmake_build, m, py::mod_gil_not_used()) { 5 | m.def("add", [](int i, int j) { return i + j; }); 6 | } 7 | -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_cmake_build/test.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | import test_cmake_build 6 | 7 | assert isinstance(__file__, str) # Test this is properly set 8 | 9 | assert test_cmake_build.add(1, 2) == 3 10 | print(f"{sys.argv[1]} imports, runs, and adds: 1 + 2 = 3") 11 | -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_embed/test_interpreter.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | from widget_module import Widget 6 | 7 | 8 | class DerivedWidget(Widget): 9 | def __init__(self, message): 10 | super().__init__(message) 11 | 12 | def the_answer(self): 13 | return 42 14 | 15 | def argv0(self): 16 | return sys.argv[0] 17 | -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_eval_call.py: -------------------------------------------------------------------------------- 1 | # This file is called from 'test_eval.py' 2 | from __future__ import annotations 3 | 4 | if "call_test2" in locals(): 5 | call_test2(y) # noqa: F821 undefined name 6 | -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_union.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import union_ as m 4 | 5 | 6 | def test_union(): 7 | instance = m.TestUnion() 8 | 9 | instance.as_uint = 10 10 | assert instance.as_int == 10 11 | -------------------------------------------------------------------------------- /wrap/pybind11/tests/test_unnamed_namespace_b.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import unnamed_namespace_b as m 4 | 5 | 6 | def test_have_attr_any_struct(): 7 | assert hasattr(m, "unnamed_namespace_b_any_struct") 8 | -------------------------------------------------------------------------------- /wrap/pybind11/tools/pybind11.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix_for_pc_file@ 2 | includedir=@includedir_for_pc_file@ 3 | 4 | Name: @PROJECT_NAME@ 5 | Description: Seamless operability between C++11 and Python 6 | Version: @PROJECT_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /wrap/pybind11/tools/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools>=42", "wheel"] 3 | build-backend = "setuptools.build_meta" 4 | -------------------------------------------------------------------------------- /wrap/requirements.txt: -------------------------------------------------------------------------------- 1 | pyparsing==3.1.1 2 | pytest>=6.2.4 3 | -------------------------------------------------------------------------------- /wrap/sphinx/index.rst: -------------------------------------------------------------------------------- 1 | pybind_wrapper Documentation 2 | ============================ 3 | 4 | Contents: 5 | 6 | .. toctree:: 7 | :maxdepth: 2 8 | 9 | wrap 10 | 11 | -------------------------------------------------------------------------------- /wrap/sphinx/wrap.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: python_example 2 | -------------------------------------------------------------------------------- /wrap/templates/matlab_wrapper.tpl.in: -------------------------------------------------------------------------------- 1 | #include <${GTWRAP_INCLUDE_NAME}/matlab.h> 2 | #include <map> 3 | -------------------------------------------------------------------------------- /wrap/tests/.gitignore: -------------------------------------------------------------------------------- 1 | actual/** 2 | -------------------------------------------------------------------------------- /wrap/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gtsamAddTestsGlob(wrap "test*.cpp" "" "wrap_lib") 2 | -------------------------------------------------------------------------------- /wrap/tests/actual/.gitignore: -------------------------------------------------------------------------------- 1 | ./* 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+Pet/Kind.m: -------------------------------------------------------------------------------- 1 | classdef Kind < uint32 2 | enumeration 3 | Dog(0) 4 | Cat(1) 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+gtsam/+MCU/Avengers.m: -------------------------------------------------------------------------------- 1 | classdef Avengers < uint32 2 | enumeration 3 | CaptainAmerica(0) 4 | IronMan(1) 5 | Hulk(2) 6 | Hawkeye(3) 7 | Thor(4) 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+gtsam/+MCU/GotG.m: -------------------------------------------------------------------------------- 1 | classdef GotG < uint32 2 | enumeration 3 | Starlord(0) 4 | Gamorra(1) 5 | Rocket(2) 6 | Drax(3) 7 | Groot(4) 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+gtsam/+OptimizerGaussNewtonParams/Verbosity.m: -------------------------------------------------------------------------------- 1 | classdef Verbosity < uint32 2 | enumeration 3 | SILENT(0) 4 | SUMMARY(1) 5 | VERBOSE(2) 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+gtsam/VerbosityLM.m: -------------------------------------------------------------------------------- 1 | classdef VerbosityLM < uint32 2 | enumeration 3 | SILENT(0) 4 | SUMMARY(1) 5 | TERMINATION(2) 6 | LAMBDA(3) 7 | TRYLAMBDA(4) 8 | TRYCONFIG(5) 9 | DAMPED(6) 10 | TRYDELTA(7) 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+ns1/aGlobalFunction.m: -------------------------------------------------------------------------------- 1 | function varargout = aGlobalFunction(varargin) 2 | if length(varargin) == 0 3 | varargout{1} = namespaces_wrapper(6, varargin{:}); 4 | else 5 | error('Arguments do not match any overload of function aGlobalFunction'); 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/+ns2/aGlobalFunction.m: -------------------------------------------------------------------------------- 1 | function varargout = aGlobalFunction(varargin) 2 | if length(varargin) == 0 3 | varargout{1} = namespaces_wrapper(20, varargin{:}); 4 | else 5 | error('Arguments do not match any overload of function aGlobalFunction'); 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/Color.m: -------------------------------------------------------------------------------- 1 | classdef Color < uint32 2 | enumeration 3 | Red(0) 4 | Green(1) 5 | Blue(2) 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/TemplatedFunctionRot3.m: -------------------------------------------------------------------------------- 1 | function varargout = TemplatedFunctionRot3(varargin) 2 | if length(varargin) == 1 && isa(varargin{1},'gtsam.Rot3') 3 | functions_wrapper(26, varargin{:}); 4 | else 5 | error('Arguments do not match any overload of function TemplatedFunctionRot3'); 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/aGlobalFunction.m: -------------------------------------------------------------------------------- 1 | function varargout = aGlobalFunction(varargin) 2 | if length(varargin) == 0 3 | varargout{1} = functions_wrapper(3, varargin{:}); 4 | else 5 | error('Arguments do not match any overload of function aGlobalFunction'); 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /wrap/tests/expected/matlab/setPose.m: -------------------------------------------------------------------------------- 1 | function varargout = setPose(varargin) 2 | if length(varargin) == 1 && isa(varargin{1},'gtsam.Pose3') 3 | functions_wrapper(23, varargin{:}); 4 | elseif length(varargin) == 0 5 | functions_wrapper(24, varargin{:}); 6 | else 7 | error('Arguments do not match any overload of function setPose'); 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /wrap/tests/fixtures/part1.i: -------------------------------------------------------------------------------- 1 | // First file to test for multi-file support. 2 | 3 | namespace gtsam { 4 | class Class1 { 5 | Class1(); 6 | }; 7 | 8 | class Class2 { 9 | Class2(); 10 | }; 11 | } // namespace gtsam -------------------------------------------------------------------------------- /wrap/tests/fixtures/part2.i: -------------------------------------------------------------------------------- 1 | // Second file to test for multi-file support. 2 | 3 | namespace gtsam { 4 | class ClassA { 5 | ClassA(); 6 | }; 7 | } // namespace gtsam -------------------------------------------------------------------------------- /wrap/tests/testDependencies.h: -------------------------------------------------------------------------------- 1 | //Header file to test dependency checking 2 | // 3 | class Pose3 { 4 | Pose3(const Rot3& r, const Point3& t); //What is Rot3? Throw here 5 | static Rot3 testStaticDep(Rot3& r); //What is Rot3? Throw here 6 | Rot3 testReturnType() const; // Throw here 7 | void testMethodArg(const Rot3& r) const; 8 | }; 9 | -------------------------------------------------------------------------------- /wrap/tests/testMemory.m: -------------------------------------------------------------------------------- 1 | %MATLAB testing file for memory allocation and leaks 2 | %Andrew Melim 3 | 4 | addpath([pwd,'/../../../toolbox/gtsam']); 5 | for i=1:100000 6 | p = gtsamPoint2() 7 | end 8 | --------------------------------------------------------------------------------