potential error in fdlibm asin
Lindenmaier, Goetz
goetz.lindenmaier at sap.com
Fri Dec 2 14:24:04 UTC 2016
[resent after subscribing core-libs-dev]
Hi,
I'm looking at some strange code in the asin implementation:
Basically the code in
http://hg.openjdk.java.net/jdk9/dev/jdk/file/bc6c31fd98cf/src/java.base/share/native/libfdlibm/e_asin.c
after line 101 is indented wrong.
But I think in truth the "else" statement should be deleted.
"t = x*x" is only executed if "if (ix<0x3e400000)" is wrong.
If "if (ix<0x3e400000)" is true and "if(huge+x>one)" is wrong,
t=0 is used for statement "p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))"
resulting in p=0.
In fdlibm of netlib the initialization t=0 is missing, but it has the same strange
indentation.
http://www.netlib.org/fdlibm/e_asin.c
I found one copy of this code in the internet where the "else" is removed,
but it's not completely the same:
https://github.com/jerryscript-project/jerryscript/blob/master/jerry-libm/asin.c
Does anybody have the knowledge to tell me what's wrong?
Does anybody know how to contribute a fix to netlib fdlibm?
Thanks for your help,
Goetz.
More information about the core-libs-dev
mailing list