(int) ((next.getSteadyMult() * next.getPopInt()) *
(int) (((double)(next.getSteadyMult() * next.getPopInt())) *
    private void setMultiplicitiesJoin(Trace[] traces) {        for (int i = 0; i < traces.length; i++) {            Edge downEdge = traces[i].getTail().getSingleEdge();                        //the downstream filter            FilterContent next = downEdge.getDest().getNextFilter().getFilter();            //set the steady items based on the number of items the down stream             //filter receives            int steadyItems =                 (int) ((next.getSteadyMult() * next.getPopInt()) *                        downEdge.getDest().ratio(downEdge));                                traces[i].getHead().getNextFilter().getFilter().setSteadyMult(steadyItems);                        int initItems = 0;            //set the init items baed on the number each of the upstream             //filters push on to each incoming edge            InputTraceNode input = traces[i].getHead();            for (int s = 0; s < input.getSources().length; s++) {               Edge upEdge = input.getSources()[s];               FilterContent prev = upEdge.getSrc().getPrevFilter().getFilter();               initItems += (int) (input.ratio(upEdge) * prev.initItemsPushed());            }            traces[i].getHead().getNextFilter().getFilter().setInitMult(initItems);        }    }