I'm a physicist looking for a way to get an interpolator from (1D) binned data which preserves area, is smooth (has cts. 2nd derivs preferably) and is monotonic.
Binned data sets are ones where one knows the integrated value in lots of small ranges (bins) but not how that area is distributed within the bin.
So I found a practical solution. I simply edited the binned values I fitted to, in order to reproduce the real binned data. Basically, for each bin, I integrated the interpolator; the bin value would then be area/bin_width. I then updated the data I fit to by fit_data = fit_data + (real_bin_val - area/bin_width). So the fit data and actual data is different. Repeating this converges. I used gsl_interp_steffens from GNOME C++.
It would be interesting if there were more theoretical/mathematical methods.