IGlobalOptimization OpenGlobalOptimization

IGlobalOptimization goT = Tools.OpenGlobalOptimization();
if (goT != null)
{
    goT.NumberOfCores = 8;      //  READ/WRITE
    //
    //  The available Algorithms
    //
    switch (goT.Algorithm)      //  READ/WRITE
    {
        case OptimizationAlgorithm.DampedLeastSquares:
        case OptimizationAlgorithm.OrthogonalDescent:
            break;
    }
    //
    //  The available NumberToSave values
    //
    switch (goT.NumberToSave)   //  READ/WRITE
    {
        case OptimizationSaveCount.Save_10:
        case OptimizationSaveCount.Save_20:
        case OptimizationSaveCount.Save_30:
        case OptimizationSaveCount.Save_40:
        case OptimizationSaveCount.Save_50:
        case OptimizationSaveCount.Save_60:
        case OptimizationSaveCount.Save_70:
        case OptimizationSaveCount.Save_80:
        case OptimizationSaveCount.Save_90:
        case OptimizationSaveCount.Save_100:
            break;
    }
    double mf = goT.CurrentMeritFunction01; // 01 - 10 are available
    mf = goT.CurrentMeritFunction(n: 1);    // n == 1,10
    int nTargets = goT.Targets;             //  READ ONLY
    int nVars = goT.Variables;              //  READ ONLY
    int nCycles = goT.Cycles;               //  READ ONLY
    long nSystems = goT.Systems;            //  READ ONLY
    double iMF = goT.InitialMeritFunction;  //  READ ONLY
    goT.Run();
    for (int i = 1; i <= 10; i++)
    {
        Thread.Sleep(1000);
        Console.WriteLine(String.Format("Iteration {0}: Cycles {1}",
             i,
             goT.Cycles)
             );
        Console.Write("\t");
        for (int j = 1; j <= 10; j++)
        {
            iMF = goT.CurrentMeritFunction(j);
            Console.Write(String.Format("{0}: {1}\t", j, iMF));
            if ((j == 5)) { Console.Write("\n\t"); }
        }
        Console.WriteLine();
    }
    goT.Cancel();
    goT.Close();
}

Next: