Michel Juillard
8d3876e55b
putting functions related to extended preprocessor in ExternalFiles.cc
2014-04-24 20:54:38 +02:00
Michel Juillard
cffe121a37
fixing extended-preprocessor C++ API and test case
2014-04-24 14:33:04 +02:00
Sébastien Villemot
0908b0a50a
Fix compilation error introduced in 0983ca78.
2014-04-07 14:21:28 +02:00
Michel Juillard
cd063ce3fe
extended-preprocessor: starting a C interface (not finished)
2014-04-05 15:46:35 +02:00
Sébastien Villemot
7a3ff5b7fc
Merge pull request #636 from JohannesPfeifer/preprocessor
...
Fix comments in header of dynamic and static files
2014-03-17 15:10:31 +01:00
Michel Juillard
6f65d48376
extended-preprocessor: starting a C interface (not finished)
2014-03-16 18:49:54 +01:00
Johannes Pfeifer
892b565fc8
Fix comments in header of dynamic and static files
...
Columns and rows were confused
2014-03-14 10:21:42 +01:00
Sébastien Villemot
8882f809c3
Introduce a new abstract class for external function nodes.
...
This fixes the following bugs:
- 1st and 2nd ext fcn deriv nodes were incorrectly added to
DataTree::external_function_node_map, because of the chaining of
constructors.
- the following methods of FirstDerivExternalFunctionNode were not overloaded:
toStatic(), buildSimilarExternalFunctionNode()
- the following methods of SecondDerivExternalFunctionNode were not overloaded:
toStatic(), buildSimilarExternalFunctionNode(), compile(),
compileExternalFunctionOutput()
2014-03-13 12:12:17 +01:00
Michel Juillard
3d11273a61
extended-preprocessor: update test example1
2014-02-24 13:33:48 +01:00
Michel Juillard
416b7b849f
extended-preprocessor: adding back writing of model local variables (#)
2014-02-24 13:33:48 +01:00
Michel Juillard
17d0177276
returning sparse matrix in compressed format
2014-02-24 13:33:48 +01:00
Michel Juillard
6e0ef026ac
write C++ version of model functions without temporary terms
2014-02-24 13:33:48 +01:00
Houtan Bastani
8a50eee858
ms-dsge: change types of output for better packaging
2014-02-24 12:41:02 +01:00
Houtan Bastani
053ee41ac0
ms-dsge: create C driver file without statements
...
Conflicts:
preprocessor/DynareMain2.cc
preprocessor/ModFile.cc
preprocessor/ModFile.hh
preprocessor/Statement.hh
2014-02-24 12:41:02 +01:00
Sébastien Villemot
47a8fd0147
Add line numbers of equations in preprocessor error messages.
...
Closes #584
2014-01-27 16:41:43 +01:00
Sébastien Villemot
6ba0980460
Add a warning when some exogenous are not used in the model
2013-11-29 16:03:45 +01:00
Sébastien Villemot
1414f98cff
Refactor code for collecting variables appearing in expressions
...
- rename ExprNode::collectVariables in ExprNode::collectDynamicVariables
- new ExprNode::collectVariables: same as above, but without lag information
- remove ExprNode::findUnusedEndogenous: essentially redundant with the above)
- remove ExprNode::collectModelLocalVariables: idem
2013-11-29 15:37:11 +01:00
Houtan Bastani
fae00ea729
fix bug introduced by ee812f38816294450a307ccb8f2fb2a27fc032f0
2013-11-19 13:05:08 +01:00
Houtan Bastani
1707e6aa96
preprocessor: bug fix: return oo
2013-11-19 11:56:39 +01:00
Houtan Bastani
29507f8e45
proprocessor: block code bug fix: M and oo not being passed to solve_two_boundaries
2013-11-19 11:54:00 +01:00
Houtan Bastani
c23cbb5edd
clang compilation: replace ostringstream array with vector of strings
2013-11-18 12:16:37 +01:00
Houtan Bastani
c03f89eb8d
preprocessor: simplify if statement
2013-11-18 12:16:37 +01:00
Houtan Bastani
6d6701aa50
revert change that breaks gcc build
2013-11-05 18:21:12 +01:00
Houtan Bastani
1ae5832e13
preprocessor and matlab mex fixes for clang compilation
2013-11-05 18:04:57 +01:00
Sébastien Villemot
1634c7c50f
Always initialize M_.maximum_{endo,exo}_{lead,lag} and M_.params
...
Closes #515
2013-11-04 16:02:28 +01:00
Houtan Bastani
114cb8bc25
missing semicolon
2013-10-29 12:38:28 +01:00
Sébastien Villemot
46c7622f1c
Reactivate and fix the test for the balanced growth path.
...
If the homogeneized equation evaluates to zero, then we skip the
test (otherwise the 2nd derivative of the log is infinite, and the test fails
while it should not necessarily).
Closes #506
2013-10-29 18:46:54 +08:00
Stéphane Adjemian (Charybdis)
7063e2d8be
Changed name of options_.maxit as options_.simul.maxit.
2013-10-09 13:06:06 +02:00
Houtan Bastani
76714b34df
new nostrict command-line option does not exit when there are more endogenous than equations ( closes #2 )
2013-09-13 14:44:01 -04:00
Johannes Pfeifer
9d3722fdcb
Add full function header to static and dynamic model files
2013-07-28 11:32:14 +02:00
Sébastien Villemot
bbc422cf5a
Fix copyright notices
2013-06-12 17:04:46 +02:00
Sébastien Villemot
55a548282c
Possibility of restricting differentiate_forward_vars to some variables
...
Closes #351
2013-05-17 16:53:15 +02:00
Sébastien Villemot
94e6f569b8
Add new model option 'differentiate_forward_vars' (ref. #351 )
2013-04-25 18:09:31 +02:00
Sébastien Villemot
75f8467803
Implement tags [static] and [dynamic] for equations
...
Closes #307
2013-04-11 17:11:35 +02:00
Michel Juillard
24cac29cdf
removed changes linked with transforming variables to avoid log or
...
power of negative numbers
2013-04-09 16:35:57 +02:00
Sébastien Villemot
08c2b6e1c6
Automatic detrending engine can now handle models written in logs (ref. #309 )
...
- new command `log_trend_var'
- new option `log_deflator' to `var' command
2013-03-26 16:51:17 +01:00
Sébastien Villemot
69a5271db7
Revert spurious preprocessor changes introduced in dfa744f
2013-03-26 16:51:10 +01:00
Ferhat Mihoubi
832c9d37ef
- adds new files: Evaluate.cc and Evaluate.hh to bytecode
2013-03-22 16:34:50 +01:00
Sébastien Villemot
dc1be70d82
Add derivatives of static model w.r.t. parameters
...
The new file is <FILENAME>_static_params_derives.m
Closes : #160
2012-11-29 18:07:48 +01:00
Sébastien Villemot
6fc8deed49
Remove oo_.dr.{nstatic,npred,nboth,nfwrd,nspred,nsfwrd}
...
Replace them by equivalents in M_ (and an extra one: M_.dynamic).
IMPORTANT POINT: oo_.dr.npred used to count both purely backward and mixed/both
variables. This was the cause of lots of confusion. The new M_.npred only
counts purely backward variables.
We now have the following indentities:
M_.npred + M_.nboth + M_.nfwrd + M_.nstatic = M_.endo_nbr
M_.nspred = M_.npred + M_.nboth
M_.nsfwrd = M_.nfwrd + M_.nboth
M_.ndynamic = M_.npred + M_.nboth + M_.nfwrd
2012-11-16 20:05:13 +01:00
Sébastien Villemot
f878d8a644
Isolate block decomposition code
...
This should fix some random crashes of the preprocessor
2012-09-28 18:41:18 +02:00
Sébastien Villemot
67a1737f00
Update copyright notices
2012-06-08 18:22:34 +02:00
Houtan Bastani
cf49fd3b99
preprocessor: handle compilation warnings
2012-06-06 16:30:36 +02:00
Sébastien Villemot
2ac4f59489
Fix bug introduced in 4b86df05
2012-06-05 09:48:03 +02:00
Sébastien Villemot
3175a25663
Preprocessor: remove MATLAB short-circuit operators
...
They emit a warning under Octave
2012-06-04 17:18:13 +02:00
Michel Juillard
73b4052f2b
first implementation of transform_logpow. It creates too many auxilary
...
variables and probably violates Jensen inequality in some cases.
2012-05-23 15:09:33 +02:00
Michel Juillard
2098528f9e
starting implementation of transformed variables to replace arguments
...
of log and pow functions so as to insure non-negative arguments
2012-05-21 22:05:19 +02:00
Ferhat
255d64e6d1
Corrects the number of lead and lags of a block
2012-02-17 10:48:28 +01:00
Sébastien Villemot
a32043c2a5
Preprocessor: compute temp. terms for 2nd deriv of residuals and jacobian wrt
...
params and 1st deriv of hessian wrt to params
2012-01-20 12:07:36 -05:00
Houtan Bastani
67f3a0ecc0
preprocessor: separate dynamic and static functions from their mexfiles
2011-12-23 18:22:41 +01:00
Sébastien Villemot
03fbe74c70
Fix compilation error in preprocessor
...
Error introduced in ca10372607d71bf2b5d99d2a9fe6c2b3bd352ff4
2011-10-29 12:22:14 +02:00
Ferhat Mihoubi
287c0647fa
* Correction of a bug appearing in a block decomposed model when an observable variable are also a state variable
2011-10-28 22:25:05 +02:00
Houtan Bastani
b75d0e733f
Remove unused expectation syntax
2011-10-26 14:30:47 +02:00
Sébastien Villemot
0298a70faa
aux vars: update C++ comment to reflect last changes
2011-10-21 16:56:13 +02:00
Michel Juillard
17c8ae5c9d
code simplification after commit 9425b36358b9b1a6dcfb82cbf0cd423c64748bff
2011-10-20 20:40:15 +02:00
Michel Juillard
7d44671996
fixing problems related to auxiliary variables
2011-10-19 12:47:15 +02:00
Ferhat Mihoubi
fd923d428d
Displays an error message when the model contains pound expressions and 'bytecode' or 'block' options are present
2011-10-14 14:35:32 +02:00
Ferhat Mihoubi
37d438dd5c
Cleans the messages displayed
2011-10-12 14:45:53 +02:00
Michel Juillard
16f550a986
preprocessor, auxiliary variables: fixes ordering issue introduced in
...
347ab4d0c0c79ae9a42898c1d5409d78708bb8a8 and corrects the earlier
ordering problem.
2011-09-28 22:11:44 +02:00
Ferhat Mihoubi
c4e0158e44
block-Kalman filter is now available when block option is used
2011-09-20 14:18:31 +02:00
Houtan Bastani
5dc9092723
cosmetic: simplify jacobianHelper, hessianHelper and sparseHelper functions and fix spacing in dynamic file
2011-08-19 16:59:18 +02:00
Ferhat Mihoubi
94e113b7a5
correct a bug during the state variables detection
2011-08-11 14:15:51 +02:00
Houtan Bastani
c6a33a96f1
remove writing of getPowerDeriv M function from block code functions
2011-07-25 10:21:02 +02:00
Houtan Bastani
1e4c0852f6
bug fix: getPowerDeriv not accessible from modfile.m
2011-07-19 14:35:35 +02:00
Sébastien Villemot
d2696ca2f0
Preprocessor: factorize code common between StaticModel and DynamicModel, and put it in ModelTree
2011-06-22 11:56:07 +02:00
Sébastien Villemot
06f7d23e90
Preprocessor: fix crash when no computational task is required
2011-06-22 11:34:38 +02:00
Ferhat Mihoubi
53fe3fe8ed
- Compute :
...
+ the number of static, lag, lead and both variables,
+ the lead_lag_incidence matrix for variables related to previous blocks
+ the index of reordered policy rule
for each block during the preprocessing step
- correct a bug in the comment related to first order derivatives in _dynamic.m file for a block decomposed model without bytcode
- avoid simplification of the Jacobian matrix (setting to zero all elements below the cutoff) for estimated or stochastically simulated models: the cutoff option is set to 0.
2011-06-18 17:53:50 +02:00
Houtan Bastani
7eade47160
external_function: bug fix in writeParamsDerivativesFile, writeDynamicModel and writeStaticMFile
2011-06-10 11:09:43 +02:00
Michel Juillard
007b37f19b
updating one comment
2011-05-27 22:09:54 +02:00
Michel Juillard
f9287ac796
renamed ramsey_policy_discount_factor by optimal_policy_discount_factor because it is also used by discretionary_policy
2011-05-24 16:02:42 +02:00
Sébastien Villemot
6c37f6def8
Preprocessor: use NaN() for initializing vector of parameters
2011-04-27 12:07:13 +02:00
Houtan Bastani
d0d9fde6af
bug fix: allow use of external functions with model local variables
2011-04-12 16:42:56 +02:00
Houtan Bastani
be4c5c92ef
ramsey_policy: allow discount factor to be an expression
2011-03-29 18:18:32 +02:00
Houtan Bastani
be236c6402
code cleanup
2011-03-28 11:34:42 +02:00
Houtan Bastani
d2a6f0f42c
Implement explicit writing of first order conditions of Ramsey problem (ticket #5 )
2011-03-24 17:17:15 +01:00
Ferhat Mihoubi
316b935cc0
Correct a bug when the model contains deterministic exogenous variables and bytecode option is used.
...
Note that stochastic simulations do not work for the moment with block option.
2011-03-18 01:09:20 +01:00
Michel Juillard
8c9b6e44af
put *_params_derivs.m and identification code in conformity with additional steady state argument in *_dynamics.m
2011-03-14 11:40:40 +01:00
Michel Juillard
cb1e8a55b1
new correction for steady_state operator bug. Steady_state vector is passed as argument to *_dynamic model function. As a result, bytecode is currently broken.
2011-03-13 17:06:57 +01:00
Sébastien Villemot
cb64ade507
Preprocessor: added model local variable definitions to parameter derivative file
2011-03-07 11:59:12 +01:00
Sébastien Villemot
72fca072f0
Preprocessor: fix bug in parameter derivatives file
2011-02-21 12:43:11 +01:00
Sébastien Villemot
d264b7b2e3
Reindentation of the preprocessor
2011-02-04 16:25:38 +01:00
Ferhat Mihoubi
483b430e54
The derivatives with respect to endogenous variables of the previous blocks are corrected for a block-decomposed model without bytecode option
2011-02-03 17:29:26 +01:00
Ferhat Mihoubi
d999d15ff6
- Adds a "lead_lag_incidence" matrix in each block for the endogenous variables belonging to previous blocks (other_endo)
2011-01-31 17:47:22 +01:00
Sébastien Villemot
30a2b2b650
Fix derivatives of STEADY_STATE operator w.r.t. parameters (ticket #128 )
2011-01-13 18:08:26 +01:00
Houtan Bastani
448553fe8e
fixed bug: end _dynamic and _static and getPowerDeriv functions with "end" tags to comply with commit d8dbc68e841a93b40d2a5005bd69bdd1cbb1778a
2010-12-22 09:48:05 +01:00
Ferhat Mihoubi
7a6776197d
- The function getPowerDeriv must end with an "end" instruction
2010-12-17 18:54:02 +01:00
Houtan Bastani
7a26fe2ebd
extend domain of derivative of x^p to x=0 under certain conditions (see ticket 78)
2010-12-13 17:03:57 +01:00
Ferhat Mihoubi
751c0da2a1
- external functions are compatible with block decomposition and/or bytecode
2010-12-10 12:06:50 +01:00
Sébastien Villemot
2984f61fe0
Bugfix at order 3 (hopefully was not affecting final results, thanks to Pablo Winant for spotting this):
...
- in the 3rd derivatives matrix, among symmetric elements, the first one had
the right values but the following ones were set to zero
- moreover, the k-order DLL was trying to add all the symmetric elements in the
folded tensor, instead of only keeping one value among all the symmetric ones
- hopefully, Ondra's tensor library was (silently) refusing to add symmetric
elements after the first (and right) value had been added
- so the final result was correct
2010-12-06 17:00:46 +01:00
Ferhat Mihoubi
3f6ddd1c3f
- Adds the derivatives with respect to deterministic exogenous variables
...
and corrects the computation of the number of column in the jacobian matrices in a block decomposed model without bytecode
- Identical corrections for models using bytecode without block decomposition
2010-11-25 16:11:12 +01:00
Sébastien Villemot
0269c5766c
Preprocessor: max lead/lags in the model are no longer affected by lead/lags on parameters ( closes #153 )
2010-11-18 11:21:20 +01:00
Ferhat Mihoubi
b781c44e5a
Check command is now compatible with block and bytecode options
2010-10-27 15:34:48 +02:00
Ferhat Mihoubi
ab311cc0fd
- Store the incidence matrix containing reordered equations and variable in block_structure
2010-10-27 15:30:01 +02:00
Ferhat Mihoubi
f7f83d6973
- Correction of several bugs with Octave
...
- Add wrapper needed to compute the steady-state using bytecode and solve_algo = 0, ..., 4
2010-10-22 10:09:07 +02:00
Houtan Bastani
a7fc3361ac
trend_var, growth_factor, deflator: stationarize a nonstationary model and test
2010-10-18 16:07:42 +02:00
Sébastien Villemot
3218d3c72f
Preprocessor: don't create auxiliary variables for expressions appearing only
...
in unused model local variables
2010-10-11 12:58:38 +02:00
Sébastien Villemot
63d0fb3f04
Preprocessor: implement STEADY_STATE operator with "use_dll" and "block"
...
options (closes #98 )
2010-09-20 17:04:38 +02:00
Ferhat Mihoubi
f026137fa9
- Adding the relaxation method for block and/or bytecode options
...
- Changing the the stack_solve_algo option :
Previous version New version
1 : Sparse LU 0 : Sparse LU
2 : GMRES 1 : Relaxation
3 : BiCGStab 2 : GMRES
4 : Sparse LU & Optimal Path 3 : BiCGStab
5 : bytecode own solver 4 : Sparse LU & Optimal Path
5 : bytecode own solver
2010-09-17 12:18:25 +02:00
Ferhat Mihoubi
3e1a2ad450
- Substitutes lead for exogenous and endogenous variables in the deterministic case: direct substitution of the variables even in non-linear expressions
2010-09-17 12:17:09 +02:00
Ferhat Mihoubi
2da9d5adda
Bug correction in the deterministic simulation: to solve a purely backward or forward looking block requires contemporaneous derivatives only.
2010-09-17 12:17:00 +02:00