private double calcWeightsLL(int a, int b) {
		double sum=0;
		
		int ri=trainSet.getRi(a);
		int rii=trainSet.getRi(b);
		
		for (int j = 0; j < trainSet.getRi(b); j++) {
			for (int k = 0; k < trainSet.getRi(a); k++) {
				for (int c = 0; c < trainSet.getS(); c++) {
					int Nijkc = 0;
					
					int NJikc = 0;
					int NKijc = 0;
					
					Count countForC = getCountForClassifier(c);
					
					Nijkc = countForC.getNijkc(a, b, j, k);
					
					
					int[] classifiers = trainSet.getClassifiers();
					
					int Nc = getNc(c);
					
					int[] XI = trainSet.getXi(a);
					for (int i = 0; i < XI.length; i++) {
						if (XI[i]==k && classifiers[i]==c)
							NJikc++;
					}
					
//					for (int i = 0; i < rii; i++) {
//						NJikc+=countForC.getNijkc(a, b, i, k);
//					}
					
//					for (int i = 0; i < ri; i++) {
//						NKijc+=countForC.getNijkc(a, b, j, i);
//					}
					NKijc = countForC.getNKijc(a, b, j);
					
					double multiplier = (double)Nijkc / trainSet.getN();
					
					double numerador=Nijkc*Nc;
					double denominator = NJikc*NKijc;
					double multiplied = (double)(numerador)/(denominator);
					
					double logarithm = Math.log(multiplied)/Math.log(2);
					
					if (!(multiplier==0 || numerador==0 || denominator==0))
						sum+=multiplier*logarithm;
				}
			}
		}
		return sum;
		
	}