Brainsimulation
Simulation of the human brain.
brainsetup.h
Go to the documentation of this file.
1 #ifndef BRAINSETUP_H
2 #define BRAINSETUP_H
3 
4 #include "definitions.h"
5 
7 #define FLAG_TICKS "--ticks"
8 
9 #define FLAG_X_OBSERVATIONNODES "--xobs"
10 
11 #define FLAG_Y_OBSERVATIONNODES "--yobs"
12 
13 #define FLAG_X_NODES "-x"
14 
15 #define FLAG_Y_NODES "-y"
16 
17 #define FLAG_START_LEVELS "--startlevels"
18 
19 #define FLAG_START_NODES_X "--startx"
20 
21 #define FLAG_START_NODES_Y "--starty"
22 
23 #define FLAG_FREQUENCIES "--freqs"
24 
25 #define FLAG_FREQ_NODES_X "--freqx"
26 
27 #define FLAG_FREQ_NODES_Y "--freqy"
28 
29 #define FLAG_FREQ_BITMAPS "--freqbitmaps"
30 
31 #define FLAG_MIN_BITMAP_FREQ "--minbitmapfreq"
32 
33 #define FLAG_MAX_BITMAP_FREQ "--maxbitmapfreq"
34 
37 #define FLAG_BITMAP_DURATION "--bitmapduration"
38 
39 
52 unsigned int contains_flag(const int argc, const char * argv[], const char * flag);
53 
61 int parse_int_arg(const int argc, const char * argv[], const char * flag);
62 
71 nodetimeseries_t *init_observation_timeseries_from_sh(const int argc, const char *argv[],
72  int * num_observationnodes);
73 
80 nodetimeseries_t *init_observation_timeseries_default(int * num_observationnodes, int num_ticks);
81 
91 nodetimeseries_t *init_observation_timeseries(const int num_oberservationnodes,
92  const int *x_indices, const int *y_indices,
93  const int num_timeseries_elements);
94 
104 void init_start_time_state_from_sh(const int argc, const char * argv[],
105  const int number_nodes_x, const int number_nodes_y, nodeval_t **nodes);
106 
113 nodeval_t **init_nodegrid_default(int *number_nodes_x, int *number_nodes_y);
114 
125 void init_start_time_state(const int number_nodes_x, const int number_nodes_y, nodeval_t **nodes,
126  const int num_start_levels, const nodeval_t *start_levels,
127  const int *start_nodes_x, const int *start_nodes_y);
128 
143 nodeinputseries_t *read_input_behavior(const int number_of_inputnodes, const int *x_indices, const int *y_indices,
144  const char **inputnodefilenames, const int *number_of_elements);
145 
155 double *generate_sin_time_series(int hz, const double tick_ms, int number_of_samples);
156 
165 double *generate_sin_frequency(int hz, const double tick_ms);
166 
175 int calculate_period_length(int hz, const double tick_ms);
176 
187 nodeinputseries_t *generate_input_frequencies_from_sh(const int argc, const char * argv[], int *num_inputnodes, const double tick_ms);
188 
197 nodeinputseries_t *generate_input_frequencies_default(int *num_inputnodes, const double tick_ms);
198 
213 nodeinputseries_t *generate_input_frequencies(const int number_of_inputnodes, const int *x_indices,
214  const int *y_indices, const int *frequencies, const double tick_ms);
215 
216 
226 unsigned int *read_bitmap_contents(const char *bitmap_path, unsigned int *bitmap_size_x, unsigned int *bitmap_size_y);
227 
245 nodeinputseries_t *generate_input_frequencies_from_bitmap(const char * filenames[], const unsigned int num_filenames,
246  const int min_freq, const int max_freq, const int bitmap_duration_ticks, int *num_inputnodes, const double tick_ms);
247 
259 nodeinputseries_t *generate_input_frequencies_from_sh_bitmap(const int argc, const char * argv[], int *num_inputnodes, const double tick_ms);
260 
261 #endif
int parse_int_arg(const int argc, const char *argv[], const char *flag)
Parses an integer argument from the command line for a specified flag.
Definition: brainsetup.c:125
unsigned int contains_flag(const int argc, const char *argv[], const char *flag)
Checks if the command line contains a flag.
Definition: brainsetup.c:116
Struct to store the input for the simulation for a single node.
Definition: definitions.h:151
int calculate_period_length(int hz, const double tick_ms)
Calcuated the period length of the given frequency at the specified resolution, i.e., the number of samples to generate, until the period is reached.
Definition: brainsetup.c:428
nodeinputseries_t * read_input_behavior(const int number_of_inputnodes, const int *x_indices, const int *y_indices, const char **inputnodefilenames, const int *number_of_elements)
Reads and parses the inputs defined as csv files to be added to the given nodes during the simulation...
Definition: brainsetup.c:244
nodeinputseries_t * generate_input_frequencies_from_bitmap(const char *filenames[], const unsigned int num_filenames, const int min_freq, const int max_freq, const int bitmap_duration_ticks, int *num_inputnodes, const double tick_ms)
Generates input timeseries for all non-zero (non-black) nodes from the specified 24-bit bitmap images...
Definition: brainsetup.c:274
nodeval_t ** init_nodegrid_default(int *number_nodes_x, int *number_nodes_y)
Initializes a nodegrid with a default size and initializes it with zero.
Definition: brainsetup.c:215
void init_start_time_state(const int number_nodes_x, const int number_nodes_y, nodeval_t **nodes, const int num_start_levels, const nodeval_t *start_levels, const int *start_nodes_x, const int *start_nodes_y)
Sets a start time energy state for the node field.
Definition: brainsetup.c:233
void init_start_time_state_from_sh(const int argc, const char *argv[], const int number_nodes_x, const int number_nodes_y, nodeval_t **nodes)
Sets a start time energy state for the node field.
Definition: brainsetup.c:195
double * generate_sin_time_series(int hz, const double tick_ms, int number_of_samples)
Generates a specified number of samples of a discretized sinoidal timeseries with the specified frequ...
Definition: brainsetup.c:405
double nodeval_t
Type that the nodes in the brainsimulation use to store their energy level.
Definition: definitions.h:120
unsigned int * read_bitmap_contents(const char *bitmap_path, unsigned int *bitmap_size_x, unsigned int *bitmap_size_y)
Reads a bitmap image file and returns the sum color values for each pixel in a array.
Definition: brainsetup.c:501
nodeinputseries_t * generate_input_frequencies_from_sh(const int argc, const char *argv[], int *num_inputnodes, const double tick_ms)
Generates input timeseries for the given nodes with the specified frequency.
Definition: brainsetup.c:258
Struct to store the results of a simulation for a single observed node.
Definition: definitions.h:126
nodetimeseries_t * init_observation_timeseries_default(int *num_observationnodes, int num_ticks)
Initializes num_oberservationnodes timeseries structs with default values and returns them in an arra...
Definition: brainsetup.c:174
nodeinputseries_t * generate_input_frequencies_from_sh_bitmap(const int argc, const char *argv[], int *num_inputnodes, const double tick_ms)
Generates input timeseries for all non-zero (non-black) nodes from the specified 24-bit bitmap images...
Definition: brainsetup.c:358
nodeinputseries_t * generate_input_frequencies_default(int *num_inputnodes, const double tick_ms)
Generates input timeseries for a set of default given nodes with default frequencies.
Definition: brainsetup.c:376
Common definitions (mostly types).
nodetimeseries_t * init_observation_timeseries_from_sh(const int argc, const char *argv[], int *num_observationnodes)
Initializes num_oberservationnodes timeseries structs and returns them in an array using settings fro...
Definition: brainsetup.c:139
nodetimeseries_t * init_observation_timeseries(const int num_oberservationnodes, const int *x_indices, const int *y_indices, const int num_timeseries_elements)
Initializes num_oberservationnodes timeseries structs and returns them in an array.
Definition: brainsetup.c:182
nodeinputseries_t * generate_input_frequencies(const int number_of_inputnodes, const int *x_indices, const int *y_indices, const int *frequencies, const double tick_ms)
Generates input timeseries for the given nodes with the specified frequency.
Definition: brainsetup.c:391
double * generate_sin_frequency(int hz, const double tick_ms)
Generates a discretized sinoidal timeseries with the specified frequency and returns it...
Definition: brainsetup.c:415