Commit Graph

21 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Sébastien Villemot 4f6d8a198a
k_order_perturbation MEX: convert complex elements of residuals or derivatives matrices to NaNs 2022-03-18 16:45:33 +01:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Sébastien Villemot 144bdf34ba
k-order MEX: fix crash on Octave when higher-order derivatives have numerical zero
In Octave, when some values given to the sparse() function are numerically
zero, then the nzmax of the generated sparse matrix is shrinked accordingly;
while under MATLAB, the nzmax is the length of the vector of values, zeros
included.

The check at the top of
DynamicModelMFile::unpackSparseMatrixAndCopyIntoTwoDMatData() would then fail
under Octave if some higher-derivatives had an element which is symbolically
non-zero but numerically zero.

We therefore relax the check, and accordingly adapt the code that handles
numerical zeros.

This bug was uncovered by tests/pruning/AnSchorfheide_pruned_state_space.mod,
which was failing under Octave.
2020-02-18 12:18:39 +01: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 a101457cf0
k-order DLL: fix wrong assertion in MATLAB mode
Bug introduced in 4c6e911d6 (only apparent under Octave, since under MATLAB
assertions are skipped).

Ref #217
2019-04-15 17:34:01 +02:00
Sébastien Villemot 4c6e911d69
k-order DLL: in MATLAB mode, get model derivatives from preprocessor at an arbitrary order
We no longer use the old ‘modfile.dynamic’ compatibility layer. We directly
call the ‘modfile.dynamic_g*’ functions.

Ref #217
2019-04-12 18:26:31 +02:00
Sébastien Villemot c31ba8bebf
k-order DLL: in ‘use_dll’ mode, compute # of temp. terms. using M_.dynamic_tmp_nbr
The preprocessor no longer exports the ‘ntt’ symbol in the MEX.

Ref #217
2019-04-12 18:26:31 +02:00
Sébastien Villemot 2dc988b69d
k-order DLL: make model derivatives storage ready for an arbitrary order 2019-04-10 19:00:49 +02:00
Sébastien Villemot 20cbc30450
k-order DLL: various simplifications 2019-04-02 19:16:10 +02:00
Sébastien Villemot 4c11e9e9ec
Dynare++ kord and MEX: various modernizations and improvements 2019-03-07 19:46:15 +01:00
Sébastien Villemot af722f438f
Dynare++: drop remaining "using namespace std" 2019-02-06 19:00:46 +01:00
Sébastien Villemot c711d34d1d
Dynare++ / sylvester equation solver: refactor Vector and ConstVector classes
- these classes now encapsulate a std::shared_ptr<{const, }double>, so that
  they do not perform memory management, and several {Const,}Vector instances
  can transparently share the same underlying data

- make converting constructor from ConstVector to Vector explicit, since that
  entails memory allocation (but the reverse conversion is almost costless, so
  keep it implicit); do the same for GeneralMatrix/ConstGeneralMatrix,
  TwoDMatrix/ConstTwoDMatrix

- remove the constructors that were extracting a row/column from a matrix, and
  replace them by getRow() and getCol() methods on {Const,}GeneralMatrix

- rename and change the API of the complex version Vector::add(), so that it is
  explicit that it deals with complex numbers

- add constructors that take a MATLAB mxArray
2019-01-22 16:13:22 +01:00
Sébastien Villemot 331a27398a
Fix another memory leak in k-order DLL
Re Dynare/dynare#1490.
2018-11-08 17:30:48 +01:00
Sébastien Villemot 50a09a687e
C++11 modernization
Incidentally, fix a memory leak related to DynamicModelAC instantiation, using
a std::unique_ptr (see Dynare/dynare#1490).
2018-11-08 17:24:19 +01: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 5fa666e448 k-order perturbation: cosmetic change related to mxGetPr/mxGetData 2011-05-20 10:59:40 +02:00
Sébastien Villemot f5b35df24f k-order perturbation: fixed bug in M-file evaluation 2011-05-20 10:59:40 +02:00
Michel Juillard 55bb27c5f6 new correction for steady_state operator bug. Steady_state vector is passed as argument to *_dynamic model function. As a result, bytecode is currently broken. 2011-03-13 17:06:57 +01:00
Sébastien Villemot 02652f6eb8 Updated copyright notices 2011-02-04 17:27:33 +01:00
Sébastien Villemot cc2a9d90ac Global reindentation of MEX source files 2011-02-04 16:53:12 +01:00
Houtan Bastani a11817cfa4 k-order: added support for m-files, added tests and modified manual 2010-12-22 09:48:05 +01:00