code: def _irfft_with_zeroed_inputs(irfft_fun):
      # irfft isn't defined on the full domain of inputs, so in order to have a
      # well defined derivative on the whole domain of the function, we zero-out
      # the imaginary part of the first and possibly the last elements.
      def wrapper(z, axes, s=None, norm=None):
          return irfft_fun(
              _zero_for_irfft(z, axes), axes=axes, s=s, norm=norm
          )
  
      return wrapper
  
imports: import itertools
  import numpy
  from absl.testing import absltest
  from absl.testing import parameterized
  import jax
  from jax import lax
  from jax import numpy
  from jax._src import config
  from jax._src import dtypes
  from jax._src import test_util
  from jax._src.numpy.util import promote_dtypes_complex
label_desc: Use image node_id 4 for calling a global function with example usage: _irfft_with_zeroed_inputs(irfft_fun) and returns: wrapper, irfft_fun