Skip to content

Commit

Permalink
Refactoring the variance calculation.
Browse files Browse the repository at this point in the history
  • Loading branch information
reu committed Apr 13, 2012
1 parent 4482944 commit f226f6b
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions ext/standard_deviation/standard_deviation.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,21 @@ static double sum(VALUE *array, int size) {
return total;
}

static double sample_variance(VALUE *array, int size) {
static double distance_from_mean(VALUE *array, int size) {
int i;
double mean, variance;
double mean, distance;

mean = sum(array, size) / size;

for (i = 0, variance = 0; i < size; i++) {
variance += pow((NUM2DBL(array[i]) - mean), 2);
for (i = 0, distance = 0; i < size; i++) {
distance += pow((NUM2DBL(array[i]) - mean), 2);
}

return variance / (size - 1);
return distance;
}

static double sample_variance(VALUE *array, int size) {
return distance_from_mean(array, size) / (size - 1);
}

static VALUE stdev(VALUE self) {
Expand Down

0 comments on commit f226f6b

Please sign in to comment.