Open simonbyrne opened 10 years ago
I was thinking just today about how to deal with the rest #2976, namely the flags, but I haven't yet found a nice enough solution.
Just as a comment: not everyone has IEEE library access, you are referencing a document that has a price tag.
I was able to find a free copy somewhere.
I have f.e. (due to my job) IEEE library access and i guess a lot of universities also have, but still...
To obey US laws, Julia issues should probably not post links to free copies of things that are under copyright.
... but this is only a side discussion. I remember this operations to be available on FP HW and the question is rather, does LLVM support them directly or can we make julia recognize them?
@lobingera I agree it's ridiculous that such a widely-used standard comes with a price tag, but if it's any consolation, it's even more expensive to buy it from ISO
It's probably worth pointing out that as of Julia 1.8 we do have special paths for Float^Int
which is the pown
part of this.
As I was enjoying the entertaining read that is the IEEE-754 standard for floating point arithmetic, I noticed they recommend some functions (section 9.2), of which we currently lack:
2^x-1
10^x-1
log2(1+x)
(might want to call thislog21p
, to matchlog1p
?)log10(1+x)
(similarly,log101p
?)1/sqrt(x)
(1+x)^n
(pow1p
?)x^(1/n)
atan(x)/pi
(somewhat confusingly, not all of these are mentioned in the table, although they are referred to in the text below).There's also three different "pow" functions:
pown
for integer exponents, two for handling floating-point exponentspow
andpowr
which seem to differ mostly in how signals are raised, so we could probably wait until #2976 is completed.