#include <deal.II/lac/householder.h>

Public Types | |
| using | size_type = types::global_dof_index |
Public Member Functions | |
| Householder ()=default | |
| template<typename number2> | |
| Householder (const FullMatrix< number2 > &A) | |
| template<typename number2> | |
| void | initialize (const FullMatrix< number2 > &A) |
| template<typename number2> | |
| double | least_squares (Vector< number2 > &dst, const Vector< number2 > &src) const |
| template<typename number2> | |
| double | least_squares (BlockVector< number2 > &dst, const BlockVector< number2 > &src) const |
| template<typename VectorType> | |
| void | vmult (VectorType &dst, const VectorType &src) const |
| template<typename VectorType> | |
| void | Tvmult (VectorType &dst, const VectorType &src) const |
Private Attributes | |
| std::vector< number > | diagonal |
| FullMatrix< double > | storage |
QR-decomposition of a full matrix.
This class computes the QR-decomposition of given matrix by the Householder algorithm. Then, the function least_squares() can be used to compute the vector 









The class does not in fact store the 






The 


diagonal member variable.
<float> and <double>; others can be generated in application programs (see the section on Template instantiations in the manual). Definition at line 79 of file householder.h.
| using Householder< number >::size_type = types::global_dof_index |
Declare type of container size type.
Definition at line 85 of file householder.h.
|
default |
Create an empty object.
| Householder< number >::Householder | ( | const FullMatrix< number2 > & | A | ) |
Create an object holding the QR-decomposition of the matrix 
| void Householder< number >::initialize | ( | const FullMatrix< number2 > & | A | ) |
Compute the QR-decomposition of the given matrix 
This overwrites any previously computed QR decomposition.
| double Householder< number >::least_squares | ( | Vector< number2 > & | dst, |
| const Vector< number2 > & | src ) const |
Solve the least-squares problem for the right hand side src. The returned scalar value is the Euclidean norm of the approximation error.
dst contains the solution of the least squares problem on return.src contains the right hand side b of the least squares problem. It will be changed during the algorithm and is unusable on return. | double Householder< number >::least_squares | ( | BlockVector< number2 > & | dst, |
| const BlockVector< number2 > & | src ) const |
This function does the same as the previous one, but for BlockVectors.
| void Householder< number >::vmult | ( | VectorType & | dst, |
| const VectorType & | src ) const |
A wrapper to least_squares(), implementing the standard MatrixType interface.
| void Householder< number >::Tvmult | ( | VectorType & | dst, |
| const VectorType & | src ) const |
A wrapper to least_squares() that implements multiplication with the transpose matrix.
|
private |
Storage for the diagonal elements of the orthogonal transformation. See the class documentation for more information.
Definition at line 151 of file householder.h.
|
private |
Storage that is internally used for the Householder transformation.
Definition at line 156 of file householder.h.