Size: 2990
Comment:
|
Size: 2812
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
## page was renamed from ParserTodoList | |
Line 5: | Line 4: |
* create a testsuite |
|
Line 6: | Line 7: |
* add an option to model keyword that let use model functions already written for another model in order to save time when the model doesn't change but the computing tasks do. [parser and maybe Matlab code] |
* add support for multi-line native Matlab statements (ending with '...') * add "elsif" and "switch/case" in macro-language |
Line 9: | Line 11: |
* handling of functions. Either Matlab functions or user functions not in the list known by the derivator. Also in expressions outside of model definition. [parser] | * handling of functions: either Matlab functions or user functions not in the list known by the derivator. Also in expressions outside of model definition. Users must provide derivative, otherwise trigger numerical differentiation (also see UnknownFunctions) |
Line 11: | Line 13: |
* add conditional compilation and #include features [parser] | |
Line 13: | Line 14: |
* add loops and conditional blocks in modeling language. Should be unrolled. [parser] | |
Line 15: | Line 15: |
* allow for several models in a single *.mod file and design a language to link them [parser] * trigger numerical differentiation when an unknown function is present in the model [see UnknownFunctions] |
|
Line 20: | Line 18: |
* add a check for number of equations and endogenous in the case of Ramsey policy * improve error message when dealing with Expr``Node::Eval``Exception (in particular for reporting in Model``Tree::evaluateJacobian) |
|
Line 28: | Line 28: |
* add a warning if homotopy_setup block comes after steady | |
Line 39: | Line 40: |
* but it is possible to factorize more complicated expressions: {{{2*x+3*x=(2+3)*x=5*x}}}. The two simplifications aren't identical but strongly related. -- MichelJuillard [[DateTime(2007-05-08T19:53:46Z)]] * for static output file, remove unnecessary temporary terms |
* but it is possible to factorize more complicated expressions: {{{2*x+3*x=(2+3)*x=5*x}}}. The two simplifications aren't identical but strongly related. -- MichelJuillard <<DateTime(2007-05-08T19:53:46Z)>> |
Line 46: | Line 46: |
* add normcdf to reference manual |
Todo List
- create a testsuite
Features
- add support for multi-line native Matlab statements (ending with '...')
- add "elsif" and "switch/case" in macro-language
- add option for number of draw in Metropolis subsamples [parser + Matlab code]
handling of functions: either Matlab functions or user functions not in the list known by the derivator. Also in expressions outside of model definition. Users must provide derivative, otherwise trigger numerical differentiation (also see UnknownFunctions)
- allow for expression in many places where numerical constant are currently required [parser]
- add option for algorithm to solve generalized Sylverster equation [parser + Matlab code]
- add new function diff(), sum loops and prod loops in modeling language. Should be unrolled. [parser]
Error checking
- add a check for number of equations and endogenous in the case of Ramsey policy
improve error message when dealing with ExprNode::EvalException (in particular for reporting in ModelTree::evaluateJacobian)
- add warning for missing variable in current period. This is permissible in some cases, Michel should write a note about it [parser]
- improve error and warning handling in parser. Find a way that users see Warnings even if scrolling by [parser]
Checks concerning the structure of the mod file
- allow a single histval, endval, initval block
- check that a given parameter is never declared two times
- check that observation trends is used after a varobs
- add a warning if homotopy_setup block comes after steady
Checks concerning the types of variables allowed in expressions
- varobs must be declared endogenous
- shocks must be exogenous
- objective_planner must be endogenous without leads/lags
Optimizations / Enhancements
optimize expression sharing (for example use the fact that A+(B+C) = (A+B)+C); this would also enhance the pre-computing of numerical constants (for the moment, the algorithm can't reduce 1+(x+1))
if there is a series of operators with the same precedence, we can collect the constant and reduce them 1+(x+2}=(1+2)+x=3+x
but it is possible to factorize more complicated expressions: 2*x+3*x=(2+3)*x=5*x. The two simplifications aren't identical but strongly related. -- MichelJuillard 2007-05-08 19:53:46
rewrite outputting system (by using a subclass of ostream containing the output type, and by overloading << operator)
- improve internal representation of estimated_params* statements
Loose ends
- add C code for normcdf, both for parser evaluation and for DLLs
- add normpdf