ibex::Bisector Class Reference
[Paver]

Generic bisector. More...

#include <IbexBisector.h>

Inheritance diagram for ibex::Bisector:

ibex::Operator ibex::BlockRoundRobin ibex::LargestFirst ibex::RoundRobin ibex::SmearFunction

List of all members.

Public Member Functions

 Bisector (Space &space, REAL ratio=default_ratio)
 Bisector (const Bisector &b)
virtual Bisectorcopy () const =0
Cellcurrent_cell ()
Bisection bisect (Cell &cell)
virtual Bisection bisect ()=0
int last_bisected_var ()

Public Attributes

const REAL ratio

Static Public Attributes

static const REAL default_prec = __IBEX_DEFAULT_PRECISION
static const REAL default_ratio = __IBEX_DEFAULT_RATIO_BISS


Detailed Description

Generic bisector.

Base class of all bisectors. A bisector is an operator used by a paver to make a choice point. An implementation of this class must provide a bisect() function.

Author:
Gilles Chabert
Date:
November 2007

Constructor & Destructor Documentation

ibex::Bisector::Bisector ( Space space,
REAL  ratio = default_ratio 
) [inline]

Create the bisector on a given space.

Parameters:
space - The space, passed by reference.
ratio (optional) - the ratio between the diameters of the left and the right parts of the bisected interval. Default value is 0.5, i.e. the interval is bisected at the midpoint.

ibex::Bisector::Bisector ( const Bisector b  )  [inline]

Duplicate this instance (space is passed by reference).


Member Function Documentation

virtual Bisector* ibex::Bisector::copy (  )  const [pure virtual]

Override the interface of the generic operator copy.

Implements ibex::Operator.

Implemented in ibex::RoundRobin, ibex::LargestFirst, ibex::SmearFunction, and ibex::BlockRoundRobin.

Cell* ibex::Bisector::current_cell (  )  [inline]

Return the current cell (NULL pointer if none). This information can be typically used to get the last bisected variable in case the bisector is called by a paver (e.g., for RoundRobin).

Bisection ibex::Bisector::bisect ( Cell cell  ) 

Bisect the current box (in a solving process).

virtual Bisection ibex::Bisector::bisect (  )  [pure virtual]

Bisect the current box. The result is obtained via getBisection().

Implemented in ibex::RoundRobin, ibex::LargestFirst, ibex::SmearFunction, and ibex::BlockRoundRobin.

int ibex::Bisector::last_bisected_var (  )  [inline]

Return the result of the last bisection. This function should only be called after bisect(). Return the last bisected variable if this bisector is called from a paver, -1 otheriwse. If this is the first time this bisector is called by the paver, return also -1.


Member Data Documentation

const REAL ibex::Bisector::default_prec = __IBEX_DEFAULT_PRECISION [static]

Set to 1e-07 (__IBEX_DEFAULT_PRECISION).

const REAL ibex::Bisector::default_ratio = __IBEX_DEFAULT_RATIO_BISS [static]

Set to 0.45 (__IBEX_DEFAULT_RATIO_BISS).

Ratio between the diameters of the left and right parts of a bisected interval.


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