pub struct EigenHermitianVWorkspace { /* private fields */ }
Implementations§
source§impl EigenHermitianVWorkspace
impl EigenHermitianVWorkspace
sourcepub fn new(n: usize) -> Option<Self>
pub fn new(n: usize) -> Option<Self>
This function allocates a workspace for computing eigenvalues and eigenvectors of n-by-n complex hermitian matrices. The size of the workspace is O(5n).
sourcepub fn hermv(
&mut self,
A: &mut MatrixComplexF64,
eval: &mut VectorF64,
evec: &mut MatrixComplexF64
) -> Result<(), Value>
pub fn hermv( &mut self, A: &mut MatrixComplexF64, eval: &mut VectorF64, evec: &mut MatrixComplexF64 ) -> Result<(), Value>
This function computes the eigenvalues and eigenvectors of the complex hermitian matrix A
.
Additional workspace of the appropriate size must be provided in self
. The diagonal and
lower triangular part of A
are destroyed during the computation, but the strict upper
triangular part is not referenced. The imaginary parts of the diagonal are assumed to be
zero and are not referenced. The eigenvalues are stored in the vector eval
and are
unordered. The corresponding complex eigenvectors are stored in the columns of the matrix
evec
. For example, the eigenvector in the first column corresponds to the first
eigenvalue. The eigenvectors are guaranteed to be mutually orthogonal and normalised to unit
magnitude.