#include <IbexBoxNarrow.h>

Public Member Functions | |
| BoxNarrow (const Equality &equ, Space &space, REAL var_ratio=default_var_ratio, REAL w_newton=UnivNewton::default_precision) | |
| BoxNarrow (const BoxNarrow &b) | |
| ~BoxNarrow () | |
| void | narrow (int var) |
| virtual void | contract () |
| virtual bool | involves (int ent) const |
| virtual BoxNarrow * | copy () const |
| virtual void | accept_printer (const OperatorPrinter &p) const |
Public Attributes | |
| const REAL | var_ratio |
| const Equality & | equ |
Static Public Attributes | |
| static const REAL | default_var_ratio = __IBEX_DEFAULT_BOX_VAR_RATIO |
A contraction obtained with a dichotomic application of the univariate Newton iteration. This atomic contractor is mainly used by the box contractor.
| ibex::BoxNarrow::BoxNarrow | ( | const Equality & | equ, | |
| Space & | space, | |||
| REAL | var_ratio = default_var_ratio, |
|||
| REAL | w_newton = UnivNewton::default_precision | |||
| ) |
Build a box narrowing contractor.
| equ | - The equality to build this contractor with. | |
| space | - The space | |
| var_ratio | - Minimum width of a slice in the narrow procedure (the slice width must not be greater that var_ratio times the initial diameter of the domain). Default value is default_var_ratio. | |
| w_newton | - Criterion for stopping the interval univariate Newton iteration used to contract a slice. If a step of interval univariate Newton does not reduce the variable domain diameter by more than w_newton (this is not ratio but an absolute value), then the procedure stops. Default value is ibex::UnivNewton::default_precision. |
| ibex::BoxNarrow::BoxNarrow | ( | const BoxNarrow & | b | ) |
Duplicate this instance.
| ibex::BoxNarrow::~BoxNarrow | ( | ) |
Delete this instance.
| void ibex::BoxNarrow::narrow | ( | int | var | ) |
Apply narrowing on a variable var.
| UnfeasibilityException | - if inconsisteny is detected. |
| void ibex::BoxNarrow::contract | ( | ) | [virtual] |
Appliy generic contraction.
The indicators structure should contain a specific scope value. This value being the variable onto which narrowing has to be enforced. The procedure also takes into account the impact if it is set to NO_VAR (improving efficiency).
Implements ibex::Contractor.
| virtual bool ibex::BoxNarrow::involves | ( | int | ent | ) | const [inline, virtual] |
Return true if the entity ent is involved in the expression of this equation.
Reimplemented from ibex::Contractor.
| virtual BoxNarrow* ibex::BoxNarrow::copy | ( | ) | const [inline, virtual] |
Implement the contractor abstract copy.
Implements ibex::Contractor.
| virtual void ibex::BoxNarrow::accept_printer | ( | const OperatorPrinter & | p | ) | const [inline, virtual] |
Accept the pretty printer.
Reimplemented from ibex::Operator.
| const REAL ibex::BoxNarrow::var_ratio |
Variable splitting ratio. Set by default to default_var_ratio.
const REAL ibex::BoxNarrow::default_var_ratio = __IBEX_DEFAULT_BOX_VAR_RATIO [static] |
Default variable splitting ratio. Set to 0.03.
| const Equality& ibex::BoxNarrow::equ |
The equation
1.5.5