# check_k203a.py  mp.dps = 60

## Part 1: identities (max abs error over random complex points)
  m.m = dn^2/(b^2 cn^2 D)            max err = 1.2446e-60
  chord on line                      max err = 6.223e-61
  tangent to caustic                 max err = 3.1657e-61
  m odd about Jacobi poles           max err = 4.6765e-60
  m even about K+iK' points          max err = 5.5587e-60
  P odd about Jacobi poles           max err = 6.7152e-60
  P even about K+iK' points          max err = 7.6499e-60
  dn(K+iK')=0                        max err = 2.6116e-62
  dn(Z+e)/e at e=1e-10, 1e-20: (2.93638631869e-53 + 0.5j), (2.93638631869e-43 + 0.5j) (equal and nonzero -> simple zero)

## Part 2: geometric cross-check for one real orbit (tangency, reflection law, feet)
  a=1.6 b=1 N=4 tau=1: closure roots lam = ['0.719101123595506']
    closure |P_N - P_0| = 1.1668e-60;  N*h/(4K) = 1.0
    on ellipse 1.5558e-61, chord tangent to caustic 7.6484e-61, reflection law 3.8894e-61, feet Jacobi vs geometric 9.3345e-61
    A = 3.12468287830033, A_M = 1.32392680114175, A*A_M = 4.13685140765055
  a=2.3 b=1 N=8 tau=1: closure roots lam = ['0.296112296884353']
    closure |P_N - P_0| = 1.6335e-60;  N*h/(4K) = 1.0
    on ellipse 7.7788e-62, chord tangent to caustic 4.0092e-61, reflection law 3.1115e-61, feet Jacobi vs geometric 5.4451e-61
    A = 6.31839526053371, A_M = 6.62968687270979, A*A_M = 41.8889821153521
  a=2.3 b=1 N=8 tau=3: closure roots lam = ['0.999485628809536']
    closure |P_N - P_0| = 4.0547e-57;  N*h/(4K) = 3.0
    on ellipse 1.5558e-61, chord tangent to caustic 4.0917e-58, reflection law 8.2222e-59, feet Jacobi vs geometric 1.3237e-57
    A = 4.84408878564593, A_M = 0.663962488307507, A*A_M = 3.21629324369997

## Part 3: A*A_M along the family (12 phases), relative spread; M real and complex
  a=1.3 b=1 N= 4 tau=1: M0: prod 8.87e-61 ratio 0.0606 | M1: prod 8.87e-61 ratio 0.0606 | M2: prod 2.27e-60 ratio 0.0606 | M3: prod 1.63e-59 ratio 0.0606 | M4: prod 1.14e-60 ratio 0.0606
  a=1.3 b=1 N= 8 tau=1: M0: prod 3.19e-61 ratio 3.45e-5 | M1: prod 4.34e-61 ratio 3.45e-5 | M2: prod 4.44e-61 ratio 3.45e-5 | M3: prod 2.03e-61 ratio 3.45e-5 | M4: prod 6.74e-61 ratio 3.45e-5
  a=1.3 b=1 N= 8 tau=3: M0: prod 1.42e-59 ratio 0.0243 | M1: prod 9.43e-59 ratio 0.0243 | M2: prod 1.3e-59 ratio 0.0243 | M3: prod 1.6e-59 ratio 0.0243 | M4: prod 1.11e-59 ratio 0.0243
  a=1.3 b=1 N=12 tau=1: M0: prod 2.57e-61 ratio 1.71e-8 | M1: prod 2.73e-61 ratio 1.71e-8 | M2: prod 3.29e-61 ratio 1.71e-8 | M3: prod 2.92e-61 ratio 1.71e-8 | M4: prod 3.47e-61 ratio 1.71e-8
  a=1.3 b=1 N=12 tau=5: M0: prod 1.52e-58 ratio 0.00262 | M1: prod 3.09e-57 ratio 0.00262 | M2: prod 1.2e-58 ratio 0.00262 | M3: prod 1.6e-58 ratio 0.00262 | M4: prod 1.32e-58 ratio 0.00262
  a=1.3 b=1 N=16 tau=3: M0: prod 2.38e-61 ratio 3.98e-10 | M1: prod 4.14e-61 ratio 3.98e-10 | M2: prod 5.46e-61 ratio 3.98e-10 | M3: prod 4.46e-61 ratio 3.98e-10 | M4: prod 6.09e-61 ratio 3.98e-10
  a=1.3 b=1 N= 6 tau=1: M0: prod 0.00132 ratio 3.52e-61 | M1: prod 0.00132 ratio 5.55e-61 | M2: prod 0.00132 ratio 4.83e-61 | M3: prod 0.00132 ratio 4.0e-61 | M4: prod 0.00132 ratio 1.02e-60
  a=1.3 b=1 N=10 tau=3: M0: prod 0.000113 ratio 7.15e-61 | M1: prod 0.000113 ratio 1.86e-60 | M2: prod 0.000113 ratio 2.15e-60 | M3: prod 0.000113 ratio 1.44e-60 | M4: prod 0.000113 ratio 1.54e-60
  a=1.3 b=1 N= 3 tau=1: M0: prod 6.13e-61 ratio 0.0317 | M1: prod 0.335 ratio 0.345 | M2: prod 0.199 ratio 0.199 | M3: prod 0.0367 ratio 0.0561 | M4: prod 0.23 ratio 0.23
  a=1.3 b=1 N= 5 tau=2: M0: prod 4.99e-59 ratio 0.0233 | M1: prod 1.8 ratio 1.07 | M2: prod 0.101 ratio 0.1 | M3: prod 0.0193 ratio 0.0338 | M4: prod 0.189 ratio 0.188
  a=1.3 b=1 N= 7 tau=1: M0: prod 1.2e-61 ratio 2.63e-9 | M1: prod 5.33e-5 ratio 5.34e-5 | M2: prod 7.96e-5 ratio 7.96e-5 | M3: prod 2.21e-5 ratio 2.21e-5 | M4: prod 0.000121 ratio 0.000121
  a=2.0 b=1 N= 4 tau=1: M0: prod 2.07e-60 ratio 0.325 | M1: prod 2.31e-60 ratio 0.325 | M2: prod 3.4e-60 ratio 0.325 | M3: prod 2.6e-59 ratio 0.325 | M4: prod 2.2e-60 ratio 0.325
  a=2.0 b=1 N= 8 tau=1: M0: prod 4.19e-61 ratio 0.00162 | M1: prod 4.47e-61 ratio 0.00162 | M2: prod 6.52e-61 ratio 0.00162 | M3: prod 4.26e-61 ratio 0.00162 | M4: prod 4.91e-61 ratio 0.00162
  a=2.0 b=1 N= 8 tau=3: M0: prod 4.39e-58 ratio 0.287 | M1: prod 4.68e-58 ratio 0.287 | M2: prod 5.97e-58 ratio 0.287 | M3: prod 4.49e-58 ratio 0.287 | M4: prod 5.3e-58 ratio 0.287
  a=2.0 b=1 N=12 tau=1: M0: prod 2.52e-61 ratio 4.01e-6 | M1: prod 2.21e-61 ratio 4.01e-6 | M2: prod 2.77e-61 ratio 4.01e-6 | M3: prod 5.84e-61 ratio 4.01e-6 | M4: prod 4.4e-61 ratio 4.01e-6
  a=2.0 b=1 N=12 tau=5: M0: prod 7.67e-56 ratio 0.0142 | M1: prod 7.5e-56 ratio 0.0142 | M2: prod 8.7e-56 ratio 0.0142 | M3: prod 7.62e-56 ratio 0.0142 | M4: prod 8.28e-56 ratio 0.0142
  a=2.0 b=1 N=16 tau=3: M0: prod 1.04e-60 ratio 8.53e-7 | M1: prod 1.37e-60 ratio 8.53e-7 | M2: prod 1.56e-60 ratio 8.53e-7 | M3: prod 1.42e-60 ratio 8.53e-7 | M4: prod 1.39e-60 ratio 8.53e-7
  a=2.0 b=1 N= 6 tau=1: M0: prod 0.0234 ratio 4.84e-61 | M1: prod 0.0234 ratio 8.02e-61 | M2: prod 0.0234 ratio 8.37e-61 | M3: prod 0.0234 ratio 4.77e-61 | M4: prod 0.0234 ratio 1.17e-60
  a=2.0 b=1 N=10 tau=3: M0: prod 0.00963 ratio 6.05e-60 | M1: prod 0.00963 ratio 5.64e-60 | M2: prod 0.00963 ratio 2.93e-59 | M3: prod 0.00963 ratio 5.61e-60 | M4: prod 0.00963 ratio 8.82e-60
  a=2.0 b=1 N= 3 tau=1: M0: prod 2.36e-59 ratio 0.318 | M1: prod 0.425 ratio 0.541 | M2: prod 0.89 ratio 0.891 | M3: prod 0.179 ratio 0.388 | M4: prod 0.548 ratio 0.547
  a=2.0 b=1 N= 5 tau=2: M0: prod 3.08e-57 ratio 0.313 | M1: prod 0.472 ratio 0.548 | M2: prod 0.785 ratio 0.784 | M3: prod 0.161 ratio 0.377 | M4: prod 0.562 ratio 0.56
  a=2.0 b=1 N= 7 tau=1: M0: prod 3.95e-61 ratio 2.31e-6 | M1: prod 0.000907 ratio 0.000909 | M2: prod 0.00169 ratio 0.00169 | M3: prod 0.000576 ratio 0.000573 | M4: prod 0.00187 ratio 0.00187
  a=3.5 b=1 N= 4 tau=1: M0: prod 5.82e-60 ratio 0.66 | M1: prod 5.55e-60 ratio 0.66 | M2: prod 8.83e-60 ratio 0.66 | M3: prod 2.95e-59 ratio 0.66 | M4: prod 7.03e-60 ratio 0.66
  a=3.5 b=1 N= 8 tau=1: M0: prod 4.75e-61 ratio 0.0153 | M1: prod 3.62e-61 ratio 0.0153 | M2: prod 1.63e-60 ratio 0.0153 | M3: prod 4.85e-61 ratio 0.0153 | M4: prod 7.68e-61 ratio 0.0153
  a=3.5 b=1 N= 8 tau=3: M0: prod 8.6e-57 ratio 0.654 | M1: prod 7.18e-57 ratio 0.654 | M2: prod 7.98e-56 ratio 0.654 | M3: prod 6.67e-57 ratio 0.654 | M4: prod 1.12e-56 ratio 0.654
  a=3.5 b=1 N=12 tau=1: M0: prod 4.87e-61 ratio 8.3e-5 | M1: prod 3.47e-61 ratio 8.3e-5 | M2: prod 7.31e-61 ratio 8.3e-5 | M3: prod 2.35e-61 ratio 8.3e-5 | M4: prod 4.47e-61 ratio 8.3e-5
  a=3.5 b=1 N=12 tau=5: M0: prod 2.45e-53 ratio 0.0221 | M1: prod 2.06e-53 ratio 0.0221 | M2: prod 2.28e-52 ratio 0.0221 | M3: prod 1.91e-53 ratio 0.0221 | M4: prod 3.21e-53 ratio 0.0221
  a=3.5 b=1 N=16 tau=3: M0: prod 1.88e-60 ratio 7.44e-5 | M1: prod 2.05e-60 ratio 7.44e-5 | M2: prod 2.55e-60 ratio 7.44e-5 | M3: prod 2.15e-60 ratio 7.44e-5 | M4: prod 2.08e-60 ratio 7.44e-5
  a=3.5 b=1 N= 6 tau=1: M0: prod 0.121 ratio 3.22e-60 | M1: prod 0.121 ratio 2.15e-60 | M2: prod 0.121 ratio 5.27e-60 | M3: prod 0.121 ratio 2.66e-60 | M4: prod 0.121 ratio 3.15e-60
  a=3.5 b=1 N=10 tau=3: M0: prod 0.0905 ratio 1.73e-59 | M1: prod 0.0905 ratio 1.3e-59 | M2: prod 0.0905 ratio 8.6e-59 | M3: prod 0.0905 ratio 1.32e-59 | M4: prod 0.0905 ratio 2.5e-59
  a=3.5 b=1 N= 3 tau=1: M0: prod 1.63e-58 ratio 0.711 | M1: prod 0.452 ratio 0.799 | M2: prod 1.75 ratio 1.26 | M3: prod 0.593 ratio 0.835 | M4: prod 0.71 ratio 0.71
  a=3.5 b=1 N= 5 tau=2: M0: prod 9.54e-56 ratio 0.71 | M1: prod 0.461 ratio 0.799 | M2: prod 1.79 ratio 1.15 | M3: prod 0.582 ratio 0.832 | M4: prod 0.718 ratio 0.716
  a=3.5 b=1 N= 7 tau=1: M0: prod 8.58e-61 ratio 0.000123 | M1: prod 0.00433 ratio 0.00422 | M2: prod 0.0103 ratio 0.0104 | M3: prod 0.00541 ratio 0.00531 | M4: prod 0.00744 ratio 0.0074

## Part 3b: A*c0, A*c1x, A*c1y, A*c2 relative spread along the family (c2 isotropy check too)
  a=1.3 N= 4 tau=1: isotropy |c2x-c2y| 3.11e-61 | A*c0 8.87e-61 | A*c1x all~0 | A*c1y all~0 | A*c2 all~0 | sizes 2.77e-60, 1.97e-60
  a=2.0 N= 8 tau=3: isotropy |c2x-c2y| 1.56e-61 | A*c0 4.39e-58 | A*c1x all~0 | A*c1y all~0 | A*c2 4.42e-58 | sizes 7.35e-60, 6.92e-58
  a=3.5 N=12 tau=1: isotropy |c2x-c2y| 2.49e-60 | A*c0 4.87e-61 | A*c1x all~0 | A*c1y all~0 | A*c2 3.86e-60 | sizes 3.82e-59, 3.82e-59
  a=2.0 N= 3 tau=1: isotropy |c2x-c2y| 1.56e-61 | A*c0 2.36e-59 | A*c1x 1.02 | A*c1y 2.0 | A*c2 2.55e-59 | sizes 0.0468, 0.618
  a=2.0 N= 5 tau=1: isotropy |c2x-c2y| 6.22e-61 | A*c0 9.04e-61 | A*c1x 0.997 | A*c1y 1.96 | A*c2 2.54e-60 | sizes 0.229, 0.12
  a=2.0 N= 6 tau=1: isotropy |c2x-c2y| 6.22e-61 | A*c0 0.0234 | A*c1x all~0 | A*c1y all~0 | A*c2 0.0234 | sizes 1.86e-59, 4.69e-60
  a=1.3 N=10 tau=1: isotropy |c2x-c2y| 1.24e-60 | A*c0 9.75e-7 | A*c1x all~0 | A*c1y all~0 | A*c2 9.75e-7 | sizes 3.56e-60, 2.37e-60

## Part 4: behaviour near a vertex pole u0 and near a side-isotropic point u1 (N=8, a=2)
  near u0 (vertex pole):
    eps=1e-6: |A| = 1.99932e+6, |A_M| = 1.67089e-5, A*A_M = (33.40637685028750271352797 + 4.506499456734155772712001e-54j)
    eps=1e-9: |A| = 1.99932e+9, |A_M| = 1.67089e-8, A*A_M = (33.40637685028750271352797 - 1.012124910480818377287252e-50j)
    eps=1e-12: |A| = 1.99932e+12, |A_M| = 1.67089e-11, A*A_M = (33.40637685028750271352797 - 8.147568255470623292169721e-49j)
  near u1 (side isotropic):
    eps=1e-6: |A| = 1.53725e-5, |A_M| = 2.17312e+6, A*A_M = (33.40637685028750271352797 + 2.638343287558252908176878e-48j)
    eps=1e-9: |A| = 1.53725e-8, |A_M| = 2.17312e+9, A*A_M = (33.40637685028750271352797 - 1.393448496524928995700738e-42j)
    eps=1e-12: |A| = 1.53725e-11, |A_M| = 2.17312e+12, A*A_M = (33.40637685028750271352797 - 2.099614720516362064198685e-35j)
  real-phase value of A*A_M for comparison: 33.40637685028750271352797

## Part 5: repeated traversals (control): minimal period n traversed r times, list length N=nr
  n=3 r=4 N=12: relative spread of A*A_M = 0.425
  n=6 r=2 N=12: relative spread of A*A_M = 0.0234
  n=4 r=2 N=8: relative spread of A*A_M = 2.67e-60

## Part 6: symmetry identities at the special phases (Lemma 3.7: Q_{i+1}=Q_{i-1} at u1; Lemma 3.9: m_{rho(i)} = m_i at u0)
  a=1.6 N=4 tau=1: max|m_rho(i) - m_i| at u0 = 1.28e-60; |A_M(u0+1e-30)| = 1.8e-30; |Q_(i+1)-Q_(i-1)| at u1+eps for eps=1e-8,1e-16: 2.26e-8, 2.26e-16
  a=2.0 N=8 tau=1: max|m_rho(i) - m_i| at u0 = 2.5e-60; |A_M(u0+1e-30)| = 1.67e-29; |Q_(i+1)-Q_(i-1)| at u1+eps for eps=1e-8,1e-16: 2.48e-7, 2.48e-15
  a=2.0 N=8 tau=3: max|m_rho(i) - m_i| at u0 = 2.04e-56; |A_M(u0+1e-30)| = 7.03e-31; |Q_(i+1)-Q_(i-1)| at u1+eps for eps=1e-8,1e-16: 5.71e-9, 5.71e-17
  a=1.3 N=12 tau=5: max|m_rho(i) - m_i| at u0 = 3.25e-56; |A_M(u0+1e-30)| = 5.32e-32; |Q_(i+1)-Q_(i-1)| at u1+eps for eps=1e-8,1e-16: 9.66e-9, 9.66e-17
