21 #ifndef fiber_2d_array_hpp
22 #define fiber_2d_array_hpp
24 #include "../common/common.hpp"
25 #include "boost/operators.hpp"
30 #define FIBER_CHECK_ARRAY_BOUNDS
42 , boost::multiplicative<_2dArray<T>,T > >
46 _2dArray(
size_t extent0,
size_t extent1);
47 _2dArray(
size_t extent0,
size_t extent1, T* data);
53 T& operator()(
size_t index0,
size_t index1);
54 const T& operator()(
size_t index0,
size_t index1)
const;
60 size_t extent(
size_t dimension)
const;
61 void set_size(
size_t extent0,
size_t extent1);
64 typedef const T* const_iterator;
67 const_iterator begin()
const;
69 const_iterator end()
const;
72 void init_memory(
size_t extent0,
size_t extent1);
75 #ifdef FIBER_CHECK_ARRAY_BOUNDS
76 void check_dimension(
size_t dimension)
const;
77 void check_extents(
size_t extent0,
size_t extent1)
const;
78 void check_indices(
size_t index0,
size_t index1)
const;
104 const T& operator()(
size_t index0)
const;
105 T& operator()(
size_t index0);
107 size_t extent(
size_t dimension)
const;
110 void check_dimension(
size_t dimension)
const;
118 template <
typename T>
124 const T& operator()(
size_t index0)
const;
126 size_t extent(
size_t dimension)
const;
129 void check_dimension(
size_t dimension)
const;
138 #include "_2d_array_imp.hpp"
Lightweight encapsulation of a 1D slice of a 2D array.
Definition: _2d_array.hpp:89
_1dSliceOf2dArray(_2dArray< T > &array, size_t index1)
Construct a slice consisting of the elements array(:,index1)
Definition: _2d_array_imp.hpp:210
Simple implementation of a 2D Fortran-ordered array.
Definition: _2d_array.hpp:41
Lightweight encapsulation of a 1D slice of a constant 2D array.
Definition: _2d_array.hpp:119