198 for (
int r = 0 ;
r < mpicom->size() ; ++
r ) {
201 last_spike_pos[
r] = 0;
204 NeuronID * iter = &recv_buf[
r*max_send_size+pop_offsets[
r]];
210 if ( pop_delta_spikes[
r] == undefined_delta_size ) {
212 iter = read_delta_spike_from_buffer(iter, pop_delta_spikes[
r]);
216 if ( unrolled_spike < grid_size ) {
219 const int slice = unrolled_spike/size;
220 const NeuronID spike = unrolled_spike%size;
227 last_spike_pos[
r] = unrolled_spike;
228 pop_delta_spikes[
r] = undefined_delta_size;
233 iter = read_attribute_from_buffer(iter, attrib);
239 pop_delta_spikes[
r] -= (grid_size-last_spike_pos[
r]);
244 pop_offsets[
r] = iter - &recv_buf[
r*max_send_size];
254 if ( mpicom->rank() == 0 ) {
257 std::cout <<
" " << delay->
get_spikes(slice+1)->size() <<
" spikes extracted in time slice " << slice+1 << std::endl
258 <<
" " << delay->
get_attributes(slice+1)->size() <<
" attributes extracted in time slice " << slice+1
int get_num_attributes()
Returns the number of spike attributes per spike.
Definition: SpikeDelay.cpp:139
float AurynFloat
Low precision floating point datatype.
Definition: auryn_definitions.h:157
SpikeContainer * get_spikes(unsigned int pos=1)
Returns the spikes at a given delay position.
Definition: SpikeDelay.cpp:85
#define MINDELAY
Switches collection of timing stats in some classes like SyncBuffer and system.
Definition: auryn_definitions.h:82
#define SYNCBUFFER_DELTA_DATATYPE
Datatype used for delta computation should be a "long" for large nets with sparse activity otherwise ...
Definition: SyncBuffer.h:38
AttributeContainer * get_attributes(unsigned int pos=1)
Like get_spikes but returns the spike attributes.
Definition: SpikeDelay.cpp:95
unsigned int NeuronID
NeuronID is an unsigned integeger type used to index neurons in Auryn.
Definition: auryn_definitions.h:151