a40j: lattice h = 1/200, 616 atoms + Gaussian part, L = 16384; regions ('F', 'heavy', 'light')
a40i.selftest on this lattice (its single-atom test now covers x = 0.005 ... 0.42, rates up to 40000; its index-based tests are repeated at the a40i positions below)
PASS Dirac at 1.0: E|Z| = g(1/x^2) = 0.735758882343 (fft 0.735758882343)
PASS Dirac at 1.2: E|Z| = g(1/x^2) = 0.832252980999 (fft 0.832252980999)
PASS Dirac at 1.4: E|Z| = g(1/x^2) = 0.857675773141 (fft 0.857675773141)
PASS Dirac at 1.54: E|Z| = g(1/x^2) = 0.851895423823 (fft 0.851895423823)
PASS Dirac at -1.3: E|Z| = g(1/x^2) = 0.851349058302 (fft 0.851349058302)
FAIL single small atoms x = 0.01 ... 0.84 (rates up to 1e4): fft = x E|N - lam| = 2 x e^-lam lam^(floor(lam)+1)/floor(lam)! to 1.2e-10
PASS 200 random laws (1-4 atoms with rates <= 300, Gaussian part in 60%): |fft - exact enumeration| <= 1.21e-12
PASS L = 2^14 and 2^16 agree on a 5-atom law to 1e-10 (0.7909409385895)
PASS analytic gradient vs central differences: max relative error 2.9e-06
PASS objective F (V+ = 0.015): directional derivative -0.01317595 vs analytic -0.01317905
PASS objective heavy (V+ = 0.015): directional derivative -0.02052271 vs analytic -0.02052581
PASS objective light (V+ = 0.023): directional derivative -0.05932398 vs analytic -0.05932724
FAIL objective band (V+ = 0.011): directional derivative 0.00433809 vs analytic 0.00428942
FAIL objective all (V+ = 0.011): directional derivative 0.00986589 vs analytic 0.00981722
FAIL objective all (V+ = 0.017): directional derivative -0.02471990 vs analytic -0.02469945
A40I_SELFTEST_FAIL
PASS L = 2^14 and 2^16 agree on the 5-atom law to 1e-10 (0.7788084688497)
PASS analytic gradient vs central differences: max relative error 2.8e-07
PASS objective F (V+ = 0.673): directional derivative -0.04098367 vs analytic -0.04098365
PASS objective heavy (V+ = 0.673): directional derivative -0.04098367 vs analytic -0.04098365
PASS objective light (V+ = 0.513): directional derivative 0.53361818 vs analytic 0.53361816
PASS objective band (V+ = 0.754): directional derivative -0.86706128 vs analytic -0.86706123
PASS objective all (V+ = 0.754): directional derivative -0.05891596 vs analytic -0.05891591
PASS objective all (V+ = 0.633): directional derivative -0.03222513 vs analytic -0.03222507
A40J_SELFTEST_PASS
16 starts x 8 tasks per region, 1500 iterations max, the best law of each task polished; C5 = 0.8551004555; 227 s
lattice benchmark F: E|Z| = 0.8262768609 at (1.29, 0.8), (-1.105, 0.09893), (0.845, 0.10107)
lattice benchmark light: E|Z| = 0.8198294607 at (0.815, 0.73886), (0.82, 0.26114)
    F: best objective 0.8262733405; E|Z| = 0.8262733405 (continuum few-atom sup 0.8266648), V+ = 0.80000, V- = 0.09866, penalty 0.00e+00, s2 = 0.00000; E|Z| at L = 2^16: 0.826273340546; pruned law: 4 atoms, fft 0.826273340547, exact 0.826273340547
       atoms with weight > 1e-4: [[-1.1, 0.0913], [-1.05, 0.00736], [0.845, 0.10134], [1.29, 0.8]]
       next: E|Z| = 0.8262668807, V+ = 0.8000, V- = 0.1017, penalty 0.0e+00
       next: E|Z| = 0.8262512114, V+ = 0.8000, V- = 0.1038, penalty 0.0e+00
       next: E|Z| = 0.8261868523, V+ = 0.8000, V- = 0.0934, penalty 0.0e+00
heavy: best objective 0.8262778736; E|Z| = 0.8262778736 (continuum few-atom sup 0.8266648), V+ = 0.80000, V- = 0.09876, penalty 0.00e+00, s2 = 0.00000; E|Z| at L = 2^16: 0.826277873566; pruned law: 3 atoms, fft 0.826277873567, exact 0.826277873567
       atoms with weight > 1e-4: [[-1.1, 0.09876], [0.845, 0.10124], [1.29, 0.8]]
       next: E|Z| = 0.8262756769, V+ = 0.8000, V- = 0.0969, penalty 9.0e-15
       next: E|Z| = 0.8262536164, V+ = 0.8000, V- = 0.0964, penalty 0.0e+00
       next: E|Z| = 0.8261976661, V+ = 0.8000, V- = 0.1032, penalty 0.0e+00
light: best objective 0.8198294607; E|Z| = 0.8198294607 (continuum few-atom sup 0.8198326), V+ = 0.00000, V- = 0.00000, penalty 0.00e+00, s2 = 0.00000; E|Z| at L = 2^16: 0.819829460661; pruned law: 2 atoms, fft 0.819829460663, exact 0.819829460663
       atoms with weight > 1e-4: [[0.815, 0.73886], [0.82, 0.26114]]
       next: E|Z| = 0.8198294607, V+ = 0.0000, V- = 0.0000, penalty 0.0e+00
       next: E|Z| = 0.8198294607, V+ = 0.0000, V- = 0.0000, penalty 0.0e+00
       next: E|Z| = 0.8198294607, V+ = 0.0000, V- = 0.0000, penalty 0.0e+00
228 s; flags = 0 (a flag: E|Z| above C5, or above the continuum few-atom sup)
A40J_PASS

real	3m48.755s
user	26m2.114s
sys	0m0.229s
DONE_EXIT=0
