EVSL  1.1.0
EigenValues Slicing Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Macros | Functions
cheblanTr.c File Reference

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.


#define FILTER_VINIT   1


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...

Detailed Description

Polynomial Filtered thick restart Lanczos.

Definition in file cheblanTr.c.

Macro Definition Documentation

#define FILTER_VINIT   1

if filter the initial vector

Definition at line 18 of file cheblanTr.c.

Function Documentation

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]lanmDimension of Krylov subspace [restart dimension]
[in]nevEstimate 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]intvan 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]maxitmax Num of outer Lanczos iterations (restarts) allowed – Each restart may or use the full lanm lanczos steps or fewer.
[in]toltolerance for convergence. stop when ||res||< tol
[in]vinitinitial vector for Lanczos – [optional]
[in]pola struct containing the parameters of the polynomial. This is set up by a call to find_deg prior to calling chenlanTr
[out]nev2Number of eigenvalues/vectors computed
[out]WA set of eigenvectors [n x nev2 matrix] of unit 2-norm for standard eig prob of unit B-norm for generalized eig prob
[out]valsAssociated eigenvalues [nev2 x 1 vector]
[out]resWAssociated residual norms [nev x 1 vector] 2-norm for standard eig prob B-norm for generalized eig prob
[out]fstatsFile stream which stats are printed to
Returns 0 on success (or if check_intv() is non-positive), -1 if gamB is outside [-1, 1], and 2 if there are no eigenvalues found.
memory allocation for W/vals/resW within this function

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().

Here is the call graph for this function:

Here is the caller graph for this function: