class_docstr: CUFFT plan class.
  
  This class represents an FFT plan for CUFFT.
  
  Parameters
  ----------
  shape : tuple of ints
      Transform shape. May contain more than 3 elements.
  in_dtype : { numpy.float32, numpy.float64, numpy.complex64, numpy.complex128 }
      Type of input data.
  out_dtype : { numpy.float32, numpy.float64, numpy.complex64, numpy.complex128 }
      Type of output data.
  batch : int
      Number of FFTs to configure in parallel (default is 1).
  stream : pycuda.driver.Stream
      Stream with which to associate the plan. If no stream is specified,
      the default stream is used.
  mode : int
      FFTW compatibility mode. Ignored in CUDA 9.2 and later.
  inembed : numpy.array with dtype=numpy.int32
      number of elements in each dimension of the input array
  istride : int
      distance between two successive input elements in the least significant
      (innermost) dimension
  idist : int
      distance between the first element of two consective batches in the
      input data
  onembed : numpy.array with dtype=numpy.int32
      number of elements in each dimension of the output array
  ostride : int
      distance between two successive output elements in the least significant
      (innermost) dimension
  odist : int
      distance between the first element of two consective batches in the
      output data
  auto_allocate : bool
      indicates whether the caller intends to allocate and manage the work area
class_docstr_tok: ["CUFFT","plan","class",".","This","class","represents","an","FFT","plan","for","CUFFT",".","Parameters","--","--","--","--","--","shape",":","tuple","of","ints","Transform","shape",".","May","contain","more","than","3","elements",".","in_dtype",":","{","numpy.float32",",","numpy.float64",",","numpy.complex64",",","numpy.complex128","}","Type","of","input","data",".","out_dtype",":","{","numpy.float32",",","numpy.float64",",","numpy.complex64",",","numpy.complex128","}","Type","of","output","data",".","batch",":","int","Number","of","FFTs","to","configure","in","parallel","(","default","is","1",")",".","stream",":","pycuda.driver.Stream","Stream","with","which","to","associate","the","plan",".","If","no","stream","is","specified",",","the","default","stream","is","used",".","mode",":","int","FFTW","compatibility","mode",".","Ignored","in","CUDA","9.2","and","later",".","inembed",":","numpy.array","with","dtype=numpy.int32","number","of","elements","in","each","dimension","of","the","input","array","istride",":","int","distance","between","two","successive","input","elements","in","the","least","significant","(","innermost",")","dimension","idist",":","int","distance","between","the","first","element","of","two","consective","batches","in","the","input","data","onembed",":","numpy.array","with","dtype=numpy.int32","number","of","elements","in","each","dimension","of","the","output","array","ostride",":","int","distance","between","two","successive","output","elements","in","the","least","significant","(","innermost",")","dimension","odist",":","int","distance","between","the","first","element","of","two","consective","batches","in","the","output","data","auto_allocate",":","bool","indicates","whether","the","caller","intends","to","allocate","and","manage","the","work","area"]
code: def __del__(self):
      # Don't complain if handle destruction fails because the plan
      # may have already been cleaned up:
      try:
          cufft.cufftDestroy(self.handle)
      except:
          pass
  
file_path: scikit-cuda/skcuda/fft.py
imports: import pycuda.driver
  import pycuda.gpuarray
  import pycuda.elementwise
  from pycuda.tools import context_dependent_memoize
  import pycuda.tools
  import numpy
  from .None import cufft
  from .cufft import CUFFT_COMPATIBILITY_NATIVE, CUFFT_COMPATIBILITY_FFTW_PADDING, CUFFT_COMPATIBILITY_FFTW_ASYMMETRIC, CUFFT_COMPATIBILITY_FFTW_ALL
  from .None import cudart
  from .None import misc
label_desc: Use image node_id 3 for calling the Plan obj's underlying member method code with example usage: obj.__del__() without return types