a = 8/5  b = 1  lam = 64/169  a''^2 = 9216/4225  b''^2 = 105/169  c^2 = 39/25
lam equals a^2 b^2/(a+b)^2: True
--- member I: first vertex (8/5, 0) ---
first chord direction (centre on the left): ((-8/105)*sqrt105, 1)
all generated vertices on E: True
P7 == P1 (closure after six reflections): True ; direction returns: True
earlier returns to P1 (must be none): []
six distinct vertices: True
vertices:
  P1 = (8/5, 0)
  P2 = (64/65, (1/13)*sqrt105)
  P3 = (-64/65, (1/13)*sqrt105)
  P4 = (-8/5, 0)
  P5 = (-64/65, (-1/13)*sqrt105)
  P6 = (64/65, (-1/13)*sqrt105)
  chord 1: tangent to C: True; contact parameter 5/13; strictly inside: True
  chord 2: tangent to C: True; contact parameter 1/2; strictly inside: True
  chord 3: tangent to C: True; contact parameter 8/13; strictly inside: True
  chord 4: tangent to C: True; contact parameter 5/13; strictly inside: True
  chord 5: tangent to C: True; contact parameter 1/2; strictly inside: True
  chord 6: tangent to C: True; contact parameter 8/13; strictly inside: True
reflection law at every vertex (normal bisects the angle): True
all turns positive: True ; ccw around O: True ; winding number: 1 ; convex: True
outer polygon P': [(8/5, (1/21)*sqrt105), (0, (13/105)*sqrt105), (-8/5, (1/21)*sqrt105), (-8/5, (-1/21)*sqrt105), (0, (-13/105)*sqrt105), (8/5, (-1/21)*sqrt105)]
Ant(P;O): [(8/5, (1/525)*sqrt105), (0, (517/2625)*sqrt105), (-8/5, (1/525)*sqrt105), (-8/5, (-1/525)*sqrt105), (0, (-517/2625)*sqrt105), (8/5, (-1/525)*sqrt105)]
  A = (336/845)*sqrt105
  Aprime = (96/175)*sqrt105
  Aii = (41472/142805)*sqrt105
  AstarO = (2784/4375)*sqrt105
  Af1 = (32/125)*sqrt105
  Af2 = (32/125)*sqrt105
  AprimeAstarO = 801792/21875
  AprimeA = 96768/4225
  Aprime_over_Aii = 28561/15120
  AprimeAntPprimeO = 271752/6125
  AprimeAf1 = 9216/625
  AprimeAf2 = 9216/625
member I: all defining checks pass: True
--- member II: first vertex (0, 1) ---
first chord direction (centre on the left): (-12/5, -1)
all generated vertices on E: True
P7 == P1 (closure after six reflections): True ; direction returns: True
earlier returns to P1 (must be none): []
six distinct vertices: True
vertices:
  P1 = (0, 1)
  P2 = (-96/65, 5/13)
  P3 = (-96/65, -5/13)
  P4 = (0, -1)
  P5 = (96/65, -5/13)
  P6 = (96/65, 5/13)
  chord 1: tangent to C: True; contact parameter 8/13; strictly inside: True
  chord 2: tangent to C: True; contact parameter 1/2; strictly inside: True
  chord 3: tangent to C: True; contact parameter 5/13; strictly inside: True
  chord 4: tangent to C: True; contact parameter 8/13; strictly inside: True
  chord 5: tangent to C: True; contact parameter 1/2; strictly inside: True
  chord 6: tangent to C: True; contact parameter 5/13; strictly inside: True
reflection law at every vertex (normal bisects the angle): True
all turns positive: True ; ccw around O: True ; winding number: 1 ; convex: True
outer polygon P': [(-16/15, 1), (-26/15, 0), (-16/15, -1), (16/15, -1), (26/15, 0), (16/15, 1)]
Ant(P;O): [(-79/60, 1), (-757/480, 0), (-79/60, -1), (79/60, -1), (757/480, 0), (79/60, 1)]
  A = 3456/845
  Aprime = 28/5
  Aii = 84672/28561
  AstarO = 463/80
  Af1 = 2304/875
  Af2 = 2304/875
  AprimeAstarO = 3241/100
  AprimeA = 96768/4225
  Aprime_over_Aii = 28561/15120
  AprimeAntPprimeO = 264992/5625
  AprimeAf1 = 9216/625
  AprimeAf2 = 9216/625
member II: all defining checks pass: True

=== comparison with the values printed in the note (Table 1, Theorem 1, Remark 3.2) ===
  I: A: printed (336/845)*sqrt105 ; computed (336/845)*sqrt105 ; equal: True
  I: Aprime: printed (96/175)*sqrt105 ; computed (96/175)*sqrt105 ; equal: True
  I: AstarO: printed (2784/4375)*sqrt105 ; computed (2784/4375)*sqrt105 ; equal: True
  I: AprimeAstarO: printed 801792/21875 ; computed 801792/21875 ; equal: True
  I: Af1: printed (32/125)*sqrt105 ; computed (32/125)*sqrt105 ; equal: True
  I: Af2: printed (32/125)*sqrt105 ; computed (32/125)*sqrt105 ; equal: True
  I: AprimeAf1: printed 9216/625 ; computed 9216/625 ; equal: True
  I: AprimeA: printed 96768/4225 ; computed 96768/4225 ; equal: True
  I: Aprime_over_Aii: printed 28561/15120 ; computed 28561/15120 ; equal: True
  I: AprimeAntPprimeO: printed 271752/6125 ; computed 271752/6125 ; equal: True
  II: A: printed 3456/845 ; computed 3456/845 ; equal: True
  II: Aprime: printed 28/5 ; computed 28/5 ; equal: True
  II: AstarO: printed 463/80 ; computed 463/80 ; equal: True
  II: AprimeAstarO: printed 3241/100 ; computed 3241/100 ; equal: True
  II: Af1: printed 2304/875 ; computed 2304/875 ; equal: True
  II: Af2: printed 2304/875 ; computed 2304/875 ; equal: True
  II: AprimeAf1: printed 9216/625 ; computed 9216/625 ; equal: True
  II: AprimeA: printed 96768/4225 ; computed 96768/4225 ; equal: True
  II: Aprime_over_Aii: printed 28561/15120 ; computed 28561/15120 ; equal: True
  II: AprimeAntPprimeO: printed 264992/5625 ; computed 264992/5625 ; equal: True
  caption: outer polygon of II = (+-16/15, +-1), (+-26/15, 0): True
  caption: Ant(II;O) = (+-79/60, +-1), (+-757/480, 0): True
  Prop. 3.1 at (8/5,1): outer polygon of I as printed: True
  Prop. 3.1 at (8/5,1): Ant(I;O) as printed: True
  difference A'A*_O(I) - A'A*_O(II) = 371293/87500 ; equals 13^5/(2^2 5^5 7): True
  kappa(a,b,lam) = 338/525 ; equals 338/525: True
  I: A*_f1 = A*_f2 = kappa*A: True
  II: A*_f1 = A*_f2 = kappa*A: True
  (ab/(a''b''))^2 = 28561/15120 ; equals A'/A'' at both members: True

=== negative control: member II with the first direction perturbed by 1/1000 ===
  chords tangent to C: [False, False, False, False, False, False] ; closes after six: False
  control rejected as it must be: True

ALL CHECKS PASS: True   (elapsed 0.02 s)
