def METHOD_NAME(
    self,
    precompute_cache: posteriors.PrecomputeCacheType = posteriors.PrecomputeCacheType.TENSOR,
) -> posteriors.GPRPosterior:
    """
    Create the Posterior object which contains precomputed matrices for
    faster prediction.
    precompute_cache has three settings:
    - `PrecomputeCacheType.TENSOR` (or `"tensor"`): Precomputes the cached
      quantities and stores them as tensors (which allows differentiating
      through the prediction). This is the default.
    - `PrecomputeCacheType.VARIABLE` (or `"variable"`): Precomputes the cached
      quantities and stores them as variables, which allows for updating
      their values without changing the compute graph (relevant for AOT
      compilation).
    - `PrecomputeCacheType.NOCACHE` (or `"nocache"` or `None`): Avoids
      immediate cache computation. This is useful for avoiding extraneous
      computations when you only want to call the posterior's
      `fused_predict_f` method.
    """
    return posteriors.GPRPosterior(
        kernel=self.kernel,
        data=self.data,
        likelihood=self.likelihood,
        mean_function=self.mean_function,
        precompute_cache=precompute_cache,
    )