Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
McMule
handyG
Commits
991385d2
Commit
991385d2
authored
Aug 22, 2019
by
ulrich_y
Browse files
More polylogarithmic constants
parent
36aec411
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
155 additions
and
64 deletions
+155
-64
src/maths_functions.f90
src/maths_functions.f90
+155
-64
No files found.
src/maths_functions.f90
View file @
991385d2
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment