TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy > Class Template Reference
Inheritance diagram for TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >:
Collaboration diagram for TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >:

Documentation

template<typename Arg, typename Op, typename Policy>
class TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >

Tensor that is composed from an argument tensor.

The tensor elements are constructed using a unary transformation operation.

Template Parameters
ArgThe input distributed evaluator argument type
OpThe tile operation to be applied to the input tiles
PolicyThe evaluator policy type

Definition at line 38 of file unary_eval.h.

Public Types

typedef UnaryEvalImpl< Arg, Op, Policy > UnaryEvalImpl_
 This object type. More...
 
typedef DistEvalImpl< typename Op::result_type, Policy > DistEvalImpl_
 The base class type. More...
 
typedef DistEvalImpl_::TensorImpl_ TensorImpl_
 The base, base class type. More...
 
typedef Arg arg_type
 The argument tensor type. More...
 
typedef DistEvalImpl_::ordinal_type ordinal_type
 Ordinal type. More...
 
typedef DistEvalImpl_::range_type range_type
 Range type. More...
 
typedef DistEvalImpl_::shape_type shape_type
 Shape type. More...
 
typedef DistEvalImpl_::pmap_interface pmap_interface
 Process map interface type. More...
 
typedef DistEvalImpl_::trange_type trange_type
 Tiled range type. More...
 
typedef DistEvalImpl_::value_type value_type
 Tile type. More...
 
typedef DistEvalImpl_::eval_type eval_type
 Tile evaluation type. More...
 
typedef Op op_type
 Tile evaluation operator type. More...
 
- Public Types inherited from TiledArray::detail::DistEvalImpl< Op::result_type, Policy >
typedef DistEvalImpl< Op::result_type, Policy > DistEvalImpl_
 This object type. More...
 
typedef TiledArray::detail::TensorImpl< Policy > TensorImpl_
 Tensor implementation base class. More...
 
typedef TensorImpl_::ordinal_type ordinal_type
 Ordinal type. More...
 
typedef TensorImpl_::trange_type trange_type
 Tiled range type for this object. More...
 
typedef TensorImpl_::range_type range_type
 Range type this tensor. More...
 
typedef TensorImpl_::shape_type shape_type
 Shape type. More...
 
typedef TensorImpl_::pmap_interface pmap_interface
 process map interface type More...
 
typedef Op::result_type value_type
 Tile type. More...
 
typedef eval_trait< value_type >::type eval_type
 Tile evaluation type. More...
 
- Public Types inherited from TiledArray::detail::TensorImpl< Policy >
typedef TensorImpl< Policy > TensorImpl_
 
typedef Policy policy_type
 Policy type. More...
 
typedef Policy::trange_type trange_type
 Tiled range type. More...
 
typedef Policy::range_type range_type
 Element/tile range type. More...
 
typedef Policy::index1_type index1_type
 1-index type More...
 
typedef Policy::ordinal_type ordinal_type
 Ordinal type. More...
 
typedef Policy::shape_type shape_type
 Tensor shape type. More...
 
typedef Policy::pmap_interface pmap_interface
 Process map interface type. More...
 

Public Member Functions

template<typename Perm , typename = std::enable_if_t< TiledArray::detail::is_permutation_v<Perm>>>
 UnaryEvalImpl (const arg_type &arg, World &world, const trange_type &trange, const shape_type &shape, const std::shared_ptr< pmap_interface > &pmap, const Perm &perm, const op_type &op)
 Constructor. More...
 
virtual ~UnaryEvalImpl ()
 Virtual destructor. More...
 
virtual Future< value_typeget_tile (ordinal_type i) const
 Get tile at index i. More...
 
virtual void discard_tile (ordinal_type i) const
 Discard a tile that is not needed. More...
 
- Public Member Functions inherited from TiledArray::detail::DistEvalImpl< Op::result_type, Policy >
 DistEvalImpl (World &world, const trange_type &trange, const shape_type &shape, const std::shared_ptr< pmap_interface > &pmap, const Permutation &perm)
 Constructor. More...
 
virtual ~DistEvalImpl ()
 
const madness::uniqueidT & id () const
 Unique object id accessor. More...
 
void set_tile (ordinal_type i, const value_type &value)
 Set tensor value. More...
 
void set_tile (ordinal_type i, Future< value_type > f)
 Set tensor value with a future. More...
 
virtual void notify ()
 Tile set notification. More...
 
void wait () const
 Wait for all tiles to be assigned. More...
 
void eval ()
 Evaluate this tensor expression object. More...
 
- Public Member Functions inherited from TiledArray::detail::TensorImpl< Policy >
 TensorImpl (World &world, const trange_type &trange, const shape_type &shape, const std::shared_ptr< pmap_interface > &pmap)
 Constructor. More...
 
virtual ~TensorImpl ()
 Virtual destructor. More...
 
const std::shared_ptr< pmap_interface > & pmap () const
 Tensor process map accessor. More...
 
const range_typetiles_range () const
 Tiles range accessor. More...
 
ordinal_type size () const
 Tensor tile volume accessor. More...
 
ordinal_type local_size () const
 Local element count. More...
 
template<typename Index >
ProcessID owner (const Index &i) const
 Query a tile owner. More...
 
template<typename Index >
bool is_local (const Index &i) const
 Query for a locally owned tile. More...
 
template<typename Index >
bool is_zero (const Index &i) const
 Query for a zero tile. More...
 
bool is_dense () const
 Query the density of the tensor. More...
 
const shape_typeshape () const
 Tensor shape accessor. More...
 
const trange_typetrange () const
 Tiled range accessor. More...
 
World & get_world () const
 
World & world () const
 World accessor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from TiledArray::detail::DistEvalImpl< Op::result_type, Policy >
ordinal_type perm_index_to_target (ordinal_type index) const
 Permute index from a source index to a target index. More...
 
ordinal_type perm_index_to_source (ordinal_type index) const
 Permute index from a target index to a source index. More...
 

Member Typedef Documentation

◆ arg_type

template<typename Arg , typename Op , typename Policy >
typedef Arg TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::arg_type

The argument tensor type.

Definition at line 47 of file unary_eval.h.

◆ DistEvalImpl_

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl<typename Op::result_type, Policy> TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::DistEvalImpl_

The base class type.

Definition at line 44 of file unary_eval.h.

◆ eval_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::eval_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::eval_type

Tile evaluation type.

Definition at line 57 of file unary_eval.h.

◆ op_type

template<typename Arg , typename Op , typename Policy >
typedef Op TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::op_type

Tile evaluation operator type.

Definition at line 58 of file unary_eval.h.

◆ ordinal_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::ordinal_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::ordinal_type

Ordinal type.

Definition at line 48 of file unary_eval.h.

◆ pmap_interface

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::pmap_interface TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::pmap_interface

Process map interface type.

Definition at line 52 of file unary_eval.h.

◆ range_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::range_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::range_type

Range type.

Definition at line 49 of file unary_eval.h.

◆ shape_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::shape_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::shape_type

Shape type.

Definition at line 50 of file unary_eval.h.

◆ TensorImpl_

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::TensorImpl_ TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::TensorImpl_

The base, base class type.

Definition at line 46 of file unary_eval.h.

◆ trange_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::trange_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::trange_type

Tiled range type.

Definition at line 54 of file unary_eval.h.

◆ UnaryEvalImpl_

template<typename Arg , typename Op , typename Policy >
typedef UnaryEvalImpl<Arg, Op, Policy> TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::UnaryEvalImpl_

This object type.

Definition at line 42 of file unary_eval.h.

◆ value_type

template<typename Arg , typename Op , typename Policy >
typedef DistEvalImpl_::value_type TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::value_type

Tile type.

Definition at line 55 of file unary_eval.h.

Constructor & Destructor Documentation

◆ UnaryEvalImpl()

template<typename Arg , typename Op , typename Policy >
template<typename Perm , typename = std::enable_if_t< TiledArray::detail::is_permutation_v<Perm>>>
TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::UnaryEvalImpl ( const arg_type arg,
World &  world,
const trange_type trange,
const shape_type shape,
const std::shared_ptr< pmap_interface > &  pmap,
const Perm &  perm,
const op_type op 
)
inline

Constructor.

Parameters
argThe argument
worldThe world where the tensor lives
trangeThe tiled range object
shapeThe tensor shape object
pmapThe tile-process map
permThe permutation that is applied to tile indices
opThe tile transform operation

Definition at line 71 of file unary_eval.h.

◆ ~UnaryEvalImpl()

template<typename Arg , typename Op , typename Policy >
virtual TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::~UnaryEvalImpl ( )
inlinevirtual

Virtual destructor.

Definition at line 80 of file unary_eval.h.

Member Function Documentation

◆ discard_tile()

template<typename Arg , typename Op , typename Policy >
virtual void TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::discard_tile ( ordinal_type  i) const
inlinevirtual

Discard a tile that is not needed.

This function handles the cleanup for tiles that are not needed in subsequent computation.

Parameters
iThe index of the tile

Implements TiledArray::detail::DistEvalImpl< Op::result_type, Policy >.

Definition at line 101 of file unary_eval.h.

Here is the call graph for this function:

◆ get_tile()

template<typename Arg , typename Op , typename Policy >
virtual Future<value_type> TiledArray::detail::UnaryEvalImpl< Arg, Op, Policy >::get_tile ( ordinal_type  i) const
inlinevirtual

Get tile at index i.

Parameters
iThe index of the tile
Returns
A Future to the tile at index i
Exceptions
TiledArray::ExceptionWhen tile i is owned by a remote node.
TiledArray::ExceptionWhen tile i a zero tile.

Implements TiledArray::detail::DistEvalImpl< Op::result_type, Policy >.

Definition at line 88 of file unary_eval.h.

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

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