124 SharedColumnCheck scCheck;
131 for (GodleyIterator g=begin; g!=end; ++g)
133 if (g.data().empty())
continue;
136 for (std::size_t col=1; col<g.data()[0].size(); ++col)
137 if (!
trimWS(g.data()[0][col]).empty())
138 scCheck.checkShared(g.valueId(
trimWS(g.data()[0][col])), g.assetClass(col));
140 for (std::size_t row=1; row<g.data().size(); ++row)
141 if (!g.initialConditionRow(row))
142 for (std::size_t col=1; col<g.data()[row].size(); ++col)
144 FlowCoef fvc(g.data()[row][col]);
145 auto svName=col<g.data()[0].size()?
trimWS(g.data()[0][col]):
"";
146 if (fvc.name.empty() || svName.empty())
continue;
147 fvc.name=g.valueId(fvc.name);
148 svName=g.valueId(svName);
150 auto fv=values.find(fvc.name);
151 auto sv=values.find(svName);
152 if (fv!=values.end() && sv!=values.end() &&
153 fv->second->idx()>=0 && sv->second->idx()>=0)
157 scCheck.updateColDefs(svName, fvc))
160 iidx.insert(sv->second->idx());
161 sidx<<=sv->second->idx();
162 fidx<<=fv->second->idx();
173 scCheck.checkSharedColDefs();
ecolab::array< int > fidx
ecolab::array< int > sidx
representation of matrix connecting flow variables to stock variables
bool compatibility
if compatibility is true, then consttrainst between Godley tables is not applied, and shared columns ...
std::string trimWS(const std::string &s)
ecolab::array< int > initIdx
index of stock variables that need to be zeroed at start of eval
ecolab::array< double > m