CARLsim
5.0.0
CARLsim: a GPU-accelerated SNN simulator
|
Go to the documentation of this file.
50 #ifndef _CARLSIM_DATASTRUCTURES_H_
51 #define _CARLSIM_DATASTRUCTURES_H_
100 "USER",
"DEVELOPER",
"SHOWTIME",
"SILENT",
"CUSTOM",
"Unknown mode"
120 "CPU mode",
"GPU mode",
"Hybrid mode"
139 "Forward-Euler",
"4-th order Runge-Kutta",
"Unknown integration method"
169 "Dopamine-modulated STDP",
187 "timing-based curve",
206 "SpikeCount Mode",
"SpikeTime Mode"
227 "Dopamine",
"Serotonin",
"Acetylcholine",
"Noradrenaline",
"Unknown neuromodulator"
244 "10 ms interval",
"100 ms interval",
"1000 ms interval"
266 "Configuration state",
"Setup state",
"Run state"
291 return strm <<
"delay=[" << d.
min <<
"," << d.
max <<
"]";
333 return strm <<
"wt=[" << w.
min <<
"," << w.
init <<
"," << w.
max <<
"]";
370 return strm <<
"RadiusRF=[" << r.
radX <<
"," << r.
radY <<
"," << r.
radZ <<
"]";
397 return strm <<
"RangeRmem=[" << rMem.
minRmem <<
"," << rMem.
maxRmem <<
"]";
516 Grid3D(
int _x,
float _distX,
float _offsetX,
int _y,
float _distY,
float _offsetY)
532 Grid3D(
int _x,
float _distX,
float _offsetX,
int _y,
float _distY,
float _offsetY,
int _z,
float _distZ,
float _offsetZ)
545 return strm <<
"Grid3D=[" << g.
numX <<
"," << g.
numY <<
"," << g.
numZ <<
"]";
@ GPU_MODE
model is run on GPU card(s)
@ INTERVAL_100MS
the update interval will be 100 ms, which is 10Hz update frequency
static const char * spikeMonMode_string[]
float TAU_MINUS_INV_EXC
the inverse of time constant minus, if the exponential or timing-based E-STDP curve is used
@ CANNOT_BE_LARGER
parameter cannot have larger vaule than some vaule
STDPType WithISTDPtype
the type of I-STDP (STANDARD or DA_MOD)
@ RUN_STATE
run state, where the model is stepped
ExpCurve(float _alphaPlus, float _tauPlus, float _alphaMinus, float _tauMinus)
integrationMethod_t
Integration methods.
@ AER
mode in which spike information is collected in AER format
float TAU_PLUS_INV_EXC
the inverse of time constant plus, if the exponential or timing-based E-STDP curve is used
float baseDP
baseline concentration of Dopamine
a range struct for synaptic weight magnitudes
@ MUST_BE_SMALLER
parameter must be smaller than
friend std::ostream & operator<<(std::ostream &strm, const RangeDelay &d)
float BETA_LTD
the amplitude of inhibitory LTD if the pulse I-STDP curve is used
bool WithSTDP
enable STDP flag
friend std::ostream & operator<<(std::ostream &strm, const Grid3D &g)
float ALPHA_MINUS_EXC
the amplitude of alpha minus, if the exponential or timing-based E-STDP curve is used
STDPCurve stdpCurve
the type of STDP curve
@ EXP_CURVE
standard exponential curve
float TAU_MINUS_INV_INB
the inverse of tau minus, if the exponential I-STDP curve is used
RangeRmem(double _minRmem, double _maxRmem)
float ALPHA_PLUS_EXC
the amplitude of alpha plus, if the exponential or timing-based E-STDP curve is used
@ MUST_BE_POSITIVE
parameter must have positive value
CARLsimState
CARLsim states.
static const char * integrationMethod_string[]
TimingBasedCurve(float _alphaPlus, float _tauPlus, float _alphaMinus, float _tauMinus, float _gamma)
@ SHOWTIME
Showtime mode, will only output warnings and errors.
A struct for retrieving STDP related information of a group.
friend std::ostream & operator<<(std::ostream &strm, const RangeRmem &rMem)
struct to assign a pulse I-STDP curve
Grid3D(int _x, float _distX, float _offsetX, int _y, float _distY, float _offsetY, int _z, float _distZ, float _offsetZ)
float decayACh
decay rate for Acetylcholine
@ INTERVAL_1000MS
the update interval will be 1000 ms, which is 1Hz update frequency
RangeWeight(double _min, double _init, double _max)
friend std::ostream & operator<<(std::ostream &strm, const RangeWeight &w)
Grid3D(int _x, float _distX, float _offsetX)
@ USER
User mode, for experiment-oriented simulations.
Grid3D(int _x, int _y, int _z)
@ PULSE_CURVE
symmetric pulse curve
float tauPlus
the time constant of the exponential curve at pre-post side
float delta
the range of inhibitory LTD
A struct to assign a timing-based E-STDP curve.
@ TIMING_BASED_CURVE
timing-based curve
float base5HT
baseline concentration of Serotonin
@ HYBRID_MODE
model is run on CPU Core(s), GPU card(s) or both
static const char * stdpType_string[]
float alphaMinus
the amplitude of the exponential curve at post-pre side
a range struct for synaptic delays
float baseACh
baseline concentration of Acetylcholine
STDPCurve stdpCurve
the type of STDP curve
float tauPlus
the time constant of the exponential curve at pre-post side
float betaLTD
the amplitude of inhibitory LTD
float DELTA
the range of inhibitory LTD if the pulse I-STDP curve is used
@ INTERVAL_10MS
the update interval will be 10 ms, which is 100Hz update frequency
float alphaMinus
the amplitude of the exponential curve at post-pre side
float baseNE
baseline concentration of Noradrenaline
float tauMinus
the time constant of the exponential curve at post-pre side
ComputingBackend
computing backend
RadiusRF(double rad_x, double rad_y, double rad_z)
@ CPU_MODE
model is run on CPU core(s)
float gamma
the turn-over point
float decayNE
decay rate for Noradrenaline
SpikeMonMode
SpikeMonitor mode.
A struct to assign exponential STDP curves.
float lambda
the range of inhibitory LTP
@ DA_MOD
dopamine-modulated STDP, nearest-neighbor
A struct to arrange neurons on a 3D grid (a primitive cubic Bravais lattice with cubic side length 1)
@ CUSTOM
Custom mode, the user can set the location of all the file pointers.
float betaLTP
the amplitude of inhibitory LTP
float alphaPlus
the amplitude of the exponential curve at pre-post side
static const char * loggerMode_string[]
static const char * simMode_string[]
@ SILENT
Silent mode, no output is generated.
@ SETUP_STATE
setup state, where the neural network is prepared for execution and monitors are set
STDPCurve stdpCurve
the type of STDP curve
Struct defines the minimum and maximum membrane resisatnces of the LIF neuron group.
@ CONFIG_STATE
configuration state, where the neural network is configured
@ STANDARD
standard STDP of Bi & Poo (2001), nearest-neighbor
RangeDelay(int _min, int _max)
RangeWeight(double _min, double _max)
bool WithESTDP
enable E-STDP flag
static const char * neuromodulator_string[]
float TAU_PLUS_INV_INB
the inverse of tau plus, if the exponential I-STDP curve is used
STDPCurve WithESTDPcurve
the E-STDP curve
@ MUST_BE_NEGATIVE
parameter must have negative value
float decay5HT
decay rate for Serotonin
struct GroupNeuromodulatorInfo_s GroupNeuromodulatorInfo
A struct for retrieving neuromodulator information of a group.
A struct for retrieving neuromodulator information of a group.
STDPType WithESTDPtype
the type of E-STDP (STANDARD or DA_MOD)
static void assertTrue(bool statement, errorType errorIfAssertionFails, std::string errorFunc, std::string errorMsgPrefix="", std::string errorMsgSuffix="")
simple wrapper for assert statement
UpdateInterval
Update frequency for weights.
@ CANNOT_BE_NEGATIVE
parameter cannot have negative value (opposite to "must be", but includes zero)
@ UNKNOWN_CURVE
unknown curve type
float BETA_LTP
the amplitude of inhibitory LTP if the pulse I-STDP curve is used
float ALPHA_MINUS_INB
the amplitude of alpha minus, if the exponential I-STDP curve is used
float LAMBDA
the range of inhibitory LTP if the pulse I-STDP curve is used
@ CANNOT_BE_SMALLER
parameter cannot have smaller vaule than some vaule
Neuromodulator
GroupMonitor flag.
float alphaPlus
the amplitude of the exponential curve at pre-post side
struct GroupSTDPInfo_s GroupSTDPInfo
A struct for retrieving STDP related information of a group.
static const char * stdpCurve_string[]
@ DEVELOPER
Developer mode, for developing and debugging code.
friend std::ostream & operator<<(std::ostream &strm, const RadiusRF &r)
float GAMMA
the turn over point if the timing-based E-STDP curve is used
A struct to specify the receptive field (RF) radius in 3 dimensions.
bool WithISTDP
enable I-STDP flag
Grid3D(int _x, float _distX, float _offsetX, int _y, float _distY, float _offsetY)
STDPCurve WithISTDPcurve
the I-STDP curve
static const char * carlsimState_string[]
PulseCurve(float _betaLTP, float _betaLTD, float _lambda, float _delta)
@ COUNT
mode in which only spike count information is collected
float tauMinus
the time constant of the exponential curve at post-pre side
static const char * updateInterval_string[]
float ALPHA_PLUS_INB
the amplitude of alpha plus, if the exponential I-STDP curve is used
float decayDP
decay rate for Dopaamine