26 #ifndef AURYN_DEFINITIONS_H_ 27 #define AURYN_DEFINITIONS_H_ 33 #define AURYN_CODE_USE_MPI 38 #define CODE_ALIGNED_SIMD_INSTRUCTIONS 44 #define CODE_ACTIVATE_PREFETCHING_INTRINSICS 51 #define CODE_USE_SIMD_INSTRUCTIONS_EXPLICITLY 64 #define SIMD_NUM_OF_PARALLEL_FLOAT_OPERATIONS 4 90 #define DEFAULT_MINDISTRIBUTEDSIZE 16 95 #define DEFAULT_TRACE_MODEL Trace 96 #define PRE_TRACE_MODEL Trace 111 #ifdef CODE_USE_SIMD_INSTRUCTIONS_EXPLICITLY 112 #ifndef CODE_ACTIVATE_CILK_INSTRUCTIONS 113 #include <x86intrin.h> 114 #else // XMM registers are not supported on the phi platform 115 #include <immintrin.h> 119 #ifdef AURYN_CODE_USE_MPI 120 #include <boost/mpi.hpp> 121 namespace mpi = boost::mpi;
210 virtual const char* what()
const throw()
212 return "Failed opening file.";
218 virtual const char* what()
const throw()
220 return "Problem reading MatrixMarket file. Not row major format?";
226 virtual const char* what()
const throw()
228 return "Cannot add data outside of matrix.";
234 virtual const char* what()
const throw()
236 return "Trying to access non existing complex synaptic states.";
242 virtual const char* what()
const throw()
244 return "Buffer full.";
250 virtual const char* what()
const throw()
252 return "Could not push_back in SimpleMatrix. Out of order execution?";
258 virtual const char* what()
const throw()
260 return "Buffer has not been allocated.";
267 virtual const char* what()
const throw()
269 return "Memory not aligned or problem allocating aligned memory.";
275 virtual const char* what()
const throw()
277 return "One of the SpikeDelays was chosen shorter than the current value of MINDELAY.";
283 virtual const char* what()
const throw()
285 return "Trying to simulate more timesteps than are available in AurynTime.";
291 virtual const char* what()
const throw()
293 return "Auryn encountered an undefined problem when dealing with StateVectors.";
299 virtual const char* what()
const throw()
301 return "Auryn encountered a problem which it deemed serious enough to break the run. \ 302 To debug set logger vebosity to VERBOSE or EVERYTHING and analyze the log files.";
308 virtual const char* what()
const throw()
310 return "Dimensions do not match or trying to read beyond vector size. " 311 "Are the vectors zero padded to a multiples of four dimension?";
317 virtual const char* what()
const throw()
319 return "The number of spike attributes can only be increased.";
326 template <
typename T,
typename IndexType >
Default Auryn vector template.
Definition: auryn_definitions.h:327
Definition: auryn_definitions.h:216
Current based synapse. Adds the transmitted quantity directly to membrane voltage.
Definition: auryn_definitions.h:143
void auryn_vector_float_add_constant(auryn_vector_float *a, const float b)
Computes a := a + b.
Definition: auryn_definitions.cpp:69
AurynTime time
Definition: auryn_definitions.h:196
NeuronID i
Definition: auryn_definitions.h:173
void auryn_vector_ushort_copy(auryn_vector_ushort *src, auryn_vector_ushort *dst)
Definition: auryn_definitions.cpp:168
Auryn spike event for binary monitors.
Definition: auryn_definitions.h:201
void auryn_vector_float_mul(auryn_vector_float *a, auryn_vector_float *b)
Definition: auryn_definitions.cpp:64
Standard Glutamatergic (excitatory) transmission.
Definition: auryn_definitions.h:139
void auryn_vector_float_free(auryn_vector_float *v)
Definition: auryn_definitions.cpp:111
Definition: auryn_definitions.h:148
unsigned short auryn_vector_ushort_get(auryn_vector_ushort *v, const NeuronID i)
Definition: auryn_definitions.cpp:156
Struct that defines a pair of neurons in SparseConnection.
Definition: auryn_definitions.h:167
void auryn_vector_float_set_all(auryn_vector_float *v, AurynFloat x)
Definition: auryn_definitions.cpp:115
NeuronID calculate_vector_size(NeuronID i)
Rounds vector size to multiple of four to allow using the SSE optimizations.
Definition: auryn_definitions.cpp:50
std::vector< NeuronID > SpikeContainer
Spike container type. Used for storing spikes.
Definition: auryn_definitions.h:161
void auryn_vector_ushort_set_all(auryn_vector_ushort *v, unsigned short x)
Definition: auryn_definitions.cpp:148
void auryn_vector_ushort_set_zero(auryn_vector_ushort *v)
Definition: auryn_definitions.cpp:152
Definition: auryn_definitions.h:315
void auryn_vector_float_scale(const float a, auryn_vector_float *b)
Definition: auryn_definitions.cpp:74
Definition: auryn_definitions.h:297
std::vector< float > AttributeContainer
Attribute container type. Used for storing spike attributes that are needed for efficient STP impleme...
Definition: auryn_definitions.h:162
void auryn_vector_ushort_free(auryn_vector_ushort *v)
Definition: auryn_definitions.cpp:144
double AurynDouble
Higher precision floating point datatype.
Definition: auryn_definitions.h:158
AurynFloat AurynWeight
Unit of synaptic weights.
Definition: auryn_definitions.h:159
Definition: auryn_definitions.h:148
Only targets NMDA.
Definition: auryn_definitions.h:142
int n
Definition: mkpat.py:5
Definition: auryn_definitions.h:148
Definition: auryn_definitions.h:232
Definition: auryn_definitions.h:265
NeuronID neuronID
Definition: auryn_definitions.h:197
std::vector< pattern_member > type_pattern
Definition: auryn_definitions.h:177
void auryn_vector_float_clip(auryn_vector_float *v, const float a, const float b)
Definition: auryn_definitions.cpp:99
AurynState value
Definition: auryn_definitions.h:204
Definition: auryn_definitions.h:273
Definition: auryn_definitions.h:208
NeuronID AurynInt
Definition: auryn_definitions.h:152
AurynStateVector auryn_vector_float
Legacy definition of AurynStateVector.
Definition: auryn_definitions.h:345
Definition: ABSConnection.h:38
unsigned long AurynLong
An unsigned long type used to count synapses or similar.
Definition: auryn_definitions.h:154
#define N
Definition: sim_delay_connection.cpp:23
void auryn_vector_float_saxpy(const float a, auryn_vector_float *x, auryn_vector_float *y)
Definition: auryn_definitions.cpp:79
AurynFloat AurynState
Type for Auryn state variables (default single precision since it needs to be compatible with auryn_v...
Definition: auryn_definitions.h:160
int auryn_AlignOffset(const int N, const void *vp, const int inc, const int align)
Determines memory alignment (adapted from ATLAS library)
Definition: auryn_definitions.cpp:34
AurynFloat auryn_vector_float_get(auryn_vector_float *v, const NeuronID i)
Definition: auryn_definitions.cpp:123
AurynDouble gamma
Definition: auryn_definitions.h:174
double auryn_timestep
Simulation timestep in seconds.
Definition: auryn_definitions.cpp:31
StimulusGroupModeType
Specifies stimulus order used in StimulusGroup.
Definition: auryn_definitions.h:148
Definition: auryn_definitions.h:148
void auryn_vector_float_copy(auryn_vector_float *src, auryn_vector_float *dst)
Copies vector src to dst assuming they have the same size.
Definition: auryn_definitions.cpp:135
TransmitterType
Specifies the different transmitter types that Auryn knows.
Definition: auryn_definitions.h:138
unsigned short * auryn_vector_ushort_ptr(auryn_vector_ushort *v, const NeuronID i)
Definition: auryn_definitions.cpp:160
float AurynFloat
Low precision floating point datatype.
Definition: auryn_definitions.h:157
Definition: auryn_definitions.h:306
auryn_vector_float * auryn_vector_float_alloc(const NeuronID n)
Definition: auryn_definitions.cpp:107
AurynVectorFloat AurynStateVector
Defines AurynStateVector type as synonymous to AurynVectorFloat.
Definition: auryn_definitions.h:329
Definition: auryn_definitions.h:240
NeuronID i
Definition: auryn_definitions.h:168
AurynTime time
Definition: auryn_definitions.h:203
AurynVector< AurynWeight, AurynLong > AurynSynStateVector
Defines AurynSynStateVector for synaptic states.
Definition: auryn_definitions.h:341
Definition: auryn_definitions.h:256
auryn_vector_ushort * auryn_vector_ushort_alloc(const NeuronID n)
Definition: auryn_definitions.cpp:140
Current based synapse with dynamics.
Definition: auryn_definitions.h:144
void auryn_vector_float_sub(auryn_vector_float *a, auryn_vector_float *b)
Computes a := a-b.
Definition: auryn_definitions.cpp:89
Definition: auryn_definitions.h:289
void auryn_vector_float_set_zero(auryn_vector_float *v)
Definition: auryn_definitions.cpp:119
Standard Gabaergic (inhibitory) transmission.
Definition: auryn_definitions.h:140
Definition: auryn_definitions.h:224
void auryn_vector_float_add(auryn_vector_float *a, auryn_vector_float *b)
Internal version of to add GSL vectors.
Definition: auryn_definitions.cpp:84
AurynFloat * auryn_vector_float_ptr(auryn_vector_float *v, const NeuronID i)
Definition: auryn_definitions.cpp:127
Only targets AMPA channels.
Definition: auryn_definitions.h:141
Struct used to define neuronal assembly patterns in SparseConnection.
Definition: auryn_definitions.h:172
AurynVector< unsigned short, NeuronID > auryn_vector_ushort
Legacy definition of AurynVector<unsigned short>
Definition: auryn_definitions.h:348
Default AurynVectorFloat class for performance computation.
Definition: AurynVector.h:796
Definition: auryn_definitions.h:148
Definition: auryn_definitions.h:248
void auryn_vector_ushort_set(auryn_vector_ushort *v, const NeuronID i, unsigned short x)
Definition: auryn_definitions.cpp:164
NeuronID AurynTime
Defines Auryns discrete time unit of the System clock. Change to AurynLong if 120h of simtime are not...
Definition: auryn_definitions.h:155
unsigned int StateID
StateID is an unsigned integeger type used to index synaptic states in Auryn.
Definition: auryn_definitions.h:153
Definition: auryn_definitions.h:281
std::string string
Standard library string type which is imported into Auryn namespace.
Definition: auryn_definitions.h:156
unsigned int NeuronID
NeuronID is an unsigned integeger type used to index neurons in Auryn.
Definition: auryn_definitions.h:151
Auryn spike event for binary monitors.
Definition: auryn_definitions.h:194
void auryn_vector_float_set(auryn_vector_float *v, const NeuronID i, AurynFloat x)
Definition: auryn_definitions.cpp:131
NeuronID j
Definition: auryn_definitions.h:168