Commit Graph

124 Commits (7e770f69e791e705ab535126e0157130dc9d40c6)

Author SHA1 Message Date
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
Sébastien Villemot 61485ab809 Fix copyright notices 2013-06-12 17:04:46 +02:00
Sébastien Villemot f1c8ec60c7 Remove various compilation warnings 2013-06-12 16:05:35 +02:00
Ferhat Mihoubi b1da2f2b7d "slowc" option is now available to solve a simple equation in bytecode 2013-06-10 16:46:54 +02:00
Ferhat Mihoubi bdee6d14ec Fix the problems related to the initialization of ilu preconditioner using BiCGStab and also a bug in the BiCGStab in case of block (without bytecode) model options. 2013-06-08 17:16:20 +02:00
ferhat 4e7050baf9 Use ilu with type=ilutp instead of nofill
Contrary to luinc command ilu with nofill option doesn't not allow for partial
pivoting
2013-05-23 11:44:29 +02:00
Stéphane Adjemian (Charybdis) 8eed899f92 Fixed bug. Compilation of bytecode was crashing with USE_OMP. 2013-04-18 11:20:35 +02:00
Sébastien Villemot 3025a14ed9 Adapt for removal of luinc in MATLAB R2013a 2013-03-25 12:05:56 +01:00
Sébastien Villemot 1db892efc4 Fix compilation problems of bytecode with UMFPACK and MATLAB's libut 2013-03-23 13:02:07 +01:00
Ferhat Mihoubi 43a50dd395 - adds the kernel CUDA file for SparseMatrix 2013-03-22 16:36:30 +01:00
Ferhat Mihoubi dfa744fcb3 - adds new files: Evaluate.cc and Evaluate.hh to bytecode 2013-03-22 16:34:50 +01:00
Ferhat Mihoubi 03e487a092 Major update of bytecode:
- Iterative linear solvers using CUDA
 - interpreter.cc decomposed
2013-03-22 15:44:34 +01:00
Sébastien Villemot 31a13db66a Remove duplicate information in M_.blocksMFS 2012-11-16 17:39:03 +01:00
Sébastien Villemot bc1872625b Fix typo in previous commit 2012-11-06 14:44:29 +01:00