(0) vertices on the ellipse: x^2/a^2 + y^2/b^2 - 1 == 0 for P1, P2: [True, True]
(1) all four sides tangent to the confocal caustic lambda = a^2b^2/(a^2+b^2): [True, True, True, True]
(2) reflection law (d_in.T)^2|d_out|^2 = (d_out.T)^2|d_in|^2 at the four vertices: [True, True, True, True]
(3) A =  -4*C*S*a*b
    A_M depends on x or y: False
    A*A_M - 8a^4b^4/(a^2+b^2)^2 == 0 (identically in t, a, b, x, y): True
    (no reality assumption on x, y: the identity holds for complex M; c1 = c2 = 0 for N = 4)
    sample a=2,b=1,t=1/3: A*A_M = 128/25 (128/25 expected)
    signs (d_in.T)(d_out.T) at the sample (must all be +1): [1, 1, 1, 1]
(4) outer polygon: A'_M/A' = 1/2 ; depends on t: False ; A'*A'_M depends on t: True
    A*A' = 8*a**2*b**2 (Chavez-Caliz: constant)
(5) wrong input: version-2 parallelogram (a c, b s), (-a s, b c), ... (not a billiard orbit) gave A*A_M = 80000/10441 at a=2,b=1,t=1/3 instead of 128/25: detected by the tangency check.
done
