#include "fracture.h" double *bin_values(graph_t *network, unsigned int width, double *values) { double *binned = calloc(pow(width, 2), sizeof(double)); unsigned int *num_binned = calloc(pow(width, 2), sizeof(unsigned int)); for (unsigned int i = 0; i < network->ne; i++) { if (values[i] != 0) { unsigned int x = ((int)(network->edge_coords[2 * i] * width)) % width; unsigned int y = ((int)(network->edge_coords[2 * i + 1] * width)) % width; binned[width * x + y] += fabs(values[i]); num_binned[width * x + y]++; } } for (unsigned int i = 0; i < pow(width, 2); i++) { if (num_binned[i] != 0) { binned[i] /= num_binned[i]; } } return binned; }