Cypress  1.0
C++ Spiking Neural Network Simulation Framework
Classes | Namespaces | Macros | Typedefs
neurons.hpp File Reference
#include <cypress/core/neurons_base.hpp>
Include dependency graph for neurons.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cypress::SpikeSourceArray
 
class  cypress::SpikeSourceArrayParameters
 
class  cypress::SpikeSourceArraySignals
 
class  cypress::SpikeSourcePoisson
 
class  cypress::SpikeSourcePoissonParameters
 
class  cypress::SpikeSourcePoissonSignals
 
class  cypress::SpikeSourceConstFreq
 
class  cypress::SpikeSourceConstFreqParameters
 
class  cypress::SpikeSourceConstFreqSignals
 
class  cypress::SpikeSourceConstInterval
 
class  cypress::SpikeSourceConstIntervalParameters
 
class  cypress::SpikeSourceConstIntervalSignals
 
class  cypress::IfCondExp
 
class  cypress::IfCondExpParameters
 
class  cypress::IfCondExpSignals
 
class  cypress::IfFacetsHardware1
 
class  cypress::IfFacetsHardware1Parameters
 
class  cypress::IfFacetsHardware1Signals
 
class  cypress::EifCondExpIsfaIsta
 
class  cypress::EifCondExpIsfaIstaParameters
 
class  cypress::EifCondExpIsfaIstaSignals
 
class  cypress::IfCurrExp
 
class  cypress::IfCurrExpParameters
 
class  cypress::IfCurrExpSignals
 

Namespaces

 cypress
 

Macros

#define CYPRESS_CORE_NEURONS_HPP
 
#define NAMED_PARAMETER(NAME, IDX)
 
#define NAMED_SIGNAL(NAME, IDX)
 

Typedefs

using cypress::LIF = IfCondExp
 
using cypress::LIFParameters = IfCondExpParameters
 
using cypress::LIFSignals = IfCondExpSignals
 
using cypress::AdEx = EifCondExpIsfaIsta
 
using cypress::AdExParameters = EifCondExpIsfaIstaParameters
 
using cypress::AdExSignals = EifCondExpIsfaIstaSignals
 

Detailed Description

Contains the declarations of the individual neuron types and their parameter sets. The basic pattern used here is that the individual neuron types inherit from the NeuronType class which describes each neuron type in a generic way. Each neuron type declares a singleton type which fills out the descriptor and provides a reference at a parameter type. The parameter type merely is a vector of floats. The individual neuron type parameters may be set using convenient getter/setter functions. Neither the individual neuron types nor the neuron parameter types add any new non-function members to their base. This allows to generically use the base classes throughout the rest of the code without having to deal with templates.

Author
Andreas Stöckel

Macro Definition Documentation

#define CYPRESS_CORE_NEURONS_HPP
#define NAMED_PARAMETER (   NAME,
  IDX 
)
Value:
static constexpr size_t idx_##NAME = IDX; \
auto &NAME(Real x) \
{ \
for (auto &p : write_parameters()) { \
p[IDX] = x; \
} \
return *this; \
} \
Real NAME() const { return read_parameters()[IDX]; }
double Real
Definition: types.hpp:56

Macro used for defining the getters and setters associated with a neuron parameter value.

#define NAMED_SIGNAL (   NAME,
  IDX 
)
Value:
static constexpr size_t idx_##NAME = IDX; \
auto &record_##NAME(bool x = true) \
{ \
record(IDX, x); \
return *this; \
} \
bool is_recording_##NAME() const { return is_recording(IDX); } \
auto get_##NAME() { return data(IDX); } \
auto get_##NAME() const { return data(IDX); }

Macro used for defining a named signal associated with a named signal.