private void initCumulative() {
		cumulative = new int[frequencies.length + 1];
		int sum = 0;
		for (int i = 0; i < frequencies.length; i++) {
			sum = checkedAdd(frequencies[i], sum);
			cumulative[i + 1] = sum;
		}
		if (sum != total)
			throw new AssertionError();
	}