19 class SepCartProd :
public Sep<SepCartProd>
23 SepCartProd(
const Collection<SepBase>& seps)
24 : Sep<SepCartProd>([seps] {
26 for(
const auto& si : seps)
33 requires (IsSepBaseOrPtr<S> && !std::is_same_v<SepCartProd,S>)
34 SepCartProd(
const S& s)
35 : Sep<SepCartProd>(size_of(s)), _seps(s)
38 template<
typename... S>
39 requires (IsSepBaseOrPtr<S> && ...)
40 SepCartProd(
const S&... s)
41 : Sep<SepCartProd>((0 + ... + size_of(s))), _seps(s...)
44 BoxPair separate(
const IntervalVector& x)
const;
48 Collection<SepBase> _seps;
51 template<
typename... S>
52 requires ((is_sep_v<S>) || ...) && ((!is_ctc_v<S>) && ...)
53 inline SepCartProd cart_prod(
const S&... s)
55 return SepCartProd(s...);