Line data Source code
1 : #pragma once 2 : 3 : #include "CUDADefines.h" 4 : 5 : #include <thrust/complex.h> 6 : 7 : #include <cmath> 8 : #include <complex> 9 : 10 : namespace elsa::fn 11 : { 12 : namespace detail 13 : { 14 : struct ExpFn { 15 : template <class T> 16 : __host__ __device__ constexpr T operator()(const T& arg) const noexcept 17 5785 : { 18 5785 : using thrust::exp; 19 5785 : using std::exp; 20 : 21 5785 : return exp(arg); 22 5785 : } 23 : }; 24 : } // namespace detail 25 : 26 : static constexpr __device__ detail::ExpFn exp; 27 : } // namespace elsa::fn