#ifndef EIGEN_CORE_H #define EIGEN_CORE_H #define EIGEN_WIP_PRODUCT #ifdef __GNUC__ #define EIGEN_GNUC_AT_LEAST(x,y) (__GNUC__>=x && __GNUC_MINOR__>=y) || __GNUC__>x #else #define EIGEN_GNUC_AT_LEAST(x,y) false #endif #ifndef EIGEN_DONT_VECTORIZE #if (defined __SSE2__) && ( (!defined __GNUC__) || EIGEN_GNUC_AT_LEAST(4,2) ) #define EIGEN_VECTORIZE #define EIGEN_VECTORIZE_SSE #include #include #ifdef __SSE3__ #include #endif #ifdef __SSSE3__ #include #endif #elif (defined __ALTIVEC__) #define EIGEN_VECTORIZE #define EIGEN_VECTORIZE_ALTIVEC #include // We _need_ to #undef bool as it's defined in for some reason. #undef bool #endif #endif #include #include #include #include #include #ifdef EIGEN_VECTORIZE // it seems we cannot assume posix_memalign is defined in the stdlib header extern "C" int posix_memalign (void **, size_t, size_t) throw (); #endif 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/NumTraits.h" #include "src/Core/MathFunctions.h" #include "src/Core/DummyPacketMath.h" #if defined EIGEN_VECTORIZE_SSE #include "src/Core/arch/SSE/PacketMath.h" #elif defined EIGEN_VECTORIZE_ALTIVEC #include "src/Core/arch/AltiVec/PacketMath.h" #endif #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 16 #endif #include "src/Core/Functors.h" #include "src/Core/MatrixBase.h" #include "src/Core/Coeffs.h" #include "src/Core/Assign.h" #include "src/Core/MatrixStorage.h" #include "src/Core/Matrix.h" #include "src/Core/Lazy.h" #include "src/Core/Temporary.h" #include "src/Core/CwiseBinaryOp.h" #include "src/Core/CwiseUnaryOp.h" #include "src/Core/CwiseNullaryOp.h" #if (defined EIGEN_WIP_PRODUCT) #include "src/Core/ProductWIP.h" #else #include "src/Core/Product.h" #endif #include "src/Core/Block.h" #include "src/Core/Minor.h" #include "src/Core/Transpose.h" #include "src/Core/Dot.h" #include "src/Core/DiagonalMatrix.h" #include "src/Core/DiagonalCoeffs.h" #include "src/Core/Redux.h" #include "src/Core/Visitor.h" #include "src/Core/Fuzzy.h" #include "src/Core/Map.h" #include "src/Core/IO.h" #include "src/Core/Swap.h" #include "src/Core/CommaInitializer.h" #include "src/Core/Triangular.h" #include "src/Core/TriangularAssign.h" } // namespace Eigen #endif // EIGEN_CORE_H