prange: do not create a separate prange that covers the same space as its original range; return original range instead

This commit is contained in:
Christian Zimmermann 2025-01-27 16:45:05 -08:00
parent 8b2efdc522
commit 9bdce8b085

View file

@ -405,7 +405,12 @@ namespace CNORXZ
template <class RangeT>
RangePtr prange(const Sptr<RangeT>& range, const Vector<SizeT>& parts)
{
return PRangeFactory<RangeT>(range,parts).create();
if(parts.size() == range->size()){
return range; // avoid PRange that is identical to its original range
}
else {
return PRangeFactory<RangeT>(range,parts).create();
}
}
}