Mdarray_module

Multi-dimensional array view of a contiguous block of member data with the array dimension ordinates documented by "tags". More...


Classes

class  PHX::Array< Scalar, RankZero, void, void, void, void, void, void, void, void >
 Specialization for an array with Rank = 0. More...
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. More...
struct  PHX::array_check_ordinal_is_less< 0, 8 >
struct  PHX::array_check_ordinal_is_less< 1, 8 >
struct  PHX::array_check_ordinal_is_less< 2, 8 >
struct  PHX::array_check_ordinal_is_less< 3, 8 >
struct  PHX::array_check_ordinal_is_less< 4, 8 >
struct  PHX::array_check_ordinal_is_less< 5, 8 >
struct  PHX::array_check_ordinal_is_less< 6, 8 >
struct  PHX::array_check_ordinal_is_less< 7, 8 >
struct  PHX::array_check_ordinal_is_less< 0, 7 >
struct  PHX::array_check_ordinal_is_less< 1, 7 >
struct  PHX::array_check_ordinal_is_less< 2, 7 >
struct  PHX::array_check_ordinal_is_less< 3, 7 >
struct  PHX::array_check_ordinal_is_less< 4, 7 >
struct  PHX::array_check_ordinal_is_less< 5, 7 >
struct  PHX::array_check_ordinal_is_less< 6, 7 >
struct  PHX::array_check_ordinal_is_less< 0, 6 >
struct  PHX::array_check_ordinal_is_less< 1, 6 >
struct  PHX::array_check_ordinal_is_less< 2, 6 >
struct  PHX::array_check_ordinal_is_less< 3, 6 >
struct  PHX::array_check_ordinal_is_less< 4, 6 >
struct  PHX::array_check_ordinal_is_less< 5, 6 >
struct  PHX::array_check_ordinal_is_less< 0, 5 >
struct  PHX::array_check_ordinal_is_less< 1, 5 >
struct  PHX::array_check_ordinal_is_less< 2, 5 >
struct  PHX::array_check_ordinal_is_less< 3, 5 >
struct  PHX::array_check_ordinal_is_less< 4, 5 >
struct  PHX::array_check_ordinal_is_less< 0, 4 >
struct  PHX::array_check_ordinal_is_less< 1, 4 >
struct  PHX::array_check_ordinal_is_less< 2, 4 >
struct  PHX::array_check_ordinal_is_less< 3, 4 >
struct  PHX::array_check_ordinal_is_less< 0, 3 >
struct  PHX::array_check_ordinal_is_less< 1, 3 >
struct  PHX::array_check_ordinal_is_less< 2, 3 >
struct  PHX::array_check_ordinal_is_less< 0, 2 >
struct  PHX::array_check_ordinal_is_less< 1, 2 >
struct  PHX::array_check_ordinal_is_less< 0, 1 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 0 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 1 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 2 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 3 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 4 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 5 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 6 >
struct  PHX::ArrayTagAt< Array< Scalar, order, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >, 7 >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, Tag2, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, Tag2, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, Tag1, void, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, Tag1, void, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, RankZero, void, void, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, NaturalOrder, void, void, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayAppend< Array< Scalar, FortranOrder, void, void, void, void, void, void, void, void >, TApp >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, Tag2, void, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, Tag2, void, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, Tag1, void, void, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, Tag1, void, void, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, NaturalOrder, void, void, void, void, void, void, void, void > >
struct  PHX::ArrayReverse< Array< Scalar, FortranOrder, void, void, void, void, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > >
struct  PHX::ArrayTruncate< Array< Scalar, NaturalOrder, Tag1, void, void, void, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, void, void, void, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, void, void, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, void, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void > >
struct  PHX::ArrayTruncate< Array< Scalar, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 > >
struct  PHX::ArrayStrideDim< RankZero, Rank, Ordinal >
struct  PHX::ArrayStrideDim< FortranOrder, Rank, 0 >
struct  PHX::ArrayStrideDim< NaturalOrder, Rank, 0 >
struct  PHX::ArrayStrideDim< FortranOrder, Rank, Ordinal >
struct  PHX::ArrayStrideDim< NaturalOrder, Rank, Ordinal >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, Tag3, void, void, void, void, void >
struct  PHX::Array< void, FortranOrder, Tag1, Tag2, void, void, void, void, void, void >
struct  PHX::Array< void, FortranOrder, Tag1, void, void, void, void, void, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, Tag4, Tag5, void, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, Tag4, void, void, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, Tag3, void, void, void, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, Tag2, void, void, void, void, void, void >
struct  PHX::Array< void, NaturalOrder, Tag1, void, void, void, void, void, void, void >
struct  PHX::Array< void, RankZero, void, void, void, void, void, void, void, void >
class  PHX::ArrayDimTag
 Abstract base class for array dimension tags supplied to the Array template class. More...
class  PHX::ArrayDimension
 An anonymous array dimension tag, which is NOT the recommended usage. More...
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. More...

Enumerations

enum  PHX::ArrayOrder { PHX::NaturalOrder, PHX::FortranOrder, PHX::RankZero }
 Define Natural (C-language) or Fortran ordering of array dimensions. A RankZero array does not have an ordering. More...

Functions

unsigned PHX::array_stride_size (const unsigned rank, const unsigned *const stride)
 Return the total number of members from the array stride.
void PHX::array_stride_to_natural_dimensions (const unsigned rank, const unsigned *const stride, unsigned *const dim)
 Generate natural dimension from array stride.
void PHX::array_stride_to_natural_indices (const unsigned rank, const unsigned *const stride, const unsigned offset, unsigned *const indices)
 Generate natural indices from array stride.
void PHX::array_check_rank (const unsigned rank, const unsigned test_rank)
void PHX::array_check_ordinal (const unsigned rank, const unsigned test_ordinal)
void PHX::array_check_index (const unsigned dim, const unsigned index)
void PHX::array_check_offset (const unsigned size, const unsigned test_offset)
void PHX::array_check_indices (const bool arg_natural, const unsigned arg_rank, const unsigned *const arg_stride, const unsigned arg_i1, const unsigned arg_i2, const unsigned arg_i3, const unsigned arg_i4, const unsigned arg_i5, const unsigned arg_i6, const unsigned arg_i7, const unsigned arg_i8)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7, const unsigned &i8)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2, const unsigned &i3)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1, const unsigned &i2)
template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset (const unsigned *const , const unsigned &i1)
template<>
unsigned PHX::array_offset< FortranOrder, 8 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7, const unsigned &i8)
template<>
unsigned PHX::array_offset< FortranOrder, 7 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7)
template<>
unsigned PHX::array_offset< FortranOrder, 6 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6)
template<>
unsigned PHX::array_offset< FortranOrder, 5 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5)
template<>
unsigned PHX::array_offset< FortranOrder, 4 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4)
template<>
unsigned PHX::array_offset< FortranOrder, 3 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3)
template<>
unsigned PHX::array_offset< FortranOrder, 2 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2)
template<>
unsigned PHX::array_offset< FortranOrder, 1 > (const unsigned *const ARRAY_CHECK(stride), const unsigned &i1)
template<>
unsigned PHX::array_offset< NaturalOrder, 8 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7, const unsigned &i8)
template<>
unsigned PHX::array_offset< NaturalOrder, 7 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6, const unsigned &i7)
template<>
unsigned PHX::array_offset< NaturalOrder, 6 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5, const unsigned &i6)
template<>
unsigned PHX::array_offset< NaturalOrder, 5 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4, const unsigned &i5)
template<>
unsigned PHX::array_offset< NaturalOrder, 4 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3, const unsigned &i4)
template<>
unsigned PHX::array_offset< NaturalOrder, 3 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2, const unsigned &i3)
template<>
unsigned PHX::array_offset< NaturalOrder, 2 > (const unsigned *const stride, const unsigned &i1, const unsigned &i2)
template<>
unsigned PHX::array_offset< NaturalOrder, 1 > (const unsigned *const ARRAY_CHECK(stride), const unsigned &i1)


Detailed Description

Multi-dimensional array view of a contiguous block of member data with the array dimension ordinates documented by "tags".

Author:
H. Carter Edwards <hcedwar@sandia.gov>
Date:
June 2008 Trivial Example of a Function accepting a 2D Array
Given the user-defined array dimension tags Cartesian3D and Points define a function to find the centroid of an array of points.
  void centroid( const Array<double,FortranOrder,Cartesian3D,Points> points ,
                 const Array<double,FortranOrder,Cartesian3D> x )
  {
    const unsigned nspace  = points.dimension<0>();
    const unsigned npoints = points.dimension<1>();

    for ( unsigned id = 0 ; ip < npoints ; ++id ) {
      x(id) = 0 ;
    }
    for ( unsigned ip = 0 ; ip < npoints ; ++ip ) {
      for ( unsigned id = 0 ; id < npoints ; ++id ) {
        x(id) += points( id , ip );
      }
    }
    for ( unsigned id = 0 ; ip < npoints ; ++id ) {
      x(id) /= npoints ;
    }
  }
  

Example of User-defined Array Dimension Tags

  struct Cartesian3D : public ArrayDimTag {
    enum { Size = 3 };                // Default size for this dimension.
    const char * name() const ;       // Supply the pure-virtual function.
    static const Cartesian3D & tag(); // Runtime singleton for this tag.
  };
  struct Points : public ArrayDimTag {
    const char * name() const ;  // Supply the pure-virtual function.
    static const Points & tag(); // Runtime singleton for this tag.
    // NO default Size enumeration.
  };
  

Example of Creating an Array
Given a block of memory for the collection of points, wrap it in an Array.

  double * chunk   = ... ; // Chunk of memory from somewhere
  unsigned npoints = ... ; // containing a number of points

  Array<double,FortranOrder,Cartesian3D,Points> points( chunk , npoints );
  
The points array has dimension<0> set to Cartesian3D::Size and dimension<1> set to npoints. If the npoints argument where omitted then a compilation error would be generated due to the missing Points::Size enumeration.

Enumeration Type Documentation

Define Natural (C-language) or Fortran ordering of array dimensions. A RankZero array does not have an ordering.

Enumerator:
NaturalOrder  Use the Natural or C-language ordering for multi-dimensions where the right-most dimension is stride-one.
FortranOrder  Use the Reverse or Fortran-language ordering for multi-dimensions where the left-most dimension is stride-one.
RankZero  Special tag to indicate that an array specification has degenerated to rank-zero, i.e. is no longer an array.


Function Documentation

void PHX::array_check_index ( const unsigned  dim,
const unsigned  index 
)

Referenced by PHX::ArrayDimTag::to_index(), and PHX::ArrayDimTag::to_string().

Here is the caller graph for this function:

void PHX::array_check_indices ( const bool  arg_natural,
const unsigned  arg_rank,
const unsigned *const   arg_stride,
const unsigned  arg_i1,
const unsigned  arg_i2,
const unsigned  arg_i3,
const unsigned  arg_i4,
const unsigned  arg_i5,
const unsigned  arg_i6,
const unsigned  arg_i7,
const unsigned  arg_i8 
)

void PHX::array_check_offset ( const unsigned  size,
const unsigned  test_offset 
)

void PHX::array_check_ordinal ( const unsigned  rank,
const unsigned  test_ordinal 
)

void PHX::array_check_rank ( const unsigned  rank,
const unsigned  test_rank 
)

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7 
) [inline]

template<ArrayOrder array_order, unsigned rank>
unsigned PHX::array_offset ( const unsigned *  const,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7,
const unsigned &  i8 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 1 > ( const unsigned *const   ARRAY_CHECKstride,
const unsigned &  i1 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 2 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 3 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 4 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 5 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 6 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 7 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7 
) [inline]

template<>
unsigned PHX::array_offset< FortranOrder, 8 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7,
const unsigned &  i8 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 1 > ( const unsigned *const   ARRAY_CHECKstride,
const unsigned &  i1 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 2 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 3 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 4 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 5 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 6 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 7 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7 
) [inline]

template<>
unsigned PHX::array_offset< NaturalOrder, 8 > ( const unsigned *const   stride,
const unsigned &  i1,
const unsigned &  i2,
const unsigned &  i3,
const unsigned &  i4,
const unsigned &  i5,
const unsigned &  i6,
const unsigned &  i7,
const unsigned &  i8 
) [inline]

unsigned PHX::array_stride_size ( const unsigned  rank,
const unsigned *const   stride 
)

Return the total number of members from the array stride.

void PHX::array_stride_to_natural_dimensions ( const unsigned  rank,
const unsigned *const   stride,
unsigned *const   dim 
)

Generate natural dimension from array stride.

void PHX::array_stride_to_natural_indices ( const unsigned  rank,
const unsigned *const   stride,
const unsigned  offset,
unsigned *const   indices 
)

Generate natural indices from array stride.


Generated on Thu Dec 17 11:05:42 2009 for Phalanx by  doxygen 1.5.9