In article <3A318348.4C0A6E10@sdynamix.com>, bv <email@example.com> wrote:
> Christian Bau wrote: > > > > Calculate everything with lets say t+20 binary digits, and don't care too > > much about correct rounding, just get the result as fast as possible. > > As I understand it, that's what the (IEEE) register arithmetic does. In > this case, a*b-c*d are done with 80 bits, so you have 16 extra bits > beyond double precision and hence for practical purposes exactly rounded > for any precision t <= 16.
You snipped the second part of my post, and that makes the line you quoted very misleading. There is no "for practical purposes exactly rounded"; something is either exactly rounded or not. The original poster wanted "exactly rounded", not "exactly rounded most of the time", and that is what makes the problem challenging. What you snipped is that - for example - 80 bit arithmetic, finally rounded to 64 bit, is quite likely to give the correctly rounded result, and it is quite likely that you can PROVE that it is correct. What I suggested was:
Calculate with slightly higher precision, but still fast. Hope that you can prove that the result is correct. If you can prove it is correct, great. If you cannot prove it is correct, only then use a slow method.