aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/GeneralProduct.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-03-10 09:28:00 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-03-10 09:28:00 +0100
commit5c0f294098f628439cf9341edb286d92f7fa138b (patch)
treef38353aa4775a54e044ea9356a472a97c763540a /Eigen/src/Core/GeneralProduct.h
parentcbc572caf7c01854076d6ff84e5ae864b490458a (diff)
Fix evaluators unit test (i.e., when only EIGEN_ENABLE_EVALUATORS is defined
Diffstat (limited to 'Eigen/src/Core/GeneralProduct.h')
-rw-r--r--Eigen/src/Core/GeneralProduct.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/Eigen/src/Core/GeneralProduct.h b/Eigen/src/Core/GeneralProduct.h
index c37526b72..f28d2e46c 100644
--- a/Eigen/src/Core/GeneralProduct.h
+++ b/Eigen/src/Core/GeneralProduct.h
@@ -353,10 +353,13 @@ template<typename Lhs, typename Rhs>
struct traits<GeneralProduct<Lhs,Rhs,GemvProduct> >
: traits<ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs> >
{};
-#endif
-
template<int Side, int StorageOrder, bool BlasCompatible>
struct gemv_selector;
+#endif
+#ifdef EIGEN_ENABLE_EVALUATORS
+template<int Side, int StorageOrder, bool BlasCompatible>
+struct gemv_dense_sense_selector;
+#endif
} // end namespace internal
@@ -594,23 +597,25 @@ template<> struct gemv_selector<OnTheRight,RowMajor,false>
}
};
-#else // EIGEN_TEST_EVALUATORS
+#endif // EIGEN_TEST_EVALUATORS
+
+#ifdef EIGEN_ENABLE_EVALUATORS
// The vector is on the left => transposition
template<int StorageOrder, bool BlasCompatible>
-struct gemv_selector<OnTheLeft,StorageOrder,BlasCompatible>
+struct gemv_dense_sense_selector<OnTheLeft,StorageOrder,BlasCompatible>
{
template<typename Lhs, typename Rhs, typename Dest>
static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
{
Transpose<Dest> destT(dest);
enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
- gemv_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
+ gemv_dense_sense_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
::run(rhs.transpose(), lhs.transpose(), destT, alpha);
}
};
-template<> struct gemv_selector<OnTheRight,ColMajor,true>
+template<> struct gemv_dense_sense_selector<OnTheRight,ColMajor,true>
{
template<typename Lhs, typename Rhs, typename Dest>
static inline void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
@@ -685,7 +690,7 @@ template<> struct gemv_selector<OnTheRight,ColMajor,true>
}
};
-template<> struct gemv_selector<OnTheRight,RowMajor,true>
+template<> struct gemv_dense_sense_selector<OnTheRight,RowMajor,true>
{
template<typename Lhs, typename Rhs, typename Dest>
static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
@@ -737,7 +742,7 @@ template<> struct gemv_selector<OnTheRight,RowMajor,true>
}
};
-template<> struct gemv_selector<OnTheRight,ColMajor,false>
+template<> struct gemv_dense_sense_selector<OnTheRight,ColMajor,false>
{
template<typename Lhs, typename Rhs, typename Dest>
static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
@@ -750,7 +755,7 @@ template<> struct gemv_selector<OnTheRight,ColMajor,false>
}
};
-template<> struct gemv_selector<OnTheRight,RowMajor,false>
+template<> struct gemv_dense_sense_selector<OnTheRight,RowMajor,false>
{
template<typename Lhs, typename Rhs, typename Dest>
static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
@@ -763,7 +768,7 @@ template<> struct gemv_selector<OnTheRight,RowMajor,false>
}
};
-#endif // EIGEN_TEST_EVALUATORS
+#endif // EIGEN_ENABLE_EVALUATORS
} // end namespace internal