Skip to content

Commit 9dc245b

Browse files
committed
fix potential issue where lowerb could be greater than upperb in wang method
1 parent f4fd5b4 commit 9dc245b

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

diff_binom_confint/_specials/_wang.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,8 +479,16 @@ def _prob2step(delv, delta, n, m, i1, i2, grid_one, grid_two):
479479

480480
denom = (grid_one - 1) if grid_one > 1 else 1
481481
stepv = (p0[-1] - p0[0]) / denom
482-
lowerb = max(p0[0], p0[rightmost] - stepv) + delta
483-
upperb = min(p0[-1], p0[leftmost] + stepv) - delta
482+
# lowerb = max(p0[0], p0[rightmost] - stepv) + delta
483+
# upperb = min(p0[-1], p0[leftmost] + stepv) - delta
484+
485+
raw_lowerb = max(p0[0], p0[rightmost] - stepv) + delta
486+
raw_upperb = min(p0[-1], p0[leftmost] + stepv) - delta
487+
if raw_lowerb <= raw_upperb:
488+
lowerb, upperb = raw_lowerb, raw_upperb
489+
else:
490+
# Ensure bounds are ordered for linspace; swap if necessary
491+
lowerb, upperb = raw_upperb, raw_lowerb
484492

485493
p0 = np.linspace(lowerb, upperb, grid_two)
486494
part1 = np.log(comb(n, i1))[:, None] + np.outer(i1, np.log(p0 + delv)) + np.outer(n - i1, np.log(1 - p0 - delv))

0 commit comments

Comments
 (0)