boostorg / math

Boost.org math module
http://boost.org/libs/math
Boost Software License 1.0
313 stars 225 forks source link

GPU batch 3 #1164

Closed mborland closed 3 months ago

mborland commented 3 months ago

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.

mborland commented 3 months ago

Only failure was the out of memory on drone that is now fixed.