|  |  | @@ -1,48 +0,0 @@ | 
		
	
		
			
			|  |  |  | import networkx as nx | 
		
	
		
			
			|  |  |  | from matplotlib import pyplot as plt | 
		
	
		
			
			|  |  |  | from vops import * | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | class Graph(object): | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def __init__(self, n): | 
		
	
		
			
			|  |  |  | self.vertices = [set() for i in xrange(n)] | 
		
	
		
			
			|  |  |  | self.vops = [hadamard for i in xrange(n)] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def add_edge(self, v1, v2): | 
		
	
		
			
			|  |  |  | self.vertices[v1].add(v2) | 
		
	
		
			
			|  |  |  | self.vertices[v2].add(v1) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def del_edge(self, v1, v2): | 
		
	
		
			
			|  |  |  | self.vertices[v1].remove(v2) | 
		
	
		
			
			|  |  |  | self.vertices[v2].remove(v1) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def edgelist(self): | 
		
	
		
			
			|  |  |  | edges = frozenset(frozenset((i, n)) | 
		
	
		
			
			|  |  |  | for i, v in enumerate(self.vertices) | 
		
	
		
			
			|  |  |  | for n in v) | 
		
	
		
			
			|  |  |  | return [tuple(e) for e in edges] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def draw(self, filename="out.pdf"): | 
		
	
		
			
			|  |  |  | g = nx.from_edgelist(self.edgelist()) | 
		
	
		
			
			|  |  |  | pos = nx.spring_layout(g) | 
		
	
		
			
			|  |  |  | nx.draw_networkx_nodes(g, pos, node_color="white", node_size=1000) | 
		
	
		
			
			|  |  |  | nx.draw_networkx_labels(g, pos) | 
		
	
		
			
			|  |  |  | nx.draw_networkx_edges(g, pos) | 
		
	
		
			
			|  |  |  | for i, vop in enumerate(self.vops): | 
		
	
		
			
			|  |  |  | if not i in pos: continue | 
		
	
		
			
			|  |  |  | x, y = pos[i] | 
		
	
		
			
			|  |  |  | plt.text(x, y+0.1, vops[vop], ha="center") | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | plt.axis('off') | 
		
	
		
			
			|  |  |  | plt.savefig(filename) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if __name__ == '__main__': | 
		
	
		
			
			|  |  |  | g = Graph(10) | 
		
	
		
			
			|  |  |  | g.add_edge(0, 1) | 
		
	
		
			
			|  |  |  | g.add_edge(1, 3) | 
		
	
		
			
			|  |  |  | g.add_edge(3, 2) | 
		
	
		
			
			|  |  |  | g.add_edge(3, 0) | 
		
	
		
			
			|  |  |  | g.add_edge(2, 0) | 
		
	
		
			
			|  |  |  | print g.edgelist() | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | g.draw() |