Commit ff2c22d0 authored by ulrich_y's avatar ulrich_y

Used Dirichlet functions for Li_s[+-I]

parent fc2526f4
...@@ -389,11 +389,6 @@ CONTAINS ...@@ -389,11 +389,6 @@ CONTAINS
call test_one_flat( (/ (0._prec,0.), (1.0_prec,0._prec), (1._prec,0.), (1.1_prec,+0.3_prec) /) , ref, 'F.13') call test_one_flat( (/ (0._prec,0.), (1.0_prec,0._prec), (1._prec,0.), (1.1_prec,+0.3_prec) /) , ref, 'F.13')
! This one converges really slowly!
! TODO
call set_options(liinf=200000)
tol = 2e-9_prec
ref = (-3.028608056170828558746818459366566689807_prec,-0.52999686156911157999452896083600882192_prec) ref = (-3.028608056170828558746818459366566689807_prec,-0.52999686156911157999452896083600882192_prec)
call test_one_flat( (/ (1._prec,0._prec), (0.0_prec,0._prec), (0._prec,1._prec), (1.1_prec,0.0_prec) /) , ref, 'F.14') call test_one_flat( (/ (1._prec,0._prec), (0.0_prec,0._prec), (0._prec,1._prec), (1.1_prec,0.0_prec) /) , ref, 'F.14')
...@@ -403,10 +398,6 @@ CONTAINS ...@@ -403,10 +398,6 @@ CONTAINS
res = G((/ inum(1._prec,-1), izero, inum((0._prec,-1._prec), -1) /), inum(-1.1_prec, +1)) res = G((/ inum(1._prec,-1), izero, inum((0._prec,-1._prec), -1) /), inum(-1.1_prec, +1))
call check(res,ref) call check(res,ref)
call set_options(liinf=1000)
tol = zero * 1.e5_prec
ref = (0.0075181720252360930529649927100295277234_prec,0.009279206321129807482628652573319115651_prec) ref = (0.0075181720252360930529649927100295277234_prec,0.009279206321129807482628652573319115651_prec)
call test_one_flat( (/ (0._prec,0.), (0._prec,0.), (1.0_prec,0._prec), (0.1_prec,-0.1_prec), (0.11_prec,0._prec) /) , ref, 'F.16') call test_one_flat( (/ (0._prec,0.), (0._prec,0.), (1.0_prec,0._prec), (0.1_prec,-0.1_prec), (0.11_prec,0._prec) /) , ref, 'F.16')
......
...@@ -13,6 +13,12 @@ MODULE maths_functions ...@@ -13,6 +13,12 @@ MODULE maths_functions
1.0369277551433699263313654864570341680570809195019_prec, 1.0173430619844491397145179297909205279018174900329_prec, & 1.0369277551433699263313654864570341680570809195019_prec, 1.0173430619844491397145179297909205279018174900329_prec, &
1.0083492773819228268397975498497967595998635605652_prec, 1.0040773561979443393786852385086524652589607906499_prec, & 1.0083492773819228268397975498497967595998635605652_prec, 1.0040773561979443393786852385086524652589607906499_prec, &
1.0020083928260822144178527692324120604856058513949_prec, 1.0009945751278180853371459589003190170060195315645_prec /) 1.0020083928260822144178527692324120604856058513949_prec, 1.0009945751278180853371459589003190170060195315645_prec /)
real(kind=prec), parameter :: DirichletBeta(2:10) = (/ 0.91596559417721901505460351493238411077414937428167_prec, &
0.96894614625936938048363484584691860006954026768391_prec, 0.98894455174110533610842263322837782131586088706273_prec, &
0.99615782807708806400631936863097528151139552938826_prec, 0.99868522221843813544160078786020654967836454612651_prec, &
0.99955450789053990949634654989905898300218848194998_prec, 0.99984999024682965633806705924046378147600743300743_prec, &
0.99994968418722008982135887329384752737274799691796_prec, 0.99998316402619687740554072995833414145685781649717_prec /)
type el type el
complex(kind=prec) :: c complex(kind=prec) :: c
complex(kind=prec) ans complex(kind=prec) ans
...@@ -420,6 +426,10 @@ CONTAINS ...@@ -420,6 +426,10 @@ CONTAINS
res = zeta(m) res = zeta(m)
else if ((m.le.9).and.(abs(x+1._prec).lt.zero)) then else if ((m.le.9).and.(abs(x+1._prec).lt.zero)) then
res = -(1._prec - 2._prec**(1-m))*zeta(m) res = -(1._prec - 2._prec**(1-m))*zeta(m)
else if ((m.le.9).and.(abs(x-i_).lt.zero)) then
res = -(0.5_prec**m - 0.5_prec**(2*m-1)) * zeta(m) + i_*dirichletbeta(m)
else if ((m.le.9).and.(abs(x+i_).lt.zero)) then
res = -(0.5_prec**m - 0.5_prec**(2*m-1)) * zeta(m) - i_*dirichletbeta(m)
else if (abs(x) .gt. 1) then else if (abs(x) .gt. 1) then
inv = 1._prec/x inv = 1._prec/x
res = (-1)**(m-1)*polylog(m,inv) & res = (-1)**(m-1)*polylog(m,inv) &
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment