digraph mux { rankdir = LR; if0 [shape=triangle, orientation=270]; if1 [shape=triangle, orientation=270]; prenot [shape=point, width=0]; not [shape=triangle, orientation=180]; in0 [shape=point]; sel [shape=point]; in1 [shape=point]; preout [shape=point, width=0]; out [shape=point, label=out]; edge [weight=1]; sel -> prenot [label=select, arrowhead=none]; prenot -> if1 [arrowhead=normal, tailport=s, headport=n]; prenot -> not [headport=n]; in0 -> if0 [label=in0, headport=w]; in1 -> if1 [label=in1, headport=w]; if0 -> preout [tailport=e, arrowhead=none]; if1 -> preout [tailport=e, arrowhead=none]; preout -> out [label=out]; not -> if0 [weight=42, headport=n, tailport=s, arrowtail=invodot]; {rank=same; sel ; in0 ; in1; } {rank=same; if0 ; if1; prenot; not;} }