SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat-qe.cpp
Go to the documentation of this file.
1 #include "smtrat-qe.h"
2 
3 //#include "cad/qe.h"
4 #include "fm/qe.h"
5 #include "fmplex/qe.h"
6 #include "coverings/qe.h"
7 
8 namespace smtrat::qe {
9 
10 std::optional<FormulaT> qe(const FormulaT& formula) {
11  std::string qe_method = settings_module().get("qe-method", std::string("covering"));
12  if (qe_method == "covering") return coverings::qe(formula);
13  if (qe_method == "fmplex") return fmplex::qe(formula);
14  if (qe_method == "fm") return fm::qe(formula);
15 
16  SMTRAT_LOG_WARN("smtrat.qe", "Unknown qe-method " << qe_method << ".");
17  SMTRAT_LOG_WARN("smtrat.qe", "Defaulting to covering.");
18  return coverings::qe(formula);
19 }
20 
21 }
std::optional< FormulaT > qe(const FormulaT &input)
Definition: qe.cpp:14
std::optional< FormulaT > qe(const FormulaT &f)
Definition: qe.cpp:8
std::optional< FormulaT > qe(const FormulaT &f)
Definition: qe.cpp:7
Definition: CAD.h:9
std::optional< FormulaT > qe(const FormulaT &formula)
Definition: smtrat-qe.cpp:10
const auto & settings_module()
Definition: Settings.h:108
carl::Formula< Poly > FormulaT
Definition: types.h:37
#define SMTRAT_LOG_WARN(channel, msg)
Definition: logging.h:33