/** add in statements to allocate space for the weight fields, partial results
/** add statements to allocate space for the weight fields, partial results
    public JMethodDeclaration makeNewInit(LinearFilterRepresentation linearRep,					  JVariableDefinition[] weightFields,					  JVariableDefinition[] partialFields,					  JVariableDefinition inputBufferField,					  JVariableDefinition tempBufferField,					  JVariableDefinition[] outputBufferFields,					  int filterSize, int x) {		JBlock body = new JBlock();	// the number of FIR filters that are embodied by this filter	int numFIRs = weightFields.length;		/** add in statements to allocate space for the weight fields, partial results	    fields, input buffer field, and output buffer field.	    The weight fields are all of the filter size (because we will store the frequency	    representation in half complex array form (the output of FFTW). **/	for (int i=0; i<numFIRs; i++) {	    body.addStatement(makeFieldAllocation(weightFields[i].getIdent(), filterSize,						  "field to store the frequency response (" +						  i + ") of the filter."));	}	for (int i=0; i<numFIRs; i++) {	    body.addStatement(makeFieldAllocation(partialFields[i].getIdent(), x-1,						  "field to store the partial results (" +						  i + ") across filter firings."));	}		/** allocate space for the input data on each execution. **/	body.addStatement(makeFieldAllocation(inputBufferField.getIdent(), filterSize,					      "field to store the input each execution."));	/** allocate space for the temp data on each execution (eg Y[k]). **/	body.addStatement(makeFieldAllocation(tempBufferField.getIdent(), filterSize,					      "field to store the temp product on each execution."));	/** Allocate space for each of the output buffers. **/	for (int i=0; i<numFIRs; i++) {	    body.addStatement(makeFieldAllocation(outputBufferFields[i].getIdent(), filterSize,						  "field to store the output of each execution (" +						  i + ")."));	}	    	/** copy the values of the time responses into the weight field (afterwards we will	    run convert_to_freq on the buffer to convert the real values to their (complex)	    frequency form.) **/	for (int currentFIR=0; currentFIR<numFIRs; currentFIR++) {	    /* Get the weights of the current column that we are looking at into a float array. */	    float[] time_response_r = getRealArray(linearRep, numFIRs - 1 - currentFIR, filterSize);	    // now, generate statements to assign the weights one by one to the weight field.	    for (int i=0; i<filterSize; i++) {		body.addStatement(makeArrayAssignment(weightFields[currentFIR],/* field */						      i,                       /* index */						      time_response_r[i]));    /* value */	    }	    /** add in code to convert the weight field to the frequency domain. **/	    body.addStatement(makeTimeToFrequencyConversion(weightFields[currentFIR], filterSize));	    /** add in code to scale the weight field by 1/N (because FFTW doesn't do it. */	    body.addStatement(makeFrequencyScale(weightFields[currentFIR], filterSize));	}			/** assemble the new pieces that we made and stick them into a new method. */	return new JMethodDeclaration(null,                 /* token reference */				      ACC_PUBLIC,           /* modifiers */				      CStdType.Void,        /* return type */				      "init",               /* identifier */				      JFormalParameter.EMPTY,/* paramters */				      CClassType.EMPTY,     /* exceptions */				      body,                 /* body */				      null,                 /* java doc */				      null);                /* java style comment */    }