#include <Phalanx_Array.hpp>
Classes | |
struct | Tag |
Access the dimension tag-type for a given ordinate. More... | |
Protected Attributes | |
value_type * | m_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 ArrayDimTag * | tag_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_type * | contiguous_data () const |
Pointer to contiguous block of member data. | |
value_type & | operator[] (size_type i) const |
Access member via offset into contiguous block. | |
value_type & | 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 |
Access member of a Rank 8 array. | |
value_type & | operator() (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_type & | operator() (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_type & | operator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5) const |
Access member of a Rank 5 array. | |
value_type & | operator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4) const |
Access member of a Rank 4 array. | |
value_type & | operator() (const unsigned i1, const unsigned i2, const unsigned i3) const |
Access member of a Rank 3 array. | |
value_type & | operator() (const unsigned i1, const unsigned i2) const |
Access member of a Rank 2 array. | |
value_type & | operator() (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. | |
Array & | operator= (const Array &rhs) |
Assignment operator. | |
Array (const ReverseType &rhs) | |
Copy constructor for compatible reverse type. | |
Array & | operator= (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. |
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. |
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] |
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.
typedef unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::size_type |
Type for sizes.
typedef const ArrayDimTag* PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::tag_type |
Type of runtime dimension tags.
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).
typedef Scalar PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::value_type |
Type of member data.
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array | ( | ) | [inline] |
Default constructor.
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.
PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Array | ( | const ReverseType & | rhs | ) | [inline] |
Copy constructor for compatible reverse type.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
bool PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::contiguous | ( | ) | const [inline] |
If the member data storage is contiguous.
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.
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.
unsigned PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::dimension | ( | ) | const [inline] |
Dimension of the given ordinate.
Referenced by PHX::MDField< DataT, Order, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::dimension(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::dimension(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimensions(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::dimensions(), and PHX::MDField< DataT, Order, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::print().
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().
bool PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::natural | ( | ) | const [inline] |
If the multidimension follows the natural ordering.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
size_type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::size | ( | ) | const [inline] |
Total number of member data items.
Referenced by PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator[](), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator[](), PHX::MDField< DataT, Order, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::print(), and PHX::MDField< DataT, Order, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::size().
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().
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.
friend class PHX::Array [friend] |
value_type* PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::m_ptr [protected] |
Pointer to contiguous block of members.
Referenced by PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::contiguous_data(), PHX::Array< Scalar, RankZero, void, void, void, void, void, void, void, void >::contiguous_data(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::contiguous_data(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator()(), PHX::Array< Scalar, RankZero, void, void, void, void, void, void, void, void >::operator()(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator()(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator=(), PHX::Array< Scalar, RankZero, void, void, void, void, void, void, void, void >::operator=(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator=(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator[](), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator[](), PHX::Array< Scalar, RankZero, void, void, void, void, void, void, void, void >::size(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::truncate(), and PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::truncate().
size_type PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::m_stride[Rank] [protected] |
Array of strides, smallest to largest.
Referenced by PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::Array(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimension(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::dimension(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator()(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator()(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator=(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::operator=(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size(), PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::size(), PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::truncate(), and PHX::Array< ScalarT, Order, Cell, Node, void, void, void, void, void, void >::truncate().