Quantum logic gate

In quantum computing and specifically the quantum circuit model of computation, a quantum logic gate (or simply quantum gate) is a basic quantum circuit operating on a small number of qubits. They are the building blocks of quantum circuits, like classical logic gates are for conventional digital circuits.
Unlike many classical logic gates, quantum logic gates are reversible. However, it is possible to perform classical computing using only reversible gates. For example, the reversible Toffoli gate can implement all Boolean functions, often at the cost of having to use ancilla bits. The Toffoli gate has a direct quantum equivalent, showing that quantum circuits can perform all operations performed by classical circuits.
Quantum gates are unitary operators, and are described as unitary matrices relative to some basis. Usually we use the "computational basis", which unless we compare it with something, just means that we for a "d"-level quantum system (such as a qubit, or a quantum register) have labeled the orthogonal basis vectors or use binary notation.
History.
The current notation for quantum gates was developed by many of the founding fathers of quantum information science including Adriano Barenco, Charles Bennet, Richard Cleve, David P. DiVincenzo, Norman Margolus, Peter Shor, Tycho Sleator, John A. Smolin, and Harald Weinfurter, building on notation introduced by Richard Feynman.
Representation.
Quantum logic gates are represented by unitary matrices. A gate which acts on formula_1 qubits is represented by a formula_2 unitary matrix, and the set of all such gates with the group operation of matrix multiplication is the symmetry group U(2"n"). The quantum states that the gates act upon are unit vectors in formula_3 complex dimensions. The basis vectors are the possible outcomes if measured, and a quantum state is a linear combination of these outcomes. The most common quantum gates operate on spaces of one or two qubits, just like the common classical logic gates operate on one or two bits.
Quantum states are typically represented by "kets", from a mathematical notation known as bra-ket.
The vector representation of a single qubit is:
Here, formula_5 and formula_6 are the complex probability amplitudes of the qubit. These values determine the probability of measuring a 0 or a 1, when measuring the state of the qubit. See measurement below for details.
The value zero is represented by the ket and the value one is represented by the ket 
The tensor product (or Kronecker product) is used to combine quantum states. The combined state of two qubits is the tensor product of the two qubits. The tensor product is denoted by the symbol 
The vector representation of two qubits is:
The action of the gate on a specific quantum state is found by multiplying the vector formula_8 which represents the state, by the matrix formula_9 representing the gate. The result is a new quantum state 
Notable examples.
There exist an infinite number of gates. Some of them have been named by various authors, and below follows some of them.
Identity gate.
The identity gate is the identity matrix, usually written as "I", and is defined for a single qubit as
where "I" is basis independent and does not modify the quantum state. The identity gate is most useful when describing mathematically the result of various gate operations or when discussing multi-qubit circuits.
Pauli gates ("X","Y","Z").
The Pauli gates formula_12 are the three Pauli matrices formula_13 and act on a single qubit. The Pauli "X","Y" and "Z" equate, respectively, to a rotation around the "x", "y" and "z" axes of the Bloch sphere by formula_14 radians. 
The Pauli-"X" gate is the quantum equivalent of the NOT gate for classical computers with respect to the standard basis which distinguishes the "z"-direction. It is sometimes called a bit-flip as it maps formula_15 to formula_16 and formula_16 to formula_15. Similarly, the Pauli-"Y" maps formula_15 to formula_20 and formula_16 to . Pauli "Z" leaves the basis state formula_15 unchanged and maps formula_16 to Due to this nature, it is sometimes called phase-flip. 
These matrices are usually represented as
The Pauli matrices are involutory, meaning that the square of a Pauli matrix is the identity matrix.
Square root of NOT gate ().
The square root of NOT gate (or square root of Pauli-"X", acts on a single qubit. It maps the basis state formula_15 to formula_29 and formula_16 to formula_31.
This operation represents a rotation of about "x"-axis at the Bloch sphere.
Controlled gates.
Controlled gates act on 2 or more qubits, where one or more qubits act as a control for some operation. For example, the controlled NOT gate (or CNOT or CX) acts on 2 qubits, and performs the NOT operation on the second qubit only when the first qubit is and otherwise leaves it unchanged. With respect to the basis it is represented by the matrix:
The CNOT (or controlled Pauli-"X") gate can be described as the gate that maps the basis states formula_35, where formula_36 is XOR.
More generally if "U" is a gate that operates on single qubits with matrix representation
then the "controlled-U gate" is a gate that operates on two qubits in such a way that the first qubit serves as a control. It maps the basis states as follows.
The matrix representing the controlled "U" is
When "U" is one of the Pauli operators, "X","Y", "Z", the respective terms "controlled-"X"", "controlled-"Y"", or "controlled-"Z"" are sometimes used. Sometimes this is shortened to just C"X", C"Y" and C"Z".
Phase shift gates.
The phase shift is a family of single-qubit gates that map the basis states formula_43 and formula_44. The probability of measuring a formula_15 or formula_16 is unchanged after applying this gate, however it modifies the phase of the quantum state. This is equivalent to "conditionally" tracing a horizontal circle (a line of latitude) on the Bloch sphere by formula_47 radians. The phase shift gate is represented by the matrix:
where formula_49 is the "phase shift" defined between 0 and . Some common examples are the "T" gate where formula_50, the phase gate (written "S", though "S" is sometimes used for SWAP gates) where formula_51 and the Pauli-"Z" gate where formula_52.
The phase shift gates are related to each other as follows:
The argument to the phase shift gate is in U(1), and the gate performs a phase rotation in U(1) along the specified basis axis (e.g. formula_56 rotates the phase about the . U(1) is a subgroup of U(n) and contains the phase of the quantum system. Extending formula_56 to a rotation about a generic phase of both axes of a 2-level quantum system (a qubit) can be done with a series circuit: formula_58. When formula_59 this gate is the rotation operator formula_60 gate.
Arbitrary single-qubit phase shift gates formula_56 are natively available for transmon quantum processors through timing of microwave control pulses.
Controlled phase shift.
The 2-qubit controlled phase shift gate is:
With respect to the computational basis, it shifts the phase with formula_47 only if it acts on the state formula_64:
The CZ gate is the special case where formula_52.
Rotation operator gates.
The rotation operator gates formula_67 and formula_68 are the analog rotation matrices in three Cartesian axes of SO(3), the axes on the Bloch sphere projection:
As Pauli matrices are related to the generator of rotations, these rotation operators can be written as matrix exponentials with Pauli matrices in the argument. Any formula_72 unitary matrix in SU(2) can be written as a product (i.e. series circuit) of three rotation gates or less. Note that for two level systems such as qubits and spinors, these rotations are defined between and (a rotation of 360 degrees returns the same statevector with a different phase).
Hadamard gate.
The Hadamard gate () acts on a single qubit. It maps the basis state formula_15 to formula_74
Imaginary swap (iSWAP).
For systems with Ising like interactions, it is sometimes more natural to introduce the imaginary swap or iSWAP gate defined as
where its squared root version is given by
Deutsch gate.
The Deutsch (or formula_79) gate, named after physicist David Deutsch is a three-qubit gate. It is defined as
Unfortunately, a working Deutsch gate has remained out of reach, due to lack of a protocol. There are some proposals to realize a Deutsch gate with dipole-dipole interaction in neutral atoms.
Universal quantum gates.
A set of universal quantum gates is any set of gates to which any operation possible on a quantum computer can be reduced, that is, any other unitary operation can be expressed as a finite sequence of gates from the set. Technically, this is impossible with anything less than an uncountable set of gates since the number of possible quantum gates is uncountable, whereas the number of finite sequences from a finite set is countable. To solve this problem, we only require that any quantum operation can be approximated by a sequence of gates from this finite set. Moreover, for unitaries on a constant number of qubits, the Solovay–Kitaev theorem guarantees that this can be done efficiently.
A common universal gate set is the Clifford + "T" gate set, which is composed of the CNOT, "H", "S" and "T" gates. The Clifford set alone is not universal and can be efficiently simulated classically by the Gottesman-Knill theorem.
Alternatively, , , , and CNOT form also a widely used universal set of quantum gates.
The Toffoli gate forms a set of universal gates for reversible logic circuits. A two-gate set of universal quantum gates containing a Toffoli gate can be constructed by adding the Hadamard gate to the set.
A single-gate set of universal quantum gates can also be formulated using the three-qubit Deutsch gate formula_81.
A universal logic gate for reversible classical computing, the Toffoli gate, is reducible to the Deutsch gate, formula_82, thus showing that all reversible classical logic operations can be performed on a universal quantum computer.
There also exists a single two-qubit gate sufficient for universality, given it can be applied to any pairs of qubits formula_83 on a circuit of width formula_1.
Circuit composition.
Serially wired gates.
Assume that we have two gates "A" and "B", that both act on formula_1 qubits. When "B" is put after "A" in a series circuit, then the effect of the two gates can be described as a single gate "C".
Where formula_87 is matrix multiplication. The resulting gate "C" will have the same dimensions as "A" and "B". The order in which the gates would appear in a circuit diagram is reversed when multiplying them together.
For example, putting the Pauli "X" gate after the Pauli "Y" gate, both of which act on a single qubit, can be described as a single combined gate "C":
The product symbol (formula_87) is often omitted.
Exponents of quantum gates.
All real exponents of unitary matrices are also unitary matrices, and all quantum gates are unitary matrices. 
Positive integer exponents are equivalent to sequences of serially wired gates (e.g. and the real exponents is a generalization of the series circuit. For example, formula_90 and formula_91 are both valid quantum gates.
formula_92 for any unitary matrix formula_9. The identity matrix (formula_94) acts like a NOP and can be represented as bare wire in quantum circuits, or not shown at all. 
All gates are unitary matrices, so that formula_95 and where formula_96 is the conjugate transpose. This means that negative exponents of gates are unitary inverses of their positively exponentiated counterparts: For example, some negative exponents of the phase shift gates are formula_97 and 
Parallel gates.
The tensor product (or Kronecker product) of two quantum gates is the gate that is equal to the two gates in parallel.
If we, as in the picture, combine the Pauli-"Y" gate with the Pauli-"X" gate in parallel, then this can be written as:
Both the Pauli-"X" and the Pauli-"Y" gate act on a single qubit. The resulting gate formula_99 act on two qubits.
Hadamard transform.
The gate formula_100 is the Hadamard gate applied in parallel on 2 qubits. It can be written as:
This "two-qubit parallel Hadamard gate" will when applied to, for example, the two-qubit zero-vector create a quantum state that have equal probability of being observed in any of its four possible outcomes; and We can write this operation as:
Here the amplitude for each measurable state is . The probability to observe any state is the square of the absolute value of the measurable states amplitude, which in the above example means that there is one in four that we observe any one of the individual four cases. See measurement for details.
formula_103 performs the Hadamard transform on two qubits. Similarly the gate formula_104 performs a Hadamard transform on a register of formula_1 qubits.
When applied to a register of formula_1 qubits all initialized to the Hadamard transform puts the quantum register into a superposition with equal probability of being measured in any of its formula_3 possible states:
This state is a "uniform superposition" and it is generated as the first step in some search algorithms, for example in amplitude amplification and phase estimation.
Measuring this state results in a random number between formula_15 and How random the number is depends on the fidelity of the logic gates. If not measured, it is a quantum state with equal probability amplitude formula_110 for each of its possible states.
The Hadamard transform acts on a register formula_111 with formula_1 qubits such that formula_113 as follows:
Application on entangled states.
If two or more qubits are viewed as a single quantum state, this combined state is equal to the tensor product of the constituent qubits. Any state that can be written as a tensor product from the constituent subsystems are called separable states (pure states). On the other hand, an entangled state is any state that cannot be tensor-factorized, or in other words: "An entangled state can not be written as a tensor product of its constituent qubits states." Special care must be taken when applying gates to constituent qubits that make up entangled states.
If we have a set of "N" qubits that are entangled and wish to apply a quantum gate on "M" < "N" qubits in the set, we will have to extend the gate to take "N" qubits. This application can be done by combining the gate with an identity matrix such that their tensor product becomes a gate that act on "N" qubits. The identity matrix is a representation of the gate that maps every state to itself (i.e., does nothing at all). In a circuit diagram the identity gate or matrix will often appear as just a bare wire.
For example, the Hadamard gate acts on a single qubit, but if we for example feed it the first of the two qubits that constitute the entangled Bell state </math>,}} we cannot write that operation easily. We need to extend the Hadamard gate formula_115 with the identity gate formula_94 so that we can act on quantum states that span "two" qubits:
The gate formula_118 can now be applied to any two-qubit state, entangled or otherwise. The gate formula_118 will leave the second qubit untouched and apply the Hadamard transform to the first qubit. If applied to the Bell state in our example, we may write that as:
The time complexity for multiplying two formula_121-matrices is at least if using a classical machine. Because the size of a gate that operates on formula_122 qubits is formula_123 it means that the time for simulating a step in a quantum circuit (by means of multiplying the gates) that operates on generic entangled states is For this reason it is believed to be intractable to simulate large entangled quantum systems using classical computers. Subsets of the gates, such as the Clifford gates, can however be efficiently simulated on classical computers.
Unitary inversion of gates.
Because all quantum logical gates are reversible, any composition of multiple gates is also reversible. All products and tensor products (i.e. series and parallel combinations) of unitary matrices are also unitary matrices. This means that it is possible to construct an inverse of all algorithms and functions, as long as they contain only gates.
Initialization, measurement, I/O and spontaneous decoherence are side effects in quantum computers. Gates however are purely functional and bijective.
If a function formula_124 is a product of formula_125 gates, the unitary inverse of the function formula_126 can be constructed:
Because formula_127 we have, after repeated application on itself
The dagger (formula_96) denotes the complex conjugate of the transpose. It is also called the Hermitian adjoint.
Gates that are their own unitary inverses are called Hermitian or self-adjoint operators. Some elementary gates such as the Hadamard ("H") and the Pauli gates ("I", "X", "Y", "Z") are Hermitian operators, while others like the phase shift ("S", "T", "P", CPHASE) gates generally are not. Gates that are not Hermitian are sometimes called skew-Hermitian, or adjoint operators.
Since formula_124 is a unitary matrix, formula_134 and 
For example, an algorithm for addition can be used for subtraction, if it is being "run in reverse", as its unitary inverse. The inverse quantum fourier transform is the unitary inverse. Unitary inverses can also be used for uncomputation. Programming languages for quantum computers, such as Microsoft's Q# and Bernhard Ömer's QCL, contain function inversion as programming concepts.
Measurement.
Measurement (sometimes called "observation") is irreversible and therefore not a quantum gate, because it assigns the observed quantum state to a single value. Measurement takes a quantum state and projects it to one of the basis vectors, with a likelihood equal to the square of the vector's depth (the norm is the modulus squared) along that basis vector. This is known as the Born rule and appears as a stochastic non-reversible operation as it probabilistically sets the quantum state equal to the basis vector that represents the measured state (the state "collapses" to a definite single value). Why and how, or even if the quantum state collapses at measurement, is called the measurement problem.
The probability of measuring a value with probability amplitude formula_135 is where formula_136 is the modulus.
Measuring a single qubit, whose quantum state is represented by the vector will result in formula_15 with probability and in 
For example, measuring a qubit with the quantum state formula_138 will yield with equal probability either formula_15 or 
A quantum state formula_140 that spans qubits can be written as a vector in formula_3 complex dimensions: This is because the tensor product of qubits is a vector in formula_3 dimensions. This way, a register of qubits can be measured to formula_3 distinct states, similar to how a register of classical bits can hold formula_3 distinct states. Unlike with the bits of classical computers, quantum states can have non-zero probability amplitudes in multiple measurable values simultaneously. This is called "superposition".
The sum of all probabilities for all outcomes must always be equal to . Another way to say this is that the Pythagorean theorem generalized to formula_145 has that all quantum states formula_140 with qubits must satisfy where formula_147 is the probability amplitude for measurable state A geometric interpretation of this is that the possible value-space of a quantum state formula_140 with qubits is the surface of a unit sphere in formula_145 and that the unitary transforms (i.e. quantum logic gates) applied to it are rotations on the sphere. Measurement is then a probabilistic projection of the points at the surface of this complex sphere onto the basis vectors that span the space (and labels the outcomes).
In many cases the space is represented as a Hilbert space formula_150 rather than some specific complex space. The number of dimensions (defined by the basis vectors, and thus also the possible outcomes from measurement) is then often implied by the operands, for example as the required state space for solving a problem. In Grover's algorithm, Lov named this generic basis vector set "the database".
The selection of basis vectors against to measure a quantum state will influence the outcome of the measurement. See Von Neumann entropy for details. In this article, we always use the "computational basis", which means that we have labeled the formula_3 basis vectors of an -qubit register or use the binary representation 
In the quantum computing domain, it is generally assumed that the basis vectors constitute an orthonormal basis.
An example of usage of an alternative measurement basis is in the BB84 cipher.
The effect of measurement on entangled states.
If two quantum states (i.e. qubits, or registers) are entangled (meaning that their combined state cannot be expressed as a tensor product), measurement of one register affects or reveals the state of the other register by partially or entirely collapsing its state too. This effect can be used for computation, and is used in many algorithms.
The Hadamard-CNOT combination acts on the zero-state as follows: 
This resulting state is the Bell state = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 0 \\ 0 \\ 1\end{bmatrix}</math>.}} It cannot be described as a tensor product of two qubits. There is no solution for
because for example needs to be both non-zero and zero in the case of and .
The quantum state "spans" the two qubits. This is called "entanglement". Measuring one of the two qubits that make up this Bell state will result in that the other qubit logically must have the same value, both must be the same: Either it will be found in the state or in the state If we measure one of the qubits to be for example then the other qubit must also be because their combined state "became" Measurement of one of the qubits collapses the entire quantum state, that span the two qubits.
The GHZ state is a similar entangled quantum state that spans three or more qubits.
This type of value-assignment occurs "instantaneously over any distance" and this has as of 2018 been experimentally verified by QUESS for distances of up to 1200 kilometers. That the phenomena appears to happen instantaneously as opposed to the time it would take to traverse the distance separating the qubits at the speed of light is called the EPR paradox, and it is an open question in physics how to resolve this. Originally it was solved by giving up the assumption of local realism, but other interpretations have also emerged. For more information see the Bell test experiments. The no-communication theorem proves that this phenomena cannot be used for faster-than-light communication of classical information.
Measurement on registers with pairwise entangled qubits.
If we now measure the qubits in register A, then register B will be found to contain the same value as A. If we however instead apply a quantum logic gate on A and then measure, then where formula_126 is the unitary inverse of .
Because of how unitary inverses of gates act, For example, say formula_161, then 
The equality will hold no matter in which order measurement is performed (on the registers A or B), assuming that has run to completion. Measurement can even be randomly and concurrently interleaved qubit by qubit, since the measurements assignment of one qubit will limit the possible value-space from the other entangled qubits.
Even though the equalities holds, the probabilities for measuring the possible outcomes may change as a result of applying , as may be the intent in a quantum search algorithm.
This effect of value-sharing via entanglement is used in Shor's algorithm, phase estimation and in quantum counting. Using the Fourier transform to amplify the probability amplitudes of the solution states for some problem is a generic method known as "Fourier fishing".
Logic function synthesis.
Function and routines that only use gates can themselves be described as matrices, just like the smaller gates. The matrix that represents a quantum function that act on formula_122 qubits have the size For example, a function that act on a "qubyte" (a register of 8 qubits) would be described as a matrix with formula_163 elements.
Unitary transformations that are not in the set of gates natively available at the quantum computer (the primitive gates) can be synthesised, or approximated, by combining the available primitive gates in a circuit. One way to do this is to factorize the matrix that encodes the unitary transformation into a product of tensor products (i.e. series and parallel circuits) of the available primitive gates. The group U(2"q") is the symmetry group for the gates that act on formula_122 qubits. Factorization is then the problem of finding a path in U(2"q") from the generating set of primitive gates. The Solovay–Kitaev theorem shows that given a sufficient set of primitive gates, there exist an efficient approximate for any gate. For the general case with large number of qubits this direct approach to circuit synthesis is intractable.
Because the gates unitary nature, all functions must be reversible and always be bijective mappings of input to output. There must always exist a function formula_165 such that Functions that are not invertible can be made invertible by adding ancilla qubits to the input or the output, or both. After the function has run to completion, the ancilla qubits can then either be uncomputed or left untouched. Measuring or otherwise collapsing the quantum state of an ancilla qubit (e.g. by re-initializing the value of it, or by its spontaneous decoherence) that have not been uncomputed may result in errors, as their state may be entangled with the qubits that are still being used in computations.
Logically irreversible operations, for example addition modulo formula_3 of two formula_1-qubit registers a and b, can be made logically reversible by adding information to the output, so that the input can be computed from the output (i.e. there exist a function In our example, this can be done by passing on one of the input registers to the output: The output can then be used to compute the input (i.e. given the output formula_168 and we can easily find the input; formula_169 is given and and the function is made bijective.
All boolean algebraic expressions can be encoded as unitary transforms (quantum logic gates), for example by using combinations of the Pauli-X, CNOT and Toffoli gates. These gates are functionally complete in the boolean logic domain.
There are many unitary transforms available in the libraries of Q#, QCL, Qiskit, and other quantum programming languages. It also appears in the literature.
For example, formula_170, where formula_171 is the number of qubits that constitutes is implemented as the following in QCL:
cond qufunct inc(qureg x) { // increment register
 int i;
 for i = #x-1 to 0 step -1 {
 CNot(x[i], x[0::i]); // apply controlled-not from
 } // MSB to LSB
In the model of computation used in this article (the quantum gate array), a classic computer generates the gate composition for the quantum computer, and the quantum computer acts as a coprocessor that receives instructions from the classical computer about which primitive gates to apply to which qubits. Measurement of quantum registers results in binary values that the classical computer can use in its computations. Quantum algorithms often contain both a classical and a quantum part. Unmeasured I/O (sending qubits to remote computers without collapsing their quantum states) can be used to create networks of quantum computers. Entanglement swapping can then be used to realize distributed algorithms with quantum computers that are not directly connected. Examples of distributed algorithms that only require the use of a handful of quantum logic gates is superdense coding, the quantum Byzantine agreement and the BB84 cipherkey exchange protocol.