From 8671f1259208428e20c17b3fd33cc179365a0216 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Sun, 13 Apr 2014 22:58:31 +0200 Subject: [PATCH] LA: rename 'criterium' to 'criterion' --- RELEASENOTES.md | 1 + .../IterativeSolvers/BiCgStabSolver.cs | 34 ++--- .../CompositeSolverExample.cs | 62 ++++----- .../IterativeSolvers/GpBiCgSolver.cs | 34 ++--- .../IterativeSolvers/MlkBiCgStabSolver.cs | 36 +++--- .../IterativeSolvers/TFQMRSolver.cs | 32 ++--- src/Numerics/LinearAlgebra/Builder.cs | 71 +++++----- src/Numerics/LinearAlgebra/Matrix.Solve.cs | 18 +-- ...terium.cs => CancellationStopCriterion.cs} | 33 +++-- ...riterium.cs => DivergenceStopCriterion.cs} | 44 +++---- ...opCriterium.cs => FailureStopCriterion.cs} | 27 ++-- ...riterium.cs => IIterationStopCriterion.cs} | 18 +-- .../LinearAlgebra/Solvers/IIterativeSolver.cs | 2 +- .../Solvers/IIterativeSolverSetup.cs | 2 +- .../LinearAlgebra/Solvers/IPreconditioner.cs | 2 +- ...rium.cs => IterationCountStopCriterion.cs} | 40 +++--- .../LinearAlgebra/Solvers/IterationStatus.cs | 2 +- .../LinearAlgebra/Solvers/Iterator.cs | 30 ++--- ...pCriterium.cs => ResidualStopCriterion.cs} | 55 ++++---- .../LinearAlgebra/Solvers/SolverSetup.cs | 2 +- .../Solvers/UnitPreconditioner.cs | 2 +- src/Numerics/Numerics.csproj | 12 +- src/Numerics/Properties/Resources.Designer.cs | 14 +- src/Numerics/Properties/Resources.resx | 8 +- .../Complex/Solvers/Iterative/BiCgStabTest.cs | 35 ++--- .../Complex/Solvers/Iterative/GpBiCgTest.cs | 35 ++--- .../Solvers/Iterative/MlkBiCgStabTest.cs | 35 ++--- .../Complex/Solvers/Iterative/TFQMRTest.cs | 35 ++--- .../Complex/Solvers/IteratorTest.cs | 29 +++-- .../DivergenceStopCriteriumTest.cs | 121 +++++++++--------- .../FailureStopCriteriumTest.cs | 89 ++++++------- .../IterationCountStopCriteriumTest.cs | 69 +++++----- .../ResidualStopCriteriumTest.cs | 111 ++++++++-------- .../Solvers/Iterative/BiCgStabTest.cs | 44 +++---- .../Complex32/Solvers/Iterative/GpBiCgTest.cs | 36 +++--- .../Solvers/Iterative/MlkBiCgStabTest.cs | 44 +++---- .../Complex32/Solvers/Iterative/TFQMRTest.cs | 44 +++---- .../Complex32/Solvers/IteratorTest.cs | 28 ++-- .../DivergenceStopCriteriumTest.cs | 120 ++++++++--------- .../FailureStopCriteriumTest.cs | 88 ++++++------- .../IterationCountStopCriteriumTest.cs | 68 +++++----- .../ResidualStopCriteriumTest.cs | 78 +++++------ .../Double/Solvers/Iterative/BiCgStabTest.cs | 34 ++--- .../Double/Solvers/Iterative/GpBiCgTest.cs | 34 ++--- .../Solvers/Iterative/MlkBiCgStabTest.cs | 34 ++--- .../Double/Solvers/Iterative/TFQMRTest.cs | 34 ++--- .../Double/Solvers/IteratorTest.cs | 28 ++-- .../DivergenceStopCriteriumTest.cs | 120 ++++++++--------- .../FailureStopCriteriumTest.cs | 88 ++++++------- .../IterationCountStopCriteriumTest.cs | 70 +++++----- .../ResidualStopCriteriumTest.cs | 78 +++++------ .../Single/Solvers/Iterative/BiCgStabTest.cs | 44 +++---- .../Single/Solvers/Iterative/GpBiCgTest.cs | 44 +++---- .../Solvers/Iterative/MlkBiCgStabTest.cs | 44 +++---- .../Single/Solvers/Iterative/TFQMRTest.cs | 44 +++---- .../Single/Solvers/IteratorTest.cs | 28 ++-- .../DivergenceStopCriteriumTest.cs | 120 ++++++++--------- .../FailureStopCriteriumTest.cs | 88 ++++++------- .../IterationCountStopCriteriumTest.cs | 68 +++++----- .../ResidualStopCriteriumTest.cs | 108 ++++++++-------- src/UnitTests/UnitTests.csproj | 33 ++--- 61 files changed, 1384 insertions(+), 1447 deletions(-) rename src/Numerics/LinearAlgebra/Solvers/{CancellationStopCriterium.cs => CancellationStopCriterion.cs} (78%) rename src/Numerics/LinearAlgebra/Solvers/{DivergenceStopCriterium.cs => DivergenceStopCriterion.cs} (89%) rename src/Numerics/LinearAlgebra/Solvers/{FailureStopCriterium.cs => FailureStopCriterion.cs} (85%) rename src/Numerics/LinearAlgebra/Solvers/{IIterationStopCriterium.cs => IIterationStopCriterion.cs} (87%) rename src/Numerics/LinearAlgebra/Solvers/{IterationCountStopCriterium.cs => IterationCountStopCriterion.cs} (83%) rename src/Numerics/LinearAlgebra/Solvers/{ResidualStopCriterium.cs => ResidualStopCriterion.cs} (84%) rename src/UnitTests/LinearAlgebraTests/Complex/Solvers/{StopCriterium => StopCriterion}/DivergenceStopCriteriumTest.cs (63%) rename src/UnitTests/LinearAlgebraTests/Complex/Solvers/{StopCriterium => StopCriterion}/FailureStopCriteriumTest.cs (53%) rename src/UnitTests/LinearAlgebraTests/Complex/Solvers/{StopCriterium => StopCriterion}/IterationCountStopCriteriumTest.cs (65%) rename src/UnitTests/LinearAlgebraTests/Complex/Solvers/{StopCriterium => StopCriterion}/ResidualStopCriteriumTest.cs (61%) rename src/UnitTests/LinearAlgebraTests/Complex32/Solvers/{StopCriterium => StopCriterion}/DivergenceStopCriteriumTest.cs (62%) rename src/UnitTests/LinearAlgebraTests/Complex32/Solvers/{StopCriterium => StopCriterion}/FailureStopCriteriumTest.cs (52%) rename src/UnitTests/LinearAlgebraTests/Complex32/Solvers/{StopCriterium => StopCriterion}/IterationCountStopCriteriumTest.cs (65%) rename src/UnitTests/LinearAlgebraTests/Complex32/Solvers/{StopCriterium => StopCriterion}/ResidualStopCriteriumTest.cs (77%) rename src/UnitTests/LinearAlgebraTests/Double/Solvers/{StopCriterium => StopCriterion}/DivergenceStopCriteriumTest.cs (64%) rename src/UnitTests/LinearAlgebraTests/Double/Solvers/{StopCriterium => StopCriterion}/FailureStopCriteriumTest.cs (57%) rename src/UnitTests/LinearAlgebraTests/Double/Solvers/{StopCriterium => StopCriterion}/IterationCountStopCriteriumTest.cs (64%) rename src/UnitTests/LinearAlgebraTests/Double/Solvers/{StopCriterium => StopCriterion}/ResidualStopCriteriumTest.cs (76%) rename src/UnitTests/LinearAlgebraTests/Single/Solvers/{StopCriterium => StopCriterion}/DivergenceStopCriteriumTest.cs (64%) rename src/UnitTests/LinearAlgebraTests/Single/Solvers/{StopCriterium => StopCriterion}/FailureStopCriteriumTest.cs (57%) rename src/UnitTests/LinearAlgebraTests/Single/Solvers/{StopCriterium => StopCriterion}/IterationCountStopCriteriumTest.cs (66%) rename src/UnitTests/LinearAlgebraTests/Single/Solvers/{StopCriterium => StopCriterion}/ResidualStopCriteriumTest.cs (64%) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5cb58025..6310c051 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -67,6 +67,7 @@ Changes as of now: - Matrix factorizations no longer clone their results at point of access. - Add direct factorization-based `Solve` methods to matrix type. - Massive iterative solver implementation/design simplification, now mostly generic and a bit more functional-style. +- Renamed iterative solver stop criteria from 'criterium' to 'criterion'. - New MILU(0) iterative solver preconditioner that is much more efficient and fully leverages sparse data. *~Christian Woltering* - Matrices/Vectors now have more consistent enumerators, with a variant that skips zeros (useful if sparse). - Matrix/Vector creation routines have been simplified and usually no longer require explicit dimensions. New variants to create diagonal matrices, or such where all fields have the same value. All functions that take a params array now have an overload accepting an enumerable (e.g. `OfColumnVectors`). diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs index 2cac2457..fcf30c4c 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/BiCgStabSolver.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -47,10 +47,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Name { - get - { - return "Bi-Conjugate Gradient Stabilized iterative solver"; - } + get { return "Bi-Conjugate Gradient Stabilized iterative solver"; } } /// @@ -58,10 +55,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Description { - get - { - return "Solve linear equation using Bi-Conjugate Gradient Stabilized (BiCGStab) solver"; - } + get { return "Solve linear equation using Bi-Conjugate Gradient Stabilized (BiCGStab) solver"; } } /// @@ -91,20 +85,20 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(vectorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); - // Create stop criteriums to monitor an iterative calculation. There are next available stop criteriums: - // - DivergenceStopCriterium: monitors an iterative calculation for signs of divergence; - // - FailureStopCriterium: monitors residuals for NaN's; - // - IterationCountStopCriterium: monitors the numbers of iteration steps; - // - ResidualStopCriterium: monitors residuals if calculation is considered converged; + // Create stop criteria to monitor an iterative calculation. There are next available stop criteria: + // - DivergenceStopCriterion: monitors an iterative calculation for signs of divergence; + // - FailureStopCriterion: monitors residuals for NaN's; + // - IterationCountStopCriterion: monitors the numbers of iteration steps; + // - ResidualStopCriterion: monitors residuals if calculation is considered converged; // Stop calculation if 1000 iterations reached during calculation - var iterationCountStopCriterium = new IterationCountStopCriterium(1000); + var iterationCountStopCriterion = new IterationCountStopCriterion(1000); // Stop calculation if residuals are below 1E-10 --> the calculation is considered converged - var residualStopCriterium = new ResidualStopCriterium(1e-10); - - // Create monitor with defined stop criteriums - var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); + var residualStopCriterion = new ResidualStopCriterion(1e-10); + + // Create monitor with defined stop criteria + var monitor = new Iterator(iterationCountStopCriterion, residualStopCriterion); // Create Bi-Conjugate Gradient Stabilized solver var solver = new BiCgStab(); @@ -134,7 +128,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(); // 4. Verify result. Multiply coefficient matrix "A" by result vector "x" - var reconstructVecorB = matrixA * resultX; + var reconstructVecorB = matrixA*resultX; Console.WriteLine(@"4. Multiply coefficient matrix 'A' by result vector 'x'"); Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs b/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs index 2f72fda7..ed4d45e4 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/CompositeSolverExample.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -47,10 +47,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Name { - get - { - return "Composite matrix solver"; - } + get { return "Composite matrix solver"; } } /// @@ -58,10 +55,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Description { - get - { - return "Solve linear equation using composite matrix solver. The actual solver is made by a sequence of matrix solvers"; - } + get { return "Solve linear equation using composite matrix solver. The actual solver is made by a sequence of matrix solvers"; } } /// @@ -78,7 +72,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples // 3*x - 7*y + 6*z = 38 // 4*x + 1*y + 5*z = 43 - // Create matrix "A" with coefficients + // Create matrix "A" with coefficients var matrixA = DenseMatrix.OfArray(new[,] { { 5.00, 2.00, -4.00 }, { 3.00, -7.00, 6.00 }, { 4.00, 1.00, 5.00 } }); Console.WriteLine(@"Matrix 'A' with coefficients"); Console.WriteLine(matrixA.ToString("#0.00\t", formatProvider)); @@ -90,32 +84,32 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(vectorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); - // Create stop criteriums to monitor an iterative calculation. There are next available stop criteriums: - // - DivergenceStopCriterium: monitors an iterative calculation for signs of divergence; - // - FailureStopCriterium: monitors residuals for NaN's; - // - IterationCountStopCriterium: monitors the numbers of iteration steps; - // - ResidualStopCriterium: monitors residuals if calculation is considered converged; + // Create stop criteria to monitor an iterative calculation. There are next available stop criteria: + // - DivergenceStopCriterion: monitors an iterative calculation for signs of divergence; + // - FailureStopCriterion: monitors residuals for NaN's; + // - IterationCountStopCriterion: monitors the numbers of iteration steps; + // - ResidualStopCriterion: monitors residuals if calculation is considered converged; // Stop calculation if 1000 iterations reached during calculation - var iterationCountStopCriterium = new IterationCountStopCriterium(1000); + var iterationCountStopCriterion = new IterationCountStopCriterion(1000); // Stop calculation if residuals are below 1E-10 --> the calculation is considered converged - var residualStopCriterium = new ResidualStopCriterium(1e-10); + var residualStopCriterion = new ResidualStopCriterion(1e-10); - // Create monitor with defined stop criteriums - var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); + // Create monitor with defined stop criteria + var monitor = new Iterator(iterationCountStopCriterion, residualStopCriterion); // 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 + // "class UserBiCgStab : IIterativeSolverSetup" which uses regular BiCgStab solver. But user may create any other solver // and solver setup classes which implement IIterativeSolverSetup and pass assembly to next function: var solver = new CompositeSolver(SolverSetup.LoadFromAssembly(Assembly.GetExecutingAssembly())); - + // 1. Solve the matrix equation var resultX = matrixA.SolveIterative(vectorB, solver, monitor); Console.WriteLine(@"1. Solve the matrix equation"); Console.WriteLine(); - // 2. Check solver status of the iterations. + // 2. Check solver status of the iterations. // Solver has property IterationResult which contains the status of the iteration once the calculation is finished. // Possible values are: // - CalculationCancelled: calculation was cancelled by the user; @@ -135,7 +129,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(); // 4. Verify result. Multiply coefficient matrix "A" by result vector "x" - var reconstructVecorB = matrixA * resultX; + var reconstructVecorB = matrixA*resultX; Console.WriteLine(@"4. Multiply coefficient matrix 'A' by result vector 'x'"); Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); @@ -152,10 +146,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public Type SolverType { - get - { - return null; - } + get { return null; } } /// @@ -163,10 +154,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public Type PreconditionerType { - get - { - return null; - } + get { return null; } } /// @@ -185,15 +173,12 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples } /// - /// Gets the relative speed of the solver. + /// Gets the relative speed of the solver. /// /// Returns a value between 0 and 1, inclusive. public double SolutionSpeed { - get - { - return 0.99; - } + get { return 0.99; } } /// @@ -202,10 +187,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// Returns a value between 0 and 1 inclusive. public double Reliability { - get - { - return 0.99; - } + get { return 0.99; } } } } diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs index 891610cc..85245038 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/GpBiCgSolver.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -41,15 +41,12 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public class GpBiCgSolver : IExample { - /// + /// /// Gets the name of this example /// public string Name { - get - { - return "Generalized Product Bi-Conjugate Gradient iterative solver"; - } + get { return "Generalized Product Bi-Conjugate Gradient iterative solver"; } } /// @@ -57,10 +54,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Description { - get - { - return "Solve linear equation using Generalized Product Bi-Conjugate Gradient (GPBiCG) solver"; - } + get { return "Solve linear equation using Generalized Product Bi-Conjugate Gradient (GPBiCG) solver"; } } /// @@ -89,20 +83,20 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(vectorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); - // Create stop criteriums to monitor an iterative calculation. There are next available stop criteriums: - // - DivergenceStopCriterium: monitors an iterative calculation for signs of divergence; - // - FailureStopCriterium: monitors residuals for NaN's; - // - IterationCountStopCriterium: monitors the numbers of iteration steps; - // - ResidualStopCriterium: monitors residuals if calculation is considered converged; + // Create stop criteria to monitor an iterative calculation. There are next available stop criteria: + // - DivergenceStopCriterion: monitors an iterative calculation for signs of divergence; + // - FailureStopCriterion: monitors residuals for NaN's; + // - IterationCountStopCriterion: monitors the numbers of iteration steps; + // - ResidualStopCriterion: monitors residuals if calculation is considered converged; // Stop calculation if 1000 iterations reached during calculation - var iterationCountStopCriterium = new IterationCountStopCriterium(1000); + var iterationCountStopCriterion = new IterationCountStopCriterion(1000); // Stop calculation if residuals are below 1E-10 --> the calculation is considered converged - var residualStopCriterium = new ResidualStopCriterium(1e-10); + var residualStopCriterion = new ResidualStopCriterion(1e-10); - // Create monitor with defined stop criteriums - var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); + // Create monitor with defined stop criteria + var monitor = new Iterator(iterationCountStopCriterion, residualStopCriterion); // Create Generalized Product Bi-Conjugate Gradient solver var solver = new GpBiCg(); @@ -132,7 +126,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(); // 4. Verify result. Multiply coefficient matrix "A" by result vector "x" - var reconstructVecorB = matrixA * resultX; + var reconstructVecorB = matrixA*resultX; Console.WriteLine(@"4. Multiply coefficient matrix 'A' by result vector 'x'"); Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs index a9313f67..1c12ebd3 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/MlkBiCgStabSolver.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -47,10 +47,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Name { - get - { - return "Multiple-Lanczos Bi-Conjugate Gradient Stabilized iterative solver"; - } + get { return "Multiple-Lanczos Bi-Conjugate Gradient Stabilized iterative solver"; } } /// @@ -58,10 +55,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Description { - get - { - return "Solve linear equation using Multiple-Lanczos Bi-Conjugate Gradient stabilized (ML(k)-BiCGStab) solver"; - } + get { return "Solve linear equation using Multiple-Lanczos Bi-Conjugate Gradient stabilized (ML(k)-BiCGStab) solver"; } } /// @@ -78,7 +72,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples // 3*x - 7*y + 6*z = 38 // 4*x + 1*y + 5*z = 43 - // Create matrix "A" with coefficients + // Create matrix "A" with coefficients var matrixA = DenseMatrix.OfArray(new[,] { { 5.00, 2.00, -4.00 }, { 3.00, -7.00, 6.00 }, { 4.00, 1.00, 5.00 } }); Console.WriteLine(@"Matrix 'A' with coefficients"); Console.WriteLine(matrixA.ToString("#0.00\t", formatProvider)); @@ -90,20 +84,20 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(vectorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); - // Create stop criteriums to monitor an iterative calculation. There are next available stop criteriums: - // - DivergenceStopCriterium: monitors an iterative calculation for signs of divergence; - // - FailureStopCriterium: monitors residuals for NaN's; - // - IterationCountStopCriterium: monitors the numbers of iteration steps; - // - ResidualStopCriterium: monitors residuals if calculation is considered converged; + // Create stop criteria to monitor an iterative calculation. There are next available stop criteria: + // - DivergenceStopCriterion: monitors an iterative calculation for signs of divergence; + // - FailureStopCriterion: monitors residuals for NaN's; + // - IterationCountStopCriterion: monitors the numbers of iteration steps; + // - ResidualStopCriterion: monitors residuals if calculation is considered converged; // Stop calculation if 1000 iterations reached during calculation - var iterationCountStopCriterium = new IterationCountStopCriterium(1000); + var iterationCountStopCriterion = new IterationCountStopCriterion(1000); // Stop calculation if residuals are below 1E-10 --> the calculation is considered converged - var residualStopCriterium = new ResidualStopCriterium(1e-10); + var residualStopCriterion = new ResidualStopCriterion(1e-10); - // Create monitor with defined stop criteriums - var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); + // Create monitor with defined stop criteria + var monitor = new Iterator(iterationCountStopCriterion, residualStopCriterion); // Create Multiple-Lanczos Bi-Conjugate Gradient Stabilized solver var solver = new MlkBiCgStab(); @@ -113,7 +107,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(@"1. Solve the matrix equation"); Console.WriteLine(); - // 2. Check solver status of the iterations. + // 2. Check solver status of the iterations. // Solver has property IterationResult which contains the status of the iteration once the calculation is finished. // Possible values are: // - CalculationCancelled: calculation was cancelled by the user; @@ -133,7 +127,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(); // 4. Verify result. Multiply coefficient matrix "A" by result vector "x" - var reconstructVecorB = matrixA * resultX; + var reconstructVecorB = matrixA*resultX; Console.WriteLine(@"4. Multiply coefficient matrix 'A' by result vector 'x'"); Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); diff --git a/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs b/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs index f4465896..cae69c82 100644 --- a/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs +++ b/src/Examples/LinearAlgebra/IterativeSolvers/TFQMRSolver.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -47,10 +47,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Name { - get - { - return "Transpose Free Quasi-Minimal Residual iterative solver"; - } + get { return "Transpose Free Quasi-Minimal Residual iterative solver"; } } /// @@ -58,10 +55,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples /// public string Description { - get - { - return "Solve linear equation using Transpose Free Quasi-Minimal Residual (TFQMR) iterative solver"; - } + get { return "Solve linear equation using Transpose Free Quasi-Minimal Residual (TFQMR) iterative solver"; } } /// @@ -90,20 +84,20 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(vectorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); - // Create stop criteriums to monitor an iterative calculation. There are next available stop criteriums: - // - DivergenceStopCriterium: monitors an iterative calculation for signs of divergence; - // - FailureStopCriterium: monitors residuals for NaN's; - // - IterationCountStopCriterium: monitors the numbers of iteration steps; - // - ResidualStopCriterium: monitors residuals if calculation is considered converged; + // Create stop criteria to monitor an iterative calculation. There are next available stop criteria: + // - DivergenceStopCriterion: monitors an iterative calculation for signs of divergence; + // - FailureStopCriterion: monitors residuals for NaN's; + // - IterationCountStopCriterion: monitors the numbers of iteration steps; + // - ResidualStopCriterion: monitors residuals if calculation is considered converged; // Stop calculation if 1000 iterations reached during calculation - var iterationCountStopCriterium = new IterationCountStopCriterium(1000); + var iterationCountStopCriterion = new IterationCountStopCriterion(1000); // Stop calculation if residuals are below 1E-10 --> the calculation is considered converged - var residualStopCriterium = new ResidualStopCriterium(1e-10); + var residualStopCriterion = new ResidualStopCriterion(1e-10); - // Create monitor with defined stop criteriums - var monitor = new Iterator(iterationCountStopCriterium, residualStopCriterium); + // Create monitor with defined stop criteria + var monitor = new Iterator(iterationCountStopCriterion, residualStopCriterion); // Create Transpose Free Quasi-Minimal Residual solver var solver = new TFQMR(); @@ -133,7 +127,7 @@ namespace Examples.LinearAlgebra.IterativeSolversExamples Console.WriteLine(); // 4. Verify result. Multiply coefficient matrix "A" by result vector "x" - var reconstructVecorB = matrixA * resultX; + var reconstructVecorB = matrixA*resultX; Console.WriteLine(@"4. Multiply coefficient matrix 'A' by result vector 'x'"); Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider)); Console.WriteLine(); diff --git a/src/Numerics/LinearAlgebra/Builder.cs b/src/Numerics/LinearAlgebra/Builder.cs index 5201d4a6..090bb1b8 100644 --- a/src/Numerics/LinearAlgebra/Builder.cs +++ b/src/Numerics/LinearAlgebra/Builder.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -70,14 +70,14 @@ namespace MathNet.Numerics.LinearAlgebra.Double return Dense(rows, columns, (i, j) => distribution.Sample()); } - public override IIterationStopCriterium[] IterativeSolverStopCriteria(int maxIterations = 1000) + public override IIterationStopCriterion[] IterativeSolverStopCriteria(int maxIterations = 1000) { - return new IIterationStopCriterium[] + return new IIterationStopCriterion[] { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(maxIterations), - new ResidualStopCriterium(1e-12) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(maxIterations), + new ResidualStopCriterion(1e-12) }; } } @@ -145,14 +145,14 @@ namespace MathNet.Numerics.LinearAlgebra.Single return Dense(rows, columns, (i, j) => (float) distribution.Sample()); } - public override IIterationStopCriterium[] IterativeSolverStopCriteria(int maxIterations = 1000) + public override IIterationStopCriterion[] IterativeSolverStopCriteria(int maxIterations = 1000) { - return new IIterationStopCriterium[] + return new IIterationStopCriterion[] { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(maxIterations), - new ResidualStopCriterium(1e-6) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(maxIterations), + new ResidualStopCriterion(1e-6) }; } } @@ -226,14 +226,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex return Dense(rows, columns, (i, j) => new Complex(distribution.Sample(), distribution.Sample())); } - public override IIterationStopCriterium[] IterativeSolverStopCriteria(int maxIterations = 1000) + public override IIterationStopCriterion[] IterativeSolverStopCriteria(int maxIterations = 1000) { - return new IIterationStopCriterium[] + return new IIterationStopCriterion[] { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(maxIterations), - new ResidualStopCriterium(1e-12) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(maxIterations), + new ResidualStopCriterion(1e-12) }; } } @@ -301,14 +301,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32 return Dense(rows, columns, (i, j) => new Numerics.Complex32((float) distribution.Sample(), (float) distribution.Sample())); } - public override IIterationStopCriterium[] IterativeSolverStopCriteria(int maxIterations = 1000) + public override IIterationStopCriterion[] IterativeSolverStopCriteria(int maxIterations = 1000) { - return new IIterationStopCriterium[] + return new IIterationStopCriterion[] { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(maxIterations), - new ResidualStopCriterium(1e-6) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(maxIterations), + new ResidualStopCriterion(1e-6) }; } } @@ -349,6 +349,7 @@ namespace MathNet.Numerics.LinearAlgebra using Complex64 = Numerics.Complex; #else using Complex64 = System.Numerics.Complex; + #endif /// @@ -825,7 +826,7 @@ namespace MathNet.Numerics.LinearAlgebra int coloffset = 0; for (int j = 0; j < colspans.Length; j++) { - m.SetSubMatrix(rowoffset, coloffset, matrices[i,j]); + m.SetSubMatrix(rowoffset, coloffset, matrices[i, j]); coloffset += colspans[j]; } rowoffset += rowspans[i]; @@ -1302,7 +1303,7 @@ namespace MathNet.Numerics.LinearAlgebra return m; } - public abstract IIterationStopCriterium[] IterativeSolverStopCriteria(int maxIterations = 1000); + public abstract IIterationStopCriterion[] IterativeSolverStopCriteria(int maxIterations = 1000); } /// @@ -1576,29 +1577,29 @@ namespace MathNet.Numerics.LinearAlgebra if (typeof (T) == typeof (Complex64)) { return new Tuple, VectorBuilder>( - (MatrixBuilder) (object) new Complex.MatrixBuilder(), - (VectorBuilder) (object) new Complex.VectorBuilder()); + (MatrixBuilder)(object)new Complex.MatrixBuilder(), + (VectorBuilder)(object)new Complex.VectorBuilder()); } if (typeof (T) == typeof (Numerics.Complex32)) { return new Tuple, VectorBuilder>( - (MatrixBuilder) (object) new Complex32.MatrixBuilder(), - (VectorBuilder) (object) new Complex32.VectorBuilder()); + (MatrixBuilder)(object)new Complex32.MatrixBuilder(), + (VectorBuilder)(object)new Complex32.VectorBuilder()); } if (typeof (T) == typeof (double)) { return new Tuple, VectorBuilder>( - (MatrixBuilder) (object) new Double.MatrixBuilder(), - (VectorBuilder) (object) new Double.VectorBuilder()); + (MatrixBuilder)(object)new Double.MatrixBuilder(), + (VectorBuilder)(object)new Double.VectorBuilder()); } if (typeof (T) == typeof (float)) { return new Tuple, VectorBuilder>( - (MatrixBuilder) (object) new Single.MatrixBuilder(), - (VectorBuilder) (object) new Single.VectorBuilder()); + (MatrixBuilder)(object)new Single.MatrixBuilder(), + (VectorBuilder)(object)new Single.VectorBuilder()); } throw new NotSupportedException(); diff --git a/src/Numerics/LinearAlgebra/Matrix.Solve.cs b/src/Numerics/LinearAlgebra/Matrix.Solve.cs index 2bee0ca2..d5298e73 100644 --- a/src/Numerics/LinearAlgebra/Matrix.Solve.cs +++ b/src/Numerics/LinearAlgebra/Matrix.Solve.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -223,7 +223,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The iterative solver to use. /// Criteria to control when to stop iterating. /// The preconditioner to use for approximations. - public IterationStatus TrySolveIterative(Vector input, Vector result, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterium[] stopCriteria) + public IterationStatus TrySolveIterative(Vector input, Vector result, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterion[] stopCriteria) { var iterator = new Iterator(stopCriteria.Length == 0 ? Build.IterativeSolverStopCriteria() : stopCriteria); return TrySolveIterative(input, result, solver, iterator, preconditioner); @@ -237,7 +237,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The iterative solver to use. /// Criteria to control when to stop iterating. /// The preconditioner to use for approximations. - public IterationStatus TrySolveIterative(Matrix input, Matrix result, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterium[] stopCriteria) + public IterationStatus TrySolveIterative(Matrix input, Matrix result, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterion[] stopCriteria) { var iterator = new Iterator(stopCriteria.Length == 0 ? Build.IterativeSolverStopCriteria() : stopCriteria); return TrySolveIterative(input, result, solver, iterator, preconditioner); @@ -250,7 +250,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The result vector x. /// The iterative solver to use. /// Criteria to control when to stop iterating. - public IterationStatus TrySolveIterative(Vector input, Vector result, IIterativeSolver solver, params IIterationStopCriterium[] stopCriteria) + public IterationStatus TrySolveIterative(Vector input, Vector result, IIterativeSolver solver, params IIterationStopCriterion[] stopCriteria) { var iterator = new Iterator(stopCriteria.Length == 0 ? Build.IterativeSolverStopCriteria() : stopCriteria); return TrySolveIterative(input, result, solver, iterator); @@ -263,7 +263,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The result matrix X /// The iterative solver to use. /// Criteria to control when to stop iterating. - public IterationStatus TrySolveIterative(Matrix input, Matrix result, IIterativeSolver solver, params IIterationStopCriterium[] stopCriteria) + public IterationStatus TrySolveIterative(Matrix input, Matrix result, IIterativeSolver solver, params IIterationStopCriterion[] stopCriteria) { var iterator = new Iterator(stopCriteria.Length == 0 ? Build.IterativeSolverStopCriteria() : stopCriteria); return TrySolveIterative(input, result, solver, iterator); @@ -311,7 +311,7 @@ namespace MathNet.Numerics.LinearAlgebra /// Criteria to control when to stop iterating. /// The preconditioner to use for approximations. /// The result vector x. - public Vector SolveIterative(Vector input, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterium[] stopCriteria) + public Vector SolveIterative(Vector input, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterion[] stopCriteria) { var result = Vector.Build.Dense(RowCount); TrySolveIterative(input, result, solver, preconditioner, stopCriteria); @@ -326,7 +326,7 @@ namespace MathNet.Numerics.LinearAlgebra /// Criteria to control when to stop iterating. /// The preconditioner to use for approximations. /// The result matrix X. - public Matrix SolveIterative(Matrix input, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterium[] stopCriteria) + public Matrix SolveIterative(Matrix input, IIterativeSolver solver, IPreconditioner preconditioner, params IIterationStopCriterion[] stopCriteria) { var result = Build.Dense(input.RowCount, input.ColumnCount); TrySolveIterative(input, result, solver, preconditioner, stopCriteria); @@ -340,7 +340,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The iterative solver to use. /// Criteria to control when to stop iterating. /// The result vector x. - public Vector SolveIterative(Vector input, IIterativeSolver solver, params IIterationStopCriterium[] stopCriteria) + public Vector SolveIterative(Vector input, IIterativeSolver solver, params IIterationStopCriterion[] stopCriteria) { var result = Vector.Build.Dense(RowCount); TrySolveIterative(input, result, solver, stopCriteria); @@ -354,7 +354,7 @@ namespace MathNet.Numerics.LinearAlgebra /// The iterative solver to use. /// Criteria to control when to stop iterating. /// The result matrix X. - public Matrix SolveIterative(Matrix input, IIterativeSolver solver, params IIterationStopCriterium[] stopCriteria) + public Matrix SolveIterative(Matrix input, IIterativeSolver solver, params IIterationStopCriterion[] stopCriteria) { var result = Build.Dense(input.RowCount, input.ColumnCount); TrySolveIterative(input, result, solver, stopCriteria); diff --git a/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterion.cs similarity index 78% rename from src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterion.cs index 04778543..0820ab47 100644 --- a/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/CancellationStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -35,26 +35,26 @@ using System.Threading; namespace MathNet.Numerics.LinearAlgebra.Solvers { /// - /// Defines an that uses a cancellationn token as stop criterium. + /// Defines an that uses a cancellation token as stop criterion. /// - public sealed class CancellationStopCriterium : IIterationStopCriterium where T : struct, IEquatable, IFormattable + public sealed class CancellationStopCriterion : IIterationStopCriterion where T : struct, IEquatable, IFormattable { readonly CancellationToken _masterToken; CancellationTokenSource _currentTcs; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public CancellationStopCriterium() + public CancellationStopCriterion() { _masterToken = CancellationToken.None; _currentTcs = CancellationTokenSource.CreateLinkedTokenSource(CancellationToken.None); } /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public CancellationStopCriterium(CancellationToken masterToken) + public CancellationStopCriterion(CancellationToken masterToken) { _masterToken = masterToken; _currentTcs = CancellationTokenSource.CreateLinkedTokenSource(masterToken); @@ -62,7 +62,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current . Result is set into Status field. + /// by the current . Result is set into Status field. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -84,10 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public IterationStatus Status { [DebuggerStepThrough] - get - { - return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Continue; - } + get { return _currentTcs.Token.IsCancellationRequested ? IterationStatus.Cancelled : IterationStatus.Continue; } } public void Cancel() @@ -96,7 +93,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Resets the to the pre-calculation state. + /// Resets the to the pre-calculation state. /// public void Reset() { @@ -104,12 +101,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Clones the current and its settings. + /// Clones the current and its settings. /// - /// A new instance of the class. - public IIterationStopCriterium Clone() + /// A new instance of the class. + public IIterationStopCriterion Clone() { - return new CancellationStopCriterium(_masterToken); + return new CancellationStopCriterion(_masterToken); } } } diff --git a/src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterion.cs similarity index 89% rename from src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterion.cs index 3374d538..6534e8f5 100644 --- a/src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/DivergenceStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2010 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -36,7 +36,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Monitors an iterative calculation for signs of divergence. /// - public sealed class DivergenceStopCriterium : IIterationStopCriterium where T : struct, IEquatable, IFormattable + public sealed class DivergenceStopCriterion : IIterationStopCriterion where T : struct, IEquatable, IFormattable { /// /// The maximum relative increase the residual may experience without triggering a divergence warning. @@ -64,12 +64,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers int _lastIteration = -1; /// - /// Initializes a new instance of the class with the specified maximum + /// Initializes a new instance of the class with the specified maximum /// relative increase and the specified minimum number of tracking iterations. /// /// The maximum relative increase that the residual may experience before a divergence warning is issued. /// The minimum number of iterations over which the residual must grow before a divergence warning is issued. - public DivergenceStopCriterium(double maximumRelativeIncrease = 0.08, int minimumIterations = 10) + public DivergenceStopCriterion(double maximumRelativeIncrease = 0.08, int minimumIterations = 10) { if (maximumRelativeIncrease <= 0) { @@ -93,10 +93,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public double MaximumRelativeIncrease { [DebuggerStepThrough] - get - { - return _maximumRelativeIncrease; - } + get { return _maximumRelativeIncrease; } [DebuggerStepThrough] set @@ -118,10 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public int MinimumNumberOfIterations { [DebuggerStepThrough] - get - { - return _minimumNumberOfIterations; - } + get { return _minimumNumberOfIterations; } [DebuggerStepThrough] set @@ -139,7 +133,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current . Result is set into Status field. + /// by the current . Result is set into Status field. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -147,7 +141,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The vector containing the current residual vectors. /// /// The individual stop criteria may internally track the progress of the calculation based - /// on the invocation of this method. Therefore this method should only be called if the + /// on the invocation of this method. Therefore this method should only be called if the /// calculation has moved forwards at least one step. /// public IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector) @@ -227,10 +221,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers int RequiredHistoryLength { [DebuggerStepThrough] - get - { - return _minimumNumberOfIterations + 1; - } + get { return _minimumNumberOfIterations + 1; } } /// @@ -239,14 +230,11 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public IterationStatus Status { [DebuggerStepThrough] - get - { - return _status; - } + get { return _status; } } /// - /// Resets the to the pre-calculation state. + /// Resets the to the pre-calculation state. /// public void Reset() { @@ -256,12 +244,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Clones the current and its settings. + /// Clones the current and its settings. /// - /// A new instance of the class. - public IIterationStopCriterium Clone() + /// A new instance of the class. + public IIterationStopCriterion Clone() { - return new DivergenceStopCriterium(_maximumRelativeIncrease, _minimumNumberOfIterations); + return new DivergenceStopCriterion(_maximumRelativeIncrease, _minimumNumberOfIterations); } } } diff --git a/src/Numerics/LinearAlgebra/Solvers/FailureStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/FailureStopCriterion.cs similarity index 85% rename from src/Numerics/LinearAlgebra/Solvers/FailureStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/FailureStopCriterion.cs index 1f2e0e97..b1381489 100644 --- a/src/Numerics/LinearAlgebra/Solvers/FailureStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/FailureStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2010 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -35,9 +35,9 @@ using MathNet.Numerics.Properties; namespace MathNet.Numerics.LinearAlgebra.Solvers { /// - /// Defines an that monitors residuals for NaN's. + /// Defines an that monitors residuals for NaN's. /// - public sealed class FailureStopCriterium : IIterationStopCriterium where T : struct, IEquatable, IFormattable + public sealed class FailureStopCriterion : IIterationStopCriterion where T : struct, IEquatable, IFormattable { /// /// The status of the calculation @@ -51,7 +51,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current . Result is set into Status field. + /// by the current . Result is set into Status field. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -59,7 +59,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The vector containing the current residual vectors. /// /// The individual stop criteria may internally track the progress of the calculation based - /// on the invocation of this method. Therefore this method should only be called if the + /// on the invocation of this method. Therefore this method should only be called if the /// calculation has moved forwards at least one step. /// public IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector) @@ -97,14 +97,11 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public IterationStatus Status { [DebuggerStepThrough] - get - { - return _status; - } + get { return _status; } } /// - /// Resets the to the pre-calculation state. + /// Resets the to the pre-calculation state. /// public void Reset() { @@ -113,12 +110,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Clones the current and its settings. + /// Clones the current and its settings. /// - /// A new instance of the class. - public IIterationStopCriterium Clone() + /// A new instance of the class. + public IIterationStopCriterion Clone() { - return new FailureStopCriterium(); + return new FailureStopCriterion(); } } } diff --git a/src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterion.cs similarity index 87% rename from src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterion.cs index 29718f91..0233a3c1 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IIterationStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -33,13 +33,13 @@ using System; namespace MathNet.Numerics.LinearAlgebra.Solvers { /// - /// The base interface for classes that provide stop criteria for iterative calculations. + /// The base interface for classes that provide stop criteria for iterative calculations. /// - public interface IIterationStopCriterium where T : struct, IEquatable, IFormattable + public interface IIterationStopCriterion where T : struct, IEquatable, IFormattable { /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current IIterationStopCriterium. Status is set to Status field of current object. + /// by the current IIterationStopCriterion. Status is set to Status field of current object. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -47,7 +47,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The vector containing the current residual vectors. /// /// The individual stop criteria may internally track the progress of the calculation based - /// on the invocation of this method. Therefore this method should only be called if the + /// on the invocation of this method. Therefore this method should only be called if the /// calculation has moved forwards at least one step. /// IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector); @@ -59,13 +59,13 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers IterationStatus Status { get; } /// - /// Resets the IIterationStopCriterium to the pre-calculation state. + /// Resets the IIterationStopCriterion to the pre-calculation state. /// /// To implementers: Invoking this method should not clear the user defined - /// property values, only the state that is used to track the progress of the + /// property values, only the state that is used to track the progress of the /// calculation. void Reset(); - IIterationStopCriterium Clone(); + IIterationStopCriterion Clone(); } } diff --git a/src/Numerics/LinearAlgebra/Solvers/IIterativeSolver.cs b/src/Numerics/LinearAlgebra/Solvers/IIterativeSolver.cs index 13bf041c..a8be5cf0 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IIterativeSolver.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IIterativeSolver.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/LinearAlgebra/Solvers/IIterativeSolverSetup.cs b/src/Numerics/LinearAlgebra/Solvers/IIterativeSolverSetup.cs index 82a1012b..6c0f19f8 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IIterativeSolverSetup.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IIterativeSolverSetup.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/LinearAlgebra/Solvers/IPreconditioner.cs b/src/Numerics/LinearAlgebra/Solvers/IPreconditioner.cs index 8bb2cf87..a6ca653d 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IPreconditioner.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IPreconditioner.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterion.cs similarity index 83% rename from src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterion.cs index 54d59750..465b146e 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IterationCountStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,10 +34,10 @@ using System.Diagnostics; namespace MathNet.Numerics.LinearAlgebra.Solvers { /// - /// Defines an that monitors the numbers of iteration - /// steps as stop criterium. + /// Defines an that monitors the numbers of iteration + /// steps as stop criterion. /// - public sealed class IterationCountStopCriterium : IIterationStopCriterium where T : struct, IEquatable, IFormattable + public sealed class IterationCountStopCriterion : IIterationStopCriterion where T : struct, IEquatable, IFormattable { /// /// The default value for the maximum number of iterations the process is allowed @@ -56,19 +56,19 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers IterationStatus _status = IterationStatus.Continue; /// - /// Initializes a new instance of the class with the default maximum + /// Initializes a new instance of the class with the default maximum /// number of iterations. /// - public IterationCountStopCriterium() : this(DefaultMaximumNumberOfIterations) + public IterationCountStopCriterion() : this(DefaultMaximumNumberOfIterations) { } /// - /// Initializes a new instance of the class with the specified maximum + /// Initializes a new instance of the class with the specified maximum /// number of iterations. /// /// The maximum number of iterations the calculation is allowed to perform. - public IterationCountStopCriterium(int maximumNumberOfIterations) + public IterationCountStopCriterion(int maximumNumberOfIterations) { if (maximumNumberOfIterations < 1) { @@ -85,10 +85,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public int MaximumNumberOfIterations { [DebuggerStepThrough] - get - { - return _maximumNumberOfIterations; - } + get { return _maximumNumberOfIterations; } [DebuggerStepThrough] set @@ -112,7 +109,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current . Result is set into Status field. + /// by the current . Result is set into Status field. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -141,14 +138,11 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public IterationStatus Status { [DebuggerStepThrough] - get - { - return _status; - } + get { return _status; } } /// - /// Resets the to the pre-calculation state. + /// Resets the to the pre-calculation state. /// public void Reset() { @@ -156,12 +150,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Clones the current and its settings. + /// Clones the current and its settings. /// - /// A new instance of the class. - public IIterationStopCriterium Clone() + /// A new instance of the class. + public IIterationStopCriterion Clone() { - return new IterationCountStopCriterium(_maximumNumberOfIterations); + return new IterationCountStopCriterion(_maximumNumberOfIterations); } } } diff --git a/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs b/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs index d70d8360..48493f7a 100644 --- a/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs +++ b/src/Numerics/LinearAlgebra/Solvers/IterationStatus.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2010 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/LinearAlgebra/Solvers/Iterator.cs b/src/Numerics/LinearAlgebra/Solvers/Iterator.cs index a0b6b9d0..9478e37d 100644 --- a/src/Numerics/LinearAlgebra/Solvers/Iterator.cs +++ b/src/Numerics/LinearAlgebra/Solvers/Iterator.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The collection that holds all the stop criteria and the flag indicating if they should be added /// to the child iterators. /// - readonly List> _stopCriteria; + readonly List> _stopCriteria; /// /// The status of the iterator. @@ -56,31 +56,31 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// public Iterator() { - _stopCriteria = new List>(Matrix.Build.IterativeSolverStopCriteria()); + _stopCriteria = new List>(Matrix.Build.IterativeSolverStopCriteria()); } /// /// Initializes a new instance of the class with the specified stop criteria. /// /// - /// The specified stop criteria. Only one stop criterium of each type can be passed in. None + /// The specified stop criteria. Only one stop criterion of each type can be passed in. None /// of the stop criteria will be passed on to child iterators. /// - public Iterator(params IIterationStopCriterium[] stopCriteria) + public Iterator(params IIterationStopCriterion[] stopCriteria) { - _stopCriteria = new List>(stopCriteria); + _stopCriteria = new List>(stopCriteria); } /// /// Initializes a new instance of the class with the specified stop criteria. /// /// - /// The specified stop criteria. Only one stop criterium of each type can be passed in. None + /// The specified stop criteria. Only one stop criterion of each type can be passed in. None /// of the stop criteria will be passed on to child iterators. /// - public Iterator(IEnumerable> stopCriteria) + public Iterator(IEnumerable> stopCriteria) { - _stopCriteria = new List>(stopCriteria); + _stopCriteria = new List>(stopCriteria); } /// @@ -101,14 +101,14 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The vector containing the current residual vectors. /// /// The individual iterators may internally track the progress of the calculation based - /// on the invocation of this method. Therefore this method should only be called if the + /// on the invocation of this method. Therefore this method should only be called if the /// calculation has moved forwards at least one step. /// public IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector) { if (_stopCriteria.Count == 0) { - throw new ArgumentException(Resources.StopCriteriumMissing); + throw new ArgumentException(Resources.StopCriterionMissing); } if (iterationNumber < 0) @@ -122,9 +122,9 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers return _status; } - foreach (var stopCriterium in _stopCriteria) + foreach (var stopCriterion in _stopCriteria) { - var status = stopCriterium.DetermineStatus(iterationNumber, solutionVector, sourceVector, residualVector); + var status = stopCriterion.DetermineStatus(iterationNumber, solutionVector, sourceVector, residualVector); if (status == IterationStatus.Continue) { continue; @@ -159,9 +159,9 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers { _status = IterationStatus.Continue; - foreach (var stopCriterium in _stopCriteria) + foreach (var stopCriterion in _stopCriteria) { - stopCriterium.Reset(); + stopCriterion.Reset(); } } diff --git a/src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterium.cs b/src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterion.cs similarity index 84% rename from src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterium.cs rename to src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterion.cs index 85cc5e18..0c2ef216 100644 --- a/src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterium.cs +++ b/src/Numerics/LinearAlgebra/Solvers/ResidualStopCriterion.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2010 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -35,9 +35,9 @@ using MathNet.Numerics.Properties; namespace MathNet.Numerics.LinearAlgebra.Solvers { /// - /// Defines an that monitors residuals as stop criterium. + /// Defines an that monitors residuals as stop criterion. /// - public sealed class ResidualStopCriterium : IIterationStopCriterium where T : struct, IEquatable, IFormattable + public sealed class ResidualStopCriterion : IIterationStopCriterion where T : struct, IEquatable, IFormattable { /// /// The maximum value for the residual below which the calculation is considered converged. @@ -66,7 +66,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers int _lastIteration = -1; /// - /// Initializes a new instance of the class with the specified + /// Initializes a new instance of the class with the specified /// maximum residual and minimum number of iterations. /// /// @@ -76,7 +76,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The minimum number of iterations for which the residual has to be below the maximum before /// the calculation is considered converged. /// - public ResidualStopCriterium(double maximum, int minimumIterationsBelowMaximum = 0) + public ResidualStopCriterion(double maximum, int minimumIterationsBelowMaximum = 0) { if (maximum < 0) { @@ -93,17 +93,14 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Gets or sets the maximum value for the residual below which the calculation is considered + /// Gets or sets the maximum value for the residual below which the calculation is considered /// converged. /// /// Thrown if the Maximum is set to a negative value. public double Maximum { [DebuggerStepThrough] - get - { - return _maximum; - } + get { return _maximum; } [DebuggerStepThrough] set @@ -125,10 +122,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public int MinimumIterationsBelowMaximum { [DebuggerStepThrough] - get - { - return _minimumIterationsBelowMaximum; - } + get { return _minimumIterationsBelowMaximum; } [DebuggerStepThrough] set @@ -144,7 +138,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// /// Determines the status of the iterative calculation based on the stop criteria stored - /// by the current . Result is set into Status field. + /// by the current . Result is set into Status field. /// /// The number of iterations that have passed so far. /// The vector containing the current solution values. @@ -152,7 +146,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The vector containing the current residual vectors. /// /// The individual stop criteria may internally track the progress of the calculation based - /// on the invocation of this method. Therefore this method should only be called if the + /// on the invocation of this method. Therefore this method should only be called if the /// calculation has moved forwards at least one step. /// public IterationStatus DetermineStatus(int iterationNumber, Vector solutionVector, Vector sourceVector, Vector residualVector) @@ -179,22 +173,22 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers var residualNorm = residualVector.InfinityNorm(); - // This is criterium 1 from Templates for the solution of linear systems. - // The problem with this criterium is that it's not limiting enough. For now + // This is criterion 1 from Templates for the solution of linear systems. + // The problem with this criterion is that it's not limiting enough. For now // we won't use it. Later on we might get back to it. // return mMaximumResidual * (System.Math.Abs(mMatrixNorm) * System.Math.Abs(solutionNorm) + System.Math.Abs(mVectorNorm)); - // For now use criterium 2 from Templates for the solution of linear systems. See page 60. + // For now use criterion 2 from Templates for the solution of linear systems. See page 60. // Check the residuals by calculating: // ||r_i|| <= stop_tol * ||b|| - var stopCriterium = _maximum * sourceVector.InfinityNorm(); + var stopCriterion = _maximum*sourceVector.InfinityNorm(); // First check that we have real numbers not NaN's. // NaN's can occur when the iterative process diverges so we // stop if that is the case. - if (double.IsNaN(stopCriterium) || double.IsNaN(residualNorm)) + if (double.IsNaN(stopCriterion) || double.IsNaN(residualNorm)) { _iterationCount = 0; _status = IterationStatus.Diverged; @@ -203,7 +197,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers // ||r_i|| <= stop_tol * ||b|| // Stop the calculation if it's clearly smaller than the tolerance - if (residualNorm < stopCriterium) + if (residualNorm < stopCriterion) { if (_lastIteration <= iterationNumber) { @@ -227,14 +221,11 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers public IterationStatus Status { [DebuggerStepThrough] - get - { - return _status; - } + get { return _status; } } /// - /// Resets the to the pre-calculation state. + /// Resets the to the pre-calculation state. /// public void Reset() { @@ -244,12 +235,12 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } /// - /// Clones the current and its settings. + /// Clones the current and its settings. /// - /// A new instance of the class. - public IIterationStopCriterium Clone() + /// A new instance of the class. + public IIterationStopCriterion Clone() { - return new ResidualStopCriterium(_maximum, _minimumIterationsBelowMaximum); + return new ResidualStopCriterion(_maximum, _minimumIterationsBelowMaximum); } } } diff --git a/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs b/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs index e8c8f5aa..2c6197b4 100644 --- a/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs +++ b/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/LinearAlgebra/Solvers/UnitPreconditioner.cs b/src/Numerics/LinearAlgebra/Solvers/UnitPreconditioner.cs index 1079ebcc..a7485284 100644 --- a/src/Numerics/LinearAlgebra/Solvers/UnitPreconditioner.cs +++ b/src/Numerics/LinearAlgebra/Solvers/UnitPreconditioner.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation diff --git a/src/Numerics/Numerics.csproj b/src/Numerics/Numerics.csproj index 0d27b347..7889971d 100644 --- a/src/Numerics/Numerics.csproj +++ b/src/Numerics/Numerics.csproj @@ -141,10 +141,10 @@ - + - + @@ -249,7 +249,7 @@ - + @@ -331,8 +331,8 @@ - - + + @@ -358,7 +358,7 @@ - + diff --git a/src/Numerics/Properties/Resources.Designer.cs b/src/Numerics/Properties/Resources.Designer.cs index d0d0314d..dfec22f9 100644 --- a/src/Numerics/Properties/Resources.Designer.cs +++ b/src/Numerics/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34003 +// Runtime Version:4.0.30319.34014 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -817,20 +817,20 @@ namespace MathNet.Numerics.Properties { } /// - /// Looks up a localized string similar to The given stop criterium already exist in the collection.. + /// Looks up a localized string similar to The given stop criterion already exist in the collection.. /// - public static string StopCriteriumDuplicate { + public static string StopCriterionDuplicate { get { - return ResourceManager.GetString("StopCriteriumDuplicate", resourceCulture); + return ResourceManager.GetString("StopCriterionDuplicate", resourceCulture); } } /// - /// Looks up a localized string similar to There is no stop criterium in the collection.. + /// Looks up a localized string similar to There is no stop criterion in the collection.. /// - public static string StopCriteriumMissing { + public static string StopCriterionMissing { get { - return ResourceManager.GetString("StopCriteriumMissing", resourceCulture); + return ResourceManager.GetString("StopCriterionMissing", resourceCulture); } } diff --git a/src/Numerics/Properties/Resources.resx b/src/Numerics/Properties/Resources.resx index a4040582..094445fd 100644 --- a/src/Numerics/Properties/Resources.resx +++ b/src/Numerics/Properties/Resources.resx @@ -342,11 +342,11 @@ {0} is not a supported type. - - The given stop criterium already exist in the collection. + + The given stop criterion already exist in the collection. - - There is no stop criterium in the collection. + + There is no stop criterion in the collection. Name cannot contain a space. name: {0} diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs index d99ca5b5..820f65ae 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -41,6 +41,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// @@ -99,10 +100,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -142,10 +143,10 @@ 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 IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + var monitor = new Iterator(new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -218,10 +219,10 @@ 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 IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + var monitor = new Iterator(new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -258,8 +259,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new BiCgStab(); @@ -289,8 +290,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 87ef7729..02bc7f8b 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -41,6 +41,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// @@ -99,10 +100,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -143,10 +144,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -220,10 +221,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -260,8 +261,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new GpBiCg(); @@ -291,8 +292,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 7595d232..2b9c319a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -41,6 +41,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// @@ -99,10 +100,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -143,10 +144,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -220,10 +221,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -260,8 +261,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new MlkBiCgStab(); @@ -291,8 +292,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 8ad3d79a..12d8ccf6 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -41,6 +41,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// @@ -99,10 +100,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -140,10 +141,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -214,10 +215,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -251,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new TFQMR(); @@ -282,8 +283,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs index 4ebfe2b0..873279db 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -40,6 +40,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// @@ -68,12 +69,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers [Test] public void DetermineStatusWithNegativeIterationNumberThrowsArgumentOutOfRangeException() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(), - new ResidualStopCriterium(1e-12) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(), + new ResidualStopCriterion(1e-12) }; var iterator = new Iterator(criteria); @@ -90,11 +91,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers [Test] public void DetermineStatus() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); @@ -122,11 +123,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers [Test] public void ResetToPrecalculationState() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs similarity index 63% rename from src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs index 7c680881..9ba8b900 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,19 +34,20 @@ using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterion { #if NOSYSNUMERICS using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// - /// Divergence stop criterium test. + /// Divergence stop criterion test. /// [TestFixture, Category("LASolver")] - public sealed class DivergenceStopCriteriumTest + public sealed class DivergenceStopCriterionTest { /// /// Create with negative maximum increase throws ArgumentOutOfRangeException. @@ -54,7 +55,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void CreateWithNegativeMaximumIncreaseThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -63,20 +64,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(minimumIterations: 2), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(minimumIterations: 2), Throws.TypeOf()); } /// - /// Can create stop criterium. + /// Can create stop criterion. /// [Test] public void Create() { - var criterium = new DivergenceStopCriterium(0.1, 3); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(0.1, 3); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.AreEqual(0.1, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(3, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(0.1, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(3, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); } /// @@ -85,8 +86,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new DivergenceStopCriterium(0.5, 15); - Assert.That(() => criterium.DetermineStatus( + var criterion = new DivergenceStopCriterion(0.5, 15); + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -102,16 +103,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 1; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex((i + 1)*(Increase + 0.1), 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex((i + 1)*(Increase + 0.1), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -126,16 +127,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we won't have enough increase for (var i = 0; i < Iterations*2; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex((i + 1)*(Increase - 0.01), 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex((i + 1)*(Increase - 0.01), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -150,26 +151,26 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 5; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex((i + 1)*(Increase - 0.01), 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex((i + 1)*(Increase - 0.01), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Now make it fail by throwing in a NaN - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(double.NaN, 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(double.NaN, 0) })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -183,29 +184,29 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have one to few iterations double previous = 1; for (var i = 0; i < Iterations - 1; i++) { previous *= 1 + Increase + 0.01; - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(previous, 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(previous, 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Add the final residual. Now we should have divergence previous *= 1 + Increase + 0.01; - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations - 1, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(previous, 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(previous, 0) })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -219,27 +220,27 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. Blow it up instantly - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( 1, - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(1.0, 0)}), - new DenseVector(new[] {new Complex(double.NaN, 0)})); + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(1.0, 0) }), + new DenseVector(new[] { new Complex(double.NaN, 0) })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); // Reset the state - criterium.Reset(); + criterion.Reset(); - Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail."); + Assert.AreEqual(Increase, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(Iterations, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Status check fail."); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() @@ -247,17 +248,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(Increase, Iterations); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(DivergenceStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (DivergenceStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as DivergenceStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as DivergenceStopCriterion; + Assert.IsNotNull(clonedCriterion); - Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(criterion.MaximumRelativeIncrease, clonedCriterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(criterion.MinimumNumberOfIterations, clonedCriterion.MinimumNumberOfIterations, "Incorrect iteration count"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/FailureStopCriteriumTest.cs similarity index 53% rename from src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/FailureStopCriteriumTest.cs index 2becfbbd..9c34a3be 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/FailureStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/FailureStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,19 +34,20 @@ using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterion { #if NOSYSNUMERICS using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// - /// Failure stop criterium tests. + /// Failure stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class FailureStopCriteriumTest + public sealed class FailureStopCriterionTest { /// /// Can create. @@ -54,8 +55,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void Create() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "Should have a criterium now"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "Should have a criterion now"); } /// @@ -64,10 +65,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); } /// @@ -76,10 +77,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); + Assert.That(() => criterion.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); } /// @@ -88,14 +89,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2.0, 0)}); - var source = new DenseVector(new[] {new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0)}); - var residual = new DenseVector(new[] {new Complex(1000, 0), new Complex(double.NaN, 0), new Complex(2001, 0)}); + var solution = new DenseVector(new[] { new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2.0, 0) }); + var source = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) }); + var residual = new DenseVector(new[] { new Complex(1000, 0), new Complex(double.NaN, 0), new Complex(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -105,14 +106,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithSolutionNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex(1.0, 0), new Complex(1.0, 0), new Complex(double.NaN, 0)}); - var source = new DenseVector(new[] {new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0)}); - var residual = new DenseVector(new[] {new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0)}); + var solution = new DenseVector(new[] { new Complex(1.0, 0), new Complex(1.0, 0), new Complex(double.NaN, 0) }); + var source = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) }); + var residual = new DenseVector(new[] { new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -122,14 +123,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatus() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex(3.0, 0), new Complex(2.0, 0), new Complex(1, 0)}); - var source = new DenseVector(new[] {new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0)}); - var residual = new DenseVector(new[] {new Complex(1.0, 0), new Complex(2.0, 0), new Complex(3, 0)}); + var solution = new DenseVector(new[] { new Complex(3.0, 0), new Complex(2.0, 0), new Complex(1, 0) }); + var source = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) }); + var residual = new DenseVector(new[] { new Complex(1.0, 0), new Complex(2.0, 0), new Complex(3, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); } @@ -139,30 +140,30 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void ResetCalculationState() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2, 0)}); - var source = new DenseVector(new[] {new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0)}); - var residual = new DenseVector(new[] {new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0)}); + var solution = new DenseVector(new[] { new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2, 0) }); + var source = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) }); + var residual = new DenseVector(new[] { new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(FailureStopCriterium), clone, "Wrong criterium type"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (FailureStopCriterion), clone, "Wrong criterion type"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs similarity index 65% rename from src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs index fef46afc..b45b3c86 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs @@ -1,4 +1,4 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics @@ -33,19 +33,20 @@ using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterion { #if NOSYSNUMERICS using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// - /// Iteration count stop criterium tests. + /// Iteration count stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class IterationCountStopCriteriumTest + public sealed class IterationCountStopCriterionTest { /// /// Create with illegal minimum iterations throws ArgumentOutOfRangeException. @@ -53,7 +54,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new IterationCountStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new IterationCountStopCriterion(-1), Throws.TypeOf()); } /// @@ -62,8 +63,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void Create() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); } /// @@ -72,13 +73,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void ResetMaximumIterations() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); - criterium.ResetMaximumNumberOfIterationsToDefault(); - Assert.AreNotEqual(10, criterium.MaximumNumberOfIterations, "Should have reset"); - Assert.AreEqual(IterationCountStopCriterium.DefaultMaximumNumberOfIterations, criterium.MaximumNumberOfIterations, "Reset to the wrong value"); + criterion.ResetMaximumNumberOfIterationsToDefault(); + Assert.AreNotEqual(10, criterion.MaximumNumberOfIterations, "Should have reset"); + Assert.AreEqual(IterationCountStopCriterion.DefaultMaximumNumberOfIterations, criterion.MaximumNumberOfIterations, "Reset to the wrong value"); } /// @@ -87,10 +88,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); } /// @@ -99,13 +100,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatus() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - var status2 = criterium.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status2 = criterion.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished"); } @@ -115,34 +116,34 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void ResetCalculationState() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone a stop criterium. + /// Can clone a stop criterion. /// [Test] public void Clone() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(IterationCountStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (IterationCountStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as IterationCountStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as IterationCountStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.MaximumNumberOfIterations, clonedCriterium.MaximumNumberOfIterations, "Clone failed"); + Assert.AreEqual(criterion.MaximumNumberOfIterations, clonedCriterion.MaximumNumberOfIterations, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/ResidualStopCriteriumTest.cs similarity index 61% rename from src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/ResidualStopCriteriumTest.cs index 96ed2f0e..a2d09cc3 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterion/ResidualStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,19 +34,20 @@ using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCriterion { #if NOSYSNUMERICS using Complex = Numerics.Complex; #else using Complex = System.Numerics.Complex; + #endif /// - /// Residual stop criterium tests. + /// Residual stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class ResidualStopCriteriumTest + public sealed class ResidualStopCriterionTest { /// /// Create with negative maximum throws ArgumentOutOfRangeException. @@ -54,7 +55,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void CreateWithNegativeMaximumThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -63,7 +64,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-1), Throws.TypeOf()); } /// @@ -72,10 +73,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void Create() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.AreEqual(1e-8, criterium.Maximum, "Incorrect maximum"); - Assert.AreEqual(50, criterium.MinimumIterationsBelowMaximum, "Incorrect iteration count"); + Assert.AreEqual(1e-8, criterion.Maximum, "Incorrect maximum"); + Assert.AreEqual(50, criterion.MinimumIterationsBelowMaximum, "Incorrect iteration count"); } /// @@ -84,9 +85,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -99,9 +100,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithNonMatchingSolutionVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(4, 4), Vector.Build.Dense(3, 4), @@ -114,9 +115,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithNonMatchingSourceVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(4, 4), @@ -129,9 +130,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithNonMatchingResidualVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 4), @@ -144,13 +145,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithSourceNaN() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); - var solution = new DenseVector(new[] {new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1)}); - var source = new DenseVector(new[] {new Complex(1.0, 1), new Complex(1.0, 1), new Complex(double.NaN, 1)}); - var residual = new DenseVector(new[] {new Complex(1000.0, 1), new Complex(1000.0, 1), new Complex(2001.0, 1)}); + var solution = new DenseVector(new[] { new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1) }); + var source = new DenseVector(new[] { new Complex(1.0, 1), new Complex(1.0, 1), new Complex(double.NaN, 1) }); + var residual = new DenseVector(new[] { new Complex(1000.0, 1), new Complex(1000.0, 1), new Complex(2001.0, 1) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -160,13 +161,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); - var solution = new DenseVector(new[] {new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1)}); - var source = new DenseVector(new[] {new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1)}); - var residual = new DenseVector(new[] {new Complex(1000.0, 1), new Complex(double.NaN, 1), new Complex(2001.0, 1)}); + var solution = new DenseVector(new[] { new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1) }); + var source = new DenseVector(new[] { new Complex(1.0, 1), new Complex(1.0, 1), new Complex(2.0, 1) }); + var residual = new DenseVector(new[] { new Complex(1000.0, 1), new Complex(double.NaN, 1), new Complex(2001.0, 1) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -175,18 +176,18 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit /// /// Bugfix: The unit tests for the BiCgStab solver run with a super simple matrix equation /// which converges at the first iteration. The default settings for the - /// residual stop criterium should be able to handle this. + /// residual stop criterion should be able to handle this. /// [Test] public void DetermineStatusWithConvergenceAtFirstIteration() { - var criterium = new ResidualStopCriterium(1e-12); + var criterion = new ResidualStopCriterion(1e-12); - var solution = new DenseVector(new[] {Complex.One, Complex.One, Complex.One}); - var source = new DenseVector(new[] {Complex.One, Complex.One, Complex.One}); - var residual = new DenseVector(new[] {Complex.Zero, Complex.Zero, Complex.Zero}); + var solution = new DenseVector(new[] { Complex.One, Complex.One, Complex.One }); + var source = new DenseVector(new[] { Complex.One, Complex.One, Complex.One }); + var residual = new DenseVector(new[] { Complex.Zero, Complex.Zero, Complex.Zero }); - var status = criterium.DetermineStatus(0, solution, source, residual); + var status = criterion.DetermineStatus(0, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status, "Should be done"); } @@ -196,21 +197,21 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void DetermineStatus() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); // the solution vector isn't actually being used so ... - var solution = new DenseVector(new[] {new Complex(double.NaN, double.NaN), new Complex(double.NaN, double.NaN), new Complex(double.NaN, double.NaN)}); + var solution = new DenseVector(new[] { new Complex(double.NaN, double.NaN), new Complex(double.NaN, double.NaN), new Complex(double.NaN, double.NaN) }); // Set the source values - var source = new DenseVector(new[] {new Complex(1.000, 1), new Complex(1.000, 1), new Complex(2.001, 1)}); + var source = new DenseVector(new[] { new Complex(1.000, 1), new Complex(1.000, 1), new Complex(2.001, 1) }); // Set the residual values - var residual = new DenseVector(new[] {new Complex(0.001, 0), new Complex(0.001, 0), new Complex(0.002, 0)}); + var residual = new DenseVector(new[] { new Complex(0.001, 0), new Complex(0.001, 0), new Complex(0.002, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should still be running"); - var status2 = criterium.DetermineStatus(16, solution, source, residual); + var status2 = criterion.DetermineStatus(16, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status2, "Should be done"); } @@ -220,36 +221,36 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.StopCrit [Test] public void ResetCalculationState() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); - var solution = new DenseVector(new[] {new Complex(0.001, 1), new Complex(0.001, 1), new Complex(0.002, 1)}); - var source = new DenseVector(new[] {new Complex(0.001, 1), new Complex(0.001, 1), new Complex(0.002, 1)}); - var residual = new DenseVector(new[] {new Complex(1.000, 0), new Complex(1.000, 0), new Complex(2.001, 0)}); + var solution = new DenseVector(new[] { new Complex(0.001, 1), new Complex(0.001, 1), new Complex(0.002, 1) }); + var source = new DenseVector(new[] { new Complex(0.001, 1), new Complex(0.001, 1), new Complex(0.002, 1) }); + var residual = new DenseVector(new[] { new Complex(1.000, 0), new Complex(1.000, 0), new Complex(2.001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(ResidualStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (ResidualStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as ResidualStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as ResidualStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.Maximum, clonedCriterium.Maximum, "Clone failed"); - Assert.AreEqual(criterium.MinimumIterationsBelowMaximum, clonedCriterium.MinimumIterationsBelowMaximum, "Clone failed"); + Assert.AreEqual(criterion.Maximum, clonedCriterion.Maximum, "Clone failed"); + Assert.AreEqual(criterion.MinimumIterationsBelowMaximum, clonedCriterion.MinimumIterationsBelowMaximum, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs index 46749baf..56845219 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -95,10 +95,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -132,17 +132,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply(new Complex32((float) Math.PI, (float) Math.PI), matrix); + matrix.Multiply(new Complex32((float)Math.PI, (float)Math.PI), matrix); // Create the y vector 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 IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -216,10 +216,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new BiCgStab(); @@ -275,8 +275,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -298,8 +298,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -323,8 +323,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs index 1fec972d..f12c8892 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -95,10 +95,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -132,17 +132,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -216,10 +216,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new GpBiCg(); @@ -275,8 +275,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } return; diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs index ecab3c7a..a62cdbe5 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -95,10 +95,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -132,17 +132,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -216,10 +216,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new MlkBiCgStab(); @@ -275,8 +275,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -298,8 +298,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -323,8 +323,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs index 51ce8573..7d10baaa 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -95,10 +95,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -129,17 +129,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -210,10 +210,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -247,8 +247,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new TFQMR(); @@ -266,8 +266,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Real, matrixBReconstruct[i].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i].Imaginary, matrixBReconstruct[i].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -289,8 +289,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -314,8 +314,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float) Math.Pow(1.0/10.0, iteration - 3)); - Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, (float)Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs index 5798f6ed..ba20b4f2 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -64,12 +64,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers [Test] public void DetermineStatusWithNegativeIterationNumberThrowsArgumentOutOfRangeException() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(), - new ResidualStopCriterium(1e-6) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(), + new ResidualStopCriterion(1e-6) }; var iterator = new Iterator(criteria); @@ -86,11 +86,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers [Test] public void DetermineStatus() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); @@ -118,11 +118,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers [Test] public void ResetToPrecalculationState() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs similarity index 62% rename from src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs index 535a96ea..5dda28c8 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,15 +34,15 @@ using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterion { using Numerics; /// - /// Divergence stop criterium test. + /// Divergence stop criterion test. /// [TestFixture, Category("LASolver")] - public sealed class DivergenceStopCriteriumTest + public sealed class DivergenceStopCriterionTest { /// /// Create with negative maximum increase throws ArgumentOutOfRangeException. @@ -50,7 +50,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void CreateWithNegativeMaximumIncreaseThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -59,20 +59,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(minimumIterations: 2), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(minimumIterations: 2), Throws.TypeOf()); } /// - /// Can create stop criterium. + /// Can create stop criterion. /// [Test] public void Create() { - var criterium = new DivergenceStopCriterium(0.1, 3); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(0.1, 3); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.AreEqual(0.1, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(3, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(0.1, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(3, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); } /// @@ -81,8 +81,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new DivergenceStopCriterium(0.5, 15); - Assert.That(() => criterium.DetermineStatus( + var criterion = new DivergenceStopCriterion(0.5, 15); + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -98,16 +98,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 1; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32((i + 1)*(Increase + 0.1f), 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32((i + 1)*(Increase + 0.1f), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } } @@ -121,16 +121,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we won't have enough increase for (var i = 0; i < Iterations*2; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32((i + 1)*(Increase - 0.01f), 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32((i + 1)*(Increase - 0.01f), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -145,26 +145,26 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 5; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32((i + 1)*(Increase - 0.01f), 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32((i + 1)*(Increase - 0.01f), 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Now make it fail by throwing in a NaN - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(float.NaN, 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(float.NaN, 0) })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -178,29 +178,29 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have one to few iterations float previous = 1; for (var i = 0; i < Iterations - 1; i++) { previous *= 1 + Increase + 0.01f; - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(previous, 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(previous, 0) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Add the final residual. Now we should have divergence previous *= 1 + Increase + 0.01f; - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations - 1, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(previous, 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(previous, 0) })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -214,27 +214,27 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. Blow it up instantly - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( 1, - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(1.0f, 0)}), - new DenseVector(new[] {new Complex32(float.NaN, 0)})); + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(1.0f, 0) }), + new DenseVector(new[] { new Complex32(float.NaN, 0) })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); // Reset the state - criterium.Reset(); + criterion.Reset(); - Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail."); + Assert.AreEqual(Increase, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(Iterations, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Status check fail."); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() @@ -242,17 +242,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(Increase, Iterations); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(DivergenceStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (DivergenceStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as DivergenceStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as DivergenceStopCriterion; + Assert.IsNotNull(clonedCriterion); - Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(criterion.MaximumRelativeIncrease, clonedCriterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(criterion.MinimumNumberOfIterations, clonedCriterion.MinimumNumberOfIterations, "Incorrect iteration count"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/FailureStopCriteriumTest.cs similarity index 52% rename from src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/FailureStopCriteriumTest.cs index cabf9f70..a77a7a75 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/FailureStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/FailureStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,15 +34,15 @@ using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterion { using Numerics; /// - /// Failure stop criterium tests. + /// Failure stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class FailureStopCriteriumTest + public sealed class FailureStopCriterionTest { /// /// Can create. @@ -50,8 +50,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void Create() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "Should have a criterium now"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "Should have a criterion now"); } /// @@ -60,10 +60,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); } /// @@ -72,10 +72,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); + Assert.That(() => criterion.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); } /// @@ -84,14 +84,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2.0f, 0)}); - var source = new DenseVector(new[] {new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0)}); - var residual = new DenseVector(new[] {new Complex32(1000, 0), new Complex32(float.NaN, 0), new Complex32(2001, 0)}); + var solution = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2.0f, 0) }); + var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) }); + var residual = new DenseVector(new[] { new Complex32(1000, 0), new Complex32(float.NaN, 0), new Complex32(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -101,14 +101,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithSolutionNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(float.NaN, 0)}); - var source = new DenseVector(new[] {new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0)}); - var residual = new DenseVector(new[] {new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0)}); + var solution = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(float.NaN, 0) }); + var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) }); + var residual = new DenseVector(new[] { new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -118,14 +118,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatus() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex32(3.0f, 0), new Complex32(2.0f, 0), new Complex32(1, 0)}); - var source = new DenseVector(new[] {new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0)}); - var residual = new DenseVector(new[] {new Complex32(1.0f, 0), new Complex32(2.0f, 0), new Complex32(3, 0)}); + var solution = new DenseVector(new[] { new Complex32(3.0f, 0), new Complex32(2.0f, 0), new Complex32(1, 0) }); + var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) }); + var residual = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(2.0f, 0), new Complex32(3, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); } @@ -135,31 +135,31 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void ResetCalculationState() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2, 0)}); - var source = new DenseVector(new[] {new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0)}); - var residual = new DenseVector(new[] {new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0)}); + var solution = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2, 0) }); + var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) }); + var residual = new DenseVector(new[] { new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0) }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(FailureStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (FailureStopCriterion), clone, "Wrong criterion type"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs similarity index 65% rename from src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs index 31f031bc..65cae703 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs @@ -1,4 +1,4 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics @@ -33,15 +33,15 @@ using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterion { using Numerics; /// - /// Iteration count stop criterium tests. + /// Iteration count stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class IterationCountStopCriteriumTest + public sealed class IterationCountStopCriterionTest { /// /// Create with illegal minimum iterations throws ArgumentOutOfRangeException. @@ -49,7 +49,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new IterationCountStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new IterationCountStopCriterion(-1), Throws.TypeOf()); } /// @@ -58,8 +58,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void Create() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); } /// @@ -68,13 +68,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void ResetMaximumIterations() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); - criterium.ResetMaximumNumberOfIterationsToDefault(); - Assert.AreNotEqual(10, criterium.MaximumNumberOfIterations, "Should have reset"); - Assert.AreEqual(IterationCountStopCriterium.DefaultMaximumNumberOfIterations, criterium.MaximumNumberOfIterations, "Reset to the wrong value"); + criterion.ResetMaximumNumberOfIterationsToDefault(); + Assert.AreNotEqual(10, criterion.MaximumNumberOfIterations, "Should have reset"); + Assert.AreEqual(IterationCountStopCriterion.DefaultMaximumNumberOfIterations, criterion.MaximumNumberOfIterations, "Reset to the wrong value"); } /// @@ -83,10 +83,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); } /// @@ -95,13 +95,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatus() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - var status2 = criterium.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status2 = criterion.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished"); } @@ -111,34 +111,34 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void ResetCalculationState() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone a stop criterium. + /// Can clone a stop criterion. /// [Test] public void Clone() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(IterationCountStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (IterationCountStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as IterationCountStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as IterationCountStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.MaximumNumberOfIterations, clonedCriterium.MaximumNumberOfIterations, "Clone failed"); + Assert.AreEqual(criterion.MaximumNumberOfIterations, clonedCriterion.MaximumNumberOfIterations, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/ResidualStopCriteriumTest.cs similarity index 77% rename from src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/ResidualStopCriteriumTest.cs index 06468b95..1719e02c 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/ResidualStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterion/ResidualStopCriteriumTest.cs @@ -1,4 +1,4 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics @@ -34,15 +34,15 @@ using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCriterion { using Numerics; /// - /// Residual stop criterium tests. + /// Residual stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class ResidualStopCriteriumTest + public sealed class ResidualStopCriterionTest { /// /// Create with negative maximum throws ArgumentOutOfRangeException. @@ -50,7 +50,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void CreateWithNegativeMaximumThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-0.1f), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-0.1f), Throws.TypeOf()); } /// @@ -59,7 +59,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-1), Throws.TypeOf()); } /// @@ -68,10 +68,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void Create() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.AreEqual(1e-6f, criterium.Maximum, "Incorrect maximum"); - Assert.AreEqual(50, criterium.MinimumIterationsBelowMaximum, "Incorrect iteration count"); + Assert.AreEqual(1e-6f, criterion.Maximum, "Incorrect maximum"); + Assert.AreEqual(50, criterion.MinimumIterationsBelowMaximum, "Incorrect iteration count"); } /// @@ -80,9 +80,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -95,9 +95,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithNonMatchingSolutionVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(4, 4), Vector.Build.Dense(3, 4), @@ -110,9 +110,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithNonMatchingSourceVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(4, 4), @@ -125,9 +125,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithNonMatchingResidualVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 4), @@ -140,13 +140,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithSourceNaN() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); var solution = new DenseVector(new[] {new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(2.0f, 1)}); var source = new DenseVector(new[] {new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(float.NaN, 1)}); var residual = new DenseVector(new[] {new Complex32(1000.0f, 1), new Complex32(1000.0f, 1), new Complex32(2001.0f, 1)}); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -156,13 +156,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); var solution = new DenseVector(new[] {new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(2.0f, 1)}); var source = new DenseVector(new[] {new Complex32(1.0f, 1), new Complex32(1.0f, 1), new Complex32(2.0f, 1)}); var residual = new DenseVector(new[] {new Complex32(1000.0f, 1), new Complex32(float.NaN, 1), new Complex32(2001.0f, 1)}); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -171,18 +171,18 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr /// /// Bugfix: The unit tests for the BiCgStab solver run with a super simple matrix equation /// which converges at the first iteration. The default settings for the - /// residual stop criterium should be able to handle this. + /// residual stop criterion should be able to handle this. /// [Test] public void DetermineStatusWithConvergenceAtFirstIteration() { - var criterium = new ResidualStopCriterium(1e-6); + var criterion = new ResidualStopCriterion(1e-6); var solution = new DenseVector(new[] {Complex32.One, Complex32.One, Complex32.One}); var source = new DenseVector(new[] {Complex32.One, Complex32.One, Complex32.One}); var residual = new DenseVector(new[] {Complex32.Zero, Complex32.Zero, Complex32.Zero}); - var status = criterium.DetermineStatus(0, solution, source, residual); + var status = criterion.DetermineStatus(0, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status, "Should be done"); } @@ -192,7 +192,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void DetermineStatus() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); // the solution vector isn't actually being used so ... var solution = new DenseVector(new[] {new Complex32(float.NaN, float.NaN), new Complex32(float.NaN, float.NaN), new Complex32(float.NaN, float.NaN)}); @@ -203,10 +203,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr // Set the residual values var residual = new DenseVector(new[] {new Complex32(0.001f, 0), new Complex32(0.001f, 0), new Complex32(0.002f, 0)}); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should still be running"); - var status2 = criterium.DetermineStatus(16, solution, source, residual); + var status2 = criterion.DetermineStatus(16, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status2, "Should be done"); } @@ -216,35 +216,35 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.StopCr [Test] public void ResetCalculationState() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); var solution = new DenseVector(new[] {new Complex32(0.001f, 1), new Complex32(0.001f, 1), new Complex32(0.002f, 1)}); var source = new DenseVector(new[] {new Complex32(0.001f, 1), new Complex32(0.001f, 1), new Complex32(0.002f, 1)}); var residual = new DenseVector(new[] {new Complex32(1.000f, 0), new Complex32(1.000f, 0), new Complex32(2.001f, 0)}); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(ResidualStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof(ResidualStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as ResidualStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as ResidualStopCriterion; + Assert.IsNotNull(clonedCriterion); - Assert.AreEqual(criterium.Maximum, clonedCriterium.Maximum, "Clone failed"); - Assert.AreEqual(criterium.MinimumIterationsBelowMaximum, clonedCriterium.MinimumIterationsBelowMaximum, "Clone failed"); + Assert.AreEqual(criterion.Maximum, clonedCriterion.Maximum, "Clone failed"); + Assert.AreEqual(criterion.MinimumIterationsBelowMaximum, clonedCriterion.MinimumIterationsBelowMaximum, "Clone failed"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs index 0d00b74d..3e90a3d3 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -137,10 +137,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -214,10 +214,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -254,8 +254,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new BiCgStab(); @@ -284,8 +284,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 57059585..75f7a2a0 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -137,10 +137,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -214,10 +214,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -254,8 +254,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new GpBiCg(); @@ -284,8 +284,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 3c6a3073..7907c466 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -137,10 +137,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -214,10 +214,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -254,8 +254,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new MlkBiCgStab(); @@ -284,8 +284,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(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 4dc42030..34c19014 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -134,10 +134,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -208,10 +208,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -245,8 +245,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new TFQMR(); @@ -275,8 +275,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(1000), - new ResidualStopCriterium(1e-10)); + new IterationCountStopCriterion(1000), + new ResidualStopCriterion(1e-10)); var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs index 0382fdca..26b66b81 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -62,12 +62,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers [Test] public void DetermineStatusWithNegativeIterationNumberThrowsArgumentOutOfRangeException() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(), - new ResidualStopCriterium(1e-12) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(), + new ResidualStopCriterion(1e-12) }; var iterator = new Iterator(criteria); @@ -84,11 +84,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers [Test] public void DetermineStatus() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); @@ -116,11 +116,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers [Test] public void ResetToPrecalculationState() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs similarity index 64% rename from src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs index ce158300..e03ee2da 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,13 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Double; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterion { /// - /// Divergence stop criterium test. + /// Divergence stop criterion test. /// [TestFixture, Category("LASolver")] - public sealed class DivergenceStopCriteriumTest + public sealed class DivergenceStopCriterionTest { /// /// Create with negative maximum increase throws ArgumentOutOfRangeException. @@ -48,7 +48,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void CreateWithNegativeMaximumIncreaseThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -57,20 +57,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(minimumIterations: 2), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(minimumIterations: 2), Throws.TypeOf()); } /// - /// Can create stop criterium. + /// Can create stop criterion. /// [Test] public void Create() { - var criterium = new DivergenceStopCriterium(0.1, 3); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(0.1, 3); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.AreEqual(0.1, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(3, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(0.1, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(3, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); } /// @@ -79,8 +79,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new DivergenceStopCriterium(0.5, 15); - Assert.That(() => criterium.DetermineStatus( + var criterion = new DivergenceStopCriterion(0.5, 15); + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -96,16 +96,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 1; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {(i + 1)*(Increase + 0.1)})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { (i + 1)*(Increase + 0.1) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -120,16 +120,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we won't have enough increase for (var i = 0; i < Iterations*2; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {(i + 1)*(Increase - 0.01)})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { (i + 1)*(Increase - 0.01) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -144,26 +144,26 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 5; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {(i + 1)*(Increase - 0.01)})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { (i + 1)*(Increase - 0.01) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Now make it fail by throwing in a NaN - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {double.NaN})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { double.NaN })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -177,29 +177,29 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have one to few iterations double previous = 1; for (var i = 0; i < Iterations - 1; i++) { previous *= 1 + Increase + 0.01; - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {previous})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { previous })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Add the final residual. Now we should have divergence previous *= 1 + Increase + 0.01; - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations - 1, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {previous})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { previous })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -213,27 +213,27 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. Blow it up instantly - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( 1, - new DenseVector(new[] {1.0}), - new DenseVector(new[] {1.0}), - new DenseVector(new[] {double.NaN})); + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { 1.0 }), + new DenseVector(new[] { double.NaN })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); // Reset the state - criterium.Reset(); + criterion.Reset(); - Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail."); + Assert.AreEqual(Increase, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(Iterations, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Status check fail."); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() @@ -241,17 +241,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(Increase, Iterations); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(DivergenceStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (DivergenceStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as DivergenceStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as DivergenceStopCriterion; + Assert.IsNotNull(clonedCriterion); - Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(criterion.MaximumRelativeIncrease, clonedCriterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(criterion.MinimumNumberOfIterations, clonedCriterion.MinimumNumberOfIterations, "Incorrect iteration count"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs similarity index 57% rename from src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs index 309e9210..51753933 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/FailureStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,13 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Double; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterion { /// - /// Failure stop criterium tests. + /// Failure stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class FailureStopCriteriumTest + public sealed class FailureStopCriterionTest { /// /// Can create. @@ -48,8 +48,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void Create() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "Should have a criterium now"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "Should have a criterion now"); } /// @@ -58,10 +58,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); } /// @@ -70,10 +70,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); + Assert.That(() => criterion.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); } /// @@ -82,14 +82,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1.0, 1.0, 2.0}); - var source = new DenseVector(new[] {1001.0, 0, 2003.0}); - var residual = new DenseVector(new[] {1000, double.NaN, 2001}); + var solution = new DenseVector(new[] { 1.0, 1.0, 2.0 }); + var source = new DenseVector(new[] { 1001.0, 0, 2003.0 }); + var residual = new DenseVector(new[] { 1000, double.NaN, 2001 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -99,14 +99,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithSolutionNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1.0, 1.0, double.NaN}); - var source = new DenseVector(new[] {1001.0, 0.0, 2003.0}); - var residual = new DenseVector(new[] {1000.0, 1000.0, 2001.0}); + var solution = new DenseVector(new[] { 1.0, 1.0, double.NaN }); + var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); + var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -116,14 +116,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {3.0, 2.0, 1.0}); - var source = new DenseVector(new[] {1001.0, 0.0, 2003.0}); - var residual = new DenseVector(new[] {1.0, 2.0, 3.0}); + var solution = new DenseVector(new[] { 3.0, 2.0, 1.0 }); + var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); + var residual = new DenseVector(new[] { 1.0, 2.0, 3.0 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); } @@ -133,30 +133,30 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1.0, 1.0, 2.0}); - var source = new DenseVector(new[] {1001.0, 0.0, 2003.0}); - var residual = new DenseVector(new[] {1000.0, 1000.0, 2001.0}); + var solution = new DenseVector(new[] { 1.0, 1.0, 2.0 }); + var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); + var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(FailureStopCriterium), clone, "Wrong criterium type"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (FailureStopCriterion), clone, "Wrong criterion type"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs similarity index 64% rename from src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs index 648480f0..23d5ec63 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -33,13 +33,13 @@ using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterion { /// - /// Iteration count stop criterium tests. + /// Iteration count stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class IterationCountStopCriteriumTest + public sealed class IterationCountStopCriterionTest { /// /// Create with illegal minimum iterations throws ArgumentOutOfRangeException. @@ -47,7 +47,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new IterationCountStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new IterationCountStopCriterion(-1), Throws.TypeOf()); } /// @@ -56,8 +56,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void Create() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); } /// @@ -66,13 +66,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void ResetMaximumIterations() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); - criterium.ResetMaximumNumberOfIterationsToDefault(); - Assert.AreNotEqual(10, criterium.MaximumNumberOfIterations, "Should have reset"); - Assert.AreEqual(IterationCountStopCriterium.DefaultMaximumNumberOfIterations, criterium.MaximumNumberOfIterations, "Reset to the wrong value"); + criterion.ResetMaximumNumberOfIterationsToDefault(); + Assert.AreNotEqual(10, criterion.MaximumNumberOfIterations, "Should have reset"); + Assert.AreEqual(IterationCountStopCriterion.DefaultMaximumNumberOfIterations, criterion.MaximumNumberOfIterations, "Reset to the wrong value"); } /// @@ -81,10 +81,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); } /// @@ -93,13 +93,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - var status2 = criterium.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status2 = criterion.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished"); } @@ -109,34 +109,34 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone a stop criterium. + /// Can clone a stop criterion. /// [Test] public void Clone() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(IterationCountStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (IterationCountStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as IterationCountStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as IterationCountStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.MaximumNumberOfIterations, clonedCriterium.MaximumNumberOfIterations, "Clone failed"); + Assert.AreEqual(criterion.MaximumNumberOfIterations, clonedCriterion.MaximumNumberOfIterations, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/ResidualStopCriteriumTest.cs similarity index 76% rename from src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/ResidualStopCriteriumTest.cs index e17beba3..0be548ba 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/ResidualStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/ResidualStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -33,13 +33,13 @@ using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCriterion { /// - /// Residual stop criterium tests. + /// Residual stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class ResidualStopCriteriumTest + public sealed class ResidualStopCriterionTest { /// /// Create with negative maximum throws ArgumentOutOfRangeException. @@ -47,7 +47,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void CreateWithNegativeMaximumThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -56,7 +56,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-1), Throws.TypeOf()); } /// @@ -65,10 +65,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void Create() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.AreEqual(1e-8, criterium.Maximum, "Incorrect maximum"); - Assert.AreEqual(50, criterium.MinimumIterationsBelowMaximum, "Incorrect iteration count"); + Assert.AreEqual(1e-8, criterion.Maximum, "Incorrect maximum"); + Assert.AreEqual(50, criterion.MinimumIterationsBelowMaximum, "Incorrect iteration count"); } /// @@ -77,9 +77,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -92,9 +92,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingSolutionVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(4, 4), Vector.Build.Dense(3, 4), @@ -107,9 +107,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingSourceVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(4, 4), @@ -122,9 +122,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingResidualVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-8, 50); + var criterion = new ResidualStopCriterion(1e-8, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 4), @@ -137,12 +137,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithSourceNaN() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); var solution = Vector.Build.Dense(new[] { 1.0, 1.0, 2.0 }); var source = Vector.Build.Dense(new[] { 1.0, 1.0, double.NaN }); var residual = Vector.Build.Dense(new[] { 1000.0, 1000.0, 2001.0 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -152,12 +152,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); var solution = Vector.Build.Dense(new[] { 1.0, 1.0, 2.0 }); var source = Vector.Build.Dense(new[] { 1.0, 1.0, 2.0 }); var residual = Vector.Build.Dense(new[] { 1000.0, double.NaN, 2001.0 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -167,12 +167,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatusWithConvergenceAtFirstIteration() { - var criterium = new ResidualStopCriterium(1e-12); + var criterion = new ResidualStopCriterion(1e-12); var solution = Vector.Build.Dense(new[] { 1.0, 1.0, 1.0 }); var source = Vector.Build.Dense(new[] { 1.0, 1.0, 1.0 }); var residual = Vector.Build.Dense(new[] { 0.0, 0.0, 0.0 }); - var status = criterium.DetermineStatus(0, solution, source, residual); + var status = criterion.DetermineStatus(0, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status, "Should be done"); } @@ -182,7 +182,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); // the solution vector isn't actually being used so ... var solution = Vector.Build.Dense(new[] { double.NaN, double.NaN, double.NaN }); @@ -193,10 +193,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite // Set the residual values var residual = Vector.Build.Dense(new[] { 0.001, 0.001, 0.002 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should still be running"); - var status2 = criterium.DetermineStatus(16, solution, source, residual); + var status2 = criterion.DetermineStatus(16, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status2, "Should be done"); } @@ -206,36 +206,36 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); var solution = Vector.Build.Dense(new[] { 0.001, 0.001, 0.002 }); var source = Vector.Build.Dense(new[] { 0.001, 0.001, 0.002 }); var residual = Vector.Build.Dense(new[] { 1.000, 1.000, 2.001 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new ResidualStopCriterium(1e-3, 10); + var criterion = new ResidualStopCriterion(1e-3, 10); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(ResidualStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (ResidualStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as ResidualStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as ResidualStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.Maximum, clonedCriterium.Maximum, "Clone failed"); - Assert.AreEqual(criterium.MinimumIterationsBelowMaximum, clonedCriterium.MinimumIterationsBelowMaximum, "Clone failed"); + Assert.AreEqual(criterion.Maximum, clonedCriterion.Maximum, "Clone failed"); + Assert.AreEqual(criterion.MinimumIterationsBelowMaximum, clonedCriterion.MinimumIterationsBelowMaximum, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs index ead673ab..48a85201 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -130,17 +130,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -214,10 +214,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new BiCgStab(); @@ -249,15 +249,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomVector(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 3 tries and downgrade stop criterium each time + // That's why we will do 3 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new BiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -274,7 +274,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -289,15 +289,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomMatrix(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 3 tries and downgrade stop criterium each time + // That's why we will do 3 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new BiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -321,7 +321,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs index 628deb2b..c2448ded 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -130,17 +130,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -214,10 +214,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new GpBiCg(); @@ -249,15 +249,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomVector(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 3 tries and downgrade stop criterium each time + // That's why we will do 3 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new GpBiCg(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -274,7 +274,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -289,15 +289,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomMatrix(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 3 tries and downgrade stop criterium each time + // That's why we will do 3 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new GpBiCg(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -321,7 +321,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs index ea7be08f..ca345418 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -130,17 +130,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -218,10 +218,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative { // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new MlkBiCgStab(); @@ -266,15 +266,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomVector(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 4 tries and downgrade stop criterium each time + // That's why we will do 4 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new MlkBiCgStab(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -291,7 +291,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -308,15 +308,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomMatrix(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 4 tries and downgrade stop criterium each time + // That's why we will do 4 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new MlkBiCgStab(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -340,7 +340,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float)Math.Pow(1.0/10.0, iteration - 3)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs index 806570d7..df7ffbcf 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -93,10 +93,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -127,17 +127,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative var matrix = SparseMatrix.CreateIdentity(100); // Scale it with a funny number - matrix.Multiply((float) Math.PI, matrix); + matrix.Multiply((float)Math.PI, matrix); // Create the y vector var y = Vector.Build.Dense(matrix.RowCount, 1); // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -208,10 +208,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Create an iteration monitor which will keep track of iterative convergence var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(ConvergenceBoundary), - new DivergenceStopCriterium(), - new FailureStopCriterium()); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(ConvergenceBoundary), + new DivergenceStopCriterion(), + new FailureStopCriterion()); var solver = new TFQMR(); @@ -240,15 +240,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomVector(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 3 tries and downgrade stop criterium each time + // That's why we will do 3 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new TFQMR(); var resultx = matrixA.SolveIterative(vectorb, solver, monitor); @@ -265,7 +265,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // Check the reconstruction. for (var i = 0; i < order; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float) Math.Pow(1.0/10.0, iteration - 3)); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], (float)Math.Pow(1.0/10.0, iteration - 3)); } return; @@ -280,15 +280,15 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative public void CanSolveForRandomMatrix(int order) { // Due to datatype "float" it can happen that solution will not converge for specific random matrix - // That's why we will do 4 tries and downgrade stop criterium each time + // That's why we will do 4 tries and downgrade stop criterion each time for (var iteration = 6; iteration > 3; iteration--) { var matrixA = Matrix.Build.Random(order, order, 1); var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( - new IterationCountStopCriterium(MaximumIterations), - new ResidualStopCriterium(Math.Pow(1.0 / 10.0, iteration))); + new IterationCountStopCriterion(MaximumIterations), + new ResidualStopCriterion(Math.Pow(1.0/10.0, iteration))); var solver = new TFQMR(); var matrixX = matrixA.SolveIterative(matrixB, solver, monitor); @@ -312,7 +312,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float) Math.Pow(1.0/10.0, iteration - 4)); + Assert.AreEqual(matrixB[i, j], matrixBReconstruct[i, j], (float)Math.Pow(1.0/10.0, iteration - 4)); } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs index 26c6caf9..f6300858 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs @@ -4,7 +4,7 @@ // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -62,12 +62,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers [Test] public void DetermineStatusWithNegativeIterationNumberThrowsArgumentOutOfRangeException() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(), - new ResidualStopCriterium(1e-6) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(), + new ResidualStopCriterion(1e-6) }; var iterator = new Iterator(criteria); @@ -84,11 +84,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers [Test] public void DetermineStatus() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); @@ -116,11 +116,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers [Test] public void ResetToPrecalculationState() { - var criteria = new List> + var criteria = new List> { - new FailureStopCriterium(), - new DivergenceStopCriterium(), - new IterationCountStopCriterium(1) + new FailureStopCriterion(), + new DivergenceStopCriterion(), + new IterationCountStopCriterion(1) }; var iterator = new Iterator(criteria); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs similarity index 64% rename from src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs index 2a2b47e4..3bbdb70e 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,13 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterion { /// - /// Divergence stop criterium test. + /// Divergence stop criterion test. /// [TestFixture, Category("LASolver")] - public sealed class DivergenceStopCriteriumTest + public sealed class DivergenceStopCriterionTest { /// /// Create with negative maximum increase throws ArgumentOutOfRangeException. @@ -48,7 +48,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void CreateWithNegativeMaximumIncreaseThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(-0.1), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(-0.1), Throws.TypeOf()); } /// @@ -57,20 +57,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new DivergenceStopCriterium(minimumIterations: 2), Throws.TypeOf()); + Assert.That(() => new DivergenceStopCriterion(minimumIterations: 2), Throws.TypeOf()); } /// - /// Can create stop criterium. + /// Can create stop criterion. /// [Test] public void Create() { - var criterium = new DivergenceStopCriterium(0.1, 3); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(0.1, 3); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.AreEqual(0.1, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(3, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(0.1, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(3, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); } /// @@ -79,8 +79,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new DivergenceStopCriterium(0.5, 15); - Assert.That(() => criterium.DetermineStatus( + var criterion = new DivergenceStopCriterion(0.5, 15); + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -96,16 +96,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 1; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {(i + 1)*(Increase + 0.1f)})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { (i + 1)*(Increase + 0.1f) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -120,16 +120,16 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we won't have enough increase for (var i = 0; i < Iterations*2; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {(i + 1)*(Increase - 0.01f)})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { (i + 1)*(Increase - 0.01f) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -144,26 +144,26 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have to few iterations for (var i = 0; i < Iterations - 5; i++) { - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {(i + 1)*(Increase - 0.01f)})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { (i + 1)*(Increase - 0.01f) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Now make it fail by throwing in a NaN - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {float.NaN})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { float.NaN })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -177,29 +177,29 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const float Increase = 0.5f; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. We should not diverge because we'll have one to few iterations float previous = 1; for (var i = 0; i < Iterations - 1; i++) { previous *= 1 + Increase + 0.01f; - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( i, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {previous})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { previous })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } // Add the final residual. Now we should have divergence previous *= 1 + Increase + 0.01f; - var status2 = criterium.DetermineStatus( + var status2 = criterion.DetermineStatus( Iterations - 1, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {previous})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { previous })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -213,27 +213,27 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); + var criterion = new DivergenceStopCriterion(Increase, Iterations); // Add residuals. Blow it up instantly - var status = criterium.DetermineStatus( + var status = criterion.DetermineStatus( 1, - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {1.0f}), - new DenseVector(new[] {float.NaN})); + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { 1.0f }), + new DenseVector(new[] { float.NaN })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); // Reset the state - criterium.Reset(); + criterion.Reset(); - Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Status check fail."); + Assert.AreEqual(Increase, criterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(Iterations, criterion.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Status check fail."); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() @@ -241,17 +241,17 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite const double Increase = 0.5; const int Iterations = 10; - var criterium = new DivergenceStopCriterium(Increase, Iterations); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new DivergenceStopCriterion(Increase, Iterations); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(DivergenceStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (DivergenceStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as DivergenceStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as DivergenceStopCriterion; + Assert.IsNotNull(clonedCriterion); - Assert.AreEqual(criterium.MaximumRelativeIncrease, clonedCriterium.MaximumRelativeIncrease, "Incorrect maximum"); - Assert.AreEqual(criterium.MinimumNumberOfIterations, clonedCriterium.MinimumNumberOfIterations, "Incorrect iteration count"); + Assert.AreEqual(criterion.MaximumRelativeIncrease, clonedCriterion.MaximumRelativeIncrease, "Incorrect maximum"); + Assert.AreEqual(criterion.MinimumNumberOfIterations, clonedCriterion.MinimumNumberOfIterations, "Incorrect iteration count"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/FailureStopCriteriumTest.cs similarity index 57% rename from src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/FailureStopCriteriumTest.cs index 64e99e82..4827735f 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/FailureStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/FailureStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,13 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterion { /// - /// Failure stop criterium tests. + /// Failure stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class FailureStopCriteriumTest + public sealed class FailureStopCriterionTest { /// /// Can create. @@ -48,8 +48,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void Create() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "Should have a criterium now"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "Should have a criterion now"); } /// @@ -58,10 +58,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), Vector.Build.Dense(3, 6)), Throws.TypeOf()); } /// @@ -70,10 +70,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - Assert.That(() => criterium.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); + Assert.That(() => criterion.DetermineStatus(1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 6), Vector.Build.Dense(4, 4)), Throws.ArgumentException); } /// @@ -82,14 +82,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); - var source = new DenseVector(new[] {1001.0f, 0, 2003.0f}); - var residual = new DenseVector(new[] {1000, float.NaN, 2001}); + var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f }); + var source = new DenseVector(new[] { 1001.0f, 0, 2003.0f }); + var residual = new DenseVector(new[] { 1000, float.NaN, 2001 }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -99,14 +99,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithSolutionNaN() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1, 1, float.NaN}); - var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); - var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f}); + var solution = new DenseVector(new[] { 1, 1, float.NaN }); + var source = new DenseVector(new[] { 1001.0f, 0.0f, 2003.0f }); + var residual = new DenseVector(new[] { 1000.0f, 1000.0f, 2001.0f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); } @@ -116,14 +116,14 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {3.0f, 2.0f, 1.0f}); - var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); - var residual = new DenseVector(new[] {1.0f, 2.0f, 3.0f}); + var solution = new DenseVector(new[] { 3.0f, 2.0f, 1.0f }); + var source = new DenseVector(new[] { 1001.0f, 0.0f, 2003.0f }); + var residual = new DenseVector(new[] { 1.0f, 2.0f, 3.0f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); } @@ -133,31 +133,31 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); - var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); - var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f}); + var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f }); + var source = new DenseVector(new[] { 1001.0f, 0.0f, 2003.0f }); + var residual = new DenseVector(new[] { 1000.0f, 1000.0f, 2001.0f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new FailureStopCriterium(); - Assert.IsNotNull(criterium, "There should be a criterium"); + var criterion = new FailureStopCriterion(); + Assert.IsNotNull(criterion, "There should be a criterion"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(FailureStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (FailureStopCriterion), clone, "Wrong criterion type"); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs similarity index 66% rename from src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs index 1ebbc06c..f73953dc 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/IterationCountStopCriteriumTest.cs @@ -1,4 +1,4 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics @@ -33,13 +33,13 @@ using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterion { /// - /// Iteration count stop criterium tests. + /// Iteration count stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class IterationCountStopCriteriumTest + public sealed class IterationCountStopCriterionTest { /// /// Create with illegal minimum iterations throws ArgumentOutOfRangeException. @@ -47,7 +47,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new IterationCountStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new IterationCountStopCriterion(-1), Throws.TypeOf()); } /// @@ -56,8 +56,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void Create() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); } /// @@ -66,13 +66,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void ResetMaximumIterations() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum number of iterations"); - criterium.ResetMaximumNumberOfIterationsToDefault(); - Assert.AreNotEqual(10, criterium.MaximumNumberOfIterations, "Should have reset"); - Assert.AreEqual(IterationCountStopCriterium.DefaultMaximumNumberOfIterations, criterium.MaximumNumberOfIterations, "Reset to the wrong value"); + criterion.ResetMaximumNumberOfIterationsToDefault(); + Assert.AreNotEqual(10, criterion.MaximumNumberOfIterations, "Should have reset"); + Assert.AreEqual(IterationCountStopCriterion.DefaultMaximumNumberOfIterations, criterion.MaximumNumberOfIterations, "Reset to the wrong value"); } /// @@ -81,10 +81,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - Assert.That(() => criterium.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); + Assert.That(() => criterion.DetermineStatus(-1, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)), Throws.TypeOf()); } /// @@ -93,13 +93,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - var status2 = criterium.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status2 = criterion.DetermineStatus(10, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.StoppedWithoutConvergence, status2, "Should be finished"); } @@ -109,34 +109,34 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); - var status = criterium.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); + var status = criterion.DetermineStatus(5, Vector.Build.Dense(3, 1), Vector.Build.Dense(3, 2), Vector.Build.Dense(3, 3)); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone a stop criterium. + /// Can clone a stop criterion. /// [Test] public void Clone() { - var criterium = new IterationCountStopCriterium(10); - Assert.IsNotNull(criterium, "A criterium should have been created"); - Assert.AreEqual(10, criterium.MaximumNumberOfIterations, "Incorrect maximum"); + var criterion = new IterationCountStopCriterion(10); + Assert.IsNotNull(criterion, "A criterion should have been created"); + Assert.AreEqual(10, criterion.MaximumNumberOfIterations, "Incorrect maximum"); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(IterationCountStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof(IterationCountStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as IterationCountStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as IterationCountStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.MaximumNumberOfIterations, clonedCriterium.MaximumNumberOfIterations, "Clone failed"); + Assert.AreEqual(criterion.MaximumNumberOfIterations, clonedCriterion.MaximumNumberOfIterations, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/ResidualStopCriteriumTest.cs similarity index 64% rename from src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs rename to src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/ResidualStopCriteriumTest.cs index 0b206c14..c33b7c11 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/ResidualStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterion/ResidualStopCriteriumTest.cs @@ -1,10 +1,10 @@ -// +// // Math.NET Numerics, part of the Math.NET Project // http://numerics.mathdotnet.com // http://github.com/mathnet/mathnet-numerics // http://mathnetnumerics.codeplex.com // -// Copyright (c) 2009-2013 Math.NET +// Copyright (c) 2009-2014 Math.NET // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation @@ -34,13 +34,13 @@ using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterium +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCriterion { /// - /// Residual stop criterium tests. + /// Residual stop criterion tests. /// [TestFixture, Category("LASolver")] - public sealed class ResidualStopCriteriumTest + public sealed class ResidualStopCriterionTest { /// /// Create with negative maximum throws ArgumentOutOfRangeException. @@ -48,7 +48,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void CreateWithNegativeMaximumThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-0.1f), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-0.1f), Throws.TypeOf()); } /// @@ -57,7 +57,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void CreateWithIllegalMinimumIterationsThrowsArgumentOutOfRangeException() { - Assert.That(() => new ResidualStopCriterium(-1), Throws.TypeOf()); + Assert.That(() => new ResidualStopCriterion(-1), Throws.TypeOf()); } /// @@ -66,10 +66,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void Create() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.AreEqual(1e-6f, criterium.Maximum, "Incorrect maximum"); - Assert.AreEqual(50, criterium.MinimumIterationsBelowMaximum, "Incorrect iteration count"); + Assert.AreEqual(1e-6f, criterion.Maximum, "Incorrect maximum"); + Assert.AreEqual(50, criterion.MinimumIterationsBelowMaximum, "Incorrect iteration count"); } /// @@ -78,9 +78,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( -1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 5), @@ -93,9 +93,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingSolutionVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(4, 4), Vector.Build.Dense(3, 4), @@ -108,9 +108,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingSourceVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(4, 4), @@ -123,9 +123,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithNonMatchingResidualVectorThrowsArgumentException() { - var criterium = new ResidualStopCriterium(1e-6f, 50); + var criterion = new ResidualStopCriterion(1e-6f, 50); - Assert.That(() => criterium.DetermineStatus( + Assert.That(() => criterion.DetermineStatus( 1, Vector.Build.Dense(3, 4), Vector.Build.Dense(3, 4), @@ -138,13 +138,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithSourceNaN() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); - var solution = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); - var source = new DenseVector(new[] {1.0f, 1.0f, float.NaN}); - var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f}); + var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f }); + var source = new DenseVector(new[] { 1.0f, 1.0f, float.NaN }); + var residual = new DenseVector(new[] { 1000.0f, 1000.0f, 2001.0f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -154,13 +154,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithResidualNaN() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); - var solution = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); - var source = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); - var residual = new DenseVector(new[] {1000.0f, float.NaN, 2001.0f}); + var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f }); + var source = new DenseVector(new[] { 1.0f, 1.0f, 2.0f }); + var residual = new DenseVector(new[] { 1000.0f, float.NaN, 2001.0f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Diverged, status, "Should be diverged"); } @@ -170,13 +170,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatusWithConvergenceAtFirstIteration() { - var criterium = new ResidualStopCriterium(1e-6); + var criterion = new ResidualStopCriterion(1e-6); - var solution = new DenseVector(new[] {1.0f, 1.0f, 1.0f}); - var source = new DenseVector(new[] {1.0f, 1.0f, 1.0f}); - var residual = new DenseVector(new[] {0.0f, 0.0f, 0.0f}); + var solution = new DenseVector(new[] { 1.0f, 1.0f, 1.0f }); + var source = new DenseVector(new[] { 1.0f, 1.0f, 1.0f }); + var residual = new DenseVector(new[] { 0.0f, 0.0f, 0.0f }); - var status = criterium.DetermineStatus(0, solution, source, residual); + var status = criterion.DetermineStatus(0, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status, "Should be done"); } @@ -186,21 +186,21 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void DetermineStatus() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); // the solution vector isn't actually being used so ... - var solution = new DenseVector(new[] {float.NaN, float.NaN, float.NaN}); + var solution = new DenseVector(new[] { float.NaN, float.NaN, float.NaN }); // Set the source values - var source = new DenseVector(new[] {1.000f, 1.000f, 2.001f}); + var source = new DenseVector(new[] { 1.000f, 1.000f, 2.001f }); // Set the residual values - var residual = new DenseVector(new[] {0.001f, 0.001f, 0.002f}); + var residual = new DenseVector(new[] { 0.001f, 0.001f, 0.002f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should still be running"); - var status2 = criterium.DetermineStatus(16, solution, source, residual); + var status2 = criterion.DetermineStatus(16, solution, source, residual); Assert.AreEqual(IterationStatus.Converged, status2, "Should be done"); } @@ -210,36 +210,36 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.StopCrite [Test] public void ResetCalculationState() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); - var solution = new DenseVector(new[] {0.001f, 0.001f, 0.002f}); - var source = new DenseVector(new[] {0.001f, 0.001f, 0.002f}); - var residual = new DenseVector(new[] {1.000f, 1.000f, 2.001f}); + var solution = new DenseVector(new[] { 0.001f, 0.001f, 0.002f }); + var source = new DenseVector(new[] { 0.001f, 0.001f, 0.002f }); + var residual = new DenseVector(new[] { 1.000f, 1.000f, 2.001f }); - var status = criterium.DetermineStatus(5, solution, source, residual); + var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); - criterium.Reset(); - Assert.AreEqual(IterationStatus.Continue, criterium.Status, "Should not have started"); + criterion.Reset(); + Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started"); } /// - /// Can clone stop criterium. + /// Can clone stop criterion. /// [Test] public void Clone() { - var criterium = new ResidualStopCriterium(1e-3f, 10); + var criterion = new ResidualStopCriterion(1e-3f, 10); - var clone = criterium.Clone(); - Assert.IsInstanceOf(typeof(ResidualStopCriterium), clone, "Wrong criterium type"); + var clone = criterion.Clone(); + Assert.IsInstanceOf(typeof (ResidualStopCriterion), clone, "Wrong criterion type"); - var clonedCriterium = clone as ResidualStopCriterium; - Assert.IsNotNull(clonedCriterium); + var clonedCriterion = clone as ResidualStopCriterion; + Assert.IsNotNull(clonedCriterion); // ReSharper disable PossibleNullReferenceException - Assert.AreEqual(criterium.Maximum, clonedCriterium.Maximum, "Clone failed"); - Assert.AreEqual(criterium.MinimumIterationsBelowMaximum, clonedCriterium.MinimumIterationsBelowMaximum, "Clone failed"); + Assert.AreEqual(criterion.Maximum, clonedCriterion.Maximum, "Clone failed"); + Assert.AreEqual(criterion.MinimumIterationsBelowMaximum, clonedCriterion.MinimumIterationsBelowMaximum, "Clone failed"); // ReSharper restore PossibleNullReferenceException } diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj index 7cf5ee5e..5ab21410 100644 --- a/src/UnitTests/UnitTests.csproj +++ b/src/UnitTests/UnitTests.csproj @@ -190,10 +190,10 @@ - - - - + + + + @@ -239,10 +239,10 @@ - - - - + + + + @@ -257,6 +257,10 @@ + + + + @@ -289,10 +293,6 @@ - - - - @@ -339,10 +339,10 @@ - - - - + + + + @@ -687,6 +687,7 @@ + \ No newline at end of file