private static void TestIndefiniteSystem(LinearAlgebraProviderChoice providers) { TestSettings.RunMultiproviderTest(providers, delegate() { (Matrix A, Vector b, Vector xExpected, IPreconditioner M) = DiagonalIndefinite.BuildIndefiniteSystem(20); var builder = new CGAlgorithm.Builder(); builder.ResidualTolerance = 1E-6; builder.MaxIterationsProvider = new PercentageMaxIterationsProvider(1.0); var cg = builder.Build(); Vector xComputed = Vector.CreateZero(A.NumRows); IterativeStatistics stats = cg.Solve(A, b, xComputed, true); Assert.False(comparer.AreEqual(xExpected, xComputed)); }); }
private static void TestSparseSystem(LinearAlgebraProviderChoice providers) { TestSettings.RunMultiproviderTest(providers, delegate() { var A = Matrix.CreateFromArray(SparsePosDef10by10.Matrix); var b = Vector.CreateFromArray(SparsePosDef10by10.Rhs); var xExpected = Vector.CreateFromArray(SparsePosDef10by10.Lhs); var builder = new CGAlgorithm.Builder(); builder.ResidualTolerance = 1E-7; builder.MaxIterationsProvider = new PercentageMaxIterationsProvider(1.0); var cg = builder.Build(); var xComputed = Vector.CreateZero(A.NumRows); IterativeStatistics stats = cg.Solve(A, b, xComputed, true); comparer.AssertEqual(xExpected, xComputed); }); }