Parallel Colt 0.7.2

cern.colt.matrix.tdouble.algo.solver
Class DoubleQMR

java.lang.Object
  extended by cern.colt.matrix.tdouble.algo.solver.AbstractDoubleIterativeSolver
      extended by cern.colt.matrix.tdouble.algo.solver.DoubleQMR
All Implemented Interfaces:
DoubleIterativeSolver

public class DoubleQMR
extends AbstractDoubleIterativeSolver

Quasi-Minimal Residual method. QMR solves the unsymmetric linear system Ax = b using the Quasi-Minimal Residual method. QMR uses two preconditioners, and by default these are the same preconditioner.

Author:
Templates

Constructor Summary
DoubleQMR(DoubleMatrix1D template)
          Constructor for QMR.
DoubleQMR(DoubleMatrix1D template, DoublePreconditioner M1, DoublePreconditioner M2)
          Constructor for QMR.
 
Method Summary
 void setPreconditioner(DoublePreconditioner M)
          Sets preconditioner
 DoubleMatrix1D solve(DoubleMatrix2D A, DoubleMatrix1D b, DoubleMatrix1D x)
          Solves the given problem, writing result into the vector.
 
Methods inherited from class cern.colt.matrix.tdouble.algo.solver.AbstractDoubleIterativeSolver
getIterationMonitor, getPreconditioner, setIterationMonitor
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DoubleQMR

public DoubleQMR(DoubleMatrix1D template)
Constructor for QMR. Uses the given vector as template for creating scratch vectors. Typically, the solution or the right hand side vector can be passed, and the template is not modified

Parameters:
template - Vector to use as template for the work vectors needed in the solution process

DoubleQMR

public DoubleQMR(DoubleMatrix1D template,
                 DoublePreconditioner M1,
                 DoublePreconditioner M2)
Constructor for QMR. Uses the given vector as template for creating scratch vectors. Typically, the solution or the right hand side vector can be passed, and the template is not modified. Allows setting different right and left preconditioners

Parameters:
template - Vector to use as template for the work vectors needed in the solution process
M1 - Left preconditioner
M2 - Right preconditioner
Method Detail

solve

public DoubleMatrix1D solve(DoubleMatrix2D A,
                            DoubleMatrix1D b,
                            DoubleMatrix1D x)
                     throws IterativeSolverDoubleNotConvergedException
Description copied from interface: DoubleIterativeSolver
Solves the given problem, writing result into the vector.

Parameters:
A - Matrix of the problem
b - Right hand side
x - Solution is stored here. Also used as initial guess
Returns:
The solution vector x
Throws:
IterativeSolverDoubleNotConvergedException

setPreconditioner

public void setPreconditioner(DoublePreconditioner M)
Description copied from interface: DoubleIterativeSolver
Sets preconditioner

Specified by:
setPreconditioner in interface DoubleIterativeSolver
Overrides:
setPreconditioner in class AbstractDoubleIterativeSolver
Parameters:
M - Preconditioner to use

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage