GP pred_rng doc language

Quick question.

So in the docs we have:

vector gp_pred_rng(real[] x2,
                     vector y1,
                     real[] x1,
                     real alpha,
                     real rho,
                     real sigma,
                     real delta) {
    int N1 = rows(y1);
    int N2 = size(x2);
    vector[N2] f2;
    {
      matrix[N1, N1] L_K;
      vector[N1] K_div_y1;
      matrix[N1, N2] k_x1_x2;
      matrix[N1, N2] v_pred;
      vector[N2] f2_mu;
      matrix[N2, N2] cov_f2;
      matrix[N2, N2] diag_delta;
      matrix[N1, N1] K;
      K = gp_exp_quad_cov(x1, alpha, rho);
      for (n in 1:N1)
        K[n, n] = K[n,n] + square(sigma);
      L_K = cholesky_decompose(K);
      K_div_y1 = mdivide_left_tri_low(L_K, y1);
      K_div_y1 = mdivide_right_tri_low(K_div_y1', L_K)';
      k_x1_x2 = gp_exp_quad_cov(x1, x2, alpha, rho);
      f2_mu = (k_x1_x2' * K_div_y1);
      v_pred = mdivide_left_tri_low(L_K, k_x1_x2);
      cov_f2 = gp_exp_quad_cov(x2, alpha, rho) - v_pred' * v_pred;
      diag_delta = diag_matrix(rep_vector(delta, N2));

      f2 = multi_normal_rng(f2_mu, cov_f2 + diag_delta);
    }
    return f2;
  }

Which is cool, but any objections to changing x_1, x_2, which could be mistaken for elements of a vector x or column vectors, to something like x and x_{pred} (x, x_pred)? Or to match the language in the docs, and what’s commonly used for predictive inference, just x and \tilde{x} (x and x_tilde)?

Usually people don’t object to this kind of cosmetic change in code. This one in particular sounds like a good idea. I don’t have an opinion on _pred (don’t know what it means) vs. _tilde

That sounds like a good idea. I don’t have any idea what the _pred is for, but I’m not a GP expert.

But why is that using real arrays rather than vectors? I’d have thought everything would be coded in vectors.

Good observation, that’s a downvote then. It’s supposed to mean predict.

Similar to our pdfs/pmfs’s response, many are not templated support inputs of column vectors or column vectors of column vectors. So that’s the reason. It was for ease of implementation.

This will be changed eventaully.