Skip to content

Commit 93d23b8

Browse files
committed
revise some bugs.
1 parent 9ee7950 commit 93d23b8

File tree

3 files changed

+1144
-13
lines changed

3 files changed

+1144
-13
lines changed

tensorcircuit/cloud/tencent.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def map_qubits(self, chip_addrs: Optional[List[int]], user_addrs: List[int] = No
4444

4545
self._used_chip_qubits = chip_addrs
4646
self._used_user_qubits = user_addrs
47-
self._used_user_pairs = [e for e in self._qubit_pairs if e[0] in chip_addrs and e[1] in user_addrs]
47+
inherited_pairs = [e for e in self._qubit_pairs if e[0] in chip_addrs and e[1] in chip_addrs]
48+
self._used_user_pairs = [(user_addrs[chip_addrs.index(e[0])], user_addrs[chip_addrs.index(e[1])]) for e in inherited_pairs]
4849

4950
def map_qubit(self, chip_addr: int, user_addr: int) -> None:
5051
if chip_addr not in self._qubits:
@@ -59,16 +60,15 @@ def map_qubit(self, chip_addr: int, user_addr: int) -> None:
5960
return
6061

6162
def pair_qubit(self, user_addr1: int, user_addr2: int, dual: bool = True, add_remove: bool = True) -> None:
62-
original_pair = (user_addr1, user_addr2)
63-
6463
def update_pairs(user_addr1: int, user_addr2: int, add_remove: bool = True):
64+
original_pair = (user_addr1, user_addr2)
6565
if add_remove:
6666
if original_pair in getattr(self, "_used_user_pairs", []):
6767
return
68-
self._qubit_mapping = getattr(self, "_used_user_pairs", []) + [original_pair]
68+
self._used_user_pairs = getattr(self, "_used_user_pairs", []) + [original_pair]
6969
else:
7070
try:
71-
self._qubit_mapping = getattr(self, "_used_user_pairs", []) - [original_pair]
71+
self._used_user_pairs = getattr(self, "_used_user_pairs", []) - [original_pair]
7272
except ValueError:
7373
raise ValueError(f"Qubit pair {user_addr1}-{user_addr2} does not exist to remove")
7474
update_pairs(user_addr1, user_addr2, add_remove)

tests/04_test_custom_chip.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,18 @@ def run_circuit(qc):
4040
# 以下是两种映射方式
4141
tp = Topology(d)
4242
# tp.map_qubits([6,3,4,1])
43-
# tp.map_qubits([6,3,4,1], [3,2,1,0])
43+
tp.map_qubits([6,3,4,1], [3,2,1,0])
4444

45-
tp.map_qubit(0, 6)
46-
tp.map_qubit(1, 3)
47-
tp.map_qubit(2, 4)
48-
tp.map_qubit(3, 1)
45+
# tp.map_qubit(6, 0)
46+
# tp.map_qubit(3, 1)
47+
# tp.map_qubit(4, 2)
48+
# tp.map_qubit(1, 3)
4949

50-
tp.pair_qubit(0, 1)
51-
tp.pair_qubit(0, 2)
52-
tp.pair_qubit(1, 3)
50+
# tp.pair_qubit(0, 1)
51+
# tp.pair_qubit(0, 2)
52+
# tp.pair_qubit(1, 3)
53+
pragma = tp.pragma()
54+
print(qc.to_tqasm(pragma=pragma))
5355
t = submit_task(
5456
circuit=qc,
5557
shots=shots_const,

0 commit comments

Comments
 (0)