E-016-herglotz-fine-structure.py
Experiments: E-016 · script updated 08-18-2026
E-016-herglotz-fine-structure.csv
— 130.1 KB, updated 08-18-2026
page 1 of 8
· 500/page · 3519 rows
next →
| # | series | a | y | rho |
|---|---|---|---|---|
| 2 | F | - | 0.500000 | 6.3713110109e-01 |
| 3 | F | - | 0.550000 | 5.7930752798e-01 |
| 4 | F | - | 0.600000 | 5.3112965737e-01 |
| 5 | F | - | 0.650000 | 4.9037154136e-01 |
| 6 | F | - | 0.700000 | 4.5544321587e-01 |
| 7 | F | - | 0.750000 | 4.2517870604e-01 |
| 8 | F | - | 0.800000 | 3.9870352957e-01 |
| 9 | F | - | 0.850000 | 3.7534896368e-01 |
| 10 | F | - | 0.900000 | 3.5459488962e-01 |
| 11 | F | - | 0.950000 | 3.3603068644e-01 |
| 12 | F | - | 1.000000 | 3.1932785647e-01 |
| 13 | F | - | 1.050000 | 3.0422047221e-01 |
| 14 | F | - | 1.100000 | 2.9049095584e-01 |
| 15 | F | - | 1.150000 | 2.7795956840e-01 |
| 16 | F | - | 1.200000 | 2.6647652675e-01 |
| 17 | F | - | 1.250000 | 2.5591601235e-01 |
| 18 | F | - | 1.300000 | 2.4617156274e-01 |
| 19 | F | - | 1.350000 | 2.3715248708e-01 |
| 20 | F | - | 1.400000 | 2.2878104978e-01 |
| 21 | F | - | 1.450000 | 2.2099023685e-01 |
| 22 | F | - | 1.500000 | 2.1372196898e-01 |
| 23 | F | - | 1.550000 | 2.0692566047e-01 |
| 24 | F | - | 1.600000 | 2.0055704835e-01 |
| 25 | F | - | 1.650000 | 1.9457723439e-01 |
| 26 | F | - | 1.700000 | 1.8895189622e-01 |
| 27 | F | - | 1.750000 | 1.8365063359e-01 |
| 28 | F | - | 1.800000 | 1.7864642365e-01 |
| 29 | F | - | 1.850000 | 1.7391516459e-01 |
| 30 | F | - | 1.900000 | 1.6943529123e-01 |
| 31 | F | - | 1.950000 | 1.6518744990e-01 |
| 32 | F | - | 2.000000 | 1.6115422194e-01 |
| 33 | F | - | 2.050000 | 1.5731988775e-01 |
| 34 | F | - | 2.100000 | 1.5367022455e-01 |
| 35 | F | - | 2.150000 | 1.5019233231e-01 |
| 36 | F | - | 2.200000 | 1.4687448346e-01 |
| 37 | F | - | 2.250000 | 1.4370599260e-01 |
| 38 | F | - | 2.300000 | 1.4067710328e-01 |
| 39 | F | - | 2.350000 | 1.3777888911e-01 |
| 40 | F | - | 2.400000 | 1.3500316734e-01 |
| 41 | F | - | 2.450000 | 1.3234242301e-01 |
| 42 | F | - | 2.500000 | 1.2978974213e-01 |
| 43 | F | - | 2.550000 | 1.2733875278e-01 |
| 44 | F | - | 2.600000 | 1.2498357300e-01 |
| 45 | F | - | 2.650000 | 1.2271876460e-01 |
| 46 | F | - | 2.700000 | 1.2053929200e-01 |
| 47 | F | - | 2.750000 | 1.1844048574e-01 |
| 48 | F | - | 2.800000 | 1.1641800970e-01 |
| 49 | F | - | 2.850000 | 1.1446783191e-01 |
| 50 | F | - | 2.900000 | 1.1258619834e-01 |
| 51 | F | - | 2.950000 | 1.1076960934e-01 |
| 52 | F | - | 3.000000 | 1.0901479845e-01 |
| 53 | F | - | 3.050000 | 1.0731871328e-01 |
| 54 | F | - | 3.100000 | 1.0567849827e-01 |
| 55 | F | - | 3.150000 | 1.0409147906e-01 |
| 56 | F | - | 3.200000 | 1.0255514834e-01 |
| 57 | F | - | 3.250000 | 1.0106715301e-01 |
| 58 | F | - | 3.300000 | 9.9625282515e-02 |
| 59 | F | - | 3.350000 | 9.8227458170e-02 |
| 60 | F | - | 3.400000 | 9.6871723512e-02 |
| 61 | F | - | 3.450000 | 9.5556235428e-02 |
| 62 | F | - | 3.500000 | 9.4279256065e-02 |
| 63 | F | - | 3.550000 | 9.3039145423e-02 |
| 64 | F | - | 3.600000 | 9.1834354562e-02 |
| 65 | F | - | 3.650000 | 9.0663419373e-02 |
| 66 | F | - | 3.700000 | 8.9524954845e-02 |
| 67 | F | - | 3.750000 | 8.8417649799e-02 |
| 68 | F | - | 3.800000 | 8.7340262036e-02 |
| 69 | F | - | 3.850000 | 8.6291613858e-02 |
| 70 | F | - | 3.900000 | 8.5270587938e-02 |
| 71 | F | - | 3.950000 | 8.4276123505e-02 |
| 72 | F | - | 4.000000 | 8.3307212809e-02 |
| 73 | F | - | 4.050000 | 8.2362897856e-02 |
| 74 | F | - | 4.100000 | 8.1442267373e-02 |
| 75 | F | - | 4.150000 | 8.0544454001e-02 |
| 76 | F | - | 4.200000 | 7.9668631681e-02 |
| 77 | F | - | 4.250000 | 7.8814013228e-02 |
| 78 | F | - | 4.300000 | 7.7979848078e-02 |
| 79 | F | - | 4.350000 | 7.7165420181e-02 |
| 80 | F | - | 4.400000 | 7.6370046045e-02 |
| 81 | F | - | 4.450000 | 7.5593072911e-02 |
| 82 | F | - | 4.500000 | 7.4833877047e-02 |
| 83 | F | - | 4.550000 | 7.4091862158e-02 |
| 84 | F | - | 4.600000 | 7.3366457892e-02 |
| 85 | F | - | 4.650000 | 7.2657118453e-02 |
| 86 | F | - | 4.700000 | 7.1963321298e-02 |
| 87 | F | - | 4.750000 | 7.1284565910e-02 |
| 88 | F | - | 4.800000 | 7.0620372658e-02 |
| 89 | F | - | 4.850000 | 6.9970281720e-02 |
| 90 | F | - | 4.900000 | 6.9333852079e-02 |
| 91 | F | - | 4.950000 | 6.8710660567e-02 |
| 92 | F | - | 5.000000 | 6.8100300984e-02 |
| 93 | F | - | 5.050000 | 6.7502383253e-02 |
| 94 | F | - | 5.100000 | 6.6916532635e-02 |
| 95 | F | - | 5.150000 | 6.6342388986e-02 |
| 96 | F | - | 5.200000 | 6.5779606056e-02 |
| 97 | F | - | 5.250000 | 6.5227850830e-02 |
| 98 | F | - | 5.300000 | 6.4686802906e-02 |
| 99 | F | - | 5.350000 | 6.4156153905e-02 |
| 100 | F | - | 5.400000 | 6.3635606918e-02 |
| 101 | F | - | 5.450000 | 6.3124875982e-02 |
| 102 | F | - | 5.500000 | 6.2623685580e-02 |
| 103 | F | - | 5.550000 | 6.2131770176e-02 |
| 104 | F | - | 5.600000 | 6.1648873770e-02 |
| 105 | F | - | 5.650000 | 6.1174749474e-02 |
| 106 | F | - | 5.700000 | 6.0709159120e-02 |
| 107 | F | - | 5.750000 | 6.0251872874e-02 |
| 108 | F | - | 5.800000 | 5.9802668886e-02 |
| 109 | F | - | 5.850000 | 5.9361332942e-02 |
| 110 | F | - | 5.900000 | 5.8927658149e-02 |
| 111 | F | - | 5.950000 | 5.8501444623e-02 |
| 112 | F | - | 6.000000 | 5.8082499200e-02 |
| 113 | F | - | 6.050000 | 5.7670635159e-02 |
| 114 | F | - | 6.100000 | 5.7265671958e-02 |
| 115 | F | - | 6.150000 | 5.6867434987e-02 |
| 116 | F | - | 6.200000 | 5.6475755323e-02 |
| 117 | F | - | 6.250000 | 5.6090469510e-02 |
| 118 | F | - | 6.300000 | 5.5711419339e-02 |
| 119 | F | - | 6.350000 | 5.5338451643e-02 |
| 120 | F | - | 6.400000 | 5.4971418100e-02 |
| 121 | F | - | 6.450000 | 5.4610175046e-02 |
| 122 | F | - | 6.500000 | 5.4254583299e-02 |
| 123 | F | - | 6.550000 | 5.3904507984e-02 |
| 124 | F | - | 6.600000 | 5.3559818373e-02 |
| 125 | F | - | 6.650000 | 5.3220387728e-02 |
| 126 | F | - | 6.700000 | 5.2886093156e-02 |
| 127 | F | - | 6.750000 | 5.2556815462e-02 |
| 128 | F | - | 6.800000 | 5.2232439017e-02 |
| 129 | F | - | 6.850000 | 5.1912851626e-02 |
| 130 | F | - | 6.900000 | 5.1597944405e-02 |
| 131 | F | - | 6.950000 | 5.1287611662e-02 |
| 132 | F | - | 7.000000 | 5.0981750783e-02 |
| 133 | F | - | 7.050000 | 5.0680262125e-02 |
| 134 | F | - | 7.100000 | 5.0383048905e-02 |
| 135 | F | - | 7.150000 | 5.0090017109e-02 |
| 136 | F | - | 7.200000 | 4.9801075391e-02 |
| 137 | F | - | 7.250000 | 4.9516134980e-02 |
| 138 | F | - | 7.300000 | 4.9235109595e-02 |
| 139 | F | - | 7.350000 | 4.8957915360e-02 |
| 140 | F | - | 7.400000 | 4.8684470718e-02 |
| 141 | F | - | 7.450000 | 4.8414696362e-02 |
| 142 | F | - | 7.500000 | 4.8148515151e-02 |
| 143 | F | - | 7.550000 | 4.7885852044e-02 |
| 144 | F | - | 7.600000 | 4.7626634028e-02 |
| 145 | F | - | 7.650000 | 4.7370790053e-02 |
| 146 | F | - | 7.700000 | 4.7118250970e-02 |
| 147 | F | - | 7.750000 | 4.6868949463e-02 |
| 148 | F | - | 7.800000 | 4.6622819997e-02 |
| 149 | F | - | 7.850000 | 4.6379798760e-02 |
| 150 | F | - | 7.900000 | 4.6139823603e-02 |
| 151 | F | - | 7.950000 | 4.5902833996e-02 |
| 152 | F | - | 8.000000 | 4.5668770970e-02 |
| 153 | F | - | 8.050000 | 4.5437577070e-02 |
| 154 | F | - | 8.100000 | 4.5209196311e-02 |
| 155 | F | - | 8.150000 | 4.4983574131e-02 |
| 156 | F | - | 8.200000 | 4.4760657346e-02 |
| 157 | F | - | 8.250000 | 4.4540394109e-02 |
| 158 | F | - | 8.300000 | 4.4322733870e-02 |
| 159 | F | - | 8.350000 | 4.4107627337e-02 |
| 160 | F | - | 8.400000 | 4.3895026437e-02 |
| 161 | F | - | 8.450000 | 4.3684884280e-02 |
| 162 | F | - | 8.500000 | 4.3477155125e-02 |
| 163 | F | - | 8.550000 | 4.3271794346e-02 |
| 164 | F | - | 8.600000 | 4.3068758398e-02 |
| 165 | F | - | 8.650000 | 4.2868004785e-02 |
| 166 | F | - | 8.700000 | 4.2669492034e-02 |
| 167 | F | - | 8.750000 | 4.2473179658e-02 |
| 168 | F | - | 8.800000 | 4.2279028136e-02 |
| 169 | F | - | 8.850000 | 4.2086998877e-02 |
| 170 | F | - | 8.900000 | 4.1897054201e-02 |
| 171 | F | - | 8.950000 | 4.1709157308e-02 |
| 172 | F | - | 9.000000 | 4.1523272256e-02 |
| 173 | F | - | 9.050000 | 4.1339363937e-02 |
| 174 | F | - | 9.100000 | 4.1157398050e-02 |
| 175 | F | - | 9.150000 | 4.0977341084e-02 |
| 176 | F | - | 9.200000 | 4.0799160293e-02 |
| 177 | F | - | 9.250000 | 4.0622823675e-02 |
| 178 | F | - | 9.300000 | 4.0448299953e-02 |
| 179 | F | - | 9.350000 | 4.0275558553e-02 |
| 180 | F | - | 9.400000 | 4.0104569588e-02 |
| 181 | F | - | 9.450000 | 3.9935303837e-02 |
| 182 | F | - | 9.500000 | 3.9767732727e-02 |
| 183 | F | - | 9.550000 | 3.9601828320e-02 |
| 184 | F | - | 9.600000 | 3.9437563289e-02 |
| 185 | F | - | 9.650000 | 3.9274910906e-02 |
| 186 | F | - | 9.700000 | 3.9113845028e-02 |
| 187 | F | - | 9.750000 | 3.8954340078e-02 |
| 188 | F | - | 9.800000 | 3.8796371031e-02 |
| 189 | F | - | 9.850000 | 3.8639913401e-02 |
| 190 | F | - | 9.900000 | 3.8484943225e-02 |
| 191 | F | - | 9.950000 | 3.8331437052e-02 |
| 192 | F | - | 10.000000 | 3.8179371928e-02 |
| 193 | F | - | 10.050000 | 3.8028725384e-02 |
| 194 | F | - | 10.100000 | 3.7879475422e-02 |
| 195 | F | - | 10.150000 | 3.7731600507e-02 |
| 196 | F | - | 10.200000 | 3.7585079551e-02 |
| 197 | F | - | 10.250000 | 3.7439891903e-02 |
| 198 | F | - | 10.300000 | 3.7296017340e-02 |
| 199 | F | - | 10.350000 | 3.7153436054e-02 |
| 200 | F | - | 10.400000 | 3.7012128643e-02 |
| 201 | F | - | 10.450000 | 3.6872076099e-02 |
| 202 | F | - | 10.500000 | 3.6733259803e-02 |
| 203 | F | - | 10.550000 | 3.6595661508e-02 |
| 204 | F | - | 10.600000 | 3.6459263337e-02 |
| 205 | F | - | 10.650000 | 3.6324047770e-02 |
| 206 | F | - | 10.700000 | 3.6189997636e-02 |
| 207 | F | - | 10.750000 | 3.6057096106e-02 |
| 208 | F | - | 10.800000 | 3.5925326683e-02 |
| 209 | F | - | 10.850000 | 3.5794673194e-02 |
| 210 | F | - | 10.900000 | 3.5665119784e-02 |
| 211 | F | - | 10.950000 | 3.5536650907e-02 |
| 212 | F | - | 11.000000 | 3.5409251319e-02 |
| 213 | F | - | 11.050000 | 3.5282906071e-02 |
| 214 | F | - | 11.100000 | 3.5157600502e-02 |
| 215 | F | - | 11.150000 | 3.5033320231e-02 |
| 216 | F | - | 11.200000 | 3.4910051154e-02 |
| 217 | F | - | 11.250000 | 3.4787779432e-02 |
| 218 | F | - | 11.300000 | 3.4666491492e-02 |
| 219 | F | - | 11.350000 | 3.4546174012e-02 |
| 220 | F | - | 11.400000 | 3.4426813924e-02 |
| 221 | F | - | 11.450000 | 3.4308398403e-02 |
| 222 | F | - | 11.500000 | 3.4190914862e-02 |
| 223 | F | - | 11.550000 | 3.4074350948e-02 |
| 224 | F | - | 11.600000 | 3.3958694535e-02 |
| 225 | F | - | 11.650000 | 3.3843933722e-02 |
| 226 | F | - | 11.700000 | 3.3730056822e-02 |
| 227 | F | - | 11.750000 | 3.3617052365e-02 |
| 228 | F | - | 11.800000 | 3.3504909086e-02 |
| 229 | F | - | 11.850000 | 3.3393615924e-02 |
| 230 | F | - | 11.900000 | 3.3283162019e-02 |
| 231 | F | - | 11.950000 | 3.3173536702e-02 |
| 232 | F | - | 12.000000 | 3.3064729498e-02 |
| 233 | F | - | 12.050000 | 3.2956730115e-02 |
| 234 | F | - | 12.100000 | 3.2849528444e-02 |
| 235 | F | - | 12.150000 | 3.2743114554e-02 |
| 236 | F | - | 12.200000 | 3.2637478688e-02 |
| 237 | F | - | 12.250000 | 3.2532611261e-02 |
| 238 | F | - | 12.300000 | 3.2428502850e-02 |
| 239 | F | - | 12.350000 | 3.2325144201e-02 |
| 240 | F | - | 12.400000 | 3.2222526214e-02 |
| 241 | F | - | 12.450000 | 3.2120639949e-02 |
| 242 | F | - | 12.500000 | 3.2019476618e-02 |
| 243 | F | - | 12.550000 | 3.1919027580e-02 |
| 244 | F | - | 12.600000 | 3.1819284344e-02 |
| 245 | F | - | 12.650000 | 3.1720238560e-02 |
| 246 | F | - | 12.700000 | 3.1621882019e-02 |
| 247 | F | - | 12.750000 | 3.1524206648e-02 |
| 248 | F | - | 12.800000 | 3.1427204511e-02 |
| 249 | F | - | 12.850000 | 3.1330867802e-02 |
| 250 | F | - | 12.900000 | 3.1235188843e-02 |
| 251 | F | - | 12.950000 | 3.1140160084e-02 |
| 252 | F | - | 13.000000 | 3.1045774098e-02 |
| 253 | F | - | 13.050000 | 3.0952023580e-02 |
| 254 | F | - | 13.100000 | 3.0858901341e-02 |
| 255 | F | - | 13.150000 | 3.0766400310e-02 |
| 256 | F | - | 13.200000 | 3.0674513531e-02 |
| 257 | F | - | 13.250000 | 3.0583234157e-02 |
| 258 | F | - | 13.300000 | 3.0492555451e-02 |
| 259 | F | - | 13.350000 | 3.0402470786e-02 |
| 260 | F | - | 13.400000 | 3.0312973635e-02 |
| 261 | F | - | 13.450000 | 3.0224057577e-02 |
| 262 | F | - | 13.500000 | 3.0135716291e-02 |
| 263 | F | - | 13.550000 | 3.0047943555e-02 |
| 264 | F | - | 13.600000 | 2.9960733243e-02 |
| 265 | F | - | 13.650000 | 2.9874079326e-02 |
| 266 | F | - | 13.700000 | 2.9787975864e-02 |
| 267 | F | - | 13.750000 | 2.9702417013e-02 |
| 268 | F | - | 13.800000 | 2.9617397016e-02 |
| 269 | F | - | 13.850000 | 2.9532910202e-02 |
| 270 | F | - | 13.900000 | 2.9448950989e-02 |
| 271 | F | - | 13.950000 | 2.9365513879e-02 |
| 272 | F | - | 14.000000 | 2.9282593454e-02 |
| 273 | F | - | 14.050000 | 2.9200184380e-02 |
| 274 | F | - | 14.100000 | 2.9118281402e-02 |
| 275 | F | - | 14.150000 | 2.9036879341e-02 |
| 276 | F | - | 14.200000 | 2.8955973098e-02 |
| 277 | F | - | 14.250000 | 2.8875557645e-02 |
| 278 | F | - | 14.300000 | 2.8795628031e-02 |
| 279 | F | - | 14.350000 | 2.8716179377e-02 |
| 280 | F | - | 14.400000 | 2.8637206873e-02 |
| 281 | F | - | 14.450000 | 2.8558705779e-02 |
| 282 | F | - | 14.500000 | 2.8480671426e-02 |
| 283 | F | - | 14.550000 | 2.8403099208e-02 |
| 284 | F | - | 14.600000 | 2.8325984588e-02 |
| 285 | F | - | 14.650000 | 2.8249323093e-02 |
| 286 | F | - | 14.700000 | 2.8173110312e-02 |
| 287 | F | - | 14.750000 | 2.8097341897e-02 |
| 288 | F | - | 14.800000 | 2.8022013562e-02 |
| 289 | F | - | 14.850000 | 2.7947121079e-02 |
| 290 | F | - | 14.900000 | 2.7872660282e-02 |
| 291 | F | - | 14.950000 | 2.7798627059e-02 |
| 292 | F | - | 15.000000 | 2.7725017358e-02 |
| 293 | F | - | 15.050000 | 2.7651827182e-02 |
| 294 | F | - | 15.100000 | 2.7579052587e-02 |
| 295 | F | - | 15.150000 | 2.7506689684e-02 |
| 296 | F | - | 15.200000 | 2.7434734639e-02 |
| 297 | F | - | 15.250000 | 2.7363183667e-02 |
| 298 | F | - | 15.300000 | 2.7292033034e-02 |
| 299 | F | - | 15.350000 | 2.7221279058e-02 |
| 300 | F | - | 15.400000 | 2.7150918105e-02 |
| 301 | F | - | 15.450000 | 2.7080946590e-02 |
| 302 | F | - | 15.500000 | 2.7011360975e-02 |
| 303 | F | - | 15.550000 | 2.6942157769e-02 |
| 304 | F | - | 15.600000 | 2.6873333526e-02 |
| 305 | F | - | 15.650000 | 2.6804884847e-02 |
| 306 | F | - | 15.700000 | 2.6736808376e-02 |
| 307 | F | - | 15.750000 | 2.6669100801e-02 |
| 308 | F | - | 15.800000 | 2.6601758852e-02 |
| 309 | F | - | 15.850000 | 2.6534779303e-02 |
| 310 | F | - | 15.900000 | 2.6468158966e-02 |
| 311 | F | - | 15.950000 | 2.6401894698e-02 |
| 312 | F | - | 16.000000 | 2.6335983393e-02 |
| 313 | F | - | 16.050000 | 2.6270421985e-02 |
| 314 | F | - | 16.100000 | 2.6205207448e-02 |
| 315 | F | - | 16.150000 | 2.6140336792e-02 |
| 316 | F | - | 16.200000 | 2.6075807065e-02 |
| 317 | F | - | 16.250000 | 2.6011615354e-02 |
| 318 | F | - | 16.300000 | 2.5947758778e-02 |
| 319 | F | - | 16.350000 | 2.5884234496e-02 |
| 320 | F | - | 16.400000 | 2.5821039699e-02 |
| 321 | F | - | 16.450000 | 2.5758171613e-02 |
| 322 | F | - | 16.500000 | 2.5695627500e-02 |
| 323 | F | - | 16.550000 | 2.5633404652e-02 |
| 324 | F | - | 16.600000 | 2.5571500396e-02 |
| 325 | F | - | 16.650000 | 2.5509912092e-02 |
| 326 | F | - | 16.700000 | 2.5448637129e-02 |
| 327 | F | - | 16.750000 | 2.5387672929e-02 |
| 328 | F | - | 16.800000 | 2.5327016945e-02 |
| 329 | F | - | 16.850000 | 2.5266666659e-02 |
| 330 | F | - | 16.900000 | 2.5206619585e-02 |
| 331 | F | - | 16.950000 | 2.5146873264e-02 |
| 332 | F | - | 17.000000 | 2.5087425268e-02 |
| 333 | F | - | 17.050000 | 2.5028273194e-02 |
| 334 | F | - | 17.100000 | 2.4969414671e-02 |
| 335 | F | - | 17.150000 | 2.4910847353e-02 |
| 336 | F | - | 17.200000 | 2.4852568923e-02 |
| 337 | F | - | 17.250000 | 2.4794577088e-02 |
| 338 | F | - | 17.300000 | 2.4736869584e-02 |
| 339 | F | - | 17.350000 | 2.4679444171e-02 |
| 340 | F | - | 17.400000 | 2.4622298636e-02 |
| 341 | F | - | 17.450000 | 2.4565430790e-02 |
| 342 | F | - | 17.500000 | 2.4508838469e-02 |
| 343 | F | - | 17.550000 | 2.4452519534e-02 |
| 344 | F | - | 17.600000 | 2.4396471869e-02 |
| 345 | F | - | 17.650000 | 2.4340693382e-02 |
| 346 | F | - | 17.700000 | 2.4285182005e-02 |
| 347 | F | - | 17.750000 | 2.4229935691e-02 |
| 348 | F | - | 17.800000 | 2.4174952418e-02 |
| 349 | F | - | 17.850000 | 2.4120230186e-02 |
| 350 | F | - | 17.900000 | 2.4065767014e-02 |
| 351 | F | - | 17.950000 | 2.4011560946e-02 |
| 352 | F | - | 18.000000 | 2.3957610046e-02 |
| 353 | F | - | 18.050000 | 2.3903912399e-02 |
| 354 | F | - | 18.100000 | 2.3850466110e-02 |
| 355 | F | - | 18.150000 | 2.3797269306e-02 |
| 356 | F | - | 18.200000 | 2.3744320133e-02 |
| 357 | F | - | 18.250000 | 2.3691616756e-02 |
| 358 | F | - | 18.300000 | 2.3639157362e-02 |
| 359 | F | - | 18.350000 | 2.3586940155e-02 |
| 360 | F | - | 18.400000 | 2.3534963359e-02 |
| 361 | F | - | 18.450000 | 2.3483225217e-02 |
| 362 | F | - | 18.500000 | 2.3431723988e-02 |
| 363 | F | - | 18.550000 | 2.3380457953e-02 |
| 364 | F | - | 18.600000 | 2.3329425408e-02 |
| 365 | F | - | 18.650000 | 2.3278624668e-02 |
| 366 | F | - | 18.700000 | 2.3228054065e-02 |
| 367 | F | - | 18.750000 | 2.3177711948e-02 |
| 368 | F | - | 18.800000 | 2.3127596684e-02 |
| 369 | F | - | 18.850000 | 2.3077706656e-02 |
| 370 | F | - | 18.900000 | 2.3028040263e-02 |
| 371 | F | - | 18.950000 | 2.2978595921e-02 |
| 372 | F | - | 19.000000 | 2.2929372061e-02 |
| 373 | F | - | 19.050000 | 2.2880367132e-02 |
| 374 | F | - | 19.100000 | 2.2831579596e-02 |
| 375 | F | - | 19.150000 | 2.2783007932e-02 |
| 376 | F | - | 19.200000 | 2.2734650634e-02 |
| 377 | F | - | 19.250000 | 2.2686506211e-02 |
| 378 | F | - | 19.300000 | 2.2638573186e-02 |
| 379 | F | - | 19.350000 | 2.2590850098e-02 |
| 380 | F | - | 19.400000 | 2.2543335500e-02 |
| 381 | F | - | 19.450000 | 2.2496027957e-02 |
| 382 | F | - | 19.500000 | 2.2448926052e-02 |
| 383 | F | - | 19.550000 | 2.2402028378e-02 |
| 384 | F | - | 19.600000 | 2.2355333545e-02 |
| 385 | F | - | 19.650000 | 2.2308840173e-02 |
| 386 | F | - | 19.700000 | 2.2262546899e-02 |
| 387 | F | - | 19.750000 | 2.2216452371e-02 |
| 388 | F | - | 19.800000 | 2.2170555249e-02 |
| 389 | F | - | 19.850000 | 2.2124854208e-02 |
| 390 | F | - | 19.900000 | 2.2079347935e-02 |
| 391 | F | - | 19.950000 | 2.2034035129e-02 |
| 392 | F | - | 20.000000 | 2.1988914501e-02 |
| 393 | W_thpi | 4.0 | 0.500000 | 1.7309833845e+00 |
| 394 | W_thpi | 4.0 | 0.550000 | 1.6516192939e+00 |
| 395 | W_thpi | 4.0 | 0.600000 | 1.5895296883e+00 |
| 396 | W_thpi | 4.0 | 0.650000 | 1.5402982059e+00 |
| 397 | W_thpi | 4.0 | 0.700000 | 1.5008020246e+00 |
| 398 | W_thpi | 4.0 | 0.750000 | 1.4687826327e+00 |
| 399 | W_thpi | 4.0 | 0.800000 | 1.4425760972e+00 |
| 400 | W_thpi | 4.0 | 0.850000 | 1.4209374839e+00 |
| 401 | W_thpi | 4.0 | 0.900000 | 1.4029231023e+00 |
| 402 | W_thpi | 4.0 | 0.950000 | 1.3878095094e+00 |
| 403 | W_thpi | 4.0 | 1.000000 | 1.3750365897e+00 |
| 404 | W_thpi | 4.0 | 1.050000 | 1.3641668217e+00 |
| 405 | W_thpi | 4.0 | 1.100000 | 1.3548556731e+00 |
| 406 | W_thpi | 4.0 | 1.150000 | 1.3468297992e+00 |
| 407 | W_thpi | 4.0 | 1.200000 | 1.3398708048e+00 |
| 408 | W_thpi | 4.0 | 1.250000 | 1.3338030289e+00 |
| 409 | W_thpi | 4.0 | 1.300000 | 1.3284842776e+00 |
| 410 | W_thpi | 4.0 | 1.350000 | 1.3237987363e+00 |
| 411 | W_thpi | 4.0 | 1.400000 | 1.3196515131e+00 |
| 412 | W_thpi | 4.0 | 1.450000 | 1.3159644084e+00 |
| 413 | W_thpi | 4.0 | 1.500000 | 1.3126726173e+00 |
| 414 | W_thpi | 4.0 | 1.550000 | 1.3097221424e+00 |
| 415 | W_thpi | 4.0 | 1.600000 | 1.3070677543e+00 |
| 416 | W_thpi | 4.0 | 1.650000 | 1.3046713742e+00 |
| 417 | W_thpi | 4.0 | 1.700000 | 1.3025007854e+00 |
| 418 | W_thpi | 4.0 | 1.750000 | 1.3005286009e+00 |
| 419 | W_thpi | 4.0 | 1.800000 | 1.2987314328e+00 |
| 420 | W_thpi | 4.0 | 1.850000 | 1.2970892200e+00 |
| 421 | W_thpi | 4.0 | 1.900000 | 1.2955846825e+00 |
| 422 | W_thpi | 4.0 | 1.950000 | 1.2942028751e+00 |
| 423 | W_thpi | 4.0 | 2.000000 | 1.2929308216e+00 |
| 424 | W_thpi | 4.0 | 2.050000 | 1.2917572136e+00 |
| 425 | W_thpi | 4.0 | 2.100000 | 1.2906721609e+00 |
| 426 | W_thpi | 4.0 | 2.150000 | 1.2896669842e+00 |
| 427 | W_thpi | 4.0 | 2.200000 | 1.2887340417e+00 |
| 428 | W_thpi | 4.0 | 2.250000 | 1.2878665847e+00 |
| 429 | W_thpi | 4.0 | 2.300000 | 1.2870586348e+00 |
| 430 | W_thpi | 4.0 | 2.350000 | 1.2863048814e+00 |
| 431 | W_thpi | 4.0 | 2.400000 | 1.2856005938e+00 |
| 432 | W_thpi | 4.0 | 2.450000 | 1.2849415472e+00 |
| 433 | W_thpi | 4.0 | 2.500000 | 1.2843239589e+00 |
| 434 | W_thpi | 4.0 | 2.550000 | 1.2837444343e+00 |
| 435 | W_thpi | 4.0 | 2.600000 | 1.2831999195e+00 |
| 436 | W_thpi | 4.0 | 2.650000 | 1.2826876616e+00 |
| 437 | W_thpi | 4.0 | 2.700000 | 1.2822051735e+00 |
| 438 | W_thpi | 4.0 | 2.750000 | 1.2817502037e+00 |
| 439 | W_thpi | 4.0 | 2.800000 | 1.2813207101e+00 |
| 440 | W_thpi | 4.0 | 2.850000 | 1.2809148369e+00 |
| 441 | W_thpi | 4.0 | 2.900000 | 1.2805308946e+00 |
| 442 | W_thpi | 4.0 | 2.950000 | 1.2801673424e+00 |
| 443 | W_thpi | 4.0 | 3.000000 | 1.2798227730e+00 |
| 444 | W_thpi | 4.0 | 3.050000 | 1.2794958986e+00 |
| 445 | W_thpi | 4.0 | 3.100000 | 1.2791855389e+00 |
| 446 | W_thpi | 4.0 | 3.150000 | 1.2788906110e+00 |
| 447 | W_thpi | 4.0 | 3.200000 | 1.2786101193e+00 |
| 448 | W_thpi | 4.0 | 3.250000 | 1.2783431474e+00 |
| 449 | W_thpi | 4.0 | 3.300000 | 1.2780888508e+00 |
| 450 | W_thpi | 4.0 | 3.350000 | 1.2778464502e+00 |
| 451 | W_thpi | 4.0 | 3.400000 | 1.2776152252e+00 |
| 452 | W_thpi | 4.0 | 3.450000 | 1.2773945095e+00 |
| 453 | W_thpi | 4.0 | 3.500000 | 1.2771836858e+00 |
| 454 | W_thpi | 4.0 | 3.550000 | 1.2769821815e+00 |
| 455 | W_thpi | 4.0 | 3.600000 | 1.2767894652e+00 |
| 456 | W_thpi | 4.0 | 3.650000 | 1.2766050427e+00 |
| 457 | W_thpi | 4.0 | 3.700000 | 1.2764284544e+00 |
| 458 | W_thpi | 4.0 | 3.750000 | 1.2762592722e+00 |
| 459 | W_thpi | 4.0 | 3.800000 | 1.2760970967e+00 |
| 460 | W_thpi | 4.0 | 3.850000 | 1.2759415553e+00 |
| 461 | W_thpi | 4.0 | 3.900000 | 1.2757923001e+00 |
| 462 | W_thpi | 4.0 | 3.950000 | 1.2756490056e+00 |
| 463 | W_thpi | 4.0 | 4.000000 | 1.2755113671e+00 |
| 464 | W_thpi | 4.0 | 4.050000 | 1.2753790994e+00 |
| 465 | W_thpi | 4.0 | 4.100000 | 1.2752519350e+00 |
| 466 | W_thpi | 4.0 | 4.150000 | 1.2751296228e+00 |
| 467 | W_thpi | 4.0 | 4.200000 | 1.2750119273e+00 |
| 468 | W_thpi | 4.0 | 4.250000 | 1.2748986268e+00 |
| 469 | W_thpi | 4.0 | 4.300000 | 1.2747895132e+00 |
| 470 | W_thpi | 4.0 | 4.350000 | 1.2746843902e+00 |
| 471 | W_thpi | 4.0 | 4.400000 | 1.2745830733e+00 |
| 472 | W_thpi | 4.0 | 4.450000 | 1.2744853882e+00 |
| 473 | W_thpi | 4.0 | 4.500000 | 1.2743911709e+00 |
| 474 | W_thpi | 4.0 | 4.550000 | 1.2743002661e+00 |
| 475 | W_thpi | 4.0 | 4.600000 | 1.2742125276e+00 |
| 476 | W_thpi | 4.0 | 4.650000 | 1.2741278168e+00 |
| 477 | W_thpi | 4.0 | 4.700000 | 1.2740460030e+00 |
| 478 | W_thpi | 4.0 | 4.750000 | 1.2739669622e+00 |
| 479 | W_thpi | 4.0 | 4.800000 | 1.2738905770e+00 |
| 480 | W_thpi | 4.0 | 4.850000 | 1.2738167364e+00 |
| 481 | W_thpi | 4.0 | 4.900000 | 1.2737453350e+00 |
| 482 | W_thpi | 4.0 | 4.950000 | 1.2736762726e+00 |
| 483 | W_thpi | 4.0 | 5.000000 | 1.2736094545e+00 |
| 484 | W_thpi | 4.0 | 5.050000 | 1.2735447904e+00 |
| 485 | W_thpi | 4.0 | 5.100000 | 1.2734821948e+00 |
| 486 | W_thpi | 4.0 | 5.150000 | 1.2734215862e+00 |
| 487 | W_thpi | 4.0 | 5.200000 | 1.2733628871e+00 |
| 488 | W_thpi | 4.0 | 5.250000 | 1.2733060239e+00 |
| 489 | W_thpi | 4.0 | 5.300000 | 1.2732509262e+00 |
| 490 | W_thpi | 4.0 | 5.350000 | 1.2731975272e+00 |
| 491 | W_thpi | 4.0 | 5.400000 | 1.2731457632e+00 |
| 492 | W_thpi | 4.0 | 5.450000 | 1.2730955734e+00 |
| 493 | W_thpi | 4.0 | 5.500000 | 1.2730468998e+00 |
| 494 | W_thpi | 4.0 | 5.550000 | 1.2729996870e+00 |
| 495 | W_thpi | 4.0 | 5.600000 | 1.2729538821e+00 |
| 496 | W_thpi | 4.0 | 5.650000 | 1.2729094348e+00 |
| 497 | W_thpi | 4.0 | 5.700000 | 1.2728662966e+00 |
| 498 | W_thpi | 4.0 | 5.750000 | 1.2728244214e+00 |
| 499 | W_thpi | 4.0 | 5.800000 | 1.2727837652e+00 |
| 500 | W_thpi | 4.0 | 5.850000 | 1.2727442856e+00 |
| 501 | W_thpi | 4.0 | 5.900000 | 1.2727059423e+00 |
E-016-herglotz-fine-structure.json
— 3.0 KB, updated 08-18-2026
JSON sidecar (click to expand)
{
"experiment": "E-016",
"task": "Q-S3c: Herglotz fine structure of W at theta=pi vs F",
"description": "Poisson-smoothed zero density -(1/pi) Im W'/W(iy) at theta=pi (and theta=0 control) vs rho_F; analytic Galerkin z-derivative; zero-Poisson reconstruction cross-check",
"script": "research/numerics/scripts/E-016-herglotz-fine-structure.py",
"parameters": {
"a_sweep": [
4.0,
6.0,
8.0,
10.0
],
"h": 0.01,
"lambda": -1.0,
"y_grid": [
0.5,
20.0,
391
],
"z_max_zeros": 300.0
},
"checks": {
"V1_plateau_density": true,
"V2_rhoF_finitediff": true,
"V3_poisson_reconstruction": false,
"V4_vmirror_symmetry": true
},
"key_values": {
"xi_flint_crosscheck_rel": 8.821833278620677e-17,
"rhoF_finitediff_max_rel": 1.3322584092623682e-08,
"metrics": {
"4.0": {
"n_zeros": 381,
"z1": 1.1260734006983593,
"plateau": 1.2713747663068067,
"density_a_over_pi": 1.2732395447351628,
"plateau_rel_dev": 0.0014645935527740487,
"v3_rel": 0.32451368257591473,
"kappa_shift": -0.21982980149584136,
"d_pi": 1.2200734562385358,
"d_zero": 1.2165204320831793
},
"6.0": {
"n_zeros": 572,
"z1": 0.7499016225074712,
"plateau": 1.9083309455490012,
"density_a_over_pi": 1.909859317102744,
"plateau_rel_dev": 0.00080025347419903,
"v3_rel": 0.2938167612479611,
"kappa_shift": -0.39086861455767985,
"d_pi": 1.855357135046592,
"d_zero": 1.8529753375094085
},
"8.0": {
"n_zeros": 763,
"z1": 0.5621012628096893,
"plateau": 2.5451204974114527,
"density_a_over_pi": 2.5464790894703255,
"plateau_rel_dev": 0.0005335178539225225,
"v3_rel": 0.2792472337188209,
"kappa_shift": -0.5618837715660804,
"d_pi": 2.4914430957151077,
"d_zero": 2.489482228965594
},
"10.0": {
"n_zeros": 954,
"z1": 0.44959700551214055,
"plateau": 3.1817851862991344,
"density_a_over_pi": 3.183098861837907,
"plateau_rel_dev": 0.00041270334218086014,
"v3_rel": 0.27086948306792724,
"kappa_shift": -0.7328752211905654,
"d_pi": 3.127620084707738,
"d_zero": 3.126136732274815
}
},
"vmirror_sym_err": 3.797860165317667e-14
},
"caveats": [
"Galerkin discretization h=0.01 (E-010 h-convergence: z1 rel drift 4e-4 between h=0.01 and 0.005 at a=4)",
"Poisson smoothing at height y averages over scale ~y: lattice oscillations at spacing pi/a are suppressed ~e^{-2ay}; the sensitive region is y <~ few (low zeros resolve individually)",
"theta=pi vs theta=0 comparison is the sharp test of the H4 read-off (D-023): if theta=pi is correct, d_pi should lie systematically below d_zero as a grows"
],
"elapsed_seconds": 32.7,
"timestamp_utc": "2026-08-18T10:57:35.113504+00:00",
"row_count": 3520
}
Source code
Python script (click to expand)
"""E-016 — Q-S3c: Herglotz (Poisson) fine structure of W at theta=pi vs F.
Theory (D-023 §4, item 3): for entire W with ALL REAL zeros z_j,
-Im(W'/W)(iy) = -Im(kappa) + sum_j y/(y^2 + z_j^2)
is (pi times) the Poisson-smoothed zero density at height y. Individual
zeros within |z_j| <~ y leave distinguishable fingerprints, so this
diagnostic detects sub-lattice-scale zero redistribution BEFORE the
density collapses (Cor 1.6 requires the a->inf zeros to become the
gamma_j / xi'-zeros of F = z^2 xi(1/2-iz)/xi'(1/2-iz)).
For F on the imaginary axis (z = iy, s = 1/2+y real):
rho_F(y) := -(1/pi) Im F'/F(iy)
= (1/pi)[ 2/y + xi'/xi(1/2+y) - xi''/xi'(1/2+y) ].
Equivalently rho_F(y) = (1/pi) d/dy log|F(iy)| (finite-diff check V2).
Diagnostics per a in {4,6,8,10} (h=0.01, lambda=-1, theta=pi; theta=0
control):
D1. rho_W(y; a, pi) on y in [0.5, 20] via the ANALYTIC z-derivative of
the Galerkin Fourier representation (no finite differences):
V(z) = hat(z) sum c_j e^{i z x_j}
V'(z) = hat'(z) sum c_j e^{i z x_j} + hat(z) sum (i x_j) c_j e^{i z x_j}
W(z) = (z-i) Vp + e^{i theta} (z+i) Vm (and z-derivative).
D2. rho_F(y) analytic; cross-checked vs finite differences of
log|F(iy)| (V2).
D3. Zero-Poisson reconstruction: zeros of W(.,pi) located on the real
axis (|W|-minima polished); rho from the Poisson sum must match D1
up to the additive constant -Im(kappa)/pi (mean-matched over the
window) — validates the derivative machinery (V3).
D4. Metrics vs a: plateau value vs a/pi (density law); L2 distance
d(a,theta) = ||rho_W - rho_F|| on [1,20] (theta=pi vs theta=0 —
does theta=pi actually sharpen the approach?); oscillation
envelope of rho_W at small y.
Checks:
V1. plateau: |mean rho_W(y in [10,20]) - a/pi| / (a/pi) < 0.05.
V2. rho_F analytic vs finite-diff of log|F|: max rel dev < 1e-6.
V3. Poisson reconstruction from located zeros matches D1 (mean-matched
L2 / rms < 0.02).
V4. mirror symmetry v-(x) = v+(-x) rel err < 1e-6 (machinery regression).
Outputs: research/numerics/data/E-016-herglotz-fine-structure.csv (+ .json)
"""
import json
import sys
import time
from datetime import datetime, timezone
from pathlib import Path
import mpmath as mp
import numpy as np
import scipy.linalg
import scipy.optimize
from numpy.polynomial.legendre import leggauss
REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
CSV = DATA / "E-016-herglotz-fine-structure.csv"
JSON = DATA / "E-016-herglotz-fine-structure.json"
T_MAXG = 20.0 # sieve to e^20 covers 2a <= 20 (a <= 10)
T_LERCH = 0.05
GL_N = 8
A_SWEEP = [4.0, 6.0, 8.0, 10.0]
H_MAIN = 0.01
LAM_SHIFT = -1.0
Y_GRID = np.linspace(0.5, 20.0, 391)
Y_PLATEAU = (10.0, 20.0)
Z_MAX_ZERO = 300.0
N_GRID = 40000
# ---------------------------------------------------------- g (as E-014)
def mangoldt_sieve_fast(n_max: int) -> np.ndarray:
is_comp = np.zeros(n_max + 1, dtype=bool)
for p in range(2, int(n_max ** 0.5) + 1):
if not is_comp[p]:
is_comp[p * p::p] = True
lam_log = np.zeros(n_max + 1)
primes = np.flatnonzero(~is_comp[2:]) + 2
lp = np.log(primes)
pk = primes.copy()
while pk.size and pk[0] <= n_max:
lam_log[pk] = lp
pk = pk * primes[: pk.size]
keep = pk <= n_max
pk = pk[keep]
lp = lp[keep]
return lam_log
print("sieving von Mangoldt to e^20 ...", flush=True)
t_sv = time.time()
N_MAXG = int(np.exp(T_MAXG)) + 2
LAM_LOG = mangoldt_sieve_fast(N_MAXG)
NS = np.arange(2, N_MAXG + 1, dtype=np.float64)
LAM = LAM_LOG[2:] / np.sqrt(NS)
LOG_NS = np.log(NS)
C1 = np.cumsum(LAM)
C0 = np.cumsum(LAM * LOG_NS)
del LAM, LOG_NS, NS
print(f" sieve done: {time.time()-t_sv:.0f}s", flush=True)
mp.mp.dps = 30
DIG_COEFF = float(-(mp.digamma(mp.mpf(1) / 4) - mp.log(mp.pi)) / 2)
PHI1 = float(mp.lerchphi(1, 2, mp.mpf(1) / 4))
KK = np.arange(0, 400)
DENOM = (KK + 0.25) ** 2
def prime_sum_vec(t):
m = np.floor(np.exp(t) + 1e-9).astype(np.int64) - 1
out = np.zeros_like(t)
pos = m > 0
idx = m[pos] - 1
out[pos] = C1[idx] * t[pos] - C0[idx]
return out
def lerch_comb(t):
out = np.empty_like(t)
fast = t > T_LERCH
if fast.any():
z = np.exp(-2.0 * t[fast])
phi = (np.power.outer(z, KK) / DENOM).sum(axis=1)
out[fast] = -0.25 * (PHI1 - np.exp(-t[fast] / 2) * phi)
if (~fast).any():
for i in np.flatnonzero(~fast):
ti = mp.mpf(float(t[i]))
out[i] = float(-0.25 * (mp.lerchphi(1, 2, mp.mpf(1) / 4)
- mp.exp(-ti / 2)
* mp.lerchphi(mp.exp(-2 * ti), 2,
mp.mpf(1) / 4)))
return out
def g_float(t):
t = np.asarray(t, dtype=float)
g = -4.0 * (np.exp(t / 2) + np.exp(-t / 2) - 2.0)
g += prime_sum_vec(t)
g += DIG_COEFF * t
g += lerch_comb(t)
g[t == 0.0] = 0.0
return g
A_CONST = 0.5 * (np.log(2 * np.pi) + np.euler_gamma - 1.0)
def sigma_vec(t):
t = np.asarray(t, dtype=float)
with np.errstate(divide="ignore", invalid="ignore"):
return np.where(t > 0, 0.5 * t * np.log(t) + A_CONST * t, 0.0)
def F_sing(t):
if t <= 0:
return 0.0
return (A_CONST * t**3 / 6.0 + t**3 * np.log(t) / 12.0
- 5.0 * t**3 / 72.0)
def S_sing(k, h):
return (F_sing((k + 1) * h) - 2.0 * F_sing(k * h)
+ F_sing(abs(k - 1) * h))
XN, XW = leggauss(GL_N)
def S_full(k, h):
def quad_plain(lo, hi, peak):
tot = 0.0
for a, b in ((lo, peak), (peak, hi)):
if b - a <= 0:
continue
mid, half = 0.5 * (a + b), 0.5 * (b - a)
xs = mid + half * XN
rho = g_float(xs) - sigma_vec(xs)
tot += half * float(np.dot(XW, (h - np.abs(xs - peak)) * rho))
return tot
def quad(lo, hi, peak):
n_lo = int(np.ceil(np.exp(lo)))
n_hi = int(np.floor(np.exp(hi)))
if n_hi - n_lo > 64:
return quad_plain(lo, hi, peak)
pts = sorted({lo, peak, hi} |
{float(np.log(n))
for n in range(max(n_lo, 2), n_hi + 1)
if lo < np.log(n) < hi})
tot = 0.0
for p0, p1 in zip(pts, pts[1:]):
if p1 - p0 <= 0:
continue
mid, half = 0.5 * (p0 + p1), 0.5 * (p1 - p0)
xs = mid + half * XN
rho = g_float(xs) - sigma_vec(xs)
tot += half * float(np.dot(XW, (h - np.abs(xs - peak)) * rho))
return tot
if k == 0:
return S_sing(0, h) + 2.0 * quad(0.0, h, 0.0)
return S_sing(k, h) + quad((k - 1) * h, (k + 1) * h, k * h)
def stiffness_first_col(n_elem, h):
n_q = n_elem - 1
s = np.array([S_full(k, h) for k in range(n_elem)])
q = np.empty(n_q)
q[0] = (2.0 * s[0] - 2.0 * s[1]) / h**2
for k in range(1, n_q):
q[k] = (2.0 * s[k] - s[k + 1] - s[k - 1]) / h**2
return q
_BUILD = {}
def build(a, h):
if (a, h) in _BUILD:
return _BUILD[(a, h)]
n_elem = int(round(2 * a / h))
n = n_elem - 1
q = stiffness_first_col(n_elem, h)
Q = scipy.linalg.toeplitz(q)
M = scipy.linalg.toeplitz(np.r_[2 * h / 3, h / 6,
np.zeros(max(n - 2, 0))])
ii = np.arange(1, n_elem)
x = -a + ii * h
xg, wg = leggauss(8)
b = {}
for sgn in (+1.0, -1.0):
mid1 = x - h / 2
xs1 = mid1[:, None] + (h / 2) * xg[None, :]
phi1 = (xs1 - (x - h)[:, None]) / h
mid2 = x + h / 2
xs2 = mid2[:, None] + (h / 2) * xg[None, :]
phi2 = ((x + h)[:, None] - xs2) / h
b[sgn] = ((h / 2) * (np.exp(sgn * xs1) * phi1) @ wg
+ (h / 2) * (np.exp(sgn * xs2) * phi2) @ wg)
_BUILD[(a, h)] = (x, h, Q, M, b)
return _BUILD[(a, h)]
def solve_v(Q, M, b_s, lam, n):
T = Q - lam * M
e = np.ones(n)
B = np.zeros((n + 1, n + 1))
B[:n, :n] = T
B[:n, n] = e
B[n, :n] = e
sol = scipy.linalg.solve(B, np.r_[b_s, 0.0], assume_a="sym")
return sol[:n], T
# ------------------------------------------- V(z), V'(z), W(z), W'(z)
def hat_FT(z, h):
return h * np.sinc(z * h / (2 * np.pi)) ** 2
def hat_FT_d(z, h):
"""d/dz [h sinc(zh/2pi)^2], sinc(x)=sin(pi x)/(pi x)."""
u = z * h / 2.0
s = np.sinc(z * h / (2 * np.pi)) # sin(u)/u
with np.errstate(divide="ignore", invalid="ignore"):
ds = np.where(np.abs(u) > 1e-8,
(u * np.cos(u) - np.sin(u)) / u**2,
-u / 3.0)
return h**2 * s * ds # d/dz[h s^2] = h^2 s ds/du
def V_and_dV(z, c, x, h):
E = np.exp(1j * np.outer(z, x))
S1 = E @ c
S2 = (1j * x * E) @ c
return hat_FT(z, h) * S1, hat_FT_d(z, h) * S1 + hat_FT(z, h) * S2
def W_and_dW(z, Vp, dVp, Vm, dVm, theta):
eit = np.exp(1j * theta)
W = (z - 1j) * Vp + eit * (z + 1j) * Vm
dW = Vp + (z - 1j) * dVp + eit * (Vm + (z + 1j) * dVm)
return W, dW
# --------------------------------------------------------------- F side
def xi_real(s):
s = mp.mpf(s)
if s == 1: # xi(1) = 1/2 (removable: zeta pole
return mp.mpf(0.5) # cancels the (s-1) factor)
return 0.5 * s * (s - 1) * mp.pi ** (-s / 2) * mp.gamma(s / 2) * mp.zeta(s)
mp.mp.dps = 40
def rho_F_analytic(y):
"""rho_F(y) = (1/pi)[2/y + xi'/xi(1/2+y) - xi''/xi'(1/2+y)]."""
s = mp.mpf(0.5) + mp.mpf(y)
f = lambda t: xi_real(t)
x0 = xi_real(s)
x1 = mp.diff(f, s)
x2 = mp.diff(f, s, 2)
return float((2.0 / mp.mpf(y) + x1 / x0 - x2 / x1) / mp.pi)
def logabs_F_imag(y):
s = mp.mpf(0.5) + mp.mpf(y)
xiv = xi_real(s)
dx = mp.diff(xi_real, s)
return mp.log(abs(-mp.mpf(y) ** 2 * xiv / dx))
def main() -> int:
if CSV.exists() and "--force" not in sys.argv:
print(f"cached: {CSV} (use --force to recompute)")
return 0
t0 = time.time()
# ---- F side
print("F side: rho_F analytic + finite-diff cross-check ...", flush=True)
# flint cross-check of xi_real (mpmath zeta is broken beyond ~16-19
# digits in this env; E-014 verified 1e-8 at s=2.5,10.5 — extend to
# the y-range endpoints used here)
import flint
flint.ctx.prec = 200
def xi_flint(s):
aa = flint.arb(str(s))
return float(0.5 * aa * (aa - 1) * (aa / 2).gamma()
* flint.arb.pi() ** (-aa / 2) * aa.zeta())
xi_err = float(max(abs(xi_real(s) - xi_flint(s)) / abs(xi_flint(s))
for s in (1.5, 10.5, 20.5))) # s=1: arb zeta pole
# (xi(1)=1/2 exact)
print(f" xi vs flint max rel err: {xi_err:.2e}", flush=True)
rhoF = np.array([rho_F_analytic(y) for y in Y_GRID])
dlogF = np.array([
float((logabs_F_imag(mp.mpf(y) + mp.mpf(1e-4))
- logabs_F_imag(mp.mpf(y) - mp.mpf(1e-4))) / mp.mpf(2e-4))
for y in Y_GRID]) / np.pi
rel = np.abs(rhoF - dlogF) / np.maximum(np.abs(rhoF), 1e-12)
v2_err = float(rel.max())
print(f" V2 finite-diff max rel dev: {v2_err:.2e}", flush=True)
rows = []
for y, r in zip(Y_GRID, rhoF):
rows.append(f"F,{y:.6f},{r:.10e}")
sym_err = 0.0
metrics = {}
for a in A_SWEEP:
print(f"a={a}: solve v±, Herglotz densities ...", flush=True)
x, hh, Q, M, b = build(a, H_MAIN)
n = len(x)
cp, T = solve_v(Q, M, b[+1.0], LAM_SHIFT, n)
cm, _ = solve_v(Q, M, b[-1.0], LAM_SHIFT, n)
np_ = float(cp @ T @ cp)
nm = float(cm @ T @ cm)
cm = cm * np.sqrt(np_ / nm)
sym_err = max(sym_err,
float(np.max(np.abs(cm - cp[::-1]))
/ max(1.0, float(np.max(np.abs(cp))))))
ziy = 1j * Y_GRID
Vp, dVp = V_and_dV(ziy, cp, x, hh)
Vm, dVm = V_and_dV(ziy, cm, x, hh)
out = {}
for th, tag in ((np.pi, "pi"), (0.0, "zero")):
W, dW = W_and_dW(ziy, Vp, dVp, Vm, dVm, th)
rhoW = -np.imag(dW / W) / np.pi
out[tag] = rhoW
for y, r in zip(Y_GRID, rhoW):
rows.append(f"W_th{tag},{a},{y:.6f},{r:.10e}")
# ---- zeros of W(., pi) on the real axis (for V3)
# c = sqrt(np_/nm) = 1 exactly (mirror symmetry), so for real z,
# Vm = conj(Vp) and W(z) = 2i*g(z) with the REAL gauge
# g(z) = z Im Vp - Re Vp. Zeros = sign changes of g -> brentq.
assert abs(np_ / nm - 1.0) < 1e-12, "norm asymmetry breaks gauge"
zg = np.linspace(1e-3, Z_MAX_ZERO, N_GRID)
Vpr, _ = V_and_dV(zg, cp, x, hh)
g = zg * Vpr.imag - Vpr.real
def g_direct(zz):
V = hat_FT(np.array([zz]), hh)[0] * complex(
np.exp(1j * zz * x) @ cp)
return zz * V.imag - V.real
idx = np.flatnonzero(np.sign(g[:-1]) * np.sign(g[1:]) < 0)
zeros = []
for i in idx:
try:
zeros.append(scipy.optimize.brentq(g_direct, zg[i],
zg[i + 1], xtol=1e-13,
rtol=1e-13))
except ValueError:
pass
zeros = np.array(zeros)
# V3: Poisson reconstruction (+- symmetric located zeros to
# Z_MAX_ZERO + Euler-Maclaurin lattice tail beyond, spacing pi/a,
# phase matched to last located zero; mean-matched vs analytic).
d_lat = np.pi / a
z_last = zeros[-1] + d_lat / 2.0
recon = np.empty_like(Y_GRID)
for k, y in enumerate(Y_GRID):
tail = (y / d_lat) * (np.pi / 2.0 - np.arctan(z_last / y))
recon[k] = (2.0 * (np.sum(y / (y**2 + zeros**2)) + tail)) / np.pi
rhoW = out["pi"]
shift = float(np.mean(rhoW - recon))
rms = float(np.sqrt(np.mean(rhoW**2)))
v3_rel = float(np.sqrt(np.mean((rhoW - recon - shift)**2)) / rms)
# D4 metrics
pm = (Y_GRID >= Y_PLATEAU[0]) & (Y_GRID <= Y_PLATEAU[1])
plateau = float(np.mean(rhoW[pm]))
dens = a / np.pi
sel = Y_GRID >= 1.0
d_pi = float(np.sqrt(np.mean((out["pi"][sel] - rhoF[sel])**2)))
d_zero = float(np.sqrt(np.mean((out["zero"][sel] - rhoF[sel])**2)))
metrics[a] = {
"n_zeros": len(zeros), "z1": float(zeros[0]) if len(zeros) else None,
"plateau": plateau, "density_a_over_pi": dens,
"plateau_rel_dev": abs(plateau - dens) / dens,
"v3_rel": v3_rel, "kappa_shift": shift,
"d_pi": d_pi, "d_zero": d_zero,
}
print(f" zeros={len(zeros)} z1={metrics[a]['z1']:.4f} "
f"plateau={plateau:.4f} (a/pi={dens:.4f}) "
f"V3 rel={v3_rel:.2e} d_pi={d_pi:.4f} d_zero={d_zero:.4f}",
flush=True)
checks = {
"V1_plateau_density": bool(all(
metrics[a]["plateau_rel_dev"] < 0.05 for a in A_SWEEP)),
"V2_rhoF_finitediff": bool(v2_err < 1e-6),
"V3_poisson_reconstruction": bool(all(
metrics[a]["v3_rel"] < 0.02 for a in A_SWEEP)),
"V4_vmirror_symmetry": bool(sym_err < 1e-6),
}
with CSV.open("w", encoding="utf-8", newline="") as f:
f.write("series,a,y,rho\n")
for r in rows:
parts = r.split(",")
if parts[0] == "F":
f.write(f"F,-,{parts[1]},{parts[2]}\n")
else:
f.write(f"{parts[0]},{parts[1]},{parts[2]},{parts[3]}\n")
meta = {
"experiment": "E-016",
"task": "Q-S3c: Herglotz fine structure of W at theta=pi vs F",
"description": "Poisson-smoothed zero density -(1/pi) Im W'/W(iy) "
"at theta=pi (and theta=0 control) vs rho_F; "
"analytic Galerkin z-derivative; zero-Poisson "
"reconstruction cross-check",
"script": "research/numerics/scripts/E-016-herglotz-fine-structure.py",
"parameters": {"a_sweep": A_SWEEP, "h": H_MAIN, "lambda": LAM_SHIFT,
"y_grid": [0.5, 20.0, 391], "z_max_zeros": Z_MAX_ZERO},
"checks": checks,
"key_values": {
"xi_flint_crosscheck_rel": xi_err,
"rhoF_finitediff_max_rel": v2_err,
"metrics": {str(a): metrics[a] for a in A_SWEEP},
"vmirror_sym_err": sym_err,
},
"caveats": [
"Galerkin discretization h=0.01 (E-010 h-convergence: z1 rel "
"drift 4e-4 between h=0.01 and 0.005 at a=4)",
"Poisson smoothing at height y averages over scale ~y: lattice "
"oscillations at spacing pi/a are suppressed ~e^{-2ay}; the "
"sensitive region is y <~ few (low zeros resolve individually)",
"theta=pi vs theta=0 comparison is the sharp test of the H4 "
"read-off (D-023): if theta=pi is correct, d_pi should lie "
"systematically below d_zero as a grows",
],
"elapsed_seconds": round(time.time() - t0, 1),
"timestamp_utc": datetime.now(timezone.utc).isoformat(),
"row_count": None,
}
meta["row_count"] = sum(1 for _ in CSV.open())
JSON.write_text(json.dumps(meta, indent=2), encoding="utf-8")
ok = all(checks.values())
print(f"wrote {CSV.name}, {JSON.name} — "
f"{'ALL CHECKS PASS' if ok else 'CHECK FAILURE: ' + str(checks)}")
return 0 if ok else 1
if __name__ == "__main__":
raise SystemExit(main())