60 mTargetfunctionPointers(),
65 mStoreSubtasktUpdateFlag(false),
89 mpProblem(src.mpProblem),
91 mTargetfunctionPointers(),
96 mStoreSubtasktUpdateFlag(false),
113 bool success =
false;
143 resultindex.push_back(imax);
145 result.
resize(resultindex);
150 for (i = 0; i < imax; ++i)
162 for (i = 0; i < imax; ++i)
167 result[resultindex] = std::numeric_limits< C_FLOAT64 >::quiet_NaN();
216 assert(delta != 0.0);
218 size_t dim =
mLocalData[level].tmp1.dimensionality();
219 assert(resultindex.size() >= dim);
227 for (i = 0; i < dim; ++i)
233 result[resultindex] = (
mLocalData[level].tmp2[indexit] -
mLocalData[level].tmp1[indexit]) / delta;
241 for (i = 0; i < dim; ++i)
242 resultindex[i] = indexit[i];
244 result[resultindex] = (
mLocalData[level].tmp2[indexit] -
mLocalData[level].tmp1[indexit]) / delta;
254 if (indexit[j] >= indexmax[j])
285 resultindex.push_back(
mLocalData[level].variables.size());
287 result.
resize(resultindex);
290 size_t i, imax =
mLocalData[level].variables.size();
292 for (i = 0; i < imax; ++i)
316 resultindex[resultindex.size() - 1] = i;
329 size_t dim =
mLocalData[0].tmp1.dimensionality();
330 assert(resultindex.size() >= dim);
337 for (i = 0; i < dim; ++i)
350 for (i = 0; i < dim; ++i)
351 resultindex[i] = indexit[i];
363 if (indexit[j] >= indexmax[j])
382 size_t i, imax =
mLocalData[level].variables.size();
384 for (i = 0; i < imax; ++i)
422 for (i = 0; i < imax; ++i)
427 if (tmpFloat != tmpFloat)
continue;
431 tmpSum += tmpFloat * tmpFloat;
444 size_t shift = fullresultindex.size() - collapsedresultindex.size();
446 if (shift != 1)
return;
449 if (collapsedresultindex.size() == 0)
457 size_t i, dim = collapsedresultindex.size();
461 for (i = 0; i < dim; ++i) collapsedresultindex[i] = 0;
465 fullresultindex[0] = 0;
467 for (i = 0; i < dim; ++i)
468 fullresultindex[i + shift] = collapsedresultindex[i];
474 ++collapsedresultindex[dim - 1];
481 if (collapsedresultindex[j] >= indexmax[j])
483 collapsedresultindex[j] = 0;
486 ++collapsedresultindex[j - 1];
511 assert(pDataModel != NULL);
536 ((*pDataModel->
getTaskList())[
"Parameter Estimation"]);
562 std::set< const CCopasiObject * >
ObjectSet;
566 for (i = 0; i < imax; ++i)
574 ObjectSet.erase(NULL);
592 for (i = 0; i < imax; ++i)
626 std::ostringstream tmp;
643 for (i = 0; i < imax; ++i)
647 std::ostringstream tmp;
655 for (j = 0; j <
mLocalData[i].variables.size(); ++j)
CCopasiDataModel * getObjectDataModel()
CCopasiContainer * getObjectAncestor(const std::string &type) const
virtual bool setCallBack(CProcessReport *pCallBack)
void calculate_difference(size_t level, const C_FLOAT64 &delta, CCopasiArray &result, CCopasiArray::index_type &resultindex)
std::string getListTypeDisplayName() const
void resize(const index_type &sizes)
bool collapsRequested() const
C_FLOAT64 * mpDeltaFactor
size_t getNumberOfVariables() const
void scaling_targetfunction(const C_FLOAT64 &factor, CCopasiArray::index_type &resultindex)
void setObjectValue(const C_FLOAT64 &value)
CCopasiProblem * getProblem()
const std::string & getObjectName() const
CSensItem getVariables(size_t index) const
std::vector< CCopasiObject * > mTargetfunctionPointers
virtual bool initialize(const OutputFlag &of, COutputHandler *pOutputHandler, std::ostream *pOstream)
const bool & isUpdateModel() const
void updateNonSimulatedValues(void)
virtual bool setName(const std::string &name)
void updateSimulatedValues(const bool &updateMoieties)
bool restore(const bool &updateModel)
void setAnnotationCN(size_t d, size_t i, const std::string cn)
std::vector< CSensMethodLocalData > mLocalData
CSensProblem::SubTaskType getSubTaskType() const
virtual void * getValuePointer() const
CArrayAnnotation * getCollapsedResultAnnotated()
std::vector< size_t > index_type
void scaling_variables(size_t level, const C_FLOAT64 &factor, CCopasiArray::index_type &resultindex)
std::vector< CCopasiObject * > getVariablesPointerList(CCopasiDataModel *pDataModel)
CArrayAnnotation * getScaledResultAnnotated()
virtual bool progressItem(const size_t &handle)
C_FLOAT64 do_variation(CCopasiObject *variable)
virtual bool isValidProblem(const CCopasiProblem *pProblem)
CCopasiArray & getResult()
virtual bool setModel(CModel *pModel)
virtual bool isValidProblem(const CCopasiProblem *pProblem)
CSensItem getTargetFunctions() const
bool process(CProcessReport *handler)
static CSensMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::sensMethod)
bool do_target_calculation(CCopasiArray &result, bool first)
size_t addItem(const std::string &name, const std::string &value, const std::string *pEndValue=NULL)
CArrayAnnotation * getResultAnnotated()
CCopasiArray & getCollapsedResult()
const Value & getValue() const
CCopasiVectorN< CCopasiTask > * getTaskList()
CCopasiArray & getScaledResult()
C_FLOAT64 do_collapsing_innerloop(CCopasiArray::index_type &fullindex)
virtual bool finishItem(const size_t &handle)
size_t dimensionality() const
size_t getNumberOfSubtaskCalculations()
void setValue(CCopasiObject *variable, C_FLOAT64 value)
std::set< const CObjectInterface * > ObjectSet
void setDimensionDescription(size_t d, const std::string &s)
virtual bool process(const bool &useInitialValues)
virtual CCopasiObjectName getCN() const
std::vector< Refresh * > mInitialRefreshes
bool initialize(CSensProblem *problem)
bool mStoreSubtasktUpdateFlag
stores the update model flag of the subtask
bool addParameter(const CCopasiParameter ¶meter)
virtual void * getValuePointer() const
const index_type & size() const
std::vector< Refresh * > buildInitialRefreshSequence(std::set< const CCopasiObject * > &changedObjects)
void setUpdateModel(const bool &updateModel)
CProcessReport * mpCallBack
CModel * getModel() const
unsigned C_INT32 mProgress
#define CONSTRUCTOR_TRACE
bool calculate_one_level(size_t level, CCopasiArray &result)