diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs index 48b04817..d321d9b6 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs @@ -105,7 +105,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples var residualStopCriterium = new ResidualStopCriterium(1e-10); // Create monitor with defined stop criteriums - var monitor = new Iterator(new IIterationStopCriterium[] { iterationCountStopCriterium, residualStopCriterium }); + var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); // Create Bi-Conjugate Gradient Stabilized solver var solver = new BiCgStab(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs b/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs index 2cd6b69d..c2e0a797 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs @@ -104,7 +104,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples var residualStopCriterium = new ResidualStopCriterium(1e-10); // Create monitor with defined stop criteriums - var monitor = new Iterator(new IIterationStopCriterium[] { iterationCountStopCriterium, residualStopCriterium }); + var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); // Load all suitable solvers from current assembly. Below in this example, there is user-defined solver // "class UserBiCgStab : IIterativeSolverSetup" which uses regular BiCgStab solver. But user may create any other solver diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs index ce2b7a02..31f6e090 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs @@ -103,7 +103,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples var residualStopCriterium = new ResidualStopCriterium(1e-10); // Create monitor with defined stop criteriums - var monitor = new Iterator(new IIterationStopCriterium[] { iterationCountStopCriterium, residualStopCriterium }); + var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); // Create Generalized Product Bi-Conjugate Gradient solver var solver = new GpBiCg(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs index 99f8f2c1..242675e7 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs @@ -104,7 +104,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples var residualStopCriterium = new ResidualStopCriterium(1e-10); // Create monitor with defined stop criteriums - var monitor = new Iterator(new IIterationStopCriterium[] { iterationCountStopCriterium, residualStopCriterium }); + var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); // Create Multiple-Lanczos Bi-Conjugate Gradient Stabilized solver var solver = new MlkBiCgStab(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs index 4ebc8502..67797b07 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs @@ -104,7 +104,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples var residualStopCriterium = new ResidualStopCriterium(1e-10); // Create monitor with defined stop criteriums - var monitor = new Iterator(new IIterationStopCriterium[] { iterationCountStopCriterium, residualStopCriterium }); + var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); // Create Transpose Free Quasi-Minimal Residual solver var solver = new TFQMR(); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs index d79147c5..18a872d2 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs @@ -94,13 +94,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => Complex.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -139,13 +138,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => Complex.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator(new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -217,13 +214,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => Complex.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator(new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -258,11 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new BiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -290,11 +284,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs index ab5884ab..e31c685a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs @@ -94,13 +94,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new GpBiCg(); // Solve equation Ax = y @@ -139,13 +138,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -218,13 +215,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -260,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new GpBiCg(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -292,11 +286,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new GpBiCg(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs index c96bc7f8..3f576ee4 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs @@ -94,13 +94,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new MlkBiCgStab(); @@ -140,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -218,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -259,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new MlkBiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -291,11 +286,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs index e67b1dad..13c32d56 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs @@ -94,13 +94,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new TFQMR(); @@ -140,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -218,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -259,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new TFQMR(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -291,11 +286,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs index 1a5f2380..50e9c20e 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs @@ -94,13 +94,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -139,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -217,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => Complex32.One); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -262,11 +259,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new BiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -305,11 +301,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs index 0343063f..35994b0d 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs @@ -94,13 +94,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new GpBiCg(); // Solve equation Ax = y @@ -139,13 +138,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -218,13 +215,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -260,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new GpBiCg(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs index ce4a6829..3f83dd8c 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs @@ -94,13 +94,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new MlkBiCgStab(); @@ -140,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -218,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -259,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new MlkBiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -302,11 +297,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs index 94b82325..354d4f6c 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs @@ -94,13 +94,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new TFQMR(); @@ -140,13 +138,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -218,13 +215,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -259,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new TFQMR(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -302,11 +297,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs index 6dc6ac79..6f7e742c 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs @@ -92,13 +92,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -137,13 +136,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -215,13 +213,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -260,11 +257,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new BiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -291,11 +287,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs index 6d7e1fd3..a9a43ab1 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs @@ -92,13 +92,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new GpBiCg(); // Solve equation Ax = y @@ -137,13 +136,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -216,13 +213,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -262,11 +257,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new GpBiCg(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -293,11 +287,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new GpBiCg(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs index 4c09c6f3..a6290895 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs @@ -92,13 +92,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new MlkBiCgStab(); @@ -138,13 +136,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -216,13 +213,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -261,11 +257,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new MlkBiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -292,11 +287,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs index 6085d7de..dfd59338 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs @@ -92,13 +92,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new TFQMR(); @@ -138,13 +136,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -216,13 +213,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -257,11 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10), - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new TFQMR(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -288,11 +283,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(1000), + new ResidualStopCriterium(1e-10)); + var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs index d45b3c79..b714f960 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs @@ -92,13 +92,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -137,13 +136,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -215,13 +213,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new BiCgStab(); // Solve equation Ax = y @@ -258,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new BiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -299,11 +295,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs index b2466961..8a580d9b 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs @@ -92,13 +92,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new GpBiCg(); // Solve equation Ax = y @@ -137,13 +136,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -216,13 +213,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new GpBiCg(); @@ -260,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new GpBiCg(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -301,11 +295,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new GpBiCg(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs index cb568dee..4743920b 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs @@ -93,13 +93,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new MlkBiCgStab(); @@ -139,13 +137,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -221,13 +218,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative for (var iteration = 0; iteration <= 3; iteration++) { // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new MlkBiCgStab(); // Solve equation Ax = y @@ -277,11 +273,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new MlkBiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -320,11 +315,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs index 89a97d0f..ba92422a 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs @@ -92,13 +92,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); var solver = new TFQMR(); @@ -138,13 +136,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -216,13 +213,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var y = DenseVector.Create(matrix.RowCount, i => 1); // Create an iteration monitor which will keep track of iterative convergence - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium() - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium(ConvergenceBoundary), + new DivergenceStopCriterium(), + new FailureStopCriterium()); + var solver = new TFQMR(); // Solve equation Ax = y @@ -259,11 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var vectorb = MatrixLoader.GenerateRandomDenseVector(order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new TFQMR(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -300,11 +295,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var monitor = new Iterator(new IIterationStopCriterium[] - { - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration)) - }); + var monitor = new Iterator( + new IterationCountStopCriterium(MaximumIterations), + new ResidualStopCriterium((float) Math.Pow(1.0/10.0, iteration))); + var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor);