public double interpolate(double xx1, double xx2){

    	    this.xx1 = xx1;
    	    this.xx2 = xx2;

	    	double[] yTempm = new double[this.nPoints];

	    	for (int i=0;i<this.nPoints;i++){
		    	yTempm[i]=this.csn[i].interpolate(xx2);
	    	}
	    	this.csm.resetData(x1,yTempm);
	    	this.interpolatedValue = this.csm.interpolate(xx1);

	    	double[] yTempmT = new double[this.nPointsT];

            for (int i=0;i<this.nPointsT;i++){
		    	yTempmT[i]=this.csnT[i].interpolate(xx1);
	    	}
	    	this.csmT.resetData(x2,yTempmT);
	    	this.interpolatedValueTranspose = this.csmT.interpolate(xx2);

	    	this.interpolatedValueMean = (this.interpolatedValue + this.interpolatedValueTranspose)/2.0;
	    	return this.interpolatedValueMean;
    	}