PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > Class Template Reference
[Mdarray_module]

The preferred multi-dimensional Array interface with compile-time user-defined dimension ordinates. More...

#include <Phalanx_Array.hpp>

Inheritance diagram for PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >:

Inheritance graph
[legend]

List of all members.

Classes

struct  Tag
 Access the dimension tag-type for a given ordinate. More...

Protected Attributes

value_typem_ptr
 Pointer to contiguous block of members.
size_type m_stride [Rank]
 Array of strides, smallest to largest.

Private Types

typedef Array< void,
array_order, Tag1, Tag2, Tag3,
Tag4, Tag5, Tag6, Tag7, Tag8 > 
md_type

Friends

class PHX::Array

Array Attributes

enum  { Rank = md_type::Rank }
 Rank of the array is the number of non-void dimension tags. More...
enum  { Natural = NaturalOrder == array_order }
 If the multidimension follows the natural ordering. More...
enum  { Reverse = FortranOrder == array_order }
 If the multidimension follows the reverse (Fortran) ordering. More...
enum  { Contiguous = true }
 If the member data storage is contiguous. More...
typedef Scalar value_type
 Type of member data.
typedef unsigned size_type
 Type for sizes.
typedef const ArrayDimTagtag_type
 Type of runtime dimension tags.
unsigned rank () const
 Rank of the array is the number of non-void dimension tags.
bool natural () const
 If the multidimension follows the natural ordering.
bool reverse () const
 If the multidimension follows the reverse (Fortran) ordering.
bool contiguous () const
 If the member data storage is contiguous.
tag_type tag (const unsigned ordinate) const
 Access the dimension tag-singleton for a given ordinate.
template<unsigned ordinate>
unsigned dimension () const
 Dimension of the given ordinate.
unsigned dimension (const unsigned ordinate) const
 Dimension of the given ordinate.
void dimensions (std::vector< unsigned > &n)
 Dimensions of all ordinates.
size_type size () const
 Total number of member data items.

Member data access operators

typedef ArrayTruncate< Array >
::type 
TruncateType
 Subarray type that removes the slowest striding dimension (first natural or last fortran ordinate).
TruncateType truncate (const unsigned i) const
 Generate a subarray view of the array with the slowest striding ordinate offset by i and removed.
value_typecontiguous_data () const
 Pointer to contiguous block of member data.
value_typeoperator[] (size_type i) const
 Access member via offset into contiguous block.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5, const unsigned i6, const unsigned i7, const unsigned i8) const
 Access member of a Rank 8 array.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5, const unsigned i6, const unsigned i7) const
 Access member of a Rank 7 array.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5, const unsigned i6) const
 Access member of a Rank 6 array.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5) const
 Access member of a Rank 5 array.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4) const
 Access member of a Rank 4 array.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3) const
 Access member of a Rank 3 array.
value_typeoperator() (const unsigned i1, const unsigned i2) const
 Access member of a Rank 2 array.
value_typeoperator() (const unsigned i1) const
 Access member of a Rank 1 array.

Constructors and Assignment Operators

typedef ArrayReverse< Array >::type ReverseType
 The compatible multidimensional array with reversed multi-index ordering and dimension tags.
 Array ()
 Default constructor.
 Array (const Array &rhs)
 Copy constructor.
Arrayoperator= (const Array &rhs)
 Assignment operator.
 Array (const ReverseType &rhs)
 Copy constructor for compatible reverse type.
Arrayoperator= (const ReverseType &rhs)
 Assignment operator for compatible reverse type.
 Array (value_type *arg_ptr, const unsigned *const dims)
 Construct with array of dimensions.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3, const unsigned n4, const unsigned n5, const unsigned n6, const unsigned n7, const unsigned n8)
 Construct a Rank 8 array.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3, const unsigned n4, const unsigned n5, const unsigned n6, const unsigned n7)
 Construct a Rank 7..8 array; use Tag#Size for defaults. The input dimensions are the 7 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3, const unsigned n4, const unsigned n5, const unsigned n6)
 Construct a Rank 6..8 array; use Tag#Size for defaults. The input dimensions are the 6 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3, const unsigned n4, const unsigned n5)
 Construct a Rank 5..8 array; use Tag#Size for defaults. The input dimensions are the 5 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3, const unsigned n4)
 Construct a Rank 4..8 array; use Tag#Size for defaults. The input dimensions are the 4 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2, const unsigned n3)
 Construct a Rank 3..8 array; use Tag#Size for defaults. The input dimensions are the 3 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1, const unsigned n2)
 Construct a Rank 2..8 array; use Tag#Size for defaults. The input dimensions are the 2 slowest strides.
 Array (value_type *arg_ptr, const unsigned n1)
 Construct a Rank 1..8 array; use Tag#Size for defaults. The input dimension is the slowest stride.
 Array (value_type *arg_ptr)
 Construct a Rank 1..8 array; use Tag#Size for defaults.


Detailed Description

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
class PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >

The preferred multi-dimensional Array interface with compile-time user-defined dimension ordinates.

Parameters:
Scalar The "plain old data" type of the array's member data.
array_order An ArrayOrder value that specifies whether to use Natural (a.k.a. C-language) or Fortran ordering for the multi-dimensions and multi-indices.
Tag:: The Tag# template parameters document the user-defiend purpose of each dimension ordinate. The Rank of the array (i.e. the number of dimensions) is the number of user-defined dimension tags, up to eight. A user-defined dimension Tag# must be derived from the ArrayDimTag template class.
See also:
ArrayDimTag ArrayOrder

Member Typedef Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef Array<void,array_order,Tag1,Tag2,Tag3,Tag4,Tag5,Tag6,Tag7,Tag8> PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::md_type [private]

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef ArrayReverse< Array >::type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::ReverseType

The compatible multidimensional array with reversed multi-index ordering and dimension tags.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::size_type

Type for sizes.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef const ArrayDimTag* PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::tag_type

Type of runtime dimension tags.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef ArrayTruncate<Array>::type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::TruncateType

Subarray type that removes the slowest striding dimension (first natural or last fortran ordinate).

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
typedef Scalar PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::value_type

Type of member data.


Member Enumeration Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
anonymous enum

Rank of the array is the number of non-void dimension tags.

Enumerator:
Rank 

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
anonymous enum

If the multidimension follows the natural ordering.

Enumerator:
Natural 

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
anonymous enum

If the multidimension follows the reverse (Fortran) ordering.

Enumerator:
Reverse 

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
anonymous enum

If the member data storage is contiguous.

Enumerator:
Contiguous 


Constructor & Destructor Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array (  )  [inline]

Default constructor.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( const Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > &  rhs  )  [inline]

Copy constructor.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( const ReverseType rhs  )  [inline]

Copy constructor for compatible reverse type.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned *const   dims 
) [inline]

Construct with array of dimensions.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3,
const unsigned  n4,
const unsigned  n5,
const unsigned  n6,
const unsigned  n7,
const unsigned  n8 
) [inline]

Construct a Rank 8 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3,
const unsigned  n4,
const unsigned  n5,
const unsigned  n6,
const unsigned  n7 
) [inline]

Construct a Rank 7..8 array; use Tag#Size for defaults. The input dimensions are the 7 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3,
const unsigned  n4,
const unsigned  n5,
const unsigned  n6 
) [inline]

Construct a Rank 6..8 array; use Tag#Size for defaults. The input dimensions are the 6 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3,
const unsigned  n4,
const unsigned  n5 
) [inline]

Construct a Rank 5..8 array; use Tag#Size for defaults. The input dimensions are the 5 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3,
const unsigned  n4 
) [inline]

Construct a Rank 4..8 array; use Tag#Size for defaults. The input dimensions are the 4 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2,
const unsigned  n3 
) [inline]

Construct a Rank 3..8 array; use Tag#Size for defaults. The input dimensions are the 3 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1,
const unsigned  n2 
) [inline]

Construct a Rank 2..8 array; use Tag#Size for defaults. The input dimensions are the 2 slowest strides.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr,
const unsigned  n1 
) [inline]

Construct a Rank 1..8 array; use Tag#Size for defaults. The input dimension is the slowest stride.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array ( value_type arg_ptr  )  [inline]

Construct a Rank 1..8 array; use Tag#Size for defaults.


Member Function Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
bool PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::contiguous (  )  const [inline]

If the member data storage is contiguous.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type* PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::contiguous_data (  )  const [inline]

Pointer to contiguous block of member data.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::dimension ( const unsigned  ordinate  )  const [inline]

Dimension of the given ordinate.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
template<unsigned ordinate>
unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::dimension (  )  const [inline]

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
void PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::dimensions ( std::vector< unsigned > &  n  )  [inline]

Dimensions of all ordinates.

Referenced by PHX::MDField< DataT, Order, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::dimensions().

Here is the caller graph for this function:

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
bool PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::natural (  )  const [inline]

If the multidimension follows the natural ordering.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1  )  const [inline]

Access member of a Rank 1 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2 
) const [inline]

Access member of a Rank 2 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3 
) const [inline]

Access member of a Rank 3 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4 
) const [inline]

Access member of a Rank 4 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5 
) const [inline]

Access member of a Rank 5 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5,
const unsigned  i6 
) const [inline]

Access member of a Rank 6 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5,
const unsigned  i6,
const unsigned  i7 
) const [inline]

Access member of a Rank 7 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5,
const unsigned  i6,
const unsigned  i7,
const unsigned  i8 
) const [inline]

Access member of a Rank 8 array.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
Array& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator= ( const ReverseType rhs  )  [inline]

Assignment operator for compatible reverse type.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
Array& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator= ( const Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > &  rhs  )  [inline]

Assignment operator.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type& PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::operator[] ( size_type  i  )  const [inline]

Access member via offset into contiguous block.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::rank (  )  const [inline]

Rank of the array is the number of non-void dimension tags.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
bool PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::reverse (  )  const [inline]

If the multidimension follows the reverse (Fortran) ordering.

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
size_type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::size (  )  const [inline]

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
tag_type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::tag ( const unsigned  ordinate  )  const [inline]

Access the dimension tag-singleton for a given ordinate.

Referenced by PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array().

Here is the caller graph for this function:

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
TruncateType PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::truncate ( const unsigned  i  )  const [inline]

Generate a subarray view of the array with the slowest striding ordinate offset by i and removed.


Friends And Related Function Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
friend class PHX::Array [friend]


Member Data Documentation

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
value_type* PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::m_ptr [protected]

template<typename Scalar, ArrayOrder array_order, class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
size_type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::m_stride[Rank] [protected]


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

Generated on Thu Dec 17 11:06:16 2009 for Phalanx by  doxygen 1.5.9