#include <UpperHessenbergSchur.h>
Public Member Functions | |
void | compute (ConstGenericMatrix &mat) |
const Matrix & | matrix_T () const |
const Matrix & | matrix_U () const |
void | swap_T (Matrix &other) |
void | swap_U (Matrix &other) |
UpperHessenbergSchur () | |
UpperHessenbergSchur (ConstGenericMatrix &mat) | |
Private Types | |
using | ConstGenericMatrix = const Eigen::Ref< const Matrix > |
using | GenericMatrix = Eigen::Ref< Matrix > |
using | Index = Eigen::Index |
using | Matrix = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > |
using | Vector = Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > |
using | Vector2s = Eigen::Matrix< Scalar, 2, 1 > |
using | Vector3s = Eigen::Matrix< Scalar, 3, 1 > |
Private Member Functions | |
void | compute_shift (Index iu, Index iter, Scalar &ex_shift, Vector3s &shift_info) |
Index | find_small_subdiag (Index iu, const Scalar &near_0) const |
void | init_francis_qr_step (Index il, Index iu, const Vector3s &shift_info, Index &im, Vector3s &first_householder_vec) const |
void | perform_francis_qr_step (Index il, Index im, Index iu, const Vector3s &first_householder_vec, const Scalar &near_0) |
void | split_off_two_rows (Index iu, const Scalar &ex_shift) |
Static Private Member Functions | |
static void | apply_householder_left (const Vector2s &ess, const Scalar &tau, Scalar *x, Index ncol, Index stride) |
static void | apply_householder_right (const Vector2s &ess, const Scalar &tau, Scalar *x, Index nrow, Index stride) |
static void | apply_householder_right_simd (const Vector2s &ess, const Scalar &tau, Scalar *x, Index nrow, Index stride) |
static Scalar | upper_hessenberg_l1_norm (ConstGenericMatrix &x) |
Private Attributes | |
bool | m_computed |
Index | m_n |
Matrix | m_T |
Matrix | m_U |
Definition at line 24 of file UpperHessenbergSchur.h.
|
private |
Definition at line 33 of file UpperHessenbergSchur.h.
|
private |
Definition at line 32 of file UpperHessenbergSchur.h.
|
private |
Definition at line 27 of file UpperHessenbergSchur.h.
|
private |
Definition at line 28 of file UpperHessenbergSchur.h.
|
private |
Definition at line 29 of file UpperHessenbergSchur.h.
|
private |
Definition at line 30 of file UpperHessenbergSchur.h.
|
private |
Definition at line 31 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 338 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 342 of file UpperHessenbergSchur.h.
|
inlinestaticprivate |
Definition at line 164 of file UpperHessenbergSchur.h.
|
inlinestaticprivate |
Definition at line 179 of file UpperHessenbergSchur.h.
|
inlinestaticprivate |
Definition at line 196 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 348 of file UpperHessenbergSchur.h.
|
inlineprivate |
Definition at line 97 of file UpperHessenbergSchur.h.
|
inlineprivate |
Definition at line 51 of file UpperHessenbergSchur.h.
|
inlineprivate |
Definition at line 139 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 421 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 429 of file UpperHessenbergSchur.h.
|
inlineprivate |
Definition at line 281 of file UpperHessenbergSchur.h.
|
inlineprivate |
Definition at line 70 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 437 of file UpperHessenbergSchur.h.
|
inline |
Definition at line 442 of file UpperHessenbergSchur.h.
|
inlinestaticprivate |
Definition at line 41 of file UpperHessenbergSchur.h.
|
private |
Definition at line 38 of file UpperHessenbergSchur.h.
|
private |
Definition at line 35 of file UpperHessenbergSchur.h.
|
private |
Definition at line 36 of file UpperHessenbergSchur.h.
|
private |
Definition at line 37 of file UpperHessenbergSchur.h.