TiledArray::expressions::BinaryOpPermutationOptimizer Class Referenceabstract
Inheritance diagram for TiledArray::expressions::BinaryOpPermutationOptimizer:

Documentation

Abstract optimizer of permutations for a binary operation.

Definition at line 55 of file permopt.h.

Public Member Functions

 BinaryOpPermutationOptimizer (const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
 
 BinaryOpPermutationOptimizer (const IndexList &result_indices, const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
 
 BinaryOpPermutationOptimizer ()=delete
 
 BinaryOpPermutationOptimizer (const BinaryOpPermutationOptimizer &)=default
 
BinaryOpPermutationOptimizeroperator= (const BinaryOpPermutationOptimizer &)=default
 
virtual ~BinaryOpPermutationOptimizer ()=default
 
const IndexListresult_indices () const
 
const IndexListleft_indices () const
 
const IndexListright_indices () const
 
bool prefer_to_permute_left () const
 
virtual const IndexListtarget_left_indices () const =0
 
virtual const IndexListtarget_right_indices () const =0
 
virtual const IndexListtarget_result_indices () const =0
 
virtual PermutationType left_permtype () const =0
 
virtual PermutationType right_permtype () const =0
 
virtual TensorProduct op_type () const =0
 

Constructor & Destructor Documentation

◆ BinaryOpPermutationOptimizer() [1/4]

TiledArray::expressions::BinaryOpPermutationOptimizer::BinaryOpPermutationOptimizer ( const IndexList left_indices,
const IndexList right_indices,
const bool  prefer_to_permute_left = true 
)
inline

construct using initial indices for the arguments and preference for which argument to permute

Parameters
left_indicesthe initial left argument index list
right_indicesthe initial right argument index list
prefer_to_permute_leftwhether to prefer permuting left argument

Definition at line 62 of file permopt.h.

◆ BinaryOpPermutationOptimizer() [2/4]

TiledArray::expressions::BinaryOpPermutationOptimizer::BinaryOpPermutationOptimizer ( const IndexList result_indices,
const IndexList left_indices,
const IndexList right_indices,
const bool  prefer_to_permute_left = true 
)
inline

construct using initial indices for the arguments, the desired result indices, and the preference for which argument to permute

Parameters
result_indicesthe desired result index list
left_indicesthe initial left argument index list
right_indicesthe initial right argument index list
prefer_to_permute_leftwhether to prefer permuting left argument

Definition at line 77 of file permopt.h.

◆ BinaryOpPermutationOptimizer() [3/4]

TiledArray::expressions::BinaryOpPermutationOptimizer::BinaryOpPermutationOptimizer ( )
delete

◆ BinaryOpPermutationOptimizer() [4/4]

TiledArray::expressions::BinaryOpPermutationOptimizer::BinaryOpPermutationOptimizer ( const BinaryOpPermutationOptimizer )
default

◆ ~BinaryOpPermutationOptimizer()

virtual TiledArray::expressions::BinaryOpPermutationOptimizer::~BinaryOpPermutationOptimizer ( )
virtualdefault

Member Function Documentation

◆ left_indices()

const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::left_indices ( ) const
inline
Returns
initial left indices

Definition at line 98 of file permopt.h.

Here is the caller graph for this function:

◆ left_permtype()

virtual PermutationType TiledArray::expressions::BinaryOpPermutationOptimizer::left_permtype ( ) const
pure virtual
Returns
the type of permutation bringing the initial left index list to the target left index list

Implemented in TiledArray::expressions::NullBinaryOpPermutationOptimizer, TiledArray::expressions::HadamardPermutationOptimizer, and TiledArray::expressions::GEMMPermutationOptimizer.

◆ op_type()

virtual TensorProduct TiledArray::expressions::BinaryOpPermutationOptimizer::op_type ( ) const
pure virtual

◆ operator=()

BinaryOpPermutationOptimizer& TiledArray::expressions::BinaryOpPermutationOptimizer::operator= ( const BinaryOpPermutationOptimizer )
default

◆ prefer_to_permute_left()

bool TiledArray::expressions::BinaryOpPermutationOptimizer::prefer_to_permute_left ( ) const
inline
Returns
whether preferred to permute left indices

Definition at line 102 of file permopt.h.

Here is the caller graph for this function:

◆ result_indices()

const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::result_indices ( ) const
inline
Returns
the desired result indices

Definition at line 93 of file permopt.h.

Here is the caller graph for this function:

◆ right_indices()

const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::right_indices ( ) const
inline
Returns
initial right indices

Definition at line 100 of file permopt.h.

Here is the caller graph for this function:

◆ right_permtype()

virtual PermutationType TiledArray::expressions::BinaryOpPermutationOptimizer::right_permtype ( ) const
pure virtual
Returns
the type of permutation bringing the initial right index list to the target right index list

Implemented in TiledArray::expressions::NullBinaryOpPermutationOptimizer, TiledArray::expressions::HadamardPermutationOptimizer, and TiledArray::expressions::GEMMPermutationOptimizer.

◆ target_left_indices()

virtual const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::target_left_indices ( ) const
pure virtual

◆ target_result_indices()

virtual const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::target_result_indices ( ) const
pure virtual

◆ target_right_indices()

virtual const IndexList& TiledArray::expressions::BinaryOpPermutationOptimizer::target_right_indices ( ) const
pure virtual

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