int reps = Math.max(2, Math.round(sortedFilters.getWork(i) / idealWork));
int reps = (int)Math.max(2.0, Math.round(((double)sortedFilters.getWork(i)) / ((double)idealWork)));
    private static boolean duplicateHeavyFiltersRound(SIRStream str) {        boolean change = false;        //get the work estimate        WorkEstimate work = WorkEstimate.getWorkEstimate(str);        //find the ordering of filters        WorkList sortedFilters = work.getSortedFilterWork();        int totalWork = 0;        for (int i = 0; i < sortedFilters.size(); i++) {            totalWork += sortedFilters.getWork(i);        }                int idealWork = totalWork / SpaceTimeBackend.getRawChip().getTotalTiles();                System.out.println("Ideal Work: " + idealWork);                for (int i = sortedFilters.size() -1 ; i >= 0; i--) {            if (sortedFilters.getWork(i) >= (int)(1.5 * ((double)idealWork)) &&                    StatelessDuplicate.isFissable(sortedFilters.getFilter(i))) {                change = true;                int reps = Math.max(2,                         Math.round(sortedFilters.getWork(i) / idealWork));                StatelessDuplicate.doit(sortedFilters.getFilter(i), reps);                System.out.println("Duplicating " + sortedFilters.getFilter(i) + " " +                        (((double)sortedFilters.getWork(i)) / ((double)idealWork)) + " " + reps);            }            else                        break;        }                return change;    }