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
Sébastien Villemot
4f7794a8f9
Sparse representation: compatibility fix with MATLAB < R2020a
...
For those older MATLABs, the “sparse” function does not accept vectors of
integer data type as indices.
Ref. dynare#1875
2022-12-08 14:35:23 +01:00
Sébastien Villemot
83bfc792af
Sparse representation: fix bug in output of indices in driver and JSON files
...
It would previously forget to write the indices for the highest derivation
order (e.g. if order=3, then it would only write sparce indices up to 2nd
order).
Ref. dynare#1859
2022-12-07 16:10:03 +01:00
Sébastien Villemot
c721718bf6
Merge branch 'mh_init_scale_factor' into 'master'
...
Add new mh_init_scale_factor-option
See merge request Dynare/preprocessor!73
2022-12-02 10:53:16 +00:00
Johannes Pfeifer
9b015a6a10
Add new mh_init_scale_factor-option
2022-12-01 15:23:37 +01:00
Sébastien Villemot
c48248fc0d
Implement time-recursive block decomposition tuned for purely backward/forward/static models
...
Such a decomposition has to be simulated with periods as the outer loop and
blocks as the inner loop.
It is enabled by default for purely backward/forward/static models, as long as
the “block” option is not given. In that case, “mfs” is also set to 3 by
default (until that value becomes the global default).
M_.time_recursive_block_decomposition is set to “true” when that decomposition
has been performed, “false” otherwise for the traditional decomposition (the
latter has to be simulated with blocks as the outer loop and periods as the
inner loop).
2022-11-30 14:43:44 +01:00
Sébastien Villemot
bb3475d548
Remove call to setup_solvers.m
...
It is no longer used in the new implementation of solve_algo={12,14}.
However, the M_.lhs field that was created by setup_solvers.m is used from
other places, so reimplement it at the preprocessor level.
2022-11-30 14:43:44 +01:00
Sébastien Villemot
ff296023a9
Block decomposition: ModelTree::block_decomposed field was not properly set on copy/move
2022-11-29 15:27:12 +01:00