26 #ifndef TILEDARRAY_EXPRESSIONS_TSR_ENGINE_H__INCLUDED 27 #define TILEDARRAY_EXPRESSIONS_TSR_ENGINE_H__INCLUDED 36 template <
typename,
typename>
class DistArray;
38 namespace expressions {
41 template <
typename,
bool>
class TsrExpr;
42 template <
typename,
typename,
bool>
class TsrEngine;
44 template <
typename Tile,
typename Policy,
typename Result,
bool Alias>
69 typedef typename policy::pmap_interface
72 static constexpr
bool consumable = (! Alias) ||
74 static constexpr
unsigned int leaves = 1;
83 template <
typename Array,
typename Result,
bool Alias>
118 template <
typename A>
141 #endif // TILEDARRAY_EXPRESSIONS_TSR_ENGINE_H__INCLUDED EngineTrait< TsrEngine_ >::pmap_interface pmap_interface
Process map interface type.
EngineTrait< TsrEngine_ >::policy policy
The result policy type.
Policy policy
Policy type.
const Permutation & perm() const
Permutation accessor.
policy::pmap_interface pmap_interface
Process map interface type.
EngineTrait< TsrEngine_ >::op_type op_type
Tile operation type.
Determine the object type used in the evaluation of tensor expressions.
policy::shape_type shape_type
Shape type.
Unary tile operation wrapper.
Type trait for extracting the scalar type of tensors and arrays.
TiledArray::detail::scalar_type< DistArray< Tile, Policy > >::type scalar_type
Scalar type of tile.
Expression wrapper for array objects.
DistArray< Tile, Policy > array_type
The array type.
Lazy tile for on-the-fly evaluation of array tiles.
EngineTrait< TsrEngine_ >::array_type array_type
The left-hand expression type.
static op_type make_tile_op(const Permutation &perm)
Permuting tile operation factory function.
Tensor expression object.
LeafEngine< TsrEngine_ > LeafEngine_
Leaf base class type.
policy::trange_type trange_type
Tiled range type.
TsrEngine(const TsrExpr< A, Alias > &expr)
TiledArray::detail::Noop< Result, typename array_type::eval_type, true > op_base_type
The tile operation.
static op_type make_tile_op()
Non-permuting tile operation factory function.
TsrEngine< Array, Result, Alias > TsrEngine_
This class type.
EngineTrait< TsrEngine_ >::size_type size_type
Size type.
EngineTrait< TsrEngine_ >::shape_type shape_type
Tensor shape type.
TiledArray::detail::LazyArrayTile< typename array_type::value_type, op_type > value_type
Tile type.
TiledArray::detail::UnaryWrapper< op_base_type > op_type
EngineTrait< TsrEngine_ >::value_type value_type
Tensor value type.
LeafEngine_::ExprEngine_ ExprEngine_
Expression engine base class.
policy::size_type size_type
Size type.
EngineTrait< TsrEngine_ >::dist_eval_type dist_eval_type
This expression's distributed evaluator type.
eval_trait< value_type >::type eval_type
Evaluation tile type.
Permutation of a sequence of objects indexed by base-0 indices.
EngineTrait< TsrEngine_ >::op_base_type op_base_type
Tile base operation type.
EngineTrait< TsrEngine_ >::trange_type trange_type
Tiled range type type.
TiledArray::detail::DistEval< value_type, policy > dist_eval_type
The distributed evaluator type.
impl_type::eval_type eval_type
The tile evaluation type.
Tensor expression engine.
An N-dimensional shallow copy wrapper for tile objects.