codac 1.5.6
Loading...
Searching...
No Matches
codac2_Domain.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <cstdio>
13#include <vector>
14#include <string>
15
16namespace codac2
17{
18 class Domain
19 {
20 public:
21
22 virtual ~Domain() = default;
23 };
24
25 template<typename T,typename V>
26 class DomainInterface : public Domain
27 {
28 public:
29
30 DomainInterface()
31 { }
32
33 ~DomainInterface()
34 { }
35
36 virtual V lb() const = 0;
37 virtual V ub() const = 0;
38 virtual V mid() const = 0;
39 virtual V mag() const = 0;
40 virtual V mig() const = 0;
41 virtual V rad() const = 0;
42 virtual V diam() const = 0;
43 virtual double volume() const = 0;
44 virtual void set_empty() = 0;
45 virtual bool is_empty() const = 0;
46 virtual bool contains(const V& x) const = 0;
47 virtual bool interior_contains(const V& x) const = 0;
48 virtual bool is_unbounded() const = 0;
49 virtual bool is_degenerated() const = 0;
50 virtual bool intersects(const T &x) const = 0;
51 virtual bool is_disjoint(const T& x) const = 0;
52 virtual bool overlaps(const T &x) const = 0;
53 virtual bool is_subset(const T& x) const = 0;
54 virtual bool is_strict_subset(const T& x) const = 0;
55 virtual bool is_interior_subset(const T& x) const = 0;
56 virtual bool is_strict_interior_subset(const T& x) const = 0;
57 virtual bool is_superset(const T& x) const = 0;
58 virtual bool is_strict_superset(const T& x) const = 0;
59 };
60
61}