Commit Graph

2159 Commits (4f9b3849849906bc2a12fd454bed5bec524ffab1)

Author SHA1 Message Date
Sébastien Villemot 4f9b384984
Use C++11 override keyword 2019-01-09 15:43:46 +01:00
Houtan Bastani 4c71d143f3
substitute leads/lags appropriately when identification or sensitivity statements are present. Issue: https://git.dynare.org/Dynare/dynare/issues/1631 2019-01-09 14:48:25 +01:00
Houtan Bastani a6991e8382
update license for new year 2019-01-02 13:34:58 +01:00
Houtan Bastani 280b764ca5
onlymodel: read estimated_params block as well 2018-12-27 19:07:51 +01:00
Houtan Bastani 7d37c35a3d
onlymodel: read initval and endval too 2018-12-27 12:06:39 +01:00
Sébastien Villemot f2b0bdf0a2
Fix bug when histval is used and there is no auxiliary variable
Problem introduced in a69c65361c.
2018-12-20 17:45:54 +01:00
Sébastien Villemot 01385d1f80
Simplify implementation of nopreprocessoroutput option
Simply redirect cout to /dev/null, instead of propagating a boolean
everywhere.
2018-12-20 17:08:45 +01:00
Sébastien Villemot 5784dce1ca
Remove the possibility of passing the mod-file as a string in the first shell argument
This feature is ill-designed and no longer needed by the GUI. And is not very
useful: it is not possible to interact with the preprocessor without using the
filesystem, since the preprocessor creates many files anyways.

If we really need to reimplement such a feature, it should rather be redesigned
by reading the modfile from standard input (cin). That could be triggered by
using "-" as the filename argument (as is already done by several standard Unix
utilities).
2018-12-20 17:08:05 +01:00
Sébastien Villemot b2e3a481e3
Fix for histval with auxiliary lead variables corresponding to non-linear terms
The M_.params structure was not correctly passed to
dynamic_set_auxiliary_series.m, leading to crashes if a parameter was needed to
compute an auxiliary variable (typically an auxiliayr lead variable
corresponding to a non-linear term in stochastic setup).
2018-12-20 15:05:18 +01:00
Sébastien Villemot a69c65361c
Fix ramsey_policy with histval
Since 38152c34a4, the M_.endo_histval variable is
generated via dynamic_set_auxiliary_dseries.m. But the latter file does not
handle auxiliary variables for Lagrange multiplier. We therefore now set them
by hand (at an initial value of zero).
2018-12-20 15:05:18 +01:00
Sébastien Villemot 9e66627375
Fix for histval block in the presence of auxiliary lead variables
Since 38152c34a4, the M_.endo_histval variable is
generated via dynamic_set_auxiliary_dseries.m. The problem is that, for
auxiliary variables corresponding to a lead, this will generate a NaN in
M_.endo_histval. This is conceptually correct, since such variables are never
used as initial conditions, but this is inconsistent with what we do with the
"initval" block, and leads to crashes in some routines where we fail when there
is a NaN. Therefore, replace these with a zero, as it used to be.
2018-12-20 15:05:17 +01:00
Stéphane Adjemia (Scylla) 8b81474a2e
On macOS use gcc-7 from homebrew instead of gcc-clang.
To install this version of gcc:

~$ brew install gcc@7

Does not seem to work with gcc-8 (missing headers…).
2018-12-20 14:38:37 +01:00
Houtan Bastani ea76bc8636
epilogue: use different syntax for firstobservedperiod call 2018-12-19 16:20:30 +01:00
Sébastien Villemot 1393bf1d7e
Parse the options list at the top of the mod-file
Ref Dynare/dynare#1630
2018-12-19 16:14:40 +01:00
Houtan Bastani bb624ec6a7
epilogue: allow for simulations in epilogue block 2018-12-19 16:09:30 +01:00
Sébastien Villemot 38152c34a4
Make histval compatible with diff operator
The idea is to make use of the dynamic_set_auxiliary_dseries.m file to generate
the initial conditions for all auxiliary variables, including the diffs.

Also remove the check done by the preprocessor for the lags in histval, since
it does not work correctly with the diff operator.
2018-12-11 17:32:05 +01:00
Houtan Bastani aad8414f94
allow the use of previously assigned variables in epilogue block in later equations in epilogue block 2018-12-10 16:30:19 +01:00
Houtan Bastani 9d3f104b8c
fix epilogue block 2018-12-10 12:27:27 +01:00
Sébastien Villemot 82b1467074
Improve consistency of ExprNode methods for calculating max lead/lag
- ExprNode::maxLag() and ExprNode::maxLead() now take into account exogenous
  deterministic variables, for consistency with M_.maximum_{lead,lag}

- ExprNode::maxLag() no longer behaves as if diff() operators were
  expanded (i.e. it now returns 1 on diff(x(-1))), for consistency with
  maxEndoLag() and maxExoLag()

- New ExprNode::maxLagWithDiffsExpanded() method, that behaves as maxLag() used
  to behave (except that it also takes exogenous deterministic into account)
2018-12-05 15:30:03 +01:00
Sébastien Villemot fe6d4e9bca
Modify semantics of ExprNode::countDiffs()
Previously, this function was counting the total number of diff() operators in
an expression. But this is not very useful, and is potentially misleading,
because in practice we use this function to compute the maximum lag on
variables in levels.

This function now returns the maximum number of nested diffs.

For example, on diff(x)+diff(diff(y)), this function was returning 3, and it
now returns 2.
2018-12-05 12:41:13 +01:00
Sébastien Villemot 66a766b0b7
Small modernization 2018-12-04 18:41:04 +01:00
Sébastien Villemot 8bda21c504
Remove workaround for Bison 3.2
This was a bug, now fixed in Bison 3.2.2. The latter version is now available
on most platforms (Debian unstable/testing, Homebrew, MSYS2).
2018-12-04 17:10:34 +01:00
Sébastien Villemot 018068de91
Fix typo 2018-12-03 17:29:53 +01:00
Sébastien Villemot a08ce3de2b
Yet more simplifactions using std::tuple 2018-12-03 16:07:13 +01:00
Sébastien Villemot 571b5d0816
Computation of temporary terms generalized to any derivation order 2018-11-30 12:22:13 +01:00
Sébastien Villemot 67ac4bf8ea
Allow diff() and log() in "expression" option of var_expectation_model 2018-11-29 16:01:49 +01:00
Sébastien Villemot e9341c7153
Implement option "expression" of var_expectation_model
The data structure written in the driver file is changed also in the case of
the "variable" option.
2018-11-28 17:33:59 +01:00
Sébastien Villemot b88e0de53f
Remove useless accessor methods for data members that are const in ExprNode classes
Those const data members are simply made public.
2018-11-28 14:35:30 +01:00
Sébastien Villemot cac65b071e
Fix visibility of matchVTCTPHelper method in subclasses of ExprNode 2018-11-28 14:18:08 +01:00
Houtan Bastani 41af0841c3
extend nopreprocessoroutput option to substitution output 2018-11-28 11:53:50 +01:00
Sébastien Villemot 16a97a96fd
Rewrite engine for matching the non-optimizing agents part in PAC
The engine is now more robust and should reject any expression that does not
conform to the expected form. It is also able to deal with more cases, such as
terms appearing with a minus sign, or variables in the middle of a
three-factors product.

BTW, use a std::tuple for storing the result of the matching inside
PacExpectationNode, and change the order of components within the
structure (variable first, scalar last).
2018-11-27 19:03:35 +01:00
Sébastien Villemot 003df49e7d
Remove useless "virtual" keyword in various ExprNode methods 2018-11-27 09:50:41 +01:00
Sébastien Villemot fa039b8c41
Fix bug in block decomposition with treatment of varexo_det 2018-11-23 17:39:18 +01:00
Sébastien Villemot d733f3fb5a
Various simplifications and modernizations of the block/bytecode part 2018-11-23 17:19:59 +01:00
Sébastien Villemot fc9cc2dc50
Output symmetric elements in derivatives of hessian w.r.t. parameters
The preprocessor now writes all the symmetric elements in the "hp"
matrix (derivatives of the hessian w.r.t. parameters), for consistency with all
other derivatives output.

Previously it was only writing one of the two symmetric elements, when indices
of endogenous were different.
2018-11-22 17:51:14 +01:00
Sébastien Villemot e3a3992c1c
Derivation engine w.r.t. parameters generalized to any order
Also, no longer compute two times symmetric elements in derivation w.r.t.
parameters at order 2, for consistency with derivation w.r.t. endogenous.
It is therefore now necessary to duplicate them in the output to keep behavior
unchanged.
2018-11-22 17:13:55 +01:00
Sébastien Villemot 6fa115aedd
Derivation engine w.r.t. endogenous generalized to any order 2018-11-22 17:13:55 +01:00
Sébastien Villemot b7d50560f8
Move ModelTree constructor up in the file for clarity 2018-11-22 17:13:55 +01:00
Sébastien Villemot dfe1a005af
Bison bug has been fixed in 3.2.2 2018-11-22 11:46:36 +01:00
Sébastien Villemot fb883bbfb0
Small simplification of Bison file
Thanks to Akim Demaille for the suggestion.
2018-11-21 14:38:06 +01:00
Sébastien Villemot f01c4f85c2
Fix Julia bug introduced in previous commit 2018-11-19 16:39:05 +01:00
Sébastien Villemot 33994dde03
Optimization for use_dll at 2nd and 3rd order
When creating the sparse matrix (in MATLAB or C mode), since storage is in
column-major order, output the first column, then the second, then the third.
This gives a significant performance boost in use_dll mode (at both compilation
and runtime), because it facilitates memory accesses and expression reusage.
2018-11-19 16:03:47 +01:00
Sébastien Villemot b524e19cde
Remove duplicate storage of temp terms for params derivs in ModelTree 2018-11-16 18:26:36 +01:00
Sébastien Villemot e9b5f239df
Properly deal with model local variables in params derivatives file
Closes #13
2018-11-16 18:26:11 +01:00
Sébastien Villemot 3d2125287a
Temporary terms: various simplifications and added comments 2018-11-16 17:11:06 +01:00
Sébastien Villemot e89dd9cb8b
Make storage of derivatives ready for k-order
This is the first step towards computing k-order derivatives.

Ref Dynare/dynare#217, #10
2018-11-15 17:48:46 +01:00
Houtan Bastani 3eff2b91c2
rename ds variable in epilogue to a longer name 2018-11-15 15:04:02 +01:00
Houtan Bastani a8c7fb694b
fix typo 2018-11-15 14:48:31 +01:00
Houtan Bastani 987465365c
Revert "macroprocessor: allow inline comments. closes #1550"
This reverts commit 17dd443341.
2018-11-15 12:34:05 +01:00
Houtan Bastani eca82834a1
Revert "Fix parsing of empty strings in macro-processor"
This reverts commit 158f027db2.
2018-11-15 12:33:59 +01:00