Implementing the pCN algortihm

Hi @junpenglao. Thank you for the pointer. It does indeed seem like the likelihood function in the SMC sampler makes use of the model.datalogpt() method to compute the likehood, so I will have a go with that.

But as to your other suggestion to build it around the pattern in SMC, I think I might have explained the problem poorly. The pCN algortihm is an approach for MCMC sampling. I did not know that the Metropolis algorithm could also relate to SMC. Anyway I was planning to make the pCN algorithm as an MCMC step method, so I think I will use the Metropolis step method as a mold, if that makes sense.