NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ eigen_hermv()

void linalg::eigen_hermv ( int  size,
std::complex< double > *  A,
double *  eval,
std::complex< double > *  evec 

Evaluate the eigen set of a given Hermitian matrix \(A\).


Evaluate the eigen system of a given Hermitian matrix \(A\), and put the eigen values into "eval" and and the eigen vectors into "evec".


Size of the matrix \(A\).


A Hermitian matrix given as a pointer.


A complex vector into which the eigen values are set. Given as a pointer.


A complex Matrix into which the eigen vectors are set. Given as a pointer.

Definition at line 134 of file linalg_eigen.cpp.

References get_cdmatrix(), get_dvector(), and set_cdmatrix().

134  {
135  cdmatrix A_eigen;
136  cdmatrix evec_eigen;
137  dvector eval_eigen;
138  set_cdmatrix(n,A,A_eigen);
139  Eigen::SelfAdjointEigenSolver<cdmatrix> eigensolver(A_eigen);
140  eval_eigen=eigensolver.eigenvalues();
141  evec_eigen=eigensolver.eigenvectors();
142  get_cdmatrix(n,evec,evec_eigen);
143  get_dvector(n,eval,eval_eigen);
144 }
void get_dvector(int n, void *a, dvector &A)
void set_cdmatrix(int n, void *a, cdmatrix &A)
void get_cdmatrix(int n, void *a, cdmatrix &A)
+ Here is the call graph for this function: