aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/CoreDeclarations
blob: f4b8fa8c828829ba2360148df79339df15f4afac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef EIGEN_CORE_DECLARATIONS_H
#define EIGEN_CORE_DECLARATIONS_H

#ifdef __GNUC__
#define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__>=x && __GNUC_MINOR__>=y) || __GNUC__>x)
#else
#define EIGEN_GNUC_AT_LEAST(x,y) 0
#endif

#ifndef EIGEN_DONT_VECTORIZE
  #if (defined __SSE2__) && ( (!defined __GNUC__) || EIGEN_GNUC_AT_LEAST(4,2) )
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_SSE
    #include <emmintrin.h>
    #include <xmmintrin.h>
    #ifdef __SSE3__
      #include <pmmintrin.h>
    #endif
    #ifdef __SSSE3__
    #include <tmmintrin.h>
    #endif
  #elif (defined __ALTIVEC__)
    #define EIGEN_VECTORIZE
    #define EIGEN_VECTORIZE_ALTIVEC
    #include <altivec.h>
    // We _need_ to #undef bool as it's defined in <altivec.h> for some reason.
    #undef bool
  #endif
#endif

#include <cstdlib>
#include <cmath>
#include <complex>
#include <cassert>
#include <functional>

namespace Eigen {

#include "src/Core/util/Macros.h"
#include "src/Core/util/Constants.h"
#include "src/Core/util/ForwardDeclarations.h"
#include "src/Core/util/Meta.h"
#include "src/Core/util/StaticAssert.h"

} // namespace Eigen

#endif // EIGEN_CORE_DECLARATIONS_H