24 #include "lapack_diag.h" 28 void zcopy_(
int *n,
double complex *x,
int *incx,
double complex *y,
int *incy);
29 void zdotc_(
double complex *xy,
int *n,
double complex *x,
int *incx,
double complex *y,
int *incy);
40 double complex *dcSpectrum,
41 double complex *dcomega
44 int idim, jdim, iomega;
53 zcopy_(&idim_max_int, &
v0[1], &incr, &
vg[0], &incr);
71 for (idim = 0; idim < idim_max_int; idim++) {
73 for (jdim = 0; jdim < idim_max_int; jdim++)
v1[idim] += conj(
vg[jdim]) *
L_vec[idim][jdim];
75 v1[idim] = conj(
v1[idim]) *
v1[idim];
87 for (iomega = 0; iomega < Nomega; iomega++) {
88 dcSpectrum[iomega] = 0.0;
89 for (idim = 0; idim < idim_max_int; idim++) {
90 dcSpectrum[iomega] +=
v1[idim] / (dcomega[iomega] -
v0[idim]);
void StartTimer(int n)
function for initializing elapse time [start]
unsigned long int idim_max
The dimension of the Hilbert space of this process.
int CalcSpectrumByFullDiag(struct EDMainCalStruct *X, int Nomega, double complex *dcSpectrum, double complex *dcomega)
Compute the Green function with the Lehmann representation and FD .
void StopTimer(int n)
function for calculating elapse time [elapse time=StartTimer-StopTimer]
int lapack_diag(struct BindStruct *X)
performing full diagonalization using lapack
int makeHam(struct BindStruct *X)
Making Hamiltonian for the full diagonalization method. The Hamiltonian is stored in the two dimensio...
void zdotc_(double complex *xy, int *n, double complex *x, int *incx, double complex *y, int *incy)
void zcopy_(int *n, double complex *x, int *incx, double complex *y, int *incy)
struct CheckList Check
Size of the Hilbert space.
struct BindStruct Bind
Binded struct.