Dear all,

I'm currently evaluating uClibc for a new in-house architecture. While running 
math tests, I came across the following behavior: with 0.9.30.1 and the default 
build options, tgamma(x) returns the same as lgamma(x) for most values of x. 

This does not suit my needs at all; I'd like the ISO standard behavior instead, 
which mandates that tgamma() should return the value of the Gamma function, not 
its logarithm like lgamma(). 

The source in libm/w_tgamma.c suggests that this behavior is configurable; 
however I could not find any option. Instead, I traced that tgamma (w_tgamma.c) 
calls unconditionally __ieee754_gamma_r, which in turns (e_gamma_r.c) calls 
__ieee754_lgamma_r, which computes lgamma. 

Could you enlighten me?

(As a side note, I came to realize that the uClibc math code is largely the 
same as FreeBSD's, in turn originating from the code provided by Sun in the 
early '90s. So you know, FreeBSD provides different code for tgamma and lgamma.)

Thanks in advance for any suggestion.

-- 
Raphael 'kena' Poss · [email protected] · +31 20 525 7559
UvA · FNWI · IvI · CSA · 1098XG 107 Amsterdam (NL)
z = \f. (\x. f (\y. x x y)) (\x. f (\y. x x y)) 
There is no spoon, only fork() and vfork().

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to