sPyNNaker neural_modelling  7.4.2
neuron_model.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 The University of Manchester
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
24 #ifndef _NEURON_MODEL_H_
25 #define _NEURON_MODEL_H_
26 
27 #include <common/neuron-typedefs.h>
28 #include <debug.h>
29 
31 struct neuron_params_t;
32 typedef struct neuron_params_t neuron_params_t;
33 
35 struct neuron_t;
36 typedef struct neuron_t neuron_t;
37 
38 #ifndef SOMETIMES_UNUSED
39 #define SOMETIMES_UNUSED __attribute__((unused))
40 #endif // !SOMETIMES_UNUSED
41 
42 SOMETIMES_UNUSED // Marked unused as only used sometimes
48  uint32_t n_steps_per_timestep);
49 
55 
56 SOMETIMES_UNUSED // Marked unused as only used sometimes
73  uint16_t num_excitatory_inputs, const input_t *exc_input,
74  uint16_t num_inhibitory_inputs, const input_t *inh_input,
75  input_t external_bias, REAL current_offset, neuron_t *restrict neuron);
76 
77 SOMETIMES_UNUSED // Marked unused as only used sometimes
81 static void neuron_model_has_spiked(neuron_t *restrict neuron);
82 
83 SOMETIMES_UNUSED // Marked unused as only used sometimes
90 
94 static void neuron_model_print_state_variables(const neuron_t *neuron);
95 
99 static void neuron_model_print_parameters(const neuron_t *neuron);
100 
101 #endif // _NEURON_MODEL_H_
accum REAL
Type used for "real" numbers.
Definition: maths-util.h:91
Data type definitions for SpiNNaker Neuron-modelling.
REAL state_t
The type of a state variable.
REAL input_t
The type of an input.
static uint n_steps_per_timestep
The number of steps to run per timestep.
static void neuron_model_print_state_variables(const neuron_t *neuron)
printout of state variables i.e. those values that might change
static state_t neuron_model_get_membrane_voltage(const neuron_t *neuron)
get the neuron membrane voltage for a given neuron parameter set
static state_t neuron_model_state_update(uint16_t num_excitatory_inputs, const input_t *exc_input, uint16_t num_inhibitory_inputs, const input_t *inh_input, input_t external_bias, REAL current_offset, neuron_t *restrict neuron)
primary function called in timer loop after synaptic updates
static void neuron_model_has_spiked(neuron_t *restrict neuron)
Indicates that the neuron has spiked.
static void neuron_model_initialise(neuron_t *state, neuron_params_t *params, uint32_t n_steps_per_timestep)
initialise the structure from the parameters
static void neuron_model_save_state(neuron_t *state, neuron_params_t *params)
save parameters and state back to SDRAM for reading by host and recovery on restart
static void neuron_model_print_parameters(const neuron_t *neuron)
printout of parameters i.e. those values that don't change
definition of neuron parameters
definition for LIF neuron state
static stdp_params params
Configuration parameters.