#ifndef nmsim_mf_H #define nmsim_mf_H /* Types and functions for the mean-field simulation of neuronal nets. */ /* Last edited on 2019-01-11 18:04:44 by jstolfi */ typedef struct nmsim_bundle_parms_t { double W_dev; /* Deviation of total rested synapse gain. */ double W_avg; /* Average total rested synapse gain. */ } nmsim_bundle_parms_t; /* Parameters of a set of synapses from a homogeneous population {A} of neurons to another homogeneous population {B} (possibly the same as {A}). If the population {B} has {N} neurons, each neuron of {A} has a synapse to each neuron of {B} with independent probability {K/N}. The strength of that synapse, in its fully rested state, is a random variable with log-normal distribution, mean {W_avg/K}, and deviation {W_dev/K}. */ typedef struct nmsim_pop_state_t { int32_t np; /* Number of individual cohorts retained. */ nmsim_cohort_state_t *cs; /* State of neurons in each cohort. */ } nemansim_pop_state_t; /* Stochastic state of a homogeneous population of neurons. The neurons with firing age {k} have state {cs[k]}, for {k} in {0..np-1}. All neurons with age {np} or greater are lumped together and assumed to have state {cs[np].} */ void nmsim_pop_evolve ( nmsim_pop_state_t *pso, double DV_avg, double DV_dev, double I_avg, double I_dev, nmsim_neuron_class_t *parm, nmsim_pop_state_t *psn ); /* Simulates the evolution of a homogeneous population of neurons with stochastic state {pso} and neuron parameters {parm} from some discrete time {t} to time {t+1}. It is assumed that the total input that each neuron {i} in the population received from all its input synapses betwen time {t} and time {t+1} is a normal random variable with mean {DV_avg} and deviation {DV_dev}. This potential increment includes the pulses {X[j,t]} of each input neuron {j} in the network, modulated by its output gain factor {H[j,t]} and by the rested synaptic gain {wfix[j,i]}; but not yet modulated by the input gain {G[i,t]} of neuron {i}. In addition to synaptic inputs, each neuron {i} in the population is also assumed to have received, between times {t} and {t+1}, an external input signal {I[i,t]}, which is a normally distributed variable with mean {I_avg} and deviation {I_dev}. ??? Should the input signal be modulated by the input gain factor {G[i,t]} too? ??? */ void nmsim_network_evolve ( ); /* Simulates the evolution of a network with one or more homogeneous populations of neurons with stochastic states {net.pso[k]} and neuron parameters {parm} from some discrete time {t} to time {t+1}. In addition to synaptic inputs, each neuron {i} in the population {k} is also assumed to have received, between times {t} and {t+1}, an external input signal {I[i,t]}, which is a normally distributed variable with mean and deviation given by {net.exin(k,t,&I_avg,I_dev)} ??? Should the input signal be modulated by the input gain factor {G[i,t]} too? ??? */ #endif