Added filter_algorithm (estimation command, sets the particle filter algorithm).

issue#70
Stéphane Adjemian (Scylla) 2014-09-05 18:09:49 +02:00
parent 63450d99a6
commit 04754432b3
2 changed files with 14 additions and 1 deletions

View File

@ -108,6 +108,7 @@ class ParsingDriver;
%token MODE_CHECK MODE_CHECK_NEIGHBOURHOOD_SIZE MODE_CHECK_SYMMETRIC_PLOTS MODE_CHECK_NUMBER_OF_POINTS MODE_COMPUTE MODE_FILE MODEL MODEL_COMPARISON MODEL_INFO MSHOCKS ABS SIGN
%token MODEL_DIAGNOSTICS MODIFIEDHARMONICMEAN MOMENTS_VARENDO DIFFUSE_FILTER SUB_DRAWS TAPER_STEPS GEWEKE_INTERVAL MCMC_JUMPING_COVARIANCE MOMENT_CALIBRATION
%token NUMBER_OF_PARTICLES RESAMPLING SYSTEMATIC GENERIC RESAMPLING_THRESHOLD RESAMPLING_METHOD KITAGAWA STRATIFIED SMOOTH
%token FILTER_ALGORITHM SIS APF GF GMF CPF
%token <string_val> NAME
%token NAN_CONSTANT NO_STATIC NOBS NOCONSTANT NODISPLAY NOCORR NODIAGNOSTIC NOFUNCTIONS NO_HOMOTOPY
%token NOGRAPH NOMOMENTS NOPRINT NORMAL_PDF SAVE_DRAWS
@ -1681,6 +1682,7 @@ estimation_options : o_datafile
| o_resampling
| o_resampling_threshold
| o_resampling_method
| o_filter_algorithm
;
list_optim_option : QUOTED_STRING COMMA QUOTED_STRING
@ -2651,6 +2653,12 @@ o_resampling_threshold : RESAMPLING_THRESHOLD EQUAL non_negative_number { driver
o_resampling_method : RESAMPLING_METHOD EQUAL KITAGAWA {driver.option_num("particle.resampling.method.kitagawa", "1"); driver.option_num("particle.resampling.method.smooth", "0"); driver.option_num("particle.resampling.smethod.stratified", "0"); }
| RESAMPLING_METHOD EQUAL SMOOTH {driver.option_num("particle.resampling.method.kitagawa", "0"); driver.option_num("particle.resampling.method.smooth", "1"); driver.option_num("particle.resampling.smethod.stratified", "0"); }
| RESAMPLING_METHOD EQUAL STRATIFIED {driver.option_num("particle.resampling.method.kitagawa", "0"); driver.option_num("particle.resampling.method.smooth", "0"); driver.option_num("particle.resampling.method.stratified", "1"); };
o_filter_algorithm : FILTER_ALGORITHM EQUAL SIS {driver.option_num("particle.filter_algorithm.sis", "1"); driver.option_num("particle.filter_algorithm.apf", "0"); driver.option_num("particle.filter.algorithm.gf", "0"); driver.option_num("particle.filter.algorithm.gmf", "0");driver.option_num("particle.filter.algorithm.cpf", "0");}
| FILTER_ALGORITHM EQUAL APF {driver.option_num("particle.filter_algorithm.sis", "0"); driver.option_num("particle.filter_algorithm.apf", "1"); driver.option_num("particle.filter.algorithm.gf", "0"); driver.option_num("particle.filter.algorithm.gmf", "0"); driver.option_num("particle.filter.algorithm.cpf", "0");}
| FILTER_ALGORITHM EQUAL GF {driver.option_num("particle.filter_algorithm.sis", "0"); driver.option_num("particle.filter_algorithm.apf", "0"); driver.option_num("particle.filter.algorithm.gf", "1"); driver.option_num("particle.filter.algorithm.gmf", "0"); driver.option_num("particle.filter.algorithm.cpf", "0");}
| FILTER_ALGORITHM EQUAL GMF {driver.option_num("particle.filter_algorithm.sis", "0"); driver.option_num("particle.filter_algorithm.apf", "0"); driver.option_num("particle.filter.algorithm.gf", "0"); driver.option_num("particle.filter.algorithm.gmf", "1"); driver.option_num("particle.filter.algorithm.cpf", "0");}
| FILTER_ALGORITHM EQUAL CPF {driver.option_num("particle.filter_algorithm.sis", "0"); driver.option_num("particle.filter_algorithm.apf", "0"); driver.option_num("particle.filter.algorithm.gf", "0"); driver.option_num("particle.filter.algorithm.gmf", "0"); driver.option_num("particle.filter.algorithm.cpf", "1");} ;
o_gsa_identification : IDENTIFICATION EQUAL INT_NUMBER { driver.option_num("identification", $3); }; /*not in doc */
o_gsa_morris : MORRIS EQUAL INT_NUMBER { driver.option_num("morris", $3); };

View File

@ -363,7 +363,12 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
<DYNARE_STATEMENT>kitagawa {return token::KITAGAWA;}
<DYNARE_STATEMENT>smooth {return token::SMOOTH;}
<DYNARE_STATEMENT>stratified {return token::STRATIFIED;}
<DYNARE_STATEMENT>filter_algorithm {return token::FILTER_ALGORITHM;}
<DYNARE_STATEMENT>sis {return token::SIS;}
<DYNARE_STATEMENT>apf {return token::APF;}
<DYNARE_STATEMENT>gf {return token::GF;}
<DYNARE_STATEMENT>gmf {return token::GMF;}
<DYNARE_STATEMENT>cpf {return token::CPF;}
<DYNARE_STATEMENT>alpha {
yylval->string_val = new string(yytext);