TiledArray  0.7.0
TiledArray::expressions::TsrEngine< Array, Result, Alias > Class Template Reference

Tensor expression engine. More...

#include <tsr_engine.h>

Inheritance diagram for TiledArray::expressions::TsrEngine< Array, Result, Alias >:
Collaboration diagram for TiledArray::expressions::TsrEngine< Array, Result, Alias >:

Public Types

typedef TsrEngine< Array, Result, Alias > TsrEngine_
 This class type. More...
 
typedef LeafEngine< TsrEngine_LeafEngine_
 Leaf base class type. More...
 
typedef LeafEngine_::ExprEngine_ ExprEngine_
 Expression engine base class. More...
 
typedef EngineTrait< TsrEngine_ >::array_type array_type
 The left-hand expression type. More...
 
typedef EngineTrait< TsrEngine_ >::value_type value_type
 Tensor value type. More...
 
typedef EngineTrait< TsrEngine_ >::op_base_type op_base_type
 Tile base operation type. More...
 
typedef EngineTrait< TsrEngine_ >::op_type op_type
 Tile operation type. More...
 
typedef EngineTrait< TsrEngine_ >::policy policy
 The result policy type. More...
 
typedef EngineTrait< TsrEngine_ >::dist_eval_type dist_eval_type
 This expression's distributed evaluator type. More...
 
typedef EngineTrait< TsrEngine_ >::size_type size_type
 Size type. More...
 
typedef EngineTrait< TsrEngine_ >::trange_type trange_type
 Tiled range type type. More...
 
typedef EngineTrait< TsrEngine_ >::shape_type shape_type
 Tensor shape type. More...
 
typedef EngineTrait< TsrEngine_ >::pmap_interface pmap_interface
 Process map interface type. More...
 
- Public Types inherited from TiledArray::expressions::LeafEngine< TsrEngine< Array, Result, Alias > >
typedef LeafEngine< TsrEngine< Array, Result, Alias > > LeafEngine_
 This class type. More...
 
typedef ExprEngine< TsrEngine< Array, Result, Alias > > ExprEngine_
 Base class type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::array_type array_type
 The left-hand expression type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::value_type value_type
 Tensor value type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::op_type op_type
 Tile operation type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::policy policy
 The result policy type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::dist_eval_type dist_eval_type
 This expression's distributed evaluator type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::size_type size_type
 Size type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::trange_type trange_type
 Tiled range type type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::shape_type shape_type
 Tensor shape type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::pmap_interface pmap_interface
 Process map interface type. More...
 
- Public Types inherited from TiledArray::expressions::ExprEngine< TsrEngine< Array, Result, Alias > >
typedef ExprEngine< TsrEngine< Array, Result, Alias > > ExprEngine_
 
typedef TsrEngine< Array, Result, Alias > derived_type
 The derived object type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::value_type value_type
 Tensor value type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::op_type op_type
 Tile operation type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::policy policy
 The result policy type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::dist_eval_type dist_eval_type
 This expression's distributed evaluator type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::size_type size_type
 Size type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::trange_type trange_type
 Tiled range type type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::shape_type shape_type
 Tensor shape type. More...
 
typedef EngineTrait< TsrEngine< Array, Result, Alias > >::pmap_interface pmap_interface
 Process map interface type. More...
 

Public Member Functions

template<typename A >
 TsrEngine (const TsrExpr< A, Alias > &expr)
 
- Public Member Functions inherited from TiledArray::expressions::LeafEngine< TsrEngine< Array, Result, Alias > >
 LeafEngine (const Expr< D > &expr)
 Engine constructor. More...
 
void perm_vars (const VariableList &)
 Set the variable list for this expression. More...
 
void init_vars (const VariableList &target_vars)
 Initialize the variable list of this expression. More...
 
void init_vars ()
 Initialize the variable list of this expression. More...
 
void init_distribution (World *world, const std::shared_ptr< pmap_interface > &pmap)
 
trange_type make_trange () const
 Non-permuting tiled range factory function. More...
 
trange_type make_trange (const Permutation &perm) const
 Permuting tiled range factory function. More...
 
shape_type make_shape ()
 Non-permuting shape factory function. More...
 
shape_type make_shape (const Permutation &perm)
 Permuting shape factory function. More...
 
dist_eval_type make_dist_eval () const
 Construct the distributed evaluator for array. More...
 
derived_typederived ()
 Cast this object to it's derived type. More...
 
const derived_typederived () const
 Cast this object to it's derived type. More...
 
- Public Member Functions inherited from TiledArray::expressions::ExprEngine< TsrEngine< Array, Result, Alias > >
 ExprEngine (const Expr< D > &expr)
 Default constructor. More...
 
void init (World &world, std::shared_ptr< pmap_interface > pmap, const VariableList &target_vars)
 Construct and initialize the expression engine. More...
 
void init_struct (const VariableList &target_vars)
 Initialize result tensor structure. More...
 
void init_distribution (World *world, const std::shared_ptr< pmap_interface > &pmap)
 Initialize result tensor distribution. More...
 
Permutation make_perm (const VariableList &target_vars) const
 Permutation factory function. More...
 
op_type make_op () const
 Tile operation factory function. More...
 
derived_typederived ()
 Cast this object to it's derived type. More...
 
const derived_typederived () const
 Cast this object to it's derived type. More...
 
World * world () const
 World accessor. More...
 
const VariableListvars () const
 Variable list accessor. More...
 
const Permutationperm () const
 Permutation accessor. More...
 
const trange_typetrange () const
 Tiled range accessor. More...
 
const shape_typeshape () const
 Shape accessor. More...
 
const std::shared_ptr< pmap_interface > & pmap () const
 Process map accessor. More...
 
void permute_tiles (const bool status)
 Set the permute tiles flag. More...
 
void print (ExprOStream &os, const VariableList &target_vars) const
 Expression print. More...
 
const char * make_tag () const
 Expression identification tag. More...
 

Static Public Member Functions

static op_type make_tile_op ()
 Non-permuting tile operation factory function. More...
 
static op_type make_tile_op (const Permutation &perm)
 Permuting tile operation factory function. More...
 

Additional Inherited Members

- Static Public Attributes inherited from TiledArray::expressions::LeafEngine< TsrEngine< Array, Result, Alias > >
static constexpr bool consumable
 
static constexpr unsigned int leaves
 
- Protected Attributes inherited from TiledArray::expressions::LeafEngine< TsrEngine< Array, Result, Alias > >
array_type array_
 The array object. More...
 
World * world_
 The world where this expression will be evaluated. More...
 
VariableList vars_
 The variable list of this expression. More...
 
Permutation perm_
 The permutation that will be applied to the result. More...
 
trange_type trange_
 The tiled range of the result tensor. More...
 
shape_type shape_
 The shape of the result tensor. More...
 
std::shared_ptr< pmap_interfacepmap_
 The process map for the result tensor. More...
 
bool permute_tiles_
 Result tile permutation flag (true == permute tile) More...
 
- Protected Attributes inherited from TiledArray::expressions::ExprEngine< TsrEngine< Array, Result, Alias > >
World * world_
 The world where this expression will be evaluated. More...
 
VariableList vars_
 The variable list of this expression. More...
 
bool permute_tiles_
 Result tile permutation flag (true == permute tile) More...
 
Permutation perm_
 The permutation that will be applied to the result. More...
 
trange_type trange_
 The tiled range of the result tensor. More...
 
shape_type shape_
 The shape of the result tensor. More...
 
std::shared_ptr< pmap_interfacepmap_
 The process map for the result tensor. More...
 
std::shared_ptr< EngineParamOverride< TsrEngine< Array, Result, Alias > > > override_ptr_
 The engine params overriding the default. More...
 

Detailed Description

template<typename Array, typename Result, bool Alias>
class TiledArray::expressions::TsrEngine< Array, Result, Alias >

Tensor expression engine.

Template Parameters
ArrayThe DistArray type
AliasIndicates the array tiles should be computed as a temporary before assignment
ResultThe result tile type

Definition at line 42 of file tsr_engine.h.

Member Typedef Documentation

◆ array_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::array_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::array_type

The left-hand expression type.

Definition at line 94 of file tsr_engine.h.

◆ dist_eval_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::dist_eval_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::dist_eval_type

This expression's distributed evaluator type.

Definition at line 106 of file tsr_engine.h.

◆ ExprEngine_

template<typename Array , typename Result , bool Alias>
typedef LeafEngine_::ExprEngine_ TiledArray::expressions::TsrEngine< Array, Result, Alias >::ExprEngine_

Expression engine base class.

Definition at line 90 of file tsr_engine.h.

◆ LeafEngine_

template<typename Array , typename Result , bool Alias>
typedef LeafEngine<TsrEngine_> TiledArray::expressions::TsrEngine< Array, Result, Alias >::LeafEngine_

Leaf base class type.

Definition at line 88 of file tsr_engine.h.

◆ op_base_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::op_base_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::op_base_type

Tile base operation type.

Definition at line 100 of file tsr_engine.h.

◆ op_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::op_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::op_type

Tile operation type.

Definition at line 102 of file tsr_engine.h.

◆ pmap_interface

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::pmap_interface TiledArray::expressions::TsrEngine< Array, Result, Alias >::pmap_interface

Process map interface type.

Definition at line 116 of file tsr_engine.h.

◆ policy

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::policy TiledArray::expressions::TsrEngine< Array, Result, Alias >::policy

The result policy type.

Definition at line 104 of file tsr_engine.h.

◆ shape_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::shape_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::shape_type

Tensor shape type.

Definition at line 114 of file tsr_engine.h.

◆ size_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::size_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::size_type

Size type.

Definition at line 110 of file tsr_engine.h.

◆ trange_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::trange_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::trange_type

Tiled range type type.

Definition at line 112 of file tsr_engine.h.

◆ TsrEngine_

template<typename Array , typename Result , bool Alias>
typedef TsrEngine<Array, Result, Alias> TiledArray::expressions::TsrEngine< Array, Result, Alias >::TsrEngine_

This class type.

Definition at line 87 of file tsr_engine.h.

◆ value_type

template<typename Array , typename Result , bool Alias>
typedef EngineTrait<TsrEngine_>::value_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::value_type

Tensor value type.

Definition at line 98 of file tsr_engine.h.

Constructor & Destructor Documentation

◆ TsrEngine()

template<typename Array , typename Result , bool Alias>
template<typename A >
TiledArray::expressions::TsrEngine< Array, Result, Alias >::TsrEngine ( const TsrExpr< A, Alias > &  expr)
inline

Definition at line 119 of file tsr_engine.h.

Member Function Documentation

◆ make_tile_op() [1/2]

template<typename Array , typename Result , bool Alias>
static op_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::make_tile_op ( )
inlinestatic

Non-permuting tile operation factory function.

Returns
The tile operation

Definition at line 124 of file tsr_engine.h.

◆ make_tile_op() [2/2]

template<typename Array , typename Result , bool Alias>
static op_type TiledArray::expressions::TsrEngine< Array, Result, Alias >::make_tile_op ( const Permutation perm)
inlinestatic

Permuting tile operation factory function.

Parameters
permThe permutation to be applied to tiles
Returns
The tile operation

Definition at line 132 of file tsr_engine.h.

Here is the call graph for this function:

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