Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 93d23b8

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /