Functions
vnl_generalized_schur.h File Reference

Solves the generalized eigenproblem det(t A - s B) = 0. More...

#include <algorithm>
#include <vnl/vnl_matrix.h>
#include <vnl/vnl_vector.h>
#include <vnl/algo/vnl_algo_export.h>

Go to the source code of this file.

Functions

template<class T >
bool vnl_generalized_schur (vnl_matrix< T > *A, vnl_matrix< T > *B, vnl_vector< T > *alphar, vnl_vector< T > *alphai, vnl_vector< T > *beta, vnl_matrix< T > *L, vnl_matrix< T > *R)
 For a real scalar type T, this function uses orthogonal matrices L, R to reduce the (square) matrices A, B to generalized (real) Schur form. More...
 
template<>
VNL_ALGO_EXPORT bool vnl_generalized_schur (vnl_matrix< double > *A, vnl_matrix< double > *B, vnl_vector< double > *alphar, vnl_vector< double > *alphai, vnl_vector< double > *beta, vnl_matrix< double > *L, vnl_matrix< double > *R)
 
template<class T >
vnl_generalized_schur_convert_cast (double a)
 

Detailed Description

Solves the generalized eigenproblem det(t A - s B) = 0.

Author
fsm, Oxford RRG
Date
2 Oct 2001

Definition in file vnl_generalized_schur.h.

Function Documentation

◆ vnl_generalized_schur() [1/2]

template<class T >
bool vnl_generalized_schur ( vnl_matrix< T > *  A,
vnl_matrix< T > *  B,
vnl_vector< T > *  alphar,
vnl_vector< T > *  alphai,
vnl_vector< T > *  beta,
vnl_matrix< T > *  L,
vnl_matrix< T > *  R 
)
inline

For a real scalar type T, this function uses orthogonal matrices L, R to reduce the (square) matrices A, B to generalized (real) Schur form.

This means that B is upper triangular and A is block upper triangular with blocks of size at most 2x2 such that the 2x2 blocks B corresponding to 2x2 blocks of A are diagonal. E.g.:

                [ * * * * * ]
                [   * * * * ]
 A <- L^* A R = [   * * * * ]
                [       * * ]
                [       * * ]

                [ * * * * * ]
                [   *   * * ]
 B <- L^* B R = [     * * * ]
                [       *   ]
                [         * ]

In addition, the function computes the generalized eigenvalues (alphar(k) + i alphai(k) : beta(k) for k = 0, 1, 2,...

Definition at line 64 of file vnl_generalized_schur.h.

◆ vnl_generalized_schur() [2/2]

template<>
VNL_ALGO_EXPORT bool vnl_generalized_schur ( vnl_matrix< double > *  A,
vnl_matrix< double > *  B,
vnl_vector< double > *  alphar,
vnl_vector< double > *  alphai,
vnl_vector< double > *  beta,
vnl_matrix< double > *  L,
vnl_matrix< double > *  R 
)

Definition at line 13 of file vnl_generalized_schur.cxx.

◆ vnl_generalized_schur_convert_cast()

template<class T >
T vnl_generalized_schur_convert_cast ( double  a)

Definition at line 61 of file vnl_generalized_schur.h.