public BartlettTest(params double[][] samples)
{
int N = 0, k = samples.Length;
double Sp = Measures.PooledVariance(samples);
double sum1 = 0; // Numerator sum
for (int i = 0; i < samples.Length; i++)
{
int n = samples[i].Length;
double s = samples[i].Variance();
double logs = Math.Log(s);
sum1 += (n - 1.0) * logs;
N += n;
}
double sum2 = 0; // Denominator sum
for (int i = 0; i < samples.Length; i++)
{
int n = samples[i].Length;
sum2 += 1.0 / (n - 1) ;
}
double num = (N - k) * Math.Log(Sp) - sum1;
double den = 1 + (1 / (3.0 * (k - 1))) * (sum2 - 1.0 / (N - k));
double W = num / den;
int degrees = k - 1;
this.Compute(W, degrees);
}