int cost = get(options[i]);
long cost = get(options[i]);
    public StreamTransform traceback(int collapse) {	if (LinearPartitioner.DEBUG) { printArray(); }	switch(collapse) {	    	case LinearPartitioner.COLLAPSE_ANY: {	    // take min of other three options.  Do this explicitly	    // instead of referencing A array, since the symmetry	    // optimizations could have caused this to not be	    // evaluated with calls to get().	    int[] options = { LinearPartitioner.COLLAPSE_FREQ, 			      LinearPartitioner.COLLAPSE_LINEAR, 			      LinearPartitioner.COLLAPSE_NONE };	    int min = Integer.MAX_VALUE;	    int minOption = -1;	    for (int i=0; i<options.length; i++) {		int cost = get(options[i]);		if (cost<min) {		    min = cost;		    minOption = i;		}	    }	    Utils.assert(minOption!=-1, "Didn't find traceback; was looking for ANY, A[ANY]=" + A[LinearPartitioner.COLLAPSE_ANY] + " for " + filter.getName());	    return traceback(options[minOption]);	}	    	case LinearPartitioner.COLLAPSE_FREQ: {	    partitions.put(filter, new Integer(numAssigned));	    return new FreqReplaceTransform(partitioner.getLinearAnalyzer());	}	    	case LinearPartitioner.COLLAPSE_LINEAR: {	    partitions.put(filter, new Integer(numAssigned));	    return new LinearReplaceTransform(partitioner.getLinearAnalyzer());	}	case LinearPartitioner.COLLAPSE_NONE: {	    partitions.put(filter, new Integer(numAssigned));	    return new IdentityTransform();	}	}	Utils.fail("Couldn't find traceback for option: " + collapse + " for " + filter);	return null;    }