/** * Accumulates a specified real value y(x) into uniformly-sampled yu. * Accumulation is the transpose (not the inverse) of interpolation. * Whereas interpolation gathers from uniformly sampled values. * accumulation scatters into uniformly sampled values. * @param xa value x at which to accumulate. * @param ya value y(x) to accumulate. * @param nxu number of input/output samples. * @param dxu input/output sampling interval. * @param fxu first input/output sampled x value. * @param yu input/output array of sampled values y(x). */ public void accumulate( double xa, float ya, int nxu, double dxu, double fxu, float[] yu) { double xscale = 1.0/dxu; double xshift = _lsinc-fxu*xscale; int nxum = nxu-_lsinc; accumulate(xscale,xshift,nxum,xa,ya,nxu,yu); }
/** * Accumulates a specified real value y(x) into uniformly-sampled yu. * Accumulation is the transpose (not the inverse) of interpolation. * Whereas interpolation gathers from uniformly sampled values. * accumulation scatters into uniformly sampled values. * @param nxa number of values to accumulate. * @param xa input array of values x at which to accumulate. * @param ya input array of values y(x) to accumulate. * @param nxu number of input/output samples. * @param dxu input/output sampling interval. * @param fxu first input/output sampled x value. * @param yu input/output array of sampled values y(x). */ public void accumulate( int nxa, float[] xa, float[] ya, int nxu, double dxu, double fxu, float[] yu) { double xscale = 1.0/dxu; double xshift = _lsinc-fxu*xscale; int nxum = nxu-_lsinc; for (int ixa=0; ixa<nxa; ++ixa) accumulate(xscale,xshift,nxum,xa[ixa],ya[ixa],nxu,yu); }
si.accumulate(nx, x, y, nxu, dxu, fxu, ya);