To follow up on this, I have a comment about context and a question:

First, I have found it incredibly frustrating when I'm reading an implementation of an algorithm that doesn't use the variable names of the algorithm because it's really hard to keep track of two sets of variable names, even if one set is descriptive.

That makes me realize, though, that it is inconsistent to use `x` but not `q` (rather than `self.propose_logpdf`), so it is probably best to either use all descriptive variables, or all math variables, but not a combination of both. Which do you think is better?