Go to the documentation of this file.
14 #if defined(EIGEN_GPU_COMPILE_PHASE)
18 #if defined(EIGEN_CUDA_ARCH)
22 #if defined(EIGEN_HIP_DEVICE_COMPILE)
29 #define EIGEN_ICC_NEEDS_CSTDINT (EIGEN_COMP_ICC>=1600 && EIGEN_COMP_CXXVER >= 11)
32 #if EIGEN_HAS_CXX11 || EIGEN_ICC_NEEDS_CSTDINT
87 #if EIGEN_ICC_NEEDS_CSTDINT
94 #undef EIGEN_ICC_NEEDS_CSTDINT
99 template<
bool Condition>
108 template<
bool Condition,
typename Then,
typename Else>
111 template<
typename Then,
typename Else>
148 template<
typename T,
typename U>
struct is_same {
enum {
value = 0 }; };
156 template<>
struct is_arithmetic<unsigned long long> {
enum {
value =
true }; };
157 using std::is_integral;
172 template<>
struct is_integral<unsigned __int64> {
enum {
value =
true }; };
177 using std::make_unsigned;
193 template<>
struct make_unsigned<signed __int64> {
typedef unsigned __int64
type; };
194 template<>
struct make_unsigned<unsigned __int64> {
typedef unsigned __int64
type; };
202 #if EIGEN_OS_MAC || EIGEN_COMP_MINGW
203 template<>
struct make_unsigned<unsigned long long> {
typedef unsigned long long type; };
204 template<>
struct make_unsigned<long long> {
typedef unsigned long long type; };
222 using std::is_convertible;
226 template<
typename From,
typename To>
246 #ifdef __INTEL_COMPILER
248 #pragma warning ( disable : 2259 )
251 #ifdef __INTEL_COMPILER
256 template<
typename From,
typename To>
273 template<
bool Condition,
typename T=
void>
struct enable_if;
278 #if defined(EIGEN_GPU_COMPILE_PHASE) && !EIGEN_HAS_CXX11
279 #if !defined(__FLT_EPSILON__)
280 #define __FLT_EPSILON__ FLT_EPSILON
281 #define __DBL_EPSILON__ DBL_EPSILON
286 template<
typename T>
struct numeric_limits
290 static T (
max)() { assert(
false &&
"Highest not supported for this type"); }
291 static T (
min)() { assert(
false &&
"Lowest not supported for this type"); }
292 static T infinity() { assert(
false &&
"Infinity not supported for this type"); }
293 static T quiet_NaN() { assert(
false &&
"quiet_NaN not supported for this type"); }
295 template<>
struct numeric_limits<
float>
298 static float epsilon() {
return __FLT_EPSILON__; }
301 #if defined(EIGEN_CUDA_ARCH)
302 return CUDART_MAX_NORMAL_F;
308 static float (
min)() {
return FLT_MIN; }
310 static float infinity() {
311 #if defined(EIGEN_CUDA_ARCH)
318 static float quiet_NaN() {
319 #if defined(EIGEN_CUDA_ARCH)
326 template<>
struct numeric_limits<double>
329 static double epsilon() {
return __DBL_EPSILON__; }
331 static double (
max)() {
return DBL_MAX; }
333 static double (
min)() {
return DBL_MIN; }
335 static double infinity() {
336 #if defined(EIGEN_CUDA_ARCH)
343 static double quiet_NaN() {
344 #if defined(EIGEN_CUDA_ARCH)
351 template<>
struct numeric_limits<
int>
354 static int epsilon() {
return 0; }
356 static int (
max)() {
return INT_MAX; }
358 static int (
min)() {
return INT_MIN; }
360 template<>
struct numeric_limits<unsigned
int>
363 static unsigned int epsilon() {
return 0; }
365 static unsigned int (
max)() {
return UINT_MAX; }
367 static unsigned int (
min)() {
return 0; }
369 template<>
struct numeric_limits<long>
372 static long epsilon() {
return 0; }
374 static long (
max)() {
return LONG_MAX; }
376 static long (
min)() {
return LONG_MIN; }
378 template<>
struct numeric_limits<unsigned long>
381 static unsigned long epsilon() {
return 0; }
383 static unsigned long (
max)() {
return ULONG_MAX; }
385 static unsigned long (
min)() {
return 0; }
387 template<>
struct numeric_limits<long long>
390 static long long epsilon() {
return 0; }
392 static long long (
max)() {
return LLONG_MAX; }
394 static long long (
min)() {
return LLONG_MIN; }
396 template<>
struct numeric_limits<unsigned long long>
399 static unsigned long long epsilon() {
return 0; }
401 static unsigned long long (
max)() {
return ULLONG_MAX; }
403 static unsigned long long (
min)() {
return 0; }
405 template<>
struct numeric_limits<bool>
408 static bool epsilon() {
return false; }
410 static bool (
max)() {
return true; }
412 static bool (
min)() {
return false; }
417 #endif // defined(EIGEN_GPU_COMPILE_PHASE) && !EIGEN_HAS_CXX11
445 template<
typename T,
typename EnableIf =
void>
struct array_size {
450 enum {
value = T::SizeAtCompileTime };
461 template<
typename T, std::
size_t N>
struct array_size<const
std::
array<T,N> > {
464 template<
typename T, std::
size_t N>
struct array_size<
std::
array<T,N> > {
481 template<
typename T,std::
size_t N>
499 #if EIGEN_HAS_STD_INVOKE_RESULT
500 template<
typename T>
struct result_of;
502 template<
typename F,
typename... ArgTypes>
503 struct result_of<
F(ArgTypes...)> {
504 typedef typename std::invoke_result<
F, ArgTypes...>
::type type1;
507 #elif EIGEN_HAS_STD_RESULT_OF
508 template<
typename T>
struct result_of {
519 template<
typename Func,
int SizeOf>
522 template<
typename Func>
525 template<
typename Func>
528 template<
typename Func>
537 enum {FunctorType =
sizeof(testFunctor(
static_cast<Func*
>(0)))};
541 template<
typename Func,
typename ArgType,
int SizeOf=sizeof(has_none)>
544 template<
typename Func,
typename ArgType>
547 template<
typename Func,
typename ArgType>
550 template<
typename Func,
typename ArgType>
559 enum {FunctorType =
sizeof(testFunctor(
static_cast<Func*
>(0)))};
563 template<
typename Func,
typename ArgType0,
typename ArgType1,
int SizeOf=sizeof(has_none)>
566 template<
typename Func,
typename ArgType0,
typename ArgType1>
568 {
typedef typename Func::result_type
type;};
570 template<
typename Func,
typename ArgType0,
typename ArgType1>
574 template<
typename Func,
typename ArgType0,
typename ArgType1>
583 enum {FunctorType =
sizeof(testFunctor(
static_cast<Func*
>(0)))};
587 template<
typename Func,
typename ArgType0,
typename ArgType1,
typename ArgType2,
int SizeOf=sizeof(has_none)>
590 template<
typename Func,
typename ArgType0,
typename ArgType1,
typename ArgType2>
592 {
typedef typename Func::result_type
type;};
594 template<
typename Func,
typename ArgType0,
typename ArgType1,
typename ArgType2>
598 template<
typename Func,
typename ArgType0,
typename ArgType1,
typename ArgType2>
607 enum {FunctorType =
sizeof(testFunctor(
static_cast<Func*
>(0)))};
613 #if EIGEN_HAS_STD_INVOKE_RESULT
614 template<
typename F,
typename... ArgTypes>
616 typedef typename std::invoke_result<
F, ArgTypes...>
::type type1;
619 #elif EIGEN_HAS_CXX11
620 template<
typename F,
typename... ArgTypes>
621 struct invoke_result {
626 template<
typename F,
typename ArgType0 =
void,
typename ArgType1 =
void,
typename ArgType2 =
void>
638 template<
typename F,
typename ArgType0>
644 template<
typename F,
typename ArgType0,
typename ArgType1>
655 template <
typename T>
658 template <
typename C>
static meta_yes testFunctor(
C const *,
typename C::ReturnType
const * = 0);
666 template <
typename T,
typename IndexType=Index>
675 template <
typename T,
typename IndexType=Index>
684 template <
typename T,
typename IndexType=Index>
698 int SupX = ((
Y==1) ? 1 :
Y/2),
699 bool Done = ((SupX-InfX)<=1 ?
true : ((SupX*SupX <=
Y) && ((SupX+1)*(SupX+1) >
Y))) >
704 MidX = (InfX+SupX)/2,
705 TakeInf = MidX*MidX >
Y ? 1 : 0,
706 NewInf =
int(TakeInf) ? InfX :
int(MidX),
707 NewSup =
int(TakeInf) ?
int(MidX) : SupX
713 template<
int Y,
int InfX,
int SupX>
714 class meta_sqrt<
Y, InfX, SupX, true> {
public:
enum {
ret = (SupX*SupX <=
Y) ? SupX : InfX }; };
720 template<
int A,
int B,
int K=1,
bool Done = ((A*K)%B)==0,
bool Big=(A>=
B)>
725 template<
int A,
int B,
int K,
bool Done>
730 template<
int A,
int B,
int K>
752 template<
unsigned Len,
unsigned Align>
763 #if defined(EIGEN_GPU_COMPILE_PHASE)
769 #if defined(EIGEN_GPU_COMPILE_PHASE) && !EIGEN_HAS_CXX11
770 using internal::device::numeric_limits;
772 using std::numeric_limits;
789 #if !defined(EIGEN_GPU_COMPILE_PHASE) || (!defined(EIGEN_CUDA_ARCH) && defined(EIGEN_CONSTEXPR_ARE_DEVICE_FUNC))
794 bool equal_strict(
const double&
x,
const double&
y) {
return std::equal_to<double>()(
x,
y); }
800 #if !defined(EIGEN_GPU_COMPILE_PHASE) || (!defined(EIGEN_CUDA_ARCH) && defined(EIGEN_CONSTEXPR_ARE_DEVICE_FUNC))
812 #endif // EIGEN_META_H
EIGEN_DEVICE_FUNC T div_ceil(const T &a, const T &b)
static meta_yes testFunctor(C const *, typename enable_if<(sizeof(return_ptr< C >() ->operator()(IndexType(0)))>0)>::type *=0)
remove_all< type1 >::type type
#define EIGEN_DEVICE_FUNC
Namespace containing all symbols from the Eigen library.
CleanedUpDerType< DerType >::type() max(const AutoDiffScalar< DerType > &x, const T &y)
static meta_yes testFunctor(C const *, typename C::ReturnType const *=0)
GaussianFactorGraphValuePair Y
remove_all< type1 >::type type
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
static internal::remove_reference< From >::type * ms_from
result_of< F(ArgType0)>::type type1
EIGEN_DEVICE_FUNC noncopyable()
remove_all< T >::type type
Eigen::Triplet< double > T
remove_all< type1 >::type type
remove_all< T >::type type
#define EIGEN_DEFAULT_DENSE_INDEX_TYPE
EIGEN_ALIGN_TO_BOUNDARY(Align) unsigned char data[Len]
Func::template result< Func(ArgType0, ArgType1, ArgType2)>::type type
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool equal_strict(const double &x, const double &y)
unary_result_of_select< Func, ArgType, FunctorType >::type type
internal::remove_all< ArgType0 >::type type
nullary_result_of_select< Func, FunctorType >::type type
Func::template result< Func(ArgType0, ArgType1)>::type type
binary_result_of_select< Func, ArgType0, ArgType1, FunctorType >::type type
remove_all< T >::type type
#define EIGEN_STRONG_INLINE
void swap(GeographicLib::NearestNeighbor< dist_t, pos_t, distfun_t > &a, GeographicLib::NearestNeighbor< dist_t, pos_t, distfun_t > &b)
result_of< F()>::type type1
EIGEN_DEVICE_FUNC ~noncopyable()
result_of< F(ArgType0, ArgType1, ArgType2)>::type type1
any_conversion(const volatile T &)
result_of< F(ArgType0, ArgType1)>::type type1
Matrix< Scalar, Dynamic, Dynamic > C
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const double &x, const double &y)
remove_all< type1 >::type type
Func::template result< Func(ArgType)>::type type
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
ternary_result_of_select< Func, ArgType0, ArgType1, ArgType2, FunctorType >::type type
internal::remove_all< ArgType0 >::type type
static meta_yes testFunctor(C const *, typename enable_if<(sizeof(return_ptr< C >() ->operator()())>0)>::type *=0)
void swap(scoped_array< T > &a, scoped_array< T > &b)
static meta_yes testFunctor(C const *, typename enable_if<(sizeof(return_ptr< C >() ->operator()(IndexType(0), IndexType(0)))>0)>::type *=0)
remove_all< T >::type type
unsigned __int64 uint64_t
CleanedUpDerType< DerType >::type() min(const AutoDiffScalar< DerType > &x, const T &y)
#define HIPRT_MAX_NORMAL_F
static Similarity2 Align(const Point2Pairs &d_abPointPairs, const Rot2 &aRb, const Point2Pair ¢roids)
This method estimates the similarity transform from differences point pairs, given a known or estimat...
Func::template result< Func()>::type type
EIGEN_CONSTEXPR Index size(const T &x)
remove_all< T >::type type
_W64 unsigned int uintptr_t
internal::remove_all< ArgType >::type type
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
const EIGEN_DEVICE_FUNC noncopyable & operator=(const noncopyable &)
gtsam
Author(s):
autogenerated on Thu Dec 19 2024 04:02:00