MC++
mc::Ellipsoid Class Reference

C++ class for ellipsoidal calculus. More...

#include <ellipsoid.hpp>

Inheritance diagram for mc::Ellipsoid:
Collaboration diagram for mc::Ellipsoid:

Classes

class  Exceptions
 Ellipsoid exceptions. More...
 
struct  Options
 Ellipsoid options. 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)\).
 
Ellipsoidoperator= (const Ellipsoid &E)
 Assignment operator.
 
 Ellipsoid ()
 Default constructor (needed to declare arrays of Ellipsoid class)
 
 Ellipsoid (const CPPL::dsymatrix &Q, const CPPL::dcovector &c=CPPL::dcovector())
 Constructor for ellipsoid of dimension \(n\) with center \(c\) and shape matrix \(Q\).
 
 Ellipsoid (const unsigned int n, const double *Q, const double *c=0)
 Constructor for ellipsoid of dimension \(n\) with center \(c\) and shape matrix \(Q\) (lower triangular part stored contiguously and columnwise)
 
 Ellipsoid (const CPPL::dcovector &r, const CPPL::dcovector &c=CPPL::dcovector())
 Constructor for ellipsoid of dimension \(n\) enclosing interval vector of radius \(r\) centered at \(c\).
 
 Ellipsoid (const Ellipsoid &E)
 Copy constructor.
 
virtual ~Ellipsoid ()
 Destructor.
 
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\).
 
Ellipsoidreset ()
 Reset ellipsoid.
 
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\}\).
 

Detailed Description

mc::Ellipsoid is a C++ class for ellipsoidal calculus. Round-off errors are not accounted for in the computations (non-verified implementation).


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