public SIRTwoStageFilter(SIRContainer parent, String ident, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JExpression peek, JExpression pop, JExpression push, JMethodDeclaration work, int initPeek, int initPop, int initPush, JMethodDeclaration initWork, CType inputType, CType outputType) { super(parent, ident, fields, methods, peek, pop, push, work, inputType, outputType); this.initPeek = initPeek; this.initPush = initPush; this.initPop = initPop;  setInitWork(initWork);    Utils.assert(initPeek-initPop==getPeekInt()-getPopInt());
public SIRTwoStageFilter() { super();
    public SIRTwoStageFilter(SIRContainer parent,			     String ident,			     JFieldDeclaration[] fields, 			     JMethodDeclaration[] methods, 			     JExpression peek,			     JExpression pop, 			     JExpression push, 			     JMethodDeclaration work, 			     int initPeek,			     int initPop,			     int initPush,			     JMethodDeclaration initWork, 			     CType inputType, 			     CType outputType) {	super(parent, ident, fields, methods, 	      peek, pop, push, work,	      inputType, outputType);	this.initPeek = initPeek;	this.initPush = initPush;	this.initPop = initPop;	// this ensures that <initWork> is in our methods array, too	setInitWork(initWork);	// we think the peek-pop difference should be the same in the	// initial and steady states (our simulation routine with the	// scheduler makes this assumption).	Utils.assert(initPeek-initPop==getPeekInt()-getPopInt());    }    /**     * Copies the state of filter <other> into this.  Fields that are     * objects will be shared instead of cloned.     */    public void copyState(SIRTwoStageFilter other) {	super.copyState(other);	this.initPeek = other.initPeek;	this.initPush = other.initPush;	this.initPop = other.initPop;	this.initWork = other.initWork;    }