input: input_vertices_rational.json  (n = 7)
E1 ok: all 7 vertices exactly on S^2 with z > 0
E2 g(Q) simple (exact): True; signed doubled area 2.32836 (> 0 means counterclockwise)
E2 origin strictly left of every edge line of g(Q) (exact): True
E2 winding number of g(Q) about the origin (exact): 1
E2 => Q simple, R star-shaped wrt N with N interior to the kernel, Q in the open hemisphere about N: True
E3 sign det(v_{i-1}, v_i, v_{i+1}) for i = 0..6: [-1, 1, 1, -1, 1, 1, 1]
E3 exact sign of the sine numerator s_i: [-1, 1, 1, -1, 1, 1, 1]
  v0: l_0 = [0.78889606314918803, 0.78889606314918803]  tau_0 = [-1.9175737534231705, -1.9175737534231705]  interior angle (deg) ~ 289.8689
  v1: l_1 = [0.52032465247350213, 0.52032465247350213]  tau_1 = [0.39966880627369727, 0.39966880627369727]  interior angle (deg) ~ 157.1007
  v2: l_2 = [1.0597090726299079, 1.0597090726299079]  tau_2 = [2.7373976261019881, 2.7373976261019881]  interior angle (deg) ~ 23.1587
  v3: l_3 = [0.49884944992244468, 0.49884944992244468]  tau_3 = [-0.16375805599643822, -0.16375805599643822]  interior angle (deg) ~ 189.3826
  v4: l_4 = [1.0077478840580918, 1.0077478840580918]  tau_4 = [1.7628534681898571, 1.7628534681898571]  interior angle (deg) ~ 78.9959
  v5: l_5 = [0.29146338185852994, 0.29146338185852994]  tau_5 = [1.9867793518819625, 1.9867793518819625]  interior angle (deg) ~ 66.1659
  v6: l_6 = [0.66004770455838424, 0.66004770455838424]  tau_6 = [1.0494574330733171, 1.0494574330733171]  interior angle (deg) ~ 119.8705
Gauss-Bonnet: sum tau = [5.8548248761012136, 5.8548248761012136], Area(fan about N) = [0.42836043107837307, 0.42836043107837307], sum tau + Area - 2pi = [-1.4157849037207239e-89, 1.2964933557314622e-89] (contains 0: True)
cut at v0: crossing pairs [(0, 6)] ; certified-disjoint pairs 14 ; undecided [] ; adjacent ok True
   end point w_n = ([0.058189206960420813, 0.058189206960420813], [0.065285138866881365, 0.065285138866881365])
   CROSS segments (0,6): signs (o1,o2,o3,o4) = -++- ; o = [[-0.46747394338566339, -0.46747394338566339], [0.051503189034230748, 0.051503189034230748], [0.03476828703784042, 0.03476828703784042], [-0.48420884538205372, -0.48420884538205372]]
   distances of endpoints from the other line: [-0.592567, 0.065285, 0.052675, -0.733597] ; certified lower bound 0.052675
   crossing at fraction [0.066993870954819026, 0.066993870954819026] of segment 0 and [0.90076019574488586, 0.90076019574488586] of segment 6
cut at v1: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([-0.11416339647668435, -0.11416339647668435], [-0.23663302940543104, -0.23663302940543104])
cut at v2: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([-0.029874941896166667, -0.029874941896166667], [0.47966828569981312, 0.47966828569981312])
cut at v3: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([-0.13037849434080695, -0.13037849434080695], [0.018478384395350645, 0.018478384395350645])
cut at v4: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([-0.1517737873914986, -0.1517737873914986], [0.20824985740327487, 0.20824985740327487])
cut at v5: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([-0.094286464903439629, -0.094286464903439629], [0.30711704660036582, 0.30711704660036582])
cut at v6: crossing pairs [] ; certified-disjoint pairs 15 ; undecided [] ; adjacent ok True
   end point w_n = ([0.10125882203921051, 0.10125882203921051], [0.19725681665529504, 0.19725681665529504])
