TiledArray::expressions::Expr< Derived > Class Template Reference
Inheritance diagram for TiledArray::expressions::Expr< Derived >:

Documentation

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

Base class for expression evaluation.

Template Parameters
DerivedThe derived class type

Definition at line 97 of file expr.h.

Public Types

template<typename Derived_ = Derived>
using engine_t = typename ExprTrait< Derived_ >::engine_type
 
template<typename Derived_ = Derived>
using eval_type_t = typename engine_t< Derived_ >::eval_type
 
typedef Expr< Derived > Expr_
 This class type. More...
 
typedef Derived derived_type
 The derived object type. More...
 
typedef engine_t< derived_typeengine_type
 Expression engine type. More...
 

Public Member Functions

Expr< Derived > & set_shape (typename override_type::shape_type const &shape)
 
Expr< Derived > & set_world (World &world)
 
Expr< Derived > & set_pmap (const std::shared_ptr< typename override_type::pmap_interface > pmap)
 
 Expr ()=default
 
 Expr (const Expr_ &)=default
 
 Expr (Expr_ &&)=default
 
 ~Expr ()=default
 
Expr_operator= (const Expr_ &)=delete
 
Expr_operator= (Expr_ &&)=delete
 
derived_typederived ()
 Cast this object to its derived type. More...
 
const derived_typederived () const
 Cast this object to its derived type. More...
 
template<typename A , bool Alias>
void eval_to (TsrExpr< A, Alias > &tsr) const
 Evaluate this object and assign it to tsr. More...
 
template<typename A , bool Alias>
void eval_to (BlkTsrExpr< A, Alias > &tsr) const
 Evaluate this object and assign it to tsr. More...
 
void print (ExprOStream &os, const BipartiteIndexList &target_indices) const
 Expression print. More...
 
template<typename Op >
Future< typename Op::result_type > reduce (const Op &op, World &world) const
 
template<typename Op >
Future< typename Op::result_type > reduce (const Op &op) const
 
template<typename D , typename Op >
Future< typename Op::result_type > reduce (const Expr< D > &right_expr, const Op &op, World &world) const
 
template<typename D , typename Op >
Future< typename Op::result_type > reduce (const Expr< D > &right_expr, const Op &op) const
 
template<typename TileType = typename EngineTrait<engine_type>::eval_type, typename = TiledArray::detail::enable_if_trace_is_defined_t<TileType>>
Future< result_of_trace_t< TileType > > trace (World &world) const
 
template<typename TileType = typename EngineTrait<engine_type>::eval_type, typename = TiledArray::detail::enable_if_trace_is_defined_t<TileType>>
Future< result_of_trace_t< TileType > > trace () const
 
Future< typename TiledArray::SumReduction< typename EngineTrait< engine_type >::eval_type >::result_type > sum (World &world) const
 
Future< typename TiledArray::SumReduction< typename EngineTrait< engine_type >::eval_type >::result_type > sum () const
 
Future< typename TiledArray::ProductReduction< typename EngineTrait< engine_type >::eval_type >::result_type > product (World &world) const
 
Future< typename TiledArray::ProductReduction< typename EngineTrait< engine_type >::eval_type >::result_type > product () const
 
Future< typename TiledArray::SquaredNormReduction< typename EngineTrait< engine_type >::eval_type >::result_type > squared_norm (World &world) const
 
Future< typename TiledArray::SquaredNormReduction< typename EngineTrait< engine_type >::eval_type >::result_type > squared_norm () const
 
Future< typename TiledArray::SquaredNormReduction< typename EngineTrait< engine_type >::eval_type >::result_type > norm (World &world) const
 
Future< typename TiledArray::SquaredNormReduction< typename EngineTrait< engine_type >::eval_type >::result_type > norm () const
 
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type > >::value, Future< typename TiledArray::MinReduction< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type >::result_type > > min (World &world) const
 
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type > >::value, Future< typename TiledArray::MinReduction< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type >::result_type > > min () const
 
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type > >::value, Future< typename TiledArray::MaxReduction< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type >::result_type > > max (World &world) const
 
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type > >::value, Future< typename TiledArray::MaxReduction< typename EngineTrait< typename ExprTrait< Derived_ >::engine_type >::eval_type >::result_type > > max () const
 
Future< typename TiledArray::AbsMinReduction< typename EngineTrait< engine_type >::eval_type >::result_type > abs_min (World &world) const
 
Future< typename TiledArray::AbsMinReduction< typename EngineTrait< engine_type >::eval_type >::result_type > abs_min () const
 
Future< typename TiledArray::AbsMaxReduction< typename EngineTrait< engine_type >::eval_type >::result_type > abs_max (World &world) const
 
Future< typename TiledArray::AbsMaxReduction< typename EngineTrait< engine_type >::eval_type >::result_type > abs_max () const
 
template<typename D >
Future< typename TiledArray::DotReduction< typename EngineTrait< engine_type >::eval_type, typename EngineTrait< typename D::engine_type >::eval_type >::result_type > dot (const Expr< D > &right_expr, World &world) const
 
template<typename D >
Future< typename TiledArray::DotReduction< typename EngineTrait< engine_type >::eval_type, typename EngineTrait< typename D::engine_type >::eval_type >::result_type > dot (const Expr< D > &right_expr) const
 
template<typename D >
Future< typename TiledArray::InnerProductReduction< typename EngineTrait< engine_type >::eval_type, typename EngineTrait< typename D::engine_type >::eval_type >::result_type > inner_product (const Expr< D > &right_expr, World &world) const
 
template<typename D >
Future< typename TiledArray::InnerProductReduction< typename EngineTrait< engine_type >::eval_type, typename EngineTrait< typename D::engine_type >::eval_type >::result_type > inner_product (const Expr< D > &right_expr) const
 

Friends

template<typename D >
class ExprEngine
 

Member Typedef Documentation

◆ derived_type

template<typename Derived >
typedef Derived TiledArray::expressions::Expr< Derived >::derived_type

The derived object type.

Definition at line 105 of file expr.h.

◆ engine_t

template<typename Derived >
template<typename Derived_ = Derived>
using TiledArray::expressions::Expr< Derived >::engine_t = typename ExprTrait<Derived_>::engine_type

Definition at line 100 of file expr.h.

◆ engine_type

template<typename Derived >
typedef engine_t<derived_type> TiledArray::expressions::Expr< Derived >::engine_type

Expression engine type.

Definition at line 106 of file expr.h.

◆ eval_type_t

template<typename Derived >
template<typename Derived_ = Derived>
using TiledArray::expressions::Expr< Derived >::eval_type_t = typename engine_t<Derived_>::eval_type

Definition at line 102 of file expr.h.

◆ Expr_

template<typename Derived >
typedef Expr<Derived> TiledArray::expressions::Expr< Derived >::Expr_

This class type.

Definition at line 104 of file expr.h.

Constructor & Destructor Documentation

◆ Expr() [1/3]

template<typename Derived >
TiledArray::expressions::Expr< Derived >::Expr ( )
default

◆ Expr() [2/3]

template<typename Derived >
TiledArray::expressions::Expr< Derived >::Expr ( const Expr_ )
default

◆ Expr() [3/3]

template<typename Derived >
TiledArray::expressions::Expr< Derived >::Expr ( Expr_ &&  )
default

◆ ~Expr()

template<typename Derived >
TiledArray::expressions::Expr< Derived >::~Expr ( )
default

Member Function Documentation

◆ abs_max() [1/2]

template<typename Derived >
Future<typename TiledArray::AbsMaxReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::abs_max ( ) const
inline

Definition at line 835 of file expr.h.

Here is the caller graph for this function:

◆ abs_max() [2/2]

template<typename Derived >
Future<typename TiledArray::AbsMaxReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::abs_max ( World &  world) const
inline

Definition at line 828 of file expr.h.

◆ abs_min() [1/2]

template<typename Derived >
Future<typename TiledArray::AbsMinReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::abs_min ( ) const
inline

Definition at line 822 of file expr.h.

Here is the caller graph for this function:

◆ abs_min() [2/2]

template<typename Derived >
Future<typename TiledArray::AbsMinReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::abs_min ( World &  world) const
inline

Definition at line 815 of file expr.h.

◆ derived() [1/2]

template<typename Derived >
derived_type& TiledArray::expressions::Expr< Derived >::derived ( )
inline

Cast this object to its derived type.

Definition at line 365 of file expr.h.

Here is the caller graph for this function:

◆ derived() [2/2]

template<typename Derived >
const derived_type& TiledArray::expressions::Expr< Derived >::derived ( ) const
inline

Cast this object to its derived type.

Definition at line 368 of file expr.h.

◆ dot() [1/2]

template<typename Derived >
template<typename D >
Future<typename TiledArray::DotReduction< typename EngineTrait<engine_type>::eval_type, typename EngineTrait<typename D::engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::dot ( const Expr< D > &  right_expr) const
inline

Definition at line 856 of file expr.h.

◆ dot() [2/2]

template<typename Derived >
template<typename D >
Future<typename TiledArray::DotReduction< typename EngineTrait<engine_type>::eval_type, typename EngineTrait<typename D::engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::dot ( const Expr< D > &  right_expr,
World &  world 
) const
inline

Definition at line 843 of file expr.h.

Here is the caller graph for this function:

◆ eval_to() [1/2]

template<typename Derived >
template<typename A , bool Alias>
void TiledArray::expressions::Expr< Derived >::eval_to ( BlkTsrExpr< A, Alias > &  tsr) const
inline

Evaluate this object and assign it to tsr.

This expression is evaluated in parallel in distributed environments, where the content of tsr will be replaced by the results of the evaluated tensor expression.

Template Parameters
AThe array type
AliasTile alias flag
Parameters
tsrThe tensor to be assigned

Definition at line 440 of file expr.h.

◆ eval_to() [2/2]

template<typename Derived >
template<typename A , bool Alias>
void TiledArray::expressions::Expr< Derived >::eval_to ( TsrExpr< A, Alias > &  tsr) const
inline

Evaluate this object and assign it to tsr.

This expression is evaluated in parallel in distributed environments, where the content of tsr will be replaced by the results of the evaluated tensor expression.

Template Parameters
AThe array type
AliasTile alias flag
Parameters
tsrThe tensor to be assigned

Definition at line 381 of file expr.h.

◆ inner_product() [1/2]

template<typename Derived >
template<typename D >
Future<typename TiledArray::InnerProductReduction< typename EngineTrait<engine_type>::eval_type, typename EngineTrait<typename D::engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::inner_product ( const Expr< D > &  right_expr) const
inline

Definition at line 878 of file expr.h.

◆ inner_product() [2/2]

template<typename Derived >
template<typename D >
Future<typename TiledArray::InnerProductReduction< typename EngineTrait<engine_type>::eval_type, typename EngineTrait<typename D::engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::inner_product ( const Expr< D > &  right_expr,
World &  world 
) const
inline

Definition at line 864 of file expr.h.

Here is the caller graph for this function:

◆ max() [1/2]

template<typename Derived >
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type> >::value, Future<typename TiledArray::MaxReduction<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type>::result_type> > TiledArray::expressions::Expr< Derived >::max ( ) const
inline

Definition at line 809 of file expr.h.

Here is the caller graph for this function:

◆ max() [2/2]

template<typename Derived >
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type> >::value, Future<typename TiledArray::MaxReduction<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type>::result_type> > TiledArray::expressions::Expr< Derived >::max ( World &  world) const
inline

Definition at line 797 of file expr.h.

◆ min() [1/2]

template<typename Derived >
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type> >::value, Future<typename TiledArray::MinReduction<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type>::result_type> > TiledArray::expressions::Expr< Derived >::min ( ) const
inline

Definition at line 786 of file expr.h.

Here is the caller graph for this function:

◆ min() [2/2]

template<typename Derived >
template<typename Derived_ = Derived>
std::enable_if_t< TiledArray::detail::is_strictly_ordered< TiledArray::detail::numeric_t<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type> >::value, Future<typename TiledArray::MinReduction<typename EngineTrait< typename ExprTrait<Derived_>::engine_type>::eval_type>::result_type> > TiledArray::expressions::Expr< Derived >::min ( World &  world) const
inline

Definition at line 774 of file expr.h.

◆ norm() [1/2]

template<typename Derived >
Future<typename TiledArray::SquaredNormReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::norm ( ) const
inline

Definition at line 763 of file expr.h.

Here is the caller graph for this function:

◆ norm() [2/2]

template<typename Derived >
Future<typename TiledArray::SquaredNormReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::norm ( World &  world) const
inline

Definition at line 755 of file expr.h.

◆ operator=() [1/2]

template<typename Derived >
Expr_& TiledArray::expressions::Expr< Derived >::operator= ( const Expr_ )
delete

◆ operator=() [2/2]

template<typename Derived >
Expr_& TiledArray::expressions::Expr< Derived >::operator= ( Expr_ &&  )
delete

◆ print()

template<typename Derived >
void TiledArray::expressions::Expr< Derived >::print ( ExprOStream os,
const BipartiteIndexList target_indices 
) const
inline

Expression print.

Parameters
osThe output stream
target_indicesThe target index list for this expression

Definition at line 533 of file expr.h.

◆ product() [1/2]

template<typename Derived >
Future<typename TiledArray::ProductReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::product ( ) const
inline

Definition at line 729 of file expr.h.

Here is the caller graph for this function:

◆ product() [2/2]

template<typename Derived >
Future<typename TiledArray::ProductReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::product ( World &  world) const
inline

Definition at line 722 of file expr.h.

◆ reduce() [1/4]

template<typename Derived >
template<typename D , typename Op >
Future<typename Op::result_type> TiledArray::expressions::Expr< Derived >::reduce ( const Expr< D > &  right_expr,
const Op &  op 
) const
inline

Definition at line 687 of file expr.h.

◆ reduce() [2/4]

template<typename Derived >
template<typename D , typename Op >
Future<typename Op::result_type> TiledArray::expressions::Expr< Derived >::reduce ( const Expr< D > &  right_expr,
const Op &  op,
World &  world 
) const
inline

Definition at line 605 of file expr.h.

◆ reduce() [3/4]

template<typename Derived >
template<typename Op >
Future<typename Op::result_type> TiledArray::expressions::Expr< Derived >::reduce ( const Op &  op) const
inline

Definition at line 600 of file expr.h.

◆ reduce() [4/4]

template<typename Derived >
template<typename Op >
Future<typename Op::result_type> TiledArray::expressions::Expr< Derived >::reduce ( const Op &  op,
World &  world 
) const
inline

Definition at line 562 of file expr.h.

Here is the caller graph for this function:

◆ set_pmap()

template<typename Derived >
Expr<Derived>& TiledArray::expressions::Expr< Derived >::set_pmap ( const std::shared_ptr< typename override_type::pmap_interface pmap)
inline
Parameters
pmapthe Pmap object to use for the result

Definition at line 141 of file expr.h.

◆ set_shape()

template<typename Derived >
Expr<Derived>& TiledArray::expressions::Expr< Derived >::set_shape ( typename override_type::shape_type const &  shape)
inline
Parameters
shapethe shape to use for the result

Definition at line 121 of file expr.h.

◆ set_world()

template<typename Derived >
Expr<Derived>& TiledArray::expressions::Expr< Derived >::set_world ( World &  world)
inline
Parameters
worldthe World object to use for the result

Definition at line 131 of file expr.h.

◆ squared_norm() [1/2]

template<typename Derived >
Future<typename TiledArray::SquaredNormReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::squared_norm ( ) const
inline

Definition at line 742 of file expr.h.

Here is the caller graph for this function:

◆ squared_norm() [2/2]

template<typename Derived >
Future<typename TiledArray::SquaredNormReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::squared_norm ( World &  world) const
inline

Definition at line 735 of file expr.h.

◆ sum() [1/2]

template<typename Derived >
Future<typename TiledArray::SumReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::sum ( ) const
inline

Definition at line 716 of file expr.h.

Here is the caller graph for this function:

◆ sum() [2/2]

template<typename Derived >
Future<typename TiledArray::SumReduction< typename EngineTrait<engine_type>::eval_type>::result_type> TiledArray::expressions::Expr< Derived >::sum ( World &  world) const
inline

Definition at line 709 of file expr.h.

◆ trace() [1/2]

template<typename Derived >
template<typename TileType = typename EngineTrait<engine_type>::eval_type, typename = TiledArray::detail::enable_if_trace_is_defined_t<TileType>>
Future<result_of_trace_t<TileType> > TiledArray::expressions::Expr< Derived >::trace ( ) const
inline

Definition at line 703 of file expr.h.

Here is the caller graph for this function:

◆ trace() [2/2]

template<typename Derived >
template<typename TileType = typename EngineTrait<engine_type>::eval_type, typename = TiledArray::detail::enable_if_trace_is_defined_t<TileType>>
Future<result_of_trace_t<TileType> > TiledArray::expressions::Expr< Derived >::trace ( World &  world) const
inline

Definition at line 695 of file expr.h.

Friends And Related Function Documentation

◆ ExprEngine

template<typename Derived >
template<typename D >
friend class ExprEngine
friend

Definition at line 110 of file expr.h.


The documentation for this class was generated from the following file:
  • TiledArray/expressions/expr.h