Documentation
template<typename Derived>
class TiledArray::expressions::ContEngine< Derived >
Multiplication expression engine.
- Template Parameters
-
Derived The derived engine type
Definition at line 50 of file cont_engine.h.
Public Types | |
typedef ContEngine< Derived > | ContEngine_ |
This class type. More... | |
typedef BinaryEngine< Derived > | BinaryEngine_ |
Binary base class type. More... | |
typedef ExprEngine< Derived > | ExprEngine_ |
Expression engine 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 >::scalar_type | scalar_type |
Tile scalar type. More... | |
typedef TiledArray::detail::ContractReduce< value_type, typename eval_trait< typename left_type::value_type >::type, typename eval_trait< typename right_type::value_type >::type, scalar_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::BinaryEngine< Derived > | |
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 Member Functions | |
template<typename L , typename R > | |
ContEngine (const MultExpr< L, R > &expr) | |
Constructor. More... | |
template<typename L , typename R , typename S > | |
ContEngine (const ScalMultExpr< L, R, S > &expr) | |
Constructor. More... | |
void | perm_indices (const BipartiteIndexList &target_indices) |
Set the index list for this expression. More... | |
void | init_indices (bool children_initialized=false) |
Initialize the index list of this expression. More... | |
void | init_indices (const BipartiteIndexList &target_indices) |
Initialize the index list of this expression. More... | |
void | init_struct (const BipartiteIndexList &target_indices) |
Initialize result tensor structure. More... | |
void | init_distribution (World *world, std::shared_ptr< pmap_interface > pmap) |
Initialize result tensor distribution. More... | |
trange_type | make_trange (const Permutation &perm={}) const |
Tiled range factory function. 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... | |
dist_eval_type | make_dist_eval () const |
std::string | make_tag () const |
Expression identification tag. More... | |
void | print (ExprOStream os, const BipartiteIndexList &target_indices) const |
Expression print. More... | |
derived_type & | derived () |
Cast this object to its derived type. More... | |
const derived_type & | derived () const |
Cast this object to its derived type. More... | |
const BipartiteIndexList & | indices () const |
Index list accessor. More... | |
Public Member Functions inherited from TiledArray::expressions::BinaryEngine< Derived > | |
template<typename D > | |
BinaryEngine (const BinaryExpr< D > &expr) | |
void | perm_indices (const BipartiteIndexList &target_indices) |
Set the index list for this expression. More... | |
void | init_indices (const BipartiteIndexList &target_indices) |
Initialize the index list of this expression. More... | |
void | init_indices (bool children_initialized=false) |
Initialize the index list of this expression. More... | |
void | init_struct (const BipartiteIndexList &target_indices) |
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 BipartiteIndexList &target_indices) const |
Expression print. More... | |
Protected Types | |
using | tile_element_type = typename value_type::value_type |
Protected Member Functions | |
TensorProduct | product_type () const |
TensorProduct | inner_product_type () const |
void | init_inner_tile_op (const IndexList &inner_target_indices) |
Protected Member Functions inherited from TiledArray::expressions::BinaryEngine< Derived > | |
template<TensorProduct ProductType> | |
void | init_indices_ (const BipartiteIndexList &target_indices={}) |
Static Protected Member Functions | |
static unsigned int | find (const BipartiteIndexList &indices, const std::string &index_label, unsigned int i, const unsigned int n) |
Protected Attributes | |
scalar_type | factor_ |
Contraction scaling factor. More... | |
op_type | op_ |
Tile operation. More... | |
std::function< void(tile_element_type &, const tile_element_type &, const tile_element_type &)> | inner_tile_nonreturn_op_ |
std::function< tile_element_type(const tile_element_type &, const tile_element_type &)> | inner_tile_return_op_ |
TiledArray::detail::ProcGrid | proc_grid_ |
Process grid for the contraction. More... | |
size_type | K_ = 1 |
Inner dimension size. More... | |
TensorProduct | product_type_ = TensorProduct::Invalid |
TensorProduct | inner_product_type_ = TensorProduct::Invalid |
left_type | left_ |
The left-hand argument. More... | |
BipartiteIndexList | left_indices_ |
Target left-hand index list. More... | |
PermutationType | left_inner_permtype_ |
Left-hand permutation type. More... | |
PermutationType | left_outer_permtype_ |
Left-hand permutation type. More... | |
right_type | right_ |
The right-hand argument. More... | |
BipartiteIndexList | right_indices_ |
Target right-hand index list. More... | |
PermutationType | right_inner_permtype_ |
Right-hand permutation type. More... | |
PermutationType | right_outer_permtype_ |
Right-hand permutation type. More... | |
BipartiteIndexList | indices_ |
BipartitePermutation | perm_ |
The permutation that will be applied to the outer tensor of tensors. More... | |
bool | permute_tiles_ |
std::shared_ptr< pmap_interface > | pmap_ |
The process map for the result tensor. More... | |
shape_type | shape_ |
The shape of the result tensor. More... | |
trange_type | trange_ |
The tiled range of the result tensor. More... | |
World * | world_ |
The world where this expression will be evaluated. More... | |
Protected Attributes inherited from TiledArray::expressions::BinaryEngine< Derived > | |
left_type | left_ |
The left-hand argument. More... | |
right_type | right_ |
The right-hand argument. More... | |
BipartiteIndexList | left_indices_ |
Target left-hand index list. More... | |
BipartiteIndexList | right_indices_ |
Target right-hand index list. More... | |
PermutationType | left_outer_permtype_ |
Left-hand permutation type. More... | |
PermutationType | right_outer_permtype_ |
Right-hand permutation type. More... | |
PermutationType | left_inner_permtype_ |
Left-hand permutation type. More... | |
PermutationType | right_inner_permtype_ |
Right-hand permutation type. More... | |
BipartiteIndexList | indices_ |
BipartitePermutation | perm_ |
The permutation that will be applied to the outer tensor of tensors. More... | |
bool | permute_tiles_ |
std::shared_ptr< pmap_interface > | pmap_ |
The process map for the result tensor. More... | |
shape_type | shape_ |
The shape of the result tensor. More... | |
trange_type | trange_ |
The tiled range of the result tensor. More... | |
World * | world_ |
The world where this expression will be evaluated. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from TiledArray::expressions::BinaryEngine< Derived > | |
static constexpr bool | consumable = EngineTrait<Derived>::consumable |
static constexpr unsigned int | leaves = EngineTrait<Derived>::leaves |
Member Typedef Documentation
◆ BinaryEngine_
typedef BinaryEngine<Derived> TiledArray::expressions::ContEngine< Derived >::BinaryEngine_ |
Binary base class type.
Definition at line 54 of file cont_engine.h.
◆ ContEngine_
typedef ContEngine<Derived> TiledArray::expressions::ContEngine< Derived >::ContEngine_ |
This class type.
Definition at line 53 of file cont_engine.h.
◆ dist_eval_type
typedef EngineTrait<Derived>::dist_eval_type TiledArray::expressions::ContEngine< Derived >::dist_eval_type |
The distributed evaluator type.
Definition at line 77 of file cont_engine.h.
◆ ExprEngine_
typedef ExprEngine<Derived> TiledArray::expressions::ContEngine< Derived >::ExprEngine_ |
Expression engine base class type.
Definition at line 56 of file cont_engine.h.
◆ left_type
typedef EngineTrait<Derived>::left_type TiledArray::expressions::ContEngine< Derived >::left_type |
The left-hand expression type.
Definition at line 60 of file cont_engine.h.
◆ op_type
typedef TiledArray::detail::ContractReduce< value_type, typename eval_trait<typename left_type::value_type>::type, typename eval_trait<typename right_type::value_type>::type, scalar_type> TiledArray::expressions::ContEngine< Derived >::op_type |
The tile operation type.
Definition at line 73 of file cont_engine.h.
◆ pmap_interface
typedef EngineTrait<Derived>::pmap_interface TiledArray::expressions::ContEngine< Derived >::pmap_interface |
Process map interface type.
Definition at line 85 of file cont_engine.h.
◆ policy
typedef EngineTrait<Derived>::policy TiledArray::expressions::ContEngine< Derived >::policy |
The result policy type.
Definition at line 75 of file cont_engine.h.
◆ right_type
typedef EngineTrait<Derived>::right_type TiledArray::expressions::ContEngine< Derived >::right_type |
The right-hand expression type.
Definition at line 62 of file cont_engine.h.
◆ scalar_type
typedef EngineTrait<Derived>::scalar_type TiledArray::expressions::ContEngine< Derived >::scalar_type |
Tile scalar type.
Definition at line 68 of file cont_engine.h.
◆ shape_type
typedef EngineTrait<Derived>::shape_type TiledArray::expressions::ContEngine< Derived >::shape_type |
Shape type.
Definition at line 83 of file cont_engine.h.
◆ size_type
typedef EngineTrait<Derived>::size_type TiledArray::expressions::ContEngine< Derived >::size_type |
Size type.
Definition at line 80 of file cont_engine.h.
◆ tile_element_type
|
protected |
Definition at line 110 of file cont_engine.h.
◆ trange_type
typedef EngineTrait<Derived>::trange_type TiledArray::expressions::ContEngine< Derived >::trange_type |
Tiled range type.
Definition at line 82 of file cont_engine.h.
◆ value_type
typedef EngineTrait<Derived>::value_type TiledArray::expressions::ContEngine< Derived >::value_type |
The result tile type.
Definition at line 66 of file cont_engine.h.
Constructor & Destructor Documentation
◆ ContEngine() [1/2]
|
inline |
Constructor.
- Template Parameters
-
L The left-hand argument expression type R The right-hand argument expression type
- Parameters
-
expr The parent expression
Definition at line 163 of file cont_engine.h.
◆ ContEngine() [2/2]
|
inline |
Constructor.
- Template Parameters
-
L The left-hand argument expression type R The right-hand argument expression type S The expression scalar type
- Parameters
-
expr The parent expression
Definition at line 172 of file cont_engine.h.
Member Function Documentation
◆ derived() [1/2]
|
inline |
Cast this object to its derived type.
Definition at line 209 of file expr_engine.h.
◆ derived() [2/2]
|
inline |
Cast this object to its derived type.
Definition at line 212 of file expr_engine.h.
◆ find()
|
inlinestaticprotected |
◆ indices()
|
inline |
Index list accessor.
- Returns
- A const reference to the index list
Definition at line 224 of file expr_engine.h.
◆ init_distribution()
|
inline |
Initialize result tensor distribution.
This function will initialize the world and process map for the result tensor.
- Parameters
-
world The world were the result will be distributed pmap The process map for the result tensor tiles
Definition at line 304 of file cont_engine.h.
◆ init_indices() [1/2]
|
inline |
Initialize the index list of this expression.
- Note
- This function does not initialize the child data as is done in
BinaryEngine
. Instead they are initialized inMultEngine
andScalMultEngine
since they need child indices to determine the type of product
Definition at line 212 of file cont_engine.h.
◆ init_indices() [2/2]
|
inline |
Initialize the index list of this expression.
- Parameters
-
target_indices the target index list
- Note
- This function does not initialize the child data as is done in
BinaryEngine
. Instead they are initialized inMultEngine
andScalMultEngine
since they need child indices to determine the type of product
Definition at line 228 of file cont_engine.h.
◆ init_inner_tile_op()
|
inlineprotected |
◆ init_struct()
|
inline |
Initialize result tensor structure.
This function will initialize the permutation, tiled range, and shape for the result tensor as well as the tile operation.
- Parameters
-
target_indices The target index list for the result tensor
Definition at line 238 of file cont_engine.h.
◆ inner_product_type()
|
inlineprotected |
- Returns
- the inner product type
only Hadamard and contraction are supported now
Definition at line 147 of file cont_engine.h.
◆ make_dist_eval()
|
inline |
◆ make_shape() [1/2]
|
inline |
Non-permuting shape factory function.
- Returns
- The result shape
Definition at line 398 of file cont_engine.h.
◆ make_shape() [2/2]
|
inline |
Permuting shape factory function.
- Parameters
-
perm The permutation to be applied to the array
- Returns
- The result shape
Definition at line 410 of file cont_engine.h.
◆ make_tag()
|
inline |
Expression identification tag.
- Returns
- An expression tag used to identify this expression
Definition at line 438 of file cont_engine.h.
◆ make_trange()
|
inline |
Tiled range factory function.
- Parameters
-
perm The permutation to be applied to the array
- Returns
- The result tiled range
Definition at line 349 of file cont_engine.h.
◆ perm_indices()
|
inline |
Set the index list for this expression.
If arguments can be permuted freely and target_indices
are well-partitioned into left and right args' indices it is possible to permute left and right args to order their free indices the order that target_indices
requires.
- Parameters
-
target_indices The target index list for this expression
- Warning
- this does not take into account the ranks of the args to decide whether it makes sense to permute them or the result
- Todo:
- take into account the ranks of the args to decide whether it makes sense to permute them or the result
Definition at line 190 of file cont_engine.h.
◆ print()
|
inline |
Expression print.
- Parameters
-
os The output stream target_indices The target index list for this expression
Definition at line 449 of file cont_engine.h.
◆ product_type()
|
inlineprotected |
- Returns
- the product type
only Hadamard and contraction are supported now
Definition at line 137 of file cont_engine.h.
Member Data Documentation
◆ factor_
|
protected |
Contraction scaling factor.
Definition at line 106 of file cont_engine.h.
◆ indices_
|
protected |
The index list of this expression; bipartite due to need to support recursive tensors (i.e. Tensor-of-Tensor)
Definition at line 75 of file expr_engine.h.
◆ inner_product_type_
|
protected |
Definition at line 134 of file cont_engine.h.
◆ inner_tile_nonreturn_op_
|
protected |
Tile element operation (only non-null for nested tensor expressions)
Definition at line 113 of file cont_engine.h.
◆ inner_tile_return_op_
|
protected |
Same as inner_tile_nonreturn_op_ but returns the result
Definition at line 117 of file cont_engine.h.
◆ K_
|
protected |
Inner dimension size.
Definition at line 121 of file cont_engine.h.
◆ left_
|
protected |
The left-hand argument.
Definition at line 86 of file binary_engine.h.
◆ left_indices_
|
protected |
Target left-hand index list.
Definition at line 88 of file binary_engine.h.
◆ left_inner_permtype_
|
protected |
Left-hand permutation type.
Definition at line 94 of file binary_engine.h.
◆ left_outer_permtype_
|
protected |
Left-hand permutation type.
Definition at line 90 of file binary_engine.h.
◆ op_
|
protected |
Tile operation.
Definition at line 109 of file cont_engine.h.
◆ perm_
|
protected |
The permutation that will be applied to the outer tensor of tensors.
Definition at line 80 of file expr_engine.h.
◆ permute_tiles_
|
protected |
Result tile permutation flag (true
== permute tile)
Definition at line 77 of file expr_engine.h.
◆ pmap_
|
protected |
The process map for the result tensor.
Definition at line 84 of file expr_engine.h.
◆ proc_grid_
|
protected |
Process grid for the contraction.
Definition at line 120 of file cont_engine.h.
◆ product_type_
|
protected |
Definition at line 133 of file cont_engine.h.
◆ right_
|
protected |
The right-hand argument.
Definition at line 87 of file binary_engine.h.
◆ right_indices_
|
protected |
Target right-hand index list.
Definition at line 89 of file binary_engine.h.
◆ right_inner_permtype_
|
protected |
Right-hand permutation type.
Definition at line 96 of file binary_engine.h.
◆ right_outer_permtype_
|
protected |
Right-hand permutation type.
Definition at line 92 of file binary_engine.h.
◆ shape_
|
protected |
The shape of the result tensor.
Definition at line 82 of file expr_engine.h.
◆ trange_
|
protected |
The tiled range of the result tensor.
Definition at line 81 of file expr_engine.h.
◆ world_
|
protected |
The world where this expression will be evaluated.
Definition at line 73 of file expr_engine.h.
The documentation for this class was generated from the following file:
- TiledArray/expressions/cont_engine.h