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); }