diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs
index 76a9da61..3c86293f 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs
@@ -91,20 +91,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -170,7 +156,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
Complex omega = 0;
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, residuals) == IterationStatus.Continue)
{
// rho_(i-1) = r~^T r_(i-1) // dotproduct r~ and r_(i-1)
var oldRho = currentRho;
@@ -229,7 +215,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
temp2.CopyTo(temp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, temp, input, vecS))
+ if (iterator.DetermineStatus(iterationNumber, temp, input, vecS) != IterationStatus.Continue)
{
temp.CopyTo(result);
@@ -237,7 +223,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
CalculateTrueResidual(matrix, residuals, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
return;
@@ -278,7 +264,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
throw new Exception("Iterative solver experience a numerical break down");
}
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs
index fb94c6c2..762d4ce3 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs
@@ -137,20 +137,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Decide if to do steps with BiCgStab
///
@@ -238,7 +224,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
// for (k = 0, 1, .... )
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// p_k = r_k + beta_(k-1) * (p_(k-1) - u_(k-1))
p.Subtract(u, temp);
@@ -379,7 +365,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
preconditioner.Approximate(xtemp, result);
// Now check for convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs
index 1bfad10a..2827d730 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs
@@ -240,20 +240,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -347,7 +333,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
// FOR (j = 0, 1, 2 ....)
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// SOLVE M g~_((j-1)k+k) = g_((j-1)k+k)
preconditioner.Approximate(g[k - 1], gtemp);
@@ -405,13 +391,13 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
temp2.CopyTo(xtemp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Calculate the true residual
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
// Exit from the while loop.
@@ -540,7 +526,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
temp2.CopyTo(residuals);
// We can check the residuals here if they're close
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/DivergenceStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/DivergenceStopCriterium.cs
index 0f0a550f..ce8d8ab6 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/DivergenceStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/DivergenceStopCriterium.cs
@@ -77,7 +77,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The array that holds the tracking information.
@@ -257,7 +257,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
}
// Check if we are diverging and if so set the status
- _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Running;
+ _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -318,7 +318,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
_residualHistory = null;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/FailureStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/FailureStopCriterium.cs
index ab351e88..93b3239b 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/FailureStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/FailureStopCriterium.cs
@@ -56,7 +56,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The iteration number of the last iteration.
@@ -99,7 +99,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
var residualNorm = residualVector.InfinityNorm();
var solutionNorm = solutionVector.InfinityNorm();
- _status = double.IsNaN(solutionNorm.Real) || double.IsNaN(residualNorm.Real) ? IterationStatus.Failure : IterationStatus.Running;
+ _status = double.IsNaN(solutionNorm.Real) || double.IsNaN(residualNorm.Real) ? IterationStatus.Failure : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -122,7 +122,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/ResidualStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/ResidualStopCriterium.cs
index 12415970..3680311b 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/ResidualStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/StopCriterium/ResidualStopCriterium.cs
@@ -76,7 +76,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The number of iterations since the residuals got below the maximum.
@@ -267,13 +267,13 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
if (_lastIteration <= iterationNumber)
{
_iterationCount = iterationNumber - _lastIteration;
- _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Running;
+ _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Continue;
}
}
else
{
_iterationCount = 0;
- _status = IterationStatus.Running;
+ _status = IterationStatus.Continue;
}
_lastIteration = iterationNumber;
@@ -313,7 +313,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_iterationCount = 0;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs
index 55bd3dc2..32222bb9 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs
@@ -78,20 +78,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Is even?
///
@@ -174,7 +160,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
// Start the iteration
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) == IterationStatus.Continue)
{
// First part of the step, the even bit
if (IsEven(iterationNumber))
@@ -233,7 +219,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
temp2.CopyTo(x);
// Check convergence and see if we can bail
- if (!ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) != IterationStatus.Continue)
{
// Calculate the real values
preconditioner.Approximate(x, result);
@@ -244,7 +230,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
CalculateTrueResidual(matrix, temp, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, temp))
+ if (iterator.DetermineStatus(iterationNumber, result, input, temp) != IterationStatus.Continue)
{
// We're all good now.
return;
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.cs
index 8db9969e..3619e7fe 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.cs
@@ -29,7 +29,6 @@
//
using System;
-using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Preconditioners;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.Properties;
@@ -85,20 +84,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -164,7 +149,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
Numerics.Complex32 omega = 0;
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, residuals) == IterationStatus.Continue)
{
// rho_(i-1) = r~^T r_(i-1) // dotproduct r~ and r_(i-1)
var oldRho = currentRho;
@@ -223,7 +208,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
temp2.CopyTo(temp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, temp, input, vecS))
+ if (iterator.DetermineStatus(iterationNumber, temp, input, vecS) != IterationStatus.Continue)
{
temp.CopyTo(result);
@@ -231,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
CalculateTrueResidual(matrix, residuals, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
return;
@@ -272,7 +257,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
throw new Exception("Iterative solver experience a numerical break down");
}
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.cs
index a04fcce4..e113020d 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.cs
@@ -130,20 +130,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Decide if to do steps with BiCgStab
///
@@ -236,7 +222,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
// for (k = 0, 1, .... )
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// p_k = r_k + beta_(k-1) * (p_(k-1) - u_(k-1))
p.Subtract(u, temp);
@@ -377,7 +363,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
preconditioner.Approximate(xtemp, result);
// Now check for convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.cs
index 4ecea50f..a9686192 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.cs
@@ -233,20 +233,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -345,7 +331,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
// FOR (j = 0, 1, 2 ....)
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// SOLVE M g~_((j-1)k+k) = g_((j-1)k+k)
preconditioner.Approximate(g[k - 1], gtemp);
@@ -403,13 +389,13 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
temp2.CopyTo(xtemp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Calculate the true residual
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
// Exit from the while loop.
@@ -538,7 +524,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
temp2.CopyTo(residuals);
// We can check the residuals here if they're close
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/DivergenceStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/DivergenceStopCriterium.cs
index 4b06fe24..3e00bb21 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/DivergenceStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/DivergenceStopCriterium.cs
@@ -72,7 +72,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The array that holds the tracking information.
@@ -252,7 +252,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
}
// Check if we are diverging and if so set the status
- _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Running;
+ _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -313,7 +313,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
_residualHistory = null;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/FailureStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/FailureStopCriterium.cs
index 150a0504..43fbbdf3 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/FailureStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/FailureStopCriterium.cs
@@ -51,7 +51,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The iteration number of the last iteration.
@@ -94,7 +94,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
var residualNorm = residualVector.InfinityNorm();
var solutionNorm = solutionVector.InfinityNorm();
- _status = float.IsNaN(solutionNorm.Real) || float.IsNaN(residualNorm.Real) ? IterationStatus.Failure : IterationStatus.Running;
+ _status = float.IsNaN(solutionNorm.Real) || float.IsNaN(residualNorm.Real) ? IterationStatus.Failure : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -117,7 +117,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/ResidualStopCriterium.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/ResidualStopCriterium.cs
index 81ff9a16..96f14308 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/ResidualStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/StopCriterium/ResidualStopCriterium.cs
@@ -71,7 +71,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The number of iterations since the residuals got below the maximum.
@@ -262,13 +262,13 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
if (_lastIteration <= iterationNumber)
{
_iterationCount = iterationNumber - _lastIteration;
- _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Running;
+ _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Continue;
}
}
else
{
_iterationCount = 0;
- _status = IterationStatus.Running;
+ _status = IterationStatus.Continue;
}
_lastIteration = iterationNumber;
@@ -308,7 +308,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_iterationCount = 0;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.cs
index d024a57b..9f810c29 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.cs
@@ -70,20 +70,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Is even?
///
@@ -171,7 +157,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
// Start the iteration
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) == IterationStatus.Continue)
{
// First part of the step, the even bit
if (IsEven(iterationNumber))
@@ -230,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
temp2.CopyTo(x);
// Check convergence and see if we can bail
- if (!ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) != IterationStatus.Continue)
{
// Calculate the real values
preconditioner.Approximate(x, result);
@@ -241,7 +227,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
CalculateTrueResidual(matrix, temp, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, temp))
+ if (iterator.DetermineStatus(iterationNumber, result, input, temp) != IterationStatus.Continue)
{
// We're all good now.
return;
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.cs b/src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.cs
index 306ebff9..b263415d 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.cs
@@ -84,20 +84,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -163,7 +149,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
double omega = 0;
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, residuals) == IterationStatus.Continue)
{
// rho_(i-1) = r~^T r_(i-1) // dotproduct r~ and r_(i-1)
var oldRho = currentRho;
@@ -222,7 +208,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
temp2.CopyTo(temp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, temp, input, vecS))
+ if (iterator.DetermineStatus(iterationNumber, temp, input, vecS) != IterationStatus.Continue)
{
temp.CopyTo(result);
@@ -230,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
CalculateTrueResidual(matrix, residuals, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
return;
@@ -271,7 +257,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
throw new Exception("Iterative solver experience a numerical break down");
}
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.cs b/src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.cs
index 634de3c6..20b1fbf9 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.cs
@@ -136,20 +136,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Decide if to do steps with BiCgStab
///
@@ -242,7 +228,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
// for (k = 0, 1, .... )
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// p_k = r_k + beta_(k-1) * (p_(k-1) - u_(k-1))
p.Subtract(u, temp);
@@ -383,7 +369,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
preconditioner.Approximate(xtemp, result);
// Now check for convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.cs
index a9fba4ef..72f0d315 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.cs
@@ -233,20 +233,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -345,7 +331,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
// FOR (j = 0, 1, 2 ....)
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// SOLVE M g~_((j-1)k+k) = g_((j-1)k+k)
preconditioner.Approximate(g[k - 1], gtemp);
@@ -403,13 +389,13 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
temp2.CopyTo(xtemp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Calculate the true residual
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
// Exit from the while loop.
@@ -538,7 +524,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
temp2.CopyTo(residuals);
// We can check the residuals here if they're close
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/DivergenceStopCriterium.cs b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/DivergenceStopCriterium.cs
index c81fd02e..ab6b52d9 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/DivergenceStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/DivergenceStopCriterium.cs
@@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
/// residual may experience before a divergence warning is issued.
///
public const double DefaultMaximumRelativeIncrease = 0.08;
-
+
///
/// Default value for the minimum number of iterations over which
/// the residual must grow before a divergence warning is issued.
@@ -55,32 +55,32 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
/// Defines the default last iteration number. Set to -1 because iterations normally
/// start at 0.
///
- private const int DefaultLastIterationNumber = -1;
+ const int DefaultLastIterationNumber = -1;
///
/// The maximum relative increase the residual may experience without triggering a divergence warning.
///
- private double _maximumRelativeIncrease;
+ double _maximumRelativeIncrease;
///
/// The number of iterations over which a residual increase should be tracked before issuing a divergence warning.
///
- private int _minimumNumberOfIterations;
+ int _minimumNumberOfIterations;
///
/// The status of the calculation
///
- private IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The array that holds the tracking information.
///
- private double[] _residualHistory;
+ double[] _residualHistory;
///
/// The iteration number of the last iteration.
///
- private int _lastIteration = DefaultLastIterationNumber;
+ int _lastIteration = DefaultLastIterationNumber;
///
/// Initializes a new instance of the class with the default maximum
@@ -104,7 +104,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
/// relative increase and the specified minimum number of tracking iterations.
///
/// The minimum number of iterations over which the residual must grow before a divergence warning is issued.
- public DivergenceStopCriterium(int minimumIterations) : this(DefaultMinimumNumberOfIterations, minimumIterations)
+ public DivergenceStopCriterium(int minimumIterations) : this(DefaultMinimumNumberOfIterations, minimumIterations)
{
}
@@ -250,7 +250,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
}
// Check if we are diverging and if so set the status
- _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Running;
+ _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -260,7 +260,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
/// Detect if solution is diverging
///
/// true if diverging, otherwise false
- private bool IsDiverging()
+ bool IsDiverging()
{
// Run for each variable
for (var i = 1; i < _residualHistory.Length; i++)
@@ -270,7 +270,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
// Divergence is occurring if:
// - the last residual is larger than the previous one
// - the relative increase of the residual is larger than the setting allows
- if ((difference < 0) || (_residualHistory[i - 1] * (1 + _maximumRelativeIncrease) >= _residualHistory[i]))
+ if ((difference < 0) || (_residualHistory[i - 1]*(1 + _maximumRelativeIncrease) >= _residualHistory[i]))
{
// No divergence taking place within the required number of iterations
// So reset and stop the iteration. There is no way we can get to the
@@ -285,7 +285,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
/// Gets required history Length
///
- private int RequiredHistoryLength
+ int RequiredHistoryLength
{
[DebuggerStepThrough]
get
@@ -311,7 +311,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
_residualHistory = null;
}
@@ -325,4 +325,4 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
return new DivergenceStopCriterium(_maximumRelativeIncrease, _minimumNumberOfIterations);
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/FailureStopCriterium.cs b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/FailureStopCriterium.cs
index c216998a..ea0973ac 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/FailureStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/FailureStopCriterium.cs
@@ -49,7 +49,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The iteration number of the last iteration.
@@ -92,7 +92,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
var residualNorm = residualVector.InfinityNorm();
var solutionNorm = solutionVector.InfinityNorm();
- _status = double.IsNaN(solutionNorm) || double.IsNaN(residualNorm) ? IterationStatus.Failure : IterationStatus.Running;
+ _status = double.IsNaN(solutionNorm) || double.IsNaN(residualNorm) ? IterationStatus.Failure : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -115,7 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/ResidualStopCriterium.cs b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/ResidualStopCriterium.cs
index bb1dc3ad..f3f541f7 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/ResidualStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/StopCriterium/ResidualStopCriterium.cs
@@ -69,7 +69,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The number of iterations since the residuals got below the maximum.
@@ -260,13 +260,13 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
if (_lastIteration <= iterationNumber)
{
_iterationCount = iterationNumber - _lastIteration;
- _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Running;
+ _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Continue;
}
}
else
{
_iterationCount = 0;
- _status = IterationStatus.Running;
+ _status = IterationStatus.Continue;
}
_lastIteration = iterationNumber;
@@ -306,7 +306,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_iterationCount = 0;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.cs b/src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.cs
index 498dcd7f..21d9f875 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.cs
@@ -70,20 +70,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Is even?
///
@@ -171,7 +157,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
// Start the iteration
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) == IterationStatus.Continue)
{
// First part of the step, the even bit
if (IsEven(iterationNumber))
@@ -230,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
temp2.CopyTo(x);
// Check convergence and see if we can bail
- if (!ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) != IterationStatus.Continue)
{
// Calculate the real values
preconditioner.Approximate(x, result);
@@ -241,7 +227,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
CalculateTrueResidual(matrix, temp, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, temp))
+ if (iterator.DetermineStatus(iterationNumber, result, input, temp) != IterationStatus.Continue)
{
// We're all good now.
return;
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.cs b/src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.cs
index 0b48e54f..3eaec91f 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.cs
@@ -84,20 +84,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -163,7 +149,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
float omega = 0;
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, residuals) == IterationStatus.Continue)
{
// rho_(i-1) = r~^T r_(i-1) // dotproduct r~ and r_(i-1)
var oldRho = currentRho;
@@ -222,7 +208,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
temp2.CopyTo(temp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, temp, input, vecS))
+ if (iterator.DetermineStatus(iterationNumber, temp, input, vecS) != IterationStatus.Continue)
{
temp.CopyTo(result);
@@ -230,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
CalculateTrueResidual(matrix, residuals, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
return;
@@ -271,7 +257,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
throw new Exception("Iterative solver experience a numerical break down");
}
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.cs b/src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.cs
index 241c84b2..25bf38b5 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.cs
@@ -130,20 +130,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Decide if to do steps with BiCgStab
///
@@ -236,7 +222,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
// for (k = 0, 1, .... )
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// p_k = r_k + beta_(k-1) * (p_(k-1) - u_(k-1))
p.Subtract(u, temp);
@@ -377,7 +363,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
preconditioner.Approximate(xtemp, result);
// Now check for convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.cs
index 8cc1a5ae..c6ae4702 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.cs
@@ -236,20 +236,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the
/// solution vector and x is the unknown vector.
@@ -348,7 +334,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
// FOR (j = 0, 1, 2 ....)
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ while (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) == IterationStatus.Continue)
{
// SOLVE M g~_((j-1)k+k) = g_((j-1)k+k)
preconditioner.Approximate(g[k - 1], gtemp);
@@ -406,13 +392,13 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
temp2.CopyTo(xtemp);
// Check convergence and stop if we are converged.
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Calculate the true residual
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// We're all good now.
// Exit from the while loop.
@@ -541,7 +527,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
temp2.CopyTo(residuals);
// We can check the residuals here if they're close
- if (!ShouldContinue(iterator, iterationNumber, xtemp, input, residuals))
+ if (iterator.DetermineStatus(iterationNumber, xtemp, input, residuals) != IterationStatus.Continue)
{
// Recalculate the residuals and go round again. This is done to ensure that
// we have the proper residuals.
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/DivergenceStopCriterium.cs b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/DivergenceStopCriterium.cs
index af4fd7ad..66918ab1 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/DivergenceStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/DivergenceStopCriterium.cs
@@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
/// residual may experience before a divergence warning is issued.
///
public const double DefaultMaximumRelativeIncrease = 0.08;
-
+
///
/// Default value for the minimum number of iterations over which
/// the residual must grow before a divergence warning is issued.
@@ -55,32 +55,32 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
/// Defines the default last iteration number. Set to -1 because iterations normally
/// start at 0.
///
- private const int DefaultLastIterationNumber = -1;
+ const int DefaultLastIterationNumber = -1;
///
/// The maximum relative increase the residual may experience without triggering a divergence warning.
///
- private double _maximumRelativeIncrease;
+ double _maximumRelativeIncrease;
///
/// The number of iterations over which a residual increase should be tracked before issuing a divergence warning.
///
- private int _minimumNumberOfIterations;
+ int _minimumNumberOfIterations;
///
/// The status of the calculation
///
- private IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The array that holds the tracking information.
///
- private double[] _residualHistory;
+ double[] _residualHistory;
///
/// The iteration number of the last iteration.
///
- private int _lastIteration = DefaultLastIterationNumber;
+ int _lastIteration = DefaultLastIterationNumber;
///
/// Initializes a new instance of the class with the default maximum
@@ -104,7 +104,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
/// relative increase and the specified minimum number of tracking iterations.
///
/// The minimum number of iterations over which the residual must grow before a divergence warning is issued.
- public DivergenceStopCriterium(int minimumIterations) : this(DefaultMinimumNumberOfIterations, minimumIterations)
+ public DivergenceStopCriterium(int minimumIterations) : this(DefaultMinimumNumberOfIterations, minimumIterations)
{
}
@@ -250,7 +250,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
}
// Check if we are diverging and if so set the status
- _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Running;
+ _status = IsDiverging() ? IterationStatus.Diverged : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -260,7 +260,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
/// Detect if solution is diverging
///
/// true if diverging, otherwise false
- private bool IsDiverging()
+ bool IsDiverging()
{
// Run for each variable
for (var i = 1; i < _residualHistory.Length; i++)
@@ -270,7 +270,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
// Divergence is occurring if:
// - the last residual is larger than the previous one
// - the relative increase of the residual is larger than the setting allows
- if ((difference < 0) || (_residualHistory[i - 1] * (1 + _maximumRelativeIncrease) >= _residualHistory[i]))
+ if ((difference < 0) || (_residualHistory[i - 1]*(1 + _maximumRelativeIncrease) >= _residualHistory[i]))
{
// No divergence taking place within the required number of iterations
// So reset and stop the iteration. There is no way we can get to the
@@ -285,7 +285,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
///
/// Gets required history Length
///
- private int RequiredHistoryLength
+ int RequiredHistoryLength
{
[DebuggerStepThrough]
get
@@ -311,7 +311,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
_residualHistory = null;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/FailureStopCriterium.cs b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/FailureStopCriterium.cs
index a2b117dc..3c46508b 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/FailureStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/FailureStopCriterium.cs
@@ -44,17 +44,17 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
/// Defines the default last iteration number. Set to -1 because iterations normally
/// start at 0.
///
- private const int DefaultLastIterationNumber = -1;
+ const int DefaultLastIterationNumber = -1;
///
/// The status of the calculation
///
- private IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The iteration number of the last iteration.
///
- private int _lastIteration = DefaultLastIterationNumber;
+ int _lastIteration = DefaultLastIterationNumber;
///
/// Determines the status of the iterative calculation based on the stop criteria stored
@@ -92,7 +92,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
var residualNorm = residualVector.InfinityNorm();
var solutionNorm = solutionVector.InfinityNorm();
- _status = float.IsNaN(solutionNorm) || float.IsNaN(residualNorm) ? IterationStatus.Failure : IterationStatus.Running;
+ _status = float.IsNaN(solutionNorm) || float.IsNaN(residualNorm) ? IterationStatus.Failure : IterationStatus.Continue;
_lastIteration = iterationNumber;
return _status;
@@ -115,7 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/ResidualStopCriterium.cs b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/ResidualStopCriterium.cs
index 386ee27f..0540e4a0 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/ResidualStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/StopCriterium/ResidualStopCriterium.cs
@@ -69,7 +69,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// The number of iterations since the residuals got below the maximum.
@@ -260,13 +260,13 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
if (_lastIteration <= iterationNumber)
{
_iterationCount = iterationNumber - _lastIteration;
- _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Running;
+ _status = _iterationCount >= _minimumIterationsBelowMaximum ? IterationStatus.Converged : IterationStatus.Continue;
}
}
else
{
_iterationCount = 0;
- _status = IterationStatus.Running;
+ _status = IterationStatus.Continue;
}
_lastIteration = iterationNumber;
@@ -306,7 +306,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
_iterationCount = 0;
_lastIteration = DefaultLastIterationNumber;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.cs b/src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.cs
index 26a596fe..03f56cce 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.cs
@@ -70,20 +70,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
residual.Add(b, residual);
}
- ///
- /// Determine if calculation should continue
- ///
- /// Number of iterations passed
- /// Result .
- /// Source .
- /// Residual .
- /// true if continue, otherwise false
- static bool ShouldContinue(Iterator iterator, int iterationNumber, Vector result, Vector source, Vector residuals)
- {
- var status = iterator.DetermineStatus(iterationNumber, result, source, residuals);
- return status == IterationStatus.Running || status == IterationStatus.Indetermined;
- }
-
///
/// Is even?
///
@@ -171,7 +157,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
// Start the iteration
var iterationNumber = 0;
- while (ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ while (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) == IterationStatus.Continue)
{
// First part of the step, the even bit
if (IsEven(iterationNumber))
@@ -230,7 +216,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
temp2.CopyTo(x);
// Check convergence and see if we can bail
- if (!ShouldContinue(iterator, iterationNumber, result, input, pseudoResiduals))
+ if (iterator.DetermineStatus(iterationNumber, result, input, pseudoResiduals) != IterationStatus.Continue)
{
// Calculate the real values
preconditioner.Approximate(x, result);
@@ -241,7 +227,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
CalculateTrueResidual(matrix, temp, result, input);
// Now recheck the convergence
- if (!ShouldContinue(iterator, iterationNumber, result, input, temp))
+ if (iterator.DetermineStatus(iterationNumber, result, input, temp) != IterationStatus.Continue)
{
// We're all good now.
return;
diff --git a/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs
index a9b97c60..04778543 100644
--- a/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs
@@ -75,7 +75,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
public IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector)
{
- return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Running;
+ return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Continue;
}
///
@@ -86,7 +86,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
[DebuggerStepThrough]
get
{
- return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Running;
+ return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Continue;
}
}
diff --git a/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs
index 6b97771b..54d59750 100644
--- a/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs
+++ b/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs
@@ -53,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
/// The status of the calculation
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// Initializes a new instance of the class with the default maximum
@@ -130,7 +130,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
throw new ArgumentOutOfRangeException("iterationNumber");
}
- _status = iterationNumber >= _maximumNumberOfIterations ? IterationStatus.StoppedWithoutConvergence : IterationStatus.Running;
+ _status = iterationNumber >= _maximumNumberOfIterations ? IterationStatus.StoppedWithoutConvergence : IterationStatus.Continue;
return _status;
}
@@ -152,7 +152,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
}
///
diff --git a/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs b/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs
index 274b98f2..d70d8360 100644
--- a/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs
+++ b/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs
@@ -35,8 +35,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
public enum IterationStatus
{
- Indetermined = 0,
- Running,
+ Continue = 0,
Converged,
Diverged,
StoppedWithoutConvergence,
diff --git a/src/Numerics/LinearAlgebra/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Solvers/Iterator.cs
index 07371111..a9adcfdc 100644
--- a/src/Numerics/LinearAlgebra/Solvers/Iterator.cs
+++ b/src/Numerics/LinearAlgebra/Solvers/Iterator.cs
@@ -49,7 +49,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
/// The status of the iterator.
///
- IterationStatus _status = IterationStatus.Indetermined;
+ IterationStatus _status = IterationStatus.Continue;
///
/// Initializes a new instance of the class with the specified stop criteria.
@@ -133,13 +133,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
foreach (var stopCriterium in _stopCriteria)
{
var status = stopCriterium.DetermineStatus(iterationNumber, solutionVector, sourceVector, residualVector);
-
- // Check if the status is:
- // - Running --> keep going
- // - Indetermined --> keep going
- // Anything else:
- // Stop looping and set that status
- if ((status == IterationStatus.Running) || (status == IterationStatus.Indetermined))
+ if (status == IterationStatus.Continue)
{
continue;
}
@@ -150,7 +144,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
// Got all the way through
// So we're running because we had vectors passed to us.
- _status = IterationStatus.Running;
+ _status = IterationStatus.Continue;
return _status;
}
@@ -171,7 +165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
///
public void Reset()
{
- _status = IterationStatus.Indetermined;
+ _status = IterationStatus.Continue;
foreach (var stopCriterium in _stopCriteria)
{
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs
index ae7e5358..ace973d2 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs
@@ -102,7 +102,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
// Second step, should run out of iterations.
iterator.DetermineStatus(
@@ -134,13 +134,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
iterator.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, iterator.Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[0].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[1].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[2].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[0].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[1].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[2].Status, "Incorrect status");
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
index 3a89ea90..135f7dcb 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
@@ -139,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
new DenseVector(new[] {new Complex(1.0, 0)}),
new DenseVector(new[] {new Complex((i + 1)*(Increase + 0.1), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -163,7 +163,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
new DenseVector(new[] {new Complex(1.0, 0)}),
new DenseVector(new[] {new Complex((i + 1)*(Increase - 0.01), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -187,7 +187,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
new DenseVector(new[] {new Complex(1.0, 0)}),
new DenseVector(new[] {new Complex((i + 1)*(Increase - 0.01), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Now make it fail by throwing in a NaN
@@ -222,7 +222,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
new DenseVector(new[] {new Complex(1.0, 0)}),
new DenseVector(new[] {new Complex(previous, 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Add the final residual. Now we should have divergence
@@ -261,7 +261,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count");
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail.");
}
///
@@ -282,11 +282,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
var clonedCriterium = clone as DivergenceStopCriterium;
Assert.IsNotNull(clonedCriterium);
- // ReSharper disable PossibleNullReferenceException
Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count");
-
- // ReSharper restore PossibleNullReferenceException
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs
index a8cb630d..41756825 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs
@@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
var residual = new DenseVector(new[] {new Complex(1.0, 0), new Complex(2.0, 0), new Complex(3, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
}
///
@@ -143,10 +143,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
var residual = new DenseVector(new[] {new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
index bca21dc9..c307ec3a 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
@@ -99,7 +99,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
var status2 = criterium.DetermineStatus(10, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished");
@@ -115,10 +115,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
index 536bda16..90126415 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
@@ -239,7 +239,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
var residual = new DenseVector(new[] {new Complex(0.001, 0), new Complex(0.001, 0), new Complex(0.002, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should still be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should still be running");
var status2 = criterium.DetermineStatus(16, solution, source, residual);
Assert.AreEqual(IterationStatus.Converged, status2, "Should be done");
@@ -259,10 +259,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit
var residual = new DenseVector(new[] {new Complex(1.000, 0), new Complex(1.000, 0), new Complex(2.001, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs
index 331d9b48..8a4384f4 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs
@@ -102,7 +102,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
// Second step, should run out of iterations.
iterator.DetermineStatus(
@@ -134,13 +134,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
iterator.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, iterator.Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[0].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[1].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[2].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[0].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[1].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[2].Status, "Incorrect status");
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
index 96e1ac4a..33225b8d 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
@@ -138,7 +138,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
new DenseVector(new[] {new Complex32(1.0f, 0)}),
new DenseVector(new[] {new Complex32(1.0f, 0)}),
new DenseVector(new[] {new Complex32((i + 1)*(Increase + 0.1f), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -162,7 +162,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
new DenseVector(new[] {new Complex32(1.0f, 0)}),
new DenseVector(new[] {new Complex32((i + 1)*(Increase - 0.01f), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -186,7 +186,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
new DenseVector(new[] {new Complex32(1.0f, 0)}),
new DenseVector(new[] {new Complex32((i + 1)*(Increase - 0.01f), 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Now make it fail by throwing in a NaN
@@ -221,7 +221,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
new DenseVector(new[] {new Complex32(1.0f, 0)}),
new DenseVector(new[] {new Complex32(previous, 0)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Add the final residual. Now we should have divergence
@@ -260,7 +260,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count");
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail.");
}
///
@@ -281,11 +281,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
var clonedCriterium = clone as DivergenceStopCriterium;
Assert.IsNotNull(clonedCriterium);
- // ReSharper disable PossibleNullReferenceException
Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count");
-
- // ReSharper restore PossibleNullReferenceException
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs
index 1f0e8232..3890d85d 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs
@@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
var residual = new DenseVector(new[] {new Complex32(1.0f, 0), new Complex32(2.0f, 0), new Complex32(3, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
}
///
@@ -143,10 +143,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
var residual = new DenseVector(new[] {new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
index ddef76be..e01c8b9f 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
@@ -99,7 +99,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
var status2 = criterium.DetermineStatus(10, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished");
@@ -115,10 +115,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
index 727a83ba..5612f337 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
@@ -239,7 +239,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
var residual = new DenseVector(new[] {new Complex32(0.001f, 0), new Complex32(0.001f, 0), new Complex32(0.002f, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should still be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should still be running");
var status2 = criterium.DetermineStatus(16, solution, source, residual);
Assert.AreEqual(IterationStatus.Converged, status2, "Should be done");
@@ -259,10 +259,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr
var residual = new DenseVector(new[] {new Complex32(1.000f, 0), new Complex32(1.000f, 0), new Complex32(2.001f, 0)});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs
index 67e79eb1..2c5e04de 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs
@@ -100,7 +100,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
// Second step, should run out of iterations.
iterator.DetermineStatus(
@@ -132,13 +132,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
iterator.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, iterator.Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[0].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[1].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[2].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[0].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[1].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[2].Status, "Incorrect status");
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
index 72f07284..8170e185 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
@@ -137,7 +137,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
new DenseVector(new[] {1.0}),
new DenseVector(new[] {(i + 1)*(Increase + 0.1)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -161,7 +161,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
new DenseVector(new[] {1.0}),
new DenseVector(new[] {(i + 1)*(Increase - 0.01)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -185,7 +185,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
new DenseVector(new[] {1.0}),
new DenseVector(new[] {(i + 1)*(Increase - 0.01)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Now make it fail by throwing in a NaN
@@ -220,7 +220,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
new DenseVector(new[] {1.0}),
new DenseVector(new[] {previous}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Add the final residual. Now we should have divergence
@@ -259,7 +259,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count");
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail.");
}
///
@@ -280,11 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
var clonedCriterium = clone as DivergenceStopCriterium;
Assert.IsNotNull(clonedCriterium);
- // ReSharper disable PossibleNullReferenceException
Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count");
-
- // ReSharper restore PossibleNullReferenceException
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs
index 0d5c91ad..79ae6981 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs
@@ -124,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
var residual = new DenseVector(new[] { 1.0, 2.0, 3.0 });
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
}
///
@@ -141,10 +141,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 });
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
index e104384f..daad3e1e 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
@@ -97,7 +97,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
var status2 = criterium.DetermineStatus(10, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished");
@@ -113,10 +113,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
index 65476a09..9098f2e3 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
@@ -233,7 +233,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
var residual = new DenseVector(new[] {0.001, 0.001, 0.002});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should still be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should still be running");
var status2 = criterium.DetermineStatus(16, solution, source, residual);
Assert.AreEqual(IterationStatus.Converged, status2, "Should be done");
@@ -253,10 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite
var residual = new DenseVector(new[] {1.000, 1.000, 2.001});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs
index 41fd2e70..03a1a66c 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs
@@ -100,7 +100,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
// Second step, should run out of iterations.
iterator.DetermineStatus(
@@ -132,13 +132,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4),
DenseVector.Create(3, i => 4));
- Assert.AreEqual(IterationStatus.Running, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
iterator.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, iterator.Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[0].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[1].Status, "Incorrect status");
- Assert.AreEqual(IterationStatus.Indetermined, criteria[2].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, iterator.Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[0].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[1].Status, "Incorrect status");
+ Assert.AreEqual(IterationStatus.Continue, criteria[2].Status, "Incorrect status");
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
index f89cea99..7d81c140 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs
@@ -137,7 +137,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
new DenseVector(new[] {1.0f}),
new DenseVector(new[] {(i + 1)*(Increase + 0.1f)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -161,7 +161,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
new DenseVector(new[] {1.0f}),
new DenseVector(new[] {(i + 1)*(Increase - 0.01f)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
}
@@ -185,7 +185,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
new DenseVector(new[] {1.0f}),
new DenseVector(new[] {(i + 1)*(Increase - 0.01f)}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Now make it fail by throwing in a NaN
@@ -220,7 +220,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
new DenseVector(new[] {1.0f}),
new DenseVector(new[] {previous}));
- Assert.AreEqual(IterationStatus.Running, status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, status, "Status check fail.");
}
// Add the final residual. Now we should have divergence
@@ -259,7 +259,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count");
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Status check fail.");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail.");
}
///
@@ -280,11 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
var clonedCriterium = clone as DivergenceStopCriterium;
Assert.IsNotNull(clonedCriterium);
- // ReSharper disable PossibleNullReferenceException
Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum");
Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count");
-
- // ReSharper restore PossibleNullReferenceException
}
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs
index ba04813a..092a1125 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs
@@ -124,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
var residual = new DenseVector(new[] {1.0f, 2.0f, 3.0f});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
}
///
@@ -141,10 +141,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
index 3b92f738..3fd7a712 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs
@@ -97,7 +97,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
var status2 = criterium.DetermineStatus(10, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished");
@@ -113,10 +113,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
Assert.IsNotNull(criterium, "A criterium should have been created");
var status = criterium.DetermineStatus(5, DenseVector.Create(3, i => 1), DenseVector.Create(3, i => 2), DenseVector.Create(3, i => 3));
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///
diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
index e0099ed9..a817dc0a 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs
@@ -233,7 +233,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
var residual = new DenseVector(new[] {0.001f, 0.001f, 0.002f});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should still be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should still be running");
var status2 = criterium.DetermineStatus(16, solution, source, residual);
Assert.AreEqual(IterationStatus.Converged, status2, "Should be done");
@@ -253,10 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite
var residual = new DenseVector(new[] {1.000f, 1.000f, 2.001f});
var status = criterium.DetermineStatus(5, solution, source, residual);
- Assert.AreEqual(IterationStatus.Running, status, "Should be running");
+ Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
criterium.Reset();
- Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started");
+ Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started");
}
///