Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion qiskit/circuit/instruction.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,6 @@ def repeat(self, n):
qc.add_register(qargs)
if cargs:
qc.add_register(cargs)
qc._data = [(self, qargs[:], cargs[:])] * n
qc.data = [(self, qargs[:], cargs[:])] * n
instruction.definition = qc
return instruction
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/dcx.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ def _define(self):
(CXGate(), [q[0], q[1]], []),
(CXGate(), [q[1], q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def to_matrix(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/h.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ def _define(self):
rules = [
(U2Gate(0, pi), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -194,7 +196,9 @@ def _define(self):
(HGate(), [q[1]], []),
(SdgGate(), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/iswap.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@ def _define(self):
(CXGate(), [q[1], q[0]], []),
(HGate(), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def to_matrix(self):
Expand Down
5 changes: 2 additions & 3 deletions qiskit/circuit/library/standard_gates/ms.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,8 @@ def _define(self):
theta = self.params[0]
q = QuantumRegister(self.num_qubits, 'q')
qc = QuantumCircuit(q, name=self.name)
rules = []
for i in range(self.num_qubits):
for j in range(i + 1, self.num_qubits):
rules += [(RXXGate(theta), [q[i], q[j]], [])]
qc._data = rules
qc._append(RXXGate(theta), [q[i], q[j]], [])

self.definition = qc
2 changes: 1 addition & 1 deletion qiskit/circuit/library/standard_gates/p.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ def _define(self):
scaled_lam = self.params[0] / (2 ** (self.num_ctrl_qubits - 1))
bottom_gate = CPhaseGate(scaled_lam)
definition = _gray_code_chain(q, self.num_ctrl_qubits, bottom_gate)
qc._data = definition
qc.data = definition
self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/r.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ def _define(self):
rules = [
(U3Gate(theta, phi - pi / 2, -phi + pi / 2), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/rx.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ def _define(self):
rules = [
(RGate(self.params[0], 0), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -181,7 +183,9 @@ def _define(self):
(CXGate(), [q[0], q[1]], []),
(U3Gate(self.params[0] / 2, -pi / 2, 0), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/rxx.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,9 @@ def _define(self):
(HGate(), [q[1]], []),
(HGate(), [q[0]], []),
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/ry.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ def _define(self):
rules = [
(RGate(self.params[0], pi / 2), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -176,7 +178,9 @@ def _define(self):
(U3Gate(-self.params[0] / 2, 0, 0), [q[1]], []),
(CXGate(), [q[0], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/ryy.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ def _define(self):
(RXGate(-np.pi / 2), [q[0]], []),
(RXGate(-np.pi / 2), [q[1]], []),
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/rz.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ def _define(self):
rules = [
(U1Gate(theta), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -193,7 +195,9 @@ def _define(self):
(U1Gate(-self.params[0] / 2), [q[1]], []),
(CXGate(), [q[0], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/rzx.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,9 @@ def _define(self):
(CXGate(), [q[0], q[1]], []),
(HGate(), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/rzz.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ def _define(self):
(RZGate(theta), [q[1]], []),
(CXGate(), [q[0], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/s.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ def _define(self):
rules = [
(U1Gate(pi / 2), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down Expand Up @@ -117,7 +119,9 @@ def _define(self):
rules = [
(U1Gate(-pi / 2), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/swap.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ def _define(self):
(CXGate(), [q[1], q[0]], []),
(CXGate(), [q[0], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -217,7 +219,9 @@ def _define(self):
(CCXGate(), [q[0], q[1], q[2]], []),
(CXGate(), [q[2], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
8 changes: 6 additions & 2 deletions qiskit/circuit/library/standard_gates/t.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ def _define(self):
rules = [
(U1Gate(pi / 4), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down Expand Up @@ -118,7 +120,9 @@ def _define(self):
rules = [
(U1Gate(-pi / 4), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
11 changes: 8 additions & 3 deletions qiskit/circuit/library/standard_gates/u1.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,9 @@ def _define(self):
rules = [
(U3Gate(0, 0, self.params[0]), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -184,7 +186,9 @@ def _define(self):
(CXGate(), [q[0], q[1]], []),
(U1Gate(self.params[0] / 2), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -273,7 +277,8 @@ def _define(self):
scaled_lam = self.params[0] / (2 ** (self.num_ctrl_qubits - 1))
bottom_gate = CU1Gate(scaled_lam)
definition = _gray_code_chain(q, self.num_ctrl_qubits, bottom_gate)
qc._data = definition
for instr, qargs, cargs in definition:
qc._append(instr, qargs, cargs)
self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/u2.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ def _define(self):
q = QuantumRegister(1, 'q')
qc = QuantumCircuit(q, name=self.name)
rules = [(U3Gate(pi / 2, self.params[0], self.params[1]), [q[0]], [])]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
4 changes: 3 additions & 1 deletion qiskit/circuit/library/standard_gates/u3.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,9 @@ def _define(self):
(CXGate(), [q[0], q[1]], []),
(U3Gate(self.params[0] / 2, self.params[1], 0), [q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def inverse(self):
Expand Down
30 changes: 22 additions & 8 deletions qiskit/circuit/library/standard_gates/x.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ def _define(self):
rules = [
(U3Gate(pi, 0, pi), [q[0]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -317,7 +319,9 @@ def _define(self):
(TdgGate(), [q[1]], []),
(CXGate(), [q[0], q[1]], [])
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -396,7 +400,9 @@ def _define(self):
(U1Gate(-pi / 4), [q[2]], []), # inverse T gate
(U2Gate(0, pi), [q[2]], []), # H gate
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def to_matrix(self):
Expand Down Expand Up @@ -487,7 +493,9 @@ def _define(self):
(HGate(), [q[3]], [])
]
qc = QuantumCircuit(q)
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -596,7 +604,9 @@ def _define(self):
(U1Gate(-pi / 4), [q[3]], []),
(U2Gate(0, pi), [q[3]], []),
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def to_matrix(self):
Expand Down Expand Up @@ -677,7 +687,9 @@ def _define(self):
(C3XGate(), [q[0], q[1], q[2], q[3]], []),
(C3XGate(numpy.pi / 8), [q[0], q[1], q[2], q[4]], []),
]
qc._data = rules
for instr, qargs, cargs in rules:
qc._append(instr, qargs, cargs)

self.definition = qc

def control(self, num_ctrl_qubits=1, label=None, ctrl_state=None):
Expand Down Expand Up @@ -841,8 +853,9 @@ def _define(self):
qc._append(C4XGate(), q[:], [])
self.definition = qc
else:
for instr, qargs, cargs in self._recurse(q[:-1], q_ancilla=q[-1]):
qc._append(instr, qargs, cargs)
self.definition = qc
self.definition._data = self._recurse(q[:-1], q_ancilla=q[-1])

def _recurse(self, q, q_ancilla=None):
# recursion stop
Expand Down Expand Up @@ -954,5 +967,6 @@ def _define(self):
definition.append(
(RCCXGate(), [q_controls[j], q_ancillas[i], q_ancillas[i + 1]], []))

qc._data = definition
for instr, qargs, cargs in definition:
qc._append(instr, qargs, cargs)
self.definition = qc
Loading