28 template<
bool Condition,
typename Then,
typename Else>
31 template<
typename Then,
typename Else>
32 struct conditional <false, Then, Else> {
typedef Else type; };
34 template<
typename T,
typename U>
struct is_same {
enum { value = 0 }; };
35 template<
typename T>
struct is_same<
T,
T> {
enum { value = 1 }; };
47 template <
class T,
unsigned int Size>
struct remove_const<const
T[Size]> {
typedef T type[Size]; };
59 template<>
struct is_arithmetic<long double> {
enum { value =
true }; };
62 template<>
struct is_arithmetic<signed char> {
enum { value =
true }; };
63 template<>
struct is_arithmetic<unsigned char> {
enum { value =
true }; };
64 template<>
struct is_arithmetic<signed short> {
enum { value =
true }; };
65 template<>
struct is_arithmetic<unsigned short>{
enum { value =
true }; };
67 template<>
struct is_arithmetic<unsigned int> {
enum { value =
true }; };
68 template<>
struct is_arithmetic<signed long> {
enum { value =
true }; };
69 template<>
struct is_arithmetic<unsigned long> {
enum { value =
true }; };
74 template <
typename T>
struct is_const {
enum { value = 0 }; };
75 template <
typename T>
struct is_const<
T const> {
enum { value = 1 }; };
86 template<
bool Condition,
typename T>
struct enable_if;
119 template<
typename Func,
typename ArgType,
int SizeOf=sizeof(has_none)>
122 template<
typename Func,
typename ArgType>
125 template<
typename Func,
typename ArgType>
128 template<
typename Func,
typename ArgType>
133 static has_tr1_result testFunctor(
T const *,
typename T::template result<
T(ArgType)>::type
const * = 0);
137 enum {FunctorType =
sizeof(testFunctor(static_cast<Func*>(0)))};
138 typedef typename unary_result_of_select<Func, ArgType, FunctorType>::type type;
141 template<
typename Func,
typename ArgType0,
typename ArgType1,
int SizeOf=sizeof(has_none)>
144 template<
typename Func,
typename ArgType0,
typename ArgType1>
146 {
typedef typename Func::result_type type;};
148 template<
typename Func,
typename ArgType0,
typename ArgType1>
150 {
typedef typename Func::template result<Func(ArgType0,ArgType1)>::type type;};
152 template<
typename Func,
typename ArgType0,
typename ArgType1>
157 static has_tr1_result testFunctor(
T const *,
typename T::template result<
T(ArgType0,ArgType1)>::type
const * = 0);
161 enum {FunctorType =
sizeof(testFunctor(static_cast<Func*>(0)))};
162 typedef typename binary_result_of_select<Func, ArgType0, ArgType1, FunctorType>::type type;
170 int SupX = ((Y==1) ? 1 : Y/2),
171 bool Done = ((SupX-InfX)<=1 ?
true : ((SupX*SupX <= Y) && ((SupX+1)*(SupX+1) > Y))) >
176 MidX = (InfX+SupX)/2,
177 TakeInf = MidX*MidX > Y ? 1 : 0,
178 NewInf =
int(TakeInf) ? InfX : int(MidX),
179 NewSup = int(TakeInf) ? int(MidX) : SupX
185 template<
int Y,
int InfX,
int SupX>
186 class meta_sqrt<Y, InfX, SupX, true> {
public:
enum { ret = (SupX*SupX <= Y) ? SupX : InfX }; };
191 enum { Defined = 0 };
209 typedef std::complex<T> ReturnType;
218 typedef std::complex<T> ReturnType;
228 {
enum { ret =
false }; };
231 {
enum { ret =
true }; };
234 {
enum { ret =
true }; };
237 {
enum { ret =
true }; };
243 #endif // EIGEN_META_H
Expression of the transpose of a matrix.
Definition: Transpose.h:57
Represents a diagonal matrix with its storage.
Definition: DiagonalMatrix.h:135
iterative scaling algorithm to equilibrate rows and column norms in matrices
Definition: TestIMU_Common.h:87
Definition: TypeSafeIdHash.h:44
Definition: BandTriangularSolver.h:13
Definition: DiagonalMatrix.h:18
Expression of a diagonal matrix.
Definition: DiagonalMatrix.h:248