MC++
|
C++ class for ellipsoidal calculus. More...
#include <ellipsoid.hpp>
Classes | |
class | Exceptions |
Ellipsoid exceptions. More... | |
struct | Options |
Ellipsoid options. More... | |
Public Member Functions | |
Ellipsoid & | operator+= (const CPPL::dcovector &d) |
Given vector \(d\in\mathbb R^n\) and ellipsoid \(\mathcal E\in \mathbb R^n\), returns \((\mathcal E + d)\). | |
Ellipsoid & | operator-= (const CPPL::dcovector &d) |
Given vector \(d\in\mathbb R^n\) and ellipsoid \(\mathcal E\in \mathbb R^n\), returns \((\mathcal E - d)\). | |
Ellipsoid & | operator= (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. | |
Ellipsoid & | set (const CPPL::dsymatrix &Q=CPPL::dsymatrix(), const CPPL::dcovector &c=CPPL::dcovector()) |
Define ellipsoid of dimension \(n\) with center \(c\) and shape matrix \(Q\). | |
Ellipsoid & | set (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) | |
Ellipsoid & | set (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 > | |
Ellipsoid & | set (const unsigned n, const T *B) |
Define ellipsoid of dimension \(n\) enclosing interval vector of radius \(r\) centered at \(c\). | |
Ellipsoid & | reset () |
Reset ellipsoid. | |
Ellipsoid & | extend (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\}\). | |
mc::Ellipsoid is a C++ class for ellipsoidal calculus. Round-off errors are not accounted for in the computations (non-verified implementation).