Ejemplo n.º 1
0
        public override void Calculate(ElementType[] elements, GlobalDataType globalData)
        {
            ElementCount = elements.Length;

            if (ElementCount < 2)
            {
                return;
            }

            int previouslyUsableCores = UsableCoreCount;

            UsableCoreCount = CalculateUsableCoreCount(ElementCount);

            CreateStacks(elements);
            GlobalData = globalData;

            if (previouslyUsableCores != UsableCoreCount)
            {
                PairLogic.GenerateMatrix(UsableCoreCount * 2);
            }

            for (int step = 0; step < PairLogic.StepCount; step++)
            {
                CalculateStep(step);
            }
        }
        public override void Calculate(PartType[] elements, GlobalDataType globalData)
        {
            if (CurrentElementCount != elements.Length)
            {
                m_even = elements.Length % 2 == 0;

                if (m_even)
                {
                    PairLogic.GenerateMatrix(elements.Length);
                }
                else
                {
                    PairLogic.GenerateMatrix(elements.Length + 1);
                }
            }

            CurrentElementCount = elements.Length;

            base.Calculate(elements, globalData);
        }