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.
pull/78/merge
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