Phalanx Development
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > Class Template Reference

A concrete implementation of the DataLayout class for compile time checked multidimensional arrays. More...

Inheritance diagram for PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >:
Inheritance graph
[legend]
Collaboration diagram for PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >:
Collaboration graph
[legend]

Public Types

enum  { MaxRank = 8 }
 
enum  { Rank = tag_list::Rank }
 
typedef PHX::DLTagList< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > tag_list
 
- Public Types inherited from PHX::DataLayout
enum class  KokkosLayoutType { Left , Right , Default }
 Defines the kokkos layout to use. Default uses the recommended layout from the default device execution space.
 
typedef PHX::Device::size_type size_type
 

Public Member Functions

 MDALayout (size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6, size_type size7, size_type size8)
 
 MDALayout (size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6, size_type size7)
 
 MDALayout (size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6)
 
 MDALayout (size_type size1, size_type size2, size_type size3, size_type size4, size_type size5)
 
 MDALayout (size_type size1, size_type size2, size_type size3, size_type size4)
 
 MDALayout (size_type size1, size_type size2, size_type size3)
 
 MDALayout (size_type size1, size_type size2)
 
 MDALayout (size_type size1)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6, size_type size7, size_type size8)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6, size_type size7)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3, size_type size4, size_type size5, size_type size6)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3, size_type size4, size_type size5)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3, size_type size4)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2, size_type size3)
 
 MDALayout (const std::string &prefix, size_type size1, size_type size2)
 
 MDALayout (const std::string &prefix, size_type size1)
 
virtual bool operator== (const DataLayout &right) const override
 
virtual PHX::Device::size_type rank () const override
 
virtual PHX::Device::size_type dimension (size_type ordinal) const override
 
virtual PHX::Device::size_type extent (size_type ordinal) const override
 
virtual int extent_int (size_type ordinal) const override
 
virtual void dimensions (std::vector< PHX::Device::size_type > &dim) const override
 
virtual std::string name (size_type ordinal) const override
 
virtual void names (std::vector< std::string > &names) const override
 
virtual PHX::Device::size_type size () const override
 
virtual PHX::DataLayout::KokkosLayoutType kokkosLayout () const override
 
virtual std::string identifier () const override
 Unique name identifier that can be used for strict weak ordering in stl std::map keys.
 
virtual void print (std::ostream &os, int offset) const override
 
- Public Member Functions inherited from PHX::DataLayout
virtual PHX::Device::size_type rank () const =0
 
virtual PHX::Device::size_type dimension (size_type ordinal) const =0
 
virtual PHX::Device::size_type extent (size_type ordinal) const =0
 
virtual int extent_int (size_type ordinal) const =0
 
virtual void dimensions (std::vector< PHX::Device::size_type > &dim) const =0
 
virtual PHX::Device::size_type size () const =0
 
virtual std::string name (size_type ordinal) const =0
 
virtual void names (std::vector< std::string > &names) const =0
 
virtual bool operator== (const DataLayout &left) const =0
 
virtual bool operator!= (const DataLayout &left) const
 
virtual PHX::DataLayout::KokkosLayoutType kokkosLayout () const =0
 
virtual std::string identifier () const =0
 Unique name identifier that can be used for strict weak ordering in stl std::map keys.
 
virtual void print (std::ostream &os, int indent=0) const =0
 
template<typename... extent_pack>
void setExtents (extent_pack... extents)
 

Protected Member Functions

virtual void setExtentsOnDerivedClass (const std::vector< PHX::Device::size_type > &extents) override
 
virtual void setExtentsOnDerivedClass (const std::vector< PHX::Device::size_type > &extents)=0
 

Detailed Description

template<typename Tag0, typename Tag1, typename Tag2, typename Tag3, typename Tag4, typename Tag5, typename Tag6, typename Tag7>
class PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >

A concrete implementation of the DataLayout class for compile time checked multidimensional arrays.

Member Function Documentation

◆ dimension()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
PHX::Device::size_type PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::dimension ( size_type  ordinal) const
overridevirtual

Implements PHX::DataLayout.

◆ dimensions()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::dimensions ( std::vector< PHX::Device::size_type > &  dim) const
overridevirtual

Implements PHX::DataLayout.

◆ extent()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
PHX::Device::size_type PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::extent ( size_type  ordinal) const
overridevirtual

Implements PHX::DataLayout.

◆ extent_int()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
int PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::extent_int ( size_type  ordinal) const
overridevirtual

Implements PHX::DataLayout.

◆ identifier()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
std::string PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::identifier ( ) const
overridevirtual

Unique name identifier that can be used for strict weak ordering in stl std::map keys.

Implements PHX::DataLayout.

◆ kokkosLayout()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
PHX::DataLayout::KokkosLayoutType PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::kokkosLayout
overridevirtual

Implements PHX::DataLayout.

◆ name()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
std::string PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::name ( size_type  ordinal) const
overridevirtual

Implements PHX::DataLayout.

◆ names()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::names ( std::vector< std::string > &  names) const
overridevirtual

Implements PHX::DataLayout.

◆ operator==()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
bool PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::operator== ( const DataLayout right) const
overridevirtual

Implements PHX::DataLayout.

◆ print()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::print ( std::ostream &  os,
int  offset 
) const
overridevirtual

Implements PHX::DataLayout.

◆ rank()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
PHX::Device::size_type PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::rank
overridevirtual

Implements PHX::DataLayout.

◆ setExtentsOnDerivedClass()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::setExtentsOnDerivedClass ( const std::vector< PHX::Device::size_type > &  extents)
overrideprotectedvirtual

Implements PHX::DataLayout.

◆ size()

template<typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
PHX::Device::size_type PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >::size
overridevirtual

Implements PHX::DataLayout.


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