@Contract(mutates = "param1")
  private static <T> void vecSwap(List<T> x, int a, int b, int n) {
    for (int i = 0; i < n; i++, a++, b++) {
      swapElements(x, a, b);
    }
  }
@Contract(mutates = "param1")
  private static <T> void vecSwap(List<T> x, int a, int b, int n)