SyTen
syten::TensorProd Namespace Reference

Implementation helpers for tensor products. More...

Functions

template<Rank summed, Rank frank, Rank srank>
std::enable_if_t< frank+srank - 2 *summed !=0, Tensor< frank+srank - 2 *summed > > prod_impl (SourceLocation location, Tensor< frank > const &a, Tensor< srank > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, Conj const conj=Conj::n(), EliminateZeros const ezeros=EliminateZeros::No, HandleFermions const handle_ferms=HandleFermions::n(), ConstSpan< Index > ferm_a=ConstSpan< Index >(), ConstSpan< Index > ferm_b=ConstSpan< Index >(), ConstSpan< Bool > parity_a=ConstSpan< Bool >(), ConstSpan< Bool > parity_b=ConstSpan< Bool >())
 Implementation of the tensor-tensor-to-tensor product. More...
 
template<Rank r>
SDef prod_impl (SourceLocation location, Tensor< r > const &a, Tensor< r > const &b, std::array< int, r > const &c_a, std::array< int, r > const &c_b, Conj const conj=Conj::n(), HandleFermions const handle_ferms=HandleFermions::n(), ConstSpan< Index > ferm_a=ConstSpan< Index >(), ConstSpan< Index > ferm_b=ConstSpan< Index >(), ConstSpan< Bool > parity_a=ConstSpan< Bool >(), ConstSpan< Bool > parity_b=ConstSpan< Bool >())
 Implementation of tensor-tensor-to-scalar product. More...
 
template<Rank summed, Rank frank, Rank srank>
std::pair< std::array< int, frank >, std::array< int, srank > > prod_trans_str_arr (std::string_view const full, SourceLocation location)
 Translates a string coming from a Einstein-summation convention tensor product specification into the standard array format. More...
 
template<Rank rrank>
std::vector< std::vector< std::tuple< Index, Index > > > sort_proto_prod_all (std::vector< std::tuple< Index, Index, std::array< RDef, rrank *SYTEN_MAX_SYM *SYTEN_MAX_DEG > > > const &protolist)
 Sorts worklist pair items according to the quantum number sectors of the result. More...
 

Detailed Description

Implementation helpers for tensor products.