Function: polylogmult
Section: transcendental
C-Name: polylogmult_interpolate
Prototype: GDGDGp
Help: polylogmult(s,{z},{t=0}): multiple polylogarithm value at integral
 s = [s1,...,sr] with argument z = [z1,...,zr]. If z is omitted, assume
 z = [1,...,1], i.e., multiple zeta value. More generally, return Yamamoto's
 interpolation at t (ordinary multiple polylog at t = 0 and star value at
 t = 1).
Doc: For $s$ a vector of positive integers and $z$ a vector of complex
 numbers of the same length, returns the multiple polylogarithm value (MPV)
 $$\zeta(s_{1},\dots, s_{r}; z_{1},\dots,z_{r})
    = \sum_{n_{1}>\dots>n_{r}>0}
        \prod_{1\le i\le r}z_{i}^{n_{i}}/n_{i}^{s_{i}}.$$
 If $z$ is omitted, assume $z=[1,\dots,1]$, i.e., Multiple Zeta Value.
 More generally, return Yamamoto's interpolation between ordinary multiple
 polylogarithms ($t = 0$) and star polylogarithms ($t = 1$, using the
 condition $n_{1}\ge \dots \ge n_{r} > 0$), evaluated at $t$.

 We must have $|z_{1}\cdots z_{i}|\le1$ for all $i$, and if $s_{1}=1$ we
 must have $z_{1}\ne1$.
 \bprog
 ? 8*polylogmult([2,1],[-1,1]) - zeta(3)
 %1 = 0.E-38
 @eprog\noindent
 \misctitle{Warning} The algorithm used converges when the $z_{i}$ are
 $\pm 1$. It may not converge as some $z_{i} \neq 1$ becomes too close to $1$,
 even at roots of $1$ of moderate order:
 \bprog
 ? polylogmult([2,1], (99+20*I)/101 * [1,1])
  *** polylogmult: sorry, polylogmult in this range is not yet implemented.
 ? polylogmult([2,1], exp(I*Pi/20)* [1,1])
  *** polylogmult: sorry, polylogmult in this range is not yet implemented.
 @eprog\noindent More precisely, if $y_{i} := 1 / (z_{1}\cdots z_{i})$ and
 $$ v := \min_{i < j; y_{i} \neq 1} |(1 - y_{i}) y_{j}| > 1/4$$
 then the algorithm computes the value up to a $2^{-b}$ absolute error
 in $O(k^{2}N)$ operations on floating point numbers of $O(N)$ bits,
 where $k = \sum_{i} s_{i}$ is the weight and $N = b / \log_{2} (4v)$.
Variant: Also available is
  \fun{GEN}{polylogmult}{GEN s, GEN z, long prec} ($t$ is \kbd{NULL}).
