Loading [MathJax]/extensions/tex2jax.js
gtsam 4.1.1
gtsam
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
types.h File Reference

Typedefs for easier changing of types. More...

Go to the source code of this file.

Classes

struct  gtsam::const_selector< TEST_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 Helper class that uses templates to select between two types based on whether TEST_TYPE is const or not. More...
 
struct  gtsam::const_selector< BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 Specialization for the non-const version. More...
 
struct  gtsam::const_selector< const BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST >
 Specialization for the const version. More...
 
struct  gtsam::ValueWithDefault< T, defaultValue >
 Helper struct that encapsulates a value with a default, this is just used as a member object so you don't have to specify defaults in the class constructor. More...
 
class  gtsam::ListOfOneContainer< T >
 A helper class that behaves as a container with one element, and works with boost::range. More...
 
class  gtsam::TbbOpenMPMixedScope
 An object whose scope defines a block where TBB and OpenMP parallelism are mixed. More...
 
struct  gtsam::needs_eigen_aligned_allocator< typename, typename >
 A SFINAE trait to mark classes that need special alignment. More...
 
struct  gtsam::needs_eigen_aligned_allocator< T, void_t< typename T::_eigen_aligned_allocator_trait > >
 

Namespaces

namespace  gtsam
 Global functions in a separate testing namespace.
 

Macros

#define GTSAM_DEPRECATED
 
#define CLANG_DIAGNOSTIC_PUSH_IGNORE(diag)
 
#define CLANG_DIAGNOSTIC_POP()
 
#define assert_throw(CONDITION, EXCEPTION)
 An assertion that throws an exception if NDEBUG is not defined and evaluates to an empty statement otherwise. More...
 
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
 This marks a GTSAM object to require alignment. More...
 
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
 This marks a GTSAM object to require alignment. More...
 

Typedefs

typedef std::uint64_t gtsam::Key
 Integer nonlinear key type.
 
typedef std::uint64_t gtsam::FactorIndex
 Integer nonlinear factor index type.
 
typedef ptrdiff_t gtsam::DenseIndex
 The index type for Eigen objects.
 
template<typename ... >
using gtsam::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::
 

Functions

std::string gtsam::demangle (const char *name)
 Pretty print Value type name. More...
 
 gtsam::BOOST_CONCEPT_ASSERT ((boost::RandomAccessRangeConcept< ListOfOneContainer< int > >))
 
template<typename T >
ListOfOneContainer< T > gtsam::ListOfOne (const T &element)
 Factory function for ListOfOneContainer to enable ListOfOne(e) syntax.
 

Detailed Description

Typedefs for easier changing of types.

Author
Richard Roberts
Date
Aug 21, 2010

Macro Definition Documentation

◆ assert_throw

#define assert_throw (   CONDITION,
  EXCEPTION 
)
Value:
if (!(CONDITION)) { \
throw (EXCEPTION); \
}

An assertion that throws an exception if NDEBUG is not defined and evaluates to an empty statement otherwise.

◆ GTSAM_MAKE_ALIGNED_OPERATOR_NEW

#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
Value:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW \
using _eigen_aligned_allocator_trait = void;

This marks a GTSAM object to require alignment.

With this macro an object will automatically be allocated in aligned memory when one uses gtsam::make_shared. It reduces future misalignment problems that is hard to debug. See https://eigen.tuxfamily.org/dox/group__DenseMatrixManipulation__Alignement.html for detailed explanation.

◆ GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF

#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF (   NeedsToAlign)
Value:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
using _eigen_aligned_allocator_trait = void;

This marks a GTSAM object to require alignment.

With this macro an object will automatically be allocated in aligned memory when one uses gtsam::make_shared. It reduces future misalignment problems that is hard to debug. See https://eigen.tuxfamily.org/dox/group__DenseMatrixManipulation__Alignement.html for detailed explanation.