From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2903 invoked by alias); 17 Dec 2009 00:44:13 -0000 Received: (qmail 2895 invoked by uid 22791); 17 Dec 2009 00:44:12 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-bw0-f219.google.com (HELO mail-bw0-f219.google.com) (209.85.218.219) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 17 Dec 2009 00:44:07 +0000 Received: by bwz19 with SMTP id 19so1328490bwz.8 for ; Wed, 16 Dec 2009 16:44:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.204.24.130 with SMTP id v2mr990247bkb.33.1261010644191; Wed, 16 Dec 2009 16:44:04 -0800 (PST) In-Reply-To: <87zl5ig7i0.wl%bjg@network-theory.co.uk> References: <4a00655d0908201247g7d7bd9a1t466f4a66f08df4@mail.gmail.com> <4a00655d0911291536t5a11752fp27ab9c274148f822@mail.gmail.com> <4a00655d0911291538y9f29830v984d1a796fdd5d1@mail.gmail.com> <4a00655d0912131549w19638273nb51d723e9ddd9273@mail.gmail.com> <87d42ggnsv.wl%bjg@network-theory.co.uk> <4a00655d0912150931q4b34fd24p94594ed08857254f@mail.gmail.com> <87zl5ig7i0.wl%bjg@network-theory.co.uk> From: Rhys Ulerich Date: Thu, 17 Dec 2009 00:44:00 -0000 Message-ID: <4a00655d0912161643k63868ac4i2577f618f6e2196@mail.gmail.com> Subject: Re: Where a generalized Richardson extrapolation routine would fit in GSL? To: Brian Gough Cc: gsl-discuss@sourceware.org Content-Type: text/plain; charset=ISO-8859-1 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 X-SW-Source: 2009-q4/txt/msg00066.txt.bz2 > Also, are the "exact/normtable" arguments essential or just for > convenience? If they can be computed easily by the user it would be > good to have only a minimal number of arguments in the base function. They're just for convenience. Computing the norms doesn't require difficult coding, but doing it in a storage and efficient way for the vector case requires computing those norms during the extrapolation process. It isn't difficult but it does require some index futzing. > Ideally I'd like to start with a scalar version using normal C arrays, > similar to the gsl_sum functions, for implementation simplicity. For API simplicity? Or simplicity of the underlying implementation? There's just enough to the argument processing and general normtable handling that it's easier to get good test coverage if there's one implementation that does the whole enchilada and then everything else sits as convenience wrappers. That prevents changes to one convenience function from accidentally changing the interface's semantics (especially for the 'k' handling). All that said, I'm happy to make the interface conform. Would you be willing to take draft public API in gsl_extrap.h (inline below) and change the functions and their signatures to resemble what you'd like? That'll save me from needing to update the unit tests and documentation as we iterate to convergence. - Rhys The declarations from that last patch look like: int gsl_extrap_richardson_vector_step( gsl_vector * Ah, const gsl_vector * Aht, double t, double ki); int gsl_extrap_richardson_step( double * Ah, const double * Aht, double t, double ki); int gsl_extrap_richardson_vector( gsl_matrix * A, double t, const gsl_vector * k, gsl_matrix * normtable, const gsl_vector * exact); int gsl_extrap_richardson( gsl_vector * A, double t, const gsl_vector * k, gsl_matrix * normtable, double exact);