code: def predictive_values(self, mu, var, full_cov=False, Y_metadata=None):
          
          try:
              pred_mean = self.predictive_mean(mu, var, Y_metadata=Y_metadata)
              pred_var = self.predictive_variance(mu, var, pred_mean, Y_metadata=Y_metadata)
          except NotImplementedError:
              print("Finding predictive mean and variance via sampling rather than quadrature")
              Nf_samp = 300
              Ny_samp = 1
              s = np.random.randn(mu.shape[0], Nf_samp)*np.sqrt(var) + mu
              ss_y = self.samples(s, Y_metadata, samples=Ny_samp)
              pred_mean = np.mean(ss_y, axis=1)[:, None]
              pred_var = np.var(ss_y, axis=1)[:, None]
  
          return pred_mean, pred_var
docs: Compute  mean, variance of the  predictive distibution.
  
          :param mu: mean of the latent variable, f, of posterior
          :param var: variance of the latent variable, f, of posterior
          :param full_cov: whether to use the full covariance or just the diagonal
          :type full_cov: Boolean