|
gslmm::lq_decomposition< double > Struct Template Reference |
Public Types | |
typedef vector< double > | vector_type |
typedef matrix< double > | matrix_type |
typedef matrix_type::value_type | value_type |
typedef matrix_type::element_type | element_type |
Public Member Functions | |
lq_decomposition (const matrix_type &m) | |
virtual | ~lq_decomposition () |
virtual bool | solve (const vector_type &b, vector_type &x) const |
virtual bool | solve (vector_type &x) const |
virtual bool | solve (const vector_type &b, vector_type &x, vector_type &r) const |
virtual bool | l_solve (const vector_type &b, vector_type &x) const |
virtual bool | l_solve (vector_type &x) const |
virtual bool | lq_solve (const vector_type &b, vector_type &x) const |
virtual bool | qt_multiply (vector_type &v) const |
virtual bool | update (const vector_type &w, const vector_type &v) |
virtual bool | q_multiply (vector_type &v) const |
const matrix_type & | l () const |
const matrix_type & | q () const |
const matrix_type & | lq () const |
Protected Types | |
typedef matrix_type::data_type | data_type |
Protected Member Functions | |
void | unpack () const |
lq_decomposition (const matrix_type &m, bool nodo) | |
Protected Attributes | |
vector_type | _tau |
matrix_type * | _q |
matrix_type * | _l |
|
The low level matrix type.
Reimplemented from gslmm::matrix< double >. Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
The element type.
Reimplemented from gslmm::matrix< double >. Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
The matrix type.
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
The element type.
Reimplemented from gslmm::matrix< double >. Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
The vector type.
Reimplemented from gslmm::matrix< double >. Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
Create an LQ decomposition of the input matrix m. A reference to the input matrix is stored for later use. |
|
Destructor.
|
|
Create an LQ decomposition of the input matrix m. A reference to the input matrix is stored for later use. |
|
|
|
This function solves the triangular system for in-place. On input should contain the right-hand side and is replaced by the solution on output. This function may be useful if the product has already been computed using qt_multiply
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
This function solves the triangular system for . It may be useful if the product has already been computed using lq_multiply
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
|
|
This function solves the system for . It can be used when the LQ decomposition of a matrix is wanted in unpacked form as
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
|
|
This function applies the matrix encoded in the decomposition to the vector , storing the result in . The matrix multiplication is carried out directly using the encoding of the Householder vectors without needing to form the full matrix .
|
|
This function applies the matrix encoded in the decomposition to the vector , storing the result in . The matrix multiplication is carried out directly using the encoding of the Householder vectors without needing to form the full matrix .
|
|
This function finds the least squares solution to the overdetermined system where the matrix has more rows than columns. The least squares solution minimizes the Euclidean norm of the residual, . The routine uses the LQ decomposition of . The solution is returned in . The residual is computed as a by-product and stored in .
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
This member function solve the system using the LQ decomposition of ,
The input matrix must be square. This can be used to find the inverse of matrix by doing a back-subsitution of the identity matrix. gslmm::lq_decomposition<T> LQ(A); gslmm::matrix<T> Ainv(A.row_size(), B.column_size()); for (size_t i = 0; i < A.row_size(); i++) { gslmm::vector<T> v(A.row_size()); v.basis(i); LQ.solve(v); for (size_t j = 0; j < A.column_size(); j++) Ainv(i,j) = x[j]; }
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
This member function solve the system using the LQ decomposition of ,
The input matrix must be square. This can be used to find the inverse of matrix by doing a back-subsitution of the identity matrix. gslmm::lq_decomposition<T> LQ(A); gslmm::matrix<T> Ainv(A.row_size(), B.column_size()); for (size_t i = 0; i < A.row_size(); i++) { gslmm::vector<T> v(A.row_size()); gslmm::vector<T> x(A.row_size()); v.basis(i); LQ.solve(v, x); for (size_t j = 0; j < A.column_size(); j++) Ainv(i,j) = x[j]; }
Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
Unpack LQ into and .
|
|
This function performs a rank-1 update of the. Update a LQ factorisation for , ,
. Algorithm from Golub and Van Loan, "Matrix Computations", Section 12.5 (Updating Matrix Factorizations, Rank-One Changes). Reimplemented in gslmm::lq_decomposition_pivot< double >. |
|
The R of the LQ decomposition of the input matrix.
|
|
The Q of the LQ decomposition of the input matrix.
|
|
The of the LQ decomposition.
|
Top of page | Last update Tue May 9 10:11:31 2006 |
Christian
Holm |
Created by DoxyGen 1.4.6 |