31 lines
688 B
C
31 lines
688 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;
|
|
//
|
|
//if (var > 0.001) return 0;
|
|
(void) max_var;
|
|
(void) min_avg;
|
|
if (var > 0.01) return 0;
|
|
return blky_clamp(avg, 0, 1);
|
|
}
|