#include <hydra/detail/Config.h>
#include <hydra/detail/BackendPolicy.h>
#include <hydra/Types.h>
#include <hydra/Tuple.h>
#include <hydra/Range.h>
#include <hydra/detail/FFTPolicy.h>
#include <hydra/Algorithm.h>
#include <hydra/Zip.h>
#include <hydra/Complex.h>
#include <hydra/detail/Convolution.inl>
#include <hydra/detail/ArgumentTraits.h>
#include <hydra/detail/external/hydra_thrust/transform.h>
#include <hydra/detail/external/hydra_thrust/reduce.h>
#include <hydra/detail/external/hydra_thrust/iterator/transform_iterator.h>
#include <hydra/detail/external/hydra_thrust/memory.h>
#include <hydra/detail/external/hydra_thrust/system/cuda/detail/execution_policy.h>
#include <utility>
#include <type_traits>
Go to the source code of this file.
|
| hydra |
| Generic policies definition.
|
|
|
#define | TAG typename std::conditional< std::is_convertible<typename hydra::thrust::iterator_system< decltype(std::declval<Iterable>().begin())>::type, hydra::thrust::system::cuda::tag>::value , std::integral_constant<int, 1>, std::integral_constant<int, 0> >::type |
|
#define | TYPE typename std::conditional< std::is_convertible<detail::BackendPolicy<BACKEND>,hydra::thrust::system::cuda::tag >::value, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type |
|
|
template<detail::Backend BACKEND, detail::FFTCalculator FFTBackend, typename Functor , typename Kernel , typename Iterable , typename T = typename detail::stripped_type<typename hydra::thrust::iterator_traits<decltype(std::declval<Iterable>().begin())>::value_type>::type, typename USING_CUDA_BACKEND = typename std::conditional< std::is_convertible<detail::BackendPolicy<BACKEND>,hydra::thrust::system::cuda::tag >::value, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type, typename USING_CUFFT = typename std::conditional< FFTBackend==detail::CuFFT, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type, typename GPU_DATA = typename std::conditional< std::is_convertible<typename hydra::thrust::iterator_system< decltype(std::declval<Iterable>().begin())>::type, hydra::thrust::system::cuda::tag>::value , std::integral_constant<int, 1>, std::integral_constant<int, 0> >::type> |
std::enable_if< std::is_floating_point< T >::value &&hydra::detail::is_iterable< Iterable >::value,void >::type | hydra::convolute (detail::BackendPolicy< BACKEND > policy, detail::FFTPolicy< T, FFTBackend > fft_policy, Functor const &functor, Kernel const &kernel, T min, T max, Iterable &&output, bool power_up=true) |
|
◆ TAG
#define TAG typename std::conditional< std::is_convertible<typename hydra::thrust::iterator_system< decltype(std::declval<Iterable>().begin())>::type, hydra::thrust::system::cuda::tag>::value , std::integral_constant<int, 1>, std::integral_constant<int, 0> >::type |
◆ TYPE
#define TYPE typename std::conditional< std::is_convertible<detail::BackendPolicy<BACKEND>,hydra::thrust::system::cuda::tag >::value, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type |