|
QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
|
Matrix used in linear algebra. More...
#include <ql/math/matrix.hpp>
Public Member Functions | |
Constructors, destructor, and assignment | |
| Matrix () | |
| creates a null matrix | |
| Matrix (Size rows, Size columns) | |
| creates a matrix with the given dimensions | |
| Matrix (Size rows, Size columns, Real value) | |
| creates the matrix and fills it with value | |
| template<class Iterator> | |
| Matrix (Size rows, Size columns, Iterator begin, Iterator end) | |
| creates the matrix and fills it with data from a range. | |
| Matrix (const Matrix &) | |
| Matrix (Matrix &&) noexcept | |
| Matrix (std::initializer_list< std::initializer_list< Real > >) | |
| Matrix & | operator= (const Matrix &) |
| Matrix & | operator= (Matrix &&) noexcept |
| bool | operator== (const Matrix &) const |
| bool | operator!= (const Matrix &) const |
Iterator access | |
| const_iterator | begin () const |
| iterator | begin () |
| const_iterator | end () const |
| iterator | end () |
| const_reverse_iterator | rbegin () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rend () const |
| reverse_iterator | rend () |
| const_row_iterator | row_begin (Size i) const |
| row_iterator | row_begin (Size i) |
| const_row_iterator | row_end (Size i) const |
| row_iterator | row_end (Size i) |
| const_reverse_row_iterator | row_rbegin (Size i) const |
| reverse_row_iterator | row_rbegin (Size i) |
| const_reverse_row_iterator | row_rend (Size i) const |
| reverse_row_iterator | row_rend (Size i) |
| const_column_iterator | column_begin (Size i) const |
| column_iterator | column_begin (Size i) |
| const_column_iterator | column_end (Size i) const |
| column_iterator | column_end (Size i) |
| const_reverse_column_iterator | column_rbegin (Size i) const |
| reverse_column_iterator | column_rbegin (Size i) |
| const_reverse_column_iterator | column_rend (Size i) const |
| reverse_column_iterator | column_rend (Size i) |
Element access | |
| const_row_iterator | operator[] (Size) const |
| const_row_iterator | at (Size) const |
| row_iterator | operator[] (Size) |
| row_iterator | at (Size) |
| Array | diagonal () const |
| Real & | operator() (Size i, Size j) const |
Inspectors | |
| Size | rows () const |
| Size | columns () const |
| bool | empty () const |
| Size | size1 () const |
| Size | size2 () const |
Related Symbols | |
(Note that these are not member symbols.) | |
| Matrix | operator+ (const Matrix &, const Matrix &) |
| Matrix | operator+ (const Matrix &, Matrix &&) |
| Matrix | operator+ (Matrix &&, const Matrix &) |
| Matrix | operator+ (Matrix &&, Matrix &&) |
| Matrix | operator- (const Matrix &) |
| Matrix | operator- (Matrix &&) |
| Matrix | operator- (const Matrix &, const Matrix &) |
| Matrix | operator- (const Matrix &, Matrix &&) |
| Matrix | operator- (Matrix &&, const Matrix &) |
| Matrix | operator- (Matrix &&, Matrix &&) |
| Matrix | operator* (const Matrix &, Real) |
| Matrix | operator* (Matrix &&, Real) |
| Matrix | operator* (Real, const Matrix &) |
| Matrix | operator* (Real, Matrix &&) |
| Matrix | operator/ (const Matrix &, Real) |
| Matrix | operator/ (Matrix &&, Real) |
| Array | operator* (const Array &, const Matrix &) |
| Array | operator* (const Matrix &, const Array &) |
| Matrix | operator* (const Matrix &, const Matrix &) |
| Matrix | transpose (const Matrix &) |
| Matrix | outerProduct (const Array &v1, const Array &v2) |
| template<class Iterator1, class Iterator2> | |
| Matrix | outerProduct (Iterator1 v1begin, Iterator1 v1end, Iterator2 v2begin, Iterator2 v2end) |
| void | swap (Matrix &, Matrix &) noexcept |
| std::ostream & | operator<< (std::ostream &, const Matrix &) |
| Matrix | inverse (const Matrix &m) |
| Real | determinant (const Matrix &m) |
| Matrix | CholeskyDecomposition (const Matrix &m, bool flexible=false) |
| Matrix | pseudoSqrt (const Matrix &, SalvagingAlgorithm::Type=SalvagingAlgorithm::None) |
| Returns the pseudo square root of a real symmetric matrix. | |
| Matrix | rankReducedSqrt (const Matrix &, Size maxRank, Real componentRetainedPercentage, SalvagingAlgorithm::Type) |
| Returns the rank-reduced pseudo square root of a real symmetric matrix. | |
Algebraic operators | |
| typedef Real * | iterator |
| typedef const Real * | const_iterator |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| typedef Real * | row_iterator |
| typedef const Real * | const_row_iterator |
| typedef std::reverse_iterator< row_iterator > | reverse_row_iterator |
| typedef std::reverse_iterator< const_row_iterator > | const_reverse_row_iterator |
| typedef step_iterator< iterator > | column_iterator |
| typedef step_iterator< const_iterator > | const_column_iterator |
| typedef std::reverse_iterator< column_iterator > | reverse_column_iterator |
| typedef std::reverse_iterator< const_column_iterator > | const_reverse_column_iterator |
| const Matrix & | operator+= (const Matrix &) |
| const Matrix & | operator-= (const Matrix &) |
| const Matrix & | operator*= (Real) |
| const Matrix & | operator/= (Real) |
Utilities | |
| void | swap (Matrix &) noexcept |
Matrix used in linear algebra.
This class implements the concept of Matrix as used in linear algebra. As such, it is not meant to be used as a container.
creates the matrix and fills it with data from a range.
Returns the pseudo square root of a real symmetric matrix.
Given a matrix \( M \), the result \( S \) is defined as the matrix such that \( S S^T = M. \) If the matrix is not positive semi definite, it can return an approximation of the pseudo square root using a (user selected) salvaging algorithm.
For more information see: R. Rebonato and P. Jäckel, The most general methodology to create a valid correlation matrix for risk management and option pricing purposes, The Journal of Risk, 2(2), Winter 1999/2000. http://www.rebonato.com/correlationmatrix.pdf
Revised and extended in "Monte Carlo Methods in Finance", by Peter Jäckel, Chapter 6.
|
Returns the rank-reduced pseudo square root of a real symmetric matrix.
The result matrix has rank<=maxRank. If maxRank>=size, then the specified percentage of eigenvalues out of the eigenvalues' sum is retained.
If the input matrix is not positive semi definite, it can return an approximation of the pseudo square root using a (user selected) salvaging algorithm.