code: def base_conditional(
      Kmn: tf.Tensor,
      Kmm: tf.Tensor,
      Knn: tf.Tensor,
      f: tf.Tensor,
      *,
      full_cov: bool = False,
      q_sqrt: Optional[tf.Tensor] = None,
      white: bool = False,
  ) -> MeanAndVariance:
      r"""
      Given a g1 and g2, and distribution p and q such that::
  
        p(g2) = N(g2; 0, Kmm)
  
        p(g1) = N(g1; 0, Knn)
        p(g1 | g2) = N(g1; Knm (Kmm⁻¹) g2, Knn - Knm (Kmm⁻¹) Kmn)
  
      And::
  
        q(g2) = N(g2; f, q_sqrt q_sqrtᵀ)
  
      This method computes the mean and (co)variance of::
  
        q(g1) = ∫ q(g2) p(g1 | g2)
  
      :param q_sqrt: If this is a Tensor, it must have shape [R, M, M] (lower
          triangular) or [M, R] (diagonal)
      :return: mean, variance
      """
      Lm = tf.linalg.cholesky(Kmm)
      return base_conditional_with_lm(
          Kmn=Kmn,
          Lm=Lm,
          Knn=Knn,
          f=f,
          full_cov=full_cov,
          q_sqrt=q_sqrt,
          white=white,
      )
  
file_path: GPflow/gpflow/conditionals/util.py
imports: from typing import Optional, Tuple
  import tensorflow
  from check_shapes import check_shape
  from check_shapes import check_shapes
  from ..base import MeanAndVariance
  from ..config import default_float, default_jitter
  from ..utilities.ops import leading_transpose
label_desc: Use image node_id 1 for calling a global function with example usage: base_conditional(Kmn, Kmm, Knn, f) and returns: base_conditional_with_lm