Disabled the i387 version if log1p(). It just evaluates log(1 + x).
This defeats the point of log1p(). ucbtest reports errors of +-5e+15 ULPs. A correct version would use the i387 fyl2xp1 instruction for small x and maybe scale to small x. The C version does the scaling reasonably efficiently, and fyl2px1 is slow (at least on P5s), so not much is lost by always using the C version (only 25% for small x even with the broken i387 version; 50% for large x).
This commit is contained in:
parent
c5326ece55
commit
1dd609a3d1
@ -46,9 +46,11 @@
|
||||
.PATH: ${.CURDIR}/i387
|
||||
ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \
|
||||
e_remainder.S e_scalb.S e_sqrt.S s_atan.S s_ceil.S s_copysign.S \
|
||||
s_cos.S s_finite.S s_floor.S s_ilogb.S s_log1p.S s_logb.S \
|
||||
s_cos.S s_finite.S s_floor.S s_ilogb.S s_logb.S \
|
||||
s_rint.S s_scalbn.S s_significand.S s_sin.S s_tan.S
|
||||
.endif
|
||||
|
||||
# Broken
|
||||
# ARCH_SRCS+= s_log1p.S
|
||||
|
||||
.PATH: ${.CURDIR}/man
|
||||
.PATH: ${.CURDIR}/src
|
||||
|
Loading…
Reference in New Issue
Block a user