COPASI API
4.40.278
|
#include <CBitPatternTreeMethod.h>
Public Member Functions | |
virtual bool | calculate () |
CBitPatternTreeMethod (const CBitPatternTreeMethod &src, const CDataContainer *pParent) | |
CBitPatternTreeMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType=CTaskEnum::Method::EFMBitPatternTreeAlgorithm, const CTaskEnum::Task &taskType=CTaskEnum::Task::fluxMode) | |
virtual bool | initialize () |
~CBitPatternTreeMethod () | |
Public Member Functions inherited from CEFMMethod | |
CEFMMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType=CTaskEnum::Task::fluxMode) | |
CEFMMethod (const CEFMMethod &src, const CDataContainer *pParent) | |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual | ~CEFMMethod () |
Public Member Functions inherited from CCopasiMethod | |
CCopasiMethod (const CCopasiMethod &src, const CDataContainer *pParent) | |
virtual void | clearCallBack () |
const CProcessReportLevel & | getCallBack () const |
CMathContainer * | getMathContainer () const |
const CTaskEnum::Method & | getSubType () const |
const CTaskEnum::Task & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
CCopasiMethod & | operator= (const CCopasiMethod &rhs) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
virtual bool | setCallBack (CProcessReportLevel callBack) |
void | setMathContainer (CMathContainer *pContainer) |
virtual | ~CCopasiMethod () |
Public Member Functions inherited from CCopasiParameterGroup | |
bool | addGroup (const std::string &name) |
void | addParameter (CCopasiParameter *pParameter) |
bool | addParameter (const CCopasiParameter ¶meter) |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All) |
template<class CType > | |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All) |
virtual bool | applyData (const CData &data, CUndoData::CChangeSet &changes) |
CCopasiParameterGroup * | assertGroup (const std::string &name, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All) |
template<class CType > | |
CType * | assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All) |
index_iterator | beginIndex () const |
const_name_iterator | beginName () const |
CCopasiParameterGroup (const CCopasiParameterGroup &src, const CDataContainer *pParent=NULL) | |
CCopasiParameterGroup (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="ParameterGroup") | |
void | clear () |
virtual void | createUndoData (CUndoData &undoData, const CUndoData::Type &type, const CData &oldData=CData(), const CCore::Framework &framework=CCore::Framework::ParticleNumbers) const |
virtual bool | elevateChildren () |
index_iterator | endIndex () const |
const_name_iterator | endName () const |
CCopasiParameterGroup & | getElementTemplates () |
const CCopasiParameterGroup & | getElementTemplates () const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (const std::string &name) const |
virtual size_t | getIndex (const CDataObject *pObject) const |
size_t | getIndex (const std::string &name) const |
std::string | getKey (const size_t &index) const |
std::string | getKey (const std::string &name) const |
virtual const std::string & | getName (const size_t &index) const |
virtual const CObjectInterface * | getObject (const CCommonName &cn) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter * | getParameter (std::string name) |
const CCopasiParameter * | getParameter (std::string name) const |
CCopasiParameter::Type | getType (const size_t &index) const |
CCopasiParameter::Type | getType (const std::string &name) const |
std::string | getUniqueParameterName (const CCopasiParameter *pParameter) const |
template<class CType > | |
CType & | getValue (const size_t &index) |
template<class CType > | |
const CType & | getValue (const size_t &index) const |
template<class CType > | |
CType & | getValue (const std::string &name) |
template<class CType > | |
const CType & | getValue (const std::string &name) const |
bool | haveTemplate () const |
virtual CUndoObjectInterface * | insert (const CData &data) |
CCopasiParameterGroup & | operator= (const CCopasiParameterGroup &rhs) |
virtual bool | remove (CDataObject *pObject) |
bool | removeParameter (CCopasiParameter *pParameter) |
bool | removeParameter (const size_t &index) |
bool | removeParameter (const std::string &name) |
virtual void | setUserInterfaceFlag (const UserInterfaceFlag &flag) |
template<class CType > | |
bool | setValue (const size_t &index, const CType &value) |
template<class CType > | |
bool | setValue (const std::string &name, const CType &value) |
size_t | size (const UserInterfaceFlag &require=UserInterfaceFlag::None, const UserInterfaceFlag &exclude=UserInterfaceFlag::None) const |
bool | swap (const size_t &iFrom, const size_t &iTo) |
bool | swap (index_iterator &from, index_iterator &to) |
virtual CData | toData () const |
virtual void | updateIndex (const size_t &index, const CUndoObjectInterface *pUndoObject) |
virtual | ~CCopasiParameterGroup () |
Public Member Functions inherited from CCopasiParameter | |
CCopasiParameter (const CCopasiParameter &src, const CDataContainer *pParent) | |
CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="Parameter") | |
virtual CCommonName | getCN () const override |
template<class CType > | |
const CType & | getDefault () const |
virtual const std::string & | getKey () const override |
virtual std::string | getObjectDisplayName () const override |
const CCopasiParameter::Type & | getType () const |
const UserInterfaceFlag & | getUserInterfaceFlag () const |
template<class CType > | |
std::vector< std::pair< CType, CType > > & | getValidValues () |
template<class CType > | |
const std::vector< std::pair< CType, CType > > & | getValidValues () const |
void * | getValidValuesPointer () const |
template<class CType > | |
CType & | getValue () |
template<class CType > | |
const CType & | getValue () const |
virtual void * | getValuePointer () const override |
CDataObject * | getValueReference () const |
bool | hasValidValues () const |
bool | isBasic () const |
bool | isDefault () const |
bool | isEditable () const |
bool | isUnsupported () const |
bool | isValidValue (const bool &value) const |
bool | isValidValue (const C_FLOAT64 &value) const |
bool | isValidValue (const C_INT32 &value) const |
bool | isValidValue (const CCommonName &value) const |
template<class CType > | |
bool | isValidValue (const CType &) const |
bool | isValidValue (const std::string &value) const |
bool | isValidValue (const std::vector< CCopasiParameter * > &value) const |
bool | isValidValue (const unsigned C_INT32 &value) const |
CCopasiParameter & | operator= (const CCopasiParameter &rhs) |
template<class CType > | |
bool | setDefault (const CType &defaultValue) |
bool | setDefault (const std::vector< CCopasiParameter * > &defaultValue) |
virtual bool | setObjectParent (const CDataContainer *pParent) override |
template<class CType , class Enum > | |
bool | setValidValues (const CEnumAnnotation< CType, Enum > &validValues) |
template<class CType > | |
bool | setValidValues (const std::vector< std::pair< CType, CType > > &validValues) |
template<class CType > | |
bool | setValue (const CType &value) |
bool | setValue (const std::vector< CCopasiParameter * > &value) |
virtual | ~CCopasiParameter () |
Public Member Functions inherited from CDataContainer | |
virtual bool | add (CDataObject *pObject, const bool &adopt=true) |
virtual bool | appendDeletedDependentData (CUndoData &undoData) const |
CDataContainer (const CDataContainer &src, const CDataContainer *pParent) | |
CDataContainer (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None) | |
virtual std::string | getChildObjectUnits (const CDataObject *pObject) const |
void | getDescendants (CDataObject::DataObjectSet &descendants, const bool &recursive=false) const |
virtual objectMap & | getObjects () |
virtual const objectMap & | getObjects () const |
virtual const std::string | getUnits () const override |
virtual const CDataObject * | getValueObject () const override |
void | objectRenamed (CDataObject *pObject, const std::string &oldName) |
virtual | ~CDataContainer () |
Public Member Functions inherited from CDataObject | |
void | addIssue (const CIssue &issue) |
void | addReference (const CDataContainer *pReference) |
virtual void | calculateValue () override |
CDataObject (const CDataObject &src, const CDataContainer *pParent=NULL) | |
virtual void | destruct () override |
virtual const CDataObject * | getDataObject () const override |
CDataContainer * | getObjectAncestor (const std::string &type) const |
CDataModel * | getObjectDataModel () const |
const CObjectInterface * | getObjectFromCN (const CCommonName &cn) const |
const std::string & | getObjectName () const |
CDataContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const override |
virtual const CValidity & | getValidity () const override |
bool | hasFlag (const Flag &flag) const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override |
bool | prerequisitsContains (const DataObjectSet &objects) const |
void | removeIssue (const CIssue &issue) |
void | removeReference (const CDataContainer *pReference) |
bool | setObjectName (const std::string &name) |
void | validityChanged (const CValidity &changedValidity) override |
void | validityRemoved (const CValidity &changedValidity) |
virtual | ~CDataObject () |
Public Member Functions inherited from CObjectInterface | |
CObjectInterface () | |
CObjectInterface (const CObjectInterface &src) | |
virtual | ~CObjectInterface () |
Public Member Functions inherited from CUndoObjectInterface | |
CUndoObjectInterface () | |
CUndoObjectInterface (const CUndoObjectInterface &src) | |
bool | generateUuid () |
const xg::Guid & | getUuid () const |
bool | setUuid (const std::string &uuid) |
bool | setUuid (const xg::Guid &uuid) |
virtual | ~CUndoObjectInterface () |
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 Public Member Functions inherited from CCopasiParameter | |
static void | allocateValidValues (const Type &type, void *&pValidValues) |
static void | allocateValue (const Type &type, void *&pValue) |
static void | assignValue (const Type &type, void *&pValue, const void *pNewValue) |
static void | deleteValidValues (const Type &type, void *&pValidValues) |
static void | deleteValue (const Type &type, void *&pValue) |
static CCopasiParameter * | fromData (const CData &data, CUndoObjectInterface *pParent) |
Static Public Member Functions inherited from CDataContainer | |
static CDataContainer * | fromData (const CData &data, CUndoObjectInterface *pParent) |
Static Public Member Functions inherited from CDataObject | |
static CDataObject * | fromData (const CData &data, CUndoObjectInterface *pParent) |
static void | sanitizeObjectName (std::string &name) |
Static Public Member Functions inherited from CObjectInterface | |
static const CDataObject * | DataObject (const CObjectInterface *pInterface) |
static CObjectInterface * | GetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName) |
Static Public Member Functions inherited from CUndoObjectInterface | |
template<class CType > | |
static CType * | fromData (const CData &, CUndoObjectInterface *) |
Private Member Functions | |
void | addMode (const CFluxMode &mode) |
void | buildFluxModes () |
void | buildKernelMatrix (CMatrix< C_INT64 > &kernel) |
CBitPatternTreeMethod () | |
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 () |
Additional Inherited Members | |
Public Types inherited from CCopasiParameterGroup | |
typedef CDataObjectMap::const_type_iterator< CCopasiParameter > | const_name_iterator |
typedef std::vector< CCopasiParameter * > | elements |
typedef elements::iterator | index_iterator |
typedef CDataObjectMap::type_iterator< CCopasiParameter > | name_iterator |
Public Types inherited from CCopasiParameter | |
enum class | eUserInterfaceFlag { editable , basic , unsupported , __SIZE } |
enum class | Type { DOUBLE = 0 , UDOUBLE , INT , UINT , BOOL , GROUP , STRING , CN , KEY , FILE , EXPRESSION , INVALID , __SIZE } |
typedef CFlags< eUserInterfaceFlag > | UserInterfaceFlag |
Public Types inherited from CDataContainer | |
typedef CDataObjectMap | objectMap |
Public Types inherited from CDataObject | |
typedef std::set< const CDataObject * > | DataObjectSet |
enum | Flag { Container , Vector , Matrix , NameVector , Reference , ValueBool , ValueInt , ValueInt64 , ValueDbl , NonUniqueName , StaticString , ValueString , Separator , DisplayName , ModelEntity , Array , DataModel , Root , Gui , __SIZE } |
Public Types inherited from CObjectInterface | |
typedef std::vector< const CDataContainer * > | ContainerList |
typedef std::set< const CObjectInterface * > | ObjectSet |
Static Public Attributes inherited from CCopasiParameter | |
static const CEnumAnnotation< std::string, Type > | TypeName |
static const CEnumAnnotation< std::string, Type > | XMLType |
Static Public Attributes inherited from CDataContainer | |
static const CObjectInterface::ContainerList | EmptyList |
Protected Member Functions inherited from CCopasiMethod | |
CCopasiMethod (const CCopasiMethod &src) | |
CCopasiMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType) | |
virtual void | signalMathContainerChanged () |
Protected Member Functions inherited from CCopasiParameterGroup | |
CCopasiParameterGroup () | |
Protected Member Functions inherited from CCopasiParameter | |
CCopasiParameter (const CCopasiParameter &src) | |
Protected Member Functions inherited from CDataContainer | |
template<class CType > | |
CDataMatrixReference< CType > * | addMatrixReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None) |
template<class CType > | |
CDataObjectReference< CType > * | addObjectReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None) |
template<class CType > | |
CDataVectorReference< CType > * | addVectorReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None) |
CDataContainer (const CDataContainer &src) | |
void | initObjects () |
Protected Member Functions inherited from CDataObject | |
CDataObject () | |
CDataObject (const std::string &name, const CDataContainer *pParent=static_cast< CDataContainer * >((void *) 0), const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None) | |
|
private |
Default constructor.
CBitPatternTreeMethod::CBitPatternTreeMethod | ( | const CDataContainer * | pParent, |
const CTaskEnum::Method & | methodType = CTaskEnum::Method::EFMBitPatternTreeAlgorithm , |
||
const CTaskEnum::Task & | taskType = CTaskEnum::Task::fluxMode |
||
) |
Specific constructor
const | CDataContainer * pParent |
const | CTaskEnum::Method & methodType (default: EFMBitPatternTreeAlgorithm) |
const | CTaskEnum::Task & taskType (default: fluxMode) |
References initObjects().
CBitPatternTreeMethod::CBitPatternTreeMethod | ( | const CBitPatternTreeMethod & | src, |
const CDataContainer * | pParent | ||
) |
CBitPatternTreeMethod::~CBitPatternTreeMethod | ( | ) |
Destructor
References mpNullTree, and pdelete.
|
private |
Add the flux mode to the list only if the reversed does not exist
const | CFluxMode & mode |
References CEFMMethod::mpFluxModes.
Referenced by buildFluxModes().
|
private |
Postprocess the step matrix to construct the flux modes.
References addMode(), CMatrix< CType >::array(), CVectorCore< 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 |
References CMatrix< CType >::array(), CDataVector< CType >::begin(), C_FLOAT64, C_INT64, CalculateKernel(), CDataVector< CType >::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.
References CProcessReportLevel::addItem(), buildFluxModes(), C_INT32, combine(), CStepMatrix::compact(), CStepMatrix::convertRow(), findRemoveInvalidColumns(), CProcessReportLevel::finishItem(), CStepMatrix::getFirstUnconvertedRow(), CStepMatrix::getNumUnconvertedRows(), CBitPatternTree::getRoot(), initialize(), mContinueCombination, mhProgressCounter, mhProgressCounter2, mpNullTree, CCopasiMethod::mProcessReport, mProgressCounter, mProgressCounter2, mProgressCounter2Max, mProgressCounterMax, mpStepMatrix, mStep, pdelete, CProcessReportLevel::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 |
References abs64, CMatrix< CType >::array(), CVectorCore< 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 |
References CStepMatrix::addColumn(), CZeroSet::getNumberOfSetBits(), CBitPatternTreeNode::getSetChild(), CBitPatternTreeNode::getStepMatrixColumn(), CBitPatternTreeNode::getUnsetChild(), CBitPatternTreeNode::getZeroSet(), CZeroSet::intersection(), CBitPatternTree::isExtremeRay(), CZeroSet::isExtremeRay(), mContinueCombination, mhProgressCounter2, mMinimumSetSize, mNewColumns, mpNullTree, CCopasiMethod::mProcessReport, mProgressCounter2, mpStepMatrix, CProcessReportLevel::proceed(), CProcessReportLevel::progressItem(), and CStepMatrix::removeColumn().
Referenced by calculate().
|
private |
Remove the invalid columns from the step matrix
const | std::vector< CStepMatrix::iterator > & nullColumns |
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 |
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.
References CVectorCore< CType >::array(), CStepMatrix::getUnsetBitIndexes(), mpStepMatrix, mReactionPivot, and CVectorCore< CType >::size().
Referenced by buildFluxModes().
|
virtual |
Initialize arrays and pointer.
Reimplemented from CEFMMethod.
References CProcessReportLevel::addItem(), buildKernelMatrix(), C_INT32, CMathContainer::getModel(), CStepMatrix::getNumUnconvertedRows(), CDataObject::getObjectParent(), CEFMMethod::initialize(), mContinueCombination, mhProgressCounter, mMinimumSetSize, CCopasiMethod::mpContainer, mpModel, CCopasiMethod::mProcessReport, mProgressCounter, mProgressCounterMax, mpStepMatrix, mReactionForward, CMatrix< CType >::numCols(), and pdelete.
Referenced by calculate().
|
private |
Initialize the needed CDataObjects.
References CDataContainer::addObjectReference(), mProgressCounter, and CDataObject::ValueInt.
Referenced by CBitPatternTreeMethod().
|
protected |
Boolean value indicating whether combination should continue.
Referenced by calculate(), combine(), and initialize().
The transpose of the expanded stoichiometry matrix.
Referenced by buildFluxModes(), and buildKernelMatrix().
|
protected |
Handle to the process report item "Current Step"
Referenced by calculate(), and initialize().
|
protected |
Handle to the process report item "Combination"
Referenced by calculate(), and combine().
|
protected |
The minimum set size use to determine whether a linear combination is allowed.
Referenced by combine(), and initialize().
|
protected |
A list of invalid columns currently in the step matrix
Referenced by combine(), and findRemoveInvalidColumns().
|
protected |
A pointer to the model which is analyzed.
Referenced by buildKernelMatrix(), and initialize().
|
protected |
The bit pattern tree for the current step
Referenced by calculate(), combine(), and ~CBitPatternTreeMethod().
|
protected |
The current step used for process report.
Referenced by calculate(), initialize(), and initObjects().
|
protected |
The current combination used for process report.
Referenced by calculate(), and combine().
|
protected |
The max combination used for process report.
Referenced by calculate().
|
protected |
The max step used for process report.
Referenced by calculate(), and initialize().
|
protected |
A pointer to the step matrix for creating the flux modes
Referenced by buildFluxModes(), calculate(), combine(), findRemoveInvalidColumns(), getUnsetBitIndexes(), and initialize().
|
protected |
A vector to recording the expansion of the stoichiometry matrix.
Referenced by buildFluxModes(), buildKernelMatrix(), and initialize().
|
protected |
A vector recording the pivots for the QR factorization
Referenced by buildKernelMatrix(), and getUnsetBitIndexes().
|
protected |
The currently process step
Referenced by calculate().