56 #ifndef OPENMESH_VECTOR_HH
57 #define OPENMESH_VECTOR_HH
63 #include <OpenMesh/Core/System/config.h>
70 #if defined(__GNUC__) && defined(__SSE__)
71 #include <xmmintrin.h>
100 #if defined(__GNUC__) && defined(__SSE__)
121 #define TEMPLATE_HEADER template <typename Scalar, int N>
122 #define CLASSNAME VectorT
123 #define DERIVED VectorDataT<Scalar,N>
124 #define unroll(expr) for (int i=0; i<N; ++i) expr(i)
131 #include "VectorT_inc.hh"
134 #undef TEMPLATE_HEADER
143 #if OM_PARTIAL_SPECIALIZATION
146 #define TEMPLATE_HEADER template <typename Scalar>
147 #define CLASSNAME VectorT<Scalar,DIM>
148 #define DERIVED VectorDataT<Scalar,DIM>
152 #define unroll(expr) expr(0) expr(1)
153 #define unroll_comb(expr, op) expr(0) op expr(1)
154 #define unroll_csv(expr) expr(0), expr(1)
155 #include "VectorT_inc.hh"
163 #define unroll(expr) expr(0) expr(1) expr(2)
164 #define unroll_comb(expr, op) expr(0) op expr(1) op expr(2)
165 #define unroll_csv(expr) expr(0), expr(1), expr(2)
166 #include "VectorT_inc.hh"
174 #define unroll(expr) expr(0) expr(1) expr(2) expr(3)
175 #define unroll_comb(expr, op) expr(0) op expr(1) op expr(2) op expr(3)
176 #define unroll_csv(expr) expr(0), expr(1), expr(2), expr(3)
177 #include "VectorT_inc.hh"
184 #undef TEMPLATE_HEADER
201 values_[2]*_rhs.values_[0]-values_[0]*_rhs.values_[2],
202 values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]);
213 values_[2]*_rhs.values_[0]-values_[0]*_rhs.values_[2],
214 values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]);
226 template<
typename Scalar,
int N>
234 template<
typename Scalar,
int N>
243 template<
typename Scalar,
int N>
345 #endif // OPENMESH_VECTOR_HH defined