mult_expr.h File Reference
Include dependency graph for mult_expr.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  TiledArray::expressions::ExprTrait< MultExpr< Left, Right > >
 
struct  TiledArray::expressions::ExprTrait< ScalMultExpr< Left, Right, Scalar > >
 
class  TiledArray::expressions::MultExpr< Left, Right >
 Multiplication expression. More...
 
class  TiledArray::expressions::ScalMultExpr< Left, Right, Scalar >
 Multiplication expression. More...
 

Namespaces

 TiledArray
 
 TiledArray::expressions
 

Typedefs

template<typename Left , typename Right >
using TiledArray::expressions::ConjMultExpr = ScalMultExpr< Left, Right, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Left , typename Right , typename Scalar >
using TiledArray::expressions::ScalConjMultExpr = ScalMultExpr< Left, Right, TiledArray::detail::ComplexConjugate< Scalar > >
 

Functions

template<typename Left , typename Right >
MultExpr< Left, Right > TiledArray::expressions::operator* (const Expr< Left > &left, const Expr< Right > &right)
 Multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalMultExpr< Left, Right, Scalar > TiledArray::expressions::operator* (const MultExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalMultExpr< Left, Right, Scalar > TiledArray::expressions::operator* (const Scalar &factor, const MultExpr< Left, Right > &expr)
 Scaled-multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalMultExpr< Left, Right, mult_t< Scalar1, Scalar2 > > TiledArray::expressions::operator* (const ScalMultExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalMultExpr< Left, Right, mult_t< Scalar2, Scalar1 > > TiledArray::expressions::operator* (const Scalar1 &factor, const ScalMultExpr< Left, Right, Scalar2 > &expr)
 Scaled-multiplication expression factor. More...
 
template<typename Left , typename Right >
ScalMultExpr< Left, Right, typename ExprTrait< MultExpr< Left, Right > >::numeric_type > TiledArray::expressions::operator- (const MultExpr< Left, Right > &expr)
 Negated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalMultExpr< Left, Right, Scalar > TiledArray::expressions::operator- (const ScalMultExpr< Left, Right, Scalar > &expr)
 Negated scaled-multiplication expression factor. More...
 
template<typename Left , typename Right >
ConjMultExpr< Left, Right > TiledArray::expressions::conj (const MultExpr< Left, Right > &expr)
 Conjugated multiplication expression factory. More...
 
template<typename Left , typename Right >
MultExpr< Left, Right > TiledArray::expressions::conj (const ConjMultExpr< Left, Right > &expr)
 Conjugated-conjugate multiplication expression factory. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr< Left, Right, Scalar > TiledArray::expressions::conj (const ScalMultExpr< Left, Right, Scalar > &expr)
 Conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalMultExpr< Left, Right, Scalar > TiledArray::expressions::conj (const ScalConjMultExpr< Left, Right, Scalar > &expr)
 Conjugated-conjugate multiplication expression factory. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjMultExpr< Left, Right, Scalar > TiledArray::expressions::operator* (const ConjMultExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjMultExpr< Left, Right, Scalar > TiledArray::expressions::operator* (const Scalar &factor, const ConjMultExpr< Left, Right > &expr)
 Scaled-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjMultExpr< Left, Right, mult_t< Scalar1, Scalar2 > > TiledArray::expressions::operator* (const ScalConjMultExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjMultExpr< Left, Right, mult_t< Scalar2, Scalar1 > > TiledArray::expressions::operator* (const Scalar1 &factor, const ScalConjMultExpr< Left, Right, Scalar2 > &expr)
 Scaled-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right >
ScalConjMultExpr< Left, Right, typename ExprTrait< ConjMultExpr< Left, Right > >::numeric_type > TiledArray::expressions::operator- (const ConjMultExpr< Left, Right > &expr)
 Negated-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr< Left, Right, Scalar > TiledArray::expressions::operator- (const ScalConjMultExpr< Left, Right, Scalar > &expr)
 Negated-conjugated multiplication expression factor. More...
 
template<typename Numeric , typename Left , typename Right , typename std::enable_if< TiledArray::detail::is_numeric_v< Numeric > >::type * = nullptr>
Numeric & TiledArray::expressions::operator+= (Numeric &result, const MultExpr< Left, Right > &expr)
 Dot product add-to operator. More...
 
template<typename Numeric , typename Left , typename Right , typename std::enable_if< TiledArray::detail::is_numeric_v< Numeric > >::type * = nullptr>
Numeric & TiledArray::expressions::operator-= (Numeric &result, const MultExpr< Left, Right > &expr)
 Dot product subtract-to operator. More...
 
template<typename Numeric , typename Left , typename Right , typename std::enable_if< TiledArray::detail::is_numeric_v< Numeric > >::type * = nullptr>
Numeric & TiledArray::expressions::operator*= (Numeric &result, const MultExpr< Left, Right > &expr)
 Dot product multiply-to operator. More...