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