TiledArray  0.7.0
TiledArray::expressions::Expr< Derived > Class Template Reference

Base class for expression evaluation. More...

#include <expr.h>

Inheritance diagram for TiledArray::expressions::Expr< Derived >:

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 it's derived type. More...
 
const derived_typederived () const
 Cast this object to it's 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 VariableList &target_vars) 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
 
Future< typename TiledArray::TraceReduction< typename EngineTrait< engine_type >::eval_type >::result_type > trace (World &world) const
 
Future< typename TiledArray::TraceReduction< typename EngineTrait< engine_type >::eval_type >::result_type > 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< 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< 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< 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< 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
 

Detailed Description

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

Base class for expression evaluation.

Template Parameters
DerivedThe derived class type

Definition at line 81 of file expr.h.

Member Typedef Documentation

◆ derived_type

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

The derived object type.

Definition at line 90 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 85 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 91 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 87 of file expr.h.

◆ Expr_

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

This class type.

Definition at line 89 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 ( World &  world) const
inline

Definition at line 728 of file expr.h.

◆ 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 ( ) const
inline

Definition at line 735 of file expr.h.

Here is the caller graph for this function:

◆ 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 ( World &  world) const
inline

Definition at line 715 of file expr.h.

◆ 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 ( ) const
inline

Definition at line 722 of file expr.h.

Here is the caller graph for this function:

◆ derived() [1/2]

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

Cast this object to it's derived type.

Definition at line 273 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 it's derived type.

Definition at line 276 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,
World &  world 
) const
inline

Definition at line 743 of file expr.h.

Here is the caller graph for this function:

◆ 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) const
inline

Definition at line 754 of file expr.h.

◆ eval_to() [1/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 287 of file expr.h.

Here is the caller graph for this function:

◆ eval_to() [2/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 346 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,
World &  world 
) const
inline

Definition at line 762 of file expr.h.

Here is the caller graph for this function:

◆ 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) const
inline

Definition at line 773 of file expr.h.

◆ max() [1/2]

template<typename Derived>
template<typename Derived_ = Derived>
std::enable_if< 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 696 of file expr.h.

◆ max() [2/2]

template<typename Derived>
template<typename Derived_ = Derived>
std::enable_if< 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 709 of file expr.h.

Here is the caller graph for this function:

◆ min() [1/2]

template<typename Derived>
template<typename Derived_ = Derived>
std::enable_if< 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 671 of file expr.h.

◆ min() [2/2]

template<typename Derived>
template<typename Derived_ = Derived>
std::enable_if< 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 684 of file expr.h.

Here is the caller graph for this function:

◆ norm() [1/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 651 of file expr.h.

◆ norm() [2/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 659 of file expr.h.

Here is the caller graph for this function:

◆ 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 VariableList target_vars 
) const
inline

Expression print.

Parameters
osThe output stream
target_varsThe target variable list for this expression

Definition at line 435 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 ( World &  world) const
inline

Definition at line 617 of file expr.h.

◆ product() [2/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 624 of file expr.h.

Here is the caller graph for this function:

◆ reduce() [1/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 467 of file expr.h.

Here is the caller graph for this function:

◆ reduce() [2/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 503 of file expr.h.

◆ reduce() [3/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 509 of file expr.h.

◆ reduce() [4/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 585 of file expr.h.

◆ 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 127 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 107 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 117 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 ( World &  world) const
inline

Definition at line 630 of file expr.h.

◆ 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 ( ) const
inline

Definition at line 638 of file expr.h.

Here is the caller graph for this function:

◆ sum() [1/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 604 of file expr.h.

◆ sum() [2/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 611 of file expr.h.

Here is the caller graph for this function:

◆ trace() [1/2]

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

Definition at line 591 of file expr.h.

◆ trace() [2/2]

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

Definition at line 598 of file expr.h.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ ExprEngine

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

Definition at line 96 of file expr.h.


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