System.out.println("  Scheduling smaller trace " + trace);
    private boolean scheduleSmallerTrace(LinkedList sortedTraces, Trace bigTrace)     {		//find the earliest time that bigTrace can execute based on the 	//number of idle tiles...	int finishBefore = currentTime;	while (true) {	    int idleTiles = 0; 	    for (int i = 0; i < tileAvail.length; i++) {		if (finishBefore >= tileAvail[i])		    idleTiles++;	    }	    if (idleTiles >= bigTrace.getNumFilters())		break;	    	    finishBefore = nextTime(finishBefore);	}		//see if we can schedule any trace to finish before finishBefore	Iterator it = sortedTraces.iterator();	assert it.next() == bigTrace;	while (it.hasNext()) {	    Trace trace = (Trace)it.next();	    System.out.println("   (Trying to schedule smaller trace " + trace + ")");	    //see when it will finish, if smaller than finishBefore	    if ((currentTime + partitioner.getTraceBNWork(trace)) <= 		    finishBefore) {		//see if we can schedule the trace now		HashMap layout = canScheduleTrace(trace);		if (layout != null) {		    //schedule the trace and return true		    scheduleTrace(layout, trace, sortedTraces);		    return true;		}	    }	}	return false;    }