private GaussianDistribution estimateGaussian(HistDistribution dist, int positiveSamples, int totalSamples) { var newDist = new HistDistribution(dist); // TODO: Privremeno if (totalSamples > 300) { positiveSamples = (300 * positiveSamples) / totalSamples; totalSamples = 300; } var pos = positiveSamples; var neg = totalSamples - positiveSamples; while (pos + neg > 0) { if (pos + neg <= 100) { updateDistributionRandom(newDist, pos, neg); pos = 0; neg = 0; } else { var newPos = (int)(100 * (pos / (float)(pos + neg))); var newNeg = (int)(100 * (neg / (float)(pos + neg))); updateDistributionRandom(newDist, newPos, newNeg); pos -= newPos; neg -= newNeg; } } Debug.Assert(pos == 0 && neg == 0); return(newDist.FitGaussian()); }