[ 
https://issues.apache.org/jira/browse/MATH-1166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gilles updated MATH-1166:
-------------------------
    Attachment: MATH-1166.patch

I finally tracked down the bug, thanks to web page that showed a code excerpt 
from the well-known "reference-that-cannot-be-named".

There were actually two bugs:
* one was indeed a transposition of the coefficient matrix,
* the other was that the implementation on Wikipedia was assuming a _one_-pixel 
"delta" between samples.

In the attached patch, I've created new classes:
* {{BicubicInterpolatingFunction}}
* {{BicubicInterpolator}}

The reason is that the fix entailed the failure of the tests in
{{BicubicInterpolatingFunctionTest}} related to the methods providing the 
partial derivatives functionality. A solution could have been to remove those 
but it cannot be done because of backward compatibility.

The {{TricubicSplineInterpolator}} must be deprecated since it is based on the 
buggy code, and the implementation requires the partial derivatives...

A problem remained in that the {{BicubicInterpolator}} needs to estimate the 
derivatives in order to use the {{BicubicInterpolatingFunction}}. This entails 
that, on the border of the sampling range, the interpolation is wrong.  As a 
workaround, the method "isValidPoint" is overridden, and for the "valid" 
points, the interpolation is within a reasonable tolerance.

This is a weak point of the {{BicubicInterpolator}}, but in some cases (as in 
the picture produced by Ajo's code), there could be less artefacts.

Is it OK to commit this patch?
Or do we proceed otherwise?


> BicubicInterpolation may have a bug
> -----------------------------------
>
>                 Key: MATH-1166
>                 URL: https://issues.apache.org/jira/browse/MATH-1166
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Ajo Fod
>         Attachments: Draw.java, MATH-1166.patch, myimage.jpg
>
>
> I plotted a random image with bicubic interpolation hoping to see something 
> like this:
> http://en.wikipedia.org/wiki/Bicubic_interpolation
> ... but instead I got something weird.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to