{"text_format":"3","workbook":"xls","n_sheets":7,"sheets":["Both same side or one collinear","Touch, left -> right","Equal","Collinear","Crossings  rel.order","Assemble1","Assemble2"],"not_rendered":{"images":14,"external_links":1},"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"Both same side or one collinear","index":0,"n_rows":49,"n_cols":14,"rows_kept":49,"flags":["formulas_cached_only"]}
["qi//p1","qk//p1",null,"qk//q",null,"pk//p","pk//q1","pk//q2","qi//p2","case","result"]
[1,1,"both left",-1,"q turns right",1,null,1,null,"BLR1","ui","condition 4",null,"pk//q2 == - qk//q"]
[1,1,"both left",-1,"q turns right",1,-1,0,null,"BLR2","cc","condition 1","pk//p == qi//p1 or pk//p == qk//p1","pk//q2 == 0"]
[1,1,"both left",-1,"q turns right",1,-1,-1,null,"BLR3","iu","condition 3",null,"pk//q1 == pk//q2 && pk//q1 == qk//q"]
[1,1,"both left",-1,"q turns right",1,0,null,null,"BLR4","xu","condition 2",null,"pk//q1 == 0"]
[1,1,"both left",-1,"q turns right",1,1,null,null,"BLR5","uu","condition 5",null,"pk//q1 == - qk//q"]
[1,1,"both left",-1,"q turns right",-1,{"$nulls":3},"BLR6","uu","condition 6","else (of condition 1 to 5)","pk//p == - qi//p1"]
[1,0,"both left",-1,"q turns right",1,-1,null,null,"BRL7","ix","condition 3"]
[1,0,"both left",-1,"q turns right",1,0,null,null,"BRL8","xx","condition 2"]
[1,0,"both left",-1,"q turns right",1,1,null,null,"BRL9","ux","condition 5"]
[1,0,"both left",-1,"q turns right",-1,{"$nulls":3},"BRL10","ux","condition 6"]
[]
[-1,-1,"both right",-1,"q turns right",-1,1,null,null,"BRR1","uu"]
[-1,-1,"both right",-1,"q turns right",-1,0,null,null,"BRR2","xu"]
[-1,-1,"both right",-1,"q turns right",-1,-1,-1,null,"BRR3","iu"]
[-1,-1,"both right",-1,"q turns right",-1,-1,0,null,"BRR4","cc"]
[-1,-1,"both right",-1,"q turns right",-1,null,1,null,"BRR5","ui"]
[-1,-1,"both right",-1,"q turns right",1,{"$nulls":3},"BRR6","ui"]
[]
[-1,-1,"both right",1,"q turns left",-1,null,-1,null,"BRL1","iu"]
[-1,-1,"both right",1,"q turns left",-1,1,0,null,"BRL2","cc"]
[-1,-1,"both right",1,"q turns left",-1,1,1,null,"BRL3","ui"]
[-1,-1,"both right",1,"q turns left",-1,0,null,null,"BRL4","xi"]
[-1,-1,"both right",1,"q turns left",-1,-1,null,null,"BRL5","ii"]
[-1,-1,"both right",1,"q turns left",1,{"$nulls":3},"BRL6","ii"]
[-1,0,"both right","1/0",null,-1,null,null,1,"BRL7","ux"]
[-1,0,"both right","1/0",null,-1,null,null,0,"BRL8","xx"]
[-1,0,"both right","1/0",null,"-1/0",null,null,-1,"BRL8","ix"]
[]
[1,1,"both left",1,"q turns left",1,-1,null,null,"BLL1","ii"]
[1,1,"both left",1,"q turns left",1,0,null,null,"BLL2","xi"]
[1,1,"both left",1,"q turns left",1,1,1,null,"BLL3","ui"]
[1,1,"both left",1,"q turns left",1,1,0,null,"BLL4","cc"]
[1,1,"both left",1,"q turns left",1,null,-1,null,"BLL5","iu"]
[1,1,"both left",1,"q turns left",-1,{"$nulls":3},"BLL6","iu"]
[]
[0,1,"cl left",-1,"q turns right",1,null,1,null,"CLR1","ui"]
[0,1,"cl left",-1,"q turns right",1,-1,0,null,"CLR2","cc"]
[0,1,"cl left",-1,"q turns right",1,-1,-1,null,"CLR3","iu"]
[0,1,"cl left",-1,"q turns right",0,0,null,null,"CLR4","xu"]
[]
[0,1,"cl left",-1,"q turns right",-1,{"$nulls":3},"CLR6","uu"]
[]
[-1,0,"cl right",-1,"q turns right",-1,1,null,-1,"CRR1","uu"]
[-1,0,"cl right",-1,"q turns right",-1,0,null,-1,"CRR2","xu"]
[-1,0,"cl right",-1,"q turns right",-1,-1,-1,-1,"CRR3","iu"]
[-1,0,"cl right",-1,"q turns right",0,-1,0,-1,"CRR4","cc"]
[]
[-1,0,"cl right",-1,"q turns right",1,null,null,1,"CRR6","ui"]

{"sheet":"Touch, left -> right","index":1,"n_rows":12,"n_cols":13,"rows_kept":12,"flags":["formulas_cached_only"]}
["qi//p1","qk//p1",null,"qk//q",null,"pk//p","pk//q1","pk//q2","case","result"]
[1,-1,"left to right",null,null,1,-1,null,"LR1","ii","pk//p == qi//p1","pk//q1 == qk//p1","condition 2"]
[1,-1,"left to right",null,null,1,0,null,"LR2","xi","pk//p == qi//p1","pk//q1 == 0","condition 1"]
[1,-1,"left to right",{"$nulls":5},"LR3","ui",null,"otherwise"]
[1,-1,"left to right",null,null,-1,null,0,"LR4","cc","pk//p == qk//p1","pk//q2 == 0","condition 3"]
[1,-1,"left to right",null,null,-1,null,-1,"LR5","iu","pk//p == qk//p1","pk//q2 == qk//p1","condition 4"]
[]
[-1,1,"right to left",null,null,1,null,1,"RL1","ui"]
[-1,1,"right to left",null,null,1,null,0,"RL2","cc"]
[-1,1,"right to left",{"$nulls":5},"RL3","iu"]
[-1,1,"right to left",null,null,-1,0,null,"RL4","xu"]
[-1,1,"right to left",null,null,-1,1,null,"RL5","uu"]

{"sheet":"Equal","index":2,"n_rows":12,"n_cols":8,"rows_kept":12,"flags":["formulas_cached_only"]}
["qi//p1","pk//p1","qk//p1","pk//q2","case","result"]
[0,1,1,1,"EBL1","ui","result depends on pk//q2","condition 2"]
[0,1,1,-1,"EBL2","iu","result depends on pk//q2"]
[0,1,1,0,"EBL3","cc",null,"condition 1"]
[0,-1,-1,-1,"EBR1","iu","result depends on pk//q2"]
[0,-1,-1,1,"EBR2","ui","result depends on pk//q2"]
[0,-1,-1,0,"EBR3","cc"]
[]
[0,-1,1,"n.a.","ELR1","iu",null,"condition 3"]
[0,1,-1,"n.a.","ELR2","ui"]
[0,0,"n.a.",0,"EC1","cc"]
[0,0,"n.a.",0,"EC2","cc"]

{"sheet":"Collinear","index":3,"n_rows":34,"n_cols":12,"rows_kept":34,"flags":["formulas_cached_only"]}
["qi//p1","oppos.","arrival P","arrival Q","pk//p1","qk//q1","product","case","result","result 2"]
[0,"false",1,-1,1,null,1,"CLL1","ui"]
[0,"false",-1,1,null,1,-1,"CLL2","iu"]
[0,"false",1,-1,1,null,1,"CLR1","ui"]
[0,"false",-1,1,null,-1,1,"CLR2","ui"]
[]
[0,"false",1,-1,-1,null,-1,"CRL1","iu"]
[0,"false",-1,1,null,1,-1,"CRL2","iu"]
[0,"false",1,-1,-1,null,-1,"CRR1","iu"]
[0,"false",-1,1,null,-1,1,"CRR2","ui"]
[]
[0,"false",1,-1,0,null,0,"CC1","cc"]
[0,"false",-1,1,null,0,0,"CC2","cc"]
[0,"false",0,0,1,-1,null,"cc-new1","ui"]
[]
[0,"true",1,1,1,-1,null,"CLO1","ix","xu","Turning left on opposite collinear: intersection","For either P or Q"]
[0,"true",1,1,1,0,null,"CLO2","ix","xx"]
[0,"true",1,1,1,1,null,"CLO3","ix","xi"]
[]
[0,"true",1,1,0,-1,null,"CCO1","xx","xu","No turn on opposite collinear: block, do not traverse","For either P or Q"]
[0,"true",1,1,0,0,null,"CCO2","xx","xx"]
[0,"true",1,1,0,1,null,"CCO3","xx","xi"]
[]
[0,"true",1,1,-1,-1,null,"CRO1","ux","xu","Turning right on opposite collinear: union","For either P or Q"]
[0,"true",1,1,-1,0,null,"CRO2","ux","xx"]
[0,"true",1,1,-1,1,null,"CRO3","ux","xi"]
[]
[0,"true",-1,1,null,-1,null,"CXO1","xu"]
[0,"true",-1,1,null,0,null,"CXO2","xx"]
[0,"true",-1,1,null,1,null,"CXO3","xi"]
[]
[0,"true",1,-1,1,null,null,"CXO4","ix"]
[0,"true",1,-1,0,null,null,"CXO5","xx"]
[0,"true",1,-1,-1,null,null,"CXO6","ux"]

{"sheet":"Crossings  rel.order","index":4,"n_rows":36,"n_cols":17,"rows_kept":36,"flags":["formulas_cached_only"]}
[null,"r1//p","r2//p","s1//p","s2//p","r1//s","r2//s","s1//r","s2//r","order R","case","r1 * r2 // s","s1 * s2 // r","take r or s","value","r1 * r1 * s1 // p","value*(r1*s1//p)"]
[{"$nulls":13},"If the one in L is 1 or 0, take that one (1). Else, if M is 1 or 0, take that one (-1). Else we don't know (0)"]
["left->right",1,-1,1,-1,1,1,-1,-1,"second","OLR1",1,1,1,1,1,1]
[null,1,-1,1,-1,-1,-1,1,1,"first","OLR2",1,1,1,-1,1,-1]
[null,1,-1,1,-1,1,1,-1,1,"second","OLR3",1,-1,1,1,1,1]
[null,1,-1,1,-1,-1,-1,1,-1,"first","OLR4",1,-1,1,-1,1,-1]
["LR, touch int.",1,-1,1,-1,1,0,-1,1,"second","OLR5",0,-1,1,1,1,1]
[null,1,-1,1,-1,-1,0,1,-1,"first","OLR6",0,-1,1,-1,1,-1]
[null,1,-1,1,-1,0,-1,-1,1,"first","OLR7",0,-1,1,-1,1,-1]
[null,1,-1,1,-1,0,1,1,-1,"second","OLR8",0,-1,1,1,1,1]
["LR, touch int.",1,-1,1,-1,1,-1,0,1,"first","OLR9",-1,0,-1,-1,1,-1]
[null,1,-1,1,-1,-1,1,0,-1,"second","OLR10",-1,0,-1,1,1,1]
[null,1,-1,1,-1,-1,1,1,0,"first","OLR11",-1,0,-1,-1,1,-1]
[null,1,-1,1,-1,1,-1,-1,0,"second","ORL12",-1,0,-1,1,1,1]
["LR, cross",1,-1,1,-1,-1,1,1,-1,"?","OLR13",-1,-1,0,0,1,0]
[null,1,-1,1,-1,1,-1,-1,1,"?","OLR14",-1,-1,0,0,1,0]
[null,1,-1,1,-1,-1,1,1,-1,"?","OLR15",-1,-1,0,0,1,0]
[null,1,-1,1,-1,1,-1,-1,1,"?","OLR16",-1,-1,0,0,1,0]
[]
["right->left",-1,1,-1,1,-1,-1,1,1,"second","ORL1",1,1,1,-1,-1,1]
[null,-1,1,-1,1,1,1,-1,-1,"first","ORL2",1,1,1,1,-1,-1]
[null,-1,1,-1,1,-1,-1,-1,1,"second","ORL3",1,-1,1,-1,-1,1]
[null,-1,1,-1,1,1,1,1,-1,"first","ORL4",1,-1,1,1,-1,-1]
[]
["different (r: lr)",1,-1,-1,1,-1,-1,-1,-1,"second","OD1",1,1,1,-1,-1,1]
[null,1,-1,-1,1,1,1,1,1,"first","OD2",1,1,1,1,-1,-1]
[null,1,-1,-1,1,-1,-1,1,-1,"second","OD3",1,-1,1,-1,-1,1]
[null,1,-1,-1,1,1,1,-1,1,"first","OD4",1,-1,1,1,-1,-1]
["different (r: rl)",-1,1,1,-1,1,1,1,1,"second","OD5",1,1,1,1,1,1]
[null,-1,1,1,-1,-1,-1,-1,-1,"first","OD6",1,1,1,-1,1,-1]
[null,-1,1,1,-1,1,1,1,-1,"second","OD7",1,-1,1,1,1,1]
[null,-1,1,1,-1,-1,-1,-1,1,"first","OD8",1,-1,1,-1,1,-1]
[null,1,-1,-1,1,-1,0,0,-1,"second","OD9",0,0,1,-1,-1,1]
[null,1,-1,-1,1,1,0,0,1,"first","OD10",0,0,1,1,-1,-1]
[null,-1,1,1,-1,-1,0,0,-1,"first","OD11",0,0,1,-1,1,-1]
[null,-1,1,1,-1,1,0,0,1,"second","OD12",0,0,1,1,1,1]

{"sheet":"Assemble1","index":5,"n_rows":71,"n_cols":16,"rows_kept":71,"flags":["formulas_cached_only"]}
[null,"Pext","Qext","P0","Q0","P1","Q1","P2","P3","Q2","Q3","stack","union,parent","intersection,parent"]
["Pext",{"$nulls":10},"size()=0","pext"]
["Qext","push(1,pExt)",{"$nulls":9},"size()=1",null,"qext"]
["P0","push(1,pExt)","push(-1,qExt)",{"$nulls":8},"top().c = -1",null,"top().id=qExt"]
["Q0","push(1,pExt)","push(-1,qExt)",{"$nulls":8},"top().c = -1",null,"top().id=qExt"]
["P1","push(1,pExt)",{"$nulls":9},"top().c = 1","top().id=pExt"]
["Q1","push(1,pExt)","push(-1,qExt)",{"$nulls":8},"top().c = -1",null,"top().id=qExt"]
["P2","push(1,pExt)","push(-1,qExt)",null,"pop",{"$nulls":6},"top().c = 1","top().id=pExt"]
["P3","push(1,pExt)","push(-1,qExt)",null,"pop",{"$nulls":6},"top().c = 1","top().id=pExt"]
["Q2","push(1,pExt)","push(-1,qExt)","pop",{"$nulls":7},"top().c = 1","top().id=pExt"]
["Q3","push(1,pExt)","push(-1,qExt)","pop",{"$nulls":7},"top().c = 1","top().id=pExt"]
[]
[]
[]
[null,"Qext","Q0","Pext","P0",{"$nulls":6},"stack","union,parent","intersection,parent"]
["Qext",{"$nulls":10},"size()=0","qExt"]
["Q0","push(1,qExt)",{"$nulls":9},"top().c = 1","top().id=qExt"]
["Pext","push(1,qExt)","pop",{"$nulls":8},"size()=0","pExt"]
["P0","push(1,qExt)","pop","push(1,pExt)",{"$nulls":7},"top().c = 1","top().id=pExt"]
[]
[]
[null,"Pext","P0","Qest"]
["Pext"]
["P0","push(0,qExt)"]
["Qext","push(1,qExt)","pop"]
{"$rows_empty":10}
[null,"Pext","Qext","P0","Q0","T1","T2",{"$nulls":4},"stack","union,parent"]
["Pext",{"$nulls":10},"size()=0","pext"]
["Qext","push(0,pExt)",{"$nulls":9},"size()=1"]
["P0","push(0,pExt)","push(-1,qExt)",{"$nulls":8},"(intersects)","skip"]
["Q0","push(0,pExt)","push(-1,qExt)","n.a.",{"$nulls":7},"(intersects)","skip"]
["T1","push(0,pExt)","push(-1,qExt)","n.a.","n.a.",{"$nulls":6},"top().c = -1,new","traversed, pop until c<>-1, top().id=pExt"]
["T2","push(0,pExt)","push(-1,qExt)","n.a.","n.a.",{"$nulls":6},"top().c = -1,new","traversed, pop until c<>-1, top().id=pExt"]
[]
[]
[]
[null,"Pext","Qext","P0","Q0","I1","I2",{"$nulls":4},"stack",null,"intersection,parent"]
["Pext",{"$nulls":10},"size()=0"]
["Qext","push(0,pExt)",{"$nulls":9},"size()=1",null,"qext"]
["P0","push(0,pExt)","push(-1,qExt)",{"$nulls":8},"(intersects)",null,"skip"]
["Q0","push(0,pExt)","push(-1,qExt)","n.a.",{"$nulls":7},"(intersects)",null,"skip"]
["I1","push(0,pExt)","push(-1,qExt)","n.a.","n.a.",{"$nulls":8},"top().c=-1, top().id=qExt"]
["I2","push(0,pExt)","push(-1,qExt)","n.a.","n.a.","pop",{"$nulls":7},"traversed, size()=0"]
[]
[]
[null,"U1","Pext","Qext","P0","Q0",{"$nulls":5},"stack","union,parent"]
["U1",{"$nulls":11},"traversed"]
["Pext","n.a.",{"$nulls":10},"(intersects)"]
["Qext","n.a.","push(0,pExt)",{"$nulls":9},"(intersects)"]
["P0","parent=U1","push(0,pExt)","push(-1,qExt)",{"$nulls":8},"top().c=-1"]
["Q0","parent=U1","push(0,pExt)","push(-1,qExt)",{"$nulls":8},"top().c=-1"]
[]
[]
[null,"Pext","Qext","U1","P0","Q0",{"$nulls":5},"stack",null,"intersection,parent"]
["Pext",{"$nulls":12},"(intersects)"]
["Qext","push(0,pExt)",{"$nulls":11},"(intersects)"]
["U1",null,"push(-1,qExt)",{"$nulls":10},"traversed"]
["P0","push(0,pExt)","push(-1,qExt)","T.push(U1)",{"$nulls":9},"top().c=-1, T.top().id=U1"]
["Q0","push(0,pExt)","push(-1,qExt)","T.push(U1)",{"$nulls":9},"top().c=-1, T.top().id=U1"]
[]
[]
[{"$nulls":15},"equal holes disjoint"]

{"sheet":"Assemble2","index":6,"n_rows":73,"n_cols":16,"rows_kept":73,"flags":["formulas_cached_only"]}
[null,"Pext","Qext","P0","Q0","P1","Q1","P2","P3","Q2","Q3"]
["Pext"]
["Qext","push(1,pExt)"]
[]
[null,"Qext","Pext"]
["P2","assign qExt","assign pExt"]
["P3","assign qExt","push(-1,qExt)"]
["Q1","assign qExt"]
["Q2","assign qExt","push(-1,qExt)"]
["Q3","assign qExt","push(-1,qExt)",null,"pop"]
["P1",null,"push(-1,qExt)",null,"pop"]
["P0","assign qExt","push(-1,qExt)","pop"]
["Q0","assign qExt","push(-1,qExt)","pop"]
[]
[]
[]
[null,"Qext","Q0","Pext","P0"]
["Qext"]
["Q0","push(1,qExt)"]
["Pext","push(1,qExt)","pop"]
["P0","push(1,qExt)","pop","push(1,pExt)"]
[]
[]
[null,"Pext","P0","Qest"]
["Pext"]
["P0","push(0,qExt)"]
["Qext","push(1,qExt)","pop"]
{"$rows_empty":10}
[null,"Pext","Qext","P0","Q0","T1","T2"]
["Pext"]
["Qext","push(0,pExt)"]
["P0","push(0,pExt)","push(-1,qExt)"]
["Q0","push(0,pExt)","push(-1,qExt)","n.a."]
["T1","push(0,pExt)","push(-1,qExt)","n.a.","n.a."]
["T2","push(0,pExt)","push(-1,qExt)","n.a.","n.a."]
[]
[]
[]
[null,"Pext","Qext","P0","Q0","I1","I2"]
["Pext"]
["Qext","push(0,pExt)"]
["P0","push(0,pExt)","push(-1,qExt)"]
["Q0","push(0,pExt)","push(-1,qExt)","n.a."]
["I1","push(0,pExt)","push(-1,qExt)","n.a.","n.a."]
["I2","push(0,pExt)","push(-1,qExt)","n.a.","n.a.","pop"]
[]
[]
[null,"U1","Pext","Qext","P0","Q0"]
["U1"]
["Pext","n.a."]
["Qext","n.a.","push(0,pExt)"]
["P0","parent=U1","push(0,pExt)","push(-1,qExt)"]
["Q0","parent=U1","push(0,pExt)","push(-1,qExt)"]
[]
[]
[null,"Pext","Qext","U1","P0","Q0"]
["Pext"]
["Qext","push(0,pExt)"]
["U1",null,"push(-1,qExt)"]
["P0","push(0,pExt)","push(-1,qExt)","T.push(U1)"]
["Q0","push(0,pExt)","push(-1,qExt)","T.push(U1)"]
[]
[]
[{"$nulls":15},"equal holes disjoint"]