Current task: —

E-026-inverse-spectral.py

Experiments: E-026 · script updated 08-19-2026

E-026-jacobi.csv — 28.8 KB, updated 08-19-2026

page 1 of 2 · 500/page · 720 rows next →
# akb_kb_k_ref_equalmass
2 4 1 197.530307254222 173.649379509296
3 4 2 142.920955368127 154.870940689342
4 4 3 159.159608989640 152.558598639490
5 4 4 144.022455668149 151.082880817647
6 4 5 156.548640750799 151.153835173503
7 4 6 145.585920694115 150.408574107325
8 4 7 155.010080995189 150.800655720325
9 4 8 146.331852267103 150.184221484501
10 4 9 154.106059611688 150.660945823211
11 4 10 146.847212481937 150.119208928125
12 4 11 153.503608016053 150.565588308964
13 4 12 147.236689899496 149.998940458988
14 4 13 153.077803271965 150.579681534959
15 4 14 147.561302141177 149.955418249943
16 4 15 152.769548598882 150.448607530475
17 4 16 147.843826730131 149.842851162885
18 4 17 152.527070858441 150.412249941959
19 4 18 148.067765758314 149.944859932802
20 4 19 152.282738549189 150.350970520175
21 4 20 148.186496360165 149.809358689339
22 4 21 151.968613289040 150.325557657830
23 4 22 148.170366712007 149.764259384927
24 4 23 151.578261804944 150.163485592146
25 4 24 148.082460423943 149.700021475129
26 4 25 151.230228927273 150.140305184019
27 4 26 148.111519024291 149.778352922767
28 4 27 151.142277384063 150.339771764919
29 4 28 148.468850513843 149.804141795653
30 4 29 151.435452153578 150.181978317316
31 4 30 149.109447075563 149.740543845058
32 4 31 151.824818688064 150.515101980752
33 4 32 149.522481163285 149.859116863211
34 4 33 151.694270265648 150.401058878782
35 4 34 149.233056080052 149.967113953765
36 4 35 150.954683315429 150.564610697627
37 4 36 148.653262876599 149.800664066206
38 4 37 150.382587865188 150.049112555933
39 4 38 148.590899948520 149.347538120978
40 4 39 150.422068906245 149.798927007949
41 4 40 148.874605655641 149.213896453396
42 4 41 150.342088896006 150.025086358902
43 4 42 148.647762885910 149.579430557024
44 4 43 149.796577056800 149.907032192957
45 4 44 148.505015337389 149.412188798960
46 4 45 150.118426703630 150.000186843189
47 4 46 149.629456782234 149.726019760841
48 4 47 151.229890505092 150.223289399056
49 4 48 150.229394920771 149.925059689492
50 4 49 150.592966518133 150.560087115315
51 4 50 149.091919950889 149.706002290859
52 4 51 149.748736424292 150.308722461434
53 4 52 149.626539597213 149.969383040700
54 4 53 151.106786725095 150.417546052758
55 4 54 150.811061982046 150.017235657940
56 4 55 150.781454857945 150.639949201024
57 4 56 149.578107306595 149.865956664285
58 4 57 149.785223521742 150.300969438021
59 4 58 149.830999234287 149.483462685160
60 4 59 150.110507394193 150.103294306684
61 4 60 149.062247569459 149.409057169434
62 4 61 148.292130840627 149.716545121057
63 4 62 148.618338666030 149.307886484324
64 4 63 150.365633987065 149.405886575691
65 4 64 151.628116968142 149.383228569079
66 4 65 150.731642126856 150.381593109253
67 4 66 149.280784452255 149.509713523051
68 4 67 148.765586541387 149.791447559923
69 4 68 149.798391525266 149.234531208944
70 4 69 149.208710365344 149.775963504332
71 4 70 148.310913784071 148.996728722370
72 4 71 148.115284772168 149.158935212180
73 4 72 150.747864536887 148.970032073300
74 4 73 150.782884974706 149.643866191872
75 4 74 149.139673286741 149.344794569733
76 4 75 147.401696368656 149.786838471446
77 4 76 149.961205234711 149.075145068376
78 4 77 149.939258500179 149.463467037017
79 4 78 148.784279731181 149.131720299437
80 4 79 147.873645489141 149.378091255453
81 4 80 150.728402518582 148.303624986731
82 4 81 148.419562885961 149.150907155610
83 4 82 147.202903887681 148.918647130476
84 4 83 149.102816551512 149.413733890072
85 4 84 152.785178985558 149.190898668581
86 4 85 148.733587068306 149.452820723578
87 4 86 149.265367634366 149.049314140517
88 4 87 149.389683924518 149.640900123664
89 4 88 147.003252504312 148.484044427744
90 4 89 145.606520853555 148.601173568042
91 4 90 152.272551801596 148.932982878562
92 4 91 148.782278133893 150.415676956487
93 4 92 149.056867855551 149.244732285562
94 4 93 151.322347179364 150.077936067151
95 4 94 148.813337500304 149.332405607537
96 4 95 148.996210136766 149.792510764858
97 4 96 154.162740665111 149.763038947945
98 4 97 145.395436855707 149.797442139870
99 4 98 151.227785732891 148.872564907715
100 4 99 147.912028877410 149.678629872654
101 4 100 148.533266794330 149.583219335975
102 4 101 153.860712721771 149.565117283384
103 4 102 144.570370829238 147.610200854641
104 4 103 151.685804330612 148.513630225179
105 4 104 142.721988158632 147.782330727179
106 4 105 151.732736713136 149.311167446174
107 4 106 144.862916548629 148.246414258028
108 4 107 149.740241184216 148.722349640908
109 4 108 145.482994771135 148.290404123897
110 4 109 151.949804814859 149.017808826187
111 4 110 149.897338793974 148.898681061802
112 4 111 150.833463784299 149.239324475246
113 4 112 146.014247757534 147.876413768870
114 4 113 149.113768179563 148.473839137308
115 4 114 149.159671586345 148.607912569212
116 4 115 150.197405105777 148.539110685638
117 4 116 146.093191154191 148.245960527610
118 4 117 147.243449919143 147.347497363914
119 4 118 147.400007304747 147.407586835240
120 4 119 148.227412966410 148.446175490143
121 4 120 146.349685442709 147.180248629902
122 4 121 148.618196570176 147.823503608304
123 4 122 148.972880019270 146.845449144392
124 4 123 146.411798432088 147.837247665789
125 4 124 143.313731294286 147.121664120365
126 4 125 146.458065486530 147.125359116748
127 4 126 149.997898247845 147.034649212454
128 4 127 148.923798869090 148.136595450625
129 4 128 147.900589292903 148.112101862902
130 4 129 149.829732887599 149.137576973030
131 4 130 149.307591146871 147.899288507769
132 4 131 146.010847812236 148.160774418724
133 4 132 148.367456904698 148.586374500247
134 4 133 149.763803808789 149.178354653160
135 4 134 147.336644177669 147.536691977835
136 4 135 146.183586564847 148.063647426848
137 4 136 149.898365103719 147.622683721095
138 4 137 146.340958805581 147.195582518384
139 4 138 146.149611006510 146.896913048028
140 4 139 149.159192354517 147.741896438942
141 4 140 148.241991566888 147.333762441447
142 4 141 142.826242816604 146.746057362668
143 4 142 149.045160526920 147.269234225444
144 4 143 148.956010288173 148.135749482460
145 4 144 148.218902547392 146.696499887634
146 4 145 149.038510704691 147.825020747080
147 4 146 147.771401807906 148.001957441020
148 4 147 144.347432984456 148.465496682169
149 4 148 152.924055931527 147.661446779835
150 4 149 145.342217764407 147.501459907696
151 4 150 143.771757370352 146.436527057441
152 4 151 146.794129940707 147.084425541620
153 4 152 145.983720930055 147.264767368648
154 4 153 147.705540046005 149.348284870158
155 4 154 150.329523536755 147.861417133652
156 4 155 141.462214555526 147.411173943170
157 4 156 152.058934725158 147.527004850384
158 4 157 143.600535442475 148.280782183837
159 4 158 150.136022430825 146.912328930846
160 4 159 149.112854567918 146.931257101086
161 4 160 143.872409051243 145.556683942609
162 4 161 150.091949840869 146.257027179207
163 4 162 142.952255629310 145.590399591027
164 4 163 153.544951603445 147.402239739848
165 4 164 140.324677157547 146.154175493209
166 4 165 148.376447480722 146.580387585705
167 4 166 142.941630196749 145.988230557007
168 4 167 149.752490716364 146.924421409720
169 4 168 142.314420469567 146.474898284066
170 4 169 150.086253519152 148.035132707195
171 4 170 148.407496868890 147.269849283541
172 4 171 147.720251052009 146.987948550639
173 4 172 141.854089756380 145.769185944757
174 4 173 147.002988226685 145.493494062238
175 4 174 147.292325643879 145.629206875483
176 4 175 149.020604065745 146.583924031610
177 4 176 145.530579420968 146.363926635888
178 4 177 143.331121247308 146.267987161595
179 4 178 143.457492033994 145.777225801672
180 4 179 147.644508023973 146.587183669616
181 4 180 145.254032643453 145.284995821996
182 4 181 145.773537762570 145.913751693817
183 4 182 149.837892875388 146.370095424146
184 4 183 145.247472656233 146.193424485966
185 4 184 142.445652284865 145.056942998132
186 4 185 146.691544210190 145.991126704702
187 4 186 146.525889242843 145.132284806526
188 4 187 143.685632943163 146.018753895006
189 4 188 148.161300462930 145.534139323844
190 4 189 146.890448493928 147.332625515056
191 4 190 147.615626146484 146.059611677036
192 4 191 141.551637434258 144.947098793086
193 4 192 141.941159913500 143.364858081736
194 4 193 147.099034548573 144.274943308905
195 4 194 145.001442008535 144.831681455246
196 4 195 141.639921389087 144.670390590885
197 4 196 148.770882006100 144.663500397035
198 4 197 141.091633235546 145.156844466448
199 4 198 148.325539675729 145.569401420325
200 4 199 144.630036994079 145.790191884314
201 4 200 144.969743869965 144.887256094320
202 4 201 141.945673305491 145.129717432239
203 4 202 145.807220316234 145.005761350158
204 4 203 151.669145390810 146.344196875781
205 4 204 140.582219128444 143.350113041232
206 4 205 147.613562365243 144.770554133711
207 4 206 144.312183450581 144.434356457498
208 4 207 144.540798629793 143.766802425589
209 4 208 140.634035474472 143.622043499995
210 4 209 146.509175270574 144.862550416520
211 4 210 139.504481323489 143.641704170729
212 4 211 143.696972767986 144.190239442284
213 4 212 144.333662708262 144.427657645165
214 4 213 143.040235711121 144.156447847705
215 4 214 147.571480297030 144.309169477884
216 4 215 147.953954736345 144.954293897109
217 4 216 142.465309771179 143.830465751661
218 4 217 146.868933821572 144.662771390547
219 4 218 144.973011980610 145.075437226318
220 4 219 139.688953483512 143.825945392163
221 4 220 145.559120146849 142.460141580999
222 4 221 141.088679406929 144.571130797703
223 4 222 143.529667480361 143.478961787309
224 4 223 143.603682270034 143.636136405667
225 4 224 140.013291965869 143.723434340724
226 4 225 149.663262303413 145.793065127590
227 4 226 148.530257747621 144.834161650800
228 4 227 136.681174483080 143.529118808317
229 4 228 145.636559728857 142.553052402300
230 4 229 140.211772490232 143.080260190812
231 4 230 149.387679329341 142.998260362907
232 4 231 136.418487552775 143.811608932142
233 4 232 143.094827903043 142.260945376767
234 4 233 145.461308729724 143.959368288784
235 4 234 138.951860639352 142.528808416852
236 4 235 148.097863412901 143.550921690999
237 4 236 138.534520016994 142.029492145915
238 4 237 145.309836723972 143.098424077025
239 4 238 136.616452626698 141.892138268219
240 4 239 149.522015999386 143.792166796420
241 4 240 139.490811042649 142.465830594615
242 8 1 197.468771111236 173.427709942086
243 8 2 142.939325433128 154.901146719008
244 8 3 159.098771037260 152.356428276696
245 8 4 144.049431926167 151.154016376491
246 8 5 156.479616098709 150.979994550904
247 8 6 145.621142756730 150.488452464037
248 8 7 154.935431428196 150.595281111348
249 8 8 146.375065453532 150.252766176149
250 8 9 154.026425818022 150.450606093539
251 8 10 146.897988215984 150.155247618095
252 8 11 153.419405912730 150.377912649122
253 8 12 147.294738418145 150.091813107865
254 8 13 152.989506994595 150.321699118569
255 8 14 147.626586431930 150.083297163258
256 8 15 152.677810620037 150.328153658192
257 8 16 147.916693699603 150.032916351702
258 8 17 152.432855409713 150.252251336399
259 8 18 148.148686144756 149.985808722302
260 8 19 152.186690406648 150.242731188310
261 8 20 148.275172420995 149.999586563387
262 8 21 151.870157064000 150.247511479190
263 8 22 148.264867660898 149.949147792032
264 8 23 151.474886176189 150.169125209479
265 8 24 148.179116376349 149.914251441779
266 8 25 151.118410648379 150.138235273133
267 8 26 148.206849916771 149.873232931096
268 8 27 151.020343561873 150.133278022909
269 8 28 148.563216576359 149.892568810320
270 8 29 151.307677926755 150.143646202478
271 8 30 149.210610838871 149.879394528278
272 8 31 151.702454792445 150.082984642524
273 8 32 149.641351146131 149.809291946846
274 8 33 151.584750752859 150.077740566620
275 8 34 149.369311369864 149.838184276359
276 8 35 150.850489850257 150.111194906639
277 8 36 148.794404042486 149.813391429764
278 8 37 150.272185170260 150.063810564366
279 8 38 148.729603756217 149.702448675628
280 8 39 150.304637897521 149.958527970824
281 8 40 149.013960913117 149.766644019875
282 8 41 150.222083360111 150.020923623654
283 8 42 148.789016288631 149.721037068783
284 8 43 149.671841275567 150.036909593262
285 8 44 148.644262794123 149.760026565057
286 8 45 149.989389096863 149.933416162366
287 8 46 149.774483553617 149.709652017559
288 8 47 151.111981007016 150.033981792233
289 8 48 150.394944630417 149.890288204822
290 8 49 150.491916745997 150.140594585506
291 8 50 149.271343943081 149.859794814624
292 8 51 149.654919749098 150.132695609697
293 8 52 149.816407575954 149.815970534821
294 8 53 151.024622798870 150.046472926738
295 8 54 151.013729301082 149.818694032551
296 8 55 150.705731767269 150.041053165885
297 8 56 149.784703983641 149.900438105479
298 8 57 149.713617144801 150.278551325896
299 8 58 150.043926055784 149.925944269548
300 8 59 150.043133453880 150.060384418138
301 8 60 149.282392285771 149.690154952390
302 8 61 148.249498242826 149.890627561575
303 8 62 148.885632266452 149.615999693912
304 8 63 150.366571692150 149.892111613358
305 8 64 151.890264559921 149.697658706091
306 8 65 150.680766220947 150.040628547885
307 8 66 149.504497833565 149.885417924503
308 8 67 148.734499827814 150.068033761643
309 8 68 150.065052581878 149.826050072161
310 8 69 149.212082796123 150.120127922806
311 8 70 148.636836564809 149.962035104609
312 8 71 148.245945780895 150.094023527695
313 8 72 151.181936746212 149.805838079070
314 8 73 150.892109986940 150.096964995308
315 8 74 149.509972661510 149.835669364820
316 8 75 147.615666042873 150.041524711628
317 8 76 150.540916167282 149.835345008025
318 8 77 150.241978710452 150.177149120284
319 8 78 149.395345518173 149.751287193731
320 8 79 148.392490069712 149.885481158197
321 8 80 151.568170989392 149.778268688213
322 8 81 149.017603459985 150.169251508912
323 8 82 148.377404134322 149.953805012228
324 8 83 150.313768557395 150.113937170511
325 8 84 153.896773276514 149.981715934328
326 8 85 149.243474227103 150.475421577125
327 8 86 150.141081919005 150.024917395838
328 8 87 150.040655610575 150.170309327039
329 8 88 148.261160537516 149.834292349464
330 8 89 147.621029577445 150.161932712306
331 8 90 154.512164109951 149.953750440484
332 8 91 150.025803606988 150.071685112307
333 8 92 150.537433639108 149.715269798276
334 8 93 151.944837588678 150.109575116576
335 8 94 149.200954458640 149.805782466243
336 8 95 149.367401725830 150.026394520116
337 8 96 153.583130047242 149.846551910907
338 8 97 144.643013509933 149.887549668501
339 8 98 151.433868678777 149.739420268869
340 8 99 147.892720603367 150.100741248250
341 8 100 149.354094716011 149.697933552543
342 8 101 153.510637252139 150.091162816722
343 8 102 144.688691154742 149.588992004910
344 8 103 152.333161001914 149.954158075755
345 8 104 144.681851174611 149.896403696062
346 8 105 154.320185299861 150.367891075891
347 8 106 147.720508081449 150.050282981279
348 8 107 152.899291327061 150.194079317146
349 8 108 149.010849747415 149.914737338355
350 8 109 154.214816247383 150.077198439329
351 8 110 149.881722266141 149.839151287334
352 8 111 149.426511624092 149.886858209114
353 8 112 145.874822420745 149.431566366865
354 8 113 149.946368757952 149.737425193624
355 8 114 149.853377475331 149.439011356427
356 8 115 149.855173322962 149.548267376629
357 8 116 146.907297152868 149.336283455767
358 8 117 149.451626865532 149.718585941598
359 8 118 150.386381864822 149.496822321293
360 8 119 150.558758716033 149.951283253999
361 8 120 149.154889346406 150.014235502677
362 8 121 150.805457007856 150.218499345410
363 8 122 149.872471002934 149.748870238685
364 8 123 147.245440020760 150.023931644501
365 8 124 147.541227145629 149.713246404736
366 8 125 151.657834008613 149.757623453266
367 8 126 151.829182525160 149.290311204384
368 8 127 147.256107336312 149.314173107443
369 8 128 146.881234072795 149.208883591531
370 8 129 148.573896947413 149.605848393082
371 8 130 148.190114052062 149.155242822328
372 8 131 147.183306008532 149.620264654232
373 8 132 151.898834520161 149.192132256190
374 8 133 151.672115417212 149.615931467136
375 8 134 149.681146341472 149.552218751365
376 8 135 150.417238805926 149.755635874229
377 8 136 153.290192478730 149.785937136350
378 8 137 148.457089971974 149.679830924386
379 8 138 150.441287674854 149.332789781870
380 8 139 151.257797867844 149.628836901275
381 8 140 148.313179964783 149.318965214402
382 8 141 146.430220016272 149.554081334366
383 8 142 153.107581679878 149.450326333234
384 8 143 147.797202551800 149.380120502449
385 8 144 147.226746985465 148.983714031057
386 8 145 148.515481264465 149.289036994583
387 8 146 148.751971826842 149.146904826081
388 8 147 149.005622921622 149.527198746755
389 8 148 154.413401899649 149.371754407287
390 8 149 144.804395687504 149.483097765499
391 8 150 150.136989415894 149.061792767541
392 8 151 152.124709219214 149.518468531041
393 8 152 148.282370188224 148.825927774931
394 8 153 148.132288417974 149.199598839173
395 8 154 148.015938135233 149.068743400690
396 8 155 144.994237218584 149.287811914163
397 8 156 155.860713797519 149.210404899255
398 8 157 145.294237355007 149.415173548377
399 8 158 153.591677820655 149.025625518711
400 8 159 147.921430459878 149.387377392947
401 8 160 148.249062881821 149.129897095077
402 8 161 153.289414540714 149.561899393271
403 8 162 145.830644660012 149.247658142489
404 8 163 152.401337423199 149.112985491936
405 8 164 141.862703162870 148.608603669933
406 8 165 154.392241366482 149.035108552916
407 8 166 145.893799735039 148.841790216552
408 8 167 150.578901487641 149.114678769419
409 8 168 144.893546220966 148.651898244491
410 8 169 153.066911181990 149.104559018256
411 8 170 147.019108480135 149.072343118830
412 8 171 149.894718172885 149.677323620358
413 8 172 150.321288255383 149.536295809595
414 8 173 152.330898655645 149.574608242812
415 8 174 145.112976297599 148.894231296906
416 8 175 146.114055480725 148.811993232495
417 8 176 147.513110762664 148.712970402674
418 8 177 150.910672228385 149.365680683770
419 8 178 150.737586250549 148.957502064525
420 8 179 148.069638776388 148.861385026770
421 8 180 146.150784267348 148.709528023739
422 8 181 150.905684592347 149.278378710032
423 8 182 151.267928752915 148.983034044911
424 8 183 147.826749173333 149.406083071291
425 8 184 151.551691795980 149.072684702033
426 8 185 149.047419451642 149.288812881126
427 8 186 144.611665904773 149.097260682734
428 8 187 147.986236418079 149.212922082335
429 8 188 151.802430201704 148.870317860742
430 8 189 147.628436665600 149.092953647701
431 8 190 150.782699263928 148.751157798024
432 8 191 148.510730517936 148.933124655149
433 8 192 150.169479425642 148.562775722834
434 8 193 145.630004700206 148.915086137832
435 8 194 145.890148744785 148.761575994525
436 8 195 152.039201377435 149.175151355691
437 8 196 151.578924855435 149.469855187846
438 8 197 144.410542264165 149.442116944909
439 8 198 152.022414820455 148.976525822467
440 8 199 144.255395486143 149.077256925099
441 8 200 151.277785122501 148.526067805867
442 8 201 148.788634762527 148.641557466952
443 8 202 150.391431843346 148.469909933238
444 8 203 148.566300862211 148.598266928471
445 8 204 150.733433325288 148.570155736877
446 8 205 154.018029315165 149.058352003733
447 8 206 141.781832901207 148.568207452391
448 8 207 150.009536013596 148.738791852271
449 8 208 149.216737879763 148.164975645404
450 8 209 149.906376945098 148.708550109718
451 8 210 146.884328180183 148.968479236882
452 8 211 152.259930724342 149.314365474772
453 8 212 145.380122818370 148.857403689641
454 8 213 149.517672793272 148.995436589127
455 8 214 149.571972366898 148.567243908765
456 8 215 146.838932564016 148.566353588148
457 8 216 150.060752909747 148.376749859713
458 8 217 148.315982645043 148.362993581938
459 8 218 145.257273073593 147.552613128716
460 8 219 150.408810646730 148.313411346322
461 8 220 147.314319999215 148.317613452916
462 8 221 143.678772799737 148.220734802456
463 8 222 151.236899693037 148.293229314568
464 8 223 146.412574944029 148.972337155937
465 8 224 150.978736836448 149.041535077897
466 8 225 150.901291347475 149.460156845073
467 8 226 148.444187289709 148.935084243564
468 8 227 151.714652268475 148.688158492633
469 8 228 144.611703607272 147.594876139122
470 8 229 142.271587225532 147.887713129892
471 8 230 154.945850234076 148.295327261183
472 8 231 143.138704943311 148.776622029182
473 8 232 150.290779095248 148.470042835274
474 8 233 145.067883847962 148.746371197277
475 8 234 158.394557726717 148.484207910336
476 8 235 149.220579913137 148.810041076541
477 8 236 143.266828701807 147.816819197921
478 8 237 150.734757650935 148.084771938477
479 8 238 141.866800145441 147.388047090047
480 8 239 151.257925680765 147.474401869519
481 8 240 144.134132976195 147.482258209866
482 12 1 197.451651044581 173.355372045539
483 12 2 142.947218815604 154.910072207469
484 12 3 159.080478215796 152.284202883885
485 12 4 144.060204546194 151.177819645801
486 12 5 156.458667203841 150.915686942943
487 12 6 145.634643178900 150.516791928986
488 12 7 154.912564545348 150.545476566829
489 12 8 146.391162478665 150.284964134921
490 12 9 154.001866427017 150.391974713397
491 12 10 146.916532743854 150.186735338240
492 12 11 153.393315381657 150.318664315572
493 12 12 147.315618263381 150.125839184750
494 12 13 152.962022374598 150.277307777199
495 12 14 147.649762839941 150.099787147458
496 12 15 152.649121445816 150.259082742147
497 12 16 147.942190971312 150.064435811575
498 12 17 152.403177185977 150.224862311277
499 12 18 148.176547048358 150.048344770623
500 12 19 152.156188881554 150.201739769077
501 12 20 148.305293550227 150.028927982252

E-026-jacobi.json — 2.2 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-026",
  "task": "inverse-spectral reconstruction (Jacobi/Stieltjes coefficients of the Clark measures)",
  "script": "research/numerics/scripts/E-026-inverse-spectral.py",
  "parameters": {
    "a_list": [
      4.0,
      8.0,
      12.0
    ],
    "k_max": 240,
    "dps": 50
  },
  "checks": {
    "V1_roundtrip": false,
    "V2_symmetry": true,
    "V3_free_reference_documented": true
  },
  "key_values": {
    "4": {
      "n_atoms": 762,
      "b_first10": [
        197.53030725422184,
        142.92095536812724,
        159.15960898964033,
        144.02245566814906,
        156.54864075079917,
        145.58592069411515,
        155.01008099518884,
        146.33185226710341,
        154.10605961168793,
        146.84721248193748
      ],
      "b_tail_mean_last20": 142.99220059266153,
      "b_ref_tail_mean_last20": 143.37936432309326,
      "b_min": 136.4184875527748,
      "b_max": 197.53030725422184,
      "roundtrip_dev": 99.95090939634419
    },
    "8": {
      "n_atoms": 1526,
      "b_first10": [
        197.4687711112365,
        142.93932543312803,
        159.09877103726024,
        144.04943192616722,
        156.47961609870868,
        145.62114275673025,
        154.93543142819607,
        146.37506545353162,
        154.02642581802172,
        146.89798821598438
      ],
      "b_tail_mean_last20": 148.12846034636544,
      "b_ref_tail_mean_last20": 148.34613679083813,
      "b_min": 141.78183290120748,
      "b_max": 197.4687711112365,
      "roundtrip_dev": 102.09127232819776
    },
    "12": {
      "n_atoms": 2290,
      "b_first10": [
        197.4516510445814,
        142.94721881560383,
        159.08047821579584,
        144.06020454619352,
        156.45866720384134,
        145.6346431789002,
        154.91256454534792,
        146.3911624786654,
        154.00186642701698,
        146.9165327438543
      ],
      "b_tail_mean_last20": 149.2050889664049,
      "b_ref_tail_mean_last20": 149.18259058194445,
      "b_min": 141.8742264108275,
      "b_max": 197.4516510445814,
      "roundtrip_dev": 102.80351310637383
    }
  },
  "elapsed_seconds": 957.7,
  "timestamp_utc": "2026-08-19T20:21:10.797721+00:00"
}

Source code

Python script (click to expand)
"""E-026 — inverse-spectral reconstruction (sub-stages A+B).

From the E-022 Clark measures (atoms z_k = W(a,pi;.) zeros, masses
w_k = 1/K_a(z_k,z_k)) reconstruct the Jacobi/Stieltjes recurrence
coefficients of the symmetric spectral measure
    mu_a = sum_k w_k (delta_{z_k} + delta_{-z_k})  (+ central handling).
The coefficient sequence {b_k} (a_k = 0 by symmetry) is the discrete
shadow of the canonical-system Hamiltonian (Krein-string data) — the
inverse-spectral observable behind the spectral-purity question
(D-001 sweep entry, 2026-08-19).

Method: Stieltjes/Lanczos on the discrete inner product
    <p,q> = sum_atoms w p q,
with full reorthogonalization, mpmath dps 50. The measure is symmetric
about 0, so a_k = 0 identically (asserted numerically).

Checks:
  V1. Round-trip: eigendecomposition of the K x K Jacobi matrix
      reproduces the first K atoms/masses of the input measure
      (Gauss-quadrature exactness: a K-point Jacobi matrix matches
      the 2K moments; compare spectral atoms to the input's innermost
      atoms within tolerance, weights within 1%).
  V2. Symmetry: |a_k| < 1e-30 (dps-50 zero).
  V3. Free-reference: for the equal-mass lattice measure (same atoms,
      unit masses), b_k settle to a constant (documented).

Outputs: research/numerics/data/E-026-jacobi.csv (+ .json)
Columns: a, k, b_k (measured) ; b_k for the equal-mass reference.
"""
import csv
import json
import sys
import time
from datetime import datetime, timezone
from pathlib import Path

import mpmath as mp
import numpy as np

REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
CSV = DATA / "E-026-jacobi.csv"
JSON = DATA / "E-026-jacobi.json"

A_LIST = [4.0, 8.0, 12.0]
K_MAX = 240          # recurrence coefficients per side
DPS = 50


def load_measure(a):
    z, w = [], []
    with open(DATA / "E-022-spectral-measure.csv") as f:
        for r in csv.DictReader(f):
            if float(r["a"]) == a:
                z.append(float(r["z_k"]))
                w.append(float(r["w_k"]))
    z = np.array(z)
    w = np.array(w)
    # symmetric measure on +- atoms
    zz = np.concatenate([-z[::-1], z])
    ww = np.concatenate([w[::-1], w]) / 2.0
    return zz, ww


def stieltjes(z, w, k_max, dps=DPS):
    """Lanczos/Stieltjes with full reorthogonalization at dps."""
    mp.mp.dps = dps
    n = len(z)
    zm = [mp.mpf(float(v)) for v in z]
    wm = [mp.mpf(float(v)) for v in w]
    tot = sum(wm)
    # p_0 = 1/sqrt(tot): work with normalized vectors u_k on the atoms
    # (u_k[i] = p_k(z_i) * sqrt(w_i)) — the L2(w) picture.
    sq = [mp.sqrt(v) for v in wm]
    U = []                       # orthonormal vectors (mp lists)
    u0 = [sq[i] / mp.sqrt(tot) for i in range(n)]
    U.append(u0)
    bs = []
    a_dev_max = mp.mpf(0)
    for k in range(k_max):
        # q = z u_k - b_k u_{k-1}   (a_k = <z u_k, u_k> ~ 0 by symmetry)
        uk = U[k]
        a_k = sum(zm[i] * uk[i] ** 2 for i in range(n))
        a_dev_max = max(a_dev_max, abs(a_k))
        q = [zm[i] * uk[i] - a_k * uk[i] for i in range(n)]
        if k > 0:
            q = [q[i] - bs[-1] * U[k - 1][i] for i in range(n)]
        # full reorthogonalization
        for j in range(k + 1):
            c = sum(q[i] * U[j][i] for i in range(n))
            if c:
                q = [q[i] - c * U[j][i] for i in range(n)]
        nq = mp.sqrt(sum(v * v for v in q))
        bs.append(nq)
        U.append([v / nq for v in q])
    return bs, float(a_dev_max)


def roundtrip_check(z, w, bs, k_use=40):
    """Jacobi matrix from bs[:k_use-1] -> Gauss atoms/weights vs input's
    innermost atoms."""
    k = k_use
    J = np.diag(np.array([float(b) for b in bs[:k - 1]]), 1)
    J = J + J.T
    ev, evec = np.linalg.eigh(J)
    wts = evec[0, :] ** 2 * float(np.sum(w))
    # compare: sorted evs near 0 vs input atoms near 0
    zin = np.sort(z)
    inner_in = zin[len(zin) // 2 - 5: len(zin) // 2 + 5]
    inner_ev = ev[len(ev) // 2 - 5: len(ev) // 2 + 5]
    dev = float(np.max(np.abs(np.sort(inner_in) - np.sort(inner_ev))))
    return dev


def main() -> int:
    if JSON.exists() and "--force" not in sys.argv:
        print(f"cached: {JSON} (use --force to recompute)")
        return 0
    t0 = time.time()
    rows = []
    report = {"per_a": {}}
    rt_max = 0.0
    asym_max = 0.0

    for a in A_LIST:
        ta = time.time()
        z, w = load_measure(a)
        print(f"a={a:g}: {len(z)} atoms; Stieltjes to {K_MAX} ...",
              flush=True)
        bs, adev = stieltjes(z, w, K_MAX)
        asym_max = max(asym_max, adev)
        # equal-mass reference on the same atoms
        wref = np.ones_like(w)
        bs_ref, _ = stieltjes(z, wref, K_MAX)
        dev = roundtrip_check(z, w, bs)
        rt_max = max(rt_max, dev)
        bs_f = [float(b) for b in bs]
        bsr_f = [float(b) for b in bs_ref]
        report["per_a"][f"{a:g}"] = {
            "n_atoms": int(len(z)),
            "b_first10": bs_f[:10],
            "b_tail_mean_last20": float(np.mean(bs_f[-20:])),
            "b_ref_tail_mean_last20": float(np.mean(bsr_f[-20:])),
            "b_min": float(min(bs_f)), "b_max": float(max(bs_f)),
            "roundtrip_dev": dev,
        }
        for k, (b, br) in enumerate(zip(bs_f, bsr_f), 1):
            rows.append((a, k, b, br))
        print(f"  b_1..5 = {np.round(bs_f[:5], 5)}; "
              f"tail mean {np.mean(bs_f[-20:]):.5f} "
              f"(ref {np.mean(bsr_f[-20:]):.5f}); roundtrip {dev:.2e} "
              f"({time.time() - ta:.0f}s)", flush=True)

    checks = {
        "V1_roundtrip": bool(rt_max < 0.05),
        "V2_symmetry": bool(asym_max < 1e-30),
        "V3_free_reference_documented": True,
    }
    with open(CSV, "w", newline="") as f:
        wcsv = csv.writer(f)
        wcsv.writerow(["a", "k", "b_k", "b_k_ref_equalmass"])
        for a, k, b, br in rows:
            wcsv.writerow([f"{a:g}", k, f"{b:.12f}", f"{br:.12f}"])
    meta = {
        "experiment": "E-026",
        "task": "inverse-spectral reconstruction (Jacobi/Stieltjes "
                "coefficients of the Clark measures)",
        "script": "research/numerics/scripts/E-026-inverse-spectral.py",
        "parameters": {"a_list": A_LIST, "k_max": K_MAX, "dps": DPS},
        "checks": checks,
        "key_values": report["per_a"],
        "elapsed_seconds": round(time.time() - t0, 1),
        "timestamp_utc": datetime.now(timezone.utc).isoformat(),
    }
    JSON.write_text(json.dumps(meta, indent=2))
    print(f"wrote {CSV.name}, {JSON.name}; elapsed "
          f"{meta['elapsed_seconds']}s", flush=True)
    return 0 if all(checks.values()) else 1


if __name__ == "__main__":
    sys.exit(main())