NAME

SIR_particle_filter - Implements a SIR particle filter

SYNOPSIS

#include "sequential/sequential_particles.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


int SIR_particle_filter
(
	V_v_v **samples,
	Vector_vector **weights,
	int L,
	const Vector_vector *y,
	int (*sample_from_prior)(Vector **,const Vector *,const void *),
	const void *prior_context,
	int (*likelihood)(double *,const Vector *,const Vector *,const void *),
	const void *likelihood_context
);

DESCRIPTION

This routine implements a SIR (sample-importance-resample) particle filter. It generates L samples at each time-step of the process, which it puts in *samples. It uses the prior distribution p(x_k | x_{k-1}) as a proposal, from which it samples using sample_from_prior. It also needs to evaluate the likelihood p(y_k | x_k), which it does by calling likelihood. The context parameters are provided in case the prior or the likelihood depend on extra variables. As usual, *samples is reused if possible and created if needed, according to the KJB allocation semantics.

RETURNS

NO_ERROR on success, and ERROR on failure, with an appropriate error message being set.

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Ernesto Brau

DOCUMENTER

Ernesto Brau