Skip to content

Commit 14bef5c

Browse files
committed
Fix inf handling in nuts
1 parent 0dffe38 commit 14bef5c

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

pymc3/step_methods/hmc/nuts.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ def _build_subtree(self, left, depth, epsilon):
267267
p_accept = min(1, np.exp(-energy_change))
268268

269269
log_size = -energy_change
270-
diverging = not (energy_change < self.Emax)
270+
diverging = not np.isfinite(energy_change)
271+
diverging = diverging or (np.abs(energy_change) > self.Emax)
271272

272273
proposal = Proposal(right.q, right.energy, p_accept)
273274
tree = Subtree(right, right, proposal, 1, log_size, p_accept, 1)
@@ -287,7 +288,7 @@ def _build_subtree(self, left, depth, epsilon):
287288
span = np.sign(epsilon) * (right.q - left.q)
288289
turning = turning or (span.dot(left.p) < 0) or (span.dot(right.p) < 0)
289290

290-
if logbern(tree2.log_size - log_size):
291+
if np.isfinite(tree2.log_size) and logbern(tree2.log_size - log_size):
291292
proposal = tree2.proposal
292293
else:
293294
proposal = tree1.proposal

0 commit comments

Comments
 (0)