blob: 2cb9cf6b9434872535aab0d11e129c9a641704b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include "fracture.h"
double *bin_values(fnet *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->num_edges; 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;
}
|