Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • giovanma/dynare
  • giorgiomas/dynare
  • Vermandel/dynare
  • Dynare/dynare
  • normann/dynare
  • MichelJuillard/dynare
  • wmutschl/dynare
  • FerhatMihoubi/dynare
  • sebastien/dynare
  • lnsongxf/dynare
  • rattoma/dynare
  • CIMERS/dynare
  • FredericKarame/dynare
  • SumuduK/dynare
  • MinjeJeon/dynare
  • camilomrch/dynare
  • DoraK/dynare
  • avtishin/dynare
  • selma/dynare
  • claudio_olguin/dynare
  • jeffjiang07/dynare
  • EthanSystem/dynare
  • stepan-a/dynare
  • wjgatt/dynare
  • JohannesPfeifer/dynare
  • gboehl/dynare
  • chskcau/dynare-doc-fixes
27 results
Select Git revision
Show changes
Commits on Source (356)
Showing
with 2902 additions and 1508 deletions
variables: variables:
GIT_SUBMODULE_STRATEGY: recursive GIT_SUBMODULE_STRATEGY: recursive
TERM: linux TERM: linux
MATLAB_VERSION: R2021a
OLD_MATLAB_VERSION: R2009b
OCTAVE_VERSION: 6.2.0
# The next stanza creates the version number used for the source tarball and the # The next stanza creates the version number used for the source tarball and the
# binary packages. Here are the following possible cases: # binary packages. Here are the following possible cases:
# - if VERSION was already set (when manually running a pipeline), use it # - if VERSION was already set (when manually running a pipeline), use it
# - if we are in the official Dynare repository: # - if we are in the official Dynare repository:
# + if on a tag: use the tag # + if on a tag: use the tag
# + if on master: use 4.6-unstable-$TIMESTAMP-$COMMIT # + otherwise: use $BRANCH-$TIMESTAMP-$COMMIT
# + on another branch: use $BRANCH-$TIMESTAMP-$COMMIT
# - if in a personal repository: use $USER-$TIMESTAMP-$COMMIT # - if in a personal repository: use $USER-$TIMESTAMP-$COMMIT
#
# Also sets the path and version of the default MATLAB installation.
before_script: before_script:
- '[[ -z $VERSION ]] && [[ $CI_PROJECT_NAMESPACE == Dynare ]] && [[ -n $CI_COMMIT_TAG ]] && export VERSION=$CI_COMMIT_TAG' - '[[ -z $VERSION ]] && [[ $CI_PROJECT_NAMESPACE == Dynare ]] && [[ -n $CI_COMMIT_TAG ]] && export VERSION=$CI_COMMIT_TAG'
- '[[ -z $VERSION ]] && [[ $CI_PROJECT_NAMESPACE == Dynare ]] && [[ $CI_COMMIT_REF_NAME == master ]] && export VERSION=4.6-unstable-$(date +%F-%H%M)-$CI_COMMIT_SHORT_SHA'
- '[[ -z $VERSION ]] && [[ $CI_PROJECT_NAMESPACE == Dynare ]] && export VERSION=$CI_COMMIT_REF_NAME-$(date +%F-%H%M)-$CI_COMMIT_SHORT_SHA' - '[[ -z $VERSION ]] && [[ $CI_PROJECT_NAMESPACE == Dynare ]] && export VERSION=$CI_COMMIT_REF_NAME-$(date +%F-%H%M)-$CI_COMMIT_SHORT_SHA'
- '[[ -z $VERSION ]] && export VERSION=$CI_PROJECT_NAMESPACE-$(date +%F-%H%M)-$CI_COMMIT_SHORT_SHA' - '[[ -z $VERSION ]] && export VERSION=$CI_PROJECT_NAMESPACE-$(date +%F-%H%M)-$CI_COMMIT_SHORT_SHA'
- 'export MATLAB_PATH=$(dirname $(dirname $(readlink -f $(which matlab))))'
- 'export MATLAB_VERSION=$(echo version | matlab -nodesktop -nodisplay -nosplash 2>/dev/null | sed -En "/ans\ =/!d;n;n;s/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/;p")'
stages: stages:
- build - build
- test_and_pkg - test
- pkg
- deploy - deploy
build_binaries: build_binaries:
stage: build stage: build
script: script:
- autoreconf -si - autoreconf -si
- ./configure --with-matlab=$MATLAB_PATH MATLAB_VERSION=$MATLAB_VERSION PACKAGE_VERSION=$VERSION PACKAGE_STRING="dynare $VERSION" - ./configure --with-matlab=/usr/local/MATLAB/$MATLAB_VERSION --with-octave=/usr/local/octave/$OCTAVE_VERSION MATLAB_VERSION=$MATLAB_VERSION PACKAGE_VERSION=$VERSION PACKAGE_STRING="dynare $VERSION"
- make -j $(nproc) LN_S="cp -p" - make -j $(nproc) LN_S="cp -p"
artifacts: artifacts:
paths: paths:
...@@ -42,13 +40,11 @@ build_binaries: ...@@ -42,13 +40,11 @@ build_binaries:
- dynare++/src/*_tab.cc - dynare++/src/*_tab.cc
- dynare++/src/*_tab.hh - dynare++/src/*_tab.hh
- dynare++/src/*_ll.cc - dynare++/src/*_ll.cc
- dynare++/*/*.o - dynare++/**/*.o
- dynare++/*/*.a - dynare++/**/*.a
- dynare++/*/*/*.o
- dynare++/*/*/*.a
- dynare++/integ/src/quadrature-points - dynare++/integ/src/quadrature-points
- dynare++/src/dynare++ - dynare++/src/dynare++
expire_in: 1 week expire_in: 3 days
build_doc: build_doc:
stage: build stage: build
...@@ -59,27 +55,27 @@ build_doc: ...@@ -59,27 +55,27 @@ build_doc:
artifacts: artifacts:
paths: paths:
- doc/manual/build/ - doc/manual/build/
- doc/*.pdf - doc/**/*.pdf
- doc/*/*.pdf
- dynare++/doc/*.pdf - dynare++/doc/*.pdf
- preprocessor/doc/*/*.pdf - preprocessor/doc/*/*.pdf
expire_in: 1 week expire_in: 3 days
pkg_source: pkg_source:
stage: test_and_pkg stage: pkg
script: script:
- rm doc/manual/source/_static/mathjax && sed -i "/^mathjax_path *=/d" doc/manual/source/conf.py
- 'for f in configure.ac preprocessor/configure.ac mex/build/matlab/configure.ac mex/build/octave/configure.ac; do sed -i "s/^AC_INIT(\[\(.*\)\],\s*\[\(.*\)\])/AC_INIT([\1], [$VERSION])/" $f; done' - 'for f in configure.ac preprocessor/configure.ac mex/build/matlab/configure.ac mex/build/octave/configure.ac; do sed -i "s/^AC_INIT(\[\(.*\)\],\s*\[\(.*\)\])/AC_INIT([\1], [$VERSION])/" $f; done'
- autoreconf -si - autoreconf -si
- ./configure --with-matlab=$MATLAB_PATH MATLAB_VERSION=$MATLAB_VERSION - ./configure --with-matlab=/usr/local/MATLAB/$MATLAB_VERSION --with-octave=/usr/local/octave/$OCTAVE_VERSION MATLAB_VERSION=$MATLAB_VERSION
- make dist - make dist
artifacts: artifacts:
paths: paths:
- dynare-*.tar.xz - dynare-*.tar.xz
expire_in: 1 week expire_in: 3 days
dependencies: [] needs: []
pkg_windows: pkg_windows:
stage: test_and_pkg stage: pkg
script: script:
- ln -s ~/tarballs windows/deps/ - ln -s ~/tarballs windows/deps/
- make -C windows - make -C windows
...@@ -98,12 +94,11 @@ pkg_windows: ...@@ -98,12 +94,11 @@ pkg_windows:
- windows/exe/* - windows/exe/*
- windows/7z/* - windows/7z/*
- windows/zip/* - windows/zip/*
expire_in: 1 week expire_in: 3 days
dependencies: needs: [ "build_doc" ]
- build_doc
pkg_macOS: pkg_macOS:
stage: test_and_pkg stage: pkg
script: script:
- ln -s ~/tarballs macOS/deps/ - ln -s ~/tarballs macOS/deps/
- make -C macOS - make -C macOS
...@@ -117,70 +112,55 @@ pkg_macOS: ...@@ -117,70 +112,55 @@ pkg_macOS:
artifacts: artifacts:
paths: paths:
- macOS/pkg/* - macOS/pkg/*
expire_in: 1 week expire_in: 3 days
dependencies: needs: [ "build_doc" ]
- build_doc
.test_matlab_template: .test_matlab_template:
stage: test_and_pkg stage: test
artifacts: artifacts:
paths: paths:
- tests/*.m.log - tests/**/*.m.log
- tests/*.m.trs - tests/**/*.m.trs
- tests/*/*.m.log - tests/**/*.jnl
- tests/*/*.m.trs
- tests/*/*.jnl
- tests/*/*/*.m.log
- tests/*/*/*.m.trs
- tests/*/*/*.jnl
- tests/run_test_matlab_output.txt - tests/run_test_matlab_output.txt
when: always when: always
dependencies: needs: [ "build_binaries" ]
- build_binaries
test_matlab: test_matlab:
extends: .test_matlab_template extends: .test_matlab_template
script: script:
- autoreconf -si - autoreconf -si
- ./configure --disable-octave --with-matlab=$MATLAB_PATH MATLAB_VERSION=$MATLAB_VERSION - ./configure --disable-octave --with-matlab=/usr/local/MATLAB/$MATLAB_VERSION MATLAB_VERSION=$MATLAB_VERSION
- make -j $(($(nproc) * 3 / 4)) -C tests check-matlab - make -j $(($(nproc) * 3 / 4)) -C tests check-matlab
test_old_matlab: test_old_matlab:
extends: .test_matlab_template extends: .test_matlab_template
script: script:
- autoreconf -si - autoreconf -si
- ./configure --disable-octave --with-matlab=/usr/local/MATLAB/R2009b MATLAB_VERSION=R2009b - ./configure --disable-octave --with-matlab=/usr/local/MATLAB/$OLD_MATLAB_VERSION MATLAB_VERSION=$OLD_MATLAB_VERSION
- make -C mex/build/matlab clean - make -C mex/build/matlab clean
- make -j $(nproc) -C mex/build/matlab - make -j $(nproc) -C mex/build/matlab
- make -j $(($(nproc) * 3 / 4)) -C tests check-matlab - make -j $(($(nproc) * 3 / 4)) -C tests check-matlab
when: manual
test_octave: test_octave:
stage: test_and_pkg stage: test
variables: variables:
OPENBLAS_NUM_THREADS: 1 OPENBLAS_NUM_THREADS: 1
script: script:
- autoreconf -si - autoreconf -si
- ./configure --disable-matlab - ./configure --disable-matlab --with-octave=/usr/local/octave/$OCTAVE_VERSION
- make -j $(nproc) -C tests check-octave - make -j $(nproc) -C tests check-octave
artifacts: artifacts:
paths: paths:
- tests/*.o.log - tests/**/*.o.log
- tests/*.o.trs - tests/**/*.o.trs
- tests/*/*.o.log - tests/**/*.jnl
- tests/*/*.o.trs
- tests/*/*.jnl
- tests/*/*/*.o.log
- tests/*/*/*.o.trs
- tests/*/*/*.jnl
- tests/run_test_octave_output.txt - tests/run_test_octave_output.txt
when: always when: always
dependencies: needs: [ "build_binaries" ]
- build_binaries
when: manual
test_dynare++: test_dynare++:
stage: test_and_pkg stage: test
script: script:
- autoreconf -si - autoreconf -si
- ./configure --disable-matlab --disable-octave - ./configure --disable-matlab --disable-octave
...@@ -189,8 +169,7 @@ test_dynare++: ...@@ -189,8 +169,7 @@ test_dynare++:
- touch dynare++/*/*.a dynare++/*/*/*.a - touch dynare++/*/*.a dynare++/*/*/*.a
- touch dynare++/integ/src/quadrature-points dynare++/src/dynare++ - touch dynare++/integ/src/quadrature-points dynare++/src/dynare++
- make -C dynare++ check - make -C dynare++ check
dependencies: needs: [ "build_binaries" ]
- build_binaries
artifacts: artifacts:
paths: paths:
- dynare++/kord/out.txt - dynare++/kord/out.txt
...@@ -199,10 +178,16 @@ test_dynare++: ...@@ -199,10 +178,16 @@ test_dynare++:
- dynare++/tests/*.mat - dynare++/tests/*.mat
- dynare++/tests/*.dump - dynare++/tests/*.dump
deploy_manual_unstable: # For the deploy jobs, we don’t use the “needs” keyword, since we don’t want
# those jobs to start before the “test” and “pkg” stages have succeeded. Hence
# we stick to the “dependencies” keyword.
deploy_manual_stable:
stage: deploy stage: deploy
only: rules:
- master@Dynare/dynare - if: '$CI_PROJECT_NAMESPACE == "Dynare" && $CI_COMMIT_TAG =~ /^4\.6\.[0-9]+$/'
when: on_success
- when: never
tags: tags:
- restricted - restricted
dependencies: dependencies:
...@@ -210,12 +195,15 @@ deploy_manual_unstable: ...@@ -210,12 +195,15 @@ deploy_manual_unstable:
script: script:
- rm -rf doc/manual/build/html/_static/mathjax - rm -rf doc/manual/build/html/_static/mathjax
- ln -s /usr/share/javascript/mathjax doc/manual/build/html/_static/mathjax - ln -s /usr/share/javascript/mathjax doc/manual/build/html/_static/mathjax
- rsync --recursive --links --delete doc/manual/build/html/ /srv/www.dynare.org/manual-unstable/ - rsync --recursive --links --delete doc/manual/build/html/ /srv/www.dynare.org/manual/
- cp doc/manual/build/latex/dynare-manual.pdf /srv/www.dynare.org/manual.pdf
deploy_snapshot_unstable: deploy_release_stable:
stage: deploy stage: deploy
only: rules:
- master@Dynare/dynare - if: '$CI_PROJECT_NAMESPACE == "Dynare" && $CI_COMMIT_TAG =~ /^4\.6\.[0-9]+$/'
when: on_success
- when: never
tags: tags:
- restricted - restricted
dependencies: dependencies:
...@@ -223,11 +211,31 @@ deploy_snapshot_unstable: ...@@ -223,11 +211,31 @@ deploy_snapshot_unstable:
- pkg_windows - pkg_windows
- pkg_macOS - pkg_macOS
script: script:
- f=(windows/exe/*) && osslsigncode sign -pkcs12 ~/dynare-object-signing.p12 -n Dynare -i https://www.dynare.org -in ${f[0]} -out ${f[0]}.signed && mv ${f[0]}.signed ${f[0]} - f=(windows/exe/*) && osslsigncode sign -pkcs12 ~/cepremap-comodo-sectigo-code-signing.p12 -n Dynare -i https://www.dynare.org -t http://timestamp.comodoca.com -in ${f[0]} -out ${f[0]}.signed && mv ${f[0]}.signed ${f[0]}
- cp *.tar.xz /srv/www.dynare.org/snapshot/source/ && ln -sf *.tar.xz /srv/www.dynare.org/snapshot/source/dynare-latest-src.tar.xz - cp *.tar.xz /srv/www.dynare.org/release/source/
- f=(windows/exe/*) && cp ${f[0]} /srv/www.dynare.org/snapshot/windows/ && ln -sf ${f[0]##*/} /srv/www.dynare.org/snapshot/windows/dynare-latest-win.exe - cp windows/exe/* /srv/www.dynare.org/release/windows/
- f=(windows/7z/*) && cp ${f[0]} /srv/www.dynare.org/snapshot/windows-7z/ && ln -sf ${f[0]##*/} /srv/www.dynare.org/snapshot/windows-7z/dynare-latest-win.7z - cp windows/7z/* /srv/www.dynare.org/release/windows-7z/
- f=(windows/zip/*) && cp ${f[0]} /srv/www.dynare.org/snapshot/windows-zip/ && ln -sf ${f[0]##*/} /srv/www.dynare.org/snapshot/windows-zip/dynare-latest-win.zip - cp windows/zip/* /srv/www.dynare.org/release/windows-zip/
- f=(macOS/pkg/*) && cp ${f[0]} /srv/www.dynare.org/snapshot/macos/ && ln -sf ${f[0]##*/} /srv/www.dynare.org/snapshot/macos/dynare-latest-macos.pkg - cp macOS/pkg/* /srv/www.dynare.org/release/macos/
- ~/update-snapshot-list.sh - ~/update-release-list.sh
- curl -X POST -F token="$WEBSITE_PIPELINE_TRIGGER_TOKEN" -F ref=master https://git.dynare.org/api/v4/projects/40/trigger/pipeline - curl -X POST -F token="$WEBSITE_PIPELINE_TRIGGER_TOKEN" -F ref=master https://git.dynare.org/api/v4/projects/40/trigger/pipeline
deploy_beta_stable:
stage: deploy
rules:
- if: '$CI_PROJECT_NAMESPACE == "Dynare" && $CI_COMMIT_TAG =~ /^4\.6(\.[0-9]+)?-(beta|rc)[0-9]+$/'
when: on_success
- when: never
tags:
- restricted
dependencies:
- pkg_source
- pkg_windows
- pkg_macOS
script:
- f=(windows/exe/*) && osslsigncode sign -pkcs12 ~/dynare-object-signing.p12 -n Dynare -i https://www.dynare.org -t http://timestamp.digicert.com -in ${f[0]} -out ${f[0]}.signed && mv ${f[0]}.signed ${f[0]}
- cp *.tar.xz /srv/www.dynare.org/beta/source/
- cp windows/exe/* /srv/www.dynare.org/beta/windows/
- cp windows/7z/* /srv/www.dynare.org/beta/windows-7z/
- cp windows/zip/* /srv/www.dynare.org/beta/windows-zip/
- cp macOS/pkg/* /srv/www.dynare.org/beta/macos/
...@@ -16,7 +16,7 @@ ACLOCAL_AMFLAGS = -I m4 ...@@ -16,7 +16,7 @@ ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \ EXTRA_DIST = \
matlab \ matlab \
contrib \ contrib \
NEWS \ NEWS.md \
license.txt \ license.txt \
README.md \ README.md \
COPYING \ COPYING \
...@@ -34,9 +34,10 @@ all-local: preprocessor/src/dynare_m$(EXEEXT) ...@@ -34,9 +34,10 @@ all-local: preprocessor/src/dynare_m$(EXEEXT)
ARCH="32"; \ ARCH="32"; \
fi; \ fi; \
mkdir -p $(abs_srcdir)/matlab/preprocessor$$ARCH && \ mkdir -p $(abs_srcdir)/matlab/preprocessor$$ARCH && \
$(LN_S) -f $(abs_builddir)/preprocessor/src/dynare_m$(EXEEXT) $(abs_srcdir)/matlab/preprocessor$$ARCH && \ $(LN_S) -f $(abs_builddir)/preprocessor/src/dynare_m$(EXEEXT) $(abs_srcdir)/matlab/preprocessor$$ARCH
mkdir -p $(abs_srcdir)/julia/preprocessor$$ARCH && \
$(LN_S) -f $(abs_builddir)/preprocessor/src/dynare_m$(EXEEXT) $(abs_srcdir)/julia/preprocessor$$ARCH clean-local:
rm -rf $(abs_srcdir)/matlab/preprocessor32 $(abs_srcdir)/matlab/preprocessor64
dist-hook: dist-hook:
rm -rf `find $(distdir)/matlab $(distdir)/examples -name *~` rm -rf `find $(distdir)/matlab $(distdir)/examples -name *~`
......
This diff is collapsed.
...@@ -234,7 +234,7 @@ All the prerequisites are packaged: ...@@ -234,7 +234,7 @@ All the prerequisites are packaged:
- `texlive-fonts-extra` (for ccicons) - `texlive-fonts-extra` (for ccicons)
- `texlive-latex-recommended` - `texlive-latex-recommended`
- `texlive-science` (for amstex) - `texlive-science` (for amstex)
- `texlive-generic-extra` (for Sphinx) - `texlive-plain-generic`
- `lmodern` (for macroprocessor PDF) - `lmodern` (for macroprocessor PDF)
- `python3-sphinx` - `python3-sphinx`
- `latexmk` - `latexmk`
...@@ -243,7 +243,7 @@ All the prerequisites are packaged: ...@@ -243,7 +243,7 @@ All the prerequisites are packaged:
You can install them all at once with: You can install them all at once with:
``` ```
apt install build-essential gfortran liboctave-dev libboost-graph-dev libgsl-dev libmatio-dev libslicot-dev libslicot-pic libsuitesparse-dev flex bison autoconf automake texlive texlive-publishers texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-generic-extra lmodern python3-sphinx latexmk libjs-mathjax doxygen apt install build-essential gfortran liboctave-dev libboost-graph-dev libgsl-dev libmatio-dev libslicot-dev libslicot-pic libsuitesparse-dev flex bison autoconf automake texlive texlive-publishers texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-plain-generic lmodern python3-sphinx latexmk libjs-mathjax doxygen
``` ```
## Windows ## Windows
...@@ -262,30 +262,32 @@ pacman -Syu ...@@ -262,30 +262,32 @@ pacman -Syu
``` ```
pacman -S git autoconf automake-wrapper bison flex make tar texinfo mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-boost mingw-w64-x86_64-gsl mingw-w64-x86_64-matio mingw-w64-x86_64-openblas pacman -S git autoconf automake-wrapper bison flex make tar texinfo mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-boost mingw-w64-x86_64-gsl mingw-w64-x86_64-matio mingw-w64-x86_64-openblas
``` ```
- **(Optional)** compile and install SLICOT, needed for the `kalman_steady_state` - Compile and install SLICOT, needed for the `kalman_steady_state` MEX file
MEX file
``` ```
wget https://deb.debian.org/debian/pool/main/s/slicot/slicot_5.0+20101122.orig.tar.gz wget https://deb.debian.org/debian/pool/main/s/slicot/slicot_5.0+20101122.orig.tar.gz
tar xf slicot_5.0+20101122.orig.tar.gz tar xf slicot_5.0+20101122.orig.tar.gz
cd slicot-5.0+20101122 cd slicot-5.0+20101122
make FORTRAN=gfortran OPTS="-O2 -fno-underscoring -fdefault-integer-8" LOADER=gfortran slicot.a make FORTRAN=gfortran OPTS="-O2 -fno-underscoring -fdefault-integer-8" LOADER=gfortran lib
mkdir -p /usr/local/lib mkdir -p /usr/local/lib
cp slicot.a /usr/local/lib/libslicot64_pic.a cp slicot.a /usr/local/lib/libslicot64_pic.a
cd .. cd ..
``` ```
- Clone and prepare the Dynare sources: - Prepare the Dynare sources, either by unpacking the source tarball, or with:
``` ```
git clone --recurse-submodules https://git.dynare.org/Dynare/dynare.git git clone --recurse-submodules https://git.dynare.org/Dynare/dynare.git
cd dynare cd dynare
autoreconf -si autoreconf -si
``` ```
- Configure Dynare: - Configure Dynare from the source directory:
``` ```
./configure --with-slicot=/usr/local --with-matlab=<…> MATLAB_VERSION=<…> --disable-octave ./configure --with-slicot=/usr/local --with-matlab=<…> MATLAB_VERSION=<…> --disable-octave --disable-doc
``` ```
where the path and version of MATLAB are specified. Note that you should use where the path and version of MATLAB are specified. Note that you should use
the MSYS2 notation and not put spaces in the MATLAB path, so you probably want the MSYS2 notation and not put spaces in the MATLAB path, so you probably want
to use something like `/c/Progra~1/MATLAB/…`. to use something like `/c/Progra~1/MATLAB/…`. Alternatively, if your filesystem
does not have short filenames (8dot3), then you can run `mkdir -p
/usr/local/MATLAB && mount c:/Program\ Files/MATLAB /usr/local/MATLAB`, and
then pass `/usr/local/MATLAB/…` as MATLAB path to the configure script.
- Compile: - Compile:
``` ```
make make
...@@ -346,5 +348,5 @@ folder where you want Dynare installed. ...@@ -346,5 +348,5 @@ folder where you want Dynare installed.
- `make -j` - `make -j`
- **(Optional)** To then build mex files for Octave, run - **(Optional)** To then build mex files for Octave, run
- `cd mex/build/octave` - `cd mex/build/octave`
- `CC=gcc-9 CXX=g++-9 ./configure --with-matio=/usr/local --with-gsl=/usr/local --with-slicot=/usr/local LDFLAGS=-L/usr/local/lib` - `CC=gcc-9 CXX=g++-9 ./configure --with-matio=/usr/local --with-gsl=/usr/local --with-slicot=/usr/local LDFLAGS=-L/usr/local/lib LEX=/usr/local/opt/flex/bin/flex YACC=/usr/local/opt/bison/bin/bison`
- `make -j` - `make -j`
...@@ -18,7 +18,7 @@ dnl You should have received a copy of the GNU General Public License ...@@ -18,7 +18,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with Dynare. If not, see <http://www.gnu.org/licenses/>. dnl along with Dynare. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ([2.62]) AC_PREREQ([2.62])
AC_INIT([dynare], [4.6-unstable]) AC_INIT([dynare], [4.6.5])
AC_CONFIG_SRCDIR([preprocessor/src/DynareMain.cc]) AC_CONFIG_SRCDIR([preprocessor/src/DynareMain.cc])
AM_INIT_AUTOMAKE([1.11 -Wall -Wno-portability foreign no-dist-gzip dist-xz tar-pax]) AM_INIT_AUTOMAKE([1.11 -Wall -Wno-portability foreign no-dist-gzip dist-xz tar-pax])
...@@ -130,8 +130,8 @@ fi ...@@ -130,8 +130,8 @@ fi
# Check for Octave # Check for Octave
if test "$enable_octave" = yes; then if test "$enable_octave" = yes; then
AC_CONFIG_SUBDIRS([mex/build/octave]) AC_CONFIG_SUBDIRS([mex/build/octave])
AC_CHECK_PROG([OCTAVE], [octave], [octave], [no]) AX_OCTAVE
test "$OCTAVE" = no && AC_MSG_ERROR([Octave cannot be found. If you want to compile Dynare without Octave support, pass the --disable-octave flag.]) test "$ax_enable_octave" != yes && AC_MSG_ERROR([Octave cannot be found. If you want to compile Dynare without Octave support, pass the --disable-octave flag.])
fi fi
# Construct final output message # Construct final output message
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
}} }}
\author{S\'ebastien Villemot\thanks{Paris School of Economics and \author{S\'ebastien Villemot\thanks{Paris School of Economics and
CEPREMAP.} \and Johannes Pfeifer\thanks{University of Cologne. E-mail: \href{mailto:jpfeifer@uni-koeln.de}{\texttt{jpfeifer@uni-koeln.de}}.}} CEPREMAP.} \and Johannes Pfeifer\thanks{Universität der Bundeswehr München. E-mail: \href{mailto:johannes.pfeifer@unibw.de}{\texttt{johannes.pfeifer@unibw.de}}.}}
\date{First version: September 2007 \hspace{1cm} This version: May 2017} \date{First version: September 2007 \hspace{1cm} This version: May 2017}
\maketitle \maketitle
...@@ -507,9 +507,11 @@ The command will actually compute the marginal density for several models: first ...@@ -507,9 +507,11 @@ The command will actually compute the marginal density for several models: first
The syntax for computing (out-of-sample) forecasts is: The syntax for computing (out-of-sample) forecasts is:
\medskip \medskip
\texttt{bvar\_forecast(}\textit{options\_list}\texttt{) }\textit{max\_number\_of\_lags}\texttt{;} \texttt{bvar\_forecast(}\textit{options\_list}\texttt{) }\textit{number\_of\_lags}\texttt{;}
\medskip \medskip
In contrast to the \texttt{bvar\_density}, you need to specify the actual lag length used, not the maximum lag length. Typically, the actual lag length should be based on the results from the \texttt{bvar\_density} command.
The options are those describe above, plus a few ones: The options are those describe above, plus a few ones:
\begin{itemize} \begin{itemize}
\item \texttt{forecast}: the number of periods over which to compute forecasts after the end of the sample (no default) \item \texttt{forecast}: the number of periods over which to compute forecasts after the end of the sample (no default)
......
...@@ -16,3 +16,4 @@ build/latex/dynare-manual.pdf: $(SRC) source/conf.py ...@@ -16,3 +16,4 @@ build/latex/dynare-manual.pdf: $(SRC) source/conf.py
clean-local: clean-local:
rm -rf build rm -rf build
rm -rf utils/__pycache__
...@@ -44,6 +44,7 @@ Bibliography ...@@ -44,6 +44,7 @@ Bibliography
* Kim, Jinill and Sunghyun Kim (2003): “Spurious welfare reversals in international business cycle models,” *Journal of International Economics*, 60, 471–500. * Kim, Jinill and Sunghyun Kim (2003): “Spurious welfare reversals in international business cycle models,” *Journal of International Economics*, 60, 471–500.
* Kanzow, Christian and Stefania Petra (2004): “On a semismooth least squares formulation of complementarity problems with gap reduction,” *Optimization Methods and Software*, 19, 507–525. * Kanzow, Christian and Stefania Petra (2004): “On a semismooth least squares formulation of complementarity problems with gap reduction,” *Optimization Methods and Software*, 19, 507–525.
* Kim, Jinill, Sunghyun Kim, Ernst Schaumburg, and Christopher A. Sims (2008): “Calculating and using second-order accurate solutions of discrete time dynamic equilibrium models,” *Journal of Economic Dynamics and Control*, 32(11), 3397–3414. * Kim, Jinill, Sunghyun Kim, Ernst Schaumburg, and Christopher A. Sims (2008): “Calculating and using second-order accurate solutions of discrete time dynamic equilibrium models,” *Journal of Economic Dynamics and Control*, 32(11), 3397–3414.
* Komunjer, Ivana and Ng, Serena (2011): ”Dynamic identification of dynamic stochastic general equilibrium models”, *Econometrica*, 79, 1995–2032.
* Koop, Gary (2003), *Bayesian Econometrics*, John Wiley & Sons. * Koop, Gary (2003), *Bayesian Econometrics*, John Wiley & Sons.
* Koopman, S. J. and J. Durbin (2000): “Fast Filtering and Smoothing for Multivariate State Space Models,” *Journal of Time Series Analysis*, 21(3), 281–296. * Koopman, S. J. and J. Durbin (2000): “Fast Filtering and Smoothing for Multivariate State Space Models,” *Journal of Time Series Analysis*, 21(3), 281–296.
* Koopman, S. J. and J. Durbin (2003): “Filtering and Smoothing of State Vector for Diffuse State Space Models,” *Journal of Time Series Analysis*, 24(1), 85–98. * Koopman, S. J. and J. Durbin (2003): “Filtering and Smoothing of State Vector for Diffuse State Space Models,” *Journal of Time Series Analysis*, 24(1), 85–98.
...@@ -52,13 +53,16 @@ Bibliography ...@@ -52,13 +53,16 @@ Bibliography
* Liu, Jane and Mike West (2001): “Combined parameter and state estimation in simulation-based filtering”, in *Sequential Monte Carlo Methods in Practice*, Eds. Doucet, Freitas and Gordon, Springer Verlag. * Liu, Jane and Mike West (2001): “Combined parameter and state estimation in simulation-based filtering”, in *Sequential Monte Carlo Methods in Practice*, Eds. Doucet, Freitas and Gordon, Springer Verlag.
* Lubik, Thomas and Frank Schorfheide (2007): “Do Central Banks Respond to Exchange Rate Movements? A Structural Investigation,” *Journal of Monetary Economics*, 54(4), 1069–1087. * Lubik, Thomas and Frank Schorfheide (2007): “Do Central Banks Respond to Exchange Rate Movements? A Structural Investigation,” *Journal of Monetary Economics*, 54(4), 1069–1087.
* Murray, Lawrence M., Emlyn M. Jones and John Parslow (2013): “On Disturbance State-Space Models and the Particle Marginal Metropolis-Hastings Sampler”, *SIAM/ASA Journal on Uncertainty Quantification*, 1, 494–521. * Murray, Lawrence M., Emlyn M. Jones and John Parslow (2013): “On Disturbance State-Space Models and the Particle Marginal Metropolis-Hastings Sampler”, *SIAM/ASA Journal on Uncertainty Quantification*, 1, 494–521.
* Mutschler, Willi (2015): “Identification of DSGE models - The effect of higher-order approximation and pruning“, *Journal of Economic Dynamics & Control*, 56, 34-54.
* Pearlman, Joseph, David Currie, and Paul Levine (1986): “Rational expectations models with partial information,” *Economic Modelling*, 3(2), 90–105. * Pearlman, Joseph, David Currie, and Paul Levine (1986): “Rational expectations models with partial information,” *Economic Modelling*, 3(2), 90–105.
* Planas, Christophe, Marco Ratto and Alessandro Rossi (2015): “Slice sampling in Bayesian estimation of DSGE models”. * Planas, Christophe, Marco Ratto and Alessandro Rossi (2015): “Slice sampling in Bayesian estimation of DSGE models”.
* Pfeifer, Johannes (2013): “A Guide to Specifying Observation Equations for the Estimation of DSGE Models”. * Pfeifer, Johannes (2013): “A Guide to Specifying Observation Equations for the Estimation of DSGE Models”.
* Pfeifer, Johannes (2014): “An Introduction to Graphs in Dynare”. * Pfeifer, Johannes (2014): “An Introduction to Graphs in Dynare”.
* Qu, Zhongjun and Tkachenko, Denis (2012): “Identification and frequency domain quasi-maximum likelihood estimation of linearized dynamic stochastic general equilibrium models“, *Quantitative Economics*, 3, 95–132.
* Rabanal, Pau and Juan Rubio-Ramirez (2003): “Comparing New Keynesian Models of the Business Cycle: A Bayesian Approach,” Federal Reserve of Atlanta, *Working Paper Series*, 2003-30. * Rabanal, Pau and Juan Rubio-Ramirez (2003): “Comparing New Keynesian Models of the Business Cycle: A Bayesian Approach,” Federal Reserve of Atlanta, *Working Paper Series*, 2003-30.
* Raftery, Adrian E. and Steven Lewis (1992): “How many iterations in the Gibbs sampler?,” in *Bayesian Statistics, Vol. 4*, ed. J.O. Berger, J.M. Bernardo, A.P. * Dawid, and A.F.M. Smith, Clarendon Press: Oxford, pp. 763-773. * Raftery, Adrian E. and Steven Lewis (1992): “How many iterations in the Gibbs sampler?,” in *Bayesian Statistics, Vol. 4*, ed. J.O. Berger, J.M. Bernardo, A.P. * Dawid, and A.F.M. Smith, Clarendon Press: Oxford, pp. 763-773.
* Ratto, Marco (2008): “Analysing DSGE models with global sensitivity analysis”, *Computational Economics*, 31, 115–139. * Ratto, Marco (2008): “Analysing DSGE models with global sensitivity analysis”, *Computational Economics*, 31, 115–139.
* Ratto, Marco and Iskrev, Nikolay (2011): “Identification Analysis of DSGE Models with DYNARE.“, *MONFISPOL* 225149.
* Schorfheide, Frank (2000): “Loss Function-based evaluation of DSGE models,” *Journal of Applied Econometrics*, 15(6), 645–670. * Schorfheide, Frank (2000): “Loss Function-based evaluation of DSGE models,” *Journal of Applied Econometrics*, 15(6), 645–670.
* Schmitt-Grohé, Stephanie and Martin Uríbe (2004): “Solving Dynamic General Equilibrium Models Using a Second-Order Approximation to the Policy Function,” *Journal of Economic Dynamics and Control*, 28(4), 755–775. * Schmitt-Grohé, Stephanie and Martin Uríbe (2004): “Solving Dynamic General Equilibrium Models Using a Second-Order Approximation to the Policy Function,” *Journal of Economic Dynamics and Control*, 28(4), 755–775.
* Schnabel, Robert B. and Elizabeth Eskow (1990): “A new modified Cholesky algorithm,” *SIAM Journal of Scientific and Statistical Computing*, 11, 1136–1158. * Schnabel, Robert B. and Elizabeth Eskow (1990): “A new modified Cholesky algorithm,” *SIAM Journal of Scientific and Statistical Computing*, 11, 1136–1158.
...@@ -68,6 +72,3 @@ Bibliography ...@@ -68,6 +72,3 @@ Bibliography
* Stock, James H. and Mark W. Watson (1999). “Forecasting Inflation,”, *Journal of Monetary Economics*, 44(2), 293–335. * Stock, James H. and Mark W. Watson (1999). “Forecasting Inflation,”, *Journal of Monetary Economics*, 44(2), 293–335.
* Uhlig, Harald (2001): “A Toolkit for Analysing Nonlinear Dynamic Stochastic Models Easily,” in *Computational Methods for the Study of Dynamic Economies*, Eds. Ramon Marimon and Andrew Scott, Oxford University Press, 30–61. * Uhlig, Harald (2001): “A Toolkit for Analysing Nonlinear Dynamic Stochastic Models Easily,” in *Computational Methods for the Study of Dynamic Economies*, Eds. Ramon Marimon and Andrew Scott, Oxford University Press, 30–61.
* Villemot, Sébastien (2011): “Solving rational expectations models at first order: what Dynare does,” *Dynare Working Papers*, 2, CEPREMAP. * Villemot, Sébastien (2011): “Solving rational expectations models at first order: what Dynare does,” *Dynare Working Papers*, 2, CEPREMAP.
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2018-2019 Dynare Team # Copyright (C) 2018-2020 Dynare Team
# #
# This file is part of Dynare. # This file is part of Dynare.
# #
...@@ -36,7 +36,7 @@ mathjax_path = 'mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML' ...@@ -36,7 +36,7 @@ mathjax_path = 'mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
master_doc = 'index' master_doc = 'index'
project = u'Dynare' project = u'Dynare'
copyright = u'2019, Dynare Team' copyright = u'2020, Dynare Team'
author = u'Dynare Team' author = u'Dynare Team'
add_function_parentheses = False add_function_parentheses = False
...@@ -77,6 +77,7 @@ latex_elements = { ...@@ -77,6 +77,7 @@ latex_elements = {
warningBorderColor={RGB}{255,50,50},OuterLinkColor={RGB}{34,139,34}, \ warningBorderColor={RGB}{255,50,50},OuterLinkColor={RGB}{34,139,34}, \
InnerLinkColor={RGB}{51,51,255},TitleColor={RGB}{51,51,255}', InnerLinkColor={RGB}{51,51,255},TitleColor={RGB}{51,51,255}',
'papersize': 'a4paper', 'papersize': 'a4paper',
'preamble': r'\DeclareUnicodeCharacter{200B}{}', # Part of the workaround for #1707
} }
latex_documents = [ latex_documents = [
......
...@@ -167,24 +167,26 @@ Dynare misc commands ...@@ -167,24 +167,26 @@ Dynare misc commands
A ``1*Nblck`` array of doubles. Current acceptance ratios. A ``1*Nblck`` array of doubles. Current acceptance ratios.
.. matcomm:: prior [options[, ...]]; .. matcomm:: prior [OPTIONS[, ...]];
Prints various informations about the prior distribution depending Prints information about the prior distribution given the provided
on the options. If no options are provided, the command returns options. If no options are provided, the command returns the list of
the list of available options. Following options are available: available options.
``table`` *Options*
.. option:: table
Prints a table describing the marginal prior distributions Prints a table describing the marginal prior distributions
(mean, mode, std., lower and upper bounds, HPD interval). (mean, mode, std., lower and upper bounds, HPD interval).
``moments`` .. option:: moments
Computes and displays first and second order moments of the Computes and displays first and second order moments of the
endogenous variables at the prior mode (considering the endogenous variables at the prior mode (considering the
linearized version of the model). linearized version of the model).
``moments(distribution)`` .. option:: moments(distribution)
Computes and displays the prior mean and prior standard Computes and displays the prior mean and prior standard
deviation of the first and second moments of the endogenous deviation of the first and second moments of the endogenous
...@@ -193,7 +195,7 @@ Dynare misc commands ...@@ -193,7 +195,7 @@ Dynare misc commands
stored in the ``prior`` subfolder in a stored in the ``prior`` subfolder in a
``_endogenous_variables_prior_draws.mat`` file. ``_endogenous_variables_prior_draws.mat`` file.
``optimize`` .. option:: optimize
Optimizes the prior density (starting from a random initial Optimizes the prior density (starting from a random initial
guess). The parameters such that the steady state does not guess). The parameters such that the steady state does not
...@@ -203,7 +205,7 @@ Dynare misc commands ...@@ -203,7 +205,7 @@ Dynare misc commands
defined over such regions, the optimization algorithm may fail defined over such regions, the optimization algorithm may fail
to converge to the true solution (the prior mode). to converge to the true solution (the prior mode).
``simulate`` .. option:: simulate
Computes the effective prior mass using a Monte-Carlo. Ideally Computes the effective prior mass using a Monte-Carlo. Ideally
the effective prior mass should be equal to 1, otherwise the effective prior mass should be equal to 1, otherwise
...@@ -215,6 +217,6 @@ Dynare misc commands ...@@ -215,6 +217,6 @@ Dynare misc commands
:math:`p_A\neq p_B \leq 1` so that the prior mass of the :math:`p_A\neq p_B \leq 1` so that the prior mass of the
compared models are identical. compared models are identical.
``plot`` .. option:: plot
Plots the marginal prior density. Plots the marginal prior density.
...@@ -56,3 +56,9 @@ description, please refer to the comments inside the files themselves. ...@@ -56,3 +56,9 @@ description, please refer to the comments inside the files themselves.
Baseline New Keynesian Model estimated in *Fernández-Villaverde Baseline New Keynesian Model estimated in *Fernández-Villaverde
(2010)*. It demonstrates how to use an explicit steady state file (2010)*. It demonstrates how to use an explicit steady state file
to update parameters and call a numerical solver. to update parameters and call a numerical solver.
``Ramsey_Example.mod``
File demonstrating how to conduct optimal policy experiments in a
simple New Keynesian model either under commitment (Ramsey) or using
optimal simple rules (OSR)
\ No newline at end of file
...@@ -4,15 +4,14 @@ The Dynare Reference Manual, version |version| ...@@ -4,15 +4,14 @@ The Dynare Reference Manual, version |version|
Currently the development team of Dynare is composed of: Currently the development team of Dynare is composed of:
* Stéphane Adjemian (Université du Maine, Gains) * Stéphane Adjemian (Université du Maine, Gains)
* Houtan Bastani (CEPREMAP) * Houtan Bastani
* Michel Juillard (Banque de France) * Michel Juillard (Banque de France)
* Sumudu Kankanamge (Toulouse School of Economics) * Sumudu Kankanamge (Toulouse School of Economics)
* Frédéric Karamé (Université du Maine, Gains and CEPREMAP) * Frédéric Karamé (Université du Maine, Gains and CEPREMAP)
* Dóra Kocsis (CEPREMAP)
* Junior Maih (Norges Bank) * Junior Maih (Norges Bank)
* Ferhat Mihoubi (Université Paris-Est Créteil, Érudite and CEPREMAP) * Ferhat Mihoubi (Université Paris-Est Créteil, Érudite)
* Willi Mutschler (University of Münster) * Willi Mutschler (University of Münster)
* Johannes Pfeifer (University of Cologne) * Johannes Pfeifer (Universität der Bundeswehr München)
* Marco Ratto (European Commission, Joint Research Centre - JRC) * Marco Ratto (European Commission, Joint Research Centre - JRC)
* Sébastien Villemot (CEPREMAP) * Sébastien Villemot (CEPREMAP)
...@@ -22,10 +21,11 @@ The following people used to be members of the team: ...@@ -22,10 +21,11 @@ The following people used to be members of the team:
* Alejandro Buesa * Alejandro Buesa
* Fabrice Collard * Fabrice Collard
* Assia Ezzeroug * Assia Ezzeroug
* Dóra Kocsis
* Stéphane Lhuissier * Stéphane Lhuissier
* George Perendia * George Perendia
Copyright © 1996-2019, Dynare Team. Copyright © 1996-2020, Dynare Team.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
......
...@@ -7,7 +7,7 @@ Installation and configuration ...@@ -7,7 +7,7 @@ Installation and configuration
Software requirements Software requirements
===================== =====================
Packaged versions of Dynare are available for Windows 7/8/10, several GNU/Linux Packaged versions of Dynare are available for Windows (7, 8.1, 10), several GNU/Linux
distributions (Debian, Ubuntu, Linux Mint, Arch Linux) and macOS distributions (Debian, Ubuntu, Linux Mint, Arch Linux) and macOS
10.11 or later. Dynare should work on other systems, but some compilation steps 10.11 or later. Dynare should work on other systems, but some compilation steps
are necessary in that case. are necessary in that case.
...@@ -15,7 +15,10 @@ are necessary in that case. ...@@ -15,7 +15,10 @@ are necessary in that case.
In order to run Dynare, you need one of the following: In order to run Dynare, you need one of the following:
* MATLAB version 7.9 (R2009b) or above; * MATLAB version 7.9 (R2009b) or above;
* Octave version 4.2.1 or above, with the statistics package from `Octave-Forge`_. * GNU Octave version 4.2.1 or above, with the statistics package from
`Octave-Forge`_. Note however that the Dynare installers for Windows and
macOS require a more specific version of Octave, as indicated on the download
page.
The following optional extensions are also useful to benefit from The following optional extensions are also useful to benefit from
extra features, but are in no way required: extra features, but are in no way required:
......
...@@ -55,7 +55,7 @@ manual. Part of Dynare is programmed in C++, while the rest is written ...@@ -55,7 +55,7 @@ manual. Part of Dynare is programmed in C++, while the rest is written
using the `MATLAB`_ programming language. The latter implies that using the `MATLAB`_ programming language. The latter implies that
commercially-available MATLAB software is required in order to run commercially-available MATLAB software is required in order to run
Dynare. However, as an alternative to MATLAB, Dynare is also able to Dynare. However, as an alternative to MATLAB, Dynare is also able to
run on top of `Octave`_ (basically a free clone of MATLAB): this run on top of `GNU Octave`_ (basically a free clone of MATLAB): this
possibility is particularly interesting for students or institutions possibility is particularly interesting for students or institutions
who cannot afford, or do not want to pay for, MATLAB and are willing who cannot afford, or do not want to pay for, MATLAB and are willing
to bear the concomitant performance loss. to bear the concomitant performance loss.
...@@ -95,8 +95,8 @@ You should cite Dynare if you use it in your research. The ...@@ -95,8 +95,8 @@ You should cite Dynare if you use it in your research. The
recommended way todo this is to cite the present manual, as: recommended way todo this is to cite the present manual, as:
Stéphane Adjemian, Houtan Bastani, Michel Juillard, Frédéric Stéphane Adjemian, Houtan Bastani, Michel Juillard, Frédéric
Karamé, Junior Maih, Ferhat Mihoubi, George Perendia, Johannes Pfeifer, Marco Karamé, Junior Maih, Ferhat Mihoubi, Willi Mutschler, George Perendia, Johannes Pfeifer,
Ratto and Sébastien Villemot (2011), “Dynare: Reference Manual, Marco Ratto and Sébastien Villemot (2011), “Dynare: Reference Manual,
Version 4,” *Dynare Working Papers*, 1, CEPREMAP Version 4,” *Dynare Working Papers*, 1, CEPREMAP
For convenience, you can copy and paste the following into your BibTeX file: For convenience, you can copy and paste the following into your BibTeX file:
...@@ -106,8 +106,8 @@ For convenience, you can copy and paste the following into your BibTeX file: ...@@ -106,8 +106,8 @@ For convenience, you can copy and paste the following into your BibTeX file:
@TechReport{Adjemianetal2011, @TechReport{Adjemianetal2011,
author = {Adjemian, St\'ephane and Bastani, Houtan and author = {Adjemian, St\'ephane and Bastani, Houtan and
Juillard, Michel and Karam\'e, Fr\'ederic and Juillard, Michel and Karam\'e, Fr\'ederic and
Maih, Junior and Mihoubi, Ferhat and Maih, Junior and Mihoubi, Ferhat and Mutschler, Willi
Perendia, George and Pfeifer, Johannes and and Perendia, George and Pfeifer, Johannes and
Ratto, Marco and Villemot, S\'ebastien}, Ratto, Marco and Villemot, S\'ebastien},
title = {Dynare: Reference Manual Version 4}, title = {Dynare: Reference Manual Version 4},
year = {2011}, year = {2011},
...@@ -122,7 +122,7 @@ https://www.dynare.org. ...@@ -122,7 +122,7 @@ https://www.dynare.org.
.. _MATLAB: https://www.mathworks.com/products/matlab/ .. _MATLAB: https://www.mathworks.com/products/matlab/
.. _Octave: https://www.octave.org/ .. _GNU Octave: https://www.octave.org/
.. _CEPREMAP: https://www.cepremap.fr/ .. _CEPREMAP: https://www.cepremap.fr/
.. _web forum: https://forum.dynare.org/ .. _web forum: https://forum.dynare.org/
.. _official Dynare website: https://www.dynare.org/ .. _official Dynare website: https://www.dynare.org/
......
...@@ -104,6 +104,23 @@ by the ``dynare`` command. ...@@ -104,6 +104,23 @@ by the ``dynare`` command.
Octave, it also means that the ``.mod`` file cannot be named Octave, it also means that the ``.mod`` file cannot be named
``test.mod`` or ``example.mod``. ``test.mod`` or ``example.mod``.
.. _quote-note:
.. note::
Note on Quotes
When passing command line options that contains a space (or, under
Octave, a double quote), you must surround the entire option (keyword
and argument) with single quotes, as in the following example.
*Example*
Call Dynare with options containing spaces
.. code-block:: matlab
>> dynare <<modfile.mod>> '-DA=[ i in [1,2,3] when i > 1 ]' 'conffile=C:\User\My Documents\config.txt'
*Options* *Options*
.. option:: noclearall .. option:: noclearall
...@@ -140,10 +157,11 @@ by the ``dynare`` command. ...@@ -140,10 +157,11 @@ by the ``dynare`` command.
.. option:: savemacro[=FILENAME] .. option:: savemacro[=FILENAME]
Instructs ``dynare`` to save the intermediary file which is Instructs ``dynare`` to save the intermediary file which is obtained
obtained after macro processing (see :ref:`macro-proc-lang`); after macro processing (see :ref:`macro-proc-lang`); the saved output
the saved output will go in the file specified, or if no file will go in the file specified, or if no file is specified in
is specified in ``FILENAME-macroexp.mod`` ``FILENAME-macroexp.mod``. See the :ref:`note on quotes<quote-note>`
for info on passing a ``FILENAME`` argument containing spaces.
.. option:: onlymacro .. option:: onlymacro
...@@ -152,19 +170,12 @@ by the ``dynare`` command. ...@@ -152,19 +170,12 @@ by the ``dynare`` command.
debugging purposes or for using the macro processor debugging purposes or for using the macro processor
independently of the rest of Dynare toolbox. independently of the rest of Dynare toolbox.
.. option:: nolinemacro .. option:: linemacro
Instructs the macro preprocessor to omit line numbering Instructs the macro preprocessor include ``@#line`` directives
information in the intermediary ``.mod`` file created after specifying the line on which macro directives were encountered and
the macro processing step. Useful in conjunction with expanded from. Only useful in conjunction with :opt:`savemacro
:opt:`savemacro <savemacro[=FILENAME]>` when one wants that to reuse the intermediary <savemacro[=FILENAME]>`.
``.mod`` file, without having it cluttered by line numbering
directives.
.. option:: noemptylinemacro
Passing this option removes all empty from the macro expanded
mod file created when the :opt:`savemacro <savemacro[=FILENAME]>` option is used.
.. option:: onlymodel .. option:: onlymodel
...@@ -214,7 +225,8 @@ by the ``dynare`` command. ...@@ -214,7 +225,8 @@ by the ``dynare`` command.
.. option:: json = parse|check|transform|compute .. option:: json = parse|check|transform|compute
Causes the preprocessor to output a version of the ``.mod`` file in Causes the preprocessor to output a version of the ``.mod`` file in
JSON format. When the JSON output is created depends on the value JSON format to ``<<M_.dname>>/model/json/``.
When the JSON output is created depends on the value
passed. These values represent various steps of processing in the passed. These values represent various steps of processing in the
preprocessor. preprocessor.
...@@ -242,7 +254,8 @@ by the ``dynare`` command. ...@@ -242,7 +254,8 @@ by the ``dynare`` command.
.. option:: jsonstdout .. option:: jsonstdout
Instead of writing output requested by ``json`` to files, Instead of writing output requested by ``json`` to files,
write to standard out. write to standard out, i.e. to the MATLAB/Octave command window
(and the log-file).
.. option:: onlyjson .. option:: onlyjson
...@@ -273,6 +286,7 @@ by the ``dynare`` command. ...@@ -273,6 +286,7 @@ by the ``dynare`` command.
computations. computations.
.. option:: nograph .. option:: nograph
:noindex:
Activate the ``nograph`` option (see :opt:`nograph`), so that Activate the ``nograph`` option (see :opt:`nograph`), so that
Dynare will not produce any graph. Dynare will not produce any graph.
...@@ -305,9 +319,10 @@ by the ``dynare`` command. ...@@ -305,9 +319,10 @@ by the ``dynare`` command.
.. option:: matlabroot=<<path>> .. option:: matlabroot=<<path>>
The path to the MATLAB installation for use with The path to the MATLAB installation for use with :opt:`use_dll`. Dynare
:opt:`use_dll`. Dynare is able to set this automatically, is able to set this automatically, so you should not need to set it
so you should not need to set it yourself. yourself. See the :ref:`note on quotes<quote-note>` for info on
passing a ``<<path>>`` argument containing spaces.
.. option:: parallel[=CLUSTER_NAME] .. option:: parallel[=CLUSTER_NAME]
...@@ -320,9 +335,11 @@ by the ``dynare`` command. ...@@ -320,9 +335,11 @@ by the ``dynare`` command.
.. option:: conffile=FILENAME .. option:: conffile=FILENAME
Specifies the location of the configuration file if it differs Specifies the location of the configuration file if it differs from the
from the default. See :ref:`conf-file`, for more information default. See :ref:`conf-file`, for more information about the
about the configuration file and its default location. configuration file and its default location. See the :ref:`note on
quotes<quote-note>` for info on passing a ``FILENAME`` argument
containing spaces.
.. option:: parallel_slave_open_mode .. option:: parallel_slave_open_mode
...@@ -338,18 +355,30 @@ by the ``dynare`` command. ...@@ -338,18 +355,30 @@ by the ``dynare`` command.
.. option:: -DMACRO_VARIABLE=MACRO_EXPRESSION .. option:: -DMACRO_VARIABLE=MACRO_EXPRESSION
Defines a macro-variable from the command line (the same Defines a macro-variable from the command line (the same effect as
effect as using the Macro directive ``@#define`` in a model using the Macro directive ``@#define`` in a model file, see
file, see :ref:`macro-proc-lang`). :ref:`macro-proc-lang`). See the :ref:`note on quotes<quote-note>` for
info on passing a ``MACRO_EXPRESSION`` argument containing spaces. Note
that an expression passed on the command line can reference variables
defined before it.
*Example*
Call dynare with command line defines
.. code-block:: matlab
>> dynare <<modfile.mod>> -DA=true '-DB="A string with space"' -DC=[1,2,3] '-DD=[ i in C when i > 1 ]'
.. option:: -I<<path>> .. option:: -I<<path>>
Defines a path to search for files to be included by the Defines a path to search for files to be included by the macro
macro processor (using the ``@#include`` command). Multiple processor (using the ``@#include`` command). Multiple ``-I`` flags can
``-I`` flags can be passed on the command line. The paths will be passed on the command line. The paths will be searched in the order
be searched in the order that the ``-I`` flags are passed and that the ``-I`` flags are passed and the first matching file will be
the first matching file will be used. The flags passed here used. The flags passed here take priority over those passed to
take priority over those passed to ``@#includepath``. ``@#includepath``. See the :ref:`note on quotes<quote-note>` for info
on passing a ``<<path>>`` argument containing spaces.
.. option:: nostrict .. option:: nostrict
...@@ -397,13 +426,14 @@ by the ``dynare`` command. ...@@ -397,13 +426,14 @@ by the ``dynare`` command.
after the name of the ``.mod`` file. They can alternatively be after the name of the ``.mod`` file. They can alternatively be
defined in the first line of the ``.mod`` file, this avoids typing defined in the first line of the ``.mod`` file, this avoids typing
them on the command line each time a ``.mod`` file is to be them on the command line each time a ``.mod`` file is to be
run. This line must be a Dynare comment (ie must begin with //) run. This line must be a Dynare one-line comment (i.e. must begin with ``//``)
and the options must be comma separated between ``--+`` options: and the options must be whitespace separated between ``--+ options:``
and ``+--``. Note that any text after the ``+--`` will be and ``+--``. Note that any text after the ``+--`` will be
discarded. As in the command line, if an option admits a value the discarded. As in the command line, if an option admits a value the
equal symbol must not be surrounded by spaces. For instance ``json equal symbol must not be surrounded by spaces. For instance ``json
= compute`` is not correct, and should be written = compute`` is not correct, and should be written
``json=compute``. ``json=compute``. The ``nopathchange`` option cannot be specified in
this way, it must be passed on the command-line.
*Output* *Output*
......
This diff is collapsed.
This diff is collapsed.
...@@ -34,7 +34,7 @@ from docutils.parsers.rst import Directive, directives ...@@ -34,7 +34,7 @@ from docutils.parsers.rst import Directive, directives
from sphinx import addnodes from sphinx import addnodes
from sphinx.domains import Domain, ObjType from sphinx.domains import Domain, ObjType
from sphinx.locale import l_, _ from sphinx.locale import _
from sphinx.directives import ObjectDescription from sphinx.directives import ObjectDescription
from sphinx.roles import XRefRole from sphinx.roles import XRefRole
from sphinx.util.nodes import make_refnode from sphinx.util.nodes import make_refnode
...@@ -140,14 +140,14 @@ class DynCallable(DynObject): ...@@ -140,14 +140,14 @@ class DynCallable(DynObject):
has_arguments = True has_arguments = True
doc_field_types = [ doc_field_types = [
TypedField('arguments', label=l_('Arguments'), TypedField('arguments', label=_('Arguments'),
names=('argument', 'arg', 'parameter', 'param'), names=('argument', 'arg', 'parameter', 'param'),
typerolename='func', typenames=('paramtype', 'type')), typerolename='func', typenames=('paramtype', 'type')),
Field('returnvalue', label=l_('Returns'), has_arg=False, Field('returnvalue', label=_('Returns'), has_arg=False,
names=('returns', 'return')), names=('returns', 'return')),
Field('returntype', label=l_('Return type'), has_arg=False, Field('returntype', label=_('Return type'), has_arg=False,
names=('rtype',)), names=('rtype',)),
Field('example', label=l_('Example'), has_arg=False, Field('example', label=_('Example'), has_arg=False,
names=('ex',)), names=('ex',)),
] ]
...@@ -157,10 +157,10 @@ class DynClass(DynObject): ...@@ -157,10 +157,10 @@ class DynClass(DynObject):
allow_nesting = True allow_nesting = True
doc_field_types = [ doc_field_types = [
TypedField('members', label=l_('Members'), TypedField('members', label=_('Members'),
names=('argument', 'arg', ), names=('argument', 'arg', ),
typerolename='func', typenames=('type', )), typerolename='func', typenames=('type', )),
Field('example', label=l_('Example'), has_arg=False, Field('example', label=_('Example'), has_arg=False,
names=('ex',)), names=('ex',)),
] ]
...@@ -291,22 +291,22 @@ class DynareDomain(Domain): ...@@ -291,22 +291,22 @@ class DynareDomain(Domain):
name = 'dynare' name = 'dynare'
label = 'Dynare' label = 'Dynare'
object_types = { object_types = {
'function': ObjType(l_('function'), 'func'), 'function': ObjType(_('function'), 'func'),
'datesmethod': ObjType(l_('method'), 'datmeth'), 'datesmethod': ObjType(_('method'), 'datmeth'),
'dseriesmethod': ObjType(l_('method'), 'dsermeth'), 'dseriesmethod': ObjType(_('method'), 'dsermeth'),
'reportingmethod': ObjType(l_('method'), 'repmeth'), 'reportingmethod': ObjType(_('method'), 'repmeth'),
'matcomm': ObjType(l_('matlab command'), 'mcomm'), 'matcomm': ObjType(_('matlab command'), 'mcomm'),
'command': ObjType(l_('command'), 'comm'), 'command': ObjType(_('command'), 'comm'),
'class': ObjType(l_('class'), 'class'), 'class': ObjType(_('class'), 'class'),
'block': ObjType(l_('block'), 'bck'), 'block': ObjType(_('block'), 'bck'),
'confblock': ObjType(l_('config block'), 'cbck'), 'confblock': ObjType(_('config block'), 'cbck'),
'macrodir': ObjType(l_('macro directive'), 'mdir'), 'macrodir': ObjType(_('macro directive'), 'mdir'),
'construct': ObjType(l_('constructor'), 'cstr'), 'construct': ObjType(_('constructor'), 'cstr'),
'matvar': ObjType(l_('matlab variable'), 'mvar'), 'matvar': ObjType(_('matlab variable'), 'mvar'),
'specvar': ObjType(l_('special variable'), 'svar'), 'specvar': ObjType(_('special variable'), 'svar'),
'operator': ObjType(l_('operator'), 'op'), 'operator': ObjType(_('operator'), 'op'),
'constant': ObjType(l_('constant'), 'const'), 'constant': ObjType(_('constant'), 'const'),
'option': ObjType(l_('option'), 'opt'), 'option': ObjType(_('option'), 'opt'),
} }
directives = { directives = {
'function': DynFunction, 'function': DynFunction,
......
...@@ -52,7 +52,7 @@ class DynareLexer(RegexLexer): ...@@ -52,7 +52,7 @@ class DynareLexer(RegexLexer):
"save_params_and_steady_state","load_params_and_steady_state", "save_params_and_steady_state","load_params_and_steady_state",
"dynare_version","write_latex_definitions","write_latex_parameter_table", "dynare_version","write_latex_definitions","write_latex_parameter_table",
"write_latex_prior_table","collect_latex_files","prior_function", "write_latex_prior_table","collect_latex_files","prior_function",
"posterior_function","generate_trace_plots") "posterior_function","generate_trace_plots","evaluate_planner_objective")
report_commands = ("report","addPage","addSection","addGraph","addTable", report_commands = ("report","addPage","addSection","addGraph","addTable",
"addSeries","addParagraph","addVspace","write","compile") "addSeries","addParagraph","addVspace","write","compile")
...@@ -73,7 +73,7 @@ class DynareLexer(RegexLexer): ...@@ -73,7 +73,7 @@ class DynareLexer(RegexLexer):
(r'\s*(%|//).*$', Comment), (r'\s*(%|//).*$', Comment),
(words(( (words((
'model','steady_state_model','initval','endval','histval', 'model','steady_state_model','initval','endval','histval','epilogue',
'shocks','mshocks','homotopy_setup','observation_trends', 'shocks','mshocks','homotopy_setup','observation_trends',
'estimated_params','estimated_params_init','estimated_params_bounds', 'estimated_params','estimated_params_init','estimated_params_bounds',
'shock_groups','conditional_forecast_paths','optim_weights', 'shock_groups','conditional_forecast_paths','optim_weights',
...@@ -92,7 +92,6 @@ class DynareLexer(RegexLexer): ...@@ -92,7 +92,6 @@ class DynareLexer(RegexLexer):
(r'\s*[a-zA-Z_]\s*', Name), (r'\s*[a-zA-Z_]\s*', Name),
(r'\s*(\d+\.\d+|\d*\.\d+)([eEf][+-]?[0-9]+)?\s*', Number.Float), (r'\s*(\d+\.\d+|\d*\.\d+)([eEf][+-]?[0-9]+)?\s*', Number.Float),
(r'\s*\d+[eEf][+-]?[0-9]+\s*', Number.Float), (r'\s*\d+[eEf][+-]?[0-9]+\s*', Number.Float),
(r'\s*\d+\s*', Number.Integer), (r'\s*\d+\s*', Number.Integer),
......
...@@ -248,7 +248,7 @@ The configuration file is designed as follows: ...@@ -248,7 +248,7 @@ The configuration file is designed as follows:
The list of slave options includes: The list of slave options includes:
\begin{description} \begin{description}
\item[Name]: name of the node; \item[Name]: name of the node;
\item[CPUnbr]: this is the number of CPU's to be used on that computer; if \verb"CPUnbr" is a vector of integers, the syntax is \verb"[s:d]", with \verb"d>=s" (\verb"d, s" are integer); the first core has number 1 so that, on a quad-core, use \verb"4" to use all cores, but use \verb [3:4] to specify just the last two cores (this is particularly relevant for Windows where it is possible to assign jobs to specific processors); \item[CPUnbr]: this is the number of CPU's to be used on that computer; if \verb"CPUnbr" is a vector of integers, the syntax is \verb"[s:d]", with \verb"d>=s" (\verb"d, s" are integer); the first core has number 1 so that, on a quad-core, use \verb"4" to use all cores, but use \verb"[3:4]" to specify just the last two cores (this is particularly relevant for Windows where it is possible to assign jobs to specific processors);
\item[ComputerName]: Computer name on the network or IP address; use the NETBIOS name under Windows\footnote{In Windows XP it is possible find this name in 'My Computer' $->$ mouse right click $->$ 'Property' $->$ 'Computer Name'.}, or the DNS name under Unix.; \item[ComputerName]: Computer name on the network or IP address; use the NETBIOS name under Windows\footnote{In Windows XP it is possible find this name in 'My Computer' $->$ mouse right click $->$ 'Property' $->$ 'Computer Name'.}, or the DNS name under Unix.;
\item[UserName]: required for remote login; in order to assure proper communications between the master and the slave threads, it must be the same user name actually logged on the `master' machine. On a Windows network, this is in the form \verb"DOMAIN\username", like \verb"DEPT\JohnSmith", i.e. user JohnSmith in windows group DEPT; \item[UserName]: required for remote login; in order to assure proper communications between the master and the slave threads, it must be the same user name actually logged on the `master' machine. On a Windows network, this is in the form \verb"DOMAIN\username", like \verb"DEPT\JohnSmith", i.e. user JohnSmith in windows group DEPT;
\item[Password]: required for remote login (only under Windows): it is the user password on \verb"DOMAIN" and \verb"ComputerName"; \item[Password]: required for remote login (only under Windows): it is the user password on \verb"DOMAIN" and \verb"ComputerName";
......