-
Notifications
You must be signed in to change notification settings - Fork 112
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
Quad double: Add initial/tentative support for libqd. #190
base: develop
Are you sure you want to change the base?
Conversation
Awesome ! I was thinking you might start moving forward on this. Looks like a promising start... |
Note that appendix F tests (errno values) do not pass.
Greatly improve testing. Correct and be consistent with numeric_limits<>::round_error().
I would like to refresh interest in this project (and can mentor some additional potential progress on it) for Boost Google Summer of Code 2021 |
SOC is a good thought, the code that's here works, needs more testing (there's one unresolved issue I think), and if possible it would be great to move this to C++ only (ie without the external library). |
Agreed... on all points. I will comply in that order. |
# Conflicts: # .travis.yml # include/boost/multiprecision/debug_adaptor.hpp # include/boost/multiprecision/gmp.hpp # include/boost/multiprecision/logged_adaptor.hpp # include/boost/multiprecision/mpfi.hpp # include/boost/multiprecision/mpfr.hpp # include/boost/multiprecision/rational_adaptor.hpp
I tried a big merge operation of today's develop onto this relatively old branch. |
Develop has been successfully merged into this branch. This is good and partially prepares the road for further work on this topic. If (or when) I personally do something on QD, I think we should simply use (re-use, continue to use) this PR. Is that OK to keep going on QD on this PR, at least at first for a while? |
Good question, I guess if it's a GSOC project then it might be easier to fork this off into the student's own repro? |
I tried to use qd in my program several times, but according to my experience, it has a lot of bugs. I dare say that I am not alone and there are others who experienced a similar situation. For example |
Thank you for the heads up. The intent of integrating this QD thing is to either use it (if it's good enough out of the box) or replacing entirely its algorithms under Boost licensing if it's not. At the moment, we have not fully or exhaustively estimated the work/effort in these activities, but the potential GSoC is expected to move this endeavor forward. |
I was going through this function : inline void eval_divide(quad_double_backend& result, const quad_double_backend& a, const quad_double_backend& b) Don't you think that b.data()=0.0 should be handled separately? |
I guess only if the division doesn't generate an infinity anyway - and I'm assuming it does? |
Yes. Thanks for looking. There are a whole bunch of functions in this kind of multiprecision adaption. As this project moves on, we will be looking into this function and numerous others, re-writing some, adaptimg others, all with the common goal of getting an efficient, portable, reliable, tested QD running. I think we wil luncover a bunch of little nuances like this one... |
Indeed, what I should have said was: if the special case is already handled by the hardware, then we should leave it to it on the grounds that it will be way more efficient than any code we can write. |
Yes John. Agreed. That's actually a detail that I'll be asking you about/discussing with you, regarding your advice and best way to/or not to do it, later in the project. |
# Conflicts: # test/test_sf_import_c99.cpp
See #184.