lsp::qr_decomposition< T > Class Template Reference

A functor for the modified QR decomposition. More...

#include <qr_decomposition.h>

List of all members.

Classes

struct  left_tag
struct  regular_tag
struct  right_tag

Public Types

typedef T matrix_type
typedef matrix_type::value_type value_type
typedef matrix_type::size_type size_type
typedef matrix_vector_slice
< matrix_type > 
diagonal_type

Public Member Functions

 qr_decomposition (matrix_type &matrix)
 An object constructor.
template<class M1 , class M2 >
void apply (M1 &left, M2 &right) const
 Transformation operaton.


Detailed Description

template<class T>
class lsp::qr_decomposition< T >

A functor for the modified QR decomposition.

Modified QR decomposition is iterative alghoritm that transformates bidiagonal banded matrix into diagonal form by the number of Givens transformations. The decomposition is one of SVD parts.


Constructor & Destructor Documentation

template<class T>
lsp::qr_decomposition< T >::qr_decomposition ( matrix_type &  matrix  )  [inline]

An object constructor.

Parameters:
[in,out] matrix 


Member Function Documentation

template<class T>
template<class M1 , class M2 >
void lsp::qr_decomposition< T >::apply ( M1 &  left,
M2 &  right 
) const [inline]

Transformation operaton.

Parameters:
[out] left The left matrix
[out] right The right matrix
The routine calculates and makes transformation. Intrinsic assumption is that the all matrix are size-suitable.

$ M_{left} := Q M_{left} $

$ M_{right} := M_{right} H $

$ M_{matrix} := Q M_{matrix} H \equiv B $


The documentation for this class was generated from the following file:

doxygen