On Mon, 14 Aug 2006 10:09:48 +0300, Jorn Baayen wrote: > > On Tue, 2006-08-08 at 10:46 -0700, Carl Worth wrote: > > > I'm planning to put new fixed<->floating-point conversion code into > > cairo this week. > > Any progress on this? Nope. Didn't happen yet. If someone wants to look at it, here are some details of what could be done: 1) The current implementation has complete function-call overhead. Could easily be reduced with inlining, (if the compiler's not doing that automatically), or macros. So that's the easy one that doesn't actually change the code at all. Next is the stuff that will take a little more investigation: 2) There's some discussion of the correctness of the rounding of the current code here. For any new implementation, I would like to see comments indicating that the code respects the concerns raised here: https://bugs.freedesktop.org/show_bug.cgi?id=4846 (And better, than comments would be some test cases that ensure the desired behavior is met.) 3) Finally, a couple of people have proposed much faster mechanisms for implementing the conversion. First was Bill Spitzak who provided some code here: http://lists.freedesktop.org/archives/cairo/2005-June/004419.html Then later, Tim Rowley independently provided a source explaining the code along with a very similar implementation: http://thread.gmane.org/gmane.comp.lib.cairo/5228/focus=5228 What I've been planning to do for a while was to write some configure-time check to ensure that the assumptions made in this code (IEEE floating-point) are valid and conditionally compile this code only where we know it will work. Thanks in advance for any work anyone might do in this area, -Carl
Attachment:
pgpmdRYcOmySH.pgp
Description: PGP signature