18 inline IntervalVector to_IntervalVector(
const Interval& x)
23 template<
typename OtherDerived>
24 requires (std::is_same_v<typename OtherDerived::Scalar,Interval> && OtherDerived::ColsAtCompileTime==1)
25 inline IntervalVector to_IntervalVector(
const Eigen::MatrixBase<OtherDerived>& x)
30 template<
typename OtherDerived>
31 requires (std::is_same_v<typename OtherDerived::Scalar,double> && OtherDerived::ColsAtCompileTime==1)
32 inline IntervalVector to_IntervalVector(
const Eigen::MatrixBase<OtherDerived>& x)
34 return x.template cast<Interval>();
38 template<
typename T,
int R,
int C>
39 requires (!Eigen::IsVectorOrRow<R,C>)
40 inline IntervalVector to_IntervalVector(
const Eigen::Matrix<T,R,C>& x)
45 inline IntervalVector cart_prod()
47 return IntervalVector(0);
50 template<
typename... X>
51 requires ((is_interval_based_v<X>) || ...)
52 && ((!is_ctc_v<X>) && ...) && ((!is_sep_v<X>) && ...)
53 inline IntervalVector cart_prod(
const X&... x)
55 std::vector<IntervalVector> v_x;
56 ((v_x.push_back(to_IntervalVector(x))), ...);
59 for(
const auto& xi : v_x)
64 for(
const auto& xi : v_x)
72 template<
typename... X>
73 requires ((!is_interval_based_v<X>) && ...)
74 && ((!is_ctc_v<X>) && ...) && ((!is_sep_v<X>) && ...)
75 inline Vector cart_prod(
const X&... x)
77 return cart_prod(to_IntervalVector(x)...).mid();
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:62