Wrappers for the three elliptic functions of PARI

P.pari(z,Omega,pari.fun="ellwp",numerical=TRUE)

Arguments

z

Complex argument

Omega

Half periods

pari.fun

String giving the name of the function passed to PARI. Values of ellwp, ellsigma, and ellzeta, are acceptable here for the Weierstrass \(\wp\) function, the \(\sigma\) function, and the \(\zeta\) function respectively

numerical

Boolean with default TRUE meaning to return the complex value returned by PARI, and FALSE meaning to return the ascii string returned by PARI

Details

This function calls PARI via an R system() call.

Value

Returns an object with the same attributes as z.

Author

Robin K. S. Hankin

Note

Function translates input into, for example, “ellwp([1+1*I,2+3*I],1.111+5.1132*I)” and pipes this string directly into gp.

The PARI system clearly has more powerful syntax than the basic version that I'm using here, but I can't (for example) figure out how to vectorize any of the calls.

Examples

if (FALSE)  #this in a dontrun environment because it requires pari/gp 
z  <- seq(from=1,to=3+2i,len=34)
p <- c(1,1i)
plot(abs(P.pari(z=z,Omega=p) - P(z=z,Omega=p)))
#> Error: object 'z' not found
plot(zeta(z=z,params=parameters(Omega=p))- P.pari(z=z,Omega=c(p),pari.fun="ellzeta"))
#> Error: object 'z' not found

 # \dontrun{}