code: def univariate_prior_KL(
      meanA: AnyNDArray,
      meanB: AnyNDArray,
      varA: AnyNDArray,
      varB: AnyNDArray,
  ) -> AnyNDArray:
      # KL[ qA | qB ] = E_{qA} \log [qA / qB] where qA and qB are univariate normal distributions.
      return cast(
          AnyNDArray,
          0.5
          * (
              np.log(varB)
              - np.log(varA)
              - 1.0
              + varA / varB
              + cast(AnyNDArray, meanB - meanA)
              * cast(AnyNDArray, meanB - meanA)
              / varB
          ),
      )
  
imports: from typing import Tuple, cast
  import numpy
  import pytest
  from check_shapes import check_shapes
  from numpy.testing import assert_allclose
  import gpflow
  from gpflow.base import AnyNDArray
  from gpflow.kernels import SquaredExponential
  from gpflow.likelihoods import Gaussian
  from tests.gpflow.kernels.reference import ref_rbf_kernel
label_desc: Use image node_id 3 for calling a global function with example usage: univariate_prior_KL(meanA, meanB, varA, varB) and returns: cast