Mercurial > octave
changeset 29617:69e701caf5f6
maint: merge stable to default.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 05 May 2021 14:27:17 -0700 |
parents | f6151f915e3c (current diff) 69b6b783a8ab (diff) |
children | a31cf1ec1349 |
files | scripts/specfun/betaincinv.m |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/specfun/betaincinv.m Wed May 05 14:13:01 2021 -0700 +++ b/scripts/specfun/betaincinv.m Wed May 05 14:27:17 2021 -0700 @@ -236,7 +236,9 @@ while (any (todo) && (it < maxit)) it++; x(todo) += res(todo); - x(x(todo) < 0) = eps; # Avoid negative x in betainc() call, bug #60528 + ## Avoid intermediate values outside betainc() range of [0, 1], bug #60528 + x(x(todo) < 0) = eps; + x(x(todo) > 1) = 1-eps; res(todo) = -F(x(todo), a(todo), b(todo), y(todo)) ... ./ JF (x(todo), a(todo), b(todo)); todo = (abs (res) >= tol * abs (x)); @@ -283,7 +285,8 @@ %!assert (class (betaincinv (int8 (0), single (1), 1)), "single") %!assert (class (betaincinv (single (0.5), int8 (1), 1)), "single") -%!assert <*60528> (betaincinv (1e-6, 1, 3), 3.3333344444450657e-07, eps) +%!assert <*60528> (betaincinv (1e-6, 1, 3), 3.3333344444450657e-07, 5*eps) +%!assert <*60528> (betaincinv (1-1e-6, 3, 1), 0.999999666666556, 5*eps) ## Test input validation %!error <Invalid call> betaincinv ()