Browse Source

LA: Simplify iterative solver implementation namespaces

pull/163/head
Christoph Ruegg 13 years ago
parent
commit
563baac19d
  1. 8
      src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs
  2. 8
      src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs
  3. 8
      src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs
  4. 8
      src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs
  5. 8
      src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs
  6. 11
      src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs
  7. 4
      src/Numerics/LinearAlgebra/Complex/Solvers/CompositeSolver.cs
  8. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs
  9. 4
      src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs
  10. 4
      src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs
  11. 40
      src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.cs
  12. 36
      src/Numerics/LinearAlgebra/Complex32/Solvers/CompositeSolver.cs
  13. 40
      src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.cs
  14. 54
      src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.cs
  15. 40
      src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.cs
  16. 4
      src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.cs
  17. 4
      src/Numerics/LinearAlgebra/Double/Solvers/CompositeSolver.cs
  18. 4
      src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.cs
  19. 2
      src/Numerics/LinearAlgebra/Double/Solvers/Iterator.cs
  20. 4
      src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.cs
  21. 4
      src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.cs
  22. 4
      src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.cs
  23. 4
      src/Numerics/LinearAlgebra/Single/Solvers/CompositeSolver.cs
  24. 4
      src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.cs
  25. 4
      src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.cs
  26. 4
      src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.cs
  27. 40
      src/Numerics/Numerics.csproj
  28. 2
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs
  29. 2
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs
  30. 2
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs
  31. 2
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs
  32. 2
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs
  33. 2
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs
  34. 2
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs
  35. 2
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs
  36. 2
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs
  37. 2
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs
  38. 2
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs
  39. 2
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs
  40. 2
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs
  41. 2
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs
  42. 2
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs
  43. 2
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs

8
src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs

@ -3,7 +3,9 @@
// http://numerics.mathdotnet.com
// 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
// files (the "Software"), to deal in the Software without
@ -12,8 +14,10 @@
// 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
@ -27,7 +31,7 @@
using System;
using System.Globalization;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;

8
src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs

@ -3,7 +3,9 @@
// http://numerics.mathdotnet.com
// 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
// files (the "Software"), to deal in the Software without
@ -12,8 +14,10 @@
// 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
@ -28,7 +32,7 @@ using System;
using System.Globalization;
using System.Reflection;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;

8
src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs

@ -3,7 +3,9 @@
// http://numerics.mathdotnet.com
// 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
// files (the "Software"), to deal in the Software without
@ -12,8 +14,10 @@
// 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
@ -27,7 +31,7 @@
using System;
using System.Globalization;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;

8
src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs

@ -3,7 +3,9 @@
// http://numerics.mathdotnet.com
// 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
// files (the "Software"), to deal in the Software without
@ -12,8 +14,10 @@
// 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
@ -27,7 +31,7 @@
using System;
using System.Globalization;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;

8
src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs

@ -3,7 +3,9 @@
// http://numerics.mathdotnet.com
// 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
// files (the "Software"), to deal in the Software without
@ -12,8 +14,10 @@
// 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
@ -27,7 +31,7 @@
using System;
using System.Globalization;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.StopCriterium;

11
src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/BiCgStab.cs → src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.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
@ -34,14 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
@ -140,7 +139,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// When using this constructor the solver will use the <see cref="IIterator{T}"/> with
/// the standard settings.
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
/// <param name="preconditioner">The <see cref="IPreConditioner{T}"/> that will be used to precondition the matrix equation.</param>
public BiCgStab(IPreConditioner<Complex> preconditioner)
: this(preconditioner, null)
{
@ -161,7 +160,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
/// </list>
/// </para>
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation. </param>
/// <param name="preconditioner">The <see cref="IPreConditioner{T}"/> that will be used to precondition the matrix equation. </param>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process. </param>
public BiCgStab(IPreConditioner<Complex> preconditioner, IIterator<Complex> iterator)
{
@ -170,7 +169,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
}
/// <summary>
/// Sets the <see cref="IPreConditioner"/> that will be used to precondition the iterative process.
/// Sets the <see cref="IPreConditioner{T}"/> that will be used to precondition the iterative process.
/// </summary>
/// <param name="preconditioner">The preconditioner.</param>
public void SetPreconditioner(IPreConditioner<Complex> preconditioner)

4
src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/CompositeSolver.cs → src/Numerics/LinearAlgebra/Complex/Solvers/CompositeSolver.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
@ -37,7 +37,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS

5
src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/GpBiCg.cs → src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.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
@ -34,14 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>

4
src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/MlkBiCgStab.cs → src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.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
@ -38,7 +38,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS

4
src/Numerics/LinearAlgebra/Complex/Solvers/Iterative/TFQMR.cs → src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS

40
src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/BiCgStab.cs → src/Numerics/LinearAlgebra/Complex32/Solvers/BiCgStab.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
@ -34,10 +34,8 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
{
using Complex32 = Numerics.Complex32;
/// <summary>
/// A Bi-Conjugate Gradient stabilized iterative matrix solver.
/// </summary>
@ -67,7 +65,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// solver.
/// </para>
/// </remarks>
public sealed class BiCgStab : IIterativeSolver<Complex32>
public sealed class BiCgStab : IIterativeSolver<Numerics.Complex32>
{
/// <summary>
/// The status used if there is no status, i.e. the solver hasn't run yet and there is no
@ -79,12 +77,12 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The preconditioner that will be used. Can be set to <see langword="null" />, in which case the default
/// pre-conditioner will be used.
/// </summary>
IPreConditioner<Complex32> _preconditioner;
IPreConditioner<Numerics.Complex32> _preconditioner;
/// <summary>
/// The iterative process controller.
/// </summary>
IIterator<Complex32> _iterator;
IIterator<Numerics.Complex32> _iterator;
/// <summary>
/// Indicates if the user has stopped the solver.
@ -122,7 +120,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </para>
/// </remarks>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process. </param>
public BiCgStab(IIterator<Complex32> iterator)
public BiCgStab(IIterator<Numerics.Complex32> iterator)
: this(null, iterator)
{
}
@ -135,7 +133,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// the standard settings.
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
public BiCgStab(IPreConditioner<Complex32> preconditioner)
public BiCgStab(IPreConditioner<Numerics.Complex32> preconditioner)
: this(preconditioner, null)
{
}
@ -157,7 +155,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation. </param>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process. </param>
public BiCgStab(IPreConditioner<Complex32> preconditioner, IIterator<Complex32> iterator)
public BiCgStab(IPreConditioner<Numerics.Complex32> preconditioner, IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@ -167,7 +165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IPreConditioner"/> that will be used to precondition the iterative process.
/// </summary>
/// <param name="preconditioner">The preconditioner.</param>
public void SetPreconditioner(IPreConditioner<Complex32> preconditioner)
public void SetPreconditioner(IPreConditioner<Numerics.Complex32> preconditioner)
{
_preconditioner = preconditioner;
}
@ -176,7 +174,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IIterator{T}"/> that will be used to track the iterative process.
/// </summary>
/// <param name="iterator">The iterator.</param>
public void SetIterator(IIterator<Complex32> iterator)
public void SetIterator(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -207,7 +205,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient <see cref="Matrix"/>, <c>A</c>.</param>
/// <param name="vector">The solution <see cref="Vector"/>, <c>b</c>.</param>
/// <returns>The result <see cref="Vector"/>, <c>x</c>.</returns>
public Vector<Complex32> Solve(Matrix<Complex32> matrix, Vector<Complex32> vector)
public Vector<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> vector)
{
if (vector == null)
{
@ -226,7 +224,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient <see cref="Matrix"/>, <c>A</c>.</param>
/// <param name="input">The solution <see cref="Vector"/>, <c>b</c>.</param>
/// <param name="result">The result <see cref="Vector"/>, <c>x</c>.</param>
public void Solve(Matrix<Complex32> matrix, Vector<Complex32> input, Vector<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> input, Vector<Numerics.Complex32> result)
{
// If we were stopped before, we are no longer
// We're doing this at the start of the method to ensure
@ -300,9 +298,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
// create some temporary float variables that are needed
// to hold values in between iterations
Complex32 currentRho = 0;
Complex32 alpha = 0;
Complex32 omega = 0;
Numerics.Complex32 currentRho = 0;
Numerics.Complex32 alpha = 0;
Numerics.Complex32 omega = 0;
var iterationNumber = 0;
while (ShouldContinue(iterationNumber, result, input, residuals))
@ -434,7 +432,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="residual">Residual values in <see cref="Vector"/>.</param>
/// <param name="x">Instance of the <see cref="Vector"/> x.</param>
/// <param name="b">Instance of the <see cref="Vector"/> b.</param>
static void CalculateTrueResidual(Matrix<Complex32> matrix, Vector<Complex32> residual, Vector<Complex32> x, Vector<Complex32> b)
static void CalculateTrueResidual(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> residual, Vector<Numerics.Complex32> x, Vector<Numerics.Complex32> b)
{
// -Ax = residual
matrix.Multiply(x, residual);
@ -454,7 +452,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="source">Source <see cref="Vector"/>.</param>
/// <param name="residuals">Residual <see cref="Vector"/>.</param>
/// <returns><c>true</c> if continue, otherwise <c>false</c></returns>
bool ShouldContinue(int iterationNumber, Vector<Complex32> result, Vector<Complex32> source, Vector<Complex32> residuals)
bool ShouldContinue(int iterationNumber, Vector<Numerics.Complex32> result, Vector<Numerics.Complex32> source, Vector<Numerics.Complex32> residuals)
{
if (_hasBeenStopped)
{
@ -478,7 +476,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient <see cref="Matrix"/>, <c>A</c>.</param>
/// <param name="input">The solution <see cref="Matrix"/>, <c>B</c>.</param>
/// <returns>The result <see cref="Matrix"/>, <c>X</c>.</returns>
public Matrix<Complex32> Solve(Matrix<Complex32> matrix, Matrix<Complex32> input)
public Matrix<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input)
{
if (matrix == null)
{
@ -502,7 +500,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient <see cref="Matrix"/>, <c>A</c>.</param>
/// <param name="input">The solution <see cref="Matrix"/>, <c>B</c>.</param>
/// <param name="result">The result <see cref="Matrix"/>, <c>X</c></param>
public void Solve(Matrix<Complex32> matrix, Matrix<Complex32> input, Matrix<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input, Matrix<Numerics.Complex32> result)
{
if (matrix == null)
{

36
src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/CompositeSolver.cs → src/Numerics/LinearAlgebra/Complex32/Solvers/CompositeSolver.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
@ -37,10 +37,8 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
{
using Numerics;
/// <summary>
/// A composite matrix solver. The actual solver is made by a sequence of
/// matrix solvers.
@ -56,7 +54,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Note that if an iterator is passed to this solver it will be used for all the sub-solvers.
/// </para>
/// </remarks>
public sealed class CompositeSolver : IIterativeSolver<Complex32>
public sealed class CompositeSolver : IIterativeSolver<Numerics.Complex32>
{
#region Internal class - DoubleComparer
/// <summary>
@ -103,7 +101,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The collection of iterative solver setups. Stored based on the
/// ratio between the relative speed and relative accuracy.
/// </summary>
private static readonly SortedList<double, List<IIterativeSolverSetup<Complex32>>> SolverSetups = new SortedList<double, List<IIterativeSolverSetup<Complex32>>>(new DoubleComparer());
private static readonly SortedList<double, List<IIterativeSolverSetup<Numerics.Complex32>>> SolverSetups = new SortedList<double, List<IIterativeSolverSetup<Numerics.Complex32>>>(new DoubleComparer());
#endif
#region Solver information loading methods
@ -268,18 +266,18 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
{
interfaceTypes.Clear();
interfaceTypes.AddRange(type.GetInterfaces());
if (!interfaceTypes.Any(match => typeof(IIterativeSolverSetup<Complex32>).IsAssignableFrom(match)))
if (!interfaceTypes.Any(match => typeof(IIterativeSolverSetup<Numerics.Complex32>).IsAssignableFrom(match)))
{
continue;
}
// See if we actually want this type of iterative solver
IIterativeSolverSetup<Complex32> setup;
IIterativeSolverSetup<Numerics.Complex32> setup;
try
{
// If something goes wrong we just ignore it and move on with the next type.
// There should probably be a log somewhere indicating that something went wrong?
setup = (IIterativeSolverSetup<Complex32>)Activator.CreateInstance(type);
setup = (IIterativeSolverSetup<Numerics.Complex32>)Activator.CreateInstance(type);
}
catch (ArgumentException)
{
@ -322,7 +320,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
var ratio = setup.SolutionSpeed / setup.Reliability;
if (!SolverSetups.ContainsKey(ratio))
{
SolverSetups.Add(ratio, new List<IIterativeSolverSetup<Complex32>>());
SolverSetups.Add(ratio, new List<IIterativeSolverSetup<Numerics.Complex32>>());
}
var list = SolverSetups[ratio];
@ -335,7 +333,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <summary>
/// The collection of solvers that will be used to
/// </summary>
private readonly List<IIterativeSolver<Complex32>> _solvers = new List<IIterativeSolver<Complex32>>();
private readonly List<IIterativeSolver<Numerics.Complex32>> _solvers = new List<IIterativeSolver<Numerics.Complex32>>();
/// <summary>
/// The status of the calculation.
@ -345,7 +343,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <summary>
/// The iterator that is used to control the iteration process.
/// </summary>
private IIterator<Complex32> _iterator;
private IIterator<Numerics.Complex32> _iterator;
/// <summary>
/// A flag indicating if the solver has been stopped or not.
@ -356,7 +354,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The solver that is currently running. Reference is used to be able to stop the
/// solver if the user cancels the solve process.
/// </summary>
private IIterativeSolver<Complex32> _currentSolver;
private IIterativeSolver<Numerics.Complex32> _currentSolver;
/// <summary>
/// Initializes a new instance of the <see cref="CompositeSolver"/> class with the default iterator.
@ -369,7 +367,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Initializes a new instance of the <see cref="CompositeSolver"/> class with the specified iterator.
/// </summary>
/// <param name="iterator">The iterator that will be used to control the iteration process. </param>
public CompositeSolver(IIterator<Complex32> iterator)
public CompositeSolver(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -378,7 +376,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <c>IIterator</c> that will be used to track the iterative process.
/// </summary>
/// <param name="iterator">The iterator.</param>
public void SetIterator(IIterator<Complex32> iterator)
public void SetIterator(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -416,7 +414,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="vector">The solution vector, <c>b</c>.</param>
/// <returns>The result vector, <c>x</c>.</returns>
public Vector<Complex32> Solve(Matrix<Complex32> matrix, Vector<Complex32> vector)
public Vector<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> vector)
{
if (vector == null)
{
@ -435,7 +433,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution vector, <c>b</c></param>
/// <param name="result">The result vector, <c>x</c></param>
public void Solve(Matrix<Complex32> matrix, Vector<Complex32> input, Vector<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> input, Vector<Numerics.Complex32> result)
{
// If we were stopped before, we are no longer
// We're doing this at the start of the method to ensure
@ -577,7 +575,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <returns>The result matrix, <c>X</c>.</returns>
public Matrix<Complex32> Solve(Matrix<Complex32> matrix, Matrix<Complex32> input)
public Matrix<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input)
{
if (matrix == null)
{
@ -601,7 +599,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <param name="result">The result matrix, <c>X</c></param>
public void Solve(Matrix<Complex32> matrix, Matrix<Complex32> input, Matrix<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input, Matrix<Numerics.Complex32> result)
{
if (matrix == null)
{

40
src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/GpBiCg.cs → src/Numerics/LinearAlgebra/Complex32/Solvers/GpBiCg.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
@ -34,10 +34,8 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
{
using Numerics;
/// <summary>
/// A Generalized Product Bi-Conjugate Gradient iterative matrix solver.
/// </summary>
@ -65,7 +63,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// solver.
/// </para>
/// </remarks>
public sealed class GpBiCg : IIterativeSolver<Complex32>
public sealed class GpBiCg : IIterativeSolver<Numerics.Complex32>
{
/// <summary>
/// The status used if there is no status, i.e. the solver hasn't run yet and there is no
@ -77,12 +75,12 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The preconditioner that will be used. Can be set to <c>null</c>, in which case the default
/// pre-conditioner will be used.
/// </summary>
IPreConditioner<Complex32> _preconditioner;
IPreConditioner<Numerics.Complex32> _preconditioner;
/// <summary>
/// The iterative process controller.
/// </summary>
IIterator<Complex32> _iterator;
IIterator<Numerics.Complex32> _iterator;
/// <summary>
/// Indicates the number of <c>BiCGStab</c> steps should be taken
@ -132,7 +130,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </para>
/// </remarks>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public GpBiCg(IIterator<Complex32> iterator)
public GpBiCg(IIterator<Numerics.Complex32> iterator)
: this(null, iterator)
{
}
@ -145,7 +143,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// the standard settings.
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
public GpBiCg(IPreConditioner<Complex32> preconditioner)
public GpBiCg(IPreConditioner<Numerics.Complex32> preconditioner)
: this(preconditioner, null)
{
}
@ -167,7 +165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public GpBiCg(IPreConditioner<Complex32> preconditioner, IIterator<Complex32> iterator)
public GpBiCg(IPreConditioner<Numerics.Complex32> preconditioner, IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@ -215,7 +213,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IPreConditioner"/> that will be used to precondition the iterative process.
/// </summary>
/// <param name="preconditioner">The preconditioner.</param>
public void SetPreconditioner(IPreConditioner<Complex32> preconditioner)
public void SetPreconditioner(IPreConditioner<Numerics.Complex32> preconditioner)
{
_preconditioner = preconditioner;
}
@ -224,7 +222,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IIterator{T}"/> that will be used to track the iterative process.
/// </summary>
/// <param name="iterator">The iterator.</param>
public void SetIterator(IIterator<Complex32> iterator)
public void SetIterator(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -256,7 +254,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="vector">The solution vector, <c>b</c>.</param>
/// <returns>The result vector, <c>x</c>.</returns>
public Vector<Complex32> Solve(Matrix<Complex32> matrix, Vector<Complex32> vector)
public Vector<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> vector)
{
if (vector == null)
{
@ -275,7 +273,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution vector, <c>b</c></param>
/// <param name="result">The result vector, <c>x</c></param>
public void Solve(Matrix<Complex32> matrix, Vector<Complex32> input, Vector<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> input, Vector<Numerics.Complex32> result)
{
// If we were stopped before, we are no longer
// We're doing this at the start of the method to ensure
@ -337,7 +335,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Define the temporary scalars
Complex32 beta = 0;
Numerics.Complex32 beta = 0;
// Define the temporary vectors
// rDash_0 = r_0
@ -417,8 +415,8 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
// system, but we'll only have to take special measures
// if we don't do any so ...
var ctdot = c.ConjugateDotProduct(t);
Complex32 eta;
Complex32 sigma;
Numerics.Complex32 eta;
Numerics.Complex32 sigma;
if (((_numberOfBiCgStabSteps == 0) && (iterationNumber == 0)) || ShouldRunBiCgStabSteps(iterationNumber))
{
// sigma_k = (c_k * t_k) / (c_k * c_k)
@ -524,7 +522,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="residual">Residual values in <see cref="Vector"/>.</param>
/// <param name="x">Instance of the <see cref="Vector"/> x.</param>
/// <param name="b">Instance of the <see cref="Vector"/> b.</param>
static void CalculateTrueResidual(Matrix<Complex32> matrix, Vector<Complex32> residual, Vector<Complex32> x, Vector<Complex32> b)
static void CalculateTrueResidual(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> residual, Vector<Numerics.Complex32> x, Vector<Numerics.Complex32> b)
{
// -Ax = residual
matrix.Multiply(x, residual);
@ -542,7 +540,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="source">Source <see cref="Vector"/>.</param>
/// <param name="residuals">Residual <see cref="Vector"/>.</param>
/// <returns><c>true</c> if continue, otherwise <c>false</c></returns>
bool ShouldContinue(int iterationNumber, Vector<Complex32> result, Vector<Complex32> source, Vector<Complex32> residuals)
bool ShouldContinue(int iterationNumber, Vector<Numerics.Complex32> result, Vector<Numerics.Complex32> source, Vector<Numerics.Complex32> residuals)
{
if (_hasBeenStopped)
{
@ -583,7 +581,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <returns>The result matrix, <c>X</c>.</returns>
public Matrix<Complex32> Solve(Matrix<Complex32> matrix, Matrix<Complex32> input)
public Matrix<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input)
{
if (matrix == null)
{
@ -607,7 +605,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <param name="result">The result matrix, <c>X</c></param>
public void Solve(Matrix<Complex32> matrix, Matrix<Complex32> input, Matrix<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input, Matrix<Numerics.Complex32> result)
{
if (matrix == null)
{

54
src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/MlkBiCgStab.cs → src/Numerics/LinearAlgebra/Complex32/Solvers/MlkBiCgStab.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
@ -38,10 +38,8 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
{
using Numerics;
/// <summary>
/// A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.
/// </summary>
@ -65,7 +63,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// solver.
/// </para>
/// </remarks>
public sealed class MlkBiCgStab : IIterativeSolver<Complex32>
public sealed class MlkBiCgStab : IIterativeSolver<Numerics.Complex32>
{
/// <summary>
/// The default number of starting vectors.
@ -82,17 +80,17 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The preconditioner that will be used. Can be set to <see langword="null" />, in which case the default
/// pre-conditioner will be used.
/// </summary>
IPreConditioner<Complex32> _preconditioner;
IPreConditioner<Numerics.Complex32> _preconditioner;
/// <summary>
/// The iterative process controller.
/// </summary>
IIterator<Complex32> _iterator;
IIterator<Numerics.Complex32> _iterator;
/// <summary>
/// The collection of starting vectors which are used as the basis for the Krylov sub-space.
/// </summary>
IList<Vector<Complex32>> _startingVectors;
IList<Vector<Numerics.Complex32>> _startingVectors;
/// <summary>
/// The number of starting vectors used by the algorithm
@ -135,7 +133,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </para>
/// </remarks>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public MlkBiCgStab(IIterator<Complex32> iterator)
public MlkBiCgStab(IIterator<Numerics.Complex32> iterator)
: this(null, iterator)
{
}
@ -148,7 +146,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// the standard settings.
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
public MlkBiCgStab(IPreConditioner<Complex32> preconditioner)
public MlkBiCgStab(IPreConditioner<Numerics.Complex32> preconditioner)
: this(preconditioner, null)
{
}
@ -170,7 +168,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public MlkBiCgStab(IPreConditioner<Complex32> preconditioner, IIterator<Complex32> iterator)
public MlkBiCgStab(IPreConditioner<Numerics.Complex32> preconditioner, IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@ -212,7 +210,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IPreConditioner"/> that will be used to precondition the iterative process.
/// </summary>
/// <param name="preconditioner">The preconditioner.</param>
public void SetPreconditioner(IPreConditioner<Complex32> preconditioner)
public void SetPreconditioner(IPreConditioner<Numerics.Complex32> preconditioner)
{
_preconditioner = preconditioner;
}
@ -221,7 +219,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IIterator{T}"/> that will be used to track the iterative process.
/// </summary>
/// <param name="iterator">The iterator.</param>
public void SetIterator(IIterator<Complex32> iterator)
public void SetIterator(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -230,7 +228,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Gets or sets a series of orthonormal vectors which will be used as basis for the
/// Krylov sub-space.
/// </summary>
public IList<Vector<Complex32>> StartingVectors
public IList<Vector<Numerics.Complex32>> StartingVectors
{
[DebuggerStepThrough]
get { return _startingVectors; }
@ -276,7 +274,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="vector">The solution vector, <c>b</c>.</param>
/// <returns>The result vector, <c>x</c>.</returns>
public Vector<Complex32> Solve(Matrix<Complex32> matrix, Vector<Complex32> vector)
public Vector<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> vector)
{
if (vector == null)
{
@ -295,7 +293,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution vector, <c>b</c></param>
/// <param name="result">The result vector, <c>x</c></param>
public void Solve(Matrix<Complex32> matrix, Vector<Complex32> input, Vector<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> input, Vector<Numerics.Complex32> result)
{
// If we were stopped before, we are no longer
// We're doing this at the start of the method to ensure
@ -382,7 +380,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
CalculateTrueResidual(matrix, residuals, xtemp, input);
// Define the temporary values
var c = new Complex32[k];
var c = new Numerics.Complex32[k];
// Define the temporary vectors
var gtemp = new DenseVector(residuals.Count);
@ -492,7 +490,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
zw.Clear();
// FOR (s = i, ...., k-1) AND j >= 1
Complex32 beta;
Numerics.Complex32 beta;
if (iterationNumber >= 1)
{
for (var s = i; s < k - 1; s++)
@ -639,7 +637,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// the <paramref name="numberOfVariables"/> is smaller than
/// the <paramref name="maximumNumberOfStartingVectors"/>.
/// </returns>
static IList<Vector<Complex32>> CreateStartingVectors(int maximumNumberOfStartingVectors, int numberOfVariables)
static IList<Vector<Numerics.Complex32>> CreateStartingVectors(int maximumNumberOfStartingVectors, int numberOfVariables)
{
// Create no more starting vectors than the size of the problem - 1
// Get random values and then orthogonalize them with
@ -653,12 +651,12 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
var matrix = new DenseMatrix(numberOfVariables, count);
for (var i = 0; i < matrix.ColumnCount; i++)
{
var samples = new Complex32[matrix.RowCount];
var samples = new Numerics.Complex32[matrix.RowCount];
var samplesRe = distribution.Samples().Take(matrix.RowCount).ToArray();
var samplesIm = distribution.Samples().Take(matrix.RowCount).ToArray();
for (int j = 0; j < matrix.RowCount; j++)
{
samples[j] = new Complex32((float) samplesRe[j], (float) samplesIm[j]);
samples[j] = new Numerics.Complex32((float) samplesRe[j], (float) samplesIm[j]);
}
// Set the column
@ -670,7 +668,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
var orthogonalMatrix = gs.Q;
// Now transfer this to vectors
var result = new List<Vector<Complex32>>();
var result = new List<Vector<Numerics.Complex32>>();
for (var i = 0; i < orthogonalMatrix.ColumnCount; i++)
{
result.Add(orthogonalMatrix.Column(i));
@ -688,9 +686,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="arraySize">Number of vectors</param>
/// <param name="vectorSize">Size of each vector</param>
/// <returns>Array of random vectors</returns>
static Vector<Complex32>[] CreateVectorArray(int arraySize, int vectorSize)
static Vector<Numerics.Complex32>[] CreateVectorArray(int arraySize, int vectorSize)
{
var result = new Vector<Complex32>[arraySize];
var result = new Vector<Numerics.Complex32>[arraySize];
for (var i = 0; i < result.Length; i++)
{
result[i] = new DenseVector(vectorSize);
@ -706,7 +704,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="residual">Residual <see cref="Vector"/> data.</param>
/// <param name="x">x <see cref="Vector"/> data.</param>
/// <param name="b">b <see cref="Vector"/> data.</param>
static void CalculateTrueResidual(Matrix<Complex32> matrix, Vector<Complex32> residual, Vector<Complex32> x, Vector<Complex32> b)
static void CalculateTrueResidual(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> residual, Vector<Numerics.Complex32> x, Vector<Numerics.Complex32> b)
{
// -Ax = residual
matrix.Multiply(x, residual);
@ -724,7 +722,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="source">Source <see cref="Vector"/>.</param>
/// <param name="residuals">Residual <see cref="Vector"/>.</param>
/// <returns><c>true</c> if continue, otherwise <c>false</c></returns>
bool ShouldContinue(int iterationNumber, Vector<Complex32> result, Vector<Complex32> source, Vector<Complex32> residuals)
bool ShouldContinue(int iterationNumber, Vector<Numerics.Complex32> result, Vector<Numerics.Complex32> source, Vector<Numerics.Complex32> residuals)
{
if (_hasBeenStopped)
{
@ -748,7 +746,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <returns>The result matrix, <c>X</c>.</returns>
public Matrix<Complex32> Solve(Matrix<Complex32> matrix, Matrix<Complex32> input)
public Matrix<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input)
{
if (matrix == null)
{
@ -772,7 +770,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <param name="result">The result matrix, <c>X</c></param>
public void Solve(Matrix<Complex32> matrix, Matrix<Complex32> input, Matrix<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input, Matrix<Numerics.Complex32> result)
{
if (matrix == null)
{

40
src/Numerics/LinearAlgebra/Complex32/Solvers/Iterative/TFQMR.cs → src/Numerics/LinearAlgebra/Complex32/Solvers/TFQMR.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
@ -34,10 +34,8 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers
{
using Complex32 = Numerics.Complex32;
/// <summary>
/// A Transpose Free Quasi-Minimal Residual (TFQMR) iterative matrix solver.
/// </summary>
@ -55,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// solver.
/// </para>
/// </remarks>
public sealed class TFQMR : IIterativeSolver<Complex32>
public sealed class TFQMR : IIterativeSolver<Numerics.Complex32>
{
/// <summary>
/// The status used if there is no status, i.e. the solver hasn't run yet and there is no
@ -67,12 +65,12 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// The preconditioner that will be used. Can be set to <see langword="null" />, in which case the default
/// pre-conditioner will be used.
/// </summary>
IPreConditioner<Complex32> _preconditioner;
IPreConditioner<Numerics.Complex32> _preconditioner;
/// <summary>
/// The iterative process controller.
/// </summary>
IIterator<Complex32> _iterator;
IIterator<Numerics.Complex32> _iterator;
/// <summary>
/// Indicates if the user has stopped the solver.
@ -110,7 +108,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </para>
/// </remarks>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public TFQMR(IIterator<Complex32> iterator)
public TFQMR(IIterator<Numerics.Complex32> iterator)
: this(null, iterator)
{
}
@ -123,7 +121,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// the standard settings.
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
public TFQMR(IPreConditioner<Complex32> preconditioner)
public TFQMR(IPreConditioner<Numerics.Complex32> preconditioner)
: this(preconditioner, null)
{
}
@ -145,7 +143,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// </remarks>
/// <param name="preconditioner">The <see cref="IPreConditioner"/> that will be used to precondition the matrix equation.</param>
/// <param name="iterator">The <see cref="IIterator{T}"/> that will be used to monitor the iterative process.</param>
public TFQMR(IPreConditioner<Complex32> preconditioner, IIterator<Complex32> iterator)
public TFQMR(IPreConditioner<Numerics.Complex32> preconditioner, IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
_preconditioner = preconditioner;
@ -155,7 +153,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IPreConditioner"/> that will be used to precondition the iterative process.
/// </summary>
/// <param name="preconditioner">The preconditioner.</param>
public void SetPreconditioner(IPreConditioner<Complex32> preconditioner)
public void SetPreconditioner(IPreConditioner<Numerics.Complex32> preconditioner)
{
_preconditioner = preconditioner;
}
@ -164,7 +162,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// Sets the <see cref="IIterator{T}"/> that will be used to track the iterative process.
/// </summary>
/// <param name="iterator">The iterator.</param>
public void SetIterator(IIterator<Complex32> iterator)
public void SetIterator(IIterator<Numerics.Complex32> iterator)
{
_iterator = iterator;
}
@ -195,7 +193,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="vector">The solution vector, <c>b</c>.</param>
/// <returns>The result vector, <c>x</c>.</returns>
public Vector<Complex32> Solve(Matrix<Complex32> matrix, Vector<Complex32> vector)
public Vector<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> vector)
{
if (vector == null)
{
@ -214,7 +212,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution vector, <c>b</c></param>
/// <param name="result">The result vector, <c>x</c></param>
public void Solve(Matrix<Complex32> matrix, Vector<Complex32> input, Vector<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> input, Vector<Numerics.Complex32> result)
{
// If we were stopped before, we are no longer
// We're doing this at the start of the method to ensure
@ -285,13 +283,13 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
var temp2 = new DenseVector(input.Count);
// Define the scalars
Complex32 alpha = 0;
Complex32 eta = 0;
Numerics.Complex32 alpha = 0;
Numerics.Complex32 eta = 0;
float theta = 0;
// Initialize
var tau = input.L2Norm().Real;
Complex32 rho = tau*tau;
Numerics.Complex32 rho = tau*tau;
// Calculate the initial values for v
// M temp = yEven
@ -430,7 +428,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="residual">Residual values in <see cref="Vector"/>.</param>
/// <param name="x">Instance of the <see cref="Vector"/> x.</param>
/// <param name="b">Instance of the <see cref="Vector"/> b.</param>
static void CalculateTrueResidual(Matrix<Complex32> matrix, Vector<Complex32> residual, Vector<Complex32> x, Vector<Complex32> b)
static void CalculateTrueResidual(Matrix<Numerics.Complex32> matrix, Vector<Numerics.Complex32> residual, Vector<Numerics.Complex32> x, Vector<Numerics.Complex32> b)
{
// -Ax = residual
matrix.Multiply(x, residual);
@ -448,7 +446,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="source">Source <see cref="Vector"/>.</param>
/// <param name="residuals">Residual <see cref="Vector"/>.</param>
/// <returns><c>true</c> if continue, otherwise <c>false</c></returns>
bool ShouldContinue(int iterationNumber, Vector<Complex32> result, Vector<Complex32> source, Vector<Complex32> residuals)
bool ShouldContinue(int iterationNumber, Vector<Numerics.Complex32> result, Vector<Numerics.Complex32> source, Vector<Numerics.Complex32> residuals)
{
if (_hasBeenStopped)
{
@ -482,7 +480,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <returns>The result matrix, <c>X</c>.</returns>
public Matrix<Complex32> Solve(Matrix<Complex32> matrix, Matrix<Complex32> input)
public Matrix<Numerics.Complex32> Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input)
{
if (matrix == null)
{
@ -506,7 +504,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative
/// <param name="matrix">The coefficient matrix, <c>A</c>.</param>
/// <param name="input">The solution matrix, <c>B</c>.</param>
/// <param name="result">The result matrix, <c>X</c></param>
public void Solve(Matrix<Complex32> matrix, Matrix<Complex32> input, Matrix<Complex32> result)
public void Solve(Matrix<Numerics.Complex32> matrix, Matrix<Numerics.Complex32> input, Matrix<Numerics.Complex32> result)
{
if (matrix == null)
{

4
src/Numerics/LinearAlgebra/Double/Solvers/Iterative/BiCgStab.cs → src/Numerics/LinearAlgebra/Double/Solvers/BiCgStab.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
{
/// <summary>
/// A Bi-Conjugate Gradient stabilized iterative matrix solver.

4
src/Numerics/LinearAlgebra/Double/Solvers/Iterative/CompositeSolver.cs → src/Numerics/LinearAlgebra/Double/Solvers/CompositeSolver.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
@ -37,7 +37,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
{
/// <summary>
/// A composite matrix solver. The actual solver is made by a sequence of

4
src/Numerics/LinearAlgebra/Double/Solvers/Iterative/GpBiCg.cs → src/Numerics/LinearAlgebra/Double/Solvers/GpBiCg.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
{
/// <summary>
/// A Generalized Product Bi-Conjugate Gradient iterative matrix solver.

2
src/Numerics/LinearAlgebra/Double/Solvers/Iterator.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

4
src/Numerics/LinearAlgebra/Double/Solvers/Iterative/MlkBiCgStab.cs → src/Numerics/LinearAlgebra/Double/Solvers/MlkBiCgStab.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
@ -38,7 +38,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
{
/// <summary>
/// A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.

4
src/Numerics/LinearAlgebra/Double/Solvers/Iterative/TFQMR.cs → src/Numerics/LinearAlgebra/Double/Solvers/TFQMR.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
{
/// <summary>
/// A Transpose Free Quasi-Minimal Residual (TFQMR) iterative matrix solver.

4
src/Numerics/LinearAlgebra/Single/Solvers/Iterative/BiCgStab.cs → src/Numerics/LinearAlgebra/Single/Solvers/BiCgStab.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
{
/// <summary>
/// A Bi-Conjugate Gradient stabilized iterative matrix solver.

4
src/Numerics/LinearAlgebra/Single/Solvers/Iterative/CompositeSolver.cs → src/Numerics/LinearAlgebra/Single/Solvers/CompositeSolver.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
@ -37,7 +37,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
{
/// <summary>
/// A composite matrix solver. The actual solver is made by a sequence of

4
src/Numerics/LinearAlgebra/Single/Solvers/Iterative/GpBiCg.cs → src/Numerics/LinearAlgebra/Single/Solvers/GpBiCg.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
{
/// <summary>
/// A Generalized Product Bi-Conjugate Gradient iterative matrix solver.

4
src/Numerics/LinearAlgebra/Single/Solvers/Iterative/MlkBiCgStab.cs → src/Numerics/LinearAlgebra/Single/Solvers/MlkBiCgStab.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
@ -37,7 +37,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
{
/// <summary>
/// A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.

4
src/Numerics/LinearAlgebra/Single/Solvers/Iterative/TFQMR.cs → src/Numerics/LinearAlgebra/Single/Solvers/TFQMR.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
@ -34,7 +34,7 @@ using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;
using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative
namespace MathNet.Numerics.LinearAlgebra.Single.Solvers
{
/// <summary>
/// A Transpose Free Quasi-Minimal Residual (TFQMR) iterative matrix solver.

40
src/Numerics/Numerics.csproj

@ -236,11 +236,11 @@
<Compile Include="LinearAlgebra\Complex32\Factorization\UserLU.cs" />
<Compile Include="LinearAlgebra\Complex32\Factorization\UserQR.cs" />
<Compile Include="LinearAlgebra\Complex32\Factorization\UserSvd.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterative\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterative\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterative\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterative\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterative\TFQMR.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\TFQMR.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Iterator.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Preconditioners\Diagonal.cs" />
<Compile Include="LinearAlgebra\Complex32\Solvers\Preconditioners\Ilutp.cs" />
@ -263,11 +263,11 @@
<Compile Include="LinearAlgebra\Complex\Factorization\UserLU.cs" />
<Compile Include="LinearAlgebra\Complex\Factorization\UserQR.cs" />
<Compile Include="LinearAlgebra\Complex\Factorization\UserSvd.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterative\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterative\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterative\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterative\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterative\TFQMR.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\TFQMR.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Iterator.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Preconditioners\Diagonal.cs" />
<Compile Include="LinearAlgebra\Complex\Solvers\Preconditioners\Ilutp.cs" />
@ -306,11 +306,11 @@
<Compile Include="LinearAlgebra\Single\Factorization\UserQR.cs" />
<Compile Include="LinearAlgebra\Single\Factorization\UserSvd.cs" />
<Compile Include="LinearAlgebra\Single\Matrix.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterative\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterative\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterative\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterative\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterative\TFQMR.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\TFQMR.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Iterator.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Preconditioners\Diagonal.cs" />
<Compile Include="LinearAlgebra\Single\Solvers\Preconditioners\Ilutp.cs" />
@ -336,11 +336,11 @@
<Compile Include="LinearAlgebra\Double\Factorization\UserQR.cs" />
<Compile Include="LinearAlgebra\Double\Factorization\UserSvd.cs" />
<Compile Include="LinearAlgebra\Factorization\ISolver.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterative\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterative\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterative\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterative\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterative\TFQMR.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\BiCgStab.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\CompositeSolver.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\GpBiCg.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\MlkBiCgStab.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\TFQMR.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Iterator.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Preconditioners\Diagonal.cs" />
<Compile Include="LinearAlgebra\Double\Solvers\Preconditioners\Ilutp.cs" />

2
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex32;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex32;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex32;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Complex32;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers;
using MathNet.Numerics.LinearAlgebra.Complex32.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Double.Solvers;
using MathNet.Numerics.LinearAlgebra.Double.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Single;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Single.Solvers;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Single;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Single.Solvers;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs

@ -31,7 +31,7 @@
using System;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Single;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Single.Solvers;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

2
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs

@ -30,7 +30,7 @@
using System;
using MathNet.Numerics.LinearAlgebra.Single;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.Iterative;
using MathNet.Numerics.LinearAlgebra.Single.Solvers;
using MathNet.Numerics.LinearAlgebra.Single.Solvers.StopCriterium;
using MathNet.Numerics.LinearAlgebra.Solvers;
using MathNet.Numerics.LinearAlgebra.Solvers.Status;

Loading…
Cancel
Save