permopt.h
PermutationType left_permtype() const override final
Definition: permopt.h:519
HadamardPermutationOptimizer(const IndexList &result_indices, const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:430
bool is_permutation(const IndexList &other) const
Check that this index list is a permutation of other.
Definition: index_list.h:254
bool prefer_to_permute_left() const
Definition: permopt.h:102
HadamardPermutationOptimizer(const HadamardPermutationOptimizer &)=default
const IndexList & target_left_indices() const override final
Definition: permopt.h:160
PermutationType right_permtype() const override final
Definition: permopt.h:172
~HadamardPermutationOptimizer()=default
BinaryOpPermutationOptimizer()=delete
NullBinaryOpPermutationOptimizer(const NullBinaryOpPermutationOptimizer &)=default
virtual const IndexList & target_left_indices() const =0
const IndexList & target_left_indices() const override final
Definition: permopt.h:510
NullBinaryOpPermutationOptimizer(const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:490
virtual TensorProduct op_type() const =0
std::shared_ptr< BinaryOpPermutationOptimizer > make_permutation_optimizer(TensorProduct product_type, const IndexList &left_indices, const IndexList &right_indices, bool prefer_to_permute_left)
Definition: permopt.h:530
const IndexList & target_result_indices() const override final
Definition: permopt.h:465
const IndexList & target_right_indices() const override final
Definition: permopt.h:462
TensorProduct op_type() const override final
Definition: permopt.h:474
const IndexList & target_right_indices() const override final
Definition: permopt.h:163
NullBinaryOpPermutationOptimizer & operator=(const NullBinaryOpPermutationOptimizer &)=default
GEMMPermutationOptimizer(const IndexList &result_indices, const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:148
blas::Op to_cblas_op(PermutationType permtype)
Definition: permopt.h:46
PermutationType left_permtype() const override final
Definition: permopt.h:468
virtual PermutationType right_permtype() const =0
virtual ~BinaryOpPermutationOptimizer()=default
TensorProduct op_type() const override final
Definition: permopt.h:525
const IndexList & target_result_indices() const override final
Definition: permopt.h:166
KroneckerDeltaTile< _N >::numeric_type max(const KroneckerDeltaTile< _N > &arg)
const IndexList & left_indices() const
Definition: permopt.h:98
BinaryOpPermutationOptimizer(const IndexList &result_indices, const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:77
const IndexList & target_right_indices() const override final
Definition: permopt.h:513
BinaryOpPermutationOptimizer(const BinaryOpPermutationOptimizer &)=default
PermutationType left_permtype() const override final
Definition: permopt.h:169
GEMMPermutationOptimizer(const GEMMPermutationOptimizer &)=default
virtual PermutationType left_permtype() const =0
~NullBinaryOpPermutationOptimizer()=default
Definition: array_impl.cpp:28
TensorProduct compute_product_type(const IndexList &left_indices, const IndexList &right_indices)
Definition: product.h:51
PermutationType right_permtype() const override final
Definition: permopt.h:522
GEMMPermutationOptimizer & operator=(const GEMMPermutationOptimizer &)=default
const IndexList & result_indices() const
Definition: permopt.h:93
virtual const IndexList & target_result_indices() const =0
BinaryOpPermutationOptimizer(const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:62
virtual ~GEMMPermutationOptimizer()=default
const IndexList & target_left_indices() const override final
Definition: permopt.h:459
HadamardPermutationOptimizer(const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:420
HadamardPermutationOptimizer & operator=(const HadamardPermutationOptimizer &)=default
unsigned int size() const
Returns the number of elements in the index list.
Definition: index_list.h:197
const IndexList & target_result_indices() const override final
Definition: permopt.h:516
NullBinaryOpPermutationOptimizer(const IndexList &result_indices, const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:499
BinaryOpPermutationOptimizer & operator=(const BinaryOpPermutationOptimizer &)=default
TensorProduct op_type() const override final
Definition: permopt.h:175
Abstract optimizer of permutations for a binary operation.
Definition: permopt.h:55
virtual const IndexList & target_right_indices() const =0
const IndexList & right_indices() const
Definition: permopt.h:100
PermutationType right_permtype() const override final
Definition: permopt.h:471
GEMMPermutationOptimizer(const IndexList &left_indices, const IndexList &right_indices, const bool prefer_to_permute_left=true)
Definition: permopt.h:137