Program Listing for File bernoulli.hpp¶
↰ Return to documentation for file (SeQuant/domain/mbpt/bernoulli.hpp)
#ifndef SEQUANT_DOMAIN_MBPT_BERNOULLI_HPP
#define SEQUANT_DOMAIN_MBPT_BERNOULLI_HPP
#include <SeQuant/core/container.hpp>
#include <SeQuant/core/expr.hpp>
#include <SeQuant/core/rational.hpp>
#include <cstddef>
#include <string>
namespace sequant::mbpt::bernoulli {
ExprPtr hbar(std::size_t N, std::size_t rank, bool skip1);
namespace detail {
using PartitionPathCoefficients = container::map<std::string, rational>;
container::svector<PartitionPathCoefficients> nested_commutator_coefficients(
std::size_t max_order);
ExprPtr wick_reduce(const ExprPtr& expr);
ExprPtr wick_commutator(const ExprPtr& A, const ExprPtr& B);
ExprPtr expand_to_blocks(const ExprPtr& expr);
ExprPtr N_part(const ExprPtr& expr, std::size_t cutoff,
std::size_t min_rank = 1);
ExprPtr R_part(const ExprPtr& expr, std::size_t cutoff,
std::size_t min_rank = 1);
} // namespace detail
} // namespace sequant::mbpt::bernoulli
#endif // SEQUANT_DOMAIN_MBPT_BERNOULLI_HPP