
On Tue, Jun 5, 2012 at 10:06 AM, John Maddock <boost.regex@virgin.net>wrote:
You can see them as a special case of rationals where the denominator is
always a power of 2, so they grow more slowly than rationals.
Off hand I know of no other library that implements such a beast?
CGAL. If you want to evaluate exactly the sign of a polynomial of double, your best bets are this or a sum-of-double representation, depending on the degree.
I want to echo Marc's comment that algorithms and numeric types where you only perform ring operations are common in computational geometry. You can often bound the size of your expression tree (as a function of your spatial dimension), hence bound the size of your rationals. It might be worth considering this application within the scope of (proposed) Boost.Multiprecision. Indeed, I've used a C++ implementation of Jonathan Shewchuck's exact arithmetic algorithms [1] for such purposes.
[1] http://www.cs.cmu.edu/~quake/**robust.html<http://www.cs.cmu.edu/%7Equake/robust.html>
OK, clearly it's not a field I'm familiar with - for that reason I'd prefer not to be the one to write a backend for that - or at least I would need some considerable help - but I see no real obstacles to supporting such a type providing you don't want the transcendental functions. If someone were willing to be the guinea pig, then it might make a good test case for seeing how easy it is for someone other than me to extend the library?
This is something I would be willing to contribute but probably not until after the formal review. - Jeff