@@ -40,10 +40,10 @@ namespace dft {
4040namespace mklcpu {
4141
4242template <precision prec, domain dom>
43- class commit_derived_impl final : public detail::commit_impl {
43+ class commit_derived_impl final : public detail::commit_impl<prec, dom> {
4444public:
4545 commit_derived_impl (sycl::queue queue, const detail::dft_values<prec, dom>& config_values)
46- : detail::commit_impl(queue, backend::mklcpu) {
46+ : detail::commit_impl<prec, dom> (queue, backend::mklcpu) {
4747 DFT_ERROR status = DFT_NOTSET;
4848 if (config_values.dimensions .size () == 1 ) {
4949 status = DftiCreateDescriptor (&handle, get_precision (prec), get_domain (dom), 1 ,
@@ -55,16 +55,19 @@ class commit_derived_impl final : public detail::commit_impl {
5555 config_values.dimensions .data ());
5656 }
5757 if (status != DFTI_NO_ERROR) {
58- throw oneapi::mkl::exception (" dft/backends/mklcpu" , " commit" ,
59- " DftiCreateDescriptor failed" );
58+ throw oneapi::mkl::exception (
59+ " dft/backends/mklcpu" , " commit" ,
60+ " DftiCreateDescriptor failed with status: " + std::to_string (status));
6061 }
62+ }
6163
64+ void commit (const detail::dft_values<prec, dom>& config_values) override {
6265 set_value (handle, config_values);
63-
64- status = DftiCommitDescriptor (handle);
66+ auto status = DftiCommitDescriptor (handle);
6567 if (status != DFTI_NO_ERROR) {
66- throw oneapi::mkl::exception (" dft/backends/mklcpu" , " commit" ,
67- " DftiCommitDescriptor failed" );
68+ throw oneapi::mkl::exception (
69+ " dft/backends/mklcpu" , " commit" ,
70+ " DftiCommitDescriptor failed with status: " + std::to_string (status));
6871 }
6972 }
7073
@@ -122,18 +125,19 @@ class commit_derived_impl final : public detail::commit_impl {
122125};
123126
124127template <precision prec, domain dom>
125- detail::commit_impl* create_commit (const descriptor<prec, dom>& desc, sycl::queue& sycl_queue) {
128+ detail::commit_impl<prec, dom>* create_commit (const descriptor<prec, dom>& desc,
129+ sycl::queue& sycl_queue) {
126130 return new commit_derived_impl<prec, dom>(sycl_queue, desc.get_values ());
127131}
128132
129- template detail::commit_impl* create_commit ( const descriptor <precision::SINGLE, domain::REAL>&,
130- sycl::queue&);
131- template detail::commit_impl* create_commit ( const descriptor <precision::SINGLE, domain::COMPLEX>&,
132- sycl::queue&);
133- template detail::commit_impl* create_commit ( const descriptor <precision::DOUBLE, domain::REAL>&,
134- sycl::queue&);
135- template detail::commit_impl* create_commit ( const descriptor <precision::DOUBLE, domain::COMPLEX>&,
136- sycl::queue&);
133+ template detail::commit_impl<precision::SINGLE, domain::REAL>* create_commit (
134+ const descriptor<precision::SINGLE, domain::REAL>&, sycl::queue&);
135+ template detail::commit_impl<precision::SINGLE, domain::COMPLEX>* create_commit (
136+ const descriptor<precision::SINGLE, domain::COMPLEX>&, sycl::queue&);
137+ template detail::commit_impl<precision::DOUBLE, domain::REAL>* create_commit (
138+ const descriptor<precision::DOUBLE, domain::REAL>&, sycl::queue&);
139+ template detail::commit_impl<precision::DOUBLE, domain::COMPLEX>* create_commit (
140+ const descriptor<precision::DOUBLE, domain::COMPLEX>&, sycl::queue&);
137141
138142} // namespace mklcpu
139143} // namespace dft
0 commit comments