blocky/liblocky/block.c
2022-06-22 11:48:52 +09:00

25 lines
547 B
C

#include "liblocky.h"
double blky_block_estimate(
const blky_sensor_t* sensors, uint64_t n,
double max_var, double min_avg) {
double sum = 0;
for (uint64_t i = 0; i < n; ++i) {
sum += blky_abs(sensors[i].correl);
}
const double avg = sum / (double) n;
double var = 0;
for (uint64_t i = 0; i < n; ++i) {
const double diff = blky_abs(sensors[i].correl) - avg;
var += diff*diff;
}
var /= (double) n;
// FIXME: calculate probability
if (var > max_var) return 0;
if (avg < min_avg) return 0;
return 1;
}