![]() |
RDKit
Open-source cheminformatics and machine learning.
|
Functions | |
bool RDKIT_EIGENSOLVERS_EXPORT | powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix *eigenVectors=0, int seed=-1) |
Compute the numEig largest eigenvalues and, optionally, the. More... | |
static bool | powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix &eigenVectors, int seed=-1) |
bool RDKIT_EIGENSOLVERS_EXPORT RDNumeric::EigenSolvers::powerEigenSolver | ( | unsigned int | numEig, |
DoubleSymmMatrix & | mat, | ||
DoubleVector & | eigenValues, | ||
DoubleMatrix * | eigenVectors = 0 , |
||
int | seed = -1 |
||
) |
Compute the numEig
largest eigenvalues and, optionally, the.
eigenvectors.
numEig | the number of eigenvalues we are interested in |
mat | symmetric input matrix of dimension N*N |
eigenValues | Vector used to return the eigenvalues (size = numEig) |
eigenVectors | Optional matrix used to return the eigenvectors (size = N*numEig) |
seed | Optional values to seed the random value generator used to initialize the eigen vectors |
Notes:
mat
, is changed in this functionAlgorithm:
We use the iterative power method, which works like this:
u = arbitrary unit vector tol = 0.001 currEigVal = 0.0; prevEigVal = -1.0e100 while (abs(currEigVal - prevEigVal) > tol) : v = Au prevEigVal = currEigVal currEigVal = v[i] // where i is the id os the largest absolute component u = c*v
Referenced by powerEigenSolver().
|
inlinestatic |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 60 of file PowerEigenSolver.h.
References powerEigenSolver().