function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {

var u = uninterpolate(domain[0], domain[1]),
    i = interpolate(range[0], range[1]);
return function(x) {
  return i(u(x));
};

}