EVSL
1.1.0
EigenValues Slicing Library
|
Polynomial Filtered thick restart Lanczos. More...
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <float.h>
#include "def.h"
#include "blaslapack.h"
#include "struct.h"
#include "internal_proto.h"
Go to the source code of this file.
Macros | |
#define | FILTER_VINIT 1 |
Functions | |
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]. More... | |
Polynomial Filtered thick restart Lanczos.
Definition in file cheblanTr.c.
#define FILTER_VINIT 1 |
if filter the initial vector
Definition at line 18 of file cheblanTr.c.
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].
[in] | lanm | Dimension of Krylov subspace [restart dimension] |
[in] | nev | Estimate of number of eigenvalues in the interval – ideally nev == exact number or a little larger. This is not used for testing convergence but it helps make decisions as to when to test convergence ChebLanTr attempts to compute all eigenvalues in the interval and stops only when no more eigenvalyes are left. The convergenve test is a very simple one based on the residual norm for the filtered matrix |
[in] | 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 |
[in] | maxit | max Num of outer Lanczos iterations (restarts) allowed – Each restart may or use the full lanm lanczos steps or fewer. |
[in] | tol | tolerance for convergence. stop when ||res||< tol |
[in] | vinit | initial vector for Lanczos – [optional] |
[in] | pol | a struct containing the parameters of the polynomial. This is set up by a call to find_deg prior to calling chenlanTr |
[out] | nev2 | Number of eigenvalues/vectors computed |
[out] | W | A set of eigenvectors [n x nev2 matrix] of unit 2-norm for standard eig prob of unit B-norm for generalized eig prob |
[out] | vals | Associated eigenvalues [nev2 x 1 vector] |
[out] | resW | Associated residual norms [nev x 1 vector] 2-norm for standard eig prob B-norm for generalized eig prob |
[out] | fstats | File stream which stats are printed to |
Definition at line 62 of file cheblanTr.c.
References _polparams::bar, Calloc, CGS_DGKS(), CGS_DGKS2(), ChebAv(), DAXPY(), DCOPY(), DDOT(), DGEMM(), DGEMV(), DNRM2(), DSCAL(), evsl_timer(), evsldata, evslstat, _polparams::gam, _evsldata::ifGenEv, Malloc, max, min, _evsldata::n, NGS_MAX, orthTol, rand_double(), Realloc, SymEigenSolver(), and _evslstat::t_iter.
Referenced by evsl_cheblantr(), and main().