This main function LOBPCG is a version of the preconditioned conjugate gradient method (Algorithm 5.1) described in A. V. Knyazev, Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method, SIAM Journal on Scientific Computing 23 (2001), no. 2, pp. 517-541. http://dx.doi.org/10.1137/S1064827500366124
A C-version of this code is a part of the http://code.google.com/p/blopex/
package and is available, e.g., in SLEPc and HYPRE.
Tested in MATLAB 6.5-7.13 and Octave 3.2.3-3.4.2. |