HarmonicPolyLog[{a1,a2,…,ak},x]
gives the harmonic polylogarithm
.
HarmonicPolyLog[{a1,a2,…,ak},x, p]
gives the harmonic polylogarithm with base point p.
HarmonicPolyLog[{a1,a2,…,ak},x,{p1,p2,…,pk}]
gives the harmonic polylogarithm with a sequence of base points (p1, p2, …).
HarmonicPolyLog
HarmonicPolyLog[{a1,a2,…,ak},x]
gives the harmonic polylogarithm
.
HarmonicPolyLog[{a1,a2,…,ak},x, p]
gives the harmonic polylogarithm with base point p.
HarmonicPolyLog[{a1,a2,…,ak},x,{p1,p2,…,pk}]
gives the harmonic polylogarithm with a sequence of base points (p1, p2, …).
Details
- HarmonicPolyLog gives depth-
Chen iterated integrals built from the kernels
,
and
, unifying logs and classical polylogarithms. - Let
,
, and
. Then HarmonicPolyLog with letters
is defined, when it converges, as the following iterated integral: -
![TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], x}, HarmonicPolyLog] TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], x}, HarmonicPolyLog]](Files/HarmonicPolyLog.en/2.png)

![TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], {x, ;, , p}}, HarmonicPolyLog] TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], {x, ;, , p}}, HarmonicPolyLog]](Files/HarmonicPolyLog.en/4.png)

![TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], {x, ;, , {{, {{p, _, 1}, ,, , {p, _, 2}, ,, , ..., ,, , {p, _, k}}, }}}}, HarmonicPolyLog] TemplateBox[{TemplateBox[{{{a, _, 1}, ,, {a, _, 2}, ,, ..., ,, , {a, _, k}}}, ImplicitList], {x, ;, , {{, {{p, _, 1}, ,, , {p, _, 2}, ,, , ..., ,, , {p, _, k}}, }}}}, HarmonicPolyLog]](Files/HarmonicPolyLog.en/7.png)

- For example,
is
. - The following abbreviated notation is used in the first argument: block
is replaced by
and block
is replaced by
, where
denotes a sequence of
zeros. Thus,
is same as
. - The first argument of HarmonicPolyLog[{a1, a1, … ak}, x] is the word, and
are the letters (or weights). x is the endpoint. - The defining iterated integral of
(assuming
are any of
,
and
) diverges in the following three conditions: -
Lower-endpoint collision 
Upper-endpoint collision 
Letter crossing (pole on the path) at least one of
lies on the open segment 
- The following measures are taken in the divergent cases:
-
Lower-endpoint collision returns a regularized value using shuffle relations Upper-endpoint collision returns ComplexInfinity Letter crossing (pole on the path) returns values obtained by analytic continuation, using infinitesimal circular detours around the poles - HarmonicPolyLog is a mathematical function, suitable for both symbolic and numerical manipulation.
- The function supports numerical evaluation of the following types:
-
machine precision N Yes arbitrary precision N Yes worst-case intervals CenteredInterval No average-case intervals Around No - The following are reductions of HarmonicPolyLog for the basic letters:
-
HarmonicPolyLog[{}, x]=1 HarmonicPolyLog[{0}, x]=Log[x] HarmonicPolyLog[{1}, x]=-Log[1-x] HarmonicPolyLog[{-1}, x]=Log[1+x] - Products at the same endpoint satisfy the shuffle algebra:
, where
denotes all interleavings preserving the internal orders of
and
. - While MultiplePolyLog is the generalization of the series definition of PolyLog, HarmonicPolyLog represents a generalization of the integral definition of PolyLog.
- Sum, GeneratingFunction, ExponentialGeneratingFunction, ZTransform, DirichletTransform, Integrate, DSolve and AsymptoticDSolveValue may return results in terms of HarmonicPolyLog.
Examples
open all close allBasic Examples (5)
HarmonicPolyLog[{-1, 0, 1}, 1]Integrate[(1/x1 x2 (1 + x3) x4(1 - x5)), {x1, 0, (1/2)}, {x2, 0, x1}, {x3, 0, x2}, {x4, 0, x3}, {x5, 0, x4}]Plot over a subset of the reals:
Plot[HarmonicPolyLog[{-1, 0, 0, 1}, x], {x, -1 / 2, 1 / 2}]Plot over a subset of complexes:
ComplexPlot3D[HarmonicPolyLog[{-1, 1, -1}, x], {x, -1 / 2 - I / 2, 1 / 2 + I / 2}, PlotPoints -> 10]Series expansion at the origin:
Series[HarmonicPolyLog[{-1, 1}, x], {x, 0, 10}]Scope (17)
Numerical Evaluation (2)
Specific Values (4)
A single zero letter reproduces the principal logarithm:
HarmonicPolyLog[{0}, 10]Word composed of three letters:
HarmonicPolyLog[{-1, -1, 1}, 1 / 2]Word composed of five letters:
HarmonicPolyLog[{0, -1, 1, 1, 1}, 1]Evaluate at a complex endpoint:
HarmonicPolyLog[{-1, -1, 1}, 2 - 4I]Visualization (6)
Plot the real and imaginary parts of a depth-2 HarmonicPolyLog along the real axis:
ReImPlot[HarmonicPolyLog[{-1, 1}, x], {x, -1, 1}]Evaluate the same HarmonicPolyLog along the slanted segment
:
pathPlot = Graphics[{Thick, Arrowheads[.15], Arrow[{{0, 0}, {1, 1}}]}, ...];
ReImPlot[GeneralizedPolyLog[{-1, 1}, (1 + I) x], {x, 0, 1}, ...]Trace the HarmonicPolyLog along the circle
:
pathCirclePlot = Graphics[{Circle[{0, 0}, 1 / 2, {-Pi / 2, 3 Pi / 2}] }, ...];
ParametricPlot[ReIm@HarmonicPolyLog[{-1, 1}, (1 / 2) Exp[I t]], {t, 0, 2 Pi}, ...]See the evolution with four different radii:
With[{rs = {.3, .45, .6, .75}}, ParametricPlot[Evaluate@Table[ReIm@HarmonicPolyLog[{-1, 1}, r Exp[I t]], {r, rs}], {t, 0, 2 Pi}, ...]]Check the effect of incrementally adding new symmetric letters:
GraphicsRow[{ParametricPlot[ReIm[HarmonicPolyLog[{1}, (1 / 2)Exp[I t]]], {t, 0, 2Pi}, Rule[...]], ParametricPlot[ReIm[HarmonicPolyLog[{-1, 1}, (1 / 2)Exp[I t]]], {t, 0, 2Pi}, Rule[...]], ParametricPlot[ReIm[HarmonicPolyLog[{-1, -1, 1, 1}, (1 / 2)Exp[I t]]], {t, 0, 2Pi}, Rule[...]],
ParametricPlot[ReIm[HarmonicPolyLog[{-1, -1, -1, 1, 1, 1}, (1 / 2)Exp[I t]]], {t, 0, 2Pi}, Rule[...]]}
]Zero contours of real and imaginary parts of HarmonicPolyLog[{1, -1},z]:
Clear[g];g[z_] := HarmonicPolyLog[{1, -1}, z];
ContourPlot[{Re[g[x + I y]] == 0, Im[g[x + I y]] == 0}, {x, -1 / 2, 1 / 2}, {y, -1 / 2, 1 / 2}, ...]Differentiation (4)
Take derivative w.r.t. the endpoint:
D[HarmonicPolyLog[{1, -1, 0, 0, -1, 0, 0, 1}, x], x]D[HarmonicPolyLog[{1, -1, 0, 0, -1, 0, 0, 1}, x ^ 2], {x, 3}]D[HarmonicPolyLog[{1, -1, 0, 0, -1, 0, 0, 1}, x ^ 3], x]Take derivative of a HarmonicPolyLog having a non-zero basepoint w.r.t. the endpoint:
D[HarmonicPolyLog[{2, 3, 4}, x, I], x]Integration (1)
Indefinite integration involving HarmonicPolyLog:
Integrate[HarmonicPolyLog[{2, 3}, x], x]Definite integration involving HarmonicPolyLog:
Integrate[HarmonicPolyLog[{2, 3}, x], {x, 0, 1}]Generalizations & Extensions (7)
Regularization (3)
Upper-endpoint collision—HarmonicPolyLog diverges when the endpoint coincides with the first letter:
HarmonicPolyLog[{1, 2}, 1]Lower-endpoint collision—trailing zeros in the word cause divergence but can be regularized:
HarmonicPolyLog[{1, 2, 0}, 1 / 2]HarmonicPolyLog[{1, 0, 0}, 1 / 2]With this regularization, one can continue to use the iterated integral definition with Log.
A regularized HarmonicPolyLog:
HarmonicPolyLog[{-1, 0, 0}, x]% /. x -> 1.INIntegrate[(1 / (1 + x))Log[x] ^ 2 / Factorial[2], {x, 0, I}]Analytic continuation (2)
The defining integral for HarmonicPolyLog[{1,-1}, 2] diverges, since the pole at
lies on the open segment
:
Integrate[(1/1 - x1)(1/x2 + 1), {x1, 0, 2}, {x2, 0, x1}]A finite value is obtained by integrating along an infinitesimal circular detour around the pole:
HarmonicPolyLog[{1, -1}, 2]//NVisualize the branch-cut discontinuity of HarmonicPolyLog[{1,-1}, x]:
ReImPlot[HarmonicPolyLog[{1, -1}, x], {x, 0, 2}]Nonzero Base Point (2)
A HarmonicPolyLog with base point I:
HarmonicPolyLog[{1, -1}, 1 / 2, I]Obtain the same from its integral representation:
% == Integrate[(1/(1 - x1)(1 + x2)), {x1, I, 1 / 2}, {x2, I, x1}]A HarmonicPolyLog with a sequence of base points {I, 2 I}:
HarmonicPolyLog[{1, -1}, 1 / 2, {I, 2I}]Obtain the same from its integral representation:
% == Integrate[(1/(1 - x1)(1 + x2)), {x1, I, 1 / 2}, {x2, 2I, x1}]Applications (11)
Euler Sum (3)
Compute an Euler sum involving HarmonicNumber in terms of HarmonicPolyLog:
Underoverscript[∑, n = 1, ∞](HarmonicNumber[4 n, 2]/n^4)Compute an Euler sum involving AlternatingHarmonicNumber in terms of HarmonicPolyLog:
Underoverscript[∑, n = 1, ∞](AlternatingHarmonicNumber[n]^3/n^3)An Euler sum involving a product of a HarmonicNumber and an AlternatingHarmonicNumber:
Underoverscript[∑, n = 1, ∞](HarmonicNumber[n] AlternatingHarmonicNumber[n]/2^n n^2)Generating Function (2)
GeneratingFunction of AlternatingHarmonicNumber is expressed in terms of HarmonicPolyLog:
GeneratingFunction[AlternatingHarmonicNumber[n, 2] ^ 2, n, x]ExponentialGeneratingFunction of products of StirlingS1 and AlternatingHarmonicNumber is expressed in terms of HarmonicPolyLog:
ExponentialGeneratingFunction[StirlingS1[n, 3]AlternatingHarmonicNumber[n, 2], n, x]Discrete Transforms (2)
ZTransform of AlternatingHarmonicNumber is often expressed in terms of HarmonicPolyLog:
ZTransform[AlternatingHarmonicNumber[n, 2] ^ 2, n, z]DirichletTransform of AlternatingHarmonicNumber is often expressed in terms of HarmonicPolyLog:
DirichletTransform[AlternatingHarmonicNumber[n, 2] ^ 3, n, 2]Iterated Integrals (2)
A rational iterated integral is computed in terms of HarmonicPolyLog and GeneralizedPolyLog:
Integrate[(1/x1 (1 + x2) (1 + x3)(1 - x4)(10 - x4)), {x1, 0, 1 / 2}, {x2, 0, x1}, {x3, 0, x2}, {x4, 0, x3}]Short[Integrate[(1/x1 x2(1 + x2)^2 (1 - x3) x4(1 + x5)^2(1 - x6)x7(1 - x8)), {x1, 0, 1}, {x2, 0, x1}, {x3, 0, x2}, {x4, 0, x3}, {x5, 0, x4}, {x6, 0, x5}, {x7, 0, x6}, {x8, 0, x7}], 4]Rational ODE System (2)
Solution of a Fuchsian system of ordinary differential equations is expressed in terms of HarmonicPolyLog:
DSolveValue[{Derivative[1][y1][x] == ((2/-1 + x) + (1/1 + x)) y2[x] + ((3/-1 + x) + (2/1 + x)) y3[x] + ((4/-1 + x) + (3/1 + x)) y4[x], Derivative[1][y2][x] == ((3/-1 + x) + (1/1 + x)) y3[x] + ((4/-1 + x) + (2/1 + x)) y4[x], Derivative[1][y3][x] == ((2/-1 + x) + (1/1 + x)) y4[x], Derivative[1][y4][x] == 0, y1[0] == 1, y2[0] == 1, y3[0] == 1, y4[0] == 1}, {y1[x], y2[x], y3[x], y4[x]}, x]Solution of a perturbative rational ODE system is expressed in terms of HarmonicPolyLog:
AsymptoticDSolveValue[{Derivative[1][y1][x] == ϵ ((3 y1[x]/1 + x) + ((1/-1 + x) + (2/1 + x)) y2[x] + ((2/(-1 + x)^2) + (3/1 + x)) y3[x]), Derivative[1][y2][x] == ϵ (-(4 y1[x]/-1 + x) + ((3/-1 + x) + (2/1 + x)) y3[x]), Derivative[1][y3][x] == 0, y1[0] == 1, y2[0] == 2, y3[0] == 3}, {y1[x], y2[x], y3[x]}, x, {ϵ, 0, 3}]Properties & Relations (10)
HarmonicPolyLog[{}, x]Depth-1 HarmonicPolyLog with letter
reproduces the natural logarithm:
HarmonicPolyLog[{0}, x]Words composed of repeated zeros give rise to powers of Log:
HarmonicPolyLog[{0, 0, 0}, x]A block of zeros followed by a
collapses to a classical polylogarithm:
HarmonicPolyLog[{0, 0, 0, 1}, x]A block of zeros followed by a block of identical
s collapses to a Nielsen polylogarithm:
HarmonicPolyLog[{0, 0, 0, 0, 1, 1}, x]Words over
evaluated at
give MultipleZeta:
HarmonicPolyLog[{0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1}, 1]GeneralizedPolyLog with words over
gives HarmonicPolyLog:
GeneralizedPolyLog[{-1, 0, -1, -1, 0, 0, 1, 1, 0, 1, 1}, 1 / 2]Express Log of polynomial with roots
,
and
as a rational linear combination of HarmonicPolyLog instances (plus a piecewise constant):
logPolynomial = Log[x - x^2 - x^3 + x^4];logPolyAsHPL = ResourceFunction["LogAffineExpand"][logPolynomial, x] /. {
Log[1 + x] :> Inactive[HarmonicPolyLog][{-1}, x], Log[1 - x] :> -Inactive[HarmonicPolyLog][{1}, x], Log[x] :> Inactive[HarmonicPolyLog][{0}, x]
}PossibleZeroQ[Chop[N@Activate[(logPolynomial - logPolyAsHPL) /. x -> 2]]]Similarly for Log of a rational function:
logRational = Log[(1 - x) / (x - x^2 - x^3 + x^4)];logRatAsHPL = ResourceFunction["LogAffineExpand"][logRational, x] /. {
Log[1 + x] :> Inactive[HarmonicPolyLog][{-1}, x], Log[1 - x] :> -Inactive[HarmonicPolyLog][{1}, x], Log[x] :> Inactive[HarmonicPolyLog][{0}, x]}PossibleZeroQ[Chop[N@Activate[(logRational - logRatAsHPL) /. x -> 10]]]HarmonicPolyLog appears as the limit of MultipleHarmonicNumber as the index goes to
:
MultipleHarmonicNumber[Infinity, {3, 2, 1}, {1, -1, 1}]Possible Issues (1)
The letters of a HarmonicPolyLog must be integers:
HarmonicPolyLog[{I, 2I}, x]Related Guides
History
Introduced in 2026 (15.0)
Text
Wolfram Research (2026), HarmonicPolyLog, Wolfram Language function, https://reference.wolfram.com/language/ref/HarmonicPolyLog.html.
CMS
Wolfram Language. 2026. "HarmonicPolyLog." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/HarmonicPolyLog.html.
APA
Wolfram Language. (2026). HarmonicPolyLog. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HarmonicPolyLog.html
BibTeX
@misc{reference.wolfram_2026_harmonicpolylog, author="Wolfram Research", title="{HarmonicPolyLog}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/HarmonicPolyLog.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_harmonicpolylog, organization={Wolfram Research}, title={HarmonicPolyLog}, year={2026}, url={https://reference.wolfram.com/language/ref/HarmonicPolyLog.html}, note=[Accessed: 12-June-2026]}