Houtan Bastani
f2069a345a
preprocessor: quick fix for #263
2015-09-07 15:56:37 +02:00
Houtan Bastani
0f75ddbd64
replace cend with end and cbegin with begin
2015-09-03 16:06:37 +02:00
Houtan Bastani
13be25314e
preprocessor: rework temporary terms
2015-09-03 15:25:36 +02:00
Houtan Bastani
4e7aa84fee
raise cost of oPowerDeriv to always create a temporary variable if it has been encountered at least twice
2015-09-03 14:25:17 +02:00
Houtan Bastani
b600930b2f
preprocessor: fix bug in calculation of cost of trinary ops
2015-09-03 12:01:01 +02:00
Houtan Bastani
82cee99723
temp
2015-09-02 18:50:09 +02:00
Houtan Bastani
2618211859
preprocessor: julia: print only those temporary vars needed for the computation of (residuals, g1, g2, g3) in the respective dynamic! and static! functions
...
(cherry picked from commit eb2890d1f58f2285306821c85fa631b865fb80b6)
2015-09-02 15:30:25 +02:00
Houtan Bastani
7c28c672a4
Revert "preprocessor: julia: print only those temporary vars needed for the computation of (residuals, g1, g2, g3) in the respective dynamic! and static! functions"
...
This reverts commit eb2890d1f58f2285306821c85fa631b865fb80b6.
2015-09-02 15:29:52 +02:00
Houtan Bastani
7f014b94df
preprocessor: julia: print only those temporary vars needed for the computation of (residuals, g1, g2, g3) in the respective dynamic! and static! functions
2015-09-01 18:29:10 +02:00
Houtan Bastani
7cc90013cd
Merge branch 'julia'
2015-09-01 11:35:16 +02:00
Michel Juillard
a538e29f1e
expand extended preprocessor + first implementation of Petsc interface
2015-08-27 10:00:51 +02:00
Houtan Bastani
3bf6b14049
change getPowerDeriv to get_power_deriv to accord with Julia function naming style
2015-08-18 15:49:48 +02:00
Houtan Bastani
789d881cca
write steady state model
2015-07-28 17:27:56 +02:00
Houtan Bastani
dc955b56ee
fix writing for julia
2015-07-27 17:33:22 +02:00
Houtan Bastani
2bb2682b50
write dynamic file
2015-07-27 17:02:51 +02:00
Houtan Bastani
f3c14ec396
write static model
2015-07-27 15:33:38 +02:00
Houtan Bastani
4102e0cc56
Revert "Merge branch 'rmExtraExo'"
...
This reverts commit 28ffa9c56fd021cc75415aeafc13d3810d1b3132, reversing
changes made to 60b3577a09f3eb9cf3cc590241343b1f0fee8706.
Conflicts:
preprocessor/Shocks.cc
preprocessor/SymbolTable.cc
2015-06-09 16:42:51 +02:00
Houtan Bastani
6d727f534e
Merge branch 'rmExtraExo'
2015-05-28 12:33:56 +02:00
Houtan Bastani
0a2f09566f
preprocessor: add new field orig_expr for expectation aux vars, closes #773
2015-05-26 15:47:56 +02:00
Houtan Bastani
6a37dc9e21
Merge branch 'master' into rmExtraExo
2015-05-18 17:16:55 +02:00
Houtan Bastani
ec82663580
preprocessor: external functions bug fix: fixes the case where an external function is contained in a local variable that’s used in an equation with leads/lags that require auxiliary equations. Closes #916
2015-05-12 16:39:10 +02:00
Houtan Bastani
dbf2e0e379
preprocessor: organize external function code
2015-05-11 17:09:29 +02:00
Houtan Bastani
96a5949d9e
preprocessor: remove extraneous varexo, update model and statements, #841
2015-03-06 16:44:17 +01:00
Houtan Bastani
4ba729fdd6
preprocessor: new command write_latex_original_model. closes #657
2015-02-16 08:31:30 +01:00
Houtan Bastani
2ca0dec650
Revert "preprocessor: replace oo_.exo_steady_state with steady_state_x, #825"
...
This reverts commit 2bb97a90d6a346244ca992b9caff6e4c55dd7f66.
2015-01-14 15:14:57 +01:00
Houtan Bastani
1fab5cbdd4
preprocessor: replace oo_.exo_steady_state with steady_state_x, #825
2015-01-14 15:13:48 +01:00
Sébastien Villemot
56e1ed2f12
Fix STEADY_STATE operator for model local variables.
...
Thanks to Tom Holden for spotting the bug.
2014-08-12 18:53:55 +02:00
Sébastien Villemot
bd2405e292
Fix crash when the model contains 1st or 2nd ext fcn deriv nodes.
...
In the case where the external function computes itself its derivatives, the
TEF terms were not always created before being used, hence leading to a
preprocessor crash. This problem could only happen with ramsey_policy, because
otherwise the model does not contain derivatives of external functions.
2014-03-13 12:27:13 +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
Sébastien Villemot
ca7fe60252
Cosmetic renaming for consistency between DataTree method names.
2014-03-11 18:56:48 +01:00
Sébastien Villemot
140db861d5
Implement cloneDynamic() for {First,Second}DerivExternalFunction.
...
Since the method was not implement, the method of the parent class was used.
This was leading to wrong results in the context of Ramsey Policy (basically
derivative operators on external functions were dropped from FOCs).
2014-03-11 18:56:48 +01:00
Sébastien Villemot
0612bca00f
Remove spurious test.
2014-03-11 18:56:48 +01:00
Sébastien Villemot
380df90748
Fix output of external functions (and their derivatives) in LaTeX.
2014-03-11 15:31:08 +01:00
Sébastien Villemot
b1d7f8f223
Fix bug in external functions introduced in 711a4f62.
2014-02-25 16:45:55 +01:00
Sébastien Villemot
dab2dde8af
Small improvements to external functions code.
2014-02-24 17:27:34 +01:00
Michel Juillard
6e0ef026ac
write C++ version of model functions without temporary terms
2014-02-24 13:33:48 +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
Sébastien Villemot
74ad93e0f4
Remove select1st (GNU extension), replace it by a call to boost::bind
2013-11-05 18:13:29 +01: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
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
6486e529d5
Improve error message for 3rd derivatives of external functions
2013-01-15 11:39:04 +01:00
Michel Juillard
34099da167
fixed bug in computation of derivative of erf() function
2012-12-07 21:46:50 +01:00
Sébastien Villemot
67a1737f00
Update copyright notices
2012-06-08 18:22:34 +02:00
Michel Juillard
78bd465294
finishing implementation of optional transformation of log and non
...
integer power arguments to insure that they are positive
2012-05-26 20:53:48 +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
Sébastien Villemot
fa1572e674
Fix bug where the nth derivative of 0^n evaluated to 0 instead of n!
...
(complement to commit cd0bc28e)
2012-05-21 18:34:10 +02:00
Houtan Bastani
1d68887387
preprocessor: add subsamples statement
2011-12-21 12:21:30 +01:00
Houtan Bastani
b75d0e733f
Remove unused expectation syntax
2011-10-26 14:30:47 +02:00
Michel Juillard
3b955481cb
factoring out steady-state computations; steady_state_model now
...
generates <fname>_steadystate2.m returning parameters as well in case
they have been modified by the user. Added several test cases.
2011-10-12 21:51:14 +02:00
Ferhat Mihoubi
780e7515d6
updates normalizeEquation() to deal with abs, sign (Ticket #200 ) and trigonometric functions.
2011-10-12 15:03:05 +02:00
Houtan Bastani
043de353fc
bugfix: sign operator for compiled static file
2011-08-30 16:12:00 +02:00
Houtan Bastani
5c48733f55
output mex file for static model ( closes #183 )
2011-08-19 16:57:27 +02:00
Houtan Bastani
973105ace3
preprocessor: add absolute value and signum
2011-08-16 14:52:35 +02:00
Houtan Bastani
d8c0162e26
bug fix: add parenthesis around STEADY_STATE output in case it contains an expression
2011-08-08 18:49:18 +02:00
Ferhat Mihoubi
af1e4837b8
- correction of the bug in normalization process for expressions of the form a^x (Ticket #186 )
...
- If a case is not handled, the equation is supposed to be impossible to normalize.
- comments added to describe the normalization process
2011-06-10 12:41:21 +02:00
Houtan Bastani
e95699ffeb
cosmetic change
2011-05-11 11:58:33 +02:00
Houtan Bastani
95a6ae6abb
fixed typo
2011-04-12 16:42:55 +02:00
Houtan Bastani
e5798c5946
bug fix: writeOutput calls from within writeOutput were losing tef_terms info
2011-04-12 16:42:55 +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
Houtan Bastani
891dd5e2f2
bug fix: in cloning binary op node, were losing the order of the power deriv
2011-03-23 11:36:46 +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
9e898f4eb6
Preprocessor: avoid name clashes with model local variables
2011-02-21 18:26:23 +01:00
Sébastien Villemot
d264b7b2e3
Reindentation of the preprocessor
2011-02-04 16:25:38 +01:00
Sébastien Villemot
9b3d611a0b
Preprocessor: in steady_state_model block, allow MATLAB functions which return several arguments ( closes #37 )
2011-01-26 13:55:01 -05: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
Sébastien Villemot
4143276fe4
Preprocessor: no longer use assert(false) as a way of marking impossible cases
2011-01-13 15:52:44 +01:00
Ferhat Mihoubi
c6febbccb1
Stores the first order derivatives in the TEFD matrix, when derivatives are computed with a different external function (useful only for printing the model equations)
2010-12-31 16:26:25 +01:00
Ferhat Mihoubi
d586280b1b
- The binary operator oDerivPower is implemented in bytecode
2010-12-17 18:54:03 +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
Houtan Bastani
d206217fef
fixed bug that would force node sharing when two or more expectation operators had the same expression but different information sets
2010-12-08 12:29:47 +01:00
Sébastien Villemot
405ca1365c
Preprocessor: fix bug with varexo_det in conjunction with USE_DLL
2010-12-08 11:33:20 +01:00
Sébastien Villemot
eaad0b1263
Preprocessor: various cleanups related to the signed vs non-negative numerical constants issues
2010-11-25 13:45:35 +01:00
Houtan Bastani
a7fc3361ac
trend_var, growth_factor, deflator: stationarize a nonstationary model and test
2010-10-18 16:07:42 +02:00
Houtan Bastani
5327f161d4
external_function: add support for use_dll
2010-10-07 18:05:07 +02:00
Houtan Bastani
85564b287c
external_function: modified to pass functions as string names as opposed to function handles to reduce number of calls to mexCallMatlab when use_dll option is invoked
2010-10-07 16:49:36 +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
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
f68e4fd455
- compute the jacobian matrix for exogenous, det_exogenous and previous blocks endogenous
...
- preprocessor provides informations about the dynamic structure of each block
- extends the algorithms available with bytecode: stack_solve_algo = 1, 2, 3 and 4 is compatible the bytecode. Speed and memory requirement are improved with stack_solve_algo = 1 or 4 for large scale models.
- bytecode can be used to evaluate a model
2010-09-17 12:16:47 +02:00
Sébastien Villemot
2c10d03368
Preprocessor: rename "NodeID" in "expr_t"
2010-09-17 12:13:26 +02:00
Sébastien Villemot
c8fdd5d9d1
Preprocessor: uniformize typedef names (with a "_t" suffix)
2010-09-16 19:00:48 +02:00
Sébastien Villemot
ae3e741cb8
Preprocessor:
...
- remove useless output type oMatlabDynamicModelSparseLocalTemporaryTerms
(indistinguishable from oMatlabDynamicModelSparseLocal)
- fix bug in output type of sparse static model
2010-09-16 16:57:35 +02:00
Sébastien Villemot
19ebd12a5d
Preprocessor: when removing lags greater than 2 on endogenous or lags on exogenous, don't substitute model local variables that do not need to
2010-08-19 15:20:54 +02:00
Sébastien Villemot
6bc31611de
Preprocessor: fixed bug (substitution was incorrectly done with leads on exogenous)
2010-06-11 19:21:03 +02:00
Sébastien Villemot
fb5bf267d2
Preprocessor: never set an equal node as a temporary term
2010-05-05 10:10:01 +02:00
Sébastien Villemot
d68e984fd6
Preprocessor: added new 'steady_state_model' keyword for automatically creating steady state file
2010-04-23 18:39:07 +02:00
Sébastien Villemot
2906c63f48
Preprocessor: removed useless version of DataTree::AddVariable()
2010-04-23 18:32:25 +02:00
Sébastien Villemot
5364cdea25
Preprocessor: removed useless version of DataTree::AddExternalFunction()
2010-04-23 18:32:19 +02:00
Ferhat Mihoubi
a812b0130e
The functions erf, normpdf and normcdf work fine with bytecode option
2010-04-16 17:00:05 +02:00
Houtan Bastani
be6b9dcd09
bug fix: missing break in switch statement
2010-03-15 15:59:54 +01:00
Houtan Bastani
424849830c
minor code cleanup.
2010-03-11 12:04:06 +01:00
Houtan Bastani
9c2e06a091
Added erf as an internally supported function and updated manual.
2010-03-11 12:00:37 +01:00
Houtan Bastani
50258dae49
Added normpdf as an internally supported function and updated manual.
2010-03-11 10:16:40 +01:00
Sébastien Villemot
0f1b58b09b
Preprocessor: minor refactoring and documentation of ExprNode::writeOutput() methods
2010-03-09 12:16:32 +01:00