14 int ChebLanNr(
double *intv, 
int maxit, 
double tol, 
double *vinit,
 
   15               polparams *pol, 
int *nevOut, 
double **lamo, 
double **Wo,
 
   16               double **reso, FILE *fstats);
 
   19 int ChebLanTr(
int lanm, 
int nev, 
double *intv, 
int maxit, 
double tol,
 
   20               double *vinit, 
polparams *pol, 
int *nev2, 
double **vals,
 
   21               double **W, 
double **resW, FILE *fstats);
 
   32 int ChebSI(
int nev, 
double *intv, 
int maxit, 
double tol, 
double *vinit,
 
   33            polparams *pol, 
int *nevo, 
double **lamo, 
double **Yo, 
double **reso,
 
   43 void BSolPol(
double *b, 
double *x, 
void *data);
 
   50 int LanBounds(
int msteps, 
double *v, 
double *lmin, 
double *lmax);
 
   54 int LanDos(
const int nvec, 
int msteps, 
const int npts, 
double *xdos,
 
   55            double *ydos, 
double *neig, 
const double *
const intv);
 
   58 int LanDosG(
const int nvec, 
int msteps, 
const int npts, 
double *xdos, 
double *ydos,
 
   59             double *neig, 
const double *
const intv);
 
   62 int LanTrbounds(
int lanm, 
int maxit, 
double tol, 
double *vinit, 
int bndtype,
 
   63                 double *lammin, 
double *lammax, FILE *fstats);
 
   66 int scalEigVec(
int n, 
int nev, 
double *Y, 
double* sqrtdiag);
 
   83              int *nevOut, 
double **lamo, 
double **Wo, 
double **reso,
 
   88 int RatLanTr(
int lanm, 
int nev, 
double *intv, 
int maxit, 
double tol,
 
   89              double *vinit, 
ratparams *rat, 
int *nev2, 
double **vals,
 
   90              double **W, 
double **resW, FILE *fstats);
 
  101 int matvec(
char trans, 
csrMat *A, 
double *x, 
double *y);
 
  125 int spslicer(
double *sli, 
double *mu, 
int Mdeg, 
double *intv, 
int n_int,
 
  128 int kpmdos(
int Mdeg, 
int damping, 
int nvec, 
double *ab, 
double *mu,
 
  132 void spslicer2(
double *xi, 
double *yi, 
int n_int, 
int npts, 
double *sli);
 
  146 void linspace(
double a, 
double b, 
int num, 
double *arr);
 
void free_csr(csrMat *csr)
memory deallocation for csr matrix 
void SetupPolRec(int n, int max_deg, double tol, double lmin, double lmax, BSolDataPol *data)
int EVSLFinish()
Finish EVSL. 
void sort_double(int n, double *v, int *ind)
int set_ratf_solfunc(ratparams *rat, csrMat *A, csrMat *B, SolFuncC *funcs, void **data)
int SetAMatrix(csrMat *A)
Set the matrix A. 
void FreeBSolPolData(BSolDataPol *data)
void(* MVFunc)(double *x, double *y, void *data)
matvec function prototype 
void(* SolFuncC)(int n, double *br, double *bz, double *xr, double *xz, void *data)
linear solver function prototype: [complex version] which is used for solving system with A-SIGMA B n...
void free_rat(ratparams *rat)
double evsl_timer()
evsl timer for mac 
int LanDos(const int nvec, int msteps, const int npts, double *xdos, double *ydos, double *neig, const double *const intv)
void SetupPolSqrt(int n, int max_deg, double tol, double lmin, double lmax, BSolDataPol *data)
void randn_double(int n, double *v)
int ChebLanNr(double *intv, int maxit, double tol, double *vinit, polparams *pol, int *nevOut, double **lamo, double **Wo, double **reso, FILE *fstats)
void extrDiagCsr(csrMat *B, double *d)
int SetASigmaBSol(ratparams *rat, SolFuncC *func, SolFuncC allf, void **data)
Set the solve routine and the associated data for A-SIGMA*B if func == NULL, set all functions to be ...
int ChebSI(int nev, double *intv, int maxit, double tol, double *vinit, polparams *pol, int *nevo, double **lamo, double **Yo, double **reso, FILE *fstats)
Chebyshev polynomial filtering Subspace Iteration. 
void diagScalCsr(csrMat *A, double *d)
int EVSLStart()
Initialize evslData. 
int SetBMatvec(int n, MVFunc func, void *data)
Set the user-input matvec routine and the associated data for B. Save them in evsldata. 
int SetAMatvec(int n, MVFunc func, void *data)
Set the user-input matvec routine and the associated data for A. Save them in evsldata. 
int SetLTSol(SolFuncR func, void *data)
Set the solve routine for LT. 
void csr_copy(csrMat *A, csrMat *B, int allocB)
copy a csr matrix A into B alloB: 0: will not allocate memory for B (have been alloced outside) 1: wi...
void rand_double(int n, double *v)
void spslicer2(double *xi, double *yi, int n_int, int npts, double *sli)
int LanTrbounds(int lanm, int maxit, double tol, double *vinit, int bndtype, double *lammin, double *lammax, FILE *fstats)
Lanczos process for eigenvalue bounds [Thick restart version]. 
void linspace(double a, double b, int num, double *arr)
int matvec(char trans, csrMat *A, double *x, double *y)
void SetDiagScal(double *ds)
Set diagonal scaling matrix D. 
void(* SolFuncR)(double *b, double *x, void *data)
function prototype for applying the solve B x = b 
sparse matrix format: the compressed sparse row (CSR) format, 0-based 
int find_ratf(double *intv, ratparams *rat)
int SetStdEig()
Set the problem to standard eigenvalue problem. 
int RatLanNr(double *intv, int maxit, double tol, double *vinit, ratparams *rat, int *nevOut, double **lamo, double **Wo, double **reso, FILE *fstats)
Rational filtering Lanczos process [NON-restarted version]. 
int SetBMatrix(csrMat *B)
Set the B matrix. 
int kpmdos(int Mdeg, int damping, int nvec, double *ab, double *mu, double *ecnt)
This function computes the coefficients of the density of states in the chebyshev basis...
int SetGenEig()
Set the problem to generalized eigenvalue problem. 
void set_ratf_def(ratparams *rat)
Sets default values for ratparams struct. 
int ChebLanTr(int lanm, int nev, double *intv, int maxit, double tol, double *vinit, polparams *pol, int *nev2, double **vals, double **W, double **resW, FILE *fstats)
Chebyshev polynomial filtering Lanczos process [Thick restart version]. 
int cooMat_to_csrMat(int cooidx, cooMat *coo, csrMat *csr)
convert coo to csr 
parameters for polynomial filter 
void set_pol_def(polparams *pol)
set default values for polparams struct. 
void StatsPrint(FILE *fstats)
int SetBSol(SolFuncR func, void *data)
Set the solve routine and the associated data for B. 
int RatLanTr(int lanm, int nev, double *intv, int maxit, double tol, double *vinit, ratparams *rat, int *nev2, double **vals, double **W, double **resW, FILE *fstats)
RatLanTR filtering Lanczos process [Thick restart version]. 
void free_coo(cooMat *coo)
memory deallocation for coo matrix 
int scalEigVec(int n, int nev, double *Y, double *sqrtdiag)
void free_pol(polparams *pol)
int LanDosG(const int nvec, int msteps, const int npts, double *xdos, double *ydos, double *neig, const double *const intv)
int LanBounds(int msteps, double *v, double *lmin, double *lmax)
sparse matrix format: the coordinate (COO) format, 0-based 
int find_pol(double *intv, polparams *pol)
Sets the values in pol. 
void BSolPol(double *b, double *x, void *data)
int spslicer(double *sli, double *mu, int Mdeg, double *intv, int n_int, int npts)
given the dos function defined by mu find a partitioning of sub-interval [a,b] of the spectrum so eac...
parameters for rational filter