Skip to content
Snippets Groups Projects
Commit 0398832e authored by Stéphane Adjemian's avatar Stéphane Adjemian
Browse files

Assign parameter values in main julia module.

See PR #1102 by spencerlyon2.

Added support for filling in the model.params Vector.
parent cf9883ef
Branches
Tags
No related merge requests found
...@@ -1174,6 +1174,11 @@ ModFile::writeExternalFilesJulia(const string &basename, FileOutputType output) ...@@ -1174,6 +1174,11 @@ ModFile::writeExternalFilesJulia(const string &basename, FileOutputType output)
} }
steady_state_model.writeSteadyStateFile(basename, mod_file_struct.ramsey_model_present, true); steady_state_model.writeSteadyStateFile(basename, mod_file_struct.ramsey_model_present, true);
// Print statements (includes parameter values)
for (vector<Statement *>::const_iterator it = statements.begin();
it != statements.end(); it++)
(*it)->writeJuliaOutput(jlOutputFile, basename);
jlOutputFile << "model_.static = " << basename << "Static.static!" << endl jlOutputFile << "model_.static = " << basename << "Static.static!" << endl
<< "model_.dynamic = " << basename << "Dynamic.dynamic!" << endl << "model_.dynamic = " << basename << "Dynamic.dynamic!" << endl
<< "if isfile(\"" << basename << "SteadyState.jl" "\")" << endl << "if isfile(\"" << basename << "SteadyState.jl" "\")" << endl
......
...@@ -51,6 +51,18 @@ InitParamStatement::writeOutput(ostream &output, const string &basename, bool mi ...@@ -51,6 +51,18 @@ InitParamStatement::writeOutput(ostream &output, const string &basename, bool mi
output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );" << endl; output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );" << endl;
} }
void
InitParamStatement::writeJuliaOutput(ostream &output, const string &basename)
{
int id = symbol_table.getTypeSpecificID(symb_id) + 1;
output << "model_.params[ " << id << " ] = ";
param_value->writeOutput(output);
output << endl;
// Do we really need this?
// if (!minimal_workspace)
// output << symbol_table.getName(symb_id) << " = model_.params[ " << id << " ]" << endl;
}
void void
InitParamStatement::writeCOutput(ostream &output, const string &basename) InitParamStatement::writeCOutput(ostream &output, const string &basename)
{ {
......
...@@ -41,6 +41,7 @@ public: ...@@ -41,6 +41,7 @@ public:
const SymbolTable &symbol_table_arg); const SymbolTable &symbol_table_arg);
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
virtual void writeJuliaOutput(ostream &output, const string &basename);
virtual void writeCOutput(ostream &output, const string &basename); virtual void writeCOutput(ostream &output, const string &basename);
//! Fill eval context with parameter value //! Fill eval context with parameter value
void fillEvalContext(eval_context_t &eval_context) const; void fillEvalContext(eval_context_t &eval_context) const;
......
...@@ -69,6 +69,10 @@ Statement::writeCOutput(ostream &output, const string &basename) ...@@ -69,6 +69,10 @@ Statement::writeCOutput(ostream &output, const string &basename)
{ {
} }
void Statement::writeJuliaOutput(ostream &output, const string &basename)
{
}
void void
Statement::computingPass() Statement::computingPass()
{ {
......
...@@ -143,6 +143,7 @@ public: ...@@ -143,6 +143,7 @@ public:
*/ */
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const = 0; virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const = 0;
virtual void writeCOutput(ostream &output, const string &basename); virtual void writeCOutput(ostream &output, const string &basename);
virtual void writeJuliaOutput(ostream &output, const string &basename);
}; };
class NativeStatement : public Statement class NativeStatement : public Statement
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment