Chipping Asserts v2

This commit is contained in:
Tobias Wood 2024-01-22 18:08:23 +00:00 committed by Rasmus Munk Larsen
parent fc92fe3125
commit 05a457534f
2 changed files with 6 additions and 1 deletions

View File

@ -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);
}

View File

@ -78,7 +78,9 @@ 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_DEVICE_FUNC const Index offset() const { return m_offset; }
EIGEN_DEVICE_FUNC const Index dim() const { return m_dim.actualDim(); }