codac 2.0.0
Loading...
Searching...
No Matches
Inversion of sliced tubes

Functions

Interval codac2::SlicedTube< T >::invert (const T &y, const Interval &t) const
 Returns the interval inversion \(\left[[x]^{-1}([y])\right]\).
void codac2::SlicedTube< T >::invert (const T &y, std::vector< Interval > &v_t, const Interval &t) const
 Computes the set of continuous values of the inversion \([x]^{-1}([y])\).
Interval codac2::SlicedTube< T >::invert (const T &y, const SlicedTube< T > &v, const Interval &t) const
 Returns the optimal interval inversion \(\left[[x]^{-1}([y])\right]\).
void codac2::SlicedTube< T >::invert (const T &y, std::vector< Interval > &v_t, const SlicedTube< T > &v, const Interval &t) const
 Computes the set of continuous values of the optimal inversion \([x]^{-1}([y])\).

Detailed Description

Function Documentation

◆ invert() [1/4]

template<typename T>
Interval codac2::SlicedTube< T >::invert ( const T & y,
const Interval & t ) const
inline

Returns the interval inversion \(\left[[x]^{-1}([y])\right]\).

If the inversion results in several pre-images, their union is returned.

Parameters
yinterval codomain
t(optional) temporal domain on which the inversion will be performed
Returns
the hull of \([x]^{-1}([y])\)
783 {
784 return invert_common(y, t,
785 [this,&y](auto it, const Interval& t_) {
786 return slice(it)->invert(y, t_);
787 });
788 }
Tube represented over a sliced temporal domain.
Definition codac2_SlicedTube.h:38
std::shared_ptr< Slice< T > > slice(const std::list< TSlice >::iterator &it)
Returns the slice attached to a temporal iterator.
Definition codac2_SlicedTube.h:249

◆ invert() [2/4]

template<typename T>
void codac2::SlicedTube< T >::invert ( const T & y,
std::vector< Interval > & v_t,
const Interval & t ) const
inline

Computes the set of continuous values of the inversion \([x]^{-1}([y])\).

Parameters
yinterval codomain
v_tvector of the sub-tdomains \([t_k]\) for which \(\forall t\in[t_k] \mid x(t)\in[y], x(\cdot)\in[x](\cdot)\)
t(optional) temporal domain on which the inversion will be performed
812 {
813 return invert_common_subsets(y, v_t, t,
814 [this,&y](auto it, const Interval& t_) {
815 return slice(it)->invert(y, t_);
816 });
817 }

◆ invert() [3/4]

template<typename T>
Interval codac2::SlicedTube< T >::invert ( const T & y,
const SlicedTube< T > & v,
const Interval & t ) const
inline

Returns the optimal interval inversion \(\left[[x]^{-1}([y])\right]\).

The knowledge of the derivative tube \([v](\cdot)\) allows a finer inversion. If the inversion results in several pre-images, their union is returned.

Parameters
yinterval codomain
vderivative tube such that \(\dot{x}(\cdot)\in[v](\cdot)\)
t(optional) temporal domain on which the inversion will be performed
Returns
hull of \([x]^{-1}([y])\)
849 {
850 return invert_common(y, t,
851 [this,&v,&y](auto it, const Interval& t_) {
852 return slice(it)->invert(y, *v.slice(it), t_);
853 });
854 }

◆ invert() [4/4]

template<typename T>
void codac2::SlicedTube< T >::invert ( const T & y,
std::vector< Interval > & v_t,
const SlicedTube< T > & v,
const Interval & t ) const
inline

Computes the set of continuous values of the optimal inversion \([x]^{-1}([y])\).

The knowledge of the derivative tube \([v](\cdot)\) allows finer inversions.

Parameters
yinterval codomain
v_tvector of the sub-tdomains \([t_k]\) for which \(\forall t\in[t_k] \mid x(t)\in[y], x(\cdot)\in[x](\cdot), \dot{x}(\cdot)\in[v](\cdot)\)
vderivative tube such that \(\dot{x}(\cdot)\in[v](\cdot)\)
t(optional) temporal domain on which the inversion will be performed
886 {
887 return invert_common_subsets(y, v_t, t,
888 [this,&v,&y](auto it, const Interval& t_) {
889 return slice(it)->invert(y, *v.slice(it), t_);
890 });
891 }