cuFFT
=====

.. raw:: html

    <p>Provides FFT and inverse FFT for 1D, 2D and 3D arrays.
    See <a class="reference external" href="http://docs.nvidia.com/cuda/cufft/index.html">NVIDIA cuFFT</a>.</p>
    <div class="admonition note">
    <p class="first admonition-title">Note</p>
    <p class="last">cuFFT only supports FFT operations on numpy.float32, numpy float64,
    numpy.complex64, numpy.complex128 with C-contiguous datalayout.</p>
    </div>
    <div class="section" id="forward-fft">
    <h2>Forward FFT<a class="headerlink" href="#forward-fft" title="Permalink to this headline">¶</a></h2>
    <dl class="function">
    <dt id="accelerate.cuda.fft.fft">
    <code class="descclassname">accelerate.cuda.fft.</code><code class="descname">fft</code><span class="sig-paren">(</span><em>ary</em>, <em>out</em><span class="optional">[</span>, <em>stream</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.fft" title="Permalink to this definition">¶</a></dt>
    <dd></dd></dl>

    <dl class="function">
    <dt id="accelerate.cuda.fft.fft_inplace">
    <code class="descclassname">accelerate.cuda.fft.</code><code class="descname">fft_inplace</code><span class="sig-paren">(</span><em>ary</em><span class="optional">[</span>, <em>stream</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.fft_inplace" title="Permalink to this definition">¶</a></dt>
    <dd><table class="docutils field-list" frame="void" rules="none">
    <col class="field-name" />
    <col class="field-body" />
    <tbody valign="top">
    <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
    <li><strong>ary</strong> &#8211; The input array. The inplace version stores the result in here.</li>
    <li><strong>out</strong> &#8211; The output array for non-inplace versions.</li>
    <li><strong>stream</strong> &#8211; The CUDA stream in which all operations will take place.</li>
    </ul>
    </td>
    </tr>
    </tbody>
    </table>
    </dd></dl>

    </div>
    <div class="section" id="inverse-fft">
    <h2>Inverse FFT<a class="headerlink" href="#inverse-fft" title="Permalink to this headline">¶</a></h2>
    <dl class="function">
    <dt id="accelerate.cuda.fft.ifft">
    <code class="descclassname">accelerate.cuda.fft.</code><code class="descname">ifft</code><span class="sig-paren">(</span><em>ary</em>, <em>out</em><span class="optional">[</span>, <em>stream</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.ifft" title="Permalink to this definition">¶</a></dt>
    <dd></dd></dl>

    <dl class="function">
    <dt id="accelerate.cuda.fft.ifft_inplace">
    <code class="descclassname">accelerate.cuda.fft.</code><code class="descname">ifft_inplace</code><span class="sig-paren">(</span><em>ary</em><span class="optional">[</span>, <em>stream</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.ifft_inplace" title="Permalink to this definition">¶</a></dt>
    <dd><table class="docutils field-list" frame="void" rules="none">
    <col class="field-name" />
    <col class="field-body" />
    <tbody valign="top">
    <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
    <li><strong>ary</strong> &#8211; The input array. The inplace version stores the result in here.</li>
    <li><strong>out</strong> &#8211; The output array for non-inplace versions.</li>
    <li><strong>stream</strong> &#8211; The CUDA stream in which all operations will take place.</li>
    </ul>
    </td>
    </tr>
    </tbody>
    </table>
    </dd></dl>

    </div>
    <div class="section" id="fftplan">
    <h2>FFTPlan<a class="headerlink" href="#fftplan" title="Permalink to this headline">¶</a></h2>
    <dl class="class">
    <dt id="accelerate.cuda.fft.FFTPlan">
    <em class="property">class </em><code class="descclassname">accelerate.cuda.fft.</code><code class="descname">FFTPlan</code><span class="sig-paren">(</span><em>*args</em>, <em>**kws</em><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.FFTPlan" title="Permalink to this definition">¶</a></dt>
    <dd><table class="docutils field-list" frame="void" rules="none">
    <col class="field-name" />
    <col class="field-body" />
    <tbody valign="top">
    <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
    <li><strong>shape</strong> &#8211; Input array shape.</li>
    <li><strong>itype</strong> &#8211; Input data type.</li>
    <li><strong>otype</strong> &#8211; Output data type.</li>
    <li><strong>batch</strong> &#8211; Maximum number of operation to perform.</li>
    <li><strong>stream</strong> &#8211; A CUDA stream for all the operations to put on.</li>
    <li><strong>mode</strong> &#8211; Operation mode; e.g. MODE_NATIVE, MODE_FFTW_PADDING,
    MODE_FFTW_ASYMMETRIC, MODE_FFTW_ALL, MODE_DEFAULT.</li>
    </ul>
    </td>
    </tr>
    </tbody>
    </table>
    <dl class="method">
    <dt id="accelerate.cuda.fft.FFTPlan.forward">
    <code class="descname">forward</code><span class="sig-paren">(</span><em>ary</em>, <em>out=None</em><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.FFTPlan.forward" title="Permalink to this definition">¶</a></dt>
    <dd><p>Perform forward FFT</p>
    <table class="docutils field-list" frame="void" rules="none">
    <col class="field-name" />
    <col class="field-body" />
    <tbody valign="top">
    <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
    <li><strong>ary</strong> &#8211; Input array</li>
    <li><strong>out</strong> &#8211; Optional output array</li>
    </ul>
    </td>
    </tr>
    <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The output array or a new numpy array is <cite>out</cite> is None.</p>
    </td>
    </tr>
    </tbody>
    </table>
    <div class="admonition note">
    <p class="first admonition-title">Note</p>
    <p class="last">If <cite>ary</cite> is <cite>out</cite>, an inplace operation is performed.</p>
    </div>
    </dd></dl>

    <dl class="method">
    <dt id="accelerate.cuda.fft.FFTPlan.inverse">
    <code class="descname">inverse</code><span class="sig-paren">(</span><em>ary</em>, <em>out=None</em><span class="sig-paren">)</span><a class="headerlink" href="#accelerate.cuda.fft.FFTPlan.inverse" title="Permalink to this definition">¶</a></dt>
    <dd><p>Perform inverse FFT</p>
    <table class="docutils field-list" frame="void" rules="none">
    <col class="field-name" />
    <col class="field-body" />
    <tbody valign="top">
    <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
    <li><strong>ary</strong> &#8211; Input array</li>
    <li><strong>out</strong> &#8211; Optional output array</li>
    </ul>
    </td>
    </tr>
    <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The output array or a new numpy array is <cite>out</cite> is None.</p>
    </td>
    </tr>
    </tbody>
    </table>
    </dd></dl>

    </dd></dl>
