diff --git a/src/include/map_range.h b/src/include/map_range.h index a6ed316..2726e86 100644 --- a/src/include/map_range.h +++ b/src/include/map_range.h @@ -320,7 +320,9 @@ namespace MultiArrayTools constexpr size_t NEXT = Op::SIZE; const ExtType nxpos = last; const size_t pos = mIndPtr->posAt( mOp.get( nxpos ) ); + //VCHECK(pos); const ExtType npos = last + mExt*pos; + //VCHECK(npos.next().next().val()); const size_t mnpos = PosForward::valuex(mlast, mStep, pos); mExpr(mnpos, Getter::template getX( npos ) ); } @@ -709,7 +711,8 @@ namespace MultiArrayTools template size_t MapRange::size() const { - return RPackNum::getSize(mSpace); + return mOutRange->size(); + //return RPackNum::getSize(mSpace); } template diff --git a/src/include/multi_array_operation.h b/src/include/multi_array_operation.h index 10f77fd..be234e9 100644 --- a/src/include/multi_array_operation.h +++ b/src/include/multi_array_operation.h @@ -631,6 +631,7 @@ namespace MultiArrayTools template void OperationMaster::performAssignment(std::intptr_t blockIndexNum) { + CHECK; AssignmentExpr ae(*this, mSecond); // Expression to be executed within loop const auto loop = mSecond.template loop( mIndex.ifor(1,ae) ); // hidden Loops outside ! -> auto vectorizable diff --git a/src/include/ranges/index_base.h b/src/include/ranges/index_base.h index 186e66c..6e7e08d 100644 --- a/src/include/ranges/index_base.h +++ b/src/include/ranges/index_base.h @@ -145,6 +145,7 @@ namespace MultiArrayTools mRangePtr = in.mRangePtr; mPos = in.mPos; mMax = in.mMax; + return *this; } template @@ -153,6 +154,7 @@ namespace MultiArrayTools mRangePtr = in.mRangePtr; mPos = in.mPos; mMax = in.mMax; + return *this; } template diff --git a/src/include/xfor/xfor.h b/src/include/xfor/xfor.h index 5c3379e..f2e3437 100644 --- a/src/include/xfor/xfor.h +++ b/src/include/xfor/xfor.h @@ -188,6 +188,7 @@ namespace MultiArrayHelper ExtType last) const { typedef typename IndexClass::RangeType RangeType; + if(mlast == static_cast( -1 ) ) { CHECK; } for(size_t pos = 0u; pos != ForBound::template bound(mMax); ++pos){ //for(size_t pos = mSPos; pos != mMax; ++pos){ //const size_t mnpos = PosForward::value(mlast, mMax, pos); @@ -200,6 +201,7 @@ namespace MultiArrayHelper template inline void For::operator()(size_t mlast) const { + if(mlast == static_cast( -1 ) ) { CHECK; } typedef typename IndexClass::RangeType RangeType; const ExtType last; for(size_t pos = 0u; pos != ForBound::template bound(mMax); ++pos){