Consider two states:
and
. The state of the system at the beginning of the protocol is
. After the Hadamard gate, the state of the system is
. The controlled SWAP gate transforms the state into
. The second Hadamard gate results in

The measurement gate on the first qubit ensures that it's 0 with a probability of

when measured. If
and
are orthogonal
, then the probability that 0 is measured is
. If the states are equal
, then the probability that 0 is measured is 1.[2]
In general, for
trials of the swap test using
copies of
and
copies of
, the fraction of measurements that are zero is
, so by taking
, one can get arbitrary precision of this value.
Below is the pseudocode for estimating the value of
using P copies of
and
:
Inputs P copies each of the n qubits quantum states
and
Output An estimate of
for j ranging from 1 to P:
initialize an ancilla qubit A in state
apply a Hadamard gate to the ancilla qubit A
for i ranging from 1 to n:
apply CSWAP to
and
(the ith qubit of the jth copy of
and
), with A as the control qubit
apply a Hadamard gate to the ancilla qubit A
measure A in the
basis and record the measurement Mj as either a 0 or 1
compute
.
return
as our estimate of 