Tatooine
Functions
GEEV

General Matrix EigenvaluesGEEV computes for an \(n\times n\) real nonsymmetric matrix \(\mA\), the eigenvalues and, optionally, the left and/or right eigenvectors. More...

Collaboration diagram for GEEV:

Functions

template<std::floating_point Float>
auto tatooine::lapack::geev (job JOBVL, job JOBVR, int N, Float *A, int LDA, Float *WR, Float *WI, Float *VL, int LDVL, Float *VR, int LDVR, Float *WORK, int LWORK) -> int
 
template<std::floating_point Float>
auto tatooine::lapack::geev (job const JOBVL, job const JOBVR, int N, Float *A, int LDA, Float *WR, Float *WI, Float *VL, int LDVL, Float *VR, int LDVR) -> int
 
template<std::floating_point Float>
auto tatooine::lapack::geev (job JOBVL, job JOBVR, int N, Float *A, int LDA, std::complex< Float > *W, Float *VL, int LDVL, Float *VR, int LDVR, Float *WORK, int LWORK) -> int
 
template<std::floating_point Float>
auto tatooine::lapack::geev (job const JOBVL, job const JOBVR, int N, Float *A, int LDA, std::complex< Float > *W, Float *VL, int LDVL, Float *VR, int LDVR) -> int
 
template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev (tensor< Float, N, N > &A, tensor< std::complex< Float >, N > &W)
 
template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev_left (tensor< Float, N, N > &A, tensor< std::complex< Float >, N > &W, tensor< Float, N, N > &VL)
 
template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev_right (tensor< Float, N, N > &A, tensor< std::complex< Float >, N > &W, tensor< Float, N, N > &VR)
 
template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev (tensor< Float, N, N > &A, tensor< std::complex< Float >, N > &W, tensor< Float, N, N > &VL, tensor< Float, N, N > &VR)
 

Detailed Description

General Matrix Eigenvalues

GEEV computes for an \(n\times n\) real nonsymmetric matrix \(\mA\), the eigenvalues and, optionally, the left and/or right eigenvectors.

The right eigenvector v(j) of \(\mA\) satisfies

\(\mA\cdot \vv(j) = \lambda(j) \cdot \vv(j)\)

where \(\lambda(j)\) is its eigenvalue. The left eigenvector \(\vu(j)\) of \(\mA\) satisfies

\(\vu(j)^\dagger \cdot \mA = \lambda(j) \cdot \vu(j)^\dagger\)

where \(\vu(j)^\dagger\) denotes the conjugate-transpose of \(\vu(j)\).

The computed eigenvectors are normalized to have Euclidean norm equal to \(1\) and largest component real.

Function Documentation

◆ geev() [1/6]

template<std::floating_point Float>
auto tatooine::lapack::geev ( job const  JOBVL,
job const  JOBVR,
int  N,
Float *  A,
int  LDA,
Float *  WR,
Float *  WI,
Float *  VL,
int  LDVL,
Float *  VR,
int  LDVR 
) -> int

◆ geev() [2/6]

template<std::floating_point Float>
auto tatooine::lapack::geev ( job const  JOBVL,
job const  JOBVR,
int  N,
Float *  A,
int  LDA,
std::complex< Float > *  W,
Float *  VL,
int  LDVL,
Float *  VR,
int  LDVR 
) -> int

◆ geev() [3/6]

template<std::floating_point Float>
auto tatooine::lapack::geev ( job  JOBVL,
job  JOBVR,
int  N,
Float *  A,
int  LDA,
Float *  WR,
Float *  WI,
Float *  VL,
int  LDVL,
Float *  VR,
int  LDVR,
Float *  WORK,
int  LWORK 
) -> int

◆ geev() [4/6]

template<std::floating_point Float>
auto tatooine::lapack::geev ( job  JOBVL,
job  JOBVR,
int  N,
Float *  A,
int  LDA,
std::complex< Float > *  W,
Float *  VL,
int  LDVL,
Float *  VR,
int  LDVR,
Float *  WORK,
int  LWORK 
) -> int

◆ geev() [5/6]

template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev ( tensor< Float, N, N > &  A,
tensor< std::complex< Float >, N > &  W 
)

◆ geev() [6/6]

template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev ( tensor< Float, N, N > &  A,
tensor< std::complex< Float >, N > &  W,
tensor< Float, N, N > &  VL,
tensor< Float, N, N > &  VR 
)

◆ geev_left()

template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev_left ( tensor< Float, N, N > &  A,
tensor< std::complex< Float >, N > &  W,
tensor< Float, N, N > &  VL 
)

◆ geev_right()

template<std::floating_point Float, size_t N>
auto tatooine::lapack::geev_right ( tensor< Float, N, N > &  A,
tensor< std::complex< Float >, N > &  W,
tensor< Float, N, N > &  VR 
)