TiledArray::Tile< T > Class Template Reference

Documentation

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
  • scale
  • scale_to
  • gemm
  • neg
  • permute
  • empty
  • shift
  • shift_to
  • trace
  • 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 82 of file tile.h.

Public Types

typedef Tile< T > Tile_
 This object type. More...
 
typedef T tensor_type
 Tensor type used to represent tile data. More...
 
using value_type = typename tensor_type::value_type
 value type More...
 
using range_type = typename tensor_type::range_type
 Tensor range type. More...
 
using index1_type = typename tensor_type::index1_type
 1-index type More...
 
using size_type = typename tensor_type::ordinal_type
 
using reference = typename tensor_type::reference
 Element reference type. More...
 
using const_reference = typename tensor_type::const_reference
 Element reference type. More...
 
using iterator = typename tensor_type::iterator
 Element iterator type. More...
 
using const_iterator = typename tensor_type::const_iterator
 Element const iterator type. More...
 
using pointer = typename tensor_type::pointer
 Element pointer type. More...
 
using const_pointer = typename tensor_type::const_pointer
 Element const pointer type. More...
 
using numeric_type = typename TiledArray::detail::numeric_type< tensor_type >::type
 the numeric type that supports T More...
 
using scalar_type = typename TiledArray::detail::scalar_type< tensor_type >::type
 the scalar type that supports T 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) data ()
 Data direct access. More...
 
decltype(auto) data () const
 Data direct access. More...
 
decltype(auto) size () const
 Size accessors. More...
 
decltype(auto) range () const
 Range accessor. More...
 
template<typename Ordinal , std::enable_if_t< std::is_integral< Ordinal >::value > * = nullptr>
const_reference operator[] (const Ordinal ord) const
 Const element accessor. More...
 
template<typename Ordinal , std::enable_if_t< std::is_integral< Ordinal >::value > * = nullptr>
reference operator[] (const Ordinal ord)
 Element accessor. More...
 
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
const_reference operator[] (const Index &i) const
 Const element accessor. More...
 
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
reference operator[] (const Index &i)
 Element accessor. More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
const_reference operator[] (const std::initializer_list< Index > &i) const
 Const element accessor. More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
reference operator[] (const std::initializer_list< Index > &i)
 Element accessor. More...
 
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
const_reference operator() (const Index &i) const
 Const element accessor. More...
 
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
reference operator() (const Index &i)
 Element accessor. More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
const_reference operator() (const std::initializer_list< Index > &i) const
 Const element accessor. More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
reference operator() (const std::initializer_list< Index > &i)
 Element accessor. More...
 
template<typename... Index, std::enable_if_t< detail::is_integral_list< Index... >::value > * = nullptr>
const_reference operator() (const Index &... i) const
 Const element accessor. More...
 
template<typename... Index, std::enable_if_t< detail::is_integral_list< Index... >::value > * = nullptr>
reference operator() (const Index &... i)
 Element accessor. 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)
 
template<typename Index1 , typename Index2 , typename = std::enable_if_t<detail::is_integral_range_v<Index1> && detail::is_integral_range_v<Index2>>>
decltype(auto) block (const Index1 &lower_bound, const Index2 &upper_bound)
 Constructs a view of the block defined by lower_bound and upper_bound. More...
 
template<typename Index1 , typename Index2 , typename = std::enable_if_t<detail::is_integral_range_v<Index1> && detail::is_integral_range_v<Index2>>>
decltype(auto) block (const Index1 &lower_bound, const Index2 &upper_bound) const
 Constructs a view of the block defined by lower_bound and upper_bound. More...
 
template<typename Index1 , typename Index2 , typename = std::enable_if_t<std::is_integral_v<Index1> && std::is_integral_v<Index2>>>
decltype(auto) block (const std::initializer_list< Index1 > &lower_bound, const std::initializer_list< Index2 > &upper_bound)
 Constructs a view of the block defined by lower_bound and upper_bound. More...
 
template<typename Index1 , typename Index2 , typename = std::enable_if_t<std::is_integral_v<Index1> && std::is_integral_v<Index2>>>
decltype(auto) block (const std::initializer_list< Index1 > &lower_bound, const std::initializer_list< Index2 > &upper_bound) const
 Constructs a view of the block defined by lower_bound and upper_bound. More...
 
template<typename PairRange , typename = std::enable_if_t<detail::is_gpair_range_v<PairRange>>>
decltype(auto) block (const PairRange &bounds)
 Constructs a view of the block defined by its bounds . More...
 
template<typename PairRange , typename = std::enable_if_t<detail::is_gpair_range_v<PairRange>>>
decltype(auto) block (const PairRange &bounds) const
 Constructs a view of the block defined by its bounds . More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
decltype(auto) block (const std::initializer_list< std::initializer_list< Index >> &bounds)
 Constructs a view of the block defined by its bounds . More...
 
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
decltype(auto) block (const std::initializer_list< std::initializer_list< Index >> &bounds) const
 Constructs a view of the block defined by its bounds . More...
 

Member Typedef Documentation

◆ const_iterator

template<typename T >
using TiledArray::Tile< T >::const_iterator = typename tensor_type::const_iterator

Element const iterator type.

Definition at line 100 of file tile.h.

◆ const_pointer

template<typename T >
using TiledArray::Tile< T >::const_pointer = typename tensor_type::const_pointer

Element const pointer type.

Definition at line 103 of file tile.h.

◆ const_reference

template<typename T >
using TiledArray::Tile< T >::const_reference = typename tensor_type::const_reference

Element reference type.

Definition at line 97 of file tile.h.

◆ index1_type

template<typename T >
using TiledArray::Tile< T >::index1_type = typename tensor_type::index1_type

1-index type

Definition at line 91 of file tile.h.

◆ iterator

template<typename T >
using TiledArray::Tile< T >::iterator = typename tensor_type::iterator

Element iterator type.

Definition at line 99 of file tile.h.

◆ numeric_type

template<typename T >
using TiledArray::Tile< T >::numeric_type = typename TiledArray::detail::numeric_type< tensor_type>::type

the numeric type that supports T

Definition at line 105 of file tile.h.

◆ pointer

template<typename T >
using TiledArray::Tile< T >::pointer = typename tensor_type::pointer

Element pointer type.

Definition at line 102 of file tile.h.

◆ range_type

template<typename T >
using TiledArray::Tile< T >::range_type = typename tensor_type::range_type

Tensor range type.

Definition at line 90 of file tile.h.

◆ reference

template<typename T >
using TiledArray::Tile< T >::reference = typename tensor_type::reference

Element reference type.

Definition at line 95 of file tile.h.

◆ scalar_type

template<typename T >
using TiledArray::Tile< T >::scalar_type = typename TiledArray::detail::scalar_type< tensor_type>::type

the scalar type that supports T

Definition at line 107 of file tile.h.

◆ size_type

template<typename T >
using TiledArray::Tile< T >::size_type = typename tensor_type::ordinal_type

Size type (to meet the container concept)

Definition at line 92 of file tile.h.

◆ tensor_type

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

Tensor type used to represent tile data.

Definition at line 87 of file tile.h.

◆ Tile_

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

This object type.

Definition at line 85 of file tile.h.

◆ value_type

template<typename T >
using TiledArray::Tile< T >::value_type = typename tensor_type::value_type

value type

Definition at line 89 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 133 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 137 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 174 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 179 of file tile.h.

Here is the call graph for this function:

◆ block() [1/8]

template<typename T >
template<typename Index1 , typename Index2 , typename = std::enable_if_t<detail::is_integral_range_v<Index1> && detail::is_integral_range_v<Index2>>>
decltype(auto) TiledArray::Tile< T >::block ( const Index1 &  lower_bound,
const Index2 &  upper_bound 
)
inline

Constructs a view of the block defined by lower_bound and upper_bound.

Examples of using this:

std::vector<size_t> lobounds = {0, 1, 2};
std::vector<size_t> upbounds = {4, 6, 8};
auto tview = t.block(lobounds, upbounds);
assert(tview.range().includes(lobounds));
assert(tview(lobounds) == t(lobounds));
Template Parameters
Index1An integral range type
Index2An integral range type
Parameters
lower_boundThe lower bound
upper_boundThe upper bound
Returns
a {const,mutable} view of the block defined by lower_bound and upper_bound
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen lower_bound[i] >= upper_bound[i]

Definition at line 423 of file tile.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ block() [2/8]

template<typename T >
template<typename Index1 , typename Index2 , typename = std::enable_if_t<detail::is_integral_range_v<Index1> && detail::is_integral_range_v<Index2>>>
decltype(auto) TiledArray::Tile< T >::block ( const Index1 &  lower_bound,
const Index2 &  upper_bound 
) const
inline

Constructs a view of the block defined by lower_bound and upper_bound.

Examples of using this:

std::vector<size_t> lobounds = {0, 1, 2};
std::vector<size_t> upbounds = {4, 6, 8};
auto tview = t.block(lobounds, upbounds);
assert(tview.range().includes(lobounds));
assert(tview(lobounds) == t(lobounds));
Template Parameters
Index1An integral range type
Index2An integral range type
Parameters
lower_boundThe lower bound
upper_boundThe upper bound
Returns
a {const,mutable} view of the block defined by lower_bound and upper_bound
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen lower_bound[i] >= upper_bound[i]

Definition at line 433 of file tile.h.

Here is the call graph for this function:

◆ block() [3/8]

template<typename T >
template<typename PairRange , typename = std::enable_if_t<detail::is_gpair_range_v<PairRange>>>
decltype(auto) TiledArray::Tile< T >::block ( const PairRange &  bounds)
inline

Constructs a view of the block defined by its bounds .

Examples of using this:

std::vector<size_t> lobounds = {0, 1, 2};
std::vector<size_t> upbounds = {4, 6, 8};
// using vector of pairs
std::vector<std::pair<size_t,size_t>> vpbounds{{0,4}, {1,6}, {2,8}};
auto tview0 = t.block(vpbounds);
// using vector of tuples
std::vector<std::tuple<size_t,size_t>> vtbounds{{0,4}, {1,6}, {2,8}};
auto tview1 = t.block(vtbounds);
assert(tview0 == tview1);
// using zipped ranges of bounds (using Boost.Range)
// need to #include <boost/range/combine.hpp>
auto tview2 = t.block(boost::combine(lobounds, upbounds));
assert(tview0 == tview2);
// using zipped ranges of bounds (using Ranges-V3)
// need to #include <range/v3/view/zip.hpp>
auto tview3 = t.block(ranges::views::zip(lobounds, upbounds));
assert(tview0 == tview3);
Template Parameters
PairRangeType representing a range of generalized pairs (see TiledArray::detail::is_gpair_v )
Parameters
boundsThe block bounds
Returns
a {const,mutable} view of the block defined by its bounds
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen get<0>(bounds[i]) >= get<1>(bounds[i])

Definition at line 520 of file tile.h.

Here is the call graph for this function:

◆ block() [4/8]

template<typename T >
template<typename PairRange , typename = std::enable_if_t<detail::is_gpair_range_v<PairRange>>>
decltype(auto) TiledArray::Tile< T >::block ( const PairRange &  bounds) const
inline

Constructs a view of the block defined by its bounds .

Examples of using this:

std::vector<size_t> lobounds = {0, 1, 2};
std::vector<size_t> upbounds = {4, 6, 8};
// using vector of pairs
std::vector<std::pair<size_t,size_t>> vpbounds{{0,4}, {1,6}, {2,8}};
auto tview0 = t.block(vpbounds);
// using vector of tuples
std::vector<std::tuple<size_t,size_t>> vtbounds{{0,4}, {1,6}, {2,8}};
auto tview1 = t.block(vtbounds);
assert(tview0 == tview1);
// using zipped ranges of bounds (using Boost.Range)
// need to #include <boost/range/combine.hpp>
auto tview2 = t.block(boost::combine(lobounds, upbounds));
assert(tview0 == tview2);
// using zipped ranges of bounds (using Ranges-V3)
// need to #include <range/v3/view/zip.hpp>
auto tview3 = t.block(ranges::views::zip(lobounds, upbounds));
assert(tview0 == tview3);
Template Parameters
PairRangeType representing a range of generalized pairs (see TiledArray::detail::is_gpair_v )
Parameters
boundsThe block bounds
Returns
a {const,mutable} view of the block defined by its bounds
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen get<0>(bounds[i]) >= get<1>(bounds[i])

Definition at line 528 of file tile.h.

Here is the call graph for this function:

◆ block() [5/8]

template<typename T >
template<typename Index1 , typename Index2 , typename = std::enable_if_t<std::is_integral_v<Index1> && std::is_integral_v<Index2>>>
decltype(auto) TiledArray::Tile< T >::block ( const std::initializer_list< Index1 > &  lower_bound,
const std::initializer_list< Index2 > &  upper_bound 
)
inline

Constructs a view of the block defined by lower_bound and upper_bound.

Examples of using this:

auto tview = t.block({0, 1, 2}, {4, 6, 8});
assert(tview.range().includes(lobounds));
assert(tview(lobounds) == t(lobounds));
Template Parameters
Index1An integral type
Index2An integral type
Parameters
lower_boundThe lower bound
upper_boundThe upper bound
Returns
a {const,mutable} view of the block defined by lower_bound and upper_bound
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen lower_bound[i] >= upper_bound[i]

Definition at line 464 of file tile.h.

Here is the call graph for this function:

◆ block() [6/8]

template<typename T >
template<typename Index1 , typename Index2 , typename = std::enable_if_t<std::is_integral_v<Index1> && std::is_integral_v<Index2>>>
decltype(auto) TiledArray::Tile< T >::block ( const std::initializer_list< Index1 > &  lower_bound,
const std::initializer_list< Index2 > &  upper_bound 
) const
inline

Constructs a view of the block defined by lower_bound and upper_bound.

Examples of using this:

auto tview = t.block({0, 1, 2}, {4, 6, 8});
assert(tview.range().includes(lobounds));
assert(tview(lobounds) == t(lobounds));
Template Parameters
Index1An integral type
Index2An integral type
Parameters
lower_boundThe lower bound
upper_boundThe upper bound
Returns
a {const,mutable} view of the block defined by lower_bound and upper_bound
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen lower_bound[i] >= upper_bound[i]

Definition at line 475 of file tile.h.

Here is the call graph for this function:

◆ block() [7/8]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
decltype(auto) TiledArray::Tile< T >::block ( const std::initializer_list< std::initializer_list< Index >> &  bounds)
inline

Constructs a view of the block defined by its bounds .

Examples of using this:

auto tview0 = t.block({{0,4}, {1,6}, {2,8}});
Template Parameters
IndexAn integral type
Parameters
boundsThe block bounds
Returns
a {const,mutable} view of the block defined by its bounds
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen get<0>(bounds[i]) >= get<1>(bounds[i])

Definition at line 552 of file tile.h.

Here is the call graph for this function:

◆ block() [8/8]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
decltype(auto) TiledArray::Tile< T >::block ( const std::initializer_list< std::initializer_list< Index >> &  bounds) const
inline

Constructs a view of the block defined by its bounds .

Examples of using this:

auto tview0 = t.block({{0,4}, {1,6}, {2,8}});
Template Parameters
IndexAn integral type
Parameters
boundsThe block bounds
Returns
a {const,mutable} view of the block defined by its bounds
Exceptions
TiledArray::ExceptionWhen the size of lower_bound is not equal to that of upper_bound.
TiledArray::ExceptionWhen get<0>(bounds[i]) >= get<1>(bounds[i])

Definition at line 561 of file tile.h.

Here is the call graph for this function:

◆ data() [1/2]

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

Data direct access.

Returns
A pointer to the tensor data

Definition at line 196 of file tile.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ data() [2/2]

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

Data direct access.

Returns
A const pointer to the tensor data

Definition at line 201 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 161 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 184 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 189 of file tile.h.

Here is the call graph for this function:

◆ operator()() [1/6]

template<typename T >
template<typename... Index, std::enable_if_t< detail::is_integral_list< Index... >::value > * = nullptr>
reference TiledArray::Tile< T >::operator() ( const Index &...  i)
inline

Element accessor.

Template Parameters
Indexan integral list ( see TiledArray::detail::is_integral_list )
Parameters
[in]ian index
Returns
Reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 391 of file tile.h.

Here is the call graph for this function:

◆ operator()() [2/6]

template<typename T >
template<typename... Index, std::enable_if_t< detail::is_integral_list< Index... >::value > * = nullptr>
const_reference TiledArray::Tile< T >::operator() ( const Index &...  i) const
inline

Const element accessor.

Template Parameters
Indexan integral list ( see TiledArray::detail::is_integral_list )
Parameters
[in]ian index
Returns
Const reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 376 of file tile.h.

Here is the call graph for this function:

◆ operator()() [3/6]

template<typename T >
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
reference TiledArray::Tile< T >::operator() ( const Index &  i)
inline

Element accessor.

Template Parameters
IndexAn integral range type
Parameters
[in]ian index
Returns
Reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 331 of file tile.h.

Here is the call graph for this function:

◆ operator()() [4/6]

template<typename T >
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
const_reference TiledArray::Tile< T >::operator() ( const Index &  i) const
inline

Const element accessor.

Template Parameters
IndexAn integral range type
Parameters
[in]ian index
Returns
Const reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 316 of file tile.h.

Here is the call graph for this function:

◆ operator()() [5/6]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
reference TiledArray::Tile< T >::operator() ( const std::initializer_list< Index > &  i)
inline

Element accessor.

Template Parameters
IndexAn integral type
Parameters
[in]ian index
Returns
Reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 361 of file tile.h.

Here is the call graph for this function:

◆ operator()() [6/6]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
const_reference TiledArray::Tile< T >::operator() ( const std::initializer_list< Index > &  i) const
inline

Const element accessor.

Template Parameters
IndexAn integral type
Parameters
[in]ian index
Returns
Const reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 346 of file tile.h.

Here is the call graph for this function:

◆ operator=() [1/4]

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

Definition at line 149 of file tile.h.

Here is the call graph for this function:

◆ 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= ( tensor_type &&  tensor)
inline

Definition at line 154 of file tile.h.

Here is the call graph for this function:

◆ operator=() [4/4]

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

◆ operator[]() [1/6]

template<typename T >
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
reference TiledArray::Tile< T >::operator[] ( const Index &  i)
inline

Element accessor.

Template Parameters
IndexAn integral range type
Parameters
[in]ian index
Returns
Reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 271 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [2/6]

template<typename T >
template<typename Index , std::enable_if_t< detail::is_integral_range_v< Index >> * = nullptr>
const_reference TiledArray::Tile< T >::operator[] ( const Index &  i) const
inline

Const element accessor.

Template Parameters
IndexAn integral range type
Parameters
[in]ian index
Returns
Const reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 256 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [3/6]

template<typename T >
template<typename Ordinal , std::enable_if_t< std::is_integral< Ordinal >::value > * = nullptr>
reference TiledArray::Tile< T >::operator[] ( const Ordinal  ord)
inline

Element accessor.

Template Parameters
Ordinalan integer type that represents an ordinal
Parameters
[in]ordan ordinal index
Returns
Reference to the element at position ord .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 241 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [4/6]

template<typename T >
template<typename Ordinal , std::enable_if_t< std::is_integral< Ordinal >::value > * = nullptr>
const_reference TiledArray::Tile< T >::operator[] ( const Ordinal  ord) const
inline

Const element accessor.

Template Parameters
Ordinalan integer type that represents an ordinal
Parameters
[in]ordan ordinal index
Returns
Const reference to the element at position ord .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 226 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [5/6]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
reference TiledArray::Tile< T >::operator[] ( const std::initializer_list< Index > &  i)
inline

Element accessor.

Template Parameters
IndexAn integral type
Parameters
[in]ian index
Returns
Reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 301 of file tile.h.

Here is the call graph for this function:

◆ operator[]() [6/6]

template<typename T >
template<typename Index , typename = std::enable_if_t<std::is_integral_v<Index>>>
const_reference TiledArray::Tile< T >::operator[] ( const std::initializer_list< Index > &  i) const
inline

Const element accessor.

Template Parameters
IndexAn integral type
Parameters
[in]ian index
Returns
Const reference to the element at position i .
Note
This asserts (using TA_ASSERT) that this is not empty and ord is included in the range

Definition at line 286 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 213 of file tile.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ serialize() [1/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 587 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_output_archive< Archive >::value >::type * = nullptr>
void TiledArray::Tile< T >::serialize ( Archive &  ar) const
inline

Definition at line 574 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 208 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 165 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 167 of file tile.h.


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