From 1985fb0551837fd5017858d6d7e82fd110294cfa Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 9 Apr 2008 12:31:55 +0000 Subject: Added initial experimental support for explicit vectorization. Currently only the following platform/operations are supported: - SSE2 compatible architecture - compiler compatible with intel's SSE2 intrinsics - float, double and int data types - fixed size matrices with a storage major dimension multiple of 4 (or 2 for double) - scalar-matrix product, component wise: +,-,*,min,max - matrix-matrix product only if the left matrix is vectorizable and column major or the right matrix is vectorizable and row major, e.g.: a.transpose() * b is not vectorized with the default column major storage. To use it you must define EIGEN_VECTORIZE and EIGEN_INTEL_PLATFORM. --- Eigen/Core | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'Eigen/Core') diff --git a/Eigen/Core b/Eigen/Core index 22a2ed6f2..dc28951f0 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -4,17 +4,26 @@ #include #include #include -#ifndef EIGEN_USE_CUSTOM_ASSERT #include -#endif #include +#ifdef EIGEN_VECTORIZE +#ifdef EIGEN_INTEL_PLATFORM +#include +#include +#else +#undef EIGEN_VECTORIZE +#endif +#endif + namespace Eigen { #include "src/Core/Util.h" #include "src/Core/ForwardDeclarations.h" #include "src/Core/NumTraits.h" #include "src/Core/MathFunctions.h" +#include "src/Core/PacketMath.h" +#include "src/Core/Functors.h" #include "src/Core/MatrixBase.h" #include "src/Core/Coeffs.h" #include "src/Core/OperatorEquals.h" @@ -42,7 +51,6 @@ namespace Eigen { #include "src/Core/IO.h" #include "src/Core/Swap.h" #include "src/Core/CommaInitializer.h" -#include "src/Core/Functors.h" } // namespace Eigen -- cgit v1.2.3