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
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
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
6fa115aedd
Derivation engine w.r.t. endogenous generalized to any order
2018-11-22 17:13:55 +01:00
Sébastien Villemot
4a974bb428
The preprocessor now compiles the MEX when use_dll is specified
...
New options "mexext" and "matlabroot" are introduced, so that the preprocessor
knows where to find MATLAB and which architecture to compile for.
Only recent gcc is now supported. A set of optimization flags is used so that
compilation goes reasonably fast on large models.
Consequently, options "msvc", "mingw" and "cygwin" have been removed.
2018-10-26 18:09:13 +02:00
Sébastien Villemot
1c33af4844
Fix bug introduced in bfd93f4ac0
with correlations in estim_params
...
For correlations, there is one extra columns (since there are two symbol
indices). MATLAB automatically adds the missing column, while Octave is
stricter when verifying dimensions.
By the way, add a missing comma.
2018-10-26 11:11:10 +02:00
Stéphane Adjemia (Scylla)
bfd93f4ac0
Fixed estimated_params_init behaviour...
...
... when an initial value is given to a parameter that is not
estimated.
The generated driver file was crashing with cryptic error message
because we were searching in the first (and second) column of a
potentially empty array with 0 columns. The fix is to initialize the
fields of estimated_params_ with empty arrays with 10 columns (ie
zeros(0, 10)). Also print a message in the matlab command window if
parameter declared in estimated_params_init is not estimated.
2018-10-25 10:24:25 +02:00
Sébastien Villemot
1089a223c4
Clean up default constructors/destructors
2018-10-11 17:08:44 +02:00
Sébastien Villemot
f2cf86b734
Add copy constructors / assignment operators for the DataTree class hierarchy
...
In particular, it is necessary to turn back DataTree::AddVariable() into a
non-virtual method, because it is called from DataTree's constructor. Enforcing
the absence of leads/lags is now done using a new boolean DataTree::is_static.
Take advantage of the new copy constructor for handling
PlannerObjectiveStatement more elegantly.
Unfortunately it is not possible to implement *move* constructor / assigment
operators, because the reference ExprNode::datatree is not mutable.
2018-10-10 12:53:55 +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
Ferhat Mihoubi
139e3efa82
Adds a new model option "linear_decomposition" that creates a block composed of the non-linear equations o the model
2018-09-28 14:54:52 +02:00
Houtan Bastani
85dbb649b7
move trend_component_table and var_model_table to DynamicModel as they are only used there
2018-09-14 17:04:06 +02:00
Houtan Bastani
0c66e724cb
fix typo
2018-08-22 17:09:16 +02:00
Houtan Bastani
7d9072a227
var_expectation: rename var_model_name to aux_model_name
2018-08-22 16:57:36 +02:00
Stéphane Adjemia (Scylla)
a406c18598
Allow trend_component_model in var_expectations.
2018-08-22 16:50:01 +02:00
Houtan Bastani
539fddc9f6
introduce var model table
2018-08-22 12:15:02 +02:00
Houtan Bastani
afe0e475b1
trend_component_model statement
2018-08-17 16:52:48 +02:00
Houtan Bastani
e24cabe3a5
var_expectation: print type specific id for discount index
2018-08-08 14:59:50 +02:00
Stéphane Adjemian(Charybdis)
32da131a77
Added associated index in M_.endo_names for expected variable.
2018-08-04 19:50:12 +02:00
Stéphane Adjemian(Charybdis)
ed32caeb46
Added missing field in VAR_EXPECTATION_MODEL description (variable).
2018-08-04 12:03:53 +02:00
Stéphane Adjemian(Charybdis)
022395aaf6
Fixed param_indices vector for VAR_EXPECTATION_MODEL.
2018-08-04 11:46:31 +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
122e154764
PlannerObjectiveStatement now owns its model_tree
...
By the way, error out if the planner_objective statement is used two times.
2018-07-31 13:00:41 +02:00
Sébastien Villemot
725b91e5d6
Several fixes to computing tasks statements
...
- store objects whose persistence is not guaranteed (e.g. strings) as values
instead of references (to avoid possible segfaults)
- on the contrary, always store the SymbolTable as a reference, since its
persistence is guaranteed, and we don't want to copy it
- use pass-by-value in constructors whenever possible
- remove useless const keyword when passing by value
2018-07-31 10:51:28 +02:00
Sébastien Villemot
4a04a38374
C++11: convert ExtendedPreprocessorTypes to class enums
2018-07-18 17:28:26 +02:00
Sébastien Villemot
14948401e4
C++11: convert PriorDistributions to a class enum
2018-07-18 16:52:12 +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
53f83aeb12
No longer use boost::lexical_cast
...
Most cases can be handled in C++11 by std::stoi() and std::stod().
For the macroprocessor ArrayMV<T>::print() method, use template
specialization (instead of a lexical_cast to detect between T=int and
T=string).
2018-07-04 15:53:41 +02:00
Sébastien Villemot
30c205f418
C++11: replace calls to std::atof() by std::stod()
2018-07-04 14:53:13 +02:00
Sébastien Villemot
5e1d722013
C++11: replace most calls to std::atoi() by std::stoi()
...
The latter accepts a std::string as argument.
2018-07-04 14:53:08 +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
Stéphane Adjemian(Charybdis)
a2b19cbfff
Added missing writeJsonOutput method for VarModelStatement.
2018-06-15 14:56:44 +02:00
Houtan Bastani
d453e81594
pac_model: write as more output to M_ instead of options_; use rmfield instead of clear
2018-06-05 11:14:03 +02:00
Houtan Bastani
16a049f0d8
Make changes to pac code for C++11
2018-06-05 11:14:03 +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
64eb494298
Port to C++11 syntax for default constructors
...
Performed using modernize-use-equals-default from clang-tidy.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-default.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
dcfc598196
Remove redundant void arguments
...
Performed using modernize-redundant-void-arg from clang-tidy.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
2018-06-04 15:02:57 +02:00
Sébastien Villemot
20bbbd46c3
Port some constructors to pass-by-value using C++11 move semantics
...
Performed using modernize-pass-by-value from clang-tidy.
Manual intervention was needed to fix an issue in MacroValue.hh.
Also replace std::move by move, since we import the std namespace.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-pass-by-value.html
2018-06-04 12:35:28 +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
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
Houtan Bastani
dd8b05e2f0
add undiff info to pac output
2018-05-17 16:53:27 +02:00
Houtan Bastani
bb1cc0bebf
simplify var_model statement calls
2018-04-17 16:56:02 +02:00
Houtan Bastani
fb8d9258d0
add pac_model statement
2018-04-04 11:48:59 +02:00
Houtan Bastani
5d339b69de
simplify pac_expectation code
2018-03-07 15:04:07 +01:00