Esempio n. 1
0
        public static void RunSieve(SettingsV1 runSettings)
        {
            Console.WriteLine($"@Kinematics: Starting ({GetVersionMessage(runSettings)})...");

            if (RunStructs(runSettings))
            {
                return;
            }

            Func <ISieve> createSieve = GetSieveCreator(runSettings);

            long      durationLimit = runSettings.SecondsToRun * MillisecondsPerSecond;
            Stopwatch watch         = Stopwatch.StartNew();

            var(sieve, passes) = runSettings.MultiThreaded switch
            {
                true => RunMultiThread(createSieve, watch, durationLimit, runSettings.ThreadCount),
                false => RunSingleThread(createSieve, watch, durationLimit),
            };

            watch.Stop();

            if (sieve is not null)
            {
                PrintResults(sieve, passes, watch, runSettings);
            }
            else
            {
                Console.WriteLine("Invalid state after run.");
            }
        }
Esempio n. 2
0
            public static Settings          Load(String a_Path)
            {
                SettingsV1 oldSettings = LoadV1(a_Path);

                Settings result = new Settings();

                result.Options        = oldSettings.Options;
                result.PriceLoad      = Convert_PriceLoad(oldSettings.PriceLoad);
                result.MaterialPrices = oldSettings.MaterialPrices;
                result.ApiAccess      = oldSettings.ApiAccess;
                result.Stats          = oldSettings.Stats;
                result.Refining       = oldSettings.Refining;
                result.Appearance     = oldSettings.Appearance;
                result.UILocations    = oldSettings.UILocations;

                return(result);
            }
Esempio n. 3
0
        public static void RunAllSieves(SettingsV1 options)
        {
            SettingsV1 tmpOptions = options.CopyOptions();

            tmpOptions.Original = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.Standard = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.BoolArray = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.InvertedBoolArray = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.DirectInvertedBoolArray = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.RawBits = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.RawBits32 = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.RawBitsDirect = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.RawBits2Of6 = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.RawParallel = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.ArrayPool = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.ArrayPool2Of6 = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.ArrayPool6P = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.ArrayPool8of30 = true;
            RunSieve(tmpOptions);
            Console.WriteLine();
            tmpOptions = options.CopyOptions();

            tmpOptions.ArrayPool8of30M = true;
            RunSieve(tmpOptions);
        }
Esempio n. 4
0
 private static string GetVersionMessage(SettingsV1 runSettings)
 {
     string versionMessage = runSettings switch
     {
         { Original : true } => "original",