dReal4
contractor_join.h
1 #pragma once
2 
3 #include <ostream>
4 #include <vector>
5 
6 #include "dreal/contractor/contractor.h"
7 #include "dreal/contractor/contractor_cell.h"
8 
9 namespace dreal {
10 
11 /// Join contractor.
12 /// (C₁ ∨ ... ∨ Cₙ)(b) = C₁(b) ∨ ... ∨ Cₙ(b).
14  public:
15  /// Deletes default constructor.
16  ContractorJoin() = delete;
17 
18  /// Constructs a join contractor from a {C₁, ..., Cₙ}.
19  ContractorJoin(std::vector<Contractor> contractors, const Config& config);
20 
21  /// Deleted copy constructor.
22  ContractorJoin(const ContractorJoin&) = delete;
23 
24  /// Deleted move constructor.
25  ContractorJoin(ContractorJoin&&) = delete;
26 
27  /// Deleted copy assign operator.
28  ContractorJoin& operator=(const ContractorJoin&) = delete;
29 
30  /// Deleted move assign operator.
32 
33  /// Default destructor.
34  ~ContractorJoin() override = default;
35 
36  void Prune(ContractorStatus* cs) const override;
37  std::ostream& display(std::ostream& os) const override;
38 
39  private:
40  std::vector<Contractor> contractors_;
41 };
42 } // namespace dreal
Join contractor.
Definition: contractor_join.h:13
const Config & config() const
Returns config.
Definition: contractor_cell.cc:33
Abstract base class of contractors.
Definition: contractor_cell.h:29
std::ostream & display(std::ostream &os) const override
Outputs this contractor to os.
Definition: contractor_join.cc:38
~ContractorJoin() override=default
Default destructor.
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
void Prune(ContractorStatus *cs) const override
Performs pruning on cs.
Definition: contractor_join.cc:28
Definition: config.h:12
ContractorJoin()=delete
Deletes default constructor.
ContractorJoin & operator=(const ContractorJoin &)=delete
Deleted copy assign operator.
Contractor status.
Definition: contractor_status.h:13