code: public static int delta(int[] data, int start, int length, int init) {
                  final int nextinit = data[start + length - 1];
                  for (int i = length - 1; i > 0; --i) {
                          data[start + i] -= data[start + i - 1];
                  }
                  data[start] -= init;
                  return nextinit;
          }
docs: Apply differential coding (in-place) given an initial value.
  
  @param data
  data to be modified
  @param start
  starting index
  @param length
  number of integers to process
  @param init
  initial value
  @return next initial vale