aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/Core
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-04-09 12:31:55 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-04-09 12:31:55 +0000
commit1985fb0551837fd5017858d6d7e82fd110294cfa (patch)
treec111f53b27d6ef2d3ee9128c774bd4b34e0488ae /Eigen/Core
parent4920f2011e8acd0e44c0c6646843d5ca5d79b68c (diff)
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.
Diffstat (limited to 'Eigen/Core')
-rw-r--r--Eigen/Core14
1 files changed, 11 insertions, 3 deletions
diff --git a/Eigen/Core b/Eigen/Core
index 22a2ed6f2..dc28951f0 100644
--- a/Eigen/Core
+++ b/Eigen/Core
@@ -4,17 +4,26 @@
#include <cstdlib>
#include <cmath>
#include <complex>
-#ifndef EIGEN_USE_CUSTOM_ASSERT
#include <cassert>
-#endif
#include <iostream>
+#ifdef EIGEN_VECTORIZE
+#ifdef EIGEN_INTEL_PLATFORM
+#include <emmintrin.h>
+#include <xmmintrin.h>
+#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