@@ -28,15 +28,15 @@ def sir(
28
28
def gen_sir (
29
29
s : float , i : float , r : float ,
30
30
beta : float , gamma : float , n_days : int , beta_decay : float = 0.0
31
- ) -> Generator :
31
+ ) -> Generator [ Tuple [ float , float , float ], None , None ] :
32
32
"""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 ))
34
34
n = s + i + r
35
+ f = 1.0 - beta_decay # okay even if beta_decay is 0.0
35
36
for _ in range (n_days + 1 ):
36
37
yield s , i , r
37
38
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
40
40
41
41
42
42
@st .cache
@@ -45,13 +45,13 @@ def sim_sir(
45
45
beta : float , gamma : float , n_days : int , beta_decay : float = 0.0
46
46
) -> Tuple [np .ndarray , np .ndarray , np .ndarray ]:
47
47
"""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 ))
49
49
n = s + i + r
50
+ f = 1.0 - beta_decay # okay even if beta_decay is 0.0
50
51
s_v , i_v , r_v = [s ], [i ], [r ]
51
52
for day in range (n_days ):
52
53
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
55
55
s_v .append (s )
56
56
i_v .append (i )
57
57
r_v .append (r )
0 commit comments