bool CFitTask::process(const bool & useInitialValues) { CFitProblem * pProblem = dynamic_cast<CFitProblem *>(mpProblem); COptMethod * pMethod = dynamic_cast<COptMethod *>(mpMethod); if (!pProblem || !pMethod) return false; mpMethod->isValidProblem(mpProblem); if (useInitialValues) { pProblem->updateInitialState(); } pProblem->randomizeStartValues(); pProblem->rememberStartValues(); output(COutputInterface::BEFORE); bool success = pMethod->optimise(); pProblem->calculateStatistics(); pProblem->createParameterSets(); output(COutputInterface::AFTER); return success; }
bool COptTask::initialize(const OutputFlag & of, COutputHandler * pOutputHandler, std::ostream * pOstream) { COptProblem * pProblem = dynamic_cast<COptProblem *>(mpProblem); COptMethod * pMethod = dynamic_cast<COptMethod *>(mpMethod); if (!pProblem || !pMethod) return false; //initialize reporting bool success = true; //do the part of the initialization of the subtask that needs to be //performed before the output is initialized. This is kind of a hack, //we need to find a more general solution for this if (!pProblem->initializeSubtaskBeforeOutput()) success = false; if (!CCopasiTask::initialize(of, pOutputHandler, pOstream)) success = false; //if (!mReport.open(pOstream)) success = false; //if (!mReport.compile()) success = false; if (!pProblem->initialize()) success = false; pMethod->setProblem(pProblem); // if (!pMethod->initialize()) return false; return success; }
bool COptTask::process(const bool & /* useInitialValues */) { COptProblem * pProblem = dynamic_cast<COptProblem *>(mpProblem); COptMethod * pMethod = dynamic_cast<COptMethod *>(mpMethod); if (!pProblem || !pMethod) return false; mpMethod->isValidProblem(mpProblem); output(COutputInterface::BEFORE); bool success = pMethod->optimise(); pProblem->calculateStatistics(); output(COutputInterface::AFTER); return success; }