You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

199 lines
7.7 KiB

double complex function HPL4at1(n1,n2,n3,n4)
implicit none
integer n1,n2,n3,n4,j
double complex ris,myi,cli4pt5,cli4
double precision pi, zeta2, zeta3,zeta4,ll2
pi=3.1415926535897932385D0
zeta3=1.20205690315959428539973816151d0
zeta2=pi**2/6d0
zeta4=pi**4/90d0
myi = dcmplx(0d0,1d0)
ll2 = dlog(2d0)
cli4pt5 = cli4(dcmplx(0.5d0,0d0))
j=1+(n4+1)*1+(n3+1)*3+(n2+1)*9+(n1+1)*27
ris = dcmplx(0d0,0d0)
if ((j.le.54).or.(j.eq.68)) then
select case (j)
case(1) !-1-1-1-1
ris = ll2**4/24d0
case(2) !-1-1-10
ris = -pi**4/90d0 - (pi**2*ll2**2)/12d0
& + ll2**4/24d0 + cli4pt5 + ll2*zeta3
case(3) !-1-1-11
ris = pi**4/90d0 + (pi**2*ll2**2)/24d0
& - ll2**4/12d0 - cli4pt5
& - (7*ll2*zeta3)/8d0
case(4) !-1-10-1
ris = pi**4/30d0 + (pi**2*ll2**2)/6d0
& - ll2**4/8d0 - 3*cli4pt5
& - (23*ll2*zeta3)/8d0
case(5) !-1-100
ris = pi**4/48d0 + (pi**2*ll2**2)/12d0
& - ll2**4/12d0 - 2*cli4pt5
& - ll2*zeta3
case(6) !-1-101
ris = pi**4/480d0 + (pi**2*ll2**2)/12d0
& - (5*ll2*zeta3)/8d0
case(7) !-1-11-1
ris = -pi**4/30d0 - (pi**2*ll2**2)/8d0
& + ll2**4/12d0 + 3*cli4pt5
& + (11*ll2*zeta3)/4d0
case(8) !-1-110
ris = (-7*pi**4)/288d0 - (pi**2*ll2**2)/24d0
& + ll2**4/12d0 + 2*cli4pt5
& + (13*ll2*zeta3)/8d0
case(9) !-1-111
ris = pi**4/720d0 + ll2**4/24d0
& -(ll2*zeta3)/8d0
case(10) !-10-1-1
ris = -pi**4/30d0 - (pi**2*ll2**2)/8d0
& + ll2**4/8d0 + 3*cli4pt5
& + (11*ll2*zeta3)/4d0
case(11) !-10-10
ris = (-11*pi**4)/288d0 - (pi**2*ll2**2)/6d0
& + ll2**4/6d0 + 4*cli4pt5
& + 2*ll2*zeta3
case(12) !-10-11
ris = (5*pi**4)/144d0 - (pi**2*ll2**2)/12d0
& - ll2**4/6d0 - 4*cli4pt5 - ll2*zeta3
case(13) !-100-1
ris = -pi**4/288d0 + (3*ll2*zeta3)/4d0
case(14) !-1000
ris = (-7*pi**4)/720d0
case(15) !-1001
ris = pi**4/60d0 + (pi**2*ll2**2)/12d0
& - ll2**4/12d0 - 2*cli4pt5
& - (3*ll2*zeta3)/4d0
case(16) !-101-1
ris = (-7*pi**4)/180d0 + (pi**2*ll2**2)/12d0
& + ll2**4/6d0 + 4*cli4pt5
& + (13*ll2*zeta3)/8d0
case(17) !-1010
ris = (-17*pi**4)/480d0 - (pi**2*ll2**2)/6d0
& + ll2**4/6d0 + 4*cli4pt5
& + (3*ll2*zeta3)/2d0
case(18) !-1011
ris = pi**4/288d0 + (pi**2*ll2**2)/24d0
& - ll2**4/24d0 - cli4pt5
& + (ll2*zeta3)/8d0
case(19) !-11-1-1
ris = pi**4/30d0 + (pi**2*ll2**2)/6d0
& - ll2**4/6d0 - 3*cli4pt5
& - (23*ll2*zeta3)/8d0
case(20) !-11-10
ris = pi**4/360d0 + (pi**2*ll2**2)/24d0
& - ll2*zeta3
case(21) !-11-11
ris = pi**4/1440d0 - (pi**2*ll2**2)/24d0
& + ll2**4/24d0 + (ll2*zeta3)/4d0
case(22) !-110-1
ris = (11*pi**4)/240d0 + (pi**2*ll2**2)/8d0
& - ll2**4/6d0 - 4*cli4pt5
& - (13*ll2*zeta3)/4d0
case(23) !-1100
ris = (19*pi**4)/1440d0 - (3*ll2*zeta3)/4d0
case(24) !-1101
ris = (19*pi**4)/1440d0 - (pi**2*ll2**2)/24d0
& - ll2**4/24d0 - cli4pt5
& - (ll2*zeta3)/4d0
case(25) !-111-1
ris = -pi**4/288d0 - (pi**2*ll2**2)/24d0
& + ll2**4/24d0 + (7*ll2*zeta3)/8d0
case(26) !-1110
ris = -pi**4/720d0 - ll2**4/24d0 - cli4pt5
& + (ll2*zeta3)/8d0
case(27) !-1111
ris = cli4pt5
case(28) !0-1-1-1
ris = pi**4/90d0 + (pi**2*ll2**2)/24d0
& - ll2**4/24d0 - cli4pt5
& - (7*ll2*zeta3)/8d0
case(29) !0-1-10
ris = -pi**4/288d0
case(30) !0-1-11
ris = -pi**4/80d0 + (pi**2*ll2**2)/24d0
& + ll2**4/12d0 + 2*cli4pt5
case(31) !0-10-1
ris = (13*pi**4)/288d0 + (pi**2*ll2**2)/6d0
& - ll2**4/6d0 - 4*cli4pt5
& - (7*ll2*zeta3)/2d0
case(32) !0-100
ris = (7*pi**4)/240d0
case(33) !0-101
ris = pi**4/480d0
case(34) !0-11-1
ris = (-7*pi**4)/720d0 - (pi**2*ll2**2)/4d0
& + (21*ll2*zeta3)/8d0
case(35) !0-110
ris = (13*pi**4)/1440d0 + (pi**2*ll2**2)/6d0
& - ll2**4/6d0 - 4*cli4pt5
case(36) !0-111
ris = (-11*pi**4)/720d0 + ll2**4/8d0
& + 3*cli4pt5
case(37) !00-1-1
ris = -pi**4/48d0 - (pi**2*ll2**2)/12d0
& + ll2**4/12d0 + 2*cli4pt5
& + (7*ll2*zeta3)/4d0
case(38) !00-10
ris = (-7*pi**4)/240d0
case(39) !00-11
ris = -pi**4/180d0 - (pi**2*ll2**2)/12d0
& + ll2**4/12d0 + 2*cli4pt5
case(40) !000-1
ris = (7*pi**4)/720d0
case(41) !0000
ris = 0d0
case(42) !0001
ris = pi**4/90d0
case(43) !001-1
ris = (-19*pi**4)/1440d0 + (7*ll2*zeta3)/4d0
case(44) !0010
ris = -pi**4/30d0
case(45) !0011
ris = pi**4/360d0
case(46) !01-1-1
ris = (7*pi**4)/288d0 + (5*pi**2*ll2**2)/24d0
& - ll2**4/12d0 - 2*cli4pt5
& - (21*ll2*zeta3)/8d0
case(47) !01-10
ris = (-11*pi**4)/480d0 - (pi**2*ll2**2)/6d0
& + ll2**4/6d0 + 4*cli4pt5
case(48) !01-11
ris = (7*pi**4)/288d0 - (pi**2*ll2**2)/8d0
& - ll2**4/8d0 - 3*cli4pt5
case(49) !010-1
ris = (71*pi**4)/1440d0 + (pi**2*ll2**2)/6d0
& - ll2**4/6d0 - 4*cli4pt5
& - (7*ll2*zeta3)/2d0
case(50) !0100
ris = pi**4/30d0
case(51) !0101
ris = pi**4/120d0
case(52) !011-1
ris = -pi**4/80d0 + (pi**2*ll2**2)/12d0
& + ll2**4/24d0 + cli4pt5
& + (7*ll2*zeta3)/8d0
case(53) !0110
ris = -pi**4/72d0
case(54) !0111
ris = pi**4/90d0
case(68) !1000
ris = -pi**4/90d0
end select
else
print*, ""
print*, "****************"
print*, "ERROR in HPL4: "
print*, "HPL4(",n1,",",n2,",",n3,",",n4
& ,",1) is divergent!"
print*, "Aborting..."
print*,"****************"
stop
endif
HPL4at1=ris
return
end function