I see question 1) is answered by section 4 of Steffen's paper - the method works on all data sets, and preserves monotonicity in each interval, which is nice. They also state that method (c) has some serious drawbacks.

Unfortunately paper (b) doesn't reference (a) and so its difficult to tell whether (b) offers any advantage over (a)

On 03/20/2014 11:52 AM, Patrick Alken wrote:
Hi, I'm moving this discussion over to gsl-discuss which is more suited
for development issues.

I have 2 naive questions which you may be able to answer since you've
been working on this code.

1) If the Steffen algorithm is applied to non-monotonic data, will it
still provide a solution or does the method encounter an error?

2) Earlier on the GSL list it was mentioned that there are 3 different
methods for interpolating monotonic data:

(a) M.Steffen, "A simple method for monotonic interpolation in one
dimension", Astron. Astrophys. 239, 443-450 (1990).

(b) H.T.Huynh, "Accurate Monotone Cubic Interpolation", SIAM J. Numer.
Anal. 30, 57-100 (1993).

(c) Fritsch, F. N.; Carlson, R. E., "Monotone Piecewise Cubic
Interpolation", SIAM J. Numer. Anal. 17 (2), 238–246 (1980).

I haven't looked at (c) but it seems that (a) and (b) both use piecewise
cubic polynomials and preserve monotonicity. Do you happen to know if
one method is superior to the other? If one method is significantly
better than the other two it would make more sense to include that one
in GSL.

Patrick

On 03/20/2014 11:37 AM, Jean-François Caron wrote:
Yes, I didn’t bother doing the integration function at the time because I was 
having trouble just compiling.  I will add the integration function, and 
re-write the eval and deriv/deriv2 functions to use Horner’s scheme for the 
polynomials.  I can generate some comparison graphs using fake data like in 
Steffen’s paper, that sounds easy enough.

I’ll look at the interpolation/test.c file and see if I can come up with 
similar tests.

Thanks for offering to help with the integration into GSL itself.  I don’t know 
a lot of the procedures (or even politics sometimes!) involved.

Jean-François

On Mar 20, 2014, at 10:22 , Patrick Alken <[email protected]> wrote:

I did notice you talking about 1.6 in your earlier messages, but assumed it was 
a typo and you meant 1.16, oops.

On 03/20/2014 11:11 AM, Jean-François Caron wrote:
My original problem was that I wanted to add an interpolation type to GSL.  
Specifically I want monotonic cubic-splines following the description in 
Steffen (1990): http://adsabs.harvard.edu/full/1990A%26A...239..443S
I took a quick look at your code earlier and it looks pretty nice. I noticed 
you commented out the _integ function - is this something you could add to make 
it feature complete with the other interpolation types?

It is important to add automated tests for this. Can you look at 
interpolation/test.c and design similar tests for your new method? Also I think 
it would be nice to add a figure to the manual illustrating the differences 
between cubic, akima, and your new steffen method (similar to the figures in 
the Steffen paper). This would help users a lot when trying to decide what 
method to use. Do you happen to have a dataset which shows a nice contrast like 
Figs 1, 3 and 8 from that paper?

When everything is ready I would be happy to add it to GSL, as we are already 
planning to update the interpolation module for the next release. When I find 
some time I want to import the 2D interpolation extension discussed previously, 
and also add Hermite interpolation.

It would be easiest for us if you could clone the GSL git repository and make 
your changes there. You could make a new branch called 'steffen' or something 
and publish it to github, or just send a patch file to me, whichever is easiest.

Patrick

On Mar 19, 2014, at 18:40 , Dave Allured - NOAA Affiliate 
<[email protected]> wrote:
More data.  I tried the same plain build recipe, GSL 1.16 on our test
machine which is at Mac OS 10.9.3.  Got another perfect build, no make
check errors, no PPC-related issues.  Outputs on request, please be
specific.

CC=clang
CFLAGS=-g
./configure --prefix /Users/dallured/Disk/3rd/gsl/1.16.os10.9

mac27:~/Disk/3rd/gsl/1.16.os10.9 57> sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.3
BuildVersion: 13D17

mac27:~/Disk/3rd/gsl/1.16.os10.9/src 36> \
? grep -i '# [a-z]' ../logfiles/make-check.0319a.log | sort | uniq -c
   45 # ERROR: 0
   45 # FAIL:  0
   42 # PASS:  1
    3 # PASS:  2
   45 # SKIP:  0
   42 # TOTAL: 1
    3 # TOTAL: 2
   45 # XFAIL: 0
   45 # XPASS: 0

mac27:~/Disk/3rd/gsl/1.16.os10.9 62> \
? grep -c -i ppc logfiles/*319a*log
logfiles/configure.0319a.os10.9.log:0
logfiles/install.0319a.log:0
logfiles/make-check.0319a.log:0
logfiles/make.0319a.log:0

mac27:~/Disk/3rd/gsl/1.16.os10.9 65> \
? grep -i ppc src/config.h src/config.log src/config.status
src/config.h:/* #undef HAVE_GNUPPC_IEEE_INTERFACE */
src/config.log:HAVE_GNUPPC_IEEE_INTERFACE=''
src/config.status:S["HAVE_GNUPPC_IEEE_INTERFACE"]=""

--Dave

On Wed, Mar 19, 2014 at 5:27 PM, Jean-Francois Caron <[email protected]>
wrote:
Dave is correct, I am using an "i686" 64-bit x86 mac.  For some reason
it is still looking for the PPC mac header file.  The ./configure
stage correctly identifies my system, so it's a bit strange.  Also GSL
installs without errors when I do it from MacPorts, and MacPorts
doesn't seem to do anything other than ./configure && make, from my
reading of the portfile.

When I get back to my Mac, I will look at the NOTES file to see if
anything needs to be done for 10.9.

Jean-François

Reply via email to