12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /**
- * @file ILSConjugateGradientsLanczos.h
- * @author Paul Bodesheim
- * @date 20/01/2012 (dd/mm/yyyy)
- */
- #ifndef _NICE_ILSConjugateGradientsLanczos_INCLUDE
- #define _NICE_ILSConjugateGradientsLanczos_INCLUDE
- #include "core/vector/VectorT.h"
- #include "GenericMatrix.h"
- #include "IterativeLinearSolver.h"
- #include "EigValues.h"
- #include "ILSConjugateGradients.h"
- namespace NICE {
-
- /** @class ILSConjugateGradientsLanczos
- * Iteratively solving linear equation systems with the conjugate gradients method using Lanczos process
- *
- * @author Paul Bodesheim
- */
- class ILSConjugateGradientsLanczos : public IterativeLinearSolver
- {
- protected:
- bool verbose;
- uint maxIterations;
- double minDelta;
- // bool useFlexibleVersion;
- // Vector jacobiPreconditioner;
- public:
- /**
- * @brief constructor
- *
- * @param verbose output the residual and some debug information for each iteration
- * @param maxIterations maximum number of iterations
- * @param minDelta minimum difference between two solutions x_t and x_{t+1}
- */
- ILSConjugateGradientsLanczos( bool verbose = false, uint maxIterations = 10000, double minDelta = 1e-7);//, bool useFlexibleVersion = false);
-
- /** simple destructor */
- virtual ~ILSConjugateGradientsLanczos();
- // /**
- // * @brief set a vector of diagonal elements for the jacobi preconditioner
- // *
- // * @param jacobiPreconditioner
- // */
- // void setJacobiPreconditioner ( const Vector & jacobiPreconditioner );
- /**
- * @brief Solve the linear System A*x = b, where A is indirectly presented
- * by the GenericMatrix gm
- *
- * @param gm GenericMatrix providing matrix-vector multiplications
- * @param b Vector on the right hand side of the system
- * @param x initial and final estimate
- *
- * @return method specific status information
- */
- int solveLin ( const GenericMatrix & gm, const Vector & b, Vector & x );
- };
- }
- #endif
|