@@ -371,19 +371,21 @@ function beta_inc_asymptotic_asymmetric(a::Float64, b::Float64, x::Float64, y::F
371
371
end
372
372
z = - nu* lnx
373
373
if b* z == 0.0
374
- return error (" expansion can't be computed" )
374
+ @debug (" underflow: expansion can't be computed" )
375
+ return w
375
376
end
376
377
377
378
# COMPUTATION OF THE EXPANSION
378
379
# SET R = EXP(-Z)*Z**B/GAMMA(B)
379
380
r = b* (1.0 + rgamma1pm1 (b))* exp (b* log (z))
380
381
r *= exp (a* lnx)* exp (0.5 * bm1* lnx)
381
- u = loggammadiv (b,a) + b* log (nu)
382
+ u = loggammadiv (b, a) + b* log (nu)
382
383
u = r* exp (- u)
383
384
if u == 0.0
384
- return error (" expansion can't be computed" )
385
+ @debug (" underflow: expansion can't be computed" )
386
+ return w
385
387
end
386
- ( p, q) = gamma_inc (b,z, 0 )
388
+ p, q = gamma_inc (b, z, 0 )
387
389
v = inv (nu)^ 2 / 4
388
390
t2 = lnx^ 2 / 4
389
391
l = w/ u
@@ -412,7 +414,8 @@ function beta_inc_asymptotic_asymmetric(a::Float64, b::Float64, x::Float64, y::F
412
414
dj = d[n] * j
413
415
sm += dj
414
416
if sm <= 0.0
415
- return error (" expansion can't be computed" )
417
+ @debug (" underflow: expansion can't be computed" )
418
+ return w
416
419
end
417
420
if abs (dj) <= epps* (sm+ l)
418
421
break
@@ -837,7 +840,7 @@ function _beta_inc(a::Float64, b::Float64, x::Float64, y::Float64=1-x)
837
840
elseif a0 < min (epps, epps* b0) && b0* x0 <= 1.0
838
841
q = beta_inc_power_series1 (a0, b0, x0, epps)
839
842
p = 1.0 - q
840
- elseif max (a0,b0) > 1.0
843
+ elseif max (a0, b0) > 1.0
841
844
if b0 <= 1.0
842
845
p = beta_inc_power_series (a0, b0, x0, epps)
843
846
q = 1.0 - p
0 commit comments