FreePOOMA
2.4.1
|
BrickViewBase<Dim> is the base-class for engines that are "views" into brick-like engines. More...
#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 |
BrickViewBase<Dim> is the base-class for engines that are "views" into brick-like engines.
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, BrickViewU >, Engine< Dim, T, BrickView >, and Engine< Dim, T, CompressibleBrickView >.
typedef DomainLayout<Dim> Pooma::BrickViewBase< Dim >::Layout_t |
Reimplemented in Engine< Dim, T, BrickViewU >, Engine< Dim, T, BrickView >, and Engine< Dim, T, CompressibleBrickView >.
typedef BrickViewBase<Dim> Pooma::BrickViewBase< Dim >::This_t |
Reimplemented in Engine< Dim, T, BrickViewU >, Engine< Dim, T, BrickView >, 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.
References Pooma::BrickViewBase< Dim >::compressibleBase_m, and Pooma::BrickViewBase< Dim >::restoreStrides().
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | base, |
bool | compressible | ||
) | [inline] |
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | bbase, |
const Interval< Dim > & | dom | ||
) | [inline] |
References Pooma::BrickViewBase< Dim >::viewInit().
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickBase< Dim > & | bbase, |
const Range< Dim > & | dom | ||
) | [inline] |
References Pooma::BrickViewBase< Dim >::viewInit().
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const This_t & | bvbase, |
const Interval< Dim > & | domain | ||
) | [inline] |
References Pooma::BrickViewBase< Dim >::viewInit().
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const This_t & | bvbase, |
const Range< Dim > & | domain | ||
) | [inline] |
References Pooma::BrickViewBase< Dim >::viewInit().
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] |
References Pooma::BrickViewBase< Dim >::sliceInit().
Pooma::BrickViewBase< Dim >::BrickViewBase | ( | const BrickViewBase< BaseDim > & | bvbase, |
const SliceInterval< BaseDim, Dim > & | dom | ||
) | [inline] |
References Pooma::BrickViewBase< Dim >::sliceInit().
Pooma::BrickViewBase< Dim >::~BrickViewBase | ( | ) | [inline] |
const Domain_t& Pooma::BrickViewBase< Dim >::domain | ( | ) | const [inline] |
Return our logical domain:
Reimplemented in Engine< Dim, T, CompressibleBrickView >.
References Pooma::BrickViewBase< Dim >::domain_m.
Referenced by Pooma::BrickViewBase< Dim >::BrickViewBase().
Layout_t Pooma::BrickViewBase< Dim >::layout | ( | ) | const [inline] |
Return our layout:
References Pooma::BrickViewBase< Dim >::domain_m.
const int* Pooma::BrickViewBase< Dim >::strides | ( | ) | const [inline] |
Return the strides array.
References Pooma::BrickViewBase< Dim >::strides_m.
const int* Pooma::BrickViewBase< Dim >::originalStrides | ( | ) | const [inline] |
Return the true strides array.
References Pooma::BrickViewBase< Dim >::ostrides_m.
Referenced by Pooma::BrickViewBase< Dim >::sliceInit().
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.
References Pooma::BrickViewBase< Dim >::compressibleBase_m.
int Pooma::BrickViewBase< Dim >::baseOffset | ( | ) | const [inline] |
Base offset - offset from beginning of underlying Brick's beginning.
References Pooma::BrickViewBase< Dim >::baseOffset_m.
int Pooma::BrickViewBase< Dim >::offset | ( | const Domain & | dom | ) | const [inline] |
References CTAssert, and Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0 | ) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offset | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5, | ||
int | i6 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | const Domain & | dom | ) | const [inline] |
References CTAssert, and Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0 | ) | const [inline] |
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
int Pooma::BrickViewBase< Dim >::offsetU | ( | int | i0, |
int | i1, | ||
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5, | ||
int | i6 | ||
) | const [inline] |
References Pooma::BrickViewBase< Dim >::strides_m.
void Pooma::BrickViewBase< Dim >::zeroStrides | ( | ) | [inline, protected] |
References Pooma::BrickViewBase< Dim >::strides_m.
void Pooma::BrickViewBase< Dim >::restoreStrides | ( | ) | [inline, protected] |
References Pooma::BrickViewBase< Dim >::ostrides_m, and Pooma::BrickViewBase< Dim >::strides_m.
Referenced by Pooma::BrickViewBase< Dim >::BrickViewBase().
void Pooma::BrickViewBase< Dim >::sliceInit | ( | const int * | baseStrides, |
const SliceRange< BaseDim, Dim > & | dom | ||
) | [protected] |
void Pooma::BrickViewBase< Dim >::sliceInit | ( | const BrickViewBase< BaseDim > & | bvbase, |
const SliceRange< BaseDim, Dim > & | dom | ||
) | [protected] |
void Pooma::BrickViewBase< Dim >::viewInit | ( | const This_t & | bvbase, |
const Range< Dim > & | domain | ||
) | [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 | ||
) | [protected] |
References Pooma::BrickBase< Dim >::originalStrides().
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] |
int Pooma::BrickViewBase< Dim >::ostrides_m[Dim] [protected] |
int Pooma::BrickViewBase< Dim >::baseOffset_m [protected] |
Referenced by Pooma::BrickViewBase< Dim >::baseOffset(), and Pooma::BrickViewBase< Dim >::viewInit().
bool Pooma::BrickViewBase< Dim >::compressibleBase_m [protected] |