Template Function sequant::detail::cumulant_expand

Function Documentation

template<Statistics S>
ExprPtr sequant::detail::cumulant_expand(const ExprPtr &wick_output, const OpProvenance &provenance, const ExtendedWickOptions &opts)

expands the surviving operators of each term of the standard theorem’s MultiProduct-vacuum output (partial contractions) into cumulant blocks

Note

a block has k creators and k annihilators, 2 <= k <= max_cumulant_rank, all active, and legs from at least two input NormalOperators; its sign is the parity of moving each block’s legs, in order, to the front of the surviving operator string, and the remaining operators (if !opts.full_contractions) are kept as a MultiProduct-vacuum NormalOperator

Parameters:
  • wick_output – the standard theorem’s output

  • provenance – the input NormalOperator ordinal of every surviving Op

  • opts – full_contractions, max_cumulant_rank, nop_connections and nop_avoided_connections are used

Pre:

every γ/η index is pure-active, and every surviving index is pure-active, pure core or pure virtual