Skip to content
Snippets Groups Projects
Commit 219e02dc authored by Andreas Gattringer's avatar Andreas Gattringer
Browse files

start annotating array accesses (in preparation of multi-resolution)

parent 98a13dd9
No related branches found
No related tags found
1 merge request!1preparations for multi-scale simulations
...@@ -6,23 +6,23 @@ ...@@ -6,23 +6,23 @@
double load_input_2d_array_double(const struct cats_2d_array_double *raster, cats_dt_coord row, cats_dt_coord col) double load_input_2d_array_double(const struct cats_2d_array_double *raster, cats_dt_coord row, cats_dt_coord col)
{ {
valid_coordinates(&raster->dimension, row, col); valid_coordinates(&raster->dimension, row, col);
return raster->data[row][col]; return raster->data[row][col]; // getter [load_input2d_array_double]
} }
char load_input_2d_array_char(const struct cats_2d_array_char *raster, cats_dt_coord row, cats_dt_coord col) char load_input_2d_array_char(const struct cats_2d_array_char *raster, cats_dt_coord row, cats_dt_coord col)
{ {
valid_coordinates(&raster->dimension, row, col); valid_coordinates(&raster->dimension, row, col);
return raster->data[row][col]; return raster->data[row][col]; // getter [load_input_2d_array_char]
} }
cats_dt_environment load_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col) cats_dt_environment load_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col)
{ {
valid_coordinates(&raster->dimension, row, col); valid_coordinates(&raster->dimension, row, col);
return raster->values[row][col]; return raster->values[row][col]; // getter [load_input_environment_raster]
} }
void set_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col, cats_dt_environment value) void set_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col, cats_dt_environment value)
{ {
valid_coordinates(&raster->dimension, row, col); valid_coordinates(&raster->dimension, row, col);
raster->values[row][col] = value; raster->values[row][col] = value; // getter [set_input_environment_raster]
} }
\ No newline at end of file
...@@ -44,7 +44,7 @@ cats_dt_environment **convert_double_to_environment(const struct cats_2d_array_d ...@@ -44,7 +44,7 @@ cats_dt_environment **convert_double_to_environment(const struct cats_2d_array_d
const cats_dt_coord cols = in_grid->dimension.cols; const cats_dt_coord cols = in_grid->dimension.cols;
for (int32_t r = 0; r < rows; r++) { for (int32_t r = 0; r < rows; r++) {
for (int32_t c = 0; c < cols; c++) { for (int32_t c = 0; c < cols; c++) {
array[r][c] = (float) in_grid->data[r][c]; array[r][c] = (float) in_grid->data[r][c]; // converter [convert_double_to_environment]
} }
} }
......
...@@ -50,6 +50,8 @@ get_adult_population(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co ...@@ -50,6 +50,8 @@ get_adult_population(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co
{ {
assert(valid_population_grid(grid, row)); assert(valid_population_grid(grid, row));
assert(valid_coordinates(&grid->dimension, row, col)); assert(valid_coordinates(&grid->dimension, row, col));
assert(grid->population[row][col] >= 0); // getter [get_adult_population]
return grid->population[row][col]; // getter [get_adult_population]
} }
...@@ -91,8 +93,7 @@ reduce_population_by(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co ...@@ -91,8 +93,7 @@ reduce_population_by(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co
cats_dt_population pop = get_adult_population(grid, row, col); cats_dt_population pop = get_adult_population(grid, row, col);
if (to_reduce > pop) { to_reduce = pop; } if (to_reduce > pop) { to_reduce = pop; }
grid->population[row][col] = pop - to_reduce; // setter [reduce_population_by]
grid->population[row][col] = pop - to_reduce;// setter;
return to_reduce; return to_reduce;
} }
...@@ -111,7 +112,7 @@ set_population_ignore_cc(const struct cats_grid *grid, const cats_dt_coord row, ...@@ -111,7 +112,7 @@ set_population_ignore_cc(const struct cats_grid *grid, const cats_dt_coord row,
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (pop >= 0) grid->population[row][col] = pop; // setter ignore cc; if (pop >= 0) grid->population[row][col] = pop; // setter [set_population_ignore_cc]
} }
...@@ -169,11 +170,11 @@ get_population_ts(const struct cats_grid *grid, const cats_dt_coord row, const c ...@@ -169,11 +170,11 @@ get_population_ts(const struct cats_grid *grid, const cats_dt_coord row, const c
assert(valid_population_grid(grid, row)); assert(valid_population_grid(grid, row));
assert(valid_coordinates(&grid->dimension, row, col)); assert(valid_coordinates(&grid->dimension, row, col));
cats_dt_population tmp = grid->population[row][col]; // getter cats_dt_population tmp = grid->population[row][col]; // getter [get_population_ts]
if (unfiltered) *unfiltered = tmp; if (unfiltered) *unfiltered = tmp;
if (grid->population[row][col] >= threshold) { if (grid->population[row][col] >= threshold) { // getter [get_population_ts]
return tmp; return tmp;
} else { } else {
return 0; return 0;
......
...@@ -55,11 +55,11 @@ void debug_seeds(struct cats_grid *grid, const struct cats_configuration *conf, ...@@ -55,11 +55,11 @@ void debug_seeds(struct cats_grid *grid, const struct cats_configuration *conf,
{ {
if (row == cats_debug.misc_debug_coords.row && col == cats_debug.misc_debug_coords.col) { if (row == cats_debug.misc_debug_coords.row && col == cats_debug.misc_debug_coords.col) {
fprintf(cats_debug.misc_debug_file, "%d,%d,%s,seeds,%f", grid->id, conf->time.year_current, action, fprintf(cats_debug.misc_debug_file, "%d,%d,%s,seeds,%f", grid->id, conf->time.year_current, action,
grid->dispersed_seeds[row][col]); grid->dispersed_seeds[row][col]); // debug [debug_seeds]
const int32_t seed_persistence = get_vital_age(grid, VA_SEED_PERSISTENCE); const int32_t seed_persistence = get_vital_age(grid, VA_SEED_PERSISTENCE);
for (int32_t i = 0; i < seed_persistence; i++) { for (int32_t i = 0; i < seed_persistence; i++) {
if (grid->seed_bank[row][col]) { if (grid->seed_bank[row][col]) { // debug [debug_seeds]
fprintf(cats_debug.misc_debug_file, ",%f", grid->seed_bank[row][col][i]); fprintf(cats_debug.misc_debug_file, ",%f", grid->seed_bank[row][col][i]); // debug [debug_seeds]
} else { } else {
fprintf(cats_debug.misc_debug_file, ",%d", 0); fprintf(cats_debug.misc_debug_file, ",%d", 0);
} }
......
...@@ -110,15 +110,15 @@ struct cats_2d_array_char *translate_exclusion(const struct cats_2d_array_double ...@@ -110,15 +110,15 @@ struct cats_2d_array_char *translate_exclusion(const struct cats_2d_array_double
for (cats_dt_coord row = 0; row < rows; row++) { for (cats_dt_coord row = 0; row < rows; row++) {
for (cats_dt_coord col = 0; col < cols; col++) { for (cats_dt_coord col = 0; col < cols; col++) {
const int32_t val = (int32_t) round(data->data[row][col]); const int32_t val = (int32_t) round(data->data[row][col]); // converter [translate_exclusion]
if (val == 0) { if (val == 0) {
result->data[row][col] = OL_EXCLUSION_NOT_EXCLUDED; result->data[row][col] = OL_EXCLUSION_NOT_EXCLUDED; // converter [translate_exclusion]
} else if (isnan(data->data[row][col])) { } else if (isnan(data->data[row][col])) {
result->data[row][col] = OL_EXCLUSION_NAN; result->data[row][col] = OL_EXCLUSION_NAN; // converter [translate_exclusion]
count += 1; count += 1;
} else { } else {
result->data[row][col] = OL_EXCLUSION_EXCLUDED; result->data[row][col] = OL_EXCLUSION_EXCLUDED; // converter [translate_exclusion]
count += 1; count += 1;
} }
} }
......
...@@ -129,11 +129,11 @@ struct cats_2d_array_double *translate_habitat(const struct cats_2d_array_double ...@@ -129,11 +129,11 @@ struct cats_2d_array_double *translate_habitat(const struct cats_2d_array_double
double value = data->data[row][col]; double value = data->data[row][col];
if (isnan(value)) { if (isnan(value)) {
result->data[row][col] = 0.0; result->data[row][col] = 0.0; // converter [translate_habitat]
} else { } else {
int32_t val = (int32_t) round(value); int32_t val = (int32_t) round(value);
double multi = get_habitat_cc_multiplier(habitat_info, val); double multi = get_habitat_cc_multiplier(habitat_info, val);
result->data[row][col] = multi; result->data[row][col] = multi; // converter [translate_habitat]
} }
} }
} }
......
...@@ -14,14 +14,14 @@ struct cats_2d_array_double *translate_resources(const struct cats_2d_array_doub ...@@ -14,14 +14,14 @@ struct cats_2d_array_double *translate_resources(const struct cats_2d_array_doub
for (cats_dt_coord row = 0; row < rows; row++) { for (cats_dt_coord row = 0; row < rows; row++) {
for (cats_dt_coord col = 0; col < cols; col++) { for (cats_dt_coord col = 0; col < cols; col++) {
double value = data->data[row][col]; double value = data->data[row][col]; // converter [translate_resources]
if (isnan(value)) { if (isnan(value)) {
result->data[row][col] = 0.0; result->data[row][col] = 0.0; // converter [translate_resources]
} else { } else {
if (value <0 ) value = 0; if (value <0 ) value = 0;
result->data[row][col] = value; result->data[row][col] = value; // converter [translate_resources]
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment