Adds CUDA and SYCL support for log1p, log1pmx, digamma, trigamma, sin_pi, cos_pi, pow, and the bernoulli distribution.
Significant changes: Adds a complete implementation of <limits> in tools/numeric_limits.hpp. This allows us to work around it missing from libcu++ without giant chains of std::is_same_v and if constexpr. The other big change is the method of dispatching for sin_pi and trigamma to avoid recursion that is disallowed by SYCL. trigamma also now uses std::integral_constant directly rather than through a pointer because that confused NVCC quite badly.
Adds CUDA and SYCL support for
log1p
,log1pmx
,digamma
,trigamma
,sin_pi
,cos_pi
,pow
, and the bernoulli distribution.Significant changes: Adds a complete implementation of
<limits>
in tools/numeric_limits.hpp. This allows us to work around it missing from libcu++ without giant chains ofstd::is_same_v
andif constexpr
. The other big change is the method of dispatching forsin_pi
andtrigamma
to avoid recursion that is disallowed by SYCL.trigamma
also now usesstd::integral_constant
directly rather than through a pointer because that confused NVCC quite badly.