50 const bool & continueFromCurrentState)
76 mpInitialObject(NULL),
80 mIsStateVariable(false)
84 const bool & continueFromCurrentState):
87 mpInitialObject(NULL),
91 mIsStateVariable(false)
97 std::string tmpString = * si->
getValue(
"Object").
pCN;
99 assert(pDataModel != NULL);
102 if (tmpObject == NULL || !tmpObject->
isValueDbl())
109 if (continueFromCurrentState)
159 if (continueFromCurrentState &&
184 const bool & continueFromCurrentState):
210 const bool & continueFromCurrentState):
268 const bool & continueFromCurrentState):
357 mpRandomGenerator(NULL),
360 mContinueFromCurrentState(false)
390 if (
mpTask == NULL)
return false;
397 std::set< const CCopasiObject * > InitialObjectSet;
398 std::set< const CCopasiObject * > TransientObjectSet;
403 for (i = 0; i < imax; ++i)
419 InitialObjectSet.insert(pItem->
getObject());
465 for (i = 0; i < imax; ++i)
475 for (i = 0; i < imax; ++i)
483 bool isLastMasterItem = (level == (
mScanItems.size() - 1));
491 if (isLastMasterItem)
497 if (!
loop(level + 1))
return false;
547 for (i = 0; i < imax; ++i)
CCopasiDataModel * getObjectDataModel()
CCopasiContainer * getObjectAncestor(const std::string &type) const
CCopasiObject * getDataObject(const CCopasiObjectName &CN) const
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
CCopasiObject * getCorrespondingTransientObject(const CCopasiObject *pObject) const
void setObjectValue(const C_FLOAT64 &value)
virtual bool isValidScanItem(const bool &continueFromCurrentState)
void setProblem(CScanProblem *problem)
static CScanMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::scanMethod)
CCopasiObject * mpInitialObject
virtual bool isValidProblem(const CCopasiProblem *pProblem)
CScanItemRandom(CCopasiParameterGroup *si, CRandom *rg, const bool &continueFromCurrentState)
const std::set< const CCopasiObject * > & getUptoDateObjects() const
std::vector< CScanItem * > mScanItems
virtual bool isValidScanItem(const bool &continueFromCurrentState)
size_t getNumberOfScanItems() const
unsigned C_INT32 mRandomType
CRegisteredObjectName * pCN
virtual bool isNesting() const
std::vector< Refresh * > mInitialRefreshes
virtual bool isValidProblem(const CCopasiProblem *pProblem)
virtual bool isValidScanItem(const bool &continueFromCurrentState)
virtual C_FLOAT64 getRandomNormal01()
static CRandom * createGenerator(CRandom::Type type=CRandom::mt19937, unsigned C_INT32 seed=0)
virtual C_FLOAT64 getRandomPoisson(const C_FLOAT64 &mean)
virtual C_FLOAT64 getRandomCC()
CScanItemRepeat(CCopasiParameterGroup *si, const bool &continueFromCurrentState)
bool getContinueFromCurrentState() const
CRandom * mpRandomGenerator
CScanItemLinear(CCopasiParameterGroup *si, const bool &continueFromCurrentState)
const CCopasiObject * getObject() const
static std::vector< Refresh * > buildUpdateSequence(const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet())
size_t getNumSteps() const
const CCopasiParameter::Value & getValue(const std::string &name) const
virtual void * getValuePointer() const
const CCopasiParameterGroup * getScanItem(size_t index) const
virtual C_FLOAT64 getRandomGamma(C_FLOAT64 shape, C_FLOAT64 scale)
std::vector< Refresh * > buildInitialRefreshSequence(std::set< const CCopasiObject * > &changedObjects)
void restoreValue() const
static CScanItem * createScanItemFromParameterGroup(CCopasiParameterGroup *si, CRandom *rg, const bool &continueFromCurrentState)
CModel * getModel() const
CCopasiContainer * getObjectParent() const
bool isStateVariable(const CCopasiObject *pObject) const
bool mContinueFromCurrentState