SiegelTheta[Ω,s]
gives the Siegel theta function
with Riemann modular matrix Ω and vector s.
SiegelTheta[{ν1,ν2},Ω,s]
gives the Siegel theta function
with characteristics ν1 and ν2.
SiegelTheta
SiegelTheta[Ω,s]
gives the Siegel theta function
with Riemann modular matrix Ω and vector s.
SiegelTheta[{ν1,ν2},Ω,s]
gives the Siegel theta function
with characteristics ν1 and ν2.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- The matrix Ω must be symmetric, with positive definite imaginary part.
- If Ω is a p×p matrix, the vectors s and v or νi must have length p.
-
, where n ranges over all possible vectors in the p-dimensional integer lattice. -
, where n ranges over all possible vectors in the p-dimensional integer lattice. - SiegelTheta can be evaluated to arbitrary numerical precision.
Examples
open all close allBasic Examples (3)
SiegelTheta[{{I, -1 / 2}, {-1 / 2, I}}, {0.5, 0}]//ChopPlot over a subset of the reals:
Plot[Re[SiegelTheta[{{I, -1 / 2}, {-1 / 2, I}}, {x, 2 x}]], {x, -1, 1}]Plot over a subset of the complexes:
ComplexPlot3D[SiegelTheta[{{I, -1 / 2}, {-1 / 2, I}}, {z, 2 z}], {z, -1 / 2 - I / 2, 1 / 2 + I / 2}, PlotLegends -> Automatic]Scope (7)
Numerical Evaluation (3)
N[SiegelTheta[IdentityMatrix[2] I, {1, 2}]]N[SiegelTheta[{{2, 4}, {4, 2}}, IdentityMatrix[2] I, {1, 2}]]N[SiegelTheta[{{2, 1 / 3}, {4, 2}}IdentityMatrix[2] I, {9, 2}], 20]//ChopThe precision of the output tracks the precision of the input:
SiegelTheta[{{I + 1, -2}, {-2, I + 4}}, {1.2222222222222222222, I + 1}]//ChopEvaluate efficiently at high precision:
SiegelTheta[{{I + 1, -1}, {-1, I + 4}}, {1 / 2, I + 9`100}]//TimingSiegelTheta[{{I + 1, -1}, {-1, I + 4}}, {1 / 3, I + 9`1000}];//Timing//QuietSpecific Values (2)
SiegelTheta[{{I, 0}, {0, I}}, {0, 0}]//N//ChopFind a value of x for which Re[SiegelTheta[{{I,1},{1, I}},{x,x/3}]]=1:
xval = x /. FindRoot[Re[SiegelTheta[{{I, 1}, {1, I}}, {x, x / 3}]] == 1, {x, 0.5}]//QuietPlot[Re[SiegelTheta[{{I, 1}, {1, I}}, {x, x / 3}]], {x, -1, 2}, Epilog -> Style[Point[{xval, Re[SiegelTheta[{{I, 1}, {1, I}}, {xval, xval / 3}]]}], PointSize[Large], Red]]Visualization (2)
Plot the SiegelTheta function for various parameters:
Plot[{Re[SiegelTheta[{{I, 1}, {1, I}}, {x, x / 3}]], Re[SiegelTheta[{{I, 1}, {1, I}}, {x, x / 2}]], Re[SiegelTheta[{{I, 1}, {1, I}}, {x, 2x}]]}, {x, -2, 2}]ComplexContourPlot[Re[SiegelTheta[{{I, 1}, {1, I}}, {z, (z) / 3}]], {z, -1 - I, 1 + I}, Contours -> 20]ComplexContourPlot[Im[SiegelTheta[{{I, 1}, {1, I}}, {z, (z) / 3}]], {z, -1 - I, 1 + I}, Contours -> 20]Generalizations & Extensions (2)
SiegelTheta with characteristics
and
:
SiegelTheta[{{1 / 2, 0}, {0, 1 / 2}}, {{I, 0}, {0, I}}, {0.1 + I, 0}]SiegelTheta with characteristics simplifies symbolically for special arguments:
SiegelTheta[{{0, 0}, {a, b}}, {{I, 1 / 2}, {1 / 2, I}}, {0, 0}]Applications (2)
Plot of the absolute value of SiegelTheta in the complex plane:
Plot3D[Abs[SiegelTheta[{{I, 0.5}, {0.5, I}}, {x, y}]], {x, -1, 1}, {y, -1, 1}]m = {{1 + I, -1 / 2}, {-1 / 2, 1 + I}};
a = {1 / 3, 1 / 4};
b = {1 / 5, 1 / 6};
c = {2 / 5, 1 / 12};
d = {2 / 15, 1 / 3};f[s_] := (SiegelTheta[m, s + a]SiegelTheta[m, s + b]) / (SiegelTheta[m, s + c]SiegelTheta[m, s + d])Plot[Re[f[x I]], {x, -1, 1}]Properties & Relations (2)
In one dimension, SiegelTheta coincides with the EllipticTheta functions:
SiegelTheta[{{0.5 + I}}, {2}]EllipticTheta[3, 2Pi, E ^ ( I * Pi * (0.5 + I))]SiegelTheta satisfies the equations:
m = {{I, 1 / 2}, {1 / 2, I}};
s = {0.5`20, 0.6`20};SiegelTheta[m, -s] == SiegelTheta[m, s]SiegelTheta[m, s + 1] == SiegelTheta[m, s]SiegelTheta[m, s + {1, 2}. m] == E ^ (Pi I(-{1, 2}.m.{1, 2} - 2{1, 2}.s))SiegelTheta[m, s]Possible Issues (2)
SiegelTheta requires a symmetric
matrix:
m = {{I, 1}, {0, 2I}};SiegelTheta[m, {1, 2.}]SiegelTheta[(m + m) / 2, {1, 2.}]Machine precision may be insufficient to obtain a correct answer:
SiegelTheta[{{10^-3 I}}, {0.5}]Use arbitrary precision to check the result:
Block[{$MaxExtraPrecision = 500}, N[SiegelTheta[{{10^-3 I}}, {1 / 2}], 50]]N[EllipticTheta[3, π / 2, Exp[-π 10^-3]], 50]Neat Examples (1)
Visualize deviations from positivity in nested SiegelTheta functions:
ContourPlot[Arg[Nest[SiegelTheta[{{I, Re[#] - Im[#]}, {Re[#] - Im[#], I}}, {Re[#], Im[#]}] &, x + y I, 5]], {x, 0, 1}, {y, 0, 1}]See Also
Related Guides
Related Links
History
Text
Wolfram Research (2007), SiegelTheta, Wolfram Language function, https://reference.wolfram.com/language/ref/SiegelTheta.html.
CMS
Wolfram Language. 2007. "SiegelTheta." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SiegelTheta.html.
APA
Wolfram Language. (2007). SiegelTheta. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SiegelTheta.html
BibTeX
@misc{reference.wolfram_2026_siegeltheta, author="Wolfram Research", title="{SiegelTheta}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/SiegelTheta.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_siegeltheta, organization={Wolfram Research}, title={SiegelTheta}, year={2007}, url={https://reference.wolfram.com/language/ref/SiegelTheta.html}, note=[Accessed: 13-June-2026]}