Commit Graph

138 Commits (812a8c7637a4a6c7a4ac70763fa70e8c4d8165d8)

Author SHA1 Message Date
Sébastien Villemot 2495359919 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 b4c3d004ad 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 da615507f4 Cosmetic renaming for consistency between DataTree method names. 2014-03-11 18:56:48 +01:00
Sébastien Villemot f55fda0938 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 1f6fd55594 Remove spurious test. 2014-03-11 18:56:48 +01:00
Sébastien Villemot 1faae7bf4c Fix output of external functions (and their derivatives) in LaTeX. 2014-03-11 15:31:08 +01:00
Sébastien Villemot 0dfd7629b1 Fix bug in external functions introduced in 711a4f62. 2014-02-25 16:45:55 +01:00
Sébastien Villemot 711a4f62a2 Small improvements to external functions code. 2014-02-24 17:27:34 +01:00
Michel Juillard 49b34d4c94 write C++ version of model functions without temporary terms 2014-02-24 13:33:48 +01:00
Sébastien Villemot ed2f6d62c1 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 e4526944a9 Remove select1st (GNU extension), replace it by a call to boost::bind 2013-11-05 18:13:29 +01:00
Houtan Bastani 20dba7e623 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 7bbe121769 Possibility of restricting differentiate_forward_vars to some variables
Closes #351
2013-05-17 16:53:15 +02:00
Sébastien Villemot 75b5f1d18a Add new model option 'differentiate_forward_vars' (ref. #351) 2013-04-25 18:09:31 +02:00
Sébastien Villemot 38824dc1e5 Implement tags [static] and [dynamic] for equations
Closes #307
2013-04-11 17:11:35 +02:00
Michel Juillard 39cc313964 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 a0b7178962 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 c681b5e4ed Revert spurious preprocessor changes introduced in dfa744f 2013-03-26 16:51:10 +01:00
Ferhat Mihoubi dfa744fcb3 - adds new files: Evaluate.cc and Evaluate.hh to bytecode 2013-03-22 16:34:50 +01:00
Sébastien Villemot 6737077770 Improve error message for 3rd derivatives of external functions 2013-01-15 11:39:04 +01:00
Michel Juillard 32b68b713b fixed bug in computation of derivative of erf() function 2012-12-07 21:46:50 +01:00
Sébastien Villemot 1f9cea669a Update copyright notices 2012-06-08 18:22:34 +02:00
Michel Juillard 539bf0ca69 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 c6495dfc9d 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 f36f76760a 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 c1e4155001 preprocessor: add subsamples statement 2011-12-21 12:21:30 +01:00
Houtan Bastani ce9fe30a7a Remove unused expectation syntax 2011-10-26 14:30:47 +02:00
Michel Juillard ee7078e56c 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 b932615ff4 updates normalizeEquation() to deal with abs, sign (Ticket #200) and trigonometric functions. 2011-10-12 15:03:05 +02:00
Houtan Bastani 5f3290f7a4 bugfix: sign operator for compiled static file 2011-08-30 16:12:00 +02:00
Houtan Bastani 7357a23114 output mex file for static model (closes #183) 2011-08-19 16:57:27 +02:00
Houtan Bastani 0da1aab3a8 preprocessor: add absolute value and signum 2011-08-16 14:52:35 +02:00
Houtan Bastani 64ba641add bug fix: add parenthesis around STEADY_STATE output in case it contains an expression 2011-08-08 18:49:18 +02:00
Ferhat Mihoubi e38618127b - 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 69f3895938 cosmetic change 2011-05-11 11:58:33 +02:00
Houtan Bastani 26d5534320 fixed typo 2011-04-12 16:42:55 +02:00
Houtan Bastani a966eeb99f bug fix: writeOutput calls from within writeOutput were losing tef_terms info 2011-04-12 16:42:55 +02:00
Houtan Bastani 161647922c Implement explicit writing of first order conditions of Ramsey problem (ticket #5) 2011-03-24 17:17:15 +01:00
Houtan Bastani c4dfb41f5c 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 55bb27c5f6 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 e76dfadc78 Preprocessor: avoid name clashes with model local variables 2011-02-21 18:26:23 +01:00
Sébastien Villemot f4557cb195 Reindentation of the preprocessor 2011-02-04 16:25:38 +01:00
Sébastien Villemot 7c65bceb0e 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 9c6d65bc0a Fix derivatives of STEADY_STATE operator w.r.t. parameters (ticket #128) 2011-01-13 18:08:26 +01:00
Sébastien Villemot a6a4b3bc28 Preprocessor: no longer use assert(false) as a way of marking impossible cases 2011-01-13 15:52:44 +01:00
Ferhat Mihoubi f46f1831f6 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 129d404eb8 - The binary operator oDerivPower is implemented in bytecode 2010-12-17 18:54:03 +01:00
Houtan Bastani 35450a292b 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 97664607b2 - external functions are compatible with block decomposition and/or bytecode 2010-12-10 12:06:50 +01:00
Houtan Bastani 641f03b8d0 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