Sébastien Villemot
607c5aab19
Merge branch 'planner_objective_options' into 'master'
...
evaluate_planner_objective: add options
See merge request Dynare/preprocessor!54
2021-12-03 16:07:14 +00:00
Johannes Pfeifer
befd432be7
evaluate_planner_objective: add options
...
Related to https://git.dynare.org/Dynare/dynare/-/merge_requests/1967
2021-12-03 14:06:57 +01:00
Sébastien Villemot
3c6d5126b3
PAC: fix comment
2021-12-03 11:07:59 +01:00
Sébastien Villemot
a210a8fd59
Add several types of auxiliary variables to M_.mapping
...
In practice, only those auxiliary variables which do not have an orig_symb_id
will be listed (in addition to unary ops, due to an implementation bug).
2021-11-24 11:27:17 +01:00
Sébastien Villemot
2282d4773c
PAC: new auxiliary variable type for pac_expectation operator
...
Also add the new equation to auxiliary equations in the backward case (but not
in the MCE case, since that equation is recursive).
2021-11-23 14:31:03 +01:00
Sébastien Villemot
ae242770f9
PAC: in the backward case, unify h0 and h1 parameters vector into a single vector
...
There is no reason to keep this distinction.
Additionally, since the data structure is now symmetric with the MCE case,
unify this “h” parameter vector with the “α” parameter vector.
2021-11-23 14:31:03 +01:00
Sébastien Villemot
0f89569f7e
PAC: in the backward case, create an aux. var. for the pac_expectation expression
...
By the way, refactor the MCE case by merging two routines related to the Z₁ aux. var.
This restores the symmetry with the backward case, now that the latter also has
an aux. var. for the pac_expectation operator. Also store the aux. var. IDs in a
structure common to the backward and MCE cases.
2021-11-23 14:31:03 +01:00
Sébastien Villemot
0e62206203
PAC: drop support for multiple PAC equations associated to a given PAC model
2021-11-23 14:31:02 +01:00
Sébastien Villemot
1cc512962c
No longer consider an equation of the form “x(+1) = 0” as defining x to be a constant
...
Fix this by restricting the detection of constant equations to those where the
variable appears without a lead or lag.
Closes : #83
2021-11-19 18:01:11 +01:00
Sébastien Villemot
b51f122e59
With nostrict, really ignore unused endogenous in initval/endval/histval
...
Closes : #82
2021-11-19 17:49:57 +01:00
Sébastien Villemot
02ee077663
Fix handling of undeclared variables in the planner_objective statement
...
Closes : #81
2021-11-19 17:32:45 +01:00
Sébastien Villemot
1e4eadb266
Macroprocessor: make the removal of “@#line” directives and extra newlines consistent across LF and CR+LF conventions
...
Simplify the algorithm using only regexps, and add comments.
2021-11-19 16:49:21 +01:00
Sébastien Villemot
1de3476546
Macroprocessor: fix line counter inside @{} constructs
...
There were two bugs:
– with the LF convention, newlines were counted twice
– with the CR+LF convention, they were counted four times (because the CR was
included in yyleng, alongside the LF)
The fix consists in implementing a location_increment() method similar to the
one used for the Dynare parser. This is the most robust solution.
By the way, mark the method DynareFlex::location_increment() method static.
2021-11-19 14:55:14 +01:00
Sébastien Villemot
487c372900
Macroprocessor: fix newlines in output when under Windows and input uses CR+LF convention
...
If the input .mod file uses CR+LF convention, and if the user is under Windows,
then the output of the macroprocessor (as given by the “savemacro” option) had
incorrect end of lines: those would be CR+CR+LF.
The reason is that some TextNode(s) internally created by the macroprocessor
would themselves contain CR+LF sequences, which would then be transformed into
CR+CR+LF in the output (because MinGW transforms LF into CR+LF in output
streams).
The fix consists in changing the nature of the EOL token: the parsed text is no
longer attached to it, so that the Bison file now systematically turns it into
a LF inside TextNode(s).
Closes : #80
2021-11-19 14:55:12 +01:00
Sébastien Villemot
1041f205ea
PAC: trap a few more cases when an auxiliary param conflicts with a declared one
2021-11-09 15:48:59 +01:00
Sébastien Villemot
6ad3d02ec6
Minor simplification in ExprNode::matchLinearCombinationOfVariables()
2021-10-29 15:39:40 +02:00
Sébastien Villemot
c4e9432eef
Remove implementation of various methods of PacExpectationNode
...
Those implementations are dummy and are normally never used. Rather error out
on those, factorizing them within SubModelNode.
2021-10-29 14:11:30 +02:00
Sébastien Villemot
3e242dd481
New class SubModelNode to factorize between VarExpectationNode and PacExpectationNode
2021-10-29 14:11:30 +02:00
Sébastien Villemot
37a6ed6261
PAC: rethink the relation between PacModelTable and DynamicModel classes
2021-10-29 14:11:30 +02:00
Sébastien Villemot
127361971f
PAC: refactor with new PacModelTable that replaces PacModelStatement(s)
...
Incidentally, the auxiliary endogenous variable representing Z₁ and created for
PAC MCE models no longer necessarily appear as the first auxiliary variable (so
this is effectively a revert of 64f55e4a5e
).
2021-10-29 14:11:30 +02:00
Sébastien Villemot
0123326123
Fix error message when using pac_expectation with occbin_constraints
...
By the way, also fix the argument name (the model is not a VAR).
2021-10-29 14:11:08 +02:00
Sébastien Villemot
bc827326eb
JSON: fix syntax error in the aux vars table introduced in a7fb198463
2021-10-26 12:31:01 +02:00
Sébastien Villemot
5bef185370
PAC: add growth correction term for definition of Z₁ in the MCE case
2021-10-25 17:28:01 +02:00
Sébastien Villemot
4191cec9aa
Merge branch 'master' into 'master'
...
Master
See merge request Dynare/preprocessor!53
2021-10-08 13:42:16 +00:00
Sébastien Villemot
8bb8e59410
Improve message for GCC installation under macOS
2021-10-08 12:59:17 +02:00
MichelJuillard
a7fb198463
add field aux_vars to modfile.json
2021-10-08 09:26:49 +02:00
MichelJuillard
561bee0790
add NNZderivatives to JSON + use AbstractVector for Julia functions
2021-10-06 17:45:11 +02:00
Sébastien Villemot
78e295115a
PAC: better error message in case of name conflict for the growth neutrality correction parameter
2021-10-06 16:41:09 +02:00
Johannes Pfeifer
b496c4ba2c
ramsey_model: Fix error message logic
...
one of the statements being present is sufficient
2021-09-24 09:14:41 +02:00
Sébastien Villemot
eb006ecaeb
Remove unused steady_state_growth option to pac_model
2021-09-22 16:26:42 +02:00
Johannes Pfeifer
8d14e18cdb
Rename mh_mode to correct mh_posterior_mode_estimation option
...
Closes https://git.dynare.org/Dynare/preprocessor/-/issues/60
2021-09-21 17:28:37 +02:00
Sébastien Villemot
b12746190d
ramsey_{model,policy}, discretionary_policy: check that instruments are declared endogenous
...
Closes : #72
2021-09-21 17:17:36 +02:00
Sébastien Villemot
3d215020ae
Fix use_dll on macOS + Octave
...
Enforce GCC with mkoctfile. Otherwise Clang will be used, and it does not
accept our custom optimization flags.
Ref. dynare#1797
2021-09-13 16:50:13 +02:00
Sébastien Villemot
989347f448
Fix bug introduced in previous commit that triggers a crash for DSGE-VAR models
2021-09-08 19:00:15 +02:00
Sébastien Villemot
cb19ece049
estimated_params*: add a check that prevents (apparently) recursive prior definitions
...
Closes : #77
2021-09-08 17:10:56 +02:00
Sébastien Villemot
62ba9a434a
estimated_params_{bounds,init} now check that a parameter (or correlation) is never declared twice
...
This check was previously only implemented in estimated_params.
2021-09-08 16:38:15 +02:00
Sébastien Villemot
784dd4122a
PAC: generate the “growth_neutrality_param_index” MATLAB field for MCE models
...
Previously it was only generated in the case of backward PAC models.
2021-08-31 17:54:20 +02:00
Sébastien Villemot
6863494db2
Ensure that the “discount” option of “pac_model” is a parameter
...
Ref. Madysson/estimation-codes#4
2021-08-31 12:52:00 +02:00
Sébastien Villemot
15658fda5c
Merge branch 'mom_namespace' of git.dynare.org:JohannesPfeifer/preprocessor
...
Ref. !50
2021-08-30 16:05:44 +02:00
Sébastien Villemot
297888ce72
Merge remote-tracking branch 'origin/updated_covariance'
...
Ref. !47
2021-08-30 16:05:13 +02:00
Stéphane Adjemian (Charybdis)
79d5a2d687
Fix warning (missing option in occbin_setup).
2021-08-18 15:18:21 +02:00
Johannes Pfeifer
3f37d9692c
method_of_moments: move to namespace
2021-08-15 20:44:24 +02:00
Johannes Pfeifer
6fb86522ea
Occbin: Add missing options
2021-08-10 20:28:32 +02:00
Sébastien Villemot
bb19d98712
Merge branch 'results_file' into 'master'
...
Move results file to output folder
See merge request Dynare/preprocessor!48
2021-07-23 11:58:46 +00:00
Johannes Pfeifer
361b789e88
Move results file to output folder
2021-07-22 19:36:12 +02:00
Johannes Pfeifer
38714a58c4
Add updated_covariance option
...
Related to https://git.dynare.org/Dynare/dynare/-/issues/1784
2021-07-22 17:12:02 +02:00
Sébastien Villemot
5cfe6303e2
Cosmetic changes
2021-07-22 16:49:59 +02:00
Johannes Pfeifer
5da01faa74
Introduce option consider_all_endogenous_and_auxiliary
2021-07-22 11:49:36 +02:00
Sébastien Villemot
e1f7d8c735
VAR models: add a parameter representing the constant in the development of the pac_expectation operator
2021-07-21 17:53:55 +02:00
Sébastien Villemot
da9e0acc2d
VAR models: add a parameter representing the constant in the development of the var_expectation operator
2021-07-21 17:53:55 +02:00
Sébastien Villemot
1a5fb4d5e6
DynamicModel: make PAC data members private
2021-07-21 17:53:55 +02:00
Stéphane Adjemian (Ryûk)
8305b94d29
Fix constant definition in reduced form VAR.
2021-07-21 17:53:55 +02:00
Stéphane Adjemian (Ryûk)
c6a7d56b36
Fix constants in var model (it has to be a vector).
2021-07-21 17:53:55 +02:00
Sébastien Villemot
a6add6127b
VAR models: output vector of constants in varmatrices.m
2021-07-21 17:53:54 +02:00
Sébastien Villemot
1cf03a5f07
Cosmetic improvement
2021-07-21 17:53:54 +02:00
Sébastien Villemot
5498ce98ee
Use NumConstNode* type for DataTree constants (previously they were just expr_t)
2021-07-21 17:53:54 +02:00
Sébastien Villemot
15d7432105
Occbin: add more sanity checks on expressions in “occbin_constraints” block
...
— forbid leads and lags
— forbid expectation operators
This is implemented by moving the occbin_constraints expression to a separate
DataTree. As a side-effect, this removes the spurious non-linearity warning in
a stochastic context (because we were introducing inequalities and abs()
operators in the main DynamicModel tree).
2021-07-21 16:33:23 +02:00
Sébastien Villemot
ed31d1cb5e
Remove unused functions
2021-07-21 16:33:23 +02:00
Sébastien Villemot
6ae3d3131f
Occbin: handle external functions in “occbin_constraints”
2021-07-21 16:33:19 +02:00
Sébastien Villemot
0d6eb053d4
Ensure that “pac_expectation” operators are never inserted into a static model
...
The implementation of PacExpectationNode::toStatic() did not make sense. It
should normally never be called, hence we error out at this point.
Also do a cosmetic change in the PacExpectationNode::clone() methode.
2021-07-21 16:33:14 +02:00
Sébastien Villemot
b16ab9b247
Fix preprocessor crash when a [static] equation contains a “var_expectation” operator
...
Rather error out with a meaningful message.
2021-07-21 16:33:09 +02:00
Sébastien Villemot
ebd9954d33
Occbin: new syntax for constructing multi-regime equations
...
Ref. #68
2021-07-20 18:18:24 +02:00
Sébastien Villemot
0b8e3345fc
Ensure that a tag is not declared twice in the same equation
...
Previously the first value was silently ignored. It’s better to explicitly
forbid this. If this change creates problems (since it’s a change in an
undocumented behaviour), we can turn it into a warning.
2021-07-20 14:56:48 +02:00
Sébastien Villemot
81d4fd5d83
Occbin: generate +<basename>/occbin_difference.m
...
In particular, this implies that steady state values of endogenous in the
“occbin_constraints” block must now be specified using the STEADY_STATE()
operator (and not with a “_ss” suffix).
Moreover:
– make various simplifications to the fields generated under M_
– in the driver file, replace the call to occbin.initialize() by a few explicit operations
Ref. #68
2021-07-20 12:26:11 +02:00
Sébastien Villemot
90b1235a64
New utility to check if an expression contains an exogenous (possibly deterministic)
2021-07-20 12:10:58 +02:00
Sébastien Villemot
08ac455fcd
Implement “occbin_constraints” block
...
Consequently drop “occbin” option to “model”.
Incidentally, allow more values in equation tag names (previously some keywords
such as “alpha” were disallowed).
Ref. #68
2021-07-16 11:34:27 +02:00
Stéphane Adjemian (Ryûk)
6b9d94405c
Return the reduced form of the structural VAR model optionally.
...
Also
- changed the name of the generated matlab routine,
- changed initialization of matrix a0.
2021-07-16 08:33:26 +02:00
Sébastien Villemot
2e696a2e0d
Add shocks(surprise) block (for occbin)
...
Ref. #68
2021-07-13 21:55:31 +02:00
Sébastien Villemot
f0002c5ac6
Fix compiler warning introduced by 61b37942ab
2021-07-13 17:18:06 +02:00
Sébastien Villemot
c3b0ce8e69
shocks/mshocks/conditional_forecast_paths: various cleanups
2021-07-13 17:17:57 +02:00
Sébastien Villemot
5624260a07
Merge branch 'occbin_rebase' into 'master'
...
First part of Occbin interface
See merge request Dynare/preprocessor!42
2021-07-13 13:38:26 +00:00
Johannes Pfeifer
61b37942ab
First part of Occbin interface
2021-07-13 13:38:25 +00:00
Sébastien Villemot
c9c36c037a
New preprocessor option “nocommutativity”
...
This option tells the preprocessor not to use the commutativity of addition and
multiplication when looking for common subexpressions.
As a consequence, when using this option, equations in various outputs (LaTeX,
JSON…) will appear as the user entered them.
There is however a potential performance cost to using this option, yet to be
determined.
Ref. dynare#1788
2021-07-13 14:35:10 +02:00
Sébastien Villemot
6aeef11bb2
New perfect_foresight_with_expectation_errors_{setup,solver} commands
2021-07-09 17:14:22 +02:00
Sébastien Villemot
365fb27f3d
New “structural” option to “var_model”
...
As the name implies, this option allows contemporaneous variables on the RHS.
The A0 matrix for contemporaneous variables is added as a second (optional)
output to the generated var_ar.m file. Note that for reduced-form VAR, this
matrix will be the identity.
Also, the user is now allowed to write the VAR models in a more flexible form:
the LHS must still be a single variable, but the RHS can be an arbitrary
expression (as long as it is linear, obviously). Internally, the preprocessor
now uses derivation to compute the coefficients of the AR and A0. This change
applies to both reduced-form and structural VAR models.
Ref. dynare#1785
2021-07-08 12:55:47 +02:00
Sébastien Villemot
f7a367d7b1
“var_model” statement: make “eqtags” option mandatory
2021-07-08 12:55:40 +02:00
Sébastien Villemot
67f4777ac3
Remove support for obsolete syntax: var_model(order = 2) X Y Z;
2021-07-07 18:26:09 +02:00
Sébastien Villemot
4cc22897b7
Cosmetic improvements
2021-07-06 19:09:25 +02:00
Sébastien Villemot
8df34c1ca5
VAR and trend component models: improve sanity checks on lead/lags on RHS
...
In particular, forbid lagged exogenous.
2021-07-06 18:52:38 +02:00
Sébastien Villemot
c9d6d9c6f8
Enforce non-positivity of the “time_shift” option to “var_expectation_model”
...
Closes : #70
2021-07-06 16:40:20 +02:00
Sébastien Villemot
221daeab6f
New time_shift option to var_expectation_model
...
Ref. dynare#1787
2021-07-01 17:56:07 +02:00
Sébastien Villemot
5a33699f03
VAR / trend component models: cosmetic changes
2021-07-01 17:52:05 +02:00
Sébastien Villemot
700dd31d57
Merge branch 'mom_varlist' into 'master'
...
method_of_moments: remove var_list_
Closes #69
See merge request Dynare/preprocessor!44
2021-06-28 09:32:07 +00:00
Sébastien Villemot
e6e25a5c87
macOS: fix detection of GCC installed by Dynare package
...
Since the preprocessor has moved, the relative path of the local Homebrew needs
to be adjusted.
2021-06-24 15:16:55 +02:00
Johannes Pfeifer
f354458418
method_of_moments: remove var_list_
2021-06-24 15:10:24 +02:00
Sébastien Villemot
1c3e6f89af
macOS: bump to GCC 11 (for compilation and for use_dll)
2021-06-24 12:34:29 +02:00
Sébastien Villemot
824433aa3f
Refactor driver output for heteroskedastic_shocks
...
Ref. dynare#1791
2021-06-15 12:53:40 +02:00
NormannR
d0ec5eb155
Allows to write M_.objective_tmp_nbr in the driver.m file
...
Writes the number of temporary terms of the planner objective function derivatives objective_tmp_nbr in the driver.m file.
Useful for the k-order approximations of welfare.
2021-06-11 12:37:31 +02:00
Sébastien Villemot
74ef3457b4
Use secure URL for link to GNU licenses
2021-06-09 17:21:00 +02:00
Sébastien Villemot
86b2b4c2da
When order option > 3, compute planner objective derivatives at that order
...
Ref. dynare!1866
2021-06-04 16:20:29 +02:00
Sébastien Villemot
04f242f971
xls_sheet option: allow quoted strings as value
...
Closes : #67
2021-05-31 18:18:25 +02:00
Johannes Pfeifer
4b401e6253
Preparations for Occbin MR
...
Related to https://git.dynare.org/Dynare/dynare/-/merge_requests/1863
2021-05-31 15:12:46 +02:00
Sébastien Villemot
c5f9ae89e7
Implement new “occbin” option to “model” block
...
For the time being, the preprocessor will refuse that this option be used with
any command other than estimation.
By the way, remove occbin_likelihood and occbin_smoother options to estimation.
Ref. dynare#569
2021-05-31 10:00:59 +02:00
Sébastien Villemot
1e9ea1acf4
Merge branch 'smoother_redux' into 'master'
...
Add smoother_redux option
See merge request Dynare/preprocessor!38
2021-05-27 14:55:35 +00:00
Johannes Pfeifer
2a8726fe6e
Add kalman_algo and filter_covariance to calib_smoother
2021-05-27 16:42:10 +02:00
Johannes Pfeifer
0d635aed36
Add smoother_redux option
2021-05-27 16:41:36 +02:00
Sébastien Villemot
b12b254f2c
Add heteroskedastic_filter option and heteroskedastic_shocks block
...
Ref. dynare!1844, dynare!1851
2021-05-26 18:27:52 +02:00
Sébastien Villemot
e552bfc4b3
Refactor parsing of deterministic shocks
...
This will simplify the implementation of heteroskedastic_shocks.
2021-05-26 17:05:51 +02:00
Sébastien Villemot
c35f160e3f
Minor simplification
2021-05-26 16:17:18 +02:00
Sébastien Villemot
97e9609c28
Streamline use_dll compilation under MATLAB
...
— drop Windows 32-bit support
— drop -fno-omit-frame-pointer compilation flag under GNU/Linux
— drop -static-libstdc++ flag under Windows
— no longer link to -lstdc++ under GNU/Linux and macOS
— gracefully fail when 'mexext' value is unknown
2021-05-24 18:21:23 +02:00