Пример #1
0
        static void Main(string[] args)
        {
            BuildConfiguration();
            BuildLoggerFactory();

            var listsSizesDistributionAnalyzer = new ListsSizesDistributionAnalyzer(
                new RecursiveGenerator(),
                _loggerFactory.CreateLogger <ListsSizesDistributionAnalyzer>()
                );
            var logger = _loggerFactory.CreateLogger <Program>();

            try
            {
                var listsSizesDistribution = listsSizesDistributionAnalyzer.Analyze(
                    new G12GolayCode(),
                    new ListsSizesDistributionAnalyzerOptions
                {
                    MaxDegreeOfParallelism = 3,
                    FullLogsPath           = @"c:\Users\litic\Documents\Study\Coding\PostGraduateWorks\Experiments\"
                }
                    );
                logger.LogInformation(JsonConvert.SerializeObject(listsSizesDistribution, Formatting.Indented));
            }
            catch (Exception exception)
            {
                logger.LogError(0, exception, "Exception occurred during analysis");
            }
        }
Пример #2
0
        static Program()
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .Build();
            var loggerFactory = new LoggerFactory()
                                .AddSerilog(
                new LoggerConfiguration()
                .ReadFrom.Configuration(configuration)
                .Enrich.FromLogContext()
                .Enrich.WithProperty("Version", Assembly.GetEntryAssembly().GetName().Version.ToString(4))
                .CreateLogger()
                );

            Logger = loggerFactory.CreateLogger <Program>();

            NoiseGenerator = new RecursiveGenerator();
            WordsComparer  = new FieldElementsArraysComparer();

            LinearCodeDistanceAnalyzer     = new LinearCodeDistanceAnalyzer(loggerFactory.CreateLogger <LinearCodeDistanceAnalyzer>());
            MinimalSphereCoveringAnalyzer  = new MinimalSphereCoveringAnalyzer(NoiseGenerator, loggerFactory.CreateLogger <MinimalSphereCoveringAnalyzer>());
            ListsSizesDistributionAnalyzer = new ListsSizesDistributionAnalyzer(NoiseGenerator, loggerFactory.CreateLogger <ListsSizesDistributionAnalyzer>());

            var gaussSolver = new GaussSolver();

            TelemetryCollector = new GsBasedDecoderTelemetryCollectorForGsBasedDecoder();
            FixedDistanceCodesFactory
                = new StandardCodesFactory(
                      new LiftingSchemeBasedBuilder(new GcdBasedBuilder(new RecursiveGcdFinder()), gaussSolver),
                      new RsBasedDecoder(new BerlekampWelchDecoder(gaussSolver), gaussSolver),
                      new GsBasedDecoder(
                          new GsDecoder(new KotterAlgorithmBasedBuilder(new PascalsTriangleBasedCalculator()), new RrFactorizator()),
                          gaussSolver
                          )
            {
                TelemetryCollector = TelemetryCollector
            }
                      );
        }