19 class SepInter :
public Sep<SepInter>
24 requires IsSepBaseOrPtr<S>
25 SepInter(std::initializer_list<S> seps)
26 : SepInter(Collection<SepBase>(seps))
29 SepInter(
const Collection<SepBase>& c)
30 : Sep<SepInter>([&c]() {
31 assert_release(!c.empty());
32 return size_of(c.front());
37 requires (IsSepBaseOrPtr<S> && !std::is_same_v<SepInter,S>)
39 : Sep<SepInter>(size_of(s)), _seps(s)
42 template<
typename... S>
43 requires (IsSepBaseOrPtr<S> && ...)
44 SepInter(
const S&... s)
45 : Sep<SepInter>(size_first_item(s...)), _seps(s...)
47 assert_release(all_same_size(s...));
58 requires IsSepBaseOrPtr<S>
59 SepInter& operator&=(
const S& s)
61 assert_release(size_of(s) == this->size());
68 Collection<SepBase> _seps;
71 template<
typename S1,
typename S2>
72 requires (IsSepBaseOrPtr<S1> && IsSepBaseOrPtr<S2>)
73 inline SepInter
operator&(
const S1& s1,
const S2& s2)
75 return SepInter(s1,s2);
79 requires IsSepBaseOrPtr<S2>
82 assert_release(s1.size() == s2.size());
83 return SepInter(SepWrapper(s1),s2);
87 requires IsSepBaseOrPtr<S1>
90 assert_release(s1.size() == s2.size());
91 return SepInter(s1,SepWrapper(s2));
Definition codac2_OctaSym.h:21
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25
CtcInterType< typenameC1::ContractedTypes >::Ctc operator&(const C1 &c1, const C2 &c2)
Builds an intersection contractor from two contractors.
Definition codac2_CtcInter.h:229