From bb7a7a8858dc18ba733ed64e0733e27a4224ece8 Mon Sep 17 00:00:00 2001 From: Vijay Vasudevan Date: Wed, 2 Dec 2015 15:05:37 -0800 Subject: TensorFlow: upstream changes from eigen to fix build from changes in last commit. --- .../eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h') diff --git a/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h b/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h index 2e59a147bc..efa2f358db 100644 --- a/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +++ b/third_party/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h @@ -141,6 +141,7 @@ struct TensorEvaluator, Device> m_unshuffledInputStrides[i] = m_unshuffledInputStrides[i - 1] * input_dims[i - 1]; m_outputStrides[i] = m_outputStrides[i - 1] * m_dimensions[i - 1]; + m_fastOutputStrides[i] = internal::TensorIntDivisor(m_outputStrides[i]); } } else { m_unshuffledInputStrides[NumDims - 1] = 1; @@ -149,6 +150,7 @@ struct TensorEvaluator, Device> m_unshuffledInputStrides[i] = m_unshuffledInputStrides[i + 1] * input_dims[i + 1]; m_outputStrides[i] = m_outputStrides[i + 1] * m_dimensions[i + 1]; + m_fastOutputStrides[i] = internal::TensorIntDivisor(m_outputStrides[i]); } } @@ -319,14 +321,14 @@ struct TensorEvaluator, Device> Index inputIndex = 0; if (static_cast(Layout) == static_cast(ColMajor)) { for (int i = NumDims - 1; i > 0; --i) { - const Index idx = index / m_outputStrides[i]; + const Index idx = index / m_fastOutputStrides[i]; inputIndex += idx * m_inputStrides[i]; index -= idx * m_outputStrides[i]; } return inputIndex + index * m_inputStrides[0]; } else { for (int i = 0; i < NumDims - 1; ++i) { - const Index idx = index / m_outputStrides[i]; + const Index idx = index / m_fastOutputStrides[i]; inputIndex += idx * m_inputStrides[i]; index -= idx * m_outputStrides[i]; } @@ -338,6 +340,7 @@ struct TensorEvaluator, Device> Dimensions m_dimensions; array m_inverseShuffle; array m_outputStrides; + array, NumDims> m_fastOutputStrides; array m_inputStrides; array m_unshuffledInputStrides; TensorEvaluator m_impl; -- cgit v1.2.3