dReal4
relational_formula_evaluator.h
1 #pragma once
2 
3 #include <ostream>
4 
5 #include "./ibex.h"
6 
7 #include "dreal/solver/expression_evaluator.h"
8 #include "dreal/solver/formula_evaluator.h"
9 #include "dreal/solver/formula_evaluator_cell.h"
11 #include "dreal/util/box.h"
12 
13 namespace dreal {
14 
15 /// Evaluator for relational formulas.
17  public:
19 
20  /// Deleted copy-constructor.
22 
23  /// Deleted move-constructor.
25 
26  /// Deleted copy-assignment operator.
28  delete;
29 
30  /// Deleted move-assignment operator.
32 
33  ~RelationalFormulaEvaluator() override;
34 
35  FormulaEvaluationResult operator()(const Box& box) const override;
36 
37  std::ostream& Display(std::ostream& os) const override;
38 
39  const Variables& variables() const override {
40  return expression_evaluator_.variables();
41  }
42 
43  private:
44  const RelationalOperator op_{};
45  const ExpressionEvaluator expression_evaluator_;
46 };
47 } // namespace dreal
RelationalOperator
Represents relational operators.
Definition: symbolic.h:122
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
Base type for evaluator cell types.
Definition: formula_evaluator_cell.h:13
RelationalFormulaEvaluator & operator=(const RelationalFormulaEvaluator &)=delete
Deleted copy-assignment operator.
Definition: expression_evaluator.h:12
FormulaEvaluationResult operator()(const Box &box) const override
Evaluates the constraint/formula with box.
Definition: relational_formula_evaluator.cc:74
Represents the evaluation result of a constraint given a box.
Definition: formula_evaluator.h:14
Evaluator for relational formulas.
Definition: relational_formula_evaluator.h:16
Represents a n-dimensional interval vector.
Definition: box.h:17
This is the header file that we consolidate Drake&#39;s symbolic classes and expose them inside of dreal ...
Represents a set of variables.
Definition: symbolic_variables.h:25
Represents a symbolic form of a first-order logic formula.
Definition: symbolic_formula.h:101