public class Compute
{
    public static final int[] BASE_PATTERN = {0, 1, 0, -1};

    public Compute (boolean debug)
    {
        _debug = debug;
    }

    public int[] process (int[] input, int numberOfPhases)
    {
        int[] results = input;

        for (int i = 0; i < numberOfPhases; i++)
        {
            results = processPhase(phaseInput);

            phaseInput = results;
        }

        return results;
    }

    private int[] processPhase (int[] input)
    {
        int[] results = null;

        return results;
    }

    boolean _debug;
}
@@ -510,12 +510,435 @@
  = n
-ull;
+ew int%5Binput.length%5D;%0A        int basePatternIndex = 0;%0A        int basePatternLowerBounds = 1;%0A%0A        for (int i = 0; i %3C input.length; i++)%0A        %7B%0A            int%5B%5D work = new int%5Binput.length%5D;%0A%0A            work%5Bi%5D = input%5Bi%5D * BASE_PATTERN%5BbasePatternIndex%5D;%0A%0A            basePatternIndex++;%0A%0A            if (basePatternIndex == BASE_PATTERN.length)%0A                basePatternIndex = basePatternLowerBounds;%0A        %7D
 %0A%0A  

Update Compute.java