2
0
mirror of https://gitlab.com/libeigen/eigen.git synced 2025-04-24 19:40:45 +08:00

Add asserts for .chip

This commit is contained in:
Tobias Wood 2024-01-19 19:18:19 +00:00 committed by Rasmus Munk Larsen
parent b0f906419e
commit b1ae206ea6
2 changed files with 7 additions and 1 deletions
unsupported/Eigen/CXX11/src/Tensor

@ -934,6 +934,7 @@ class TensorBase<Derived, ReadOnlyAccessors>
template <Index DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const TensorChippingOp<DimId, const Derived>
chip(const Index offset) const {
EIGEN_STATIC_ASSERT(DimId < Derived::NumDimensions && DimId >= 0, Chip_Dim_out_of_range)
return TensorChippingOp<DimId, const Derived>(derived(), offset, DimId);
}
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
@ -1132,11 +1133,13 @@ class TensorBase : public TensorBase<Derived, ReadOnlyAccessors> {
template <DenseIndex DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
const TensorChippingOp<DimId, const Derived>
chip(const Index offset) const {
EIGEN_STATIC_ASSERT(DimId < Derived::NumDimensions && DimId >= 0, Chip_Dim_out_of_range)
return TensorChippingOp<DimId, const Derived>(derived(), offset, DimId);
}
template <Index DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
TensorChippingOp<DimId, Derived>
chip(const Index offset) {
EIGEN_STATIC_ASSERT(DimId < Derived::NumDimensions && DimId >= 0, Chip_Dim_out_of_range)
return TensorChippingOp<DimId, Derived>(derived(), offset, DimId);
}

@ -78,7 +78,10 @@ class TensorChippingOp : public TensorBase<TensorChippingOp<DimId, XprType> > {
typedef typename Eigen::internal::traits<TensorChippingOp>::Index Index;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorChippingOp(const XprType& expr, const Index offset, const Index dim)
: m_xpr(expr), m_offset(offset), m_dim(dim) {}
: m_xpr(expr), m_offset(offset), m_dim(dim) {
eigen_assert(dim < XprType::NumDimensions && dim >= 0 && "Chip_Dim_out_of_range");
eigen_assert(offset < expr.dimension(DimId) && offset >= 0 && "Chip_Offset_out_of_range");
}
EIGEN_DEVICE_FUNC const Index offset() const { return m_offset; }
EIGEN_DEVICE_FUNC const Index dim() const { return m_dim.actualDim(); }