code: private double[][] getAugmentedData(double[][] x) {
          double[][] ret = new double[x.length + p][p];
          double padding = c * Math.sqrt(lambda2);
          for (int i = 0; i < x.length; i++) {
              for (int j = 0; j < p; j++) {
                  ret[i][j] = c * x[i][j];
              }
          }
          for (int i = x.length; i < ret.length; i++) {
              ret[i][i - x.length] = padding;
          }
          return ret;
      }
docs: transform the original data array by padding a weighted identity matrix and
  multiply a scaling
  
  @param x
  the original data array
  @return data with padding