diff options
author | 2015-06-30 13:08:12 -0700 | |
---|---|---|
committer | 2015-06-30 13:08:12 -0700 | |
commit | 109005c6c9a3e6e1e42ff9efc71be3a899519ed4 (patch) | |
tree | 7f04bb79861158191692a223f282dffe73e46f03 /unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h | |
parent | a4aa7c62177ec333b91e186b10abff3bbb573077 (diff) |
Added a test for multithreaded full reductions
Diffstat (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h')
-rw-r--r-- | unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h b/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h index 1b031b7a1..33e8c01c2 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h @@ -17,6 +17,7 @@ namespace internal { template <typename T> struct SumReducer { static const bool PacketAccess = true; + static const bool IsStateful = false; EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const { (*accum) += t; @@ -49,6 +50,8 @@ template <typename T> struct SumReducer template <typename T> struct MeanReducer { static const bool PacketAccess = true; + static const bool IsStateful = true; + MeanReducer() : scalarCount_(0), packetCount_(0) { } EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) { @@ -88,6 +91,7 @@ template <typename T> struct MeanReducer template <typename T> struct MaxReducer { static const bool PacketAccess = true; + static const bool IsStateful = false; EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const { if (t > *accum) { *accum = t; } @@ -120,6 +124,7 @@ template <typename T> struct MaxReducer template <typename T> struct MinReducer { static const bool PacketAccess = true; + static const bool IsStateful = false; EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const { if (t < *accum) { *accum = t; } @@ -153,6 +158,7 @@ template <typename T> struct MinReducer template <typename T> struct ProdReducer { static const bool PacketAccess = true; + static const bool IsStateful = false; EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const { (*accum) *= t; |