| 73 | }; |
| 74 | |
| 75 | mitk::GenericParamModel::ModelResultType |
| 76 | mitk::GenericParamModel::ComputeModelfunction(const ParametersType& parameters) const |
| 77 | { |
| 78 | unsigned int timeSteps = m_TimeGrid.GetSize(); |
| 79 | ModelResultType signal(timeSteps); |
| 80 | |
| 81 | std::map<std::string, double> parameterMap; |
| 82 | parameterMap.insert(std::make_pair(GetXName(), 0.0)); |
| 83 | |
| 84 | auto paramNames = this->GetParameterNames(); |
| 85 | for (ParametersType::size_type i = 0; i < parameters.size(); ++i) |
| 86 | { |
| 87 | parameterMap.insert(std::make_pair(paramNames[i], parameters[i])); |
| 88 | } |
| 89 | |
| 90 | FormulaParser formulaParser(¶meterMap); |
| 91 | |
| 92 | TimeGridType::const_iterator timeGridEnd = m_TimeGrid.end(); |
| 93 | ModelResultType::iterator signalPos = signal.begin(); |
| 94 | |
| 95 | for (TimeGridType::const_iterator gridPos = m_TimeGrid.begin(); gridPos != timeGridEnd; |
| 96 | ++gridPos, ++signalPos) |
| 97 | { |
| 98 | parameterMap[GetXName()] = *gridPos; |
| 99 | *signalPos = formulaParser.parse(m_FunctionString); |
| 100 | } |
| 101 | |
| 102 | return signal; |
| 103 | }; |
| 104 | |
| 105 | mitk::GenericParamModel::ParameterNamesType mitk::GenericParamModel::GetStaticParameterNames() |
| 106 | const |