codac
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
codac::SepProj Class Reference

Projection of a separator. More...

#include <codac_SepProj.h>

Inherits Sep.

Public Member Functions

 SepProj (Sep &sep, const IntervalVector &y_init, double prec)
 Construct a new Sep Proj object. More...
 
 SepProj (Sep &sep, const Interval &y_init, double prec)
 Construct a new Sep Proj object. More...
 
 ~SepProj ()
 Destroy the Sep Proj object.
 
void separate (IntervalVector &x_in, IntervalVector &x_out)
 Separate method. More...
 

Protected Member Functions

bool process (IntervalVector &x_in, IntervalVector &x_out, IntervalVector &y, ImpactStatus &impact, bool use_point)
 SepProj::process Separate cartesian product [x_in].[y] and [x_out].[y] if an inner (or outer) contraction happends, the flags impact_cin is set to true and the removed part of the box is stored in first_cin_boxes. More...
 

Protected Attributes

Sep & sep
 The Separator.
 
IntervalVector y_init
 Initial box of the parameters (can be set dynamically)
 
double prec
 precision
 
LargestFirst * bsc
 internal variable used to count the number of call of the SepProj::process method More...
 

Detailed Description

Projection of a separator.

Given \(\mathbb{X}\subset\mathbb{R}^{n}\) and \(\mathbb{Y}\subset\mathbb{R}^{p}\). If \(\mathbb{Z}=\mathbb{X}\times\mathbb{Y}\), then the projection of a subset \(\mathbb{Z}_{1}\) of \(\mathbb{Z}\) onto \(\mathbb{X}\) (with respect to \(\mathbb{Y}\)) is defined as:

\( {proj}_{\mathbb{X}}(\mathbb{Z}_{1})=\left\{ \mathbf{x}\in\mathbb{X}\mid\exists\mathbf{y}\in\mathbb{Y},(\mathbf{x},\mathbf{y})\in\mathbb{Z}_{1}\right\}\)

Given a separator \(\mathcal{S}([\mathbf{x}],\left[\mathbf{y}\right])=\left\{ \mathcal{S}^{\text{in}}([\mathbf{x}],\left[\mathbf{y}\right]),\mathcal{S}^{\text{out}}([\mathbf{x}],\left[\mathbf{y}\right])\right\}\), the projection of \(\mathcal{S}\) is defined by :

\({proj}_{\mathbf{x}}(\mathcal{S})([\textbf{x}])=\left\{ \bigcap_{\textbf{y}\in[\textbf{y}]}\partial_{\textbf{x}}\mathcal{S}^{in}([\textbf{x}],\mathbf{y}),\bigcup_{\textbf{y}\in[\textbf{y}]}\partial_{\textbf{x}}\mathcal{S}^{out}([\textbf{x}],\mathbf{y})\right\}\)

The separator algorythm is inspired from the ibexlib ones but performs the inner and outer contraction concurently.

See Ibexlib (CtcForAll and CtcExist)[http://www.ibex-lib.org/doc/contractor.html#exists-and-forall] documentation for more details.

Constructor & Destructor Documentation

◆ SepProj() [1/2]

codac::SepProj::SepProj ( Sep &  sep,
const IntervalVector &  y_init,
double  prec 
)

Construct a new Sep Proj object.

Parameters
sepSeparator to use for the projection. The input box dimension must be equal to dim([x]) + dim([y_init]). given a two IntervalVector \([\mathbf{x}]\) and \([\mathbf{y}]\), the separator is called with a new box \([\mathbf{z}] = [\mathbf{y}] X [\mathbf{y}]\).
y_initInitial box for the parameters
precBisection precision on the parameters (the contraction involves a bisection process on y)

◆ SepProj() [2/2]

codac::SepProj::SepProj ( Sep &  sep,
const Interval &  y_init,
double  prec 
)

Construct a new Sep Proj object.

Parameters
sepSeparator used for the projection. The input dimension must be equal to size(x) + size(y_init). given a two IntervalVector \([\mathbf{x}]\) and \([\mathbf{y}]\), the separator is called with a new box \([\mathbf{z}] = [\mathbf{y}] X [\mathbf{y}]\).
y_initInitial Interval for the parameters
precBisection precision on the parameters (the contraction involves a bisection process on y)

Member Function Documentation

◆ separate()

void codac::SepProj::separate ( IntervalVector &  x_in,
IntervalVector &  x_out 
)

Separate method.

Parameters
x_inthe n-dimensional box \([\mathbf{x}_{\textrm{in}}]\) to be inner-contracted
x_outthe n-dimensional box \([\mathbf{x}_{\textrm{out}}]\) to be outer-contracted

◆ process()

bool codac::SepProj::process ( IntervalVector &  x_in,
IntervalVector &  x_out,
IntervalVector &  y,
ImpactStatus &  impact,
bool  use_point 
)
protected

SepProj::process Separate cartesian product [x_in].[y] and [x_out].[y] if an inner (or outer) contraction happends, the flags impact_cin is set to true and the removed part of the box is stored in first_cin_boxes.

Parameters
x_in: projected inner box
x_out: projected outer box
y: parameter box
impact: used to trace contraction of the input box
use_point
Returns
true if x_in or x_out is empty.

Member Data Documentation

◆ bsc

LargestFirst* codac::SepProj::bsc
protected

internal variable used to count the number of call of the SepProj::process method

the outer contractor / inner contractor has an impact store the firsr box contractor by the inner/ outer contractor a bisector


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