Commit Graph

145 Commits (9b98da424a6d6e35b667f3aa99637b6ae232eee4)

Author SHA1 Message Date
Sébastien Villemot 9b98da424a
Simplification in BinaryOpNode::getPacAREC() 2019-03-29 17:06:24 +01:00
Sébastien Villemot 4114b8a9e1
Simplification in BinaryOpNode::fillAutoregressiveRow
By the way, fix bug in detection of duplicate elements.
2019-03-29 17:06:23 +01:00
Houtan Bastani 92af6ffbe7
pass flag because regex’s on matlab side depend on it 2019-03-15 16:12:54 +01:00
Houtan Bastani da9f5dcffb
Revert "make pac expectation JSON output like that of var expectation"
This reverts commit 21d42e6010.
2019-03-15 16:11:55 +01:00
Houtan Bastani 21d42e6010
make pac expectation JSON output like that of var expectation 2019-03-15 15:47:50 +01:00
Houtan Bastani 50c26f4945
further simplifications related to AR matrices 2019-03-15 14:35:57 +01:00
Houtan Bastani f1d1c1e1c1
trend_component_model: simplify AR 2019-03-15 12:27:32 +01:00
Houtan Bastani a3c08f932e
simplify code to find autoregressive matrix for VARs 2019-03-15 12:26:59 +01:00
Houtan Bastani 0544141545
pac: fix bug when checking for symb_ids 2019-03-15 12:06:10 +01:00
Houtan Bastani 1e21904496
use emplace_back instead of push_back 2019-03-11 15:51:41 +01:00
Houtan Bastani 583c8373d7
pac: add residual to additive part 2019-03-07 12:23:19 +01:00
Houtan Bastani 9b1b4113d9
pac: keep order of variables in ec part of pac equation and add scaling factor to output 2019-03-07 11:31:45 +01:00
Houtan Bastani 14e7c92f14
pac: fix bug in setting of target variable 2019-03-07 11:31:45 +01:00
Sébastien Villemot abfe1a70e7
Fix typo 2019-03-05 18:59:40 +01:00
Houtan Bastani 68850536e6
stop processing if we substitute a unary op with a lead. closes #20 2019-03-05 15:20:32 +01:00
Houtan Bastani a1c79e6a4c
remove code that should have been removed in 9963686e72 2019-03-05 12:33:21 +01:00
Houtan Bastani 9963686e72
handle additive terms when PAC equation does NOT have non/optimizing agents 2019-03-05 12:20:45 +01:00
Houtan Bastani 5f013756f2 find additive parts to pac equation 2019-02-27 23:12:05 +01:00
Houtan Bastani effa40543e
pac: find correct target variable when pac equation accounts for share of optimizing agents 2019-02-25 18:46:44 +01:00
Sébastien Villemot 8ae7f81fd9
Fix bug with var_expectation nodes introduced in 38152c34a4
We must provide a return value for
VarExpectationNode::maxLagWithDiffsExpanded().

Return zero, which will lead to the right overall result even if it is not
strictly the right choice (see the comment in the code).
2019-02-22 17:30:09 +01:00
Houtan Bastani 469a328cfc
replace make_pair and make_tuple 2019-02-21 10:42:10 +01:00
Houtan Bastani 240aba6709
move pac info out of pac expectation node 2019-02-20 15:35:13 +01:00
Houtan Bastani 34756833ae
pac: output info into substructures based on pac model name & equation tag 2019-02-19 18:32:42 +01:00
Houtan Bastani 760eaf6712
fix compilation warning 2019-02-19 18:32:42 +01:00
Houtan Bastani fc6d04b015
create A0 and A0star matrices for trend component models 2019-02-19 12:26:30 +01:00
Houtan Bastani 0ea84fa9a4
pac: allow steady state growth and model consistent expectation substitution in pac equation 2019-02-18 15:11:45 +01:00
Houtan Bastani b3fbb86214
relieve constraint that max lag on EC matrix is 1 2019-02-15 11:12:07 +01:00
Houtan Bastani f4837e6c94
fix AR and EC matrices when `equation = C` results in a simplified equation 2019-02-14 17:09:57 +01:00
Houtan Bastani 6e680c0159
simplify in accordance with 02ae0af3e5 2019-01-29 17:52:19 +01:00
Houtan Bastani 302fec4dec
remove comparisons to nullptr 2019-01-29 17:46:09 +01:00
Houtan Bastani 02ae0af3e5
change map type for readability 2019-01-29 17:43:17 +01:00
Houtan Bastani 90c45b2cd6
remove unused function added in d922ae8ffc 2019-01-28 15:34:38 +01:00
Houtan Bastani f5df7e7567
when an equation is of the form `X` = `constant`, replace all occurrences of `X` in other equations with `constant` 2019-01-28 15:32:12 +01:00
Houtan Bastani d922ae8ffc
pac_model: permit lag on growth option 2019-01-25 14:52:26 +01:00
Sébastien Villemot e7c9c26d2d
More modernizations with clang-tidy 2019-01-15 11:08:47 +01:00
Houtan Bastani bb624ec6a7
epilogue: allow for simulations in epilogue block 2018-12-19 16:09:30 +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 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 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 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
Houtan Bastani 9968f5c971 fix bug in JSON output: JSON values that are decimals must be preceded by a 0
e.g. 0.5 is valid but .5 is not.
2018-10-23 14:00:36 +02:00
Houtan Bastani 9eaf39235e write aux_unary_op function to output 2018-10-15 12:04:53 +02:00
Sébastien Villemot 1089a223c4 Clean up default constructors/destructors 2018-10-11 17:08:44 +02:00
Sébastien Villemot 63a5ffb761 Rename ExprNode::cloneDynamic into ExprNode::clone, for clarity 2018-10-10 13:08:11 +02:00
Sébastien Villemot 215283005e No longer store symbol type in VariableNode
This facilitates switching variable types on the fly. In particular, this
allows removing the hack in DynamicModel::updateAfterVariableChange() that way
basically recreating all the nodes after the type change.
2018-10-10 12:34:05 +02:00