void IF2Group::init() { e_rest = -70e-3; e_rev = -80e-3; e_nmda_onset = -65e-3; nmda_slope = 1.0/60e-3; thr_rest = -50e-3; dthr = 100e-3; tau_thr = 5e-3; tau_mem = 20e-3; tau_ampa = 5e-3; tau_gaba = 10e-3; tau_nmda = 100e-3; set_ampa_nmda_ratio(1.0); calculate_scale_constants(); // thr = auryn_vector_float_alloc (size); t_leak = get_state_vector("t_leak"); t_exc = get_state_vector("t_exc"); t_inh = get_state_vector("t_inh"); nmda_opening = get_state_vector("nmda_opening"); clear(); }
void AIFGroup::init() { e_rest = -70e-3; e_rev = -80e-3; thr_rest = -50e-3; dthr = 100e-3; tau_thr = 2e-3; tau_mem = 20e-3; tau_ampa = 5e-3; tau_gaba = 10e-3; tau_nmda = 100e-3; set_ampa_nmda_ratio(1.0); tau_adapt1 = 0.1; dg_adapt1 = 0.1; calculate_scale_constants(); t_leak = get_state_vector("t_leak"); t_exc = get_state_vector("t_exc"); t_inh = get_state_vector("t_inh"); g_adapt1 = get_state_vector("g_adapt1"); clear(); }
void SpikingGroup::randomize_state_vector_gauss(string state_vector_name, AurynState mean, AurynState sigma, int seed) { boost::mt19937 ng_gen(seed+communicator->rank()); // produces same series every time boost::normal_distribution<> dist((double)mean, (double)sigma); boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > die(ng_gen, dist); AurynState rv; auryn_vector_float * vec = get_state_vector(state_vector_name); for ( AurynLong i = 0 ; i<get_rank_size() ; ++i ) { rv = die(); auryn_vector_float_set( vec, i, rv ); } }
void SpikingGroup::virtual_serialize(boost::archive::binary_iarchive & ar, const unsigned int version ) { ar & size & axonaldelay ; ar & *delay; for ( map<string,auryn_vector_float *>::const_iterator iter = state_vectors.begin() ; iter != state_vectors.end() ; ++iter ) { string key; ar & key; auryn_vector_float * vect = get_state_vector(key); ar & *vect; } for ( NeuronID i = 0 ; i < pretraces.size() ; ++i ) ar & *(pretraces[i]); for ( NeuronID i = 0 ; i < posttraces.size() ; ++i ) ar & *(posttraces[i]); }
void TIFGroup::init() { e_rest = -60e-3; e_rev = -80e-3; thr = -50e-3; tau_ampa = 5e-3; tau_gaba = 10e-3; tau_mem = 20e-3; refractory_time = (unsigned short) (5.e-3/dt); calculate_scale_constants(); ref = gsl_vector_ushort_alloc (get_vector_size()); bg_current = get_state_vector("bg_current"); t_g_ampa = gsl_vector_float_ptr ( g_ampa , 0 ); t_g_gaba = gsl_vector_float_ptr ( g_gaba , 0 ); t_bg_cur = gsl_vector_float_ptr ( bg_current , 0 ); t_mem = gsl_vector_float_ptr ( mem , 0 ); t_ref = gsl_vector_ushort_ptr ( ref , 0 ); clear(); }
void ioi_handler(QueuePacket fifo_packet){ set_debug(DEBUG1, true); unsigned int returnData[4]; // Data to send back to controller on FIFO switch (fifo_packet.command){ case (PLANT): // SPI // SPI Filter if(!plant_filter(&fifo_packet)) return; // ERROR HANDLING HERE FOR FILTERING SPI if(!fifo_packet.bytes) return; // ERROR HANDLING IF TRANSFER BYTES IS 0 // only accept voltage writes or sensor reads if( (fifo_packet.slave == SS_DAC) && (fifo_packet.operation == WRITE) && (fifo_packet.bytes == BITS_16) && ((fifo_packet.data[0] & DAC_CONFIG_BITS) == DAC_CONFIG_BITS) ) // write voltage write_voltage(fifo_packet.data[0]); else if( (fifo_packet.slave == SS_ENCODER_S || fifo_packet.slave == SS_ENCODER_P) && (fifo_packet.operation == READ) && (fifo_packet.bytes == BITS_32) && (fifo_packet.data[0] == (READ_CNTR << 24))) // read encoder returnData[0] = read_sensor(fifo_packet.slave, fifo_packet.data[0]); break; case (SET_POINT): // SET_POINT returnData[0] = (unsigned int)get_set_point(); break; case (STATE_VECTOR): // STATE_INFORMATION get_state_vector(returnData); break; default: break; } // Send the return data back to controller; maximum of 4 bytes returned enqueue(returnData, fifo_packet.operation > 4 ? 4 : fifo_packet.operation); //assert_trigger(check_wdt()); // backup was not working with this; initially had it to detect livelock attack set_debug(DEBUG1, false); }
void TIFGroup::init() { e_rest = -60e-3; e_rev = -80e-3; thr = -50e-3; tau_ampa = 5e-3; tau_gaba = 10e-3; tau_mem = 20e-3; set_refractory_period(5e-3); calculate_scale_constants(); ref = auryn_vector_ushort_alloc (get_vector_size()); bg_current = get_state_vector("bg_current"); t_g_ampa = auryn_vector_float_ptr ( g_ampa , 0 ); t_g_gaba = auryn_vector_float_ptr ( g_gaba , 0 ); t_bg_cur = auryn_vector_float_ptr ( bg_current , 0 ); t_mem = auryn_vector_float_ptr ( mem , 0 ); t_ref = auryn_vector_ushort_ptr ( ref , 0 ); clear(); }