Skip to content

Commit 232f566

Browse files
author
Chris Geoga
committed
near-int autodiff working, just with slightly less precision with 1e-8
of v=0. But probably ready to merge.
1 parent 0e687a1 commit 232f566

File tree

3 files changed

+253
-36
lines changed

3 files changed

+253
-36
lines changed

src/BesselFunctions/besselk.jl

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -603,35 +603,32 @@ end
603603
)
604604
end
605605

606-
# This is an expansion of the function
607-
#
608-
# f_0(v, x) = (x^v)*gamma(-v) + (x^(-v))*gamma(v)
609-
# = (x^v)*(gamma(-v) + (x^(-2*v))*gamma(v))
610-
#
611-
# around v ∼ 0. As you can see by plugging that second form into Wolfram Alpha
612-
# and getting an expansion back, this is actually a bivariate polynomial in
613-
# (v^2, log(x)). So that's how this is structured.
606+
# This is a version of Temme's proposed f_0 (1975 JCP, see reference above) that
607+
# swaps in a bunch of local expansions for functions that are well-behaved but
608+
# whose standard forms can't be naively evaluated by a computer at the origin.
614609
@inline function f0_local_expansion_v0(v, x)
615-
lx = log(x)
616-
c0 = evalpoly(lx, (-1.1544313298030657, -2.0))
617-
c2 = evalpoly(lx, ( 1.4336878944573288, -1.978111990655945, -0.5772156649015329, -0.3333333333333333))
618-
c4 = evalpoly(lx, (-0.6290784463642211, -1.4584260788225176, -0.23263776388631713, -0.32968533177599085, -0.048101305408461074, -0.016666666666666666))
619-
evalpoly(v*v, (c0,c2,c4))/2
610+
l2dx = log(2/x)
611+
mu = v*l2dx
612+
vv = v*v
613+
sp = evalpoly(vv, (1.0, 1.6449340668482264, 1.8940656589944918, 1.9711021825948702))
614+
g1 = evalpoly(vv, (-0.5772156649015329, 0.04200263503409518, 0.042197734555544306))
615+
g2 = evalpoly(vv, (1.0, -0.6558780715202539, 0.16653861138229145))
616+
sh = evalpoly(mu*mu, (1.0, 0.16666666666666666, 0.008333333333333333, 0.0001984126984126984, 2.7557319223985893e-6))
617+
sp*(g1*cosh(mu) + g2*sh*l2dx)
620618
end
621619

622-
# This function assumes |v| < 1e-6 or 1e-7!
623-
#
624-
# TODO (cg 2023/05/16 18:07): lots of micro-optimizations.
625-
function besselk_power_series_temme_basal(v::V, x::Float64) where{V}
620+
# This function assumes |v|<1e-5!
621+
function besselk_power_series_temme_basal(v::V, x::X) where{V,X}
626622
max_iter = 50
627-
T = promote_type(V,Float64)
623+
T = promote_type(V,X)
628624
z = x/2
629625
zz = z*z
630-
fk = f0_local_expansion_v0(v, x/2)
626+
fk = f0_local_expansion_v0(v,x)
631627
zv = z^v
632628
znv = inv(zv)
633-
gam_1pv = GammaFunctions.gamma_near_1(1+v)
634-
gam_1nv = GammaFunctions.gamma_near_1(1-v)
629+
gam_1_c = (1.0, -0.5772156649015329, 0.9890559953279725, -0.23263776388631713)
630+
gam_1pv = evalpoly(v, gam_1_c)
631+
gam_1nv = evalpoly(-v, gam_1_c)
635632
(pk, qk, _ck, factk, vv) = (znv*gam_1pv/2, zv*gam_1nv/2, one(T), one(T), v*v)
636633
(out_v, out_vp1) = (zero(T), zero(T))
637634
for k in 1:max_iter

test/besselk_enzyme_test.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,31 @@ dbesselkx_dv(v, x) = autodiff(Forward, _v->besselkx_levin(_v, x, Val(30)),
88
dbesselkx_dx(v, x) = autodiff(Forward, _x->besselkx_levin(v, _x, Val(30)),
99
Duplicated, Duplicated(x, 1.0))[2]
1010

11-
#=
1211
dbesselk_ps_dv(v, x) = autodiff(Forward, _v->besselk_power_series(_v, x),
1312
Duplicated, Duplicated(v, 1.0))[2]
1413

1514
dbesselk_ps_dx(v, x) = autodiff(Forward, _x->besselk_power_series(v, _x),
1615
Duplicated, Duplicated(x, 1.0))[2]
17-
=#
1816

1917

2018
for line in eachline("data/besselk/enzyme/besselkx_levin_enzyme_tests.csv")
21-
(v, x, dv, dx) = parse.(Float64, split(line))
22-
test_dv = dbesselkx_dv(v, x)
23-
test_dx = dbesselkx_dx(v, x)
24-
@test isapprox(dv, test_dv, rtol=5e-14)
25-
@test isapprox(dx, test_dx, rtol=5e-14)
19+
(v, x, dv, dx) = parse.(Float64, split(line))
20+
test_dv = dbesselkx_dv(v, x)
21+
test_dx = dbesselkx_dx(v, x)
22+
@test isapprox(dv, test_dv, rtol=5e-14)
23+
@test isapprox(dx, test_dx, rtol=5e-14)
2624
end
2725

28-
#=
2926
for line in eachline("data/besselk/enzyme/besselk_power_series_enzyme_tests.csv")
30-
(v, x, dv, dx) = parse.(Float64, split(line))
31-
test_dv = dbesselk_ps_dv(v, x)
32-
test_dx = dbesselk_ps_dx(v, x)
33-
#@test isapprox(dv, test_dv, rtol=5e-14)
34-
#@test isapprox(dx, test_dx, rtol=5e-14)
35-
27+
(v, x, dv, dx) = parse.(Float64, split(line))
28+
test_dv = dbesselk_ps_dv(v, x)
29+
test_dx = dbesselk_ps_dx(v, x)
30+
if abs(v) <= 1e-8
31+
@test isapprox(dv, test_dv, rtol=1e-7)
32+
@test isapprox(dx, test_dx, rtol=1e-7)
33+
else
34+
@test isapprox(dv, test_dv, rtol=5e-14)
35+
@test isapprox(dx, test_dx, rtol=5e-14)
36+
end
3637
end
37-
=#
3838

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
-1.0e-8 1.0e-5 -5.425186613586617e-6 -99999.99993935639
2+
1.0e-8 1.0e-5 5.425186613586617e-6 -99999.99993935639
3+
0.99999999 1.0e-5 1.162885561219195e6 -9.999998742678802e9
4+
1.0 1.0e-5 1.1628856980944362e6 -1.0000000005564426e10
5+
1.00000001 1.0e-5 1.1628858349696922e6 -1.0000001268450197e10
6+
1.99999999 1.0e-5 2.5257710758016803e11 -3.9999994748457575e15
7+
2.0 1.0e-5 2.5257713960675833e11 -3.999999999999999e15
8+
2.00000001 1.0e-5 2.5257717163335272e11 -4.0000005251543095e15
9+
2.99999999 1.0e-5 1.0503084202282163e17 -2.399999676897455e21
10+
3.0 1.0e-5 1.050308558437662e17 -2.399999999989999e21
11+
3.00000001 1.0e-5 1.0503086966471262e17 -2.4000003230825867e21
12+
-1.0e-8 0.07895684210526316 -9.842689968784812e-8 -12.540480739771382
13+
1.0e-8 0.07895684210526316 9.842689968784812e-8 -12.540480739771382
14+
0.99999999 0.07895684210526316 33.695420311958394 -161.48750833859165
15+
1.0 0.07895684210526316 33.695421405878655 -161.48751419443647
16+
1.00000001 0.07895684210526316 33.69542249979894 -161.48752005028146
17+
1.99999999 0.07895684210526316 1171.1689358673987 -8126.201626601186
18+
2.0 0.07895684210526316 1171.1689807454445 -8126.20196416698
19+
2.00000001 0.07895684210526316 1171.1690256234922 -8126.20230173279
20+
2.99999999 0.07895684210526316 67479.46254161856 -617361.0529533329
21+
3.0 0.07895684210526316 67479.46540958171 -617361.0806609665
22+
3.00000001 0.07895684210526316 67479.46827754499 -617361.1083686013
23+
-1.0e-8 0.1579036842105263 -5.0440863814507895e-8 -6.137827365309258
24+
1.0e-8 0.1579036842105263 5.0440863814507895e-8 -6.137827365309258
25+
0.99999999 0.1579036842105263 12.540534440143462 -40.85089943450172
26+
1.0 0.1579036842105263 12.54053477956886 -40.85090061739761
27+
1.00000001 0.1579036842105263 12.540535118994264 -40.85090180029353
28+
1.99999999 0.1579036842105263 236.5791734885244 -1015.8875645600523
29+
2.0 0.1579036842105263 236.57918101486533 -1015.8875996992039
30+
2.00000001 0.1579036842105263 236.57918854120652 -1015.8876348383567
31+
2.99999999 0.1579036842105263 7015.289705250685 -38564.64939708375
32+
3.0 0.1579036842105263 7015.289956176605 -38564.650860562164
33+
3.00000001 0.1579036842105263 7015.290207102535 -38564.65232404064
34+
-1.0e-8 0.23685052631578948 -3.1868782720708587e-8 -3.9762225988287523
35+
1.0e-8 0.23685052631578948 3.1868782720708587e-8 -3.9762225988287523
36+
0.99999999 0.23685052631578948 6.7226297328406535 -18.380156491460472
37+
1.0 0.23685052631578948 6.722629895414007 -18.380156943173738
38+
1.00000001 0.23685052631578948 6.722630057987364 -18.380157394887007
39+
1.99999999 0.23685052631578948 90.34265078371085 -300.9403452225231
40+
2.0 0.23685052631578948 90.34265332370957 -300.94035440323375
41+
2.00000001 0.23685052631578948 90.34265586370834 -300.94036358394476
42+
2.99999999 0.23685052631578948 1829.4194890184042 -7608.355353997639
43+
3.0 0.23685052631578948 1829.4195473345358 -7608.355611863256
44+
3.00000001 0.23685052631578948 1829.4196056506692 -7608.355869728881
45+
-1.0e-8 0.3157973684210526 -2.2114994884074176e-8 -2.8823485371413677
46+
1.0e-8 0.3157973684210526 2.2114994884074176e-8 -2.8823485371413677
47+
0.99999999 0.3157973684210526 4.197558567860136 -10.45278660893378
48+
1.0 0.3157973684210526 4.197558661407828 -10.452786833125234
49+
1.00000001 0.3157973684210526 4.197558754955521 -10.45278705731669
50+
1.99999999 0.3157973684210526 44.83829015394938 -126.88588429915002
51+
2.0 0.3157973684210526 44.838291300195735 -126.88588780083069
52+
2.00000001 0.3157973684210526 44.83829244644212 -126.88589130251145
53+
2.99999999 0.3157973684210526 696.1385689986124 -2402.9698935262886
54+
3.0 0.3157973684210526 696.1385892902923 -2402.969968050816
55+
3.00000001 0.3157973684210526 696.1386095819729 -2402.970042575346
56+
-1.0e-8 0.3947442105263158 -1.620723523542244e-8 -2.2193650236523337
57+
1.0e-8 0.3947442105263158 1.620723523542244e-8 -2.2193650236523337
58+
0.99999999 0.3947442105263158 2.852736516334018 -6.74838756294082
59+
1.0 0.3947442105263158 2.852736575983206 -6.748387691431661
60+
1.00000001 0.3947442105263158 2.8527366356323944 -6.748387819922504
61+
1.99999999 0.3947442105263158 25.698167798180446 -64.89627569640321
62+
2.0 0.3947442105263158 25.698168405676494 -64.89627734033134
63+
2.00000001 0.3947442105263158 25.698169013172556 -64.89627898425951
64+
2.99999999 0.3947442105263158 325.93288572340526 -981.9087892240608
65+
3.0 0.3947442105263158 325.9328945429319 -981.9088174832733
66+
3.00000001 0.3947442105263158 325.9329033624587 -981.9088457424866
67+
-1.0e-8 0.47369105263157896 -1.2314475707383088e-8 -1.774033510508262
68+
1.0e-8 0.47369105263157896 1.2314475707383088e-8 -1.774033510508262
69+
0.99999999 0.47369105263157896 2.046729861500021 -4.714645320359511
70+
1.0 0.47369105263157896 2.0467299021275345 -4.714645401018907
71+
1.00000001 0.47369105263157896 2.0467299427550483 -4.714645481678303
72+
1.99999999 0.47369105263157896 16.131878813969152 -37.49255892821751
73+
2.0 0.47369105263157896 16.13187917065201 -37.49255980839138
74+
2.00000001 0.47369105263157896 16.131879527334874 -37.49256068856526
75+
2.99999999 0.47369105263157896 173.9880415637526 -472.12327507882605
76+
3.0 0.47369105263157896 173.98804597855303 -472.1232878047734
77+
3.00000001 0.47369105263157896 173.98805039335357 -472.12330053072105
78+
-1.0e-8 0.5526378947368421 -9.601672928833976e-9 -1.4544519301218142
79+
1.0e-8 0.5526378947368421 9.601672928833976e-9 -1.4544519301218142
80+
0.99999999 0.5526378947368421 1.5249033918939678 -3.4745546815205444
81+
1.0 0.5526378947368421 1.5249034208702144 -3.4745547354320725
82+
1.00000001 0.5526378947368421 1.5249034498464606 -3.474554789343601
83+
1.99999999 0.5526378947368421 10.782305438114463 -23.553515241792073
84+
2.0 0.5526378947368421 10.78230566295405 -23.553515757748738
85+
2.00000001 0.5526378947368421 10.782305887793642 -23.55351627370541
86+
2.99999999 0.5526378947368421 101.66642817255257 -253.93184048861562
87+
3.0 0.5526378947368421 101.66643060934518 -253.93184694149514
88+
3.00000001 0.5526378947368421 101.66643304613785 -253.93185339437483
89+
-1.0e-8 0.6315847368421053 -7.633873918032207e-9 -1.2143621871586956
90+
1.0e-8 0.6315847368421053 7.633873918032207e-9 -1.2143621871586956
91+
0.99999999 0.6315847368421053 1.1681623925342115 -2.6605160177707723
92+
1.0 0.6315847368421053 1.1681624139161837 -2.6605160554937326
93+
1.00000001 0.6315847368421053 1.1681624352981559 -2.6605160932166934
94+
1.99999999 0.6315847368421053 7.5445919286506316 -15.727817597972695
95+
2.0 0.6315847368421053 7.544592077976403 -15.727817921131486
96+
2.00000001 0.6315847368421053 7.544592227302177 -15.727818244290283
97+
2.99999999 0.6315847368421053 63.463595195347054 -148.22796810980893
98+
3.0 0.6315847368421053 63.46359664027001 -148.22797167856376
99+
3.00000001 0.6315847368421053 63.463598085193006 -148.22797524731868
100+
-1.0e-8 0.7105315789473684 -6.162808887534923e-9 -1.0278688932014883
101+
1.0e-8 0.7105315789473684 6.162808887534923e-9 -1.0278688932014883
102+
0.99999999 0.7105315789473684 0.9142131788593283 -2.0961968960798703
103+
1.0 0.7105315789473684 0.9142131950562388 -2.0961969234126747
104+
1.00000001 0.7105315789473684 0.9142132112531494 -2.0961969507454796
105+
1.99999999 0.7105315789473684 5.46656083735013 -11.000167187018414
106+
2.0 0.7105315789473684 5.466560940570338 -11.000167399894464
107+
2.00000001 0.7105315789473684 5.466561043790549 -11.000167612770516
108+
2.99999999 0.7105315789473684 41.66099628077927 -92.0925700744845
109+
3.0 0.7105315789473684 41.66099718580828 -92.09257218332277
110+
3.00000001 0.7105315789473684 41.660998090837296 -92.09257429216109
111+
-1.0e-8 0.7894784210526316 -5.036921200254442e-9 -0.8793030336266766
112+
1.0e-8 0.7894784210526316 5.036921200254442e-9 -0.8793030336266766
113+
0.99999999 0.7894784210526316 0.7277034283442436 -1.6882833030691788
114+
1.0 0.7894784210526316 0.7277034408713002 -1.6882833234244718
115+
1.00000001 0.7894784210526316 0.727703453398357 -1.688283343779765
116+
1.99999999 0.7894784210526316 4.071058568734327 -7.977813521160524
117+
2.0 0.7894784210526316 4.071058642376354 -7.977813667062976
118+
2.00000001 0.7894784210526316 4.071058716018381 -7.977813812965431
119+
2.99999999 0.7894784210526316 28.452786844330806 -60.091747774245306
120+
3.0 0.7894784210526316 28.452787436240953 -60.09174908712093
121+
3.00000001 0.7894784210526316 28.452788028151115 -60.091750399996585
122+
-1.0e-8 0.8684252631578947 -4.158803707010707e-9 -0.758601941360789
123+
1.0e-8 0.8684252631578947 4.158803707010707e-9 -0.758601941360789
124+
0.99999999 0.8684252631578947 0.5872819084776745 -1.383547833089991
125+
1.0 0.8684252631578947 0.5872819183316489 -1.3835478485879724
126+
1.00000001 0.8684252631578947 0.5872819281856234 -1.383547864085954
127+
1.99999999 0.8684252631578947 3.099596230982321 -5.956712345615788
128+
2.0 0.8684252631578947 3.0995962848854455 -5.9567124488634535
129+
2.00000001 0.8684252631578947 3.099596338788571 -5.956712552111121
130+
2.99999999 0.8684252631578947 20.06225114629942 -40.791740495677466
131+
3.0 0.8684252631578947 20.06225154720184 -40.791741348178505
132+
3.00000001 0.8684252631578947 20.062251948104265 -40.791742200679565
133+
-1.0e-8 0.9473721052631578 -3.463246204633292e-9 -0.6589920474143592
134+
1.0e-8 0.9473721052631578 3.463246204633292e-9 -0.6589920474143592
135+
0.99999999 0.9473721052631578 0.4794044550011185 -1.1497744148416618
136+
1.0 0.9473721052631578 0.4794044628618897 -1.1497744268580226
137+
1.00000001 0.9473721052631578 0.4794044707226609 -1.1497744388743836
138+
1.99999999 0.9473721052631578 2.403272135336257 -4.554767303366098
139+
2.0 0.9473721052631578 2.4032721756358426 -4.554767378374566
140+
2.00000001 0.9473721052631578 2.403272215935429 -4.554767453383036
141+
2.99999999 0.9473721052631578 14.522289239372824 -28.605321711788374
142+
3.0 0.9473721052631578 14.522289518857836 -28.605322284891624
143+
3.00000001 0.9473721052631578 14.522289798342852 -28.60532285799489
144+
-1.0e-8 1.026318947368421 -2.9051240120769176e-9 -0.5757367066850855
145+
1.0e-8 1.026318947368421 2.9051240120769176e-9 -0.5757367066850855
146+
0.99999999 1.026318947368421 0.395131080099377 -0.9665030122099901
147+
1.0 1.026318947368421 0.39513108644467426 -0.9665030216696985
148+
1.00000001 1.026318947368421 0.3951310927899715 -0.9665030311294068
149+
1.99999999 1.026318947368421 1.8919416422749398 -3.552346459353305
150+
2.0 1.026318947368421 1.8919416729451535 -3.5523465150561577
151+
2.00000001 1.026318947368421 1.8919417036153676 -3.552346570759011
152+
2.99999999 1.026318947368421 10.745439398886303 -20.61205796498971
153+
3.0 1.026318947368421 10.74543959850341 -20.612058361620896
154+
3.00000001 1.026318947368421 10.74543979812052 -20.612058758252086
155+
-1.0e-8 1.1052657894736841 -2.452344035634794e-9 -0.5054178274945208
156+
1.0e-8 1.1052657894736841 2.452344035634794e-9 -0.5054178274945208
157+
0.99999999 1.1052657894736841 0.3283640489068752 -0.8202112554633069
158+
1.0 1.1052657894736841 0.32836405408083497 -0.8202112630070297
159+
1.00000001 1.1052657894736841 0.32836405925479467 -0.8202112705507526
160+
1.99999999 1.1052657894736841 1.508744550712833 -2.8170662281283567
161+
2.0 1.1052657894736841 1.508744574411181 -2.817066270271266
162+
2.00000001 1.1052657894736841 1.5087445981095293 -2.817066312414176
163+
2.99999999 1.1052657894736841 8.100217810600931 -15.198256622790245
164+
3.0 1.1052657894736841 8.10021795614219 -15.198256904142767
165+
3.00000001 1.1052657894736841 8.100218101683451 -15.198257185495295
166+
-1.0e-8 1.1842126315789474 -2.0815492109678238e-9 -0.44550294924928646
167+
1.0e-8 1.1842126315789474 2.0815492109678238e-9 -0.44550294924928646
168+
0.99999999 1.1842126315789474 0.27482815614891276 -0.7016567946560259
169+
1.0 1.1842126315789474 0.27482816040471997 -0.7016568007388112
170+
1.00000001 1.1842126315789474 0.2748281646605272 -0.7016568068215964
171+
1.99999999 1.1842126315789474 1.2165570260953862 -2.2658831318073247
172+
2.0 1.1842126315789474 1.216557044647576 -2.265883164203767
173+
2.00000001 1.1842126315789474 1.216557063199766 -2.2658831966002104
174+
2.99999999 1.1842126315789474 6.204460312818431 -11.42970724247573
175+
3.0 1.1842126315789474 6.20446042083182 -11.429707446326844
176+
3.00000001 1.1842126315789474 6.204460528845212 -11.429707650177964
177+
-1.0e-8 1.2631594736842104 -1.7754031889777355e-9 -0.39407335384831066
178+
1.0e-8 1.2631594736842104 1.7754031889777355e-9 -0.39407335384831066
179+
0.99999999 1.2631594736842104 0.23145496436892718 -0.6043388789726469
180+
1.0 1.2631594736842104 0.2314549678962553 -0.60433888392474
181+
1.00000001 1.2631594736842104 0.23145497142358343 -0.6043388888768331
182+
1.99999999 1.2631594736842104 0.9904185900492432 -1.8449007997287565
183+
2.0 1.2631594736842104 0.9904186047389736 -1.8449008249790515
184+
2.00000001 1.2631594736842104 0.9904186194287041 -1.844900850229347
185+
2.99999999 1.2631594736842104 4.818604018890371 -8.74365800106262
186+
3.0 1.2631594736842104 4.8186041002983355 -8.743658151499659
187+
3.00000001 1.2631594736842104 4.818604181706303 -8.7436583019367
188+
-1.0e-8 1.3421063157894737 -1.520818566887326e-9 -0.34964720694443385
189+
1.0e-8 1.3421063157894737 1.520818566887326e-9 -0.34964720694443385
190+
0.99999999 1.3421063157894737 0.19599733177967094 -0.5235705007250242
191+
1.0 1.3421063157894737 0.19599733472286174 -0.5235705047906077
192+
1.00000001 1.3421063157894737 0.19599733766605257 -0.5235705088561914
193+
1.99999999 1.3421063157894737 0.8131167067232538 -1.5180967197442556
194+
2.0 1.3421063157894737 0.8131167184714848 -1.5180967396635003
195+
2.00000001 1.3421063157894737 0.813116730219716 -1.5180967595827453
196+
2.99999999 1.3421063157894737 3.787851594887129 -6.7893080054234085
197+
3.0 1.3421063157894737 3.7878516570786753 -6.789308118241521
198+
3.00000001 1.3421063157894737 3.787851719270223 -6.789308231059635
199+
-1.0e-8 1.4210531578947367 -1.3077687569951307e-9 -0.31106097679064526
200+
1.0e-8 1.4210531578947367 1.3077687569951307e-9 -0.31106097679064526
201+
0.99999999 1.4210531578947367 0.16678050999491892 -0.4558986509247457
202+
1.0 1.4210531578947367 0.16678051246533562 -0.4558986542873327
203+
1.00000001 1.4210531578947367 0.1667805149357523 -0.4558986576499197
204+
1.99999999 1.4210531578947367 0.6725173929857242 -1.2607697468355756
205+
2.0 1.4210531578947367 0.6725174024649351 -1.2607697627169807
206+
2.00000001 1.4210531578947367 0.6725174119441462 -1.260769778598386
207+
2.99999999 1.4210531578947367 3.0095004968727292 -5.341357345402829
208+
3.0 1.4210531578947367 3.0095005449554715 -5.341357431217093
209+
3.00000001 1.4210531578947367 3.0095005930382146 -5.341357517031358
210+
-1.0e-8 1.5 -1.1284720614977178e-9 -0.2773878004568438
211+
1.0e-8 1.5 1.1284720614977178e-9 -0.2773878004568438
212+
0.99999999 1.5 0.14253703968040865 -0.39873076015258935
213+
1.0 1.5 0.14253704176501716 -0.39873076295208826
214+
1.00000001 1.5 0.14253704384962568 -0.3987307657515872
215+
1.99999999 1.5 0.5598997819202102 -1.0555957386839712
216+
2.0 1.5 0.559899789629148 -1.0555957514657115
217+
2.00000001 1.5 0.5598997973380858 -1.0555957642474523
218+
2.99999999 1.5 2.4138110608791763 -4.251263302105232
219+
3.0 1.5 2.413811098451613 -4.25126336820581
220+
3.00000001 1.5 2.41381113602405 -4.251263434306388

0 commit comments

Comments
 (0)