Theta functions pop up throughout pure and applied mathematics. For example, they’re common in analytic number theory, and they’re solutions to the heat equation.

Theta functions are analogous in some ways to trigonometric functions, and like trigonometric functions they satisfy a lot of identities. This post will comment briefly on an identity that makes a particular theta function, θ_{3}, easy to compute numerically. And because there are identities relating the various theta functions, a method for computing θ_{3} can be used to compute other theta functions.

The function θ_{3} is defined by

where

Here’s a plot of θ_{3} with *t* = 1 + *i*

produced by the following Mathematica code:

q = Exp[Pi I (1 + I)] ComplexPlot3D[EllipticTheta[3, z, q], {z, -1, 8.5 + 4 I}]

An important theorem tells us

This theorem has a lot of interesting consequences, but for our purposes note that the identity has the form

The important thing for numerical purposes is that *t* is on one side and 1/*t* is on the other.

Suppose *t* = *a* + *bi* with *a* > 0 and *b* > 0. Then

Now if *b* is small, |*q*| is near 1, and the series defining θ_{3} converges slowly. But if *b* is large, |*q*| is very small, and the series converges rapidly.

So if *b* is large, use the left side of the theorem above to compute the right. But if *b* is small, use the right side to compute the left.