code: def _rfft_transpose(t, fft_lengths):
      # The transpose of RFFT can't be expressed only in terms of irfft. Instead of
      # manually building up larger twiddle matrices (which would increase the
      # asymptotic complexity and is also rather complicated), we rely JAX to
      # transpose a naive RFFT implementation.
      dummy_shape = t.shape[: -len(fft_lengths)] + fft_lengths
      dummy_primal = ShapeDtypeStruct(dummy_shape, _real_dtype(t.dtype))
      transpose = linear_transpose(
          partial(_naive_rfft, fft_lengths=fft_lengths), dummy_primal
      )
      (result,) = transpose(t)
      assert result.dtype == _real_dtype(t.dtype), (
          result.dtype,
          t.dtype,
      )
      return result
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  from functools import partial
  import math
  import numpy
  from jax import lax
  from jax._src import dispatch
  from jax._src.api import jit, linear_transpose, ShapeDtypeStruct
  from jax._src.core import Primitive, is_constant_shape
  from jax._src.interpreters import ad
  from jax._src.interpreters import batching
  from jax._src.interpreters import mlir
  from jax._src.lib.mlir.dialects import hlo
  from jax._src.lib import xla_client
  from jax._src.lib import xla_extension_version
  from jax._src.lib import ducc_fft
  from jax._src.numpy.util import promote_dtypes_complex, promote_dtypes_inexact
label_desc: Use image node_id 8 for calling a global function with example usage: _rfft_transpose(t, fft_lengths) and returns: result