diff --git a/src/include/ranges/mrange.cc.h b/src/include/ranges/mrange.cc.h index a867aac..f431b80 100644 --- a/src/include/ranges/mrange.cc.h +++ b/src/include/ranges/mrange.cc.h @@ -169,6 +169,9 @@ namespace CNORXZ mLMax(mkLMax(mIPack)), mPMax(mkPMax(mIPack,mFormat)) { + mIPack = iter<0,sizeof...(Indices)> + ( [&](auto j) { return i.pack()[j]; }, + [](const auto&... e) { return SPack(std::make_shared(*e) ...); } ); *this = i.lex(); } @@ -182,6 +185,10 @@ namespace CNORXZ mFormat = i.mFormat; mLMax = mkLMax(mIPack); mPMax = mkPMax(mIPack,mFormat); + //iter<0,sizeof...(Indices)>( [&](auto j) { *mIPack[j] = *i.pack()[j]; }, NoF {} ); + mIPack = iter<0,sizeof...(Indices)> + ( [&](auto j) { return i.pack()[j]; }, + [](const auto&... e) { return SPack(std::make_shared(*e) ...); } ); return *this = i.lex(); } diff --git a/src/lib/ranges/yrange.cc b/src/lib/ranges/yrange.cc index 1998f1a..ff999cd 100644 --- a/src/lib/ranges/yrange.cc +++ b/src/lib/ranges/yrange.cc @@ -149,6 +149,7 @@ namespace CNORXZ mPMax(mkPMax()), mLMax(mkLMax()) { + // TODO: copy sub-index instances!!! *this = i.lex(); } @@ -161,6 +162,7 @@ namespace CNORXZ mLexFormat = i.mLexFormat; mPMax = mkPMax(); mLMax = mkLMax(); + // TODO: copy sub-index instances!!! return *this = i.lex(); } diff --git a/src/opt/mpi/include/rrange.cc.h b/src/opt/mpi/include/rrange.cc.h index 0a63253..bfa6d43 100644 --- a/src/opt/mpi/include/rrange.cc.h +++ b/src/opt/mpi/include/rrange.cc.h @@ -247,7 +247,7 @@ namespace CNORXZ template String RIndex::stringMeta() const { - const SizeT r = mK->lex(); + const SizeT r = mK->lex()*mRankFormat; String o; if(r == getRankNumber()){ o = mI->stringMeta(); @@ -261,7 +261,7 @@ namespace CNORXZ { MetaType o; if constexpr(Typemap::exists){ - const SizeT r = mK->lex(); + const SizeT r = mK->lex()*mRankFormat; if(r == getRankNumber()){ o = mI->meta(); }