12 #ifndef __CODAC_SLICE_H__ 13 #define __CODAC_SLICE_H__ 18 #include "codac_ConvexPolygon.h" 19 #include "codac_TubeTreeSynthesis.h" 24 #define EPSILON_CONTAINS ibex::next_float(0.) * 1000. 157 const IntervalVector
box()
const;
170 static double diam(
const Interval& interval);
208 const Interval
operator()(
const Interval& t)
const;
218 const std::pair<Interval,Interval>
eval(
const Interval& t = Interval::ALL_REALS)
const;
242 const Interval
interpol(
const Interval& t,
const Slice& v)
const;
251 const Interval
invert(
const Interval& y,
const Interval& search_tdomain = Interval::ALL_REALS)
const;
263 const Interval
invert(
const Interval& y,
const Slice& v,
const Interval& search_tdomain = Interval::ALL_REALS)
const;
390 void set(
const Interval& y);
408 void set_envelope(
const Interval& envelope,
bool slice_consistency =
true);
421 void set_input_gate(
const Interval& input_gate,
bool slice_consistency =
true);
434 void set_output_gate(
const Interval& output_gate,
bool slice_consistency =
true);
676 friend class TubeTreeSynthesis;
FixPoint of a separator The fixpoint of a separator is computed by calling the "::"separate function ...
Definition: codac_capd_helpers.h:9
Slice * prev_slice()
Points to the previous slice .
bool operator==(const Slice &x) const
Returns true if this slice is equal to .
friend void deserialize_Tube(std::ifstream &bin_file, Tube *&tube)
Creates a Tube object from a binary file.
double diam() const
Returns the diameter of this slice.
Slice & operator-=(double x)
Operates -=.
bool is_interior_subset(const Slice &x) const
Returns true if this slice is a subset of the interior of .
bool is_superset(const Slice &x) const
Returns true if this slice is a superset of .
friend std::ostream & operator<<(std::ostream &str, const Slice &x)
Displays a synthesis of this slice.
TubeTreeSynthesis * m_synthesis_reference
pointer to a leaf of the optional synthesis tree of the related tube
Definition: codac_Slice.h:673
const std::pair< Interval, Interval > eval(const Interval &t=Interval::ALL_REALS) const
Returns the interval evaluations of the bounds of the slice over .
Slice of a one dimensional tube and made of an envelope and two gates.
Definition: codac_Slice.h:33
Slice & operator/=(double x)
Operates /=.
const Slice & inflate(double rad)
Inflates this slice by adding to all its codomain components.
void set_envelope(const Interval &envelope, bool slice_consistency=true)
Sets the interval value of the envelope of this slice.
One dimensional trajectory , defined as a temporal map of values.
Definition: codac_Trajectory.h:34
Slice & operator*=(double x)
Operates *=.
const ConvexPolygon polygon(const Slice &v) const
Computes a convex polygon that optimally encloses the values of the slice according to the knowledge ...
const Interval output_gate() const
Returns the value of the output gate of this slice.
const Interval operator()(double t) const
Returns the evaluation of this slice at .
const Interval codomain() const
Returns the envelope of the slice.
double volume() const
Returns the volume of this slice.
Abstract class for common properties of Tube, TubeVector, Slice, Trajectory, TrajectoryVector objects...
Definition: codac_DynamicalItem.h:25
const Interval invert(const Interval &y, const Interval &search_tdomain=Interval::ALL_REALS) const
Returns the interval inversion .
Slice * next_slice()
Points to the next slice .
bool is_strict_subset(const Slice &x) const
Returns true if this slice is a subset of , and not itself.
Slice & operator &=(double x)
Operates &=.
bool operator!=(const Slice &x) const
Returns true if this slice is different from .
~Slice()
Slice destructor.
const IntervalVector codomain_box() const
Returns the box .
that contracts a tube with respect to its derivative tube and a measurement according to the cons...
Definition: codac_CtcEval.h:26
const std::string class_name() const
Returns the name of this class.
Definition: codac_Slice.h:605
bool is_strict_interior_subset(const Slice &x) const
Returns true if this slice is a subset of the interior of , and not itself.
void shift_tdomain(double a)
Shifts the tdomain of .
Slice & operator+=(double x)
Operates +=.
One dimensional tube , defined as an interval of scalar trajectories.
Definition: codac_Tube.h:47
Interval m_codomain
envelope of the slice
Definition: codac_Slice.h:670
bool is_empty() const
Returns true if this slice is empty.
Slice & operator|=(double x)
Operates |=.
void set_tdomain(const Interval &tdomain)
Specifies the temporal domain of this slice.
void set_empty()
Sets this slice to the empty set.
bool is_subset(const Slice &x) const
Returns true if this slice is a subset of .
const Interval input_gate() const
Returns the value of the input gate of this slice.
static void merge_slices(Slice *first_slice, Slice *&second_slice)
Merges the two slices to keep only one.
const BoolInterval contains(const Trajectory &x) const
Returns true if this slice contains the trajectory .
Interval * m_output_gate
input and output gates
Definition: codac_Slice.h:671
int size() const
Returns the dimension of the slice (always 1)
const IntervalVector box() const
Computes the two-dimensional box .
const Slice & operator=(const Slice &x)
Returns a copy of a Slice.
void set_input_gate(const Interval &input_gate, bool slice_consistency=true)
Sets the interval value of the input gate of this slice.
const Interval interpol(double t, const Slice &v) const
Returns the optimal evaluation of this slice at , based on the derivative information ...
bool is_strict_superset(const Slice &x) const
Returns true if this slice is a superset of , and not itself.
Slice * m_next_slice
pointers to previous and next slices of the related tube
Definition: codac_Slice.h:672
void set_output_gate(const Interval &output_gate, bool slice_consistency=true)
Sets the interval value of the output gate of this slice.
Interval m_tdomain
temporal domain of the slice
Definition: codac_Slice.h:669
Slice(const Interval &tdomain, const Interval &codomain=Interval::ALL_REALS)
Creates a slice .
static void chain_slices(Slice *first_slice, Slice *second_slice)
Chains the two slices so that they share pointers and a common gate.
const Interval tdomain() const
Returns the temporal definition domain of this slice.