Here are some notes from my program XPCalc - Extra Precision Floating-Point Calculator http://www.oocities.org/hjsmithh/download.html#XPCalc :
Lerch(x, s, a) = LerchPhi(x, s, a), preferred method:
The Lerch(x, s, a) function or Lerch transcendent is
where any term with a + k == 0 is excluded and |x| <= 1.
When a == 1, Polylog(s, x) = x * Lerch(x, s, 1).
When s == 2 and a = 1, Dilog(x) = Polylog(2, x) = x * Lerch(x, 2, 1).
When x == −1 and a == 1/2, Dirichlet Beta(s) = 2^−s * Lerch(−1, s, 1/2).
When x > 0.5, the convergence acceleration technique called Combined Nonlinear–Condensation Transformation (CNCT) is used. When x < −0.5, the delta transform is used to speed convergence.
This function is actually defined by analytic continuation for values less than −1 and the method used to speed convergence will give a result at reduced accuracy for these values. For example:
The correct answer isCommand: Lerch(-5, 2, 1) Lerch: No convergence within the maximum number of iterations = 320 Lerch: Results at iteration 78 had a relative error approximately = 2.57506,44951,20027E-41 (16) [16] Lerch: Iteration = 178 X = 5.49855,82521,21616,58005,11750,30752,53728,89904,73097,61E-1 (48) [56]
that is gotten by increasing the precision to 80 decimal digits.X = 5.49855,82521,21616,58005,11750,30752,53728,89941,25006,55E-1,
LerchT(x, s, a) = LerchPhiT(x, s, a), traditional:
The LerchT(x, s, a) function or Lerch transcendent is
where |x| <= 1 and a != 0, −1, −2, ... .
When a == 1, Polylog(s, x) = x * LerchT(x, s, 1) = x * Lerch(x, s, 1).
When s == 2 and a == 1, Dilog(x) = Polylog(2, x) = x * LerchT(x, 2, 1).
When x == −1 and a == 1/2, Beta(s) = 2^−s * LerchT(−1, s, 1/2).
When x > 0.5, the convergence acceleration technique called Combined Nonlinear–Condensation
Transformation (CNCT) is used. When x < −0.5, the delta transform is used to speed convergence. See:
http://aksenov.freeshell.org/lerchphi/source/lerchphi.c and
http://www.mpi-hd.mpg.de/personalhomes/ulj/jentschura/Documents/lphidoc.pdf .
For example, Lerch(−0.5, 3, −4.5) = 2.32478,91995,91076,87837E−1 and
LerchT(−0.5, 3, −4.5) = −7.24071,26460,61940,35439E−1. The Lerch value
agrees with Mathematica but is not the traditional value.
This function can also get results at a reduced precision for x < −1.
Return to Number Theory, Algorithms, and Real Functions
Return to Harry's Home Page