public void table(String what) throws NoSuchMethodException,IllegalAccessException,InvocationTargetException
	{
		PrintfFormat dfmt = new PrintfFormat("Dataset %2d:");
		PrintfFormat fmt = new PrintfFormat(" %9.5f  ");
		PrintfFormat nfmt = new PrintfFormat(" %11s");
		if (expt==null) compute();
		for (int i=0; i<blockerNames.size(); i++) {
			System.out.println("\nblocker: "+blockerNames.get(i)+"\n");
			System.out.print("           ");
			for (int j=0;  j<learnerNames.size(); j++) {
				String s = (String)learnerNames.get(j);
				if (s.length()>11) s = s.substring(0,11);
				System.out.print( nfmt.sprintf(s) );
			}
			System.out.println();
			double[] average = new double[learnerNames.size()];
			for (int k=0; k<datasetNames.size(); k++) {
				System.out.print( dfmt.sprintf(k+1));
				for (int j=0; j<learnerNames.size(); j++) {
					Method m = MatchExpt.class.getMethod(what, new Class[] {});
					Double d = (Double)m.invoke(expt[i][j][k], new Object[]{});
					System.out.print( fmt.sprintf(d) );
					average[j] += d.doubleValue();
				}
				System.out.print("\n");
			}
			System.out.print( "   Average:");
			for (int j=0; j<learnerNames.size(); j++) {
				System.out.print( fmt.sprintf( average[j]/datasetNames.size() ) );
			}
			System.out.print("\n\n");
		}
	}