コード例 #1
0
ファイル: Z3BaseParams.cs プロジェクト: perillaseed/z3
        public Z3BaseParams(Directive directive)
        {
            _directive = directive;

            var z3Directive = directive as Z3BaseDirective;
            if (z3Directive != null)
            {
                _optKind = z3Directive.OptKind;
                _cardAlgorithm = z3Directive.CardinalityAlgorithm;
                _pboAlgorithm = z3Directive.PseudoBooleanAlgorithm;
                _arithStrategy = z3Directive.ArithmeticStrategy;
                _smt2LogFile = z3Directive.SMT2LogFile;
            }
        }
コード例 #2
0
        public Z3BaseParams(Directive directive)
        {
            _directive = directive;

            var z3Directive = directive as Z3BaseDirective;

            if (z3Directive != null)
            {
                _optKind       = z3Directive.OptKind;
                _cardAlgorithm = z3Directive.CardinalityAlgorithm;
                _pboAlgorithm  = z3Directive.PseudoBooleanAlgorithm;
                _arithStrategy = z3Directive.ArithmeticStrategy;
                _smt2LogFile   = z3Directive.SMT2LogFile;
            }
        }
コード例 #3
0
ファイル: SPD.cs プロジェクト: kujawskip/SPD
        public SPD(Func <Coord, PointMatrix> mFunc, INeighbourhood neighbourhood, int[,] initialConfiguration, IDictionary <int, IStrategy> possibleStrategies, int stepNum, int threadNum = 1, OptimizationKind optimizationKind = OptimizationKind.Absolute)
        {
            if (threadNum <= 0)
            {
                throw new ArgumentException();
            }
            OptimizationKind  = optimizationKind;
            Width             = initialConfiguration.GetLength(0);
            Height            = initialConfiguration.GetLength(1);
            Matrix            = mFunc;
            ThreadCount       = threadNum;
            StepsPerIteration = stepNum;
            CurrentIteration  = 0;
            var concernes = new List <Coord> [ThreadCount];

            for (var i = 0; i < ThreadCount; i++)
            {
                concernes[i] = new List <Coord>();
            }

            var index = 0;

            for (var x = 0; x < Width; x++)
            {
                for (var y = 0; y < Height; y++)
                {
                    var key = new Coord(x, y);
                    _strategies.AddOrUpdate(key, possibleStrategies[initialConfiguration[x, y]].GetCopy(),
                                            (c, s) => possibleStrategies[initialConfiguration[x, y]].GetCopy());
                    var neigh = neighbourhood.GetHalfNeighbours(key).ToArray();//GetNeighbours(key).ToArray();
                    _neighbours.AddOrUpdate(key, neigh.ToArray(),
                                            (a, b) => b.Union(neigh).ToArray());
                    var neigh2 = neighbourhood.GetNeighbours(key).ToArray();
                    _fullNeighbours.AddOrUpdate(key, neigh2, (a, b) => b.Union(neigh2).ToArray());
                    concernes[index].Add(key);
                    index = (index + 1) % ThreadCount;
                }
            }
            for (var i = 0; i < ThreadCount; i++)
            {
                _threadConcernes.AddOrUpdate(i, concernes[i].ToArray(), (a, b) => concernes[i].ToArray());
            }

            ProcessHistory(initialConfiguration);
        }
コード例 #4
0
ファイル: SPD.cs プロジェクト: kujawskip/SPD
 public SPD(PointMatrix m, INeighbourhood neighbourhood, int[,] initialConfiguration, IDictionary <int, IStrategy> possibleStrategies, int stepNum, int threadNum = 1, OptimizationKind optimizationKind = OptimizationKind.Absolute)
     : this(
         coord => m, neighbourhood, initialConfiguration, possibleStrategies, stepNum, threadNum,
         optimizationKind)
 {
 }
コード例 #5
0
 private static void InitializeOptimizationKindList(OptimizationKind optimizationKind)
 {
     SortedOptimizations[optimizationKind] = new List <OptimizationPass>();
 }
コード例 #6
0
 protected OptimizationPassBase(OptimizationKind kind)
 {
     Kind = kind;
 }
コード例 #7
0
 private static void InitializeOptimizationKindList(OptimizationKind optimizationKind)
 {
     OptimizationLevelBase.SortedOptimizations[optimizationKind] = new List <ResultingOptimizationPass>();
 }
コード例 #8
0
 protected ResultingOptimizationPass(OptimizationKind kind) : base(kind)
 {
 }
コード例 #9
0
 protected ResultingOptimizationPass(OptimizationKind kind)
 {
     Kind = kind;
 }
コード例 #10
0
 public OptimizationPass(OptimizationKind kind)
 {
     Kind = kind;
 }
コード例 #11
0
 static void InitializeOptimizationKindList(OptimizationKind optimizationKind)
 {
     OptimizationLevelBase.SortedOptimizations[optimizationKind] = new List <OptimizationPassBase>();
 }