# CovarianceMatrix class

A 2D covariance matrix for computation with 2D vertices.

### Contents

The matrix is real, symmetric, positive semidefinite. See `dip::Polygon::CovarianceMatrix`

for how to create a covariance matrix.

The elements stored are `xx`

, `xy`

and `yy`

, with `xx`

the top-left element, and `xy`

both
the off-diagonal elements, which are equal by definition.

## Constructors, destructors, assignment and conversion operators

- CovarianceMatrix() defaulted
- Default-initialized covariance matrix is all zeros.
- CovarianceMatrix(dip::VertexFloat v) explicit
- Construct a covariance matrix as the outer product of a vector and itself.

## Classes

- struct Eigenvalues
- Container for matrix eigenvalues.
- struct EllipseParameters
- Container for ellipse parameters.

## Functions

- auto xx() const -> dip::dfloat
- Read matrix element.
- auto xy() const -> dip::dfloat
- Read matrix element.
- auto yy() const -> dip::dfloat
- Read matrix element.
- auto Det() const -> dip::dfloat
- Compute determinant of matrix.
- auto Inv() const -> dip::CovarianceMatrix
- Compute inverse of matrix.
- auto Project(dip::VertexFloat const& v) const -> dip::dfloat
- Computes v’ * C * v, with v’ the transpose of v. This is a positive scalar if v is non-zero, because C (this matrix) is positive semidefinite.
- auto Eig() const -> dip::CovarianceMatrix::Eigenvalues
- Compute eigenvalues of matrix.
- auto Ellipse() const -> dip::CovarianceMatrix::EllipseParameters
- Compute parameters of ellipse with same covariance matrix.

## Operators

- auto operator+=(dip::CovarianceMatrix const& other) -> dip::CovarianceMatrix&
- Add other matrix to this matrix.
- auto operator*=(dip::dfloat d) -> dip::CovarianceMatrix&
- Scale matrix.
- auto operator/=(dip::dfloat d) -> dip::CovarianceMatrix&
- Scale matrix.

## Class documentation

### struct EllipseParameters

Container for ellipse parameters.

Variables | |
---|---|

dip::dfloat majorAxis | Major axis length |

dip::dfloat minorAxis | Minor axis length |

dip::dfloat orientation | Orientation of major axis |

dip::dfloat eccentricity | Ellipse eccentricity |