ソースを参照

Add stress test

master
Pete Shadbolt 8年前
コミット
342934df42
1個のファイルの変更40行の追加0行の削除
  1. +40
    -0
      examples/stress_test.py

+ 40
- 0
examples/stress_test.py ファイルの表示

@@ -0,0 +1,40 @@
from abp.fancy import GraphState
from abp.util import xyz
import numpy as np
import time
import itertools

funny_unit_cell = (((0, 0), (0, 1)), ((0, 0), (1, 0)),
((1, 0), (1, 1)), ((0, 1), (1, 1)), ((0, 0), (.5, .5)))


def add_offset(vector, offset):
""" Offset a vector in n-dimensional space """
return tuple(v + o for v, o in zip(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}


def lattice(unit_cell, size):
""" Generate a lattice from a unit cell """
edges = set()
for offset in itertools.product(*map(range, size)):
edges |= offset_unit_cell(unit_cell, offset)

nodes = set(itertools.chain(*edges))
return nodes, edges

# s = VisibleGraphState()
nodes, edges = lattice(funny_unit_cell, (10, 10))

psi = GraphState()
for node in nodes:
psi.add_node(str(node), position=xyz(node[0], node[1]))
psi.act_hadamard(str(node))

for edge in edges:
psi.act_cz(str(edge[0]), str(edge[1]))


読み込み中…
キャンセル
保存