interpolation: prefer computing number of taps directly for downsampling
Merge remote-tracking branch 'upstream/master' into filtering
Merge remote-tracking branch 'upstream/master' into filtering
interpolation: add full image resampling function (not tested nor used)

I prefer adding the bulk of this massive function (not in lines but
in brain cells consumed when reading), and then fix it, extend it.
interpolation: strides are in bytes, document the function
Merge remote-tracking branch 'upstream/master' into filtering
Merge remote-tracking branch 'upstream/master' into filtering
interpolation: try to get closer to dt_iop_clip_and_zoom API contract

The resampling code was totally generic. I'm now trying to converge
to dt_iop_clip_and_zoom API contract. Hope i get all that roi fields
meaning correctly.

- plan: the resampling is now isotropic and equals roi_out scale
- plan: in coordinates (resp: out coordinates) are now offseted
  by roi_in (resp: roi_out) x and y where appropriate.
- clip: with all that roi taking care, clip now has a lower bound
  as well
interpolation: first gazillion bugfixes to the resampler

When the new resampler is plugged in... it all started as a firework
of bugs I've been squashing over the last few days. Most of them are
due to me writing code w/o actually using the function... writing
theoritically good code is hard !
 - fix a loop counter not being initialized (not even catched by
   gcc, so strange)
 - fix length of downsizing kernel array
 - fix posix_memalign call
 - fix pixel indexes saved to index array, they have to be offseted
   by roi x,y
 - fix output pixel offset computing
 - plug the new code in dt_iop_clip_and_zoom, so the bravest among
   you can also test our sigsegv handler codepath :D
Merge remote-tracking branch 'upstream/master' into filtering
interpolation: improve debug output, be informative at runtime
interpolation: add codepath for 1:1 resampling
interpolation: roi out is relative to roi in, not absolute
interpolation: add a define for sse alignment requirement and use it
interpolation: align kernels for future SSE code in prepare_plan
interpolation: use SSE up/downsampling kernel functions in planner

- add SSE downsampling kernel computing functions
- adapt planner a bit to make use of SSE versions of kernel computing functions
- add a bit of debug functions to trace time changes

Results:
bilinear
scalar: plan:145us resampling:107875us
sse: plan:166us resampling:108729us

bicubic
scalar: plan:272us resampling:393884us
sse: plan:270us resampling:391981us

lanczos2:
scalar: plan:669us resampling:393399us
sse:    plan:275us resampling:392166us

lanczos3
scalar: plan:1178us resampling:859210us
sse:    plan:342us resampling:867768us
Merge remote-tracking branch 'upstream/master' into filtering
interpolation: vectorize inner resampling loop

Use vectorized types/ops for computing the 3(+1) components together.

On a dell 11z (i'm not at home), here are the results:

bilinear:
scalar: resampling:201765us
sse: resampling:101587us

bicubic:
scalar: resampling:208377us
sse: resampling:146082us

lanczos2:
scalar: resampling:201786us
sse: resampling:142049us

lanczos3:
scalar: resampling:467366us
sse: resampling:333680us
Merge remote-tracking branch 'upstream/master' into filtering
interpolation: some house cleaning

It's been a few weeks i started on interpolation stuff, and the
source code starts to be a bit messy already.

Housecleaning:
 - moved helper functions to the top so they don't clutter
   interesting filtering code
 - moved all debug stuff and compile switches to the top of the
   files so it's easier to experiment with them
 - Tried to remove a few remaining magic numbers, adding defines
   where necessary
 - i think the code is mature enough not to print a warning
   anymore in imageop.c. I call that an info now (yay)