|
akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
|
Reduces A to upper Hessenberg form H = U^* A U. More...
#include <hessenberg.hpp>
Public Types | |
| using | OperatorBase = Endomorphism< Mat, Hessenberg< Mat > > |
| alias from base class | |
Public Types inherited from linalg::Endomorphism< Mat, Hessenberg< Mat > > | |
| using | T = matrix_scalar_t< Mat > |
| alias helpers for types | |
| using | ScalarT = real_type_t< T > |
| using | ComplexT = std::complex< ScalarT > |
Public Member Functions | |
| constexpr | Hessenberg (const Mat &A) |
| Reduce A by two-sided Householder similarities. | |
| constexpr auto | H () const |
| Extract the upper Hessenberg matrix. | |
| constexpr auto | U () const |
| Reconstruct the orthogonal or unitary similarity basis. | |
| constexpr auto | operator() (std::size_t i, std::size_t j) const |
| Read an entry of the Hessenberg matrix. | |
Public Member Functions inherited from linalg::Endomorphism< Mat, Hessenberg< Mat > > | |
| constexpr const T & | operator() (std::size_t i, std::size_t j) const |
| get element at (i,j) index | |
| constexpr T & | operator() (std::size_t i, std::size_t j) |
| get element at (i,j) index | |
| constexpr Hessenberg< Mat > & | self () |
| self | |
| constexpr const Hessenberg< Mat > & | self () const |
| self | |
Public Attributes | |
| Vector< T, N > | beta |
| Vector member variables. | |
Additional Inherited Members | |
Static Public Attributes inherited from linalg::Endomorphism< Mat, Hessenberg< Mat > > | |
| static constexpr std::size_t | N |
| helper to extract N | |
Reduces A to upper Hessenberg form H = U^* A U.
forward declaration of hessenberg matrix
Householder similarities eliminate entries below the first subdiagonal. Packed reflector tails reconstruct the orthogonal or unitary basis U.
| Mat | Square real or complex matrix type. |
Definition at line 21 of file hessenberg.hpp.
| using linalg::Hessenberg< Mat >::OperatorBase = Endomorphism<Mat, Hessenberg<Mat> > |
alias from base class
Definition at line 23 of file hessenberg.hpp.
|
inlineexplicitconstexpr |
Reduce A by two-sided Householder similarities.
| [in] | A | Square input matrix to reduce to upper Hessenberg form. |
Definition at line 34 of file hessenberg.hpp.
References linalg::as_col_vector(), linalg::Hessenberg< Mat >::beta, linalg::conjugate_transpose(), linalg::constexpr_for(), linalg::get_col(), linalg::mat_rows_v, linalg::Endomorphism< Mat, Hessenberg< Mat > >::N, and linalg::transpose().
|
inlineconstexpr |
Extract the upper Hessenberg matrix.
Definition at line 80 of file hessenberg.hpp.
References linalg::mat_rows_v, and linalg::Endomorphism< Mat, Hessenberg< Mat > >::N.
|
inlineconstexpr |
Read an entry of the Hessenberg matrix.
| [in] | i | Zero-based row index. |
| [in] | j | Zero-based column index. |
Definition at line 128 of file hessenberg.hpp.
References linalg::mat_rows_v.
|
inlineconstexpr |
Reconstruct the orthogonal or unitary similarity basis.
Definition at line 96 of file hessenberg.hpp.
References linalg::as_col_vector(), linalg::Hessenberg< Mat >::beta, linalg::conjugate_transpose(), linalg::constexpr_for(), linalg::mat_rows_v, linalg::Endomorphism< Mat, Hessenberg< Mat > >::N, linalg::transpose(), and linalg::Hessenberg< Mat >::U().
Referenced by linalg::Hessenberg< Mat >::U().
| Vector<T, N> linalg::Hessenberg< Mat >::beta |
Vector member variables.
beta vector from householder reflections
Definition at line 134 of file hessenberg.hpp.
Referenced by linalg::Hessenberg< Mat >::Hessenberg(), and linalg::Hessenberg< Mat >::U().