EVSL
1.1.0
EigenValues Slicing Library
|
Polynomial Filtered Subspace Iteration. More...
#include <stdlib.h>
#include <stdio.h>
#include <float.h>
#include <math.h>
#include "def.h"
#include "blaslapack.h"
#include "struct.h"
#include "internal_proto.h"
Go to the source code of this file.
Macros | |
#define | NBUF 2 |
Functions | |
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. More... | |
Polynomial Filtered Subspace Iteration.
Definition in file chebsi.c.
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.
nev | Estimate of number of eigenvalues in the interval – ideally nev == exact number or a little larger. ChebSI stops when at least nev eigenvalues are found or when no more candidates are left in interval. |
intv | An array of length 4 [intv[0], intv[1]] is the interval of desired eigenvalues [intv[2], intv[3]] is the global interval of all eigenvalues it must contain all eigenvalues of A |
maxit | Max Num of outer subspace iterations allowed |
tol | Tolerance for convergence. stop when ||res||< tol |
vinit | Nev initial vectors [to be made optional] |
pol | A struct containing the parameters of the polynomial.. |
Modifies:
[out] | nevo | Number of eigenvalues/vectors computed |
[out] | Yo | A set of eigenvectors [n x nev2 matrix] |
[out] | lamo | Associated eigenvalues [nev2 x 1 vector] |
[out] | reso | Associated residual norms [nev x 1 vector] |
[out] | fstats | File stream which stats are printed to |
*-----------------— memory for converged Ritz pairs (Y, Lam) */
Definition at line 42 of file chebsi.c.
References _polparams::bar, ChebAv(), DCOPY(), DDOT(), _polparams::deg, DGEMM(), evsl_timer(), evsldata, _polparams::gam, Malloc, _evsldata::n, NBUF, orth(), and SymEigenSolver().
Referenced by main().