COPASI API
4.40.278
|
#include <CMathEventQueue.h>
Classes | |
class | CAction |
class | CKey |
Public Types | |
typedef std::multimap< CKey, CAction >::const_iterator | const_iterator |
typedef std::multimap< CKey, CAction >::iterator | iterator |
typedef std::pair< std::multimap< CKey, CAction >::iterator, std::multimap< CKey, CAction >::iterator > | range |
Public Member Functions | |
bool | addAssignment (const C_FLOAT64 &executionTime, const bool &equality, const CVectorCore< C_FLOAT64 > &values, CMathEvent *pEvent) |
bool | addCalculation (const C_FLOAT64 &executionTime, const bool &equality, CMathEvent *pEvent) |
CMathEventQueue (CMathContainer &mathContainer) | |
const C_FLOAT64 & | getProcessQueueExecutionTime () const |
void | printDebug () const |
CMath::StateChange | process (const bool &priorToOutput) |
void | removeAction (const std::pair< CMathEventQueue::CKey, CMathEventQueue::CAction > &action) |
void | start () |
~CMathEventQueue () | |
Private Member Functions | |
CMathEventQueue () | |
CMath::StateChange | executeAction (CMathEventQueue::iterator itAction) |
iterator | getAction () |
bool | rootsFound () |
Private Attributes | |
std::multimap< CKey, CAction > | mActions |
size_t | mCascadingLevel |
bool | mEquality |
size_t | mExecutionCounter |
size_t | mExecutionLimit |
CMathContainer * | mpContainer |
CVector< C_FLOAT64 > * | mpRootValuesAfter |
CVector< C_FLOAT64 > * | mpRootValuesBefore |
const C_FLOAT64 * | mpTime |
CVector< C_INT > | mRootsFound |
CVector< C_FLOAT64 > | mRootValues1 |
CVector< C_FLOAT64 > | mRootValues2 |
CCore::CUpdateSequence | mUpdateSequence |
Friends | |
std::ostream & | operator<< (std::ostream &os, const CAction &o) |
std::ostream & | operator<< (std::ostream &os, const CKey &o) |
std::ostream & | operator<< (std::ostream &os, const CMathEventQueue &o) |
typedef std::multimap< CKey, CAction >::const_iterator CMathEventQueue::const_iterator |
typedef std::multimap< CKey, CAction >::iterator CMathEventQueue::iterator |
typedef std::pair< std::multimap< CKey, CAction >::iterator, std::multimap< CKey, CAction >::iterator > CMathEventQueue::range |
|
private |
Default constructor
CMathEventQueue::CMathEventQueue | ( | CMathContainer & | mathContainer | ) |
Default constructor
CMathContainer | & mathContainer |
CMathEventQueue::~CMathEventQueue | ( | ) |
Destructor
bool CMathEventQueue::addAssignment | ( | const C_FLOAT64 & | executionTime, |
const bool & | equality, | ||
const CVectorCore< C_FLOAT64 > & | values, | ||
CMathEvent * | pEvent | ||
) |
Add an assignment to the process queue.
const | C_FLOAT64 & executionTime |
const | bool & equality |
const | CVectorCore< C_FLOAT64 > & values |
CMathEventN | * pEvent |
References CMathEvent::addPendingAction(), C_FLOAT64, CMathEvent::getPriority(), CMathObject::getValuePointer(), mActions, mCascadingLevel, and mpTime.
Referenced by CMathEvent::fire().
bool CMathEventQueue::addCalculation | ( | const C_FLOAT64 & | executionTime, |
const bool & | equality, | ||
CMathEvent * | pEvent | ||
) |
Add a calculation to the process queue.
const | C_FLOAT64 & executionTime |
const | bool & equality |
CMathEventN | * pEvent |
References CMathEvent::addPendingAction(), C_FLOAT64, CMathEvent::getPriority(), CMathObject::getValuePointer(), mActions, mCascadingLevel, and mpTime.
Referenced by CMathEvent::fire().
|
private |
Execute the calculations
CMathEventQueue::iterator | itAction |
References mActions, and mExecutionCounter.
Referenced by process().
|
private |
Retrieve the currently pending actions
References C_FLOAT64, CMathContainer::getRandomGenerator(), CRandom::getRandomU(), mActions, mCascadingLevel, mEquality, mpContainer, and mpTime.
Referenced by process().
const C_FLOAT64 & CMathEventQueue::getProcessQueueExecutionTime | ( | ) | const |
Retrieve the next execution time scheduled in the process queue
References C_FLOAT64, and mActions.
Referenced by CMathContainer::getProcessQueueExecutionTime(), and process().
|
inline |
This prints debugging info to stdout
CMath::StateChange CMathEventQueue::process | ( | const bool & | priorToOutput | ) |
Process the queue.
const | bool & priorToOutput |
References executeAction(), getAction(), getProcessQueueExecutionTime(), CMathContainer::getRoots(), CMathContainer::getState(), mActions, max, mCascadingLevel, mEquality, mExecutionCounter, mpContainer, mpRootValuesBefore, mpTime, mRootsFound, CFlags< eStateChange >::None, CMathContainer::processRoots(), rootsFound(), and CMathContainer::updatePriorityValues().
Referenced by CMathContainer::processQueue().
void CMathEventQueue::removeAction | ( | const std::pair< CMathEventQueue::CKey, CMathEventQueue::CAction > & | action | ) |
Remove an action from queue
const | std::pair< CMathEventQueue::CKey, CMathEventQueue::CAction > & action |
References mActions.
Referenced by CMathEvent::fire().
|
private |
Check whether the executions of assignment lead to newly found roots
References CVectorCore< CType >::array(), C_FLOAT64, C_INT, CMathContainer::getRootProcessors(), CMathContainer::getRoots(), mpContainer, mpRootValuesAfter, mpRootValuesBefore, mRootsFound, and CVectorCore< CType >::size().
Referenced by process().
void CMathEventQueue::start | ( | ) |
Start the event queue
References CVectorCore< CType >::array(), CMathContainer::getCountFixedEventTargets(), CMathContainer::getRoots(), CMathContainer::getState(), mActions, mpContainer, mpRootValuesAfter, mpRootValuesBefore, mpTime, mRootsFound, mRootValues1, mRootValues2, CVector< CType >::resize(), and CVectorCore< CType >::size().
Referenced by CMathContainer::applyInitialValues(), and CMathContainer::relocate().
|
friend |
|
friend |
|
friend |
An ordered list of calculations in the queue.
Referenced by addAssignment(), addCalculation(), executeAction(), getAction(), getProcessQueueExecutionTime(), process(), removeAction(), and start().
|
private |
The cascading level of events
Referenced by addAssignment(), addCalculation(), getAction(), CMathEventQueue::CKey::operator<(), and process().
|
private |
Indicate whether we processing equality or inequality
Referenced by getAction(), CMathEventQueue::CKey::operator<(), and process().
|
private |
A counter of the execution steps for the current process
Referenced by executeAction(), and process().
|
private |
The limit of execution steps allowed for call to process
|
private |
A pointer to the math container the event queue belongs to.
Referenced by getAction(), process(), rootsFound(), and start().
Referenced by rootsFound(), and start().
Referenced by process(), rootsFound(), and start().
|
private |
A pointer to the current container time
Referenced by addAssignment(), addCalculation(), getAction(), process(), and start().
Referenced by process(), rootsFound(), and start().
|
private |
The update sequence which need to be applied to update all roots and total moieties