Matrix Class Reference
#include <ql/Math/matrix.hpp>
Detailed Description
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.
Public Types | |
| typedef Real * | iterator |
| typedef const Real * | const_iterator |
|
typedef boost::reverse_iterator< iterator > | reverse_iterator |
|
typedef boost::reverse_iterator< const_iterator > | const_reverse_iterator |
| typedef Real * | row_iterator |
| typedef const Real * | const_row_iterator |
|
typedef boost::reverse_iterator< row_iterator > | reverse_row_iterator |
|
typedef boost::reverse_iterator< const_row_iterator > | const_reverse_row_iterator |
| typedef step_iterator< iterator > | column_iterator |
| typedef step_iterator< const_iterator > | const_column_iterator |
|
typedef boost::reverse_iterator< column_iterator > | reverse_column_iterator |
|
typedef boost::reverse_iterator< const_column_iterator > | const_reverse_column_iterator |
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 | |
| Matrix (const Matrix &) | |
| Matrix (const Disposable< Matrix > &) | |
| Matrix & | operator= (const Matrix &) |
| Matrix & | operator= (const Disposable< Matrix > &) |
Algebraic operators | |
| const Matrix & | operator+= (const Matrix &) |
| const Matrix & | operator-= (const Matrix &) |
| const Matrix & | operator *= (Real) |
| const Matrix & | operator/= (Real) |
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 |
| row_iterator | operator[] (Size) |
| Disposable< Array > | diagonal (void) const |
Inspectors | |
| Size | rows () const |
| Size | columns () const |
| bool | empty () const |
Utilities | |
| void | swap (Matrix &) |
Related Functions | |
| (Note that these are not member functions.) | |
| const Disposable< Matrix > | CholeskyDecomposition (const Matrix &m, bool flexible=false) |
| const Disposable< Matrix > | operator+ (const Matrix &, const Matrix &) |
| const Disposable< Matrix > | operator- (const Matrix &, const Matrix &) |
| const Disposable< Matrix > | operator * (const Matrix &, Real) |
| const Disposable< Matrix > | operator * (Real, const Matrix &) |
| const Disposable< Matrix > | operator/ (const Matrix &, Real) |
| const Disposable< Array > | operator * (const Array &, const Matrix &) |
| const Disposable< Array > | operator * (const Matrix &, const Array &) |
| const Disposable< Matrix > | operator * (const Matrix &, const Matrix &) |
| const Disposable< Matrix > | transpose (const Matrix &) |
| const Disposable< Matrix > | outerProduct (const Array &v1, const Array &v2) |
| template<class Iterator1, class Iterator2> | |
| const Disposable< Matrix > | outerProduct (Iterator1 v1begin, Iterator1 v1end, Iterator2 v2begin, Iterator2 v2end) |
| void | swap (Matrix &, Matrix &) |
| std::ostream & | operator<< (std::ostream &, const Matrix &) |
| const Disposable< Matrix > | pseudoSqrt (const Matrix &, SalvagingAlgorithm::Type) |
| Returns the pseudo square root of a real symmetric matrix. | |
| const Disposable< Matrix > | rankReducedSqrt (const Matrix &, Size maxRank, Real componentRetainedPercentage, SalvagingAlgorithm::Type) |
Member Function Documentation
|
|
|
Friends And Related Function Documentation
|
||||||||||||
|
Returns the pseudo square root of a real symmetric matrix.
Given a matrix For more information see: "The most general methodology to create a valid correlation matrix for risk management and option pricing purposes", by R. Rebonato and P. Jäckel. 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.
|
|
||||||||||||||||||||
|
|

, the result
is defined as the matrix such that
If the matrix is not positive semi definite, it can return an approximation of the pseudo square root using a (user selected) salvaging algorithm.