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

\(\mathcal{C}_{\frac{d}{dt}}\) that contracts a tube \([x](\cdot)\) with respect to its derivative tube \([v](\cdot)\) according to the constraint \(\dot{x}(\cdot)=v(\cdot)\) More...

#include <codac_CtcDeriv.h>

Inheritance diagram for codac::CtcDeriv:
Inheritance graph
[legend]
Collaboration diagram for codac::CtcDeriv:
Collaboration graph
[legend]

Public Member Functions

 CtcDeriv ()
 Creates a contractor object \(\mathcal{C}_{\frac{d}{dt}}\).
 
void contract (Tube &x, const Tube &v, TimePropag t_propa=TimePropag::FORWARD|TimePropag::BACKWARD)
 \(\mathcal{C}_{\frac{d}{dt}}\big([x](\cdot),[v](\cdot)\big)\): contracts the tube \([x](\cdot)\) with respect to its derivative \([v](\cdot)\). More...
 
void contract (TubeVector &x, const TubeVector &v, TimePropag t_propa=TimePropag::FORWARD|TimePropag::BACKWARD)
 \(\mathcal{C}_{\frac{d}{dt}}\big([\mathbf{x}](\cdot),[\mathbf{v}](\cdot)\big)\): contracts the tube \([\mathbf{x}](\cdot)\) with respect to its derivative \([\mathbf{v}](\cdot)\). More...
 
void contract (Slice &x, const Slice &v, TimePropag t_propa=TimePropag::FORWARD|TimePropag::BACKWARD)
 \(\mathcal{C}_{\frac{d}{dt}}\big(\llbracket x\rrbracket(\cdot),\llbracket v\rrbracket(\cdot)\big)\): contracts the slice \(\llbracket x\rrbracket(\cdot)\) with respect to its derivative \(\llbracket v\rrbracket(\cdot)\). More...
 
- Public Member Functions inherited from codac::DynCtc
 DynCtc (bool intertemporal=true)
 Creates a contractor. More...
 
virtual ~DynCtc ()
 DynCtc destructor.
 
void preserve_slicing (bool preserve=true)
 Specifies whether the contractor can impact the tube's slicing or not. More...
 
void set_fast_mode (bool fast_mode=true)
 Specifies an optional fast mode of contraction. More...
 
void restrict_tdomain (const Interval &tdomain)
 Limits the temporal domain of contractions. More...
 
bool is_intertemporal () const
 Tests if the related constraint is inter-temporal or not. More...
 

Protected Member Functions

void contract_gates (Slice &x, const Slice &v)
 Contracts input and output gates of a slice regarding its derivative set. More...
 

Static Protected Attributes

static const std::string m_ctc_name
 class name (mainly used for CN Exceptions)
 
static std::vector< std::string > m_str_expected_doms
 allowed domains signatures (mainly used for CN Exceptions)
 

Additional Inherited Members

- Protected Attributes inherited from codac::DynCtc
bool m_preserve_slicing = true
 if true, tube's slicing will not be affected by the contractor
 
bool m_fast_mode = false
 some contractors may propose more pessimistic but faster execution modes
 
Interval m_restricted_tdomain
 limits the contractions to the specified temporal domain
 
const bool m_intertemporal = true
 defines if the related constraint is inter-temporal or not (true by default)
 

Detailed Description

\(\mathcal{C}_{\frac{d}{dt}}\) that contracts a tube \([x](\cdot)\) with respect to its derivative tube \([v](\cdot)\) according to the constraint \(\dot{x}(\cdot)=v(\cdot)\)

Note
This contractor is called \(\mathcal{C}_{\frac{d}{dt}}\) in the literature.
Todo:
Contract the tube \([v](\cdot)\) if \([x](\cdot)\) degenerated?

Member Function Documentation

◆ contract() [1/3]

void codac::CtcDeriv::contract ( Tube x,
const Tube v,
TimePropag  t_propa = TimePropag::FORWARD|TimePropag::BACKWARD 
)

\(\mathcal{C}_{\frac{d}{dt}}\big([x](\cdot),[v](\cdot)\big)\): contracts the tube \([x](\cdot)\) with respect to its derivative \([v](\cdot)\).

Precondition
\([x](\cdot)\) and \([v](\cdot)\) must share the same slicing and tdomain.
Parameters
xthe scalar tube \([x](\cdot)\)
vthe scalar derivative tube \([v](\cdot)\)
t_propaan optional temporal way of propagation (forward or backward in time, both ways by default)

◆ contract() [2/3]

void codac::CtcDeriv::contract ( TubeVector x,
const TubeVector v,
TimePropag  t_propa = TimePropag::FORWARD|TimePropag::BACKWARD 
)

\(\mathcal{C}_{\frac{d}{dt}}\big([\mathbf{x}](\cdot),[\mathbf{v}](\cdot)\big)\): contracts the tube \([\mathbf{x}](\cdot)\) with respect to its derivative \([\mathbf{v}](\cdot)\).

Precondition
\([\mathbf{x}](\cdot)\) and \([\mathbf{v}](\cdot)\) must share the same dimension, slicing and tdomain.
Parameters
xthe n-dimensional tube \([\mathbf{x}](\cdot)\)
vthe n-dimensional derivative tube \([\mathbf{v}](\cdot)\)
t_propaan optional temporal way of propagation (forward or backward in time, both ways by default)

◆ contract() [3/3]

void codac::CtcDeriv::contract ( Slice x,
const Slice v,
TimePropag  t_propa = TimePropag::FORWARD|TimePropag::BACKWARD 
)

\(\mathcal{C}_{\frac{d}{dt}}\big(\llbracket x\rrbracket(\cdot),\llbracket v\rrbracket(\cdot)\big)\): contracts the slice \(\llbracket x\rrbracket(\cdot)\) with respect to its derivative \(\llbracket v\rrbracket(\cdot)\).

Precondition
\(\llbracket x\rrbracket(\cdot)\) and \(\llbracket v\rrbracket(\cdot)\) must share the same tdomain.
Parameters
xthe slice \(\llbracket x\rrbracket(\cdot)\)
vthe derivative slice \(\llbracket v\rrbracket(\cdot)\)
t_propaan optional temporal way of propagation (forward or backward in time, both ways by default)

◆ contract_gates()

void codac::CtcDeriv::contract_gates ( Slice x,
const Slice v 
)
protected

Contracts input and output gates of a slice regarding its derivative set.

Precondition
\(\llbracket x\rrbracket(\cdot)\) and \(\llbracket v\rrbracket(\cdot)\) must share the same tdomain.
Note
Only the gates may be affected. This method is used for the \(\mathcal{C}_\textrm{eval}\) contractor.
Parameters
xthe slice \(\llbracket x\rrbracket(\cdot)\)
vthe derivative slice \(\llbracket v\rrbracket(\cdot)\)

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