TiledArray  0.7.0
TiledArray::expressions::BinaryEngine< Derived > Class Template Reference

#include <binary_engine.h>

Inheritance diagram for TiledArray::expressions::BinaryEngine< Derived >:
Collaboration diagram for TiledArray::expressions::BinaryEngine< Derived >:

Public Types

typedef BinaryEngine< Derived > BinaryEngine_
 This class type. More...
 
typedef ExprEngine< Derived > ExprEngine_
 Base class type. More...
 
typedef EngineTrait< Derived >::left_type left_type
 The left-hand expression type. More...
 
typedef EngineTrait< Derived >::right_type right_type
 The right-hand expression type. More...
 
typedef EngineTrait< Derived >::value_type value_type
 The result tile type. More...
 
typedef EngineTrait< Derived >::op_type op_type
 The tile operation type. More...
 
typedef EngineTrait< Derived >::policy policy
 The result policy type. More...
 
typedef EngineTrait< Derived >::dist_eval_type dist_eval_type
 The distributed evaluator type. More...
 
typedef EngineTrait< Derived >::size_type size_type
 Size type. More...
 
typedef EngineTrait< Derived >::trange_type trange_type
 Tiled range type. More...
 
typedef EngineTrait< Derived >::shape_type shape_type
 Shape type. More...
 
typedef EngineTrait< Derived >::pmap_interface pmap_interface
 Process map interface type. More...
 
- Public Types inherited from TiledArray::expressions::ExprEngine< Derived >
typedef ExprEngine< Derived > ExprEngine_
 
typedef Derived derived_type
 The derived object type. More...
 
typedef EngineTrait< Derived >::value_type value_type
 Tensor value type. More...
 
typedef EngineTrait< Derived >::op_type op_type
 Tile operation type. More...
 
typedef EngineTrait< Derived >::policy policy
 The result policy type. More...
 
typedef EngineTrait< Derived >::dist_eval_type dist_eval_type
 This expression's distributed evaluator type. More...
 
typedef EngineTrait< Derived >::size_type size_type
 Size type. More...
 
typedef EngineTrait< Derived >::trange_type trange_type
 Tiled range type type. More...
 
typedef EngineTrait< Derived >::shape_type shape_type
 Tensor shape type. More...
 
typedef EngineTrait< Derived >::pmap_interface pmap_interface
 Process map interface type. More...
 

Public Member Functions

template<typename D >
 BinaryEngine (const BinaryExpr< D > &expr)
 
void perm_vars (const VariableList &target_vars)
 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_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...
 
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...
 
dist_eval_type make_dist_eval () const
 Construct the distributed evaluator for this expression. More...
 
void print (ExprOStream os, const VariableList &target_vars) const
 Expression print. More...
 
- Public Member Functions inherited from TiledArray::expressions::ExprEngine< Derived >
template<typename D >
 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 Attributes

static constexpr bool consumable = EngineTrait<Derived>::consumable
 
static constexpr unsigned int leaves = EngineTrait<Derived>::leaves
 

Protected Attributes

left_type left_
 The left-hand argument. More...
 
right_type right_
 The right-hand argument. 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< Derived >
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< Derived > > override_ptr_
 The engine params overriding the default. More...
 

Detailed Description

template<typename Derived>
class TiledArray::expressions::BinaryEngine< Derived >

Definition at line 37 of file binary_engine.h.

Member Typedef Documentation

◆ BinaryEngine_

template<typename Derived>
typedef BinaryEngine<Derived> TiledArray::expressions::BinaryEngine< Derived >::BinaryEngine_

This class type.

Definition at line 43 of file binary_engine.h.

◆ dist_eval_type

template<typename Derived>
typedef EngineTrait<Derived>::dist_eval_type TiledArray::expressions::BinaryEngine< Derived >::dist_eval_type

The distributed evaluator type.

Definition at line 54 of file binary_engine.h.

◆ ExprEngine_

template<typename Derived>
typedef ExprEngine<Derived> TiledArray::expressions::BinaryEngine< Derived >::ExprEngine_

Base class type.

Definition at line 44 of file binary_engine.h.

◆ left_type

template<typename Derived>
typedef EngineTrait<Derived>::left_type TiledArray::expressions::BinaryEngine< Derived >::left_type

The left-hand expression type.

Definition at line 47 of file binary_engine.h.

◆ op_type

template<typename Derived>
typedef EngineTrait<Derived>::op_type TiledArray::expressions::BinaryEngine< Derived >::op_type

The tile operation type.

Definition at line 52 of file binary_engine.h.

◆ pmap_interface

template<typename Derived>
typedef EngineTrait<Derived>::pmap_interface TiledArray::expressions::BinaryEngine< Derived >::pmap_interface

Process map interface type.

Definition at line 60 of file binary_engine.h.

◆ policy

template<typename Derived>
typedef EngineTrait<Derived>::policy TiledArray::expressions::BinaryEngine< Derived >::policy

The result policy type.

Definition at line 53 of file binary_engine.h.

◆ right_type

template<typename Derived>
typedef EngineTrait<Derived>::right_type TiledArray::expressions::BinaryEngine< Derived >::right_type

The right-hand expression type.

Definition at line 48 of file binary_engine.h.

◆ shape_type

template<typename Derived>
typedef EngineTrait<Derived>::shape_type TiledArray::expressions::BinaryEngine< Derived >::shape_type

Shape type.

Definition at line 59 of file binary_engine.h.

◆ size_type

template<typename Derived>
typedef EngineTrait<Derived>::size_type TiledArray::expressions::BinaryEngine< Derived >::size_type

Size type.

Definition at line 57 of file binary_engine.h.

◆ trange_type

template<typename Derived>
typedef EngineTrait<Derived>::trange_type TiledArray::expressions::BinaryEngine< Derived >::trange_type

Tiled range type.

Definition at line 58 of file binary_engine.h.

◆ value_type

template<typename Derived>
typedef EngineTrait<Derived>::value_type TiledArray::expressions::BinaryEngine< Derived >::value_type

The result tile type.

Definition at line 51 of file binary_engine.h.

Constructor & Destructor Documentation

◆ BinaryEngine()

template<typename Derived>
template<typename D >
TiledArray::expressions::BinaryEngine< Derived >::BinaryEngine ( const BinaryExpr< D > &  expr)
inline

Definition at line 83 of file binary_engine.h.

Member Function Documentation

◆ init_distribution()

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::init_distribution ( World *  world,
const std::shared_ptr< pmap_interface > &  pmap 
)
inline

Initialize result tensor distribution.

This function will initialize the world and process map for the result tensor.

Parameters
worldThe world were the result will be distributed
pmapThe process map for the result tensor tiles

Definition at line 178 of file binary_engine.h.

Here is the caller graph for this function:

◆ init_struct()

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::init_struct ( const VariableList target_vars)
inline

Initialize result tensor structure.

This function will initialize the permutation, tiled range, and shape for the left-hand, right-hand, and result tensor.

Parameters
target_varsThe target variable list for the result tensor

Definition at line 152 of file binary_engine.h.

Here is the caller graph for this function:

◆ init_vars() [1/2]

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::init_vars ( const VariableList target_vars)
inline

Initialize the variable list of this expression.

Parameters
target_varsThe target variable list for this expression

Definition at line 127 of file binary_engine.h.

◆ init_vars() [2/2]

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::init_vars ( )
inline

Initialize the variable list of this expression.

Definition at line 135 of file binary_engine.h.

◆ make_dist_eval()

template<typename Derived>
dist_eval_type TiledArray::expressions::BinaryEngine< Derived >::make_dist_eval ( ) const
inline

Construct the distributed evaluator for this expression.

Returns
The distributed evaluator that will evaluate this expression

Definition at line 202 of file binary_engine.h.

Here is the caller graph for this function:

◆ make_trange() [1/2]

template<typename Derived>
trange_type TiledArray::expressions::BinaryEngine< Derived >::make_trange ( ) const
inline

Non-permuting tiled range factory function.

Returns
The result tiled range

Definition at line 189 of file binary_engine.h.

Here is the caller graph for this function:

◆ make_trange() [2/2]

template<typename Derived>
trange_type TiledArray::expressions::BinaryEngine< Derived >::make_trange ( const Permutation perm) const
inline

Permuting tiled range factory function.

Parameters
permThe permutation to be applied to the tiled range
Returns
The result shape

Definition at line 195 of file binary_engine.h.

◆ perm_vars()

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::perm_vars ( const VariableList target_vars)
inline

Set the variable list for this expression.

This function will set the variable list for this expression and its children such that the number of permutations is minimized. The final variable list may not be set to target, which indicates that the result of this expression will be permuted to match target_vars.

Parameters
target_varsThe target variable list for this expression

Definition at line 94 of file binary_engine.h.

Here is the caller graph for this function:

◆ print()

template<typename Derived>
void TiledArray::expressions::BinaryEngine< Derived >::print ( ExprOStream  os,
const VariableList target_vars 
) const
inline

Expression print.

Parameters
osThe output stream
target_varsThe target variable list for this expression

Definition at line 222 of file binary_engine.h.

Here is the caller graph for this function:

Member Data Documentation

◆ consumable

template<typename Derived>
constexpr bool TiledArray::expressions::BinaryEngine< Derived >::consumable = EngineTrait<Derived>::consumable
static

Definition at line 63 of file binary_engine.h.

◆ leaves

template<typename Derived>
constexpr unsigned int TiledArray::expressions::BinaryEngine< Derived >::leaves = EngineTrait<Derived>::leaves
static

Definition at line 64 of file binary_engine.h.

◆ left_

template<typename Derived>
left_type TiledArray::expressions::BinaryEngine< Derived >::left_
protected

The left-hand argument.

Definition at line 77 of file binary_engine.h.

◆ perm_

template<typename Derived>
Permutation TiledArray::expressions::ExprEngine< Derived >::perm_
protected

The permutation that will be applied to the result.

Definition at line 66 of file expr_engine.h.

◆ permute_tiles_

template<typename Derived>
bool TiledArray::expressions::ExprEngine< Derived >::permute_tiles_
protected

Result tile permutation flag (true == permute tile)

Definition at line 65 of file expr_engine.h.

◆ pmap_

template<typename Derived>
std::shared_ptr<pmap_interface> TiledArray::expressions::ExprEngine< Derived >::pmap_
protected

The process map for the result tensor.

Definition at line 69 of file expr_engine.h.

◆ right_

template<typename Derived>
right_type TiledArray::expressions::BinaryEngine< Derived >::right_
protected

The right-hand argument.

Definition at line 78 of file binary_engine.h.

◆ shape_

template<typename Derived>
shape_type TiledArray::expressions::ExprEngine< Derived >::shape_
protected

The shape of the result tensor.

Definition at line 68 of file expr_engine.h.

◆ trange_

template<typename Derived>
trange_type TiledArray::expressions::ExprEngine< Derived >::trange_
protected

The tiled range of the result tensor.

Definition at line 67 of file expr_engine.h.

◆ vars_

template<typename Derived>
VariableList TiledArray::expressions::ExprEngine< Derived >::vars_
protected

The variable list of this expression.

Definition at line 64 of file expr_engine.h.

◆ world_

template<typename Derived>
World* TiledArray::expressions::ExprEngine< Derived >::world_
protected

The world where this expression will be evaluated.

Definition at line 63 of file expr_engine.h.


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