#include "SpikeEvent.h"
#include "SimObjectCloneFactory.h"
#include "ScalarField.h"
#include "FieldRegistry.h"
#include "SimObjectInformation.h"
#include "AdvancePhase.h"
#include "AdvanceInfo.h"
#include <iostream>
#include <vector>
#include <limits>
#include <boost/shared_ptr.hpp>
#include "RandomEngine.h"
Go to the source code of this file.
Classes | |
class | SimObject |
Base class for all objects to simulate. More... | |
class | SimObject::ID |
Class containing all the id's necessary to uniquely identify a simulation object. More... | |
class | SimObject::BlockAllocator |
Class for memory management of SimObjects. More... | |
Defines | |
#define | ADVANCEFLAG_HASSPIKED 1 |
Bit mask for the return value of SimObject::advance(). | |
#define | ADVANCEFLAG_DEACTIVATE 2 |
Bit mask for the return value of SimObject::advance(). | |
#define | SPIKEHITFLAG_ACTIVATE 1 |
Bit mask for the return value of SimObject::spikeHit(). | |
#define | RESETFLAG_ACTIVATE 1 |
Bit mask for the return value of SimObject::resez(). | |
#define | SIMOBJECT(T, A) |
Macro which must be called for a an implementation of a simulation object. | |
Typedefs | |
typedef std::vector< SimObject * > | SpikeReceiverList |
Used for the collection of currently active spike driven objects. | |
Functions | |
ostream & | operator<< (ostream &s, const SimObject::ID &id) |
Output operator for SimObject::ID. |
#define ADVANCEFLAG_DEACTIVATE 2 |
Bit mask for the return value of SimObject::advance().
ADVANCEFLAG_DEACTIVATE & a->advance() > 0 indicates that the advancable object need not to be advanced during the next time steps.
Definition at line 36 of file SimObject.h.
Referenced by SimpleScalingSpikingSynapse::advance(), GenericDAModulatedSTDPSynapse< BaseSyn >::advance(), EvLifNeuron::advance(), SingleThreadSimEngine::advance(), and FiniteSpikeResponse::advanceReturn().
#define ADVANCEFLAG_HASSPIKED 1 |
Bit mask for the return value of SimObject::advance().
ADVANCEFLAG_HASSPIKED & a->advance() > 0 indicates that the advancable object produced a spike during the call of advance
Definition at line 30 of file SimObject.h.
Referenced by SpikingInputNeuron::advance(), PoissonInputNeuron::advance(), ODESystemBasedSpikingNeuron::advance(), LinearPoissonNeuron::advance(), CbLifNeuron::advance(), LifNeuron::advance(), ExIzhiNeuronBase::advance(), IzhiNeuronBase::advance(), and aEIFNeuronBase::advance().
#define RESETFLAG_ACTIVATE 1 |
Bit mask for the return value of SimObject::resez().
RESETFLAG_ACTIVATE & a->advance() > 0 indicates that the object should be put into the list of active spike driven objects
Definition at line 48 of file SimObject.h.
Referenced by OUNoiseResponse::reset(), GenericHomeostaticSynapse< GenericDynamicSpikingSynapse< GenericCurrentBasedSpikingSynapse< ExponentialDecaySpikeResponse > > >::reset(), and SingleThreadSimEngine::reset().
#define SIMOBJECT | ( | T, | |||
A | ) |
Value:
private: \ friend struct A; \ protected: \ static object_type_t type; \ friend class SimObjectRegistry; \ virtual void setObjectTypeID(object_type_t tid) { type = tid; } \ static SimObjectInformation *simObjectInfo; \ virtual void setSimObjectInformation( SimObjectInformation *info ) { simObjectInfo = info; }; \ public: \ virtual SimObjectInformation const*getSimObjectInformation(void) { return simObjectInfo; }; \ public: \ typedef SimObjectCloneFactory<T> CloneFactory; \ static T model; \ virtual SimObject* create(void) const { T* o = new T(*this); o->deepCopy(this); return o; }; \ virtual SimObject* create(RandomEngine *) const { T* o = new T(*this); o->deepCopy(this); return o; }; \ virtual object_type_t getObjectTypeID(void) const { return type; }; \ static object_type_t objectTypeID(void) { return type; }; \ static void registerField( Field const& f ) { simObjectInfo->getFieldRegistry().registerField(f); }; \ static void registerFields(void); \ static void registerSimObject(void); \
Definition at line 60 of file SimObject.h.
#define SPIKEHITFLAG_ACTIVATE 1 |
Bit mask for the return value of SimObject::spikeHit().
SPIKEHITFLAG_ACTIVATE & a->spikeHit( ... ) > 0 indicates that the spike receiving object should be moved to the active list
Definition at line 42 of file SimObject.h.
Referenced by SingleThreadSpikeScheduler::deliverSpikes(), MultiThreadSpikeScheduler::deliverSpikes(), GenericDAModulatedSTDPSynapse< BaseSyn >::spikeHit(), and FiniteSpikeResponse::spikeHitReturn().
typedef std::vector< SimObject* > SpikeReceiverList |
Used for the collection of currently active spike driven objects.
Definition at line 451 of file SimObject.h.
ostream& operator<< | ( | ostream & | s, | |
const SimObject::ID & | id | |||
) |