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
Houtan Bastani
22bdb1a223
Allow temporary terms to work with external functions
2010-03-09 11:21:14 +01:00
Houtan Bastani
52cbb40775
Added expression sharing for external functions
2010-03-03 11:43:22 +01:00
Houtan Bastani
a70b60604c
Modified external functions to enforce consistent number of function arguments within model_block
2010-03-03 11:40:13 +01:00
Houtan Bastani
9abc7563c1
Add support for external functions
2010-02-23 18:15:18 +01:00
Sébastien Villemot
db0dbfdaa4
Preprocessor: full support for normcdf() function, in evaluation and in C files ( closes #84 )
2010-02-23 14:39:49 +01:00
ferhat
bce6509773
Adds location indications in error message of "bytecode" + minor correction (string passed as &string).
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3374 ac1d8469-bf42-47a9-8791-bf33cf982152
2010-01-22 16:42:08 +00:00
houtanb
e616667f75
expectation conditional on a restricted information set
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3367 ac1d8469-bf42-47a9-8791-bf33cf982152
2010-01-18 22:08:44 +00:00
sebastien
3aa8876538
Beautified preprocessor code (uncrustify + emacs + manual adjustments, in particular with templates in MacroValue)
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3249 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-16 17:13:23 +00:00
sebastien
160ec5d7ca
preprocessor + bytecode DLL: various enhancements to block and bytecode options (changes by Ferhat)
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3244 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-16 13:21:31 +00:00
sebastien
5568e622b8
preprocessor:
...
* fixed a bug with EXPECTATION operator: now handle model local variables
* substitute EXPECTATION operator even in deterministic models (for avoiding crashes, even if use of this operator doesn't make sense there)
* forbid the use of EXPECTATION and STEADY_STEATE outside model block
* minor implementation changes in EXPECTATION and STEADY_STATE operators
reference manual:
* documented EXPECTATION and STEADY_STATE operators
* added a note in write_latex_{static,dynamic}_model commands documentation about auxiliary variables and other model transformations
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3145 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-09 15:13:47 +00:00
sebastien
6bd2cb04de
predetermined_variables:
...
* reworked a little bit the implementation
* documented the command in the reference manual
* added a test
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3143 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-09 11:03:18 +00:00
houtanb
07ba8ebdee
implements predetermined_variables operator
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3137 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-07 18:37:11 +00:00
sebastien
51e1a77649
preprocessor: cosmetic changes
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3134 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-11-06 18:19:52 +00:00
sebastien
8bd114300a
Various minor changes for compatibility with MS Visual C++ and GCC 4.4
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3105 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-30 16:29:16 +00:00
houtanb
e45d3a4cb2
changed expectation operator from BinaryOpNode to UnaryOpNode
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3102 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-30 05:21:54 +00:00
sebastien
760085d6fe
preprocessor: clean-up workaround for acosh(), asinh(), atanh() on Win 64 platforms
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3101 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-29 17:16:10 +00:00
ferhat
c752ca6122
- use of classes to describe the bytecode tags
...
- use static option for bytecode instead of steady_state option
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3048 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-16 16:34:27 +00:00
sebastien
7bfeef5d7f
preprocessor:
...
* fixed substitution of endogenous with leads >= 2: take into account exogenous with leads in non-linear terms
* fixed substitution of exogenous with leads: take into account other variables with leads in non-linear terms
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3027 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-07 16:34:42 +00:00
sebastien
021e0ebb2e
preprocessor: in stochastic mode, create auxiliary variables for exogenous with non-zero lead/lag
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3026 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-07 14:07:13 +00:00
ferhat
faa1f2111a
avoid useless iteration in simulation of simple equations
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3025 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-07 09:31:58 +00:00
sebastien
7c7a59e1b8
preprocessor: reverted useless changes from last commit
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3016 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-02 17:02:35 +00:00
ferhat
e8d9cbc94a
The local variables are implemented with byte code
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3015 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-10-02 16:47:43 +00:00
sebastien
2f1382fab5
preprocessor:
...
* In stochastic mode, now transforms the model by removing leads and lags greater or equal to 2 (creating auxiliary variables and equations in the process)
* Information about these variables is in structure M_.aux_vars
* Automatically add the necessary initialization for auxiliary vars after the initval block or load_params_and_steady_state
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3002 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-30 15:10:31 +00:00
ferhat
0c7fea9e5f
- the "steady_state" function is implemented with the "bytecode" option
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2952 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-18 16:34:11 +00:00
sebastien
b3b67b0db5
* Fix the STEADY_STATE operator for LaTeX output
...
* Allow the STEADY_STATE operator to work with exogenous/exogenous_det with non zero lead/lag
* Other cosmetic changes
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2917 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-11 09:16:52 +00:00
houtanb
5591a412a8
added steady_state operator to preprocessor
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2916 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-09-10 20:09:16 +00:00
ferhat
4897b602c6
- extension of normalization of equations to nonlinear equations
...
- mfs: new option for 'steady' and 'model' commands. Determines the equation belonging to the set of feedback variables.
mfs = 0 => all variables are considered as feedback variables (default value)
mfs = 1 => using only naturally normalized equation as potential recursive equations (all variables assigned to unnormalized equations are considered as feedback variable)
mfs = 2 => adding to the set of potential recursive equation with mfs = 1 the linear equation in endogenous variable normalized (all variables assigned to nonlinear unnormalized equations are considered as feedback variable)
mfs = 3 => adding to the set of potential recursive equation with mfs = 2 the non linear equation in endogenous variable normalized
- correction of few buggs in simulate.dll
- block_mfs_dll: new option for 'steady' command. Use simulate.dll to solve the steady state model (speedup the computation of the steady-state and the homotopy)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2866 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-08-25 09:43:01 +00:00
sebastien
165ede20b4
Preprocessor: refactor usage of GNU g++ specific features
...
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2840 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-13 09:13:42 +00:00
sebastien
daae864666
Preprocessor:
...
* new ExprNode method for computing set of ModelLocalVariables of an expression
* factorized code with collectEndogenous() and collectExogenous() methods
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2839 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-10 16:42:08 +00:00
sebastien
77590c8577
Some restructurings in the preprocessor:
...
* StaticModel: dropped creation of C file in USE_DLL mode
* StaticModel: added computation of derivatives for block MFS mode
* DynamicModel: catch error codes of mkdir()
* ModelTree: moved "mode" member variable to DynamicModel
* ModFile::writeOutput(): moved manipulations relative to dynamic model file to DynamicModel
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2818 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-07 14:20:48 +00:00
sebastien
9595358690
Preprocessor: various minor changes, including
...
* moved some declarations from ExprNode.hh to BlockTriangular.hh to which they conceptually belong
* replaced non standard boolean operators (and, or, not) by standard ones (&&, ||, !)
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2812 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-07-06 10:36:36 +00:00