33 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1,
const std::shared_ptr<CtcBase<IntervalVector>>& s2)
35 return std::make_shared<CtcInter<IntervalVector>>(s1,s2);
38 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1,
const std::shared_ptr<SepBase>& s2)
40 return std::make_shared<SepInter>(s1,s2);
46 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1,
const std::shared_ptr<CtcBase<IntervalVector>>& s2)
48 return std::make_shared<CtcUnion<IntervalVector>>(s1,s2);
51 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1,
const std::shared_ptr<SepBase>& s2)
53 return std::make_shared<SepUnion>(s1,s2);
59 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1,
const std::vector<Index>& proj_indices,
double eps)
61 throw std::logic_error(
"CtcProj not yet available");
65 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1,
const std::vector<Index>& proj_indices,
const IntervalVector& y,
double eps)
67 throw std::logic_error(
"CtcProj not yet available");
71 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1,
const std::vector<Index>& proj_indices,
double eps)
73 return std::make_shared<SepProj>(s1,proj_indices,eps);
76 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1,
const std::vector<Index>& proj_indices,
const IntervalVector& y,
double eps)
78 return std::make_shared<SepProj>(s1,proj_indices,y,eps);
84 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1,
const std::shared_ptr<CtcBase<IntervalVector>>& s2)
86 return std::make_shared<CtcCartProd>(s1,s2);
89 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1,
const std::shared_ptr<SepBase>& s2)
91 return std::make_shared<SepCartProd>(s1,s2);
97 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const AnalyticFunction<VectorType>& f,
const std::shared_ptr<CtcBase<IntervalVector>>& s1)
99 return std::make_shared<CtcInverse<IntervalVector,IntervalVector>>(f,s1);
102 static std::shared_ptr<SepBase> create_sep(
const AnalyticFunction<VectorType>& f,
const std::shared_ptr<SepBase>& s1)
104 return std::make_shared<SepInverse>(f,s1);
110 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const std::shared_ptr<CtcBase<IntervalVector>>& s1)
112 return std::make_shared<CtcNot>(s1);
115 static std::shared_ptr<SepBase> create_sep(
const std::shared_ptr<SepBase>& s1)
117 return std::make_shared<SepNot>(s1);
123 static std::shared_ptr<CtcBase<IntervalVector>> create_ctc(
const OctaSym& a,
const std::shared_ptr<CtcBase<IntervalVector>>& s1)
125 return std::make_shared<CtcAction>(s1,a);
128 static std::shared_ptr<SepBase> create_sep(
const OctaSym& a,
const std::shared_ptr<SepBase>& s1)
130 return std::make_shared<SepAction>(s1,a);