Commit Graph

3528 Commits (1cfce804a6627a7b07bbde35c5d7866b4af44726)

Author SHA1 Message Date
Sébastien Villemot 008a80910e
Bytecode: move CodeLoad class out of the preprocessor 2023-02-21 16:01:27 -05:00
Sébastien Villemot a88b921991
Bytecode: improve deserialization routines for FCALL and FBEGINBLOCK 2023-02-17 16:20:40 -05:00
Sébastien Villemot cf3ab36ac8
Bytecode: simplify specialized serialization methods 2023-02-17 15:31:22 -05:00
Sébastien Villemot 114d8eadfb
New “homotopy_alt_starting_point” option to “perfect_foresight_solver” command 2023-02-07 14:44:59 -05:00
Sébastien Villemot 389a2647d3
Block decomposition: make mfs=1 the default
NB: mfs=3 is nevertheless used when “block” option has not been used, and the
model is purely backward/forward or static, for solve_algo={12,14}.
2023-01-25 18:38:58 +01:00
Sébastien Villemot dc966014a3
Remove some incorrect normalization rules for the case mfs=3
More precisely, incorrect equation normalization could occur in the presence of
cos, sin, tan, cosh and x^n (where n is an even integer).

Also add some comments explaining why some other rules are (hopefully) correct.
2023-01-25 17:14:01 +01:00
Sébastien Villemot 0ddcf81ac0
Fix typo 2023-01-25 16:50:56 +01:00
Sébastien Villemot 1c813a1cf9
Run detrending engine if trend variables are present, even if unused in a var(deflator=…) statement
Closes: #113
2023-01-24 14:14:40 +01:00
Sébastien Villemot 74e5bbf537
Drop dynamic_g1_nz.m generated file
No longer needed since perfect_foresight_problem MEX has moved to the sparse
representation.
2023-01-23 16:20:12 +01:00
Sébastien Villemot 4f9241442c
Fix size of dynamic derivatives (legacy representation) when there are unused exogenous and “nostrict” option is given 2023-01-19 11:00:32 +01:00
Sébastien Villemot c47d91c20b
Block decomposition: another fix for sparse indices of static Jacobian when mfs > 0 2023-01-19 10:03:37 +01:00
Sébastien Villemot 7db02b23e9
Block decomposition: fix sparse indices of static Jacobian when mfs > 0 2023-01-17 19:04:21 +01:00
Sébastien Villemot 9013a5cb1b
No longer create +<basename>/+block/ folder (now empty) 2023-01-17 18:42:40 +01:00
Sébastien Villemot f45a99fc68
Correctly propagate “mfs” and “cutoff” to the static model
Those two settings were previously always at their default value for the static
model, independently of what the user would set in the .mod file.
2023-01-17 16:38:03 +01:00
Sébastien Villemot fe503d3eab
Remove confusing comment 2023-01-17 16:37:24 +01:00
Sébastien Villemot 4bba274f39
Block decomposition: drop unused max lead/lag fields
Note that DynamicModel::determineBlockDerivativesType(), it’s legitimate to
replace max_{lead,lag} by max_endo_{lead,lag}, because for exogenous
lag=lead=0, and we no longer compute derivatives w.r.t. to endogenous that do
not belong to the block (so-called “other” endogenous).
2023-01-17 14:42:29 +01:00
Sébastien Villemot 2e09df90e7
Bytecode w/ block decomposition: no longer output derivatives w.r.t. exogenous and endogenous outside the block 2023-01-17 14:23:40 +01:00
Sébastien Villemot 1e377f061a
Block decomposition: drop unused structure fields 2023-01-17 14:18:41 +01:00
Sébastien Villemot bbdbd0807b
Sparse representation: Octave compatibility fix
Octave does not support “private” subdir inside plus folders (“+namespace”).

See https://savannah.gnu.org/bugs/?45444
2023-01-16 17:12:10 +01:00
Sébastien Villemot 8ebd9a9496
Drop the “Sigma_e” statement 2023-01-16 15:08:23 +01:00
Sébastien Villemot a7b0a324c9
Drop the “periods” statement 2023-01-16 15:02:50 +01:00
Sébastien Villemot 93b9ed6957
Drop the legacy representation of the block-decomposed model
As a consequence, and as a temporary measure, always output the
non-block-decomposed legacy representation.

Also drop the block kalman filter output, and drop now useless variables in
M_.block_structure.
2023-01-13 16:57:06 +01:00
Sébastien Villemot 35ac73fad8
Sparse representation: fix various bugs in the non-block MATLAB/Octave output 2023-01-10 15:58:45 +01:00
Sébastien Villemot e18ecc3fa5
ModFile::remove_directory_with_matlab_lock(): minor performance improvement
Use std::filesystem::file_status and cached directory entries information to
avoid extra filesystem operations.
2023-01-10 11:49:39 +01:00
Sébastien Villemot bae04fa899
ModelTree::findGccOnMacOS() now returns a std::filesystem::path 2023-01-10 11:48:33 +01:00
Sébastien Villemot a4f299c0b7
Bytecode: change interface of function called from bytecode MEX 2023-01-09 14:09:09 +01:00
Sébastien Villemot ec3ce156b4
Bytecode: always produce block and non-block versions
The block decomposed version is now under <BASENAME>/bytecode/block/.
2023-01-09 13:35:49 +01:00
Stéphane Adjemian (Guts) 4348f4d57f
Provisions for conditional likelihhod estimation. 2023-01-06 12:17:02 +01:00
Sébastien Villemot 0bc1539f45
Drop clang workaround 2023-01-05 18:11:33 +01:00
Sébastien Villemot cf493ef6a6
Add two missing checks for file opening failures 2023-01-05 17:21:30 +01:00
Sébastien Villemot 253fbbe7d6
Use std::filesystem::path in more places 2023-01-05 17:21:28 +01:00
Sébastien Villemot d36eb82b7c
Macro processor: removed unused “basename” variable 2023-01-05 15:49:36 +01:00
Sébastien Villemot 1f3ff760e1
EquationTags: drop useless method 2023-01-04 19:27:01 +01:00
Sébastien Villemot 3927862d23
EquationTags: misc implementation improvements 2023-01-04 17:15:51 +01:00
Sébastien Villemot 9658d82cc6
EquationTags::getEqnByTag() now returns an optional<int> instead of throwing 2023-01-04 16:45:12 +01:00
Sébastien Villemot e2c72a1b75
Drop ModelTree::getEquationTags(), and replace it by calls to better interfaces 2023-01-04 16:20:50 +01:00
Sébastien Villemot bdb5d37dec
EquationTags::getTagValueByEqnAndKey() now return an optional<string>
By the way, optimize the implementation.
2023-01-04 16:03:49 +01:00
Sébastien Villemot 422cbf5736
EquationTags: remove unused function 2023-01-04 16:03:45 +01:00
Sébastien Villemot df3a153356
Simplify residuals output (MATLAB/Octave and C) by dropping lhs/rhs temporary variables 2023-01-04 14:49:07 +01:00
Sébastien Villemot 9f5ea9467d Merge branch 'dynamic_model_info' into 'master'
Add dynamic option to model_info

See merge request Dynare/preprocessor!74
2023-01-04 09:57:18 +00:00
Johannes Pfeifer 2fd0681151 Add block_dynamic option to model_info
Also renames the old static option
2023-01-03 16:06:25 +01:00
Sébastien Villemot 21fcfa7758
use_dll: fixes to parallel compilation
— No longer call std::exit() from threads when compilation fails, that function
  is marked as not thread-safe under GNU/Linux; and it leads to deadlocks under
  Windows. Rather store the list of failed objects, and exit with a message and
  an error code from the main thread when that list is not empty at the end of
  preprocessing.
– Fix the condition used for waiting until all compilation threads finish;
  checking that the queue is empty is not enough, since a compilation may be
  ongoing. So also track objects whose compilation is ongoing.
2022-12-20 16:52:47 +01:00
Sébastien Villemot f349e22f4c
Macro processor: fix error message when @#include is used with nonexistent file 2022-12-14 15:22:20 +01:00
Sébastien Villemot 50a2737e41
Macro processor: fix tracking of line numbers after @#define, @#include and @#includepath directives
Closes: #108
2022-12-14 15:22:07 +01:00
Sébastien Villemot 8734bc5ca6
Allow LOG_* auxiliary variables in various commands
Closes: #107
2022-12-14 12:42:55 +01:00
Sébastien Villemot a234176d3c
Julia: do not rewrite derivatives w.r.t. parameters files when unmodified
Closes: #105
2022-12-14 12:35:50 +01:00
Sébastien Villemot a5eac0260a
JSON: fix output of date options
They were not enclosed within quotes.

Ref. dynare#1875
2022-12-14 12:16:04 +01:00
Sébastien Villemot 2758f46c83
Fix indexing in M_.endo_trends
It would use 0-based indexing, instead of 1-based.

Ref. dynare#1648

Closes: #109
2022-12-14 12:05:12 +01:00
Sébastien Villemot 8cb3437d2d
Minor simplification in static block decomposition driver output 2022-12-12 14:57:50 +01:00
Sébastien Villemot 4aa1ff1f73
Sparse representation: fix bug in output of indices in driver and JSON files
Jacobian column numbers were incorrect (it would return internal derivation
IDs).

Ref. dynare#1859
2022-12-12 14:57:49 +01:00