[Bug 18916] Thief 2 crashes when bringing up in-game menu
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Jun 17 03:21:33 CDT 2009
http://bugs.winehq.org/show_bug.cgi?id=18916
--- Comment #19 from Michael Abbott <michael at araneidae.co.uk> 2009-06-17 03:21:33 ---
This is all completely irrelevant now, but I was puzzling over how to get that
last bit of rounding right in this calculation:
> WORD d15 = source[x] & 0xfffe;
> DWORD d24 = (d15 << 8) + (d15 >> 7);
This produces a worst error of +-0.9825; if we allow for the fact that we have
to round (so can subtract 0.5 from this error), we have an error of +-0.4825.
Here's the best I can do (really not suggesting this goes into the code, this
is just one of those details that bugs me until I can write it out):
DWORD d15 = (source[x] & 0xfffe) << 7;
DWORD d32 = (d15 << 9) + (d15 >> 6) - (d15 >> 15) + (1 << 7)
DWORD d24 = d32 >> 8;
This isn't perfect, but we *nearly* get the bottom bit right -- in fact, this
only get it wrong 166 times out of 32768. The worst error is -0.5106..+0.5029,
or after compensating for rounding, -0.0106..+0.0029.
Ah well -- your original calculation gets this perfect (error +-0.4999, or 0
after rounding). These elusive last bits in simplified division are annoying,
I have this annoyance elsewhere (again, in a context where the proper response
is "who cares?").
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list