public long[] Calculate(long[] l) {
        updateNeighbors(l);
        RecursiveAction ut = new UpdateTask(submesh, height, 0, width, 0, threshold, true);
        fjp.invoke(ut);
        ut.reinitialize();
        if(this.stable == 0) {
            this.stable = 1;
            this.updating = 0;
        } else {
            this.stable = 0;
            this.updating = 1;
        }
        return getCommonRegions();
    }