FreePOOMA
2.4.1
|
Arrays are used to apply operations to N-dimensional (N <= 7) logically rectangular, logically dense sets of elements. More...
#include <Array.h>
Public Types | |
enum | { dimensions = Engine_t::dimensions } |
The enum 'rank' gives the rank of this array. More... | |
enum | { rank = Engine_t::dimensions } |
enum | { hasRelations = false } |
typedef Array< Dim, T, EngineTag > | This_t |
This_t is a convenience typedef referring to this class. | |
typedef Engine< Dim, T, EngineTag > | Engine_t |
Engine_t is a typedef that maps the EngineTag to the Engine type. | |
typedef EngineTag | EngineTag_t |
Engine Tag_t is this tag type, exported to other classes. | |
typedef Engine_t::Element_t | Element_t |
Element_t is the type of elements managed by this array's engine. | |
typedef Engine_t::ElementRef_t | ElementRef_t |
ElementRef_t is the type that is used to write to a single element. | |
typedef Engine_t::Domain_t | Domain_t |
The typedef Domain_t gives the type of domain this array is defined on. | |
typedef Engine_t::Layout_t | Layout_t |
Public Member Functions | |
Array () | |
Default constructor for Array. Exists so array can be resized. | |
template<int D1, class T1 , class E1 , int D2, class T2 , class E2 > | |
Array (const Array< D1, T1, E1 > &a1, const Array< D2, T2, E2 > &a2) | |
Indirection Array constructors. | |
Array (const This_t &model) | |
One way for a user to construct an Array is to use another Array as a model. | |
template<int OtherDim, class OtherT , class OtherEngineTag > | |
Array (const Array< OtherDim, OtherT, OtherEngineTag > &model) | |
This ctor is called, for example, to initialize a brick-view with a compressible brick. | |
template<int OtherDim, class OtherT , class OtherEngineTag , class OtherDomain > | |
Array (const Array< OtherDim, OtherT, OtherEngineTag > &model, const OtherDomain &domain) | |
template<class OtherT , class OtherEngineTag , class Components > | |
Array (const Array< Dim, OtherT, OtherEngineTag > &a, const ComponentWrapper< Components > &c) | |
~Array () | |
The destructor is trivial since the engine is implicitly destroyed. | |
Engine_t::Layout_t | layout () const |
Returns the Array's layout. | |
void | makeOwnCopy () |
Instruct the array to make its own copy of its data. | |
Engine Array constructors. | |
Array (const Engine_t &modelEngine) | |
template<int Dim2, class T2 , class EngineTag2 , class Initializer > | |
Array (const Engine< Dim2, T2, EngineTag2 > &engine, const Initializer &init) | |
constructors passing domain information to the engine | |
All of these constructors pass domain information to the engine. These domains are formed by combining up to 7 subdomains, which must yield an Interval<N>, where N must be the same as the rank of the array. These constructors call the default constructor for Element_t. | |
template<class Sub1 > | |
Array (const Sub1 &s1) | |
template<class Sub1 , class Sub2 > | |
Array (const Sub1 &s1, const Sub2 &s2) | |
template<class Sub1 , class Sub2 , class Sub3 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7) | |
constructors passing domain information to the engine along with a model element | |
All of these constructors pass domain information to the engine along with a model element, which is used to initialize all array elements. Therefore, it is assumed that Element_t either has deep-copy semantics by default, or can be made to have it using a wrapper class. These domains are formed by combining up to 7 subdomains, which must yield an Interval<N>, where N must be the same as the rank of the array. | |
template<class Sub1 > | |
Array (const Sub1 &s1, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 > | |
Array (const Sub1 &s1, const Sub2 &s2, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 , class Sub3 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const ModelElement< Element_t > &model) | |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
Array (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7, const ModelElement< Element_t > &model) | |
Array initializers | |
void | initialize (const Engine_t &modelEngine) |
template<int Dim2, class T2 , class EngineTag2 , class Initializer > | |
void | initialize (const Engine< Dim2, T2, EngineTag2 > &engine, const Initializer &init) |
Initializers from array | |
void | initialize (const This_t &model) |
template<int OtherDim, class OtherT , class OtherEngineTag > | |
void | initialize (const Array< OtherDim, OtherT, OtherEngineTag > &model) |
template<int OtherDim, class OtherT , class OtherEngineTag , class OtherDomain > | |
void | initialize (const Array< OtherDim, OtherT, OtherEngineTag > &model, const OtherDomain &domain) |
Initializers from domain | |
All of these initializers pass domain information to the engine. These domains are formed by combining up to 7 subdomains, which must yield an Interval<N>, where N must be the same as the rank of the array. These initializers call the default constructor for Element_t. | |
template<class Sub1 > | |
void | initialize (const Sub1 &s1) |
template<class Sub1 , class Sub2 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2) |
template<class Sub1 , class Sub2 , class Sub3 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7) |
Initializers from domain and model | |
All of these constructors pass domain information to the engine along with a model element, which is used to initialize all array elements. Therefore, it is assumed that Element_t either has deep-copy semantics by default, or can be made to have it using a wrapper class. These domains are formed by combining up to 7 subdomains, which must yield an Interval<N>, where N must be the same as the rank of the array. | |
template<class Sub1 > | |
void | initialize (const Sub1 &s1, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 , class Sub3 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const ModelElement< Element_t > &model) |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
void | initialize (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7, const ModelElement< Element_t > &model) |
Accessors and mutators | |
Patch< This_t >::Type_t | patchLocal (int i) const |
Patch accessor function returns the i'th patch. | |
int | numPatchesLocal () const |
Domain accessors | |
Accessor functions that return this array's domain, which is obtained from the engine. Note that arrays dont distinguish between vertex and cell domains and such the array's domains are vertex domains in the field sense. | |
const Domain_t & | domain () const |
Shortcut for totalDomain(). | |
Domain_t | physicalDomain () const |
Returns the physical domain, i.e. the domain without external guards. | |
const Domain_t & | totalDomain () const |
Returns the total domain, i.e. the domain with external guards. | |
View0< This_t >::ReadType_t | read () const |
View-creation operations. | |
template<class Sub1 > | |
View1< This_t, Sub1 >::ReadType_t | read (const Sub1 &s1) const |
template<class Sub1 , class Sub2 > | |
View2< This_t, Sub1, Sub2 > ::ReadType_t | read (const Sub1 &s1, const Sub2 &s2) const |
template<class Sub1 , class Sub2 , class Sub3 > | |
View3< This_t, Sub1, Sub2, Sub3 >::ReadType_t | read (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
View4< This_t, Sub1, Sub2, Sub3, Sub4 >::ReadType_t | read (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
View5< This_t, Sub1, Sub2, Sub3, Sub4, Sub5 >::ReadType_t | read (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
View6< This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6 > ::ReadType_t | read (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
View7< This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7 > ::ReadType_t | read (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7) const |
View0< This_t >::Type_t | operator() () const |
template<class Sub1 > | |
View1< This_t, Sub1 >::Type_t | operator() (const Sub1 &s1) const |
template<class Sub1 , class Sub2 > | |
View2< This_t, Sub1, Sub2 >::Type_t | operator() (const Sub1 &s1, const Sub2 &s2) const |
template<class Sub1 , class Sub2 , class Sub3 > | |
View3< This_t, Sub1, Sub2, Sub3 >::Type_t | operator() (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 > | |
View4< This_t, Sub1, Sub2, Sub3, Sub4 >::Type_t | operator() (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 > | |
View5< This_t, Sub1, Sub2, Sub3, Sub4, Sub5 >::Type_t | operator() (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 > | |
View6< This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6 > ::Type_t | operator() (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6) const |
template<class Sub1 , class Sub2 , class Sub3 , class Sub4 , class Sub5 , class Sub6 , class Sub7 > | |
View7< This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7 > ::Type_t | operator() (const Sub1 &s1, const Sub2 &s2, const Sub3 &s3, const Sub4 &s4, const Sub5 &s5, const Sub6 &s6, const Sub7 &s7) const |
Component forwarding functions | |
Component forwarding function. This is used when Element_t has components, as is the case for vectors, tensors, or arrays. A Forwarding engine is made containing a shallow copy of this array's engine and a Loc<M>, where M is the number of components that are being set. For this to ultimately work, Element_t must have a working const operator()(Loc<M>) that returns a reference or proxy to the component. | |
ComponentView< Loc < 1 >, This_t >::Type_t | comp (int i1) const |
ComponentView< Loc < 2 >, This_t >::Type_t | comp (int i1, int i2) const |
ComponentView< Loc < 3 >, This_t >::Type_t | comp (int i1, int i2, int i3) const |
ComponentView< Loc < 4 >, This_t >::Type_t | comp (int i1, int i2, int i3, int i4) const |
ComponentView< Loc < 5 >, This_t >::Type_t | comp (int i1, int i2, int i3, int i4, int i5) const |
ComponentView< Loc < 6 >, This_t >::Type_t | comp (int i1, int i2, int i3, int i4, int i5, int i6) const |
ComponentView< Loc < 7 >, This_t >::Type_t | comp (int i1, int i2, int i3, int i4, int i5, int i6, int i7) const |
template<class Components > | |
ComponentView< Components, This_t >::Type_t | comp (const Components &components) const |
Short-circuit functions that return information from domain. | |
int | first (int d) const |
int | last (int d) const |
int | length (int d) const |
Loc< Dim > | firsts () const |
Loc< Dim > | lasts () const |
Loc< Dim > | lengths () const |
long | size () const |
Copy assignment operators | |
Copy assignment operators. We pack this assignment expression into a PETE binary expression tree node and then use this to construct an array with an expression engine. We then pass this on to an evaluator, which handles the computation. The first two versions handle assigning Arrays to Arrays and the fourth one handles assigning scalars. | |
This_t & | operator= (const Array< Dim, T, EngineTag > &rhs) |
const This_t & | operator= (const Array< Dim, T, EngineTag > &rhs) const |
template<class T1 > | |
const This_t & | operator= (const T1 &rhs) const |
Op-assignment operators | |
template<class T1 > | |
const This_t & | operator+= (const T1 &rhs) const |
Addition. | |
template<class T1 > | |
const This_t & | operator-= (const T1 &rhs) const |
Subtraction. | |
template<class T1 > | |
const This_t & | operator*= (const T1 &rhs) const |
Multiplication. | |
template<class T1 > | |
const This_t & | operator/= (const T1 &rhs) const |
Division. | |
template<class T1 > | |
const This_t & | operator%= (const T1 &rhs) const |
Modulus. | |
template<class T1 > | |
const This_t & | operator|= (const T1 &rhs) const |
Bitwise-Or. | |
template<class T1 > | |
const This_t & | operator&= (const T1 &rhs) const |
Bitwise-And. | |
template<class T1 > | |
const This_t & | operator^= (const T1 &rhs) const |
Bitwise-Xor. | |
template<class T1 > | |
const This_t & | operator<<= (const T1 &rhs) const |
Left shift. | |
template<class T1 > | |
const This_t & | operator>>= (const T1 &rhs) const |
Right shift. | |
Assessor functions that return the engine | |
Engine_t & | engine () |
const Engine_t & | engine () const |
Arrays are used to apply operations to N-dimensional (N <= 7) logically rectangular, logically dense sets of elements.
Array provides several services:
typedef Array<Dim, T, EngineTag> Array< Dim, T, EngineTag >::This_t |
This_t is a convenience typedef referring to this class.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef Engine<Dim, T, EngineTag> Array< Dim, T, EngineTag >::Engine_t |
Engine_t is a typedef that maps the EngineTag to the Engine type.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef EngineTag Array< Dim, T, EngineTag >::EngineTag_t |
Engine Tag_t is this tag type, exported to other classes.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef Engine_t::Element_t Array< Dim, T, EngineTag >::Element_t |
Element_t is the type of elements managed by this array's engine.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef Engine_t::ElementRef_t Array< Dim, T, EngineTag >::ElementRef_t |
ElementRef_t is the type that is used to write to a single element.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef Engine_t::Domain_t Array< Dim, T, EngineTag >::Domain_t |
The typedef Domain_t gives the type of domain this array is defined on.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
typedef Engine_t::Layout_t Array< Dim, T, EngineTag >::Layout_t |
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
anonymous enum |
anonymous enum |
anonymous enum |
Array< Dim, T, EngineTag >::Array | ( | ) | [inline] |
Default constructor for Array. Exists so array can be resized.
Array< Dim, T, EngineTag >::Array | ( | const Engine_t & | modelEngine | ) | [inline, explicit] |
Array< Dim, T, EngineTag >::Array | ( | const Engine< Dim2, T2, EngineTag2 > & | engine, |
const Initializer & | init | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Array< D1, T1, E1 > & | a1, |
const Array< D2, T2, E2 > & | a2 | ||
) | [inline] |
Indirection Array constructors.
Array< Dim, T, EngineTag >::Array | ( | const Array< OtherDim, OtherT, OtherEngineTag > & | model | ) | [inline, explicit] |
This ctor is called, for example, to initialize a brick-view with a compressible brick.
Array< Dim, T, EngineTag >::Array | ( | const Array< OtherDim, OtherT, OtherEngineTag > & | model, |
const OtherDomain & | domain | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Array< Dim, OtherT, OtherEngineTag > & | a, |
const ComponentWrapper< Components > & | c | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1 | ) | [inline, explicit] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7 | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::Array | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Array< Dim, T, EngineTag >::~Array | ( | ) | [inline] |
The destructor is trivial since the engine is implicitly destroyed.
void Array< Dim, T, EngineTag >::initialize | ( | const Engine_t & | modelEngine | ) | [inline] |
Referenced by PatchSwapInfo::initialize(), PatchSwapLayout< SpatialLayout< M, FL > >::PatchSwapLayout(), Connector< Array< Dim, T, EngineTag >, Lux >::resize(), Connector< ConnectPair< DynamicArray< T1, E >, DynamicArray< T2, E > >, Lux >::resize(), and Connector< Array< Dim, T, EngineTag >, Paws >::resize().
void Array< Dim, T, EngineTag >::initialize | ( | const Engine< Dim2, T2, EngineTag2 > & | engine, |
const Initializer & | init | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const This_t & | model | ) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Array< OtherDim, OtherT, OtherEngineTag > & | model | ) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Array< OtherDim, OtherT, OtherEngineTag > & | model, |
const OtherDomain & | domain | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1 | ) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7 | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
void Array< Dim, T, EngineTag >::initialize | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7, | ||
const ModelElement< Element_t > & | model | ||
) | [inline] |
Patch<This_t>::Type_t Array< Dim, T, EngineTag >::patchLocal | ( | int | i | ) | const [inline] |
Patch accessor function returns the i'th patch.
int Array< Dim, T, EngineTag >::numPatchesLocal | ( | ) | const [inline] |
const Domain_t& Array< Dim, T, EngineTag >::domain | ( | ) | const [inline] |
Shortcut for totalDomain().
Referenced by LeafFunctor< Array< Dim, T, EngineTag >, DomainFunctorTag >::apply(), LeafFunctor< Array< Dim, T, EngineTag >, ConformTag< Dim > >::apply(), assign(), Array< 1, T >::initialize(), View1Implementation< Array< Dim, T, EngineTag >, Domain, true >::make(), View1Implementation< Array< Dim, T, EngineTag >, Domain, false >::make(), View1< Stencil< Function >, Array< D, T, E > >::make(), View1< Array< Dim, T, EngineTag >, int >::make(), View1< Array< Dim, T, EngineTag >, Loc< Dim > >::make(), View2< Array< Dim, T, EngineTag >, int, int >::make(), View3< Array< Dim, T, EngineTag >, int, int, int >::make(), View4< Array< Dim, T, EngineTag >, int, int, int, int >::make(), View5< Array< Dim, T, EngineTag >, int, int, int, int, int >::make(), View6< Array< Dim, T, EngineTag >, int, int, int, int, int, int >::make(), View7< Array< Dim, T, EngineTag >, int, int, int, int, int, int, int >::make(), View1Implementation< Array< Dim, T, EngineTag >, Domain, true >::makeRead(), View1< Array< Dim, T, EngineTag >, int >::makeRead(), View1< Array< Dim, T, EngineTag >, Loc< Dim > >::makeRead(), View2< Array< Dim, T, EngineTag >, int, int >::makeRead(), View3< Array< Dim, T, EngineTag >, int, int, int >::makeRead(), View4< Array< Dim, T, EngineTag >, int, int, int, int >::makeRead(), View5< Array< Dim, T, EngineTag >, int, int, int, int, int >::makeRead(), View6< Array< Dim, T, EngineTag >, int, int, int, int, int, int >::makeRead(), View7< Array< Dim, T, EngineTag >, int, int, int, int, int, int, int >::makeRead(), and Resize< Array< 1, T, SharedBrick > >::resize().
Domain_t Array< Dim, T, EngineTag >::physicalDomain | ( | ) | const [inline] |
Returns the physical domain, i.e. the domain without external guards.
Referenced by Pooma::PoomaDA< Dim >::PoomaDA().
const Domain_t& Array< Dim, T, EngineTag >::totalDomain | ( | ) | const [inline] |
Returns the total domain, i.e. the domain with external guards.
Referenced by CombineDomainOpt< NewDomain, false >::make().
Engine_t::Layout_t Array< Dim, T, EngineTag >::layout | ( | ) | const [inline] |
Returns the Array's layout.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
View0<This_t>::ReadType_t Array< Dim, T, EngineTag >::read | ( | ) | const [inline] |
View-creation operations.
These operator() functions take one or more sub-domains, which combine to form a domain with dimensionality identical to the rank of the array. Views based on up to 7 subdomains are supported. Indirection views will end up calling these functions.
A zero-argument version of operator(), which takes a view of array's domain, is also supplied.
View1<This_t, Sub1>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1 | ) | const [inline] |
View2<This_t, Sub1, Sub2>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2 | ||
) | const [inline] |
View3<This_t, Sub1, Sub2, Sub3>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3 | ||
) | const [inline] |
View4<This_t, Sub1, Sub2, Sub3, Sub4>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4 | ||
) | const [inline] |
View5<This_t, Sub1, Sub2, Sub3, Sub4, Sub5>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5 | ||
) | const [inline] |
View6<This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6 | ||
) | const [inline] |
View7<This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7>::ReadType_t Array< Dim, T, EngineTag >::read | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7 | ||
) | const [inline] |
View0<This_t>::Type_t Array< Dim, T, EngineTag >::operator() | ( | ) | const [inline] |
View1<This_t,Sub1>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1 | ) | const [inline] |
View2<This_t, Sub1, Sub2>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2 | ||
) | const [inline] |
View3<This_t, Sub1, Sub2, Sub3>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3 | ||
) | const [inline] |
View4<This_t, Sub1, Sub2, Sub3, Sub4>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4 | ||
) | const [inline] |
View5<This_t, Sub1, Sub2, Sub3, Sub4, Sub5>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5 | ||
) | const [inline] |
View6<This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6 | ||
) | const [inline] |
View7<This_t, Sub1, Sub2, Sub3, Sub4, Sub5, Sub6, Sub7>::Type_t Array< Dim, T, EngineTag >::operator() | ( | const Sub1 & | s1, |
const Sub2 & | s2, | ||
const Sub3 & | s3, | ||
const Sub4 & | s4, | ||
const Sub5 & | s5, | ||
const Sub6 & | s6, | ||
const Sub7 & | s7 | ||
) | const [inline] |
ComponentView<Loc<1>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1 | ) | const [inline] |
Referenced by iotaIndex().
ComponentView<Loc<2>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2 | ||
) | const [inline] |
ComponentView<Loc<3>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2, | ||
int | i3 | ||
) | const [inline] |
ComponentView<Loc<4>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2, | ||
int | i3, | ||
int | i4 | ||
) | const [inline] |
ComponentView<Loc<5>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5 | ||
) | const [inline] |
ComponentView<Loc<6>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5, | ||
int | i6 | ||
) | const [inline] |
ComponentView<Loc<7>, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | int | i1, |
int | i2, | ||
int | i3, | ||
int | i4, | ||
int | i5, | ||
int | i6, | ||
int | i7 | ||
) | const [inline] |
ComponentView<Components, This_t>::Type_t Array< Dim, T, EngineTag >::comp | ( | const Components & | components | ) | const [inline] |
void Array< Dim, T, EngineTag >::makeOwnCopy | ( | ) | [inline] |
Instruct the array to make its own copy of its data.
Referenced by MakeOwnCopyProperties< DynamicArray< T, EngineTag > >::clone(), and MakeOwnCopyProperties< DynamicArray< T, EngineTag > >::construct().
int Array< Dim, T, EngineTag >::first | ( | int | d | ) | const [inline] |
int Array< Dim, T, EngineTag >::last | ( | int | d | ) | const [inline] |
int Array< Dim, T, EngineTag >::length | ( | int | d | ) | const [inline] |
Loc<Dim> Array< Dim, T, EngineTag >::lasts | ( | ) | const [inline] |
Loc<Dim> Array< Dim, T, EngineTag >::lengths | ( | ) | const [inline] |
long Array< Dim, T, EngineTag >::size | ( | ) | const [inline] |
This_t& Array< Dim, T, EngineTag >::operator= | ( | const Array< Dim, T, EngineTag > & | rhs | ) | [inline] |
const This_t& Array< Dim, T, EngineTag >::operator= | ( | const Array< Dim, T, EngineTag > & | rhs | ) | const [inline] |
const This_t& Array< Dim, T, EngineTag >::operator= | ( | const T1 & | rhs | ) | const [inline] |
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator+= | ( | const T1 & | rhs | ) | const [inline] |
Addition.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator-= | ( | const T1 & | rhs | ) | const [inline] |
Subtraction.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator*= | ( | const T1 & | rhs | ) | const [inline] |
Multiplication.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator/= | ( | const T1 & | rhs | ) | const [inline] |
Division.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator%= | ( | const T1 & | rhs | ) | const [inline] |
Modulus.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator|= | ( | const T1 & | rhs | ) | const [inline] |
Bitwise-Or.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator&= | ( | const T1 & | rhs | ) | const [inline] |
Bitwise-And.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator^= | ( | const T1 & | rhs | ) | const [inline] |
Bitwise-Xor.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator<<= | ( | const T1 & | rhs | ) | const [inline] |
Left shift.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
const This_t& Array< Dim, T, EngineTag >::operator>>= | ( | const T1 & | rhs | ) | const [inline] |
Right shift.
Reimplemented in DynamicArray< T, EngineTag >, DynamicArray< T2, E >, DynamicArray< int, Dynamic >, and DynamicArray< T1, E >.
Engine_t& Array< Dim, T, EngineTag >::engine | ( | ) | [inline] |
Referenced by LeafFunctor< Array< Dim, T, EngineTag >, EvalLeaf< Dim > >::apply(), LeafFunctor< Array< Dim, T, E >, EngineView< Tag > >::apply(), LeafFunctor< Array< Dim, T, E >, ExpressionApply< Tag > >::apply(), LeafFunctor< Array< Dim, T, E >, EngineFunctorTag< Tag > >::apply(), EngineFunctor< Array< Dim, T, E >, Tag >::apply(), assign(), Pooma::PoomaDA< Dim >::assign(), compress(), compressed(), elementsCompressed(), Engine< D, T, StencilEngine< Function, Expression > >::initExpressionFromModel(), Array< 1, T >::initialize(), CreateLeaf< Array< Dim, T, ExpressionTag< Expr > > >::make(), View1Implementation< Array< Dim, T, EngineTag >, Domain, true >::make(), View1Implementation< Array< Dim, T, EngineTag >, Domain, false >::make(), View0< Array< Dim, T, EngineTag > >::make(), View1< Array< Dim, T, EngineTag >, int >::make(), View1< Array< Dim, T, EngineTag >, Loc< Dim > >::make(), View2< Array< Dim, T, EngineTag >, int, int >::make(), View3< Array< Dim, T, EngineTag >, int, int, int >::make(), View4< Array< Dim, T, EngineTag >, int, int, int, int >::make(), View5< Array< Dim, T, EngineTag >, int, int, int, int, int >::make(), View6< Array< Dim, T, EngineTag >, int, int, int, int, int, int >::make(), View7< Array< Dim, T, EngineTag >, int, int, int, int, int, int, int >::make(), Patch< Array< Dim, T, EngineTag > >::make(), View1Implementation< Array< Dim, T, EngineTag >, Domain, true >::makeRead(), View1< Array< Dim, T, EngineTag >, int >::makeRead(), View1< Array< Dim, T, EngineTag >, Loc< Dim > >::makeRead(), View2< Array< Dim, T, EngineTag >, int, int >::makeRead(), View3< Array< Dim, T, EngineTag >, int, int, int >::makeRead(), View4< Array< Dim, T, EngineTag >, int, int, int, int >::makeRead(), View5< Array< Dim, T, EngineTag >, int, int, int, int, int >::makeRead(), View6< Array< Dim, T, EngineTag >, int, int, int, int, int, int >::makeRead(), View7< Array< Dim, T, EngineTag >, int, int, int, int, int, int, int >::makeRead(), ParticleKernel< Array, Function >::ParticleKernel(), ParticleKernelBlock< Array, Function >::ParticleKernelBlock(), Resize< Array< 1, T, SharedBrick > >::resize(), uncompress(), FileSetWriter< Dim >::write(), ParticleKernel< Array, Function >::~ParticleKernel(), and ParticleKernelBlock< Array, Function >::~ParticleKernelBlock().
const Engine_t& Array< Dim, T, EngineTag >::engine | ( | ) | const [inline] |