Sébastien Villemot
5b12354dc3
Minor performance improvement in copy constructors/assignments of ModelTree and DynamicModel
2022-09-21 17:37:02 +02:00
Sébastien Villemot
98d4f922ca
Cosmetics
2022-09-20 15:29:19 +02:00
Sébastien Villemot
7f1b4fcc20
Refactor OptionsList class
...
In particular, use a std::variant to store the values of options. This ensures
that a given option name can have only one value (previously, for a given
option name, it was possible to store several values as long as they were of
different types).
2022-09-20 11:56:43 +02:00
Sébastien Villemot
e4449f1c4a
Add comment for special token name for “domain” keyword
2022-09-20 11:56:43 +02:00
Sébastien Villemot
8dcdcf1fd4
Fix check of “domain” option of new estimation prior syntax
2022-09-20 11:56:42 +02:00
Sébastien Villemot
3f674c1af9
Fix bug with “graph_format” option of “identification” and “dynare_sensitivity”
...
The local value of option was not copied to the top-level “options_” structure,
as it is done for “nograph” and “nodisplay”.
2022-09-20 11:56:42 +02:00
Sébastien Villemot
1088cc4242
Improve informative messages about derivatives and block decomposition
...
When computing the derivatives or block decomposition of the planner objective,
the epilogue or the original Ramsey model, the preprocessor would talk about
dynamic/static model, which was confusing. It now uses the right terminology.
2022-09-14 17:51:36 +02:00
Sébastien Villemot
d67f569035
Always compute block decomposition, even if “block” option was not passed
...
If block decomposition fails, error out if “block” option was passed, but not
otherwise.
This commit does not modify the generated files.
This is a preliminary step for dynare#1859.
2022-09-13 16:16:00 +02:00
Sébastien Villemot
1aead92cd5
Fix bug in block derivatives w.r.t. exogenous deterministic
2022-09-12 17:38:47 +02:00
Sébastien Villemot
0b5e686c8c
Turn ramsey_FOC_equations_dynamic_model into a local variable instead of a data member
2022-09-09 17:13:21 +02:00
Sébastien Villemot
2fdc8b682e
Merge branch 'BGP_space' into 'master'
...
Add missing whitespace in output of BGP warning
See merge request Dynare/preprocessor!65
2022-09-06 10:11:51 +00:00
Sébastien Villemot
482ec5fb67
macOS: bump to GCC 12 (for compilation and for use_dll)
2022-09-06 11:53:40 +02:00
Johannes Pfeifer
da5b36704d
Add missing whitespace in output of BGP warning
2022-08-03 10:52:08 +02:00
Sébastien Villemot
fc4c9a73c9
Fix comment
...
[skip ci]
2022-07-27 16:50:08 +02:00
Sébastien Villemot
c3cb7ca534
Bytecode: simplify type for storing list of instructions
...
Incidentally, make BytecodeInstruction an immutable struct, to facilitate
access to opcode in such a list.
2022-07-26 18:26:37 +02:00
Sébastien Villemot
613e0da782
Bytecode: add some comments to FNUMEXPR_
...
[skip ci]
2022-07-26 14:52:10 +02:00
Sébastien Villemot
21cecee599
Add “fsolve_options” option to “steady” command
...
Ref. dynare#1856
2022-07-22 13:43:41 +02:00
Sébastien Villemot
ad40f1365c
Block decomposition: code factorization
2022-07-21 18:20:35 +02:00
Sébastien Villemot
d4c453c422
Block decomposition: (likely) performance improvement in static file in relation to temp terms
...
Compute temporary terms for derivatives of “evaluate” mode, even though those
derivatives are not computed. This is because the temporary terms may be useful
for subsequent blocks.
By the way, add an explanatory comment for the equivalent code in dynamic file.
2022-07-21 17:31:48 +02:00
Sébastien Villemot
a97a41f6c0
Bugfix with temporary terms in block+bytecode
...
There were actually two distinct bugs, leading to incorrect results in some
corner cases:
– in the “evaluate” mode of the bytecode MEX, the temporary terms of the
derivatives “evaluate” blocks were not evaluated at runtime; but these
temporary terms may be needed for residuals of subsequent blocks;
– when the bytecode MEX was only computing residuals of the model (and not 1st
order derivatives), the temporary terms of the derivatives were not evaluated
at runtime; but these temporary terms may be needed for residuals of subsequent
blocks.
2022-07-21 17:22:08 +02:00
Sébastien Villemot
1401c85d6a
Bytecode: drop FCUML instruction
...
It’s redundant with FBINARY{BinaryOpcode::plus}.
2022-07-20 16:02:24 +02:00
Sébastien Villemot
a58109d094
Bytecode: refactor methods for writing .cod and .bin files in the block decomposition case
2022-07-20 16:02:24 +02:00
Sébastien Villemot
d598810329
Bytecode: minor simplification using syntax of sizeof operator without parentheses
2022-07-20 14:48:30 +02:00
Sébastien Villemot
50d5b916e2
Remove constructor and accessors for AuxVarInfo
...
Rather make all data members public and const, and use aggregate-initialization.
2022-07-20 14:48:30 +02:00
Sébastien Villemot
f0629555a5
Remove useless constructors (aggregate initialization is enough for those)
...
By the way, turn those classes into structs since all their members are public.
2022-07-20 14:48:28 +02:00
Sébastien Villemot
83a94aca57
Replace most uses of std::string::compare() by operator==(), for clarity
2022-07-20 11:18:20 +02:00
Sébastien Villemot
c0bfc99946
Minor simplification using std::vector::emplace_back()
2022-07-20 11:18:07 +02:00
Sébastien Villemot
435e56369c
Compatibility fixes with GCC 12
2022-07-16 12:46:16 +02:00
Sébastien Villemot
35dc7fcd81
Bytecode: fix treatment of temporary terms (in non-block mode)
...
The “temporary_terms_union.insert(it)” statement introduced in the previous
commit was in the wrong block.
By the way, replace the “switch” by an “if constexpr”.
2022-07-14 09:17:11 +02:00
Sébastien Villemot
ae150d2b1f
Bytecode: refactor routines for creating .cod file in non-block mode
2022-07-13 18:51:01 +02:00
Sébastien Villemot
89debf429a
Factorize code for writing JSON output
2022-07-12 18:04:05 +02:00
Sébastien Villemot
6da24fc763
Fix bug in JSON output for dynamic derivatives w.r.t. parameters
...
Variable and parameter indices were wrong (offset by 1).
2022-07-12 17:45:00 +02:00
Sébastien Villemot
9e6c01f132
Streamline some function names
2022-07-12 17:04:41 +02:00
Sébastien Villemot
a541d23055
Minor simplification
2022-07-12 16:39:17 +02:00
Sébastien Villemot
157c67e04b
New helpers to simplify common operations with derivation IDs
2022-07-12 16:30:45 +02:00
Sébastien Villemot
2013056a2c
Fix bug in JSON output for derivatives w.r.t. parameters
...
Confusion between a symbol ID and a derivation ID, which could lead to invalid
output or crash.
2022-07-12 16:23:44 +02:00
Sébastien Villemot
440173f2bc
Further simplification made possible by 75e453c5fe53ce9ce82e564577db073b41a0459a
2022-07-12 16:23:40 +02:00
Sébastien Villemot
7fd78606ae
Fix bug in MATLAB/Octave output introduced in 3e1f9dbb82
2022-07-12 16:23:32 +02:00
Sébastien Villemot
1d71386f01
Further templating of helpers for writing output files
...
So that more stuff is computed at compile-time (using constexpr features).
2022-07-12 16:23:28 +02:00
Sébastien Villemot
4370b76ce4
Remove unused function
2022-07-12 16:18:19 +02:00
Sébastien Villemot
9c3eeb7c8d
Refactor code for writing derivatives w.r.t. parameters
2022-07-12 16:18:16 +02:00
Sébastien Villemot
8da663a110
Further factorization in methods for writing static and dynamic files
2022-07-12 16:05:15 +02:00
Sébastien Villemot
3eb7063838
Merge branch 'julia-2' into 'master'
...
Julia 2
See merge request Dynare/preprocessor!64
2022-07-12 11:29:23 +00:00
MichelJuillard
3e1f9dbb82
use @inbounds blocks instead of @inbounds for each line
2022-07-12 13:07:33 +02:00
MichelJuillard
a4556896db
Julia functions Float64 -> <: Real
2022-07-12 11:15:51 +02:00
Sébastien Villemot
5174c3b52c
Minor simplification
2022-07-11 22:30:50 +02:00
Sébastien Villemot
f38c8278ae
Refactor methods for writing static and dynamic files
...
– factorize common code between the static and the dynamic version
– reorganise language-specific code into dedicated functions
– use a function template in the main helper to do some computations
at compile-time (using constexpr features)
2022-07-11 22:29:28 +02:00
Sébastien Villemot
c8b046ec86
Simplification using non-default std::ofstream constructor
2022-07-11 22:17:36 +02:00
Sébastien Villemot
92047f547e
Minor simplification
2022-07-11 14:05:29 +02:00
Sébastien Villemot
9b34fe856f
Add missing “break” for consistency
2022-07-08 16:10:23 +02:00