11 #ifndef BARE_FIELD_ITERATOR_H
12 #define BARE_FIELD_ITERATOR_H
35 template<
class T,
unsigned Dim>
class BareField;
38 template<
class T,
unsigned Dim>
134 while (!
done() && curr-- > 0)
139 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
141 for (
unsigned int d=0; d <
Dim; ++d)
142 offloc[d] = (loc[d] - domain[d].first()) / domain[d].stride();
155 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
156 for (
unsigned d=0; d<
Dim; ++d)
157 loc[d] = this->
GetOffset(d)*domain[d].stride() + domain[d].first();
164 const NDIndex<Dim>& domain = (*CurrentLField).second->getOwned();
165 for (
unsigned d=0; d<
Dim; ++d)
166 loc[d] = this->
GetOffset(d)*domain[d].stride() + domain[d].first();
173 if ( *
this == (*CurrentLField).second->end() )
211 (*CurrentLField).second->begin();
220 PAssert_EQ((*CurrentLField).second->IsCompressed(), is_compressed);
221 return is_compressed;
229 return (*CurrentLField).second->CanCompress();
235 (*CurrentLField).second->Compress();
241 (*CurrentLField).second->Compress(val);
247 return (*CurrentLField).second->TryCompress();
320 const NDIndex<Dim> &owned = (*CurrentLField).second->getOwned();
323 for (
unsigned d=0; d<
Dim; ++d)
325 unsigned locd = this->
GetOffset(d)*owned[d].stride() + owned[d].first();
336 #endif // BARE_FIELD_ITERATOR_H
const BareField< T, Dim > & GetBareField() const
int GetOffset(unsigned d) const
BareField< T, Dim > & GetBareField()
BareFieldIterator(BareField< T, Dim > &df)
void SetCurrentLocation(const FieldLoc< Dim > &loc)
BareFieldIterator(const FieldLoc< Dim > &loc, BareField< T, Dim > &df)
bool done(unsigned d) const
void setIndex(int newval)
BareFieldIterator< T, Dim > & operator++()
BareField< T, Dim > * MyBareField
BareFieldIterator(const BareFieldIterator< T, Dim > &iter)
void prepareForScalarCode(bool tryfill=true)
bool IsCompressed() const
ac_id_larray::iterator iterator_if
BrickIterator & operator++()
bool IsCompressed() const
void GetCurrentLocation(FieldLoc< Dim > &loc) const
bool done(unsigned d) const
c Accompany it with the information you received as to the offer to distribute corresponding source complete source code means all the source code for all modules it contains
const BareFieldIterator< T, Dim > & operator=(const BareFieldIterator< T, Dim > &rhs)
BareField< T, Dim >::iterator_if CurrentLField
static void abort(const char *=0)
void finishScalarCode(bool modified=true)
void GetCurrentLocation(int *loc) const