code: public static int fastinverseDelta(int[] data, int start, int length,
                  int init) {
                  data[start] += init;
                  int sz0 = length / 4 * 4;
                  int i = 1;
                  if (sz0 >= 4) {
                          int a = data[start];
                          for (; i < sz0 - 4; i += 4) {
                                  a = data[start + i] += a;
                                  a = data[start + i + 1] += a;
                                  a = data[start + i + 2] += a;
                                  a = data[start + i + 3] += a;
                          }
                  }
  
                  for (; i != length; ++i) {
                          data[start + i] += data[start + i - 1];
                  }
                  return data[start + length - 1];
          }
docs: Undo differential coding (in-place). Effectively computes a prefix
  sum. Like inverseDelta, only faster. Uses an initial value.
  
  @param data
  to be modified
  @param start
  starting index
  @param length
  number of integers to process
  @param init
  initial value
  @return next initial value