Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
Convolution.h File Reference
#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>
Include dependency graph for Convolution.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 hydra
 Generic policies definition.
 

Macros

#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
 

Functions

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)
 

Macro Definition Documentation

◆ 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