diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-03-10 09:28:00 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-03-10 09:28:00 +0100 |
commit | 5c0f294098f628439cf9341edb286d92f7fa138b (patch) | |
tree | f38353aa4775a54e044ea9356a472a97c763540a /Eigen/src/Core/GeneralProduct.h | |
parent | cbc572caf7c01854076d6ff84e5ae864b490458a (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.h | 25 |
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 |