arpack {igraph}  R Documentation 
Interface to the ARPACK library for calculating eigenvectors of sparse matrices
arpack(func, extra = NULL, sym = FALSE, options = igraph.arpack.default, env = parent.frame())
func 
The function to perform the matrixvector
multiplication. ARPACK requires to perform these by the user. The
function gets the vector x as the first argument, and it should
return Ax, where A is the “input matrix”. (The
input matrix is never given explicitly.) The second argument is
extra . 
extra 
Extra argument to supply to func . 
sym 
Logical scalar, whether the input matrix is
symmetric. Always supply TRUE here if it is, since it can
speed up the computation. 
options 
Options to ARPACK, a named list to overwrite some of the default option values. See details below. 
env 
The environment in which func will be evaluated. 
ARPACK is a library for solving large scale eigenvalue problems.
The package is designed to compute a few eigenvalues and corresponding
eigenvectors of a general n by n matrix A. It is
most appropriate for large sparse or structured matrices A where
structured means that a matrixvector product w < Av
requires
order n rather than the usual order n^2 floating point
operations. Please see
http://www.caam.rice.edu/software/ARPACK/ for details.
This function is an interface to ARPACK. igraph does not contain all ARPACK routines, only the ones dealing with symmetric and nonsymmetric eigenvalue problems using double precision real numbers.
The eigenvalue calculation in ARPACK (in the simplest
case) involves the calculation of the Av product where A
is the matrix we work with and v is an arbitrary vector. The
function supplied in the fun
argument is expected to perform
this product. If the product can be done efficiently, e.g. if the
matrix is sparse, then arpack
is usually able to calculate the
eigenvalues very quickly.
The options
argument specifies what kind of calculation to
perform. It is a list with the following members, they correspond
directly to ARPACK parameters. On input it has the following fields:
I
’,
stadard eigenvalue problem, A*x=lambda*x; and
‘G
’, generalized eigenvalue problem,
A*x=lambda B*x. Currently only
‘I
’ is supported.arpack
directly. (I.e. not needed for evcent
,
page.rank
, etc.)Possible values for symmetric input matrices:
LA
’nev
largest (algebraic)
eigenvalues.SA
’nev
smallest (algebraic)
eigenvalues.LM
’nev
largest (in magnitude)
eigenvalues.SM
’nev
smallest (in magnitude)
eigenvalues.BE
’nev
eigenvalues, half
from each end of the spectrum. When nev
is odd, compute
one more from the high end than from the low end.Possible values for nonsymmetric input matrices:
LM
’nev
eigenvalues of
largest magnitude.SM
’nev
eigenvalues of
smallest magnitude.LR
’nev
eigenvalues of
largest real part.SR
’nev
eigenvalues of
smallest real part.LI
’nev
eigenvalues of
largest imaginary part.SI
’nev
eigenvalues of
smallest imaginary part.
This parameter is sometimes overwritten by the various functions,
e.g. page.rank
always sets ‘LM
’.
tol
times its estimated value. If this is set to zero
then machine precision is used.
Please note that only mode==1
was tested and other values
might not work properly.
Possible values if the input matrix is not symmetric:
Please note that only mode==1
was tested and other values
might not work properly.
On output the following additional fields are added:
ncv
relative to nev
.ARPACK can return more error conditions than these, but they are converted to regular igraph errors.
Please see the ARPACK documentation for additional details.
A named list with the following members:
values 
Numeric vector, the desired eigenvalues. 
vectors 
Numeric matrix, the desired eigenvectors as columns. 
options 
A named list with the supplied options and
some information about the performed calculation, including an
ARPACK exit code. See the details above.

normalbracket236bracketnormal
Rich Lehoucq, Kristi Maschhoff, Danny Sorensen, Chao Yang for ARPACK, Gabor Csardi csardi@rmki.kfki.hu for the R interface.
D.C. Sorensen, Implicit Application of Polynomial Filters in a kStep Arnoldi Method. SIAM J. Matr. Anal. Apps., 13 (1992), pp 357385.
R.B. Lehoucq, Analysis and Implementation of an Implicitly Restarted Arnoldi Iteration. Rice University Technical Report TR9513, Department of Computational and Applied Mathematics.
B.N. Parlett & Y. Saad, Complex Shift and Invert Strategies for Real Matrices. Linear Algebra and its Applications, vol 88/89, pp 575595, (1987).
evcent
, page.rank
,
hub.score
, leading.eigenvector.community
are some of the functions in igraph which use ARPACK. The ARPACK
homepage is at http://www.caam.rice.edu/software/ARPACK/.
# Identity matrix f < function(x, extra=NULL) x arpack(f, options=list(n=10, nev=2, ncv=4), sym=TRUE) # Graph laplacian of a star graph (undirected), n>=2 # Note that this is a linear operation f < function(x, extra=NULL) { y < x y[1] < (length(x)1)*x[1]  sum(x[1]) for (i in 2:length(x)) { y[i] < x[i]  x[1] } y } arpack(f, options=list(n=10, nev=1, ncv=3), sym=TRUE) # double check eigen(graph.laplacian(graph.star(10, mode="undirected")))