Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Spectra::UpperHessenbergSchur< Scalar > Class Template Reference

#include <UpperHessenbergSchur.h>

Public Member Functions

void compute (ConstGenericMatrix &mat)
 
const Matrixmatrix_T () const
 
const Matrixmatrix_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
 

Detailed Description

template<typename Scalar = double>
class Spectra::UpperHessenbergSchur< Scalar >

Definition at line 24 of file UpperHessenbergSchur.h.

Member Typedef Documentation

◆ ConstGenericMatrix

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::ConstGenericMatrix = const Eigen::Ref<const Matrix>
private

Definition at line 33 of file UpperHessenbergSchur.h.

◆ GenericMatrix

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::GenericMatrix = Eigen::Ref<Matrix>
private

Definition at line 32 of file UpperHessenbergSchur.h.

◆ Index

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::Index = Eigen::Index
private

Definition at line 27 of file UpperHessenbergSchur.h.

◆ Matrix

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::Matrix = Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>
private

Definition at line 28 of file UpperHessenbergSchur.h.

◆ Vector

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::Vector = Eigen::Matrix<Scalar, Eigen::Dynamic, 1>
private

Definition at line 29 of file UpperHessenbergSchur.h.

◆ Vector2s

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::Vector2s = Eigen::Matrix<Scalar, 2, 1>
private

Definition at line 30 of file UpperHessenbergSchur.h.

◆ Vector3s

template<typename Scalar = double>
using Spectra::UpperHessenbergSchur< Scalar >::Vector3s = Eigen::Matrix<Scalar, 3, 1>
private

Definition at line 31 of file UpperHessenbergSchur.h.

Constructor & Destructor Documentation

◆ UpperHessenbergSchur() [1/2]

template<typename Scalar = double>
Spectra::UpperHessenbergSchur< Scalar >::UpperHessenbergSchur ( )
inline

Definition at line 338 of file UpperHessenbergSchur.h.

◆ UpperHessenbergSchur() [2/2]

template<typename Scalar = double>
Spectra::UpperHessenbergSchur< Scalar >::UpperHessenbergSchur ( ConstGenericMatrix mat)
inline

Definition at line 342 of file UpperHessenbergSchur.h.

Member Function Documentation

◆ apply_householder_left()

template<typename Scalar = double>
static void Spectra::UpperHessenbergSchur< Scalar >::apply_householder_left ( const Vector2s ess,
const Scalar tau,
Scalar x,
Index  ncol,
Index  stride 
)
inlinestaticprivate

Definition at line 164 of file UpperHessenbergSchur.h.

◆ apply_householder_right()

template<typename Scalar = double>
static void Spectra::UpperHessenbergSchur< Scalar >::apply_householder_right ( const Vector2s ess,
const Scalar tau,
Scalar x,
Index  nrow,
Index  stride 
)
inlinestaticprivate

Definition at line 179 of file UpperHessenbergSchur.h.

◆ apply_householder_right_simd()

template<typename Scalar = double>
static void Spectra::UpperHessenbergSchur< Scalar >::apply_householder_right_simd ( const Vector2s ess,
const Scalar tau,
Scalar x,
Index  nrow,
Index  stride 
)
inlinestaticprivate

Definition at line 196 of file UpperHessenbergSchur.h.

◆ compute()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::compute ( ConstGenericMatrix mat)
inline

Definition at line 348 of file UpperHessenbergSchur.h.

◆ compute_shift()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::compute_shift ( Index  iu,
Index  iter,
Scalar ex_shift,
Vector3s shift_info 
)
inlineprivate

Definition at line 97 of file UpperHessenbergSchur.h.

◆ find_small_subdiag()

template<typename Scalar = double>
Index Spectra::UpperHessenbergSchur< Scalar >::find_small_subdiag ( Index  iu,
const Scalar near_0 
) const
inlineprivate

Definition at line 51 of file UpperHessenbergSchur.h.

◆ init_francis_qr_step()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::init_francis_qr_step ( Index  il,
Index  iu,
const Vector3s shift_info,
Index im,
Vector3s first_householder_vec 
) const
inlineprivate

Definition at line 139 of file UpperHessenbergSchur.h.

◆ matrix_T()

template<typename Scalar = double>
const Matrix& Spectra::UpperHessenbergSchur< Scalar >::matrix_T ( ) const
inline

Definition at line 421 of file UpperHessenbergSchur.h.

◆ matrix_U()

template<typename Scalar = double>
const Matrix& Spectra::UpperHessenbergSchur< Scalar >::matrix_U ( ) const
inline

Definition at line 429 of file UpperHessenbergSchur.h.

◆ perform_francis_qr_step()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::perform_francis_qr_step ( Index  il,
Index  im,
Index  iu,
const Vector3s first_householder_vec,
const Scalar near_0 
)
inlineprivate

Definition at line 281 of file UpperHessenbergSchur.h.

◆ split_off_two_rows()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::split_off_two_rows ( Index  iu,
const Scalar ex_shift 
)
inlineprivate

Definition at line 70 of file UpperHessenbergSchur.h.

◆ swap_T()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::swap_T ( Matrix other)
inline

Definition at line 437 of file UpperHessenbergSchur.h.

◆ swap_U()

template<typename Scalar = double>
void Spectra::UpperHessenbergSchur< Scalar >::swap_U ( Matrix other)
inline

Definition at line 442 of file UpperHessenbergSchur.h.

◆ upper_hessenberg_l1_norm()

template<typename Scalar = double>
static Scalar Spectra::UpperHessenbergSchur< Scalar >::upper_hessenberg_l1_norm ( ConstGenericMatrix x)
inlinestaticprivate

Definition at line 41 of file UpperHessenbergSchur.h.

Member Data Documentation

◆ m_computed

template<typename Scalar = double>
bool Spectra::UpperHessenbergSchur< Scalar >::m_computed
private

Definition at line 38 of file UpperHessenbergSchur.h.

◆ m_n

template<typename Scalar = double>
Index Spectra::UpperHessenbergSchur< Scalar >::m_n
private

Definition at line 35 of file UpperHessenbergSchur.h.

◆ m_T

template<typename Scalar = double>
Matrix Spectra::UpperHessenbergSchur< Scalar >::m_T
private

Definition at line 36 of file UpperHessenbergSchur.h.

◆ m_U

template<typename Scalar = double>
Matrix Spectra::UpperHessenbergSchur< Scalar >::m_U
private

Definition at line 37 of file UpperHessenbergSchur.h.


The documentation for this class was generated from the following file:


gtsam
Author(s):
autogenerated on Wed May 28 2025 03:15:49