code: def _expectation_gaussian_linear__kernel_inducingpoints(
      p: Gaussian,
      linear_mean: mfn.Linear,
      _: None,
      kernel: kernels.Kernel,
      inducing_variable: InducingPoints,
      nghp: None = None,
  ) -> tf.Tensor:
      """
      Compute the expectation:
      expectation[n] = <m(x_n)^T K_{x_n, Z}>_p(x_n)
          - m(x_i) = A x_i + b :: Linear mean function
          - K_{.,.}            :: Kernel function
  
      :return: NxQxM
      """
      N = tf.shape(p.mu)[0]
      D = tf.shape(p.mu)[1]
      exKxz = expectation(
          p, mfn.Identity(D), (kernel, inducing_variable), nghp=nghp
      )
      eKxz = expectation(p, (kernel, inducing_variable), nghp=nghp)
      eAxKxz = tf.linalg.matmul(
          tf.tile(linear_mean.A[None, :, :], (N, 1, 1)),
          exKxz,
          transpose_a=True,
      )
      ebKxz = linear_mean.b[None, :, None] * eKxz[:, None, :]
      return eAxKxz + ebKxz
  
file_path: GPflow/gpflow/expectations/misc.py
imports: from typing import Optional, Type, Union, cast
  import tensorflow
  from check_shapes import check_shapes
  from ..None import kernels
  from ..None import mean_functions
  from ..inducing_variables import InducingPoints, InducingVariables
  from ..probability_distributions import DiagonalGaussian, Gaussian, MarkovGaussian
  from .None import dispatch
  from .expectations import ExpectationObject, PackedExpectationObject, expectation
label_desc: Use image node_id 4 for calling a global function with example usage: _expectation_gaussian_linear__kernel_inducingpoints(p, linear_mean, _, kernel, inducing_variable, nghp) and returns: unknown