Pooma::BrickViewBase< Dim > Class Template Reference

BrickViewBase<Dim> is the base-class for engines that are "views" into brick-like engines. More...

#include <BrickBase.h>

Inheritance diagram for Pooma::BrickViewBase< Dim >:

Inheritance graph
[legend]

List of all members.

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_tdomain () 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


Detailed Description

template<int Dim>
class Pooma::BrickViewBase< Dim >

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.


Member Typedef Documentation

template<int Dim>
typedef Interval<Dim> Pooma::BrickViewBase< Dim >::Domain_t

template<int Dim>
typedef DomainLayout<Dim> Pooma::BrickViewBase< Dim >::Layout_t

template<int Dim>
typedef BrickViewBase<Dim> Pooma::BrickViewBase< Dim >::This_t


Member Enumeration Documentation

template<int Dim>
anonymous enum

Enumerator:
dimensions 

template<int Dim>
anonymous enum

Enumerator:
zeroBased 


Constructor & Destructor Documentation

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase (  )  [inline]

Default constructor - creates an uninitialized BrickViewBase (which has an empty domain with uninitilazed strides, etc.

).

template<int Dim>
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.

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickBase< Dim > &  base,
bool  compressible 
) [inline]

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickBase< Dim > &  bbase,
const Interval< Dim > &  dom 
) [inline]

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickBase< Dim > &  bbase,
const Range< Dim > &  dom 
) [inline]

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const This_t bvbase,
const Interval< Dim > &  domain 
) [inline]

template<int Dim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const This_t bvbase,
const Range< Dim > &  domain 
) [inline]

template<int Dim>
template<int BaseDim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickBase< BaseDim > &  bbase,
const SliceRange< BaseDim, Dim > &  dom 
) [inline]

template<int Dim>
template<int BaseDim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickBase< BaseDim > &  bbase,
const SliceInterval< BaseDim, Dim > &  dom 
) [inline]

template<int Dim>
template<int BaseDim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickViewBase< BaseDim > &  bvbase,
const SliceRange< BaseDim, Dim > &  dom 
) [inline]

template<int Dim>
template<int BaseDim>
Pooma::BrickViewBase< Dim >::BrickViewBase ( const BrickViewBase< BaseDim > &  bvbase,
const SliceInterval< BaseDim, Dim > &  dom 
) [inline]

template<int Dim>
Pooma::BrickViewBase< Dim >::~BrickViewBase (  )  [inline]


Member Function Documentation

template<int Dim>
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().

template<int Dim>
Layout_t Pooma::BrickViewBase< Dim >::layout (  )  const [inline]

Return our layout:.

template<int Dim>
const int* Pooma::BrickViewBase< Dim >::strides (  )  const [inline]

Return the strides array.

template<int Dim>
const int* Pooma::BrickViewBase< Dim >::originalStrides (  )  const [inline]

Return the true strides array.

Referenced by Pooma::BrickViewBase< Dim >::sliceInit().

template<int Dim>
int Pooma::BrickViewBase< Dim >::first ( int   )  const [inline]

Return the first index value for the specified dimension.

(Always zero since views are zero-based).

template<int Dim>
bool Pooma::BrickViewBase< Dim >::compressibleBase (  )  const [inline]

Used by constructors.

template<int Dim>
int Pooma::BrickViewBase< Dim >::baseOffset (  )  const [inline]

Base offset - offset from beginning of underlying Brick's beginning.

template<int Dim>
template<class Domain >
int Pooma::BrickViewBase< Dim >::offset ( const Domain dom  )  const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0  )  const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1,
int  i2 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1,
int  i2,
int  i3 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4,
int  i5 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offset ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6 
) const [inline]

template<int Dim>
template<class Domain >
int Pooma::BrickViewBase< Dim >::offsetU ( const Domain dom  )  const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0  )  const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1,
int  i2 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1,
int  i2,
int  i3 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4,
int  i5 
) const [inline]

template<int Dim>
int Pooma::BrickViewBase< Dim >::offsetU ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6 
) const [inline]

template<int Dim>
void Pooma::BrickViewBase< Dim >::zeroStrides (  )  [inline, protected]

template<int Dim>
void Pooma::BrickViewBase< Dim >::restoreStrides (  )  [inline, protected]

template<int Dim>
template<int BaseDim>
void Pooma::BrickViewBase< Dim >::sliceInit ( const int *  baseStrides,
const SliceRange< BaseDim, Dim > &  dom 
) [inline, protected]

template<int Dim>
template<int BaseDim>
void Pooma::BrickViewBase< Dim >::sliceInit ( const BrickViewBase< BaseDim > &  bvbase,
const SliceRange< BaseDim, Dim > &  dom 
) [inline, protected]

template<int Dim>
void Pooma::BrickViewBase< Dim >::viewInit ( const This_t bvbase,
const Range< Dim > &  domain 
) [inline, protected]

template<int Dim>
void Pooma::BrickViewBase< Dim >::viewInit ( const BrickBase< Dim > &  bbase,
const Range< Dim > &  domain 
) [inline, protected]

template<int Dim>
void Pooma::BrickViewBase< Dim >::viewInit ( const This_t bvbase,
const Interval< Dim > &  domain 
) [inline, protected]

template<int Dim>
void Pooma::BrickViewBase< Dim >::viewInit ( const BrickBase< Dim > &  bbase,
const Interval< Dim > &  domain 
) [inline, protected]


Member Data Documentation

template<int Dim>
Domain_t Pooma::BrickViewBase< Dim >::domain_m [protected]

template<int Dim>
int Pooma::BrickViewBase< Dim >::strides_m[Dim] [protected]

template<int Dim>
int Pooma::BrickViewBase< Dim >::ostrides_m[Dim] [protected]

template<int Dim>
int Pooma::BrickViewBase< Dim >::baseOffset_m [protected]

template<int Dim>
bool Pooma::BrickViewBase< Dim >::compressibleBase_m [protected]


The documentation for this class was generated from the following file:

Generated on Wed Mar 16 06:22:47 2011 for FreePOOMA by  doxygen 1.5.9