diff --git a/src/Numerics/Control.cs b/src/Numerics/Control.cs index 119b14ad..d3ff2413 100644 --- a/src/Numerics/Control.cs +++ b/src/Numerics/Control.cs @@ -107,6 +107,14 @@ namespace MathNet.Numerics { LinearAlgebraProvider = new Providers.LinearAlgebra.Mkl.MklLinearAlgebraProvider(); } + + public static void UseNativeMKL( + Providers.LinearAlgebra.Mkl.MklConsistency consistency = Providers.LinearAlgebra.Mkl.MklConsistency.Auto, + Providers.LinearAlgebra.Mkl.MklPrecision precision = Providers.LinearAlgebra.Mkl.MklPrecision.Double, + Providers.LinearAlgebra.Mkl.MklAccuracy accuracy = Providers.LinearAlgebra.Mkl.MklAccuracy.High) + { + LinearAlgebraProvider = new Providers.LinearAlgebra.Mkl.MklLinearAlgebraProvider(consistency, precision, accuracy); + } #endif /// diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs index 711d6af0..2d1ecc08 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs @@ -195,7 +195,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var BReconstruct = A * X; // Check the reconstruction. - AssertHelpers.AlmostEqual(B, BReconstruct, 9); + AssertHelpers.AlmostEqual(B, BReconstruct, 8); // Make sure A/B didn't change. AssertHelpers.AlmostEqual(ACopy, A, 14); @@ -257,7 +257,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var BReconstruct = A * X; // Check the reconstruction. - AssertHelpers.AlmostEqual(B, BReconstruct, 9); + AssertHelpers.AlmostEqual(B, BReconstruct, 8); // Make sure A/B didn't change. AssertHelpers.AlmostEqual(ACopy, A, 14);