From 32e1f34579cd7b3997bcfcebc67db9524eba7c41 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Wed, 16 Jun 2021 13:17:29 +0200 Subject: [PATCH] dynare_resolve.m: correct header and change naming of globals --- matlab/dynare_resolve.m | 92 ++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 62 deletions(-) diff --git a/matlab/dynare_resolve.m b/matlab/dynare_resolve.m index 6392ba325..c0d88de97 100644 --- a/matlab/dynare_resolve.m +++ b/matlab/dynare_resolve.m @@ -1,55 +1,23 @@ -function [A,B,ys,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,DynareOptions,DynareResults,mode) +function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode) +% function [A,B,ys,info,M_,options_,oo_] = dynare_resolve(M_,options_,oo_,mode) % Computes the linear approximation and the matrices A and B of the transition equation. +% +% Inputs: +% - M_ [structure] Matlab's structure describing the model +% - options_ [structure] Matlab's structure containing the options +% - oo_ [structure] Matlab's structure containing the results +% - mode [string] if provided, use restricted state space +% +% Outputs: +% - A [double] State transition matrix (potentially for restricted state space) +% - B [double] shock impact matrix (potentially for restricted state space) +% - ys [double] vector of steady state values +% - info [double] 4 by 1 vector with exit flag and information +% - M_ [structure] Matlab's structure describing the model +% - options_ [structure] Matlab's structure containing the options +% - oo_ [structure] Matlab's structure containing the results -%@info: -%! @deftypefn {Function File} {[@var{A},@var{B},@var{ys},@var{info},@var{Model},@var{DynareOptions},@var{DynareResults}] =} resol (@var{Model},@var{DynareOptions},@var{DynareResults}) -%! @anchor{dynare_resolve} -%! @sp 1 -%! Computes the linear approximation and the matrices A and B of the transition equation. -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @ @var -%! @item Model -%! Matlab's structure describing the model (initialized by dynare, see @ref{M_}). -%! @item DynareOptions -%! Matlab's structure describing the options (initialized by dynare, see @ref{options_}). -%! @item DynareResults -%! Matlab's structure gathering the results (initialized by dynare, see @ref{oo_}). -%! @item mode -%! Passed argument if restricted state-space is required, not passed otherwise -%! @end table -%! @sp 2 -%! @strong{Outputs} -%! @sp 1 -%! @table @ @var -%! @item A -%! Matrix of doubles, transition matrix of the state equation. -%! @item B -%! Matrix of doubles, matrix relating the endogenous variables to the innovations in the state equation. -%! @item ys -%! Vector of doubles, steady state level of the endogenous variables in declaration order -%! @item info -%! Integer scalar, error code as given by @ref{resol}. -%! @item Model -%! Matlab's structure describing the model (initialized by dynare, see @ref{M_}). -%! @item DynareOptions -%! Matlab's structure describing the options (initialized by dynare, see @ref{options_}). -%! @item DynareResults -%! Matlab's structure gathering the results (initialized by dynare, see @ref{oo_}). -%! @end table -%! @sp 2 -%! @strong{This function is called by:} -%! @sp 1 -%! @ref{dsge_likelihood}, @ref{DsgeLikelihood_hh}, @ref{DsgeVarLikelihood}, @ref{dsge_posterior_kernel}, @ref{DsgeSmoother}, @ref{dynare_sensitivity}, @ref{gsa/thet2tau}, @ref{gsa/stab_map}, @ref{identification_analysis}, @ref{imcforecast}, @ref{thet2tau} -%! @sp 2 -%! @strong{This function calls:} -%! @sp 1 -%! @ref{resol}, @ref{kalman_transition_matrix} -%! @end deftypefn -%@eod: - -% Copyright (C) 2001-2020 Dynare Team +% Copyright (C) 2001-2021 Dynare Team % % This file is part of Dynare. % @@ -66,7 +34,7 @@ function [A,B,ys,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model, % You should have received a copy of the GNU General Public License % along with Dynare. If not, see . -[dr,info,Model,DynareOptions,DynareResults] =compute_decision_rules(Model,DynareOptions,DynareResults); +[dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_); if info(1) > 0 A = []; @@ -81,26 +49,26 @@ end switch nargin case 3 - endo_nbr = Model.endo_nbr; - nstatic = Model.nstatic; - nspred = Model.nspred; + endo_nbr = M_.endo_nbr; + nstatic = M_.nstatic; + nspred = M_.nspred; iv = (1:endo_nbr)'; - if ~DynareOptions.block - ic = [ nstatic+(1:nspred) endo_nbr+(1:size(DynareResults.dr.ghx,2)-nspred) ]'; + if ~options_.block + ic = [ nstatic+(1:nspred) endo_nbr+(1:size(oo_.dr.ghx,2)-nspred) ]'; else - ic = DynareResults.dr.restrict_columns; + ic = oo_.dr.restrict_columns; end case 4 - iv = DynareResults.dr.restrict_var_list; - ic = DynareResults.dr.restrict_columns; + iv = oo_.dr.restrict_var_list; + ic = oo_.dr.restrict_columns; otherwise error('dynare_resolve:: Error in the calling sequence!') end if nargout==1 - A = kalman_transition_matrix(DynareResults.dr,iv,ic,Model.exo_nbr); + A = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); return end -[A,B] = kalman_transition_matrix(DynareResults.dr,iv,ic,Model.exo_nbr); -ys = DynareResults.dr.ys; +[A,B] = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); +ys = oo_.dr.ys;