compute_backward<typename descriptor_type, typename data_type>

Computes the backward FFT. This routine belongs to the oneapi::mkl::dft namespace.

Description

The compute_backward<typename descriptor_type, typename data_type> function accepts a descriptor object followed by one or more data parameters. Given a successfully configured and committed descriptor, this function computes the backward FFT, that is, the transform with the plus sign in the exponent, \(\delta = +1\). This function throws an std::runtime_exception in the case that it fails.

The FFT descriptor must be properly configured prior to the function call. Function calls needed to configure an FFT descriptor for a particular call to an FFT computation function are summarized in Configuring and Computing an FFT in C/C++.

The number of data parameters to be provided depends exclusively on the descriptor’s PLACEMENT configuration parameter. In-place (default) operations require only one data parameter while out-of-place operations take two distinct data parameters. The function’s behavior is undefined otherwise.

API

Syntax

Using SYCL buffers

namespace oneapi::mkl::dft{
  void compute_backward<descriptor_type,
  data_type>(descriptor_type &desc, sycl::buffer<data_type,
  1> &inout);


void compute_backward<descriptor_type, input_type,
  output_type>(descriptor_type &desc,
  sycl::buffer<input_type, 1> &in,
  sycl::buffer<output_type, 1> &out);
}

Using USM pointers

namespace oneapi::mkl::dft{
  sycl::event compute_backward<descriptor_type,
  data_type>(descriptor_type &desc, data_type* inout, const
  std::vector<sycl::event> &dependencies = {});


  sycl::event compute_backward<descriptor_type, input_type,
  output_type>(descriptor_type &desc, input_type* in,
  output_type* out, const
  std::vector<sycl::event> &dependencies = {});
}

Include Files

  • oneapi/mkl/dfti.hpp

Input Parameters

Name

Supported types

Description

inout

  1. sycl::buffer<data_type, 1>

  2. data_type*

Input/output data

in

  1. sycl::buffer<input_type, 1>

  2. input_type*

Input data

  • The parameter name inout (resp. in) corresponds to using a descriptor configured to operate INPLACE (resp. NOT_INPLACE). See descriptor’s PLACEMENT.

  • Whether using i. SYCL buffers or ii. device-accessible USM pointers, the length of the containing array must be no less than specified at construction of the descriptor.

Output Parameters

Name

Supported types

Description

inout

  1. sycl::buffer<data_type, 1>

  2. data_type*

Input/output data

out

  1. sycl::buffer<output_type, 1>

  2. output_type*

Output data

  • The parameter name inout (resp. out) corresponds to using a descriptor configured to operate INPLACE (resp. NOT_INPLACE). See descriptor’s PLACEMENT.

  • Whether using i. SYCL buffers or ii. device-accessible USM pointers, the length of the containing array must be no less than specified at construction of the descriptor.

  • In case of out-of-place operations, the same type is to be used for the parameters in and out.