PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void > Class Template Reference
[Mdarray_module]

The not-preferred multi-dimensional Array interface with runtime user-defined dimension ordinates. Typically used when runtime-polymorphic arrays are passed to functions. More...

#include <Phalanx_Array.hpp>

Collaboration diagram for PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >:

Collaboration graph
[legend]

List of all members.

Protected Attributes

value_typem_ptr
 Pointer to contiguous block of members.
unsigned m_rank
 Rank of the array.
size_type m_stride [8]
 Array of strides, smallest to largest.
tag_type m_tag [8]
 Array of singleton tags, aligned with strides.

Friends

class PHX::Array

Array Attributes

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 ordinal) const
 Access the dimension tag-singleton for a given ordinate.
unsigned dimension (const unsigned ordinal) const
 Dimension of the given ordinate.
void dimensions (std::vector< unsigned > &n)
 Dimension of all ordinate.
size_type size () const
 Total number of data items.

Constructors and Assignment Operators

typedef ArrayReverse< Array >::type ReverseType
 Array ()
 Array (const Array &rhs)
Arrayoperator= (const Array &rhs)
 Array (const ReverseType &rhs)
 Copy constructor for reverse type.
Arrayoperator= (const ReverseType &rhs)
 Assignment operator for reverse type.
template<ArrayOrder order, class Tag1 , class Tag2 , class Tag3 , class Tag4 , class Tag5 , class Tag6 , class Tag7 , class Tag8 >
 Array (const Array< value_type, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > &rhs)
 Copy constructor from an Array with compile-time defined rank and dimension tags.
 Array (value_type *ptr, const unsigned rank, const unsigned *const dims, const tag_type *const tags)

Member data access operators

Array 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 full ordering of members.
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 via Rank 8 multi-index.
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5, const unsigned i6, const unsigned i7) const
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5, const unsigned i6) const
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4, const unsigned i5) const
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3, const unsigned i4) const
value_typeoperator() (const unsigned i1, const unsigned i2, const unsigned i3) const
value_typeoperator() (const unsigned i1, const unsigned i2) const
value_typeoperator() (const unsigned i1) const


Detailed Description

template<typename Scalar, ArrayOrder array_order>
class PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >

The not-preferred multi-dimensional Array interface with runtime user-defined dimension ordinates. Typically used when runtime-polymorphic arrays are passed to functions.

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.

Member Typedef Documentation

template<typename Scalar , ArrayOrder array_order>
typedef ArrayReverse< Array >::type PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::ReverseType

template<typename Scalar , ArrayOrder array_order>
typedef unsigned PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size_type

Type for sizes.

template<typename Scalar , ArrayOrder array_order>
typedef const ArrayDimTag* PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::tag_type

Type of runtime dimension tags.

template<typename Scalar , ArrayOrder array_order>
typedef Scalar PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::value_type

Type of member data.


Member Enumeration Documentation

template<typename Scalar , ArrayOrder array_order>
anonymous enum

If the member data storage is contiguous.

Enumerator:
Contiguous 

template<typename Scalar , ArrayOrder array_order>
anonymous enum

If the multidimension follows the natural ordering.

Enumerator:
Natural 

template<typename Scalar , ArrayOrder array_order>
anonymous enum

If the multidimension follows the reverse (Fortran) ordering.

Enumerator:
Reverse 


Constructor & Destructor Documentation

template<typename Scalar , ArrayOrder array_order>
PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array (  )  [inline]

template<typename Scalar , ArrayOrder array_order>
PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const Array< Scalar, array_order, void, void, void, void, void, void, void, void > &  rhs  )  [inline]

template<typename Scalar , ArrayOrder array_order>
PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const ReverseType rhs  )  [inline]

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

Copy constructor from an Array with compile-time defined rank and dimension tags.

References PHX::Copy(), PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::m_stride, and PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::tag().

Here is the call graph for this function:

template<typename Scalar , ArrayOrder array_order>
PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type ptr,
const unsigned  rank,
const unsigned *const   dims,
const tag_type *const   tags 
) [inline]


Member Function Documentation

template<typename Scalar , ArrayOrder array_order>
bool PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::contiguous (  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type* PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::contiguous_data (  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
unsigned PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimension ( const unsigned  ordinal  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
void PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimensions ( std::vector< unsigned > &  n  )  [inline]

Dimension of all ordinate.

References PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::dimension().

Here is the call graph for this function:

template<typename Scalar , ArrayOrder array_order>
bool PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::natural (  )  const [inline]

If the multidimension follows the natural ordering.

References PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Natural.

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5,
const unsigned  i6 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const unsigned  i1,
const unsigned  i2,
const unsigned  i3,
const unsigned  i4,
const unsigned  i5,
const unsigned  i6,
const unsigned  i7 
) const [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::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]

template<typename Scalar , ArrayOrder array_order>
Array& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator= ( const ReverseType rhs  )  [inline]

template<typename Scalar , ArrayOrder array_order>
Array& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator= ( const Array< Scalar, array_order, void, void, void, void, void, void, void, void > &  rhs  )  [inline]

template<typename Scalar , ArrayOrder array_order>
value_type& PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator[] ( size_type  i  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
unsigned PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::rank (  )  const [inline]

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

template<typename Scalar , ArrayOrder array_order>
bool PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::reverse (  )  const [inline]

If the multidimension follows the reverse (Fortran) ordering.

References PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Reverse.

template<typename Scalar , ArrayOrder array_order>
size_type PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size (  )  const [inline]

template<typename Scalar , ArrayOrder array_order>
tag_type PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::tag ( const unsigned  ordinal  )  const [inline]

Access the dimension tag-singleton for a given ordinate.

References PHX::array_check_ordinal(), and PHX::Array< Scalar, array_order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >::Natural.

Here is the call graph for this function:

template<typename Scalar , ArrayOrder array_order>
Array PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::truncate ( const unsigned  i  )  const [inline]


Friends And Related Function Documentation

template<typename Scalar , ArrayOrder array_order>
friend class PHX::Array [friend]


Member Data Documentation

template<typename Scalar , ArrayOrder array_order>
value_type* PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::m_ptr [protected]

Pointer to contiguous block of members.

template<typename Scalar , ArrayOrder array_order>
unsigned PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::m_rank [protected]

Rank of the array.

template<typename Scalar , ArrayOrder array_order>
size_type PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::m_stride[8] [protected]

Array of strides, smallest to largest.

template<typename Scalar , ArrayOrder array_order>
tag_type PHX::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::m_tag[8] [protected]

Array of singleton tags, aligned with strides.


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

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