TiledArray::expressions Namespace Reference

Namespaces

 detail
 
 kernels
 

Classes

class  AddEngine
 Addition expression engine. More...
 
class  AddExpr
 Addition expression. More...
 
class  BinaryEngine
 
class  BinaryExpr
 Binary expression object. More...
 
class  BinaryOpPermutationOptimizer
 Abstract optimizer of permutations for a binary operation. More...
 
class  BipartiteIndexList
 
class  BlkTsrEngine
 Tensor expression engine. More...
 
class  BlkTsrEngineBase
 Tensor expression engine. More...
 
class  BlkTsrExpr
 Block expression. More...
 
class  BlkTsrExpr< const Array, true >
 Block expression. More...
 
class  BlkTsrExprBase
 Block expression. More...
 
class  ContEngine
 Multiplication expression engine. More...
 
struct  EngineParamOverride
 
struct  EngineTrait
 
struct  EngineTrait< AddEngine< Left, Right, Result > >
 
struct  EngineTrait< BlkTsrEngine< DistArray< Tile, Policy >, Result, Alias > >
 
struct  EngineTrait< MultEngine< Left, Right, Result > >
 
struct  EngineTrait< ScalAddEngine< Left, Right, Scalar, Result > >
 
struct  EngineTrait< ScalBlkTsrEngine< DistArray< Tile, Policy >, Scalar, Result > >
 
struct  EngineTrait< ScalEngine< Arg, Scalar, Result > >
 
struct  EngineTrait< ScalMultEngine< Left, Right, Scalar, Result > >
 
struct  EngineTrait< ScalSubtEngine< Left, Right, Scalar, Result > >
 
struct  EngineTrait< ScalTsrEngine< DistArray< Tile, Policy >, Scalar, Result > >
 
struct  EngineTrait< SubtEngine< Left, Right, Result > >
 
struct  EngineTrait< TsrEngine< DistArray< Tile, Policy >, Result, Alias > >
 
class  Expr
 Base class for expression evaluation. More...
 
class  ExprEngine
 Expression engine. More...
 
class  ExprOStream
 Expression output stream. More...
 
class  ExprTraceTarget
 Expression trace target. More...
 
struct  ExprTrait
 
struct  ExprTrait< AddExpr< Left, Right > >
 
struct  ExprTrait< BlkTsrExpr< Array, Alias > >
 
struct  ExprTrait< BlkTsrExpr< const Array, Alias > >
 
struct  ExprTrait< MultExpr< Left, Right > >
 
struct  ExprTrait< ScalAddExpr< Left, Right, Scalar > >
 
struct  ExprTrait< ScalBlkTsrExpr< Array, Scalar > >
 
struct  ExprTrait< ScalBlkTsrExpr< const Array, Scalar > >
 
struct  ExprTrait< ScalExpr< Arg, Scalar > >
 
struct  ExprTrait< ScalMultExpr< Left, Right, Scalar > >
 
struct  ExprTrait< ScalSubtExpr< Left, Right, Scalar > >
 
struct  ExprTrait< ScalTsrExpr< Array, Scalar > >
 
struct  ExprTrait< SubtExpr< Left, Right > >
 
struct  ExprTrait< TsrExpr< Array, Alias > >
 
struct  ExprTrait< TsrExpr< const Array, true > >
 
class  GEMMPermutationOptimizer
 
class  HadamardPermutationOptimizer
 
class  has_array
 type trait checks if T has array() member Useful to determine if an Expr is a TsrExpr or a related type More...
 
class  IndexList
 
struct  is_aliased
 
struct  is_aliased< BlkTsrExpr< Array, Alias > >
 
struct  is_aliased< TsrExpr< Array, Alias > >
 
class  LeafEngine
 Leaf expression engine. More...
 
class  MultEngine
 Multiplication expression engine. More...
 
class  MultExpr
 Multiplication expression. More...
 
class  NullBinaryOpPermutationOptimizer
 
class  ScalAddEngine
 Addition expression engine. More...
 
class  ScalAddExpr
 Add-then-scale expression. More...
 
class  ScalBlkTsrEngine
 Scaled tensor block expression engine. More...
 
class  ScalBlkTsrExpr
 Block expression. More...
 
class  ScalEngine
 Scaling expression engine. More...
 
class  ScalExpr
 Scaling expression. More...
 
class  ScalMultEngine
 Scaled multiplication expression engine. More...
 
class  ScalMultExpr
 Multiplication expression. More...
 
class  ScalSubtEngine
 Subtraction expression engine. More...
 
class  ScalSubtExpr
 Subtraction expression. More...
 
class  ScalTsrEngine
 Scaled tensor expression engine. More...
 
class  ScalTsrExpr
 Expression wrapper for scaled array objects. More...
 
class  SubtEngine
 Subtraction expression engine. More...
 
class  SubtExpr
 Subtraction expression. More...
 
class  TsrEngine
 Tensor expression engine. More...
 
class  TsrExpr
 Expression wrapper for array objects. More...
 
class  TsrExpr< const Array, true >
 Expression wrapper for const array objects. More...
 
class  UnaryEngine
 
class  UnaryExpr
 

Typedefs

template<typename Left , typename Right >
using ConjAddExpr = ScalAddExpr< Left, Right, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Left , typename Right , typename Scalar >
using ScalConjAddExpr = ScalAddExpr< Left, Right, TiledArray::detail::ComplexConjugate< Scalar > >
 
template<typename Array >
using ConjBlkTsrExpr = ScalBlkTsrExpr< Array, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Array , typename Scalar >
using ScalConjBlkTsrExpr = ScalBlkTsrExpr< Array, TiledArray::detail::ComplexConjugate< Scalar > >
 
template<typename Left , typename Right >
using ConjMultExpr = ScalMultExpr< Left, Right, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Left , typename Right , typename Scalar >
using ScalConjMultExpr = ScalMultExpr< Left, Right, TiledArray::detail::ComplexConjugate< Scalar > >
 
template<typename Array >
using ConjTsrExpr = ScalTsrExpr< Array, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Array , typename Scalar >
using ScalConjTsrExpr = ScalTsrExpr< Array, TiledArray::detail::ComplexConjugate< Scalar > >
 
template<typename Left , typename Right >
using ConjSubtExpr = ScalSubtExpr< Left, Right, TiledArray::detail::ComplexConjugate< void > >
 
template<typename Left , typename Right , typename Scalar >
using ScalConjSubtExpr = ScalSubtExpr< Left, Right, TiledArray::detail::ComplexConjugate< Scalar > >
 

Enumerations

enum  PermutationType { PermutationType::identity = 1, PermutationType::matrix_transpose = 2, PermutationType::general = 3 }
 
enum  TensorProduct { TensorProduct::Hadamard, TensorProduct::Contraction, TensorProduct::General, TensorProduct::Invalid = -1 }
 types of binary tensor products known to TiledArray More...
 

Functions

template<typename Left , typename Right >
AddExpr< Left, Right > operator+ (const Expr< Left > &left, const Expr< Right > &right)
 Addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
std::enable_if< TiledArray::detail::is_numeric_v< Scalar >, ScalAddExpr< Left, Right, Scalar > >::type operator* (const AddExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
std::enable_if< TiledArray::detail::is_numeric_v< Scalar >, ScalAddExpr< Left, Right, Scalar > >::type operator* (const Scalar &factor, const AddExpr< Left, Right > &expr)
 Scaled-addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalAddExpr< Left, Right, mult_t< Scalar1, Scalar2 > > operator* (const ScalAddExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalAddExpr< Left, Right, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalAddExpr< Left, Right, Scalar2 > &expr)
 Scaled-addition expression factor. More...
 
template<typename Left , typename Right >
ScalAddExpr< Left, Right, typename ExprTrait< AddExpr< Left, Right > >::numeric_type > operator- (const AddExpr< Left, Right > &expr)
 Negated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalAddExpr< Left, Right, Scalar > operator- (const ScalAddExpr< Left, Right, Scalar > &expr)
 Negated scaled-addition expression factor. More...
 
template<typename Left , typename Right >
ConjAddExpr< Left, Right > conj (const AddExpr< Left, Right > &expr)
 Conjugated addition expression factory. More...
 
template<typename Left , typename Right >
AddExpr< Left, Right > conj (const ConjAddExpr< Left, Right > &expr)
 Conjugated-conjugate addition expression factory. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjAddExpr< Left, Right, Scalar > conj (const ScalAddExpr< Left, Right, Scalar > &expr)
 Conjugated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalAddExpr< Left, Right, Scalar > conj (const ScalConjAddExpr< Left, Right, Scalar > &expr)
 Conjugated-conjugate addition expression factory. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjAddExpr< Left, Right, Scalar > operator* (const ConjAddExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-conjugated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjAddExpr< Left, Right, Scalar > operator* (const Scalar &factor, const ConjAddExpr< Left, Right > &expr)
 Scaled-conjugated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjAddExpr< Left, Right, mult_t< Scalar1, Scalar2 > > operator* (const ScalConjAddExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-conjugated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjAddExpr< Left, Right, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalConjAddExpr< Left, Right, Scalar2 > &expr)
 Scaled-conjugated addition expression factor. More...
 
template<typename Left , typename Right >
ScalConjAddExpr< Left, Right, typename ExprTrait< ConjAddExpr< Left, Right > >::numeric_type > operator- (const ConjAddExpr< Left, Right > &expr)
 Negated-conjugated addition expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjAddExpr< Left, Right, Scalar > operator- (const ScalConjAddExpr< Left, Right, Scalar > &expr)
 Negated-conjugated addition expression factor. More...
 
template<typename Array , typename Scalar , bool Alias, typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalBlkTsrExpr< typename std::remove_const< Array >::type, Scalar > operator* (const BlkTsrExpr< Array, Alias > &expr, const Scalar &factor)
 Scaled-block expression factor. More...
 
template<typename Array , typename Scalar , bool Alias, typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalBlkTsrExpr< typename std::remove_const< Array >::type, Scalar > operator* (const Scalar &factor, const BlkTsrExpr< Array, Alias > &expr)
 Scaled-block expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 >>::type * = nullptr>
ScalBlkTsrExpr< Array, mult_t< Scalar1, Scalar2 > > operator* (const ScalBlkTsrExpr< Array, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-block expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 >>::type * = nullptr>
ScalBlkTsrExpr< Array, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalBlkTsrExpr< Array, Scalar2 > &expr)
 Scaled-block expression factor. More...
 
template<typename Array >
ScalBlkTsrExpr< typename std::remove_const< Array >::type, typename ExprTrait< BlkTsrExpr< Array, true > >::numeric_type > operator- (const BlkTsrExpr< Array, true > &expr)
 Negated block expression factor. More...
 
template<typename Array , typename Scalar >
ScalBlkTsrExpr< Array, Scalar > operator- (const ScalBlkTsrExpr< Array, Scalar > &expr)
 Negated scaled-block expression factor. More...
 
template<typename Array , bool Alias>
ConjBlkTsrExpr< typename std::remove_const< Array >::type > conj (const BlkTsrExpr< Array, Alias > &expr)
 Conjugated block tensor expression factory. More...
 
template<typename Array >
BlkTsrExpr< const Array, true > conj (const ConjBlkTsrExpr< Array > &expr)
 Conjugate-conjugate block tensor expression factory. More...
 
template<typename Array , typename Scalar >
ScalConjBlkTsrExpr< Array, Scalar > conj (const ScalBlkTsrExpr< Array, Scalar > &expr)
 Conjugated block tensor expression factor. More...
 
template<typename Array , typename Scalar >
ScalBlkTsrExpr< Array, Scalar > conj (const ScalConjBlkTsrExpr< Array, Scalar > &expr)
 Conjugate-conjugate tensor expression factory. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalConjBlkTsrExpr< Array, Scalar > operator* (const ConjBlkTsrExpr< const Array > &expr, const Scalar &factor)
 Scaled block tensor expression factor. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalConjBlkTsrExpr< Array, Scalar > operator* (const Scalar &factor, const ConjBlkTsrExpr< Array > &expr)
 Scaled block tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 >>::type * = nullptr>
ScalConjBlkTsrExpr< Array, mult_t< Scalar1, Scalar2 > > operator* (const ScalConjBlkTsrExpr< Array, Scalar1 > &expr, const Scalar2 &factor)
 Scaled block tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 >>::type * = nullptr>
ScalConjBlkTsrExpr< Array, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalConjBlkTsrExpr< Array, Scalar2 > &expr)
 Scaled-tensor expression factor. More...
 
template<typename Array >
ScalConjBlkTsrExpr< Array, typename ExprTrait< ConjBlkTsrExpr< Array > >::numeric_type > operator- (const ConjBlkTsrExpr< Array > &expr)
 Negated-conjugated-tensor expression factor. More...
 
template<typename Array , typename Scalar >
ScalConjBlkTsrExpr< Array, Scalar > operator- (const ScalConjBlkTsrExpr< Array, Scalar > &expr)
 Negated-conjugated-tensor expression factor. More...
 
template<typename IndexList_ , typename LHSType , typename RHSType >
auto range_from_annotation (const IndexList_ &target_idxs, const IndexList_ &lhs_idxs, const IndexList_ &rhs_idxs, LHSType &&lhs, RHSType &&rhs)
 
template<typename IndexList_ , typename LHSType , typename RHSType >
auto trange_from_annotation (const IndexList_ &target_idxs, const IndexList_ &lhs_idxs, const IndexList_ &rhs_idxs, LHSType &&lhs, RHSType &&rhs)
 
template<typename IndexList_ , typename IndexType >
auto make_index (const IndexList_ &free_vars, const IndexList_ &bound_vars, const IndexList_ &tensor_vars, IndexType &&free_idx, IndexType &&bound_idx)
 
auto make_bound_annotation (const BipartiteIndexList &free_vars, const BipartiteIndexList &lhs_vars, const BipartiteIndexList &rhs_vars)
 Wraps process of getting a list with the bound variables. More...
 
auto make_bound_annotation (const IndexList &free_vars, const IndexList &lhs_vars, const IndexList &rhs_vars)
 Wraps process of getting a list with the bound variables. More...
 
template<typename ResultType , typename LHSType , typename RHSType >
void einsum (TsrExpr< ResultType, true > out, const TsrExpr< LHSType, true > &lhs, const TsrExpr< RHSType, true > &rhs)
 
template<typename A , bool Alias>
ExprTraceTarget operator<< (std::ostream &os, const TsrExpr< A, Alias > &tsr)
 Expression trace factory function. More...
 
IndexList operator* (const ::TiledArray::Permutation &, const IndexList &)
 
void swap (IndexList &v0, IndexList &v1)
 Exchange the content of the two index lists. More...
 
BipartiteIndexList operator* (const ::TiledArray::Permutation &, const BipartiteIndexList &)
 
void swap (BipartiteIndexList &v0, BipartiteIndexList &v1)
 Exchange the content of the two index lists. More...
 
bool operator== (const IndexList &v0, const IndexList &v1)
 
bool operator!= (const IndexList &v0, const IndexList &v1)
 
std::ostream & operator<< (std::ostream &out, const IndexList &v)
 ostream IndexList output operator. More...
 
template<typename T , typename... Args>
auto all_annotations (T &&v, Args &&... args)
 Returns a set of each annotation found in at least one of the index lists. More...
 
template<typename T , typename... Args>
auto common_annotations (T &&v, Args &&... args)
 Returns the set of annotations found in all of the index lists. More...
 
template<typename IndexList_ , typename... Args>
auto bound_annotations (const IndexList_ &out, Args &&... args)
 
bool operator!= (const BipartiteIndexList &v0, const BipartiteIndexList &v1)
 
std::ostream & operator<< (std::ostream &out, const BipartiteIndexList &v)
 
auto inner (const IndexList &p)
 
auto outer (const IndexList &p)
 
auto inner_size (const IndexList &p)
 
auto outer_size (const IndexList &p)
 
auto inner (const BipartiteIndexList &p)
 
auto outer (const BipartiteIndexList &p)
 
auto inner_size (const BipartiteIndexList &p)
 
auto outer_size (const BipartiteIndexList &p)
 
template<typename Tile >
auto make_tile_contract_op (const IndexList &left_indices, const IndexList &right_indices, const IndexList &result_indices)
 
template<typename Left , typename Right >
MultExpr< Left, Right > 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 > 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 > 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 > > 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 > > 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 > operator- (const MultExpr< Left, Right > &expr)
 Negated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalMultExpr< Left, Right, Scalar > operator- (const ScalMultExpr< Left, Right, Scalar > &expr)
 Negated scaled-multiplication expression factor. More...
 
template<typename Left , typename Right >
ConjMultExpr< Left, Right > conj (const MultExpr< Left, Right > &expr)
 Conjugated multiplication expression factory. More...
 
template<typename Left , typename Right >
MultExpr< Left, Right > conj (const ConjMultExpr< Left, Right > &expr)
 Conjugated-conjugate multiplication expression factory. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr< Left, Right, Scalar > conj (const ScalMultExpr< Left, Right, Scalar > &expr)
 Conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalMultExpr< Left, Right, Scalar > 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 > 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 > 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 > > 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 > > 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 > operator- (const ConjMultExpr< Left, Right > &expr)
 Negated-conjugated multiplication expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr< Left, Right, Scalar > 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 & 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 & 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 & operator*= (Numeric &result, const MultExpr< Left, Right > &expr)
 Dot product multiply-to operator. More...
 
blas::Op to_cblas_op (PermutationType permtype)
 
std::shared_ptr< BinaryOpPermutationOptimizermake_permutation_optimizer (TensorProduct product_type, const IndexList &left_indices, const IndexList &right_indices, bool prefer_to_permute_left)
 
std::shared_ptr< BinaryOpPermutationOptimizermake_permutation_optimizer (TensorProduct product_type, const IndexList &target_indices, const IndexList &left_indices, const IndexList &right_indices, bool prefer_to_permute_left)
 
std::shared_ptr< BinaryOpPermutationOptimizermake_permutation_optimizer (const IndexList &left_indices, const IndexList &right_indices, bool prefer_to_permute_left)
 
std::shared_ptr< BinaryOpPermutationOptimizermake_permutation_optimizer (const IndexList &target_indices, const IndexList &left_indices, const IndexList &right_indices, bool prefer_to_permute_left)
 
TensorProduct compute_product_type (const IndexList &left_indices, const IndexList &right_indices)
 
TensorProduct compute_product_type (const IndexList &left_indices, const IndexList &right_indices, const IndexList &target_indices)
 
template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalExpr< Arg, Scalar > operator* (const Expr< Arg > &expr, const Scalar &factor)
 Scaled expression factor. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalExpr< Arg, Scalar > operator* (const Scalar &factor, const Expr< Arg > &expr)
 Scaled expression factor. More...
 
template<typename Arg , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalExpr< Arg, mult_t< Scalar1, Scalar2 > > operator* (const ScalExpr< Arg, Scalar1 > &expr, const Scalar2 &factor)
 Scaled expression factor. More...
 
template<typename Arg , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalExpr< Arg, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalExpr< Arg, Scalar2 > &expr)
 Scaled expression factor. More...
 
template<typename Arg >
ScalExpr< Arg, typename ExprTrait< Arg >::scalar_type > operator- (const Expr< Arg > &expr)
 Negated expression factor. More...
 
template<typename Arg , typename Scalar >
ScalExpr< Arg, Scalar > operator- (const ScalExpr< Arg, Scalar > &expr)
 Negated expression factor. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalTsrExpr< typename std::remove_const< Array >::type, Scalar > operator* (const TsrExpr< Array, true > &expr, const Scalar &factor)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalTsrExpr< typename std::remove_const< Array >::type, Scalar > operator* (const Scalar &factor, const TsrExpr< Array, true > &expr)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalTsrExpr< Array, mult_t< Scalar1, Scalar2 > > operator* (const ScalTsrExpr< Array, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalTsrExpr< Array, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalTsrExpr< Array, Scalar2 > &expr)
 Scaled-tensor expression factor. More...
 
template<typename Array >
ScalTsrExpr< typename std::remove_const< Array >::type, typename ExprTrait< TsrExpr< Array, true > >::numeric_type > operator- (const TsrExpr< Array, true > &expr)
 Negated-tensor expression factor. More...
 
template<typename Array , typename Scalar >
ScalTsrExpr< Array, Scalar > operator- (const ScalTsrExpr< Array, Scalar > &expr)
 Negated-tensor expression factor. More...
 
template<typename Array >
ConjTsrExpr< typename std::remove_const< Array >::type > conj (const TsrExpr< Array, true > &expr)
 Conjugated tensor expression factory. More...
 
template<typename Array >
TsrExpr< const Array, true > conj (const ConjTsrExpr< Array > &expr)
 Conjugate-conjugate tensor expression factory. More...
 
template<typename Array , typename Scalar >
ScalConjTsrExpr< Array, Scalar > conj (const ScalTsrExpr< Array, Scalar > &expr)
 Conjugated-tensor expression factor. More...
 
template<typename Array , typename Scalar >
ScalTsrExpr< Array, Scalar > conj (const ScalConjTsrExpr< Array, Scalar > &expr)
 Conjugate-conjugate tensor expression factory. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjTsrExpr< Array, Scalar > operator* (const ConjTsrExpr< const Array > &expr, const Scalar &factor)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjTsrExpr< Array, Scalar > operator* (const Scalar &factor, const ConjTsrExpr< Array > &expr)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjTsrExpr< Array, mult_t< Scalar1, Scalar2 > > operator* (const ScalConjTsrExpr< Array, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-tensor expression factor. More...
 
template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjTsrExpr< Array, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalConjTsrExpr< Array, Scalar2 > &expr)
 Scaled-tensor expression factor. More...
 
template<typename Array >
ScalConjTsrExpr< Array, typename ExprTrait< ConjTsrExpr< Array > >::numeric_type > operator- (const ConjTsrExpr< Array > &expr)
 Negated-conjugated-tensor expression factor. More...
 
template<typename Array , typename Scalar >
ScalConjTsrExpr< Array, Scalar > operator- (const ScalConjTsrExpr< Array, Scalar > &expr)
 Negated-conjugated-tensor expression factor. More...
 
template<typename Left , typename Right >
SubtExpr< Left, Right > operator- (const Expr< Left > &left, const Expr< Right > &right)
 Subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalSubtExpr< Left, Right, Scalar > operator* (const SubtExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalSubtExpr< Left, Right, Scalar > operator* (const Scalar &factor, const SubtExpr< Left, Right > &expr)
 Scaled-subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalSubtExpr< Left, Right, mult_t< Scalar1, Scalar2 > > operator* (const ScalSubtExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalSubtExpr< Left, Right, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalSubtExpr< Left, Right, Scalar2 > &expr)
 Scaled-subtraction expression factor. More...
 
template<typename Left , typename Right >
ScalSubtExpr< Left, Right, typename ExprTrait< SubtExpr< Left, Right > >::numeric_type > operator- (const SubtExpr< Left, Right > &expr)
 Negated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalSubtExpr< Left, Right, Scalar > operator- (const ScalSubtExpr< Left, Right, Scalar > &expr)
 Negated scaled-subtraction expression factor. More...
 
template<typename Left , typename Right >
ConjSubtExpr< Left, Right > conj (const SubtExpr< Left, Right > &expr)
 Conjugated subtraction expression factory. More...
 
template<typename Left , typename Right >
SubtExpr< Left, Right > conj (const ConjSubtExpr< Left, Right > &expr)
 Conjugated-conjugate subtraction expression factory. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjSubtExpr< Left, Right, Scalar > conj (const ScalSubtExpr< Left, Right, Scalar > &expr)
 Conjugated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalSubtExpr< Left, Right, Scalar > conj (const ScalConjSubtExpr< Left, Right, Scalar > &expr)
 Conjugated-conjugate subtraction expression factory. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjSubtExpr< Left, Right, Scalar > operator* (const ConjSubtExpr< Left, Right > &expr, const Scalar &factor)
 Scaled-conjugated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjSubtExpr< Left, Right, Scalar > operator* (const Scalar &factor, const ConjSubtExpr< Left, Right > &expr)
 Scaled-conjugated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjSubtExpr< Left, Right, mult_t< Scalar1, Scalar2 > > operator* (const ScalConjSubtExpr< Left, Right, Scalar1 > &expr, const Scalar2 &factor)
 Scaled-conjugated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjSubtExpr< Left, Right, mult_t< Scalar2, Scalar1 > > operator* (const Scalar1 &factor, const ScalConjSubtExpr< Left, Right, Scalar2 > &expr)
 Scaled-conjugated subtraction expression factor. More...
 
template<typename Left , typename Right >
ScalConjSubtExpr< Left, Right, typename ExprTrait< ConjSubtExpr< Left, Right > >::numeric_type > operator- (const ConjSubtExpr< Left, Right > &expr)
 Negated-conjugated subtraction expression factor. More...
 
template<typename Left , typename Right , typename Scalar >
ScalConjSubtExpr< Left, Right, Scalar > operator- (const ScalConjSubtExpr< Left, Right, Scalar > &expr)
 Negated-conjugated subtraction expression factor. More...
 

Typedef Documentation

◆ ConjAddExpr

template<typename Left , typename Right >
using TiledArray::expressions::ConjAddExpr = typedef ScalAddExpr<Left, Right, TiledArray::detail::ComplexConjugate<void> >

Definition at line 36 of file add_expr.h.

◆ ConjBlkTsrExpr

Definition at line 47 of file blk_tsr_expr.h.

◆ ConjMultExpr

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

Definition at line 36 of file mult_expr.h.

◆ ConjSubtExpr

template<typename Left , typename Right >
using TiledArray::expressions::ConjSubtExpr = typedef ScalSubtExpr<Left, Right, TiledArray::detail::ComplexConjugate<void> >

Definition at line 36 of file subt_expr.h.

◆ ConjTsrExpr

Definition at line 35 of file scal_tsr_expr.h.

◆ ScalConjAddExpr

template<typename Left , typename Right , typename Scalar >
using TiledArray::expressions::ScalConjAddExpr = typedef ScalAddExpr<Left, Right, TiledArray::detail::ComplexConjugate<Scalar> >

Definition at line 40 of file add_expr.h.

◆ ScalConjBlkTsrExpr

template<typename Array , typename Scalar >
using TiledArray::expressions::ScalConjBlkTsrExpr = typedef ScalBlkTsrExpr<Array, TiledArray::detail::ComplexConjugate<Scalar> >

Definition at line 51 of file blk_tsr_expr.h.

◆ ScalConjMultExpr

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

Definition at line 40 of file mult_expr.h.

◆ ScalConjSubtExpr

template<typename Left , typename Right , typename Scalar >
using TiledArray::expressions::ScalConjSubtExpr = typedef ScalSubtExpr<Left, Right, TiledArray::detail::ComplexConjugate<Scalar> >

Definition at line 40 of file subt_expr.h.

◆ ScalConjTsrExpr

template<typename Array , typename Scalar >
using TiledArray::expressions::ScalConjTsrExpr = typedef ScalTsrExpr<Array, TiledArray::detail::ComplexConjugate<Scalar> >

Definition at line 39 of file scal_tsr_expr.h.

Enumeration Type Documentation

◆ PermutationType

Denotes whether permutation op is an identity or a matrix transpose; this is important to be able to fuse permutations into GEMM:

  • identity : an identity permutation
  • matrix_transpose : matrix transpose (e.g. "ijklm" -> "lmijk")
  • general : general permutation
Enumerator
identity 
matrix_transpose 
general 

Definition at line 44 of file permopt.h.

◆ TensorProduct

types of binary tensor products known to TiledArray

Enumerator
Hadamard 

fused indices only

Contraction 

(at least 1) free and (at least 1) contracted indices

General 

free, fused, and contracted indices

Invalid 

invalid

Definition at line 35 of file product.h.

Function Documentation

◆ all_annotations()

template<typename T , typename... Args>
auto TiledArray::expressions::all_annotations ( T &&  v,
Args &&...  args 
)

Returns a set of each annotation found in at least one of the index lists.

Definition at line 720 of file index_list.h.

Here is the caller graph for this function:

◆ bound_annotations()

template<typename IndexList_ , typename... Args>
auto TiledArray::expressions::bound_annotations ( const IndexList_ &  out,
Args &&...  args 
)

Definition at line 747 of file index_list.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common_annotations()

template<typename T , typename... Args>
auto TiledArray::expressions::common_annotations ( T &&  v,
Args &&...  args 
)

Returns the set of annotations found in all of the index lists.

Definition at line 731 of file index_list.h.

Here is the caller graph for this function:

◆ compute_product_type() [1/2]

TensorProduct TiledArray::expressions::compute_product_type ( const IndexList left_indices,
const IndexList right_indices 
)
inline

computes the tensor product type corresponding to the left and right argument indices

Parameters
left_indicesthe left argument index list
right_indicesthe right argument index list
Returns
TensorProduct::Invalid is either argument is empty, TensorProduct::Hadamard if the arguments are related by a permutation, else TensorProduct::Contraction

Definition at line 51 of file product.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_product_type() [2/2]

TensorProduct TiledArray::expressions::compute_product_type ( const IndexList left_indices,
const IndexList right_indices,
const IndexList target_indices 
)
inline

computes the tensor product type corresponding to the left and right argument indices, and validates against the target indices

Definition at line 66 of file product.h.

Here is the call graph for this function:

◆ conj() [1/20]

template<typename Left , typename Right >
ConjAddExpr<Left, Right> TiledArray::expressions::conj ( const AddExpr< Left, Right > &  expr)
inline

Conjugated addition expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe addition expression object
Returns
A conjugated addition expression object

Definition at line 281 of file add_expr.h.

Here is the call graph for this function:

◆ conj() [2/20]

template<typename Array , bool Alias>
ConjBlkTsrExpr<typename std::remove_const<Array>::type> TiledArray::expressions::conj ( const BlkTsrExpr< Array, Alias > &  expr)
inline

Conjugated block tensor expression factory.

Template Parameters
ArrayA DistArray type
AliasTiles alias flag
Parameters
exprThe block tensor expression object
Returns
A conjugated expression object

Definition at line 685 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [3/20]

template<typename Left , typename Right >
AddExpr<Left, Right> TiledArray::expressions::conj ( const ConjAddExpr< Left, Right > &  expr)
inline

Conjugated-conjugate addition expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe addition expression object
Returns
A tensor expression object

Definition at line 292 of file add_expr.h.

◆ conj() [4/20]

template<typename Array >
BlkTsrExpr<const Array, true> TiledArray::expressions::conj ( const ConjBlkTsrExpr< Array > &  expr)
inline

Conjugate-conjugate block tensor expression factory.

Template Parameters
ArrayA DistArray type
Parameters
exprThe tensor expression object
Returns
A tensor expression object

Definition at line 698 of file blk_tsr_expr.h.

◆ conj() [5/20]

template<typename Left , typename Right >
MultExpr<Left, Right> TiledArray::expressions::conj ( const ConjMultExpr< Left, Right > &  expr)
inline

Conjugated-conjugate multiplication expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe multiplication expression object
Returns
A multiplication expression object

Definition at line 318 of file mult_expr.h.

◆ conj() [6/20]

template<typename Left , typename Right >
SubtExpr<Left, Right> TiledArray::expressions::conj ( const ConjSubtExpr< Left, Right > &  expr)
inline

Conjugated-conjugate subtraction expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe subtraction expression object
Returns
A tensor expression object

Definition at line 296 of file subt_expr.h.

◆ conj() [7/20]

template<typename Array >
TsrExpr<const Array, true> TiledArray::expressions::conj ( const ConjTsrExpr< Array > &  expr)
inline

Conjugate-conjugate tensor expression factory.

Template Parameters
ArrayA DistArray type
Parameters
exprThe tensor expression object
Returns
A tensor expression object

Definition at line 231 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [8/20]

template<typename Left , typename Right >
ConjMultExpr<Left, Right> TiledArray::expressions::conj ( const MultExpr< Left, Right > &  expr)
inline

Conjugated multiplication expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe multiplication expression object
Returns
A conjugated multiplication expression object

Definition at line 307 of file mult_expr.h.

Here is the call graph for this function:

◆ conj() [9/20]

template<typename Left , typename Right , typename Scalar >
ScalConjAddExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalAddExpr< Left, Right, Scalar > &  expr)
inline

Conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe addition expression object
Returns
A conjugated addition expression object

Definition at line 304 of file add_expr.h.

Here is the call graph for this function:

◆ conj() [10/20]

template<typename Array , typename Scalar >
ScalConjBlkTsrExpr<Array, Scalar> TiledArray::expressions::conj ( const ScalBlkTsrExpr< Array, Scalar > &  expr)
inline

Conjugated block tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe block tensor expression object
Returns
A conjugated expression object

Definition at line 710 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [11/20]

template<typename Left , typename Right , typename Scalar >
ScalAddExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalConjAddExpr< Left, Right, Scalar > &  expr)
inline

Conjugated-conjugate addition expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled conjugate tensor expression object
Returns
A conjugated expression object

Definition at line 319 of file add_expr.h.

Here is the call graph for this function:

◆ conj() [12/20]

template<typename Array , typename Scalar >
ScalBlkTsrExpr<Array, Scalar> TiledArray::expressions::conj ( const ScalConjBlkTsrExpr< Array, Scalar > &  expr)
inline

Conjugate-conjugate tensor expression factory.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled conjugate tensor expression object
Returns
A conjugated expression object

Definition at line 725 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [13/20]

template<typename Left , typename Right , typename Scalar >
ScalMultExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalConjMultExpr< Left, Right, Scalar > &  expr)
inline

Conjugated-conjugate multiplication expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled conjugate tensor expression object
Returns
A scaled multiplication expression object

Definition at line 345 of file mult_expr.h.

Here is the call graph for this function:

◆ conj() [14/20]

template<typename Left , typename Right , typename Scalar >
ScalSubtExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalConjSubtExpr< Left, Right, Scalar > &  expr)
inline

Conjugated-conjugate subtraction expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled conjugate tensor expression object
Returns
A conjugated expression object

Definition at line 323 of file subt_expr.h.

Here is the call graph for this function:

◆ conj() [15/20]

template<typename Array , typename Scalar >
ScalTsrExpr<Array, Scalar> TiledArray::expressions::conj ( const ScalConjTsrExpr< Array, Scalar > &  expr)
inline

Conjugate-conjugate tensor expression factory.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled conjugate tensor expression object
Returns
A conjugated expression object

Definition at line 256 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [16/20]

template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalMultExpr< Left, Right, Scalar > &  expr)
inline

Conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe multiplication expression object
Returns
A scaled-conjugated multiplication expression object

Definition at line 330 of file mult_expr.h.

Here is the call graph for this function:

◆ conj() [17/20]

template<typename Left , typename Right , typename Scalar >
ScalConjSubtExpr<Left, Right, Scalar> TiledArray::expressions::conj ( const ScalSubtExpr< Left, Right, Scalar > &  expr)
inline

Conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe subtraction expression object
Returns
A conjugated subtraction expression object

Definition at line 308 of file subt_expr.h.

Here is the call graph for this function:

◆ conj() [18/20]

template<typename Array , typename Scalar >
ScalConjTsrExpr<Array, Scalar> TiledArray::expressions::conj ( const ScalTsrExpr< Array, Scalar > &  expr)
inline

Conjugated-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe tensor expression object
Returns
A conjugated expression object

Definition at line 242 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ conj() [19/20]

template<typename Left , typename Right >
ConjSubtExpr<Left, Right> TiledArray::expressions::conj ( const SubtExpr< Left, Right > &  expr)
inline

Conjugated subtraction expression factory.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe subtraction expression object
Returns
A conjugated subtraction expression object

Definition at line 285 of file subt_expr.h.

Here is the call graph for this function:

◆ conj() [20/20]

template<typename Array >
ConjTsrExpr<typename std::remove_const<Array>::type> TiledArray::expressions::conj ( const TsrExpr< Array, true > &  expr)
inline

Conjugated tensor expression factory.

Template Parameters
ArrayA DistArray type
Parameters
exprThe tensor expression object
Returns
A conjugated expression object

Definition at line 219 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ einsum()

template<typename ResultType , typename LHSType , typename RHSType >
void TiledArray::expressions::einsum ( TsrExpr< ResultType, true >  out,
const TsrExpr< LHSType, true > &  lhs,
const TsrExpr< RHSType, true > &  rhs 
)

Definition at line 561 of file contraction_helpers.h.

Here is the call graph for this function:

◆ inner() [1/2]

auto TiledArray::expressions::inner ( const BipartiteIndexList p)
inline

Definition at line 885 of file index_list.h.

Here is the call graph for this function:

◆ inner() [2/2]

auto TiledArray::expressions::inner ( const IndexList p)
inline

Definition at line 872 of file index_list.h.

Here is the caller graph for this function:

◆ inner_size() [1/2]

auto TiledArray::expressions::inner_size ( const BipartiteIndexList p)
inline

Definition at line 889 of file index_list.h.

Here is the call graph for this function:

◆ inner_size() [2/2]

auto TiledArray::expressions::inner_size ( const IndexList p)
inline

Definition at line 881 of file index_list.h.

Here is the caller graph for this function:

◆ make_bound_annotation() [1/2]

auto TiledArray::expressions::make_bound_annotation ( const BipartiteIndexList free_vars,
const BipartiteIndexList lhs_vars,
const BipartiteIndexList rhs_vars 
)
inline

Wraps process of getting a list with the bound variables.

Definition at line 146 of file contraction_helpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_bound_annotation() [2/2]

auto TiledArray::expressions::make_bound_annotation ( const IndexList free_vars,
const IndexList lhs_vars,
const IndexList rhs_vars 
)
inline

Wraps process of getting a list with the bound variables.

Definition at line 157 of file contraction_helpers.h.

Here is the call graph for this function:

◆ make_index()

template<typename IndexList_ , typename IndexType >
auto TiledArray::expressions::make_index ( const IndexList_ &  free_vars,
const IndexList_ &  bound_vars,
const IndexList_ &  tensor_vars,
IndexType &&  free_idx,
IndexType &&  bound_idx 
)

Maps a tensor's annotation to an actual index.

This function assumes that the contraction is being done in a loop form with one loop running over free indices (those present on both sides of the assignment) and one running over the bound indices (those only present on the right side of the assignment). Subject to this assumption, this function will map the coordinate indices of the two loops to the coordinate index of the tensor by using the annotation of the tensor.

Template Parameters
IndexTypeThe type used to hold ordinal indices. Assumed to satisfy random-access container.
Parameters
[in]free_varsAn index list containing the free variables of the contraction.
[in]bound_varsAn index list containing the bound variables of the contraction.
[in]tensor_varsAn index list containing the annotation for the tensor we want the index of.
[in]free_idxA coordinate index such that free_idx[i] is the offset along modes annotated free_vars[i].
[in]bound_idxA coordinate index such that bound_idx[i] is the offset along modes annotated bound_vars[i].
Returns
A coordinate index such that the i-th element is the offset associated with annotation tensor_vars[i].

Definition at line 130 of file contraction_helpers.h.

Here is the caller graph for this function:

◆ make_permutation_optimizer() [1/4]

std::shared_ptr<BinaryOpPermutationOptimizer> TiledArray::expressions::make_permutation_optimizer ( const IndexList left_indices,
const IndexList right_indices,
bool  prefer_to_permute_left 
)
inline

Definition at line 567 of file permopt.h.

Here is the call graph for this function:

◆ make_permutation_optimizer() [2/4]

std::shared_ptr<BinaryOpPermutationOptimizer> TiledArray::expressions::make_permutation_optimizer ( const IndexList target_indices,
const IndexList left_indices,
const IndexList right_indices,
bool  prefer_to_permute_left 
)
inline

Definition at line 575 of file permopt.h.

Here is the call graph for this function:

◆ make_permutation_optimizer() [3/4]

std::shared_ptr<BinaryOpPermutationOptimizer> TiledArray::expressions::make_permutation_optimizer ( TensorProduct  product_type,
const IndexList left_indices,
const IndexList right_indices,
bool  prefer_to_permute_left 
)
inline

Definition at line 530 of file permopt.h.

Here is the caller graph for this function:

◆ make_permutation_optimizer() [4/4]

std::shared_ptr<BinaryOpPermutationOptimizer> TiledArray::expressions::make_permutation_optimizer ( TensorProduct  product_type,
const IndexList target_indices,
const IndexList left_indices,
const IndexList right_indices,
bool  prefer_to_permute_left 
)
inline

Definition at line 548 of file permopt.h.

◆ make_tile_contract_op()

template<typename Tile >
auto TiledArray::expressions::make_tile_contract_op ( const IndexList left_indices,
const IndexList right_indices,
const IndexList result_indices 
)
inline

Definition at line 49 of file mult_engine.h.

◆ operator!=() [1/2]

bool TiledArray::expressions::operator!= ( const BipartiteIndexList v0,
const BipartiteIndexList v1 
)
inline

Determines if two BipartiteIndexLists are different.

Two IndexList instances are equivalent if they contain the same number of indices, the indices are partitioned into inner and outer indices identically, and if the $i$-th index of each instance are equivalent for all $i$. In particular this means BipartiteIndexList instances will compare different if they use different capitalization and/or are permutations of each other.

Parameters
[in]otherThe BipartiteIndexList instance we are comparing to.
Returns
True if the two instances are different and false otherwise.
Exceptions
NoneNo throw guarantee.

Definition at line 775 of file index_list.h.

◆ operator!=() [2/2]

bool TiledArray::expressions::operator!= ( const IndexList v0,
const IndexList v1 
)
inline

Definition at line 334 of file index_list.h.

Here is the call graph for this function:

◆ operator*() [1/47]

BipartiteIndexList TiledArray::expressions::operator* ( const ::TiledArray::Permutation p,
const BipartiteIndexList v 
)
inline

Definition at line 780 of file index_list.h.

Here is the call graph for this function:

◆ operator*() [2/47]

IndexList TiledArray::expressions::operator* ( const ::TiledArray::Permutation p,
const IndexList v 
)
inline

Definition at line 338 of file index_list.h.

Here is the call graph for this function:

◆ operator*() [3/47]

template<typename Left , typename Right , typename Scalar >
std::enable_if<TiledArray::detail::is_numeric_v<Scalar>, ScalAddExpr<Left, Right, Scalar> >::type TiledArray::expressions::operator* ( const AddExpr< Left, Right > &  expr,
const Scalar &  factor 
)
inline

Scaled-addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe addition expression object
factorThe scaling factor
Returns
A scaled-addition expression object

Definition at line 191 of file add_expr.h.

◆ operator*() [4/47]

template<typename Array , typename Scalar , bool Alias, typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalBlkTsrExpr<typename std::remove_const<Array>::type, Scalar> TiledArray::expressions::operator* ( const BlkTsrExpr< Array, Alias > &  expr,
const Scalar &  factor 
)
inline

Scaled-block expression factor.

Template Parameters
ArrayThe array type
ScalarArray scalar type
AliasTiles alias flag
Parameters
exprThe block expression object
factorThe scaling factor
Returns
Array scaled-block expression object

Definition at line 588 of file blk_tsr_expr.h.

◆ operator*() [5/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjAddExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const ConjAddExpr< Left, Right > &  expr,
const Scalar &  factor 
)
inline

Scaled-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 337 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [6/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalConjBlkTsrExpr<Array, Scalar> TiledArray::expressions::operator* ( const ConjBlkTsrExpr< const Array > &  expr,
const Scalar &  factor 
)
inline

Scaled block tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe block tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 743 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [7/47]

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

Scaled-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe tensor expression object
factorThe scaling factor
Returns
A scaled-conjugated multiplication expression object

Definition at line 363 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [8/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const ConjSubtExpr< Left, Right > &  expr,
const Scalar &  factor 
)
inline

Scaled-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 341 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [9/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjTsrExpr<Array, Scalar> TiledArray::expressions::operator* ( const ConjTsrExpr< const Array > &  expr,
const Scalar &  factor 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 273 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [10/47]

template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalExpr<Arg, Scalar> TiledArray::expressions::operator* ( const Expr< Arg > &  expr,
const Scalar &  factor 
)
inline

Scaled expression factor.

Template Parameters
ArgThe expression type
ScalarA scalar type
Parameters
exprThe expression object
factorThe scaling factor
Returns
A scaled expression object

Definition at line 113 of file scal_expr.h.

Here is the call graph for this function:

◆ operator*() [11/47]

template<typename Left , typename Right >
MultExpr<Left, Right> TiledArray::expressions::operator* ( const Expr< Left > &  left,
const Expr< Right > &  right 
)
inline

Multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
leftThe left-hand expression object
rightThe right-hand expression object
Returns
An multiplication expression object

Definition at line 191 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [12/47]

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

Scaled-multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe multiplication expression object
factorThe scaling factor
Returns
A scaled-multiplication expression object

Definition at line 215 of file mult_expr.h.

◆ operator*() [13/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalAddExpr<Left, Right, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalAddExpr< Left, Right, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The expression scaling factor type
Scalar2The scaling factor type
Parameters
exprThe addition expression object
factorThe scaling factor
Returns
A scaled-addition expression object

Definition at line 222 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [14/47]

template<typename Left , typename Right , typename Scalar >
std::enable_if<TiledArray::detail::is_numeric_v<Scalar>, ScalAddExpr<Left, Right, Scalar> >::type TiledArray::expressions::operator* ( const Scalar &  factor,
const AddExpr< Left, Right > &  expr 
)
inline

Scaled-addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe addition expression object
Returns
A scaled-addition expression object

Definition at line 206 of file add_expr.h.

◆ operator*() [15/47]

template<typename Array , typename Scalar , bool Alias, typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalBlkTsrExpr<typename std::remove_const<Array>::type, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const BlkTsrExpr< Array, Alias > &  expr 
)
inline

Scaled-block expression factor.

Template Parameters
ArrayThe array type
ScalarA scalar type
AliasTiles alias flag
Parameters
factorThe scaling factor
exprThe block expression object
Returns
A scaled-block expression object

Definition at line 606 of file blk_tsr_expr.h.

◆ operator*() [16/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjAddExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const ConjAddExpr< Left, Right > &  expr 
)
inline

Scaled-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe tensor expression object
Returns
A scaled-conjugated addition expression object

Definition at line 354 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [17/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar >>::type * = nullptr>
ScalConjBlkTsrExpr<Array, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const ConjBlkTsrExpr< Array > &  expr 
)
inline

Scaled block tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe block tensor expression object
Returns
A scaled-tensor expression object

Definition at line 760 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [18/47]

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

Scaled-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe multiplication expression object
Returns
A scaled-conjugated multiplication expression object

Definition at line 380 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [19/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const ConjSubtExpr< Left, Right > &  expr 
)
inline

Scaled-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe tensor expression object
Returns
A scaled-conjugated subtraction expression object

Definition at line 358 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [20/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalConjTsrExpr<Array, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const ConjTsrExpr< Array > &  expr 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe tensor expression object
Returns
A scaled-tensor expression object

Definition at line 289 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [21/47]

template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalExpr<Arg, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const Expr< Arg > &  expr 
)
inline

Scaled expression factor.

Template Parameters
ArgThe expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe expression object
Returns
A scaled expression object

Definition at line 132 of file scal_expr.h.

Here is the call graph for this function:

◆ operator*() [22/47]

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

Scaled-multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe multiplication expression object
Returns
A scaled-multiplication expression object

Definition at line 231 of file mult_expr.h.

◆ operator*() [23/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const SubtExpr< Left, Right > &  expr 
)
inline

Scaled-subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe subtraction expression object
Returns
A scaled-subtraction expression object

Definition at line 210 of file subt_expr.h.

◆ operator*() [24/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalTsrExpr<typename std::remove_const<Array>::type, Scalar> TiledArray::expressions::operator* ( const Scalar &  factor,
const TsrExpr< Array, true > &  expr 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe tensor expression object
Returns
A scaled-tensor expression object

Definition at line 146 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [25/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalAddExpr<Left, Right, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalAddExpr< Left, Right, Scalar2 > &  expr 
)
inline

Scaled-addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The scaling factor type
Scalar2The expression scaling factor type
Parameters
factorThe scaling factor
exprThe addition expression object
Returns
A scaled-addition expression object

Definition at line 240 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [26/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 >>::type * = nullptr>
ScalBlkTsrExpr<Array, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalBlkTsrExpr< Array, Scalar2 > &  expr 
)
inline

Scaled-block expression factor.

Template Parameters
ArrayThe array type
Scalar1A scalar factor type
Scalar2A scalar factor type
Parameters
factorThe scaling factor
exprThe block expression object
Returns
A scaled-block expression object

Definition at line 641 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [27/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjAddExpr<Left, Right, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalConjAddExpr< Left, Right, Scalar2 > &  expr 
)
inline

Scaled-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The scaling factor type
Scalar2The expression scaling factor type
Parameters
factorThe scaling factor
exprThe scaled-conjugated addition expression object
Returns
A scaled-conjugated addition expression object

Definition at line 390 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [28/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 >>::type * = nullptr>
ScalConjBlkTsrExpr<Array, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalConjBlkTsrExpr< Array, Scalar2 > &  expr 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe scaled block tensor expression object
Returns
A scaled-tensor expression object

Definition at line 794 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [29/47]

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

Scaled-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The scaling factor type
Scalar2The expression scaling factor type
Parameters
factorThe scaling factor
exprThe scaled-conjugated multiplication expression object
Returns
A scaled-conjugated multiplication expression object

Definition at line 416 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [30/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjSubtExpr<Left, Right, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalConjSubtExpr< Left, Right, Scalar2 > &  expr 
)
inline

Scaled-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The scaling factor type
Scalar2The expression scaling factor type
Parameters
factorThe scaling factor
exprThe scaled-conjugated subtraction expression object
Returns
A scaled-conjugated subtraction expression object

Definition at line 394 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [31/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalConjTsrExpr<Array, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalConjTsrExpr< Array, Scalar2 > &  expr 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe scaled-tensor expression object
Returns
A scaled-tensor expression object

Definition at line 322 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [32/47]

template<typename Arg , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalExpr<Arg, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalExpr< Arg, Scalar2 > &  expr 
)
inline

Scaled expression factor.

Template Parameters
ArgThe argument expression type
ScalarA scalar type
Parameters
factorThe scaling factor
exprThe scaled expression object
Returns
A scaled expression object

Definition at line 166 of file scal_expr.h.

◆ operator*() [33/47]

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

Scaled-multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1A scalar type
Scalar2A scalar type
Parameters
factorThe scaling factor
exprThe multiplication expression object
Returns
A scaled-multiplication expression object

Definition at line 266 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [34/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalSubtExpr<Left, Right, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalSubtExpr< Left, Right, Scalar2 > &  expr 
)
inline

Scaled-subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The scaling factor type
Scalar2The expression scaling factor type
Parameters
factorThe scaling factor
exprThe scaled-subtraction expression object
Returns
A scaled-subtraction expression object

Definition at line 245 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [35/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar1 > >::type * = nullptr>
ScalTsrExpr<Array, mult_t<Scalar2, Scalar1> > TiledArray::expressions::operator* ( const Scalar1 &  factor,
const ScalTsrExpr< Array, Scalar2 > &  expr 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
Scalar1A scalar type
Scalar2A scalar type
Parameters
factorThe scaling factor
exprThe scaled-tensor expression object
Returns
A scaled-tensor expression object

Definition at line 180 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [36/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 >>::type * = nullptr>
ScalBlkTsrExpr<Array, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalBlkTsrExpr< Array, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-block expression factor.

Template Parameters
ArrayThe array type
Scalar1A scalar factor type
Scalar2A scalar factor type
Parameters
exprThe block expression object
factorThe scaling factor
Returns
A scaled-block expression object

Definition at line 623 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [37/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjAddExpr<Left, Right, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalConjAddExpr< Left, Right, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The expression scaling factor type
Scalar2The scaling factor type
Parameters
exprThe scaled-tensor expression object
factorThe scaling factor
Returns
A scaled-conjugated addition expression object

Definition at line 372 of file add_expr.h.

Here is the call graph for this function:

◆ operator*() [38/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 >>::type * = nullptr>
ScalConjBlkTsrExpr<Array, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalConjBlkTsrExpr< Array, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled block tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled block tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 777 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [39/47]

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

Scaled-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The expression scaling factor type
Scalar2The scaling factor type
Parameters
exprThe scaled-tensor expression object
factorThe scaling factor
Returns
A scaled-conjugated multiplication expression object

Definition at line 398 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [40/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjSubtExpr<Left, Right, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalConjSubtExpr< Left, Right, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The expression scaling factor type
Scalar2The scaling factor type
Parameters
exprThe scaled-tensor expression object
factorThe scaling factor
Returns
A scaled-conjugated subtraction expression object

Definition at line 376 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [41/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalConjTsrExpr<Array, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalConjTsrExpr< Array, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled-tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 305 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [42/47]

template<typename Arg , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalExpr<Arg, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalExpr< Arg, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled expression factor.

Template Parameters
ArgThe argument expression type
ScalarA scalar type
Parameters
exprThe scaled expression object
factorThe scaling factor
Returns
A scaled expression object

Definition at line 151 of file scal_expr.h.

◆ operator*() [43/47]

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

Scaled-multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1A scalar type
Scalar2A scalar type
Parameters
exprThe multiplication expression object
factorThe scaling factor
Returns
A scaled-multiplication expression object

Definition at line 248 of file mult_expr.h.

Here is the call graph for this function:

◆ operator*() [44/47]

template<typename Left , typename Right , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalSubtExpr<Left, Right, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalSubtExpr< Left, Right, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Scalar1The expression scaling factor type
Scalar2The scaling factor type
Parameters
exprThe scaled-subtraction expression object
factorThe scaling factor
Returns
A scaled-subtraction expression object

Definition at line 227 of file subt_expr.h.

Here is the call graph for this function:

◆ operator*() [45/47]

template<typename Array , typename Scalar1 , typename Scalar2 , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar2 > >::type * = nullptr>
ScalTsrExpr<Array, mult_t<Scalar1, Scalar2> > TiledArray::expressions::operator* ( const ScalTsrExpr< Array, Scalar1 > &  expr,
const Scalar2 &  factor 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
Scalar1A scalar type
Scalar2A scalar type
Parameters
exprThe scaled-tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 163 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*() [46/47]

template<typename Left , typename Right , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator* ( const SubtExpr< Left, Right > &  expr,
const Scalar &  factor 
)
inline

Scaled-subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe subtraction expression object
factorThe scaling factor
Returns
A scaled-subtraction expression object

Definition at line 194 of file subt_expr.h.

◆ operator*() [47/47]

template<typename Array , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric_v< Scalar > >::type * = nullptr>
ScalTsrExpr<typename std::remove_const<Array>::type, Scalar> TiledArray::expressions::operator* ( const TsrExpr< Array, true > &  expr,
const Scalar &  factor 
)
inline

Scaled-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe tensor expression object
factorThe scaling factor
Returns
A scaled-tensor expression object

Definition at line 130 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator*=()

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

Dot product multiply-to operator.

Template Parameters
NumericThe numeric result type
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
resultThe result that the dot product will be multiplied by.
exprThe multiply expression object
Returns
A reference to result

Definition at line 495 of file mult_expr.h.

◆ operator+()

template<typename Left , typename Right >
AddExpr<Left, Right> TiledArray::expressions::operator+ ( const Expr< Left > &  left,
const Expr< Right > &  right 
)
inline

Addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
leftThe left-hand expression object
rightThe right-hand expression object
Returns
An addition expression object

Definition at line 167 of file add_expr.h.

Here is the call graph for this function:

◆ operator+=()

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

Dot product add-to operator.

Template Parameters
NumericThe numeric result type
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
resultThe result that the dot product will be added to.
exprThe multiply expression object
Returns
A reference to result

Definition at line 463 of file mult_expr.h.

◆ operator-() [1/23]

template<typename Left , typename Right >
ScalAddExpr<Left, Right, typename ExprTrait<AddExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const AddExpr< Left, Right > &  expr)
inline

Negated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe addition expression object
Returns
A scaled-addition expression object

Definition at line 255 of file add_expr.h.

◆ operator-() [2/23]

template<typename Array >
ScalBlkTsrExpr<typename std::remove_const<Array>::type, typename ExprTrait<BlkTsrExpr<Array, true> >::numeric_type> TiledArray::expressions::operator- ( const BlkTsrExpr< Array, true > &  expr)
inline

Negated block expression factor.

Template Parameters
ArrayThe array type
Parameters
exprThe block expression object
Returns
A scaled-block expression object

Definition at line 656 of file blk_tsr_expr.h.

◆ operator-() [3/23]

template<typename Left , typename Right >
ScalConjAddExpr< Left, Right, typename ExprTrait<ConjAddExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const ConjAddExpr< Left, Right > &  expr)
inline

Negated-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe tensor expression object
Returns
A scaled-addition expression object

Definition at line 405 of file add_expr.h.

◆ operator-() [4/23]

template<typename Array >
ScalConjBlkTsrExpr< Array, typename ExprTrait<ConjBlkTsrExpr<Array> >::numeric_type> TiledArray::expressions::operator- ( const ConjBlkTsrExpr< Array > &  expr)
inline

Negated-conjugated-tensor expression factor.

Template Parameters
ArrayArray DistArray type
Parameters
exprThe block tensor expression object
Returns
A scaled-tensor expression object

Definition at line 809 of file blk_tsr_expr.h.

◆ operator-() [5/23]

template<typename Left , typename Right >
ScalConjMultExpr< Left, Right, typename ExprTrait<ConjMultExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const ConjMultExpr< Left, Right > &  expr)
inline

Negated-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe tensor expression object
Returns
A scaled-multiplication expression object

Definition at line 431 of file mult_expr.h.

◆ operator-() [6/23]

template<typename Left , typename Right >
ScalConjSubtExpr< Left, Right, typename ExprTrait<ConjSubtExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const ConjSubtExpr< Left, Right > &  expr)
inline

Negated-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe tensor expression object
Returns
A scaled-subtraction expression object

Definition at line 409 of file subt_expr.h.

◆ operator-() [7/23]

template<typename Array >
ScalConjTsrExpr<Array, typename ExprTrait<ConjTsrExpr<Array> >::numeric_type> TiledArray::expressions::operator- ( const ConjTsrExpr< Array > &  expr)
inline

Negated-conjugated-tensor expression factor.

Template Parameters
ArrayA DistArray type
Parameters
exprThe tensor expression object
Returns
A scaled-tensor expression object

Definition at line 337 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator-() [8/23]

template<typename Arg >
ScalExpr<Arg, typename ExprTrait<Arg>::scalar_type> TiledArray::expressions::operator- ( const Expr< Arg > &  expr)
inline

Negated expression factor.

Template Parameters
ArgThe expression type
Parameters
exprThe expression object
Returns
A scaled expression object

Definition at line 177 of file scal_expr.h.

Here is the call graph for this function:

◆ operator-() [9/23]

template<typename Left , typename Right >
SubtExpr<Left, Right> TiledArray::expressions::operator- ( const Expr< Left > &  left,
const Expr< Right > &  right 
)
inline

Subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
leftThe left-hand expression object
rightThe right-hand expression object
Returns
A subtraction expression object

Definition at line 170 of file subt_expr.h.

Here is the call graph for this function:

◆ operator-() [10/23]

template<typename Left , typename Right >
ScalMultExpr<Left, Right, typename ExprTrait<MultExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const MultExpr< Left, Right > &  expr)
inline

Negated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe multiplication expression object
Returns
A scaled-multiplication expression object

Definition at line 281 of file mult_expr.h.

◆ operator-() [11/23]

template<typename Left , typename Right , typename Scalar >
ScalAddExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalAddExpr< Left, Right, Scalar > &  expr)
inline

Negated scaled-addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe addition expression object
Returns
A scaled-addition expression object

Definition at line 269 of file add_expr.h.

◆ operator-() [12/23]

template<typename Array , typename Scalar >
ScalBlkTsrExpr<Array, Scalar> TiledArray::expressions::operator- ( const ScalBlkTsrExpr< Array, Scalar > &  expr)
inline

Negated scaled-block expression factor.

Template Parameters
ArrayThe array type
ScalarA scalar factor type
Parameters
exprThe block expression object
Returns
A scaled-block expression object

Definition at line 671 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator-() [13/23]

template<typename Left , typename Right , typename Scalar >
ScalConjAddExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalConjAddExpr< Left, Right, Scalar > &  expr)
inline

Negated-conjugated addition expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled-conjugated-tensor expression object
Returns
A scaled-conjugated addition expression object

Definition at line 420 of file add_expr.h.

Here is the call graph for this function:

◆ operator-() [14/23]

template<typename Array , typename Scalar >
ScalConjBlkTsrExpr<Array, Scalar> TiledArray::expressions::operator- ( const ScalConjBlkTsrExpr< Array, Scalar > &  expr)
inline

Negated-conjugated-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled-conjugated block tensor expression object
Returns
A scaled-tensor expression object

Definition at line 823 of file blk_tsr_expr.h.

Here is the call graph for this function:

◆ operator-() [15/23]

template<typename Left , typename Right , typename Scalar >
ScalConjMultExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalConjMultExpr< Left, Right, Scalar > &  expr)
inline

Negated-conjugated multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled-conjugated-tensor expression object
Returns
A scaled-conjugated multiplication expression object

Definition at line 446 of file mult_expr.h.

Here is the call graph for this function:

◆ operator-() [16/23]

template<typename Left , typename Right , typename Scalar >
ScalConjSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalConjSubtExpr< Left, Right, Scalar > &  expr)
inline

Negated-conjugated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
ScalarA scalar type
Parameters
exprThe scaled-conjugated-tensor expression object
Returns
A scaled-conjugated subtraction expression object

Definition at line 424 of file subt_expr.h.

Here is the call graph for this function:

◆ operator-() [17/23]

template<typename Array , typename Scalar >
ScalConjTsrExpr<Array, Scalar> TiledArray::expressions::operator- ( const ScalConjTsrExpr< Array, Scalar > &  expr)
inline

Negated-conjugated-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled-conjugated-tensor expression object
Returns
A scaled-tensor expression object

Definition at line 350 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator-() [18/23]

template<typename Arg , typename Scalar >
ScalExpr<Arg, Scalar> TiledArray::expressions::operator- ( const ScalExpr< Arg, Scalar > &  expr)
inline

Negated expression factor.

Template Parameters
ArgThe argument expression type
Parameters
exprThe scaled expression object
Returns
A scaled expression object

Definition at line 193 of file scal_expr.h.

◆ operator-() [19/23]

template<typename Left , typename Right , typename Scalar >
ScalMultExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalMultExpr< Left, Right, Scalar > &  expr)
inline

Negated scaled-multiplication expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe multiplication expression object
Returns
A scaled-multiplication expression object

Definition at line 294 of file mult_expr.h.

Here is the call graph for this function:

◆ operator-() [20/23]

template<typename Left , typename Right , typename Scalar >
ScalSubtExpr<Left, Right, Scalar> TiledArray::expressions::operator- ( const ScalSubtExpr< Left, Right, Scalar > &  expr)
inline

Negated scaled-subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe subtraction expression object
Returns
A scaled-subtraction expression object

Definition at line 273 of file subt_expr.h.

◆ operator-() [21/23]

template<typename Array , typename Scalar >
ScalTsrExpr<Array, Scalar> TiledArray::expressions::operator- ( const ScalTsrExpr< Array, Scalar > &  expr)
inline

Negated-tensor expression factor.

Template Parameters
ArrayA DistArray type
ScalarA scalar type
Parameters
exprThe scaled-tensor expression object
Returns
A scaled-tensor expression object

Definition at line 207 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator-() [22/23]

template<typename Left , typename Right >
ScalSubtExpr<Left, Right, typename ExprTrait<SubtExpr<Left, Right> >::numeric_type> TiledArray::expressions::operator- ( const SubtExpr< Left, Right > &  expr)
inline

Negated subtraction expression factor.

Template Parameters
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
exprThe subtraction expression object
Returns
A scaled-subtraction expression object

Definition at line 260 of file subt_expr.h.

◆ operator-() [23/23]

template<typename Array >
ScalTsrExpr<typename std::remove_const<Array>::type, typename ExprTrait<TsrExpr<Array, true> >::numeric_type> TiledArray::expressions::operator- ( const TsrExpr< Array, true > &  expr)
inline

Negated-tensor expression factor.

Template Parameters
ArrayA DistArray type
Parameters
exprThe tensor expression object
Returns
A scaled-tensor expression object

Definition at line 194 of file scal_tsr_expr.h.

Here is the call graph for this function:

◆ operator-=()

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

Dot product subtract-to operator.

Template Parameters
NumericThe numeric result type
LeftThe left-hand expression type
RightThe right-hand expression type
Parameters
resultThe result that the dot product will be subtracted from.
exprThe multiply expression object
Returns
A reference to result

Definition at line 479 of file mult_expr.h.

◆ operator<<() [1/3]

template<typename A , bool Alias>
ExprTraceTarget TiledArray::expressions::operator<< ( std::ostream &  os,
const TsrExpr< A, Alias > &  tsr 
)
inline

Expression trace factory function.

Template Parameters
AAn Array object
AliasTiles alias flag
Parameters
osThe output stream for the expression trace
tsrThe tensor that will be the target of the expression
Returns
The expression trace object

Definition at line 130 of file expr_trace.h.

Here is the call graph for this function:

◆ operator<<() [2/3]

std::ostream& TiledArray::expressions::operator<< ( std::ostream &  out,
const BipartiteIndexList v 
)
inline

Prints a BipartiteIndexList instance to a stream

This function simply casts the IndexList to a string, adds parenthesis to it, and then inserts the resulting string into the stream.

Parameters
[in,out]outthe stream that v will be written to.
[in]vThe BipartiteIndexList instance to insert into the stream.
Returns
out will be returned after adding v to it.

Definition at line 795 of file index_list.h.

◆ operator<<() [3/3]

std::ostream& TiledArray::expressions::operator<< ( std::ostream &  out,
const IndexList v 
)
inline

ostream IndexList output operator.

Definition at line 348 of file index_list.h.

Here is the call graph for this function:

◆ operator==()

bool TiledArray::expressions::operator== ( const IndexList v0,
const IndexList v1 
)
inline

Definition at line 329 of file index_list.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outer() [1/2]

auto TiledArray::expressions::outer ( const BipartiteIndexList p)
inline

Definition at line 887 of file index_list.h.

Here is the call graph for this function:

◆ outer() [2/2]

auto TiledArray::expressions::outer ( const IndexList p)
inline

Definition at line 879 of file index_list.h.

Here is the caller graph for this function:

◆ outer_size() [1/2]

auto TiledArray::expressions::outer_size ( const BipartiteIndexList p)
inline

Definition at line 891 of file index_list.h.

Here is the call graph for this function:

◆ outer_size() [2/2]

auto TiledArray::expressions::outer_size ( const IndexList p)
inline

Definition at line 883 of file index_list.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ range_from_annotation()

template<typename IndexList_ , typename LHSType , typename RHSType >
auto TiledArray::expressions::range_from_annotation ( const IndexList_ &  target_idxs,
const IndexList_ &  lhs_idxs,
const IndexList_ &  rhs_idxs,
LHSType &&  lhs,
RHSType &&  rhs 
)

Assembles the range for the target annotation

When dealing with Einstein notation it is common to need to assemble iteration ranges/tensor sizes from the annotations of a tensor. More specifically, one needs to map the annotations to extents and use those extents to form a range. This function wraps that process. This function also ensures that all modes labeled with the same annotation have the same extent (i.e., that they are compatible).

Template Parameters
LHSTypeThe type of the tensor on the left side of the *. Assumed to satisfy the concept of tile.
RHSTypeThe type of the tensor on the right side of the *. Assumed to satisfy the concept of tile.
Parameters
[in]target_idxsThe annotation for the range we are creating.
[in]lhs_idxsThe annotation for the tensor on the left of the *.
[in]rhs_idxsThe annotation for the tensor on the right of the *.
[in]lhsThe tensor on the left of the *.
[in]rhsThe tensor on the righ of the *.
Returns
A range such that the extent of the i-th mode is the extent in lhs and/or rhs associated with annotation target_idxs[i].
Exceptions
TiledArray::Exceptionif lhs and rhs do not agree on the extent for a particular annotation. Strong throw guarantee.

Definition at line 54 of file contraction_helpers.h.

Here is the caller graph for this function:

◆ swap() [1/2]

void TiledArray::expressions::swap ( BipartiteIndexList v0,
BipartiteIndexList v1 
)
inline

Exchange the content of the two index lists.

Definition at line 759 of file index_list.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ swap() [2/2]

void TiledArray::expressions::swap ( IndexList v0,
IndexList v1 
)
inline

Exchange the content of the two index lists.

Definition at line 325 of file index_list.h.

Here is the call graph for this function:

◆ to_cblas_op()

blas::Op TiledArray::expressions::to_cblas_op ( PermutationType  permtype)
inline

Definition at line 46 of file permopt.h.

Here is the caller graph for this function:

◆ trange_from_annotation()

template<typename IndexList_ , typename LHSType , typename RHSType >
auto TiledArray::expressions::trange_from_annotation ( const IndexList_ &  target_idxs,
const IndexList_ &  lhs_idxs,
const IndexList_ &  rhs_idxs,
LHSType &&  lhs,
RHSType &&  rhs 
)

Definition at line 81 of file contraction_helpers.h.

Here is the caller graph for this function: