shards Version of the Day
Loading...
Searching...
No Matches
shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void > Class Template Reference

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

#include <Shards_Array.hpp>

Public Member Functions

template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3, size_type n4, size_type n5, size_type n6, size_type n7, size_type n8)
 
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3, size_type n4, size_type n5, size_type n6, size_type n7)
 
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3, size_type n4, size_type n5, size_type n6)
 
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3, size_type n4, size_type n5)
 
template<class Tag1, class Tag2, class Tag3, class Tag4>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3, size_type n4)
 
template<class Tag1, class Tag2, class Tag3>
Arrayassign (value_type *ptr, size_type n1, size_type n2, size_type n3)
 
template<class Tag1, class Tag2>
Arrayassign (value_type *ptr, size_type n1, size_type n2)
 
template<class Tag1>
Arrayassign (value_type *ptr, size_type n1)
 

Protected Member Functions

 Array (const Array< Scalar, array_order > &rhs, size_type i)
 

Protected Attributes

Array< value_type, array_order > m_array
 

Friends

template<typename, ArrayOrder, class, class, class, class, class, class, class, class>
class shards::Array
 
class shards::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 array_traits::int_t size_type
 Type for sizes.
 
typedef const ArrayDimTagtag_type
 Type of runtime dimension tags.
 
size_type 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 (size_type ord) const
 Access the dimension tag-singleton for a given ordinate.
 
size_type dimension (size_type ord) const
 Dimension of the given ordinate.
 
template<typename iType>
void dimensions (std::vector< iType > &n)
 Dimension of all ordinate.
 
size_type size () const
 Total number of data items.
 

Constructors and Assignment Operators

typedef array_traits::Helper< Scalar, array_order, void, void, void, void, void, void, void, void >::reverse ReverseType
 
 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.
 
 Array (value_type *ptr, const size_type input_rank, const size_type *const dims, const tag_type *const tags)
 

Array Attributes

enum  
 Rank of the array is the number of non-void dimension tags. More...
 
enum  
 If the multidimension follows the natural ordering. More...
 
enum  
 If the multidimension follows the reverse (Fortran) ordering. More...
 
enum  
 If the member data storage is contiguous. More...
 
typedef Scalar value_type
 Type of member data.
 
typedef array_traits::int_t size_type
 Type for sizes.
 
typedef const ArrayDimTagtag_type
 Type of runtime dimension tags.
 
size_type 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 size_type ordinate) const
 Access the dimension tag-singleton for a given ordinate.
 
size_type dimension () const
 Dimension of the given ordinate.
 
size_type dimension (const size_type ordinate) const
 Dimension of the given ordinate.
 
void dimensions (std::vector< iType > &n)
 Dimensions of all ordinates.
 
size_type size () const
 Total number of member data items.
 

Member data access operators

typedef helper::truncate TruncateType
 Subarray type that removes the slowest striding dimension (first natural or last fortran ordinate).
 
TruncateType truncate (const iType &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[] (const iType &i) const
 Access member via offset into contiguous block.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6, const iType &i7, const iType &i8) const
 Access member of a Rank 8 array.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6, const iType &i7) const
 Access member of a Rank 7 array.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6) const
 Access member of a Rank 6 array.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5) const
 Access member of a Rank 5 array.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4) const
 Access member of a Rank 4 array.
 
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3) const
 Access member of a Rank 3 array.
 
value_typeoperator() (const iType &i1, const iType &i2) const
 Access member of a Rank 2 array.
 
value_typeoperator() (const iType &i1) const
 Access member of a Rank 1 array.
 

Constructors and Assignment Operators

typedef helper::reverse ReverseType
 The compatible multidimensional array with reversed multi-index ordering and dimension tags.
 
 Array ()
 Default constructor.
 
 Array (const Array &rhs)
 Copy constructor.
 
 Array (const ReverseType &rhs)
 Copy constructor for compatible reverse type.
 
 Array (value_type *arg_ptr, const size_type *const dims)
 Construct with array of dimensions.
 
 Array (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type n6, const size_type n7, const size_type n8)
 Construct a Rank 8 array.
 
 Array (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type n6, const size_type 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 size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type 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 size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type 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 size_type n1, const size_type n2, const size_type n3, const size_type 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 size_type n1, const size_type n2, const size_type 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 size_type n1, const size_type 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 size_type 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.
 
 Array (const Array< Scalar, array_order > &rhs)
 Construct compile-time array from run-time array.
 
Arrayoperator= (const Array &rhs)
 Assignment operator.
 
Arrayoperator= (const ReverseType &rhs)
 Assignment operator for compatible reverse type.
 
Arrayassign (value_type *arg_ptr, const size_type *const dims)
 Assign pointer and dimensions.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type n6, const size_type n7, const size_type n8)
 Construct a Rank 8 array.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type n6, const size_type n7)
 Construct a Rank 7..8 array; use Tag#::Size for defaults. The input dimensions are the 7 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5, const size_type n6)
 Construct a Rank 6..8 array; use Tag#::Size for defaults. The input dimensions are the 6 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4, const size_type n5)
 Construct a Rank 5..8 array; use Tag#::Size for defaults. The input dimensions are the 5 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3, const size_type n4)
 Construct a Rank 4..8 array; use Tag#::Size for defaults. The input dimensions are the 4 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2, const size_type n3)
 Construct a Rank 3..8 array; use Tag#::Size for defaults. The input dimensions are the 3 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1, const size_type n2)
 Construct a Rank 2..8 array; use Tag#::Size for defaults. The input dimensions are the 2 slowest strides.
 
Arrayassign (value_type *arg_ptr, const size_type n1)
 Construct a Rank 1..8 array; use Tag#::Size for defaults. The input dimension is the slowest stride.
 
Arrayassign (value_type *arg_ptr)
 Construct a Rank 1..8 array; use Tag#::Size for defaults.
 
 operator const Array< Scalar, array_order > & () const
 Return internal runtime implementation of the array.
 
 operator typename Array< Scalar, array_order >::ReverseType () const
 Return constructed reversed-ordering array.
 
void assign_stride (value_type *arg_ptr, const size_type *arg_stride)
 Assign stride and pointer.
 
void assign_stride (value_type *arg_ptr, const size_type *arg_stride, size_type arg_final_dim)
 Assign stride and pointer.
 

Member data access operators

template<typename iType>
Array truncate (const iType &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.
 
template<typename iType>
value_typeoperator[] (const iType &i) const
 Access member via full ordering of members.
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6, const iType &i7, const iType &i8) const
 Access member via Rank 8 multi-index.
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6, const iType &i7) const
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5, const iType &i6) const
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4, const iType &i5) const
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3, const iType &i4) const
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2, const iType &i3) const
 
template<typename iType>
value_typeoperator() (const iType &i1, const iType &i2) const
 
template<typename iType>
value_typeoperator() (const iType &i1) const
 

Detailed Description

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

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

Parameters
ScalarThe "plain old data" type of the array's member data.
array_orderAn ArrayOrder value that specifies whether to use Natural (a.k.a. C-language) or Fortran ordering for the multi-dimensions and multi-indices.

Definition at line 3194 of file Shards_Array.hpp.

Member Typedef Documentation

◆ value_type [1/2]

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

Type of member data.

Definition at line 3204 of file Shards_Array.hpp.

◆ size_type [1/2]

template<typename Scalar, ArrayOrder array_order>
typedef array_traits::int_t shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size_type

Type for sizes.

Definition at line 3207 of file Shards_Array.hpp.

◆ tag_type [1/2]

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

Type of runtime dimension tags.

Definition at line 3210 of file Shards_Array.hpp.

◆ ReverseType [1/2]

template<typename Scalar, ArrayOrder array_order>
typedef array_traits::Helper<Scalar,array_order,void,void,void,void,void,void,void,void>::reverse shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::ReverseType

Definition at line 3368 of file Shards_Array.hpp.

◆ value_type [2/2]

typedef Scalar shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::value_type

Type of member data.

Definition at line 3632 of file Shards_Array.hpp.

◆ size_type [2/2]

typedef array_traits::int_t shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size_type

Type for sizes.

Definition at line 3635 of file Shards_Array.hpp.

◆ tag_type [2/2]

typedef const ArrayDimTag* shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::tag_type

Type of runtime dimension tags.

Definition at line 3638 of file Shards_Array.hpp.

◆ TruncateType

typedef helper::truncate shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::TruncateType

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

Definition at line 3712 of file Shards_Array.hpp.

◆ ReverseType [2/2]

typedef helper::reverse shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::ReverseType

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

Definition at line 3816 of file Shards_Array.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<typename Scalar, ArrayOrder array_order>
anonymous enum

If the multidimension follows the natural ordering.

Definition at line 3215 of file Shards_Array.hpp.

◆ anonymous enum

template<typename Scalar, ArrayOrder array_order>
anonymous enum

If the multidimension follows the reverse (Fortran) ordering.

Definition at line 3218 of file Shards_Array.hpp.

◆ anonymous enum

template<typename Scalar, ArrayOrder array_order>
anonymous enum

If the member data storage is contiguous.

Definition at line 3221 of file Shards_Array.hpp.

◆ anonymous enum

anonymous enum

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

Definition at line 3643 of file Shards_Array.hpp.

◆ anonymous enum

anonymous enum

If the multidimension follows the natural ordering.

Definition at line 3646 of file Shards_Array.hpp.

◆ anonymous enum

anonymous enum

If the multidimension follows the reverse (Fortran) ordering.

Definition at line 3649 of file Shards_Array.hpp.

◆ anonymous enum

anonymous enum

If the member data storage is contiguous.

Definition at line 3652 of file Shards_Array.hpp.

Constructor & Destructor Documentation

◆ Array() [1/19]

template<typename Scalar, ArrayOrder array_order>
shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( )
inline

Definition at line 3372 of file Shards_Array.hpp.

◆ Array() [2/19]

template<typename Scalar, ArrayOrder array_order>
shards::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

Definition at line 3379 of file Shards_Array.hpp.

◆ Array() [3/19]

template<typename Scalar, ArrayOrder array_order>
shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const ReverseType & rhs)
inline

Copy constructor for reverse type.

Definition at line 3396 of file Shards_Array.hpp.

◆ Array() [4/19]

template<typename Scalar, ArrayOrder array_order>
shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * ptr,
const size_type input_rank,
const size_type *const dims,
const tag_type *const tags )
inline

Definition at line 3416 of file Shards_Array.hpp.

◆ Array() [5/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( )
inline

Default constructor.

Definition at line 3819 of file Shards_Array.hpp.

◆ Array() [6/19]

shards::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

Copy constructor.

Definition at line 3823 of file Shards_Array.hpp.

◆ Array() [7/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const ReverseType & rhs)
inline

Copy constructor for compatible reverse type.

Definition at line 3830 of file Shards_Array.hpp.

◆ Array() [8/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type *const dims )
inline

Construct with array of dimensions.

Definition at line 3845 of file Shards_Array.hpp.

◆ Array() [9/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6,
const size_type n7,
const size_type n8 )
inline

Construct a Rank 8 array.

Definition at line 3867 of file Shards_Array.hpp.

◆ Array() [10/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6,
const size_type n7 )
inline

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

Definition at line 3897 of file Shards_Array.hpp.

◆ Array() [11/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6 )
inline

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

Definition at line 3926 of file Shards_Array.hpp.

◆ Array() [12/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5 )
inline

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

Definition at line 3954 of file Shards_Array.hpp.

◆ Array() [13/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4 )
inline

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

Definition at line 3981 of file Shards_Array.hpp.

◆ Array() [14/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3 )
inline

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

Definition at line 4007 of file Shards_Array.hpp.

◆ Array() [15/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1,
const size_type n2 )
inline

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

Definition at line 4032 of file Shards_Array.hpp.

◆ Array() [16/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr,
const size_type n1 )
inline

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

Definition at line 4054 of file Shards_Array.hpp.

◆ Array() [17/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( value_type * arg_ptr)
inline

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

Definition at line 4071 of file Shards_Array.hpp.

◆ Array() [18/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const Array< Scalar, array_order > & rhs)
inline

Construct compile-time array from run-time array.

Definition at line 4080 of file Shards_Array.hpp.

◆ Array() [19/19]

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::Array ( const Array< Scalar, array_order > & rhs,
size_type i )
inlineprotected

Definition at line 4121 of file Shards_Array.hpp.

Member Function Documentation

◆ rank() [1/2]

template<typename Scalar, ArrayOrder array_order>
size_type shards::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.

Definition at line 3224 of file Shards_Array.hpp.

◆ natural() [1/2]

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

If the multidimension follows the natural ordering.

Definition at line 3227 of file Shards_Array.hpp.

◆ reverse() [1/2]

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

If the multidimension follows the reverse (Fortran) ordering.

Definition at line 3230 of file Shards_Array.hpp.

◆ contiguous() [1/2]

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

If the member data storage is contiguous.

Definition at line 3233 of file Shards_Array.hpp.

◆ tag() [1/2]

template<typename Scalar, ArrayOrder array_order>
tag_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::tag ( size_type ord) const
inline

Access the dimension tag-singleton for a given ordinate.

Definition at line 3238 of file Shards_Array.hpp.

◆ dimension() [1/3]

template<typename Scalar, ArrayOrder array_order>
size_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimension ( size_type ord) const
inline

Dimension of the given ordinate.

Definition at line 3248 of file Shards_Array.hpp.

◆ dimensions() [1/2]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
void shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimensions ( std::vector< iType > & n)
inline

Dimension of all ordinate.

Definition at line 3257 of file Shards_Array.hpp.

◆ size() [1/2]

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

Total number of data items.

Definition at line 3264 of file Shards_Array.hpp.

◆ truncate() [1/2]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
Array shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::truncate ( const iType & i) const
inline

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

Definition at line 3276 of file Shards_Array.hpp.

◆ contiguous_data() [1/2]

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

Pointer to contiguous block of member data.

Definition at line 3280 of file Shards_Array.hpp.

◆ operator[]() [1/2]

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

Access member via full ordering of members.

Definition at line 3284 of file Shards_Array.hpp.

◆ operator()() [1/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5,
const iType & i6,
const iType & i7,
const iType & i8 ) const
inline

Access member via Rank 8 multi-index.

Definition at line 3293 of file Shards_Array.hpp.

◆ operator()() [2/16]

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

Definition at line 3303 of file Shards_Array.hpp.

◆ operator()() [3/16]

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

Definition at line 3313 of file Shards_Array.hpp.

◆ operator()() [4/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5 ) const
inline

Definition at line 3322 of file Shards_Array.hpp.

◆ operator()() [5/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4 ) const
inline

Definition at line 3331 of file Shards_Array.hpp.

◆ operator()() [6/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3 ) const
inline

Definition at line 3339 of file Shards_Array.hpp.

◆ operator()() [7/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2 ) const
inline

Definition at line 3347 of file Shards_Array.hpp.

◆ operator()() [8/16]

template<typename Scalar, ArrayOrder array_order>
template<typename iType>
value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1) const
inline

Definition at line 3354 of file Shards_Array.hpp.

◆ operator=() [1/4]

template<typename Scalar, ArrayOrder array_order>
Array & shards::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

Definition at line 3386 of file Shards_Array.hpp.

◆ operator=() [2/4]

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

Assignment operator for reverse type.

Definition at line 3404 of file Shards_Array.hpp.

◆ assign() [1/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7, class Tag8>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3,
size_type n4,
size_type n5,
size_type n6,
size_type n7,
size_type n8 )
inline

Definition at line 3430 of file Shards_Array.hpp.

◆ assign() [2/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6, class Tag7>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3,
size_type n4,
size_type n5,
size_type n6,
size_type n7 )
inline

Definition at line 3447 of file Shards_Array.hpp.

◆ assign() [3/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5, class Tag6>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3,
size_type n4,
size_type n5,
size_type n6 )
inline

Definition at line 3463 of file Shards_Array.hpp.

◆ assign() [4/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3, class Tag4, class Tag5>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3,
size_type n4,
size_type n5 )
inline

Definition at line 3480 of file Shards_Array.hpp.

◆ assign() [5/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3, class Tag4>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3,
size_type n4 )
inline

Definition at line 3496 of file Shards_Array.hpp.

◆ assign() [6/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2, class Tag3>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2,
size_type n3 )
inline

Definition at line 3511 of file Shards_Array.hpp.

◆ assign() [7/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1, class Tag2>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1,
size_type n2 )
inline

Definition at line 3526 of file Shards_Array.hpp.

◆ assign() [8/18]

template<typename Scalar, ArrayOrder array_order>
template<class Tag1>
Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * ptr,
size_type n1 )
inline

Definition at line 3541 of file Shards_Array.hpp.

◆ rank() [2/2]

size_type shards::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.

Definition at line 3655 of file Shards_Array.hpp.

◆ natural() [2/2]

bool shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::natural ( ) const
inline

If the multidimension follows the natural ordering.

Definition at line 3658 of file Shards_Array.hpp.

◆ reverse() [2/2]

bool shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::reverse ( ) const
inline

If the multidimension follows the reverse (Fortran) ordering.

Definition at line 3661 of file Shards_Array.hpp.

◆ contiguous() [2/2]

bool shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::contiguous ( ) const
inline

If the member data storage is contiguous.

Definition at line 3664 of file Shards_Array.hpp.

◆ tag() [2/2]

tag_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::tag ( const size_type ordinate) const
inline

Access the dimension tag-singleton for a given ordinate.

Definition at line 3677 of file Shards_Array.hpp.

◆ dimension() [2/3]

size_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimension ( ) const
inline

Dimension of the given ordinate.

Definition at line 3682 of file Shards_Array.hpp.

◆ dimension() [3/3]

size_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimension ( const size_type ordinate) const
inline

Dimension of the given ordinate.

Definition at line 3689 of file Shards_Array.hpp.

◆ dimensions() [2/2]

void shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::dimensions ( std::vector< iType > & n)
inline

Dimensions of all ordinates.

Definition at line 3697 of file Shards_Array.hpp.

◆ size() [2/2]

size_type shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::size ( ) const
inline

Total number of member data items.

Definition at line 3701 of file Shards_Array.hpp.

◆ truncate() [2/2]

TruncateType shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::truncate ( const iType & i) const
inline

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

Definition at line 3719 of file Shards_Array.hpp.

◆ contiguous_data() [2/2]

value_type * shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::contiguous_data ( ) const
inline

Pointer to contiguous block of member data.

Definition at line 3724 of file Shards_Array.hpp.

◆ operator[]() [2/2]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator[] ( const iType & i) const
inline

Access member via offset into contiguous block.

Definition at line 3728 of file Shards_Array.hpp.

◆ operator()() [9/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5,
const iType & i6,
const iType & i7,
const iType & i8 ) const
inline

Access member of a Rank 8 array.

Definition at line 3733 of file Shards_Array.hpp.

◆ operator()() [10/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5,
const iType & i6,
const iType & i7 ) const
inline

Access member of a Rank 7 array.

Definition at line 3744 of file Shards_Array.hpp.

◆ operator()() [11/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5,
const iType & i6 ) const
inline

Access member of a Rank 6 array.

Definition at line 3755 of file Shards_Array.hpp.

◆ operator()() [12/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4,
const iType & i5 ) const
inline

Access member of a Rank 5 array.

Definition at line 3765 of file Shards_Array.hpp.

◆ operator()() [13/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3,
const iType & i4 ) const
inline

Access member of a Rank 4 array.

Definition at line 3775 of file Shards_Array.hpp.

◆ operator()() [14/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2,
const iType & i3 ) const
inline

Access member of a Rank 3 array.

Definition at line 3784 of file Shards_Array.hpp.

◆ operator()() [15/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1,
const iType & i2 ) const
inline

Access member of a Rank 2 array.

Definition at line 3793 of file Shards_Array.hpp.

◆ operator()() [16/16]

value_type & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator() ( const iType & i1) const
inline

Access member of a Rank 1 array.

Definition at line 3801 of file Shards_Array.hpp.

◆ operator=() [3/4]

Array & shards::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

Assignment operator.

Definition at line 3826 of file Shards_Array.hpp.

◆ operator=() [4/4]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator= ( const ReverseType & rhs)
inline

Assignment operator for compatible reverse type.

Definition at line 3833 of file Shards_Array.hpp.

◆ assign() [9/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type *const dims )
inline

Assign pointer and dimensions.

Definition at line 3837 of file Shards_Array.hpp.

◆ assign() [10/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6,
const size_type n7,
const size_type n8 )
inline

Construct a Rank 8 array.

Definition at line 3854 of file Shards_Array.hpp.

◆ assign() [11/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6,
const size_type n7 )
inline

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

Definition at line 3882 of file Shards_Array.hpp.

◆ assign() [12/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5,
const size_type n6 )
inline

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

Definition at line 3912 of file Shards_Array.hpp.

◆ assign() [13/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4,
const size_type n5 )
inline

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

Definition at line 3940 of file Shards_Array.hpp.

◆ assign() [14/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3,
const size_type n4 )
inline

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

Definition at line 3968 of file Shards_Array.hpp.

◆ assign() [15/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2,
const size_type n3 )
inline

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

Definition at line 3994 of file Shards_Array.hpp.

◆ assign() [16/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1,
const size_type n2 )
inline

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

Definition at line 4020 of file Shards_Array.hpp.

◆ assign() [17/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr,
const size_type n1 )
inline

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

Definition at line 4043 of file Shards_Array.hpp.

◆ assign() [18/18]

Array & shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign ( value_type * arg_ptr)
inline

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

Definition at line 4063 of file Shards_Array.hpp.

◆ operator const Array< Scalar, array_order > &()

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator const Array< Scalar, array_order > & ( ) const
inline

Return internal runtime implementation of the array.

Definition at line 4092 of file Shards_Array.hpp.

◆ operator typename Array< Scalar, array_order >::ReverseType()

shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::operator typename Array< Scalar, array_order >::ReverseType ( ) const
inline

Return constructed reversed-ordering array.

Definition at line 4095 of file Shards_Array.hpp.

◆ assign_stride() [1/2]

void shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign_stride ( value_type * arg_ptr,
const size_type * arg_stride )
inline

Assign stride and pointer.

Definition at line 4099 of file Shards_Array.hpp.

◆ assign_stride() [2/2]

void shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::assign_stride ( value_type * arg_ptr,
const size_type * arg_stride,
size_type arg_final_dim )
inline

Assign stride and pointer.

Definition at line 4108 of file Shards_Array.hpp.

Friends And Related Symbol Documentation

◆ shards::Array [1/2]

template<typename Scalar, ArrayOrder array_order>
template<typename, ArrayOrder, class, class, class, class, class, class, class, class>
friend class shards::Array
friend

Definition at line 3590 of file Shards_Array.hpp.

◆ shards::Array [2/2]

friend class shards::Array
friend

Definition at line 4137 of file Shards_Array.hpp.

Member Data Documentation

◆ m_array

Array<value_type,array_order> shards::Array< Scalar, array_order, void, void, void, void, void, void, void, void >::m_array
protected

Definition at line 4132 of file Shards_Array.hpp.


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