#include <IbexShaving.h>

Public Member Functions | |
| Slicer (const Contractor &ctc, int key, int nb_slices, bool logic_op) | |
| Slicer (const Slicer &) | |
| ~Slicer () | |
| virtual void | contract () |
| virtual Slicer * | copy () const |
| virtual void | accept_printer (const OperatorPrinter &p) const |
Public Attributes | |
| Contractor & | ctc |
| const int | key |
| const bool | quantifier |
| const int | nb_slices |
A simpler variant of ibex::Shaving, where the shaved entity can be an existential or universal parameter.
| ibex::Slicer::Slicer | ( | const Contractor & | ctc, | |
| int | key, | |||
| int | nb_slices, | |||
| bool | logic_op | |||
| ) |
Builds a slicer on the parameter key with either a AND or OR betweeen each slices.
| ibex::Slicer::Slicer | ( | const Slicer & | s | ) |
Duplicate this instance.
| ibex::Slicer::~Slicer | ( | ) |
Deletes this instance.
| void ibex::Slicer::contract | ( | ) | [virtual] |
Contract domain by "splitting the parameter into \a nb_slices slices". More precisely: performs a search including the parameter as a regular variable. The precision of the bisection is the current parameter domain diameter divided by the number of slices (see constructor). The contraction used in the search (at each node) is ctc. If the paramter is existentially quantified, the hull of the precision subpaving is computed, otherwise, the intersection of this subpaving is computed.
Implements ibex::Contractor.
| virtual Slicer* ibex::Slicer::copy | ( | ) | const [inline, virtual] |
Implement the contractor abstract copy (space is passed by reference).
Implements ibex::Contractor.
| virtual void ibex::Slicer::accept_printer | ( | const OperatorPrinter & | p | ) | const [inline, virtual] |
Accept the pretty printer.
Reimplemented from ibex::Operator.
The contractor.
| const int ibex::Slicer::key |
The symbol key of the parameter.
| const bool ibex::Slicer::quantifier |
Quantifier (true=universal, false=existential)
| const int ibex::Slicer::nb_slices |
The number of slices.
1.5.5