gegl:noise-reduction INPLACE implementation is wrong
On my laptop running:
$ make -sC docs clean && make -sC docs |& grep reduction
produces a different docs/operations/images/gegl-noise-reduction.png than running
$ make -sC docs clean && GEGL_THREADS=1 make -sC docs |& grep reduction
The reason is that when a pixel is computed its value is written in-place, but that pixel is part of a neighborhood of pixels to be computed.
Given that a chunk first pixel is the only one to use the original neighborhood, the operation is currently depending on chunk size (and so on thread number).
It is possible to use the same buffer to store each iteration output, it is necessary to store the newly computed value in the top-left neighbor which is not used later.
The OpenCL version instead is wrong because BAIL_CONDITION
is only 'almost inverted' compared to the C version > should become <=.