HurwitzZeta
The Hurwitz zeta function for , continued analytically elsewhere. Provided by @enumeratio/analytic.
Hurwitz zeta functionMathWorldHurwitzZetaFunctionWikidataQ1638777DLMF25.11.E1FungrimHurwitzZeta✓Fungrim entryWolfram LanguageHurwitzZeta!HurwitzZeta(s, a)the Hurwitz zeta function .Typed signatures
| Type | Package | Applies |
|---|---|---|
(complex | infinity, complex | infinity, integer?) -> number | analyticreplaces compute-engine | always |
(complex | infinity, complex | infinity, integer?) -> number | compute-engine | always |
Details
The Hurwitz zeta function (DLMF 25.11.1) generalizes Zeta by shifting the summation index by a parameter ; the series converges for and off the nonpositive reals, and continues analytically elsewhere to a function meromorphic in with a single simple pole at .
- Generalizes the Riemann zeta: , and for a positive integer (so ).
- Nonpositive integer : , a Bernoulli polynomial in -- so and . See BernoulliB.
- Pole at : for every .
- Poles at : the term is singular. (The two-argument Zeta drops that term instead, staying finite there.)
- Numeric evaluation (under N()) is Euler–Maclaurin summation and supports complex and ; it is aligned with Wolfram's . Left of , where those direct terms cancel, near the real axis goes through instead, each from the functional equation.
- That Euler–Maclaurin sum runs in arbitrary precision (as many digits as
ce.precisionasks for, checked against mpmath at 30 and 50 digits) whenever and are both real; a genuinely complex or is correct to the same number of digits internally, but the returned value is still one of compute-engine's own complex numbers, which is a pair of doubles -- so asking N() for 30 or 50 digits of a complex result gives back the same ~15-17 correct digits either way, a ceiling of compute-engine's complex-number representation rather than of this computation. - Certified digits: for exact real and (integers, rationals or decimals), is proven. The Euler–Maclaurin sum runs in ball arithmetic, and its remainder after Bernoulli pairs is bounded by , (Johansson 2015); the d digits are those both ends of the enclosure round to. See N.
Examples
177 more kept as data, checked against the oraclesApplications #
to 40 digits, proven: the Euler–Maclaurin remainder is bounded, and both ends of the enclosure round to these digits
live ↗Properties #
Possible issues #
About
| Examples | 224 |
|---|---|
| Checked against | Wolfram Language 209 agree8 differ2 unevaluatedSageMath 173 agree4 differ6 errorSymPy 208 agree9 differ1 errormpmath 185 agree5 differ6 error |
| Crosswalk | WikipediaMathWorldWikidataDLMFFungrimFungrim entry ×44Wolfram LanguageSageMathSymPympmath |
Implementation
notatioThe Dirichlet series, on the principal branch — written exp(−s·ln(n+a)) so the wildcards arrive in the head's own order. It converges only for Re(s) > 1; everywhere else ζ(s, a) is its analytic continuation, which is what the kernel computes.
typescriptpackages/ce-patches/src/compute-engine/numerics/hurwitz-zeta.tsEuler–Maclaurin in double precision — the fast path, and all a double holds. Asked for more digits than that, N() leaves it: at an integer s ≥ 2 with real a > 0 it takes ζ(n, a) = (−1)ⁿψ⁽ⁿ⁻¹⁾(a)/(n−1)! through compute-engine's PolyGamma, and otherwise (real s ≠ 1, real a > 0) it evaluates the SAME Euler–Maclaurin written as an expression — a finite Sum over Power, Pochhammer and BernoulliB, which compute-engine carries to whatever precision was asked for (packages/symbols/analysis/analytic/src/precise.ts).
wgslpackages/symbols/analysis/analytic/src/shader.ts:zetaWGSLProduces a colour per pixel — complex ζ(s, a), domain-coloured.
wolframpackages/oracle/src/mappings.tsmpmath is correct at negative-integer s where Wolfram's N[] is not; the grid in special-functions.examples.json covers that branch.
sympypackages/oracle/src/mappings.tsmpmath is correct at negative-integer s where Wolfram's N[] is not; the grid in special-functions.examples.json covers that branch.
mpmathpackages/oracle/src/mappings.tsmpmath is correct at negative-integer s where Wolfram's N[] is not; the grid in special-functions.examples.json covers that branch.
sagepackages/oracle/src/mappings.tsmpmath is correct at negative-integer s where Wolfram's N[] is not; the grid in special-functions.examples.json covers that branch.
See also: Zeta, BernoulliB, Gamma, Digamma