Re: Numerical calculation of a double sum (Appell's function F4)

*To*: mathgroup at smc.vnet.net*Subject*: [mg75362] Re: Numerical calculation of a double sum (Appell's function F4)*From*: David Bailey <dave at Remove_Thisdbailey.co.uk>*Date*: Thu, 26 Apr 2007 03:37:00 -0400 (EDT)*References*: <f0n8j5$s6s$1@smc.vnet.net>

Markus Huber wrote: > Hello, > > I am working currently with double hypergeometric sums. Unfortunately > the one I need (Appell's F4) is not implemented in M. So I decided to > write my own F4. > I discovered quickly that this a far more complicated task than > expected, which is due to many special cases of the arguments (e.g. > the series can be truncated, transform into another series or have > singularities in Gamma functions; there are also cases where these > singularities cancel). I managed to overcome all those difficulties, > but still I wonder, if there is an easier solution to the following: > > F4 is a double sum. My approach is a simple While loop (ok, it's more > complicated, because cancelling singularities can lead to intermediate > terms that are zero and so you have t think carefully about getting a > quantity that tells you when the desired accuracy is reached). Is > there a function in M that can do double sums numerically and also > checks for convergence? > > I appreciate any help, because this - I would guess - would make the > calculation faster and the code more readable. > > Thanks for any suggestions > > > Markus Huber > > > PS: Don't be misled by the seeming simplicity of Appell's Function F4 > when you look it up. In all probability you will only find the > standard series representation. There are also other representations > with other regions of convergence that exist of 5 single > hypergeometric series. Esp. those I need. > > I will admit to moderate use of While constructs too! Functional constructs are fine when they are neat, but they can be very obscure when they replace a While loop that contains conditionals and other complications! Switching to a functional notation produces big speed gains in some cases, but not always - particularly when the loop you are replacing contains lots of other complexity. If you really need extra speed, you might want to consider compilation. David Bailey http://www.dbaileyconsultancy.co.uk