private static void SwapAndDiffuse(int[] arr, int offset1, int offset2, int[] tmp) { Diff(arr, offset1, tmp, 0); Diff(arr, offset2, arr, offset1); arr[offset2] = tmp[0]; arr[offset2 + 1] = tmp[1]; arr[offset2 + 2] = tmp[2]; arr[offset2 + 3] = tmp[3]; }