COPASI API
4.16.103
|
#include <CTrajAdaptiveSA.h>
Classes | |
class | CReactionDependencies |
Public Member Functions | |
CTrajAdaptiveSA (const CTrajAdaptiveSA &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | elevateChildren () |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual void | start (const CState *initialState) |
virtual Status | step (const double &deltaT) |
~CTrajAdaptiveSA () | |
![]() | |
CTrajectoryMethod (const CTrajectoryMethod &src, const CCopasiContainer *pParent=NULL) | |
const CVector< C_INT > & | getRoots () const |
void | setCurrentState (CState *currentState) |
void | setProblem (CTrajectoryProblem *problem) |
virtual void | stateChanged () |
~CTrajectoryMethod () | |
![]() | |
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 () |
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 CTrajAdaptiveSA * | createTauLeapMethod () |
![]() | |
static CTrajectoryMethod * | createMethod (CCopasiMethod::SubType subType=CCopasiMethod::deterministic) |
![]() | |
static std::vector< Refresh * > | buildUpdateSequence (const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet()) |
static void | setRenameHandler (CRenameHandler *rh) |
Protected Member Functions | |
const C_FLOAT64 & | calculateAmu (const size_t &index) |
CTrajAdaptiveSA (const CCopasiContainer *pParent=NULL) | |
C_FLOAT64 | doSingleSSAStep (const C_FLOAT64 &curTime, const C_FLOAT64 &endTime) |
C_FLOAT64 | doSingleTauLeapStep (const C_FLOAT64 &curTime, const C_FLOAT64 &endTime) |
![]() | |
CTrajectoryMethod (const CCopasiMethod::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 | |
C_FLOAT64 | mA0 |
CVector< C_FLOAT64 > | mAmu |
bool | mDoCorrection |
unsigned C_INT32 | mMaxSteps |
bool | mMaxStepsReached |
CState | mMethodState |
size_t | mNextReactionIndex |
C_FLOAT64 | mNextReactionTime |
size_t | mNumReactions |
size_t | mNumReactionSpecies |
size_t | mNumSpecies |
CVector< const C_FLOAT64 * > | mPartitionedAmu |
CVector< const CReactionDependencies * > | mPartitionedDependencies |
CModel * | mpModel |
CRandom * | mpRandomGenerator |
std::vector < CReactionDependencies > | mReactionDependencies |
![]() | |
CState * | mpCurrentState |
CTrajectoryProblem * | mpProblem |
CVector< C_INT > | mRoots |
![]() | |
CProcessReport * | mpCallBack |
![]() | |
std::string | mKey |
CCopasiObject * | mpValueReference |
size_t | mSize |
Value | mValue |
![]() | |
objectMap | mObjects |
Private Member Functions | |
void | initializeParameter () |
Private Attributes | |
CVector< C_FLOAT64 > | mAvgDX |
C_FLOAT64 | mEpsilon |
size_t | mFirstReactionSpeciesIndex |
CVector< size_t > | mMaxReactionFiring |
CVector< C_FLOAT64 * > | mPartitionedReactionFiring |
C_FLOAT64 * | mpMethodSpecies |
CVector< C_FLOAT64 > | mReactionFiring |
CVector< C_FLOAT64 > | mSigDX |
CVector< C_FLOAT64 > | mSpeciesAfterTau |
C_FLOAT64 | mSSAStepCounter |
std::vector< Refresh * > | mTauCalculations |
Friends | |
CTrajectoryMethod * | CTrajectoryMethod::createMethod (CCopasiMethod::SubType subType) |
Definition at line 36 of file CTrajAdaptiveSA.h.
|
protected |
Default constructor.
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 86 of file CTrajAdaptiveSA.cpp.
References initializeParameter().
Referenced by createTauLeapMethod().
CTrajAdaptiveSA::CTrajAdaptiveSA | ( | const CTrajAdaptiveSA & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy constructor.
const | CTrajAdaptiveSA & src, |
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 114 of file CTrajAdaptiveSA.cpp.
References initializeParameter().
CTrajAdaptiveSA::~CTrajAdaptiveSA | ( | ) |
Destructor.
Definition at line 143 of file CTrajAdaptiveSA.cpp.
References mpRandomGenerator, and pdelete.
|
protected |
Calculate the propensity of the indexed reaction
const | size_t & index |
Definition at line 844 of file CTrajAdaptiveSA.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, mAmu, mDoCorrection, CTrajAdaptiveSA::CReactionDependencies::mMethodSubstrates, CTrajAdaptiveSA::CReactionDependencies::mModelSubstrates, CTrajAdaptiveSA::CReactionDependencies::mpParticleFlux, mReactionDependencies, CTrajAdaptiveSA::CReactionDependencies::mSubstrateMultiplier, and CVectorCore< CType >::size().
Referenced by doSingleSSAStep(), doSingleTauLeapStep(), and start().
|
static |
Chooses a stochastic method adequate for the problem
Definition at line 77 of file CTrajAdaptiveSA.cpp.
References CTrajAdaptiveSA().
|
protected |
Fire the next reaction if it fire before the endTime
const | C_FLOAT64 & curTime |
const | C_FLOAT64 & endTime |
Definition at line 753 of file CTrajAdaptiveSA.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, C_INVALID_INDEX, calculateAmu(), CCopasiMessage::EXCEPTION, CRandom::getRandomOO(), mA0, mAmu, CTrajAdaptiveSA::CReactionDependencies::mCalculations, MCTrajectoryMethod, CTrajAdaptiveSA::CReactionDependencies::mDependentReactions, CTrajAdaptiveSA::CReactionDependencies::mMethodSpecies, CTrajAdaptiveSA::CReactionDependencies::mModelSpecies, mNextReactionIndex, mNextReactionTime, mNumReactions, mpModel, mpRandomGenerator, mReactionDependencies, CTrajAdaptiveSA::CReactionDependencies::mSpeciesMultiplier, CModel::setTime(), and CVectorCore< CType >::size().
Referenced by step().
|
protected |
Fire the next reaction if it fire before the endTime
const | C_FLOAT64 & curTime |
const | C_FLOAT64 & endTime |
Definition at line 482 of file CTrajAdaptiveSA.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, C_INVALID_INDEX, calculateAmu(), CCopasiMessage::EXCEPTION, CRandom::getRandomOO(), CRandom::getRandomPoisson(), mA0, mAmu, mAvgDX, max, MCTrajectoryMethod, mEpsilon, mMaxReactionFiring, CTrajAdaptiveSA::CReactionDependencies::mMethodSpeciesIndex, mMethodState, mNumReactions, mNumReactionSpecies, mPartitionedAmu, mPartitionedDependencies, mPartitionedReactionFiring, mpMethodSpecies, mpModel, mpRandomGenerator, mReactionDependencies, mReactionFiring, mSigDX, mSpeciesAfterTau, CTrajAdaptiveSA::CReactionDependencies::mSpeciesMultiplier, mSSAStepCounter, CModel::setState(), CState::setTime(), CVectorCore< CType >::size(), SSA_MULTIPLE, SSA_UPPER_NUM, CModel::updateSimulatedValues(), and UPPER_LIMIT.
Referenced by step().
|
virtual |
This methods must be called to elevate subgroups to derived objects. The default implementation does nothing.
Reimplemented from CCopasiParameterGroup.
Definition at line 156 of file CTrajAdaptiveSA.cpp.
References initializeParameter().
|
private |
Initialize the method parameter
Definition at line 148 of file CTrajAdaptiveSA.cpp.
References CCopasiParameterGroup::assertParameter(), CCopasiParameter::BOOL, C_FLOAT64, C_INT32, CCopasiParameter::DOUBLE, EPS, CCopasiParameter::INT, and CCopasiParameter::UINT.
Referenced by CTrajAdaptiveSA(), and elevateChildren().
|
virtual |
Check if the method is suitable for this problem
Reimplemented from CTrajectoryMethod.
Definition at line 411 of file CTrajAdaptiveSA.cpp.
References CStateTemplate::beginIndependent(), CStateTemplate::endIndependent(), CCopasiMessage::EXCEPTION, CTrajectoryProblem::getDuration(), CCopasiProblem::getModel(), CModel::getStateTemplate(), CModel::getTotSteps(), CCopasiParameter::getValue(), CTrajectoryMethod::isValidProblem(), MCTrajectoryMethod, CModelEntity::ODE, CCopasiParameter::Value::pINT, and CModel::suitableForStochasticSimulation().
This instructs the method to prepare for integration starting with the initialState given.
const CState * | initialState |
Reimplemented from CTrajectoryMethod.
Definition at line 194 of file CTrajAdaptiveSA.cpp.
References CVectorCore< CType >::array(), CCopasiVector< T >::begin(), CStateTemplate::beginIndependent(), CState::beginIndependent(), CCopasiObject::buildUpdateSequence(), C_FLOAT64, C_INT32, C_INVALID_INDEX, calculateAmu(), CModel::deterministic, CCopasiVector< T >::end(), CStateTemplate::endFixed(), CStateTemplate::getIndex(), CModel::getMetabolitesX(), CCopasiProblem::getModel(), CModel::getModelType(), CModel::getNumDependentReactionMetabs(), CModel::getNumIndependentReactionMetabs(), CModel::getReactions(), CModel::getState(), CModel::getStateTemplate(), CModelEntity::getStatus(), CState::getTime(), CCopasiParameter::getValue(), CCopasiObject::getValuePointer(), CModelEntity::getValueReference(), CRandom::initialize(), mA0, mAmu, mAvgDX, mDoCorrection, mEpsilon, mFirstReactionSpeciesIndex, mMaxReactionFiring, mMaxSteps, mMaxStepsReached, mMethodState, mNextReactionIndex, mNextReactionTime, mNumReactions, mNumReactionSpecies, mNumSpecies, mPartitionedAmu, mPartitionedDependencies, mPartitionedReactionFiring, CTrajectoryMethod::mpCurrentState, mpMethodSpecies, mpModel, CTrajectoryMethod::mpProblem, mpRandomGenerator, mReactionDependencies, mReactionFiring, mSigDX, mSpeciesAfterTau, mSSAStepCounter, CCopasiParameter::Value::pBOOL, CCopasiParameter::Value::pDOUBLE, CCopasiParameter::Value::pINT, CCopasiParameter::Value::pUINT, CModelEntity::REACTIONS, CVector< CType >::resize(), CModel::setState(), CCopasiVector< T >::size(), and CModel::updateSimulatedValues().
|
virtual |
This instructs the method to calculate a time step of deltaT starting with the current state, i.e., the result of the previous step. The new state (after deltaT) is expected in the current state. The return value is the actual timestep taken.
const double & | deltaT |
Reimplemented from CTrajectoryMethod.
Definition at line 162 of file CTrajAdaptiveSA.cpp.
References C_FLOAT64, doSingleSSAStep(), doSingleTauLeapStep(), CCopasiMessage::EXCEPTION, CCopasiProblem::getModel(), CModel::getState(), CState::getTime(), MCTrajectoryMethod, mMaxSteps, CTrajectoryMethod::mpCurrentState, CTrajectoryMethod::mpProblem, mSSAStepCounter, CTrajectoryMethod::NORMAL, and CState::setTime().
|
friend |
|
protected |
Total propensity (sum over mAmu[i])
Definition at line 337 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), doSingleTauLeapStep(), and start().
A vector of reaction propensities
Definition at line 312 of file CTrajAdaptiveSA.h.
Referenced by calculateAmu(), doSingleSSAStep(), doSingleTauLeapStep(), and start().
The mean and variance of species
Definition at line 233 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
A boolean flag indicating whether correction for higher order reactions need to be applied
Definition at line 302 of file CTrajAdaptiveSA.h.
Referenced by calculateAmu(), and start().
|
private |
The tolerance ratio x(t+t')< eps*x(t)
Definition at line 212 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
private |
|
private |
The upper fires of the j-th reactions
Definition at line 222 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
max number of single stochastic steps to do in one step()
Definition at line 287 of file CTrajAdaptiveSA.h.
|
protected |
A boolean flag indicating whether the maximum steps have been reached. This is used to avoid multiple messages.
Definition at line 343 of file CTrajAdaptiveSA.h.
Referenced by start().
|
protected |
The method internal state which contains particle rounded particle numbers.
Definition at line 322 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
The index of the next reaction which fires
Definition at line 297 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), and start().
|
protected |
The time the next reaction fires
Definition at line 292 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), and start().
|
protected |
The particle and reaction numbers
Definition at line 282 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), doSingleTauLeapStep(), and start().
|
protected |
Number of variable metabolites.
Definition at line 307 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
Definition at line 282 of file CTrajAdaptiveSA.h.
Referenced by start().
The ordered propensity function
Definition at line 317 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
The Ordered reaction
Definition at line 332 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
Definition at line 228 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
private |
The species pointer for average, variance, and population (ordered)
Definition at line 242 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
protected |
A pointer to the instance of CModel being used.
Definition at line 277 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), doSingleTauLeapStep(), and start().
|
protected |
The random number generator
Definition at line 272 of file CTrajAdaptiveSA.h.
Referenced by doSingleSSAStep(), doSingleTauLeapStep(), start(), and ~CTrajAdaptiveSA().
|
protected |
A vector containing dependency information to minimize the required updates.
Definition at line 327 of file CTrajAdaptiveSA.h.
Referenced by calculateAmu(), doSingleSSAStep(), doSingleTauLeapStep(), and start().
The number of fires
Definition at line 227 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
Definition at line 234 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
The temporary species
Definition at line 247 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), and start().
|
private |
The counter to count the time of doing single SSA
Definition at line 217 of file CTrajAdaptiveSA.h.
Referenced by doSingleTauLeapStep(), start(), and step().
|
private |
Vector of refresh methods which need to be executed to update all values required for simulation
Definition at line 252 of file CTrajAdaptiveSA.h.