The descriptor class template

The descriptor class template#

This page describes the descriptor class template, which belongs to the oneapi::mkl::dft namespace and is declared in oneapi/mkl/dft.hpp (file to be included).

namespace oneapi::mkl::dft {
  template <precision prec, domain dom>
  class descriptor;
}

The usage of prepended namespace specifiers oneapi::mkl::dft is omitted below for conciseness.

Users of the DPC++ interface of oneMKL must use instances of a specialization of this class template to specify and fully configure the required DFT computation(s): successfully-committed objects of a (specialized) descriptor class are required arguments to the DFT-specific compute functions.

Template parameters#

The descriptor class template is parameterized by two non-type template parameters, in the following order:

  • a value of type precision, that determines the floating-point format to be considered by its instances;

  • a value of type domain, that determines the type of forward domain to be considered by its instances.

Instances of a descriptor class specialized with value precision::SINGLE (resp. precision::DOUBLE) for the former are referred to as “single-precision descriptors” (resp. “double-precision descriptors”). Similarly, instances of a descriptor class specialized with value domain::COMPLEX (resp. domain::REAL) for the latter are referred to as “complex descriptors” (resp. “real descriptors”).

Note

Some GPU devices do not support double-precision descriptors. It is recommended to verify that the targeted device does support double-precision floating-point arithmetic before using a double-precision descriptor on that device.

Member functions#

Considering objects of any descriptor class, users may