- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is a standard 3rd order itnerpolation:
for (int iy=-2; iy<=3; iy++) {
y_coeff = interp_coef_y[iy+2];
x_interp_value = coefx0*pf[index_signal_start + 0] +
coefx1*pf[index_signal_start+1] +
coefx2*pf[index_signal_start+2] +
coefx3*pf[index_signal_start+3] +
coefx4*pf[index_signal_start+4] +
coefx5*pf[index_signal_start+5];
signal_value3 += y_coeff*x_interp_value;
index_signal_start += nx;
}
Is there an IPP function for this?
Thanks.
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your "x_interp_value = ..." statement should be handled nicely by the DotProduct function:
http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/ippxe/ipp_manual_lnx/hh_goto.htm#IPPM/ippm_ch4/functn_DotProduct.htm
since you are essentially just multiplying two vectors together. One vector is contained in pf[] and the other is your list of coefficients (coefx0-5). With such a small vector you may not see much benefit from using an IPP function, due to the call overhead; but if the vectors are longer or you are doing large numbers of them, there may be an advantage.
http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/ippxe/ipp_manual_lnx/hh_goto.htm#IPPM/ippm_ch4/functn_DotProduct.htm
since you are essentially just multiplying two vectors together. One vector is contained in pf[] and the other is your list of coefficients (coefx0-5). With such a small vector you may not see much benefit from using an IPP function, due to the call overhead; but if the vectors are longer or you are doing large numbers of them, there may be an advantage.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page