19 concept IsRealType = (std::is_same_v<double,T>
20 || std::is_same_v<Vector,T>
21 || std::is_same_v<Matrix,T>);
23 inline Index size_of([[maybe_unused]]
int x)
28 inline Index size_of([[maybe_unused]]
double x)
34 inline Index size_of(
const T& x)
39 template<
typename T1,
typename T2>
40 inline bool same_size(
const T1& x1,
const T2& x2)
42 return size_of(x1) == size_of(x2);
46 bool all_same_size(
const T&... x)
48 return (... && (same_size(std::get<0>(std::make_tuple(x...)), x)));
52 Index size_first_item(
const T&... x)
54 return size_of(std::get<0>(std::make_tuple(x...)));
59 void remove_duplicates_from_list(std::list<T>& l)
61 typename std::list<T>::iterator it = l.begin();
64 if(std::count(l.begin(), l.end(), *it) > 1)
73 inline Index size_of(
const std::shared_ptr<C>& x)
80 inline Index size_of(
const std::shared_ptr<S>& x)
86 inline auto vectorVector_to_vectorIntervalVector(
const std::vector<Mat<double,R,C>>& x)
88 std::vector<Mat<Interval,R,C>> v(x.size());
89 for(
size_t i = 0 ; i < x.size() ; i++)
90 v[i] = x[i].
template cast<Interval>();