#ifndef DECISION_H
#define DECISION_H
#include "data_stat.h"
#include <math.h>
int make_decision(double *data, int n);
#endif
#include "decision.h"
int is_three_sigma(double *data, int n) {
if (n == 0) return 0;
double mean_val = mean(data, n);
double sum_sq = 0.0;
for (int i = 0; i < n; i++) {
double diff = data[i] - mean_val;
sum_sq += diff * diff;
}
double sigma = sqrt(sum_sq / n);
double left = mean_val - 3 * sigma;
double right = mean_val + 3 * sigma;
for (int i = 0; i < n; i++) {
if (data[i] < left || data[i] > right) {
return 0;
}
}
return 1;
}
int make_decision(double *data, int n) {
const double GOLDEN_RATIO_INV = 0.618;
if (n == 0) return 0;
double mean_val = mean(data, n);
if (mean_val < GOLDEN_RATIO_INV) {
return 0;
}
return is_three_sigma(data, n);
}