27 #ifndef SCHNEK_GRID_H_ 28 #define SCHNEK_GRID_H_ 32 #include "gridcheck.hpp" 33 #include "gridstorage.hpp" 34 #include "../typetools.hpp" 35 #include "../macros.hpp" 39 template<
class Gr
idType,
typename TList>
42 template<
class IndexType>
45 template<
class Operator,
size_t Length>
61 class GridBase :
public StoragePolicy,
public CheckingPolicy
65 typedef CheckingPolicy CheckingPolicyType;
66 typedef StoragePolicy StoragePolicyType;
67 typedef typename CheckingPolicy::IndexType IndexType;
68 typedef typename StoragePolicy::RangeType RangeType;
82 template<
template<
size_t>
class ArrayCheckingPolicy>
85 template<
template<
size_t>
class ArrayCheckingPolicy>
88 template<
template<
size_t>
class ArrayCheckingPolicy>
92 template<
template<
size_t>
class ArrayCheckingPolicy>
95 template<
template<
size_t>
class ArrayCheckingPolicy>
99 template<
class Operator,
int Length>
102 template<
class Operator,
int Length>
117 SCHNEK_INLINE T
operator()(
int i,
int j)
const;
119 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k);
121 SCHNEK_INLINE T
operator()(
int i,
int j,
int k)
const;
123 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l);
125 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l)
const;
127 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m);
129 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m)
const;
131 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m,
int o);
133 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m,
int o)
const;
135 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p);
137 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p)
const;
139 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q);
141 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q)
const;
143 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q,
int r);
145 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q,
int r)
const;
147 SCHNEK_INLINE T&
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q,
int r,
int s);
149 SCHNEK_INLINE T
operator()(
int i,
int j,
int k,
int l,
int m,
int o,
int p,
int q,
int r,
int s)
const;
161 class CheckingPolicy2
168 class CheckingPolicy2,
176 class CheckingPolicy2
184 class CheckingPolicy2,
202 void resize(
const IndexType &size);
218 void resize(
const IndexType &low,
const IndexType &high);
233 void resize(
const RangeType &range);
238 class CheckingPolicy2,
264 typedef T value_type;
292 Grid(
const IndexType &size);
306 Grid(
const IndexType &low,
const IndexType &high);
320 Grid(
const RangeType &range);
337 BaseType::operator=(val);
344 BaseType::operator=(grid);
351 class CheckingPolicy2,
356 BaseType::operator=(grid);
365 #endif // SCHNEK_GRID_H_
SCHNEK_INLINE T & operator[](const Array< int, rank, ArrayCheckingPolicy > &pos)
GridType & operator=(const GridType &grid)
Definition: grid.hpp:342
Extends from SingleArrayGridStorageBase to provide C-order indexing over the 1-dimensional data array...
Definition: single-array-storage-base.hpp:110
GridType & operator=(const T &val)
Definition: grid.hpp:335
SCHNEK_INLINE T & operator()(int i)
The generic base class for the Grid class template.
Definition: grid.hpp:61
Definition: gridcheck.hpp:39
GridBase()
Default constructor.
A multidimensional grid that stores simple data.
Definition: grid.hpp:260
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator=(const T &val)
GridType & operator=(const internal::GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &grid)
Definition: grid.hpp:354
void resize(const IndexType &size)
Resize to size[0] x ... x size[rank-1].