class_docstr: Base class for Gaussian processes. 
class_docstr_tok: ["Base","class","for","Gaussian","processes","."]
docstr: Evaluates the GP on X_test. If uncert_form is
  covar: returns the entire covariance on X_test (nxn matrix)
  std: returns the standard deviations on the test set (n vector)
  none: returns nothing (default).
docstr_tok: ["Evaluates","the","GP","on","X_test",".","If","uncert_form","is","covar",":","returns","the","entire","covariance","on","X_test","(","nxn","matrix",")","std",":","returns","the","standard","deviations","on","the","test","set","(","n","vector",")","none",":","returns","nothing","(","default",")","."]
code: def eval(self, X_test, uncert_form="none"):
      """Evaluates the GP on X_test. If uncert_form is
      covar: returns the entire covariance on X_test (nxn matrix)
      std: returns the standard deviations on the test set (n vector)
      none: returns nothing (default).
      """
      # Compute the posterior mean.
      test_mean = self.mean_func(X_test)
      K_tetr = self.kernel(X_test, self.X)
      pred_mean = test_mean + K_tetr.dot(self.alpha)
      # Compute the posterior variance or standard deviation as required.
      if uncert_form == "none":
          uncert = None
      else:
          K_tete = self.kernel(X_test, X_test)
          V = solve_lower_triangular(self.L, K_tetr.T)
          post_covar = K_tete - V.T.dot(V)
          post_covar = get_post_covar_from_raw_covar(
              post_covar,
              self.noise_var,
              self.kernel.is_guaranteed_psd(),
          )
          if uncert_form == "covar":
              uncert = post_covar
          elif uncert_form == "std":
              uncert = np.sqrt(np.diag(post_covar))
          else:
              raise ValueError(
                  "uncert_form should be none, covar or std."
              )
      return pred_mean, uncert
  
imports: from __future__ import division
  from argparse import Namespace
  from itertools import product
  import sys
  import numpy
  from ..distributions.model import Model
  from ..distributions import continuous
  from ..distributions import discrete
  from ..utils.general_utils import stable_cholesky, draw_gaussian_samples, project_symmetric_to_psd_cone, solve_lower_triangular, solve_upper_triangular
  from ..utils.oper_utils import direct_ft_maximise, pdoo_maximise, random_maximise, random_sample_cts_dscr
  from ..utils.option_handler import get_option_specs, load_options
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 9 for calling the GP obj's underlying member method code with example usage: obj.eval(X_test, uncert_form) and returns: pred_mean,  uncert