|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
#include <cmath>#include <complex>#include <vector>#include "Utilities/GSLComplex.h"#include "Utilities/GSLMatrix.h"

Go to the source code of this file.
Classes | |
| struct | gsl_eigen_nonsymm_workspace |
| Workspace for nonsymmetric eigenvalue computation. More... | |
| struct | gsl_eigen_nonsymmv_workspace |
| Workspace for nonsymmetric eigenvalues/eigenvectors. More... | |
Functions | |
| gsl_eigen_nonsymm_workspace * | gsl_eigen_nonsymm_alloc (size_t n) |
| Allocate a nonsymmetric eigenvalue workspace for \(n \times n\) matrices. | |
| void | gsl_eigen_nonsymm_params (int, int, gsl_eigen_nonsymm_workspace *) |
| Accept GSL-style parameters (no-op in this implementation). | |
| void | gsl_eigen_nonsymm_free (gsl_eigen_nonsymm_workspace *w) |
Free a workspace allocated by gsl_eigen_nonsymm_alloc. | |
| gsl_eigen_nonsymmv_workspace * | gsl_eigen_nonsymmv_alloc (size_t n) |
| Allocate a nonsymmetric eigenvalue/vector workspace for \(n \times n\) matrices. | |
| void | gsl_eigen_nonsymmv_free (gsl_eigen_nonsymmv_workspace *w) |
Free a workspace allocated by gsl_eigen_nonsymmv_alloc. | |
| int | gsl_eigen_nonsymm (gsl_matrix *A, gsl_vector_complex *eval, gsl_eigen_nonsymm_workspace *) |
| Compute eigenvalues of a real nonsymmetric matrix. | |
| int | gsl_eigen_nonsymmv (gsl_matrix *A, gsl_vector_complex *eval, gsl_matrix_complex *evec, gsl_eigen_nonsymmv_workspace *w) |
| Compute eigenvalues and a simplified set of eigenvectors. | |
|
inline |
Compute eigenvalues of a real nonsymmetric matrix.
Uses a basic QR iteration to approximate eigenvalues for small matrices.
| A | Input: matrix (read-only; may be modified by algorithm). |
| eval | Output: vector of eigenvalues (complex). |
| w | Input: workspace (unused). |
Definition at line 94 of file GSLEigen.h.
References dot(), gsl_matrix_ptr(), gsl_vector_complex_ptr(), gsl_vector_complex::size, gsl_matrix::size1, and gsl_matrix::size2.
Referenced by interpolation::MMatrix< Tmplt >::eigenvalues(), gsl_eigen_nonsymmv(), TEST_F(), TEST_F(), and TEST_F().

|
inline |
Allocate a nonsymmetric eigenvalue workspace for \(n \times n\) matrices.
| n | Input: matrix dimension. |
Definition at line 49 of file GSLEigen.h.
References gsl_eigen_nonsymm_workspace::n, and gsl_eigen_nonsymm_workspace::work.
Referenced by interpolation::MMatrix< Tmplt >::eigenvalues(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
|
inline |
Free a workspace allocated by gsl_eigen_nonsymm_alloc.
| w | Input: workspace to release (can be null). |
Definition at line 69 of file GSLEigen.h.
Referenced by interpolation::MMatrix< Tmplt >::eigenvalues(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
|
inline |
Accept GSL-style parameters (no-op in this implementation).
| balance | Input: balancing flag (unused). |
| compute_shur | Input: Schur computation flag (unused). |
| w | Input: workspace (unused). |
Definition at line 61 of file GSLEigen.h.
Referenced by interpolation::MMatrix< Tmplt >::eigenvalues().
|
inline |
Compute eigenvalues and a simplified set of eigenvectors.
Eigenvectors are approximated with a basic heuristic per eigenvalue.
| A | Input: matrix (read-only; may be modified by algorithm). |
| eval | Output: vector of eigenvalues (complex). |
| evec | Output: matrix of eigenvectors in columns. |
| w | Input: workspace (unused aside from type). |
Definition at line 194 of file GSLEigen.h.
References gsl_complex_sub(), gsl_eigen_nonsymm(), gsl_matrix_complex_alloc(), gsl_matrix_complex_free(), gsl_matrix_complex_ptr(), gsl_matrix_ptr(), gsl_vector_complex_ptr(), and gsl_matrix::size1.
Referenced by interpolation::MMatrix< Tmplt >::eigenvectors(), TEST_F(), and TEST_F().

|
inline |
Allocate a nonsymmetric eigenvalue/vector workspace for \(n \times n\) matrices.
| n | Input: matrix dimension. |
Definition at line 75 of file GSLEigen.h.
References gsl_eigen_nonsymmv_workspace::n, and gsl_eigen_nonsymmv_workspace::work.
Referenced by interpolation::MMatrix< Tmplt >::eigenvectors(), TEST_F(), TEST_F(), and TEST_F().
|
inline |
Free a workspace allocated by gsl_eigen_nonsymmv_alloc.
| w | Input: workspace to release (can be null). |
Definition at line 85 of file GSLEigen.h.
Referenced by interpolation::MMatrix< Tmplt >::eigenvectors(), TEST_F(), TEST_F(), and TEST_F().