codac
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.

## ◆ SepProj() [1/2]

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

Construct a new Sep Proj object.

Parameters
 sep Separator 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_init Initial box for the parameters prec Bisection 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
 sep Separator 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_init Initial Interval for the parameters prec Bisection precision on the parameters (the contraction involves a bisection process on y)

## ◆ separate()

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

Separate method.

Parameters
 x_in the n-dimensional box $[\mathbf{x}_{\textrm{in}}]$ to be inner-contracted x_out the 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.

## ◆ 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: