78 return UPos(mRangePtr->size());
83 return UPos(mRangePtr->size());
126 if(
m.size() <
_this->lmax().val()){
127 m.resize(
_this->lmax().val());
138 <<
") smaller than begin index position (" <<
lex() <<
")");
141 for(
auto i = *
this;
i !=
last+1; ++
i){
160 <<
" vs " <<
lmax().val());
179 mSize(size), mRef(
ref) {}
183 if(mRef !=
nullptr) {
186 if(
mProd ==
nullptr){
189 if(mRef !=
nullptr) { key = mRef; }
232 return typeid(
SizeT);
#define CXZ_ASSERT(statement, errmsg)
CIndex & operator=(SizeT lexpos)
COpRoot< SizeT, CIndex > xpr(const Sptr< CIndex > &_this) const
CIndex & operator+=(Int n)
CIndex & reformat(const Vector< SizeT > &f, const Vector< SizeT > &s)
CIndex & operator-=(Int n)
CIndex operator-(Int n) const
RangePtr prange(const CIndex &last) const
CIndex operator+(Int n) const
bool formatIsTrivial() const
Sptr< RangeType > range() const
String stringMeta() const
CIndex & at(const SizeT &metaPos)
CIndex(const RangePtr &range, SizeT pos=0)
CRangeFactory(SizeT size)
virtual void make() override
SizeT get(SizeT pos) const
virtual const TypeInfo & type() const override final
virtual RangePtr extend(const RangePtr &r) const override final
virtual Vector< Uuid > key() const override final
virtual const TypeInfo & metaType() const override final
virtual String stringMeta(SizeT pos) const override final
virtual SizeT dim() const override final
virtual SizeT size() const override final
SizeT getMeta(SizeT metaPos) const
RangePtr fromCreated(const TypeInfo &info, const Vector< Uuid > &rids) const
void addToCreated(const TypeInfo &info, const Vector< Uuid > &rids, const RangePtr &r)
constexpr const SizeT & val() const
constexpr decltype(auto) coproot(const CArrayBase< T > &a, const Sptr< IndexT > &ind)
Sptr< RangeBase > RangePtr
std::vector< T, Allocator< T > > Vector
Sptr< Range > rangeCast(const RangePtr r)
bool formatIsTrivial(const Vector< SizeT > &f, const Vector< SizeT > &s)
String toString(const T &a)
RangePtr prange(const Sptr< RangeT > &range, const Vector< SizeT > &parts)
std::shared_ptr< T > Sptr
PRange, PRangeFactory and PIndex declaration.
static Sptr< Range > func(const RangePtr &r)