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
Sébastien Villemot
7bb5382428
Always use brace-initializer in constructors
...
The syntax makes clearer the distinction between a function call and an
initialization. Also, it prevents bugs due to implicit type conversions.
2018-10-04 17:19:18 +02:00
Sébastien Villemot
3f26933f44
Replace ExternalFunctionSetOrNot enum by integer constants
...
This was not conceptually an enum, but rather a collection of unrelated
constants:
- two constants for use as placeholder for symbol IDs at different places
- one constant for the default number of arguments
2018-10-02 18:10:12 +02:00
Sébastien Villemot
15d026e54e
C output: split generated function into several smaller subfunctions
...
This mimicks the structure of M-functions (though the logic for filling the
temporary terms vector is a bit different).
This change implied a modification in the way we compute the checksum in case
of block decomposition (the temporary terms for the C output are not correctly
computed in that case).
2018-10-01 16:04:01 +02:00
Houtan Bastani
c9f5cef99b
write AST in JSON
2018-09-18 17:48:04 +02:00
Houtan Bastani
eb74d48393
trend_component_model: replace `trends` option with `targets`
2018-09-13 12:21:23 +02:00
Houtan Bastani
dc9ecbb49a
fix bug in columns of EC matrix
2018-09-12 17:56:30 +02:00
Houtan Bastani
8acee8fd54
fix AR and EC matrices for double diff
2018-09-11 16:56:05 +02:00
Houtan Bastani
f71c861d5e
output EC matrix in file for trend component models
2018-09-10 17:44:04 +02:00
Houtan Bastani
46709ada3f
output AR matrix in file for trend component models
2018-09-10 14:51:33 +02:00
Houtan Bastani
f5e5dea1be
support hard-coded parameters and parameter expressions in AR matrix
2018-09-07 10:14:18 +02:00
Houtan Bastani
acc197f539
output AR matrix in file
2018-09-06 18:00:05 +02:00
Sébastien Villemot
e19a14869e
Convert ExprNodeOutputType into a class enum
...
Incidentally, replace the IS_* macros by inline functions.
2018-09-05 18:28:32 +02:00
Sébastien Villemot
c6d4cb88c3
ExprNode and its subclasses are no longer friends of DataTree
...
This ensures a better isolation between the container and the containees.
2018-09-05 18:28:32 +02:00
Sébastien Villemot
004d909621
Use smart pointers for storage of ExprNode in DataTree class
...
- BTW, store them in a std::vector rather than std::list
- incidentally, fix issue in VariableNode::removeTrendLeadLag where expression
sharing was possibly violated when creating a new VariableNode
2018-09-05 18:28:32 +02:00
Houtan Bastani
9f0c30740e
introduce epilogue block
2018-09-05 12:31:49 +02:00
Stéphane Adjemian(Charybdis)
a35c1785a8
Cosmetic change.
2018-09-04 12:08:05 +02:00
Houtan Bastani
49d8931fc0
fix typo in 8584323563
2018-09-04 10:45:39 +02:00
Houtan Bastani
8584323563
provide information on order of ec.vars
2018-09-04 10:39:05 +02:00
Houtan Bastani
fde836d7fe
trend_component_model: find trend_vars associated with equation
2018-08-31 14:24:44 +02:00
Houtan Bastani
948e8cb6e4
fix bug in creation of ec vars for pac equation
2018-08-28 16:00:25 +02:00
Houtan Bastani
9e6bdc2334
Revert "fix bug in collection of ec vars of pac equation"
...
This reverts commit 74dd6a69e9
.
2018-08-28 13:32:48 +02:00
Houtan Bastani
74dd6a69e9
fix bug in collection of ec vars of pac equation
2018-08-27 16:41:39 +02:00
Stéphane Adjemian(Charybdis)
74b693a1ec
Cosmetic change.
2018-08-14 16:46:43 +02:00
Stéphane Adjemian(Charybdis)
adbeb49b29
Do not print non optimizing behaviour field in PAC if empty.
2018-08-14 16:45:01 +02:00
Houtan Bastani
ac850f5187
pac: stop processing of PAC equation if optimizing share parameter is hard-coded
2018-08-13 17:22:28 +02:00
Houtan Bastani
d3bd6ace90
pac: print optimizing share parameter
2018-08-13 17:00:47 +02:00
Houtan Bastani
edc242d471
preprocessor: find optimizing shares of agents in PAC equation
2018-08-13 14:34:57 +02:00
Houtan Bastani
c5c61f99ba
fix bug with max_lag reported for PAC equation
2018-08-13 12:12:20 +02:00
Sébastien Villemot
f3c2a1bf87
New var_expectation_model statement and re-design of var_expectation operator
...
Given a previously declared var_model, the var_expectation_model statement is
used to declare a way of forming expectations with this VAR (possibly using a
finite or infinite discounted sum). The var_expectation operator now takes a
single argument, the name of the var_expectation_model.
For the moment, this only works when the var_model is using equations
explicitly declared in the model block.
2018-08-02 08:39:09 +02:00
Sébastien Villemot
04b6690d5a
C++11: convert ExternalFunctionType to a class enum
2018-07-18 17:28:23 +02:00
Sébastien Villemot
4ad0e500d4
C++11: convert {Unary,Binary,Trinary}Opcode to class enums
2018-07-18 16:18:26 +02:00
Sébastien Villemot
d6055c1407
C++11: convert SymbolType to a class enum
2018-07-17 18:55:26 +02:00
Sébastien Villemot
946d105c04
Remove C and C++ preprocessor output types
...
This code is broken since the temporary terms array changes. It is probably not
worth maintaining it.
2018-07-17 16:52:11 +02:00
Sébastien Villemot
b8a5dfdc39
Replace several usages of C macroprocessor with C++ constructs
2018-07-17 16:36:58 +02:00
Houtan Bastani
bbb2b067bf
prevent compilation warning
2018-06-27 13:45:51 +02:00
Houtan Bastani
b8ae9f6935
Fix max lags for var
2018-06-11 15:18:06 +02:00
Houtan Bastani
84c2dc5f36
transform_unary_ops now introduces aux variables/equations for all unary ops specified by UnaryOpNode::createAuxVarForUnaryOpNode()
...
In the absence of this option, if a var_model statement(s) is present, then aux vars/eqs are created for the same types of unary operators but only for equations specified in the var_model statement
In the absence of both this option and var_model statements, no unary op auxiliary variables are created
diffs continue to be substituted everywhere; for the moment auxiliary variables are created for diffs of expressions. A forthcoming change will allow auxiliary variables created for diffs of expressions to be linked with their lagged expressions as is currently the case for diffs of variables
2018-06-07 17:16:12 +02:00
Houtan Bastani
a30f8f365e
Only create auxiliary variables for diffs that appear in VAR equations or equations that have pac_expectations in them
...
Otherwise, substitute the diff (i.e. `diff(x)` -> `x-x(-1)`)
2018-06-05 18:39:13 +02:00
Houtan Bastani
2cd3aa95cc
When `transform_unary_ops` is passed, only substitute unary operators that appear in VAR equations
2018-06-05 17:41:15 +02:00
Sébastien Villemot
7e16307382
Simplify DataTree maps using std::tuple
2018-06-04 17:35:02 +02:00
Sébastien Villemot
abe44fb063
Replace the use of boost::bind by a lambda
2018-06-04 16:51:36 +02:00
Sébastien Villemot
272d36a37c
Remove useless casts of nullptr
2018-06-04 16:39:01 +02:00
Sébastien Villemot
608c43450c
Replace most calls to make_pair by braced-initializer lists or emplace()/emplace_back()
2018-06-04 16:36:46 +02:00
Sébastien Villemot
182c53273e
Remove useless spaces in type qualifiers
...
In C++11, it is no longer necessary to put a space between two consecutive ">".
2018-06-04 15:03:31 +02:00
Sébastien Villemot
1e56c73377
Port to C++11 nullptr keyword
...
Performed using modernize-use-nullptr from clang-tidy.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2018-06-04 15:03:31 +02:00
Sébastien Villemot
e73ebc7033
Port to C++11 noexcept keyword
...
Performed using modernize-use-noexcept from clang-tidy.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-noexcept.html
2018-06-04 15:03:31 +02:00