42 mTableauLines(src.mTableauLines)
58 mTableauLines.clear();
60 std::list< const CTableauLine * >::const_iterator it = matrix.
begin();
61 std::list< const CTableauLine * >::const_iterator end = matrix.
end();
62 size_t TableauLineIndex = 0;
64 for (; it != end; ++it, ++TableauLineIndex)
66 if ((*it)->getMultiplier(TableauLineIndex) != 0.0)
68 mTableauLines.push_back(TableauLineIndex);
88 mpCurrentTableau(NULL),
99 mpCurrentTableau(NULL),
125 if (pTask == NULL)
return false;
129 if (
mpModel == NULL)
return false;
136 size_t row, numRows = ModelStoi.
numRows();
137 size_t col, numCols = ModelStoi.numCols();
140 mStoi.resize(numRows);
141 std::vector< std::vector< C_FLOAT64 > >::iterator it =
mStoi.begin();
142 std::vector< std::vector< C_FLOAT64 > >::iterator end =
mStoi.end();
144 for (; it != end; ++it)
158 size_t InsertReversible = 0;
159 size_t InsertIrreversible = numRows - 1;
166 for (row = 0; row < numRows; row++)
168 if (Reaction[row]->isReversible())
170 Insert = InsertReversible++;
174 Insert = InsertIrreversible--;
176 (*mpReorderedReactions)[Insert] = Reaction[row];
178 for (col = 0; col < numCols; col++)
179 mStoi[Insert][col] = ModelStoi(row, col);
212 bool Continue =
true;
251 std::list< const CTableauLine * >::iterator a;
252 std::list< const CTableauLine * >::iterator b;
254 #ifdef COPASI_DEBUG_TRACE
256 #endif //COPASI_DEBUG_TRACE
264 bool Continue =
true;
266 unsigned C_INT32 Counter, MaxCounter;
279 if ((*a)->getMultiplier(
mStep) == 0.0)
322 mb = (*a)->getMultiplier(
mStep);
336 ma = Sign * (*b)->getMultiplier(
mStep);
339 if (ma > 0.0 || (*a)->isReversible())
392 double minCombine = std::numeric_limits<double>::infinity();
406 for (counter = 0; counter <
mIndexSet.size(); counter++)
410 if (combine < minCombine)
412 minCombine = combine;
436 for (; it != end; ++it)
438 if ((*it)->isReversible() && (*it)->getMultiplier(index) != 0.0)
442 else if ((*it)->getMultiplier(index) < 0.0)
446 else if ((*it)->getMultiplier(index) > 0.0)
452 return (posIrr + rev) * (negIrr + rev);
double calculateCombinations(size_t index)
CCopasiProblem * getProblem()
unsigned C_INT32 mMaxStep
std::vector< std::vector< C_FLOAT64 > > mStoi
CEFMAlgorithm(const CCopasiContainer *pParent=NULL)
std::list< const CTableauLine * >::iterator begin()
std::vector< CFluxMode > * mpFluxModes
std::list< const CTableauLine * >::iterator end()
CTableauMatrix * mpNextTableau
virtual bool progressItem(const size_t &handle)
virtual bool initialize()
bool findMinimalCombinationIndex()
std::vector< size_t > mIndexSet
void calculateFluxModes()
virtual bool initialize()
size_t addItem(const std::string &name, const std::string &value, const std::string *pEndValue=NULL)
std::vector< const CReaction * > * mpReorderedReactions
void removeLine(const std::list< const CTableauLine * >::iterator line)
virtual bool finishItem(const size_t &handle)
void update(const CTableauMatrix &matrix)
void addLine(const CTableauLine *src, const bool &check=true)
CTableauMatrix * mpCurrentTableau
void calculateNextTableau()
CCopasiVectorNS< CReaction > & getReactions()
unsigned C_INT32 mStepProcess
const CMatrix< C_FLOAT64 > & getStoi() const
CCopasiObject * addObjectReference(const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)
CProcessReport * mpCallBack
CModel * getModel() const
CCopasiContainer * getObjectParent() const