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... | |
Implementation helpers for tensor products.