Program Listing for File optimize.hpp

Return to documentation for file (SeQuant/core/optimize/optimize.hpp)

#ifndef SEQUANT_OPTIMIZE_OPTIMIZE_HPP
#define SEQUANT_OPTIMIZE_OPTIMIZE_HPP

#include <SeQuant/core/expr_fwd.hpp>
#include <SeQuant/core/optimize/options.hpp>

namespace sequant {

ExprPtr optimize(ExprPtr const& expr, OptimizeOptions opts = {});

ResultExpr& optimize(ResultExpr& expr, OptimizeOptions opts = {});

[[nodiscard]] ResultExpr& optimize(ResultExpr&& expr,
                                   OptimizeOptions opts = {});

// Overloads for backwards compatibility

[[deprecated(
    "use the OptimizeOptions"
    " overload of optimize() instead")]] ExprPtr
optimize(ExprPtr const& expr, bool reorder_sum);

[[deprecated(
    "use the OptimizeOptions"
    " overload of optimize() instead")]] ResultExpr&
optimize(ResultExpr& expr, bool reorder_sum);

[[nodiscard, deprecated("use the OptimizeOptions"
                        " overload of optimize() instead")]] ResultExpr&
optimize(ResultExpr&& expr, bool reorder_sum);

}  // namespace sequant

#endif  // SEQUANT_OPTIMIZE_OPTIMIZE_HPP