diff --git a/doc/dynare.texi b/doc/dynare.texi index aa0933feb98b70f759a8071420d9d2cc17bdaa19..eccf5096d8c2f2c335ef538c4207fc53bb5ed77f 100644 --- a/doc/dynare.texi +++ b/doc/dynare.texi @@ -3056,9 +3056,6 @@ default value of @code{maxit} is 50. Convergence criterion for termination based on the function value. Iteration will cease when the residuals are smaller than @code{tolf}. Default: @code{eps^(1/3)} -@item robust_lin_solve -Triggers the use of a robust linear solver for the default @code{solve_algo=4}. - @item solve_algo = @var{INTEGER} @anchor{solve_algo} Determines the non-linear solver to use. Possible values for the option are: @@ -3759,6 +3756,9 @@ trigger the computation of the solution with a trust region algorithm. @end table +@item robust_lin_solve +Triggers the use of a robust linear solver for the default @code{stack_solve_algo=0}. + @item solve_algo @xref{solve_algo}. Allows selecting the solver used with @code{stack_solve_algo=7}. diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy index 48aacafbc1397c75dc465991b9510d1f04c2c946..adb17e03a3fd65cf3e65961f616c8d70f3fd699f 100644 --- a/preprocessor/DynareBison.yy +++ b/preprocessor/DynareBison.yy @@ -123,7 +123,7 @@ class ParsingDriver; %token QZ_CRITERIUM QZ_ZERO_THRESHOLD FULL DSGE_VAR DSGE_VARLAG DSGE_PRIOR_WEIGHT TRUNCATE %token RELATIVE_IRF REPLIC SIMUL_REPLIC RPLOT SAVE_PARAMS_AND_STEADY_STATE PARAMETER_UNCERTAINTY %token SHOCKS SHOCK_DECOMPOSITION SHOCK_GROUPS USE_SHOCK_GROUPS SIGMA_E SIMUL SIMUL_ALGO SIMUL_SEED ENDOGENOUS_TERMINAL_PERIOD -%token SMOOTHER SMOOTHER2HISTVAL SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO SOLVER_PERIODS +%token SMOOTHER SMOOTHER2HISTVAL SQUARE_ROOT_SOLVER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO SOLVER_PERIODS ROBUST_LIN_SOLVE %token STDERR STEADY STOCH_SIMUL SURPRISE SYLVESTER SYLVESTER_FIXED_POINT_TOL REGIMES REGIME %token TEX RAMSEY_MODEL RAMSEY_POLICY RAMSEY_CONSTRAINTS PLANNER_DISCOUNT DISCRETIONARY_POLICY DISCRETIONARY_TOL %token <string_val> TEX_NAME @@ -1061,6 +1061,7 @@ perfect_foresight_solver_options : o_stack_solve_algo | o_linear_approximation | o_no_homotopy | o_solve_algo + | o_robust_lin_solve | o_lmmcp | o_occbin | o_pf_tolf @@ -2716,6 +2717,7 @@ o_simul_algo : SIMUL_ALGO EQUAL INT_NUMBER { driver.error("simul_algo=1 option is no longer supported"); }; o_stack_solve_algo : STACK_SOLVE_ALGO EQUAL INT_NUMBER { driver.option_num("stack_solve_algo", $3); }; +o_robust_lin_solve : ROBUST_LIN_SOLVE { driver.option_num("simul.robust_lin_solve", "1"); }; o_endogenous_terminal_period : ENDOGENOUS_TERMINAL_PERIOD { driver.option_num("endogenous_terminal_period", "1"); }; o_linear : LINEAR { driver.linear(); }; o_order : ORDER EQUAL INT_NUMBER { driver.option_num("order", $3); }; diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll index 936bb7b9690042d0cca8e97bcf654cca20494732..33be4c8d975a92e33173bff77ee3c95d8de53984 100644 --- a/preprocessor/DynareFlex.ll +++ b/preprocessor/DynareFlex.ll @@ -637,6 +637,7 @@ 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>dr_algo {return token::DR_ALGO;} <DYNARE_STATEMENT>simul_algo {return token::SIMUL_ALGO;} <DYNARE_STATEMENT>stack_solve_algo {return token::STACK_SOLVE_ALGO;} +<DYNARE_STATEMENT>robust_lin_solve {return token::ROBUST_LIN_SOLVE;} <DYNARE_STATEMENT>drop {return token::DROP;} <DYNARE_STATEMENT>order {return token::ORDER;} <DYNARE_STATEMENT>sylvester {return token::SYLVESTER;}