diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/IIterativeSolver.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/IIterativeSolver.cs
index 0aac6a61..cbe09f7e 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/IIterativeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/IIterativeSolver.cs
@@ -28,6 +28,7 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
@@ -57,7 +58,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- void SetIterator(IIterator iterator);
+ void SetIterator(IIterator iterator);
///
/// Gets the status of the iteration once the calculation is finished.
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/IIterator.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/IIterator.cs
deleted file mode 100644
index 8487d3a4..00000000
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/IIterator.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Math.NET Numerics, part of the Math.NET Project
-// http://numerics.mathdotnet.com
-// http://github.com/mathnet/mathnet-numerics
-// http://mathnetnumerics.codeplex.com
-//
-// Copyright (c) 2009-2010 Math.NET
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
-
-namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
-{
-
-#if NOSYSNUMERICS
- using Complex = Numerics.Complex;
-#else
- using Complex = System.Numerics.Complex;
-#endif
-
- ///
- /// Defines the base interface for iterators that help control an iterative calculation.
- ///
- public interface IIterator
- {
- ///
- /// Adds an to the internal collection of stop-criteria. Only a
- /// single stop criterium of each type can be stored.
- ///
- /// The stop criterium to add.
- /// Thrown if is .
- /// Thrown if is of the same type as an already stored criterium.
- void Add(IIterationStopCriterium stopCriterium);
-
- ///
- /// Removes the from the internal collection.
- ///
- /// The stop criterium that must be removed.
- void Remove(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates if the specific stop criterium is stored by the .
- ///
- /// The stop criterium.
- /// true if the contains the stop criterium; otherwise false.
- bool Contains(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates to the iterator that the iterative process has been cancelled.
- ///
- /// Does not reset the stop-criteria.
- void IterationCancelled();
-
- ///
- /// Determines the status of the iterative calculation based on the stop criteria stored
- /// by the current . Status is set to Status field of current object.
- ///
- /// The number of iterations that have passed so far.
- /// The vector containing the current solution values.
- /// The right hand side vector.
- /// The vector containing the current residual vectors.
- ///
- /// The individual iterators may internally track the progress of the calculation based
- /// on the invocation of this method. Therefore this method should only be called if the
- /// calculation has moved forwards at least one step.
- ///
- void DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector);
-
- ///
- /// Gets the current calculation status.
- ///
- /// is not a legal value. Status should be set in implementation..
- ICalculationStatus Status { get; }
-
- ///
- /// Resets the to the pre-calculation state.
- ///
- ///
- /// Note to implementers: Invoking this method should not clear the user defined
- /// property values, only the state that is used to track the progress of the
- /// calculation.
- ///
- void ResetToPrecalculationState();
-
- IIterator Clone();
- }
-}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/BiCgStab.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/BiCgStab.cs
index 6d85b9b2..89c0c9e7 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/BiCgStab.cs
@@ -28,9 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using System;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
@@ -89,7 +90,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -127,7 +128,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public BiCgStab(IIterator iterator)
+ public BiCgStab(IIterator iterator)
: this(null, iterator)
{
}
@@ -162,7 +163,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -181,7 +182,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/CompositeSolver.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/CompositeSolver.cs
index 77208b91..1aed113d 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/CompositeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/CompositeSolver.cs
@@ -28,13 +28,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.Properties;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
+using MathNet.Numerics.LinearAlgebra.Solvers;
+using MathNet.Numerics.LinearAlgebra.Solvers.Status;
+using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
{
@@ -349,7 +350,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The iterator that is used to control the iteration process.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// A flag indicating if the solver has been stopped or not.
@@ -373,7 +374,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Initializes a new instance of the class with the specified iterator.
///
/// The iterator that will be used to control the iteration process.
- public CompositeSolver(IIterator iterator)
+ public CompositeSolver(IIterator iterator)
{
_iterator = iterator;
}
@@ -382,7 +383,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Sets the IIterator that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/GpBiCg.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/GpBiCg.cs
index 88de1d88..d3be8fe1 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/GpBiCg.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
{
@@ -87,7 +88,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates the number of BiCGStab steps should be taken
@@ -137,7 +138,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public GpBiCg(IIterator iterator)
+ public GpBiCg(IIterator iterator)
: this(null, iterator)
{
}
@@ -172,7 +173,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
+ public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -229,7 +230,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/MlkBiCgStab.cs
index bb8138bd..0da5d2b1 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/MlkBiCgStab.cs
@@ -34,6 +34,7 @@ using System.Diagnostics;
using System.Linq;
using MathNet.Numerics.Distributions;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
@@ -92,7 +93,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// The collection of starting vectors which are used as the basis for the Krylov sub-space.
@@ -140,7 +141,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IIterator iterator)
+ public MlkBiCgStab(IIterator iterator)
: this(null, iterator)
{
}
@@ -175,7 +176,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -226,7 +227,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/TFQMR.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/TFQMR.cs
index 9451e49f..6d83d4d2 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/TFQMR.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
{
@@ -77,7 +78,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -115,7 +116,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public TFQMR(IIterator iterator)
+ public TFQMR(IIterator iterator)
: this(null, iterator)
{
}
@@ -150,7 +151,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public TFQMR(IPreConditioner preconditioner, IIterator iterator)
+ public TFQMR(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -169,7 +170,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterator.cs
index d0f5e9c9..9d0964b7 100644
--- a/src/Numerics/LinearAlgebra/Complex/Solvers/Iterator.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Solvers/Iterator.cs
@@ -32,6 +32,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
using MathNet.Numerics.Properties;
@@ -48,7 +49,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
///
/// An iterator that is used to check if an iterative calculation should continue or stop.
///
- public sealed class Iterator : IIterator
+ public sealed class Iterator : IIterator
{
///
/// The default status for the iterator.
@@ -59,7 +60,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
/// Creates a default iterator with all the objects.
///
/// A new object.
- public static IIterator CreateDefault()
+ public static IIterator CreateDefault()
{
var iterator = new Iterator();
iterator.Add(new FailureStopCriterium());
@@ -313,7 +314,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
/// Creates a deep clone of the current iterator.
///
/// The deep clone of the current iterator.
- public IIterator Clone()
+ public IIterator Clone()
{
var stopCriteria = _stopCriterias.Select(pair => pair.Value).Select(stopCriterium => stopCriterium.Clone()).ToList();
return new Iterator(stopCriteria);
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterativeSolver.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterativeSolver.cs
index ea4ca6de..53431dd0 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterativeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterativeSolver.cs
@@ -28,6 +28,7 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
@@ -52,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- void SetIterator(IIterator iterator);
+ void SetIterator(IIterator iterator);
///
/// Gets the status of the iteration once the calculation is finished.
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterator.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterator.cs
deleted file mode 100644
index 04e937ac..00000000
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/IIterator.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Math.NET Numerics, part of the Math.NET Project
-// http://numerics.mathdotnet.com
-// http://github.com/mathnet/mathnet-numerics
-// http://mathnetnumerics.codeplex.com
-//
-// Copyright (c) 2009-2010 Math.NET
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
-
-namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
-{
- using Numerics;
-
- ///
- /// Defines the base interface for iterators that help control an iterative calculation.
- ///
- public interface IIterator
- {
- ///
- /// Adds an to the internal collection of stop-criteria. Only a
- /// single stop criterium of each type can be stored.
- ///
- /// The stop criterium to add.
- /// Thrown if is .
- /// Thrown if is of the same type as an already stored criterium.
- void Add(IIterationStopCriterium stopCriterium);
-
- ///
- /// Removes the from the internal collection.
- ///
- /// The stop criterium that must be removed.
- void Remove(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates if the specific stop criterium is stored by the .
- ///
- /// The stop criterium.
- /// true if the contains the stop criterium; otherwise false.
- bool Contains(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates to the iterator that the iterative process has been cancelled.
- ///
- /// Does not reset the stop-criteria.
- void IterationCancelled();
-
- ///
- /// Determines the status of the iterative calculation based on the stop criteria stored
- /// by the current . Status is set to Status field of current object.
- ///
- /// The number of iterations that have passed so far.
- /// The vector containing the current solution values.
- /// The right hand side vector.
- /// The vector containing the current residual vectors.
- ///
- /// The individual iterators may internally track the progress of the calculation based
- /// on the invocation of this method. Therefore this method should only be called if the
- /// calculation has moved forwards at least one step.
- ///
- void DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector);
-
- ///
- /// Gets the current calculation status.
- ///
- /// is not a legal value. Status should be set in implementation..
- ICalculationStatus Status { get; }
-
- ///
- /// Resets the to the pre-calculation state.
- ///
- ///
- /// Note to implementers: Invoking this method should not clear the user defined
- /// property values, only the state that is used to track the progress of the
- /// calculation.
- ///
- void ResetToPrecalculationState();
-
- IIterator Clone();
- }
-}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/BiCgStab.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/BiCgStab.cs
index dbf8ecdd..a80d2eb0 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/BiCgStab.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
{
@@ -83,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -121,7 +122,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public BiCgStab(IIterator iterator)
+ public BiCgStab(IIterator iterator)
: this(null, iterator)
{
}
@@ -156,7 +157,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -175,7 +176,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/CompositeSolver.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/CompositeSolver.cs
index 80c03a18..e131a836 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/CompositeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/CompositeSolver.cs
@@ -28,13 +28,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.Properties;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
+using MathNet.Numerics.LinearAlgebra.Solvers;
+using MathNet.Numerics.LinearAlgebra.Solvers.Status;
+using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
{
@@ -344,7 +345,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The iterator that is used to control the iteration process.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// A flag indicating if the solver has been stopped or not.
@@ -368,7 +369,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Initializes a new instance of the class with the specified iterator.
///
/// The iterator that will be used to control the iteration process.
- public CompositeSolver(IIterator iterator)
+ public CompositeSolver(IIterator iterator)
{
_iterator = iterator;
}
@@ -377,7 +378,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the IIterator that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/GpBiCg.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/GpBiCg.cs
index 27db32fa..7799cb11 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/GpBiCg.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
{
@@ -81,7 +82,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates the number of BiCGStab steps should be taken
@@ -131,7 +132,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public GpBiCg(IIterator iterator)
+ public GpBiCg(IIterator iterator)
: this(null, iterator)
{
}
@@ -166,7 +167,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
+ public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -223,7 +224,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/MlkBiCgStab.cs
index 97eb95f5..1b6a631e 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/MlkBiCgStab.cs
@@ -34,6 +34,7 @@ using System.Diagnostics;
using System.Linq;
using MathNet.Numerics.Distributions;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
@@ -86,7 +87,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// The collection of starting vectors which are used as the basis for the Krylov sub-space.
@@ -134,7 +135,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IIterator iterator)
+ public MlkBiCgStab(IIterator iterator)
: this(null, iterator)
{
}
@@ -169,7 +170,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -220,7 +221,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/TFQMR.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/TFQMR.cs
index 216bea34..402bf1cc 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/TFQMR.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
{
@@ -71,7 +72,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -109,7 +110,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public TFQMR(IIterator iterator)
+ public TFQMR(IIterator iterator)
: this(null, iterator)
{
}
@@ -144,7 +145,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public TFQMR(IPreConditioner preconditioner, IIterator iterator)
+ public TFQMR(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -163,7 +164,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterator.cs
index 13432126..8d0cd0c4 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterator.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Solvers/Iterator.cs
@@ -32,6 +32,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
using MathNet.Numerics.Properties;
@@ -43,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
///
/// An iterator that is used to check if an iterative calculation should continue or stop.
///
- public sealed class Iterator : IIterator
+ public sealed class Iterator : IIterator
{
///
/// The default status for the iterator.
@@ -54,7 +55,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
/// Creates a default iterator with all the objects.
///
/// A new object.
- public static IIterator CreateDefault()
+ public static IIterator CreateDefault()
{
var iterator = new Iterator();
iterator.Add(new FailureStopCriterium());
@@ -308,7 +309,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
/// Creates a deep clone of the current iterator.
///
/// The deep clone of the current iterator.
- public IIterator Clone()
+ public IIterator Clone()
{
var stopCriteria = _stopCriterias.Select(pair => pair.Value).Select(stopCriterium => stopCriterium.Clone()).ToList();
return new Iterator(stopCriteria);
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/IIterativeSolver.cs b/src/Numerics/LinearAlgebra/Double/Solvers/IIterativeSolver.cs
index a717f56a..6f2c2fe3 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/IIterativeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/IIterativeSolver.cs
@@ -28,6 +28,7 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
@@ -50,7 +51,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- void SetIterator(IIterator iterator);
+ void SetIterator(IIterator iterator);
///
/// Gets the status of the iteration once the calculation is finished.
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/BiCgStab.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/BiCgStab.cs
index 3332750e..ed65645c 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/BiCgStab.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
{
@@ -81,7 +82,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -118,7 +119,8 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public BiCgStab(IIterator iterator) : this(null, iterator)
+ public BiCgStab(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -151,7 +153,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -170,7 +172,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/CompositeSolver.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/CompositeSolver.cs
index 60e27db0..76b815bf 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/CompositeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/CompositeSolver.cs
@@ -28,13 +28,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.Properties;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
+using MathNet.Numerics.LinearAlgebra.Solvers;
+using MathNet.Numerics.LinearAlgebra.Solvers.Status;
+using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
{
@@ -339,7 +340,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The iterator that is used to control the iteration process.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// A flag indicating if the solver has been stopped or not.
@@ -363,7 +364,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Initializes a new instance of the class with the specified iterator.
///
/// The iterator that will be used to control the iteration process.
- public CompositeSolver(IIterator iterator)
+ public CompositeSolver(IIterator iterator)
{
_iterator = iterator;
}
@@ -372,7 +373,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/GpBiCg.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/GpBiCg.cs
index 6ade9c87..222724de 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/GpBiCg.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
{
@@ -79,7 +80,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// Indicates the number of BiCGStab steps should be taken
@@ -128,7 +129,8 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public GpBiCg(IIterator iterator) : this(null, iterator)
+ public GpBiCg(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -161,7 +163,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
+ public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -224,7 +226,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/MlkBiCgStab.cs
index 0e0a9771..8f2c89ad 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/MlkBiCgStab.cs
@@ -34,6 +34,7 @@ using System.Diagnostics;
using System.Linq;
using MathNet.Numerics.Distributions;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
@@ -84,7 +85,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// The collection of starting vectors which are used as the basis for the Krylov sub-space.
@@ -131,7 +132,8 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IIterator iterator) : this(null, iterator)
+ public MlkBiCgStab(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -164,7 +166,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -218,7 +220,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/TFQMR.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/TFQMR.cs
index 77e1a85f..34cc2a58 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterative/TFQMR.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
{
@@ -69,7 +70,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -106,7 +107,8 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public TFQMR(IIterator iterator) : this(null, iterator)
+ public TFQMR(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -139,7 +141,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public TFQMR(IPreConditioner preconditioner, IIterator iterator)
+ public TFQMR(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -158,7 +160,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Double/Solvers/Iterator.cs
index bf5fbf15..02a5d47b 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/Iterator.cs
+++ b/src/Numerics/LinearAlgebra/Double/Solvers/Iterator.cs
@@ -32,6 +32,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
using MathNet.Numerics.Properties;
@@ -41,7 +42,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
///
/// An iterator that is used to check if an iterative calculation should continue or stop.
///
- public sealed class Iterator : IIterator
+ public sealed class Iterator : IIterator
{
///
/// The default status for the iterator.
@@ -52,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
/// Creates a default iterator with all the objects.
///
/// A new object.
- public static IIterator CreateDefault()
+ public static IIterator CreateDefault()
{
var iterator = new Iterator();
iterator.Add(new FailureStopCriterium());
@@ -306,7 +307,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
/// Creates a deep clone of the current iterator.
///
/// The deep clone of the current iterator.
- public IIterator Clone()
+ public IIterator Clone()
{
var stopCriteria = _stopCriterias.Select(pair => pair.Value).Select(stopCriterium => stopCriterium.Clone()).ToList();
return new Iterator(stopCriteria);
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/IIterativeSolver.cs b/src/Numerics/LinearAlgebra/Single/Solvers/IIterativeSolver.cs
index d77e1a8a..efce1c3d 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/IIterativeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/IIterativeSolver.cs
@@ -28,6 +28,7 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
@@ -50,7 +51,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- void SetIterator(IIterator iterator);
+ void SetIterator(IIterator iterator);
///
/// Gets the status of the iteration once the calculation is finished.
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/IIterator.cs b/src/Numerics/LinearAlgebra/Single/Solvers/IIterator.cs
deleted file mode 100644
index 63771847..00000000
--- a/src/Numerics/LinearAlgebra/Single/Solvers/IIterator.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-//
-// Math.NET Numerics, part of the Math.NET Project
-// http://numerics.mathdotnet.com
-// http://github.com/mathnet/mathnet-numerics
-// http://mathnetnumerics.codeplex.com
-//
-// Copyright (c) 2009-2010 Math.NET
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
-
-namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
-{
- ///
- /// Defines the base interface for iterators that help control an iterative calculation.
- ///
- public interface IIterator
- {
- ///
- /// Adds an to the internal collection of stop-criteria. Only a
- /// single stop criterium of each type can be stored.
- ///
- /// The stop criterium to add.
- /// Thrown if is .
- /// Thrown if is of the same type as an already stored criterium.
- void Add(IIterationStopCriterium stopCriterium);
-
- ///
- /// Removes the from the internal collection.
- ///
- /// The stop criterium that must be removed.
- void Remove(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates if the specific stop criterium is stored by the .
- ///
- /// The stop criterium.
- /// true if the contains the stop criterium; otherwise false.
- bool Contains(IIterationStopCriterium stopCriterium);
-
- ///
- /// Indicates to the iterator that the iterative process has been cancelled.
- ///
- /// Does not reset the stop-criteria.
- void IterationCancelled();
-
- ///
- /// Determines the status of the iterative calculation based on the stop criteria stored
- /// by the current . Status is set to Status field of current object.
- ///
- /// The number of iterations that have passed so far.
- /// The vector containing the current solution values.
- /// The right hand side vector.
- /// The vector containing the current residual vectors.
- ///
- /// The individual iterators may internally track the progress of the calculation based
- /// on the invocation of this method. Therefore this method should only be called if the
- /// calculation has moved forwards at least one step.
- ///
- void DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector);
-
- ///
- /// Gets the current calculation status.
- ///
- /// is not a legal value. Status should be set in implementation..
- ICalculationStatus Status { get; }
-
- ///
- /// Resets the to the pre-calculation state.
- ///
- ///
- /// Note to implementers: Invoking this method should not clear the user defined
- /// property values, only the state that is used to track the progress of the
- /// calculation.
- ///
- void ResetToPrecalculationState();
-
- IIterator Clone();
- }
-}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/BiCgStab.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/BiCgStab.cs
index 73626e54..3a2c996d 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/BiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/BiCgStab.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
{
@@ -81,7 +82,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -118,7 +119,8 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public BiCgStab(IIterator iterator) : this(null, iterator)
+ public BiCgStab(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -151,7 +153,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public BiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -170,7 +172,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/CompositeSolver.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/CompositeSolver.cs
index 642b7559..8a6868b7 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/CompositeSolver.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/CompositeSolver.cs
@@ -28,13 +28,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
-using MathNet.Numerics.Properties;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
+using MathNet.Numerics.LinearAlgebra.Solvers;
+using MathNet.Numerics.LinearAlgebra.Solvers.Status;
+using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
{
@@ -342,7 +343,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The iterator that is used to control the iteration process.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// A flag indicating if the solver has been stopped or not.
@@ -366,7 +367,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Initializes a new instance of the class with the specified iterator.
///
/// The iterator that will be used to control the iteration process.
- public CompositeSolver(IIterator iterator)
+ public CompositeSolver(IIterator iterator)
{
_iterator = iterator;
}
@@ -375,7 +376,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/GpBiCg.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/GpBiCg.cs
index 374e7686..e3718bfe 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/GpBiCg.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/GpBiCg.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
{
@@ -79,7 +80,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates the number of BiCGStab steps should be taken
@@ -129,7 +130,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public GpBiCg(IIterator iterator)
+ public GpBiCg(IIterator iterator)
: this(null, iterator)
{
}
@@ -164,7 +165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
+ public GpBiCg(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -221,7 +222,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/MlkBiCgStab.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/MlkBiCgStab.cs
index d6601a93..a7f6517e 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/MlkBiCgStab.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/MlkBiCgStab.cs
@@ -33,6 +33,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using MathNet.Numerics.Distributions;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
@@ -83,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The iterative process controller.
///
- private IIterator _iterator;
+ private IIterator _iterator;
///
/// The collection of starting vectors which are used as the basis for the Krylov sub-space.
@@ -130,7 +131,8 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IIterator iterator) : this(null, iterator)
+ public MlkBiCgStab(IIterator iterator)
+ : this(null, iterator)
{
}
@@ -163,7 +165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
+ public MlkBiCgStab(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -217,7 +219,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/TFQMR.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/TFQMR.cs
index 0ffe4c0a..5a3917fe 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/TFQMR.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterative/TFQMR.cs
@@ -28,10 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Preconditioners;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
-using System;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
{
@@ -69,7 +70,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The iterative process controller.
///
- IIterator _iterator;
+ IIterator _iterator;
///
/// Indicates if the user has stopped the solver.
@@ -107,7 +108,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
///
/// The that will be used to monitor the iterative process.
- public TFQMR(IIterator iterator)
+ public TFQMR(IIterator iterator)
: this(null, iterator)
{
}
@@ -142,7 +143,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
///
/// The that will be used to precondition the matrix equation.
/// The that will be used to monitor the iterative process.
- public TFQMR(IPreConditioner preconditioner, IIterator iterator)
+ public TFQMR(IPreConditioner preconditioner, IIterator iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@@ -161,7 +162,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
/// Sets the that will be used to track the iterative process.
///
/// The iterator.
- public void SetIterator(IIterator iterator)
+ public void SetIterator(IIterator iterator)
{
_iterator = iterator;
}
diff --git a/src/Numerics/LinearAlgebra/Single/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Single/Solvers/Iterator.cs
index 97c2cda1..7c81ef83 100644
--- a/src/Numerics/LinearAlgebra/Single/Solvers/Iterator.cs
+++ b/src/Numerics/LinearAlgebra/Single/Solvers/Iterator.cs
@@ -32,6 +32,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium;
+using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
using MathNet.Numerics.Properties;
@@ -41,7 +42,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
///
/// An iterator that is used to check if an iterative calculation should continue or stop.
///
- public sealed class Iterator : IIterator
+ public sealed class Iterator : IIterator
{
///
/// The default status for the iterator.
@@ -52,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
/// Creates a default iterator with all the objects.
///
/// A new object.
- public static IIterator CreateDefault()
+ public static IIterator CreateDefault()
{
var iterator = new Iterator();
iterator.Add(new FailureStopCriterium());
@@ -306,7 +307,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
/// Creates a deep clone of the current iterator.
///
/// The deep clone of the current iterator.
- public IIterator Clone()
+ public IIterator Clone()
{
var stopCriteria = _stopCriterias.Select(pair => pair.Value).Select(stopCriterium => stopCriterium.Clone()).ToList();
return new Iterator(stopCriteria);
diff --git a/src/Numerics/LinearAlgebra/Double/Solvers/IIterator.cs b/src/Numerics/LinearAlgebra/Solvers/IIterator.cs
similarity index 83%
rename from src/Numerics/LinearAlgebra/Double/Solvers/IIterator.cs
rename to src/Numerics/LinearAlgebra/Solvers/IIterator.cs
index b810c4e7..258c0415 100644
--- a/src/Numerics/LinearAlgebra/Double/Solvers/IIterator.cs
+++ b/src/Numerics/LinearAlgebra/Solvers/IIterator.cs
@@ -4,7 +4,7 @@
// http://github.com/mathnet/mathnet-numerics
// http://mathnetnumerics.codeplex.com
//
-// Copyright (c) 2009-2010 Math.NET
+// Copyright (c) 2009-2013 Math.NET
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
@@ -28,16 +28,16 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
-using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using System;
+using MathNet.Numerics.LinearAlgebra.Solvers.Status;
+using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;
-namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
+namespace MathNet.Numerics.LinearAlgebra.Solvers
{
///
/// Defines the base interface for iterators that help control an iterative calculation.
///
- public interface IIterator
+ public interface IIterator where T : struct, IEquatable, IFormattable
{
///
/// Adds an to the internal collection of stop-criteria. Only a
@@ -46,20 +46,20 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
/// The stop criterium to add.
/// Thrown if is .
/// Thrown if is of the same type as an already stored criterium.
- void Add(IIterationStopCriterium stopCriterium);
+ void Add(IIterationStopCriterium stopCriterium);
///
/// Removes the from the internal collection.
///
/// The stop criterium that must be removed.
- void Remove(IIterationStopCriterium stopCriterium);
+ void Remove(IIterationStopCriterium stopCriterium);
///
- /// Indicates if the specific stop criterium is stored by the .
+ /// Indicates if the specific stop criterium is stored by the .
///
/// The stop criterium.
- /// true if the contains the stop criterium; otherwise false.
- bool Contains(IIterationStopCriterium stopCriterium);
+ /// true if the contains the stop criterium; otherwise false.
+ bool Contains(IIterationStopCriterium stopCriterium);
///
/// Indicates to the iterator that the iterative process has been cancelled.
@@ -69,7 +69,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
///
/// Determines the status of the iterative calculation based on the stop criteria stored
- /// by the current . Status is set to Status field of current object.
+ /// by the current . Status is set to Status field of current object.
///
/// The number of iterations that have passed so far.
/// The vector containing the current solution values.
@@ -80,7 +80,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
/// on the invocation of this method. Therefore this method should only be called if the
/// calculation has moved forwards at least one step.
///
- void DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector);
+ void DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector);
///
/// Gets the current calculation status.
@@ -89,7 +89,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
ICalculationStatus Status { get; }
///
- /// Resets the to the pre-calculation state.
+ /// Resets the to the pre-calculation state.
///
///
/// Note to implementers: Invoking this method should not clear the user defined
@@ -98,6 +98,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
///
void ResetToPrecalculationState();
- IIterator Clone();
+ IIterator Clone();
}
}
diff --git a/src/Numerics/Numerics.csproj b/src/Numerics/Numerics.csproj
index 1b926c4f..5750b17e 100644
--- a/src/Numerics/Numerics.csproj
+++ b/src/Numerics/Numerics.csproj
@@ -192,7 +192,6 @@
-
@@ -211,7 +210,6 @@
-
@@ -227,7 +225,7 @@
-
+
@@ -318,7 +316,6 @@
-