code: def _fft_conv(x, y):
      x = _complex_real(x)
      y = _complex_real(y)
      x = tf.concat([x, tf.zeros_like(x)], -1)
      y = tf.concat([y, tf.zeros_like(y)], -1)
      return tf.math.real(
          tf.signal.ifft(tf.signal.fft(x) * tf.signal.fft(y))
      )[..., :-1]
  
imports: import collections
  import tensorflow.compat.v2
  import tensorflow_probability
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import prefer_static
  from inference_gym.internal import data
  from inference_gym.targets import bayesian_model
  from inference_gym.targets import model
  from inference_gym.targets.ground_truth import stochastic_volatility_log_sp500
  from inference_gym.targets.ground_truth import stochastic_volatility_log_sp500_small
  from inference_gym.targets.ground_truth import stochastic_volatility_sp500
  from inference_gym.targets.ground_truth import stochastic_volatility_sp500_small
label_desc: Use image node_id 2 for calling a global function with example usage: _fft_conv(x, y) and returns: tf