code: def output_type(self, inp):
      # remove extra dim for real/imag
      return GpuArrayType(
          inp.dtype,
          broadcastable=[False] * (inp.type.ndim - 1),
          context_name=inp.type.context_name,
      )
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  import theano
  from theano import Op
  import theano.tensor
  from theano.gradient import DisconnectedType
  from .basic_ops import gpu_contiguous, as_gpuarray_variable, infer_context_name
  from .type import GpuArrayType
  import theano.tensor.fft
  from .opt import register_opt, op_lifter, register_opt2
label_desc: Use image node_id 1 for calling the CuIRFFTOp obj's underlying member method code with example usage: obj.output_type(inp) and returns: GpuArrayType