21 BoxPair(
const BoxPair& x)
25 BoxPair(
const IntervalVector& inner_,
const IntervalVector& outer_)
26 : _bp { inner_, outer_ }
29 BoxPair& operator=(
const BoxPair& x)
35 IntervalVector& inner = _bp[0];
36 IntervalVector& outer = _bp[1];
40 std::array<IntervalVector,2> _bp;
43 inline std::ostream&
operator<<(std::ostream& os,
const BoxPair& x)
45 os <<
"(" << x.inner <<
"," << x.outer <<
")";
64 virtual std::shared_ptr<SepBase> copy()
const = 0;
65 virtual BoxPair separate(
const IntervalVector& x)
const = 0;
73 class Sep :
public SepBase
81 virtual std::shared_ptr<SepBase> copy()
const
83 return std::make_shared<S>(*
dynamic_cast<const S*
>(
this));
88 concept IsSepBaseOrPtr = (std::is_base_of_v<SepBase,S>
89 || std::is_base_of_v<S,std::shared_ptr<SepBase>>);
93 requires (IsSepBaseOrPtr<S>)
94 struct is_interval_based<S> : std::false_type {};
97 requires (IsSepBaseOrPtr<S>)
98 struct is_ctc<S> : std::false_type {};
101 requires (IsSepBaseOrPtr<S>)
102 struct is_sep<S> : std::true_type {};
std::ostream & operator<<(std::ostream &os, const BoolInterval &x)
Streams out a BoolInterval.
Definition codac2_BoolInterval.h:45