-
Notifications
You must be signed in to change notification settings - Fork 248
Improve coverage 2 #1099
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
Improve coverage 2 #1099
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1099 +/- ##
===========================================
+ Coverage 92.61% 93.69% +1.08%
===========================================
Files 770 770
Lines 63889 62824 -1065
===========================================
- Hits 59170 58866 -304
+ Misses 4719 3958 -761
... and 7 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
Make a few things constexpr in daubechies_scaling.hpp.
Plus trivial coverage markup.
Fixed Conflicts: include/boost/math/special_functions/ellint_1.hpp include/boost/math/special_functions/ellint_2.hpp
|
Hi John (@jzmaddock), I've been following this work with great interest and admiration. In recent red CI there's some of this kind of stuff related to Sorry I did not catch all of this in my own bare-metal standalone tests. But there are several compiler switches which might seemingly do the same thing.
I could not wade through all this, but it seems like we could simplify some things as we move forward? Thoughts? Cc: @mborland |
|
I guess in my (maybe naive world), Boost.Math could have threads by default. Then one sinlge option to disable threads could replace all redundant of the other three options listed above? Maybe I'm over-simplifying? Cc: @jzmaddock and @mborland |
Unfortunately I fear probably not. The Bernoulli numbers only have to deal with threads in the sense that the cache has to be generated in a thread safe way. And this only applies to the multiprecision case I believe. The most efficient way is to use atomics, but while is guaranteed, there is no guarantee that it contains anything useful (or efficient). Hence BOOST_MATH_NO_ATOMIC_INT does NOT imply no threads, just no efficient atomics. Then we have platforms like Mingw/Cygwin which have no working std::thread or mutexes, from memory you can't even #include a thread related header without getting an error :( So the options are:
I had to look up BOOST_MATH_BERNOULLI_UNTHREADED: when we have option (3) above, the default behaviour is to static_assert on the grounds that we don't know how to make things safe, but BOOST_MATH_BERNOULLI_UNTHREADED can be defined to suppress the error if the user knows what they're doing. And finally, if I can remember to type BOOST_MATH_ASSERT instead of BOOST_ASSERT, I might actually get some of this green! |
... and a whole bunch of very sensible information... Yes John (@jzmaddock), I get it now. Somehow I was vaguely familiar with your points, that you have clarified perfeclty. Please disregard my noise and leave everything alone, with your comment that we all need to use What a great result. Yet sorry about the noise. Thx again. Cc: @mborland |
Remove unneeded (in C++11) initializers.
Cull a few warnings.
|
OK, this is good to go I hope, one failure is a network timeout. Will merge and then see if I can re-trigger multiprecision develop. |
No description provided.