Parcourir la source

Not much

master
Pete Shadbolt il y a 5 ans
Parent
révision
261c3a1c0f
3 fichiers modifiés avec 13 ajouts et 14 suppressions
  1. +7
    -1
      abp/graphstate.py
  2. +0
    -8
      examples/visualization/pull.py
  3. +6
    -5
      examples/visualization/raussendorf.py

+ 7
- 1
abp/graphstate.py Voir le fichier

@@ -12,6 +12,7 @@ from . import qi, clifford, util
import abp
from .stabilizer import Stabilizer
import requests
import numpy as np
from six.moves import range
from six.moves import zip

@@ -504,7 +505,12 @@ class GraphState(object):
if self.url == None:
self.url = requests.get("https://abv.peteshadbolt.co.uk/").url

data = json.dumps(self.to_json(stringify=True))
def default(o):
if isinstance(o, np.int64):
return int(o)
raise TypeError

data = json.dumps(self.to_json(stringify=True), default=default)
print(("Shared state to {}".format(self.url)))
return requests.post("{}/graph".format(self.url), data=data)



+ 0
- 8
examples/visualization/pull.py Voir le fichier

@@ -1,8 +0,0 @@
from __future__ import absolute_import
from __future__ import print_function
from abp import GraphState

psi = GraphState()
psi.pull("https://abv.peteshadbolt.co.uk/dakota-illinois-nuts-blue")
print(psi)


+ 6
- 5
examples/visualization/raussendorf.py Voir le fichier

@@ -19,7 +19,7 @@ raussendorf_unit_cell = (
((2, 1, 0), (2, 1, 1)), ((2, 0, 1), (2, 1, 1)),
((2, 1, 2), (2, 1, 1)), ((2, 2, 1), (2, 1, 1)),
((1, 0, 0), (1, 0, 1)), ((0, 0, 1), (1, 0, 1)),
((1, 0, 2), (1, 0, 1)), ((2, 0, 1), (1, 0, 1)),
((1, 0, 2), (1, 0, 1)), ((2, 0, 1), (1, 0, 1)),
((1, 2, 0), (1, 2, 1)), ((0, 2, 1), (1, 2, 1)),
((1, 2, 2), (1, 2, 1)), ((2, 2, 1), (1, 2, 1)))

@@ -31,7 +31,8 @@ def add_offset(vector, offset):

def offset_unit_cell(unit_cell, offset):
""" Offset a unit cell """
return {(add_offset(a, offset), add_offset(b, offset)) for a, b in unit_cell}
return {(add_offset(a, offset), add_offset(b, offset))
for a, b in unit_cell}


def lattice(unit_cell, size):
@@ -43,12 +44,13 @@ def lattice(unit_cell, size):
nodes = set(itertools.chain(*edges))
return nodes, edges

nodes, edges = lattice(raussendorf_unit_cell, (2, 2, 3 ))

nodes, edges = lattice(raussendorf_unit_cell, (2, 2, 3))

psi = GraphState()
for node in nodes:
x, y, z = node
color = "red" if (x+y+z) % 2 > 0 else "black"
color = "red" if (x+y+z) % 2 > 0 else "black"
psi.add_qubit(node, position=xyz(*node), color=color)
psi.act_hadamard(node)

@@ -56,4 +58,3 @@ for edge in edges:
psi.act_cz(edge[0], edge[1])

psi.push()


Chargement…
Annuler
Enregistrer