TiledArray  0.7.0
TiledArray::expressions::ScalEngine< Arg, Scalar, Result > Class Template Reference

Scaling expression engine. More...

#include <scal_engine.h>

Inheritance diagram for TiledArray::expressions::ScalEngine< Arg, Scalar, Result >:
Collaboration diagram for TiledArray::expressions::ScalEngine< Arg, Scalar, Result >:

Public Types

typedef ScalEngine< Arg, Scalar, Result > ScalEngine_
 This class type. More...
 
typedef UnaryEngine< ScalEngine_UnaryEngine_
 Unary expression engine base type. More...
 
typedef UnaryEngine_::ExprEngine_ ExprEngine_
 Expression engine base type. More...
 
typedef EngineTrait< ScalEngine_ >::argument_type argument_type
 The argument expression engine type. More...
 
typedef EngineTrait< ScalEngine_ >::value_type value_type
 The result tile type. More...
 
typedef EngineTrait< ScalEngine_ >::scalar_type scalar_type
 Tile scalar type. More...
 
typedef EngineTrait< ScalEngine_ >::op_type op_type
 The tile operation type. More...
 
typedef EngineTrait< ScalEngine_ >::policy policy
 The result policy type. More...
 
typedef EngineTrait< ScalEngine_ >::dist_eval_type dist_eval_type
 The distributed evaluator type. More...
 
typedef EngineTrait< ScalEngine_ >::size_type size_type
 Size type. More...
 
typedef EngineTrait< ScalEngine_ >::trange_type trange_type
 Tiled range type. More...
 
typedef EngineTrait< ScalEngine_ >::shape_type shape_type
 Shape type. More...
 
typedef EngineTrait< ScalEngine_ >::pmap_interface pmap_interface
 Process map interface type. More...
 
- Public Types inherited from TiledArray::expressions::UnaryEngine< ScalEngine< Arg, Scalar, Result > >
typedef UnaryEngine< ScalEngine< Arg, Scalar, Result > > UnaryEngine_
 This class type. More...
 
typedef ExprEngine< ScalEngine< Arg, Scalar, Result > > ExprEngine_
 Base class type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::argument_type argument_type
 The argument expression engine type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::value_type value_type
 The result tile type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::op_type op_type
 The tile operation type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::policy policy
 The result policy type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::dist_eval_type dist_eval_type
 The distributed evaluator type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::size_type size_type
 Size type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::trange_type trange_type
 Tiled range type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::shape_type shape_type
 Shape type. More...
 
typedef EngineTrait< ScalEngine< Arg, Scalar, Result > >::pmap_interface pmap_interface
 Process map interface type. More...
 

Public Member Functions

template<typename A , typename S >
 ScalEngine (const ScalExpr< A, S > &expr)
 Constructor. More...
 
shape_type make_shape () const
 Non-permuting shape factory function. More...
 
shape_type make_shape (const Permutation &perm) const
 Permuting shape factory function. More...
 
op_type make_tile_op () const
 Non-permuting tile operation factory function. More...
 
op_type make_tile_op (const Permutation &perm) const
 Permuting tile operation factory function. More...
 
std::string make_tag () const
 Expression identification tag. More...
 
- Public Member Functions inherited from TiledArray::expressions::UnaryEngine< ScalEngine< Arg, Scalar, Result > >
 UnaryEngine (const UnaryExpr< 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...
 
derived_typederived ()
 Cast this object to it's derived type. More...
 
const derived_typederived () const
 Cast this object to it's derived type. More...
 
const VariableListvars () const
 Variable list accessor. More...
 

Additional Inherited Members

- Static Public Attributes inherited from TiledArray::expressions::UnaryEngine< ScalEngine< Arg, Scalar, Result > >
static constexpr bool consumable
 
static constexpr unsigned int leaves
 
- Protected Attributes inherited from TiledArray::expressions::UnaryEngine< ScalEngine< Arg, Scalar, Result > >
argument_type arg_
 The 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...
 

Detailed Description

template<typename Arg, typename Scalar, typename Result>
class TiledArray::expressions::ScalEngine< Arg, Scalar, Result >

Scaling expression engine.

Template Parameters
ArgThe argument expression engine type

Definition at line 38 of file scal_engine.h.

Member Typedef Documentation

◆ argument_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::argument_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::argument_type

The argument expression engine type.

Definition at line 87 of file scal_engine.h.

◆ dist_eval_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::dist_eval_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::dist_eval_type

The distributed evaluator type.

Definition at line 94 of file scal_engine.h.

◆ ExprEngine_

template<typename Arg , typename Scalar , typename Result >
typedef UnaryEngine_::ExprEngine_ TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::ExprEngine_

Expression engine base type.

Definition at line 84 of file scal_engine.h.

◆ op_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::op_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::op_type

The tile operation type.

Definition at line 92 of file scal_engine.h.

◆ pmap_interface

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::pmap_interface TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::pmap_interface

Process map interface type.

Definition at line 100 of file scal_engine.h.

◆ policy

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::policy TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::policy

The result policy type.

Definition at line 93 of file scal_engine.h.

◆ scalar_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::scalar_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::scalar_type

Tile scalar type.

Definition at line 91 of file scal_engine.h.

◆ ScalEngine_

template<typename Arg , typename Scalar , typename Result >
typedef ScalEngine<Arg, Scalar, Result> TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::ScalEngine_

This class type.

Definition at line 82 of file scal_engine.h.

◆ shape_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::shape_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::shape_type

Shape type.

Definition at line 99 of file scal_engine.h.

◆ size_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::size_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::size_type

Size type.

Definition at line 97 of file scal_engine.h.

◆ trange_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::trange_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::trange_type

Tiled range type.

Definition at line 98 of file scal_engine.h.

◆ UnaryEngine_

template<typename Arg , typename Scalar , typename Result >
typedef UnaryEngine<ScalEngine_> TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::UnaryEngine_

Unary expression engine base type.

Definition at line 83 of file scal_engine.h.

◆ value_type

template<typename Arg , typename Scalar , typename Result >
typedef EngineTrait<ScalEngine_>::value_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::value_type

The result tile type.

Definition at line 90 of file scal_engine.h.

Constructor & Destructor Documentation

◆ ScalEngine()

template<typename Arg , typename Scalar , typename Result >
template<typename A , typename S >
TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::ScalEngine ( const ScalExpr< A, S > &  expr)
inline

Constructor.

Template Parameters
AThe argument expression type
SThe expression scalar type
Parameters
exprThe parent expression

Definition at line 114 of file scal_engine.h.

Member Function Documentation

◆ make_shape() [1/2]

template<typename Arg , typename Scalar , typename Result >
shape_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::make_shape ( ) const
inline

Non-permuting shape factory function.

Returns
The result shape

Definition at line 119 of file scal_engine.h.

◆ make_shape() [2/2]

template<typename Arg , typename Scalar , typename Result >
shape_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::make_shape ( const Permutation perm) const
inline

Permuting shape factory function.

Parameters
permThe permutation to be applied to the array
Returns
The result shape

Definition at line 127 of file scal_engine.h.

Here is the call graph for this function:

◆ make_tag()

template<typename Arg , typename Scalar , typename Result >
std::string TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::make_tag ( ) const
inline

Expression identification tag.

Returns
An expression tag used to identify this expression

Definition at line 145 of file scal_engine.h.

◆ make_tile_op() [1/2]

template<typename Arg , typename Scalar , typename Result >
op_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::make_tile_op ( ) const
inline

Non-permuting tile operation factory function.

Returns
The tile operation

Definition at line 134 of file scal_engine.h.

◆ make_tile_op() [2/2]

template<typename Arg , typename Scalar , typename Result >
op_type TiledArray::expressions::ScalEngine< Arg, Scalar, Result >::make_tile_op ( const Permutation perm) const
inline

Permuting tile operation factory function.

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

Definition at line 140 of file scal_engine.h.

Here is the call graph for this function:

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