Open cjdb opened 4 months ago
@llvm/issue-subscribers-c-17
Author: Christopher Di Bella (cjdb)
There were several attempts at this (not claiming that the list below is exhaustive):
The last one is interesting for just using boost outright (like STL does), but that's in limbo with the LLVM board(?) around license questions. There was also this plan in some libc++ meeting notes from last year given in #72055 (there are probably several issues).
There actually has been progress on the LLVM Board side of things since then. We would be ready to make an official request for using Boost as a back-end to the Board, the framework should be in place to treat this request now. CC @llvm-beanz
@PaulXiCao is working on this. The first function will be shipped in libc++ 19 :-)
Including Boost.Math sounds like a really great approach! I was told the licensing topic is too complex for a short-term solution which is why I started implementing them on my own.
I started out from the above linked, abandoned mr (from legacy Phabricator). The first function that got merged just recently was std::hermite
(this mr for reference).
I started work on std::legendre
, std::assoc_legendre
, and std::laguerre
some time ago. I planned to continue now that std::hermite
got merged.
On the other hand, it might be more reasonable to wait for a final decision on the usage of Boost.Math?
Link: https://wg21.link/p0226r1
Subtasks:
std::assoc_laguerre
std::assoc_legendre
std::beta
std::comp_ellint_1
std::comp_ellint_2
std::comp_ellint_3
std::cyl_bessel_i
std::cyl_bessel_j
std::cyl_bessel_k
std::cyl_neumann
std::ellint_1
std::ellint_2
std::ellint_3
std::expint
std::hermite
(PR)std::laguerre
std::legendre
std::riemann_zeta
std::sph_bessel
std::sph_legendre
std::sph_neumann