Skip to content

Commit

Permalink
Merge branch 'fix-headers-fft' into 'master'
Browse files Browse the repository at this point in the history
fix headers in fft.hpp

See merge request correaa/boost-multi!1370
  • Loading branch information
correaa committed Mar 10, 2025
2 parents da79e40 + 8f5d27d commit ff657cc
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .gitlab-ci-correaa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ clang++-16 mull-16: # mull-17 crashes
- cmake --build . --parallel 2 || cmake --build . --parallel 1 --verbose
# - ctest -j 2 --output-on-failure
- cd test
- ls *.x | xargs -n 1 sh -c 'echo $0 && ((mull-runner-16 --timeout 10000 --ld-search-path=/usr/lib/x86_64-linux-gnu $0 -test-program=ctest -- -j2 --stop-on-failure) || exit 255)'
- ls *.x | xargs -n 1 sh -c 'echo $0 && ((mull-runner-16 --timeout 20000 --ld-search-path=/usr/lib/x86_64-linux-gnu $0 -test-program=ctest -- -j2 --stop-on-failure) || exit 255)'
needs: ["clang++"]

# deb:
Expand Down
15 changes: 12 additions & 3 deletions include/boost/multi/adaptors/fft.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,23 @@
#ifndef BOOST_MULTI_ADAPTORS_FFT_HPP
#define BOOST_MULTI_ADAPTORS_FFT_HPP

#include "../adaptors/fftw.hpp"
#include <boost/multi/adaptors/fftw.hpp>

#if defined(__CUDA__) || defined(__NVCC__)
#include "../adaptors/cufft.hpp"
#include <boost/multi/adaptors/cufft.hpp>
#elif defined(__HIPCC__)
#include "../adaptors/hipfft.hpp"
#include <boost/multi/adaptors/hipfft.hpp>
#endif

#include <boost/multi/array_ref.hpp> // for extensions_t, const_subarray, get

#include <array> // for array
#include <cstddef> // for size_t
#include <iterator> // for random_access_iterator_tag
#include <tuple> // for apply
#include <type_traits> // for decay_t, conditional_t, true_type
#include <utility> // for forward

#define BOOST_MULTI_DECLRETURN_(ExpR) -> decltype(ExpR) { return ExpR; } // NOLINT(cppcoreguidelines-macro-usage) saves a lot of typing
#define BOOST_MULTI_JUSTRETURN_(ExpR) -> decltype(auto) { return ExpR; } // NOLINT(cppcoreguidelines-macro-usage) saves a lot of typing

Expand Down
18 changes: 9 additions & 9 deletions test/array_ptr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,13 @@ auto main() -> int { // NOLINT(readability-function-cognitive-complexity,bugpro
}

// BOOST_AUTO_TEST_CASE(subarray_ptr_1D) {
// multi::subarray_ptr<double, 1> const ptr = nullptr;
// BOOST_TEST(( ptr == multi::subarray_ptr<double, 1>{nullptr} ));
// multi::subarray_ptr<double, 1> const ptr = nullptr;
// BOOST_TEST(( ptr == multi::subarray_ptr<double, 1>{nullptr} ));
// }

// BOOST_AUTO_TEST_CASE(subarray_ptr_2D) {
// multi::subarray_ptr<double, 2> const ptr = nullptr;
// BOOST_TEST(( ptr == multi::subarray_ptr<double, 2>{nullptr} ));
// multi::subarray_ptr<double, 2> const ptr = nullptr;
// BOOST_TEST(( ptr == multi::subarray_ptr<double, 2>{nullptr} ));
// }

BOOST_AUTO_TEST_CASE(multi_array_ptr) {
Expand Down Expand Up @@ -138,7 +138,7 @@ auto main() -> int { // NOLINT(readability-function-cognitive-complexity,bugpro
static_assert(std::is_trivially_copyable_v<multi::layout_t<2>>);

#ifndef _MSC_VER
// static_assert(std::is_trivially_default_constructible_v<multi::subarray_ptr<double, 2>>);
// static_assert(std::is_trivially_default_constructible_v<multi::subarray_ptr<double, 2>>);
#endif
// static_assert(std::is_trivially_copy_assignable_v<multi::subarray_ptr<double, 2>>);
// static_assert(std::is_trivially_copyable_v<multi::subarray_ptr<double, 2>>);
Expand Down Expand Up @@ -220,15 +220,15 @@ auto main() -> int { // NOLINT(readability-function-cognitive-complexity,bugpro
using my_span = multi::array_ref<int, 1>;

#if defined(__clang__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wunknown-warning-option"
# pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wunknown-warning-option"
# pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
#endif

auto aP = &my_span{vec.data() + 2, {5}}; // NOLINT(cppcoreguidelines-pro-bounds-pointer-arithmetic)

#if defined(__clang__)
# pragma clang diagnostic pop
# pragma clang diagnostic pop
#endif

BOOST_TEST( (*aP).size() == 5 );
Expand Down

0 comments on commit ff657cc

Please sign in to comment.