Allows to write M_.NNZDerivatives_objective in the driver.m file

Writes the number of non-zero derivatives of the planner objective function NNZDerivatives_objective in the driver.m file. Useful for the k-order approximations of welfare.
issue#70
normann 2021-04-22 14:52:29 +02:00 committed by NormannR
parent 910649dd28
commit 22fbfb0fba
2 changed files with 18 additions and 0 deletions

View File

@ -2175,6 +2175,10 @@ PlannerObjectiveStatement::computingPass()
void
PlannerObjectiveStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const
{
output << "M_.NNZDerivatives_objective = [";
for (int i=1; i < static_cast<int>(model_tree.getNNZDerivatives().size()); i++)
output << (i > model_tree.getComputedDerivsOrder() ? -1 : model_tree.getNNZDerivatives()[i]) << ";";
output << "];";
model_tree.writeStaticFile(basename + ".objective", false, false, false, "", {}, {}, false);
}

View File

@ -455,6 +455,20 @@ public:
return equation_tags.getTagsByEqn(eq);
}
//! Returns the vector of non-zero derivative counts
inline const vector<int> &
getNNZDerivatives() const
{
return NNZDerivatives;
}
//!Returns the maximum order of computed derivatives
inline int
getComputedDerivsOrder() const
{
return computed_derivs_order;
}
inline static string
BlockSim(BlockSimulationType type)
{