-
Notifications
You must be signed in to change notification settings - Fork 229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C++23 Floats #978
C++23 Floats #978
Conversation
I think you're correct to prefer the new named types given a tie: this is what the std specifies. Question: what do we want to do about |
That was my concern with |
Now that promotion is agreeable with the current CI system how much testing do we want to add @jzmaddock? Adding |
That's a good question, this explosion of types presents us with a problem! I don't see any point in running say special function accuracy tests with both say a 64-bit I'm also not convinced that it's worth running any tests with Now that the tests should hopefully be 128-bit float clean, we could start running accuracy tests for What we should also do at a minimum, is instantiate the concept-checks for these new types, so something like:
For each of these new types and see what fails. That would take care of the distributions and special functions, but not things like the integrators etc. Once there are Mingw gcc-13 builds available I'll be able to help out a bit more, nothing yet though. No sign of msvc supporting these types just yet either :( |
That sounds reasonable to me. I think adding a disclaimer to the docs about the 16-bit types is about as far as we should go with it. I doubt MSVC rolls out support anytime soon since support is optional. |
GCC 13.1 is now in the homebrew repos on Mac. |
Revert this commit
@mborland : hope you don't mind, but I pushed some fairly trivial fixes for MInw64. Question: do we care about the blizzard of warnings generated by float32.cpp? And should we add float128.cpp? |
Also fixes a lot of warnings. [CI SKIP]
Feel free to make changes; I leave the branch open to maintainers so the you can. I hit a lot of errors when attempting float128.cpp. I think it is an alias to I think for the float32 warnings I would ignore them for now to get things working and then we'll have to go back more methodically. Any time a constant is a double converted to float32 you are going to get a warning. There are definitely going to be lots of instances of that throughout the codebase. |
Better configure promote_args test case.
@jzmaddock Drone now has an image for Ubuntu 23.04. I have it cycling, but it looks like we have a good runner for g++13. |
And like |
All of the hanging tests have been fixed. The remaining errors are all out chebyshev:
|
77a4fd9
to
ad1fc87
Compare
@jzmaddock This is now down to a single concept failure in |
@jzmaddock With your commit this is now green across the board. Would you please give it another once over? Master branch closes next week for major changes. |
Ping @jzmaddock. Master closes for beta on Wednesday. |
include/boost/math/special_functions/detail/hypergeometric_pFq_checked_series.hpp
Show resolved
Hide resolved
The one CI failure left on this is a network error. I am going to merge this in because master closes for major changes today. |
A lot more explicit casting is required now because implicit conversions from promoted types or a higher rank suffix (e.g. 0.3L on an F64) are errors.
Questions:
Here is the paper for easy reference.
@jzmaddock, @ckormanyos, @NAThompson