Miind
Public Types | Public Member Functions | List of all members
MPILib::algorithm::AlgorithmInterface< WeightValue > Class Template Referenceabstract

#include <libs/MPILib/include/algorithm/AlgorithmInterface.hpp>

Inheritance diagram for MPILib::algorithm::AlgorithmInterface< WeightValue >:
Inheritance graph
Collaboration diagram for MPILib::algorithm::AlgorithmInterface< WeightValue >:
Collaboration graph

Public Types

typedef WeightValue WeightType
 

Public Member Functions

 AlgorithmInterface ()=default
 
virtual ~AlgorithmInterface ()
 
virtual AlgorithmInterfaceclone () const =0
 
virtual void configure (const SimulationRunParameter &simParam)=0
 
virtual void evolveNodeState (const std::vector< Rate > &nodeVector, const std::vector< WeightValue > &weightVector, Time time)
 
virtual void evolveNodeState (const std::vector< Rate > &nodeVector, const std::vector< WeightValue > &weightVector, Time time, const std::vector< NodeType > &typeVector)
 
std::valarray< double > & getArrayInterpretation (AlgorithmGrid &grid) const
 
std::valarray< double > & getArrayState (AlgorithmGrid &grid) const
 
virtual Rate getCurrentRate () const =0
 
virtual Time getCurrentTime () const =0
 
virtual AlgorithmGrid getGrid () const =0
 
NumbergetStateSize (AlgorithmGrid &grid) const
 
Number getStateSize (const AlgorithmGrid &grid) const
 
virtual void prepareEvolve (const std::vector< Rate > &nodeVector, const std::vector< WeightValue > &weightVector, const std::vector< NodeType > &typeVector)
 

Detailed Description

template<class WeightValue>
class MPILib::algorithm::AlgorithmInterface< WeightValue >

The interface for all algorithm classes.

This class provides the interface to which all developed algorithms need to implement.

Definition at line 40 of file AlgorithmInterface.hpp.

Member Typedef Documentation

template<class WeightValue>
typedef WeightValue MPILib::algorithm::AlgorithmInterface< WeightValue >::WeightType

Definition at line 43 of file AlgorithmInterface.hpp.

Constructor & Destructor Documentation

template<class WeightValue>
MPILib::algorithm::AlgorithmInterface< WeightValue >::AlgorithmInterface ( )
default
template<class WeightValue>
virtual MPILib::algorithm::AlgorithmInterface< WeightValue >::~AlgorithmInterface ( )
inlinevirtual

Definition at line 47 of file AlgorithmInterface.hpp.

Member Function Documentation

template<class WeightValue>
virtual AlgorithmInterface* MPILib::algorithm::AlgorithmInterface< WeightValue >::clone ( ) const
pure virtual
template<class WeightValue>
virtual void MPILib::algorithm::AlgorithmInterface< WeightValue >::configure ( const SimulationRunParameter simParam)
pure virtual
template<class WeightValue>
virtual void MPILib::algorithm::AlgorithmInterface< WeightValue >::evolveNodeState ( const std::vector< Rate > &  nodeVector,
const std::vector< WeightValue > &  weightVector,
Time  time 
)
inlinevirtual

Evolve the node state. Overwrite this method if your algorithm does not need to know the NodeTypes.

Parameters
nodeVectorVector of the node States
weightVectorVector of the weights of the nodes
timeTime point of the algorithm

Reimplemented in GeomLib::GeomAlgorithm< WeightValue >, MPILib::algorithm::DelayAlgorithm< Weight >, MPILib::algorithm::WilsonCowanAlgorithm, MPILib::algorithm::RateFunctor< WeightValue >, MPILib::algorithm::RateAlgorithm< Weight >, MPILib::algorithm::HebbianAlgorithm, and MPILib::algorithm::PersistantAlgorithm.

Definition at line 70 of file AlgorithmInterface.hpp.

Referenced by MPILib::algorithm::AlgorithmInterface< Weight >::evolveNodeState().

template<class WeightValue>
virtual void MPILib::algorithm::AlgorithmInterface< WeightValue >::evolveNodeState ( const std::vector< Rate > &  nodeVector,
const std::vector< WeightValue > &  weightVector,
Time  time,
const std::vector< NodeType > &  typeVector 
)
inlinevirtual

Evolve the node state. In the default case it simply calls envolveNodeState without the NodeTypes. However if an algorithm needs the nodeTypes of the precursors overwrite this function.

Parameters
nodeVectorVector of the node States
weightVectorVector of the weights of the nodes
timeTime point of the algorithm
typeVectorVector of the NodeTypes of the precursors

Definition at line 85 of file AlgorithmInterface.hpp.

template<class WeightValue>
std::valarray<double>& MPILib::algorithm::AlgorithmInterface< WeightValue >::getArrayInterpretation ( AlgorithmGrid grid) const
inline

Definition at line 125 of file AlgorithmInterface.hpp.

template<class WeightValue>
std::valarray<double>& MPILib::algorithm::AlgorithmInterface< WeightValue >::getArrayState ( AlgorithmGrid grid) const
inline

Definition at line 120 of file AlgorithmInterface.hpp.

template<class WeightValue>
virtual Rate MPILib::algorithm::AlgorithmInterface< WeightValue >::getCurrentRate ( ) const
pure virtual
template<class WeightValue>
virtual Time MPILib::algorithm::AlgorithmInterface< WeightValue >::getCurrentTime ( ) const
pure virtual
template<class WeightValue>
virtual AlgorithmGrid MPILib::algorithm::AlgorithmInterface< WeightValue >::getGrid ( ) const
pure virtual
template<class WeightValue>
Number& MPILib::algorithm::AlgorithmInterface< WeightValue >::getStateSize ( AlgorithmGrid grid) const
inline

Definition at line 130 of file AlgorithmInterface.hpp.

template<class WeightValue>
Number MPILib::algorithm::AlgorithmInterface< WeightValue >::getStateSize ( const AlgorithmGrid grid) const
inline

Definition at line 135 of file AlgorithmInterface.hpp.

template<class WeightValue>
virtual void MPILib::algorithm::AlgorithmInterface< WeightValue >::prepareEvolve ( const std::vector< Rate > &  nodeVector,
const std::vector< WeightValue > &  weightVector,
const std::vector< NodeType > &  typeVector 
)
inlinevirtual

prepare the Evolve method

Parameters
nodeVectorVector of the node States
weightVectorVector of the weights of the nodes
typeVectorVector of the NodeTypes of the precursors

Reimplemented in GeomLib::GeomAlgorithm< WeightValue >, and GeomLib::OUAlgorithm.

Definition at line 97 of file AlgorithmInterface.hpp.


The documentation for this class was generated from the following file: