gtsam  4.1.0
gtsam
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

 gtsam
 Global functions in a separate testing namespace.
 

Macros

#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.