gives the Riemann–Siegel function
.
RiemannSiegelTheta
gives the Riemann–Siegel function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
for real
.
arises in the study of the Riemann zeta function on the critical line. It is closely related to the number of zeros of
for
.
is an analytic function of
except for branch cuts on the imaginary axis running from
to
. - For certain special arguments, RiemannSiegelTheta automatically evaluates to exact values.
- RiemannSiegelTheta can be evaluated to arbitrary numerical precision.
- RiemannSiegelTheta automatically threads over lists.
- RiemannSiegelTheta can be used with Interval and CenteredInterval objects. »
Examples
open all close allBasic Examples (5)
RiemannSiegelTheta[2.]Plot over a subset of the reals:
Plot[RiemannSiegelTheta[t], {t, -50, 50}]Plot over a subset of the complexes:
ComplexPlot3D[RiemannSiegelTheta[z], {z, -1 - I, 1 + I}, PlotLegends -> Automatic]Series expansion at the origin:
Series[RiemannSiegelTheta[x], {x, 0, 3}]Series expansion at Infinity:
Series[RiemannSiegelTheta[x], {x, ∞, 5}]Scope (29)
Numerical Evaluation (6)
RiemannSiegelTheta[.5]N[RiemannSiegelTheta[-14]]N[RiemannSiegelTheta[5 / 4], 50]The precision of the output tracks the precision of the input:
RiemannSiegelTheta[5.21111111111111111111]RiemannSiegelTheta[.5 + .5I]N[RiemannSiegelTheta[4I]]Evaluate efficiently at high precision:
RiemannSiegelTheta[2`100]//TimingRiemannSiegelTheta[12`1000];//TimingCompute worst-case guaranteed intervals using Interval and CenteredInterval objects:
RiemannSiegelTheta[Interval[{1.234, 1.235}]]RiemannSiegelTheta[CenteredInterval[3 / 2, 1 / 100]]Or compute average-case statistical intervals using Around:
RiemannSiegelTheta[ Around[2, 0.01]]Compute the elementwise values of an array:
RiemannSiegelTheta[{{-1.2, 0}, {.1, -1.5}}]Or compute the matrix RiemannSiegelTheta function using MatrixFunction:
MatrixFunction[RiemannSiegelTheta, {{-1.2, 0}, {.1, -1.5}}]//FullSimplifySpecific Values (2)
RiemannSiegelTheta[0]Find the positive minimum of RiemannSiegelTheta[x]:
xmin = x /. FindRoot[D[RiemannSiegelTheta[x], x] == 0, {x, 5}]Plot[RiemannSiegelTheta[x], {x, -30, 30}, Epilog -> Style[Point[{xmin, RiemannSiegelTheta[xmin]}], PointSize[Large], Red]]Visualization (2)
Plot the RiemannSiegelTheta:
Plot[RiemannSiegelTheta[t], {t, -30, 30}]Plot the real part of the RiemannSiegelTheta function:
ComplexContourPlot[Re[RiemannSiegelTheta[z]], {z, -4 - 4I, 4 + 4I}, IconizedObject[«PLotOptions»]]Plot the imaginary part of the RiemannSiegelTheta function:
ComplexContourPlot[Im[RiemannSiegelTheta[z]], {z, -4 - 4I, 4 + 4I}, IconizedObject[«PlotOptions»]]Function Properties (11)
RiemannSiegelTheta is defined for all real values:
FunctionDomain[RiemannSiegelTheta[x], x]FunctionDomain[RiemannSiegelTheta[z], z, Complexes]//SimplifyFunction range of RiemannSiegelTheta:
FunctionRange[RiemannSiegelTheta[x], x, y]RiemannSiegelTheta threads elementwise over lists:
RiemannSiegelTheta[{1.2, 1.5, 1.8}]RiemannSiegelTheta is an analytic function of x:
FunctionAnalytic[RiemannSiegelTheta[x], x]RiemannSiegelTheta is non-increasing in a specific range:
FunctionMonotonicity[{RiemannSiegelTheta[x], 1 < x < 2}, x]RiemannSiegelTheta is not injective:
FunctionInjective[RiemannSiegelTheta[x], x]Plot[{RiemannSiegelTheta[x], 2}, {x, -20, 20}]RiemannSiegelTheta is surjective:
FunctionSurjective[RiemannSiegelTheta[x], x]Plot[{RiemannSiegelTheta[x], 20}, {x, -20, 50}]RiemannSiegelTheta is neither non-negative nor non-positive:
FunctionSign[RiemannSiegelTheta[x], x]RiemannSiegelTheta has no singularities or discontinuities:
FunctionSingularities[RiemannSiegelTheta[x], x]FunctionDiscontinuities[RiemannSiegelTheta[x], x]RiemannSiegelTheta is neither convex nor concave:
FunctionConvexity[RiemannSiegelTheta[x], x]TraditionalForm formatting:
RiemannSiegelTheta[t]//TraditionalFormDifferentiation (3)
First derivative with respect to
:
D[RiemannSiegelTheta[t] , t]Higher derivatives with respect to
:
Table[D[RiemannSiegelTheta[t], {t, k}], {k, 1, 3}]//SimplifyPlot the higher derivatives with respect to
:
Plot[%, {t, -20, 20}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative"}]Formula for the ![]()
derivative with respect to
:
D[RiemannSiegelTheta[t], {t, k}]// FullSimplifySeries Expansions (5)
Find the Taylor expansion using Series:
Series[RiemannSiegelTheta[t], {t, 0, 4}]Plots of the first three approximations around
:
terms = Normal@Table[Series[RiemannSiegelTheta[t], {t, 2, m}], {m, 1, 5, 2}];
Plot[{RiemannSiegelTheta[t], terms}, {t, -10, 10}]Find the series expansion at Infinity:
Series[RiemannSiegelTheta[t], {t, Infinity, 1}]Find the series expansion for an arbitrary symbolic direction
:
Series[RiemannSiegelTheta[t], {t, DirectedInfinity[z], 1}, Assumptions -> t > 0]// FullSimplifyTaylor expansion at a generic point:
Series[RiemannSiegelTheta[t], {t, t0, 2}]// FullSimplifySeries expansion at a singular point:
Series[RiemannSiegelTheta[x], {x, -I / 2, 2}, Assumptions -> x > 0]//FullSimplifyGeneralizations & Extensions (2)
Applications (3)
Plot real and imaginary parts over the complex plane:
{Plot3D[Re[RiemannSiegelTheta[x + I y]], {x, -10, 10}, {y, -10, 10}],
Plot3D[Im[RiemannSiegelTheta[x + I y]], {x, -10, 10}, {y, -10, 10}]}Show interlacing of the roots of Sin[RiemannSiegelTheta[t]] and RiemannSiegelZ[t]:
Plot[{Sin[RiemannSiegelTheta[t]], RiemannSiegelZ[t]}, {t, 0, 80}]Compute Gram points
:
gp[k_] := Block[{t}, t /. FindRoot[RiemannSiegelTheta[t] - Pi k, {t, (1 / 4 + 2 k) Pi / ProductLog[(1 / 8 + k) / E]}]]Show good Gram points, where RiemannSiegelZ changes sign for consecutive points:
Plot[RiemannSiegelZ[t], {t, 0, 40}, Epilog -> {PointSize[0.03], StandardMagenta, Point[Table[{gp[k], RiemannSiegelZ[1.0 gp[k]]}, {k, -1, 6}]], StandardBrown, Point[Table[{Im[ZetaZero[k]], 0}, {k, 1, 6}]]}, PlotLegends -> LineLegend[{StandardMagenta, StandardBrown}, {Text["Gram Point"], Row[{Z, Text[" sign change"]}]}]]
is a bad Gram point, as
does not change sign between
and
:
Plot[RiemannSiegelZ[t], {t, gp[125], gp[127]}, Epilog -> {PointSize[0.03], StandardBrown, Point[Table[{Im[ZetaZero[k]], 0}, {k, 126, 128}]], StandardMagenta, Point[Table[{gp[k], RiemannSiegelZ[1.0 gp[k]]}, {k, 125, 127}]]}, Ticks -> {{282, 283, 284}, {-6, -4, -2, 0}}, PlotLegends -> LineLegend[{StandardMagenta, StandardBrown}, {Text["Gram Point"], Row[{Z, Text[" sign change"]}]}]]Properties & Relations (3)
RiemannSiegelTheta is related to LogGamma:
RiemannSiegelTheta[t] == I / 2LogGamma[1 / 4 - I t / 2] - I / 2LogGamma[1 / 4 + I t / 2] - t Log[π] / 2FullSimplify[%]RiemannSiegelZ can be expressed in terms of RiemannSiegelTheta and Zeta:
RiemannSiegelZ[t] == Exp[I RiemannSiegelTheta[t]]Zeta[(1/2) + I t]FullSimplify[%]Numerically find a root of a transcendental equation:
FindRoot[RiemannSiegelTheta[x] + RiemannSiegelTheta[x + 1] == 1, {x, 20}]Possible Issues (2)
A larger setting for $MaxExtraPrecision might be needed:
N[Im[RiemannSiegelTheta[10 ^ 5 - 10 ^ -50 I]], 20]
Block[{$MaxExtraPrecision = 100}, N[Im[RiemannSiegelTheta[10 ^ 5 - 10 ^ -50 I]], 20]]Machine-number inputs can give high‐precision results:
RiemannSiegelTheta[100 ^ 200.]MachineNumberQ[%]Neat Examples (1)
Riemann surface of RiemannSiegelTheta:
With[{ϵ = 10 ^ -8}, Show[Table[Plot3D[Re[(1/2) (-Log[π]) (x + I y) - (1/2) I (LogGamma[(1/4) + (1/2) I (x + I y)] - LogGamma[(1/4) - (1/2) I (x + I y)] + 2 π I (k1 - k2))], {x, i + ϵ, i + 1 - ϵ}, {y, j + ϵ, j + 1 - ϵ}, Mesh -> False, BoundaryStyle -> None, PlotPoints -> 4, MaxRecursion -> 1, PlotStyle -> {RGBColor[(k1 + 1) / 2, 0, (k2 + 1) / 2]}], {k1, -1, 1}, {k2, -1, 1}, {i, -3, 2}, {j, -3, 2}], BoxRatios -> {1, 1, 1}, PlotRange -> All]]See Also
Tech Notes
Related Guides
Related Links
History
Introduced in 1991 (2.0) | Updated in 2023 (13.3)
Text
Wolfram Research (1991), RiemannSiegelTheta, Wolfram Language function, https://reference.wolfram.com/language/ref/RiemannSiegelTheta.html (updated 2023).
CMS
Wolfram Language. 1991. "RiemannSiegelTheta." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/RiemannSiegelTheta.html.
APA
Wolfram Language. (1991). RiemannSiegelTheta. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RiemannSiegelTheta.html
BibTeX
@misc{reference.wolfram_2026_riemannsiegeltheta, author="Wolfram Research", title="{RiemannSiegelTheta}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/RiemannSiegelTheta.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_riemannsiegeltheta, organization={Wolfram Research}, title={RiemannSiegelTheta}, year={2023}, url={https://reference.wolfram.com/language/ref/RiemannSiegelTheta.html}, note=[Accessed: 12-June-2026]}