Merge branch 'master' into use-dseries

time-shift
Stéphane Adjemian (Scylla) 2014-06-19 18:13:35 +02:00
commit 788c528c84
5 changed files with 41 additions and 33 deletions

View File

@ -274,7 +274,7 @@ Configure and make:
- ```brew install texi2html```
- **(On OS X 10.7 Only)** Copy [FlexLexer.h](http://www.dynare.org/DynareWiki/BuildingDynareFromSource?action=AttachFile&do=view&target=FlexLexer.h) into the `preprocessor` directory (there was an error in the `FlexLexer.h` file distributed with 10.7)
- Finally, switch to the root dynare directory. Ensure your path contains `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/usr/local/sbin`. Run:
- `autoconf -si`
- `autoreconf -si`
- `./configure --with-matlab=/Applications/MATLAB_R2013a.app MATLAB_VERSION=8.1 YACC=/usr/local/Cellar/bison/<<BISON VERSION>>/bin/bison`
- `make`
- `make pdf TEXI2DVI=/usr/local/Cellar/texinfo/5.2/bin/texi2dvi`, where you replace everything after the equal sign with the path to the `texi2dvi` installed by homebrew when you installed `texinfo`.

View File

@ -77,9 +77,9 @@
\subsection{A Programming Note}
\begin{frame}[fragile,t]
\frametitle{A Programming Note (1/2)}
\frametitle{A Programming Note (1/3)}
\begin{itemize}
\myitem Time series and dates are implemented as Matlab/Octave classes
\myitem Time series and dates (and reporting) are implemented as Matlab/Octave classes
\myitem Inplace modification of instantiated objects not supported. Let me explain \dots
\begin{itemize}
\myitem A class is a template for defining objects, defining their member
@ -111,7 +111,7 @@ X =
\begin{frame}[fragile,t]
\frametitle{A Programming Note (2)}
\frametitle{A Programming Note (2/3)}
\begin{itemize}
\item[] \begin{itemize}
\myitem But! For Matlab/Octave's implementation of classes this is not the
@ -134,7 +134,7 @@ X =
\end{frame}
\begin{frame}[fragile,t]
\frametitle{A Programming Note (concluded)}
\frametitle{A Programming Note (3/3)}
\begin{itemize}
\item[] \begin{itemize}
\myitem To get the desired change, you must overwrite \texttt{X}
@ -170,7 +170,7 @@ X =
\myitem The \texttt{dates} command creates an object that represents at least one date at a given frequency
\myitem A \texttt{dates} object contains 3 members (fields):
\begin{itemize}
\myitem{\textbf{\texttt{freq}}}: 1 (Annual), 4 (Quarterly), 12 (Monthly), 52 (Weekly)
\myitem{\textbf{\texttt{freq}}}: 1, `y' (Annual); 4, `q' (Quarterly); 12, `m' (Monthly); 52, `w' (Weekly)
\myitem{\textbf{\texttt{ndat}}}: The number of dates
\myitem{\textbf{\texttt{time}}}: An \texttt{ndat$\times$2} matrix; the 1\textsuperscript{st} col is the year and the 2\textsuperscript{nd} col is the period
\end{itemize}
@ -681,13 +681,13 @@ the time range of \verb+vs+ will be the union of \verb+ts.dates+ and
text centered, anchor=north, text=black, text width=2.6cm]
\tikzstyle{comment}=[rectangle, draw=black, rounded corners, fill=green!10, drop shadow,
text centered, anchor=north, text=black, text width=2.6cm]
\tikzstyle{line}=[-, thick]
\begin{frame}[fragile,t]
\frametitle{Reporting Class Hierarchy}
\begin{itemize}
\myitem Class names on the top half of the box, constructor names on the bottom
\myitem Arrows represent what the new object can be added to; objects in ellipses are treated a bit differently (explained below)
\myitem Arrows represent what the new object can be added to; objects in green are treated a bit differently (explained below)
\end{itemize}
\begin{center}
\footnotesize{
@ -743,8 +743,8 @@ the time range of \verb+vs+ will be the union of \verb+ts.dates+ and
\draw [line] (Series) to node { } (Graph);
\draw [line] (Table) to node { } (Section);
\draw [line] (Graph) to node { } (Section);
\draw [line] (Paragraph.north) to node { } (Section);
\draw [line] (Vspace.north) to node { } (Section);
\draw [line] (Paragraph.north) to node { } (Section.east);
\draw [line] (Vspace.north) to node { } (Section.west);
\draw [line] (Section) to node { } (Page);
\draw [line] (Page) to node { } (Report);
\end{tikzpicture}}

View File

@ -101,9 +101,6 @@ for i = 1:order+1
else
d1 = dynamic_model(z,innovation,params,steady_state,i+1);
end
if any(isnan(d1))
pause
end
res(:,i,1) = res(:,i,1)+weights(k)*d1(eq_index);
end
if nargout > 1
@ -130,9 +127,6 @@ for i = 1:order+1
else
d1 = dynamic_model(z,innovation,params,steady_state,i+1);
end
if any(isnan(d1))
pause
end
res(:,i,j) = d1(eq_index);
if nargout > 1
i_cols_Af = i_cols_Af + ny;
@ -155,9 +149,6 @@ for i = 1:order+1
else
d1 = dynamic_model(z,innovation,params,steady_state,i+1);
end
if any(isnan(d1))
pause
end
res(:,i,j) = d1(eq_index);
end
i_rows = i_rows + ny;
@ -191,9 +182,6 @@ for j=1:world_nbr
d1 = dynamic_model(Y(i_rows_y,j),x,params, ...
steady_state,i+1);
end
if any(isnan(d1))
pause
end
res(:,i,j) = d1(eq_index);
i_rows_y = i_rows_y + ny;
offset_c = offset_c + world_nbr*ny;

View File

@ -121,8 +121,6 @@ switch options_.ep.innovation_distribution
error(['extended_path:: ' options_.ep.innovation_distribution ' distribution for the structural innovations is not (yet) implemented!'])
end
% Initializes some variables.
t = 0;
% Set waitbar (graphic or text mode)
hh = dyn_waitbar(0,'Please wait. Extended Path simulations...');
@ -146,18 +144,30 @@ pfm.nnzA = M_.NNZDerivatives(1);
if options_.ep.stochastic.order > 0
[nodes,weights,nnodes] = setup_integration_nodes(options_.ep,pfm);
pfm.nodes = nodes;
pfm.weights = weights;
pfm.weights = weights;
pfm.nnodes = nnodes;
% compute number of blocks
[block_nbr,pfm.world_nbr] = get_block_world_nbr(options_.ep.stochastic.algo,nnodes,options_.ep.ut.k,options_.ep.periods);
else
block_nbr = options_.ep.periods
end
% compute number of blocks
[block_nbr,pfm.world_nbr] = get_block_world_nbr(options_.ep.stochastic.algo,nnodes,options_.ep.ut.k,options_.ep.periods);
% set boundaries if mcp
[lb,ub,pfm.eq_index] = get_complementarity_conditions(M_);
options_.lmmcp.lb = repmat(lb,block_nbr,1);
options_.lmmcp.ub = repmat(ub,block_nbr,1);
pfm.block_nbr = block_nbr;
% storage for failed draws
oo_.ep.failures.periods = [];
oo_.ep.failures.previous_period = cell(0);
oo_.ep.failures.shocks = cell(0);
% Initializes some variables.
t = 0;
tsimul = 1;
% Main loop.
while (t<sample_size)
if ~mod(t,10)
@ -337,7 +347,8 @@ while (t<sample_size)
end% if info_convergence
end
end% while
if ~info_convergence% If exited from the while loop without achieving convergence, use an homotopic approach
if ~info_convergence && ep.homotopic_steps % If exited from the while loop without achieving
% convergence use an homotopic approach
if ~do_not_check_stability_flag
periods1 = ep.periods;
pfm1.periods = periods1;
@ -375,11 +386,18 @@ while (t<sample_size)
end
end
end
% Save results of the perfect foresight model solver.
time_series(:,t) = endo_simul_1(:,2);
endo_simul_1(:,1:end-1) = endo_simul_1(:,2:end);
endo_simul_1(:,1) = time_series(:,t);
endo_simul_1(:,end) = oo_.steady_state;
if info_convergence
% Save results of the perfect foresight model solver.
time_series(:,tsimul) = endo_simul_1(:,2);
endo_simul_1(:,1:end-1) = endo_simul_1(:,2:end);
endo_simul_1(:,1) = time_series(:,tsimul);
endo_simul_1(:,end) = oo_.steady_state;
tsimul = tsimul+1;
else
oo_.ep.failures.periods = [oo_.ep.failures.periods t];
oo_.ep.failures.previous_period = [oo_.ep.failures.previous_period endo_simul_1(:,1)];
oo_.ep.failures.shocks = [oo_.ep.failures.shocks shocks];
end
end% (while) loop over t
dyn_waitbar_close(hh);

View File

@ -197,6 +197,8 @@ ep.stochastic.quadrature.pruned.status = 0;
ep.stochastic.quadrature.pruned.relative = 1e-5;
ep.stochastic.quadrature.pruned.level = 1e-5;
ep.stochastic.hybrid_order = 0;
% homotopic step in extended path simulations
ep.stochastic.homotopic_steps = true;
% Copy ep structure in options_ global structure
options_.ep = ep;