# WeierstrassP

##### Weierstrass P and related functions

Weierstrass elliptic function and its derivative, Weierstrass sigma function, and the Weierstrass zeta function

- Keywords
- math

##### Usage

```
P(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, give.all.3=FALSE, ...)
Pdash(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, ...)
sigma(z, g=NULL, Omega=NULL, params=NULL, use.theta=TRUE, ...)
zeta(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, ...)
```

##### Arguments

- z
Primary complex argument

- g
Invariants

`g=c(g2,g3)`

. Supply exactly one of (`g`

,`Omega`

,`params`

)- Omega
Half periods

- params
Object with class “

`parameters`

” (typically provided by`parameters()`

)- use.fpp
Boolean, with default

`TRUE`

meaning to calculate \(\wp(z^C)\) where \(z^C\) is congruent to \(z\) in the period lattice. The default means that accuracy is greater for large \(z\) but has the deficiency that slight discontinuities may appear near parallelogram boundaries- give.all.3
Boolean, with default

`FALSE`

meaning to return \(\wp(z)\) and`TRUE`

meaning to return the other forms given in equation 18.10.5, p650. Use`TRUE`

to check for accuracy- use.theta
Boolean, with default

`TRUE`

meaning to use theta function forms, and`FALSE`

meaning to use a Laurent expansion. Usually, the theta function form is faster, but not always- ...
Extra parameters passed to

`theta1()`

and`theta1dash()`

##### Note

In this package, function `sigma()`

is the Weierstrass sigma
function. For the number theoretic divisor function also known as
“sigma”, see `divisor()`

.

##### References

R. K. S. Hankin. *Introducing Elliptic, an R package for
Elliptic and Modular Functions*. Journal of Statistical Software,
Volume 15, Issue 7. February 2006.

##### Examples

```
# NOT RUN {
## Example 8, p666, RHS:
P(z=0.07 + 0.1i,g=c(10,2))
## Example 8, p666, RHS:
P(z=0.1 + 0.03i,g=c(-10,2))
## Right answer!
## Compare the Laurent series, which also gives the Right Answer (tm):
P.laurent(z=0.1 + 0.03i,g=c(-10,2))
## Now a nice little plot of the zeta function:
x <- seq(from=-4,to=4,len=100)
z <- outer(x,1i*x,"+")
view(x,x,limit(zeta(z,c(1+1i,2-3i))),nlevels=6,scheme=1)
#now figure 18.5, top of p643:
p <- parameters(Omega=c(1+0.1i,1+1i))
n <- 40
f <- function(r,i1,i2=1)seq(from=r+1i*i1, to=r+1i*i2,len=n)
g <- function(i,r1,r2=1)seq(from=1i*i+r1,to=1i*i+2,len=n)
solid.lines <-
c(
f(0.1,0.5),NA,
f(0.2,0.4),NA,
f(0.3,0.3),NA,
f(0.4,0.2),NA,
f(0.5,0.0),NA,
f(0.6,0.0),NA,
f(0.7,0.0),NA,
f(0.8,0.0),NA,
f(0.9,0.0),NA,
f(1.0,0.0)
)
dotted.lines <-
c(
g(0.1,0.5),NA,
g(0.2,0.4),NA,
g(0.3,0.3),NA,
g(0.4,0.2),NA,
g(0.5,0.0),NA,
g(0.6,0.0),NA,
g(0.7,0.0),NA,
g(0.8,0.0),NA,
g(0.9,0.0),NA,
g(1.0,0.0),NA
)
plot(P(z=solid.lines,params=p),xlim=c(-4,4),ylim=c(-6,0),type="l",asp=1)
lines(P(z=dotted.lines,params=p),xlim=c(-4,4),ylim=c(-6,0),type="l",lty=2)
# }
```

*Documentation reproduced from package elliptic, version 1.4-0, License: GPL-2*