Solves the generalized eigenproblem det(t A - s B) = 0. More...
#include <complex>#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< std::complex< T > > *A, vnl_matrix< std::complex< T > > *B, vnl_vector< std::complex< T > > *alpha, vnl_vector< std::complex< T > > *beta, vnl_matrix< std::complex< T > > *L, vnl_matrix< std::complex< T > > *R) |
| For a scalar type T, this function uses orthogonal matrices L, R over complex<T> to reduce the (square) matrices A, B to generalized (complex) Schur form. More... | |
| template<> | |
| VNL_ALGO_EXPORT bool | vnl_generalized_schur (vnl_matrix< std::complex< double > > *A, vnl_matrix< std::complex< double > > *B, vnl_vector< std::complex< double > > *alpha, vnl_vector< std::complex< double > > *beta, vnl_matrix< std::complex< double > > *L, vnl_matrix< std::complex< double > > *R) |
| template<class T > | |
| std::complex< T > | vnl_complex_generalized_schur_convert_cast (std::complex< double > a) |
Solves the generalized eigenproblem det(t A - s B) = 0.
Definition in file vnl_complex_generalized_schur.h.
| std::complex<T> vnl_complex_generalized_schur_convert_cast | ( | std::complex< double > | a | ) |
Definition at line 52 of file vnl_complex_generalized_schur.h.
|
inline |
For a scalar type T, this function uses orthogonal matrices L, R over complex<T> to reduce the (square) matrices A, B to generalized (complex) Schur form.
This means that A and B become upper triangular, A <– L^* A R, and B <– L^* B R. Of course, A and B should be of the same size.
In addition, the function computes the (complex) generalized eigenvalues alpha(k) : beta(k) for k = 0, 1, 2,...
To pass in scalar type T matrices A and B, you'll have to first convert them to complex matrices since they will be overwritten by they (complex) upper triangular decomposition.
Definition at line 55 of file vnl_complex_generalized_schur.h.
| VNL_ALGO_EXPORT bool vnl_generalized_schur | ( | vnl_matrix< std::complex< double > > * | A, |
| vnl_matrix< std::complex< double > > * | B, | ||
| vnl_vector< std::complex< double > > * | alpha, | ||
| vnl_vector< std::complex< double > > * | beta, | ||
| vnl_matrix< std::complex< double > > * | L, | ||
| vnl_matrix< std::complex< double > > * | R | ||
| ) |
Definition at line 13 of file vnl_complex_generalized_schur.cxx.
1.8.15