You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/03/19 04:01:57 UTC
svn commit: r1302261 -
/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java
Author: sebb
Date: Mon Mar 19 03:01:57 2012
New Revision: 1302261
URL: http://svn.apache.org/viewvc?rev=1302261&view=rev
Log:
Make State class static
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java?rev=1302261&r1=1302260&r2=1302261&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/SymmLQ.java Mon Mar 19 03:01:57 2012
@@ -225,7 +225,7 @@ public class SymmLQ
* the current number of evaluations of matrix-vector products.
* </p>
*/
- private class State {
+ private static class State {
/** Reference to the linear operator. */
private final RealLinearOperator a;
@@ -233,6 +233,15 @@ public class SymmLQ
/** Reference to the right-hand side vector. */
private final RealVector b;
+ /** {@code true} if symmetry of matrix and conditioner must be checked. */
+ private final boolean check;
+
+ /**
+ * The value of the custom tolerance δ for the default stopping
+ * criterion.
+ */
+ private final double delta;
+
/** The value of beta[k+1]. */
private double beta;
@@ -341,7 +350,9 @@ public class SymmLQ
*/
public State(final RealLinearOperator a, final RealLinearOperator minv,
final RealVector b, final RealVector x, final boolean goodb,
- final double shift) {
+ final double shift,
+ final boolean check,
+ final double delta) {
this.a = a;
this.minv = minv;
this.b = b;
@@ -350,6 +361,8 @@ public class SymmLQ
this.shift = shift;
this.minvb = minv == null ? b : minv.operate(b);
this.hasConverged = false;
+ this.check = check;
+ this.delta = delta;
init();
}
@@ -1134,7 +1147,7 @@ public class SymmLQ
manager.resetIterationCount();
manager.incrementIterationCount();
- final State state = new State(a, minv, b, x, goodb, shift);
+ final State state = new State(a, minv, b, x, goodb, shift, check, delta);
final IterativeLinearSolverEvent event = new SymmLQEvent(this, state);
if (state.beta1 == 0.) {
/* If b = 0 exactly, stop with x = 0. */