COPASI API
4.16.103
|
#include <CBitPatternTreeMethod.h>
Public Member Functions | |
virtual bool | calculate () |
CBitPatternTreeMethod (const CBitPatternTreeMethod &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | initialize () |
~CBitPatternTreeMethod () | |
![]() | |
CEFMMethod (const CEFMMethod &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual | ~CEFMMethod () |
![]() | |
CCopasiMethod (const CCopasiMethod &src, const CCopasiContainer *pParent=NULL) | |
const CCopasiMethod::SubType & | getSubType () const |
const CCopasiTask::Type & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
virtual bool | setCallBack (CProcessReport *pCallBack) |
virtual | ~CCopasiMethod () |
![]() | |
bool | addGroup (const std::string &name) |
bool | addParameter (const CCopasiParameter ¶meter) |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type) |
template<class CType > | |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value) |
void | addParameter (CCopasiParameter *pParameter) |
CCopasiParameterGroup * | assertGroup (const std::string &name) |
template<class CType > | |
CCopasiParameter * | assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue) |
index_iterator | beginIndex () const |
name_iterator | beginName () const |
CCopasiParameterGroup (const CCopasiParameterGroup &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameterGroup (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &objectType="ParameterGroup") | |
void | clear () |
virtual bool | elevateChildren () |
index_iterator | endIndex () const |
name_iterator | endName () const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (const std::string &name) const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
size_t | getIndex (const std::string &name) const |
std::string | getKey (const std::string &name) const |
std::string | getKey (const size_t &index) const |
virtual const std::string & | getName (const size_t &index) const |
virtual const CObjectInterface * | getObject (const CCopasiObjectName &cn) const |
CCopasiParameter * | getParameter (const std::string &name) |
const CCopasiParameter * | getParameter (const std::string &name) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter::Type | getType (const std::string &name) const |
CCopasiParameter::Type | getType (const size_t &index) const |
std::string | getUniqueParameterName (const CCopasiParameter *pParameter) const |
const CCopasiParameter::Value & | getValue (const std::string &name) const |
const CCopasiParameter::Value & | getValue (const size_t &index) const |
CCopasiParameter::Value & | getValue (const std::string &name) |
CCopasiParameter::Value & | getValue (const size_t &index) |
CCopasiParameterGroup & | operator= (const CCopasiParameterGroup &rhs) |
bool | removeParameter (const std::string &name) |
bool | removeParameter (const size_t &index) |
template<class CType > | |
bool | setValue (const std::string &name, const CType &value) |
template<class CType > | |
bool | setValue (const size_t &index, const CType &value) |
size_t | size () const |
bool | swap (const size_t &iFrom, const size_t &iTo) |
bool | swap (index_iterator &from, index_iterator &to) |
virtual | ~CCopasiParameterGroup () |
![]() | |
CCopasiParameter (const CCopasiParameter &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CCopasiContainer *pParent=NULL, const std::string &objectType="Parameter") | |
virtual CCopasiObjectName | getCN () const |
virtual const std::string & | getKey () const |
virtual std::string | getObjectDisplayName (bool regular=true, bool richtext=false) const |
const CCopasiParameter::Type & | getType () const |
const Value & | getValue () const |
Value & | getValue () |
virtual void * | getValuePointer () const |
CCopasiObject * | getValueReference () const |
bool | isValidValue (const C_FLOAT64 &value) const |
bool | isValidValue (const C_INT32 &value) const |
bool | isValidValue (const unsigned C_INT32 &value) const |
bool | isValidValue (const bool &value) const |
bool | isValidValue (const std::string &value) const |
bool | isValidValue (const CCopasiObjectName &value) const |
bool | isValidValue (const std::vector< CCopasiParameter * > &value) const |
CCopasiParameter & | operator= (const CCopasiParameter &rhs) |
template<class CType > | |
bool | setValue (const CType &value) |
bool | setValue (const std::vector< CCopasiParameter * > &value) |
virtual | ~CCopasiParameter () |
![]() | |
virtual bool | add (CCopasiObject *pObject, const bool &adopt=true) |
CCopasiContainer (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=CCopasiObject::Container) | |
CCopasiContainer (const CCopasiContainer &src, const CCopasiContainer *pParent=NULL) | |
virtual std::string | getChildObjectUnits (const CCopasiObject *pObject) const |
virtual const objectMap & | getObjects () const |
virtual std::string | getUnits () const |
virtual const CCopasiObject * | getValueObject () const |
virtual bool | remove (CCopasiObject *pObject) |
virtual | ~CCopasiContainer () |
![]() | |
void | addDirectDependency (const CCopasiObject *pObject) |
CCopasiObject (const CCopasiObject &src, const CCopasiContainer *pParent=NULL) | |
void | clearDirectDependencies () |
void | clearRefresh () |
bool | dependsOn (DataObjectSet candidates, const DataObjectSet &context=DataObjectSet()) const |
void | getAllDependencies (DataObjectSet &dependencies, const DataObjectSet &context) const |
virtual const DataObjectSet & | getDirectDependencies (const DataObjectSet &context=DataObjectSet()) const |
CCopasiContainer * | getObjectAncestor (const std::string &type) const |
CCopasiDataModel * | getObjectDataModel () |
const CCopasiDataModel * | getObjectDataModel () const |
const std::string & | getObjectName () const |
CCopasiContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const |
virtual Refresh * | getRefresh () const |
UpdateMethod * | getUpdateMethod () const |
bool | hasCircularDependencies (DataObjectSet &candidates, DataObjectSet &verified, const DataObjectSet &context) const |
bool | hasUpdateMethod () const |
bool | isArray () const |
bool | isContainer () const |
bool | isDataModel () const |
bool | isMatrix () const |
bool | isNameVector () const |
bool | isNonUniqueName () const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CMath::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const |
bool | isReference () const |
bool | isRoot () const |
bool | isSeparator () const |
bool | isStaticString () const |
bool | isValueBool () const |
bool | isValueDbl () const |
bool | isValueInt () const |
bool | isValueInt64 () const |
bool | isValueString () const |
bool | isVector () const |
virtual bool | mustBeDeleted (const DataObjectSet &deletedObjects) const |
void | removeDirectDependency (const CCopasiObject *pObject) |
void | setDirectDependencies (const DataObjectSet &directDependencies) |
bool | setObjectName (const std::string &name) |
virtual bool | setObjectParent (const CCopasiContainer *pParent) |
void | setObjectValue (const C_FLOAT64 &value) |
void | setObjectValue (const C_INT32 &value) |
void | setObjectValue (const bool &value) |
template<class CType > | |
void | setRefresh (CType *pType, void(CType::*method)(void)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_FLOAT64 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_INT32 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const bool &)) |
virtual | ~CCopasiObject () |
![]() | |
CObjectInterface () | |
virtual | ~CObjectInterface () |
Static Public Member Functions | |
static bool | CalculateKernel (CMatrix< C_INT64 > &matrix, CMatrix< C_INT64 > &kernel, CVector< size_t > &rowPivot) |
static void | GCD (C_INT64 &m, C_INT64 &n) |
![]() | |
static CEFMMethod * | createMethod (CCopasiMethod::SubType subType=CCopasiMethod::EFMAlgorithm) |
![]() | |
static std::vector< Refresh * > | buildUpdateSequence (const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet()) |
static void | setRenameHandler (CRenameHandler *rh) |
Protected Member Functions | |
CBitPatternTreeMethod (const CCopasiContainer *pParent=NULL) | |
CBitPatternTreeMethod (const CCopasiMethod::SubType subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CEFMMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiParameterGroup () | |
![]() | |
template<class CType > | |
CCopasiObject * | addMatrixReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addObjectReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addVectorReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
void | initObjects () |
![]() | |
CCopasiObject () | |
CCopasiObject (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=0) | |
Protected Attributes | |
bool | mContinueCombination |
CMatrix< C_INT64 > | mExpandedStoiTranspose |
size_t | mhProgressCounter |
size_t | mhProgressCounter2 |
size_t | mMinimumSetSize |
std::vector< CStepMatrixColumn * > | mNewColumns |
CModel * | mpModel |
CBitPatternTree * | mpNullTree |
unsigned C_INT32 | mProgressCounter |
unsigned C_INT32 | mProgressCounter2 |
unsigned C_INT32 | mProgressCounter2Max |
unsigned C_INT32 | mProgressCounterMax |
CStepMatrix * | mpStepMatrix |
std::vector< std::pair< size_t, bool > > | mReactionForward |
CVector< size_t > | mReactionPivot |
size_t | mStep |
![]() | |
std::vector< CFluxMode > * | mpFluxModes |
std::vector< const CReaction * > * | mpReorderedReactions |
![]() | |
CProcessReport * | mpCallBack |
![]() | |
std::string | mKey |
CCopasiObject * | mpValueReference |
size_t | mSize |
Value | mValue |
![]() | |
objectMap | mObjects |
Private Member Functions | |
void | addMode (const CFluxMode &mode) |
void | buildFluxModes () |
void | buildKernelMatrix (CMatrix< C_INT64 > &kernel) |
void | combine (const CBitPatternTreeNode *pPositive, const CBitPatternTreeNode *pNegative) |
void | findRemoveInvalidColumns (const std::vector< CStepMatrixColumn * > &nullColumns) |
void | getUnsetBitIndexes (const CStepMatrixColumn *pColumn, CVector< size_t > &indexes) const |
void | initObjects () |
Friends | |
CEFMMethod * | CEFMMethod::createMethod (CCopasiMethod::SubType subType) |
Definition at line 35 of file CBitPatternTreeMethod.h.
|
protected |
Default constructor
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 32 of file CBitPatternTreeMethod.cpp.
References initObjects().
|
protected |
Constructor to be called by derived methods
const | CCopasiMethod::SubType subType |
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 53 of file CBitPatternTreeMethod.cpp.
References initObjects().
CBitPatternTreeMethod::CBitPatternTreeMethod | ( | const CBitPatternTreeMethod & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy Constructor
const | CBitPatternTreeMethod & src |
Definition at line 75 of file CBitPatternTreeMethod.cpp.
References initObjects().
CBitPatternTreeMethod::~CBitPatternTreeMethod | ( | ) |
Destructor
Definition at line 97 of file CBitPatternTreeMethod.cpp.
References mpNullTree, and pdelete.
Add the flux mode to the list only if the reversed does not exist
const | CFluxMode & mode |
Definition at line 674 of file CBitPatternTreeMethod.cpp.
References CEFMMethod::mpFluxModes.
Referenced by buildFluxModes().
|
private |
Postprocess the step matrix to construct the flux modes.
Definition at line 462 of file CBitPatternTreeMethod.cpp.
References addMode(), CVectorCore< CType >::array(), CMatrix< CType >::array(), CStepMatrix::begin(), C_FLOAT64, C_INT64, CalculateKernel(), CStepMatrix::end(), getUnsetBitIndexes(), mExpandedStoiTranspose, CEFMMethod::mpReorderedReactions, mpStepMatrix, mReactionForward, CMatrix< CType >::numCols(), and CVectorCore< CType >::size().
Referenced by calculate().
Construct the kernel matrix
CMatrix< | C_FLOAT64> & kernel |
Definition at line 382 of file CBitPatternTreeMethod.cpp.
References CMatrix< CType >::array(), CCopasiVector< T >::begin(), C_FLOAT64, C_INT64, CalculateKernel(), CCopasiVector< T >::end(), CModel::getReactions(), CModel::getRedStoi(), mExpandedStoiTranspose, min, mpModel, CEFMMethod::mpReorderedReactions, mReactionForward, mReactionPivot, CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), CMatrix< CType >::resize(), and CMatrix< CType >::size().
Referenced by initialize().
|
virtual |
Execute the optimization algorithm calling simulation routine when needed. It is noted that this procedure can give feedback of its progress by the callback function set with SetCallback. @ return success;
Reimplemented from CEFMMethod.
Definition at line 154 of file CBitPatternTreeMethod.cpp.
References CProcessReport::addItem(), buildFluxModes(), C_INT32, combine(), CStepMatrix::compact(), CStepMatrix::convertRow(), findRemoveInvalidColumns(), CProcessReport::finishItem(), CStepMatrix::getFirstUnconvertedRow(), CStepMatrix::getNumUnconvertedRows(), CBitPatternTree::getRoot(), initialize(), mContinueCombination, mhProgressCounter, mhProgressCounter2, CCopasiMethod::mpCallBack, mpNullTree, mProgressCounter, mProgressCounter2, mProgressCounter2Max, mProgressCounterMax, mpStepMatrix, mStep, pdelete, CProcessReport::progressItem(), CStepMatrix::removeInvalidColumns(), CBitPatternTree::size(), and CStepMatrix::splitColumns().
|
static |
A static method that calculates the kernel of a full column rank matrix. Note, the input matrix is used as work area and will be modified during the calculation.
const | CMatrix< C_INT64 > & matrix |
CMatrix< | C_INT64 > & kernel |
CVector< | size_t > & rowPivot |
Definition at line 692 of file CBitPatternTreeMethod.cpp.
References abs64, CVectorCore< CType >::array(), CMatrix< CType >::array(), C_FLOAT64, C_INT64, GCD(), max, CMatrix< CType >::numCols(), CMatrix< CType >::numRows(), CMatrix< CType >::resize(), CVector< CType >::resize(), and CMatrix< CType >::size().
Referenced by buildFluxModes(), and buildKernelMatrix().
|
private |
Create all possible linear combinations of the bit pattern nodes pPositive and pNegative and all their child nodes.
const | CBitPatternTreeNode * pPositive |
const | CBitPatternTreeNode * pNegative |
Definition at line 245 of file CBitPatternTreeMethod.cpp.
References CStepMatrix::addColumn(), CZeroSet::getNumberOfSetBits(), CBitPatternTreeNode::getSetChild(), CBitPatternTreeNode::getStepMatrixColumn(), CBitPatternTreeNode::getUnsetChild(), CBitPatternTreeNode::getZeroSet(), CZeroSet::intersection(), CBitPatternTree::isExtremeRay(), CZeroSet::isExtremeRay(), mContinueCombination, mhProgressCounter2, mMinimumSetSize, mNewColumns, CCopasiMethod::mpCallBack, mpNullTree, mProgressCounter2, mpStepMatrix, CProcessReport::proceed(), CProcessReport::progressItem(), and CStepMatrix::removeColumn().
Referenced by calculate().
|
private |
Remove the invalid columns from the step matrix
const | std::vector< CStepMatrix::iterator > & nullColumns |
Definition at line 354 of file CBitPatternTreeMethod.cpp.
References CBitPatternTree::isExtremeRay(), mNewColumns, mpStepMatrix, and CStepMatrix::removeInvalidColumns().
Referenced by calculate().
Calculate the greatest common divisor (GCD) of 2 positive integers. On return m and n contain the GCD
C_INT64 | & m |
C_INT64 | & n |
Definition at line 58 of file CBitPatternTreeMethod.h.
Referenced by CalculateKernel(), and CStepMatrixColumn::CStepMatrixColumn().
|
private |
Multiply values so that values contains only integers. Get the index of the unset bits of the flux mode.
Definition at line 658 of file CBitPatternTreeMethod.cpp.
References CVectorCore< CType >::array(), CStepMatrix::getUnsetBitIndexes(), mpStepMatrix, mReactionPivot, and CVectorCore< CType >::size().
Referenced by buildFluxModes().
|
virtual |
Initialize arrays and pointer.
Reimplemented from CEFMMethod.
Definition at line 107 of file CBitPatternTreeMethod.cpp.
References CProcessReport::addItem(), buildKernelMatrix(), C_INT32, CCopasiProblem::getModel(), CStepMatrix::getNumUnconvertedRows(), CCopasiObject::getObjectParent(), CCopasiTask::getProblem(), CEFMMethod::initialize(), mContinueCombination, mhProgressCounter, mMinimumSetSize, CCopasiMethod::mpCallBack, mpModel, mProgressCounter, mProgressCounterMax, mpStepMatrix, mReactionForward, CMatrix< CType >::numCols(), pdelete, and pTask.
Referenced by calculate().
|
private |
Initialize the needed CCopasiObjects.
Definition at line 102 of file CBitPatternTreeMethod.cpp.
References CCopasiContainer::addObjectReference(), mProgressCounter, and CCopasiObject::ValueInt.
Referenced by CBitPatternTreeMethod().
|
friend |
|
protected |
Boolean value indicating whether combination should continue.
Definition at line 256 of file CBitPatternTreeMethod.h.
Referenced by calculate(), combine(), and initialize().
The transpose of the expanded stoichiometry matrix.
Definition at line 226 of file CBitPatternTreeMethod.h.
Referenced by buildFluxModes(), and buildKernelMatrix().
|
protected |
Handle to the process report item "Current Step"
Definition at line 196 of file CBitPatternTreeMethod.h.
Referenced by calculate(), and initialize().
|
protected |
Handle to the process report item "Combination"
Definition at line 211 of file CBitPatternTreeMethod.h.
Referenced by calculate(), and combine().
|
protected |
The minimum set size use to determine whether a linear combination is allowed.
Definition at line 246 of file CBitPatternTreeMethod.h.
Referenced by combine(), and initialize().
|
protected |
A list of invalid columns currently in the step matrix
Definition at line 241 of file CBitPatternTreeMethod.h.
Referenced by combine(), and findRemoveInvalidColumns().
|
protected |
A pointer to the model which is analyzed.
Definition at line 181 of file CBitPatternTreeMethod.h.
Referenced by buildKernelMatrix(), and initialize().
|
protected |
The bit pattern tree for the current step
Definition at line 236 of file CBitPatternTreeMethod.h.
Referenced by calculate(), combine(), and ~CBitPatternTreeMethod().
|
protected |
The current step used for process report.
Definition at line 186 of file CBitPatternTreeMethod.h.
Referenced by calculate(), initialize(), and initObjects().
|
protected |
The current combination used for process report.
Definition at line 201 of file CBitPatternTreeMethod.h.
Referenced by calculate(), and combine().
|
protected |
The max combination used for process report.
Definition at line 206 of file CBitPatternTreeMethod.h.
Referenced by calculate().
|
protected |
The max step used for process report.
Definition at line 191 of file CBitPatternTreeMethod.h.
Referenced by calculate(), and initialize().
|
protected |
A pointer to the step matrix for creating the flux modes
Definition at line 231 of file CBitPatternTreeMethod.h.
Referenced by buildFluxModes(), calculate(), combine(), findRemoveInvalidColumns(), getUnsetBitIndexes(), and initialize().
|
protected |
A vector to recording the expansion of the stoichiometry matrix.
Definition at line 216 of file CBitPatternTreeMethod.h.
Referenced by buildFluxModes(), buildKernelMatrix(), and initialize().
|
protected |
A vector recording the pivots for the QR factorization
Definition at line 221 of file CBitPatternTreeMethod.h.
Referenced by buildKernelMatrix(), and getUnsetBitIndexes().
|
protected |
The currently process step
Definition at line 251 of file CBitPatternTreeMethod.h.
Referenced by calculate().