22 #include <gtsam/dllexport.h> 23 #include <boost/concept/assert.hpp> 24 #include <boost/range/concepts.hpp> 25 #include <gtsam/config.h> 34 #include <tbb/scalable_allocator.h> 37 #ifdef GTSAM_USE_EIGEN_MKL_OPENMP 42 # define CLANG_DIAGNOSTIC_PUSH_IGNORE(diag) \ 43 _Pragma("clang diagnostic push") \ 44 _Pragma("clang diagnostic ignored \"" diag "\"") 46 # define CLANG_DIAGNOSTIC_PUSH_IGNORE(diag) 50 # define CLANG_DIAGNOSTIC_POP() _Pragma("clang diagnostic pop") 52 # define CLANG_DIAGNOSTIC_POP() 74 template<
typename TEST_TYPE,
typename BASIC_TYPE,
typename AS_NON_CONST,
80 template<
typename BASIC_TYPE,
typename AS_NON_CONST,
typename AS_CONST>
86 template<
typename BASIC_TYPE,
typename AS_NON_CONST,
typename AS_CONST>
87 struct const_selector<const BASIC_TYPE, BASIC_TYPE, AS_NON_CONST, AS_CONST> {
97 template<
typename T, T defaultValue>
128 const T*
begin()
const {
return &element_; }
129 const T*
end()
const {
return &element_ + 1; }
131 T*
end() {
return &element_ + 1; }
132 size_t size()
const {
return 1; }
145 # pragma clang diagnostic push 146 # pragma clang diagnostic ignored "-Wunused-private-field" // Clang complains that previousOpenMPThreads is unused in the #else case below 157 #if defined GTSAM_USE_TBB && defined GTSAM_USE_EIGEN_MKL_OPENMP 175 # pragma clang diagnostic pop 184 #define assert_throw(CONDITION, EXCEPTION) ((void)0) 186 #define assert_throw(CONDITION, EXCEPTION) \ 187 if (!(CONDITION)) { \ 196 #if (_MSC_VER < 1800) 198 #include <boost/math/special_functions/fpclassify.hpp> 200 template<
typename T>
inline int isfinite(
T a) {
202 template<
typename T>
inline int isnan(
T a) {
204 template<
typename T>
inline int isinf(
T a) {
210 #include <boost/math/constants/constants.hpp> 212 #define M_PI (boost::math::constants::pi<double>()) 215 #define M_PI_2 (boost::math::constants::pi<double>() / 2.0) 218 #define M_PI_4 (boost::math::constants::pi<double>() / 4.0) 238 template<
typename ...>
using void_t = void;
255 template<
typename,
typename =
void_t<>>
269 #define GTSAM_MAKE_ALIGNED_OPERATOR_NEW \ 270 EIGEN_MAKE_ALIGNED_OPERATOR_NEW \ 271 using _eigen_aligned_allocator_trait = void; 278 #define GTSAM_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \ 279 EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \ 280 using _eigen_aligned_allocator_trait = void;
BOOST_CONCEPT_ASSERT((boost::RandomAccessRangeConcept< ListOfOneContainer< int > >))
ListOfOneContainer< T > ListOfOne(const T &element)
ptrdiff_t DenseIndex
The index type for Eigen objects.
int omp_get_num_threads(void)
int previousOpenMPThreads
std::string demangle(const char *name)
Pretty print Value type name.
unsigned __int64 uint64_t
void omp_set_num_threads(int num_threads)
Eigen::Triplet< double > T
ValueWithDefault(const T &_value)
ListOfOneContainer(const T &element)
int omp_get_num_procs(void)
const T & operator*() const
Annotation for function names.
void void_t
Convenience void_t as we assume C++11, it will not conflict the std one in C++17 as this is in gtsam:...
std::uint64_t FactorIndex
Integer nonlinear factor index type.
std::uint64_t Key
Integer nonlinear key type.