public static <D extends TopicDataset> void latexTimingPerformance(
			Vector<A2WSystem> a2wAnnotators, Vector<Sa2WSystem> sa2wAnnotators,
			Vector<Sc2WSystem> sc2wAnnotators, Vector<D> dss) throws Exception {
		System.out.println("Timing performance - latex output");

		int allAnnsSize = 0;
		if (sa2wAnnotators != null)
			allAnnsSize += sa2wAnnotators.size();
		if (a2wAnnotators != null)
			allAnnsSize += a2wAnnotators.size();
		if (sc2wAnnotators != null)
			allAnnsSize += sc2wAnnotators.size();

		System.out.printf(LOCALE,
				"\\hline \nDataset & Tagger & Average Time\\\\ \n \\hline%n");
		for (TopicDataset d : dss) {
			long len = 0;
			for (String s : d.getTextInstanceList())
				len += s.length();
			System.out
					.printf(LOCALE,
							"\\multirow{%d}{*}{\\parbox{.40\\textwidth}{%s \\newline(len %d)}} %n",
							allAnnsSize, d.getName(),
							(int) ((float) len / (float) d.getSize()));
			if (a2wAnnotators != null)
				for (A2WSystem t : a2wAnnotators)
					System.out.printf(
							LOCALE,
							"& %s & $%d$ms \\\\ \\cline{2-3}%n",
							t.getName(),
							(int) BenchmarkCache.getAvgA2WTimingsForDataset(
									t.getName(), d.getName()));
			if (sa2wAnnotators != null)
				for (Sa2WSystem t : sa2wAnnotators)
					System.out.printf(
							LOCALE,
							"& %s & $%d$ms \\\\ \\cline{2-3}%n",
							t.getName(),
							(int) BenchmarkCache.getAvgSa2WTimingsForDataset(
									t.getName(), d.getName()));
			System.out.printf(LOCALE, "\\hline%n");

		}

	}