From 4ed3b2ff0803379f81358a45d7434fb53240c0c5 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Fri, 31 May 2019 14:44:52 +0200
Subject: [PATCH] doc: update slides for macro processor 2.0

---
 doc/logos/cepremap.jpg                | Bin 0 -> 25883 bytes
 doc/logos/dlogo.png                   | Bin 0 -> 37931 bytes
 doc/macroprocessor/macroprocessor.tex | 351 ++++++++++++++++++--------
 3 files changed, 243 insertions(+), 108 deletions(-)
 create mode 100644 doc/logos/cepremap.jpg
 create mode 100644 doc/logos/dlogo.png

diff --git a/doc/logos/cepremap.jpg b/doc/logos/cepremap.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..172bb49e5ea4b54acf27b49eb94a1dfe952cd1c9
GIT binary patch
literal 25883
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%0A(w<XVhVE2Yuz95cWinoXXMWl
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
P{_Kr!G8Q%1|Gx<UELlnx

literal 0
HcmV?d00001

diff --git a/doc/logos/dlogo.png b/doc/logos/dlogo.png
new file mode 100644
index 0000000000000000000000000000000000000000..9595c03ad77b2c68dfb59aa82351458abf5d9a13
GIT binary patch
literal 37931
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

literal 0
HcmV?d00001

diff --git a/doc/macroprocessor/macroprocessor.tex b/doc/macroprocessor/macroprocessor.tex
index 8236bf20..76380441 100644
--- a/doc/macroprocessor/macroprocessor.tex
+++ b/doc/macroprocessor/macroprocessor.tex
@@ -7,12 +7,44 @@
 
 \usetheme{Boadilla}
 
+\titlegraphic{\includegraphics{../logos/dlogo.png}}
+
 \title{The Dynare Macro Processor}
-\subtitle{Dynare Summer School 2018}
-\author{Sébastien Villemot and Houtan Bastani}
-%\pgfdeclareimage[height=0.6cm]{logo}{logo-ofce}
-\institute{CEPREMAP}
-\date{July 9, 2018}
+
+\author[S. Villemot, H.Bastani]{Sébastien Villemot \and Houtan Bastani}
+
+\institute[CEPREMAP]{\includegraphics[scale=0.15]{../logos/cepremap.jpg}}
+
+\date{28 June 2019}
+
+
+\setbeamertemplate{title page}
+{
+  \vbox{}
+  \begingroup
+    \centering
+    {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par}\vskip1em
+    \begin{beamercolorbox}[sep=8pt,center]{title}
+      \usebeamerfont{title}\inserttitle\par%
+      \ifx\insertsubtitle\@empty%
+      \else%
+        \vskip0.25em%
+        {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
+      \fi%
+    \end{beamercolorbox}%
+    \vskip1em\par
+    \begin{beamercolorbox}[sep=8pt,center]{author}
+      \usebeamerfont{author}\insertauthor
+    \end{beamercolorbox}
+    \begin{beamercolorbox}[sep=8pt,center]{institute}
+      \usebeamerfont{institute}\insertinstitute
+    \end{beamercolorbox}
+    \begin{beamercolorbox}[sep=8pt,center]{date}
+      \usebeamerfont{date}\insertdate
+    \end{beamercolorbox}
+  \endgroup
+  \vfill
+}
 
 \AtBeginSection[]
 {
@@ -26,6 +58,18 @@
 
 \begin{frame}
   \titlepage
+
+  \begin{columns}[T]
+    \column{0.2\textwidth}
+    \column{0.09\textwidth}
+
+    \ccbysa
+    \column{0.71\textwidth}
+    \tiny
+    Copyright © 2008--2019 Dynare Team \\
+    Licence: \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative
+      Commons Attribution-ShareAlike 4.0}
+  \end{columns}
 \end{frame}
 
 \begin{frame}
@@ -38,37 +82,38 @@
 \begin{frame}
   \frametitle{Motivation}
   \begin{itemize}
-  \item The \textbf{Dynare language} (used in MOD files) is well suited for many economic models
-  \item But it lacks some useful features such as:
+  \item The \textbf{Dynare language} (used in \texttt{.mod} files) is well suited for many economic models
     \begin{itemize}
-    \item a loop mechanism for automatically repeating similar blocks of equations (e.g. multi-country models)
-    \item an operator for indexed sums or products inside equations
-    \item a mechanism for splitting up large MOD files into smaller, modular files
-    \item the possibility of conditionally including some equations or some runtime commands
-  \end{itemize}
-  \item The \textbf{Dynare Macro-language} was specifically designed to address these issues
-  \item Being flexible and fairly general, it can also be helpful in other situations
+    \item It's a markup language that defines models
+    \item Lacks a programmatic element
+    \end{itemize}
+  \item The \textbf{Dynare macro language} adds a programmatic element to Dynare
+    \begin{itemize}
+    \item Introduces conditionals, loops, and other simple programmatic directives
+    \item Used to speed model development
+    \item Useful in various situations
+      \begin{itemize}
+      \item Multi-country models
+      \item Creation of modular \texttt{.mod} files
+      \item Variable flipping
+      \item Conditional inclusion of equations
+      \item ...among others
+      \end{itemize}
+    \end{itemize}
   \end{itemize}
 \end{frame}
 
 \begin{frame}
-  \frametitle{Design of the macro-language}
+  \frametitle{Design of the macro language}
   \begin{itemize}
-  \item The Dynare Macro-language provides a new set of \textbf{macro-commands} which can be used in MOD files
-  \item Language features include:
-    \begin{itemize}
-    \item file inclusion
-    \item loops (\textit{for} structure)
-    \item conditional inclusion (\textit{if/else} structures)
-    \item expression substitution
-    \end{itemize}
-  \item The macro processor transforms a MOD file with macro-commands into a MOD file without macro-commands (doing text expansions/inclusions) and then feeds it to the Dynare parser
+  \item The Dynare macro language provides a new set of \textbf{macro commands} that can be used in \texttt{.mod} files
+  \item The macro processor transforms a \texttt{.mod} file with macro commands into a \texttt{.mod} file without macro commands (doing text expansions/inclusions) and then feeds it to the Dynare parser
   \item The key point to understand is that the macro processor only does \textbf{text substitution} (like the C preprocessor or the PHP language)
   \end{itemize}
 \end{frame}
 
 \begin{frame}
-  \frametitle{Design of Dynare}
+  \frametitle{Dynare Flowchart}
   \includegraphics[width=0.95\linewidth]{new-design.pdf}
 \end{frame}
 
@@ -77,8 +122,8 @@
 \begin{frame}[fragile=singleslide]
   \frametitle{Macro Directives}
   \begin{itemize}
-  \item Directives begin with an at sign followed by a pound sign: \verb+@#+
-  \item A directive produces no output but gives instructions to the macro processor
+  \item Directives begin with:\verb+@#+
+  \item A directive gives instructions to the macro processor
   \item Main directives are:
     \begin{itemize}
     \item file inclusion: \verb+@#include+
@@ -95,64 +140,168 @@
 \frametitle{Variables}
 \begin{itemize}
 \item The macro processor has its own list of variables which are different than model variables and MATLAB/Octave variables
-\item There are 4 types of macro-variables:
-  \begin{itemize}
-  \item integer
-  \item string (declared between \textit{double} quotes)
-  \item integer array
-  \item string array
-  \end{itemize}
-\item Macro-Functions are also supported
+\item There are 6 types of macro-variables:
   \begin{itemize}
-  \item only accept string aruments
-  \item must evaluate to a string
+  \item boolean
+  \item double
+  \item string
+  \item tuple
+  \item array
+  \item function
   \end{itemize}
-\item No boolean type:
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (1/8)}
   \begin{itemize}
-  \item false is represented by integer zero
-  \item true is any non-zero integer
+    \item Macro-expressions are constructed using literals of the 6 basic types
+      described above, macro-variables, comprehensions, and standard operators.
+    \item Macro-expressions can be used in two places:
+      \begin{itemize}
+      \item inside macro directives; no special markup is required
+      \item in the body of the \texttt{.mod} file, between an at sign and curly braces (like \verb+@{expr}+); the macro processor will substitute the expression with its value
+      \end{itemize}
   \end{itemize}
-\end{itemize}
 \end{frame}
 
+
 \begin{frame}[fragile=singleslide]
-  \frametitle{Macro-expressions (1/2)}
+  \frametitle{Macro-expressions (2/8): Boolean}
   It is possible to construct macro-expressions using standard operators.
-  \begin{block}{Operators on integers}
+  \begin{block}{Operators on booleans}
     \begin{itemize}
-    \item arithmetic operators: \texttt{+ - * /}
+    \item comparison operators: \texttt{== !=}
+    \item logical operators: \verb+&& || !+
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (3/8): Double}
+  \begin{block}{Operators on doubles}
+    \begin{itemize}
+    \item arithmetic operators: \texttt{+ - * / \^{}}
     \item comparison operators: \texttt{< > <= >= == !=}
     \item logical operators: \verb+&& || !+
-    \item integer ranges: \texttt{1:4} is equivalent to integer array \texttt{[1,2,3,4]}
+    \item integer ranges: \texttt{1:4} is equivalent to integer array \texttt{[1,2,3,4]}. NB  \texttt{[1:4]} is equivalent to an array containing one integer array \texttt{[[1,2,3,4]]}
     \end{itemize}
   \end{block}
 
+  \begin{block}{Functions for doubles}
+    \begin{itemize}
+    \item \texttt{min, max, exp, ln (or log), log10}
+    \item \texttt{sin, cos, tan, asin, acos, atan}
+    \item \texttt{sqrt, cbrt, sign, floor, ceil, trunc, mod}
+    \item \texttt{erf, erfc, normpdf, normcdf, gamma, lgamma, round}
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (4/8): String}
+  String literals have to be declared between \textit{double} quotes, e.g. \texttt{``string''}
   \begin{block}{Operators on character strings}
     \begin{itemize}
-    \item comparison operators: \texttt{== !=}
+    \item comparison operators: \texttt{< > <= >= == !=}
     \item concatenation: \texttt{+}
+    \item string length: \texttt{length()}
     \item extraction of substrings: if \texttt{s} is a string, then one can write \texttt{s[3]} or \texttt{s[4:6]}
     \end{itemize}
   \end{block}
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
-  \frametitle{Macro-expressions (2/2)}
+  \frametitle{Macro-expressions (5/8): Tuple}
+  Tuples are enclosed by parenthesis and elements separated by commas (like
+  \texttt{(a,b,c)} or \texttt{(1,2.2,c)}).
+  \begin{block}{Operators on tuples}
+    \begin{itemize}
+    \item comparison operators: \texttt{== !=}
+    \item functions: \texttt{length, empty}
+    \item testing membership in tuple: \texttt{in} operator \\ (example:
+      \texttt{"b" in ("a", "b", "c")} returns \texttt{1})
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (6/8): Array}
+  Arrays are enclosed by brackets, and their elements are separated by commas
+  (like \texttt{[1,[2,3],4]} or \texttt{[``US'', ``EA'']}).
   \begin{block}{Operators on arrays}
     \begin{itemize}
+    \item comparison operators: \texttt{== !=}
     \item dereferencing: if \texttt{v} is an array, then \texttt{v[2]} is its $2^{\textrm{nd}}$ element
     \item concatenation: \texttt{+}
+    \item functions: \texttt{sum, length, empty}
     \item difference \texttt{-}: returns the first operand from which the elements of the second operand have been removed
+    \item Cartesian product of two arrays: \texttt{*}
+    \item Cartesian product of one array \texttt{N} times: \texttt{\^{}N}
     \item extraction of sub-arrays: \textit{e.g.} \texttt{v[4:6]}
     \item testing membership of an array: \texttt{in} operator \\ (example:
       \texttt{"b" in ["a", "b", "c"]} returns \texttt{1})
     \end{itemize}
   \end{block}
+\end{frame}
 
-  Macro-expressions can be used in two places:
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (7/8): Comprehension (1/3)}
+  Comprehensions are a shorthand way of creating arrays from other arrays. This is done by filtering, mapping, or filtering and mapping
+  \begin{block}{Filtering}
+    \begin{itemize}
+    \item Allows one to choose those elements from an array for which a condition holds
+    \item Syntax: \texttt{[variable/tuple IN array WHEN condition]}
+    \item Example: Choose even numbers from array
+      \begin{itemize}
+      \item Code: \texttt{@\{[ i in 1:5 when mod(i,2) == 0 ]\}}
+      \item Result: \texttt{[2, 4]}
+      \end{itemize}
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (7/8): Comprehension (2/3)}
+  \begin{block}{Mapping}
+    \begin{itemize}
+    \item Allows one to apply a transformation to every element of an array
+    \item Syntax: \texttt{[expr for variable/tuple IN array]}
+    \item Example: Square elements in array
+      \begin{itemize}
+      \item Code: \texttt{@\{[ i\^{}2 for i in 1:5 ]\}}
+      \item Result: \texttt{[1, 4, 9, 16, 25]}
+      \end{itemize}
+    \item Example: Reverse order of elements in array
+      \begin{itemize}
+      \item Code: \texttt{@\{[ (j,i) for (i,j) in (1:2)\^{}2 ]\}}
+      \item Result: \texttt{[(1, 1), (2, 1), (1, 2), (2, 2)]}
+      \end{itemize}
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (7/8): Comprehension (3/3)}
+  \begin{block}{Mapping and Filtering}
+    \begin{itemize}
+    \item Allows one to apply a transformation to the elements selected from an array
+    \item Syntax: \texttt{[expr for variable/tuple IN array WHEN condition]}
+    \item Example: Square odd numbers from array
+      \begin{itemize}
+      \item Code: \texttt{@\{[ i\^{}2 for i in 1:5 when mod(i,2) == 1 ]\}}
+      \item Result: \texttt{[1, 9, 25]}
+      \end{itemize}
+    \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}[fragile=singleslide]
+  \frametitle{Macro-expressions (8/8): Functions}
   \begin{itemize}
-  \item inside macro directives; no special markup is required
-  \item in the body of the MOD file, between an at sign and curly braces (like \verb+@{expr}+); the macro processor will substitute the expression with its value
+  \item Can take any number of arguments
+  \item Dynamic binding: is evaluated when invoked, not when defined
+  \item Can be included in expressions; valid operators depend on return type
   \end{itemize}
 \end{frame}
 
@@ -162,50 +311,50 @@
   The value of a macro-variable can be defined with the \verb+@#define+ directive.
 
   \begin{block}{Syntax}
-    \verb+@#define +\textit{variable\_name}\verb+ = +\textit{expression}\\
-    \verb+@#define +\textit{function\_name}(\textit{arg1}, [\textit{arg2}, ...])\verb+ = +\textit{string\_expression}
+    \verb+@#define +\textit{variable\_name}\verb+ = +\textit{expression}
   \end{block}
 
   \begin{block}{Examples}
 \begin{verbatim}
-@#define x = 5                   // Integer
-@#define y = "US"                // String
-@#define v = [ 1, 2, 4 ]         // Integer array
-@#define w = [ "US", "EA" ]      // String array
-@#define z = 3 + v[2]            // Equals 5
-@#define t = ("US" in w)         // Equals 1 (true)
-@#define s = "@{y}"              // Equals "US"
-@#define f(x) = " + @{x} + @{y}" // A function "f(x)" equal
-                                 // to " + @{x} + US"
+@#define x = 5              // Integer
+@#define y = "US"           // String
+@#define v = [ 1, 2, 4 ]    // Integer array
+@#define w = [ "US", "EA" ] // String array
+@#define z = 3 + v[2]       // Equals 5
+@#define t = ("US" in w)    // Equals 1 (true)
+@#define f(x) = " " + x + y // Function f with argument x
 \end{verbatim}
   \end{block}
+  NB: You can define macro variables on the dynare command line by using the \texttt{-D} option
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
   \frametitle{Expression substitution}
   \framesubtitle{Dummy example}
-  \begin{block}{Before macro-processing}
+  \begin{block}{Before macro processing}
 \begin{verbatim}
-@#define x = [ "B", "C" ]
+@#define x = 1
+@#define y = [ "B", "C" ]
 @#define i = 2
-@#define f(x) = " + @{x}"
+@#define f(x) = x + " + " + y[i]
+@#define i = 1
 
 model;
-  A = @{x[i] + f("D")};
+  A = @{y[i] + f("D")};
 end;
 \end{verbatim}
   \end{block}
-  \begin{block}{After macro-processing}
+  \begin{block}{After macro processing}
 \begin{verbatim}
 model;
-  A = C + D;
+  A = BD + B;
 end;
 \end{verbatim}
   \end{block}
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
-  \frametitle{Inclusion directive (1/2)}
+  \frametitle{Include directive (1/2)}
   \begin{itemize}
   \item This directive simply inserts the text of another file in its place
     \begin{block}{Syntax}
@@ -223,7 +372,7 @@ end;
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
-  \frametitle{Inclusion directive (2/2)}
+  \frametitle{Include directive (2/2)}
   \begin{itemize}
 \item The filename can be given by a macro-variable (useful in loops):
     \begin{block}{Example with variable}
@@ -232,9 +381,9 @@ end;
 @#include fname
 \end{verbatim}
     \end{block}
-  \item Files to include are searched for in current directory. Other directories can
-    be added with
-    \texttt{@includepath} directive, \texttt{-I} command line option or
+  \item Files to include are searched for in the current directory. Other directories can
+    be added with the
+    \verb+@#includepath+ directive, the \texttt{-I} command line option, or the
     \texttt{[paths]} section in config file.
   \end{itemize}
 \end{frame}
@@ -246,7 +395,7 @@ end;
 \verb+   +\textit{loop\_body} \\
 \verb+@#endfor+
   \end{block}
-  \begin{block}{Example: before macro-processing}
+  \begin{block}{Example: before macro processing}
     \small
 \begin{verbatim}
 model;
@@ -258,7 +407,7 @@ end;
     \normalsize
   \end{block}
 
-  \begin{block}{Example: after macro-processing}
+  \begin{block}{Example: after macro processing}
     \small
 \begin{verbatim}
 model;
@@ -271,7 +420,7 @@ end;
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
-  \frametitle{Conditional inclusion directives (1/2)}
+  \frametitle{Conditional directives (1/2)}
 
   \begin{columns}[T]
     \column{0.47\linewidth}
@@ -310,7 +459,7 @@ end;
 \end{frame}
 
 \begin{frame}[fragile=singleslide]
-  \frametitle{Conditional inclusion directives (2/2)}
+  \frametitle{Conditional directives (2/2)}
 
   \begin{columns}[T]
     \column{0.47\linewidth}
@@ -341,12 +490,14 @@ There is also \verb+@#ifndef+, which is the opposite of \verb+@#ifdef+
 
   \begin{itemize}
   \item The echo directive will simply display a message on standard output
-  \item The error directive will display the message and make Dynare stop (only makes sense inside a conditional inclusion directive)
+  \item The error directive will display the message and make Dynare stop (only makes sense inside a conditional directive)
+  \item The echomacrovars directive will display all of the macro variables and their values
   \end{itemize}
 
   \begin{block}{Syntax}
 \verb+@#echo +\textit{string\_expr} \\
-\verb+@#error +\textit{string\_expr}
+\verb+@#error +\textit{string\_expr} \\
+\verb+@#echomacrovars +
   \end{block}
 
   \begin{block}{Examples}
@@ -358,14 +509,12 @@ There is also \verb+@#ifndef+, which is the opposite of \verb+@#ifdef+
 \end{frame}
 
 \begin{frame}
-  \frametitle{Saving the macro-expanded MOD file}
+  \frametitle{Macro-related command line options}
   \begin{itemize}
-  \item For \textbf{debugging or learning} purposes, it is possible to save the output of the macro processor
-  \item This output is a valid MOD file, obtained after processing the macro-commands of the original MOD file
-  \item Just add the \texttt{savemacro} option on the Dynare command line (after the name of your MOD file)
-  \item If MOD file is \texttt{filename.mod}, then the macro-expanded version will be saved in \texttt{filename-macroexp.mod}
-  \item You can specify the filename for the macro-expanded version with the syntax \texttt{savemacro=mymacroexp.mod}
-  \item To end processing when macro processing is finished, add the option \texttt{onlymacro} to the Dynare command line
+  \item \texttt{savemacro}: Useful for debugging or learning purposes, saves the output of the macro processor. If your \texttt{.mod} file is called \texttt{file.mod}, the output is saved to \texttt{file-macroexp.mod}.
+  \item \texttt{nolinemacro}: In the output of \texttt{savemacro}, don't print line numbers where the macro directives were placed.
+  \item \texttt{noemptylinemacro}: Remove empty lines in the output of \texttt{savemacro}.
+  \item \texttt{onlymacro}: Stops processing after the macro processing step.
   \end{itemize}
 \end{frame}
 
@@ -374,7 +523,7 @@ There is also \verb+@#ifndef+, which is the opposite of \verb+@#ifdef+
 \begin{frame}[fragile=singleslide]
   \frametitle{Modularization}
   \begin{itemize}
-  \item The \verb+@#include+ directive can be used to split MOD files into several modular components
+  \item The \verb+@#include+ directive can be used to split \texttt{.mod} files into several modular components
   \item Example setup:
     \begin{description}
     \item[\texttt{modeldesc.mod}:] contains variable declarations, model equations and shocks declarations
@@ -392,7 +541,7 @@ There is also \verb+@#ifndef+, which is the opposite of \verb+@#ifdef+
   \framesubtitle{Example: moving average}
   \begin{columns}[T]
     \column{0.47\linewidth}
-    \begin{block}{Before macro-processing}
+    \begin{block}{Before macro processing}
 \begin{verbatim}
 @#define window = 2
 
@@ -400,7 +549,7 @@ var x MA_x;
 ...
 model;
 ...
-MA_x = 1/@{2*window+1}*(
+MA_x = @{1/(2*window+1)}*(
 @#for i in -window:window
         +x(@{i})
 @#endfor
@@ -410,7 +559,7 @@ end;
 \end{verbatim}
     \end{block}
     \column{0.47\linewidth}
-    \begin{block}{After macro-processing}
+    \begin{block}{After macro processing}
 \begin{verbatim}
 var x MA_x;
 ...
@@ -432,7 +581,7 @@ end;
 
 \begin{frame}[fragile=singleslide]
   \frametitle{Multi-country models}
-  \framesubtitle{MOD file skeleton example}
+  \framesubtitle{\texttt{.mod} file skeleton example}
   \scriptsize
 \begin{verbatim}
 @#define countries = [ "US", "EA", "AS", "JP", "RC" ]
@@ -462,7 +611,7 @@ end;
 \begin{frame}
   \frametitle{Endogeneizing parameters (1/4)}
   \begin{itemize}
-  \item When doing the steady-state calibration of the model, it may be useful to consider a parameter as an endogenous (and vice-versa)
+  \item When calibrating the model it may be useful to consider a parameter as an endogenous (and vice-versa)
   \item Example:
     \begin{gather*}
       y = \left(\alpha^{\frac{1}{\xi}} \ell^{1-\frac{1}{\xi}} + (1-\alpha)^{\frac{1}{\xi}}k^{1-\frac{1}{\xi}}\right)^{\frac{\xi}{\xi - 1}} \\
@@ -554,7 +703,6 @@ end
   \begin{itemize}
   \item The loop is not unrolled
   \item MATLAB/Octave manages the iterations
-  \item Interesting when there are a lot of iterations
   \end{itemize}
 \end{frame}
 
@@ -580,17 +728,15 @@ rhos = [ 0.8, 0.9, 1];
   \frametitle{MATLAB/Octave loops vs macro processor loops (3/3)}
   \begin{block}{With a macro processor loop (case 2)}
 \begin{verbatim}
-@#for rho_val in [ "0.8", "0.9", "1"]
+@#for rho_val in [ 0.8, 0.9, 1]
   rho = @{rho_val};
   stoch_simul(order=1);
 @#endfor
 \end{verbatim}
   \end{block}
   \begin{itemize}
-  \item Advantage: shorter syntax, since list of values directly given in the loop construct
-  \item Note that values are given as character strings (the macro processor does not
-    know floating point values)
-  \item Inconvenient: can not reuse an array stored in a MATLAB/Octave variable
+  \item Shorter syntax, since list of values directly given in the loop construct
+  \item NB: Array not stored as MATLAB/Octave variable, hence cannot be used in MATLAB/Octave
   \end{itemize}
 \end{frame}
 
@@ -613,17 +759,6 @@ rhos = [ 0.8, 0.9, 1];
     \vfill
   \end{center}
   \vfill
-  \begin{columns}[T]
-    \column{0.2\textwidth}
-    \column{0.09\textwidth}
-
-    \ccbysa
-    \column{0.71\textwidth}
-    \tiny
-    Copyright © 2008--2017 Dynare Team \\
-    Licence: \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative
-      Commons Attribution-ShareAlike 4.0}
-    \end{columns}
   \end{frame}
 
 
-- 
GitLab