11 #ifndef BARE_FIELD_ITERATOR_H
12 #define BARE_FIELD_ITERATOR_H
36 template<
class T,
unsigned Dim>
class BareField;
39 template<
class T,
unsigned Dim>
135 while (!
done() && curr-- > 0)
140 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
142 for (
unsigned int d=0; d <
Dim; ++d)
143 offloc[d] = (loc[d] - domain[d].first()) / domain[d].stride();
156 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
157 for (
unsigned d=0; d<
Dim; ++d)
158 loc[d] = this->
GetOffset(d)*domain[d].stride() + domain[d].first();
165 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
166 for (
unsigned d=0; d<
Dim; ++d)
167 loc[d] = this->
GetOffset(d)*domain[d].stride() + domain[d].first();
174 if ( *
this == (*CurrentLField).second->end() )
212 (*CurrentLField).second->begin();
221 PAssert_EQ((*CurrentLField).second->IsCompressed(), is_compressed);
222 return is_compressed;
230 return (*CurrentLField).second->CanCompress();
236 (*CurrentLField).second->Compress();
242 (*CurrentLField).second->Compress(val);
248 return (*CurrentLField).second->TryCompress();
321 const NDIndex<Dim> &owned = (*CurrentLField).second->getOwned();
324 for (
unsigned d=0; d<
Dim; ++d)
326 unsigned locd = this->
GetOffset(d)*owned[d].stride() + owned[d].first();
327 if (!owned[d].contains(
Index(locd,locd)))
337 #endif // BARE_FIELD_ITERATOR_H
void SetCurrentLocation(const FieldLoc< Dim > &loc)
static void abort(const char *=0, int exitcode=(-1))
ac_id_larray::iterator iterator_if
void GetCurrentLocation(FieldLoc< Dim > &loc) const
bool IsCompressed() const
BareField< T, Dim > * MyBareField
void finishScalarCode(bool modified=true)
BareFieldIterator(const FieldLoc< Dim > &loc, BareField< T, Dim > &df)
BareFieldIterator(BareField< T, Dim > &df)
void GetCurrentLocation(int *loc) const
int GetOffset(unsigned d) const
bool done(unsigned d) const
const BareFieldIterator< T, Dim > & operator=(const BareFieldIterator< T, Dim > &rhs)
void setIndex(int newval)
bool done(unsigned d) const
BareFieldIterator(const BareFieldIterator< T, Dim > &iter)
const BareField< T, Dim > & GetBareField() const
bool IsCompressed() const
BareFieldIterator< T, Dim > & operator++()
void prepareForScalarCode(bool tryfill=true)
BrickIterator & operator++()
BareField< T, Dim >::iterator_if CurrentLField
BareField< T, Dim > & GetBareField()