zinterpxy(x, y, rate)
{
local xmin, xmax;
/* zinterp y vals */
y = zinterp(y, rate);
/* linearly interp x vals */
(xmin, xmax) = xminmax(x);
x = xylookup(x, linspace(xmin, xmax, length(y)));
/* linearly sample */
y = xyinterp(x, y, 1.0 / rate);
return(y);
}