R: Evaluation of the hypergeometric function using Buhring's...

buhring {hypergeo} | R Documentation

## Evaluation of the hypergeometric function using Buhring's method

### Description

Expansion of the hypergeometric function using the residue theorem; useful for when the primary argument is close to the critical points 0.5+/-i.sqrt(3)/2

### Usage

    hypergeo_buhring(A,B,C,z,z0=1/2,tol=0,maxiter=2000,use11=TRUE)
    buhring_eqn11(n,S,A,B,C,z0=1/2)
    buhring_eqn12(n,S,A,B,C,z0=1/2)
    buhring_eqn5_factors(A,B,C,z,z0=1/2)
    buhring_eqn5_series(S,A,B,C,z,z0=1/2,use11=FALSE,tol=0,maxiter=2000)

### Arguments

`A,B,C` | Parameters (real)
`S` | Parameter taken to be either `A` or `B`
`n` | Term to calculate in `buhring_eqn11()` or `buhring_eqn12()`
`z` | Primary complex argument
`z0` | Centre of circle of non-convergence; series expressed in powers of 1/(z-z0)^n
`tol,maxiter` | tolerance and maximum number of iterations (as in `hypergeo()`)
`use11` | Boolean with default `TRUE` meaning to use `buhring_eqn11()` and `FALSE` meaning to use `buhring_eqn12()`

### Details

The functions are direct transcriptions of Buhring 1987. The basic idea is to expand the hypergeometric function in powers of 1/(z-z0).

Functions `buhring_eqn11()` and `buhring_eqn12()` return the coefficients d(n) given by equations 11 and 12 of Buhring 1987.

The series do not converge satisfactorily near the critical points due to some sort of numerical instability. But they seem to work OK if |z-1/2| is large.

### Note

There is some issue which prevents the series from converging correctly, also sometimes the sequence converges to a demponstrably incorrect value.

### Author(s)

Robin K. S. Hankin

### References

- W. Buhring 1987. “An analytic continuation of the hypergeometric series”, Siam J. Math. Anal. 18(3)

### See Also

`residue`

### Examples

    # should be identical:
    buhring_eqn11(n=0:10,S=1/2,A=1/2,B=1/3,C=pi)
    buhring_eqn12(n=0:10,S=1/2,A=1/2,B=1/3,C=pi)
    # but differ in one element

    a <- hypergeo(1/2,1/3,4,1+8i,maxiter=90)
    b <- hypergeo_buhring(1/2,1/3,4,1+8i,maxiter=90)
    # should be identical but are not

    # following command fails due to numerical instability:
    ## Not run:
    hypergeo_buhring(1/2,1/3,pi,z=1/2 + 1i*sqrt(3)/2)

    ## End(Not run)

[Package hypergeo version 1.2-13 Index]