Miind
Public Types | Public Member Functions | Private Attributes | List of all members
MPILib::HebbianAlgorithm Class Reference

#include <libs/MPILib/include/HebbianAlgorithm.hpp>

Inheritance diagram for MPILib::HebbianAlgorithm:
Inheritance graph
Collaboration diagram for MPILib::HebbianAlgorithm:
Collaboration graph

Public Types

typedef double WeightType
 

Public Member Functions

 HebbianAlgorithm (const HebbianParameter &)
 
 HebbianAlgorithm (const HebbianAlgorithm &)
 
 ~HebbianAlgorithm ()
 
virtual HebbianAlgorithmclone () const
 
virtual void configure (const SimulationRunParameter &simParam)
 
virtual void evolveNodeState (const std::vector< Rate > &nodeVector, const std::vector< double > &weightVector, Time time)
 
virtual void evolveNodeState (const std::vector< Rate > &nodeVector, const std::vector< double > &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
 
virtual Time getCurrentTime () const
 
virtual AlgorithmGrid getGrid (NodeId, bool b_state=true) const
 
NumbergetStateSize (AlgorithmGrid &grid) const
 
Number getStateSize (const AlgorithmGrid &grid) const
 
virtual void prepareEvolve (const std::vector< Rate > &nodeVector, const std::vector< double > &weightVector, const std::vector< NodeType > &typeVector)
 

Private Attributes

MPILib::Rate _rate
 
MPILib::Time _time
 

Detailed Description

Definition at line 28 of file HebbianAlgorithm.hpp.

Member Typedef Documentation

typedef double MPILib::AlgorithmInterface< double >::WeightType
inherited

Definition at line 41 of file AlgorithmInterface.hpp.

Constructor & Destructor Documentation

HebbianAlgorithm::HebbianAlgorithm ( const HebbianParameter par_heb)

Definition at line 34 of file HebbianAlgorithm.cpp.

Referenced by clone().

HebbianAlgorithm::HebbianAlgorithm ( const HebbianAlgorithm rhs)

Cloning operation, to provide each DynamicNode with its own Algorithm instance. Clients use the naked pointer at their own risk.

Definition at line 40 of file HebbianAlgorithm.cpp.

HebbianAlgorithm::~HebbianAlgorithm ( )

Definition at line 45 of file HebbianAlgorithm.cpp.

Member Function Documentation

HebbianAlgorithm * HebbianAlgorithm::clone ( ) const
virtual

Cloning operation, to provide each DynamicNode with its own Algorithm instance. Clients use the naked pointer at their own risk.

Implements MPILib::AlgorithmInterface< double >.

Definition at line 71 of file HebbianAlgorithm.cpp.

References HebbianAlgorithm().

void HebbianAlgorithm::configure ( const SimulationRunParameter simParam)
virtual

Configure the Algorithm

Parameters
simParam

Implements MPILib::AlgorithmInterface< double >.

Definition at line 61 of file HebbianAlgorithm.cpp.

References _time, and MPILib::SimulationRunParameter::getTBegin().

void HebbianAlgorithm::evolveNodeState ( const std::vector< Rate > &  nodeVector,
const std::vector< double > &  weightVector,
Time  time 
)
virtual

Evolve the node state

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

Reimplemented from MPILib::AlgorithmInterface< double >.

Definition at line 65 of file HebbianAlgorithm.cpp.

virtual void MPILib::AlgorithmInterface< double >::evolveNodeState ( const std::vector< Rate > &  nodeVector,
const std::vector< double > &  weightVector,
Time  time,
const std::vector< NodeType > &  typeVector 
)
inlinevirtualinherited

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 83 of file AlgorithmInterface.hpp.

std::valarray<double>& MPILib::AlgorithmInterface< double >::getArrayInterpretation ( AlgorithmGrid grid) const
inlineinherited

Definition at line 125 of file AlgorithmInterface.hpp.

std::valarray<double>& MPILib::AlgorithmInterface< double >::getArrayState ( AlgorithmGrid grid) const
inlineinherited

Definition at line 120 of file AlgorithmInterface.hpp.

MPILib::Rate HebbianAlgorithm::getCurrentRate ( ) const
virtual

The calculated rate of the node

Returns
The rate of the node

Implements MPILib::AlgorithmInterface< double >.

Definition at line 48 of file HebbianAlgorithm.cpp.

References _rate.

MPILib::Time HebbianAlgorithm::getCurrentTime ( ) const
virtual

The current timepoint

Returns
The current time point

Implements MPILib::AlgorithmInterface< double >.

Definition at line 52 of file HebbianAlgorithm.cpp.

References _time.

MPILib::AlgorithmGrid HebbianAlgorithm::getGrid ( NodeId  ,
bool  b_state = true 
) const
virtual

Stores the algorithm state in a Algorithm Grid

Parameters
NodeId,idof the node that needs to return the grid
b_state,returnthe entire state if true, a reduced grid with just the firing rate info if false
Returns
The state of the algorithm. The Grid must at least contain one element; an empty grid will cause a crash.

Implements MPILib::AlgorithmInterface< double >.

Definition at line 56 of file HebbianAlgorithm.cpp.

References _rate.

Number& MPILib::AlgorithmInterface< double >::getStateSize ( AlgorithmGrid grid) const
inlineinherited

Definition at line 130 of file AlgorithmInterface.hpp.

Number MPILib::AlgorithmInterface< double >::getStateSize ( const AlgorithmGrid grid) const
inlineinherited

Definition at line 135 of file AlgorithmInterface.hpp.

virtual void MPILib::AlgorithmInterface< double >::prepareEvolve ( const std::vector< Rate > &  nodeVector,
const std::vector< double > &  weightVector,
const std::vector< NodeType > &  typeVector 
)
inlinevirtualinherited

prepare the Evolve method

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

Definition at line 95 of file AlgorithmInterface.hpp.

Member Data Documentation

MPILib::Rate MPILib::HebbianAlgorithm::_rate
private

Definition at line 75 of file HebbianAlgorithm.hpp.

Referenced by getCurrentRate(), and getGrid().

MPILib::Time MPILib::HebbianAlgorithm::_time
private

Definition at line 76 of file HebbianAlgorithm.hpp.

Referenced by configure(), and getCurrentTime().


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