#include <BrickBase.h>
Public Types | |
enum | { dimensions = Dim } |
enum | { zeroBased = true } |
typedef Interval< Dim > | Domain_t |
typedef DomainLayout< Dim > | Layout_t |
typedef BrickViewBase< Dim > | This_t |
Public Member Functions | |
BrickViewBase () | |
Default constructor - creates an uninitialized BrickViewBase (which has an empty domain with uninitilazed strides, etc. | |
~BrickViewBase () | |
const Domain_t & | domain () const |
Return our logical domain:. | |
Layout_t | layout () const |
Return our layout:. | |
const int * | strides () const |
Return the strides array. | |
const int * | originalStrides () const |
Return the true strides array. | |
int | first (int) const |
Return the first index value for the specified dimension. | |
bool | compressibleBase () const |
Used by constructors. | |
int | baseOffset () const |
Base offset - offset from beginning of underlying Brick's beginning. | |
BrickViewBase (const This_t &bvbase, bool compressible) | |
This is a special copy constructor that can change the compressibility flag. | |
BrickViewBase (const BrickBase< Dim > &base, bool compressible) | |
Subsetting Constructors. | |
This is where the real complexity lives. There are two categories of views:
| |
BrickViewBase (const BrickBase< Dim > &bbase, const Interval< Dim > &dom) | |
BrickViewBase (const BrickBase< Dim > &bbase, const Range< Dim > &dom) | |
BrickViewBase (const This_t &bvbase, const Interval< Dim > &domain) | |
BrickViewBase (const This_t &bvbase, const Range< Dim > &domain) | |
template<int BaseDim> | |
BrickViewBase (const BrickBase< BaseDim > &bbase, const SliceRange< BaseDim, Dim > &dom) | |
template<int BaseDim> | |
BrickViewBase (const BrickBase< BaseDim > &bbase, const SliceInterval< BaseDim, Dim > &dom) | |
template<int BaseDim> | |
BrickViewBase (const BrickViewBase< BaseDim > &bvbase, const SliceRange< BaseDim, Dim > &dom) | |
template<int BaseDim> | |
BrickViewBase (const BrickViewBase< BaseDim > &bvbase, const SliceInterval< BaseDim, Dim > &dom) | |
Offset calculations | |
template<class Domain > | |
int | offset (const Domain &dom) const |
int | offset (int i0) const |
int | offset (int i0, int i1) const |
int | offset (int i0, int i1, int i2) const |
int | offset (int i0, int i1, int i2, int i3) const |
int | offset (int i0, int i1, int i2, int i3, int i4) const |
int | offset (int i0, int i1, int i2, int i3, int i4, int i5) const |
int | offset (int i0, int i1, int i2, int i3, int i4, int i5, int i6) const |
template<class Domain > | |
int | offsetU (const Domain &dom) const |
int | offsetU (int i0) const |
int | offsetU (int i0, int i1) const |
int | offsetU (int i0, int i1, int i2) const |
int | offsetU (int i0, int i1, int i2, int i3) const |
int | offsetU (int i0, int i1, int i2, int i3, int i4) const |
int | offsetU (int i0, int i1, int i2, int i3, int i4, int i5) const |
int | offsetU (int i0, int i1, int i2, int i3, int i4, int i5, int i6) const |
Protected Member Functions | |
void | zeroStrides () |
void | restoreStrides () |
template<int BaseDim> | |
void | sliceInit (const int *baseStrides, const SliceRange< BaseDim, Dim > &dom) |
template<int BaseDim> | |
void | sliceInit (const BrickViewBase< BaseDim > &, const SliceRange< BaseDim, Dim > &) |
void | viewInit (const This_t &, const Range< Dim > &domain) |
void | viewInit (const BrickBase< Dim > &bbase, const Range< Dim > &domain) |
void | viewInit (const This_t &bvbase, const Interval< Dim > &domain) |
void | viewInit (const BrickBase< Dim > &bbase, const Interval< Dim > &domain) |
Protected Attributes | |
Domain_t | domain_m |
int | strides_m [Dim] |
int | ostrides_m [Dim] |
int | baseOffset_m |
bool | compressibleBase_m |
The template parameters are:
If Dim < BaseDim, then the view is called "sliced".
BrickViewBase encapsulates the calculations of the strides, domains, and indexing offsets for these complicated views.
The general template specifies the "sliced" view. We specialize below for Dim == BaseDim, which avoids the complications of slicing.
typedef Interval<Dim> Pooma::BrickViewBase< Dim >::Domain_t |
Reimplemented in Engine< Dim, T, BrickView >, Engine< Dim, T, BrickViewU >, and Engine< Dim, T, CompressibleBrickView >.
typedef DomainLayout<Dim> Pooma::BrickViewBase< Dim >::Layout_t |
Reimplemented in Engine< Dim, T, BrickView >, Engine< Dim, T, BrickViewU >, and Engine< Dim, T, CompressibleBrickView >.
typedef BrickViewBase<Dim> Pooma::BrickViewBase< Dim >::This_t |
Reimplemented in Engine< Dim, T, BrickView >, Engine< Dim, T, BrickViewU >, and Engine< Dim, T, CompressibleBrickView >.
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | ) | [inline] |
Default constructor - creates an uninitialized BrickViewBase (which has an empty domain with uninitilazed strides, etc.
).
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const This_t & | bvbase, | |
bool | compressible | |||
) | [inline] |
This is a special copy constructor that can change the compressibility flag.
Useful, for example, when constructing a brick-view of a compressible-brick-view.
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | base, | |
bool | compressible | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | bbase, | |
const Interval< Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | bbase, | |
const Range< Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const This_t & | bvbase, | |
const Interval< Dim > & | domain | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const This_t & | bvbase, | |
const Range< Dim > & | domain | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< BaseDim > & | bbase, | |
const SliceRange< BaseDim, Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< BaseDim > & | bbase, | |
const SliceInterval< BaseDim, Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickViewBase< BaseDim > & | bvbase, | |
const SliceRange< BaseDim, Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickViewBase< BaseDim > & | bvbase, | |
const SliceInterval< BaseDim, Dim > & | dom | |||
) | [inline] |
Pooma::BrickViewBase< Dim >::~BrickViewBase | ( | ) | [inline] |
const Domain_t& Pooma::BrickViewBase< Dim >::domain | ( | ) | const [inline] |
Return our logical domain:.
Reimplemented in Engine< Dim, T, CompressibleBrickView >.
Referenced by Pooma::BrickViewBase< Dim >::BrickViewBase().
Layout_t Pooma::BrickViewBase< Dim >::layout | ( | ) | const [inline] |
Return our layout:.
const int* Pooma::BrickViewBase< Dim >::strides | ( | ) | const [inline] |
Return the strides array.
const int* Pooma::BrickViewBase< Dim >::originalStrides | ( | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::first | ( | int | ) | const [inline] |
Return the first index value for the specified dimension.
(Always zero since views are zero-based).
bool Pooma::BrickViewBase< Dim >::compressibleBase | ( | ) | const [inline] |
Used by constructors.
int Pooma::BrickViewBase< Dim >::baseOffset | ( | ) | const [inline] |
Base offset - offset from beginning of underlying Brick's beginning.
int Pooma::BrickViewBase< Dim >::offset | ( | const Domain & | dom | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0 | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1, | |||
int | i2 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5, | |||
int | i6 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | const Domain & | dom | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0 | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1, | |||
int | i2 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5 | |||
) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5, | |||
int | i6 | |||
) | const [inline] |
void Pooma::BrickViewBase< Dim >::zeroStrides | ( | ) | [inline, protected] |
void Pooma::BrickViewBase< Dim >::restoreStrides | ( | ) | [inline, protected] |
Referenced by Pooma::BrickViewBase< Dim >::BrickViewBase().
void Pooma::BrickViewBase< Dim >::sliceInit | ( | const int * | baseStrides, | |
const SliceRange< BaseDim, Dim > & | dom | |||
) | [inline, protected] |
void Pooma::BrickViewBase< Dim >::sliceInit | ( | const BrickViewBase< BaseDim > & | bvbase, | |
const SliceRange< BaseDim, Dim > & | dom | |||
) | [inline, protected] |
References Pooma::BrickViewBase< Dim >::baseOffset_m, Pooma::BrickViewBase< Dim >::domain_m, SliceDomain< DomainTraits< SliceRange< Dim, SliceDim > > >::ignorable(), Pooma::BrickViewBase< Dim >::originalStrides(), Pooma::BrickViewBase< Dim >::ostrides_m, PBoundAssert, Pooma::BrickViewBase< Dim >::strides_m, and SliceDomain< DomainTraits< SliceRange< Dim, SliceDim > > >::totalDomain().
void Pooma::BrickViewBase< Dim >::viewInit | ( | const This_t & | bvbase, | |
const Range< Dim > & | domain | |||
) | [inline, protected] |
References Pooma::BrickViewBase< Dim >::ostrides_m.
Referenced by Pooma::BrickViewBase< Dim >::BrickViewBase().
void Pooma::BrickViewBase< Dim >::viewInit | ( | const BrickBase< Dim > & | bbase, | |
const Range< Dim > & | domain | |||
) | [inline, protected] |
void Pooma::BrickViewBase< Dim >::viewInit | ( | const This_t & | bvbase, | |
const Interval< Dim > & | domain | |||
) | [inline, protected] |
void Pooma::BrickViewBase< Dim >::viewInit | ( | const BrickBase< Dim > & | bbase, | |
const Interval< Dim > & | domain | |||
) | [inline, protected] |
Domain_t Pooma::BrickViewBase< Dim >::domain_m [protected] |
int Pooma::BrickViewBase< Dim >::strides_m[Dim] [protected] |
Referenced by Pooma::BrickViewBase< Dim >::offset(), Pooma::BrickViewBase< Dim >::offsetU(), Pooma::BrickViewBase< Dim >::restoreStrides(), Pooma::BrickViewBase< Dim >::sliceInit(), Pooma::BrickViewBase< Dim >::strides(), Pooma::BrickViewBase< Dim >::viewInit(), and Pooma::BrickViewBase< Dim >::zeroStrides().
int Pooma::BrickViewBase< Dim >::ostrides_m[Dim] [protected] |
int Pooma::BrickViewBase< Dim >::baseOffset_m [protected] |
bool Pooma::BrickViewBase< Dim >::compressibleBase_m [protected] |