... | @@ -24,7 +24,7 @@ Proposed changes to the preprocessor should follow our [[CodingGuidelines]], bot |
... | @@ -24,7 +24,7 @@ Proposed changes to the preprocessor should follow our [[CodingGuidelines]], bot |
|
|
|
|
|
- In terms of calling interface, the preprocessor accepts a command-line option `language` whose value can be either `matlab` or `julia` (C output is subsumed in the `matlab` option value when used in combination with the `use_dll` option); this is handled in `DynareMain.cc`. A new `python` option value should be added (and the `LanguageOutputType` class enum in `ExtendedPreprocessorTypes.hh` should be expanded accordingly). Throughout the preprocessor code, the distinction between MATLAB/Octave and Julia is currently passed through a `bool julia` function argument in calling trees; this should probably be replaced by passing a `LanguageOutputType` value that covers the three languages.
|
|
- In terms of calling interface, the preprocessor accepts a command-line option `language` whose value can be either `matlab` or `julia` (C output is subsumed in the `matlab` option value when used in combination with the `use_dll` option); this is handled in `DynareMain.cc`. A new `python` option value should be added (and the `LanguageOutputType` class enum in `ExtendedPreprocessorTypes.hh` should be expanded accordingly). Throughout the preprocessor code, the distinction between MATLAB/Octave and Julia is currently passed through a `bool julia` function argument in calling trees; this should probably be replaced by passing a `LanguageOutputType` value that covers the three languages.
|
|
|
|
|
|
- The engine for manipulating and outputting symbolic algebraic expressions is located in `ExprNode.hh` and `ExprNode.cc`. In particular, there is a generic framework for outputting expressions in various contexts, depending on the programming language (MATLAB/Octave, C, Julia) and in the type of expression (dynamic expression with leads and lags, static expression, time series…), as reflected in the `ExprNodeOutputType`. For Python, the following values should be added:
|
|
- The engine for manipulating and outputting symbolic algebraic expressions is located in `ExprNode.hh` and `ExprNode.cc`. In particular, there is a generic framework for outputting expressions in various contexts, depending on the programming language (MATLAB/Octave, C, Julia) and on the type of expression (dynamic expression with leads and lags, static expression, time series…), as reflected in the `ExprNodeOutputType`. For Python, the following values should be added:
|
|
- `pythonDynamicModel` (for outputting the dynamic model)
|
|
- `pythonDynamicModel` (for outputting the dynamic model)
|
|
- `pythonStaticModel` (for outputting the static model)
|
|
- `pythonStaticModel` (for outputting the static model)
|
|
- `pythonDynamicSteadyStateOperator` (used inside a `STEADY_STATE` operator within a dynamic model)
|
|
- `pythonDynamicSteadyStateOperator` (used inside a `STEADY_STATE` operator within a dynamic model)
|
... | | ... | |