For Lerch(x, s, a) with x.i == 0, s.i == 0, and a.i == 0, use the real Lerch(x.r, s.r, a.r) function.
Here are some notes from my program XCCalc - Extra Precision Floating-Point Complex Calculator http://www.geocities.com/hjsmithh/download.html#XCCalc :
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, 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:
Command: 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]The correct answer is
X = 5.49855,82521,21616,58005,11750,30752,53728,89941,25006,55E-1,that is gotten by increasing the precision to 80 decimal digits.
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 Complex Computations
Return to Harry's Home Page