The "direct version" algorithm is rather simple (compared to other particle filtering algorithms) and it uses composition and rejection. To generate a single sample x at k from p x k | y 1 : k ( x | y 1 : k ) :