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_float arch and design #14
Comments
Although we still have a lot of work to do on double_float before getting started with quad_float, I have one idea regarding quad_float in mind that I would like to share. A possibility would be to construct quad_float as a cpp_double_float< cpp_double_float<native_float> > (option two in Chris' list), but specialize some of the functions (esp. multiplication) so as to increase efficiency. Although I haven't worked it out, it seems to me this method would be the quickest way to get a quad_float class up and running with minimal code. |
See also this post |
This idea definitely moves forward. I think this would amount to a kind of template specialization of a template type. If, or when, doing this, the underlying I think this idea will also require both the same amount of non-member binary arithmetic and comparison operators (to be found by ADL) as well as its own separate implementation of syntactic code for the There might be some significant savings on I/O streaming code, and keeping that non-redundant. But that will mean the underlying class needs to implement this and such things quite generically. |
The only place cpp_double_float<> currently does this in function split(), which shoudn't be too hard to specialize.
Also, there might be significant savings on division and other math functions (most of which aren't coded yet, e.g. trig, exponential etc) as well.
So far I have coded things keeping a non-native FloatingPointType in mind. So this shouldn't be a problem after a little bit of refactoring here and there. |
Absolutely. We have not yet thouroughly discussed power/trigonometric/hypertrigonometric elementary special functions yet. Some of my personla favorite implementation methods include Pade approximations combined with argument scaling, power series or Newton-Raphson iteration. In the latter two, these can be programmed generically and in a type-non-specific way. |
Due to the failing cascade construction issue, it has been decided to work on |
Excellent! Some refinements on the double-float construct in my recent PR #40 add specializations of |
The architecture and design is now clear.
I'll close this issue now, as it seems complete. Implementation steps to be handle in follow-up issue(s). |
This conversation is intended to discuss architecture and design of the upcoming BSL licensed
quad_float
class.double_float
class iteself?The text was updated successfully, but these errors were encountered: