$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2024-08-07 12:57:40
On 8/7/24 15:47, Matt Borland via Boost wrote:
> By popular demand Boost.Math has begun adding support for CUDA (NVCC and NVRTC) and SYCL. Unfortunately to use all of these platforms you can not really use std:: as CUDA has utilities (e.g. <type_traits>) in cuda::std::, containers (e.g. tuple) in thrust:: and mathematical functions in the global namespace. There are also completely missing features like <limits>. To work with this we have started creating new headers that implement these features and workarounds such as:
>
> 1) limits: https://github.com/boostorg/math/blob/develop/include/boost/math/tools/numeric_limits.hpp
>
> 2) Tuple: https://github.com/boostorg/math/blob/develop/include/boost/math/tools/tuple.hpp
>
> 3) General configuration: https://github.com/boostorg/math/blob/develop/include/boost/math/tools/config.hpp#L666
>
> Now in the code base for example instead of using std::pair you use boost::math::pair which aliases to either thrust::pair or std::pair depending on context.
>
> As we continue to build out this support we know we are going to create more headers for compatibility, and feature completeness. I thought these could be useful to other libraries so I asked John Maddock about adding copies of them to Boost.Config. He said that's not an unreasonable home for them, but I should consult the ML. My questions then are:
>
> 1) Would these utilities be useful to you?
> 2) If yes, do you think that Boost.Config is the right home for them?
I think, such utilities should be in a separate new module. Boost.Config
should be lightweight as it is a dependency of virtually every Boost
library, and the tools you describe seem to be fairly specialized.