qc = QuantumCircuit(1)
qc.x(0)
#qc.y(0) # Y-gate on qubit 0
#qc.z(0) # Z-gate on qubit 0
#qc.rz(pi/4, 0)
#qc.s(0) # Apply S-gate to qubit 0
#qc.sdg(0) # Apply Sdg-gate to qubit 0
qc.t(0) # Apply T-gate to qubit 0
qc.tdg(0) # Apply Tdg-gate to qubit 0
Two Qubit Quantum Gates
The reversibel gates are eg. identity, or CNOT.
Eg. .
CNOT gate as a pictoram.
Eg. CNOT is a conditional gate that performs an X-gate on the second qubit, if the state of the first qubit (control) is . . This matrix swaps the amplitudes of |01⟩ and |11⟩ in the statevector. .
qc = QuantumCircuit(2)
qc.h(0) # Apply H-gate to the first:
qc.cx(0,1) # Apply a CNOT:
Any controlled quantum gate is and in Qiskit formalism is written in matrix as
Controlled H
Controlled Y
Controlled Z
Controlled-Z. Because Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle H X H = Z}
and we can write
qc = QuantumCircuit(2)
# also a controlled-Z
qc.h(1)
qc.cx(0,1)
qc.h(1)
Controlled-Y is
qc = QuantumCircuit(2)
# a controlled-Y
qc.sdg(1)
qc.cx(0,1)
qc.s(1)
or Controlled-H is
qc = QuantumCircuit(2)
# a controlled-H
qc.ry(pi/4,1)
qc.cx(0,1)
qc.ry(-pi/4,1)
Swap gate
An arbitrary controlled-controlled-U for any single-qubit rotation U. We need and
#The controls are qubits a and b, and the target is qubit t.
#Subroutines cu1(theta,c,t) and cu1(-theta,c,t) need to be defined
qc = QuantumCircuit(3)
qc.cu1(theta,b,t)
qc.cx(a,b)
qc.cu1(-theta,b,t)
qc.cx(a,b)
qc.cu1(theta,a,t)
Three Qubit Gates
Toffoli gate made using CNOTs.
For universal computations we need more qubits. Eg. the AND gate is not reversible, and thus we need eg. Toffoli (CCNOT) gate.
Toffoli gate performs on target qubit if both control cubits are set to state .
qc = QuantumCircuit(3)
# Toffoli with control qubits a and b and target t
qc.ccx(a,b,t)