|  |  | @@ -4,12 +4,16 @@ | 
		
	
		
			
			|  |  |  | This module implements Anders and Briegel's method for fast simulation of Clifford circuits. | 
		
	
		
			
			|  |  |  | """ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | from __future__ import absolute_import | 
		
	
		
			
			|  |  |  | from __future__ import print_function | 
		
	
		
			
			|  |  |  | import itertools as it | 
		
	
		
			
			|  |  |  | import json, random | 
		
	
		
			
			|  |  |  | from . import qi, clifford, util | 
		
	
		
			
			|  |  |  | import abp | 
		
	
		
			
			|  |  |  | from .stabilizer import Stabilizer | 
		
	
		
			
			|  |  |  | import requests | 
		
	
		
			
			|  |  |  | from six.moves import range | 
		
	
		
			
			|  |  |  | from six.moves import zip | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | class GraphState(object): | 
		
	
	
		
			
				|  |  | @@ -63,12 +67,12 @@ class GraphState(object): | 
		
	
		
			
			|  |  |  | self._del_node(node) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def _add_node(self, node, **kwargs): | 
		
	
		
			
			|  |  |  | """ Add a node. | 
		
	
		
			
			|  |  |  | """ Add a node. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | By default, nodes are initialized with ``vop=``:math:`I`, i.e. they are in the :math:`|+\\rangle` state. | 
		
	
		
			
			|  |  |  | """ | 
		
	
		
			
			|  |  |  | if node in self.node: | 
		
	
		
			
			|  |  |  | print("Warning: node {} already exists".format(node)) | 
		
	
		
			
			|  |  |  | print(("Warning: node {} already exists".format(node))) | 
		
	
		
			
			|  |  |  | return | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | default = kwargs.get("default", "identity") | 
		
	
	
		
			
				|  |  | @@ -91,7 +95,7 @@ class GraphState(object): | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | >>> g._add_node(0, label="fred", position=(1,2,3)) | 
		
	
		
			
			|  |  |  | >>> g.node[0]["label"] | 
		
	
		
			
			|  |  |  | fred | 
		
	
		
			
			|  |  |  | fred | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | """ | 
		
	
		
			
			|  |  |  | kwargs["vop"] = clifford.by_name[ | 
		
	
	
		
			
				|  |  | @@ -500,17 +504,17 @@ class GraphState(object): | 
		
	
		
			
			|  |  |  | self.url = requests.get("https://abv.peteshadbolt.co.uk/").url | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | data = json.dumps(self.to_json(stringify=True)) | 
		
	
		
			
			|  |  |  | print("Shared state to {}".format(self.url)) | 
		
	
		
			
			|  |  |  | print(("Shared state to {}".format(self.url))) | 
		
	
		
			
			|  |  |  | return requests.post("{}/graph".format(self.url), data=data) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def pull(self, url=None): | 
		
	
		
			
			|  |  |  | """ Loads the state from the server """ | 
		
	
		
			
			|  |  |  | if url: | 
		
	
		
			
			|  |  |  | if url: | 
		
	
		
			
			|  |  |  | self.url = url | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | response = requests.get("{}/graph".format(self.url)) | 
		
	
		
			
			|  |  |  | self.from_json(json.loads(response.content)) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 |