![]() |
Reference documentation for deal.II version 9.5.1
|
#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<class VectorType > | |
void | vmult (VectorType &dst, const VectorType &src) const |
template<class 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 80 of file householder.h.
using Householder< number >::size_type = types::global_dof_index |
Declare type of container size type.
Definition at line 86 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 152 of file householder.h.
|
private |
Storage that is internally used for the Householder transformation.
Definition at line 157 of file householder.h.