docs: public static DMatrixSparseTriplet uniform(int numRows , int numCols , int nz_total ,
                                                 double min , double max , Random rand ) {
          // Create a list of all the possible element values
          int N = numCols*numRows;
          if( N < 0 )
              throw new IllegalArgumentException("matrix size is too large");
          nz_total = Math.min(N,nz_total);
  
          int selected[] = new int[N];
          for (int i = 0; i < N; i++) {
              selected[i] = i;
          }
  
          for (int i = 0; i < nz_total; i++) {
              int s = rand.nextInt(N);
              int tmp = selected[s];
              selected[s] = selected[i];
              selected[i] = tmp;
          }
  
          // Create a sparse matrix
          DMatrixSparseTriplet ret = new DMatrixSparseTriplet(numRows,numCols,nz_total);
  
          for (int i = 0; i < nz_total; i++) {
              int row = selected[i]/numCols;
              int col = selected[i]%numCols;
  
              double value = rand.nextDouble()*(max-min)+min;
  
              ret.addItem(row,col, value);
          }
  
          return ret;
      }