Namespaces | Defines | Functions

/home/hauberg/Dokumenter/Capture/humim-tracker-0.1/src/ntk/geometry/Eigen/src/Core/util/Macros.h File Reference

#include <cstdlib>
#include <iostream>

Go to the source code of this file.

Namespaces

namespace  Eigen
namespace  Eigen::internal

Defines

#define EIGEN_WORLD_VERSION   2
#define EIGEN_MAJOR_VERSION   94
#define EIGEN_MINOR_VERSION   0
#define EIGEN_VERSION_AT_LEAST(x, y, z)
#define EIGEN_GNUC_AT_LEAST(x, y)   0
#define EIGEN_GNUC_AT_MOST(x, y)   0
#define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO   1
#define EIGEN_GCC3_OR_OLDER   0
#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT   0
#define EIGEN_ARCH_WANTS_STACK_ALIGNMENT   1
#define EIGEN_ALIGN   1
#define EIGEN_ALIGN_STATICALLY   1
#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION   ColMajor
#define EIGEN_DEFAULT_DENSE_INDEX_TYPE   std::ptrdiff_t
#define EIGEN_FAST_MATH   1
#define EIGEN_DEBUG_VAR(x)   std::cerr << #x << " = " << x << std::endl;
#define EIGEN_CAT2(a, b)   a ## b
#define EIGEN_CAT(a, b)   EIGEN_CAT2(a,b)
#define EIGEN_MAKESTRING2(a)   #a
#define EIGEN_MAKESTRING(a)   EIGEN_MAKESTRING2(a)
#define EIGEN_ALWAYS_INLINE_ATTRIB
#define EIGEN_FLATTEN_ATTRIB
#define EIGEN_STRONG_INLINE   inline
#define EIGEN_DONT_INLINE
#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS   inline
#define eigen_plain_assert(x)   assert(x)
#define eigen_assert(x)   eigen_plain_assert(x)
#define eigen_internal_assert(x)
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
#define EIGEN_DEPRECATED
#define EIGEN_UNUSED
#define EIGEN_UNUSED_VARIABLE(var)   (void)var;
#define EIGEN_ASM_COMMENT(X)
#define EIGEN_ALIGN16   EIGEN_ALIGN_TO_BOUNDARY(16)
#define EIGEN_RESTRICT   __restrict
#define EIGEN_STACK_ALLOCATION_LIMIT   20000
#define EIGEN_DEFAULT_IO_FORMAT   Eigen::IOFormat()
#define EIGEN_EMPTY
#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived)   EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
#define EIGEN_PLAIN_ENUM_MIN(a, b)   (((int)a <= (int)b) ? (int)a : (int)b)
#define EIGEN_PLAIN_ENUM_MAX(a, b)   (((int)a >= (int)b) ? (int)a : (int)b)
#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a, b)
#define EIGEN_SIZE_MIN_PREFER_FIXED(a, b)
#define EIGEN_SIZE_MAX(a, b)
#define EIGEN_LOGICAL_XOR(a, b)   (((a) || (b)) && !((a) && (b)))
#define EIGEN_IMPLIES(a, b)   (!(a) || (b))
#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD, FUNCTOR)
#define EIGEN_CWISE_PRODUCT_RETURN_TYPE(LHS, RHS)

Functions

bool Eigen::internal::copy_bool (bool b)

Define Documentation

#define EIGEN_ALIGN   1
#define EIGEN_ALIGN16   EIGEN_ALIGN_TO_BOUNDARY(16)
#define EIGEN_ALIGN_STATICALLY   1
#define EIGEN_ALWAYS_INLINE_ATTRIB
#define EIGEN_ARCH_WANTS_STACK_ALIGNMENT   1
#define EIGEN_ASM_COMMENT (   X  ) 
#define eigen_assert (   x  )     eigen_plain_assert(x)
#define EIGEN_CAT (   a,
  b 
)    EIGEN_CAT2(a,b)
#define EIGEN_CAT2 (   a,
  b 
)    a ## b
#define EIGEN_CWISE_PRODUCT_RETURN_TYPE (   LHS,
  RHS 
)
Value:
CwiseBinaryOp< \
      internal::scalar_product_op< \
          typename internal::traits<LHS>::Scalar, \
          typename internal::traits<RHS>::Scalar \
      >, \
      const LHS, \
      const RHS \
    >
#define EIGEN_DEBUG_VAR (   x  )     std::cerr << #x << " = " << x << std::endl;
#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
#define EIGEN_DEFAULT_DENSE_INDEX_TYPE   std::ptrdiff_t
#define EIGEN_DEFAULT_IO_FORMAT   Eigen::IOFormat()
#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION   ColMajor
#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS   inline
#define EIGEN_DENSE_PUBLIC_INTERFACE (   Derived  ) 
Value:
typedef typename Eigen::internal::traits<Derived>::Scalar Scalar;  \
  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;  \
  typedef typename Base::PacketScalar PacketScalar; \
  typedef typename Base::CoeffReturnType CoeffReturnType;  \
  typedef typename Eigen::internal::nested<Derived>::type Nested; \
  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
  typedef typename Eigen::internal::traits<Derived>::Index Index; \
  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
        MaxRowsAtCompileTime = Eigen::internal::traits<Derived>::MaxRowsAtCompileTime, \
        MaxColsAtCompileTime = Eigen::internal::traits<Derived>::MaxColsAtCompileTime, \
        Flags = Eigen::internal::traits<Derived>::Flags, \
        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
        SizeAtCompileTime = Base::SizeAtCompileTime, \
        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
  using Base::derived; \
  using Base::const_cast_derived;
#define EIGEN_DEPRECATED
#define EIGEN_DONT_INLINE
#define EIGEN_EMPTY
#define EIGEN_FAST_MATH   1

Allows to disable some optimizations which might affect the accuracy of the result. Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them. They currently include:

  • single precision Cwise::sin() and Cwise::cos() when SSE vectorization is enabled.
#define EIGEN_FLATTEN_ATTRIB
#define EIGEN_GCC3_OR_OLDER   0
#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT   0
#define EIGEN_GENERIC_PUBLIC_INTERFACE (   Derived  ) 
Value:
typedef typename Eigen::internal::traits<Derived>::Scalar Scalar;  \
  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;  \
  typedef typename Base::CoeffReturnType CoeffReturnType;  \
  typedef typename Eigen::internal::nested<Derived>::type Nested; \
  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
  typedef typename Eigen::internal::traits<Derived>::Index Index; \
  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
        Flags = Eigen::internal::traits<Derived>::Flags, \
        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
        SizeAtCompileTime = Base::SizeAtCompileTime, \
        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
        IsVectorAtCompileTime = Base::IsVectorAtCompileTime };

Just a side note. Commenting within defines works only by documenting behind the object (via '!<'). Comments cannot be multi-line and thus we have these extra long lines. What is confusing doxygen over here is that we use '\' and basically have a bunch of typedefs with their documentation in a single line.

#define EIGEN_GNUC_AT_LEAST (   x,
  y 
)    0
#define EIGEN_GNUC_AT_MOST (   x,
  y 
)    0
#define EIGEN_IMPLIES (   a,
  b 
)    (!(a) || (b))
#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR (   Derived  ) 
Value:
using Base::operator =; \
  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \
  { \
    Base::operator=(other); \
    return *this; \
  }
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS (   Derived  )     EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
#define eigen_internal_assert (   x  ) 
#define EIGEN_LOGICAL_XOR (   a,
  b 
)    (((a) || (b)) && !((a) && (b)))
#define EIGEN_MAJOR_VERSION   94
#define EIGEN_MAKE_CWISE_BINARY_OP (   METHOD,
  FUNCTOR 
)
Value:
template<typename OtherDerived> \
  EIGEN_STRONG_INLINE const CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived> \
  METHOD(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
  { \
    return CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived>(derived(), other.derived()); \
  }
#define EIGEN_MAKESTRING (   a  )     EIGEN_MAKESTRING2(a)
#define EIGEN_MAKESTRING2 (   a  )     #a
#define EIGEN_MINOR_VERSION   0
#define EIGEN_ONLY_USED_FOR_DEBUG (   x  ) 
#define eigen_plain_assert (   x  )     assert(x)
#define EIGEN_PLAIN_ENUM_MAX (   a,
  b 
)    (((int)a >= (int)b) ? (int)a : (int)b)
#define EIGEN_PLAIN_ENUM_MIN (   a,
  b 
)    (((int)a <= (int)b) ? (int)a : (int)b)
#define EIGEN_RESTRICT   __restrict
#define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO   1
#define EIGEN_SIZE_MAX (   a,
  b 
)
Value:
(((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
                           : ((int)a >= (int)b) ? (int)a : (int)b)
#define EIGEN_SIZE_MIN_PREFER_DYNAMIC (   a,
  b 
)
Value:
(((int)a == 0 || (int)b == 0) ? 0 \
                           : ((int)a == 1 || (int)b == 1) ? 1 \
                           : ((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
                           : ((int)a <= (int)b) ? (int)a : (int)b)
#define EIGEN_SIZE_MIN_PREFER_FIXED (   a,
  b 
)
Value:
(((int)a == 0 || (int)b == 0) ? 0 \
                           : ((int)a == 1 || (int)b == 1) ? 1 \
                           : ((int)a == Dynamic && (int)b == Dynamic) ? Dynamic \
                           : ((int)a == Dynamic) ? (int)b \
                           : ((int)b == Dynamic) ? (int)a \
                           : ((int)a <= (int)b) ? (int)a : (int)b)
#define EIGEN_STACK_ALLOCATION_LIMIT   20000
#define EIGEN_STRONG_INLINE   inline
#define EIGEN_UNUSED
#define EIGEN_UNUSED_VARIABLE (   var  )     (void)var;
#define EIGEN_VERSION_AT_LEAST (   x,
  y,
  z 
)
#define EIGEN_WORLD_VERSION   2