aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-09-17 09:40:21 -0700
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-09-17 09:40:21 -0700
commit31afdcb4c2954f7b8c01b0f27fb39f607e94feca (patch)
tree28041e5c650a802eb1978947340c7c0660749ecc /unsupported
parent9d993c709b5edf8b7eeabe2de60be9f3b28bf373 (diff)
Fix return type for TensorEvaluator<TensorSlicingOp>::data
Diffstat (limited to 'unsupported')
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h4
-rw-r--r--unsupported/test/cxx11_tensor_morphing.cpp11
2 files changed, 13 insertions, 2 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h b/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h
index dad656313..bdc86e0fa 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h
@@ -463,8 +463,8 @@ struct TensorEvaluator<const TensorSlicingOp<StartIndices, Sizes, ArgType>, Devi
return m_impl.coeff(inputCoords);
}
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType* data() const {
- CoeffReturnType* result = m_impl.data();
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar* data() const {
+ Scalar* result = m_impl.data();
if (result) {
Index offset = 0;
if (static_cast<int>(Layout) == static_cast<int>(ColMajor)) {
diff --git a/unsupported/test/cxx11_tensor_morphing.cpp b/unsupported/test/cxx11_tensor_morphing.cpp
index 733154543..eb3b891fd 100644
--- a/unsupported/test/cxx11_tensor_morphing.cpp
+++ b/unsupported/test/cxx11_tensor_morphing.cpp
@@ -114,6 +114,16 @@ static void test_simple_slice()
}
}
+static void test_const_slice()
+{
+ const float b[1] = {42};
+ TensorMap<Tensor<const float, 1> > m(b, 1);
+ DSizes<DenseIndex, 1> offsets;
+ offsets[0] = 0;
+ TensorRef<Tensor<const float, 1> > slice_ref(m.slice(offsets, m.dimensions()));
+ VERIFY_IS_EQUAL(slice_ref(0), 42);
+}
+
template<int DataLayout>
static void test_slice_in_expr() {
typedef Matrix<float, Dynamic, Dynamic, DataLayout> Mtx;
@@ -333,6 +343,7 @@ void test_cxx11_tensor_morphing()
CALL_SUBTEST(test_simple_slice<ColMajor>());
CALL_SUBTEST(test_simple_slice<RowMajor>());
+ CALL_SUBTEST(test_const_slice());
CALL_SUBTEST(test_slice_in_expr<ColMajor>());
CALL_SUBTEST(test_slice_in_expr<RowMajor>());
CALL_SUBTEST(test_slice_as_lvalue<ColMajor>());