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 SqrtFn { 15 : template <class T> 16 : __host__ __device__ constexpr T operator()(const T& arg) const noexcept 17 383 : { 18 383 : using std::sqrt; 19 383 : using thrust::sqrt; 20 : 21 383 : return sqrt(arg); 22 383 : } 23 : }; 24 : } // namespace detail 25 : 26 : static constexpr __device__ detail::SqrtFn sqrt; 27 : } // namespace elsa::fn