QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SymmetricSchurDecomposition Class Reference

symmetric threshold Jacobi algorithm. More...

#include <symmetricschurdecomposition.hpp>

+ Collaboration diagram for SymmetricSchurDecomposition:

Public Member Functions

 SymmetricSchurDecomposition (const Matrix &s)
 
const Arrayeigenvalues () const
 
const Matrixeigenvectors () const
 

Private Member Functions

void jacobiRotate_ (Matrix &m, Real rot, Real dil, Size j1, Size k1, Size j2, Size k2) const
 This routines implements the Jacobi, a.k.a. Givens, rotation. More...
 

Private Attributes

Array diagonal_
 
Matrix eigenVectors_
 

Detailed Description

symmetric threshold Jacobi algorithm.

Given a real symmetric matrix S, the Schur decomposition finds the eigenvalues and eigenvectors of S. If D is the diagonal matrix formed by the eigenvalues and U the unitarian matrix of the eigenvectors we can write the Schur decomposition as

\[ S = U \cdot D \cdot U^T \, ,\]

where \( \cdot \) is the standard matrix product and \( ^T \) is the transpose operator. This class implements the Schur decomposition using the symmetric threshold Jacobi algorithm. For details on the different Jacobi transfomations see "Matrix computation," second edition, by Golub and Van Loan, The Johns Hopkins University Press

Tests:
the correctness of the returned values is tested by checking their properties.

Definition at line 50 of file symmetricschurdecomposition.hpp.

Constructor & Destructor Documentation

◆ SymmetricSchurDecomposition()

Precondition
s must be symmetric

Definition at line 26 of file symmetricschurdecomposition.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ eigenvalues()

const Array & eigenvalues ( ) const

Definition at line 54 of file symmetricschurdecomposition.hpp.

+ Here is the caller graph for this function:

◆ eigenvectors()

const Matrix & eigenvectors ( ) const

Definition at line 55 of file symmetricschurdecomposition.hpp.

+ Here is the caller graph for this function:

◆ jacobiRotate_()

void jacobiRotate_ ( Matrix m,
Real  rot,
Real  dil,
Size  j1,
Size  k1,
Size  j2,
Size  k2 
) const
private

This routines implements the Jacobi, a.k.a. Givens, rotation.

Definition at line 67 of file symmetricschurdecomposition.hpp.

+ Here is the caller graph for this function:

Member Data Documentation

◆ diagonal_

Array diagonal_
private

Definition at line 57 of file symmetricschurdecomposition.hpp.

◆ eigenVectors_

Matrix eigenVectors_
private

Definition at line 58 of file symmetricschurdecomposition.hpp.