Struct rgsl::types::eigen_symmetric_workspace::EigenGenVWorkspace [−][src]
pub struct EigenGenVWorkspace { /* fields omitted */ }
Implementations
This function allocates a workspace for computing eigenvalues of n-by-n real generalized nonsymmetric eigensystems. The size of the workspace is O(n).
pub fn genv(
&mut self,
A: &mut MatrixF64,
B: &mut MatrixF64,
alpha: &mut VectorComplexF64,
beta: &mut VectorF64,
evec: &mut MatrixComplexF64
) -> Value
pub fn genv(
&mut self,
A: &mut MatrixF64,
B: &mut MatrixF64,
alpha: &mut VectorComplexF64,
beta: &mut VectorF64,
evec: &mut MatrixComplexF64
) -> Value
This function computes eigenvalues and right eigenvectors of the n-by-n real generalized nonsymmetric matrix pair (A, B). The eigenvalues are stored in (alpha, beta) and the eigenvectors are stored in evec. It first calls gsl_eigen_gen to compute the eigenvalues, Schur forms, and Schur vectors. Then it finds eigenvectors of the Schur forms and backtransforms them using the Schur vectors. The Schur vectors are destroyed in the process, but can be saved by using gsl_eigen_genv_QZ. The computed eigenvectors are normalized to have unit magnitude. On output, (A, B) contains the generalized Schur form (S, T). If gsl_eigen_gen fails, no eigenvectors are computed, and an error code is returned.
pub fn genv_QZ(
&mut self,
A: &mut MatrixF64,
B: &mut MatrixF64,
alpha: &mut VectorComplexF64,
beta: &mut VectorF64,
evec: &mut MatrixComplexF64,
Q: &mut MatrixF64,
Z: &mut MatrixF64
) -> Value
pub fn genv_QZ(
&mut self,
A: &mut MatrixF64,
B: &mut MatrixF64,
alpha: &mut VectorComplexF64,
beta: &mut VectorF64,
evec: &mut MatrixComplexF64,
Q: &mut MatrixF64,
Z: &mut MatrixF64
) -> Value
This function is identical to gsl_eigen_genv except that it also computes the left and right
Schur vectors and stores them into Q
and Z
respectively.