ibex::BoxNarrow Class Reference
[Contractors]

Box narrowing contractor. More...

#include <IbexBoxNarrow.h>

Inheritance diagram for ibex::BoxNarrow:

ibex::Contractor ibex::Operator

List of all members.

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 BoxNarrowcopy () const
virtual void accept_printer (const OperatorPrinter &p) const

Public Attributes

const REAL var_ratio
const Equalityequ

Static Public Attributes

static const REAL default_var_ratio = __IBEX_DEFAULT_BOX_VAR_RATIO


Detailed Description

Box narrowing contractor.

A contraction obtained with a dichotomic application of the univariate Newton iteration. This atomic contractor is mainly used by the box contractor.

See also:
ibex::UnivNewton.

Constructor & Destructor Documentation

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.

Parameters:
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.


Member Function Documentation

void ibex::BoxNarrow::narrow ( int  var  ) 

Apply narrowing on a variable var.

Exceptions:
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).

Remarks:
if indicators are not specified or if scope is set to ALL_VARS, all the variables are narrowed successively (although not forbidden, a call to this method is likely to be a mistake).
See also:
ibex::Contractor::contract(const Indicators&).

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.


Member Data Documentation

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.

The equation


The documentation for this class was generated from the following files:

Generated on Sun Jun 27 15:52:00 2010 for IBEX by  doxygen 1.5.5