36 std::istream &
skipLine(std::istream & in);
38 #define InvalidIndex std::numeric_limits< unsigned C_INT32 >::max()
77 const std::string & name):
83 mpNormalizeWeightsPerExperiment(NULL),
92 mDataIndependent(0, 0),
98 mDefaultColumnScale(0),
100 mIndependentUpdateMethods(0),
102 mIndependentObjects(),
103 mIndependentValues(0),
105 mpDataDependentCalculated(NULL),
110 mRowObjectiveValue(0),
112 mColumnObjectiveValue(0),
114 mColumnValidValueCount(0),
116 mFittingPoints(
"Fitted Points", this),
117 mExtendedTimeSeries(0),
119 mExtendedTimeSeriesSize(0)
133 mpNormalizeWeightsPerExperiment(NULL),
135 mpWeightMethod(NULL),
139 mColumnName(src.mColumnName),
141 mDataTime(src.mDataTime),
142 mDataIndependent(src.mDataIndependent),
143 mDataDependent(src.mDataDependent),
145 mMissingData(src.mMissingData),
147 mColumnScale(src.mColumnScale),
148 mDefaultColumnScale(src.mDefaultColumnScale),
149 mDependentValues(src.mDependentValues),
150 mIndependentUpdateMethods(src.mIndependentUpdateMethods),
151 mRefreshMethods(src.mRefreshMethods),
152 mIndependentObjects(src.mIndependentObjects),
153 mIndependentValues(src.mIndependentValues),
154 mNumDataRows(src.mNumDataRows),
155 mpDataDependentCalculated(src.mpDataDependentCalculated),
157 mMeanSD(src.mMeanSD),
160 mRowObjectiveValue(src.mRowObjectiveValue),
161 mRowRMS(src.mRowRMS),
162 mColumnObjectiveValue(src.mColumnObjectiveValue),
163 mColumnRMS(src.mColumnRMS),
164 mColumnValidValueCount(src.mColumnValidValueCount),
165 mDependentObjects(src.mDependentObjects),
166 mFittingPoints(src.mFittingPoints, this),
167 mExtendedTimeSeries(src.mExtendedTimeSeries),
168 mStorageIt(src.mStorageIt),
169 mExtendedTimeSeriesSize(src.mExtendedTimeSeriesSize)
184 mpNormalizeWeightsPerExperiment(NULL),
186 mpWeightMethod(NULL),
193 mDataIndependent(0, 0),
194 mDataDependent(0, 0),
199 mDefaultColumnScale(0),
201 mIndependentUpdateMethods(0),
203 mIndependentObjects(),
204 mIndependentValues(0),
206 mpDataDependentCalculated(NULL),
211 mRowObjectiveValue(0),
213 mColumnObjectiveValue(0),
215 mColumnValidValueCount(0),
217 mFittingPoints(
"Fitted Points", this),
218 mExtendedTimeSeries(0),
220 mExtendedTimeSeriesSize(0)
236 *static_cast<const CCopasiParameterGroup *>(&rhs);
291 if (pParameter != NULL)
303 elevate<CExperimentObjectMap, CCopasiParameterGroup>(
getGroup(
"Object Map"));
311 size_t i, imax = pGroup->
size();
315 for (i = 0; i < imax; i++)
324 elevate<CExperimentObjectMap, CCopasiParameterGroup>(
getGroup(
"Object Map"));
343 for (i = 0; i < imax; i++)
359 for (; it != end; ++it)
360 (*it)->setValues(std::numeric_limits<C_FLOAT64>::quiet_NaN(),
361 std::numeric_limits<C_FLOAT64>::quiet_NaN(),
362 std::numeric_limits<C_FLOAT64>::quiet_NaN(),
363 std::numeric_limits<C_FLOAT64>::quiet_NaN());
382 for (; it != end; ++it, ++pScale, ++pDataDependentCalculated, ++pDataDependent)
384 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
385 Residual = (*pDataDependentCalculated - *pDataDependent) / (*pDataDependentCalculated > 1 ? *pDataDependentCalculated : 1.0);
387 Residual = (*pDataDependentCalculated - *pDataDependent) * *pScale;
390 (*it)->setValues(Independent,
392 includeSimulation ? *pDataDependentCalculated : std::numeric_limits<C_FLOAT64>::quiet_NaN(),
406 for (; it != end; ++it)
407 (*it)->setValues(std::numeric_limits<C_FLOAT64>::quiet_NaN(),
408 std::numeric_limits<C_FLOAT64>::quiet_NaN(),
409 std::numeric_limits<C_FLOAT64>::quiet_NaN(),
410 std::numeric_limits<C_FLOAT64>::quiet_NaN());
417 for (i = 1; it != end; ++it, ++i)
420 std::numeric_limits<C_FLOAT64>::quiet_NaN(),
422 std::numeric_limits<C_FLOAT64>::quiet_NaN());
440 for (; it != end; ++it)
446 for (; pDataDependent != pEnd;
447 pDataDependent++, ppDependentValues++, pScale++, residuals++)
449 if (isnan(*pDataDependent))
456 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
457 *residuals = (*pDataDependent - **ppDependentValues) /
std::max(1.0, **ppDependentValues);
459 *residuals = (*pDataDependent - **ppDependentValues) * *pScale;
462 s += *residuals * *residuals;
465 for (; pDataDependent != pEnd;
466 pDataDependent++, ppDependentValues++, pScale++)
468 if (isnan(*pDataDependent))
continue;
470 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
471 Residual = (*pDataDependent - **ppDependentValues) /
std::max(1.0, **ppDependentValues);
473 Residual = (*pDataDependent - **ppDependentValues) * *pScale;
476 s += Residual * Residual;
482 for (; pDataDependent != pEnd;
483 pDataDependent++, ppDependentValues++, pScale++, residuals++)
485 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
486 *residuals = (*pDataDependent - **ppDependentValues) /
std::max(1.0, **ppDependentValues);
488 *residuals = (*pDataDependent - **ppDependentValues) * *pScale;
491 s += *residuals * *residuals;
494 for (; pDataDependent != pEnd;
495 pDataDependent++, ppDependentValues++, pScale++)
498 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
499 Residual = (*pDataDependent - **ppDependentValues) /
std::max(1.0, **ppDependentValues);
501 Residual = (*pDataDependent - **ppDependentValues) * *pScale;
504 s += Residual * Residual;
528 for (; it != end; ++it)
533 for (; pDataDependent != pEnd;
534 pDataDependent++, ppDependentValues++, pScale++, dependentValues++)
536 *dependentValues = **ppDependentValues;
538 if (isnan(*pDataDependent))
continue;
540 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
541 Residual = (*pDataDependent - *dependentValues) /
std::max(1.0, *dependentValues);
543 Residual = (*pDataDependent - *dependentValues) * *pScale;
546 s += Residual * Residual;
551 for (; pDataDependent != pEnd;
552 pDataDependent++, ppDependentValues++, pScale++, dependentValues++)
554 *dependentValues = **ppDependentValues;
556 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
557 Residual = (*pDataDependent - *dependentValues) /
std::max(1.0, *dependentValues);
559 Residual = (*pDataDependent - *dependentValues) * *pScale;
562 s += Residual * Residual;
585 for (; it != end; ++it)
592 for (i = 0; i < imax; ++i, ++ppDependentValues, ++
mStorageIt)
620 size_t ValidValueCount = 0;
649 for (i = 0; i < numRows; i++)
651 for (j = 0; j < numCols; j++, pDataDependentCalculated++, pDataDependent++, pScale++)
654 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
655 Residual = (*pDataDependentCalculated - *pDataDependent) *
std::max(1.0, *pDataDependentCalculated);
657 Residual = (*pDataDependentCalculated - *pDataDependent) * *pScale;
660 if (isnan(Residual))
continue;
664 Residual = Residual * Residual;
679 mMean /= ValidValueCount;
684 mMean = std::numeric_limits<C_FLOAT64>::quiet_NaN();
685 mRMS = std::numeric_limits<C_FLOAT64>::quiet_NaN();
688 for (i = 0; i < numRows; i++)
693 mRowRMS[i] = std::numeric_limits<C_FLOAT64>::quiet_NaN();
696 for (j = 0; j < numCols; j++)
701 mColumnRMS[j] = std::numeric_limits<C_FLOAT64>::quiet_NaN();
708 for (i = 0; i < numRows; i++)
710 for (j = 0; j < numCols; j++, pDataDependentCalculated++, pDataDependent++, pScale++)
713 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
714 Residual =
mMean - (*pDataDependentCalculated - *pDataDependent) /
std::max(1.0, *pDataDependentCalculated);
716 Residual =
mMean - (*pDataDependentCalculated - *pDataDependent) * *pScale;
719 if (isnan(Residual))
continue;
721 mMeanSD += Residual * Residual;
728 mMeanSD = std::numeric_limits<C_FLOAT64>::quiet_NaN();
770 std::set< const CCopasiObject * > Dependencies;
772 IndependentCount = 0;
775 bool TimeFound =
false;
777 for (i = 0; i <= imax; i++)
799 Objects[i]->getUpdateMethod();
845 mMean = std::numeric_limits<C_FLOAT64>::quiet_NaN();
846 mMeanSD = std::numeric_limits<C_FLOAT64>::quiet_NaN();
848 mRMS = std::numeric_limits<C_FLOAT64>::quiet_NaN();
854 mRowRMS = std::numeric_limits<C_FLOAT64>::quiet_NaN();
860 mColumnRMS = std::numeric_limits<C_FLOAT64>::quiet_NaN();
875 size_t & currentLine)
888 size_t IndependentCount = 0;
889 size_t DependentCount = 0;
890 size_t TimeCount = 0;
891 size_t IgnoreCount = 0;
893 for (i = 0; i < imax; i++)
920 mColumnName.resize(IndependentCount + DependentCount + TimeCount);
934 if (DependentCount == 0)
940 if (mNumDataRows == 0)
947 const std::vector< CTableCell > & Cells = Row.
getCells();
951 if (currentLine > *mpFirstRow)
return false;
954 for (j = currentLine; j < *mpFirstRow && !in.fail(); j++)
960 for (j = 0; j < mNumDataRows && !in.fail(); j++, currentLine++)
977 IndependentCount = 0;
980 for (i = 0; i < imax; i++)
989 if (!Cells[i].isValue())
1002 Cells[i].getValue();
1007 if (!Cells[i].isValue())
1020 if ((in.fail() && !in.eof()))
1026 if (j != mNumDataRows)
1043 if (!isnan(
mDataTime[mNumDataRows]))
break;
1064 ColumnEpsilons = std::numeric_limits< C_FLOAT64 >::infinity();
1071 for (j = 0, pColumnEpsilon = ColumnEpsilons.
array(); j < DependentCount; j++, pColumnEpsilon++)
1079 MeanSquares[j] += Data * Data;
1081 if (Data != 0.0 && fabs(Data) < *pColumnEpsilon)
1083 *pColumnEpsilon = fabs(Data);
1091 for (j = 0, pColumnEpsilon = ColumnEpsilons.
array(); j < DependentCount; j++, pColumnEpsilon++)
1093 if (*pColumnEpsilon == std::numeric_limits< C_FLOAT64 >::infinity())
1096 *pColumnEpsilon = 1e8 * std::numeric_limits< C_FLOAT64 >::epsilon();
1108 mMeans[j] = std::numeric_limits<C_FLOAT64>::quiet_NaN();
1109 MeanSquares[j] = std::numeric_limits<C_FLOAT64>::quiet_NaN();
1113 for (i = 0; i < DependentCount; i++)
1120 DefaultColumScale = MeanSquares[i] -
mMeans[i] *
mMeans[i];
1124 DefaultColumScale = mMeans[i] * mMeans[i];
1128 DefaultColumScale = MeanSquares[i];
1132 DefaultColumScale = ColumnEpsilons[i] * ColumnEpsilons[i] * 1e-12;
1136 if (DefaultColumScale < MinWeight) MinWeight = DefaultColumScale;
1147 for (i = 0; i < DependentCount; i++)
1149 (MinWeight + sqrt(std::numeric_limits< C_FLOAT64 >::epsilon()))
1169 if (in.fail())
return false;
1179 const std::vector< CTableCell > & Cells = Row.
getCells();
1182 if (in.fail() && !in.eof())
return false;
1192 size_t tmp, count = 0;
1197 if (in.fail())
return false;
1202 for (i = 1; i < *
mpFirstRow && !in.fail(); i++)
1221 for (i = 0; i < imax; i++)
1231 for (i = 0; i < imax; i++)
1368 std::vector< CCopasiParameter * >::iterator it =
mpObjectMap->CCopasiParameter::getValue().pGROUP->begin();
1369 std::vector< CCopasiParameter * >::iterator end =
mpObjectMap->CCopasiParameter::getValue().pGROUP->end();
1371 for (; it != end; ++ it)
1372 static_cast< CExperimentObjectMap::CDataColumn * >(*it)->
setScale(std::numeric_limits<C_FLOAT64>::quiet_NaN());
1402 *static_cast<const CCopasiParameterGroup *>(&rhs));
1404 const_cast<CExperiment *
>(&lhs)->setValue(
"Key", Key);
1411 std::ostream & os = *ostream;
1413 os <<
"File Name:\t" <<
getFileName() << std::endl;
1416 os <<
"Mean:\t" <<
mMean << std::endl;
1418 os <<
"Root Mean Square:\t" <<
mRMS << std::endl;
1432 for (k = 0; k < kmax; k++)
1437 if (k < Objects.
size() && Objects[k] != NULL)
1442 os << Name <<
"(Data)\t";
1443 os << Name <<
"(Fit)\t";
1444 os << Name <<
"(Weighted Error)\t";
1447 os <<
"Objective Value\tRoot Mean Square" << std::endl << std::endl;
1451 if (pDataDependentCalculated)
1452 for (i = 0; i < imax; i++)
1454 os << i + 1 <<
".\t";
1459 for (j = 0; j < jmax; j++, pDataDependentCalculated++)
1462 os << *pDataDependentCalculated <<
"\t";
1469 for (i = 0; i < imax; i++)
1471 os << i + 1 <<
".\t";
1476 for (j = 0; j < jmax; j++)
1502 os <<
"Objective Value";
1507 for (j = 0; j < jmax; j++)
1517 os <<
"Root Mean Square";
1522 for (j = 0; j < jmax; j++)
1537 for (j = 0; j < jmax; j++)
1564 std::map< CCopasiObject *, size_t >::const_iterator it
1570 return std::numeric_limits<C_FLOAT64>::quiet_NaN();
1575 std::map< CCopasiObject *, size_t>::const_iterator it
1579 return std::numeric_limits<C_FLOAT64>::quiet_NaN();
1586 std::map< CCopasiObject *, size_t>::const_iterator it
1592 return std::numeric_limits<C_FLOAT64>::quiet_NaN();
1597 std::map< CCopasiObject *, size_t>::const_iterator it
1602 return std::numeric_limits<C_FLOAT64>::quiet_NaN();
1610 const C_FLOAT64 *pEnd = pDataDependentCalculated + numRows * numCols;
1614 for (; pDataDependentCalculated != pEnd;
1615 pDataDependentCalculated += numCols, pDataDependent += numCols)
1617 Residual = Weight * (*pDataDependentCalculated - *pDataDependent);
1619 if (isnan(Residual))
continue;
1630 std::map< CCopasiObject *, size_t>::const_iterator it
1635 return std::numeric_limits<C_FLOAT64>::quiet_NaN();
1643 const C_FLOAT64 *pEnd = pDataDependentCalculated + numRows * numCols;
1647 for (; pDataDependentCalculated != pEnd;
1648 pDataDependentCalculated += numCols, pDataDependent += numCols)
1651 #ifdef COPASI_PARAMETERFITTING_RESIDUAL_SCALING
1652 Residual = errorMean - (*pDataDependentCalculated - *pDataDependent) /
std::max(1.0, *pDataDependentCalculated);
1654 Residual = errorMean - (*pDataDependentCalculated - *pDataDependent) * *pScale;
1657 if (isnan(Residual))
continue;
1659 MeanSD += Residual * Residual;
1667 std::map< CCopasiObject *, size_t>::const_iterator it
1693 for (; pScale < pScaleEnd;)
1695 for (pColumnScale =
mColumnScale.
array(); pColumnScale < pColumnScaleEnd; ++pColumnScale, ++pScale, ++pData)
1700 *pScale = 1.0 /
std::max(fabs(*pData), *pColumnScale);
1704 *pScale = sqrt(*pColumnScale);
1721 mModelObjectCN(name),
1722 mIndependentValue(std::numeric_limits<
C_FLOAT64>::quiet_NaN()),
1723 mMeasuredValue(std::numeric_limits<
C_FLOAT64>::quiet_NaN()),
1724 mFittedValue(std::numeric_limits<
C_FLOAT64>::quiet_NaN()),
1725 mWeightedError(std::numeric_limits<
C_FLOAT64>::quiet_NaN())
1731 mModelObjectCN(src.mModelObjectCN),
1732 mIndependentValue(src.mIndependentValue),
1733 mMeasuredValue(src.mMeasuredValue),
1734 mFittedValue(src.mFittedValue),
1735 mWeightedError(src.mWeightedError)
1745 if (pDataModel == NULL)
1752 if (pObject == NULL)
1788 for (in.get(c); c != 0x0a && c != 0x0d; in.get(c))
1790 if (in.fail() || in.eof())
break;
1794 if ((c == 0x0d && in.peek() == 0x0a) ||
1795 (c == 0x0a && in.peek() == 0x0d))
CCopasiDataModel * getObjectDataModel()
bool remove(const std::string &key)
void sortWithPivot(RandomAccessIterator first, RandomAccessIterator last, CVector< size_t > &pivot)
const CMatrix< C_FLOAT64 > & getIndependentData() const
const std::string & getFileName() const
C_FLOAT64 getDefaultScale(const CCopasiObject *const &pObject) const
std::vector< std::string > mColumnName
virtual bool elevateChildren()
bool setExperimentType(const CCopasiTask::Type &type)
C_FLOAT64 getScale(const size_t &index) const
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
virtual const std::string & getName(const size_t &index) const
bool setValue(const CType &value)
bool setScale(const size_t &index, const C_FLOAT64 &scale)
const unsigned C_INT32 & getFirstRow() const
const C_FLOAT64 & getObjectiveValue() const
const CMatrix< C_FLOAT64 > & getDependentData() const
const std::string & getObjectName() const
static bool isRelativePath(const std::string &path)
bool compile(const std::vector< CCopasiContainer * > listOfContainer=CCopasiContainer::EmptyList)
CVector< C_FLOAT64 > mDefaultColumnScale
CVector< C_FLOAT64 > mColumnRMS
CExperiment::Type getRole(const size_t &index) const
const std::vector< CTableCell > & getCells() const
unsigned C_INT32 * mpFirstRow
CFittingPoint(const std::string &name="unknown", const CCopasiContainer *pParent=NULL)
CMatrix< C_FLOAT64 > mDataDependent
CVector< C_FLOAT64 > mRowObjectiveValue
CVector< C_FLOAT64 * > mDependentValues
virtual size_t numRows() const
bool setIsRowOriented(const bool &isRowOriented)
CVector< size_t > mColumnValidValueCount
std::string * mpSeparator
bool setHeaderRow(const unsigned C_INT32 &headerRow)
std::istream & skipLine(std::istream &in)
virtual void * getValuePointer() const
void resize(size_t size, const bool ©=false)
static std::string fileName(const std::string &path)
bool setFileName(const std::string &fileName)
const std::set< const CCopasiObject * > & getUptoDateObjects() const
const std::map< CCopasiObject *, size_t > & getDependentObjects() const
const WeightMethod & getWeightMethod() const
unsigned C_INT32 * mpNumColumns
void initExtendedTimeSeries(size_t s)
static std::string escape(const std::string &name)
const std::set< const CCopasiObject * > & getIndependentObjects() const
size_t guessColumnNumber() const
C_FLOAT64 mObjectiveValue
C_FLOAT64 * mpDataDependentCalculated
void setNormalizeWeightsPerExperiment(bool flag)
const CCopasiVector< CFittingPoint > & getFittingPoints() const
CCopasiVector< CFittingPoint > mFittingPoints
std::vector< Refresh * > mRefreshMethods
size_t getNumDataRows() const
static const char * XMLType[]
unsigned C_INT32 * mpLastRow
bool removeParameter(const std::string &name)
const std::vector< std::string > & getColumnNames() const
const C_FLOAT64 & getRMS() const
CMatrix< C_FLOAT64 > mDataIndependent
const CVector< CCopasiObject * > & getMappedObjects() const
CExperimentObjectMap * mpObjectMap
void storeExtendedTimeSeriesData(C_FLOAT64 time)
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
const C_FLOAT64 & getErrorMean() const
const size_t & getLastColumn() const
static bool compare(const CExperiment *lhs, const CExperiment *rhs)
const std::string & getModelObjectCN() const
bool restoreModelIndependentData()
CVector< C_FLOAT64 > mRowRMS
virtual const CCopasiObject * getValueObject() const
static const char * WeightMethodType[]
bool setSeparator(const std::string &seperator)
std::set< const CCopasiObject * > mIndependentObjects
CVector< C_FLOAT64 > mMeans
void updateFittedPointValues(const size_t &index, bool includeSimulation)
const C_FLOAT64 & getErrorMeanSD() const
virtual bool add(const CType &src)
bool setRole(const size_t &index, const CExperiment::Type &role)
const Value & getValue() const
CCopasiTask::Type * mpTaskType
C_FLOAT64 getErrorSum(CCopasiObject *const &pObject) const
CExperiment(const CCopasiContainer *pParent, const std::string &name="Experiment")
CExperimentObjectMap & getObjectMap()
bool setValue(const std::string &name, const CType &value)
CRegisteredObjectName mModelObjectCN
CVector< C_FLOAT64 > mColumnScale
const unsigned C_INT32 & getHeaderRow() const
CCopasiParameterGroup * assertGroup(const std::string &name)
C_FLOAT64 sumOfSquares(const size_t &index, C_FLOAT64 *&residuals) const
CCopasiParameter * getParameter(const std::string &name)
static const std::string WeightMethodName[]
std::string add(const std::string &prefix, CCopasiObject *pObject)
C_FLOAT64 sumOfSquaresStore(const size_t &index, C_FLOAT64 *&dependentValues)
std::map< CCopasiObject *, size_t > mDependentObjects
size_t mExtendedTimeSeriesSize
virtual void resize(size_t rows, size_t cols, const bool ©=false)
const C_FLOAT64 & getTime() const
const bool & isRowOriented() const
size_t getColumnValidValueCount(CCopasiObject *const &pObject) const
size_t extendedTimeSeriesSize() const
const CCopasiTask::Type & getExperimentType() const
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
const CVector< C_FLOAT64 > & getTimeData() const
static CKeyFactory * getKeyFactory()
unsigned C_INT32 * mpHeaderRow
CVector< C_FLOAT64 > mDataTime
CVector< C_FLOAT64 > mColumnObjectiveValue
C_FLOAT64 mIndependentValue
void initializeScalingMatrix()
void updateFittedPoints()
void updateFittedPointValuesFromExtendedTimeSeries(const size_t &index)
bool applyPivot(const CVector< size_t > &pivot)
void setValues(const C_FLOAT64 &independent, const C_FLOAT64 &measured, const C_FLOAT64 &fitted, const C_FLOAT64 &weightedError)
std::string StringPrint(const char *format,...)
bool compile(const std::vector< CCopasiContainer * > listOfContainer=CCopasiContainer::EmptyList)
WeightMethod * mpWeightMethod
const std::string & getSeparator() const
virtual size_t size() const
static std::vector< Refresh * > buildUpdateSequence(const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet())
bool setNumColumns(const unsigned C_INT32 &cols)
const CCopasiParameter::Value & getValue(const std::string &name) const
bool * mpNormalizeWeightsPerExperiment
bool calculateStatistics()
CCopasiParameter * assertParameter(const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue)
size_t guessColumnNumber(std::istream &is, const bool &rewind)
std::string getObjectCN(const size_t &index) const
bool setFirstRow(const unsigned C_INT32 &firstRow)
CCopasiParameterGroup * getGroup(const std::string &name)
virtual const CObjectInterface * getObject(const CCopasiObjectName &cn) const
static CLocaleString fromUtf8(const std::string &utf8)
bool setNumCols(const size_t &numCols)
CVector< C_FLOAT64 > mExtendedTimeSeries
static bool makePathAbsolute(std::string &relativePath, const std::string &absoluteTo)
virtual void printResult(std::ostream *ostream) const
virtual size_t numCols() const
const unsigned C_INT32 & getNumColumns() const
const unsigned C_INT32 & getLastRow() const
bool updateModelWithIndependentData(const size_t &index)
CVector< C_FLOAT64 > mIndependentValues
bool setLastRow(const unsigned C_INT32 &lastRow)
CVector< UpdateMethod * > mIndependentUpdateMethods
bool operator==(const CExperiment &lhs, const CExperiment &rhs)
CCopasiObject * ObjectFromName(const std::vector< CCopasiContainer * > &listOfContainer, const CCopasiObjectName &CN) const
CCopasiObject * addObjectReference(const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)
bool getNormalizeWeightsPerExperiment() const
bool setObjectCN(const size_t &index, const std::string &objectCN)
CExperiment & operator=(const CExperiment &rhs)
static const std::string TypeName[]
bool setWeightMethod(const WeightMethod &weightMethod)
CMatrix< C_FLOAT64 > mScale
bool applyPivot(const CVectorCore< size_t > &pivot)
size_t getLastNotIgnoredColumn() const
bool read(std::istream &in, size_t ¤tLine)
void initializeParameter()