From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18177 invoked by alias); 20 Mar 2014 18:18:54 -0000 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org Received: (qmail 18163 invoked by uid 89); 20 Mar 2014 18:18:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pb0-f44.google.com Received: from mail-pb0-f44.google.com (HELO mail-pb0-f44.google.com) (209.85.160.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 20 Mar 2014 18:18:51 +0000 Received: by mail-pb0-f44.google.com with SMTP id rp16so1319211pbb.3 for ; Thu, 20 Mar 2014 11:18:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=RZkjbBSwZmBdbBYLxIKMvVvlOJXvMqe/B1upObOzagM=; b=NBFjeL5KDl8iCYIttH8OMEqxlzRR7K8Nv76FFUz1VNaK/LG5VQVadQrfGWESi/2KQb gidMvms+Hvc60VT+3inR33XWQzfFDaDQbVr9DvU8Sb6tCz/MWTUPLnCQ5guUTD8+GC6x QT89lWEI5lCs24YgiXHvm5KdOSCKHoOvOpdJfGHKB+bWj473JQixX+cwcE3tHPw7uVhm dduR+zSuVuBmyIPlSfIxPCTQapB5ldIJ7JDhVEvww9/0PH9jyZb0AgauN5b/64+LGtX/ FJgsYYYzqtv7AJyf5v2l65fQYNujvURyVNW9smrHuSA/ZTmSAeOujKppD80aG/pVDbbZ 9hNg== X-Received: by 10.66.243.131 with SMTP id wy3mr48034920pac.32.1395339529579; Thu, 20 Mar 2014 11:18:49 -0700 (PDT) Received: from dhcp-128-189-77-154.ubcsecure.wireless.ubc.ca (dhcp-128-189-77-154.ubcsecure.wireless.ubc.ca. [128.189.77.154]) by mx.google.com with ESMTPSA id yk4sm5213266pbc.16.2014.03.20.11.18.48 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 20 Mar 2014 11:18:49 -0700 (PDT) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\)) Subject: Re: Compiling & Testing New Interpolation Type From: =?windows-1252?Q?Jean-Fran=E7ois_Caron?= In-Reply-To: <532B2D8E.8090902@colorado.edu> Date: Thu, 20 Mar 2014 18:18:00 -0000 Content-Transfer-Encoding: quoted-printable Message-Id: References: <57ABFACA-CA7C-439D-9695-F136F0142156@phas.ubc.ca> <5328EF5C.5010300@colorado.edu> <0665FACA-1454-4C7C-80B5-30D08E71A1B7@phas.ubc.ca> <5329F67E.7080203@colorado.edu> <532A124B.4090608@colorado.edu> <532A13D0.2050609@colorado.edu> <8EA5CA7B-E4C4-48A0-A9EB-BA77F3F1AC11@phas.ubc.ca> <532B23E3.7050700@colorado.edu> <532B2ACF.1060608@colorado.edu> <532B2D8E.8090902@colorado.edu> To: gsl-discuss@sourceware.org X-SW-Source: 2014-q1/txt/msg00028.txt.bz2 Definitely an advantage of a) is that it is conceptually simple. b) is 44 = pages while a) is only 7. Even if b) is somehow mathematically superior, I= like the idea of understanding the tools that I am using (and being able t= o explain it to my academic supervisor/conference attendees). The MESA astrophysics library (C++ unfortunately) actually includes both ty= pes, and has a little graph to show differences: http://mesa.sourceforge.net/interp_1D.html Actually their graph is confusing, blue is supposed to be a), green b), but= the green curve isn=92t piece-wise monotonic between the data points. I= =92m starting to think maybe Stetten and Huynh mean different things when t= hey say =93monotonic=94. I=92ll try to read Huynh=92s paper to see if they= define what they are trying to do. Steffen is pretty clear about his tech= nique being a for an interpolating function that is monotonic between data = points - i.e. the interpolating function doesn=92t change sign between data= points, and extrema can only occur at said data points.=20=20 Jean-Fran=E7ois On Mar 20, 2014, at 11:03 , Patrick Alken wrot= e: > I see question 1) is answered by section 4 of Steffen's paper - the metho= d works on all data sets, and preserves monotonicity in each interval, whic= h is nice. They also state that method (c) has some serious drawbacks. >=20 > Unfortunately paper (b) doesn't reference (a) and so its difficult to tel= l whether (b) offers any advantage over (a) >=20 > 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. >>=20 >> I have 2 naive questions which you may be able to answer since you've >> been working on this code. >>=20 >> 1) If the Steffen algorithm is applied to non-monotonic data, will it >> still provide a solution or does the method encounter an error? >>=20 >> 2) Earlier on the GSL list it was mentioned that there are 3 different >> methods for interpolating monotonic data: >>=20 >> (a) M.Steffen, "A simple method for monotonic interpolation in one >> dimension", Astron. Astrophys. 239, 443-450 (1990). >>=20 >> (b) H.T.Huynh, "Accurate Monotone Cubic Interpolation", SIAM J. Numer. >> Anal. 30, 57-100 (1993). >>=20 >> (c) Fritsch, F. N.; Carlson, R. E., "Monotone Piecewise Cubic >> Interpolation", SIAM J. Numer. Anal. 17 (2), 238=96246 (1980). >>=20 >> 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. >>=20 >> Patrick >>=20 >> On 03/20/2014 11:37 AM, Jean-Fran=E7ois Caron wrote: >>> Yes, I didn=92t bother doing the integration function at the time becau= se I was having trouble just compiling. I will add the integration functio= n, and re-write the eval and deriv/deriv2 functions to use Horner=92s schem= e for the polynomials. I can generate some comparison graphs using fake da= ta like in Steffen=92s paper, that sounds easy enough. >>>=20 >>> I=92ll look at the interpolation/test.c file and see if I can come up w= ith similar tests. >>>=20 >>> Thanks for offering to help with the integration into GSL itself. I do= n=92t know a lot of the procedures (or even politics sometimes!) involved. >>>=20 >>> Jean-Fran=E7ois >>>=20 >>> On Mar 20, 2014, at 10:22 , Patrick Alken = wrote: >>>=20 >>>> I did notice you talking about 1.6 in your earlier messages, but assum= ed it was a typo and you meant 1.16, oops. >>>>=20 >>>> On 03/20/2014 11:11 AM, Jean-Fran=E7ois Caron wrote: >>>>> My original problem was that I wanted to add an interpolation type to= GSL. Specifically I want monotonic cubic-splines following the descriptio= n 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 n= oticed you commented out the _integ function - is this something you could = add to make it feature complete with the other interpolation types? >>>>=20 >>>> It is important to add automated tests for this. Can you look at inter= polation/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 wh= at method to use. Do you happen to have a dataset which shows a nice contra= st like Figs 1, 3 and 8 from that paper? >>>>=20 >>>> 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. W= hen I find some time I want to import the 2D interpolation extension discus= sed previously, and also add Hermite interpolation. >>>>=20 >>>> It would be easiest for us if you could clone the GSL git repository a= nd 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, which= ever is easiest. >>>>=20 >>>> Patrick >>>>=20 >>>> On Mar 19, 2014, at 18:40 , Dave Allured - NOAA Affiliate 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 ma= ke >>>>>> check errors, no PPC-related issues. Outputs on request, please be >>>>>> specific. >>>>>>=20 >>>>>> CC=3Dclang >>>>>> CFLAGS=3D-g >>>>>> ./configure --prefix /Users/dallured/Disk/3rd/gsl/1.16.os10.9 >>>>>>=20 >>>>>> mac27:~/Disk/3rd/gsl/1.16.os10.9 57> sw_vers >>>>>> ProductName: Mac OS X >>>>>> ProductVersion: 10.9.3 >>>>>> BuildVersion: 13D17 >>>>>>=20 >>>>>> 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 >>>>>>=20 >>>>>> 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 >>>>>>=20 >>>>>> 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=3D'' >>>>>> src/config.status:S["HAVE_GNUPPC_IEEE_INTERFACE"]=3D"" >>>>>>=20 >>>>>> --Dave >>>>>>=20 >>>>>> On Wed, Mar 19, 2014 at 5:27 PM, Jean-Francois Caron >>>>>> wrote: >>>>>>> Dave is correct, I am using an "i686" 64-bit x86 mac. For some rea= son >>>>>>> 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. >>>>>>>=20 >>>>>>> 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. >>>>>>>=20 >>>>>>> Jean-Fran=E7ois >=20