GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
gtsam Namespace Reference

Namespaces

 imuBias
 All bias models live in the imuBias namespace.
 
 noiseModel
 All noise models live in the noiseModel namespace.
 
 treeTraversal
 

Classes

struct  _ValuesConstKeyValuePair
 
struct  _ValuesKeyValuePair
 
class  AcceleratedPowerMethod
 Compute maximum Eigenpair with accelerated power method. More...
 
class  AcceleratingScenario
 Accelerating from an arbitrary initial state, with optional rotation. More...
 
class  ActiveSetSolver
 
class  AdaptAutoDiff
 
struct  additive_group_tag
 
class  AHRS
 
class  AHRSFactor
 
class  AlgebraicDecisionTree
 
class  AllDiff
 
class  AntiFactor
 
class  Assignment
 
class  AttitudeFactor
 
class  BarometricFactor
 
class  Basis
 
class  BatchFixedLagSmoother
 
class  BayesNet
 
class  BayesTree
 
class  BayesTreeCliqueBase
 
struct  BayesTreeCliqueData
 
struct  BayesTreeCliqueStats
 
class  BayesTreeOrphanWrapper
 
class  BayesTreeOrphanWrapper< HybridBayesTreeClique >
 Class for Hybrid Bayes tree orphan subtrees. More...
 
struct  Bearing
 
struct  Bearing< Pose2, T >
 
struct  Bearing< Pose3, Point3 >
 
struct  Bearing< Pose3, Pose3 >
 
struct  BearingFactor
 
struct  BearingRange
 
class  BearingRangeFactor
 
class  BearingS2
 
class  BetweenConstraint
 
class  BetweenFactor
 
class  BetweenFactorEM
 
class  BiasedGPSFactor
 
class  BinaryAllDiff
 
struct  BinaryJacobianFactor
 
class  BinaryMeasurement
 
class  BinarySumExpression
 
class  BlockJacobiPreconditioner
 
struct  BlockJacobiPreconditionerParameters
 
struct  BoundingConstraint1
 
struct  BoundingConstraint2
 
class  BTree
 Binary tree. More...
 
class  Cal3
 Common base class for all calibration models. More...
 
class  Cal3_S2
 The most common 5DOF 3D->2D calibration. More...
 
class  Cal3_S2Stereo
 The most common 5DOF 3D->2D calibration, stereo version. More...
 
class  Cal3Bundler
 Calibration used by Bundler. More...
 
class  Cal3DS2
 Calibration of a camera with radial distortion that also supports Lie-group behaviors for optimization. More...
 
class  Cal3DS2_Base
 Calibration of a camera with radial distortion. More...
 
class  Cal3Fisheye
 Calibration of a fisheye camera. More...
 
class  Cal3Unified
 Calibration of a omni-directional camera with mirror + lens radial distortion. More...
 
class  CalibratedCamera
 
class  CameraSet
 A set of cameras, all with their own calibration. More...
 
struct  CGState
 
struct  Chebyshev1Basis
 
class  Chebyshev2
 
struct  Chebyshev2Basis
 
class  CheiralityException
 
class  CholeskyFailed
 Indicate Cholesky factorization failure. More...
 
class  ClusterTree
 
class  CombinedImuFactor
 
class  CombinedScenarioRunner
 
class  ComponentDerivativeFactor
 
class  compose_key_visitor
 
class  ConcurrentBatchFilter
 
class  ConcurrentBatchSmoother
 
class  ConcurrentFilter
 
class  ConcurrentIncrementalFilter
 
class  ConcurrentIncrementalSmoother
 
class  ConcurrentMap
 
class  ConcurrentSmoother
 
class  Conditional
 
class  ConjugateGradientParameters
 
struct  const_selector
 
struct  const_selector< BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 
struct  const_selector< const BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 
class  ConstantTwistScenario
 
class  ConstantVelocityFactor
 
class  Constraint
 
struct  ConstructorTraversalData
 
class  CRefCallAddCopy
 
class  CRefCallPushBack
 
class  CSP
 
class  CustomFactor
 
class  Cyclic
 Cyclic group of order N. More...
 
class  DecisionTree
 
class  DecisionTreeFactor
 
class  DeltaFactor
 
class  DeltaFactorBase
 
struct  DeltaImpl
 
class  DerivativeFactor
 
struct  DGroundConstraint
 
struct  DHeightPrior
 
class  DirectProduct
 
class  DirectSum
 
class  DiscreteBayesNet
 
class  DiscreteBayesTree
 A Bayes tree representing a Discrete distribution. More...
 
class  DiscreteBayesTreeClique
 
class  DiscreteConditional
 
class  DiscreteDistribution
 
class  DiscreteEliminationTree
 Elimination tree for discrete factors. More...
 
class  DiscreteEulerPoincareHelicopter
 
class  DiscreteFactor
 
class  DiscreteFactorGraph
 
class  DiscreteJunctionTree
 
struct  DiscreteKeys
 DiscreteKeys is a set of keys that can be assembled using the & operator. More...
 
class  DiscreteLookupDAG
 
class  DiscreteLookupTable
 DiscreteLookupTable table for max-productInherits from discrete conditional for convenience, but is not normalized. Is used in the max-product algorithm. More...
 
class  DiscreteMarginals
 
class  DiscreteValues
 
class  DoglegOptimizer
 
struct  DoglegOptimizerImpl
 
class  DoglegParams
 
class  Domain
 
struct  DotWriter
 DotWriter is a helper class for writing graphviz .dot files. More...
 
struct  DRollPrior
 
class  DSF
 
class  DSFBase
 
class  DSFMap
 
class  DSFVector
 
struct  Dummy
 
class  DummyFactor
 
class  DummyPreconditioner
 
struct  DummyPreconditionerParameters
 
class  DynamicValuesMismatched
 
class  EliminatableClusterTree
 
class  EliminateableFactorGraph
 
struct  EliminationData
 
struct  EliminationTraits
 
struct  EliminationTraits< DiscreteFactorGraph >
 
struct  EliminationTraits< GaussianFactorGraph >
 
struct  EliminationTraits< HybridGaussianFactorGraph >
 
struct  EliminationTraits< SymbolicFactorGraph >
 
class  EliminationTree
 
class  EmptyCal
 
class  EqualityFactorGraph
 
struct  equals
 
struct  equals_star
 
class  EquivInertialNavFactor_GlobalVel
 
class  EquivInertialNavFactor_GlobalVel_NoBias
 
class  EssentialMatrix
 
class  EssentialMatrixConstraint
 
class  EssentialMatrixFactor
 
class  EssentialMatrixFactor2
 
class  EssentialMatrixFactor3
 
class  EssentialMatrixFactor4
 
class  EvaluationFactor
 Factor for enforcing the scalar value of the polynomial BASIS representation at x is the same as the measurement z when using a pseudo-spectral parameterization. More...
 
class  Event
 
class  Expression
 
class  ExpressionFactor
 
class  ExpressionFactorGraph
 
class  ExpressionFactorN
 
class  ExtendedKalmanFilter
 
class  Factor
 
class  FactorGraph
 
class  FastList
 
class  FastMap
 
class  FastSet
 
class  FitBasis
 
struct  FixedDimension
 Give fixed size dimension of a type, fails at compile time if dynamic. More...
 
class  FixedLagSmoother
 
class  FixedVector
 
class  FourierBasis
 Fourier basis. More...
 
class  FrobeniusBetweenFactor
 
class  FrobeniusFactor
 
class  FrobeniusPrior
 
class  FullIMUFactor
 
class  FunctorizedFactor
 
class  FunctorizedFactor2
 
class  G_x1
 
class  GaussianBayesNet
 
class  GaussianBayesTree
 
class  GaussianBayesTreeClique
 
class  GaussianConditional
 
class  GaussianDensity
 
class  GaussianEliminationTree
 
class  GaussianFactor
 
class  GaussianFactorGraph
 
class  GaussianFactorGraphSystem
 
class  GaussianISAM
 
class  GaussianJunctionTree
 
class  GaussianMixture
 A conditional of gaussian mixtures indexed by discrete variables, as part of a Bayes Network. This is the result of the elimination of a continuous variable in a hybrid scheme, such that the remaining variables are discrete+continuous. More...
 
class  GaussianMixtureFactor
 Implementation of a discrete conditional mixture factor. Implements a joint discrete-continuous factor where the discrete variable serves to "select" a mixture component corresponding to a GaussianFactor type of measurement. More...
 
class  GaussMarkov1stOrderFactor
 
class  GaussNewtonOptimizer
 
class  GaussNewtonParams
 
class  GeneralSFMFactor
 
class  GeneralSFMFactor2
 
class  GenericProjectionFactor
 
class  GenericStereoFactor
 
class  GenericValue
 
class  GncOptimizer
 
class  GncParams
 
class  GPSFactor
 
class  GPSFactor2
 
struct  GraphvizFormatting
 
struct  group_tag
 tag to assert a type is a group More...
 
struct  HasBearing
 
struct  HasRange
 
struct  HasTestablePrereqs
 Requirements on type to pass it to Testable template below. More...
 
class  HessianFactor
 A Gaussian factor using the canonical parameters (information form) More...
 
class  HybridBayesNet
 
class  HybridBayesTree
 
class  HybridBayesTreeClique
 A clique in a HybridBayesTree which is a HybridConditional internally. More...
 
class  HybridConditional
 
class  HybridEliminationTree
 
class  HybridFactor
 
class  HybridFactorGraph
 
class  HybridGaussianFactorGraph
 
class  HybridGaussianISAM
 
class  HybridJunctionTree
 
class  HybridNonlinearFactorGraph
 
class  HybridNonlinearISAM
 
class  HybridSmoother
 
class  HybridValues
 
class  IMUFactor
 
class  ImuFactor
 
class  ImuFactor2
 
class  InconsistentEliminationRequested
 
class  IncrementalFixedLagSmoother
 
class  IndeterminantLinearSystemException
 
struct  index_sequence
 
class  IndexPair
 Small utility class for representing a wrappable pairs of ints. More...
 
class  InequalityFactorGraph
 
class  InertialNavFactor_GlobalVelocity
 
class  InfeasibleInitialValues
 
class  InfeasibleOrUnboundedProblem
 
struct  InitializePose3
 
class  InvalidArgumentThreadsafe
 Thread-safe invalid argument exception. More...
 
class  InvalidDenseElimination
 
class  InvalidMatrixBlock
 
class  InvalidNoiseModel
 
class  InvDepthCamera3
 
class  InvDepthFactor3
 
class  InvDepthFactorVariant1
 
class  InvDepthFactorVariant2
 
class  InvDepthFactorVariant3a
 
class  InvDepthFactorVariant3b
 
class  ISAM
 
class  ISAM2
 
class  ISAM2BayesTree
 
class  ISAM2Clique
 
struct  ISAM2DoglegParams
 
struct  ISAM2GaussNewtonParams
 
class  ISAM2JunctionTree
 
struct  ISAM2Params
 
struct  ISAM2Result
 
struct  ISAM2UpdateParams
 
class  IsGroup
 
class  IsLieGroup
 
class  IsTestable
 
class  IsVectorSpace
 Vector Space concept. More...
 
class  IterativeOptimizationParameters
 
class  IterativeSolver
 
class  JacobianFactor
 
class  JacobianFactorQ
 
class  JacobianFactorQR
 
class  JacobianFactorSVD
 
class  JointMarginal
 
class  JunctionTree
 
class  KalmanFilter
 
class  KarcherMeanFactor
 
class  key_formatter
 
class  KeyInfo
 
struct  KeyInfoEntry
 
class  LabeledSymbol
 
class  LevenbergMarquardtOptimizer
 
class  LevenbergMarquardtParams
 
struct  lie_group_tag
 tag to assert a type is a Lie group More...
 
struct  LieGroup
 
class  Line3
 
class  LinearContainerFactor
 
class  LinearCost
 
class  LinearEquality
 
class  LinearInequality
 
class  LinearizedGaussianFactor
 
class  LinearizedHessianFactor
 
class  LinearizedJacobianFactor
 
class  LocalOrientedPlane3Factor
 
struct  LP
 
class  LPInitSolver
 
struct  LPPolicy
 Policy for ActivetSetSolver to solve Linear Programming. More...
 
class  MagFactor
 
class  MagFactor1
 
class  MagFactor2
 
class  MagFactor3
 
class  MagPoseFactor
 
struct  make_index_sequence
 
struct  make_index_sequence< 0 >
 
struct  make_index_sequence< 1 >
 
struct  MakeJacobian
 : meta-function to generate Jacobian More...
 
struct  MakeOptionalJacobian
 : meta-function to generate JacobianTA optional reference Used mainly by Expressions More...
 
struct  manifold_tag
 tag to assert a type is a manifold More...
 
class  ManifoldEvaluationFactor
 
class  ManifoldPreintegration
 
class  MarginalizeNonleafException
 
class  Marginals
 
class  Mechanization_bRn2
 
class  MetisIndex
 
class  MFAS
 
class  MixtureFactor
 Implementation of a discrete conditional mixture factor. More...
 
struct  multiplicative_group_tag
 Group operator syntax flavors. More...
 
struct  MultiplyWithInverse
 
struct  MultiplyWithInverseFunction
 
class  MultiProjectionFactor
 
class  NavState
 
struct  needs_eigen_aligned_allocator
 
struct  needs_eigen_aligned_allocator< T, void_t< typename T::_eigen_aligned_allocator_trait > >
 
class  NoiseModelFactor
 
class  NoiseModelFactorN
 
class  NoMatchFoundForFixed
 
class  NonlinearClusterTree
 
class  NonlinearConjugateGradientOptimizer
 
class  NonlinearEquality
 
class  NonlinearEquality1
 
class  NonlinearEquality2
 
class  NonlinearFactor
 
class  NonlinearFactorGraph
 
class  NonlinearISAM
 
class  NonlinearOptimizer
 
class  NonlinearOptimizerParams
 
class  OdometryFactorBase
 
class  OptionalJacobian
 
class  OptionalJacobian< Eigen::Dynamic, Eigen::Dynamic >
 
class  Ordering
 
class  ordering_key_visitor
 
class  OrientedPlane3
 Represents an infinite plane in 3D, which is composed of a planar normal and its perpendicular distance to the origin. Currently it provides a transform of the plane, and a norm 1 differencing of two planes. Refer to Trevor12iros for more math details. More...
 
class  OrientedPlane3DirectionPrior
 
class  OrientedPlane3Factor
 
class  OutOfRangeThreadsafe
 Thread-safe out of range exception. More...
 
class  ParameterMatrix
 
class  PartialPriorFactor
 
class  PCGSolver
 
struct  PCGSolverParameters
 
class  PendulumFactor1
 
class  PendulumFactor2
 
class  PendulumFactorPk
 
class  PendulumFactorPk1
 
class  PinholeBase
 
class  PinholeBaseK
 
class  PinholeCamera
 
class  PinholeFactor
 
class  PinholePose
 
class  PinholeSet
 
class  Pose2
 
class  Pose3
 
class  Pose3AttitudeFactor
 
class  Pose3Upright
 
class  PoseBetweenFactor
 
class  PoseConcept
 
class  PosePriorFactor
 
class  PoseRotationPrior
 
class  PoseRTV
 
class  PoseToPointFactor
 
class  PoseTranslationPrior
 
class  PowerMethod
 Compute maximum Eigenpair with power method. More...
 
class  Preconditioner
 
struct  PreconditionerParameters
 
class  PredecessorMap
 
class  PreintegratedAhrsMeasurements
 
class  PreintegratedCombinedMeasurements
 
class  PreintegratedImuMeasurements
 
class  PreintegratedRotation
 
struct  PreintegratedRotationParams
 
class  PreintegrationBase
 
struct  PreintegrationCombinedParams
 
struct  PreintegrationParams
 
class  PriorFactor
 
class  ProductLieGroup
 
class  ProjectionFactorPPP
 
class  ProjectionFactorPPPC
 
class  ProjectionFactorRollingShutter
 
struct  QP
 
class  QPInitSolver
 
struct  QPPolicy
 Policy for ActivetSetSolver to solve Linear Programming. More...
 
class  QPSParser
 
class  QPSParserException
 
struct  Range
 
struct  Range< CalibratedCamera, T >
 
struct  Range< PinholeCamera< Calibration >, T >
 
struct  Range< Point2, Point2 >
 
struct  Range< Point3, Point3 >
 
struct  Range< Pose2, T >
 
struct  Range< Pose3, T >
 
struct  Range< PoseRTV, PoseRTV >
 
class  RangeFactor
 
class  RangeFactorWithTransform
 
class  Reconstruction
 
struct  RedirectCout
 
class  RefCallPushBack
 
class  ReferenceFrameFactor
 
class  RegularHessianFactor
 
class  RegularImplicitSchurFactor
 
class  RegularJacobianFactor
 
class  RelativeElevationFactor
 
struct  Reshape
 Reshape functor. More...
 
struct  Reshape< M, M, InOptions, M, M, InOptions >
 Reshape specialization that does nothing as shape stays the same (needed to not be ambiguous for square input equals square output) More...
 
struct  Reshape< M, N, InOptions, M, N, InOptions >
 Reshape specialization that does nothing as shape stays the same. More...
 
struct  Reshape< N, M, InOptions, M, N, InOptions >
 Reshape specialization that does transpose. More...
 
class  Rot2
 
class  Rot3
 Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIONS is not defined, or as a quaternion if it is defined. More...
 
class  Rot3AttitudeFactor
 
class  RotateDirectionsFactor
 
class  RotateFactor
 
class  RuntimeErrorThreadsafe
 Thread-safe runtime error exception. More...
 
class  Sampler
 
class  ScalarMultiplyExpression
 
class  Scatter
 
class  Scenario
 Simple trajectory simulator. More...
 
class  ScenarioRunner
 
class  Scheduler
 
class  SDGraph
 
struct  SfmData
 SfmData stores a bunch of SfmTracks. More...
 
struct  SfmTrack
 
struct  SfmTrack2d
 Track containing 2D measurements associated with a single 3D point. Note: Equivalent to gtsam.SfmTrack, but without the 3d measurement. This class holds data temporarily before 3D point is initialized. More...
 
class  SGraph
 
class  ShonanAveraging
 
class  ShonanAveraging2
 
class  ShonanAveraging3
 
struct  ShonanAveragingParameters
 Parameters governing optimization etc. More...
 
class  ShonanFactor
 
class  ShonanGaugeFactor
 
class  Signature
 
struct  SignatureParser
 A simple parser that replaces the boost spirit parser. More...
 
class  Similarity2
 
class  Similarity3
 
class  SimPolygon2D
 
class  SimWall2D
 
class  SingleValue
 
struct  SlotEntry
 One SlotEntry stores the slot index for a variable, as well its dim. More...
 
class  SmartFactorBase
 Base class for smart factors. This base class has no internal point, but it has a measurement, noise model and an optional sensor pose. This class mainly computes the derivatives and returns them as a variety of factors. The methods take a CameraSet<CAMERA> argument and the value of a point, which is kept in the derived class. More...
 
class  SmartProjectionFactor
 
struct  SmartProjectionParams
 
class  SmartProjectionPoseFactor
 
class  SmartProjectionPoseFactorRollingShutter
 
class  SmartProjectionRigFactor
 
class  SmartRangeFactor
 
class  SmartStereoProjectionFactor
 
class  SmartStereoProjectionFactorPP
 
class  SmartStereoProjectionPoseFactor
 
class  SO
 
class  SphericalCamera
 
class  StereoCamera
 
class  StereoCheiralityException
 
class  StereoPoint2
 
struct  StreamedKey
 To use the key_formatter on Keys, they must be wrapped in a StreamedKey. More...
 
class  Subgraph
 
class  SubgraphBuilder
 
struct  SubgraphBuilderParameters
 
class  SubgraphPreconditioner
 
struct  SubgraphPreconditionerParameters
 
class  SubgraphSolver
 
struct  SubgraphSolverParameters
 
struct  Switching
 
class  Symbol
 
class  SymbolGenerator
 
class  SymbolicBayesNet
 
class  SymbolicBayesTree
 
class  SymbolicBayesTreeClique
 A clique in a SymbolicBayesTree. More...
 
class  SymbolicConditional
 
class  SymbolicEliminationTree
 
class  SymbolicFactor
 
class  SymbolicFactorGraph
 
class  SymbolicISAM
 
class  SymbolicJunctionTree
 
class  SymmetricBlockMatrix
 
class  System
 
class  TangentPreintegration
 
class  TbbOpenMPMixedScope
 
struct  Testable
 
class  ThreadsafeException
 Base exception type that uses tbb_allocator if GTSAM is compiled with TBB. More...
 
class  TimeOfArrival
 Time of arrival to given sensor. More...
 
class  TOAFactor
 A "Time of Arrival" factor - so little code seems hardly worth it :-) More...
 
struct  traits
 
struct  traits< AlgebraicDecisionTree< T > >
 
struct  traits< BearingFactor< A1, A2, T > >
 traits More...
 
struct  traits< BearingRange< A1, A2 > >
 
struct  traits< BearingRangeFactor< A1, A2, B, R > >
 traits More...
 
struct  traits< BearingS2 >
 traits More...
 
struct  traits< BetweenConstraint< VALUE > >
 traits More...
 
struct  traits< BetweenFactor< VALUE > >
 traits More...
 
struct  traits< BetweenFactorEM< VALUE > >
 traits More...
 
struct  traits< BinaryJacobianFactor< M, N1, N2 > >
 
struct  traits< Cal3_S2 >
 
struct  traits< Cal3_S2Stereo >
 
struct  traits< Cal3Bundler >
 
struct  traits< Cal3DS2 >
 
struct  traits< Cal3Fisheye >
 
struct  traits< Cal3Unified >
 
struct  traits< CalibratedCamera >
 
struct  traits< CameraSet< CAMERA > >
 
struct  traits< CombinedImuFactor >
 
struct  traits< ConcurrentBatchFilter >
 traits More...
 
struct  traits< ConcurrentBatchSmoother >
 traits More...
 
struct  traits< ConcurrentIncrementalFilter >
 traits More...
 
struct  traits< ConcurrentIncrementalSmoother >
 traits More...
 
struct  traits< const Cal3_S2 >
 
struct  traits< const Cal3_S2Stereo >
 
struct  traits< const Cal3Bundler >
 
struct  traits< const Cal3DS2 >
 
struct  traits< const Cal3Fisheye >
 
struct  traits< const Cal3Unified >
 
struct  traits< const CalibratedCamera >
 
struct  traits< const CameraSet< CAMERA > >
 
struct  traits< const EssentialMatrix >
 
struct  traits< const Line3 >
 
struct  traits< const OrientedPlane3 >
 
struct  traits< const PinholeCamera< Calibration > >
 
struct  traits< const PinholePose< CALIBRATION > >
 
struct  traits< const PinholeSet< CAMERA > >
 
struct  traits< const Pose2 >
 
struct  traits< const Pose3 >
 
struct  traits< const Rot2 >
 
struct  traits< const Rot3 >
 
struct  traits< const Similarity2 >
 
struct  traits< const Similarity3 >
 
struct  traits< const SO3 >
 
struct  traits< const SO4 >
 
struct  traits< const SO< N > >
 
struct  traits< const SphericalCamera >
 
struct  traits< const StereoCamera >
 
struct  traits< const StereoPoint2 >
 
struct  traits< const Unit3 >
 
struct  traits< Cyclic< N > >
 Define cyclic group to be a model of the Additive Group concept. More...
 
struct  traits< DecisionTree< L, Y > >
 
struct  traits< DecisionTreeFactor >
 
struct  traits< DirectProduct< G, H > >
 
struct  traits< DirectSum< G, H > >
 
struct  traits< DiscreteBayesNet >
 
struct  traits< DiscreteConditional >
 
struct  traits< DiscreteDistribution >
 
struct  traits< DiscreteFactor >
 
struct  traits< DiscreteFactorGraph >
 traits More...
 
struct  traits< DiscreteKeys >
 
struct  traits< DiscreteLookupDAG >
 
struct  traits< DiscreteValues >
 
struct  traits< double >
 double More...
 
struct  traits< Eigen::Matrix< double, -1, -1, Options, MaxRows, MaxCols > >
 
struct  traits< Eigen::Matrix< double, -1, 1, Options, MaxRows, MaxCols > >
 
struct  traits< Eigen::Matrix< double, 1, -1, Options, MaxRows, MaxCols > >
 
struct  traits< Eigen::Matrix< double, M, N, Options, MaxRows, MaxCols > >
 
struct  traits< EqualityFactorGraph >
 traits More...
 
struct  traits< Errors >
 traits More...
 
struct  traits< EssentialMatrix >
 
struct  traits< Event >
 
struct  traits< ExpressionFactor< T > >
 traits More...
 
struct  traits< ExpressionFactorN< T, Args... > >
 traits More...
 
struct  traits< float >
 float More...
 
struct  traits< FunctorizedFactor2< R, T1, T2 > >
 traits More...
 
struct  traits< FunctorizedFactor< R, T > >
 traits More...
 
struct  traits< GaussianBayesNet >
 traits More...
 
struct  traits< GaussianBayesTree >
 traits More...
 
struct  traits< GaussianConditional >
 traits More...
 
struct  traits< GaussianFactor >
 traits More...
 
struct  traits< GaussianFactorGraph >
 traits More...
 
struct  traits< GaussianISAM >
 traits More...
 
struct  traits< GaussianMixture >
 
struct  traits< GaussianMixtureFactor >
 
struct  traits< GaussMarkov1stOrderFactor< VALUE > >
 traits More...
 
struct  traits< GeneralSFMFactor2< CALIBRATION > >
 
struct  traits< GeneralSFMFactor< CAMERA, LANDMARK > >
 
struct  traits< GenericProjectionFactor< POSE, LANDMARK, CALIBRATION > >
 traits More...
 
struct  traits< GenericStereoFactor< T1, T2 > >
 traits More...
 
struct  traits< GenericValue< ValueType > >
 
struct  traits< HessianFactor >
 traits More...
 
struct  traits< HybridBayesNet >
 traits More...
 
struct  traits< HybridBayesTree >
 traits More...
 
struct  traits< HybridConditional >
 
struct  traits< HybridFactor >
 
struct  traits< HybridGaussianISAM >
 traits More...
 
struct  traits< HybridNonlinearFactorGraph >
 
struct  traits< HybridValues >
 
struct  traits< imuBias::ConstantBias >
 
struct  traits< ImuFactor >
 
struct  traits< ImuFactor2 >
 
struct  traits< InequalityFactorGraph >
 traits More...
 
struct  traits< InertialNavFactor_GlobalVelocity< POSE, VELOCITY, IMUBIAS > >
 traits More...
 
struct  traits< ISAM2 >
 traits More...
 
struct  traits< JacobianFactor >
 traits More...
 
struct  traits< JacobianFactorQ< D, ZDim > >
 
struct  traits< Key >
 
struct  traits< LabeledSymbol >
 traits More...
 
struct  traits< Line3 >
 
struct  traits< LinearContainerFactor >
 
struct  traits< LinearCost >
 traits More...
 
struct  traits< LinearEquality >
 traits More...
 
struct  traits< LinearInequality >
 traits More...
 
struct  traits< LinearizedHessianFactor >
 traits More...
 
struct  traits< LinearizedJacobianFactor >
 traits More...
 
struct  traits< LP >
 traits More...
 
struct  traits< NavState >
 
struct  traits< noiseModel::Constrained >
 
struct  traits< noiseModel::Diagonal >
 
struct  traits< noiseModel::Gaussian >
 traits More...
 
struct  traits< noiseModel::Isotropic >
 
struct  traits< noiseModel::Unit >
 
struct  traits< NonlinearEquality1< VALUE > >
 
struct  traits< NonlinearEquality2< VALUE > >
 
struct  traits< NonlinearEquality< VALUE > >
 
struct  traits< NonlinearFactor >
 traits More...
 
struct  traits< NonlinearFactorGraph >
 traits More...
 
struct  traits< Ordering >
 traits More...
 
struct  traits< OrientedPlane3 >
 
struct  traits< ParameterMatrix< M > >
 
struct  traits< PinholeCamera< Calibration > >
 
struct  traits< PinholeFactor >
 traits More...
 
struct  traits< PinholePose< CALIBRATION > >
 
struct  traits< PinholeSet< CAMERA > >
 
struct  traits< Pose2 >
 
struct  traits< Pose3 >
 
struct  traits< Pose3AttitudeFactor >
 traits More...
 
struct  traits< Pose3Upright >
 
struct  traits< PoseRTV >
 
struct  traits< PreintegratedCombinedMeasurements >
 
struct  traits< PreintegratedImuMeasurements >
 
struct  traits< PreintegratedRotation >
 
struct  traits< PreintegrationCombinedParams >
 
struct  traits< PriorFactor< VALUE > >
 traits More...
 
struct  traits< ProductLieGroup< G, H > >
 
struct  traits< ProjectionFactorPPP< POSE, LANDMARK, CALIBRATION > >
 traits More...
 
struct  traits< ProjectionFactorPPPC< POSE, LANDMARK, CALIBRATION > >
 traits More...
 
struct  traits< ProjectionFactorRollingShutter >
 traits More...
 
struct  traits< QUATERNION_TYPE >
 
struct  traits< RangeFactor< A1, A2, T > >
 traits More...
 
struct  traits< RangeFactorWithTransform< A1, A2, T > >
 traits More...
 
struct  traits< ReferenceFrameFactor< T1, T2 > >
 traits More...
 
struct  traits< RegularHessianFactor< D > >
 
struct  traits< RegularImplicitSchurFactor< CAMERA > >
 
struct  traits< Rot2 >
 
struct  traits< Rot3 >
 
struct  traits< Rot3AttitudeFactor >
 traits More...
 
struct  traits< SfmData >
 traits More...
 
struct  traits< SfmTrack >
 
struct  traits< Similarity2 >
 
struct  traits< Similarity3 >
 
struct  traits< SimWall2D >
 traits More...
 
struct  traits< SmartProjectionFactor< CAMERA > >
 traits More...
 
struct  traits< SmartProjectionPoseFactor< CALIBRATION > >
 traits More...
 
struct  traits< SmartProjectionPoseFactorRollingShutter< CAMERA > >
 traits More...
 
struct  traits< SmartProjectionRigFactor< CAMERA > >
 traits More...
 
struct  traits< SmartStereoProjectionFactor >
 traits More...
 
struct  traits< SmartStereoProjectionFactorPP >
 traits More...
 
struct  traits< SmartStereoProjectionPoseFactor >
 traits More...
 
struct  traits< SO3 >
 
struct  traits< SO4 >
 
struct  traits< SO< N > >
 
struct  traits< SphericalCamera >
 
struct  traits< StereoCamera >
 
struct  traits< StereoPoint2 >
 
struct  traits< Symbol >
 traits More...
 
struct  traits< SymbolicBayesNet >
 traits More...
 
struct  traits< SymbolicBayesTree >
 
struct  traits< SymbolicBayesTreeClique >
 traits More...
 
struct  traits< SymbolicConditional >
 traits More...
 
struct  traits< SymbolicEliminationTree >
 traits More...
 
struct  traits< SymbolicFactor >
 traits More...
 
struct  traits< SymbolicFactorGraph >
 traits More...
 
struct  traits< TransformBtwRobotsUnaryFactor< VALUE > >
 traits More...
 
struct  traits< TransformBtwRobotsUnaryFactorEM< VALUE > >
 traits More...
 
struct  traits< Unit3 >
 
struct  traits< Values >
 traits More...
 
struct  traits< VariableIndex >
 traits More...
 
struct  traits< VariableSlots >
 traits More...
 
struct  traits< VectorValues >
 traits More...
 
class  TransformBtwRobotsUnaryFactor
 
class  TransformBtwRobotsUnaryFactorEM
 
class  TransformCovariance
 
class  TranslationFactor
 
class  TranslationRecovery
 
class  TriangulationCheiralityException
 Exception thrown by triangulateDLT when landmark is behind one or more of the cameras. More...
 
class  TriangulationFactor
 
struct  TriangulationParameters
 
class  TriangulationResult
 
class  TriangulationUnderconstrainedException
 Exception thrown by triangulateDLT when SVD returns rank < 3. More...
 
class  Unit3
 Represents a 3D point on a unit sphere. More...
 
struct  UpdateImpl
 
class  Value
 
class  ValueCloneAllocator
 
class  Values
 
struct  ValuesCastHelper
 
struct  ValuesCastHelper< const Value, CastedKeyValuePairType, KeyValuePairType >
 
struct  ValuesCastHelper< Value, CastedKeyValuePairType, KeyValuePairType >
 
class  ValuesIncorrectType
 
class  ValuesKeyAlreadyExists
 
class  ValuesKeyDoesNotExist
 
struct  ValueWithDefault
 
class  VariableIndex
 
class  VariableSlots
 
struct  vector_space_tag
 tag to assert a type is a vector space More...
 
class  VectorComponentFactor
 
class  VectorDerivativeFactor
 
class  VectorEvaluationFactor
 
class  VectorValues
 
class  VelocityConstraint
 
class  VelocityConstraint3
 
struct  VelocityPrior
 
class  VerticalBlockMatrix
 
struct  Visit
 
struct  VisitLeaf
 
struct  VisitWith
 
class  WeightedSampler
 
class  WhiteNoiseFactor
 Binary factor to estimate parameters of zero-mean Gaussian white noise. More...
 

Typedefs

typedef std::vector< IndexPairIndexPairVector
 
typedef std::set< IndexPairIndexPairSet
 
typedef std::map< IndexPair, IndexPairSet > IndexPairSetMap
 
typedef DSFMap< IndexPairDSFMapIndexPair
 
template<typename T >
using FastVector = std::vector< T, typename internal::FastDefaultVectorAllocator< T >::type >
 
template<bool B, class T = void>
using enable_if_t = typename std::enable_if< B, T >::type
 An shorthand alias for accessing the ::type inside std::enable_if that can be used in a template directly.
 
typedef Eigen::MatrixXd Matrix
 
typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixRowMajor
 
typedef Eigen::Block< Matrix > SubMatrix
 
typedef Eigen::Block< const Matrix > ConstSubMatrix
 
typedef std::uint64_t Key
 Integer nonlinear key type.
 
typedef std::uint64_t FactorIndex
 Integer nonlinear factor index type.
 
typedef ptrdiff_t DenseIndex
 The index type for Eigen objects.
 
template<typename ... >
using void_t = void
 Convenience void_t as we assume C++11, it will not conflict the std one in C++17 as this is in gtsam::
 
template<class... T>
using index_sequence_for = make_index_sequence< sizeof...(T)>
 
typedef Eigen::VectorXd Vector
 
typedef Eigen::Matrix< double, 1, 1 > Vector1
 
typedef Eigen::Vector2d Vector2
 
typedef Eigen::Vector3d Vector3
 
typedef Eigen::VectorBlock< Vector > SubVector
 
typedef Eigen::VectorBlock< const Vector > ConstSubVector
 
using Weights = Eigen::Matrix< double, 1, -1 >
 
using Sequence = std::map< double, double >
 Our sequence representation is a map of {x: y} values where y = f(x)
 
using Sample = std::pair< double, double >
 A sample is a key-value pair from a sequence.
 
using DiscreteKey = std::pair< Key, size_t >
 
typedef Vector2 Point2
 
using Point2Pair = std::pair< Point2, Point2 >
 
using Point2Pairs = std::vector< Point2Pair >
 
typedef std::vector< Point2, Eigen::aligned_allocator< Point2 > > Point2Vector
 
typedef Vector3 Point3
 
typedef std::vector< Point3, Eigen::aligned_allocator< Point3 > > Point3Vector
 
using Point3Pair = std::pair< Point3, Point3 >
 
using Point3Pairs = std::vector< Point3Pair >
 
using Pose2Pair = std::pair< Pose2, Pose2 >
 
using Pose2Pairs = std::vector< Pose2Pair >
 
using Pose3Pair = std::pair< Pose3, Pose3 >
 
using Pose3Pairs = std::vector< std::pair< Pose3, Pose3 > >
 
typedef std::vector< Pose3Pose3Vector
 
typedef Eigen::Quaternion< double, Eigen::DontAlign > Quaternion
 
using Rot3Vector = std::vector< Rot3, Eigen::aligned_allocator< Rot3 > >
 std::vector of Rot3s, mainly for wrapper
 
using PinholeCameraCal3_S2 = gtsam::PinholeCamera< gtsam::Cal3_S2 >
 
using PinholeCameraCal3Bundler = gtsam::PinholeCamera< gtsam::Cal3Bundler >
 
using PinholeCameraCal3DS2 = gtsam::PinholeCamera< gtsam::Cal3DS2 >
 
using PinholeCameraCal3Unified = gtsam::PinholeCamera< gtsam::Cal3Unified >
 
using PinholeCameraCal3Fisheye = gtsam::PinholeCamera< gtsam::Cal3Fisheye >
 
using SO3 = SO< 3 >
 
using SO4 = SO< 4 >
 
using SOn = SO< Eigen::Dynamic >
 
using DynamicJacobian = OptionalJacobian< Eigen::Dynamic, Eigen::Dynamic >
 
typedef std::vector< StereoPoint2StereoPoint2Vector
 
using CameraSetCal3Bundler = CameraSet< PinholeCamera< Cal3Bundler > >
 
using CameraSetCal3_S2 = CameraSet< PinholeCamera< Cal3_S2 > >
 
using CameraSetCal3DS2 = CameraSet< PinholeCamera< Cal3DS2 > >
 
using CameraSetCal3Fisheye = CameraSet< PinholeCamera< Cal3Fisheye > >
 
using CameraSetCal3Unified = CameraSet< PinholeCamera< Cal3Unified > >
 
using CameraSetSpherical = CameraSet< SphericalCamera >
 
using GaussianFactorGraphTree = DecisionTree< Key, GaussianFactorGraph >
 Alias for DecisionTree of GaussianFactorGraphs.
 
using SharedFactor = std::shared_ptr< Factor >
 
using MotionModel = BetweenFactor< double >
 
typedef FastVector< FactorIndexFactorIndices
 Define collection types: More...
 
typedef FastSet< FactorIndexFactorIndexSet
 
using KeyFormatter = std::function< std::string(Key)>
 Typedef for a function to format a key, i.e. to convert it to a string.
 
using KeyVector = FastVector< Key >
 Define collection type once and for all - also used in wrappers.
 
using KeyList = FastList< Key >
 
using KeySet = FastSet< Key >
 
using KeyGroupMap = FastMap< Key, int >
 
using Sparse = Eigen::SparseMatrix< double >
 
using Errors = FastList< Vector >
 Errors is a vector of errors.
 
typedef noiseModel::Base::shared_ptr SharedNoiseModel
 
typedef noiseModel::Gaussian::shared_ptr SharedGaussian
 
typedef noiseModel::Diagonal::shared_ptr SharedDiagonal
 
typedef noiseModel::Constrained::shared_ptr SharedConstrained
 
typedef noiseModel::Isotropic::shared_ptr SharedIsotropic
 
typedef Eigen::SparseMatrix< double, Eigen::ColMajor, int > SparseEigen
 
typedef ManifoldPreintegration PreintegrationType
 
typedef Expression< NavStateNavState_
 
typedef Expression< Velocity3Velocity3_
 
typedef Vector3 Velocity3
 Velocity is currently typedef'd to Vector3. More...
 
using JacobianVector = std::vector< Matrix >
 
using CustomErrorFunction = std::function< Vector(const CustomFactor &, const Values &, const JacobianVector *)>
 
typedef Expression< double > Double_
 
typedef Expression< Vector1 > Vector1_
 
typedef Expression< Vector2 > Vector2_
 
typedef Expression< Vector3 > Vector3_
 
typedef Expression< Vector4 > Vector4_
 
typedef Expression< Vector5 > Vector5_
 
typedef Expression< Vector6 > Vector6_
 
typedef Expression< Vector7 > Vector7_
 
typedef Expression< Vector8 > Vector8_
 
typedef Expression< Vector9 > Vector9_
 
typedef FastMap< char, Vector > ISAM2ThresholdMap
 
typedef ISAM2ThresholdMap::value_type ISAM2ThresholdMapValue
 
using OptionalMatrixType = Matrix *
 
using OptionalMatrixVecType = std::vector< Matrix > *
 
typedef NonlinearOptimizerParams SuccessiveLinearizationParams
 
typedef std::map< std::pair< Key, Key >, double > KeyPairDoubleMap
 
typedef PinholeCamera< Cal3BundlerSfmCamera
 Define the structure for the camera poses.
 
typedef std::pair< size_t, Point2SfmMeasurement
 A measurement with its camera index.
 
typedef std::pair< size_t, size_t > SiftIndex
 Sift index for SfmTrack.
 
using SfmTrack2dVector = std::vector< SfmTrack2d >
 
using ShonanAveragingParameters2 = ShonanAveragingParameters< 2 >
 
using ShonanAveragingParameters3 = ShonanAveragingParameters< 3 >
 
using ShonanFactor2 = ShonanFactor< 2 >
 
using ShonanFactor3 = ShonanFactor< 3 >
 
typedef std::pair< size_t, Pose2IndexedPose
 Return type for auxiliary functions.
 
typedef std::pair< size_t, Point2IndexedLandmark
 
typedef std::pair< std::pair< size_t, size_t >, Pose2IndexedEdge
 
using GraphAndValues = std::pair< NonlinearFactorGraph::shared_ptr, Values::shared_ptr >
 
using BetweenFactorPose2s = std::vector< BetweenFactor< Pose2 >::shared_ptr >
 
using BetweenFactorPose3s = std::vector< BetweenFactor< Pose3 >::shared_ptr >
 
using BinaryMeasurementsUnit3 = std::vector< BinaryMeasurement< Unit3 > >
 
using BinaryMeasurementsPoint3 = std::vector< BinaryMeasurement< Point3 > >
 
using BinaryMeasurementsRot3 = std::vector< BinaryMeasurement< Rot3 > >
 
typedef Expression< Point2Point2_
 
typedef Expression< Rot2Rot2_
 
typedef Expression< Pose2Pose2_
 
typedef Expression< Point3Point3_
 
typedef Expression< Unit3Unit3_
 
typedef Expression< Rot3Rot3_
 
typedef Expression< Pose3Pose3_
 
typedef Expression< Line3Line3_
 
typedef Expression< OrientedPlane3OrientedPlane3_
 
typedef Expression< Cal3_S2Cal3_S2_
 
typedef Expression< Cal3BundlerCal3Bundler_
 
typedef std::map< Key, std::vector< size_t > > KeyVectorMap
 
typedef std::map< Key, Rot3KeyRotMap
 
typedef DSF< int > DSFInt
 
using Domains = std::map< Key, Domain >
 
typedef std::vector< SimPolygon2DSimPolygon2DVector
 
typedef std::vector< SimWall2DSimWall2DVector
 
typedef Eigen::RowVectorXd RowVector
 
using KeyDimMap = std::map< Key, size_t >
 Mapping between variable's key and its corresponding dimensionality.
 
using LPSolver = ActiveSetSolver< LP, LPPolicy, LPInitSolver >
 
using QPSolver = ActiveSetSolver< QP, QPPolicy, QPInitSolver >
 
typedef ConcurrentBatchFilter::Result ConcurrentBatchFilterResult
 Typedef for Matlab wrapping.
 
typedef ConcurrentBatchSmoother::Result ConcurrentBatchSmootherResult
 Typedef for Matlab wrapping.
 
typedef ConcurrentIncrementalFilter::Result ConcurrentIncrementalFilterResult
 Typedef for Matlab wrapping.
 
typedef ConcurrentIncrementalSmoother::Result ConcurrentIncrementalSmootherResult
 Typedef for Matlab wrapping.
 
typedef FixedLagSmoother::KeyTimestampMap FixedLagSmootherKeyTimestampMap
 Typedef for matlab wrapping.
 
typedef FixedLagSmootherKeyTimestampMap::value_type FixedLagSmootherKeyTimestampMapValue
 
typedef FixedLagSmoother::Result FixedLagSmootherResult
 
typedef SmartProjectionParams SmartStereoProjectionParams
 

Enumerations

enum  GncLossType { GM, TLS }
 Choice of robust loss function for GNC.
 
enum  NoiseFormat {
  NoiseFormatG2O, NoiseFormatTORO, NoiseFormatGRAPH, NoiseFormatCOV,
  NoiseFormatAUTO
}
 Indicates how noise parameters are stored in file. More...
 
enum  KernelFunctionType { KernelFunctionTypeNONE, KernelFunctionTypeHUBER, KernelFunctionTypeTUKEY }
 Robust kernel type to wrap around quadratic noise model.
 
enum  LinearizationMode { HESSIAN, IMPLICIT_SCHUR, JACOBIAN_Q, JACOBIAN_SVD }
 Linearization mode: what factor to linearize to. More...
 
enum  DegeneracyMode { IGNORE_DEGENERACY, ZERO_ON_DEGENERACY, HANDLE_INFINITY }
 How to manage degeneracy.
 

Functions

template<typename T >
void testDefaultChart (TestResult &result_, const std::string &name_, const T &value)
 
GTSAM_EXPORT std::pair< size_t, bool > choleskyCareful (Matrix &ATA, int order=-1)
 
GTSAM_EXPORT bool choleskyPartial (Matrix &ABC, size_t nFrontal, size_t topleft=0)
 
bool GTSAM_EXPORT guardedIsDebug (const std::string &s)
 
void GTSAM_EXPORT guardedSetDebug (const std::string &s, const bool v)
 
bool GTSAM_EXPORT isDebugVersion ()
 
IndexPairVector IndexPairSetAsArray (IndexPairSet &set)
 
template<class T >
GenericValue< T > genericValue (const T &v)
 
template<typename G >
 GTSAM_CONCEPT_REQUIRES (IsGroup< G >, bool) check_group_invariants(const G &a
 Check invariants.
 
template<class Class >
Class between_default (const Class &l1, const Class &l2)
 
template<class Class >
Vector logmap_default (const Class &l0, const Class &lp)
 
template<class Class >
Class expmap_default (const Class &t, const Vector &d)
 
template<class T >
BCH (const T &X, const T &Y)
 AGC: bracket() only appears in Rot3 tests, should this be used elsewhere? More...
 
template<class T >
Matrix wedge (const Vector &x)
 
template<class T >
expm (const Vector &x, int K=7)
 
template<typename T >
interpolate (const T &X, const T &Y, double t, typename MakeOptionalJacobian< T, T >::type Hx={}, typename MakeOptionalJacobian< T, T >::type Hy={})
 
template<typename T , typename ... Args>
gtsam::enable_if_t< needs_eigen_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared (Args &&... args)
 
template<typename T , typename ... Args>
gtsam::enable_if_t<!needs_eigen_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared (Args &&... args)
 Fall back to the boost version if no need for alignment.
 
template<typename T >
 GTSAM_CONCEPT_REQUIRES (IsTestable< T >, bool) check_manifold_invariants(const T &a
 Check invariants for Manifold type.
 
const Eigen::IOFormat & matlabFormat ()
 
template<class MATRIX >
bool equal_with_abs_tol (const Eigen::DenseBase< MATRIX > &A, const Eigen::DenseBase< MATRIX > &B, double tol=1e-9)
 
bool operator== (const Matrix &A, const Matrix &B)
 
bool operator!= (const Matrix &A, const Matrix &B)
 
GTSAM_EXPORT bool assert_equal (const Matrix &A, const Matrix &B, double tol=1e-9)
 
GTSAM_EXPORT bool assert_inequal (const Matrix &A, const Matrix &B, double tol=1e-9)
 
GTSAM_EXPORT bool assert_equal (const std::list< Matrix > &As, const std::list< Matrix > &Bs, double tol=1e-9)
 
GTSAM_EXPORT bool linear_independent (const Matrix &A, const Matrix &B, double tol=1e-9)
 
GTSAM_EXPORT bool linear_dependent (const Matrix &A, const Matrix &B, double tol=1e-9)
 
GTSAM_EXPORT Vector operator^ (const Matrix &A, const Vector &v)
 
template<class MATRIX >
MATRIX prod (const MATRIX &A, const MATRIX &B)
 
GTSAM_EXPORT void print (const Matrix &A, const std::string &s, std::ostream &stream)
 
GTSAM_EXPORT void print (const Matrix &A, const std::string &s="")
 
GTSAM_EXPORT void save (const Matrix &A, const std::string &s, const std::string &filename)
 
GTSAM_EXPORT std::istream & operator>> (std::istream &inputStream, Matrix &destinationMatrix)
 
template<class MATRIX >
Eigen::Block< const MATRIX > sub (const MATRIX &A, size_t i1, size_t i2, size_t j1, size_t j2)
 
template<typename Derived1 , typename Derived2 >
void insertSub (Eigen::MatrixBase< Derived1 > &fullMatrix, const Eigen::MatrixBase< Derived2 > &subMatrix, size_t i, size_t j)
 
GTSAM_EXPORT Matrix diag (const std::vector< Matrix > &Hs)
 
template<class MATRIX >
const MATRIX::ConstColXpr column (const MATRIX &A, size_t j)
 
template<class MATRIX >
const MATRIX::ConstRowXpr row (const MATRIX &A, size_t j)
 
template<class MATRIX >
void zeroBelowDiagonal (MATRIX &A, size_t cols=0)
 
Matrix trans (const Matrix &A)
 
template<int OutM, int OutN, int OutOptions, int InM, int InN, int InOptions>
Reshape< OutM, OutN, OutOptions, InM, InN, InOptions >::ReshapedType reshape (const Eigen::Matrix< double, InM, InN, InOptions > &m)
 
GTSAM_EXPORT std::pair< Matrix, Matrix > qr (const Matrix &A)
 
GTSAM_EXPORT void inplace_QR (Matrix &A)
 
GTSAM_EXPORT std::list< std::tuple< Vector, double, double > > weighted_eliminate (Matrix &A, Vector &b, const Vector &sigmas)
 
GTSAM_EXPORT void householder_ (Matrix &A, size_t k, bool copy_vectors=true)
 
GTSAM_EXPORT void householder (Matrix &A, size_t k)
 
GTSAM_EXPORT Vector backSubstituteUpper (const Matrix &U, const Vector &b, bool unit=false)
 
GTSAM_EXPORT Vector backSubstituteUpper (const Vector &b, const Matrix &U, bool unit=false)
 
GTSAM_EXPORT Vector backSubstituteLower (const Matrix &L, const Vector &b, bool unit=false)
 
GTSAM_EXPORT Matrix stack (size_t nrMatrices,...)
 
GTSAM_EXPORT Matrix stack (const std::vector< Matrix > &blocks)
 
GTSAM_EXPORT Matrix collect (const std::vector< const Matrix *> &matrices, size_t m=0, size_t n=0)
 
GTSAM_EXPORT Matrix collect (size_t nrMatrices,...)
 
GTSAM_EXPORT void vector_scale_inplace (const Vector &v, Matrix &A, bool inf_mask=false)
 
GTSAM_EXPORT Matrix vector_scale (const Vector &v, const Matrix &A, bool inf_mask=false)
 
GTSAM_EXPORT Matrix vector_scale (const Matrix &A, const Vector &v, bool inf_mask=false)
 
Matrix3 skewSymmetric (double wx, double wy, double wz)
 
template<class Derived >
Matrix3 skewSymmetric (const Eigen::MatrixBase< Derived > &w)
 
GTSAM_EXPORT Matrix inverse_square_root (const Matrix &A)
 
GTSAM_EXPORT Matrix cholesky_inverse (const Matrix &A)
 
GTSAM_EXPORT void svd (const Matrix &A, Matrix &U, Vector &S, Matrix &V)
 
GTSAM_EXPORT std::tuple< int, double, Vector > DLT (const Matrix &A, double rank_tol=1e-9)
 
GTSAM_EXPORT Matrix expm (const Matrix &A, size_t K=7)
 
std::string formatMatrixIndented (const std::string &label, const Matrix &matrix, bool makeVectorHorizontal=false)
 
GTSAM_EXPORT Matrix LLt (const Matrix &A)
 
GTSAM_EXPORT Matrix RtR (const Matrix &A)
 
GTSAM_EXPORT Vector columnNormSquare (const Matrix &A)
 
template<class X , int N = traits<X>::dimension>
Eigen::Matrix< double, N, 1 > numericalGradient (std::function< double(const X &)> h, const X &x, double delta=1e-5)
 Numerically compute gradient of scalar function. More...
 
template<class Y , class X , int N = traits<X>::dimension>
internal::FixedSizeMatrix< Y, X >::type numericalDerivative11 (std::function< Y(const X &)> h, const X &x, double delta=1e-5)
 New-style numerical derivatives using manifold_traits. More...
 
template<class Y , class X >
internal::FixedSizeMatrix< Y, X >::type numericalDerivative11 (Y(*h)(const X &), const X &x, double delta=1e-5)
 
template<class Y , class X1 , class X2 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative21 (const std::function< Y(const X1 &, const X2 &)> &h, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 >
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative21 (Y(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative22 (std::function< Y(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 >
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative22 (Y(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative31 (std::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative31 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative32 (std::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative32 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative33 (std::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative33 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative41 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 >
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative41 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative42 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 >
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative42 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative43 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 >
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative43 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative44 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 >
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative44 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative51 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 >
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative51 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative52 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 >
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative52 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative53 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 >
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative53 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative54 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 >
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative54 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X5>::dimension>
internal::FixedSizeMatrix< Y, X5 >::type numericalDerivative55 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 >
internal::FixedSizeMatrix< Y, X5 >::type numericalDerivative55 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative61 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X1 >::type numericalDerivative61 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative62 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X2 >::type numericalDerivative62 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative63 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X3 >::type numericalDerivative63 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative64 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X4 >::type numericalDerivative64 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X5>::dimension>
internal::FixedSizeMatrix< Y, X5 >::type numericalDerivative65 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X5 >::type numericalDerivative65 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X6>::dimension>
internal::FixedSizeMatrix< Y, X6 >::type numericalDerivative66 (std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 >
internal::FixedSizeMatrix< Y, X6 >::type numericalDerivative66 (Y(*h)(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &), const X1 &x1, const X2 &x2, const X3 &x3, const X4 &x4, const X5 &x5, const X6 &x6, double delta=1e-5)
 
template<class X >
internal::FixedSizeMatrix< X, X >::type numericalHessian (std::function< double(const X &)> f, const X &x, double delta=1e-5)
 
template<class X >
internal::FixedSizeMatrix< X, X >::type numericalHessian (double(*f)(const X &), const X &x, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X1, X2 >::type numericalHessian212 (std::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X1, X2 >::type numericalHessian212 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X1, X1 >::type numericalHessian211 (std::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X1, X1 >::type numericalHessian211 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X2, X2 >::type numericalHessian222 (std::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
internal::FixedSizeMatrix< X2, X2 >::type numericalHessian222 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X1 >::type numericalHessian311 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X1 >::type numericalHessian311 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X2, X2 >::type numericalHessian322 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X2, X2 >::type numericalHessian322 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X3, X3 >::type numericalHessian333 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X3, X3 >::type numericalHessian333 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X2 >::type numericalHessian312 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X3 >::type numericalHessian313 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X2, X3 >::type numericalHessian323 (std::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X2 >::type numericalHessian312 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X1, X3 >::type numericalHessian313 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix< X2, X3 >::type numericalHessian323 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
void print (float v, const std::string &s="")
 
void print (double v, const std::string &s="")
 
template<class T >
bool equal (const T &obj1, const T &obj2, double tol)
 
template<class T >
bool equal (const T &obj1, const T &obj2)
 
template<class V >
bool assert_equal (const V &expected, const V &actual, double tol=1e-9)
 
bool assert_equal (const Key &expected, const Key &actual, double tol=0.0)
 
template<class V >
bool assert_equal (const std::optional< V > &expected, const std::optional< V > &actual, double tol=1e-9)
 
template<class V >
bool assert_equal (const V &expected, const std::optional< V > &actual, double tol=1e-9)
 
template<class V >
bool assert_equal (const V &expected, const std::optional< std::reference_wrapper< const V >> &actual, double tol=1e-9)
 
template<class V1 , class V2 >
bool assert_container_equal (const std::map< V1, V2 > &expected, const std::map< V1, V2 > &actual, double tol=1e-9)
 
template<class V2 >
bool assert_container_equal (const std::map< size_t, V2 > &expected, const std::map< size_t, V2 > &actual, double tol=1e-9)
 
template<class V1 , class V2 >
bool assert_container_equal (const std::vector< std::pair< V1, V2 > > &expected, const std::vector< std::pair< V1, V2 > > &actual, double tol=1e-9)
 
template<class V >
bool assert_container_equal (const V &expected, const V &actual, double tol=1e-9)
 
template<class V2 >
bool assert_container_equality (const std::map< size_t, V2 > &expected, const std::map< size_t, V2 > &actual)
 
template<class V >
bool assert_container_equality (const V &expected, const V &actual)
 
bool assert_equal (const std::string &expected, const std::string &actual)
 
template<class V >
bool assert_inequal (const V &expected, const V &actual, double tol=1e-9)
 
template<class V >
bool assert_stdout_equal (const std::string &expected, const V &actual)
 
template<class V >
bool assert_print_equal (const std::string &expected, const V &actual, const std::string &s="")
 
template<typename G >
void testLieGroupDerivatives (TestResult &result_, const std::string &name_, const G &t1, const G &t2)
 
template<typename G >
void testChartDerivatives (TestResult &result_, const std::string &name_, const G &t1, const G &t2)
 
void tictoc_finishedIteration_ ()
 
void tictoc_print_ ()
 
void tictoc_print2_ ()
 
void tictoc_reset_ ()
 
std::string GTSAM_EXPORT demangle (const char *name)
 Function to demangle type name of variable, e.g. demangle(typeid(x).name())
 
GTSAM_EXPORT bool fpEqual (double a, double b, double tol, bool check_relative_also=true)
 
GTSAM_EXPORT void print (const Vector &v, const std::string &s, std::ostream &stream)
 
GTSAM_EXPORT void print (const Vector &v, const std::string &s="")
 
GTSAM_EXPORT void save (const Vector &A, const std::string &s, const std::string &filename)
 
GTSAM_EXPORT bool operator== (const Vector &vec1, const Vector &vec2)
 
GTSAM_EXPORT bool greaterThanOrEqual (const Vector &v1, const Vector &v2)
 
GTSAM_EXPORT bool equal_with_abs_tol (const Vector &vec1, const Vector &vec2, double tol=1e-9)
 
GTSAM_EXPORT bool equal_with_abs_tol (const SubVector &vec1, const SubVector &vec2, double tol=1e-9)
 
bool equal (const Vector &vec1, const Vector &vec2, double tol)
 
bool equal (const Vector &vec1, const Vector &vec2)
 
GTSAM_EXPORT bool assert_equal (const Vector &vec1, const Vector &vec2, double tol=1e-9)
 
GTSAM_EXPORT bool assert_inequal (const Vector &vec1, const Vector &vec2, double tol=1e-9)
 
GTSAM_EXPORT bool assert_equal (const SubVector &vec1, const SubVector &vec2, double tol=1e-9)
 
GTSAM_EXPORT bool assert_equal (const ConstSubVector &vec1, const ConstSubVector &vec2, double tol=1e-9)
 
GTSAM_EXPORT bool linear_dependent (const Vector &vec1, const Vector &vec2, double tol=1e-9)
 
GTSAM_EXPORT Vector ediv_ (const Vector &a, const Vector &b)
 
template<class V1 , class V2 >
double dot (const V1 &a, const V2 &b)
 
template<class V1 , class V2 >
double inner_prod (const V1 &a, const V2 &b)
 
GTSAM_EXPORT std::pair< double, Vector > house (const Vector &x)
 
GTSAM_EXPORT double houseInPlace (Vector &x)
 
GTSAM_EXPORT std::pair< Vector, double > weightedPseudoinverse (const Vector &v, const Vector &weights)
 
GTSAM_EXPORT double weightedPseudoinverse (const Vector &a, const Vector &weights, Vector &pseudo)
 
GTSAM_EXPORT Vector concatVectors (const std::list< Vector > &vs)
 
GTSAM_EXPORT Vector concatVectors (size_t nrVectors,...)
 
template<size_t M>
Matrix kroneckerProductIdentity (const Weights &w)
 Function for computing the kronecker product of the 1*N Weight vector w with the MxM identity matrix I efficiently. The main reason for this is so we don't need to use Eigen's Unsupported library. More...
 
template<int M>
std::ostream & operator<< (std::ostream &os, const ParameterMatrix< M > &parameterMatrix)
 
template<typename L , typename Y >
DecisionTree< L, Y > apply (const DecisionTree< L, Y > &f, const typename DecisionTree< L, Y >::Unary &op)
 Apply unary operator op to DecisionTree f. More...
 
template<typename L , typename Y >
DecisionTree< L, Y > apply (const DecisionTree< L, Y > &f, const typename DecisionTree< L, Y >::UnaryAssignment &op)
 Apply unary operator op with Assignment to DecisionTree f.
 
template<typename L , typename Y >
DecisionTree< L, Y > apply (const DecisionTree< L, Y > &f, const DecisionTree< L, Y > &g, const typename DecisionTree< L, Y >::Binary &op)
 Apply binary operator op to DecisionTree f.
 
template<typename L , typename T1 , typename T2 >
std::pair< DecisionTree< L, T1 >, DecisionTree< L, T2 > > unzip (const DecisionTree< L, std::pair< T1, T2 > > &input)
 unzip a DecisionTree with std::pair values. More...
 
std::vector< double > expNormalize (const std::vector< double > &logProbs)
 Normalize a set of log probabilities. More...
 
GTSAM_EXPORT std::pair< std::shared_ptr< DiscreteConditional >, DecisionTreeFactor::shared_ptr > EliminateDiscrete (const DiscreteFactorGraph &factors, const Ordering &keys)
 Main elimination function for DiscreteFactorGraph. More...
 
std::pair< DiscreteConditional::shared_ptr, DecisionTreeFactor::shared_ptr > EliminateForMPE (const DiscreteFactorGraph &factors, const Ordering &frontalKeys)
 
GTSAM_EXPORT DiscreteKeys operator & (const DiscreteKey &key1, const DiscreteKey &key2)
 Create a list from two keys.
 
std::string markdown (const DiscreteValues &values, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DiscreteValues::Names &names={})
 Free version of markdown.
 
std::string html (const DiscreteValues &values, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DiscreteValues::Names &names={})
 Free version of html.
 
GTSAM_EXPORT Signature operator| (const DiscreteKey &key, const DiscreteKey &parent)
 
GTSAM_EXPORT Signature operator% (const DiscreteKey &key, const std::string &parent)
 
GTSAM_EXPORT Signature operator% (const DiscreteKey &key, const Signature::Table &parent)
 
template<typename Cal , size_t Dim>
void calibrateJacobians (const Cal &calibration, const Point2 &pn, OptionalJacobian< 2, Dim > Dcal={}, OptionalJacobian< 2, 2 > Dp={})
 
GTSAM_EXPORT Line3 transformTo (const Pose3 &wTc, const Line3 &wL, OptionalJacobian< 4, 6 > Dpose={}, OptionalJacobian< 4, 4 > Dline={})
 
GTSAM_EXPORT std::ostream & operator<< (std::ostream &os, const gtsam::Point2Pair &p)
 
GTSAM_EXPORT double norm2 (const Point2 &p, OptionalJacobian< 1, 2 > H={})
 Distance of the point from the origin, with Jacobian.
 
GTSAM_EXPORT double distance2 (const Point2 &p1, const Point2 &q, OptionalJacobian< 1, 2 > H1={}, OptionalJacobian< 1, 2 > H2={})
 distance between two points
 
Point2 operator* (double s, const Point2 &p)
 multiply with scalar
 
GTSAM_EXPORT std::optional< Point2circleCircleIntersection (double R_d, double r_d, double tol=1e-9)
 
GTSAM_EXPORT std::list< Point2circleCircleIntersection (Point2 c1, Point2 c2, std::optional< Point2 > fh)
 
GTSAM_EXPORT Point2Pair means (const std::vector< Point2Pair > &abPointPairs)
 Calculate the two means of a set of Point2 pairs.
 
GTSAM_EXPORT std::list< Point2circleCircleIntersection (Point2 c1, double r1, Point2 c2, double r2, double tol=1e-9)
 Intersect 2 circles. More...
 
GTSAM_EXPORT std::ostream & operator<< (std::ostream &os, const gtsam::Point3Pair &p)
 
GTSAM_EXPORT double distance3 (const Point3 &p1, const Point3 &q, OptionalJacobian< 1, 3 > H1={}, OptionalJacobian< 1, 3 > H2={})
 distance between two points
 
GTSAM_EXPORT double norm3 (const Point3 &p, OptionalJacobian< 1, 3 > H={})
 Distance of the point from the origin, with Jacobian.
 
GTSAM_EXPORT Point3 normalize (const Point3 &p, OptionalJacobian< 3, 3 > H={})
 normalize, with optional Jacobian
 
GTSAM_EXPORT Point3 cross (const Point3 &p, const Point3 &q, OptionalJacobian< 3, 3 > H_p={}, OptionalJacobian< 3, 3 > H_q={})
 cross product More...
 
GTSAM_EXPORT double dot (const Point3 &p, const Point3 &q, OptionalJacobian< 1, 3 > H_p={}, OptionalJacobian< 1, 3 > H_q={})
 dot product
 
template<class CONTAINER >
Point3 mean (const CONTAINER &points)
 mean
 
GTSAM_EXPORT Point3Pair means (const std::vector< Point3Pair > &abPointPairs)
 Calculate the two means of a set of Point3 pairs.
 
template<>
Matrix wedge< Pose2 > (const Vector &xi)
 
template<>
Matrix wedge< Pose3 > (const Vector &xi)
 
GTSAM_EXPORT std::pair< Matrix3, Vector3 > RQ (const Matrix3 &A, OptionalJacobian< 3, 9 > H={})
 
template<>
Matrix wedge< Similarity3 > (const Vector &xi)
 
GTSAM_EXPORT Matrix3 topLeft (const SO4 &Q, OptionalJacobian< 9, 6 > H={})
 
GTSAM_EXPORT Matrix43 stiefel (const SO4 &Q, OptionalJacobian< 12, 6 > H={})
 
GTSAM_EXPORT Vector4 triangulateHomogeneousDLT (const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &projection_matrices, const Point2Vector &measurements, double rank_tol=1e-9)
 
GTSAM_EXPORT Vector4 triangulateHomogeneousDLT (const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &projection_matrices, const std::vector< Unit3 > &measurements, double rank_tol=1e-9)
 
GTSAM_EXPORT Point3 triangulateDLT (const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &projection_matrices, const Point2Vector &measurements, double rank_tol=1e-9)
 
GTSAM_EXPORT Point3 triangulateDLT (const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &projection_matrices, const std::vector< Unit3 > &measurements, double rank_tol=1e-9)
 
GTSAM_EXPORT Point3 triangulateLOST (const std::vector< Pose3 > &poses, const Point3Vector &calibratedMeasurements, const SharedIsotropic &measurementNoise)
 Triangulation using the LOST (Linear Optimal Sine Triangulation) algorithm proposed in https://arxiv.org/pdf/2205.12197.pdf by Sebastien Henry and John Christian. More...
 
template<class CALIBRATION >
std::pair< NonlinearFactorGraph, ValuestriangulationGraph (const std::vector< Pose3 > &poses, std::shared_ptr< CALIBRATION > sharedCal, const Point2Vector &measurements, Key landmarkKey, const Point3 &initialEstimate, const SharedNoiseModel &model=noiseModel::Unit::Create(2))
 
template<class CAMERA >
std::pair< NonlinearFactorGraph, ValuestriangulationGraph (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measurements, Key landmarkKey, const Point3 &initialEstimate, const SharedNoiseModel &model=nullptr)
 
GTSAM_EXPORT Point3 optimize (const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
 
template<class CALIBRATION >
Point3 triangulateNonlinear (const std::vector< Pose3 > &poses, std::shared_ptr< CALIBRATION > sharedCal, const Point2Vector &measurements, const Point3 &initialEstimate, const SharedNoiseModel &model=nullptr)
 
template<class CAMERA >
Point3 triangulateNonlinear (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measurements, const Point3 &initialEstimate, const SharedNoiseModel &model=nullptr)
 
template<class CAMERA >
std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 > > projectionMatricesFromCameras (const CameraSet< CAMERA > &cameras)
 
template<class CALIBRATION >
std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 > > projectionMatricesFromPoses (const std::vector< Pose3 > &poses, std::shared_ptr< CALIBRATION > sharedCal)
 
template<class CALIBRATION >
Cal3_S2 createPinholeCalibration (const CALIBRATION &cal)
 
template<class CALIBRATION , class MEASUREMENT >
MEASUREMENT undistortMeasurementInternal (const CALIBRATION &cal, const MEASUREMENT &measurement, std::optional< Cal3_S2 > pinholeCal={})
 
template<class CALIBRATION >
Point2Vector undistortMeasurements (const CALIBRATION &cal, const Point2Vector &measurements)
 
template<>
Point2Vector undistortMeasurements (const Cal3_S2 &cal, const Point2Vector &measurements)
 
template<class CAMERA >
CAMERA::MeasurementVector undistortMeasurements (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measurements)
 
template<class CAMERA = PinholeCamera<Cal3_S2>>
PinholeCamera< Cal3_S2 >::MeasurementVector undistortMeasurements (const CameraSet< PinholeCamera< Cal3_S2 >> &cameras, const PinholeCamera< Cal3_S2 >::MeasurementVector &measurements)
 
template<class CAMERA = SphericalCamera>
SphericalCamera::MeasurementVector undistortMeasurements (const CameraSet< SphericalCamera > &cameras, const SphericalCamera::MeasurementVector &measurements)
 
template<class CALIBRATION >
Point3Vector calibrateMeasurementsShared (const CALIBRATION &cal, const Point2Vector &measurements)
 
template<class CAMERA >
Point3Vector calibrateMeasurements (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measurements)
 
template<class CAMERA = SphericalCamera>
Point3Vector calibrateMeasurements (const CameraSet< SphericalCamera > &cameras, const SphericalCamera::MeasurementVector &measurements)
 
template<class CALIBRATION >
Point3 triangulatePoint3 (const std::vector< Pose3 > &poses, std::shared_ptr< CALIBRATION > sharedCal, const Point2Vector &measurements, double rank_tol=1e-9, bool optimize=false, const SharedNoiseModel &model=nullptr, const bool useLOST=false)
 
template<class CAMERA >
Point3 triangulatePoint3 (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measurements, double rank_tol=1e-9, bool optimize=false, const SharedNoiseModel &model=nullptr, const bool useLOST=false)
 
template<class CALIBRATION >
Point3 triangulatePoint3 (const CameraSet< PinholeCamera< CALIBRATION >> &cameras, const Point2Vector &measurements, double rank_tol=1e-9, bool optimize=false, const SharedNoiseModel &model=nullptr, const bool useLOST=false)
 Pinhole-specific version.
 
template<class CAMERA >
TriangulationResult triangulateSafe (const CameraSet< CAMERA > &cameras, const typename CAMERA::MeasurementVector &measured, const TriangulationParameters &params)
 triangulateSafe: extensive checking of the outcome
 
std::set< DiscreteKeyDiscreteKeysAsSet (const DiscreteKeys &discreteKeys)
 Return the DiscreteKey vector as a set.
 
KeyVector CollectKeys (const KeyVector &continuousKeys, const DiscreteKeys &discreteKeys)
 
KeyVector CollectKeys (const KeyVector &keys1, const KeyVector &keys2)
 
DiscreteKeys CollectDiscreteKeys (const DiscreteKeys &key1, const DiscreteKeys &key2)
 
GTSAM_EXPORT std::pair< std::shared_ptr< HybridConditional >, std::shared_ptr< Factor > > EliminateHybrid (const HybridGaussianFactorGraph &factors, const Ordering &keys)
 Main elimination function for HybridGaussianFactorGraph. More...
 
GTSAM_EXPORT const Ordering HybridOrdering (const HybridGaussianFactorGraph &graph)
 Return a Colamd constrained ordering where the discrete keys are eliminated after the continuous keys. More...
 
HybridGaussianFactorGraph::shared_ptr makeSwitchingChain (size_t n, std::function< Key(int)> keyFunc=X, std::function< Key(int)> dKeyFunc=M)
 Create a switching system chain. A switching system is a continuous system which depends on a discrete mode at each time step of the chain. More...
 
std::pair< KeyVector, std::vector< int > > makeBinaryOrdering (std::vector< Key > &input)
 Return the ordering as a binary tree such that all parent nodes are above their children. More...
 
template<class CLIQUE >
bool check_sharedCliques (const std::pair< Key, typename BayesTree< CLIQUE >::sharedClique > &v1, const std::pair< Key, typename BayesTree< CLIQUE >::sharedClique > &v2)
 
template<class KEY >
std::list< KEY > predecessorMap2Keys (const PredecessorMap< KEY > &p_map)
 
template<class G , class F , class KEY >
SDGraph< KEY > toBoostGraph (const G &graph)
 
template<class G , class V , class KEY >
std::tuple< G, V, std::map< KEY, V > > predecessorMap2Graph (const PredecessorMap< KEY > &p_map)
 
template<class G , class Factor , class POSE , class KEY >
std::shared_ptr< ValuescomposePoses (const G &graph, const PredecessorMap< KEY > &tree, const POSE &rootPose)
 
template<class G , class KEY , class FACTOR2 >
PredecessorMap< KEY > findMinimumSpanningTree (const G &fg)
 
template<class G , class KEY , class FACTOR2 >
void split (const G &g, const PredecessorMap< KEY > &tree, G &Ab1, G &Ab2)
 
GTSAM_EXPORT std::string _defaultKeyFormatter (Key key)
 
GTSAM_EXPORT std::string _multirobotKeyFormatter (gtsam::Key key)
 
GTSAM_EXPORT void PrintKey (Key key, const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter)
 Utility function to print one key with optional prefix.
 
GTSAM_EXPORT void PrintKeyList (const KeyList &keys, const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter)
 Utility function to print sets of keys with optional prefix.
 
GTSAM_EXPORT void PrintKeyVector (const KeyVector &keys, const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter)
 Utility function to print sets of keys with optional prefix.
 
GTSAM_EXPORT void PrintKeySet (const KeySet &keys, const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter)
 Utility function to print sets of keys with optional prefix.
 
Key mrsymbol (unsigned char c, unsigned char label, size_t j)
 
unsigned char mrsymbolChr (Key key)
 
unsigned char mrsymbolLabel (Key key)
 
size_t mrsymbolIndex (Key key)
 
Key symbol (unsigned char c, std::uint64_t j)
 
unsigned char symbolChr (Key key)
 
std::uint64_t symbolIndex (Key key)
 
template<class S , class V >
preconditionedConjugateGradient (const S &system, const V &initial, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT Errors createErrors (const VectorValues &V)
 Break V into pieces according to its start indices.
 
GTSAM_EXPORT void print (const Errors &e, const std::string &s="Errors")
 Print an Errors instance.
 
GTSAM_EXPORT bool equality (const Errors &actual, const Errors &expected, double tol=1e-9)
 
GTSAM_EXPORT Errors operator+ (const Errors &a, const Errors &b)
 Addition.
 
GTSAM_EXPORT Errors operator- (const Errors &a, const Errors &b)
 Subtraction.
 
GTSAM_EXPORT Errors operator- (const Errors &a)
 Negation.
 
GTSAM_EXPORT double dot (const Errors &a, const Errors &b)
 Dot product.
 
GTSAM_EXPORT void axpy (double alpha, const Errors &x, Errors &y)
 BLAS level 2 style AXPY, y := alpha*x + y
 
GTSAM_EXPORT bool hasConstraints (const GaussianFactorGraph &factors)
 
GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< HessianFactor > > EliminateCholesky (const GaussianFactorGraph &factors, const Ordering &keys)
 
GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< GaussianFactor > > EliminatePreferCholesky (const GaussianFactorGraph &factors, const Ordering &keys)
 
template<class S , class V , class E >
conjugateGradients (const S &Ab, V x, const ConjugateGradientParameters &parameters, bool steepest)
 
GTSAM_EXPORT Vector steepestDescent (const System &Ab, const Vector &x, const IterativeOptimizationParameters &parameters)
 
GTSAM_EXPORT Vector conjugateGradientDescent (const System &Ab, const Vector &x, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT Vector steepestDescent (const Matrix &A, const Vector &b, const Vector &x, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT Vector conjugateGradientDescent (const Matrix &A, const Vector &b, const Vector &x, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT VectorValues steepestDescent (const GaussianFactorGraph &fg, const VectorValues &x, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT VectorValues conjugateGradientDescent (const GaussianFactorGraph &fg, const VectorValues &x, const ConjugateGradientParameters &parameters)
 
GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< JacobianFactor > > EliminateQR (const GaussianFactorGraph &factors, const Ordering &keys)
 
std::shared_ptr< PreconditionercreatePreconditioner (const std::shared_ptr< PreconditionerParameters > parameters)
 
SparseEigen sparseJacobianEigen (const GaussianFactorGraph &gfg, const Ordering &ordering)
 Constructs an Eigen-format SparseMatrix of a GaussianFactorGraph.
 
SparseEigen sparseJacobianEigen (const GaussianFactorGraph &gfg)
 
GaussianFactorGraph buildFactorSubgraph (const GaussianFactorGraph &gfg, const Subgraph &subgraph, const bool clone)
 
std::pair< GaussianFactorGraph, GaussianFactorGraphsplitFactorGraph (const GaussianFactorGraph &factorGraph, const Subgraph &subgraph)
 
Rot3_ attitude (const NavState_ &X)
 
Point3_ position (const NavState_ &X)
 
Velocity3_ velocity (const NavState_ &X)
 
std::unique_ptr< internal::ExecutionTraceStorage[]> allocAligned (size_t size)
 
template<typename T >
Expression< T > operator* (const Expression< T > &expression1, const Expression< T > &expression2)
 Construct a product expression, assumes T::compose(T) -> T. More...
 
template<typename T >
std::vector< Expression< T > > createUnknowns (size_t n, char c, size_t start)
 Construct an array of leaves. More...
 
template<typename T , typename A >
Expression< T > linearExpression (const std::function< T(A)> &f, const Expression< A > &expression, const Eigen::Matrix< double, traits< T >::dimension, traits< A >::dimension > &dTdA)
 
template<typename T >
ScalarMultiplyExpression< T > operator* (double s, const Expression< T > &e)
 
template<typename T >
BinarySumExpression< T > operator+ (const Expression< T > &e1, const Expression< T > &e2)
 
template<typename T >
BinarySumExpression< T > operator- (const Expression< T > &e1, const Expression< T > &e2)
 Construct an expression that subtracts one expression from another.
 
template<typename T >
Expression< T > between (const Expression< T > &t1, const Expression< T > &t2)
 
template<typename T >
Expression< T > compose (const Expression< T > &t1, const Expression< T > &t2)
 
JacobianFactor linearizeNumerically (const NoiseModelFactor &factor, const Values &values, double delta=1e-5)
 
template<typename T , typename R , typename FUNC >
FunctorizedFactor< R, T > MakeFunctorizedFactor (Key key, const R &z, const SharedNoiseModel &model, const FUNC func)
 
template<typename T1 , typename T2 , typename R , typename FUNC >
FunctorizedFactor2< R, T1, T2 > MakeFunctorizedFactor2 (Key key1, Key key2, const R &z, const SharedNoiseModel &model, const FUNC func)
 
size_t optimizeWildfire (const ISAM2Clique::shared_ptr &root, double threshold, const KeySet &replaced, VectorValues *delta)
 
size_t optimizeWildfireNonRecursive (const ISAM2Clique::shared_ptr &root, double threshold, const KeySet &replaced, VectorValues *delta)
 
template<class S , class V , class W >
double lineSearch (const S &system, const V currentValues, const W &gradient)
 
template<class S , class V >
std::tuple< V, int > nonlinearConjugateGradient (const S &system, const V &initial, const NonlinearOptimizerParams &params, const bool singleIteration, const bool gradientDescent=false)
 
GTSAM_EXPORT bool checkConvergence (double relativeErrorTreshold, double absoluteErrorTreshold, double errorThreshold, double currentError, double newError, NonlinearOptimizerParams::Verbosity verbosity=NonlinearOptimizerParams::SILENT)
 
GTSAM_EXPORT bool checkConvergence (const NonlinearOptimizerParams &params, double currentError, double newError)
 
GTSAM_EXPORT SfmData readBal (const std::string &filename)
 This function parses a "Bundle Adjustment in the Large" (BAL) file and returns the data as a SfmData structure. Mainly used by wrapped code. More...
 
GTSAM_EXPORT bool writeBAL (const std::string &filename, const SfmData &data)
 This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure. More...
 
GTSAM_EXPORT bool writeBALfromValues (const std::string &filename, const SfmData &data, const Values &values)
 This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure and a value structure (measurements are the same as the SfM input data, while camera poses and values are read from Values) More...
 
GTSAM_EXPORT Pose3 openGL2gtsam (const Rot3 &R, double tx, double ty, double tz)
 This function converts an openGL camera pose to an GTSAM camera pose. More...
 
GTSAM_EXPORT Pose3 gtsam2openGL (const Rot3 &R, double tx, double ty, double tz)
 This function converts a GTSAM camera pose to an openGL camera pose. More...
 
GTSAM_EXPORT Pose3 gtsam2openGL (const Pose3 &PoseGTSAM)
 This function converts a GTSAM camera pose to an openGL camera pose. More...
 
GTSAM_EXPORT Values initialCamerasEstimate (const SfmData &db)
 This function creates initial values for cameras from db. More...
 
GTSAM_EXPORT Values initialCamerasAndPointsEstimate (const SfmData &db)
 This function creates initial values for cameras and points from db. More...
 
GTSAM_EXPORT std::string findExampleDataFile (const std::string &name)
 
GTSAM_EXPORT std::string createRewrittenFileName (const std::string &name)
 
template<typename T >
GTSAM_EXPORT std::map< size_t, T > parseVariables (const std::string &filename, size_t maxIndex=0)
 
template<typename T >
GTSAM_EXPORT std::vector< BinaryMeasurement< T > > parseMeasurements (const std::string &filename, const noiseModel::Diagonal::shared_ptr &model=nullptr, size_t maxIndex=0)
 
template<typename T >
GTSAM_EXPORT std::vector< typename BetweenFactor< T >::shared_ptr > parseFactors (const std::string &filename, const noiseModel::Diagonal::shared_ptr &model=nullptr, size_t maxIndex=0)
 
GTSAM_EXPORT std::optional< IndexedPoseparseVertexPose (std::istream &is, const std::string &tag)
 
GTSAM_EXPORT std::optional< IndexedLandmark > parseVertexLandmark (std::istream &is, const std::string &tag)
 
GTSAM_EXPORT std::optional< IndexedEdge > parseEdge (std::istream &is, const std::string &tag)
 
GTSAM_EXPORT GraphAndValues load2D (std::pair< std::string, SharedNoiseModel > dataset, size_t maxIndex=0, bool addNoise=false, bool smart=true, NoiseFormat noiseFormat=NoiseFormatAUTO, KernelFunctionType kernelFunctionType=KernelFunctionTypeNONE)
 
GTSAM_EXPORT GraphAndValues load2D (const std::string &filename, SharedNoiseModel model=SharedNoiseModel(), size_t maxIndex=0, bool addNoise=false, bool smart=true, NoiseFormat noiseFormat=NoiseFormatAUTO, KernelFunctionType kernelFunctionType=KernelFunctionTypeNONE)
 
GTSAM_EXPORT void save2D (const NonlinearFactorGraph &graph, const Values &config, const noiseModel::Diagonal::shared_ptr model, const std::string &filename)
 
GTSAM_EXPORT GraphAndValues readG2o (const std::string &g2oFile, const bool is3D=false, KernelFunctionType kernelFunctionType=KernelFunctionTypeNONE)
 This function parses a g2o file and stores the measurements into a NonlinearFactorGraph and the initial guess in a Values structure. More...
 
GTSAM_EXPORT void writeG2o (const NonlinearFactorGraph &graph, const Values &estimate, const std::string &filename)
 This function writes a g2o file from NonlinearFactorGraph and a Values structure. More...
 
GTSAM_EXPORT GraphAndValues load3D (const std::string &filename)
 Load TORO 3D Graph.
 
GTSAM_EXPORT BetweenFactorPose2s parse2DFactors (const std::string &filename, const noiseModel::Diagonal::shared_ptr &model=nullptr, size_t maxIndex=0)
 
GTSAM_EXPORT BetweenFactorPose3s parse3DFactors (const std::string &filename, const noiseModel::Diagonal::shared_ptr &model=nullptr, size_t maxIndex=0)
 
Point2_ transformTo (const Pose2_ &x, const Point2_ &p)
 
Double_ range (const Point2_ &p, const Point2_ &q)
 
Point3_ transformTo (const Pose3_ &x, const Point3_ &p)
 
Point3_ transformFrom (const Pose3_ &x, const Point3_ &p)
 
Line3_ transformTo (const Pose3_ &wTc, const Line3_ &wL)
 
Pose3_ transformPoseTo (const Pose3_ &p, const Pose3_ &q)
 
Point3_ normalize (const Point3_ &a)
 
Point3_ cross (const Point3_ &a, const Point3_ &b)
 
Double_ dot (const Point3_ &a, const Point3_ &b)
 
Rot3_ rotation (const Pose3_ &pose)
 
Point3_ translation (const Pose3_ &pose)
 
Point3_ rotate (const Rot3_ &x, const Point3_ &p)
 
Point3_ point3 (const Unit3_ &v)
 
Unit3_ rotate (const Rot3_ &x, const Unit3_ &p)
 
Point3_ unrotate (const Rot3_ &x, const Point3_ &p)
 
Unit3_ unrotate (const Rot3_ &x, const Unit3_ &p)
 
Double_ distance (const OrientedPlane3_ &p)
 
Unit3_ normal (const OrientedPlane3_ &p)
 
Point2_ project (const Point3_ &p_cam)
 Expression version of PinholeBase::Project.
 
Point2_ project (const Unit3_ &p_cam)
 
template<class CAMERA , class POINT >
Point2_ project2 (const Expression< CAMERA > &camera_, const Expression< POINT > &p_)
 
template<class CALIBRATION , class POINT >
Point2_ project3 (const Pose3_ &x, const Expression< POINT > &p, const Expression< CALIBRATION > &K)
 
template<class CALIBRATION >
Point2_ uncalibrate (const Expression< CALIBRATION > &K, const Point2_ &xy_hat)
 
template<class CALIBRATION >
Pose3_ getPose (const Expression< PinholeCamera< CALIBRATION > > &cam)
 
template<typename T >
gtsam::Expression< typename gtsam::traits< T >::TangentVector > logmap (const gtsam::Expression< T > &x1, const gtsam::Expression< T > &x2)
 logmap
 
GTSAM_EXPORT SharedNoiseModel ConvertNoiseModel (const SharedNoiseModel &model, size_t n, bool defaultToUnit=true)
 
template<class T , class ALLOC >
FindKarcherMeanImpl (const vector< T, ALLOC > &rotations)
 
template<class T >
FindKarcherMean (const std::vector< T > &rotations)
 
template<class T >
FindKarcherMean (const std::vector< T, Eigen::aligned_allocator< T >> &rotations)
 
template<class T >
FindKarcherMean (std::initializer_list< T > &&rotations)
 
template<class T , class P >
transform_point (const T &trans, const P &global, OptionalMatrixType Dtrans, OptionalMatrixType Dglobal)
 
GTSAM_EXPORT std::pair< std::shared_ptr< SymbolicConditional >, std::shared_ptr< SymbolicFactor > > EliminateSymbolic (const SymbolicFactorGraph &factors, const Ordering &keys)
 
std::pair< Pose2, bool > moveWithBounce (const Pose2 &cur_pose, double step_size, const std::vector< SimWall2D > walls, Sampler &angle_drift, Sampler &reflect_noise, const Rot2 &bias=Rot2())
 
template<class PROBLEM >
Key maxKey (const PROBLEM &problem)
 
template<class LinearGraph >
KeyDimMap collectKeyDim (const LinearGraph &linearGraph)
 
void GTSAM_UNSTABLE_EXPORT synchronize (ConcurrentFilter &filter, ConcurrentSmoother &smoother)
 
std::string serializeGraph (const NonlinearFactorGraph &graph)
 
NonlinearFactorGraph::shared_ptr deserializeGraph (const std::string &serialized_graph)
 
std::string serializeGraphXML (const NonlinearFactorGraph &graph, const std::string &name="graph")
 
NonlinearFactorGraph::shared_ptr deserializeGraphXML (const std::string &serialized_graph, const std::string &name="graph")
 
std::string serializeValues (const Values &values)
 
Values::shared_ptr deserializeValues (const std::string &serialized_values)
 
std::string serializeValuesXML (const Values &values, const std::string &name="values")
 
Values::shared_ptr deserializeValuesXML (const std::string &serialized_values, const std::string &name="values")
 
bool serializeGraphToFile (const NonlinearFactorGraph &graph, const std::string &fname)
 
bool serializeGraphToXMLFile (const NonlinearFactorGraph &graph, const std::string &fname, const std::string &name="graph")
 
bool serializeValuesToFile (const Values &values, const std::string &fname)
 
bool serializeValuesToXMLFile (const Values &values, const std::string &fname, const std::string &name="values")
 
NonlinearFactorGraph::shared_ptr deserializeGraphFromFile (const std::string &fname)
 
NonlinearFactorGraph::shared_ptr deserializeGraphFromXMLFile (const std::string &fname, const std::string &name="graph")
 
Values::shared_ptr deserializeValuesFromFile (const std::string &fname)
 
Values::shared_ptr deserializeValuesFromXMLFile (const std::string &fname, const std::string &name="values")
 
Standard serialization

Serialization in default compressed format

template<class T >
void serializeToStream (const T &input, std::ostream &out_archive_stream)
 
template<class T >
void deserializeFromStream (std::istream &in_archive_stream, T &output)
 deserializes from a stream
 
template<class T >
std::string serializeToString (const T &input)
 serializes to a string
 
template<class T >
void deserializeFromString (const std::string &serialized, T &output)
 deserializes from a string
 
template<class T >
bool serializeToFile (const T &input, const std::string &filename)
 serializes to a file
 
template<class T >
bool deserializeFromFile (const std::string &filename, T &output)
 deserializes from a file
 
template<class T >
std::string serialize (const T &input)
 serializes to a string
 
template<class T >
void deserialize (const std::string &serialized, T &output)
 deserializes from a string
 
XML Serialization

Serialization to XML format with named structures

template<class T >
void serializeToXMLStream (const T &input, std::ostream &out_archive_stream, const std::string &name="data")
 
template<class T >
void deserializeFromXMLStream (std::istream &in_archive_stream, T &output, const std::string &name="data")
 deserializes from a stream in XML
 
template<class T >
std::string serializeToXMLString (const T &input, const std::string &name="data")
 serializes to a string in XML
 
template<class T >
void deserializeFromXMLString (const std::string &serialized, T &output, const std::string &name="data")
 deserializes from a string in XML
 
template<class T >
bool serializeToXMLFile (const T &input, const std::string &filename, const std::string &name="data")
 serializes to an XML file
 
template<class T >
bool deserializeFromXMLFile (const std::string &filename, T &output, const std::string &name="data")
 deserializes from an XML file
 
template<class T >
std::string serializeXML (const T &input, const std::string &name="data")
 serializes to a string in XML
 
template<class T >
void deserializeXML (const std::string &serialized, T &output, const std::string &name="data")
 deserializes from a string in XML
 
Binary Serialization

Serialization to binary format with named structures

template<class T >
void serializeToBinaryStream (const T &input, std::ostream &out_archive_stream, const std::string &name="data")
 
template<class T >
void deserializeFromBinaryStream (std::istream &in_archive_stream, T &output, const std::string &name="data")
 deserializes from a stream in binary
 
template<class T >
std::string serializeToBinaryString (const T &input, const std::string &name="data")
 serializes to a string in binary
 
template<class T >
void deserializeFromBinaryString (const std::string &serialized, T &output, const std::string &name="data")
 deserializes from a string in binary
 
template<class T >
bool serializeToBinaryFile (const T &input, const std::string &filename, const std::string &name="data")
 serializes to a binary file
 
template<class T >
bool deserializeFromBinaryFile (const std::string &filename, T &output, const std::string &name="data")
 deserializes from a binary file
 
template<class T >
std::string serializeBinary (const T &input, const std::string &name="data")
 serializes to a string in binary
 
template<class T >
void deserializeBinary (const std::string &serialized, T &output, const std::string &name="data")
 deserializes from a string in binary
 
utility functions
VectorValues buildVectorValues (const Vector &v, const Ordering &ordering, const std::map< Key, size_t > &dimensions)
 Create VectorValues from a Vector.
 
VectorValues buildVectorValues (const Vector &v, const KeyInfo &keyInfo)
 Create VectorValues from a Vector and a KeyInfo class.
 

Variables

GTSAM_EXTERN_EXPORT FastMap< std::string, ValueWithDefault< bool, false > > debugFlags
 
const G & b
 
const G double tol
 
const double logSqrt2PI = log(std::sqrt(2.0 * M_PI))
 constant needed below
 

Detailed Description

Global functions in a separate testing namespace

These should not be used outside of tests, as they are just remappings of the original functions. We use these to avoid needing to do too much std::bind magic or writing a bunch of separate proxy functions.

Don't expect all classes to work for all of these functions.

Matrix is a typedef in the gtsam namespace TODO: make a version to work with matlab wrapping we use the default < double,col_major,unbounded_array<double> >

This file supports creating continuous functions f(x;p) as a linear combination of basis functions such as the Fourier basis on SO(2) or a set of Chebyshev polynomials on [-1,1].

In the expression f(x;p) the variable x is the continuous argument at which the function is evaluated, and p are the parameters which are coefficients of the different basis functions, e.g. p = [4; 3; 2] => 4 + 3x + 2x^2 for a polynomial. However, different parameterizations are also possible.

The Basis class below defines a number of functors that can be used to evaluate f(x;p) at a given x, and these functors also calculate the Jacobian of f(x;p) with respect to the parameters p. This is actually the most important calculation, as it will allow GTSAM to optimize over the parameters p.

This functionality is implemented using the CRTP or "Curiously recurring template pattern" C++ idiom, which is a meta-programming technique in which the derived class is passed as a template argument to Basis<DERIVED>. The DERIVED class is assumed to satisfy a C++ concept, i.e., we expect it to define the following types and methods:

where Weights is an N*1 row vector which defines the basis values for the polynomial at the specified point x.

E.g. A Fourier series would give the following:

Note that for a pseudo-spectral basis (as in Chebyshev2), the weights are instead the values for the Barycentric interpolation formula, since the values at the polynomial points (e.g. Chebyshev points) define the bases.

triangulationFactor.h

Date
March 2, 2014
Author
Frank Dellaert

Typedef Documentation

◆ FactorIndices

Define collection types:

Define collection type:

◆ GraphAndValues

using gtsam::GraphAndValues = typedef std::pair<NonlinearFactorGraph::shared_ptr, Values::shared_ptr>

Return type for load functions, which return a graph and initial values. For landmarks, the gtsam::Symbol L(index) is used to insert into the Values. Bearing-range measurements also refer to landmarks with L(index).

◆ OptionalMatrixType

using gtsam::OptionalMatrixType = typedef Matrix*

This typedef will be used everywhere boost::optional<Matrix&> reference was used previously. This is used to indicate that the Jacobian is optional. In the future we will change this to OptionalJacobian

◆ OptionalMatrixVecType

using gtsam::OptionalMatrixVecType = typedef std::vector<Matrix>*

The OptionalMatrixVecType is a pointer to a vector of matrices. It will be used in situations where a vector of matrices is optional, like in unwhitenedError.

◆ PinholeCameraCal3_S2

Convenient aliases for Pinhole camera classes with different calibrations. Also needed as forward declarations in the wrapper.

◆ Point2

typedef Vector2 gtsam::Point2

As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point2 to Vector2

◆ Point3

typedef Vector3 gtsam::Point3

As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point3 to Vector3

◆ SharedNoiseModel

typedef noiseModel::Base::shared_ptr gtsam::SharedNoiseModel

Aliases. Deliberately not in noiseModel namespace.

◆ SparseEigen

typedef Eigen::SparseMatrix<double, Eigen::ColMajor, int> gtsam::SparseEigen

Eigen-format sparse matrix. Note: ColMajor is ~20% faster since InnerIndices must be sorted

◆ Velocity3

typedef Vector3 gtsam::Velocity3

Velocity is currently typedef'd to Vector3.

Syntactic sugar to clarify components.

Enumeration Type Documentation

◆ LinearizationMode

Linearization mode: what factor to linearize to.

SmartFactorParams: parameters and (linearization/degeneracy) modes for SmartProjection and SmartStereoProjection factors

◆ NoiseFormat

Indicates how noise parameters are stored in file.

Enumerator
NoiseFormatG2O 

Information matrix I11, I12, I13, I22, I23, I33.

NoiseFormatTORO 

Information matrix, but inf_ff inf_fs inf_ss inf_rr inf_fr inf_sr.

NoiseFormatGRAPH 

default: toro-style order, but covariance matrix !

NoiseFormatCOV 

Covariance matrix C11, C12, C13, C22, C23, C33.

NoiseFormatAUTO 

Try to guess covariance matrix layout.

Function Documentation

◆ apply()

template<typename L , typename Y >
DecisionTree<L, Y> gtsam::apply ( const DecisionTree< L, Y > &  f,
const typename DecisionTree< L, Y >::Unary &  op 
)

Apply unary operator op to DecisionTree f.

free versions of apply

◆ assert_container_equal() [1/4]

template<class V1 , class V2 >
bool gtsam::assert_container_equal ( const std::map< V1, V2 > &  expected,
const std::map< V1, V2 > &  actual,
double  tol = 1e-9 
)

Function for comparing maps of testable->testable TODO: replace with more generalized version

◆ assert_container_equal() [2/4]

template<class V2 >
bool gtsam::assert_container_equal ( const std::map< size_t, V2 > &  expected,
const std::map< size_t, V2 > &  actual,
double  tol = 1e-9 
)

Function for comparing maps of size_t->testable

◆ assert_container_equal() [3/4]

template<class V1 , class V2 >
bool gtsam::assert_container_equal ( const std::vector< std::pair< V1, V2 > > &  expected,
const std::vector< std::pair< V1, V2 > > &  actual,
double  tol = 1e-9 
)

Function for comparing vector of pairs (testable, testable)

◆ assert_container_equal() [4/4]

template<class V >
bool gtsam::assert_container_equal ( const V &  expected,
const V &  actual,
double  tol = 1e-9 
)

General function for comparing containers of testable objects

◆ assert_container_equality() [1/2]

template<class V2 >
bool gtsam::assert_container_equality ( const std::map< size_t, V2 > &  expected,
const std::map< size_t, V2 > &  actual 
)

Function for comparing maps of size_t->testable Types are assumed to have operator ==

◆ assert_container_equality() [2/2]

template<class V >
bool gtsam::assert_container_equality ( const V &  expected,
const V &  actual 
)

General function for comparing containers of objects with operator==

◆ assert_equal() [1/8]

bool gtsam::assert_equal ( const Key expected,
const Key actual,
double  tol = 0.0 
)
inline

Equals testing for basic types

◆ assert_equal() [2/8]

template<class V >
bool gtsam::assert_equal ( const std::optional< V > &  expected,
const std::optional< V > &  actual,
double  tol = 1e-9 
)

Comparisons for std.optional objects that checks whether objects exist before comparing their values. First version allows for both to be std::nullopt, but the second, with expected given rather than optional

Concept requirement: V is testable

◆ assert_equal() [3/8]

template<class V >
bool gtsam::assert_equal ( const V &  expected,
const V &  actual,
double  tol = 1e-9 
)

This template works for any type with equals

◆ assert_equal() [4/8]

GTSAM_EXPORT bool gtsam::assert_equal ( const Matrix &  A,
const Matrix &  B,
double  tol = 1e-9 
)

equals with an tolerance, prints out message if unequal

◆ assert_equal() [5/8]

GTSAM_EXPORT bool gtsam::assert_equal ( const std::list< Matrix > &  As,
const std::list< Matrix > &  Bs,
double  tol = 1e-9 
)

equals with an tolerance, prints out message if unequal

◆ assert_equal() [6/8]

GTSAM_EXPORT bool gtsam::assert_equal ( const Vector &  vec1,
const Vector &  vec2,
double  tol = 1e-9 
)

Same, prints if error

Parameters
vec1Vector
vec2Vector
tol1e-9
Returns
bool

◆ assert_equal() [7/8]

GTSAM_EXPORT bool gtsam::assert_equal ( const SubVector &  vec1,
const SubVector &  vec2,
double  tol = 1e-9 
)

Same, prints if error

Parameters
vec1Vector
vec2Vector
tol1e-9
Returns
bool

◆ assert_equal() [8/8]

bool gtsam::assert_equal ( const std::string &  expected,
const std::string &  actual 
)
inline

Compare strings for unit tests

◆ assert_inequal() [1/3]

GTSAM_EXPORT bool gtsam::assert_inequal ( const Matrix &  A,
const Matrix &  B,
double  tol = 1e-9 
)

inequals with an tolerance, prints out message if within tolerance

◆ assert_inequal() [2/3]

GTSAM_EXPORT bool gtsam::assert_inequal ( const Vector &  vec1,
const Vector &  vec2,
double  tol = 1e-9 
)

Not the same, prints if error

Parameters
vec1Vector
vec2Vector
tol1e-9
Returns
bool

◆ assert_inequal() [3/3]

template<class V >
bool gtsam::assert_inequal ( const V &  expected,
const V &  actual,
double  tol = 1e-9 
)

Allow for testing inequality

◆ assert_print_equal()

template<class V >
bool gtsam::assert_print_equal ( const std::string &  expected,
const V &  actual,
const std::string &  s = "" 
)

Capture print function output and compare against string.

Parameters
sOptional string to pass to the print() method.

◆ assert_stdout_equal()

template<class V >
bool gtsam::assert_stdout_equal ( const std::string &  expected,
const V &  actual 
)

Capture std out via cout stream and compare against string.

◆ backSubstituteLower()

GTSAM_EXPORT Vector gtsam::backSubstituteLower ( const Matrix &  L,
const Vector &  b,
bool  unit = false 
)

backSubstitute L*x=b

Parameters
Lan lower triangular matrix
ban RHS vector
unit,settrue if unit triangular
Returns
the solution x of L*x=b

◆ backSubstituteUpper() [1/2]

GTSAM_EXPORT Vector gtsam::backSubstituteUpper ( const Matrix &  U,
const Vector &  b,
bool  unit = false 
)

backSubstitute U*x=b

Parameters
Uan upper triangular matrix
ban RHS vector
unit,settrue if unit triangular
Returns
the solution x of U*x=b

◆ backSubstituteUpper() [2/2]

GTSAM_EXPORT Vector gtsam::backSubstituteUpper ( const Vector &  b,
const Matrix &  U,
bool  unit = false 
)

backSubstitute x'*U=b'

Parameters
Uan upper triangular matrix
ban RHS vector
unit,settrue if unit triangular
Returns
the solution x of x'*U=b'

◆ BCH()

template<class T >
T gtsam::BCH ( const T &  X,
const T &  Y 
)

AGC: bracket() only appears in Rot3 tests, should this be used elsewhere?

Three term approximation of the Baker-Campbell-Hausdorff formula In non-commutative Lie groups, when composing exp(Z) = exp(X)exp(Y) it is not true that Z = X+Y. Instead, Z can be calculated using the BCH formula: Z = X + Y + [X,Y]/2 + [X-Y,[X,Y]]/12 - [Y,[X,[X,Y]]]/24 http://en.wikipedia.org/wiki/Baker-Campbell-Hausdorff_formula

◆ between_default()

template<class Class >
Class gtsam::between_default ( const Class &  l1,
const Class &  l2 
)
inline

These core global functions can be specialized by new Lie types for better performance.Compute l0 s.t. l2=l1*l0

◆ buildFactorSubgraph()

GaussianFactorGraph gtsam::buildFactorSubgraph ( const GaussianFactorGraph gfg,
const Subgraph subgraph,
const bool  clone 
)

Select the factors in a factor graph according to the subgraph.

◆ calibrateJacobians()

template<typename Cal , size_t Dim>
void gtsam::calibrateJacobians ( const Cal &  calibration,
const Point2 pn,
OptionalJacobian< 2, Dim >  Dcal = {},
OptionalJacobian< 2, 2 >  Dp = {} 
)

Function which makes use of the Implicit Function Theorem to compute the Jacobians of calibrate using uncalibrate. This is useful when there are iterative operations in the calibrate function which make computing jacobians difficult.

Given f(pi, pn) = uncalibrate(pn) - pi, and g(pi) = calibrate, we can easily compute the Jacobians: df/pi = -I (pn and pi are independent args) Dp = -inv(H_uncal_pn) * df/pi = -inv(H_uncal_pn) * (-I) = inv(H_uncal_pn) Dcal = -inv(H_uncal_pn) * df/K = -inv(H_uncal_pn) * H_uncal_K

Template Parameters
CalCalibration model.
DimThe number of parameters in the calibration model.
Parameters
pCalibrated point.
Dcaloptional 2*p Jacobian wrpt p Cal3DS2 parameters.
Dpoptional 2*2 Jacobian wrpt intrinsic coordinates.

◆ calibrateMeasurements() [1/2]

template<class CAMERA >
Point3Vector gtsam::calibrateMeasurements ( const CameraSet< CAMERA > &  cameras,
const typename CAMERA::MeasurementVector &  measurements 
)
inline

Convert pixel measurements in image to homogeneous measurements in the image plane using camera intrinsics of each measurement.

Template Parameters
CAMERACamera type to use.
Parameters
camerasCameras corresponding to each measurement.
measurementsVector of measurements to undistort.
Returns
homogeneous measurements in image plane

◆ calibrateMeasurements() [2/2]

template<class CAMERA = SphericalCamera>
Point3Vector gtsam::calibrateMeasurements ( const CameraSet< SphericalCamera > &  cameras,
const SphericalCamera::MeasurementVector &  measurements 
)
inline

Specialize for SphericalCamera to do nothing.

◆ calibrateMeasurementsShared()

template<class CALIBRATION >
Point3Vector gtsam::calibrateMeasurementsShared ( const CALIBRATION &  cal,
const Point2Vector &  measurements 
)
inline

Convert pixel measurements in image to homogeneous measurements in the image plane using shared camera intrinsics.

Template Parameters
CALIBRATIONCalibration type to use.
Parameters
calCalibration with which measurements were taken.
measurementsVector of measurements to undistort.
Returns
homogeneous measurements in image plane

◆ checkConvergence()

GTSAM_EXPORT bool gtsam::checkConvergence ( double  relativeErrorTreshold,
double  absoluteErrorTreshold,
double  errorThreshold,
double  currentError,
double  newError,
NonlinearOptimizerParams::Verbosity  verbosity = NonlinearOptimizerParams::SILENT 
)

Check whether the relative error decrease is less than relativeErrorTreshold, the absolute error decrease is less than absoluteErrorTreshold, or the error itself is less than errorThreshold.

◆ cholesky_inverse()

GTSAM_EXPORT Matrix gtsam::cholesky_inverse ( const Matrix &  A)

Return the inverse of a S.P.D. matrix. Inversion is done via Cholesky decomposition.

◆ choleskyCareful()

GTSAM_EXPORT std::pair<size_t,bool> gtsam::choleskyCareful ( Matrix &  ATA,
int  order = -1 
)

"Careful" Cholesky computes the positive square-root of a positive symmetric semi-definite matrix (i.e. that may be rank-deficient). Unlike standard Cholesky, the square-root factor may have all-zero rows for free variables.

Additionally, this function returns the index of the row after the last non-zero row in the computed factor, so that it may be truncated to an upper-trapazoidal matrix.

The second element of the return value is true if the matrix was factored successfully, or false if it was non-positive-semidefinite (i.e. indefinite or negative-(semi-)definite.

Note that this returned index is the rank of the matrix if and only if all of the zero-rows of the factor occur after any non-zero rows. This is (always?) the case during elimination of a fully-constrained least-squares problem.

The optional order argument specifies the size of the square upper-left submatrix to operate on, ignoring the rest of the matrix.

◆ choleskyPartial()

GTSAM_EXPORT bool gtsam::choleskyPartial ( Matrix &  ABC,
size_t  nFrontal,
size_t  topleft = 0 
)

Partial Cholesky computes a factor [R S such that [R' 0 [R S = [A B 0 L] S' I] 0 L] B' C]. The input to this function is the matrix ABC = [A B], and the parameter [B' C] nFrontal determines the split between A, B, and C, with A being of size nFrontal x nFrontal.

if non-zero, factorization proceeds in bottom-right corner starting at topleft

Returns
true if the decomposition is successful, false if A was not positive-definite.

◆ circleCircleIntersection()

GTSAM_EXPORT std::list<Point2> gtsam::circleCircleIntersection ( Point2  c1,
double  r1,
Point2  c2,
double  r2,
double  tol = 1e-9 
)

Intersect 2 circles.

Parameters
c1center of first circle
r1radius of first circle
c2center of second circle
r2radius of second circle
tolabsolute tolerance below which we consider touching circles
Returns
list of solutions (0,1, or 2). Identical circles will return empty list, as well.

◆ collect()

GTSAM_EXPORT Matrix gtsam::collect ( const std::vector< const Matrix *> &  matrices,
size_t  m = 0,
size_t  n = 0 
)

create a matrix by concatenating Given a set of matrices: A1, A2, A3... If all matrices have the same size, specifying single matrix dimensions will avoid the lookup of dimensions

Parameters
matricesis a vector of matrices in the order to be collected
mis the number of rows of a single matrix
nis the number of columns of a single matrix
Returns
combined matrix [A1 A2 A3]

◆ column()

template<class MATRIX >
const MATRIX::ConstColXpr gtsam::column ( const MATRIX &  A,
size_t  j 
)

Extracts a column view from a matrix that avoids a copy

Parameters
Amatrix to extract column from
jindex of the column
Returns
a const view of the matrix

◆ composePoses()

template<class G , class Factor , class POSE , class KEY >
std::shared_ptr< Values > gtsam::composePoses ( const G &  graph,
const PredecessorMap< KEY > &  tree,
const POSE &  rootPose 
)

Compose the poses by following the chain specified by the spanning tree

◆ concatVectors() [1/2]

GTSAM_EXPORT Vector gtsam::concatVectors ( const std::list< Vector > &  vs)

concatenate Vectors

◆ concatVectors() [2/2]

GTSAM_EXPORT Vector gtsam::concatVectors ( size_t  nrVectors,
  ... 
)

concatenate Vectors

◆ conjugateGradientDescent() [1/3]

GTSAM_EXPORT Vector gtsam::conjugateGradientDescent ( const System Ab,
const Vector &  x,
const ConjugateGradientParameters parameters 
)

Method of conjugate gradients (CG), System version

◆ conjugateGradientDescent() [2/3]

GTSAM_EXPORT Vector gtsam::conjugateGradientDescent ( const Matrix &  A,
const Vector &  b,
const Vector &  x,
const ConjugateGradientParameters parameters 
)

Method of conjugate gradients (CG), Matrix version

◆ conjugateGradientDescent() [3/3]

GTSAM_EXPORT VectorValues gtsam::conjugateGradientDescent ( const GaussianFactorGraph fg,
const VectorValues x,
const ConjugateGradientParameters parameters 
)

Method of conjugate gradients (CG), Gaussian Factor Graph version

◆ conjugateGradients()

template<class S , class V , class E >
V gtsam::conjugateGradients ( const S &  Ab,
x,
const ConjugateGradientParameters parameters,
bool  steepest = false 
)

Method of conjugate gradients (CG) template "System" class S needs gradient(S,v), e=S*v, v=S^e "Vector" class V needs dot(v,v), -v, v+v, s*v "Vector" class E needs dot(v,v)

Parameters
Ab,the"system" that needs to be solved, examples below
xis the initial estimate
steepestflag, if true does steepest descent, not CG

◆ ConvertNoiseModel()

GTSAM_EXPORT SharedNoiseModel gtsam::ConvertNoiseModel ( const SharedNoiseModel model,
size_t  n,
bool  defaultToUnit = true 
)

When creating (any) FrobeniusFactor we can convert a Rot/Pose BetweenFactor noise model into a n-dimensional isotropic noise model used to weight the Frobenius norm. If the noise model passed is null we return a n-dimensional isotropic noise model with sigma=1.0. If not, we we check if the d-dimensional noise model on rotations is isotropic. If it is, we extend to 'n' dimensions, otherwise we throw an error. If the noise model is a robust error model, we use the sigmas of the underlying noise model.

If defaultToUnit == false throws an exception on unexepcted input.

◆ createPinholeCalibration()

template<class CALIBRATION >
Cal3_S2 gtsam::createPinholeCalibration ( const CALIBRATION &  cal)

Create a pinhole calibration from a different Cal3 object, removing distortion.

Template Parameters
CALIBRATIONOriginal calibration object.
Parameters
calInput calibration object.
Returns
Cal3_S2 with only the pinhole elements of cal.

◆ createRewrittenFileName()

GTSAM_EXPORT std::string gtsam::createRewrittenFileName ( const std::string &  name)

Creates a temporary file name that needs to be ignored in .gitingnore for checking read-write oprations

◆ createUnknowns()

template<typename T >
std::vector< Expression< T > > gtsam::createUnknowns ( size_t  n,
char  c,
size_t  start = 0 
)

Construct an array of leaves.

Construct an array of unknown expressions with successive symbol keys Example: createUnknowns<Pose2>(3,'x') creates unknown expressions for x0,x1,x2

◆ cross()

GTSAM_EXPORT Point3 gtsam::cross ( const Point3 p,
const Point3 q,
OptionalJacobian< 3, 3 >  H_p = {},
OptionalJacobian< 3, 3 >  H_q = {} 
)

cross product

Returns
this x q

◆ diag()

GTSAM_EXPORT Matrix gtsam::diag ( const std::vector< Matrix > &  Hs)

Create a matrix with submatrices along its diagonal

◆ DLT()

GTSAM_EXPORT std::tuple<int, double, Vector> gtsam::DLT ( const Matrix &  A,
double  rank_tol = 1e-9 
)

Direct linear transform algorithm that calls svd to find a vector v that minimizes the algebraic error A*v

Parameters
Aof size m*n, where m>=n (pad with zero rows if not!) Returns rank of A, minimum error (singular value), and corresponding eigenvector (column of V, with A=U*S*V')

◆ dot()

template<class V1 , class V2 >
double gtsam::dot ( const V1 &  a,
const V2 &  b 
)
inline

Dot product

◆ ediv_()

GTSAM_EXPORT Vector gtsam::ediv_ ( const Vector &  a,
const Vector &  b 
)

elementwise division, but 0/0 = 0, not inf

Parameters
afirst vector
bsecond vector
Returns
vector [a(i)/b(i)]

◆ EliminateQR()

GTSAM_EXPORT std::pair<std::shared_ptr<GaussianConditional>, std::shared_ptr<JacobianFactor> > gtsam::EliminateQR ( const GaussianFactorGraph factors,
const Ordering keys 
)

Multiply all factors and eliminate the given keys from the resulting factor using a QR variant that handles constraints (zero sigmas). Computation happens in noiseModel::Gaussian::QR Returns a conditional on those keys, and a new factor on the separator.

◆ EliminateSymbolic()

GTSAM_EXPORT std::pair<std::shared_ptr<SymbolicConditional>, std::shared_ptr<SymbolicFactor> > gtsam::EliminateSymbolic ( const SymbolicFactorGraph factors,
const Ordering keys 
)

Dense elimination function for symbolic factors. This is usually provided as an argument to one of the factor graph elimination functions (see EliminateableFactorGraph). The factor graph elimination functions do sparse variable elimination, and use this function to eliminate single variables or variable cliques.

◆ equal() [1/4]

template<class T >
bool gtsam::equal ( const T &  obj1,
const T &  obj2,
double  tol 
)
inline

Call equal on the object

◆ equal() [2/4]

template<class T >
bool gtsam::equal ( const T &  obj1,
const T &  obj2 
)
inline

Call equal without tolerance (use default tolerance)

◆ equal() [3/4]

bool gtsam::equal ( const Vector &  vec1,
const Vector &  vec2,
double  tol 
)
inline

Override of equal in Lie.h

◆ equal() [4/4]

bool gtsam::equal ( const Vector &  vec1,
const Vector &  vec2 
)
inline

Override of equal in Lie.h

◆ equal_with_abs_tol() [1/2]

template<class MATRIX >
bool gtsam::equal_with_abs_tol ( const Eigen::DenseBase< MATRIX > &  A,
const Eigen::DenseBase< MATRIX > &  B,
double  tol = 1e-9 
)

equals with a tolerance

◆ equal_with_abs_tol() [2/2]

GTSAM_EXPORT bool gtsam::equal_with_abs_tol ( const Vector &  vec1,
const Vector &  vec2,
double  tol = 1e-9 
)

VecA == VecB up to tolerance

◆ expm() [1/2]

template<class T >
T gtsam::expm ( const Vector &  x,
int  K = 7 
)

Exponential map given exponential coordinates class T needs a wedge<> function and a constructor from Matrix

Parameters
xexponential coordinates, vector of size n @ return a T

◆ expm() [2/2]

GTSAM_EXPORT Matrix gtsam::expm ( const Matrix &  A,
size_t  K = 7 
)

Numerical exponential map, naive approach, not industrial strength !!!

Parameters
Amatrix to exponentiate
Knumber of iterations

◆ expmap_default()

template<class Class >
Class gtsam::expmap_default ( const Class &  t,
const Vector &  d 
)
inline

Exponential map centered at l0, s.t. exp(t,d) = t*exp(d)

◆ expNormalize()

std::vector<double> gtsam::expNormalize ( const std::vector< double > &  logProbs)

Normalize a set of log probabilities.

Normalizing a set of log probabilities in a numerically stable way is tricky. To avoid overflow/underflow issues, we compute the largest (finite) log probability and subtract it from each log probability before normalizing. This comes from the observation that if: p_i = exp(L_i) / ( sum_j exp(L_j) ), Then, p_i = exp(Z) exp(L_i - Z) / (exp(Z) sum_j exp(L_j - Z)), = exp(L_i - Z) / ( sum_j exp(L_j - Z) )

Setting Z = max_j L_j, we can avoid numerical issues that arise when all of the (unnormalized) log probabilities are either very large or very small.

◆ findExampleDataFile()

GTSAM_EXPORT std::string gtsam::findExampleDataFile ( const std::string &  name)

Find the full path to an example dataset distributed with gtsam. The name may be specified with or without a file extension - if no extension is given, this function first looks for the .graph extension, then .txt. We first check the gtsam source tree for the file, followed by the installed example dataset location. Both the source tree and installed locations are obtained from CMake during compilation.

Returns
The full path and filename to the requested dataset.
Exceptions
std::invalid_argumentif no matching file could be found using the search process described above.

◆ FindKarcherMean()

template<class T >
T gtsam::FindKarcherMean ( const std::vector< T, Eigen::aligned_allocator< T >> &  rotations)

Optimize for the Karcher mean, minimizing the geodesic distance to each of the given rotations, by constructing a factor graph out of simple PriorFactors.

◆ findMinimumSpanningTree()

template<class G , class KEY , class FACTOR2 >
PredecessorMap< KEY > gtsam::findMinimumSpanningTree ( const G &  g)

find the minimum spanning tree using boost graph library

◆ fpEqual()

GTSAM_EXPORT bool gtsam::fpEqual ( double  a,
double  b,
double  tol,
bool  check_relative_also = true 
)

Ensure we are not including a different version of Eigen in user code than while compiling gtsam, since it can lead to hard-to-understand runtime crashes. Numerically stable function for comparing if floating point values are equal within epsilon tolerance. Used for vector and matrix comparison with C++11 compatible functions.

If either value is NaN or Inf, we check for both values to be NaN or Inf respectively for the comparison to be true. If one is NaN/Inf and the other is not, returns false.

Parameters
check_relative_alsois a flag which toggles additional checking for relative error. This means that if either the absolute error or the relative error is within the tolerance, the result will be true. By default, the flag is true.

Return true if two numbers are close wrt tol.

◆ genericValue()

template<class T >
GenericValue<T> gtsam::genericValue ( const T &  v)

Functional constructor of GenericValue<T> so T can be automatically deduced

◆ greaterThanOrEqual()

GTSAM_EXPORT bool gtsam::greaterThanOrEqual ( const Vector &  v1,
const Vector &  v2 
)

Greater than or equal to operation returns true if all elements in v1 are greater than corresponding elements in v2

◆ gtsam2openGL() [1/2]

GTSAM_EXPORT Pose3 gtsam::gtsam2openGL ( const Rot3 R,
double  tx,
double  ty,
double  tz 
)

This function converts a GTSAM camera pose to an openGL camera pose.

Parameters
Rrotation in GTSAM
txx component of the translation in GTSAM
tyy component of the translation in GTSAM
tzz component of the translation in GTSAM
Returns
Pose3 in openGL format

◆ gtsam2openGL() [2/2]

GTSAM_EXPORT Pose3 gtsam::gtsam2openGL ( const Pose3 PoseGTSAM)

This function converts a GTSAM camera pose to an openGL camera pose.

Parameters
PoseGTSAMpose in GTSAM format
Returns
Pose3 in openGL format

◆ hasConstraints()

GTSAM_EXPORT bool gtsam::hasConstraints ( const GaussianFactorGraph factors)

Evaluates whether linear factors have any constrained noise models

Returns
true if any factor is constrained.

◆ house()

GTSAM_EXPORT std::pair<double,Vector> gtsam::house ( const Vector &  x)

house(x,j) computes HouseHolder vector v and scaling factor beta from x, such that the corresponding Householder reflection zeroes out all but x.(j), j is base 0. Golub & Van Loan p 210.

◆ householder()

GTSAM_EXPORT void gtsam::householder ( Matrix &  A,
size_t  k 
)

Householder tranformation, zeros below diagonal

Parameters
knumber of columns to zero out below diagonal
Amatrix
Returns
nothing: in place !!!

◆ householder_()

GTSAM_EXPORT void gtsam::householder_ ( Matrix &  A,
size_t  k,
bool  copy_vectors = true 
)

Householder transformation, Householder vectors below diagonal

Parameters
knumber of columns to zero out below diagonal
Amatrix
copy_vectors- true to copy Householder vectors below diagonal
Returns
nothing: in place !!!

◆ houseInPlace()

GTSAM_EXPORT double gtsam::houseInPlace ( Vector &  x)

beta = house(x) computes the HouseHolder vector in place

◆ HybridOrdering()

GTSAM_EXPORT const Ordering gtsam::HybridOrdering ( const HybridGaussianFactorGraph graph)

Return a Colamd constrained ordering where the discrete keys are eliminated after the continuous keys.

Returns
const Ordering

◆ initialCamerasAndPointsEstimate()

GTSAM_EXPORT Values gtsam::initialCamerasAndPointsEstimate ( const SfmData db)

This function creates initial values for cameras and points from db.

Note: Pose keys are simply integer indices, points use Symbol('p', j).

Parameters
SfmData
Returns
Values

◆ initialCamerasEstimate()

GTSAM_EXPORT Values gtsam::initialCamerasEstimate ( const SfmData db)

This function creates initial values for cameras from db.

No symbol is used, so camera keys are simply integer indices.

Parameters
SfmData
Returns
Values

◆ inner_prod()

template<class V1 , class V2 >
double gtsam::inner_prod ( const V1 &  a,
const V2 &  b 
)
inline

compatibility version for ublas' inner_prod()

◆ inplace_QR()

GTSAM_EXPORT void gtsam::inplace_QR ( Matrix &  A)

QR factorization using Eigen's internal block QR algorithm

Parameters
Ais the input matrix, and is the output
clear_below_diagonalenables zeroing out below diagonal

◆ insertSub()

template<typename Derived1 , typename Derived2 >
void gtsam::insertSub ( Eigen::MatrixBase< Derived1 > &  fullMatrix,
const Eigen::MatrixBase< Derived2 > &  subMatrix,
size_t  i,
size_t  j 
)

insert a submatrix IN PLACE at a specified location in a larger matrix NOTE: there is no size checking

Parameters
fullMatrixmatrix to be updated
subMatrixmatrix to be inserted
iis the row of the upper left corner insert location
jis the column of the upper left corner insert location

◆ interpolate()

template<typename T >
T gtsam::interpolate ( const T &  X,
const T &  Y,
double  t,
typename MakeOptionalJacobian< T, T >::type  Hx = {},
typename MakeOptionalJacobian< T, T >::type  Hy = {} 
)

Linear interpolation between X and Y by coefficient t. Typically t [0,1], but can also be used to extrapolate before pose X or after pose Y.

◆ inverse_square_root()

GTSAM_EXPORT Matrix gtsam::inverse_square_root ( const Matrix &  A)

Use Cholesky to calculate inverse square root of a matrix

◆ linear_dependent() [1/2]

GTSAM_EXPORT bool gtsam::linear_dependent ( const Matrix &  A,
const Matrix &  B,
double  tol = 1e-9 
)

check whether the rows of two matrices are linear dependent

◆ linear_dependent() [2/2]

GTSAM_EXPORT bool gtsam::linear_dependent ( const Vector &  vec1,
const Vector &  vec2,
double  tol = 1e-9 
)

check whether two vectors are linearly dependent

Parameters
vec1Vector
vec2Vector
tol1e-9
Returns
bool

◆ linear_independent()

GTSAM_EXPORT bool gtsam::linear_independent ( const Matrix &  A,
const Matrix &  B,
double  tol = 1e-9 
)

check whether the rows of two matrices are linear independent

◆ linearExpression()

template<typename T , typename A >
Expression<T> gtsam::linearExpression ( const std::function< T(A)> &  f,
const Expression< A > &  expression,
const Eigen::Matrix< double, traits< T >::dimension, traits< A >::dimension > &  dTdA 
)

Create an expression out of a linear function f:T->A with (constant) Jacobian dTdA TODO(frank): create a more efficient version like ScalarMultiplyExpression. This version still does a malloc every linearize.

◆ linearizeNumerically()

JacobianFactor gtsam::linearizeNumerically ( const NoiseModelFactor factor,
const Values values,
double  delta = 1e-5 
)
inline

Linearize a nonlinear factor using numerical differentiation The benefit of this method is that it does not need to know what types are involved to evaluate the factor. If all the machinery of gtsam is working correctly, we should get the correct numerical derivatives out the other side. NOTE(frank): factors that have non vector-space measurements use between or LocalCoordinates to evaluate the error, and their derivatives will only be correct for near-zero errors. This is fixable but expensive, and does not matter in practice as most factors will sit near zero errors anyway. However, it means that below will only be exact for the correct measurement.

◆ lineSearch()

template<class S , class V , class W >
double gtsam::lineSearch ( const S &  system,
const V  currentValues,
const W &  gradient 
)

Implement the golden-section line search algorithm

◆ load2D() [1/2]

GTSAM_EXPORT GraphAndValues gtsam::load2D ( std::pair< std::string, SharedNoiseModel dataset,
size_t  maxIndex = 0,
bool  addNoise = false,
bool  smart = true,
NoiseFormat  noiseFormat = NoiseFormatAUTO,
KernelFunctionType  kernelFunctionType = KernelFunctionTypeNONE 
)

Load TORO 2D Graph

Parameters
dataset/modelpair as constructed by [dataset]
maxIndexif non-zero cut out vertices >= maxIndex
addNoiseadd noise to the edges
smarttry to reduce complexity of covariance to cheapest model

◆ load2D() [2/2]

GTSAM_EXPORT GraphAndValues gtsam::load2D ( const std::string &  filename,
SharedNoiseModel  model = SharedNoiseModel(),
size_t  maxIndex = 0,
bool  addNoise = false,
bool  smart = true,
NoiseFormat  noiseFormat = NoiseFormatAUTO,
KernelFunctionType  kernelFunctionType = KernelFunctionTypeNONE 
)

Load TORO/G2O style graph files

Parameters
filename
modeloptional noise model to use instead of one specified by file
maxIndexif non-zero cut out vertices >= maxIndex
addNoiseadd noise to the edges
smarttry to reduce complexity of covariance to cheapest model
noiseFormathow noise parameters are stored
kernelFunctionTypewhether to wrap the noise model in a robust kernel
Returns
graph and initial values

◆ logmap_default()

template<class Class >
Vector gtsam::logmap_default ( const Class &  l0,
const Class &  lp 
)
inline

Log map centered at l0, s.t. exp(l0,log(l0,lp)) = lp

◆ make_shared()

template<typename T , typename ... Args>
gtsam::enable_if_t<needs_eigen_aligned_allocator<T>::value, std::shared_ptr<T> > gtsam::make_shared ( Args &&...  args)

Add our own make_shared as a layer of wrapping on std::make_shared This solves the problem with the stock make_shared that custom alignment is not respected, causing SEGFAULTs at runtime, which is notoriously hard to debug.

Explanation

The template needs_eigen_aligned_allocator<T>::value will evaluate to std::true_type if the type alias _eigen_aligned_allocator_trait = void is present in a class, which is automatically added by the GTSAM_MAKE_ALIGNED_OPERATOR_NEW macro.

This function declaration will only be taken when the above condition is true, so if some object does not need to be aligned, gtsam::make_shared will fall back to the next definition, which is a simple wrapper for std::make_shared.

Template Parameters
TThe type of object being constructed
ArgsType of the arguments of the constructor
Parameters
argsArguments of the constructor
Returns
The object created as a std::shared_ptr<T>

◆ makeBinaryOrdering()

std::pair<KeyVector, std::vector<int> > gtsam::makeBinaryOrdering ( std::vector< Key > &  input)
inline

Return the ordering as a binary tree such that all parent nodes are above their children.

This will result in a nested dissection Bayes tree after elimination.

Parameters
inputThe original ordering.
Returns
std::pair<KeyVector, std::vector<int>>

◆ MakeFunctorizedFactor()

template<typename T , typename R , typename FUNC >
FunctorizedFactor<R, T> gtsam::MakeFunctorizedFactor ( Key  key,
const R &  z,
const SharedNoiseModel model,
const FUNC  func 
)

Helper function to create a functorized factor.

Uses function template deduction to identify return type and functor type, so template list only needs the functor argument type.

◆ MakeFunctorizedFactor2()

template<typename T1 , typename T2 , typename R , typename FUNC >
FunctorizedFactor2<R, T1, T2> gtsam::MakeFunctorizedFactor2 ( Key  key1,
Key  key2,
const R &  z,
const SharedNoiseModel model,
const FUNC  func 
)

Helper function to create a functorized factor.

Uses function template deduction to identify return type and functor type, so template list only needs the functor argument type.

◆ makeSwitchingChain()

HybridGaussianFactorGraph::shared_ptr gtsam::makeSwitchingChain ( size_t  n,
std::function< Key(int)>  keyFunc = X,
std::function< Key(int)>  dKeyFunc = M 
)
inline

Create a switching system chain. A switching system is a continuous system which depends on a discrete mode at each time step of the chain.

Parameters
nThe number of chain elements.
keyFuncThe functional to help specify the continuous key.
dKeyFuncThe functional to help specify the discrete key.
Returns
HybridGaussianFactorGraph::shared_ptr

◆ maxKey()

template<class PROBLEM >
Key gtsam::maxKey ( const PROBLEM &  problem)

Find the max key in a problem. Useful to determine unique keys for additional slack variables

◆ moveWithBounce()

std::pair<Pose2, bool> gtsam::moveWithBounce ( const Pose2 cur_pose,
double  step_size,
const std::vector< SimWall2D walls,
Sampler angle_drift,
Sampler reflect_noise,
const Rot2 bias = Rot2() 
)

Calculates the next pose in a trajectory constrained by walls, with noise on angular drift and reflection noise

Parameters
cur_poseis the pose of the robot
step_sizeis the size of the forward step the robot tries to take
wallsis a set of walls to use for bouncing
angle_driftis a sampler for angle drift (dim=1)
reflect_noiseis a sampler for scatter after hitting a wall (dim=3)
Returns
the next pose for the robot NOTE: samplers cannot be const

◆ mrsymbol()

Key gtsam::mrsymbol ( unsigned char  c,
unsigned char  label,
size_t  j 
)
inline

Create a symbol key from a character, label and index, i.e. xA5.

◆ mrsymbolChr()

unsigned char gtsam::mrsymbolChr ( Key  key)
inline

Return the character portion of a symbol key.

◆ mrsymbolIndex()

size_t gtsam::mrsymbolIndex ( Key  key)
inline

Return the index portion of a symbol key.

◆ mrsymbolLabel()

unsigned char gtsam::mrsymbolLabel ( Key  key)
inline

Return the label portion of a symbol key.

◆ nonlinearConjugateGradient()

template<class S , class V >
std::tuple<V, int> gtsam::nonlinearConjugateGradient ( const S &  system,
const V &  initial,
const NonlinearOptimizerParams params,
const bool  singleIteration,
const bool  gradientDescent = false 
)

Implement the nonlinear conjugate gradient method using the Polak-Ribiere formula suggested in http://en.wikipedia.org/wiki/Nonlinear_conjugate_gradient_method.

The S (system) class requires three member functions: error(state), gradient(state) and advance(state, step-size, direction). The V class denotes the state or the solution.

The last parameter is a switch between gradient-descent and conjugate gradient

◆ numericalDerivative11() [1/2]

template<class Y , class X , int N = traits<X>::dimension>
internal::FixedSizeMatrix<Y, X>::type gtsam::numericalDerivative11 ( std::function< Y(const X &)>  h,
const X &  x,
double  delta = 1e-5 
)

New-style numerical derivatives using manifold_traits.

Computes numerical derivative in argument 1 of unary function

Parameters
hunary function yielding m-vector
xn-dimensional value at which to evaluate h
deltaincrement for numerical derivative Class Y is the output argument Class X is the input argument
Template Parameters
intN is the dimension of the X input value if variable dimension type but known at test time
Returns
m*n Jacobian computed via central differencing

◆ numericalDerivative11() [2/2]

template<class Y , class X >
internal::FixedSizeMatrix<Y,X>::type gtsam::numericalDerivative11 ( Y(*)(const X &)  h,
const X &  x,
double  delta = 1e-5 
)

use a raw C++ function pointer

◆ numericalDerivative21() [1/2]

template<class Y , class X1 , class X2 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative21 ( const std::function< Y(const X1 &, const X2 &)> &  h,
const X1 &  x1,
const X2 &  x2,
double  delta = 1e-5 
)

Compute numerical derivative in argument 1 of binary function

Parameters
hbinary function yielding m-vector
x1n-dimensional first argument value
x2second argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X1 input value if variable dimension type but known at test time

◆ numericalDerivative21() [2/2]

template<class Y , class X1 , class X2 >
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative21 ( Y(*)(const X1 &, const X2 &)  h,
const X1 &  x1,
const X2 &  x2,
double  delta = 1e-5 
)

use a raw C++ function pointer

◆ numericalDerivative22() [1/2]

template<class Y , class X1 , class X2 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative22 ( std::function< Y(const X1 &, const X2 &)>  h,
const X1 &  x1,
const X2 &  x2,
double  delta = 1e-5 
)

Compute numerical derivative in argument 2 of binary function

Parameters
hbinary function yielding m-vector
x1first argument value
x2n-dimensional second argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X2 input value if variable dimension type but known at test time

◆ numericalDerivative22() [2/2]

template<class Y , class X1 , class X2 >
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative22 ( Y(*)(const X1 &, const X2 &)  h,
const X1 &  x1,
const X2 &  x2,
double  delta = 1e-5 
)

use a raw C++ function pointer

◆ numericalDerivative31()

template<class Y , class X1 , class X2 , class X3 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative31 ( std::function< Y(const X1 &, const X2 &, const X3 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
double  delta = 1e-5 
)

Compute numerical derivative in argument 1 of ternary function

Parameters
hternary function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing All classes Y,X1,X2,X3 need dim, expmap, logmap
Template Parameters
intN is the dimension of the X1 input value if variable dimension type but known at test time

◆ numericalDerivative32()

template<class Y , class X1 , class X2 , class X3 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative32 ( std::function< Y(const X1 &, const X2 &, const X3 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
double  delta = 1e-5 
)

Compute numerical derivative in argument 2 of ternary function

Parameters
hternary function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing All classes Y,X1,X2,X3 need dim, expmap, logmap
Template Parameters
intN is the dimension of the X2 input value if variable dimension type but known at test time

◆ numericalDerivative33()

template<class Y , class X1 , class X2 , class X3 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix<Y,X3>::type gtsam::numericalDerivative33 ( std::function< Y(const X1 &, const X2 &, const X3 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
double  delta = 1e-5 
)

Compute numerical derivative in argument 3 of ternary function

Parameters
hternary function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing All classes Y,X1,X2,X3 need dim, expmap, logmap
Template Parameters
intN is the dimension of the X3 input value if variable dimension type but known at test time

◆ numericalDerivative41()

template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative41 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
double  delta = 1e-5 
)

Compute numerical derivative in argument 1 of 4-argument function

Parameters
hquartic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X1 input value if variable dimension type but known at test time

◆ numericalDerivative42()

template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative42 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
double  delta = 1e-5 
)

Compute numerical derivative in argument 2 of 4-argument function

Parameters
hquartic function yielding m-vector
x1first argument value
x2n-dimensional second argument value
x3third argument value
x4fourth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X2 input value if variable dimension type but known at test time

◆ numericalDerivative43()

template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix<Y,X3>::type gtsam::numericalDerivative43 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
double  delta = 1e-5 
)

Compute numerical derivative in argument 3 of 4-argument function

Parameters
hquartic function yielding m-vector
x1first argument value
x2second argument value
x3n-dimensional third argument value
x4fourth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X3 input value if variable dimension type but known at test time

◆ numericalDerivative44()

template<class Y , class X1 , class X2 , class X3 , class X4 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix<Y,X4>::type gtsam::numericalDerivative44 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
double  delta = 1e-5 
)

Compute numerical derivative in argument 4 of 4-argument function

Parameters
hquartic function yielding m-vector
x1first argument value
x2second argument value
x3third argument value
x4n-dimensional fourth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X4 input value if variable dimension type but known at test time

◆ numericalDerivative51()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative51 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
double  delta = 1e-5 
)

Compute numerical derivative in argument 1 of 5-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X1 input value if variable dimension type but known at test time

◆ numericalDerivative52()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative52 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
double  delta = 1e-5 
)

Compute numerical derivative in argument 2 of 5-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X2 input value if variable dimension type but known at test time

◆ numericalDerivative53()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix<Y,X3>::type gtsam::numericalDerivative53 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
double  delta = 1e-5 
)

Compute numerical derivative in argument 3 of 5-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X3 input value if variable dimension type but known at test time

◆ numericalDerivative54()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix<Y,X4>::type gtsam::numericalDerivative54 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
double  delta = 1e-5 
)

Compute numerical derivative in argument 4 of 5-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X4 input value if variable dimension type but known at test time

◆ numericalDerivative55()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , int N = traits<X5>::dimension>
internal::FixedSizeMatrix<Y,X5>::type gtsam::numericalDerivative55 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
double  delta = 1e-5 
)

Compute numerical derivative in argument 5 of 5-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X5 input value if variable dimension type but known at test time

◆ numericalDerivative61()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X1>::dimension>
internal::FixedSizeMatrix<Y,X1>::type gtsam::numericalDerivative61 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 1 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X1 input value if variable dimension type but known at test time

◆ numericalDerivative62()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X2>::dimension>
internal::FixedSizeMatrix<Y,X2>::type gtsam::numericalDerivative62 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 2 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X2 input value if variable dimension type but known at test time

◆ numericalDerivative63()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X3>::dimension>
internal::FixedSizeMatrix<Y,X3>::type gtsam::numericalDerivative63 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 3 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X3 input value if variable dimension type but known at test time

◆ numericalDerivative64()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X4>::dimension>
internal::FixedSizeMatrix<Y,X4>::type gtsam::numericalDerivative64 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 4 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X4 input value if variable dimension type but known at test time

◆ numericalDerivative65()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X5>::dimension>
internal::FixedSizeMatrix<Y,X5>::type gtsam::numericalDerivative65 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 5 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X5 input value if variable dimension type but known at test time

◆ numericalDerivative66()

template<class Y , class X1 , class X2 , class X3 , class X4 , class X5 , class X6 , int N = traits<X6>::dimension>
internal::FixedSizeMatrix<Y, X6>::type gtsam::numericalDerivative66 ( std::function< Y(const X1 &, const X2 &, const X3 &, const X4 &, const X5 &, const X6 &)>  h,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
const X4 &  x4,
const X5 &  x5,
const X6 &  x6,
double  delta = 1e-5 
)

Compute numerical derivative in argument 6 of 6-argument function

Parameters
hquintic function yielding m-vector
x1n-dimensional first argument value
x2second argument value
x3third argument value
x4fourth argument value
x5fifth argument value
x6sixth argument value
deltaincrement for numerical derivative
Returns
m*n Jacobian computed via central differencing
Template Parameters
intN is the dimension of the X6 input value if variable dimension type but known at test time

◆ numericalGradient()

template<class X , int N = traits<X>::dimension>
Eigen::Matrix<double, N, 1> gtsam::numericalGradient ( std::function< double(const X &)>  h,
const X &  x,
double  delta = 1e-5 
)

Numerically compute gradient of scalar function.

Returns
n-dimensional gradient computed via central differencing Class X is the input argument The class X needs to have dim, expmap, logmap int N is the dimension of the X input value if variable dimension type but known at test time

◆ numericalHessian()

template<class X >
internal::FixedSizeMatrix<X,X>::type gtsam::numericalHessian ( std::function< double(const X &)>  f,
const X &  x,
double  delta = 1e-5 
)
inline

Compute numerical Hessian matrix. Requires a single-argument Lie->scalar function. This is implemented simply as the derivative of the gradient.

Parameters
fA function taking a Lie object as input and returning a scalar
xThe center point for computing the Hessian
deltaThe numerical derivative step size
Returns
n*n Hessian matrix computed via central differencing

◆ numericalHessian311()

template<class X1 , class X2 , class X3 >
internal::FixedSizeMatrix<X1,X1>::type gtsam::numericalHessian311 ( std::function< double(const X1 &, const X2 &, const X3 &)>  f,
const X1 &  x1,
const X2 &  x2,
const X3 &  x3,
double  delta = 1e-5 
)
inline

Numerical Hessian for tenary functions

◆ openGL2gtsam()

GTSAM_EXPORT Pose3 gtsam::openGL2gtsam ( const Rot3 R,
double  tx,
double  ty,
double  tz 
)

This function converts an openGL camera pose to an GTSAM camera pose.

Parameters
Rrotation in openGL
txx component of the translation in openGL
tyy component of the translation in openGL
tzz component of the translation in openGL
Returns
Pose3 in GTSAM format

◆ operator!=()

bool gtsam::operator!= ( const Matrix &  A,
const Matrix &  B 
)
inline

inequality

◆ operator%() [1/2]

GTSAM_EXPORT Signature gtsam::operator% ( const DiscreteKey key,
const std::string &  parent 
)

Helper function to create Signature objects example: Signature s(D % "99/1");

◆ operator%() [2/2]

GTSAM_EXPORT Signature gtsam::operator% ( const DiscreteKey key,
const Signature::Table &  parent 
)

Helper function to create Signature objects, using table construction directly example: Signature s(D % table);

◆ operator*() [1/2]

template<typename T >
ScalarMultiplyExpression<T> gtsam::operator* ( double  s,
const Expression< T > &  e 
)

Construct an expression that executes the scalar multiplication with an input expression The type T must be a vector space Example: Expression<Point2> a(0), b = 12 * a;

◆ operator*() [2/2]

template<typename T >
Expression< T > gtsam::operator* ( const Expression< T > &  e1,
const Expression< T > &  e2 
)

Construct a product expression, assumes T::compose(T) -> T.

Construct a product expression, assumes T::compose(T) -> T Example: Expression<Point2> a(0), b(1), c = a*b;

◆ operator+()

template<typename T >
BinarySumExpression<T> gtsam::operator+ ( const Expression< T > &  e1,
const Expression< T > &  e2 
)

Construct an expression that sums two input expressions of the same type T The type T must be a vector space Example: Expression<Point2> a(0), b(1), c = a + b;

◆ operator==() [1/2]

bool gtsam::operator== ( const Matrix &  A,
const Matrix &  B 
)
inline

equality is just equal_with_abs_tol 1e-9

◆ operator==() [2/2]

GTSAM_EXPORT bool gtsam::operator== ( const Vector &  vec1,
const Vector &  vec2 
)

◆ operator>>()

GTSAM_EXPORT std::istream& gtsam::operator>> ( std::istream &  inputStream,
Matrix &  destinationMatrix 
)

Read a matrix from an input stream, such as a file. Entries can be either tab-, space-, or comma-separated, similar to the format read by the MATLAB dlmread command.

◆ operator^()

GTSAM_EXPORT Vector gtsam::operator^ ( const Matrix &  A,
const Vector &  v 
)

overload ^ for trans(A)*v We transpose the vectors for speed.

◆ operator|()

GTSAM_EXPORT Signature gtsam::operator| ( const DiscreteKey key,
const DiscreteKey parent 
)

Helper function to create Signature objects example: Signature s = D | E;

◆ optimize()

GTSAM_EXPORT Point3 gtsam::optimize ( const NonlinearFactorGraph graph,
const Values values,
Key  landmarkKey 
)

Optimize for triangulation

Parameters
graphnonlinear factors for projection
valuesinitial values
landmarkKeyto refer to landmark
Returns
refined Point3

◆ optimizeWildfire()

size_t gtsam::optimizeWildfire ( const ISAM2Clique::shared_ptr &  root,
double  threshold,
const KeySet replaced,
VectorValues delta 
)

Optimize the BayesTree, starting from the root.

Parameters
thresholdThe maximum change against the PREVIOUS delta for non-replaced variables that can be ignored, ie. the old delta entry is kept and recursive backsubstitution might eventually stop if none of the changed variables are contained in the subtree.
replacedNeeds to contain all variables that are contained in the top of the Bayes tree that has been redone.
Returns
The number of variables that were solved for.
Parameters
deltaThe current solution, an offset from the linearization point.

◆ parseEdge()

GTSAM_EXPORT std::optional<IndexedEdge> gtsam::parseEdge ( std::istream &  is,
const std::string &  tag 
)

Parse TORO/G2O edge "id1 id2 x y yaw"

Parameters
isinput stream
tagstring parsed from input stream, will only parse if edge type

◆ parseFactors()

template<typename T >
GTSAM_EXPORT std::vector<typename BetweenFactor<T>::shared_ptr> gtsam::parseFactors ( const std::string &  filename,
const noiseModel::Diagonal::shared_ptr &  model = nullptr,
size_t  maxIndex = 0 
)

Parse BetweenFactors in a line-based text format (like g2o) into a vector of shared pointers. Instantiated in .cpp T equal to Pose2 and Pose3.

◆ parseMeasurements()

template<typename T >
GTSAM_EXPORT std::vector<BinaryMeasurement<T> > gtsam::parseMeasurements ( const std::string &  filename,
const noiseModel::Diagonal::shared_ptr &  model = nullptr,
size_t  maxIndex = 0 
)

Parse binary measurements in a line-based text format (like g2o) into a vector. Instantiated in .cpp for Pose2, Rot2, Pose3, and Rot3. The rotation versions parse poses and extract only the rotation part, using the marginal covariance as noise model.

◆ parseVariables()

template<typename T >
GTSAM_EXPORT std::map<size_t, T> gtsam::parseVariables ( const std::string &  filename,
size_t  maxIndex = 0 
)

Parse variables in a line-based text format (like g2o) into a map. Instantiated in .cpp Pose2, Point2, Pose3, and Point3. Note the map keys are integer indices, not gtsam::Keys. This is is different below where landmarks will use L(index) symbols.

◆ parseVertexLandmark()

GTSAM_EXPORT std::optional<IndexedLandmark> gtsam::parseVertexLandmark ( std::istream &  is,
const std::string &  tag 
)

Parse G2O landmark vertex "id x y"

Parameters
isinput stream
tagstring parsed from input stream, will only parse if vertex type

◆ parseVertexPose()

GTSAM_EXPORT std::optional<IndexedPose> gtsam::parseVertexPose ( std::istream &  is,
const std::string &  tag 
)

Parse TORO/G2O vertex "id x y yaw"

Parameters
isinput stream
tagstring parsed from input stream, will only parse if vertex type

◆ predecessorMap2Graph()

template<class G , class V , class KEY >
std::tuple< G, V, std::map< KEY, V > > gtsam::predecessorMap2Graph ( const PredecessorMap< KEY > &  p_map)

Build takes a predecessor map, and builds a directed graph corresponding to the tree. G = Graph type V = Vertex type

◆ predecessorMap2Keys()

template<class KEY >
std::list< KEY > gtsam::predecessorMap2Keys ( const PredecessorMap< KEY > &  p_map)

Generate a list of keys from a spanning tree represented by its predecessor map

◆ print() [1/4]

GTSAM_EXPORT void gtsam::print ( const Vector &  v,
const std::string &  s,
std::ostream &  stream 
)

print without optional string, must specify cout yourself

◆ print() [2/4]

GTSAM_EXPORT void gtsam::print ( const Vector &  v,
const std::string &  s = "" 
)

print with optional string to cout

◆ print() [3/4]

GTSAM_EXPORT void gtsam::print ( const Matrix &  A,
const std::string &  s,
std::ostream &  stream 
)

print without optional string, must specify cout yourself

◆ print() [4/4]

GTSAM_EXPORT void gtsam::print ( const Matrix &  A,
const std::string &  s = "" 
)

print with optional string to cout

◆ prod()

template<class MATRIX >
MATRIX gtsam::prod ( const MATRIX &  A,
const MATRIX &  B 
)
inline

products using old-style format to improve compatibility

◆ qr()

GTSAM_EXPORT std::pair<Matrix,Matrix> gtsam::qr ( const Matrix &  A)

QR factorization, inefficient, best use imperative householder below m*n matrix -> m*m Q, m*n R

Parameters
Aa matrix
Returns
<Q,R> rotation matrix Q, upper triangular R

◆ readBal()

GTSAM_EXPORT SfmData gtsam::readBal ( const std::string &  filename)

This function parses a "Bundle Adjustment in the Large" (BAL) file and returns the data as a SfmData structure. Mainly used by wrapped code.

Parameters
filenameThe name of the BAL file.
Returns
SfM structure where the data is stored.

◆ readG2o()

GTSAM_EXPORT GraphAndValues gtsam::readG2o ( const std::string &  g2oFile,
const bool  is3D = false,
KernelFunctionType  kernelFunctionType = KernelFunctionTypeNONE 
)

This function parses a g2o file and stores the measurements into a NonlinearFactorGraph and the initial guess in a Values structure.

Parameters
filenameThe name of the g2o file\
is3Dindicates if the file describes a 2D or 3D problem
kernelFunctionTypewhether to wrap the noise model in a robust kernel
Returns
graph and initial values

◆ row()

template<class MATRIX >
const MATRIX::ConstRowXpr gtsam::row ( const MATRIX &  A,
size_t  j 
)

Extracts a row view from a matrix that avoids a copy

Parameters
Amatrix to extract row from
jindex of the row
Returns
a const view of the matrix

◆ RQ()

GTSAM_EXPORT std::pair<Matrix3, Vector3> gtsam::RQ ( const Matrix3 &  A,
OptionalJacobian< 3, 9 >  H = {} 
)

[RQ] receives a 3 by 3 matrix and returns an upper triangular matrix R and 3 rotation angles corresponding to the rotation matrix Q=Qz'*Qy'*Qx' such that A = R*Q = R*Qz'*Qy'*Qx'. When A is a rotation matrix, R will be the identity and Q is a yaw-pitch-roll decomposition of A. The implementation uses Givens rotations and is based on Hartley-Zisserman.

Parameters
A3 by 3 matrix A=RQ
Returns
an upper triangular matrix R
a vector [thetax, thetay, thetaz] in radians.

◆ save() [1/2]

GTSAM_EXPORT void gtsam::save ( const Vector &  A,
const std::string &  s,
const std::string &  filename 
)

save a vector to file, which can be loaded by matlab

◆ save() [2/2]

GTSAM_EXPORT void gtsam::save ( const Matrix &  A,
const std::string &  s,
const std::string &  filename 
)

save a matrix to file, which can be loaded by matlab

◆ save2D()

GTSAM_EXPORT void gtsam::save2D ( const NonlinearFactorGraph graph,
const Values config,
const noiseModel::Diagonal::shared_ptr  model,
const std::string &  filename 
)

save 2d graph

◆ serializeToBinaryStream()

template<class T >
void gtsam::serializeToBinaryStream ( const T &  input,
std::ostream &  out_archive_stream,
const std::string &  name = "data" 
)

serializes to a stream in binary

◆ serializeToStream()

template<class T >
void gtsam::serializeToStream ( const T &  input,
std::ostream &  out_archive_stream 
)

serializes to a stream

◆ serializeToXMLStream()

template<class T >
void gtsam::serializeToXMLStream ( const T &  input,
std::ostream &  out_archive_stream,
const std::string &  name = "data" 
)

serializes to a stream in XML

◆ skewSymmetric()

Matrix3 gtsam::skewSymmetric ( double  wx,
double  wy,
double  wz 
)
inline

skew symmetric matrix returns this: 0 -wz wy wz 0 -wx -wy wx 0

Parameters
wx3 dimensional vector
wy
wz
Returns
a 3*3 skew symmetric matrix

◆ split()

template<class G , class KEY , class FACTOR2 >
void gtsam::split ( const G &  g,
const PredecessorMap< KEY > &  tree,
G &  Ab1,
G &  Ab2 
)

Split the graph into two parts: one corresponds to the given spanning tree, and the other corresponds to the rest of the factors

◆ splitFactorGraph()

std::pair<GaussianFactorGraph, GaussianFactorGraph> gtsam::splitFactorGraph ( const GaussianFactorGraph factorGraph,
const Subgraph subgraph 
)

Split the graph into a subgraph and the remaining edges. Note that the remaining factorgraph has null factors.

◆ stack()

GTSAM_EXPORT Matrix gtsam::stack ( size_t  nrMatrices,
  ... 
)

create a matrix by stacking other matrices Given a set of matrices: A1, A2, A3...

Parameters
...pointers to matrices to be stacked
Returns
combined matrix [A1; A2; A3]

◆ steepestDescent() [1/3]

GTSAM_EXPORT Vector gtsam::steepestDescent ( const System Ab,
const Vector &  x,
const IterativeOptimizationParameters parameters 
)

Method of steepest gradients, System version

◆ steepestDescent() [2/3]

GTSAM_EXPORT Vector gtsam::steepestDescent ( const Matrix &  A,
const Vector &  b,
const Vector &  x,
const ConjugateGradientParameters parameters 
)

convenience calls using matrices, will create System class internally: Method of steepest gradients, Matrix version

◆ steepestDescent() [3/3]

GTSAM_EXPORT VectorValues gtsam::steepestDescent ( const GaussianFactorGraph fg,
const VectorValues x,
const ConjugateGradientParameters parameters 
)

Method of steepest gradients, Gaussian Factor Graph version

◆ stiefel()

GTSAM_EXPORT Matrix43 gtsam::stiefel ( const SO4 Q,
OptionalJacobian< 12, 6 >  H = {} 
)

Project to Stiefel manifold of 4*3 orthonormal 3-frames in R^4, i.e., pi(Q) -> \( S \in St(3,4) \).

◆ sub()

template<class MATRIX >
Eigen::Block<const MATRIX> gtsam::sub ( const MATRIX &  A,
size_t  i1,
size_t  i2,
size_t  j1,
size_t  j2 
)

extract submatrix, slice semantics, i.e. range = [i1,i2[ excluding i2

Parameters
Amatrix
i1first row index
i2last row index + 1
j1first col index
j2last col index + 1
Returns
submatrix A(i1:i2-1,j1:j2-1)

◆ svd()

GTSAM_EXPORT void gtsam::svd ( const Matrix &  A,
Matrix &  U,
Vector &  S,
Matrix &  V 
)

SVD computes economy SVD A=U*S*V'

Parameters
Aan m*n matrix
Uoutput argument: rotation matrix
Soutput argument: sorted vector of singular values
Voutput argument: rotation matrix if m > n then U*S*V' = (m*n)*(n*n)*(n*n) if m < n then U*S*V' = (m*m)*(m*m)*(m*n) Careful! The dimensions above reflect V', not V, which is n*m if m<n. U is a basis in R^m, V is a basis in R^n You can just pass empty matrices U,V, and vector S, they will be re-allocated.

◆ symbol()

Key gtsam::symbol ( unsigned char  c,
std::uint64_t  j 
)
inline

Create a symbol key from a character and index, i.e. x5.

◆ symbolChr()

unsigned char gtsam::symbolChr ( Key  key)
inline

Return the character portion of a symbol key.

◆ symbolIndex()

std::uint64_t gtsam::symbolIndex ( Key  key)
inline

Return the index portion of a symbol key.

◆ toBoostGraph()

template<class G , class F , class KEY >
SDGraph< KEY > gtsam::toBoostGraph ( const G &  graph)

Convert the factor graph to an SDGraph G = Graph type F = Factor type Key = Key type

◆ topLeft()

GTSAM_EXPORT Matrix3 gtsam::topLeft ( const SO4 Q,
OptionalJacobian< 9, 6 >  H = {} 
)

Project to top-left 3*3 matrix. Note this is not in general SO(3).

◆ trans()

Matrix gtsam::trans ( const Matrix &  A)
inline

static transpose function, just calls Eigen transpose member function

◆ transform_point()

template<class T , class P >
P gtsam::transform_point ( const T &  trans,
const P &  global,
OptionalMatrixType  Dtrans,
OptionalMatrixType  Dglobal 
)

Transform function that must be specialized specific domains

Template Parameters
Tis a Transform type
Pis a point type

◆ transformTo()

GTSAM_EXPORT Line3 gtsam::transformTo ( const Pose3 wTc,
const Line3 wL,
OptionalJacobian< 4, 6 >  Dpose = {},
OptionalJacobian< 4, 4 >  Dline = {} 
)

Transform a line from world to camera frame

Parameters
wTc- Pose3 of camera in world frame
wL- Line3 in world frame
Dpose- OptionalJacobian of transformed line with respect to p
Dline- OptionalJacobian of transformed line with respect to l
Returns
Transformed line in camera frame

◆ triangulateDLT() [1/2]

GTSAM_EXPORT Point3 gtsam::triangulateDLT ( const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &  projection_matrices,
const Point2Vector &  measurements,
double  rank_tol = 1e-9 
)

DLT triangulation: See Hartley and Zisserman, 2nd Ed., page 312

Parameters
projection_matricesProjection matrices (K*P^-1)
measurements2D measurements
rank_tolSVD rank tolerance
Returns
Triangulated Point3

◆ triangulateDLT() [2/2]

GTSAM_EXPORT Point3 gtsam::triangulateDLT ( const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &  projection_matrices,
const std::vector< Unit3 > &  measurements,
double  rank_tol = 1e-9 
)

overload of previous function to work with Unit3 (projected to canonical camera)

◆ triangulateHomogeneousDLT() [1/2]

GTSAM_EXPORT Vector4 gtsam::triangulateHomogeneousDLT ( const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &  projection_matrices,
const Point2Vector &  measurements,
double  rank_tol = 1e-9 
)

DLT triangulation: See Hartley and Zisserman, 2nd Ed., page 312

Parameters
projection_matricesProjection matrices (K*P^-1)
measurements2D measurements
rank_tolSVD rank tolerance
Returns
Triangulated point, in homogeneous coordinates

◆ triangulateHomogeneousDLT() [2/2]

GTSAM_EXPORT Vector4 gtsam::triangulateHomogeneousDLT ( const std::vector< Matrix34, Eigen::aligned_allocator< Matrix34 >> &  projection_matrices,
const std::vector< Unit3 > &  measurements,
double  rank_tol = 1e-9 
)

Same math as Hartley and Zisserman, 2nd Ed., page 312, but with unit-norm bearing vectors (contrarily to pinhole projection, the z entry is not assumed to be 1 as in Hartley and Zisserman)

Parameters
projection_matricesProjection matrices (K*P^-1)
measurementsUnit3 bearing measurements
rank_tolSVD rank tolerance
Returns
Triangulated point, in homogeneous coordinates

◆ triangulateLOST()

GTSAM_EXPORT Point3 gtsam::triangulateLOST ( const std::vector< Pose3 > &  poses,
const Point3Vector &  calibratedMeasurements,
const SharedIsotropic &  measurementNoise 
)

Triangulation using the LOST (Linear Optimal Sine Triangulation) algorithm proposed in https://arxiv.org/pdf/2205.12197.pdf by Sebastien Henry and John Christian.

Parameters
posescamera poses in world frame
calibratedMeasurementsmeasurements in homogeneous coordinates in each camera pose
measurementNoiseisotropic noise model for the measurements
Returns
triangulated point in world coordinates

◆ triangulateNonlinear() [1/2]

template<class CALIBRATION >
Point3 gtsam::triangulateNonlinear ( const std::vector< Pose3 > &  poses,
std::shared_ptr< CALIBRATION >  sharedCal,
const Point2Vector &  measurements,
const Point3 initialEstimate,
const SharedNoiseModel model = nullptr 
)

Given an initial estimate , refine a point using measurements in several cameras

Parameters
posesCamera poses
sharedCalshared pointer to single calibration object
measurements2D measurements
initialEstimate
Returns
refined Point3

◆ triangulateNonlinear() [2/2]

template<class CAMERA >
Point3 gtsam::triangulateNonlinear ( const CameraSet< CAMERA > &  cameras,
const typename CAMERA::MeasurementVector &  measurements,
const Point3 initialEstimate,
const SharedNoiseModel model = nullptr 
)

Given an initial estimate , refine a point using measurements in several cameras

Parameters
cameraspinhole cameras (monocular or stereo)
measurements2D measurements
initialEstimate
Returns
refined Point3

◆ triangulatePoint3() [1/2]

template<class CALIBRATION >
Point3 gtsam::triangulatePoint3 ( const std::vector< Pose3 > &  poses,
std::shared_ptr< CALIBRATION >  sharedCal,
const Point2Vector &  measurements,
double  rank_tol = 1e-9,
bool  optimize = false,
const SharedNoiseModel model = nullptr,
const bool  useLOST = false 
)

Function to triangulate 3D landmark point from an arbitrary number of poses (at least 2) using the DLT. The function checks that the resulting point lies in front of all cameras, but has no other checks to verify the quality of the triangulation.

Parameters
posesA vector of camera poses
sharedCalshared pointer to single calibration object
measurementsA vector of camera measurements
rank_tolrank tolerance, default 1e-9
optimizeFlag to turn on nonlinear refinement of triangulation
useLOSTwhether to use the LOST algorithm instead of DLT
Returns
Returns a Point3

◆ triangulatePoint3() [2/2]

template<class CAMERA >
Point3 gtsam::triangulatePoint3 ( const CameraSet< CAMERA > &  cameras,
const typename CAMERA::MeasurementVector &  measurements,
double  rank_tol = 1e-9,
bool  optimize = false,
const SharedNoiseModel model = nullptr,
const bool  useLOST = false 
)

Function to triangulate 3D landmark point from an arbitrary number of poses (at least 2) using the DLT. This function is similar to the one above, except that each camera has its own calibration. The function checks that the resulting point lies in front of all cameras, but has no other checks to verify the quality of the triangulation.

Parameters
cameraspinhole cameras
measurementsA vector of camera measurements
rank_tolrank tolerance, default 1e-9
optimizeFlag to turn on nonlinear refinement of triangulation
useLOSTwhether to use the LOST algorithm instead of DLT
Returns
Returns a Point3

◆ triangulationGraph() [1/2]

template<class CALIBRATION >
std::pair<NonlinearFactorGraph, Values> gtsam::triangulationGraph ( const std::vector< Pose3 > &  poses,
std::shared_ptr< CALIBRATION >  sharedCal,
const Point2Vector &  measurements,
Key  landmarkKey,
const Point3 initialEstimate,
const SharedNoiseModel model = noiseModel::Unit::Create(2) 
)

Create a factor graph with projection factors from poses and one calibration

Parameters
posesCamera poses
sharedCalshared pointer to single calibration object (monocular only!)
measurements2D measurements
landmarkKeyto refer to landmark
initialEstimate
Returns
graph and initial values

◆ triangulationGraph() [2/2]

template<class CAMERA >
std::pair<NonlinearFactorGraph, Values> gtsam::triangulationGraph ( const CameraSet< CAMERA > &  cameras,
const typename CAMERA::MeasurementVector &  measurements,
Key  landmarkKey,
const Point3 initialEstimate,
const SharedNoiseModel model = nullptr 
)

Create a factor graph with projection factors from pinhole cameras (each camera has a pose and calibration)

Parameters
cameraspinhole cameras (monocular or stereo)
measurements2D measurements
landmarkKeyto refer to landmark
initialEstimate
Returns
graph and initial values

◆ undistortMeasurementInternal()

template<class CALIBRATION , class MEASUREMENT >
MEASUREMENT gtsam::undistortMeasurementInternal ( const CALIBRATION &  cal,
const MEASUREMENT &  measurement,
std::optional< Cal3_S2 pinholeCal = {} 
)

Internal undistortMeasurement to be used by undistortMeasurement and undistortMeasurements

◆ undistortMeasurements() [1/5]

template<class CALIBRATION >
Point2Vector gtsam::undistortMeasurements ( const CALIBRATION &  cal,
const Point2Vector &  measurements 
)

Remove distortion for measurements so as if the measurements came from a pinhole camera.

Removes distortion but maintains the K matrix of the initial cal. Operates by calibrating using full calibration and uncalibrating with only the pinhole component of the calibration.

Template Parameters
CALIBRATIONCalibration type to use.
Parameters
calCalibration with which measurements were taken.
measurementsVector of measurements to undistort.
Returns
measurements with the effect of the distortion of sharedCal removed.

◆ undistortMeasurements() [2/5]

template<>
Point2Vector gtsam::undistortMeasurements ( const Cal3_S2 cal,
const Point2Vector &  measurements 
)
inline

Specialization for Cal3_S2 as it doesn't need to be undistorted.

◆ undistortMeasurements() [3/5]

template<class CAMERA >
CAMERA::MeasurementVector gtsam::undistortMeasurements ( const CameraSet< CAMERA > &  cameras,
const typename CAMERA::MeasurementVector &  measurements 
)

Remove distortion for measurements so as if the measurements came from a pinhole camera.

Removes distortion but maintains the K matrix of the initial calibrations. Operates by calibrating using full calibration and uncalibrating with only the pinhole component of the calibration.

Template Parameters
CAMERACamera type to use.
Parameters
camerasCameras corresponding to each measurement.
measurementsVector of measurements to undistort.
Returns
measurements with the effect of the distortion of the camera removed.

◆ undistortMeasurements() [4/5]

template<class CAMERA = PinholeCamera<Cal3_S2>>
PinholeCamera<Cal3_S2>::MeasurementVector gtsam::undistortMeasurements ( const CameraSet< PinholeCamera< Cal3_S2 >> &  cameras,
const PinholeCamera< Cal3_S2 >::MeasurementVector &  measurements 
)
inline

Specialize for Cal3_S2 to do nothing.

◆ undistortMeasurements() [5/5]

template<class CAMERA = SphericalCamera>
SphericalCamera::MeasurementVector gtsam::undistortMeasurements ( const CameraSet< SphericalCamera > &  cameras,
const SphericalCamera::MeasurementVector &  measurements 
)
inline

Specialize for SphericalCamera to do nothing.

◆ unzip()

template<typename L , typename T1 , typename T2 >
std::pair<DecisionTree<L, T1>, DecisionTree<L, T2> > gtsam::unzip ( const DecisionTree< L, std::pair< T1, T2 > > &  input)

unzip a DecisionTree with std::pair values.

Parameters
inputthe DecisionTree with (T1,T2) values.
Returns
a pair of DecisionTree on T1 and T2, respectively.

◆ vector_scale_inplace()

GTSAM_EXPORT void gtsam::vector_scale_inplace ( const Vector &  v,
Matrix &  A,
bool  inf_mask = false 
)

scales a matrix row or column by the values in a vector Arguments (Matrix, Vector) scales the columns, (Vector, Matrix) scales the rows

Parameters
inf_maskwhen true, will not scale with a NaN or inf value.

◆ wedge()

template<class T >
Matrix gtsam::wedge ( const Vector &  x)

Declaration of wedge (see Murray94book) used to convert from n exponential coordinates to n*n element of the Lie algebra

◆ wedge< Pose2 >()

template<>
Matrix gtsam::wedge< Pose2 > ( const Vector &  xi)
inline

specialization for pose2 wedge function (generic template in Lie.h)

◆ wedge< Pose3 >()

template<>
Matrix gtsam::wedge< Pose3 > ( const Vector &  xi)
inline

wedge for Pose3:

Parameters
xi6-dim twist (omega,v) where omega = 3D angular velocity v = 3D velocity
Returns
xihat, 4*4 element of Lie algebra that can be exponentiated

◆ weighted_eliminate()

GTSAM_EXPORT std::list<std::tuple<Vector, double, double> > gtsam::weighted_eliminate ( Matrix &  A,
Vector &  b,
const Vector &  sigmas 
)

Imperative algorithm for in-place full elimination with weights and constraint handling

Parameters
Ais a matrix to eliminate
bis the rhs
sigmasis a vector of the measurement standard deviation
Returns
list of r vectors, d and sigma

◆ weightedPseudoinverse()

GTSAM_EXPORT std::pair<Vector, double> gtsam::weightedPseudoinverse ( const Vector &  v,
const Vector &  weights 
)

Weighted Householder solution vector, a.k.a., the pseudoinverse of the column NOTE: if any sigmas are zero (indicating a constraint) the pseudoinverse will be a selection vector, and the variance will be zero

Parameters
vis the first column of the matrix to solve
weightsis a vector of weights/precisions where w=1/(s*s)
Returns
a pair of the pseudoinverse of v and the associated precision/weight

◆ writeBAL()

GTSAM_EXPORT bool gtsam::writeBAL ( const std::string &  filename,
const SfmData data 
)

This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure.

Parameters
filenameThe name of the BAL file to write
dataSfM structure where the data is stored
Returns
true if the parsing was successful, false otherwise

◆ writeBALfromValues()

GTSAM_EXPORT bool gtsam::writeBALfromValues ( const std::string &  filename,
const SfmData data,
const Values values 
)

This function writes a "Bundle Adjustment in the Large" (BAL) file from a SfmData structure and a value structure (measurements are the same as the SfM input data, while camera poses and values are read from Values)

Parameters
filenameThe name of the BAL file to write
dataSfM structure where the data is stored
valuesstructure where the graph values are stored (values can be either Pose3 or PinholeCamera<Cal3Bundler> for the cameras, and should be Point3 for the 3D points). Note: assumes that the keys are "i" for pose i and "Symbol::('p',j)" for landmark j.
Returns
true if the parsing was successful, false otherwise

◆ writeG2o()

GTSAM_EXPORT void gtsam::writeG2o ( const NonlinearFactorGraph graph,
const Values estimate,
const std::string &  filename 
)

This function writes a g2o file from NonlinearFactorGraph and a Values structure.

Parameters
filenameThe name of the g2o file to write
graphNonlinearFactor graph storing the measurements
estimateValues

Note:behavior change in PR #471: to be consistent with load2D and load3D, we write the indices to file and not the full Keys. This change really only affects landmarks, which get read as indices but stored in values with the symbol L(index).

◆ zeroBelowDiagonal()

template<class MATRIX >
void gtsam::zeroBelowDiagonal ( MATRIX &  A,
size_t  cols = 0 
)

Zeros all of the elements below the diagonal of a matrix, in place

Parameters
Ais a matrix, to be modified in place
colsis the number of columns to zero, use zero for all columns