TiledArray  0.7.0
TiledArray::Tile< T > Class Template Reference

An N-dimensional shallow copy wrapper for tile objects. More...

#include <tile.h>

Public Types

typedef Tile< T > Tile_
 This object type. More...
 
typedef T tensor_type
 Tensor type used to represent tile data. More...
 

Public Member Functions

 Tile ()=default
 
 Tile (const Tile_ &)=default
 
 Tile (Tile_ &&)=default
 
template<typename Arg , typename = typename std::enable_if< not detail::is_same_or_derived<Tile_,Arg>::value && not std::is_convertible<Arg,Tile_>::value && not TiledArray::detail::is_explicitly_convertible<Arg,Tile_>::value >::type>
 Tile (Arg &&arg)
 Forwarding ctor. More...
 
template<typename Arg1 , typename Arg2 , typename ... Args>
 Tile (Arg1 &&arg1, Arg2 &&arg2, Args &&... args)
 
 ~Tile ()=default
 
Tile_operator= (Tile_ &&)=default
 
Tile_operator= (const Tile_ &)=default
 
Tile_operator= (const tensor_type &tensor)
 
Tile_operator= (tensor_type &&tensor)
 
bool empty () const
 
tensor_typetensor ()
 
const tensor_typetensor () const
 
decltype(auto) begin ()
 Iterator factory. More...
 
decltype(auto) begin () const
 Iterator factory. More...
 
decltype(auto) end ()
 Iterator factory. More...
 
decltype(auto) end () const
 Iterator factory. More...
 
decltype(auto) size () const
 Size accessors. More...
 
decltype(auto) range () const
 Range accessor. More...
 
decltype(auto) operator[] (std::size_t i) const
 Const element accessor via subscript operator. More...
 
decltype(auto) operator[] (std::size_t i)
 Element accessor via subscript operator. More...
 
template<typename... I>
decltype(auto) operator() (const I... i) const
 Const element accessor via parentheses operator. More...
 
template<typename... I>
decltype(auto) operator() (const I... i)
 Element accessor via parentheses operator. More...
 
template<typename Archive , typename std::enable_if< madness::archive::is_output_archive< Archive >::value >::type * = nullptr>
void serialize (Archive &ar) const
 
template<typename Archive , typename std::enable_if< madness::archive::is_input_archive< Archive >::value >::type * = nullptr>
void serialize (Archive &ar)
 

Detailed Description

template<typename T>
class TiledArray::Tile< T >

An N-dimensional shallow copy wrapper for tile objects.

Tile represents a block of an Array. The rank of the tile block is the same as the owning Array object. In order for a user defined tensor object to be used in TiledArray expressions, users must also define the following functions:

  • add
  • add_to
  • subt
  • subt_to
  • mult
  • mult_to
  • scal
  • scal_to
  • gemm
  • neg
  • permute
  • empty
  • shift
  • shift_to
  • trance
  • sum
  • product
  • squared_norm
  • norm
  • min
  • max
  • abs_min
  • abs_max
  • dot as for the intrusive or non-instrusive interface. See the non-intrusive tile interface documentation for more details.
    Template Parameters
    TThe tensor type used to represent tile data

Definition at line 80 of file tile.h.

Member Typedef Documentation

◆ tensor_type

template<typename T>
typedef T TiledArray::Tile< T >::tensor_type

Tensor type used to represent tile data.

Definition at line 85 of file tile.h.

◆ Tile_

template<typename T>
typedef Tile<T> TiledArray::Tile< T >::Tile_

This object type.

Definition at line 83 of file tile.h.

Constructor & Destructor Documentation

◆ Tile() [1/5]

template<typename T>
TiledArray::Tile< T >::Tile ( )
default

◆ Tile() [2/5]

template<typename T>
TiledArray::Tile< T >::Tile ( const Tile_ )
default

◆ Tile() [3/5]

template<typename T>
TiledArray::Tile< T >::Tile ( Tile_ &&  )
default

◆ Tile() [4/5]

template<typename T>
template<typename Arg , typename = typename std::enable_if< not detail::is_same_or_derived<Tile_,Arg>::value && not std::is_convertible<Arg,Tile_>::value && not TiledArray::detail::is_explicitly_convertible<Arg,Tile_>::value >::type>
TiledArray::Tile< T >::Tile ( Arg &&  arg)
inlineexplicit

Forwarding ctor.

To simplify construction, Tile provides ctors that all forward their args to T. To avoid clashing with copy and move ctors need conditional instantiation – e.g. see http://ericniebler.com/2013/08/07/universal-references-and-the-copy-constructo/ NB For Arg that can be converted to Tile also use the copy/move ctors.

Definition at line 112 of file tile.h.

◆ Tile() [5/5]

template<typename T>
template<typename Arg1 , typename Arg2 , typename ... Args>
TiledArray::Tile< T >::Tile ( Arg1 &&  arg1,
Arg2 &&  arg2,
Args &&...  args 
)
inline

Definition at line 117 of file tile.h.

◆ ~Tile()

template<typename T>
TiledArray::Tile< T >::~Tile ( )
default

Member Function Documentation

◆ begin() [1/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::begin ( )
inline

Iterator factory.

Returns
An iterator to the first data element

Definition at line 159 of file tile.h.

Here is the call graph for this function:

◆ begin() [2/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::begin ( ) const
inline

Iterator factory.

Returns
A const iterator to the first data element

Definition at line 165 of file tile.h.

Here is the call graph for this function:

◆ empty()

template<typename T>
bool TiledArray::Tile< T >::empty ( ) const
inline

Definition at line 143 of file tile.h.

Here is the caller graph for this function:

◆ end() [1/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::end ( )
inline

Iterator factory.

Returns
An iterator to the last data element

Definition at line 171 of file tile.h.

Here is the call graph for this function:

◆ end() [2/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::end ( ) const
inline

Iterator factory.

Returns
A const iterator to the last data element

Definition at line 177 of file tile.h.

Here is the call graph for this function:

◆ operator()() [1/2]

template<typename T>
template<typename... I>
decltype(auto) TiledArray::Tile< T >::operator() ( const I...  i) const
inline

Const element accessor via parentheses operator.

Template Parameters
IThe set of coordinate index types (integral types)
Parameters
iThe set of coordinate indices of the tile element
Returns
The element of the tensor at the coordinate (i...)

Definition at line 218 of file tile.h.

Here is the call graph for this function:

◆ operator()() [2/2]

template<typename T>
template<typename... I>
decltype(auto) TiledArray::Tile< T >::operator() ( const I...  i)
inline

Element accessor via parentheses operator.

Template Parameters
IThe set of coordinate index types (integral types)
Parameters
iThe set of coordinate indices of the tile element
Returns
The element of the tensor at the coordinate (i...)

Definition at line 227 of file tile.h.

Here is the call graph for this function:

◆ operator=() [1/4]

template<typename T>
Tile_& TiledArray::Tile< T >::operator= ( Tile_ &&  )
default

◆ operator=() [2/4]

template<typename T>
Tile_& TiledArray::Tile< T >::operator= ( const Tile_ )
default

◆ operator=() [3/4]

template<typename T>
Tile_& TiledArray::Tile< T >::operator= ( const tensor_type tensor)
inline

Definition at line 130 of file tile.h.

Here is the call graph for this function:

◆ operator=() [4/4]

template<typename T>
Tile_& TiledArray::Tile< T >::operator= ( tensor_type &&  tensor)
inline

Definition at line 135 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::operator[] ( std::size_t  i) const
inline

Const element accessor via subscript operator.

Parameters
iThe ordinal index of the element to be returned
Returns
The i-th element of the tensor

Definition at line 202 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [2/2]

template<typename T>
decltype(auto) TiledArray::Tile< T >::operator[] ( std::size_t  i)
inline

Element accessor via subscript operator.

Parameters
iThe ordinal index of the element to be returned
Returns
The i-th element of the tensor

Definition at line 209 of file tile.h.

Here is the call graph for this function:

◆ range()

template<typename T>
decltype(auto) TiledArray::Tile< T >::range ( ) const
inline

Range accessor.

Returns
An object describes the upper and lower bounds of the tensor data

Definition at line 192 of file tile.h.

Here is the call graph for this function:

◆ serialize() [1/2]

template<typename T>
template<typename Archive , typename std::enable_if< madness::archive::is_output_archive< Archive >::value >::type * = nullptr>
void TiledArray::Tile< T >::serialize ( Archive &  ar) const
inline

Definition at line 235 of file tile.h.

Here is the call graph for this function:

◆ serialize() [2/2]

template<typename T>
template<typename Archive , typename std::enable_if< madness::archive::is_input_archive< Archive >::value >::type * = nullptr>
void TiledArray::Tile< T >::serialize ( Archive &  ar)
inline

Definition at line 247 of file tile.h.

Here is the call graph for this function:

◆ size()

template<typename T>
decltype(auto) TiledArray::Tile< T >::size ( ) const
inline

Size accessors.

Returns
The number of elements in the tensor

Definition at line 186 of file tile.h.

Here is the call graph for this function:

◆ tensor() [1/2]

template<typename T>
tensor_type& TiledArray::Tile< T >::tensor ( )
inline

Definition at line 149 of file tile.h.

Here is the caller graph for this function:

◆ tensor() [2/2]

template<typename T>
const tensor_type& TiledArray::Tile< T >::tensor ( ) const
inline

Definition at line 151 of file tile.h.


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