public class ProjectedCGSolver
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
boolean |
debug |
Constructor and Description |
---|
ProjectedCGSolver() |
Modifier and Type | Method and Description |
---|---|
int |
getMaxIterations() |
int |
getNumIterations()
Returns the number of iterations associated with the last call to
solve . |
double |
getRelativeResidual()
Returns the relative residual ||A x - b||/||b|| at the end of the last
call to
solve . |
double |
getTolerance() |
IterativeSolver.ToleranceType |
getToleranceType() |
boolean |
isCompatible(int matrixType) |
void |
setMaxIterations(int max) |
void |
setTolerance(double tol) |
void |
setToleranceType(IterativeSolver.ToleranceType type) |
boolean |
solve(VectorNd x,
VectorNd lam,
LinearTransformNd A,
SparseCRSMatrix G,
VectorNd b,
VectorNd g)
Solves a linear system A x = b using the projected conjugate gradient
method.
|
boolean |
solve(VectorNd x,
VectorNd lam,
LinearTransformNd A,
SparseCRSMatrix G,
VectorNd b,
VectorNd g,
double tol,
int maxIter)
Solves a linear system A x = b using the projected conjugate gradient
method.
|
boolean |
solve(VectorNd x,
VectorNd lam,
LinearTransformNd A,
SparseCRSMatrix G,
VectorNd b,
VectorNd g,
double tol,
int maxIter,
LinearTransformNd P)
Solves a linear system A x = b using the projected conjugate gradient
method with a preconditioner.
|
public double getTolerance()
public void setTolerance(double tol)
public IterativeSolver.ToleranceType getToleranceType()
public void setToleranceType(IterativeSolver.ToleranceType type)
public int getMaxIterations()
public void setMaxIterations(int max)
public boolean solve(VectorNd x, VectorNd lam, LinearTransformNd A, SparseCRSMatrix G, VectorNd b, VectorNd g)
LinearTransformNd
. The method will iterate while relative residual ||A x
- b||/||b|| is greater than a supplied tolerance and the number of
iterations is less than a specified maximum.x
- result vector, as well as initial guess of the solutionA
- linear transform for the system to be solvedG
- constraint matrixb
- input vectorg
- input vector for Gpublic boolean solve(VectorNd x, VectorNd lam, LinearTransformNd A, SparseCRSMatrix G, VectorNd b, VectorNd g, double tol, int maxIter)
LinearTransformNd
. The method will iterate while relative residual ||A x
- b||/||b|| is greater than a supplied tolerance and the number of
iterations is less than a specified maximum.x
- result vector, as well as initial guess of the solutionlam
- result lambda, as well as initial guess of the solutionA
- linear transform for the system to be solvedG
- constraint matrixb
- input vectorg
- input vector for Gtol
- solution tolerancemaxIter
- maximum number of iferationspublic boolean solve(VectorNd x, VectorNd lam, LinearTransformNd A, SparseCRSMatrix G, VectorNd b, VectorNd g, double tol, int maxIter, LinearTransformNd P)
LinearTransformNd
. The mul
method of the preconditioner
should implement the transformation y = inv(M) x, where M is a a
preconditioning matrix that approximates A. The method will iterate while
relative residual ||A x - b||/||b|| is greater than a supplied tolerance
and the number of iterations is less than a specified maximum.x
- result vector, as well as initial guess of the solutionlam
- result lambda, as well as initial guess of the solutionA
- linear transform for the system to be solvedG
- constraint matrixb
- input vectorg
- input vector for Gtol
- solution tolerancemaxIter
- maximum number of iferationsP
- preconditioner (optional, may be specified as null)public int getNumIterations()
solve
.public double getRelativeResidual()
solve
.public boolean isCompatible(int matrixType)