Commit 991385d2 authored by ulrich_y's avatar ulrich_y
Browse files

More polylogarithmic constants

parent 36aec411
......@@ -40,33 +40,57 @@ CONTAINS
!! Dilogarithm for arguments x < = 1.0
real (kind=prec):: X,Y,T,S,A,ZERO,ONE,HALF,MALF,MONE,MTWO
real (kind=prec):: C(0:18),H,ALFA,B0,B1,B2,LI2_OLD
real (kind=prec):: C(0:42),H,ALFA,B0,B1,B2,LI2_OLD
real (kind=prec):: Li2
integer :: i
integer :: i, maxi
DATA ZERO /0.0_prec/, ONE /1.0_prec/
DATA HALF /0.5_prec/, MALF /-0.5_prec/
DATA MONE /-1.0_prec/, MTWO /-2.0_prec/
DATA C( 0) / 0.4299669356081370_prec/
DATA C( 1) / 0.4097598753307711_prec/
DATA C( 2) /-0.0185884366501460_prec/
DATA C( 3) / 0.0014575108406227_prec/
DATA C( 4) /-0.0001430418444234_prec/
DATA C( 5) / 0.0000158841554188_prec/
DATA C( 6) /-0.0000019078495939_prec/
DATA C( 7) / 0.0000002419518085_prec/
DATA C( 8) /-0.0000000319334127_prec/
DATA C( 9) / 0.0000000043454506_prec/
DATA C(10) /-0.0000000006057848_prec/
DATA C(11) / 0.0000000000861210_prec/
DATA C(12) /-0.0000000000124433_prec/
DATA C(13) / 0.0000000000018226_prec/
DATA C(14) /-0.0000000000002701_prec/
DATA C(15) / 0.0000000000000404_prec/
DATA C(16) /-0.0000000000000061_prec/
DATA C(17) / 0.0000000000000009_prec/
DATA C(18) /-0.0000000000000001_prec/
DATA C( 0) / 0.42996693560813697203703367869938799_prec/
DATA C( 1) / 0.40975987533077105846826371092525528_prec/
DATA C( 2) /-0.01858843665014591964764164914021227_prec/
DATA C( 3) / 0.00145751084062267855367392841645949_prec/
DATA C( 4) /-0.00014304184442340048774883012009088_prec/
DATA C( 5) / 0.00001588415541879553236190550471677_prec/
DATA C( 6) /-0.00000190784959386582722719632114209_prec/
DATA C( 7) / 0.00000024195180854164749499461464343_prec/
DATA C( 8) /-0.00000003193341274251783460496014143_prec/
DATA C( 9) / 0.00000000434545062676912298795717848_prec/
DATA C(10) /-0.00000000060578480118407444429705331_prec/
DATA C(11) / 0.00000000008612097799359498244283685_prec/
DATA C(12) /-0.00000000001244331659938867989642421_prec/
DATA C(13) / 0.00000000000182255696235736330065548_prec/
DATA C(14) /-0.00000000000027006766049114651808572_prec/
DATA C(15) / 0.00000000000004042209263152664648833_prec/
DATA C(16) /-0.00000000000000610325145269187950378_prec/
DATA C(17) / 0.00000000000000092862975330195758613_prec/
DATA C(18) /-0.00000000000000014226020855112446840_prec/
DATA C(19) / 0.00000000000000002192631718153957354_prec/
DATA C(20) /-0.00000000000000000339797324215897863_prec/
DATA C(21) / 0.00000000000000000052919542448331471_prec/
DATA C(22) /-0.00000000000000000008278580814278998_prec/
DATA C(23) / 0.00000000000000000001300371734545560_prec/
DATA C(24) /-0.00000000000000000000205022224255282_prec/
DATA C(25) / 0.00000000000000000000032435785491489_prec/
DATA C(26) /-0.00000000000000000000005147799903343_prec/
DATA C(27) / 0.00000000000000000000000819387747717_prec/
DATA C(28) /-0.00000000000000000000000130778354057_prec/
DATA C(29) / 0.00000000000000000000000020925629306_prec/
DATA C(30) /-0.00000000000000000000000003356166151_prec/
DATA C(31) / 0.00000000000000000000000000539465777_prec/
DATA C(32) /-0.00000000000000000000000000086891932_prec/
DATA C(33) / 0.00000000000000000000000000014022817_prec/
DATA C(34) /-0.00000000000000000000000000002267156_prec/
DATA C(35) / 0.00000000000000000000000000000367174_prec/
DATA C(36) /-0.00000000000000000000000000000059562_prec/
DATA C(37) / 0.00000000000000000000000000000009677_prec/
DATA C(38) /-0.00000000000000000000000000000001574_prec/
DATA C(39) / 0.00000000000000000000000000000000257_prec/
DATA C(40) /-0.00000000000000000000000000000000042_prec/
DATA C(41) / 0.00000000000000000000000000000000007_prec/
DATA C(42) /-0.00000000000000000000000000000000001_prec/
if(X > 1.00000000001_prec) then
print*, 'crashes because Li called with bad arguments'
......@@ -115,7 +139,12 @@ CONTAINS
ALFA=H+H
B1=ZERO
B2=ZERO
DO I = 18,0,-1
if (precision(1._prec) < 20) then
maxi = 18
else
maxi = 42
endif
DO I = maxi,0,-1
B0=C(I)+ALFA*B1-B2
B2=B1
B1=B0
......@@ -143,48 +172,105 @@ CONTAINS
! In theory this could also produce Re[Li [x]] for x>1
real (kind=prec):: X,S,A
real (kind=prec):: CA(0:18),HA,ALFAA,BA0,BA1,BA2, YA
real (kind=prec):: CB(0:18),HB,ALFAB,BB0,BB1,BB2, YB
DATA CA(0) / 0.4617293928601208_prec/
DATA CA(1) / 0.4501739958855029_prec/
DATA CA(2) / -0.010912841952292843_prec/
DATA CA(3) / 0.0005932454712725702_prec/
DATA CA(4) / -0.00004479593219266303_prec/
DATA CA(5) / 4.051545785869334e-6_prec/
DATA CA(6) / -4.1095398602619446e-7_prec/
DATA CA(7) / 4.513178777974119e-8_prec/
DATA CA(8) / -5.254661564861129e-9_prec/
DATA CA(9) / 6.398255691618666e-10_prec/
DATA CA(10) / -8.071938105510391e-11_prec/
DATA CA(11) / 1.0480864927082917e-11_prec/
DATA CA(12) / -1.3936328400075057e-12_prec/
DATA CA(13) / 1.8919788723690422e-13_prec/
DATA CA(14) / -2.6097139622039465e-14_prec/
DATA CA(15) / 3.774985548158685e-15_prec/
DATA CA(16) / -5.671361978114946e-16_prec/
DATA CA(17) / 1.1023848202712794e-16_prec/
DATA CA(18) / -5.0940525990875006e-17_prec/
DATA CB(0) / -0.016016180449195803_prec/
DATA CB(1) / -0.5036424400753012_prec/
DATA CB(2) / -0.016150992430500253_prec/
DATA CB(3) / -0.0012440242104245127_prec/
DATA CB(4) / -0.00013757218124463538_prec/
DATA CB(5) / -0.000018563818526041144_prec/
DATA CB(6) / -2.841735345177361e-6_prec/
DATA CB(7) / -4.7459967908588557e-7_prec/
DATA CB(8) / -8.448038544563037e-8_prec/
DATA CB(9) / -1.5787671270014e-8_prec/
DATA CB(10) / -3.0657620579122164e-9_prec/
DATA CB(11) / -6.140791949281482e-10_prec/
DATA CB(12) / -1.2618831590198e-10_prec/
DATA CB(13) / -2.64931268635803e-11_prec/
DATA CB(14) / -5.664711482422879e-12_prec/
DATA CB(15) / -1.2303909436235178e-12_prec/
DATA CB(16) / -2.7089360852246495e-13_prec/
DATA CB(17) / -6.024075373994343e-14_prec/
DATA CB(18) / -1.2894320641440237e-14_prec/
real (kind=prec):: CA(0:52),HA,ALFAA,BA0,BA1,BA2, YA
real (kind=prec):: CB(0:52),HB,ALFAB,BB0,BB1,BB2, YB
DATA CA( 0) / 0.46172939286012092817954516381760016_prec/
DATA CA( 1) / 0.45017399588550288560580364647352070_prec/
DATA CA( 2) /-0.01091284195229295374494914320402658_prec/
DATA CA( 3) / 0.00059324547127243642952756961712713_prec/
DATA CA( 4) /-0.00004479593219280756178998757870776_prec/
DATA CA( 5) / 0.00000405154578580684540984293800468_prec/
DATA CA( 6) /-0.00000041095398606214457668547736075_prec/
DATA CA( 7) / 0.00000004513178770934181970313262557_prec/
DATA CA( 8) /-0.00000000525466158515342604029419927_prec/
DATA CA( 9) / 0.00000000063982547910449452549291936_prec/
DATA CA(10) /-0.00000000008071938839872532971820424_prec/
DATA CA(11) / 0.00000000001048073680087126094928657_prec/
DATA CA(12) /-0.00000000000139365085138335067524094_prec/
DATA CA(13) / 0.00000000000018907205037339730044704_prec/
DATA CA(14) /-0.00000000000002609371657183250621931_prec/
DATA CA(15) / 0.00000000000000365481859219879483309_prec/
DATA CA(16) /-0.00000000000000051855842492271228151_prec/
DATA CA(17) / 0.00000000000000007441491722173878908_prec/
DATA CA(18) /-0.00000000000000001078686838424874221_prec/
DATA CA(19) / 0.00000000000000000157774237809543778_prec/
DATA CA(20) /-0.00000000000000000023264073800573828_prec/
DATA CA(21) / 0.00000000000000000003455457587964154_prec/
DATA CA(22) /-0.00000000000000000000516658458392580_prec/
DATA CA(23) / 0.00000000000000000000077718849383139_prec/
DATA CA(24) /-0.00000000000000000000011755815708807_prec/
DATA CA(25) / 0.00000000000000000000001787262690583_prec/
DATA CA(26) /-0.00000000000000000000000272999302683_prec/
DATA CA(27) / 0.00000000000000000000000041881267359_prec/
DATA CA(28) /-0.00000000000000000000000006451004176_prec/
DATA CA(29) / 0.00000000000000000000000000997383916_prec/
DATA CA(30) /-0.00000000000000000000000000154744603_prec/
DATA CA(31) / 0.00000000000000000000000000024087296_prec/
DATA CA(32) /-0.00000000000000000000000000003760889_prec/
DATA CA(33) / 0.00000000000000000000000000000588900_prec/
DATA CA(34) /-0.00000000000000000000000000000092463_prec/
DATA CA(35) / 0.00000000000000000000000000000014555_prec/
DATA CA(36) /-0.00000000000000000000000000000002297_prec/
DATA CA(37) / 0.00000000000000000000000000000000363_prec/
DATA CA(38) /-0.00000000000000000000000000000000058_prec/
DATA CA(39) / 0.00000000000000000000000000000000009_prec/
DATA CA(40) /-0.00000000000000000000000000000000001_prec/
DATA CB( 0) /-0.01601618044919582873670691984756338_prec/
DATA CB( 1) /-0.50364244007530129181209541016960792_prec/
DATA CB( 2) /-0.01615099243050025888745446951929454_prec/
DATA CB( 3) /-0.00124402421042449361265610524413112_prec/
DATA CB( 4) /-0.00013757218124461673921971996409271_prec/
DATA CB( 5) /-0.00001856381852603773316486795183129_prec/
DATA CB( 6) /-0.00000284173534515440415934505790039_prec/
DATA CB( 7) /-0.00000047459967905789937221638951390_prec/
DATA CB( 8) /-0.00000008448038543781200676091819474_prec/
DATA CB( 9) /-0.00000001578767124043400543246870475_prec/
DATA CB(10) /-0.00000000306576207139903798128889004_prec/
DATA CB(11) /-0.00000000061407921728125845808062189_prec/
DATA CB(12) /-0.00000000012618830243156719690872484_prec/
DATA CB(13) /-0.00000000002649314179819609957126783_prec/
DATA CB(14) /-0.00000000000566470854636425926158812_prec/
DATA CB(15) /-0.00000000000123041115779581117517467_prec/
DATA CB(16) /-0.00000000000027093457836786768143960_prec/
DATA CB(17) /-0.00000000000006038026463383701279197_prec/
DATA CB(18) /-0.00000000000001360008993995749682352_prec/
DATA CB(19) /-0.00000000000000309244740631856875855_prec/
DATA CB(20) /-0.00000000000000070917249609207158220_prec/
DATA CB(21) /-0.00000000000000016388083639226002471_prec/
DATA CB(22) /-0.00000000000000003813464350168994613_prec/
DATA CB(23) /-0.00000000000000000893010739611811656_prec/
DATA CB(24) /-0.00000000000000000210331341599359416_prec/
DATA CB(25) /-0.00000000000000000049802988416537866_prec/
DATA CB(26) /-0.00000000000000000011850292695597351_prec/
DATA CB(27) /-0.00000000000000000002832460494402074_prec/
DATA CB(28) /-0.00000000000000000000679854955943073_prec/
DATA CB(29) /-0.00000000000000000000163816629435900_prec/
DATA CB(30) /-0.00000000000000000000039616291258646_prec/
DATA CB(31) /-0.00000000000000000000009613022139972_prec/
DATA CB(32) /-0.00000000000000000000002340035706102_prec/
DATA CB(33) /-0.00000000000000000000000571315840877_prec/
DATA CB(34) /-0.00000000000000000000000139876183805_prec/
DATA CB(35) /-0.00000000000000000000000034336361321_prec/
DATA CB(36) /-0.00000000000000000000000008449733573_prec/
DATA CB(37) /-0.00000000000000000000000002084253881_prec/
DATA CB(38) /-0.00000000000000000000000000515255292_prec/
DATA CB(39) /-0.00000000000000000000000000127646290_prec/
DATA CB(40) /-0.00000000000000000000000000031685555_prec/
DATA CB(41) /-0.00000000000000000000000000007880228_prec/
DATA CB(42) /-0.00000000000000000000000000001963363_prec/
DATA CB(43) /-0.00000000000000000000000000000490016_prec/
DATA CB(44) /-0.00000000000000000000000000000122499_prec/
DATA CB(45) /-0.00000000000000000000000000000030671_prec/
DATA CB(46) /-0.00000000000000000000000000000007691_prec/
DATA CB(47) /-0.00000000000000000000000000000001931_prec/
DATA CB(48) /-0.00000000000000000000000000000000486_prec/
DATA CB(49) /-0.00000000000000000000000000000000122_prec/
DATA CB(50) /-0.00000000000000000000000000000000031_prec/
DATA CB(51) /-0.00000000000000000000000000000000008_prec/
DATA CB(52) /-0.00000000000000000000000000000000002_prec/
real (kind=prec):: Li3
integer :: i
integer :: i, maxi
if(x > 1.00000000001_prec) then
......@@ -232,7 +318,12 @@ CONTAINS
BA0 = 0. ; BA1=0. ; BA2=0.
BB0 = 0. ; BB1=0. ; BB2=0.
DO I = 18,0,-1
if (precision(1._prec) < 20) then
maxi = 18
else
maxi = 42
endif
DO I = maxi,0,-1
BA0=CA(I)+ALFAA*BA1-BA2 ; BA2=BA1 ; BA1=BA0
BB0=CB(I)+ALFAB*BB1-BB2 ; BB2=BB1 ; BB1=BB0
ENDDO
......
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