1 #ifndef BRAINSIMULATION_H 2 #define BRAINSIMULATION_H 32 unsigned int simulate(
double tick_ms,
37 int num_obervationnodes,
68 int num_ticks,
double tick_ms,
int number_nodes_x,
int number_nodes_y,
101 int num_ticks,
double tick_ms,
int number_nodes_x,
int number_nodes_y,
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
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
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