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