Commit Graph

137 Commits (a2186b06b866354fd514bd4800d0a81df9169d59)

Author SHA1 Message Date
Sébastien Villemot a2186b06b8
Bytecode: port to C++11 syntax for default constructors
Performed using modernize-use-equals-default from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-default.html
2021-02-01 14:50:42 +01:00
Sébastien Villemot 1aa0286f6d
Bytecode: port to C++11 emplace_back() method on containers
Performed using modernize-use-emplace from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-emplace.html
2021-02-01 14:50:42 +01:00
Sébastien Villemot 93c6cb1c3c
Bytecode: use bool literals
Performed using modernize-use-bool-literals from clang-tidy

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2021-02-01 14:50:42 +01:00
Sébastien Villemot 1a4340cb80
Bytecode: port to C++11 auto keyword
Performed using modernize-use-auto from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html
2021-02-01 14:50:39 +01:00
Sébastien Villemot 63e922f637
Bytecode: port some constructors to pass-by-value using C++11 move semantics
Performed using modernize-pass-by-value from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-pass-by-value.html
2021-02-01 14:50:10 +01:00
Sébastien Villemot 7840d1396e
Bytecode: port to C++11 range-based for loops
Performed using modernize-loop-convert from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-loop-convert.html
2021-02-01 14:50:07 +01:00
Sébastien Villemot 2f587cf5c3
Bytecode: use C++ headers
Performed using modernize-deprecated-headers from clang-tidy.

https://clang.llvm.org/extra/clang-tidy/checks/modernize-deprecated-headers.html
2021-02-01 12:28:50 +01:00
Sébastien Villemot c050325e3d
Bytecode: C++17 modernization / convert the remaining enums to enum classes 2021-02-01 12:10:47 +01:00
Sébastien Villemot 73253a0620
Bytecode + Block decomposition: fix crash with purely forward variables
After simulating a block containing purely forward variables (thus of type
“evaluate backward”), the it_ variable of the evaluator would be left in an
inconsistent state (typically 0, which means that taking the value of a lagged
variable would lead to an invalid read).

By the way, fix a symmetric problem for backward blocks (which could
potentially create a invalid read for purely backward models).

Ref. #1727
2020-09-22 16:45:44 +02:00
Sébastien Villemot 8803bc1479
Bytecode: minor improvement to debugging information 2020-09-22 16:42:33 +02:00
Sébastien Villemot 31a9a5e9ab
Bytecode MEX: various fixes to debug mode 2020-05-13 12:22:20 +02:00
Sébastien Villemot f4f296edd6
Preprocessor update
— various refactoring and bugfixes in block decomposition
— small bugfix for PAC models
2020-05-06 18:17:25 +02:00
Sébastien Villemot fbfff18378
Preprocessor: various refactorings of block decomposition
Adapt bytecode MEX accordingly.
2020-03-20 18:51:37 +01:00
Sébastien Villemot 7e770f69e7
Remove workaround for errors in MEX files
Because at some point throwing exceptions from MEX files (with mexErrMsgTxt())
was not working under Windows 64-bit, we had designed a workaround to avoid
using exceptions.

Most MEX files were returning an error code as their first (or sometimes last)
argument, and that code would have to be checked from the MATLAB code.

Since this workaround is no longer needed, this commit removes it. As a
consequence, the interface of many MEX files is modified.

For some background, see https://www.dynare.org/pipermail/dev/2010-September/000895.html
2020-01-10 18:33:11 +01:00
Sébastien Villemot b901b7af86
Global reindentation of MEX sources 2019-12-20 16:30:24 +01:00
Sébastien Villemot 9e222734a8
Bytecode: fix logic in routine that substracts two sparse matrices
The logic of the dynSparseMatrix::Sparse_substract_SA_SB() routine was
incorrect.

In some cases, it would read past the last nonzero elements of the A matrix,
and consequently write past the number of allocated nonzero elements of the C
matrix.

This would lead to crashes and, probably, to wrong results under certain
circumstances.

Closes: #1652
2019-11-27 16:57:47 +01:00
Sébastien Villemot 7c39b12b7b
Always compile MEX files with OpenMP (when they can take advantage of it)
As a consequence, remove the --enable-openmp option of the configure script.
2019-06-25 17:26:17 +02:00
Sébastien Villemot f5e2bfc30a
Ask GCC to warn about C-style casts (-Wold-style-cast)
Adapt the code accordingly.
2019-04-23 13:03:20 +02:00
Sébastien Villemot 57848930c6
Use Unicode copyright symbol (in UTF-8 encoding)
Do not use it in MATLAB source files, since unfortunately the MATLAB editor
does not support UTF-8.
2019-04-16 11:42:16 +02:00
Sébastien Villemot ffb36e5713 Remove obsolete kludges for MinGW 2018-10-02 17:10:36 +02:00
Sébastien Villemot d03cc56587 solve_algo=7 and stack_solve_algo=2 are now allowed under Octave
The gmres() function has been implemented (actually since Octave 3.4.1!).
2018-08-02 15:20:39 +02:00
Sébastien Villemot 932e5f946c Update preprocessor submodule
Adapt bytecode DLL as a consequence.
2018-07-18 17:52:44 +02:00
Sébastien Villemot b2c554623f Various fixes related to the new layout of generated files 2018-06-28 18:14:40 +02:00
Sébastien Villemot a1b8bd39b2 Move the location of various generated files on the filesystem
- M and MEX files are now under +${MODELNAME}/
- bytecode, C source and JSON now under ${MODELNAME}/model/
2018-06-27 17:03:39 +02:00
Sébastien Villemot 1ff5c3f571 Fix various typos (thanks lintian). 2017-06-28 15:06:54 +02:00
Ferhat Mihoubi 119e5b4dfa Corrects bugs in bytecode related to the use of finite instead of isfinite and to mxMalloc tests 2017-06-05 18:51:43 +02:00
Stéphane Adjemian (Charybdis) 1bf81c9f5a Fixed copyright notices. 2017-05-18 18:36:38 +02:00
Stéphane Adjemian (Charybdis) b4448937cc Fixed indentation of c/h/cc/hh files. 2017-05-16 16:30:27 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Ferhat Mihoubi 981e31c8c3 Fix issues in bytecode with option extended_path related to the size of endo_simul and exo_simul
(cherry picked from commit ab7acc49e30fbcb292d63d58281581a308716b4c)
2017-05-08 18:40:18 +02:00
Ferhat Mihoubi e248d8bf59 Fix memory and periods issues in bytecode
(cherry picked from commit fa5dd681abcb3243a5ee9be1f71fdfc51bced1cd)
2017-05-08 18:39:44 +02:00
Ferhat Mihoubi 857fc3c4f4 Corrects several bugs related to bytecode:
- Memory allocation is checked
- The amount of memory allocated for conditional forecast is corrected
2017-04-05 11:48:40 +02:00
Stéphane Adjemian (Charybdis) 23642b3b6b Defines M_PI, M_SQRT2 and finite() in bytecode...
... Which are not in standard C/C++ (otherwise compilation of the mex for Octave
with -std=c++11 fails).
2016-12-01 13:32:54 +01:00
Houtan Bastani 8b17af05d5 bytecode: work around for isnan and isinf bug in C++ standard, glibc <= 2.23.
Fixed by https://sourceware.org/bugzilla/show_bug.cgi?id=19439
2016-10-11 16:01:27 +02:00
ferhat ac2e5cfd52 - In extended path
- fix an error with results print out
  - fix an error withe exogenous initialization
2015-11-19 17:03:05 +01:00
ferhat 77f5d572de Fix the output arguments in case of bytecode failure 2015-11-06 15:06:17 +01:00
Stéphane Adjemian (Charybdis) 2ec1579cd0 Fixed warnings in bytecode compilation.
Removed unused variables.
2015-10-19 18:01:38 +02:00
ferhat 7c5272d852 Allows to compute the extended path and the conditional forecasts with bytecode 2015-09-22 15:39:49 +02:00
Houtan Bastani 1b869b26a7 fix dates for changes in 86c3c0fb1b and a40323d2fb 2015-01-08 18:39:04 +01:00
ferhat 86c3c0fb1b Checks that fields endo_names, exo_names and param_names exist 2015-01-06 10:30:52 +01:00
ferhat 24b2993f50 Solves issues in deterministic simulation:
- replaces maximum_endo_(lead|lag) by maximum_(lead|lag) to determine the maximum number of lead and lag in deterministic simulation
- allows to use bytecode in solve_perfect_foresight_model.m
- Adds model information in bytecode
2014-12-17 09:37:43 +01:00
Sébastien Villemot 66d48f5917 Compatibility fixes for Octave 3.8.
- no longer use OCTAVE_QUIT in MEX files; this seems now only possible in
  oct-files. (Ref #304)
- do not build linsolve.oct on Octave >= 3.8, it is available natively.
- do not add strjoin.m to the patch on Octave >= 3.8, it is available natively.
- default_save_options has been renamed save_default_options.
2014-01-03 11:05:39 +01:00
Houtan Bastani 3c75923e2d revert £ change as 156 is an extended ascii code 2013-11-05 19:06:20 +01:00
Houtan Bastani 0e4bb3f8e9 fix typo 2013-11-05 18:06:24 +01:00
Houtan Bastani 5352fb4d16 preprocessor and matlab mex fixes for clang compilation 2013-11-05 18:04:57 +01:00
ferhat f4cee9d5e5 Corrects a bug in the way to test for the presence of the global variables 2013-10-28 14:26:42 +01:00
Stéphane Adjemian (Charybdis) 399b6d2615 Specialized maxit in bytecode mex (dynamic simulation vs steady state). 2013-10-09 16:55:46 +02:00
Stéphane Adjemian (Charybdis) d8052342f3 Fixed bug introduced in cc0d9b42f0 (bytecode.cc).
Problem when reading nested structures.
2013-10-09 16:26:29 +02:00
Stéphane Adjemian (Charybdis) cc0d9b42f0 Changed name of options_.maxit as options_.simul.maxit. 2013-10-09 13:06:06 +02:00
Stéphane Adjemian (Charybdis) 5a4399e9b3 Removed openmp pragmas in bytecode.
This commit fixes #420, so that bytecode doesn't crash when Dynare is compiled with --enable-openmp flag.
2013-07-11 15:12:41 +02:00