cern.colt.matrix.tdouble.algo.solver
Class DoubleQMR
- java.lang.Object
-
- cern.colt.matrix.tdouble.algo.solver.AbstractDoubleIterativeSolver
-
- 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 systemAx = busing the Quasi-Minimal Residual method. QMR uses two preconditioners, and by default these are the same preconditioner.
-
-
Constructor Summary
Constructors Constructor and Description DoubleQMR(DoubleMatrix1D template)Constructor for QMR.DoubleQMR(DoubleMatrix1D template, DoublePreconditioner M1, DoublePreconditioner M2)Constructor for QMR.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidsetPreconditioner(DoublePreconditioner M)Sets preconditionerDoubleMatrix1Dsolve(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
-
-
-
-
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 processM1- Left preconditionerM2- Right preconditioner
-
-
Method Detail
-
solve
public DoubleMatrix1D solve(DoubleMatrix2D A, DoubleMatrix1D b, DoubleMatrix1D x) throws IterativeSolverDoubleNotConvergedException
Description copied from interface:DoubleIterativeSolverSolves the given problem, writing result into the vector.- Parameters:
A- Matrix of the problemb- Right hand sidex- 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:DoubleIterativeSolverSets preconditioner- Specified by:
setPreconditionerin interfaceDoubleIterativeSolver- Overrides:
setPreconditionerin classAbstractDoubleIterativeSolver- Parameters:
M- Preconditioner to use
-
-
DMelt 3.0 © DataMelt by jWork.ORG