From 6eac49b1d75e7612d0cf94cf78aea82019cbe3aa Mon Sep 17 00:00:00 2001
From: adjemian <adjemian@ac1d8469-bf42-47a9-8791-bf33cf982152>
Date: Mon, 17 Jul 2006 08:47:30 +0000
Subject: [PATCH] Correction of bugs related to the _steadystate file.

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@822 ac1d8469-bf42-47a9-8791-bf33cf982152
---
 matlab/DiffuseLikelihood1.m |  6 +++---
 matlab/check.m              |  4 ++++
 matlab/dynare.m             |  2 +-
 matlab/dynare_MC.m          | 11 ++++-------
 matlab/dynare_estimation.m  | 16 ++++++----------
 matlab/resol.m              |  4 ++--
 matlab/steady.m             |  6 +++++-
 matlab/steady_.m            |  2 +-
 8 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/matlab/DiffuseLikelihood1.m b/matlab/DiffuseLikelihood1.m
index 8be81e596b..5149bbc4a2 100644
--- a/matlab/DiffuseLikelihood1.m
+++ b/matlab/DiffuseLikelihood1.m
@@ -10,7 +10,7 @@ function [LIK, lik] = DiffuseLikelihood1(T,R,Q,Pinf,Pstar,Y,trend,start)
   mm   = size(T,2);
   pp   = size(Y,1);
   a    = zeros(mm,1);
-  dF = 1;
+  dF   = 1;
   QQ   = R*Q*transpose(R);
   t    = 0;
   lik  = zeros(smpl+1,1);
@@ -33,12 +33,12 @@ function [LIK, lik] = DiffuseLikelihood1(T,R,Q,Pinf,Pstar,Y,trend,start)
 	lik(t)	= log(dFstar) + transpose(v)*iFstar*v;
 	Pinf	= T*Pinf*transpose(T);
 	Pstar	= T*(Pstar-Pstar(:,mf)*transpose(Kstar))*transpose(T)+QQ;
-	a		= T*(a+Kstar*v);
+	a	= T*(a+Kstar*v);
       end
     else
       lik(t)	= log(det(Finf));
       iFinf	= inv(Finf);
-      Kinf	= Pinf(:,mf)*iFinf;					%%	premultiplication by the transition matrix T is removed (stephane) 
+      Kinf	= Pinf(:,mf)*iFinf;			%%	premultiplication by the transition matrix T is removed (stephane) 
       Fstar	= Pstar(mf,mf);
       Kstar	= (Pstar(:,mf)-Kinf*Fstar)*iFinf; 	%%	premultiplication by the transition matrix T is removed (stephane)
       Pstar	= T*(Pstar-Pstar(:,mf)*transpose(Kinf)-Pinf(:,mf)*transpose(Kstar))*transpose(T)+QQ;
diff --git a/matlab/check.m b/matlab/check.m
index ac2b52cc9f..9c4daf8bac 100644
--- a/matlab/check.m
+++ b/matlab/check.m
@@ -15,6 +15,10 @@ global it_
   options_ = set_default_option(options_,'order',1);  
   options_ = set_default_option(options_,'linear',0);  
   options_ = set_default_option(options_,'dr_algo',0);  
+  options_ = set_default_option(options_,'steadystate_flag',0);
+  if exist([M_.fname '_steadystate.m'])
+    options_.steadystate_flag = 1;
+  end
 
   [dr, info] = resol(oo_.steady_state,1);
   
diff --git a/matlab/dynare.m b/matlab/dynare.m
index b668a700d9..b5d3fde9c6 100644
--- a/matlab/dynare.m
+++ b/matlab/dynare.m
@@ -10,7 +10,7 @@ function dynare(fname, varargin)
 %	is processed.
 
 if ~isstr(fname)
-	error ('The argument in DYNARE must be a text string.') ;
+  error ('The argument in DYNARE must be a text string.') ;
 end
 % Testing if file have extension
 % If no extension defalut .mod is added
diff --git a/matlab/dynare_MC.m b/matlab/dynare_MC.m
index 51bddb50e2..73edfd1fa2 100644
--- a/matlab/dynare_MC.m
+++ b/matlab/dynare_MC.m
@@ -57,6 +57,10 @@ options_ = set_default_option(options_,'posterior_mode_estimation',1);
 options_ = set_default_option(options_,'MaxNumberOfBytes',1e6);
 options_ = set_default_option(options_,'xls_sheet','');
 options_ = set_default_option(options_,'xls_range','');
+options_ = set_default_option(options_,'steadystate_flag',0);
+if exist([M_.fname '_steadystate.m'])
+  options_.steadystate_flag = 1;
+end
 
 %% Add something to the parser ++>
 M_.dname = M_.fname; % The user should be able to choose another name
@@ -109,13 +113,6 @@ ncn = estim_params_.ncn;
 np  = estim_params_.np ;
 nx  = nvx+nvn+ncx+ncn+np;
 
-%% Static solver
-if exist([M_.fname '_steadystate'])
-  bayestopt_.static_solve = [M_.fname '_steadystate'];
-else
-  bayestopt_.static_solve = 'dynare_solve';
-end
-
 dr = set_state_space([]);
 
 %% Initialization with unit-root variables
diff --git a/matlab/dynare_estimation.m b/matlab/dynare_estimation.m
index 7724ea1e15..f2052bf63e 100644
--- a/matlab/dynare_estimation.m
+++ b/matlab/dynare_estimation.m
@@ -64,6 +64,10 @@ options_ = set_default_option(options_,'filter_step_ahead',0);
 options_ = set_default_option(options_,'diffuse_d',[]);
 options_ = set_default_option(options_,'Opt6Iter',3);
 options_ = set_default_option(options_,'Opt6Numb',100000);
+options_ = set_default_option(options_,'steadystate_flag',0);
+if exist([M_.fname '_steadystate.m'])
+  options_.steadystate_flag = 1;
+end
 
 if options_.filtered_vars ~= 0 & options_.filter_step_ahead == 0
   options_.filter_step_ahead = 1;
@@ -131,14 +135,6 @@ ncn = estim_params_.ncn;
 np  = estim_params_.np ;
 nx  = nvx+nvn+ncx+ncn+np;
 
-%% Static solver
-if exist([M_.fname '_steadystate'])
-  bayestopt_.static_solve = [M_.fname '_steadystate'];
-  eval(['[ys,check] = ' bayestopt_.static_solve '([],[]);'])
-else
-  bayestopt_.static_solve = 'dynare_solve';
-end
-
 dr = set_state_space([]);
 
 %% Initialization with unit-root variables
@@ -243,8 +239,8 @@ if length(options_.mode_file) > 0 & options_.posterior_mode_estimation
 end
 
 % Compute the steadyn state if the _steadystate.m file is provided
-if strcmpi(bayestopt_.static_solve,[M_.fname '_steadystate'])
-      [oo_.steady_state,tchek] = feval(bayestopt_.static_solve,[],[]);
+if options_.steadystate_flag
+  [oo_.steady_state,tchek] = feval([M_.fname '_steadystate'],[],[]);
 end
 initial_estimation_checks(xparam1,gend,data);
 
diff --git a/matlab/resol.m b/matlab/resol.m
index b598d73916..1c07bdeb16 100644
--- a/matlab/resol.m
+++ b/matlab/resol.m
@@ -33,8 +33,8 @@ dr.ys = ys;
 fh = str2func([M_.fname '_static']);
 if options_.linear == 0
   if max(abs(feval(fh,dr.ys,[oo_.exo_steady_state; oo_.exo_det_steady_state]))) > options_.dynatol & options_.olr == 0
-    if strcmpi(bayestopt_.static_solve,[M_.fname '_steadystate'])
-      [dr.ys,check1] = feval(bayestopt_.static_solve,dr.ys,...
+    if options_.steadystate_flag
+      [dr.ys,check1] = feval([M_.fname '_steadystate'],dr.ys,...
 			     [oo_.exo_steady_state; oo_.exo_det_steady_state]);
     else
       [dr.ys,check1] = dynare_solve(fh,dr.ys,options_.jacobian_flag,...
diff --git a/matlab/steady.m b/matlab/steady.m
index 5bb063f9c8..82ef8c4eaf 100644
--- a/matlab/steady.m
+++ b/matlab/steady.m
@@ -5,7 +5,11 @@ function steady(linear)
   global M_ oo_ options_ ys0_ 
 
   options_ = set_default_option(options_,'jacobian_flag',1);
-
+  options_ = set_default_option(options_,'steadystate_flag',0);
+  if exist([M_.fname 'steadystate.m'])
+    options_.steadystate_flag = 1;
+  end 
+    
   steady_;
   
   disp(' ')
diff --git a/matlab/steady_.m b/matlab/steady_.m
index 3b53262262..b2ab1ee8c1 100644
--- a/matlab/steady_.m
+++ b/matlab/steady_.m
@@ -4,7 +4,7 @@ function steady_()
 
   global M_ oo_ it_ options_
 
-  if exist([M_.fname '_steadystate'])
+  if options_.steadystate_flag
     [oo_.steady_state,check] = feval([M_.fname '_steadystate'],...
 				     oo_.steady_state,...
 				     [oo_.exo_steady_state; ...
-- 
GitLab