protected void Compute(
int successes1, int trials1,
int successes2, int trials2,
TwoSampleHypothesis alternate)
{
double p1 = successes1 / (double)trials1;
double p2 = successes2 / (double)trials2;
double p = (successes1 + successes2) / (double)(trials1 + trials2);
EstimatedValue1 = p1;
EstimatedValue2 = p2;
ObservedDifference = p1 - p2;
StandardError = Math.Sqrt(p * (1 - p) * (1.0 / trials1 + 1.0 / trials2));
double z = ObservedDifference / StandardError;
Compute(z, alternate);
}
}