diff --git a/.gitignore b/.gitignore index d5aefb1d2..f3cdbd5e4 100644 --- a/.gitignore +++ b/.gitignore @@ -105,34 +105,6 @@ doc/internals/ltxpng /mex/sources/block_trust_region/test/trust_region_test !/mex/sources/block_trust_region/test/Makefile -# Dynare++ -/dynare++/integ/src/quadrature-points.dSYM/ -/dynare++/src/dynare++.dSYM/ -/dynare++/integ/src/quadrature-points -/dynare++/integ/src/quadrature-points.exe -/dynare++/integ/testing/tests -/dynare++/integ/testing/tests.exe -/dynare++/kord/tests -/dynare++/kord/tests.exe -/dynare++/kord/out.txt -/dynare++/sylv/testing/tests -/dynare++/sylv/testing/tests.exe -/dynare++/parser/cc/*_ll.cc -/dynare++/parser/cc/*_tab.cc -/dynare++/parser/cc/*_tab.hh -/dynare++/src/dynare++ -/dynare++/src/dynare++.exe -/dynare++/src/dynglob_ll.cc -/dynare++/src/dynglob_tab.cc -/dynare++/src/dynglob_tab.hh -/dynare++/tl/testing/tests -/dynare++/tl/testing/tests.exe -/dynare++/tests/*.jnl -/dynare++/tests/*.m -/dynare++/tests/*.mat -/dynare++/tests/*.dump -!/dynare++/extern/R/Makefile - # Windows !/windows/Makefile !/windows/deps/Makefile @@ -152,8 +124,6 @@ windows/deps/tarballs/ windows/exe/ windows/7z/ windows/zip/ -dynare++/32-bit/ -dynare++/64-bit/ # MacOS stuff .DS_Store diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f71549001..5172e15ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,16 +36,6 @@ build_binaries: - preprocessor/dynare-preprocessor - mex/octave/ - mex/matlab/ - - dynare++/parser/cc/*_tab.cc - - dynare++/parser/cc/*_tab.hh - - dynare++/parser/cc/*_ll.cc - - dynare++/src/*_tab.cc - - dynare++/src/*_tab.hh - - dynare++/src/*_ll.cc - - dynare++/**/*.o - - dynare++/**/*.a - - dynare++/integ/src/quadrature-points - - dynare++/src/dynare++ expire_in: 3 days build_doc: @@ -58,7 +48,6 @@ build_doc: paths: - doc/manual/build/ - doc/**/*.pdf - - dynare++/doc/*.pdf - preprocessor/doc/*/*.pdf expire_in: 3 days @@ -161,25 +150,6 @@ test_octave: needs: [ "build_binaries" ] when: manual -test_dynare++: - stage: test - script: - - autoreconf -si - - ./configure --disable-matlab --disable-octave - - touch dynare++/parser/cc/*_tab.cc dynare++/parser/cc/*_tab.hh dynare++/parser/cc/*_ll.cc dynare++/src/*_tab.cc dynare++/src/*_tab.hh dynare++/src/*_ll.cc - - touch dynare++/*/*.o dynare++/*/*/*.o - - touch dynare++/*/*.a dynare++/*/*/*.a - - touch dynare++/integ/src/quadrature-points dynare++/src/dynare++ - - make -C dynare++ check - needs: [ "build_binaries" ] - artifacts: - paths: - - dynare++/kord/out.txt - - dynare++/tests/*.jnl - - dynare++/tests/*.m - - dynare++/tests/*.mat - - dynare++/tests/*.dump - # 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. diff --git a/Makefile.am b/Makefile.am index 2e5610ce3..ce8c90a7d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,5 @@ SUBDIRS = preprocessor doc tests mex/sources -if ENABLE_DYNAREPLUSPLUS -SUBDIRS += dynare++ -endif - if ENABLE_MATLAB SUBDIRS += mex/build/matlab endif @@ -15,6 +11,7 @@ ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ matlab \ + dynare++ \ contrib \ NEWS.md \ license.txt \ @@ -65,8 +62,6 @@ install-exec-local: $(MKDIR_P) $(DESTDIR)$(docdir) -cp doc/*.pdf doc/gsa/gsa.pdf doc/parallel/parallel.pdf doc/dseries-and-reporting/dseriesReporting.pdf preprocessor/doc/preprocessor/preprocessor.pdf preprocessor/doc/macroprocessor/macroprocessor.pdf doc/manual/build/latex/dynare-manual.pdf $(DESTDIR)$(docdir) -cp -r doc/manual/build/html $(DESTDIR)$(docdir)/dynare-manual.html - $(MKDIR_P) $(DESTDIR)$(docdir)/dynare++ - -cp dynare++/doc/*.pdf $(DESTDIR)$(docdir)/dynare++ uninstall-local: rm -rf $(DESTDIR)$(pkglibdir) diff --git a/configure.ac b/configure.ac index 767c36c79..bba5730b7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -dnl Copyright © 2009-2022 Dynare Team +dnl Copyright © 2009-2023 Dynare Team dnl dnl This file is part of Dynare. dnl @@ -29,11 +29,6 @@ AC_PROG_CXX AC_CANONICAL_HOST case ${host_os} in - *mingw32*) - # On Windows, we want Dynare++ to be statically linked - AM_LDFLAGS="-static" - AC_SUBST([AM_LDFLAGS]) - ;; *cygwin*) AC_MSG_WARN([You are compiling for the Cygwin target. This means that the preprocessor will]) AC_MSG_WARN([not run from MATLAB unless you add the Cygwin DLL to the path.]) @@ -62,23 +57,10 @@ AX_PROG_LN_S AC_PROG_MKDIR_P -AX_CXX11_THREAD - -AM_PROG_LEX - -AC_CHECK_PROG([YACC], [bison], [bison]) -if test -z "$YACC"; then - unset YACC # AM_MISSING_PROG needs an unset variable: an empty variable won't do - AM_MISSING_PROG([YACC], [bison]) -fi - # Define optional components and their corresponding flags and Automake conditionals AC_ARG_ENABLE([doc], AS_HELP_STRING([--disable-doc], [disable compilation of documentation]), [], [enable_doc=yes]) AM_CONDITIONAL([ENABLE_DOC], [test "$enable_doc" = yes]) -AC_ARG_ENABLE([dynare++], AS_HELP_STRING([--disable-dynare++], [disable compilation of Dynare++]), [], [enable_dynareplusplus=yes]) -AM_CONDITIONAL([ENABLE_DYNAREPLUSPLUS], [test "$enable_dynareplusplus" = yes]) - AC_ARG_ENABLE([matlab], AS_HELP_STRING([--disable-matlab], [disable compilation of MEX files for MATLAB]), [], [enable_matlab=yes]) AM_CONDITIONAL([ENABLE_MATLAB], [test "$enable_matlab" = yes]) @@ -99,25 +81,6 @@ if test "$enable_doc" = yes; then AX_LATEX_CLASS([beamer], [ax_latex_have_beamer], [], [AC_MSG_ERROR([beamer cannot be found. If you want to skip the compilation of the documentation, pass the --disable-doc flag.])]) fi -# Check for BLAS, LAPACK and MATIO, needed by Dynare++ -if test "$enable_dynareplusplus" = yes; then - AC_PROG_F77 - AC_F77_LIBRARY_LDFLAGS - case ${host_os} in - *darwin*) - # * OS X doesn't need to link against the Fortran libraries because - # everything is contained within the vecLib framework. - FLIBS='' - ;; - esac - AX_BLAS - AX_LAPACK - AX_MATIO - if test "$ax_blas_ok" != yes -o "$ax_lapack_ok" != yes -o "$has_matio" != yes; then - AC_MSG_ERROR([Some dependencies of Dynare++ cannot be found. If you want to skip the compilation of Dynare++, pass the --disable-dynare++ flag.]) - fi -fi - # Check for MATLAB if test "$enable_matlab" = yes; then AC_CONFIG_SUBDIRS([mex/build/matlab]) @@ -134,14 +97,6 @@ if test "$enable_octave" = yes; then fi # Construct final output message -if test "$enable_dynareplusplus" = yes; then - BUILD_DYNAREPLUSPLUS="yes" - TESTSUITE_DYNAREPLUSPLUS="yes" -else - BUILD_DYNAREPLUSPLUS="no" - TESTSUITE_DYNAREPLUSPLUS="no" -fi - if test "$enable_doc" = yes; then BUILD_DOC="yes" else @@ -170,9 +125,6 @@ AC_MSG_NOTICE([ Dynare is now configured for building the following components... -Binaries (with "make"): - Dynare++: $BUILD_DYNAREPLUSPLUS - Documentation (with "make html pdf"): Manual and other documents $BUILD_DOC Dynare internal doc: $BUILD_INTERNAL_DOC @@ -180,7 +132,6 @@ Documentation (with "make html pdf"): Testsuites (run with "make check"): Dynare for MATLAB: $TESTSUITE_MATLAB Dynare for Octave: $TESTSUITE_OCTAVE - Dynare++: $TESTSUITE_DYNAREPLUSPLUS ]) AC_CONFIG_FILES([Makefile @@ -194,23 +145,6 @@ AC_CONFIG_FILES([Makefile doc/dseries-and-reporting/Makefile tests/Makefile matlab/dynare_version.m - dynare++/Makefile - dynare++/parser/cc/Makefile - dynare++/sylv/Makefile - dynare++/sylv/cc/Makefile - dynare++/sylv/testing/Makefile - dynare++/tl/Makefile - dynare++/tl/cc/Makefile - dynare++/tl/testing/Makefile - dynare++/doc/Makefile - dynare++/utils/cc/Makefile - dynare++/integ/Makefile - dynare++/integ/cc/Makefile - dynare++/integ/src/Makefile - dynare++/integ/testing/Makefile - dynare++/kord/Makefile - dynare++/src/Makefile - dynare++/tests/Makefile mex/sources/Makefile ]) diff --git a/license.txt b/license.txt index 8b9dc9250..07b5c4831 100644 --- a/license.txt +++ b/license.txt @@ -283,11 +283,6 @@ Copyright: 2004-2011 Ondra Kamenik 2019-2022 Dynare Team License: GPL-3+ -Files: m4/ax_blas.m4 m4/ax_lapack.m4 -Copyright: 2008-2009 Steven G. Johnson - 2019 Geoffrey M. Oxberry -License: GPL-3+ with Autoconf exception - Files: m4/ax_compare_version.m4 Copyright: 2008 Tim Toolan License: FSFAP diff --git a/m4/ax_blas.m4 b/m4/ax_blas.m4 deleted file mode 100644 index 95719050a..000000000 --- a/m4/ax_blas.m4 +++ /dev/null @@ -1,241 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_blas.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro looks for a library that implements the BLAS linear-algebra -# interface (see http://www.netlib.org/blas/). On success, it sets the -# BLAS_LIBS output variable to hold the requisite library linkages. -# -# To link with BLAS, you should link with: -# -# $BLAS_LIBS $LIBS $FLIBS -# -# in that order. FLIBS is the output variable of the -# AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is -# sometimes necessary in order to link with F77 libraries. Users will also -# need to use AC_F77_DUMMY_MAIN (see the autoconf manual), for the same -# reason. -# -# Many libraries are searched for, from ATLAS to CXML to ESSL. The user -# may also use --with-blas= in order to use some specific BLAS -# library . In order to link successfully, however, be aware that you -# will probably need to use the same Fortran compiler (which can be set -# via the F77 env. var.) as was used to compile the BLAS library. -# -# ACTION-IF-FOUND is a list of shell commands to run if a BLAS library is -# found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is -# not found. If ACTION-IF-FOUND is not specified, the default action will -# define HAVE_BLAS. -# -# LICENSE -# -# Copyright (c) 2008 Steven G. Johnson -# Copyright (c) 2019 Geoffrey M. Oxberry -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 17 - -AU_ALIAS([ACX_BLAS], [AX_BLAS]) -AC_DEFUN([AX_BLAS], [ -AC_PREREQ([2.55]) -AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS]) -AC_REQUIRE([AC_CANONICAL_HOST]) -ax_blas_ok=no - -AC_ARG_WITH(blas, - [AS_HELP_STRING([--with-blas=], [use BLAS library ])]) -case $with_blas in - yes | "") ;; - no) ax_blas_ok=disable ;; - -* | */* | *.a | *.so | *.so.* | *.dylib | *.dylib.* | *.o) - BLAS_LIBS="$with_blas" - ;; - *) BLAS_LIBS="-l$with_blas" ;; -esac - -# Get fortran linker names of BLAS functions to check for. -AC_F77_FUNC(sgemm) -AC_F77_FUNC(dgemm) - -ax_blas_save_LIBS="$LIBS" -LIBS="$LIBS $FLIBS" - -# First, check BLAS_LIBS environment variable -if test $ax_blas_ok = no; then -if test "x$BLAS_LIBS" != x; then - save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" - AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS]) - AC_LINK_IFELSE([AC_LANG_CALL([], [$sgemm])], [ax_blas_ok=yes], [BLAS_LIBS=""]) - AC_MSG_RESULT($ax_blas_ok) - LIBS="$save_LIBS" -fi -fi - -# BLAS linked to by default? (happens on some supercomputers) -if test $ax_blas_ok = no; then - save_LIBS="$LIBS"; LIBS="$LIBS" - AC_MSG_CHECKING([if $sgemm is being linked in already]) - AC_LINK_IFELSE([AC_LANG_CALL([], [$sgemm])], [ax_blas_ok=yes]) - AC_MSG_RESULT($ax_blas_ok) - LIBS="$save_LIBS" -fi - -# BLAS in OpenBLAS library? (http://xianyi.github.com/OpenBLAS/) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(openblas, $sgemm, [ax_blas_ok=yes - BLAS_LIBS="-lopenblas"]) -fi - -# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(atlas, ATL_xerbla, - [AC_CHECK_LIB(f77blas, $sgemm, - [AC_CHECK_LIB(cblas, cblas_dgemm, - [ax_blas_ok=yes - BLAS_LIBS="-lcblas -lf77blas -latlas"], - [], [-lf77blas -latlas])], - [], [-latlas])]) -fi - -# BLAS in PhiPACK libraries? (requires generic BLAS lib, too) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(blas, $sgemm, - [AC_CHECK_LIB(dgemm, $dgemm, - [AC_CHECK_LIB(sgemm, $sgemm, - [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"], - [], [-lblas])], - [], [-lblas])]) -fi - -# BLAS in Intel MKL library? -if test $ax_blas_ok = no; then - # MKL for gfortran - if test x"$ac_cv_fc_compiler_gnu" = xyes; then - # 64 bit - if test $host_cpu = x86_64; then - AC_CHECK_LIB(mkl_gf_lp64, $sgemm, - [ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread"],, - [-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread]) - # 32 bit - elif test $host_cpu = i686; then - AC_CHECK_LIB(mkl_gf, $sgemm, - [ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread"],, - [-lmkl_gf -lmkl_sequential -lmkl_core -lpthread]) - fi - # MKL for other compilers (Intel, PGI, ...?) - else - # 64-bit - if test $host_cpu = x86_64; then - AC_CHECK_LIB(mkl_intel_lp64, $sgemm, - [ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread"],, - [-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread]) - # 32-bit - elif test $host_cpu = i686; then - AC_CHECK_LIB(mkl_intel, $sgemm, - [ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"],, - [-lmkl_intel -lmkl_sequential -lmkl_core -lpthread]) - fi - fi -fi -# Old versions of MKL -if test $ax_blas_ok = no; then - AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"],,[-lguide -lpthread]) -fi - -# BLAS in Apple vecLib library? -if test $ax_blas_ok = no; then - save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" - AC_MSG_CHECKING([for $sgemm in -framework vecLib]) - AC_LINK_IFELSE([AC_LANG_CALL([], [$sgemm])], [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"]) - AC_MSG_RESULT($ax_blas_ok) - LIBS="$save_LIBS" -fi - -# BLAS in Alpha CXML library? -if test $ax_blas_ok = no; then - AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"]) -fi - -# BLAS in Alpha DXML library? (now called CXML, see above) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"]) -fi - -# BLAS in Sun Performance library? -if test $ax_blas_ok = no; then - if test "x$GCC" != xyes; then # only works with Sun CC - AC_CHECK_LIB(sunmath, acosp, - [AC_CHECK_LIB(sunperf, $sgemm, - [BLAS_LIBS="-xlic_lib=sunperf -lsunmath" - ax_blas_ok=yes],[],[-lsunmath])]) - fi -fi - -# BLAS in SCSL library? (SGI/Cray Scientific Library) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"]) -fi - -# BLAS in SGIMATH library? -if test $ax_blas_ok = no; then - AC_CHECK_LIB(complib.sgimath, $sgemm, - [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"]) -fi - -# BLAS in IBM ESSL library? (requires generic BLAS lib, too) -if test $ax_blas_ok = no; then - AC_CHECK_LIB(blas, $sgemm, - [AC_CHECK_LIB(essl, $sgemm, - [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"], - [], [-lblas $FLIBS])]) -fi - -# Generic BLAS library? -if test $ax_blas_ok = no; then - AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"]) -fi - -AC_SUBST(BLAS_LIBS) - -LIBS="$ax_blas_save_LIBS" - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_blas_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]) - : -else - ax_blas_ok=no - $2 -fi -])dnl AX_BLAS diff --git a/m4/ax_lapack.m4 b/m4/ax_lapack.m4 deleted file mode 100644 index abaff9d17..000000000 --- a/m4/ax_lapack.m4 +++ /dev/null @@ -1,134 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_lapack.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_LAPACK([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro looks for a library that implements the LAPACK linear-algebra -# interface (see http://www.netlib.org/lapack/). On success, it sets the -# LAPACK_LIBS output variable to hold the requisite library linkages. -# -# To link with LAPACK, you should link with: -# -# $LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS -# -# in that order. BLAS_LIBS is the output variable of the AX_BLAS macro, -# called automatically. FLIBS is the output variable of the -# AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is -# sometimes necessary in order to link with F77 libraries. Users will also -# need to use AC_F77_DUMMY_MAIN (see the autoconf manual), for the same -# reason. -# -# The user may also use --with-lapack= in order to use some specific -# LAPACK library . In order to link successfully, however, be aware -# that you will probably need to use the same Fortran compiler (which can -# be set via the F77 env. var.) as was used to compile the LAPACK and BLAS -# libraries. -# -# ACTION-IF-FOUND is a list of shell commands to run if a LAPACK library -# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it -# is not found. If ACTION-IF-FOUND is not specified, the default action -# will define HAVE_LAPACK. -# -# LICENSE -# -# Copyright (c) 2009 Steven G. Johnson -# Copyright (c) 2019 Geoffrey M. Oxberry -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 10 - -AU_ALIAS([ACX_LAPACK], [AX_LAPACK]) -AC_DEFUN([AX_LAPACK], [ -AC_REQUIRE([AX_BLAS]) -ax_lapack_ok=no - -AC_ARG_WITH(lapack, - [AS_HELP_STRING([--with-lapack=], [use LAPACK library ])]) -case $with_lapack in - yes | "") ;; - no) ax_lapack_ok=disable ;; - -* | */* | *.a | *.so | *.so.* | *.dylib | *.dylib.* | *.o) - LAPACK_LIBS="$with_lapack" - ;; - *) LAPACK_LIBS="-l$with_lapack" ;; -esac - -# Get fortran linker name of LAPACK function to check for. -AC_F77_FUNC(cheev) - -# We cannot use LAPACK if BLAS is not found -if test "x$ax_blas_ok" != xyes; then - ax_lapack_ok=noblas - LAPACK_LIBS="" -fi - -# First, check LAPACK_LIBS environment variable -if test "x$LAPACK_LIBS" != x; then - save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" - AC_MSG_CHECKING([for $cheev in $LAPACK_LIBS]) - AC_LINK_IFELSE([AC_LANG_CALL([], [$cheev])], [ax_lapack_ok=yes], [LAPACK_LIBS=""]) - AC_MSG_RESULT($ax_lapack_ok) - LIBS="$save_LIBS" - if test $ax_lapack_ok = no; then - LAPACK_LIBS="" - fi -fi - -# LAPACK linked to by default? (is sometimes included in BLAS lib) -if test $ax_lapack_ok = no; then - save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" - AC_CHECK_FUNC($cheev, [ax_lapack_ok=yes]) - LIBS="$save_LIBS" -fi - -# Generic LAPACK library? -for lapack in lapack lapack_rs6k; do - if test $ax_lapack_ok = no; then - save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" - AC_CHECK_LIB($lapack, $cheev, - [ax_lapack_ok=yes; LAPACK_LIBS="-l$lapack"], [], [$FLIBS]) - LIBS="$save_LIBS" - fi -done - -AC_SUBST(LAPACK_LIBS) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_lapack_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_LAPACK,1,[Define if you have LAPACK library.]),[$1]) - : -else - ax_lapack_ok=no - $2 -fi -])dnl AX_LAPACK diff --git a/macOS/build.sh b/macOS/build.sh index 2f149c968..6725043ea 100755 --- a/macOS/build.sh +++ b/macOS/build.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Copyright © 2019-2022 Dynare Team +# Copyright © 2019-2023 Dynare Team # # This file is part of Dynare. # @@ -76,7 +76,7 @@ QUADMATH_DIR=$(mktemp -d) ln -s /usr/local/opt/gcc/lib/gcc/$GCC_VERSION/libquadmath.a $QUADMATH_DIR ## -## Compile Dynare doc, dynare++, preprocessor, mex for MATLAB < 2018a +## Compile Dynare doc, preprocessor, mex for MATLAB < 2018a ## ## NB: In Homebrew, -static-libgfortran is implied by -static-libgcc (see “gfortran -dumpspecs”) ## NB2: We use the hack for libquadmath in LDFLAGS @@ -113,8 +113,7 @@ mkdir -p \ "$PKGFILES"/preprocessor \ "$PKGFILES"/mex/matlab/maci64-8.3-9.3 \ "$PKGFILES"/mex/matlab/maci64-9.4-9.13 \ - "$PKGFILES"/doc/dynare++ \ - "$PKGFILES"/dynare++ \ + "$PKGFILES"/doc \ "$PKGFILES"/scripts \ "$PKGFILES"/contrib/ms-sbvar/TZcode @@ -150,11 +149,6 @@ cp "$ROOTDIR"/preprocessor/doc/macroprocessor/macroprocessor.pdf "$PKGFILES" cp "$ROOTDIR"/doc/manual/build/latex/dynare-manual.pdf "$PKGFILES"/doc cp -r "$ROOTDIR"/doc/manual/build/html "$PKGFILES"/doc/dynare-manual.html -cp "$ROOTDIR"/dynare++/doc/*.pdf "$PKGFILES"/doc/dynare++ - -cp "$ROOTDIR"/dynare++/src/dynare++ "$PKGFILES"/dynare++ -cp "$ROOTDIR"/dynare++/dynare_simul/dynare_simul.m "$PKGFILES"/dynare++ - mkdir -p "$PKGFILES"/matlab/modules/dseries/externals/x13/macOS/64 cp -p "$ROOTDIR"/macOS/deps/lib64/x13as/x13as "$PKGFILES"/matlab/modules/dseries/externals/x13/macOS/64 diff --git a/tests/.gitignore b/tests/.gitignore index 0ba4080d9..0394d8974 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -84,7 +84,6 @@ wsOct !/identification/as2007/G_QT.mat !/identification/kim/kim2_steadystate.m !/internals/tests.m -!/k_order_perturbation/run_fs2000kplusplus.m !/kalman/likelihood/compare_kalman_routines.m !/kalman/likelihood/simul_state_space_model.m !/kalman/likelihood/test1.m diff --git a/tests/Makefile.am b/tests/Makefile.am index fef875739..d35890de8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -204,7 +204,6 @@ MODFILES = \ k_order_perturbation/fs2000k_1_m.mod \ k_order_perturbation/fs2000k3_m.mod \ k_order_perturbation/fs2000k3_p.mod \ - k_order_perturbation/fs2000k4.mod \ k_order_perturbation/burnside_k_order.mod \ k_order_perturbation/fs2000_k_order_simul.mod \ partial_information/PItest3aHc0PCLsimModPiYrVarobsAll.mod \ @@ -729,15 +728,10 @@ estimation/MH_recover/fs2000_recover_tarb.o.trs: estimation/MH_recover/fs2000_re k_order_perturbation/fs2000k_1_m.m.trs: k_order_perturbation/fs2000k2_m.m.trs k_order_perturbation/fs2000k2_m.m.trs k_order_perturbation/fs2000k3_m.m.trs k_order_perturbation/fs2000k2_use_dll.m.trs k_order_perturbation/fs2000k3_use_dll.m.trs: k_order_perturbation/fs2000k2a.m.trs k_order_perturbation/fs2000k_1_use_dll.m.trs: k_order_perturbation/fs2000k2_use_dll.m.trs -k_order_perturbation/fs2000k4.m.trs: k_order_perturbation/fs2000k++.mat k_order_perturbation/fs2000k_1_m.o.trs: k_order_perturbation/fs2000k2_m.o.trs k_order_perturbation/fs2000k2_m.o.trs k_order_perturbation/fs2000k3_m.o.trs k_order_perturbation/fs2000k2_use_dll.o.trs k_order_perturbation/fs2000k3_use_dll.o.trs: k_order_perturbation/fs2000k2a.o.trs k_order_perturbation/fs2000k_1_use_dll.o.trs: k_order_perturbation/fs2000k2_use_dll.o.trs -k_order_perturbation/fs2000k4.o.trs: k_order_perturbation/fs2000k++.mat - -k_order_perturbation/fs2000k++.mat: k_order_perturbation/fs2000k++.mod ../dynare++/src/dynare++$(EXEEXT) - cd k_order_perturbation && ../../dynare++/src/dynare++ --order 3 --no-centralize fs2000k++.mod kalman_filter_smoother/algo1.m.trs kalman_filter_smoother/algo3.m.trs kalman_filter_smoother/algo4a.m.trs kalman_filter_smoother/algo4b.m.trs kalman_filter_smoother/algoH1.m.trs kalman_filter_smoother/algoH3.m.trs kalman_filter_smoother/fs2000.m.trs kalman_filter_smoother/fs2000_1.m.trs kalman_filter_smoother/fs2000_2.m.trs kalman_filter_smoother/fs2000a.m.trs: kalman_filter_smoother/gen_data.m.trs kalman_filter_smoother/algo1.o.trs kalman_filter_smoother/algo3.o.trs kalman_filter_smoother/algo4a.o.trs kalman_filter_smoother/algo4b.o.trs kalman_filter_smoother/algoH1.o.trs kalman_filter_smoother/algoH3.o.trs kalman_filter_smoother/fs2000.o.trs kalman_filter_smoother/fs2000_1.o.trs kalman_filter_smoother/fs2000_2.o.trs kalman_filter_smoother/fs2000a.o.trs: kalman_filter_smoother/gen_data.o.trs @@ -1428,7 +1422,6 @@ EXTRA_DIST = \ optimizers/fs2000.common.inc \ estimation/MH_recover/fs2000.common.inc \ prior_posterior_function/posterior_function_demo.m \ - k_order_perturbation/fs2000k++.mod \ lmmcp/sw-common-header.inc \ lmmcp/sw-common-footer.inc \ estimation/tune_mh_jscale/fs2000.inc \ @@ -1659,10 +1652,6 @@ clean-local: rm -f loglinear/results_exp_histval.mat loglinear/results_exp.mat - rm -f k_order_perturbation/fs2000k++.mat k_order_perturbation/fs2000k++.dump \ - k_order_perturbation/fs2000k++.jnl k_order_perturbation/fs2000k++_f.m \ - k_order_perturbation/fs2000k++_ff.m - rm -rf ecb/cherrypick/simulation-files1 ecb/cherrypick/simulation-files2 toto.mod rm -f discretionary_policy/dennis_simul.m diff --git a/tests/k_order_perturbation/fs2000k++.mod b/tests/k_order_perturbation/fs2000k++.mod deleted file mode 100644 index 9a1db3285..000000000 --- a/tests/k_order_perturbation/fs2000k++.mod +++ /dev/null @@ -1,55 +0,0 @@ -/* Counterfactual Dynare++ mod file, used by fs2000k4.mod */ - -var m m_1 P P_1 c e W R k d n l gy_obs gp_obs y dA; -varexo e_a e_m; - -parameters alp bet gam mst rho psi del; - -alp = 0.33; -bet = 0.99; -gam = 0.003; -mst = 1.011; -rho = 0.7; -psi = 0.787; -del = 0.02; - -model; -dA = exp(gam+e_a); -log(m) = (1-rho)*log(mst) + rho*log(m_1(-1))+e_m; --P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0; -W = l/n; --(psi/(1-psi))*(c*P/(1-n))+l/n = 0; -R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W; -1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0; -c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1); -P*c = m; -m-1+d = l; -e = exp(e_a); -y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a)); -gy_obs = dA*y/y(-1); -gp_obs = (P/P_1(-1))*m_1(-1)/dA; -m_1 = m; -P_1 = P; -end; - -initval; -m = mst; -m_1=mst; -P = 2.25; -P_1 = 2.25; -c = 0.45; -e = 1; -W = 4; -R = 1.02; -k = 6; -d = 0.85; -n = 0.19; -l = 0.86; -y = 0.6; -gy_obs = exp(gam); -gp_obs = exp(-gam); -dA = exp(gam); -end; - -vcov = [0.014, 0;0, 0.005]; - diff --git a/tests/k_order_perturbation/fs2000k4.mod b/tests/k_order_perturbation/fs2000k4.mod deleted file mode 100644 index c9f630d9d..000000000 --- a/tests/k_order_perturbation/fs2000k4.mod +++ /dev/null @@ -1,86 +0,0 @@ -/* Check that Dynare++ and Dynare with k_order_solver give the same result - (see fs2000k++.mod for the Dynare++ mod file) */ -var m m_1 P P_1 c e W R k d n l gy_obs gp_obs y dA; -varexo e_a e_m; - -parameters alp bet gam mst rho psi del; - -alp = 0.33; -bet = 0.99; -gam = 0.003; -mst = 1.011; -rho = 0.7; -psi = 0.787; -del = 0.02; - -gst = 1/exp(gam); -khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1)); -xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1); -nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp ); - -model(use_dll); -dA = exp(gam+e_a); -log(m) = (1-rho)*log(mst) + rho*log(m_1(-1))+e_m; --P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0; -W = l/n; --(psi/(1-psi))*(c*P/(1-n))+l/n = 0; -R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W; -1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0; -c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1); -P*c = m; -m-1+d = l; -e = exp(e_a); -y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a)); -gy_obs = dA*y/y(-1); -gp_obs = (P/P_1(-1))*m_1(-1)/dA; -m_1 = m; -P_1 = P; -end; - -initval; -dA = exp(gam); -m = mst; -m_1=mst; -n = xist/(nust+xist); -P = xist + nust; -k = khst*n; -l = psi*mst*n/( (1-psi)*(1-n) ); -c = mst/P; -d = l - mst + 1; -y = k^alp*n^(1-alp)*gst^alp; -R = mst/bet; -W = l/n; -e = 1; -gp_obs = m/dA; -gy_obs = dA; -P_1 = P; -m_1 = m; -end; - -shocks; -var e_a; stderr 0.014; -var e_m; stderr 0.005; -end; - -steady; - -stoch_simul(order=3,irf=100); - -if ~exist('fs2000k++.mat','file'); - error('fs2000k++ must be run first'); -end; - -oo1 = load('fs2000k++'); - -kk=[]; -for i=1:M_.orig_endo_nbr; - kk(i) = strmatch(M_.endo_names{oo_.dr.order_var(i)},oo1.dyn_vars,'exact'); -end -kk(17) = 17; - -if max(max(abs(oo_.dr.g_3-oo1.dyn_g_3(kk,:)))) < 1e-12; - disp('OK'); -else; - error('comparing 3rd order with dynare++ fails'); -end; - diff --git a/windows/build.sh b/windows/build.sh index 1dd8f76b8..a59257de8 100755 --- a/windows/build.sh +++ b/windows/build.sh @@ -5,7 +5,7 @@ # The binaries are cross compiled for Windows (64-bit), Octave and MATLAB # (all supported versions). -# Copyright © 2017-2022 Dynare Team +# Copyright © 2017-2023 Dynare Team # # This file is part of Dynare. # @@ -60,12 +60,9 @@ cd .. # Autoreconf if needed [[ -f configure ]] || autoreconf -si -## Compile preprocessor (64-bit), Dynare++ (64-bit) and documentation +## Compile preprocessor (64-bit) and documentation ./configure --host=x86_64-w64-mingw32 \ --with-boost="$LIB64_MSYS2" \ - --with-blas="$LIB64_MSYS2"/lib/libopenblas.a \ - --with-lapack="$LIB64_MSYS2"/lib/libopenblas.a \ - --with-matio="$LIB64_MSYS2" \ --disable-octave \ --disable-matlab \ PACKAGE_VERSION="$VERSION" \ @@ -78,7 +75,6 @@ fi make -j"$NTHREADS" x86_64-w64-mingw32-strip preprocessor/src/dynare-preprocessor.exe x86_64-w64-mingw32-strip matlab/preprocessor64/dynare_m.exe -x86_64-w64-mingw32-strip dynare++/src/dynare++.exe ## Define functions for building MEX files @@ -204,9 +200,6 @@ cp -p windows/deps/lib64/x13as/x13as.exe "$ZIPDIR"/matlab/modules/dseries/extern cp -pr examples "$ZIPDIR" mkdir -p "$ZIPDIR"/scripts cp -p scripts/dynare.el "$ZIPDIR"/scripts -mkdir "$ZIPDIR"/dynare++ -cp -pr dynare++/src/dynare++.exe dynare++/dynare_simul/dynare_simul.m "$ZIPDIR"/dynare++ -mkdir -p "$ZIPDIR"/doc/dynare++ mkdir -p "$ZIPDIR"/doc/dynare-manual.html cp -pr doc/manual/build/html/* "$ZIPDIR"/doc/dynare-manual.html cp -p doc/*.pdf "$ZIPDIR"/doc @@ -215,7 +208,6 @@ cp -p preprocessor/doc/macroprocessor/macroprocessor.pdf "$ZIPDIR"/doc cp -p doc/parallel/parallel.pdf "$ZIPDIR"/doc cp -p preprocessor/doc/preprocessor/preprocessor.pdf "$ZIPDIR"/doc cp -p doc/gsa/gsa.pdf "$ZIPDIR"/doc -cp -p dynare++/doc/*.pdf "$ZIPDIR"/doc/dynare++ cd "$TMP_DIRECTORY" diff --git a/windows/deps/Makefile b/windows/deps/Makefile index 19ba0bbc7..83a3474a4 100644 --- a/windows/deps/Makefile +++ b/windows/deps/Makefile @@ -1,4 +1,4 @@ -# Copyright © 2017-2020 Dynare Team +# Copyright © 2017-2023 Dynare Team # # This file is part of Dynare. # @@ -170,7 +170,7 @@ msys2: lib64-msys2 mingw64 MSYS2_EXCLUDES := --exclude .MTREE --exclude .BUILDINFO --exclude .PKGINFO -lib64-msys2: tarballs/mingw-w64-x86_64-boost-$(MINGW64_BOOST_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-gsl-$(MINGW64_GSL_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-openblas-$(MINGW64_OPENBLAS_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-matio-$(MINGW64_MATIO_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-zlib-$(MINGW64_ZLIB_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-hdf5-$(MINGW64_HDF5_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-libaec-$(MINGW64_LIBAEC_VERSION)-any.pkg.tar.zst +lib64-msys2: tarballs/mingw-w64-x86_64-boost-$(MINGW64_BOOST_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-gsl-$(MINGW64_GSL_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-matio-$(MINGW64_MATIO_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-zlib-$(MINGW64_ZLIB_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-hdf5-$(MINGW64_HDF5_VERSION)-any.pkg.tar.zst tarballs/mingw-w64-x86_64-libaec-$(MINGW64_LIBAEC_VERSION)-any.pkg.tar.zst rm -rf $@ mkdir $@ for f in $^; do tar xf $$f --directory $@ --strip-components 1 $(MSYS2_EXCLUDES); done diff --git a/windows/deps/versions.mk b/windows/deps/versions.mk index 7c82b8574..5ebaf2be0 100644 --- a/windows/deps/versions.mk +++ b/windows/deps/versions.mk @@ -23,9 +23,6 @@ MINGW64_BOOST_VERSION = 1.80.0-1 # pacman -Ss mingw-w64-x86_64-gsl MINGW64_GSL_VERSION = 2.7.1-1 -# pacman -Ss mingw-w64-x86_64-openblas -MINGW64_OPENBLAS_VERSION = 0.3.21-3 - # pacman -Ss mingw-w64-x86_64-matio MINGW64_MATIO_VERSION = 1.5.23-1 diff --git a/windows/dynare.nsi b/windows/dynare.nsi index 77b94e716..8e8a14bd9 100644 --- a/windows/dynare.nsi +++ b/windows/dynare.nsi @@ -130,19 +130,6 @@ Section "Documentation and examples" SectionEnd -Section /o "Dynare++ (standalone executable)" - - SetOutPath $INSTDIR\dynare++ - File ..\dynare++\src\dynare++.exe ..\dynare++\dynare_simul\dynare_simul.m - - SetOutPath $INSTDIR\doc\dynare++ - File ..\dynare++\doc\*.pdf - - SetOutPath $INSTDIR\examples\dynare++ - File ..\examples\dynare++\example1.mod ..\examples\dynare++\README.txt -SectionEnd - - Section "Uninstall" !insertmacro DETERMINE_CONTEXT @@ -156,7 +143,6 @@ Section "Uninstall" Rmdir /r $INSTDIR\preprocessor Rmdir /r $INSTDIR\contrib Rmdir /r $INSTDIR\mex - Rmdir /r $INSTDIR\dynare++ Rmdir /r $INSTDIR\doc Rmdir /r $INSTDIR\examples Rmdir /r $INSTDIR\scripts