Houtan Bastani
afe0e475b1
trend_component_model statement
2018-08-17 16:52:48 +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
Houtan Bastani
0dffee4650
fix typo
2018-08-13 11:08:58 +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
45cd8e6853
Fix regression in nested diffs introduced in 90d8b579
...
See McModelTeam/McModelProject/issues/97.
2018-07-30 12:53:23 +02:00
Sébastien Villemot
b9ee0bb204
aux_equations may diverge from those in the main model
...
aux_equations only contain the definition of auxiliary variables, and
may diverge from those in the main model (equations), if other model
transformations applied subsequently. This is not a problem, since
aux_equations is only used for regenerating the values of auxiliaries
given the others.
For example, such a divergence appears when there is an expectation
operator in a ramsey model, see
tests/optimal_policy/nk_ramsey_expectation.mod */
2018-07-27 14:20:36 +02:00
Sébastien Villemot
762f25abe9
Remove useless separate list for diff auxiliary variables
...
This table serves no useful purpose. It is better to append auxiliary equations
at the time they are created, to avoid messing with the recursive ordering.
2018-07-26 17:41:58 +02:00
Sébastien Villemot
90d8b579cc
Fix incorrect recursive ordering of aux vars with diff not used at current period
...
Ensure that all diff operators appear once with their argument at current
period (i.e. maxLag=0).
If it is not the case, generate the corresponding expressions.
This is necessary to avoid lags of more than one in the auxiliary
equation, which would then be modified by subsequent transformations
(removing lags > 1), which in turn would break the recursive ordering
of auxiliary equations.
See McModelTeam/McModelProject/issues/95 for an example.
2018-07-26 17:41:58 +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
c12088f314
C++11: convert AuxVarType to class enum
2018-07-17 17:38: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
15f5f4f1be
use front inserter instead of back inserter for unary/diff auxiliary equations
...
(cherry picked from commit 6a95831147d942c23fbc3a0a0b1506650eb49b7d)
2018-07-10 12:06:42 +02:00
Sébastien Villemot
988a9f6e2d
std::open and std::fstream constructor accept a std::string for filename in C++11
2018-06-27 15:30:45 +02:00
Sébastien Villemot
b91ed6f78c
Move the location of static and dynamic files on the filesystem
...
- M and MEX files are now under +${MODELNAME}/
- bytecode and C source now under ${MODELNAME}/model/
2018-06-27 15:30:25 +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
130004ef47
Simplify types for storing derivatives using std::tuple
2018-06-05 15:34:34 +02:00
Sébastien Villemot
7e16307382
Simplify DataTree maps using std::tuple
2018-06-04 17:35:02 +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
7d9cd718fc
Replace more typedefs by using
...
Those were not automatically replaced by clang-tidy, I don’t know why…
2018-06-04 15:03:31 +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
Sébastien Villemot
33b1359905
Port to C++11 emplace_back() method on containers
...
Performed using modernize-use-emplace from clang-tidy.
Manual intervention was needed to transform a NULL into nullptr in SymbolTable.cc.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-emplace.html
2018-06-04 15:03:31 +02:00
Sébastien Villemot
c0ed97d247
Port to C++11 auto keyword
...
Performed using modernize-use-auto from clang-tidy.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html
2018-06-04 15:03:26 +02:00
Sébastien Villemot
6cf4e6dc0c
Port to C++11 range-based for loops
...
Performed using modernize-loop-convert from clang-tidy.
Manual intervention was needed in MacroValue.cc because of a variable name
capture issue.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-loop-convert.html
2018-06-04 12:26:16 +02:00
Sébastien Villemot
28582c4a4b
Merge branch 'temporary_terms_array'
2018-06-04 11:40:49 +02:00
Houtan Bastani
f338e87692
Revert "remove unnecessary code for calculation of max lag when equation have been undiffed"
...
This reverts commit d7c979a4e6
.
2018-06-02 12:17:05 +02:00
Houtan Bastani
d7c979a4e6
remove unnecessary code for calculation of max lag when equation have been undiffed
2018-06-01 15:52:40 +02:00
Houtan Bastani
1b952a12e6
fix bug in var max lag and simplify code
2018-05-31 15:36:03 +02:00
Sébastien Villemot
59e427cf66
Merge branch 'master' into temporary_terms_array
2018-05-30 17:20:48 +02:00
Houtan Bastani
0aea4f0cc4
introduce dynare command transform_unary_ops to create auxiliary variables for certain unary ops. This will be used for VARs and VECMs but can also be used for OLS, for example
2018-05-30 16:48:08 +02:00
Houtan Bastani
856f6f508a
Revert "create aux vars for certain unary ops contained in diff operator"
...
This reverts commit f600a65c0e
.
2018-05-30 15:50:42 +02:00
Houtan Bastani
922d0551a8
Revert "fixes to auxiliary variable creation for unary ops in diff operators"
...
This reverts commit 48031b99f6
.
2018-05-30 15:50:26 +02:00
Houtan Bastani
48031b99f6
fixes to auxiliary variable creation for unary ops in diff operators
2018-05-30 14:42:00 +02:00
Sébastien Villemot
0b617ceb4b
Merge branch 'master' into temporary_terms_array
2018-05-29 17:25:11 +02:00
Houtan Bastani
f600a65c0e
create aux vars for certain unary ops contained in diff operator
2018-05-29 17:00:56 +02:00
Sébastien Villemot
08eedcb448
Add const qualifier for tef_terms in writeOutput method and siblings
...
Consequently, change various function calls where tef_terms was empty, passing
an (empty) rvalue instead of an lvalue.
2018-05-29 14:22:01 +02:00
Sébastien Villemot
33b280b3d5
Remove some ExprNode::writeOutput variants
...
More precisely, remove those variants where temporary_terms can be specified
without temporary_terms_idxs, in order to make clear that the latter is
expected. For situations where the tt_idxs are not needed (C, block MATLAB), an
empty map has to be explicitly given.
2018-05-29 11:13:55 +02:00
Sébastien Villemot
3f874cfced
Remove obsolete function
2018-05-28 16:39:28 +02:00
Houtan Bastani
90c90ca85d
pac: undiff: fix bug in erroneous conditional
2018-05-28 15:55:01 +02:00
Houtan Bastani
ad19c535ef
clarify error messages
2018-05-28 15:54:20 +02:00
Sébastien Villemot
dd6799187c
Fix derivs w.r.t. parameters with temporary terms array
2018-05-28 15:23:15 +02:00
Sébastien Villemot
8657d4dc98
Fix block decomposition with temporary terms array
2018-05-28 11:58:11 +02:00
Sébastien Villemot
38ed0f2ffc
Remove unused writeChainRuleDerivative methods
2018-05-25 17:10:16 +02:00
Sébastien Villemot
c7c26190d6
Reactivate use_dll mode
2018-05-25 15:48:55 +02:00
Sébastien Villemot
467604d428
Simplify ExprNode::writeOutput methods
...
The version with no temporary_terms_idxs argument needs not be virtual, since
it is the same implementation in all derived classes. Rather move it at the
level of the base ExprNode class.
2018-05-25 12:20:25 +02:00
Sébastien Villemot
64323ef730
Add compatibility layer for Matlab/Octave code not using the new temporary terms array interface
2018-05-24 19:35:35 +02:00
Sébastien Villemot
164a6f303b
Fix bug in temporary terms array in the presence of model local variables
...
In the presence of MLVs, the temporary terms indexing was corrupted. The code
was using the implicit assumption that the ExprNodeLess ordering was giving the
same ordering as the temporary terms indexes ordering. But MLVs can be higher
in ExprNodeLess ordering than some other temporary terms, while they have the
lowest temporary terms index, hence the bug.
Fix this by no longer relying on the ExprNodeLess ordering, and rather use a
full map<ExprNode *, int> for ModelTree::temporary_terms_idxs. By the way,
simplify the code by removing a few useless data structures (e.g.
ModelTree::temporary_terms_idxs_*).
2018-05-24 19:35:21 +02:00
Sébastien Villemot
a9bfd1223b
Fix assertions that check the length of temporary terms vectors
...
Model local variables had been omitted in the length computations.
2018-05-24 17:04:16 +02:00
Sébastien Villemot
41d7496b46
Fix bug in wrapper functions (*_{dynamic,static}_resid_g1{,_g2,_g2_g3}.m)
...
The last argument (T_flag) was missing in the function definitions (but it was
used in some function calls).
2018-05-23 17:34:00 +02:00
Sébastien Villemot
3fa14031a2
Fix bug in *_{dynamic,static}_resid_g1_g2_g3.m functions
2018-05-22 12:02:48 +02:00
Houtan Bastani
732a317030
Merge branch 'master' into temporary_terms_array
2018-05-18 16:40:12 +02:00
Houtan Bastani
3d946ec8b7
var: check for leaded/contemporaneous variables
2018-05-16 12:17:06 +02:00
Houtan Bastani
912261e5fc
pac: separate params into EC and AR
2018-05-04 15:26:21 +02:00
Houtan Bastani
d686275da1
fix bug with predetermined variables used in model local variables
2018-04-18 14:29:40 +02:00
Houtan Bastani
7ac33099f8
support undiff in pac model
2018-04-17 16:56:27 +02:00
Houtan Bastani
09e73f3bb4
var_model: fix lag info when diff present
2018-04-17 16:55:55 +02:00
Houtan Bastani
fb8d9258d0
add pac_model statement
2018-04-04 11:48:59 +02:00
Stéphane Adjemian(Charybdis)
b52ded0eb4
Fixed doc headers for static and dynamic julia modules.
2018-03-29 09:31:25 +00:00
Stéphane Adjemian(Charybdis)
849936d81b
Same as bce9b66312
for matlab output.
2018-03-28 19:14:43 +02:00
Stéphane Adjemian(Charybdis)
bce9b66312
Added arrays providing the number of temp terms in Julia modules...
...
... For static and dynamic models.
2018-03-28 17:50:58 +02:00
Houtan Bastani
ec215e2a44
separate temporary terms: WIP
2018-03-28 16:41:48 +02:00
Houtan Bastani
7cbd7b6e1e
Revert "Added new routine for the dynamic model (only computes the jacobian)."
...
This reverts commit 84c6bf5daf
.
2018-03-28 16:14:15 +02:00
Houtan Bastani
80060fb9ef
Merge remote-tracking branch 'origin/declare_vars_in_model_block'
2018-03-19 17:05:03 +01:00
Stéphane Adjemian(Charybdis)
deb77be8f1
Fixed bug.
...
Preprocessor was not returning an error when some of the exogenous
variables were not used in the model.
2018-03-13 09:20:14 +01:00
Stéphane Adjemian(Charybdis)
84c6bf5daf
Added new routine for the dynamic model (only computes the jacobian).
2018-03-10 10:20:50 +01:00
Houtan Bastani
5d339b69de
simplify pac_expectation code
2018-03-07 15:04:07 +01:00
Houtan Bastani
81f2258228
var_model: store max lag info
2018-03-06 15:17:39 +01:00
Houtan Bastani
a69c53b0c8
clean up var_model code
2018-03-06 14:42:11 +01:00
Houtan Bastani
03f88931c6
Merge branch 'diff'
2018-03-05 13:08:09 +01:00
Stéphane Adjemian(Charybdis)
051f41c5f7
Shortened a function name.
2018-03-04 16:54:11 +01:00
Houtan Bastani
204457cd86
explicitly close output streams
2018-03-02 18:39:16 +01:00
Houtan Bastani
feb5b93eea
create function to calculate aux vars as dseries
2018-03-02 17:50:35 +01:00
Houtan Bastani
583734f515
new diff equations not added to aux_equations
2018-03-02 16:40:19 +01:00
Houtan Bastani
9885fbacff
diff: substitute auxiliary variables starting from the least lagged
2018-03-02 12:32:01 +01:00
Stéphane Adjemian(Charybdis)
02ef145aa5
Fixed initialization of state_var for julia.
2018-03-01 15:55:14 +01:00
Stéphane Adjemian(Charybdis)
250106f1d2
Cosmetic change.
2018-03-01 09:58:04 +01:00
Houtan Bastani
1e20717f58
fix bug in substitution of diff operator
2018-02-28 17:33:00 +01:00
Houtan Bastani
a1437ac982
Merge remote-tracking branch 'dynare-preprocessor-github/master' into other-master
2018-02-26 12:09:58 +01:00
Houtan Bastani
b504f160ca
move files to src directory
2018-02-15 11:48:04 +01:00