*/
    public static boolean canReplace(SIRStream str, LinearAnalyzer lfa) {	/* if we don't have a linear form for this stream, we are done. */	if(!lfa.hasLinearRepresentation(str)) {	    LinearPrinter.println("  aborting -- not linear");	    return false;	}	LinearFilterRepresentation linearRep = lfa.getLinearRepresentation(str);	/* if this filter doesn't have a pop of one, we abort. **/	if (linearRep.getPopCount() != 1) {	    LinearPrinter.println("  aborting -- filter is not FIR (pop = " +				  linearRep.getPopCount() + ")"); 	    return false;	}		/* if there is not a real valued FIR (all coefficients are real), we are done. */	if (!linearRep.isPurelyReal()) {	    LinearPrinter.println("  aborting -- filter has non real coefficients."); 	    return false;	}	/** if this filter has a constant component (eg if it has a non zero "b") we abort.	    (Note, there is nothing saying that we can't perform the transform in this	    case, only that currently we don't have any examples of programs that use it	    so I am not going to bother implenting it. -- AAL**/	if (linearRep.hasConstantComponent()) {	    LinearPrinter.println("  aborting -- filter has non zero constant components.\n" +				  "ANDREW -- YOU ARE BEING LAZY. THIS IS NOT A HARD THING TO IMPLEMENT " +				  "SO DO IT!");	    return false;	}		/** if doing clever replacement, don't do small FIRs. **/	if (linearRep.getPeekCount() < minFIRSize) { 	    LinearPrinter.println("  aborting -- fir size too small: " +				  linearRep.getPeekCount() + ". needs to be at least " +				  minFIRSize);	    return false;	}	// otherwise we can replace	return true;    }