irafhy
Interval arithmetic based Reachability Analysis Framework for Hybrid Automaton
item.h
Go to the documentation of this file.
1 #ifndef REPRESENTATION_FORMAL_BASIC_ITEM_H
2 #define REPRESENTATION_FORMAL_BASIC_ITEM_H
3 
8 #include <boost/variant.hpp>
9 
10 namespace irafhy
11 {
12  using Entity = boost::variant<Constant, Variable, UnaryItem, BinaryItem>;
13 
14  struct entityVisitor : public boost::static_visitor<Entity>
15  {
16  public:
17  Entity operator()(const Entity& entity) const { return entity; }
18  };
19 
20  class Item
21  {
22  private:
27 
28  public:
32  Item();
37  explicit Item(const Entity& entity);
41  ~Item() = default;
46  [[nodiscard]] std::function<
47  capd::autodiff::Node(capd::autodiff::Node, capd::autodiff::Node[], int, capd::autodiff::Node[], int)>
48  arithmetic() const;
56  [[nodiscard]] capd::interval value(const capd::interval& t,
57  const std::vector<capd::interval>& in,
58  const std::vector<capd::interval>& params) const;
65  friend std::ostream& operator<<(std::ostream& out, const Item& rhs);
66  };
67 } // namespace irafhy
68 #endif //REPRESENTATION_FORMAL_BASIC_ITEM_H
Definition: item.h:20
std::ostream & operator<<(std::ostream &out, const Condition &rhs)
output the right hand side condition to the standard out stream
Definition: condition.cpp:246
Entity entity_
Definition: item.h:26
Definition: item.h:14
Entity operator()(const Entity &entity) const
Definition: item.h:17
Definition: condition.cpp:3
boost::variant< Constant, Variable, UnaryItem, BinaryItem > Entity
Definition: item.h:12