21 if(partial_integ.first.is_empty() || partial_integ.second.is_empty())
24 else if(partial_integ.first.is_unbounded() || partial_integ.second.is_unbounded())
28 return T(partial_integ.first.lb()) | partial_integ.second.ub();
37 if(integ_t1.first.is_empty() || integ_t1.second.is_empty() ||
38 integ_t2.first.is_empty() || integ_t2.second.is_empty())
43 else if(integ_t1.first.is_unbounded() || integ_t1.second.is_unbounded() ||
44 integ_t2.first.is_unbounded() || integ_t2.second.is_unbounded())
51 auto lb = (integ_t2.first - integ_t1.first).
lb();
52 auto ub = (integ_t2.second - integ_t1.second).
ub();
66 std::pair<T,T> p_integ { zero, zero };
67 auto p_integ_uncertain = p_integ;
69 for(
const auto& si : *
this)
71 if(si.t0_tf().lb() >= t.
ub())
74 if(si.codomain().is_empty())
80 if(si.codomain().is_unbounded())
91 p_integ.first += intv_t.
diam() * si.codomain().lb();
92 p_integ.second += intv_t.
diam() * si.codomain().ub();
93 p_integ_uncertain = p_integ;
95 if(intv_t.
ub() == t.
ub())
101 intv_t = si.t0_tf() & t;
104 auto p_integ_temp = p_integ_uncertain;
105 p_integ_uncertain.first +=
Interval(0., intv_t.
diam()) * si.codomain().
lb();
106 p_integ_uncertain.second +=
Interval(0., intv_t.
diam()) * si.codomain().
ub();
108 p_integ.first |= p_integ_uncertain.first;
109 p_integ.second |= p_integ_uncertain.second;
111 p_integ_uncertain.first = p_integ_temp.first + intv_t.
diam() * si.codomain().lb();
112 p_integ_uncertain.second = p_integ_temp.second + intv_t.
diam() * si.codomain().ub();
125 integ_t2.first - integ_t1.first,
126 integ_t2.second - integ_t1.second
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:49
bool is_empty() const
Tests if this is empty.
Definition codac2_Interval_impl.h:205
double ub() const
Returns the upper bound of this.
Definition codac2_Interval_impl.h:115
double diam() const
Returns the diameter of this.
Definition codac2_Interval_impl.h:177
double lb() const
Returns the lower bound of this.
Definition codac2_Interval_impl.h:110
T all_reals_value() const
Returns the unbounded codomain value associated with T.
Definition codac2_SlicedTube.h:1051
T empty_value() const
Returns the empty codomain value associated with T.
Definition codac2_SlicedTube.h:1063
Interval t0_tf() const
Returns the global temporal interval of this tube.
Definition codac2_TubeBase.h:61
const std::shared_ptr< TDomain > & tdomain() const
Returns the temporal domain of this tube.
Definition codac2_TubeBase.h:49
auto ub() const
Returns a matrix containing the upper bounds of each interval element.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:103
auto lb() const
Returns a matrix containing the lower bounds of each interval element.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:91
std::pair< T, T > partial_integral(const Interval &t) const
Returns lower and upper enclosures of the integrals of this tube from to .
Definition codac2_SlicedTube_integral_impl.h:58
T integral(const Interval &t) const
Returns an enclosure of the integrals of this tube from to .
Definition codac2_SlicedTube_integral_impl.h:17
Definition codac2_OctaSym.h:21