@@ -185,20 +185,11 @@ def minimize_KL(Op):
185
185
Op .acc_ratio = jnp .double (Op .accepted ) / jnp .double (Op .Nsteps )
186
186
return Op
187
187
188
-
189
- def test_initial_condition (Op , d0 , d1 ):
190
- """ """
191
- Op .d0_r = jnp .double (d0 )
192
- Op .d1_r = jnp .double (d1 )
193
- Op = compute_Pmodel (Op )
194
- Op = compute_KLd (Op )
195
- return np .log (Op .KL )
196
-
197
-
198
188
class BID :
199
189
def __init__ (
200
190
self ,
201
191
H = None ,
192
+ Op = None ,
202
193
alphamin = 0.0 ,
203
194
alphamax = 0.2 ,
204
195
seed = 1 ,
@@ -213,6 +204,7 @@ def __init__(
213
204
L = 0 , # Number of bits / Ising spins
214
205
):
215
206
self .H = H
207
+ self .Op = Op
216
208
self .alphamin = alphamin
217
209
self .alphamax = alphamax
218
210
self .seed = seed
@@ -284,6 +276,13 @@ def truncate_hist(self):
284
276
self .Pemp /= jnp .sum (self .Pemp )
285
277
self .Pmodel = jnp .zeros (shape = self .Pemp .shape , dtype = jnp .float64 )
286
278
279
+ def test_initial_condition (self , d0 , d1 ):
280
+ self .Op .d0_r = jnp .double (d0 )
281
+ self .Op .d1_r = jnp .double (d1 )
282
+ self .Op = compute_Pmodel (self .Op )
283
+ self .Op = compute_KLd (self .Op )
284
+ return np .log (self .Op .KL )
285
+
287
286
def set_initial_condition (self , d00min = 0.05 , d00max = 0.95 , d00step = 0.05 ):
288
287
# our home-made guess:
289
288
d00_guess_list = jnp .array ([jnp .double (self .Op .remp [- 1 ])])
@@ -305,8 +304,7 @@ def set_initial_condition(self, d00min=0.05, d00max=0.95, d00step=0.05):
305
304
logKLs0 = jnp .empty (shape = (len (d00_guess_list )), dtype = jnp .double )
306
305
for i in range (len (d00_guess_list )):
307
306
logKLs0 = logKLs0 .at [i ].set (
308
- test_initial_condition (
309
- self .Op ,
307
+ self .test_initial_condition (
310
308
d00_guess_list [i ],
311
309
d10_guess_list [i ],
312
310
)
0 commit comments