Re: [PATCH] libm: Fix 'gamma' and 'gammaf' functions. Clean up other gamma code. [v2]

Corinna Vinschen via Newlib <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Sep  4 09:25, Keith Packard via Newlib wrote:
> The current gamma, gamma_r, gammaf and gammaf_r functions return
> |gamma(x)| instead of ln(|gamma(x)|) due to a change made back in 2002
> to the __ieee754_gamma_r implementation. This patch fixes that, making
> all of these functions map too their lgamma equivalents.
> 
> To fix the underlying bug, the __ieee754_gamma functions have been
> changed to return gamma(x), removing the _r variants as those are no
> longer necessary. Their names have been changed to __ieee754_tgamma to
> avoid potential confusion from users.
> 
> Now that the __ieee754_tgamma functions return the correctly signed
> value, the tgamma functions have been modified to use them.
> 
> libm.a now exposes the following gamma functions:
> 
>     ln(|gamma(x)|):
> 
> 	__ieee754_lgamma_r
> 	__ieee754_lgammaf_r
> 
> 	lgamma
> 	lgamma_r
> 	gamma
> 	gamma_r
> 
> 	lgammaf
> 	lgammaf_r
> 	gammaf
> 	gammaf_r
> 
> 	lgammal	(on machines where long double is double)
> 
>     gamma(x):
> 
> 	__ieee754_tgamma
> 	__ieee754_tgammaf
> 	tgamma
> 	tgammaf
> 	tgammal (on machines where long double is double)
> 
> Additional aliases for any of the above functions can be added if
> necessary; in particular, I'm not sure if we need to include
> __ieee754_gamma*_r functions (which would return ln(|(gamma(x)|).
> 
> Signed-off-by: Keith Packard <[email protected]>

Pushed.


Thanks,
Corinna
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.