Improving Supercomputing Accuracy by Sacrificing Precision
top500.org
top500.org
I have a simple example of that: a polynomial rp(x,y):=1335/4y^6+x^2(11x^2y^2-y^6+(-121)y^4-2)+11/2y^8+x/(2*y) that evaluates to about 1.1726 in both single and double precision, but whose real value is -0.827....
So, the bottom line is that I'd gladly trade off precision for better accuracy guarantees---but it turns out that's surprisingly hard in general case.
for fpprec:10 step 5 thru 50 do print (rp(77617.0b0, 33096.0b0));
1.17260394b0
1.17260394005318b0
1.8014398509481985173b16
1.172603940053178631858835b0
1.17260394005317863185883490452b0
1.1726039400531786318588349045201837b0
-8.27396059946821368141165095479816291999b-1
-8.27396059946821368141165095479816291999033116b-1
-8.2739605994682136814116509547981629199903311578439b-1google will find you more info about Rump's polynomial..
Also, here's a good reference: http://epubs.siam.org/doi/book/10.1137/1.9780898718027
And I'm too headachey to bother trying, but I wonder what happens if you ignore that x/2y part and put the rest of the thing into Horner's form.