@@ -210,7 +210,9 @@ namespace xt {
210210 using fftw_output_t = fftw_number_t <output_t >;
211211
212212 auto dft_dimensions_unsigned = dft_dimensions_from_output (output, half_plus_one_out);
213- std::vector<int > dft_dimensions (dft_dimensions_unsigned.begin (), dft_dimensions_unsigned.end ());
213+ std::vector<int > dft_dimensions;
214+ dft_dimensions.reserve (dft_dimensions_unsigned.size ());
215+ std::transform (dft_dimensions_unsigned.begin (), dft_dimensions_unsigned.end (), std::back_inserter (dft_dimensions), [&](std::size_t d) { return static_cast <int >(d); });
214216
215217 return fftw_plan_dft (static_cast <int >(dim), dft_dimensions.data (),
216218 const_cast <fftw_input_t *>(reinterpret_cast <const fftw_input_t *>(input.raw_data ())),
@@ -275,7 +277,9 @@ namespace xt {
275277 using fftw_output_t = fftw_number_t <output_t >;
276278
277279 auto dft_dimensions_unsigned = dft_dimensions_from_output (output, half_plus_one_out, odd_last_dim);
278- std::vector<int > dft_dimensions (dft_dimensions_unsigned.begin (), dft_dimensions_unsigned.end ());
280+ std::vector<int > dft_dimensions;
281+ dft_dimensions.reserve (dft_dimensions_unsigned.size ());
282+ std::transform (dft_dimensions_unsigned.begin (), dft_dimensions_unsigned.end (), std::back_inserter (dft_dimensions), [&](std::size_t d) { return static_cast <int >(d); });
279283
280284 return fftw_plan_dft (static_cast <int >(dim), dft_dimensions.data (),
281285 const_cast <fftw_input_t *>(reinterpret_cast <const fftw_input_t *>(input.raw_data ())),
@@ -393,7 +397,7 @@ namespace xt {
393397 fftw_execute (plan);
394398 fftw_destroy_plan (plan);
395399 auto dft_dimensions = dft_dimensions_from_output (output, half_plus_one_out, odd_last_dim);
396- auto N_dft = static_cast <prec_t <output_t > >(std::accumulate (dft_dimensions.begin (), dft_dimensions.end (), 1 , std::multiplies<std:: size_t >()));
400+ auto N_dft = static_cast <prec_t <output_t > >(std::accumulate (dft_dimensions.begin (), dft_dimensions.end (), static_cast < size_t >( 1u ) , std::multiplies<size_t >()));
397401 return output / N_dft;
398402 };
399403
@@ -450,7 +454,7 @@ namespace xt {
450454 output = xt::conj (output);
451455
452456 auto dft_dimensions = dft_dimensions_from_output (output, half_plus_one_out);
453- auto N_dft = static_cast <prec_t <output_t > >(std::accumulate (dft_dimensions.begin (), dft_dimensions.end (), 1 , std::multiplies<std:: size_t >()));
457+ auto N_dft = static_cast <prec_t <output_t > >(std::accumulate (dft_dimensions.begin (), dft_dimensions.end (), static_cast < size_t >( 1u ) , std::multiplies<size_t >()));
454458 return output / N_dft;
455459 };
456460
0 commit comments