private static void arrayPartitionPhase(IndexTransformator transformator, InputParser inputParser, HeftArrayCreator heftArrayCreator, out int serverNO, out int pointNO, out double delta, out int neededTileNumber, out int[] tiles) { int spaceDimension; int histogramResolution; int strategyCode; int cellMaxValue; double deltaCoefficient; int slidingWindowSize; Array array; bool together = inputParser.determineTogetherOrSeparately(); if (together) { array = inputParser.parseInputFile(out spaceDimension, out histogramResolution, out serverNO, out pointNO, out delta, out strategyCode, out cellMaxValue, out deltaCoefficient, out slidingWindowSize); } else { parseInputSeparately(inputParser, out serverNO, out pointNO, out delta, out spaceDimension, out histogramResolution, out strategyCode, out cellMaxValue, out array, out deltaCoefficient, out slidingWindowSize); } Console.WriteLine("Point no.: {0}", pointNO); Console.WriteLine("Delta: {0}", delta); double usedDelta = delta * deltaCoefficient; Console.WriteLine("The used delta: {0}", usedDelta); Array heftArray = heftArrayCreator.createHeftArray(spaceDimension, histogramResolution, array); Divider divider = new Divider(array, heftArray, transformator, spaceDimension, histogramResolution, serverNO, delta, usedDelta, strategyCode, slidingWindowSize); Coords[] partition; neededTileNumber = divider.determineNeededTileNumber(out partition); Console.WriteLine("Needed tile number: {0}", neededTileNumber); tiles = writeOutTiles(neededTileNumber, spaceDimension, partition); }