code: def perform(self, node, inputs, output_storage):
      a = inputs[0]
      s = inputs[1]
  
      # Reconstruct complex array from two float dimensions
      inp = a[..., 0] + 1j * a[..., 1]
      out = np.fft.irfftn(inp, s=tuple(s))
      # Remove numpy's default normalization
      # Cast to input type (numpy outputs float64 by default)
      output_storage[0][0] = (out * s.prod()).astype(a.dtype)
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  from theano import gof
  import theano.tensor
  from theano.gradient import DisconnectedType
label_desc: Use image node_id 3 for calling the IRFFTOp obj's underlying member method code with example usage: obj.perform(node, inputs, output_storage) without return types