================================================================================
BSD Replication Package -- Mathematical and Computational Tests (v2)
================================================================================
Manuscript: BSD_Resolution.tex
Tests verify: entropy functional, HEA convergence from random starts,
Frobenius weights (LMFDB), Hessian at equilibrium, KL divergence,
truncated entropy scaling, embedded rank agreement, functional equation.

NOTE: Full L-function evaluation and Mordell-Weil rank computation require
SageMath / PARI-GP (not available). Ranks use embedded LMFDB reference values.
================================================================================

ENTROPY_bounds PASS: d=2: S(uniform)=0.6931471806, log(d)=0.6931471806
ENTROPY_bounds PASS: d=5: S(uniform)=1.6094379124, log(d)=1.6094379124
ENTROPY_bounds PASS: d=10: S(uniform)=2.3025850930, log(d)=2.3025850930
ENTROPY_deterministic PASS: S(1,0,0)=0.00e+00 (expect 0)
GRAD_vanishes PASS: d=2: ||projected gradient||=0.00e+00
GRAD_vanishes PASS: d=5: ||projected gradient||=0.00e+00
GRAD_vanishes PASS: d=8: ||projected gradient||=0.00e+00
HESSIAN_equilibrium PASS: m_p=2 j=0: FD_hessian=-1.999956, analytic=-2.000000, rel_err=2.21e-05
HESSIAN_equilibrium PASS: m_p=2 j=1: FD_hessian=-1.999956, analytic=-2.000000, rel_err=2.21e-05
HESSIAN_equilibrium PASS: m_p=3 j=0: FD_hessian=-2.999823, analytic=-3.000000, rel_err=5.91e-05
HESSIAN_equilibrium PASS: m_p=3 j=1: FD_hessian=-2.999823, analytic=-3.000000, rel_err=5.91e-05
HESSIAN_equilibrium PASS: m_p=3 j=2: FD_hessian=-2.999601, analytic=-3.000000, rel_err=1.33e-04
HESSIAN_equilibrium PASS: m_p=5 j=0: FD_hessian=-4.999778, analytic=-5.000000, rel_err=4.43e-05
HESSIAN_equilibrium PASS: m_p=5 j=1: FD_hessian=-4.999778, analytic=-5.000000, rel_err=4.43e-05
HESSIAN_equilibrium PASS: m_p=5 j=2: FD_hessian=-5.000000, analytic=-5.000000, rel_err=8.27e-08
HESSIAN_equilibrium PASS: m_p=5 j=3: FD_hessian=-5.000222, analytic=-5.000000, rel_err=4.45e-05
HESSIAN_equilibrium PASS: m_p=5 j=4: FD_hessian=-5.000222, analytic=-5.000000, rel_err=4.45e-05
KL_divergence_zero PASS: D_KL(uniform||uniform)=0.00e+00 (expect 0)
KL_divergence_pos PASS: 11a1 p=2: D_KL=0.27665165 >= 0
KL_divergence_pos PASS: 11a1 p=3: D_KL=0.04226557 >= 0
KL_divergence_pos PASS: 37a1 p=2: D_KL=0.27665165 >= 0
KL_divergence_pos PASS: 37a1 p=3: D_KL=0.44737181 >= 0
KL_divergence_pos PASS: 389a1 p=2: D_KL=0.00000000 >= 0
KL_divergence_pos PASS: 389a1 p=3: D_KL=0.00000000 >= 0
KL_divergence_pos PASS: 5077a1 p=2: D_KL=0.27665165 >= 0
KL_divergence_pos PASS: 5077a1 p=3: D_KL=0.44737181 >= 0
FROB_weights PASS: 11a1 p=2: t_p=-0.707107, lam=(0.146447,0.853553), sum=1.00000000000000, |t_p|<=0.707107
FROB_weights PASS: 11a1 p=3: t_p=-0.288675, lam=(0.355662,0.644338), sum=1.00000000000000, |t_p|<=0.288675
FROB_weights PASS: 11a1 p=5: t_p=0.223607, lam=(0.611803,0.388197), sum=1.00000000000000, |t_p|<=0.223607
FROB_weights PASS: 11a1 p=7: t_p=-0.377964, lam=(0.311018,0.688982), sum=1.00000000000000, |t_p|<=0.377964
FROB_weights PASS: 11a1 p=13: t_p=0.554700, lam=(0.777350,0.222650), sum=1.00000000000000, |t_p|<=0.554700
FROB_weights PASS: 11a1 p=17: t_p=-0.242536, lam=(0.378732,0.621268), sum=1.00000000000000, |t_p|<=0.242536
FROB_weights PASS: 11a1 p=19: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 11a1 p=23: t_p=-0.104257, lam=(0.447871,0.552129), sum=1.00000000000000, |t_p|<=0.104257
FROB_weights PASS: 11a1 p=29: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 37a1 p=2: t_p=-0.707107, lam=(0.146447,0.853553), sum=1.00000000000000, |t_p|<=0.707107
FROB_weights PASS: 37a1 p=3: t_p=-0.866025, lam=(0.066987,0.933013), sum=1.00000000000000, |t_p|<=0.866025
FROB_weights PASS: 37a1 p=5: t_p=-0.447214, lam=(0.276393,0.723607), sum=1.00000000000000, |t_p|<=0.447214
FROB_weights PASS: 37a1 p=7: t_p=-0.188982, lam=(0.405509,0.594491), sum=1.00000000000000, |t_p|<=0.188982
FROB_weights PASS: 37a1 p=11: t_p=-0.753778, lam=(0.123111,0.876889), sum=1.00000000000000, |t_p|<=0.753778
FROB_weights PASS: 37a1 p=13: t_p=-0.277350, lam=(0.361325,0.638675), sum=1.00000000000000, |t_p|<=0.277350
FROB_weights PASS: 37a1 p=17: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 37a1 p=19: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 37a1 p=23: t_p=0.208514, lam=(0.604257,0.395743), sum=1.00000000000000, |t_p|<=0.208514
FROB_weights PASS: 37a1 p=29: t_p=0.557086, lam=(0.778543,0.221457), sum=1.00000000000000, |t_p|<=0.557086
FROB_weights PASS: 389a1 p=2: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 389a1 p=3: t_p=0.000000, lam=(0.500000,0.500000), sum=1.00000000000000, |t_p|<=0.000000
FROB_weights PASS: 389a1 p=5: t_p=0.223607, lam=(0.611803,0.388197), sum=1.00000000000000, |t_p|<=0.223607
FROB_weights PASS: 389a1 p=7: t_p=-0.188982, lam=(0.405509,0.594491), sum=1.00000000000000, |t_p|<=0.188982
FROB_weights PASS: 389a1 p=11: t_p=0.150756, lam=(0.575378,0.424622), sum=1.00000000000000, |t_p|<=0.150756
FROB_weights PASS: 389a1 p=13: t_p=0.138675, lam=(0.569338,0.430662), sum=1.00000000000000, |t_p|<=0.138675
FROB_weights PASS: 389a1 p=17: t_p=-0.727607, lam=(0.136197,0.863803), sum=1.00000000000000, |t_p|<=0.727607
FROB_weights PASS: 389a1 p=19: t_p=-0.917663, lam=(0.041169,0.958831), sum=1.00000000000000, |t_p|<=0.917663
FROB_weights PASS: 389a1 p=23: t_p=-0.729800, lam=(0.135100,0.864900), sum=1.00000000000000, |t_p|<=0.729800
FROB_weights PASS: 389a1 p=29: t_p=0.557086, lam=(0.778543,0.221457), sum=1.00000000000000, |t_p|<=0.557086
FROB_weights PASS: 5077a1 p=2: t_p=-0.707107, lam=(0.146447,0.853553), sum=1.00000000000000, |t_p|<=0.707107
FROB_weights PASS: 5077a1 p=3: t_p=-0.866025, lam=(0.066987,0.933013), sum=1.00000000000000, |t_p|<=0.866025
FROB_weights PASS: 5077a1 p=5: t_p=-0.894427, lam=(0.052786,0.947214), sum=1.00000000000000, |t_p|<=0.894427
FROB_weights PASS: 5077a1 p=7: t_p=-0.755929, lam=(0.122036,0.877964), sum=1.00000000000000, |t_p|<=0.755929
FROB_weights PASS: 5077a1 p=11: t_p=-0.904534, lam=(0.047733,0.952267), sum=1.00000000000000, |t_p|<=0.904534
FROB_weights PASS: 5077a1 p=13: t_p=-0.554700, lam=(0.222650,0.777350), sum=1.00000000000000, |t_p|<=0.554700
FROB_weights PASS: 5077a1 p=17: t_p=-0.485071, lam=(0.257464,0.742536), sum=1.00000000000000, |t_p|<=0.485071
FROB_weights PASS: 5077a1 p=19: t_p=-0.802955, lam=(0.098522,0.901478), sum=1.00000000000000, |t_p|<=0.802955
FROB_weights PASS: 5077a1 p=23: t_p=-0.625543, lam=(0.187228,0.812772), sum=1.00000000000000, |t_p|<=0.625543
FROB_weights PASS: 5077a1 p=29: t_p=-0.557086, lam=(0.221457,0.778543), sum=1.00000000000000, |t_p|<=0.557086
LOCAL_entropy PASS: 11a1 p=2: S_p=0.41649553, log2=0.69314718
LOCAL_entropy PASS: 11a1 p=3: S_p=0.65088161, log2=0.69314718
LOCAL_entropy PASS: 11a1 p=5: S_p=0.66793457, log2=0.69314718
LOCAL_entropy PASS: 37a1 p=2: S_p=0.41649553, log2=0.69314718
LOCAL_entropy PASS: 37a1 p=3: S_p=0.24577537, log2=0.69314718
LOCAL_entropy PASS: 37a1 p=5: S_p=0.58951449, log2=0.69314718
LOCAL_entropy PASS: 389a1 p=2: S_p=0.69314718, log2=0.69314718
LOCAL_entropy PASS: 389a1 p=3: S_p=0.69314718, log2=0.69314718
LOCAL_entropy PASS: 389a1 p=5: S_p=0.66793457, log2=0.69314718
LOCAL_entropy PASS: 5077a1 p=2: S_p=0.41649553, log2=0.69314718
LOCAL_entropy PASS: 5077a1 p=3: S_p=0.24577537, log2=0.69314718
LOCAL_entropy PASS: 5077a1 p=5: S_p=0.20663931, log2=0.69314718
LOCAL_entropy_max PASS: S_p at t_p=0 (lam=0.5,0.5) = 0.69314718055995 == log2=0.69314718055995
TRUNC_entropy_scaling PASS: 11a1: S_I^(X) at 9 primes, monotone=True, range=[0.4165, 5.6229]
TRUNC_entropy_scaling PASS: 37a1: S_I^(X) at 10 primes, monotone=True, range=[0.4165, 5.5405]
TRUNC_entropy_scaling PASS: 389a1: S_I^(X) at 10 primes, monotone=True, range=[0.6931, 5.5890]
TRUNC_entropy_scaling PASS: 5077a1: S_I^(X) at 10 primes, monotone=True, range=[0.4165, 3.8650]
RANK_embedded PASS: 11a1: embedded_rank=0, expected=0
RANK_embedded PASS: 37a1: embedded_rank=1, expected=1
RANK_embedded PASS: 389a1: embedded_rank=2, expected=2
RANK_embedded PASS: 5077a1: embedded_rank=3, expected=3
HEA_random_start PASS: d=2: converged=True, n_iter=30, residual=1.58e-10, max_dev_from_uniform=8.88e-06
HEA_random_start PASS: d=3: converged=True, n_iter=19, residual=9.35e-11, max_dev_from_uniform=6.18e-06
HEA_random_start PASS: d=5: converged=True, n_iter=15, residual=3.12e-11, max_dev_from_uniform=2.79e-06
HEA_random_start PASS: d=10: converged=True, n_iter=6, residual=4.44e-16, max_dev_from_uniform=6.94e-17
HEA_nontrivial_iterations PASS: d=5: converged=True, n_iter=17 (>5 required)
DIRICHLET_hecke PASS: p=2: a_p=-2, a_p2=2, a_p3=0 (Hecke recurrence)
DIRICHLET_hecke PASS: p=3: a_p=-1, a_p2=-2, a_p3=5 (Hecke recurrence)
DIRICHLET_hecke PASS: p=5: a_p=1, a_p2=-4, a_p3=-9 (Hecke recurrence)
DIRICHLET_hecke PASS: p=7: a_p=-2, a_p2=-3, a_p3=20 (Hecke recurrence)
DIRICHLET_hecke PASS: p=13: a_p=4, a_p2=3, a_p3=-40 (Hecke recurrence)
DIRICHLET_hecke PASS: p=17: a_p=-2, a_p2=-13, a_p3=60 (Hecke recurrence)
DIRICHLET_hecke PASS: p=19: a_p=0, a_p2=-19, a_p3=0 (Hecke recurrence)
DIRICHLET_hecke PASS: p=23: a_p=-1, a_p2=-22, a_p3=45 (Hecke recurrence)
DIRICHLET_hecke PASS: p=29: a_p=0, a_p2=-29, a_p3=0 (Hecke recurrence)
DIRICHLET_mult PASS: a_{6} = a_{2}*a_{3} = -2*-1 = 2, LMFDB ref = 2
DIRICHLET_mult PASS: a_{10} = a_{2}*a_{5} = -2*1 = -2, LMFDB ref = -2
DIRICHLET_mult PASS: a_{14} = a_{2}*a_{7} = -2*-2 = 4, LMFDB ref = 4
DIRICHLET_mult PASS: a_{15} = a_{3}*a_{5} = -1*1 = -1, LMFDB ref = -1
DIRICHLET_mult PASS: a_{21} = a_{3}*a_{7} = -1*-2 = 2, LMFDB ref = 2
DIRICHLET_weil PASS: p=2: |a_p|=2 <= 2*sqrt(p)=2.8284
DIRICHLET_weil PASS: p=3: |a_p|=1 <= 2*sqrt(p)=3.4641
DIRICHLET_weil PASS: p=5: |a_p|=1 <= 2*sqrt(p)=4.4721
DIRICHLET_weil PASS: p=7: |a_p|=2 <= 2*sqrt(p)=5.2915
DIRICHLET_weil PASS: p=13: |a_p|=4 <= 2*sqrt(p)=7.2111
DIRICHLET_weil PASS: p=17: |a_p|=2 <= 2*sqrt(p)=8.2462
DIRICHLET_weil PASS: p=19: |a_p|=0 <= 2*sqrt(p)=8.7178
DIRICHLET_weil PASS: p=23: |a_p|=1 <= 2*sqrt(p)=9.5917
DIRICHLET_weil PASS: p=29: |a_p|=0 <= 2*sqrt(p)=10.7703
EULER_convergence PASS: L(11a1, 2) partial products: first_delta=0.079404, last_delta=0.000022, final=0.538102
EULER_finite PASS: L(11a1, 2) ~ 0.538102 (finite, positive)

Overall: 116/116 PASS