diff --git a/qiskit/ignis/characterization/coherence/circuits.py b/qiskit/ignis/characterization/coherence/circuits.py index 2ce96f4d8..16580a5fd 100644 --- a/qiskit/ignis/characterization/coherence/circuits.py +++ b/qiskit/ignis/characterization/coherence/circuits.py @@ -19,6 +19,7 @@ from typing import List, Union, Tuple import numpy as np import qiskit +from qiskit.circuit.library import U1Gate, U2Gate from ..characterization_utils import pad_id_gates @@ -104,7 +105,7 @@ def t2star_circuits(num_of_gates: Union[List[int], np.array], for qind, qubit in enumerate(qubits): circ.h(qr[qubit]) circ = pad_id_gates(circ, qr, qubit, circ_length) - circ.u1(2*np.pi*osc_freq*xdata[circ_index], qr[qubit]) + circ.append(U1Gate(2*np.pi*osc_freq*xdata[circ_index]), [qr[qubit]]) circ.h(qr[qubit]) circ.barrier(qr) for qind, qubit in enumerate(qubits): @@ -165,7 +166,7 @@ def t2_circuits(num_of_gates: Union[List[int], np.array], for qind, qubit in enumerate(qubits): # First Y90 and Y echo - circ.u2(0.0, 0.0, qr[qubit]) # Y90 + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) # Y90 circ = pad_id_gates(circ, qr, qubit, circ_length) # ids circ.y(qr[qubit]) @@ -177,7 +178,7 @@ def t2_circuits(num_of_gates: Union[List[int], np.array], circ.y(qr[qubit]) circ = pad_id_gates(circ, qr, qubit, circ_length) # ids - circ.u2(0.0, 0.0, qr[qubit]) # Y90 + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) # Y90 circ.barrier(qr) for qind, qubit in enumerate(qubits): circ.measure(qr[qubit], cr[qind]) # measure diff --git a/qiskit/ignis/characterization/gates/circuits.py b/qiskit/ignis/characterization/gates/circuits.py index f1adb5712..02e419894 100644 --- a/qiskit/ignis/characterization/gates/circuits.py +++ b/qiskit/ignis/characterization/gates/circuits.py @@ -20,6 +20,7 @@ import numpy as np import qiskit +from qiskit.circuit.library import U1Gate, U2Gate def ampcal_1Q_circuits(max_reps, qubits): @@ -54,10 +55,10 @@ def ampcal_1Q_circuits(max_reps, qubits): circ = qiskit.QuantumCircuit(qr, cr) circ.name = 'ampcal1Qcircuit_' + str(circ_index) + '_0' for qind, qubit in enumerate(qubits): - circ.u2(0.0, 0.0, qr[qubit]) + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) for _ in range(circ_length): circ.barrier(qr[qubit]) - circ.u2(0.0, 0.0, qr[qubit]) + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) for qind, qubit in enumerate(qubits): circ.measure(qr[qubit], cr[qind]) @@ -97,22 +98,22 @@ def anglecal_1Q_circuits(max_reps, qubits, angleerr=0.0): circ = qiskit.QuantumCircuit(qr, cr) circ.name = 'anglecal1Qcircuit_' + str(circ_index) + '_0' for qind, qubit in enumerate(qubits): - circ.u2(0.0, 0.0, qr[qubit]) # Y90p + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) # Y90p for _ in range(circ_length): if angleerr != 0: - circ.u1(-2*angleerr, qr[qubit]) + circ.append(U1Gate(-2*angleerr), [qr[qubit]]) for _ in range(2): circ.barrier(qr[qubit]) - circ.u2(-np.pi/2, np.pi/2, qr[qubit]) # Xp + circ.append(U2Gate(-np.pi/2, np.pi/2), [qr[qubit]]) # Xp if angleerr != 0: - circ.u1(2*angleerr, qr[qubit]) + circ.append(U1Gate(2*angleerr), [qr[qubit]]) for _ in range(2): circ.barrier(qr[qubit]) - circ.u2(0.0, 0.0, qr[qubit]) # Yp + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) # Yp if angleerr != 0: - circ.u1(-angleerr, qr[qubit]) - circ.u2(-np.pi/2, np.pi/2, qr[qubit]) # X90p + circ.append(U1Gate(-angleerr), [qr[qubit]]) + circ.append(U2Gate(-np.pi/2, np.pi/2), [qr[qubit]]) # X90p for qind, qubit in enumerate(qubits): circ.measure(qr[qubit], cr[qind]) circuits.append(circ) @@ -159,7 +160,7 @@ def ampcal_cx_circuits(max_reps, qubits, control_qubits): circ.name = 'ampcalcxcircuit_' + str(circ_index) + '_0' for qind, qubit in enumerate(qubits): circ.x(qr[control_qubits[qind]]) - circ.u2(-np.pi/2, np.pi/2, qr[qubit]) # X90p + circ.append(U2Gate(-np.pi/2, np.pi/2), [qr[qubit]]) # X90p for _ in range(circ_length): circ.barrier([qr[control_qubits[qind]], qr[qubit]]) circ.cx(qr[control_qubits[qind]], qr[qubit]) @@ -214,17 +215,17 @@ def anglecal_cx_circuits(max_reps, qubits, control_qubits, angleerr=0.0): circ.name = 'anglecalcxcircuit_' + str(circ_index) + '_0' for qind, qubit in enumerate(qubits): circ.x(qr[control_qubits[qind]]) - circ.u2(0.0, 0.0, qr[qubit]) # Y90p (target) + circ.append(U2Gate(0.0, 0.0), [qr[qubit]]) # Y90p (target) for _ in range(circ_length): if angleerr != 0: - circ.u1(-angleerr, qr[qubit]) + circ.append(U1Gate(-angleerr), [qr[qubit]]) circ.barrier([qr[control_qubits[qind]], qr[qubit]]) circ.cx(qr[control_qubits[qind]], qr[qubit]) if angleerr != 0: - circ.u1(angleerr, qr[qubit]) + circ.append(U1Gate(angleerr), [qr[qubit]]) circ.y(qr[qubit]) # Yp (target) - circ.u2(-np.pi/2., np.pi/2., qr[qubit]) # X90p (target) + circ.append(U2Gate(-np.pi/2., np.pi/2.), [qr[qubit]]) # X90p (target) for qind, qubit in enumerate(qubits): circ.measure(qr[qubit], cr[qind]) circuits.append(circ) diff --git a/qiskit/ignis/characterization/hamiltonian/circuits.py b/qiskit/ignis/characterization/hamiltonian/circuits.py index 635df7178..0f112e1de 100644 --- a/qiskit/ignis/characterization/hamiltonian/circuits.py +++ b/qiskit/ignis/characterization/hamiltonian/circuits.py @@ -18,6 +18,7 @@ import numpy as np import qiskit +from qiskit.circuit.library import U1Gate from ..characterization_utils import pad_id_gates @@ -75,7 +76,7 @@ def zz_circuits(num_of_gates, gate_time, qubits, spectators, nosc=5): for qind, qubit in enumerate(qubits): circ.h(qr[qubit]) circ = pad_id_gates(circ, qr, qubit, circ_length) - circ.u1(2*np.pi*osc_freq*xdata[circ_index], qr[qubit]) + circ.append(U1Gate(2*np.pi*osc_freq*xdata[circ_index]), [qr[qubit]]) circ.h(qr[qubit]) circ.barrier(qr) for qind, qubit in enumerate(qubits): diff --git a/qiskit/ignis/verification/entanglement/linear.py b/qiskit/ignis/verification/entanglement/linear.py index a5756c295..db7c3ef74 100644 --- a/qiskit/ignis/verification/entanglement/linear.py +++ b/qiskit/ignis/verification/entanglement/linear.py @@ -20,6 +20,7 @@ from typing import Tuple, List from qiskit.circuit import ClassicalRegister, QuantumRegister, Parameter from qiskit.circuit import QuantumCircuit +from qiskit.circuit.library import U1Gate, U2Gate def get_measurement_circ(n: int, @@ -106,7 +107,7 @@ def get_ghz_mqc(n: int, circ = get_ghz_simple(n, measure=False) circinv = circ.inverse() circ.barrier() - circ.u1(delta, q) + circ.append(U1Gate(delta), [q]) circ.x(q) circ.barrier() circ += circinv @@ -135,7 +136,7 @@ def get_ghz_mqc_para(n: int, delta = Parameter('t') circinv = circ.inverse() circ.barrier() - circ.u1(delta, q) + circ.append(U1Gate(delta), [q]) circ.x(q) circ.barrier() circ += circinv @@ -161,7 +162,7 @@ def get_ghz_po(n: int, delta: float) -> QuantumCircuit: circ = get_ghz_simple(n, measure=False) circ.barrier() - circ.u2(delta, -delta, q) + circ.append(U2Gate(delta, -delta), [q]) circ.barrier() meas = get_measurement_circ(n, 'q', 'c', True) circ = circ + meas @@ -187,7 +188,7 @@ def get_ghz_po_para(n: int) -> Tuple[QuantumCircuit, List[Parameter]]: circ = get_ghz_simple(n, measure=False) circ.barrier() - circ.u2(delta, deltaneg, q) + circ.append(U2Gate(delta, deltaneg), [q]) meas = get_measurement_circ(n, 'q', 'c', True) circ = circ + meas return circ, [delta, deltaneg] diff --git a/qiskit/ignis/verification/entanglement/parallelize.py b/qiskit/ignis/verification/entanglement/parallelize.py index 47f72174e..18fe4e9b0 100644 --- a/qiskit/ignis/verification/entanglement/parallelize.py +++ b/qiskit/ignis/verification/entanglement/parallelize.py @@ -32,6 +32,7 @@ from qiskit.circuit import ClassicalRegister, QuantumRegister, Parameter from qiskit.circuit import QuantumCircuit from qiskit.compiler import transpile +from qiskit.circuit.library import U1Gate, U2Gate class BConfig: @@ -323,7 +324,7 @@ def get_ghz_mqc(self, rotate = QuantumCircuit(q) rotate.barrier() - rotate.u1(delta, q) + rotate.append(U1Gate(delta), [q]) rotate.barrier() rotate.x(q) rotate.barrier() @@ -362,7 +363,7 @@ def get_ghz_mqc_para(self, rotate = QuantumCircuit(q) delta = Parameter('t') rotate.barrier() - rotate.u1(delta, q) + rotate.append(U1Gate(delta), [q]) rotate.barrier() rotate.x(q) rotate.barrier() @@ -398,7 +399,7 @@ def get_ghz_po(self, rotate = QuantumCircuit(q) rotate.barrier() - rotate.u2(delta, -delta, q) + rotate.append(U2Gate(delta, -delta), [q]) rotate.barrier() rotate = transpile(rotate, backend=self.backend, @@ -437,7 +438,7 @@ def get_ghz_po_para(self, deltaneg = Parameter('-t') rotate.barrier() - rotate.u2(delta, deltaneg, q) + rotate.append(U2Gate(delta, deltaneg), [q]) rotate.barrier() rotate = transpile(rotate, backend=self.backend, diff --git a/qiskit/ignis/verification/randomized_benchmarking/dihedral.py b/qiskit/ignis/verification/randomized_benchmarking/dihedral.py index 4f22176fe..9ecd1aa68 100644 --- a/qiskit/ignis/verification/randomized_benchmarking/dihedral.py +++ b/qiskit/ignis/verification/randomized_benchmarking/dihedral.py @@ -48,6 +48,7 @@ from qiskit.quantum_info.operators.pauli import Pauli from qiskit.quantum_info.operators.scalar_op import ScalarOp from qiskit.circuit import QuantumCircuit, Instruction +from qiskit.circuit.library import U1Gate class SpecialPolynomial(): @@ -984,7 +985,7 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = elem.poly.weight_1[0] xpow0 = elem.shift[0] if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if (tpow0 == 0 and xpow0 == 0): @@ -1007,11 +1008,11 @@ def decompose_cnotdihedral_2_qubits(elem): if weight_2 == [0]: [tpow0, tpow1] = weight_1 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) if (tpow0 == 0 and tpow1 == 0 and xpow0 == 0 and xpow1 == 0): @@ -1024,18 +1025,18 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] - 2 * xpow1 - 4 * xpow0 * xpow1) % 8 tpow1 = (weight_1[1] - 2 * xpow0 - 4 * xpow0 * xpow1) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) # CS gate is implemented using 2 CX gates - circuit.u1(np.pi / 4, 0) - circuit.u1(np.pi / 4, 1) + circuit.append(U1Gate(np.pi / 4), [0]) + circuit.append(U1Gate(np.pi / 4), [1]) circuit.cx(0, 1) - circuit.u1(7 * np.pi / 4, 1) + circuit.append(U1Gate(7 * np.pi / 4), [1]) circuit.cx(0, 1) # CSdg-like class @@ -1044,18 +1045,18 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] - 6 * xpow1 - 4 * xpow0 * xpow1) % 8 tpow1 = (weight_1[1] - 6 * xpow0 - 4 * xpow0 * xpow1) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) # CSdg gate is implemented using 2 CX gates - circuit.u1(7 * np.pi / 4, 0) - circuit.u1(7 * np.pi / 4, 1) + circuit.append(U1Gate(7 * np.pi / 4), [0]) + circuit.append(U1Gate(7 * np.pi / 4), [1]) circuit.cx(0, 1) - circuit.u1(np.pi / 4, 1) + circuit.append(U1Gate(np.pi / 4), [1]) circuit.cx(0, 1) # CZ-like class @@ -1063,11 +1064,11 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] - 4 * xpow1) % 8 tpow1 = (weight_1[1] - 4 * xpow0) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) # CZ gate is implemented using 2 CX gates @@ -1086,16 +1087,16 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] + m) % 8 tpow1 = (weight_1[1] + m) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) circuit.cx(0, 1) if m > 0: - circuit.u1(m * np.pi / 4, 1) + circuit.append(U1Gate(m * np.pi / 4), [1]) # CX10-like class if (linear == [[1, 1], [0, 1]]).all(): @@ -1110,16 +1111,16 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] + m) % 8 tpow1 = (weight_1[1] + m) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) circuit.cx(1, 0) if m > 0: - circuit.u1(m * np.pi / 4, 0) + circuit.append(U1Gate(m * np.pi / 4), [0]) # CX01*CX10-like class if (linear == [[0, 1], [1, 1]]).all(): @@ -1134,17 +1135,17 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] + m) % 8 tpow1 = (weight_1[1] + m) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) circuit.cx(0, 1) circuit.cx(1, 0) if m > 0: - circuit.u1(m * np.pi / 4, 1) + circuit.append(U1Gate(m * np.pi / 4), [1]) # CX10*CX01-like class if (linear == [[1, 1], [1, 0]]).all(): @@ -1159,17 +1160,17 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] + m) % 8 tpow1 = (weight_1[1] + m) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) circuit.cx(1, 0) circuit.cx(0, 1) if m > 0: - circuit.u1(m * np.pi / 4, 0) + circuit.append(U1Gate(m * np.pi / 4), [0]) # CX01*CX10*CX01-like class if (linear == [[0, 1], [1, 0]]).all(): @@ -1184,17 +1185,17 @@ def decompose_cnotdihedral_2_qubits(elem): tpow0 = (weight_1[0] + m) % 8 tpow1 = (weight_1[1] + m) % 8 if tpow0 > 0: - circuit.u1(tpow0 * np.pi / 4, 0) + circuit.append(U1Gate(tpow0 * np.pi / 4), [0]) if xpow0 == 1: circuit.x(0) if tpow1 > 0: - circuit.u1(tpow1 * np.pi / 4, 1) + circuit.append(U1Gate(tpow1 * np.pi / 4), [1]) if xpow1 == 1: circuit.x(1) circuit.cx(0, 1) circuit.cx(1, 0) if m > 0: - circuit.u1(m * np.pi / 4, 1) + circuit.append(U1Gate(m * np.pi / 4), [1]) circuit.cx(0, 1) return circuit @@ -1274,7 +1275,7 @@ def decompose_cnotdihedral_general(elem): new_elem.cnot(j, k) new_circuit.cx(i, k) new_circuit.cx(j, k) - new_circuit.u1(np.pi / 4, k) + new_circuit.append(U1Gate(np.pi / 4), [k]) new_circuit.cx(i, k) new_circuit.cx(j, k) @@ -1289,7 +1290,7 @@ def decompose_cnotdihedral_general(elem): new_elem.phase(tpow, j) new_elem.cnot(i, j) new_circuit.cx(i, j) - new_circuit.u1(tpow * np.pi / 4, j) + new_circuit.append(U1Gate(tpow * np.pi / 4), [j]) new_circuit.cx(i, j) # Do u1 gates to construct all monomials of weight 1 @@ -1299,7 +1300,7 @@ def decompose_cnotdihedral_general(elem): tpow = (tpow1 - tpow2) % 8 if tpow != 0: new_elem.phase(tpow, i) - new_circuit.u1(tpow * np.pi / 4, i) + new_circuit.append(U1Gate(tpow * np.pi / 4), [i]) if elem.poly != new_elem.poly: raise QiskitError("Could not recover phase polynomial.") diff --git a/qiskit/ignis/verification/tomography/basis/gatesetbasis.py b/qiskit/ignis/verification/tomography/basis/gatesetbasis.py index 3280c26f5..e5c94c16e 100644 --- a/qiskit/ignis/verification/tomography/basis/gatesetbasis.py +++ b/qiskit/ignis/verification/tomography/basis/gatesetbasis.py @@ -24,6 +24,7 @@ # Import QISKit classes from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister from qiskit.circuit import Gate +from qiskit.circuit.library import U2Gate from qiskit.quantum_info import PTM from .tomographybasis import TomographyBasis @@ -252,8 +253,8 @@ def default_gateset_basis(): """ default_gates = { 'Id': lambda circ, qubit: None, - 'X_Rot_90': lambda circ, qubit: circ.u2(-np.pi / 2, np.pi / 2, qubit), - 'Y_Rot_90': lambda circ, qubit: circ.u2(np.pi, np.pi, qubit) + 'X_Rot_90': lambda circ, qubit: circ.append(U2Gate(-np.pi / 2, np.pi / 2), [qubit]), + 'Y_Rot_90': lambda circ, qubit: circ.append(U2Gate(np.pi, np.pi), [qubit]) } default_spam = { 'F0': ('Id',), diff --git a/qiskit/ignis/verification/tomography/basis/sicbasis.py b/qiskit/ignis/verification/tomography/basis/sicbasis.py index c20f899c9..baf5c3620 100644 --- a/qiskit/ignis/verification/tomography/basis/sicbasis.py +++ b/qiskit/ignis/verification/tomography/basis/sicbasis.py @@ -20,6 +20,7 @@ # Import QISKit classes from qiskit import QuantumCircuit, QuantumRegister +from qiskit.circuit.library import U3Gate from .tomographybasis import TomographyBasis @@ -45,11 +46,11 @@ def sicpovm_preparation_circuit(op: str, qubit: QuantumRegister circ = QuantumCircuit(qubit.register) theta = -2 * np.arctan(np.sqrt(2)) if op == 'S1': - circ.u3(theta, np.pi, 0.0, qubit) + circ.append(U3Gate(theta, np.pi, 0.0), [qubit]) if op == 'S2': - circ.u3(theta, np.pi / 3, 0.0, qubit) + circ.append(U3Gate(theta, np.pi / 3, 0.0), [qubit]) if op == 'S3': - circ.u3(theta, -np.pi / 3, 0.0, qubit) + circ.append(U3Gate(theta, -np.pi / 3, 0.0), [qubit]) return circ diff --git a/test/rb/test_rb.py b/test/rb/test_rb.py index 8f8871e38..bb7faa858 100644 --- a/test/rb/test_rb.py +++ b/test/rb/test_rb.py @@ -32,6 +32,7 @@ from qiskit.circuit.library import (XGate, YGate, ZGate, HGate, TGate, SGate, SdgGate, CXGate, CZGate, SwapGate) +from qiskit.circuit.library import U1Gate, U2Gate, U3Gate @ddt @@ -1037,11 +1038,11 @@ def create_fake_circuits(num_gates): for num_gate in num_gates: circ = qiskit.QuantumCircuit(2) for _ in range(num_gate[0]): - circ.u1(0, 0) + circ.append(U1Gate(0), [0]) for _ in range(num_gate[1]): - circ.u2(0, 0, 0) + circ.append(U2Gate(0, 0), [0]) for _ in range(num_gate[2]): - circ.u3(0, 0, 0, 0) + circ.append(U3Gate(0, 0, 0), [0]) for _ in range(num_gate[3]): circ.cx(0, 1) circs.append(circ) diff --git a/test/tomography/test_state_tomography.py b/test/tomography/test_state_tomography.py index e0d2be253..ab91e01a5 100644 --- a/test/tomography/test_state_tomography.py +++ b/test/tomography/test_state_tomography.py @@ -21,6 +21,7 @@ import numpy import qiskit from qiskit import QuantumRegister, QuantumCircuit, Aer +from qiskit.circuit.library import U3Gate from qiskit.quantum_info import state_fidelity, partial_trace, Statevector import qiskit.ignis.verification.tomography as tomo import qiskit.ignis.verification.tomography.fitters.cvx_fit as cvx_fit @@ -109,7 +110,7 @@ def test_bell_3_qubits(self): def test_complex_1_qubit_circuit(self): q = QuantumRegister(1) circ = QuantumCircuit(q) - circ.u3(1, 1, 1, q[0]) + circ.append(U3Gate(1, 1, 1), [q[0]]) rho, psi = run_circuit_and_tomography(circ, q, self.method) F_bell = state_fidelity(psi, rho, validate=False) @@ -123,7 +124,7 @@ def rand_angles(): q = QuantumRegister(3) circ = QuantumCircuit(q) for j in range(3): - circ.u3(*rand_angles(), q[j]) + circ.append(U3Gate(*rand_angles()), [q[j]]) rho, psi = run_circuit_and_tomography(circ, q, self.method) F_bell = state_fidelity(psi, rho, validate=False)