synchronized void newSumLog(int n) {
		if (n >= sumLog.length) {
			double sumLogOld[] = sumLog;
			double sumLogNew[] = new double[n + 1];

			// Copy old values
			for (int i = 0; i < sumLogOld.length; i++)
				sumLogNew[i] = sumLogOld[i];

			// Calc new values
			for (int i = sumLogOld.length; i < sumLogNew.length; i++)
				sumLogNew[i] = sumLogNew[i - 1] + Math.log(i);

			sumLog = sumLogNew;
		}
	}