System.out.print("{" + times + " $" + idx + "} ");
System.err.print("{" + times + " $" + idx + "} ");
    private void printSched(Schedule sched, Map scheds)    {        // don't print duplicates        if (scheds.containsKey(sched))            return;        if (!sched.isBottomSchedule())        {            for (int nPhase = 0; nPhase < sched.getNumPhases(); nPhase++)            {                // print the children first                printSched(sched.getSubSched(nPhase), scheds);            }            int symbolicIdx = scheds.size();            scheds.put(sched, new Integer (symbolicIdx));            // and now print self:            System.out.print("$" + symbolicIdx + " = { ");            for (int nPhase = 0; nPhase < sched.getNumPhases(); nPhase++)            {                int times = sched.getSubSchedNumExecs(nPhase);                int idx =                    ((Integer)scheds.get(sched.getSubSched(nPhase)))                        .intValue();                if (times > 1)                    System.out.print("{" + times + " $" + idx + "} ");                else                    System.out.print("$" + idx + " ");            }            System.out.println("}");        }        else        {            // this is an actual leaf - create a vector with just            // a single entry - the schedule            int symbolicIdx = scheds.size();            scheds.put(sched, new Integer (symbolicIdx));            System.out.println(			       "$"			       + symbolicIdx			       + " = "			       + sched.getStream().getObject() + "@" + sched.getStream().getObject().hashCode()			       + "."			       + sched.getWorkFunc());        }    }