Skip to content

Commit 2c8017c

Browse files
committed
Move (1.0 - beta_decay) static calculation out of inner loop
1 parent d7e56cb commit 2c8017c

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

penn_chime/models.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ def sir(
2828
def gen_sir(
2929
s: float, i: float, r: float,
3030
beta: float, gamma: float, n_days: int, beta_decay: float = 0.0
31-
) -> Generator:
31+
) -> Generator[Tuple[float, float, float], None, None]:
3232
"""Simulate SIR model forward in time yielding tuples."""
33-
s, i, r, beta_decay = (float(v) for v in (s, i, r, beta_decay))
33+
s, i, r = (float(v) for v in (s, i, r))
3434
n = s + i + r
35+
f = 1.0 - beta_decay # okay even if beta_decay is 0.0
3536
for _ in range(n_days + 1):
3637
yield s, i, r
3738
s, i, r = sir(s, i, r, beta, gamma, n)
38-
# okay even if beta_decay is 0.0
39-
beta = beta * (1.0 - beta_decay)
39+
beta *= f
4040

4141

4242
@st.cache
@@ -45,13 +45,13 @@ def sim_sir(
4545
beta: float, gamma: float, n_days: int, beta_decay: float = 0.0
4646
) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
4747
"""Simulate the SIR model forward in time."""
48-
s, i, r, beta_decay = (float(v) for v in (s, i, r, beta_decay))
48+
s, i, r = (float(v) for v in (s, i, r))
4949
n = s + i + r
50+
f = 1.0 - beta_decay # okay even if beta_decay is 0.0
5051
s_v, i_v, r_v = [s], [i], [r]
5152
for day in range(n_days):
5253
s, i, r = sir(s, i, r, beta, gamma, n)
53-
# okay even if beta_decay is 0.0
54-
beta = beta * (1.0 - beta_decay)
54+
beta *= f
5555
s_v.append(s)
5656
i_v.append(i)
5757
r_v.append(r)

0 commit comments

Comments
 (0)