.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" Distributed under GPL .\" based on glibc infopages .\" Traducción revisada por Miguel Pérez Ibars el 29-marzo-2005 .\" .TH LGAMMA 3 "10 agosto 2002" "" "Manual del Programador de Linux" .SH NOMBRE lgamma \- logaritmo de la función gamma .SH SINOPSIS .nf .B #include .sp .BI "double lgamma(double " x ); .br .BI "float lgammaf(float " x ); .br .BI "long double lgammal(long double " x ); .sp .BI "double lgamma_r(double " x ", int *" signp ); .br .BI "float lgammaf_r(float " x ", int *" signp ); .br .BI "long double lgammal_r(long double " x ", int *" signp ); .fi .SH DESCRIPCIÓN La función Gamma se define como .sp Gamma(x) = integral de 0 a infinito de t^(x-1) e^-t dt .sp Está definida para todo número real excepto enteros no positivos. Para un entero no positivo \fIm\fP la función se define como .sp Gamma(m+1) = m! .sp y, de manera más general, para todo \fIx\fP: .sp Gamma(x+1) = x * Gamma(x) .sp Para \fIx\fP < 0.5 se puede utilizar .sp Gamma(x) * Gamma(1-x) = PI/sin(PI*x) .PP La función \fBlgamma()\fP devuelve el logaritmo natural del valor absoluto de la función Gamma. El signo de la función Gamma se devuelve en la variable entera externo \fIsigngam\fP declarado en .IR . Vale 1 cuando la función Gamma es positiva o cero, \-1 cuando es negativa. .PP Ya que usar una localización constante .I signgam no se considera hilo-seguro, se han introducido las funciones \fBlgamma_r()\fP etc.; devuelven el signo en el parámetro .IR signp . .PP Para valores enteros no positivos de \fIx\fP, \fBlgamma()\fP devuelve HUGE_VAL, pone en \fIerrno\fP el valor ERANGE y lanza la excepción de división por cero. (De manera similar, \fBlgammaf()\fP devuelve HUGE_VALF y \fBlgammal()\fP devuelve HUGE_VALL.) .SH ERRORES Una aplicación que desee comprobar situaciones de error debería asignar a .I errno el valor cero y llamar a .I feclearexcept(FE_ALL_EXCEPT) antes de llamar a estas funciones. A la vuelta, si .I errno es distinto de cero o .I fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) es distinto de cero, es que ha ocurrido un error. .TP .B ERANGE Argumento no válido - valor entero no positivo de \fIx\fP. .SH "CONFORME A" C99, SVID 3, BSD 4.3 .SH "VÉASE TAMBIÉN" .BR tgamma (3)