24 lines
586 B
C
24 lines
586 B
C
#include "exp_weigh_avg.h"
|
|
|
|
int betweenZeroOne(double lambda) {
|
|
if ((lambda < FAULT) || ((1 - lambda) <= FAULT)) return 0;
|
|
return 1;
|
|
}
|
|
|
|
double expWeigthAvg(FILE * file, double lambda) {
|
|
double current, i, eavg, lambda_n;
|
|
if (fscanf(file, "%lf", ¤t) != 1) {
|
|
printf("File is empty!\n");
|
|
return -1.;
|
|
}
|
|
|
|
i = 1.;
|
|
eavg = 0.;
|
|
|
|
do {
|
|
eavg += current * pow(lambda, -i);
|
|
i++;
|
|
} while (fscanf(file, "%lf", ¤t) == 1);
|
|
lambda_n = pow(lambda, i - 1);
|
|
return (eavg * lambda_n) * ((1 - lambda) / (1 - lambda_n));
|
|
}
|