code: def Kuf_matern32_fourierfeatures1d(inducing_variable, kernel, X):
      X = tf.squeeze(X, axis=1)
      a, b, ms = (lambda u: (u.a, u.b, u.ms))(inducing_variable)
      omegas = 2.0 * np.pi * ms / (b - a)
  
      Kuf_cos = tf.cos(omegas[:, None] * (X[None, :] - a))
      omegas_sin = omegas[
          tf.not_equal(omegas, 0)
      ]  # don't compute zeros freq.
      Kuf_sin = tf.sin(omegas_sin[:, None] * (X[None, :] - a))
  
      # correct Kuf outside [a, b] -- see Table 1
  
      def tail_cos(delta_X):
          arg = np.sqrt(3) * tf.abs(delta_X) / kernel.lengthscales
          return (1 + arg) * tf.exp(-arg)[None, :]
  
      Kuf_cos = tf.where(X < a, tail_cos(X - a), Kuf_cos)
      Kuf_cos = tf.where(X > b, tail_cos(X - b), Kuf_cos)
  
      def tail_sin(delta_X):
          arg = np.sqrt(3) * tf.abs(delta_X) / kernel.lengthscales
          return delta_X[None, :] * tf.exp(-arg) * omegas_sin[:, None]
  
      Kuf_sin = tf.where(X < a, tail_sin(X - a), Kuf_sin)
      Kuf_sin = tf.where(X > b, tail_sin(X - b), Kuf_sin)
  
      return tf.concat([Kuf_cos, Kuf_sin], axis=0)
  
imports: import numpy
  import tensorflow
  from check_shapes import Shape
  import gpflow
  from gpflow import covariances
  from gpflow import kullback_leiblers
  from gpflow.base import TensorLike
  from gpflow.ci_utils import reduce_in_tests
  from gpflow.inducing_variables import InducingVariables
  from gpflow.utilities import to_default_float
  import matplotlib.pyplot
  import gpflow.posteriors
label_desc: Use image node_id 4 for calling a global function with example usage: Kuf_matern32_fourierfeatures1d(inducing_variable, kernel, X) and returns: tf, unknown, unknown