package org.signalml.plugin.newartifact.logic.stat;
import org.apache.commons.math.stat.descriptive.moment.StandardDeviation;
public class Stat {
private StandardDeviation devAlgorithm;
public Stat() {
this.devAlgorithm = new StandardDeviation();
}
public double computeCorrelation(double x[], double y[]) {
double meanx = this.mean(x);
double meany = this.mean(y);
double sumxDiff = 0.0d;
double sumyDiff = 0.0d;
double sumxyDiff = 0.0d;
for (int i = 0; i < x.length; ++i) {
double xDiff = x[i] - meanx;
double yDiff = y[i] - meany;
sumxDiff += xDiff * xDiff;
sumyDiff += yDiff * yDiff;
sumxyDiff += (x[i] - meanx) * (y[i] - meany);
}
return sumxyDiff / Math.sqrt(sumxDiff * sumyDiff);
}
public double mean(double x[]) {
double mean = 0.0d;
for (int i = 0; i < x.length; ++i) {
mean += x[i];
}
return mean / x.length;
}
public double standardDeviation(double x[]) {
this.devAlgorithm.clear();
return this.devAlgorithm.evaluate(x);
}
}