Thanks for working on this. My comments so far regarding the proposed templates and overloads for the "narrow rounding functions"...
C's tgmath.h does not require the arguments to have the same type, but the templates do have such a requirement when the F type is not explicitly specified.
Also, C's tgmath.h allows for
fop(0., 0.L); // calls the underlying math.h fopl function
but the proposed overload sets in C++ each have an ambiguity between the `double` and `long double` overloads for the above case (whereas the overload set for `pow` in C++ does not have this problem because of the "sufficient overloads" provision of
https://wg21.link/cmath.syn#3 for
floating-point-type).