Go to the documentation of this file.
26 #ifndef TILEDARRAY_EXPRESSIONS_SCAL_ENGINE_H__INCLUDED
27 #define TILEDARRAY_EXPRESSIONS_SCAL_ENGINE_H__INCLUDED
34 namespace expressions {
37 template <
typename,
typename>
39 template <
typename,
typename,
typename>
42 template <
typename Arg,
typename Scalar,
typename Result>
58 typedef typename argument_type::policy
policy;
66 typedef typename policy::pmap_interface
69 static constexpr
bool consumable =
true;
76 template <
typename Arg,
typename Scalar,
typename Result>
121 template <
typename A,
typename S>
149 template <
typename Perm,
typename = std::enable_if_t<
150 TiledArray::detail::is_permutation_v<Perm>>>
159 std::stringstream ss;
160 ss <<
"[" << factor_ <<
"] ";
169 #endif // TILEDARRAY_EXPRESSIONS_SCAL_ENGINE_H__INCLUDED
policy::trange_type trange_type
Tiled range type.
std::string make_tag() const
Expression identification tag.
Scaling expression engine.
TiledArray::detail::UnaryWrapper< op_base_type > op_type
The tile operation type.
ScalEngine< Arg, Scalar, Result > ScalEngine_
This class type.
policy::shape_type shape_type
Shape type.
argument_type arg_
The argument.
EngineTrait< ScalEngine_ >::argument_type argument_type
The argument expression engine type.
Arg argument_type
The argument expression engine type.
UnaryEngine_::ExprEngine_ ExprEngine_
Expression engine base type.
Permutation of a sequence of objects indexed by base-0 indices.
EngineTrait< ScalEngine_ >::policy policy
The result policy type.
argument_type::policy policy
The result policy type.
EngineTrait< ScalEngine_ >::dist_eval_type dist_eval_type
The distributed evaluator type.
UnaryEngine< ScalEngine_ > UnaryEngine_
Unary expression engine base type.
Scalar scalar_type
Tile scalar type.
policy::pmap_interface pmap_interface
Process map interface type.
TiledArray::detail::DistEval< value_type, policy > dist_eval_type
The distributed evaluator type.
EngineTrait< ScalEngine_ >::trange_type trange_type
Tiled range type.
policy::ordinal_type size_type
Size type.
EngineTrait< ScalEngine_ >::size_type size_type
Size type.
op_type::result_type value_type
The result tile type.
EngineTrait< ScalEngine_ >::shape_type shape_type
Shape type.
EngineTrait< ScalEngine_ >::pmap_interface pmap_interface
Process map interface type.
TiledArray::detail::Scal< Result, typename EngineTrait< Arg >::eval_type, scalar_type, EngineTrait< Arg >::consumable > op_base_type
The tile base operation type.
EngineTrait< ScalEngine_ >::op_type op_type
The tile operation type.
shape_type make_shape() const
Non-permuting shape factory function.
shape_type make_shape(const Permutation &perm) const
Permuting shape factory function.
Unary tile operation wrapper.
op_type make_tile_op(const Perm &perm) const
Permuting tile operation factory function.
op_type make_tile_op() const
Non-permuting tile operation factory function.
Determine the object type used in the evaluation of tensor expressions.
EngineTrait< ScalEngine_ >::value_type value_type
The result tile type.
ScalEngine(const ScalExpr< A, S > &expr)
Constructor.
Tensor expression object.
EngineTrait< ScalEngine_ >::scalar_type scalar_type
Tile scalar type.
eval_trait< value_type >::type eval_type
Evaluation tile type.
Op::result_type result_type
The result tile type.