Program Listing for File utils.hpp

Return to documentation for file (SeQuant/domain/mbpt/utils.hpp)

//
// Created by Ajay Melekamburath on 9/26/25.
//

#ifndef SEQUANT_DOMAIN_MBPT_UTILS_HPP
#define SEQUANT_DOMAIN_MBPT_UTILS_HPP

#include <SeQuant/core/expr.hpp>
#include <SeQuant/core/rational.hpp>
#include <SeQuant/core/runtime.hpp>

#include <SeQuant/domain/mbpt/op.hpp>

#include <range/v3/view.hpp>

namespace sequant::mbpt {

struct LSTOptions {
  bool unitary = false;
  bool use_commutators = false;
  bool skip_clone = false;
};

// clang-format off
// clang-format on
ExprPtr lst(ExprPtr A, ExprPtr B, size_t commutator_rank,
            const LSTOptions& options = {});

ExprPtr screen_vac_av(ExprPtr expr, bool skip_clone = false);

}  // namespace sequant::mbpt

#endif  // SEQUANT_DOMAIN_MBPT_UTILS_HPP