if (OffChipBuffer.getBuffer(traceNode, filter).redundant())
if (!OffChipBuffer.necessary(traceNode))
    private static void joinInputTrace(InputTraceNode traceNode, boolean init, boolean primepump)    {	FilterTraceNode filter = (FilterTraceNode)traceNode.getNext();		//do not generate the switch code if it is not necessary	if (OffChipBuffer.getBuffer(traceNode, filter).redundant())	    return;	    	FilterInfo filterInfo = FilterInfo.getFilterInfo(filter);	//calculate the number of items received	int items = filterInfo.totalItemsReceived(init, primepump),	    iterations, stage = 1, typeSize;	//the stage we are generating code for as used below for generateSwitchCode()	if (!init) 	    stage = 2;		typeSize = Util.getTypeSize(filter.getFilter().getInputType());	//the numbers of times we should cycle thru this "joiner"	assert items % traceNode.totalWeights() == 0: 	    "weights on input trace node does not divide evenly with items received";	iterations = items / traceNode.totalWeights();		StreamingDram[] dest = {OffChipBuffer.getBuffer(traceNode, filter).getDRAM()};		for (int i = 0; i < iterations; i++) {	    for (int j = 0; j < traceNode.getWeights().length; j++) {		for (int k = 0; k < traceNode.getWeights()[j]; k++) {		    StreamingDram source = OffChipBuffer.getBuffer(traceNode.getSources()[j],								   traceNode).getDRAM();		    for (int q = 0; q < typeSize; q++)			SwitchCodeStore.generateSwitchCode(source, dest, stage);		}	    }	}	//because transfers must be cache line size divisible...	//generate dummy values to fill the cache line!	if ((items * typeSize) % RawChip.cacheLineWords != 0) {	    int dummy = (items * typeSize) % RawChip.cacheLineWords;	    SwitchCodeStore.dummyOutgoing(dest[0], dummy, init || primepump);	}	//disregard remainder of inputs coming from temp offchip buffers	for (int i = 0; i < traceNode.getSources().length; i++) {	    OutputTraceNode source = traceNode.getSources()[i];	    int remainder = 		(iterations * typeSize * 		 traceNode.getWeight(source)) % RawChip.cacheLineWords;	    SwitchCodeStore.disregardIncoming(OffChipBuffer.getBuffer(source, traceNode).getDRAM(),					      remainder, init || primepump);	}    }