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

#include <DoubleShiftQR.h>

Public Member Functions

void apply_QtY (Vector &y) const
 
void apply_YQ (GenericMatrix Y) const
 
void compute (ConstGenericMatrix &mat, const Scalar &s, const Scalar &t)
 
 DoubleShiftQR (ConstGenericMatrix &mat, const Scalar &s, const Scalar &t)
 
 DoubleShiftQR (Index size)
 
void matrix_QtHQ (Matrix &dest) const
 

Private Types

using ConstGenericMatrix = const Eigen::Ref< const Matrix >
 
using GenericMatrix = Eigen::Ref< Matrix >
 
using Index = Eigen::Index
 
using IntArray = Eigen::Array< unsigned char, Eigen::Dynamic, 1 >
 
using Matrix = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >
 
using Matrix3X = Eigen::Matrix< Scalar, 3, Eigen::Dynamic >
 
using Vector = Eigen::Matrix< Scalar, Eigen::Dynamic, 1 >
 

Private Member Functions

void apply_PX (GenericMatrix X, Index stride, Index u_ind) const
 
void apply_PX (Scalar *x, Index u_ind) const
 
void apply_XP (GenericMatrix X, Index stride, Index u_ind) const
 
void compute_reflector (const Scalar &x1, const Scalar &x2, const Scalar &x3, Index ind)
 
void compute_reflector (const Scalar *x, Index ind)
 
void update_block (Index il, Index iu)
 

Static Private Member Functions

static Scalar stable_norm3 (Scalar x1, Scalar x2, Scalar x3)
 
static void stable_scaling (Scalar &x1, Scalar &x2, Scalar &x3)
 

Private Attributes

bool m_computed
 
const Scalar m_eps = TypeTraits<Scalar>::epsilon()
 
Matrix m_mat_H
 
Index m_n
 
const Scalar m_near_0 = TypeTraits<Scalar>::min() * Scalar(10)
 
IntArray m_ref_nr
 
Matrix3X m_ref_u
 
Scalar m_shift_s
 
Scalar m_shift_t
 

Detailed Description

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

Definition at line 22 of file DoubleShiftQR.h.

Member Typedef Documentation

◆ ConstGenericMatrix

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

Definition at line 32 of file DoubleShiftQR.h.

◆ GenericMatrix

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

Definition at line 31 of file DoubleShiftQR.h.

◆ Index

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

Definition at line 25 of file DoubleShiftQR.h.

◆ IntArray

template<typename Scalar = double>
using Spectra::DoubleShiftQR< Scalar >::IntArray = Eigen::Array<unsigned char, Eigen::Dynamic, 1>
private

Definition at line 29 of file DoubleShiftQR.h.

◆ Matrix

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

Definition at line 26 of file DoubleShiftQR.h.

◆ Matrix3X

template<typename Scalar = double>
using Spectra::DoubleShiftQR< Scalar >::Matrix3X = Eigen::Matrix<Scalar, 3, Eigen::Dynamic>
private

Definition at line 27 of file DoubleShiftQR.h.

◆ Vector

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

Definition at line 28 of file DoubleShiftQR.h.

Constructor & Destructor Documentation

◆ DoubleShiftQR() [1/2]

template<typename Scalar = double>
Spectra::DoubleShiftQR< Scalar >::DoubleShiftQR ( Index  size)
inline

Definition at line 318 of file DoubleShiftQR.h.

◆ DoubleShiftQR() [2/2]

template<typename Scalar = double>
Spectra::DoubleShiftQR< Scalar >::DoubleShiftQR ( ConstGenericMatrix mat,
const Scalar s,
const Scalar t 
)
inline

Definition at line 323 of file DoubleShiftQR.h.

Member Function Documentation

◆ apply_PX() [1/2]

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::apply_PX ( GenericMatrix  X,
Index  stride,
Index  u_ind 
) const
inlineprivate

Definition at line 219 of file DoubleShiftQR.h.

◆ apply_PX() [2/2]

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::apply_PX ( Scalar x,
Index  u_ind 
) const
inlineprivate

Definition at line 257 of file DoubleShiftQR.h.

◆ apply_QtY()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::apply_QtY ( Vector y) const
inline

Definition at line 411 of file DoubleShiftQR.h.

◆ apply_XP()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::apply_XP ( GenericMatrix  X,
Index  stride,
Index  u_ind 
) const
inlineprivate

Definition at line 277 of file DoubleShiftQR.h.

◆ apply_YQ()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::apply_YQ ( GenericMatrix  Y) const
inline

Definition at line 426 of file DoubleShiftQR.h.

◆ compute()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::compute ( ConstGenericMatrix mat,
const Scalar s,
const Scalar t 
)
inline

Definition at line 335 of file DoubleShiftQR.h.

◆ compute_reflector() [1/2]

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::compute_reflector ( const Scalar x1,
const Scalar x2,
const Scalar x3,
Index  ind 
)
inlineprivate

Definition at line 107 of file DoubleShiftQR.h.

◆ compute_reflector() [2/2]

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::compute_reflector ( const Scalar x,
Index  ind 
)
inlineprivate

Definition at line 148 of file DoubleShiftQR.h.

◆ matrix_QtHQ()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::matrix_QtHQ ( Matrix dest) const
inline

Definition at line 401 of file DoubleShiftQR.h.

◆ stable_norm3()

template<typename Scalar = double>
static Scalar Spectra::DoubleShiftQR< Scalar >::stable_norm3 ( Scalar  x1,
Scalar  x2,
Scalar  x3 
)
inlinestaticprivate

Definition at line 52 of file DoubleShiftQR.h.

◆ stable_scaling()

template<typename Scalar = double>
static void Spectra::DoubleShiftQR< Scalar >::stable_scaling ( Scalar x1,
Scalar x2,
Scalar x3 
)
inlinestaticprivate

Definition at line 85 of file DoubleShiftQR.h.

◆ update_block()

template<typename Scalar = double>
void Spectra::DoubleShiftQR< Scalar >::update_block ( Index  il,
Index  iu 
)
inlineprivate

Definition at line 154 of file DoubleShiftQR.h.

Member Data Documentation

◆ m_computed

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

Definition at line 49 of file DoubleShiftQR.h.

◆ m_eps

template<typename Scalar = double>
const Scalar Spectra::DoubleShiftQR< Scalar >::m_eps = TypeTraits<Scalar>::epsilon()
private

Definition at line 38 of file DoubleShiftQR.h.

◆ m_mat_H

template<typename Scalar = double>
Matrix Spectra::DoubleShiftQR< Scalar >::m_mat_H
private

Definition at line 41 of file DoubleShiftQR.h.

◆ m_n

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

Definition at line 40 of file DoubleShiftQR.h.

◆ m_near_0

template<typename Scalar = double>
const Scalar Spectra::DoubleShiftQR< Scalar >::m_near_0 = TypeTraits<Scalar>::min() * Scalar(10)
private

Definition at line 36 of file DoubleShiftQR.h.

◆ m_ref_nr

template<typename Scalar = double>
IntArray Spectra::DoubleShiftQR< Scalar >::m_ref_nr
private

Definition at line 45 of file DoubleShiftQR.h.

◆ m_ref_u

template<typename Scalar = double>
Matrix3X Spectra::DoubleShiftQR< Scalar >::m_ref_u
private

Definition at line 44 of file DoubleShiftQR.h.

◆ m_shift_s

template<typename Scalar = double>
Scalar Spectra::DoubleShiftQR< Scalar >::m_shift_s
private

Definition at line 42 of file DoubleShiftQR.h.

◆ m_shift_t

template<typename Scalar = double>
Scalar Spectra::DoubleShiftQR< Scalar >::m_shift_t
private

Definition at line 43 of file DoubleShiftQR.h.


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


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