Simple Examples

Insert the name of the directory where the downloaded files are located.

SetDirectory[NotebookDirectory[]];

It takes some time to include the following package (probably less than one minute):

<<multipleZeta`

The following are simple examples. hplN represents infinity (for an infinite series).

hplSum[(1/((k^2)(m^2)(k+m))),{k,1,∞},{m,1,∞},hplN]

hplSum[(1/(k(((k+m))^2)(m+(1/2)))),{k,1,∞},{m,k+1,∞},hplN]

%//N

NSum[(1/(k(((k+m))^2)(m+(1/2)))),{k,1,∞},{m,k+1,∞}]

hplSum[(1/((((1+n+k))^2)(1+m+n+k)(m+n+1))),{k,1,∞},{m,1,∞},{n,1,∞},hplN]

This may take a little while:

Timing[
hplSum[(1/((((1+n+k+p))^2)(1+m+n+k+p)(m+n+p+1)(k+p+1))),{k,1,∞},{m,1,∞},{n,1,∞},{p,1,∞},hplN]
]

Divergent Sums

You can also evaluate logarithmically divergent sums.

hplSum[(1/((k+(1/2))(m+k+1))),{k,1,∞},{m,1,k},hplN]

Here, hplSinf = Log[hplN] + EulerGamma +O[(1/hplN)]

Table[Sum[(1/((k+(1/2))(m+k+1))),{k,1,hplN},{m,1,k}],{hplN,{10,20,50,100,200,500,1000}}]//N

((π^2)/12)-4 Log[2]+hplSinf Log[2]+2 ((Log[2])^2)/.hplSinf->Log[{10,20,50,100,200,500,1000}]+EulerGamma//N

These are equal if O[(1/hplN)] terms are ignored.

%-%%

Expamples with Numerators

hplSum[((((-1))^k)/((k+(1/2))(m+k+1))),{k,1,∞},{m,1,k},hplN]

hplSum[((PolyGamma[m])/((m^2)(k^2)(k+m+(1/2)))),{k,1,∞},{m,1,∞},hplN]

hplSum[((projω[2,0,1][k]projω[2,0,1][m])/((((k+m))^2)(((m+(1/2)))^2))),{k,1,∞},{m,1,∞},hplN]

projω[a,b,c][k]={({{(c^k),  if k≡b  (mod a)}, {0 , otherwise}})

More Complicated Cases

hplSum[((((-1))^a)/((m^2)(((k+m+1))^2)a (b^2))),{k,1,∞},{m,1,∞},{a,1,m},{b,1,a-1},hplN]

Here, generalized Multiple Zeta Values “hplZC” appear in the result. hplZC represents a properly nested sum. If (Subscript[c, i])s are zero and N is ∞, it is a Multiple Zeta Value.

hplZC[{(Subscript[a, 1]),(Subscript[a, 2]),(Subscript[a, 3])},N,{(Subscript[b, 1]),(Subscript[b, 2]),(Subscript[b, 3])},{(Subscript[c, 1]),(Subscript[c, 2]),(Subscript[c, 3])}]==(∑_(k=1)^N)(((Subscript[b, 1]^k) )/(((k+(Subscript[c, 1])))^(Subscript[a, 1])))(∑_(m=1)^(-1+k))(((Subscript[b, 2]^k) )/(((m+(Subscript[c, 2])))^(Subscript[a, 2])))(∑_(n=1)^(-1+m))((Subscript[b, 3]^k)/(((n+(Subscript[c, 3])))^(Subscript[a, 3])))

Reductions of hplZC’s with (Subscript[b, i])'s  up to 4th root of unity and up to weight seven are implemented.

nRule={hplZC[{1,5},∞,{-1,-1},{0,0}]->-0.3136193558145647`,hplZC[{1,6},∞,{-1,-I},{0,0}]->0.0029925631906991506` -0.3066657998171398` I,hplZC[{1,6},∞,{-I,1},{0,0}]->-0.3439937538248514`+0.21776942305007047` I,hplZC[{1,1,5},∞,{-1,-1,-I},{0,0,0}]->0.0054919416595112765` +0.27486865689036366` I,hplZC[{1,1,5},∞,{-1,-1,1},{0,0,0}]->-0.2816699505377498`};

%%/.nRule

Next example can be expressed by MZVs with 8th root of unity.

Short[hplSum[(((((-1))^k)(I^m))/((k^2)(((m+n))^2)(n^2))),{k,1,∞},{m,1,∞},{n,k,m},hplN],10]

In this package reduction of MZVs with 8th root of unity is not included.

Sums as Functions of an External Index

The last entry of hplSum is now the external index.

hplSum[(1/((((k+c))^2)(n^2)(k+m+n))),{k,1,∞},{n,1,∞},{m,1,c},c]

res=hplSum[((((-1))^k)/(k(m+k))),{k,1,c},{m,1,c},c]

In the default setting, projω (projector) inside hplZC will not be expanded:
e.g. hplZC[{1,1},N,projω[2,0,i],projω[2,1,1],{0,0}]==(∑_(k=1)^N)((projω[2,0,i][k] )/(k^(Subscript[a, 1])))(∑_(m=1)^(-1+k))((projω[2,1,1][m] )/(m^(Subscript[a, 2]))).
To expand the projectors, use hplExpandProjector, which may result in a larger expression.

res=%//hplExpandProjector

If hplZC is a simple number, you can evaluate explicitly by replacing hplZC by hplZSum.

res/.c->10

%/.hplZC->hplZSum//Expand

Table[Sum[((((-1))^k)/(k(m+k))),{k,1,c},{m,1,c}],{c,1,20}]

Table[res,{c,1,20}]/.hplZC->hplZSum//Expand

%-%%

Evaluation Time

The following example is a somewhat difficult one.
With our laptop computer it takes about 120 seconds.

Timing[
hplSum[((hplZC[{1},6+2 k+2 m+2 n,{1},{0}])/((1+k) (1+m) (5+k+m+2 n) (7+2 k+2 m+2 n))),{k,0,∞},{m,0,∞},{n,0,∞},hplN]
]