| 287 | |
| 288 | |
| 289 | void |
| 290 | SIR_scheme::observe (Likelihood_observe_model& h, const Vec& z) |
| 291 | /* Observation fusion using Likelihood at z |
| 292 | * Pre : wir previous particle likelihood weights |
| 293 | * Post: wir fused (multiplicative) particle likelihood weights |
| 294 | */ |
| 295 | { |
| 296 | h.Lz (z); // Observe likelihood at z |
| 297 | |
| 298 | // Weight Particles. Fused with previous weight |
| 299 | const std::size_t nSamples = S.size2(); |
| 300 | for (std::size_t i = 0; i != nSamples; ++i) { |
| 301 | wir[i] *= h.L (FM::column(S,i)); |
| 302 | } |
| 303 | wir_update = true; |
| 304 | } |
| 305 | |
| 306 | void |
| 307 | SIR_scheme::observe_likelihood (const Vec& lw) |