MC++
mc::EllImg< T > Class Template Reference

C++ class for ellipsoidal arithmetic - Ellipsoidal image environment. More...

#include <ellimage.hpp>

Inheritance diagram for mc::EllImg< T >:
Collaboration diagram for mc::EllImg< T >:

Classes

class  Exceptions
 Exceptions of mc::EllImg. More...
 
struct  Options
 Structure containing the options for EllImg. More...
 

Public Member Functions

Ellipsoidoperator+= (const CPPL::dcovector &d)
 Given vector \(d\in\mathbb R^n\) and ellipsoid \(\mathcal E\in \mathbb R^n\), returns \((\mathcal E + d)\).
 
Ellipsoidoperator-= (const CPPL::dcovector &d)
 Given vector \(d\in\mathbb R^n\) and ellipsoid \(\mathcal E\in \mathbb R^n\), returns \((\mathcal E - d)\).
 
Ellipsoidset (const CPPL::dsymatrix &Q=CPPL::dsymatrix(), const CPPL::dcovector &c=CPPL::dcovector())
 Define ellipsoid of dimension \(n\) with center \(c\) and shape matrix \(Q\).
 
Ellipsoidset (const unsigned int n, const double *Q, const double *c=0)
 Define ellipsoid of dimension \(n\) with center \(c\) and shape matrix \(Q\) (lower triangular part stored contiguously and columnwise)
 
Ellipsoidset (const CPPL::dcovector &r, const CPPL::dcovector &c=CPPL::dcovector())
 Define ellipsoid of dimension \(n\) enclosing interval vector of radius \(r\) centered at \(c\).
 
template<typename T >
Ellipsoidset (const unsigned n, const T *B)
 Define ellipsoid of dimension \(n\) enclosing interval vector of radius \(r\) centered at \(c\).
 
Ellipsoidextend (const CPPL::drovector &Qi, const double &ci=0.)
 Extend dimension by one, by appending row Qi to shape matrix and entry ci to center.
 
Ellipsoid O () const
 Recenter ellipsoid at the origin by canceling out the centre.
 
unsigned int n () const
 Return dimension of ellipsoid.
 
const CPPL::dcovector & c () const
 Return center of ellipsoid.
 
CPPL::dcovector & c ()
 Return center of ellipsoid.
 
double c (unsigned int i) const
 Return center coefficient.
 
const CPPL::dsymatrix & Q () const
 Return shape matrix of ellipsoid.
 
double Q (unsigned int i, unsigned int j) const
 Return shape matrix coefficient.
 
double & Q (unsigned int i, unsigned int j)
 Return/set shape matrix coefficient.
 
double trQ () const
 Return trace of shape matrix.
 
const std::pair
< CPPL::dcovector,
CPPL::dgematrix > & 
eigQ ()
 Return eigenvalues and eigenvectors of shape matrix.
 
bool psdQ ()
 Return square root of shape matrix.
 
const CPPL::dsymatrix & sqrtQ (const bool complete=false)
 Return square root of shape matrix.
 
unsigned int rankQ ()
 Return rank of shape matrix.
 
const std::pair
< CPPL::dcovector, std::pair
< CPPL::dgematrix,
CPPL::dgematrix > > & 
svdQ ()
 Return singular value decomposition of shape matrix.
 
const CPPL::dsymatrix & regQ ()
 Return pointer to regularized shape matrix.
 
const CPPL::dsymatrix & invQ ()
 Return pointer to inverse shape matrix.
 
CPPL::dgematrix align (const CPPL::dcovector &v, const CPPL::dcovector &x) const
 Computes an orthogonal matrix rotating the vector x so that it is parallel to the vector v
 
double l (const unsigned int i) const
 Return lower bound for \(x_i\) for index \(i\in\{0,...,n-1\}\).
 
double u (const unsigned int i) const
 Return upper bound for \(x_i\) for index \(i\in\{0,...,n-1\}\).
 
double r (const unsigned int i) const
 Return maximum radius for \(x_i\) for index \(i\in\{0,...,n-1\}\).
 
CPPL::dssmatrix Q_lift ()
 Returns the shape matrix of the lifted Ellipsoid.
 
CPPL::dcovector c_lift ()
 Returns the centre of the lifted Ellipsoid.
 
 EllImg ()
 Default constructor.
 
 EllImg (const CPPL::dsymatrix &Q, const CPPL::dcovector &c=CPPL::dcovector(), const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Constructor for ellipsoid with shape matrix \(Q\) and center \(c\).
 
 EllImg (const unsigned int n, const double *Q, const double *c=0, const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Constructor for ellipsoid of dimension \(n\) with shape matrix \(Q\) (lower triangular part stored contiguously and columnwise) and center \(c\).
 
 EllImg (const CPPL::dcovector &r, const CPPL::dcovector &c=CPPL::dcovector(), const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Constructor for ellipsoid enclosing interval vector of radius \(r\) centered at \(c\).
 
 EllImg (const EllImg< T > &E)
 Copy constructor.
 
virtual ~EllImg ()
 Destructor.
 
EllImg< T > & set (const EllImg< T > &E)
 Set an ellipsoid identical to E
 
EllImg< T > & set (const CPPL::dsymatrix &Q, const CPPL::dcovector &c=CPPL::dcovector(), const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Set an ellipsoid with shape matrix \(Q\) and center \(c\).
 
EllImg< T > & set (const unsigned int n, const double *Q, const double *c=0, const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Set an ellipsoid of dimension \(n\) with shape matrix \(Q\) (lower triangular part stored contiguously and columnwise) and center \(c\).
 
EllImg< T > & set (const CPPL::dcovector &r, const CPPL::dcovector &c=CPPL::dcovector(), const CPPL::dssmatrix &depmap=CPPL::dssmatrix())
 Set an ellipsoidal enclosing interval vector of radius \(r\) centered at \(c\).
 
EllImg< T > & reset ()
 Reset ellipsoidal image to underlying defining ellipsoid.
 
EllImg< T > get (unsigned nvar, EllVar< T > *var)
 Get projection of lifted ellipsoid on variables var
 
std::ostream & output (std::ostream &os=std::cout)
 Output lifted ellipsoid to os
 

Detailed Description

template<class T>
class mc::EllImg< T >

mc::EllImg is a C++ class for definition of ellipsoidal image environment, derived from mc::Ellipsoid. Computation of ellipsoidal image for factorable functions is via the C++ class mc::EllVar. The template parameter corresponds to the type used to propagate variable range. Round-off errors are not accounted for in the computations (non-verified implementation).


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