code: def sample(self, t=None, size=1):
          
          if t is None:
              self.recompute()
              n, _ = self._x.shape
  
              # Generate samples using the precomputed factorization.
              results = self.solver.apply_sqrt(np.random.randn(size, n))
              results += self._call_mean(self._x)
              return results[0] if size == 1 else results
  
          x = self.parse_samples(t)
          cov = self.get_matrix(x)
          cov[np.diag_indices_from(cov)] += TINY
          return multivariate_gaussian_samples(cov, size,
                                               mean=self._call_mean(x))
docs: Draw samples from the prior distribution.
  
          :param t: ``(ntest, )`` or ``(ntest, ndim)`` (optional)
              The coordinates where the model should be sampled. If no
              coordinates are given, the precomputed coordinates and
              factorization are used.
  
          :param size: (optional)
              The number of samples to draw. (default: ``1``)
  
          Returns **samples** ``(size, ntest)``, a list of predictions at
          coordinates given by ``t``. If ``size == 1``, the result is a single
          sample with shape ``(ntest,)``.