-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EFT overflows #8
Comments
This is very interesting and exactly what we need for IntervalArithmetic.jl. What is the license on that package? Would you like to port it to Julia? |
This seems to be the repo, with MIT license! |
Actually good old EFT just works in most of the cases, especially for usage in graphics. It is possible that nobody found this problem since 1970? Just curious. |
I am aware of these outlier cases. I will take a look at the repo code and opine. |
AccurateArithmetic.jl is no longer current (though I try). The best code for eft stuff is ErrorfreeArithmetic.jl in my github space. |
Sorry, probably opened issue in wrong place. |
|
|
oic (in the paper) there are also versions of add, sqrt, mul, div that round up and versions round down [but they are not entirely correct :<] |
read too quickly (my Japanese is rusty at best [google translate is difficult to read because there are overlapping sections in the translation]. https://translate.google.com/translate?hl=en&sl=ja&u=http://verifiedby.me/adiary/pub/kashi/image/201406/nas2014.pdf&prev=search The rounded-up and rounded-down routines are intended to deliver Float64 results using two_xxx routines internally. They do work correctly for that @dpsanders they use pretty much the same approach we have used in |
That sounds great. I don't read Japanese but may be able to get some help with that. |
In Julia you also have emulated fma instruction with EFT too. |
yes .. however hardware |
So... This is just an overflow problem. If some value overflows, we can say that result become unexpected, that’s all. |
Also this Kashiwagi paper is cool, but without formal proof. Here is an excerpt from normalization algorithm proof
@dpsanders you can trust to EFT, when all values without NaN and Infinity. |
@munrocket Now ErrorfreeTransformations.jl#master |
Probably I need to close the issue because it’s become clear what they calculate in rust packages. I think that we need more cites or/and formal proves to trust a new papers. Also we need to know when we need safe overflows and how often they occur. |
Found an error in paper here def succ (x) :
if (a < 2.**(−1021)):
return x + a * 2.**(−1074) //<-- |
You found an error in what paper? and what should it read? |
I am used successor()/predecessor() from M.Kashiwagi paper it and found an error in this test. succ(2e-300) === 2.0000000000000004e-300 I am just reporting that this paper have some bugs. I am able to fix it. But anyway it feels little bit strange. return x + 2.**(−1074) //<--fixed |
how is that function given in the paper? do you have a link to this paper? |
If you have not seen this paper Computing predecessor and successor in rounding to nearest. |
Yea, this technique is described in “Computing predecessor and successor in rounding to nearest”, but it doesn’t have any source code, so I am used paper from Kashiwagi |
If you know some other paper about safe EFT and correctness of algorithms, I will appreciate. |
Yes -- I know that paper and it has glitches. [Double-Double Building Blocks] [Triple-Double Building Blocks] http://perso.ens-lyon.fr/jean-michel.muller/correct_fma_err.pdf |
thanks! |
@JeffreySarnoff in one rust package https://docs.rs/safeeft/0.0.5/safeeft/ I found new safe EFT.
They said that M.Kashiwagi in his paper (in japanese) found special cases where twoSum and twoProducts not safe enough with IEEE 747-2008 floats. What do you think about that?
The text was updated successfully, but these errors were encountered: