From 9f013a9d86ad5cf82939bfeab2223652a821c448 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Wed, 13 Jan 2016 14:24:37 -0800 Subject: [PATCH] Properly record the rank of reduced tensors in the tensor traits. --- unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h | 2 +- unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h b/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h index c783aab975..781a37e348 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h @@ -134,7 +134,7 @@ struct traits > : public traits::type _Nested; - static const int NumDimensions = XprTraits::NumDimensions; + static const int NumDimensions = XprTraits::NumDimensions - array_size::value; static const int Layout = XprTraits::Layout; }; diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h index 8028e71c01..2dc8815b82 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h @@ -24,11 +24,14 @@ template struct traits > : traits { - typedef typename traits::Scalar Scalar; + typedef traits XprTraits; + typedef typename XprTraits::Scalar Scalar; typedef typename internal::packet_traits::type Packet; - typedef typename traits::StorageKind StorageKind; - typedef typename traits::Index Index; + typedef typename XprTraits::StorageKind StorageKind; + typedef typename XprTraits::Index Index; typedef typename XprType::Nested Nested; + static const int NumDimensions = XprTraits::NumDimensions - array_size::value; + static const int Layout = XprTraits::Layout; }; template