MC++
|
C++ class for ellipsoidal arithmetic - Ellipsoidal image environment. More...
#include <ellimage.hpp>
Classes | |
class | Exceptions |
Exceptions of mc::EllImg. More... | |
struct | Options |
Structure containing the options for EllImg. 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 & | 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 & | 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\}\). | |
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 | |
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).