class_docstr: Dialect op for IFFT. Computes the one dimensional inverse discrete Fourier transform of input.
  
  Parameters
  ----------
  All parameters except ``norm`` are same as the ``complex_fft`` op.
  norm: const str (Optional. Default=``backward``)
      * Normalization mode. For the backward transform (ifft()), these correspond to:
          * "forward" - no normalization
          * "backward" - normalize by 1/n
          * "ortho" - normalize by 1/sqrt(n) (making the IFFT orthonormal)
      * Calling the forward transform (fft()) with the same normalization mode will apply an
        overall normalization of 1/n between the two transforms. This is required to make ifft()
        the exact inverse.
      * Default is "backward" (normalize by 1/n).
  
  Returns
  -------
  tensor<\*V, T>
      * A complex tensor where real and imag parts have the same shape. The shape is the same as
        the input except for the ``dim``:
          * If ``n`` is None, the shape is same as the input.
          * If ``n`` is specified, the shape at the `dim` is ``V[dim]=n``.
  
  Attributes
  ----------
  T: complex64
  
  References
  ----------
  See `torch.fft.ifft <https://pytorch.org/docs/stable/generated/torch.fft.ifft.html>`_.
class_docstr_tok: ["Dialect","op","for","IFFT",".","Computes","the","one","dimensional","inverse","discrete","Fourier","transform","of","input",".","Parameters","--","--","--","--","--","All","parameters","except","``","norm","``","are","same","as","the","``","complex_fft","``","op",".","norm",":","const","str","(","Optional",".","Default=","``","backward","``",")","*","Normalization","mode",".","For","the","backward","transform","(","ifft","(",")",")",",","these","correspond","to",":","*","``","forward","''","-","no","normalization","*","``","backward","''","-","normalize","by","1\/n","*","``","ortho","''","-","normalize","by","1\/sqrt","(","n",")","(","making","the","IFFT","orthonormal",")","*","Calling","the","forward","transform","(","fft","(",")",")","with","the","same","normalization","mode","will","apply","an","overall","normalization","of","1\/n","between","the","two","transforms",".","This","is","required","to","make","ifft","(",")","the","exact","inverse",".","*","Default","is","``","backward","''","(","normalize","by","1\/n",")",".","Returns","--","--","--","-","tensor","<","\\","*","V",",","T",">","*","A","complex","tensor","where","real","and","imag","parts","have","the","same","shape",".","The","shape","is","the","same","as","the","input","except","for","the","``","dim","``",":","*","If","``","n","``","is","None",",","the","shape","is","same","as","the","input",".","*","If","``","n","``","is","specified",",","the","shape","at","the","`","dim","`","is","``","V","[","dim","]","=n","``",".","Attributes","--","--","--","--","--","T",":","complex64","References","--","--","--","--","--","See","`","torch.fft.ifft","<","https",":","\/\/pytorch.org\/docs\/stable\/generated\/torch.fft.ifft.html",">","`","_","."]
code: def type_inference(self):
      output_type = self.data.dtype
      output_shape = list(self.data.shape)
      n, dim = fft_canonicalize_length_dim(self.data, self.n, self.dim)
      output_shape[dim] = n
      return types.tensor(output_type, tuple(output_shape))
  
imports: from typing import Optional, Tuple
  import numpy
  from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.input_type import DefaultInputs, InputSpec, TensorInputType
  from coremltools.converters.mil.mil.ops.registry import SSAOpRegistry
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic, is_symbolic
  from coremltools.converters.mil.mil.types.type_mapping import infer_complex_dtype, infer_fp_dtype_from_complex
  from coremltools.converters.mil.mil.var import ComplexVar, Var
label_desc: Use image node_id 2 for calling the complex_ifft obj's underlying member method code with example usage: obj.type_inference() and returns: types