Mercurial > hg > octave-nkf
changeset 19467:653ed3a6ba83
Use gammaln in preference to lgamma in core Octave code.
* mappers.cc (Flgamma): Use gammaln in BIST tests.
* betapdf.m: Replace calls to lgamma with calls to gammaln.
*test/build-sparse-tests.sh: Replace calls to lgamma with calls to gammaln.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 21 Oct 2014 09:39:03 -0700 |
parents | 66ca15a97988 |
children | 1fa328da03ef |
files | libinterp/corefcn/mappers.cc scripts/statistics/distributions/betapdf.m test/build-sparse-tests.sh |
diffstat | 3 files changed, 15 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/mappers.cc +++ b/libinterp/corefcn/mappers.cc @@ -1632,30 +1632,30 @@ /* %!test %! a = -1i*sqrt (-1/(6.4187*6.4187)); -%! assert (lgamma (a), lgamma (real (a))); +%! assert (gammaln (a), gammaln (real (a))); %!test %! x = [.5, 1, 1.5, 2, 3, 4, 5]; %! v = [sqrt(pi), 1, .5*sqrt(pi), 1, 2, 6, 24]; -%! assert (lgamma (x), log (v), sqrt (eps)) +%! assert (gammaln (x), log (v), sqrt (eps)) %!test %! a = single (-1i*sqrt (-1/(6.4187*6.4187))); -%! assert (lgamma (a), lgamma (real (a))); +%! assert (gammaln (a), gammaln (real (a))); %!test %! x = single ([.5, 1, 1.5, 2, 3, 4, 5]); %! v = single ([sqrt(pi), 1, .5*sqrt(pi), 1, 2, 6, 24]); -%! assert (lgamma (x), log (v), sqrt (eps ("single"))) +%! assert (gammaln (x), log (v), sqrt (eps ("single"))) %!test %! x = [-1, 0, 1, Inf]; %! v = [Inf, Inf, 0, Inf]; -%! assert (lgamma (x), v); -%! assert (lgamma (single (x)), single (v)); +%! assert (gammaln (x), v); +%! assert (gammaln (single (x)), single (v)); -%!error lgamma () -%!error lgamma (1,2) +%!error gammaln () +%!error gammaln (1,2) */ DEFUN (log, args, ,
--- a/scripts/statistics/distributions/betapdf.m +++ b/scripts/statistics/distributions/betapdf.m @@ -57,26 +57,26 @@ if (isscalar (a) && isscalar (b)) pdf(k) = exp ((a - 1) * log (x(k)) + (b - 1) * log (1 - x(k)) - + lgamma (a + b) - lgamma (a) - lgamma (b)); + + gammaln (a + b) - gammaln (a) - gammaln (b)); else pdf(k) = exp ((a(k) - 1) .* log (x(k)) + (b(k) - 1) .* log (1 - x(k)) - + lgamma (a(k) + b(k)) - lgamma (a(k)) - lgamma (b(k))); + + gammaln (a(k) + b(k)) - gammaln (a(k)) - gammaln (b(k))); endif ## Most important special cases when the density is finite. k = (x == 0) & (a == 1) & (b > 0) & (b != 1); if (isscalar (a) && isscalar (b)) - pdf(k) = exp (lgamma (a + b) - lgamma (a) - lgamma (b)); + pdf(k) = exp (gammaln (a + b) - gammaln (a) - gammaln (b)); else - pdf(k) = exp (lgamma (a(k) + b(k)) - lgamma (a(k)) - lgamma (b(k))); + pdf(k) = exp (gammaln (a(k) + b(k)) - gammaln (a(k)) - gammaln (b(k))); endif k = (x == 1) & (b == 1) & (a > 0) & (a != 1); if (isscalar (a) && isscalar (b)) - pdf(k) = exp (lgamma (a + b) - lgamma (a) - lgamma (b)); + pdf(k) = exp (gammaln (a + b) - gammaln (a) - gammaln (b)); else - pdf(k) = exp (lgamma (a(k) + b(k)) - lgamma (a(k)) - lgamma (b(k))); + pdf(k) = exp (gammaln (a(k) + b(k)) - gammaln (a(k)) - gammaln (b(k))); endif k = (x >= 0) & (x <= 1) & (a == 1) & (b == 1);
--- a/test/build-sparse-tests.sh +++ b/test/build-sparse-tests.sh @@ -508,7 +508,7 @@ print_real_mapper_test isspace 0 print_real_mapper_test isupper 0 print_real_mapper_test isxdigit 0 -#print_real_mapper_test lgamma 1 +#print_real_mapper_test gammaln 1 # Specific tests for certain mapper functions cat >>$TESTS <<EOF