dReal4
contractor_ibex_fwdbwd.h
1 #pragma once
2 
3 #include <memory>
4 #include <ostream>
5 
6 #include "./ibex.h"
7 
8 #include "dreal/contractor/contractor_cell.h"
9 #include "dreal/contractor/contractor_status.h"
11 #include "dreal/util/box.h"
12 
13 namespace dreal {
14 
15 /// Contractor class wrapping IBEX's forward/backward contractor.
17  public:
18  /// Deleted default constructor.
19  ContractorIbexFwdbwd() = delete;
20 
21  /// Constructs IbexFwdbwd contractor using @p f and @p box.
22  ContractorIbexFwdbwd(Formula f, const Box& box, const Config& config);
23 
24  /// Deleted copy constructor.
26 
27  /// Deleted move constructor.
29 
30  /// Deleted copy assign operator.
32 
33  /// Deleted move assign operator.
35 
36  ~ContractorIbexFwdbwd() override = default;
37 
38  void Prune(ContractorStatus* cs) const override;
39 
40  std::ostream& display(std::ostream& os) const override;
41 
42  /// Returns true if it has no internal ibex contractor.
43  bool is_dummy() const;
44 
45  private:
46  const Formula f_;
47  bool is_dummy_{false};
48  IbexConverter ibex_converter_;
49  std::unique_ptr<const ibex::ExprCtr> expr_ctr_;
50  std::unique_ptr<ibex::NumConstraint> num_ctr_;
51 };
52 
53 } // namespace dreal
const Config & config() const
Returns config.
Definition: contractor_cell.cc:33
Abstract base class of contractors.
Definition: contractor_cell.h:29
Visitor class which converts a symbolic Formula into ibex::ExprCtr.
Definition: ibex_converter.h:15
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
ContractorIbexFwdbwd & operator=(const ContractorIbexFwdbwd &)=delete
Deleted copy assign operator.
bool is_dummy() const
Returns true if it has no internal ibex contractor.
Definition: contractor_ibex_fwdbwd.cc:129
std::ostream & display(std::ostream &os) const override
Outputs this contractor to os.
Definition: contractor_ibex_fwdbwd.cc:124
ContractorIbexFwdbwd()=delete
Deleted default constructor.
Represents a n-dimensional interval vector.
Definition: box.h:17
Definition: config.h:12
void Prune(ContractorStatus *cs) const override
Performs pruning on cs.
Definition: contractor_ibex_fwdbwd.cc:74
This is the header file that we consolidate Drake&#39;s symbolic classes and expose them inside of dreal ...
Contractor class wrapping IBEX&#39;s forward/backward contractor.
Definition: contractor_ibex_fwdbwd.h:16
Contractor status.
Definition: contractor_status.h:13
Represents a symbolic form of a first-order logic formula.
Definition: symbolic_formula.h:101