Brainsimulation
Simulation of the human brain.
brainsimulation.h
Go to the documentation of this file.
1 #ifndef BRAINSIMULATION_H
2 #define BRAINSIMULATION_H
3 
4 #include "definitions.h"
5 #include "utils.h"
6 
12 //function declarations
13 
32 unsigned int simulate(double tick_ms,
33  int num_ticks,
34  int number_nodes_x,
35  int number_nodes_y,
36  nodeval_t **nodes,
37  int num_obervationnodes,
38  nodetimeseries_t *oberservationnodes,
39  int number_inputs,
40  nodeinputseries_t *inputs);
41 
67 unsigned int execute_simulation_multithreaded(executioncontext_t *executioncontext,
68  int num_ticks, double tick_ms, int number_nodes_x, int number_nodes_y,
69  int num_obervationnodes, nodetimeseries_t *observationnodes,
70  nodeval_t **old_state,
71  nodeval_t **new_state, nodeval_t **slopes, nodeval_t ****kernels,
72  kernelfunc_t d_ptr, kernelfunc_t id_ptr,
73  int number_global_inputs, nodeinputseries_t *global_inputs);
74 
100 unsigned int execute_simulation_singlethreaded(executioncontext_t *executioncontext,
101  int num_ticks, double tick_ms, int number_nodes_x, int number_nodes_y,
102  int num_obervationnodes, nodetimeseries_t *observationnodes,
103  nodeval_t **old_state,
104  nodeval_t **new_state, nodeval_t **slopes, nodeval_t ****kernels,
105  kernelfunc_t d_ptr, kernelfunc_t id_ptr,
106  int number_global_inputs, nodeinputseries_t *global_inputs);
107 
116 
123 unsigned int execute_partial_tick(partialsimulationcontext_t *context);
124 
134 void extract_observationnodes(int ticknumber, int num_obervationnodes, nodetimeseries_t *observationnodes,
135  nodeval_t **state);
136 
147 void process_global_inputs(int tick_number, double tick_ms,
148  nodeval_t **state, int number_global_inputs, nodeinputseries_t *global_inputs);
149 
160 void process_partial_inputs(int tick_number, double tick_ms,
161  nodeval_t **state, int number_partial_inputs, nodeinputseries_t **partial_inputs);
162 
171 void process_input(int tick_number, double tick_ms,
172  nodeval_t **state, nodeinputseries_t *input);
173 
174 #endif
unsigned int execute_simulation_singlethreaded(executioncontext_t *executioncontext, int num_ticks, double tick_ms, int number_nodes_x, int number_nodes_y, int num_obervationnodes, nodetimeseries_t *observationnodes, nodeval_t **old_state, nodeval_t **new_state, nodeval_t **slopes, nodeval_t ****kernels, kernelfunc_t d_ptr, kernelfunc_t id_ptr, int number_global_inputs, nodeinputseries_t *global_inputs)
Executes the inner simulation in a singlethreaded fashion.
Definition: brainsimulation.c:87
void process_input(int tick_number, double tick_ms, nodeval_t **state, nodeinputseries_t *input)
Adds the influence of the defined input node to the current state.
Definition: brainsimulation.c:186
Struct to store the input for the simulation for a single node.
Definition: definitions.h:151
void extract_observationnodes(int ticknumber, int num_obervationnodes, nodetimeseries_t *observationnodes, nodeval_t **state)
Extracts and stores/saves the information into the specified observation nodes.
Definition: brainsimulation.c:164
Struct to pass a simulation's technical execution information to the ticks.
Definition: utils.h:26
void process_global_inputs(int tick_number, double tick_ms, nodeval_t **state, int number_global_inputs, nodeinputseries_t *global_inputs)
Adds the influence of the defined input nodes to the current state.
Definition: brainsimulation.c:172
double nodeval_t
Type that the nodes in the brainsimulation use to store their energy level.
Definition: definitions.h:120
void process_partial_inputs(int tick_number, double tick_ms, nodeval_t **state, int number_partial_inputs, nodeinputseries_t **partial_inputs)
Adds the influence of the defined input nodes to the current state.
Definition: brainsimulation.c:179
Struct to store the results of a simulation for a single observed node.
Definition: definitions.h:126
Common helper functions.
unsigned int simulate(double tick_ms, int num_ticks, int number_nodes_x, int number_nodes_y, nodeval_t **nodes, int num_obervationnodes, nodetimeseries_t *oberservationnodes, int number_inputs, nodeinputseries_t *inputs)
Simulates the brain.
Definition: brainsimulation.c:11
Common definitions (mostly types).
int(* kernelfunc_t)(nodeval_t *, int, int, nodeval_t **, int, int)
Definition of the kernel-function interface.
Definition: definitions.h:190
unsigned int execute_partial_tick(partialsimulationcontext_t *context)
Executes a partial tick of the simulation.
Definition: brainsimulation.c:144
Struct to pass all execution information to a new thread for executing a tick (or parts thereof)...
Definition: definitions.h:196
unsigned int execute_simulation_multithreaded(executioncontext_t *executioncontext, int num_ticks, double tick_ms, int number_nodes_x, int number_nodes_y, int num_obervationnodes, nodetimeseries_t *observationnodes, nodeval_t **old_state, nodeval_t **new_state, nodeval_t **slopes, nodeval_t ****kernels, kernelfunc_t d_ptr, kernelfunc_t id_ptr, int number_global_inputs, nodeinputseries_t *global_inputs)
Executes the inner simulation in a multithreaded fashion.
Definition: brainsimulation.c:60
unsigned int execute_partial_simulation(partialsimulationcontext_t *context)
Executes a partial simulation, as defined by a partial simulation context.
Definition: brainsimulation.c:102