Browse Source

Control: choose default linear algebra provider by env var

Setting the variable MathNetNumericsLAProvider=MKL
will now make Control default to the MKL provider.

If non is set or setting it fails, it will fall back
to the managed provider as before.
v2
Christoph Ruegg 14 years ago
parent
commit
29ad488ca2
  1. 23
      src/Numerics/Control.cs

23
src/Numerics/Control.cs

@ -28,6 +28,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
using MathNet.Numerics.Algorithms.LinearAlgebra.Mkl;
namespace MathNet.Numerics
{
using System;
@ -66,7 +68,26 @@ namespace MathNet.Numerics
CheckDistributionParameters = true;
ThreadSafeRandomNumberGenerators = true;
DisableParallelization = false;
LinearAlgebraProvider = new ManagedLinearAlgebraProvider();
try
{
const string name = "MathNetNumericsLAProvider";
var value = Environment.GetEnvironmentVariable(name);
switch (value != null ? value.ToUpper() : string.Empty)
{
case "MKL":
LinearAlgebraProvider = new MklLinearAlgebraProvider();
break;
default:
LinearAlgebraProvider = new ManagedLinearAlgebraProvider();
break;
}
}
catch
{
// We don't care about any failures here at all
LinearAlgebraProvider = new ManagedLinearAlgebraProvider();
}
}
/// <summary>

Loading…
Cancel
Save