RDKit: RDNumeric::EigenSolvers Namespace Reference

| RDKit Open-source cheminformatics and machine learning.

- Main Page
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Functions
RDNumeric::EigenSolvers Namespace Reference

## Functions
bool | 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)

## Function Documentation

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

Parameters

  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

Returns
  a boolean indicating whether or not the calculation converged.

Notes:

- The matrix, `mat`, is changed in this function

Algorithm:

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

static bool RDNumeric::EigenSolvers::powerEigenSolver | ( | unsigned int | numEig,
|  | DoubleSymmMatrix & | mat,
|  | DoubleVector & | eigenValues,
|  | DoubleMatrix & | eigenVectors,
|  | int | seed = `-1`
| ) |  |
| 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 59 of file PowerEigenSolver.h.

References powerEigenSolver().