aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/CoreDeclarations
blob: 4c85b6d6590e67e82ff728d5b11337dab3487e4f (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
48
49
50
51
52
53
54
#ifndef EIGEN_CORE_DECLARATIONS_H
#define EIGEN_CORE_DECLARATIONS_H

#ifdef _MSC_VER
#pragma warning( disable : 4181 4244 )
#endif

#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

/*** Disable AltiVec code for now as it's out of date
  #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