public synchronized void addCompiledQueryMix(CompiledQueryMix cqMix) {
		int[] cRunsPerQuery = cqMix.getRunsPerQuery();
		double[] cAqet = cqMix.getAqet();
		double[] cAvgResults = cqMix.getAvgResults();
		double[] cAqetg = cqMix.getAqetg();
		double[] cQmin = cqMix.getQmin();
		double[] cQmax = cqMix.getQmax();
		int[] cMinResults = cqMix.getMinResults();
		int[] cMaxResults = cqMix.getMaxResults();
		int[] cTimeouts = cqMix.getTimeoutsPerQuery();
		double cTotalRuntime = cqMix.getTotalRuntime();
		double cMinQueryMixRuntime = cqMix.getMinQueryMixRuntime();
		double cMaxQueryMixRuntime = cqMix.getMaxQueryMixRuntime();
		double cQueryMixGeoMean = cqMix.getQueryMixGeoMean();
		int cQueryMixRuns = cqMix.getQueryMixRuns();
		for(int i=0;i<queries.length;i++) {
			if(cRunsPerQuery[i]>0) {
				int cNrRuns = cRunsPerQuery[i];
				
				
				aqet[i] = (aqet[i]*runsPerQuery[i] + cAqet[i]*cNrRuns)/(runsPerQuery[i]+cNrRuns);
				aqetg[i] += cAqetg[i];
				avgResults[i] = (avgResults[i]*runsPerQuery[i] + cAvgResults[i]*cNrRuns)/(runsPerQuery[i]+cNrRuns);
				timeoutsPerQuery[i] += cTimeouts[i];
				
				if(cQmin[i] < qmin[i])
					qmin[i] = cQmin[i];
				
				if(cQmax[i] > qmax[i])
					qmax[i] = cQmax[i];
				
				if(cMinResults[i] < minResults[i])
					minResults[i] = cMinResults[i];
				
				if(cMaxResults[i] > maxResults[i])
					maxResults[i] = cMaxResults[i];

				runsPerQuery[i] += cNrRuns;
			}
		}
		//QueryMix statistics
		totalRuntime+=cTotalRuntime;
		queryMixGeoMean += cQueryMixGeoMean;
		queryMixRuns+=cQueryMixRuns;
		
		if(cMinQueryMixRuntime < minQueryMixRuntime)
			minQueryMixRuntime = cMinQueryMixRuntime;
		
		if(cMaxQueryMixRuntime > maxQueryMixRuntime)
			maxQueryMixRuntime = cMaxQueryMixRuntime;
	}