For certain computational tasks, quantum computers are known to asymptotically outperform classical computers. Examples of such tasks are factoring large numbers and simulating some properties of molecular orbitals. To assess whether an asymptotic speedup translates to a computational advantage in practice, a quantum algorithm is broken down into elementary operations for which runtime estimates can be derived from a chosen error correction protocol. Promising applications may then be optimized to reduce resource requirements (e.g. qubits and time) further. Over the recent years, quantum algorithms for applications such as factoring and simulating quantum chemistry have been optimized significantly. Researchers have explored various tradeoffs (e.g., space for time) in order to reduce the overhead costs associated with achieving fault-tolerant implementations of such algorithms.
According to one aspect of the present disclosure, a quantum computing device is provided, including a doubly controlled iX (CCiX) circuit. The CCiX circuit may be configured to, in a preparation stage, prepare a plurality of magic states. The CCiX circuit may be further configured to receive a plurality of input qubit states including a first control qubit state, a second control qubit state, and a target qubit state. In an execution stage, the CCiX circuit may be further configured to perform a CCiX operation on the target qubit state at least in part by performing a plurality of local joint measurements. At least a subset of the plurality of local joint measurements may be performed between the plurality of magic states and a plurality of auxiliary qubits. Performing the CCiX operation may further include performing a plurality of remote joint measurements of the input qubit states and a plurality of interface qubits included among the plurality of auxiliary qubits.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
” operation, and a “prepare |+
” operation, according to the example of
-state injection circuits, according to the example of
circuit, according to the example of
preparation circuit, according to the example of
Z states may be prepared, according to the example of
X states may be prepared, according to the example of
X states have been generated.
state, according to the example of
Table lookup is a subroutine that may be used to reduce the resource requirements for state preparation and arithmetic performed at a quantum computing device. Table lookup may, for example, be used in implementations of Shor's algorithm for factoring, algorithms for computing discrete logarithms, and quantum chemistry algorithms. Since table lookup operations have broad applications in quantum computing, reducing the qubit requirements and time requirements of table lookup may allow a wide variety of quantum algorithms to be performed more efficiently.
The quantum computing device 10 may further include a state preparation circuit 14 at which a plurality of prepared qubit states 15 may be generated as inputs to the one or more logical qubit encoding surfaces 12. For example, the plurality of prepared qubit states 15 may include a plurality of magic states that may allow for universal quantum computation when subjected to Clifford operations. Additionally or alternatively, the prepared qubit states 15 may include other states such as a blank state of a qubit register.
The quantum computing device 10 may further include a measurement device 16 at which measurements may be performed on qubits included in the one or more logical qubit encoding surfaces 12. By performing measurements at the one or more logical qubit encoding surfaces 12, the quantum computing device 10 may be configured to perform quantum computations on the prepared qubit states 15 by applying logic gates. At the measurement device 16, the quantum computing device 10 may be configured to measure a plurality of output qubit states to obtain a plurality of output measurement results 18. The measurement device 16 may be further configured to transmit the plurality of output measurement results 18 to the classical computing device 20. The output measurement results 18 may, in some examples, include one or more syndrome bit measurement results 44 that may indicate one or more locations on the one or more logical qubit encoding surfaces 12 at which errors have occurred.
The quantum computing device 10 may include a table lookup circuit 40 located on a corresponding logical qubit encoding surface 12. At the table lookup circuit 40, measurements may be performed on a plurality of prepared qubit states 15 as discussed below to perform table lookup operations. Thus, the output measurement results 18 computed for the output qubits of the table lookup circuit 40 may include a plurality of table lookup outputs 42. The lookup table outputs 42 may be transmitted to the classical computing device 20 subsequently to measurement at the measurement device 16.
The classical computing device 20 may include a processor 22 that is communicatively coupled to memory 24. The processor 22 may include one or more physical processing devices, which may, for example, include one or more central processing units (CPUs), graphical processing units (GPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), specialized hardware accelerators, or other types of classical processing devices. The memory 24 may, for example, include one or more volatile memory devices and/or one or more non-volatile memory devices.
In some examples, the computing system 1 may be instantiated in a single physical computing device that includes both the quantum computing device 10 and the classical computing device 20. Alternatively, the computing system 1 may be provided as a plurality of communicatively coupled physical computing devices. In some examples, the functionality of the quantum computing device 10 and/or the classical computing device 20 may be divided between a plurality of interconnected physical computing devices, such as server computing devices located in a data center.
The processor 22 of the classical computing device 20 may be configured to implement a decoder 26 that is configured to receive the measurements of the plurality of output measurement results 18 from the quantum computing device 10. At the decoder 26, the processor 22 may be configured to preprocess the output measurement results 18 into forms in which further classical computations may be performed on the output measurement results 18. The preprocessed measurements may subsequently be transmitted to one or more additional computing processes 30.
In examples in which the output measurement results 18 include one or more syndrome bit measurement results 44, the syndrome bit measurement results 44 may be preprocessed at the decoder 26 and input into an error correction protocol 32. At the error correction protocol 32, the processor 22 may be configured to generate error correction instructions 34 that may be transmitted to the quantum computing device 10 for execution at the one or more logical qubit encoding surfaces 12. Thus, errors that occur at the one or more logical qubit encoding surfaces 12 may be corrected.
The operation of the table lookup circuit 40 is discussed in further detail below. As preliminaries to the discussion of the operation of the table lookup circuit 40, the operation of logic gates that may be included in the table lookup circuit 40 is now discussed. A controlled not (CNOT) gate is defined as:
|c|t
|c
|t⊕c
where |c is a control qubit and |t
is a target qubit. A multi-target CNOT gate is defined as:
|c|t1
. . . |tm
|c
|t1⊕c
. . . |tm⊕c
In the above definitions, ⊕ is used to denote both Boolean and bitwise exclusive or (XOR).
A table lookup function has k input qubits |x=|x1 . . . xk
and m output qubits |y
=|y1 . . . ym
. The input |x
has a number of input qubits k≥┌log2K┐, where K is a number of bit strings d0, . . . , dK−1 that each have length m. These bit strings are the data that is looked up by the table lookup circuit 40. The table lookup function maps
|x|y
|x
|y⊕ƒ(x)
where ƒ(x1, . . . , xk)=dx if x=(x1 . . . xk)2<K and an arbitrarily chosen output if x≥K. In the input assignment, x1 is the most significant bit. For K=1 and k=0 input qubits, the function ƒ becomes a constant bit string d0, and the definition of the table lookup operation becomes |y|y⊕d0
.
A controlled table lookup function is defined similarly to the uncontrolled table lookup function discussed above, but with an additional control qubit |c. The controlled table lookup function maps
|c|x
|c
|x
|c?y⊕ƒ(x):y
where the “?⋅:⋅” denotes an if-then-else operation.
For a bit string a of length m, a bitwise XOR operation maps
|y|y⊕a
where |y is an m-qubit computational basis state. Thus, the bitwise XOR operation is a table lookup with zero inputs. A controlled bitwise XOR (CXOR) operation maps
|c|y
|c
|c?y⊕a:y
and is, accordingly, a controlled table lookup operation with zero inputs.
is set to |1
. When the control qubit |c
is set to |1
as shown in
(m). The state of the control qubit |c
remains unchanged. In
is set to |0
. When the control qubit |c
is set to |0
as shown in
(m). The state of the control qubit |c
remains unchanged. Thus, the control qubit |c
controls the CXOR gate 100 such that the table lookup is performed when |c
=|1
and the state |y
is left unchanged when |c
=|0
.
|y1⊕c
, |y2
|y2
and |y3
|y3⊕c
. The state of the control qubit |c
remains unchanged.
(m)
|y⊕dx
(m) and leaves |x
unchanged. Thus, the state of |x
determines whether d0 or d1 is selected.
As discussed in further detail below, an AND gate and an AND† gate may additionally be utilized in a controlled one-input table lookup, where † indicates a conjugate transpose. An example AND gate 110 and an example AND† gate 112 are respectively depicted in and |c2
and write an output |c1c2
to an output register initially set to |0
. The AND† gate 112 of
, |c2
, and |c1c2
as inputs and map |c1c2
|0
. Thus, the AND gate 110 and the AND† gate 112 are inverses of each other. The AND gate 110 includes a −iX gate and an S gate, and the AND† gate 112 includes an X measurement. As discussed in further detail below, the −iX gate shown in
magic states or one ICCZ) magic state as additional input, whereas the ANDY gate 112 may be implemented without consuming any magic states.
(m)
|c?y⊕dx:y
(m) while leaving |c
and |x
unchanged. The open dot in
state, whereas a closed dot indicates that the output is controlled on a |1
state. Thus, the first CXOR gate is executed when |c
is |0
and |x
is |1
, and the second CXOR gate is executed when both |c
and |x
are |1
. As in the example one-input table lookup circuit 102 of
are located in a position corresponding to that of the output register of the controlled one-input table lookup circuit 120 of
The controlled multi-input table lookup circuit 122 is configured to perform a table lookup operation over K bit strings d0, . . . , dK−1 when k=┌log2K┐ inputs are received. The controlled multi-input table lookup 122 is configured to split the plurality of bit strings into two sets, the first set including the first 2k−1 bit strings and the second set including the rest of the bit strings. In the example of
The numbers of magic states consumed by table lookup operations performed at the k-input table lookup circuit 124 are discussed below. Let NANDTL(k) be the number of AND gates 110 used by the k-input table lookup circuit 124 and let NANDCTL(k) be the number of AND gates 110 used by a k-input controlled table lookup circuit. The numbers of AND gates 110 are given as follows:
N
AND
TL(k)=2NANDCTL(k−1)
N
AND
CTL(0)=0
N
AND
CTL(1)=1
N
AND
CTL(k)=1+2NANDCTL(k−1)=2k−1, k≥0
N
AND
TL(k)=2*(2k−1−1)=2k−2, k≥1
N
AND
TL(0)=0
Therefore, the number of T states consumed by the unary-iterate table lookup circuit is given by:
N
T
TL(k)=4(2k−2)=2k+2−8, k≥1
N
T
TL(0)=0
The k-input table lookup circuit 124 in the example of
Table lookup circuits may be mapped to lattice surgery operations performed on logical qubits included in a logical qubit encoding surface 12. The qubits included in the logical qubit encoding surface 12 may be arranged in a two-dimensional rectangular grid of logical qubits. ” operation, and a “prepare |+
” operation.
” and “prepare |+
” operations receive qubits in blank states as input. The “measure ZZ” operation is performed on vertically adjacent qubits on the logical qubit encoding surface 12, and the “measure XX” operation is performed on horizontally adjacent qubits. The “measure XZ” operation is performed on diagonally adjacent qubits. In addition, the “measure XZ” operation blocks preparation and measurement operations on the other two qubits included in the two-by-two block of qubits that includes the X and Z gates, such that the other two qubits are both received and output in a blank state.
, a first input qubit |x1
, and a second input qubit |x2
. The controlled table lookup circuit 140 is configured to write a table lookup output |c?y⊕ƒ(x1, x2):y
(m) to the output qubit register, thereby selecting the table lookup result based on the states of |x1
and |x2
when the control qubit |c
is set to |1
and leaving the output qubit register unchanged when the control qubit |c
is set to |0
.
A temporal layer view 142 of the controlled table lookup circuit 140 is shown in
The controlled table lookup circuit 140 of -state injection circuit 150 and an example second |S
-state injection circuit 152. The first |S
-state injection circuit 150 applies an S operation to a qubit |S
by consuming an injecting an |S
state via a ZZ measurement. The second |S
-state injection circuit 152 applies an S operation to a qubit |φ
by consuming an injecting an |S
state via a CNOT gate. The first |S
-state injection circuit 150 may replace the S gates included in the controlled table lookup circuit 140. The Z with all rounded corners in the diagram of
circuit 160 and a |CZ
preparation circuit 162. The delayed-choice |CZ
circuit 160 may be used as a replacement for the classically controlled CZ gates included in the controlled table lookup circuit 140 of
circuit 160 of
preparation circuit 162 of
CXOR gates included in the controlled table lookup circuit 140 may be replaced by multi-target CNOT gates that utilize the second |S-state injection circuit 152.
-state injection circuit 152 of
The example CCiX circuit 180 of states and a plurality of |T
states. Subsequently to the preparation stage 182, the CCiX circuit 180 may be further configured to perform the execution stage 184 at which the CCiX operation is performed.
During the execution stage 184, the CCiX circuit 180 may be configured to perform a plurality of local joint measurements and a plurality of remote joint measurements in parallel. As discussed in further detail below, the plurality of local joint measurements may include a plurality of local ZZ measurements and a plurality of local XZ measurements. The plurality of remote joint measurements in the example of
The estimated numbers of logical cycles performed in the different temporal layers at the example controlled table lookup circuit 140 are discussed below. The durations of the temporal layers, in terms of numbers of logical cycles, are estimated as functions of the following frequently used operations:
The duration estimates performed herein further assume that the durations of X measurements, Z measurements, X corrections, and Z corrections are negligible.
Temporal layers L1, L2, and L7: the execution duration for the CCiX circuit 180 is dominated by the two remote ZZ measurements and the remote XZ measurement shown in
In examples in which the controlled table lookup circuit 140 includes two or more CCiX circuits 180, the preparation stage 182 of the CCiX circuit 180 may be moved to an earlier temporal layer. In such examples, the preparation stage 182 may alternate between preparing the |T states of the CCiX circuits 180. In order to avoid delays due to waiting for Pauli corrections that depend on measurement outcomes that are not yet known, the execution stage of the CCiX circuit 180 is configured to use fewer logical cycles than a remote ZZ measurement, such that the execution stage duration TE of the CCiX circuit 180 is less than or equal to TRZZ. Overall, each of the temporal layers L1, L2, and L7 has an execution time of TRZZ logical cycles.
Temporal layer L3: a portion of the multi-target CNOT gate may be moved to temporal layer L4. The cat state preparation, which has the duration TCAT, occurs in temporal layer L3. In addition, a S gate is applied via |S-state injection in temporal layer L3, which occurs over τRZZ logical cycles. Thus, the duration of temporal layer L3 is given by max(τRZZ, τCAT).
Temporal layers L4, L6, and L9: at these layers, an |S-state injection is performed. The number of logical cycles used when performing the |S
-state injection is the number of logical cycles used when performing a remote CNOT operation. Thus, temporal layers L4, L6, and L9 each have durations of τRCX logical cycles.
Temporal layers L5 and L10: a respective instance of the delayed choice |CZ circuit 160 is used at each of temporal layer L5 and temporal layer L10. The |CZ
state preparations for the delayed choice |CZ
circuits 160 may be executed in prior layers. The two CNOT gates included in each of the delayed choice |CZ
circuits 160 may be executed in parallel with the CXOR gate. Since the delayed choice |CZ
circuits 160 in temporal layers L5 and L10 are followed by respective X measurements, the outputs of the delayed choice |CZ
circuits 160 are utilized within the temporal layers L5 and L10. Thus, the full durations of the respective CXOR gates included in the delayed choice |CZ
circuits 160 are included in the temporal layers L5 and L10. Temporal layers L5 and L10 each have total durations of max(τCXOR, τRCX) logical cycles.
Temporal layer L8: temporal layer L8 corresponds to temporal layer L3 in structure, but without the |S-state injection. Thus, temporal layer L8 has a duration of τCAT logical cycles.
Temporal layer L11: the duration of temporal layer L11 is dominated by the duration of the CNOT operations included in the delayed choice |CZ circuit 160. Thus, temporal layer L11 has a duration of τRCX.
In order to simplify the notation for the overall duration of the controlled table lookup, the following quantities are defined:
τR=max(τRCX,τRZZ,τCAT)
τM=max(τRCX,τCXOR)
In most examples, τRCX, τRZZ, and τCAT have approximately equal durations, and τCXOR≥τRCX. Thus, τR=τRCX and τM=τCXOR in such examples. With the above assumptions the duration τCTL(k) of a k-input controlled table lookup circuit may be estimated. In the base case, the duration of a one-input controlled table lookup circuit is given by:
τCTL(1)≤3τR+τM
In the base case, temporal layers L7-L9 each contribute TR, and temporal layer L10 contributes τM.
The duration of a recursively-constructed controlled table lookup circuit is given by
τCTL(k)≤3τR+2τCTL(k−1),k≥2
In the recursively-constructed controlled table lookup circuit, the temporal layers L1, L6, and L11 each contribute τR logical cycles. Combining the expressions for the duration of the base case and the recursively-constructed controlled table lookup circuit gives the following closed-form expression:
τCTL(k)≤2k−1(6τR+τM)−3τR,k≥1
The duration of an uncontrolled table lookup operation τTL(k) is given by
τTL(k)=2τCTL(k−1)
τTL(1)=2τM
The above estimates assume that a sufficient number of ancillary qubits are provided to perform the remote operations within any given layer in parallel. A 4:1 ratio of logical qubits to ancillary qubits may provide the sufficient number of ancillary qubits.
Estimates of the number of the numbers of logical qubits used in table lookup circuits are provided below. The number of abstract qubits used by a controlled table lookup circuit with k inputs and m outputs is given by 2k+m+1. The abstract qubits include two qubits per input bit, one qubit per output bit, and one control qubit. The number of logical qubits used by the controlled table lookup operation is given by
σCTL(k)=4*(2k+1)+O(√{square root over (k)})+2*m+O(√{square root over (m)})+O(1)
The constant-order term in the above equation is a term for the number of logical qubits used by the CCiX circuits 180 and the delayed-choice |C circuits 160, qubits used for |S
-state delivery, and additional padding qubits that are used to fit the input qubits into a square shape on the logical qubit encoding surface 12. The controlled table lookup circuit 140 may be laid out such that consecutive dependent CCiX operations and delayed-choice |CZ
operations may be performed without delays. The number of output qubits is multiplied by two to correspond to the number of logical qubits per output qubit included in the CXOR circuit discussed below. In the above equation for the number of logical qubits used for the controlled table lookup operation, the target qubits are assumed to be aligned in a square shape. As discussed in further detail below, a cat state generating routine may be performed to generate a corresponding cat state for every second column of the square. The cat state generating routine incurs an overhead of O(√{square root over (m)}) logical qubits. The number of other abstract qubits (the control qubit, the input qubits, and the helper qubits) is multiplied by four in the above equation to provide sufficient qubits for parallelization. In addition, to allow the remote measurements to be routed efficiently from the input qubits to the CCiX circuits 180, the input qubits may be arranged in a rectangular pattern on the logical qubit encoding surface 12. The qubits at the boundary of the rectangular pattern may be used as auxiliary qubits, thereby resulting in the O(√{square root over (k)}) term in the above equation. In the above equation, the number of CCiX circuits 180 and the number of delayed-choice |CZ
circuits 160 are constant as functions of k and m.
The number of logical qubits used in an uncontrolled table lookup operation on k input qubits is equal to the number of qubits used in a controlled table lookup operation on k−1 input qubits, since the control qubit in the controlled table lookup operation is used as the most-significant bit:
σTL(k)=σCTL(k−1)
and |h2
located in the input qubit region 204 are helper qubits.
The output qubits of the controlled table lookup circuit 140 are included in the multi-target CNOT circuit 170 in the example of
The CCiX circuits 180 included in the encoding surface layout 200 may each occupy an area of 9×6 qubits. In addition, a routing region 206 that occupies a 6×12 rectangle of qubits is located below the CCiX circuits 180. The routing region 206 may be used to connect the input qubits to interface qubits of the CCiX circuits 180 via joint ZZ and XZ measurements and teleportation circuits. The routing region includes two switchboard regions 208, which are 3×3 regions of qubits located below the CCiX circuits 180. As discussed in further detail below, permutations of the target qubits and the control qubits of the CCiX circuits 180 may be selected at the switchboard regions 208.
The encoding surface layout 200 further includes an |S-state delivery region 210 provided as a column of qubits in the upper left and an additional qubit located to the left of the uppermost qubit in the column. Via the |S
-state delivery region 210, the |S
states are configured to be delivered to the input qubit region 204. In addition, the encoding surface layout 200 includes an instance of the delayed-choice |CZ
circuit 160 located in a 2×2 patch below the routing region 206 and adjacent to the data qubit region 202.
In the encoding surface layout 200 of
σCTL(k)=4(c+2)(r+2)+90*#CCiX+4*#CZ+2m+O(√{square root over (m)})
In the above equation, c=┌√{square root over (2k+1)}┐ and
are the respective numbers of columns and rows with which the 2k+1 input qubits are fit into a square shape. #CCiX and #CZ are the numbers of CCiX circuits 180 and delayed-choice |CZ circuits 160, respectively.
and the control qubits |c
and |h1
. This CCiX circuit 180, in the example of
, |c
, and |h1
to the switchboard region 208 below the left CCiX circuit 180.
, |c
, and |h1
in the input qubit region 204 may be transmitted to the left CCiX circuit 180.
and the control qubits |h1
and |h2
are passed to the right CCiX circuit 180. The outputs of the joint measurements performed on |x2
, |h1
, and |h2
are configured to be routed to the right CCiX circuit 180 via a teleportation circuit that passes through the exit region 222 and via an additional teleportation circuit that passes through the switchboard region 208 below the right CCiX circuit 180. Alternating between the left and right CCiX circuits 180, as shown in
state that is delivered to the input qubit region 204 via the |S
-state delivery region 210. An additional |S
state is delivered to a portion of the |S
-state delivery region 210 proximate to the multi-target CNOT circuit 170.
states that are delivered to the encoding surface layout 200 in the second temporal layer L2 are used in the third temporal layer L3 to execute a CXOR gate 100 at the multi-target CNOT circuit 170. Executing the CXOR gate 100 includes performing a remote joint ZZ measurement between |h2
and the interface qubit of the multi-target CNOT circuit 170. One of the |S
states received in the second temporal layer L2 may be consumed in the third temporal layer L3 to apply an S gate to |h2
. The second |S
state received in the second temporal layer L2 may be consumed to perform an |S
-state injection on |h1
. The |S
states may be injected via a remote joint ZZ measurement at |h2
and a joint ZZ measurement at |h1
. In some examples, as shown in
state may also be delivered via the |S
-state delivery region 210 to the logical qubit located above |c
data qubit region 202 during the third temporal layer L3.
state is delivered to the encoding surface layout 200 during the third temporal layer L3, the additional |S
state may be injected at |c
by performing a joint ZZ measurement. In addition, a remote CNOT gate controlled on |h1
targeting |h2
is performed in the fourth temporal layer L4.
and the interface qubit of the multi-target CNOT circuit 170 is performed. |h1
and |h2
may also be connected to the |CZ
states instantiated at the delayed-choice |CZ
circuit 160 via two remote CNOT operations. The |CZ
states may be prepared in one or more prior temporal layers.
In temporal layers L6, L7, L8, L9, and L10, the respective operations performed during temporal layers L4, L2, L3, L4, and L5 may be performed, as discussed above with reference to -gate injection may be omitted at temporal layer L8.
operation between |c
and |x1
is performed at the delayed-choice |CZ
circuit 160 via two remote CNOT operations.
When the controlled table lookup circuit 140 is instantiated with the encoding surface layout 200 of -state consumption rate during temporal layers L1, L2, L6, and L7, when consecutive CCiX operations are performed. In some examples, T-state buffers may be used to smooth the |T
-state consumption rate over a window of logical cycles. The smoothed peak number of |T
-states consumed per cycle is given as:
When a plurality of instances of the controlled table lookup circuit 140 are run in parallel, the smoothed peak number of |T-states consumed per cycle may be multiplied by the number of controlled table lookup circuit 140 to determine the total |T
-state consumption rate.
and a second table lookup input |x2
. In some examples, k≥3, such that the first table lookup input |x1
and the second table lookup input |x2
are included among three or more table lookup inputs. In addition, the controlled table lookup circuit 300 may be configured to receive a control qubit state |c
as an additional input. The controlled table lookup circuit 300 may be further configured to perform a first table lookup operation on the first table lookup input |x1
and a second table lookup operation on the second table lookup input |x2
in parallel.
When the table lookup operations are performed in parallel, a combined table lookup output |c?y⊕ƒ(x):y may be written to a combined output register |y
. As shown in the expression for the combined table lookup output, the controlled
table lookup circuit 300 may be configured to compute the combined table lookup output based at least in part on the control qubit state |c
. The combined table lookup output |c?y⊕ƒ(x):y
may include a plurality of first table lookup output qubits of the first table lookup operation and a plurality of second table lookup output qubits of the second table lookup operation. In the combined table lookup output, the plurality of first table lookup output qubits may be logically interleaved with the plurality of second table lookup output qubits within the combined output register |y
.
of the uncontrolled table lookup circuit 310 may be written to a combined output register |y
. The output qubits of the plurality of table lookup operations may be logically interleaved within the combined output register |y
of the uncontrolled table lookup circuit 310.
In some examples, the controlled table lookup circuit 300 may be configured to logically interleave the plurality of first table lookup output qubits with the plurality of second lookup table output qubits at least in part by alternating between a respective plurality of first output qubit writing timesteps and a respective plurality of second output qubit writing timesteps. In the plurality of first output qubit writing timesteps, the plurality of first table lookup output qubits may be written to the combined output register |y. In the plurality of second output qubit writing timesteps, the plurality of second table lookup output qubits may be written to the combined output register |y
. The controlled table lookup circuit 300 may be configured to perform three or more sets of output qubit writing timesteps in examples in which k≥3.
The controlled table lookup circuit 300 and/or the uncontrolled table lookup circuit 310 may be recursively constructed as discussed above with reference to . The lower input register (denoted by the lower hexagon) may be configured to write entries dx for which the most-significant bit x1=1 into the combined output register |y
. In the examples of
are the only qubits shared between the first table lookup operation and the second table lookup operation.
As shown in the example of . The plurality of first table lookup output qubits and the plurality of second table lookup output qubits may be written to the combined output register |y
via outputs of the plurality of CXOR gates. Thus, the first table lookup output qubits and the second table lookup output qubits may be logically interleaved by alternating between CXOR gates that are configured to output first table lookup output qubits and CXOR gates that are configured to output second table lookup output qubits.
The controlled table lookup circuit 300 may include an additional AND gate and an additional AND† gate relative to the controlled multi-input table lookup circuit 122 of
From temporal layers L7′-L11′ of the controlled table lookup circuit 300 with the zipper construction, the number of logical cycles used by a controlled table lookup circuit with the zipper construction and k=2 may be computed as:
{circumflex over (τ)}CTLz(2)=2τR+3τM
The above time estimate does not account for the cycles spent copying the input qubits and performing the additional AND gate and the additional AND† gate included in the controlled table lookup circuit 300 with the zipper construction. Combining the above equation with the durations of temporal layers L1′, L6′, and L12′ results in the following recursive formula:
{circumflex over (τ)}CTLz(k)=2τR+τM+2{circumflex over (τ)}CTLz(k−1),k≥3
The recursive formula may be expressed in closed form as:
{circumflex over (τ)}CRLz(k)=2k(τR+τM)−2τR−τM,k≥2
When the overhead durations of copying the input qubits and performing the additional AND gate and the additional AND† gate are included, the total duration may be expressed as:
{circumflex over (τ)}CTLz(k)=2k(τR+τM)−τM+O(√{square root over (k)}),k≥2
The O(√{square root over (k)}) overhead of copying the input qubits assumes that the input qubits are aligned in a square.
Table 1, shown below, includes respective numbers of logical qubits, number of logical cycles, and effective number of logical cycles used by a controlled table lookup circuit 140 as a function of k. Table 1 also shows the upper-bound number of logical cycles used by a controlled table lookup circuit 300 with the zipper construction.
The resource costs included in table 1 are shown for controlled table lookup circuits with K=2k entries, #CCiX=min{2, k}, and #CZ=1. In addition, in the controlled table lookup circuits for which resource costs are shown in table 1, m=7 and the CXOR circuit 100 is implemented with the vertical cat state layout of and |+
are assumed to have durations of one logical cycle, preparations of |S
and |T
are assumed to have durations of five logical cycles, joint XX and ZZ measurements are assumed to have durations of two logical cycles, and joint XZ measurements are assumed to have durations of three logical cycles. Thus, τR=5 and τM=7 in the example of table 1. A 20-logical-cycle initialization stage, in which |S
states for the CCiX circuits 180 are prepared and the initial preparation stage of the first CCiX execution is performed, is not included in the estimates shown in table 1. In addition, the initialization time in which qubits are copied is not included in the estimates of τCTLz(k).
In the example of table 1, the effective numbers of logical cycles τrαCTL(k) are computed without assuming that the temporal layers are strictly separate. As shown in table 1, the effective overall runtime may be reduced by as much as ⅓ compared to τTCL(k) when strict separation between temporal layers is not assumed.
Circuits that may be included in the encoding surface layout 200 are discussed below. , |x2
, and |x1⊕x2
. The axis-independent Bell measurement circuit 402 is configured to output |z1
, |z2
, and |z1⊕z2
.
state preparations are followed by a joint ZZ measurement, and one of the outputs of the joint ZZ measurement is followed by an X operation. In the axis-independent Bell state preparation circuit 412 of
state preparations are followed by a joint XX measurement, and one of the outputs of the joint XX measurement is followed by a Z operation. The axis-independent Bell state preparation circuits 410 and 412 are both configured to output |00
+|11
.
to a different location on the logical qubit encoding surface 12. For example, the axis-independent move operation circuits 420 and 422 may be used to move the states of qubits to respective ancillary qubits. In the axis-independent move operation circuit 422, X operations are replaced with Z operations and Z operations are replaced with X operations relative to the axis-independent move operation circuit 420.
At the remote ZZ measurement circuit 458 of
The example remote ZZ measurement circuits 450, 456, and 458 of
In order to extend a remote ZZ measurement circuit, a ZZ measurement circuit over k qubits may be extended to a remote ZZ measurement circuit over k+2 qubits by replacing a two-qubit Bell preparation circuit with the four-qubit remote Bell preparation circuit 432 of
In the timing shape 470 of and the plurality of intervening qubits of the remote ZZ measurement circuit. The operations with the second duration τ2 are performed for the plurality of intervening qubits and a second target qubit |τ2
.
In the timing shape 472 of , the plurality of intervening qubits, and the second target qubit |τ2
.
In the timing shape 474 of , the plurality of intervening qubits, and the second target qubit |τ2
. The operations with the second duration τ2 are performed at the plurality of intervening qubits.
A remote XX measurement circuit may be constructed in a manner analogous to the remote ZZ measurement circuits discussed above, but with each X preparation replaced with a Z preparation, each X measurement replaced with a Z measurement, each Z preparation replaced with an X preparation, and each Z measurement replaced with an X measurement. Bell preparations and Bell measurements in the remote XX measurement circuit are unchanged relative to the corresponding remote ZZ measurement circuit. The remote XX measurement circuit may take an arbitrary path across the logical qubit encoding surface 12 in which the target qubits are horizontally adjacent to their neighboring ancillary qubits.
, a target qubit |t
, and an auxiliary qubit located on a path between the control qubit |c
and the target qubit |t
. The remote CNOT circuits 520 and 530 of
and the target qubit |t
. The remote CNOT circuit 520 may be derived from the remote CNOT circuit 500 by replacing the local ZZ measurement in the remote CNOT circuit 500 with the three-qubit remote ZZ measurement circuit 450 and performing a remote Bell preparation and a remote Bell measurement using instances of the remote Bell preparation circuit 432 and the remote Bell measurement circuit 434.
, a target qubit |t
, and three auxiliary qubits located on the path between the control qubit |c
and the target qubit |t
. The remote CNOT circuit 540 of
The preparation of cat states at the logical qubit encoding surface 12 is discussed below. Recursive constructions may be used to prepare the following cat states:
These cat states may be constructed on n vertically adjacent logical qubits and n horizontally adjacent logical qubits, respectively, and are referred to as z-cat states and x-cat states. The x-cat states may also be expressed as:
In the above expression, vi refers to the number of is in the binary representation of i. Thus, the x-cat states may be expressed as the uniform superposition over the basis states with even numbers of is in their binary representations.
The z-cat state may be constructed from a decomposition of cat states. For any n≥2 and j+k=n for 1≤j<n, The decomposition may be given by:
The qubit j (the last qubit in the first cat state) and the qubit j+1 (the first qubit of the second cat state) may be measured using a joint ZZ measurement. When the outcome of the joint ZZ measurement corresponds to the +1 eigenvalue, the measurement results in the |GHZn state. When the outcome corresponds to a different eigenvalue, the resulting state is
which may be transformed into |GHZn by applying X corrections on the first j qubits or the last k qubits.
Z may be prepared. In the examples of
when n=2. The z-cat state preparation circuit 602 of
when n>2 and n is odd. The z-cat state preparation circuit 604 of
when n>2 and n is even. In the recursive construction of the z-cat state preparation circuits 602 and 604, the base case is
when k=1. Since the cat state preparations used in the recursive construction are applied on even numbers of qubits, the z-cat state preparation circuits 602 and 604 have constant temporal depth, with the first temporal layer including Bell state preparations and the second temporal layer including joint ZZ measurements.
X may be prepared. X preparation, joint ZZ measurements, and X corrections are replaced with Z preparation, joint XX measurement, and Z corrections in the x-cat state preparation circuits 606, 608, and 610 relative to the z-cat state preparation circuits 600, 602, and 604 of
Cat states with holes may also be constructed. Let Q={q1, . . . , qn) be a set of vertically adjacent qubits and let H={h1, . . . , hm}⊆Q\q1}. A z-cat state may be prepared on the qubits Q\H by preparing a z-cat state on Q using the construction process discussed above and performing X measurements on each of the qubits included in H. The results of the X measurements may be given as r1, . . . , rm. A Z correction may be conditionally applied to q1 when r1⊕ . . . ⊕rm is true. An x-cat state with holes may additionally or alternatively be prepared on horizontally adjacent qubits by replacing X measurements and Z corrections with Z measurements and X corrections, respectively.
A z-cat state may be constructed on an arbitrary path by leaving holes on segments of horizontally adjacent qubits as discussed below. Similarly, an x-cat state may be constructed along an arbitrary path by leaving holes on segments of vertically adjacent qubits. Let Q=(q1, . . . , qn) be a tuple of qubits, where qi and qi+1 are either vertically or horizontally adjacent. Let vadj(q, q′) and hadj(q, q′) be logical predicates for qi and qi+1 being vertically adjacent and for qi and qi+1 being horizontally adjacent, respectively. Q may be partitioned into q1|q2, q3|q4, q5| . . . , where qn is included in a pair only if n is odd. Accordingly, the qubits included in Q are part of the cat state if those qubits are not included in a pair, or if those qubits are included in a pair of vertically adjacent qubits. Inclusion in the cat state may be formally defined by the following logical predicate:
incat(qi)=[i=1]∨([n mod 2=0]∧[i=n])∨vadj(q2└i/2┘,q2└i/2┘+1)
In addition, let C={q∈Q|incat(q)}. The cat state on C in Q with holes H=Q\C may be constructed according to the following steps.
A quantum fanout operation is discussed below. The quantum fanout operation maps
(α|0+β|1
)⊗|0n−1)
α|0n
+β|1n
The above mapping may be implemented with a constant temporal depth. Implementing the above mapping may include preparing a z-cat state on the latter n−1 qubits, thereby resulting in the following state:
A joint ZZ measurement may be applied to the first two qubits of the above state. When the measurement result corresponds to the +1 eigenvalue, the measurement result is the output of the quantum fanout operation. When the measurement result corresponds to a different eigenvalue, an X correction on the last n−1 qubits may be performed to compute the output of the quantum fanout operation. The joint ZZ measurement included in the quantum fanout operation may be performed in parallel with the join ZZ measurements performed when preparing the z-cat state.
The construction of the CCiX circuit 180 of
gate, the
gate, the
gate, and the
gate commute with each other. As discussed in further detail below, the exponential gates may be applied in parallel to the plurality of input qubit states of the CCiX circuit 180 when performing the CCiX operation.
-state injection circuit 150 with Hadamard gates and prepending a Z gate. The S† gate circuit 720 includes a joint XZ measurement.
operation. In the exponential operator circuit 730 of
The plurality of exponential operators included in the −iZ gate circuit 700 may be parallelized. When the exponential operators are parallelized, quantum fanouts may be performed to generate four z-cat state copies of the target qubit and two z-cat state copies for each control qubit. In this example, the z-cat state copies of the target qubit include two z-cat state copies over three qubits and two z-cat state copies over five qubits. The z-cat state copies generated for each of the control qubits include a respective z-cat state copy over three qubits and a respective z-cat state copy over five qubits for each control qubit. The z-cat state copies are used to apply the exponential operators and to connect the target qubit and the control qubits via joint ZZ measurement.
The doubly-controlled −iZ gate circuit 700 may be transformed into a doubly-controlled −iX gate circuit by conjugating the target line with a Hadamard gate. Conjugating the target line with a Hadamard gate may transform the joint ZZ measurement and Z correction into a joint XZ measurement and an X correction, respectively. The joint measurements and Pauli corrections shown in
Returning to magic state, where |Sx
=HS|+).
state during the preparation stage 182 of the CCiX circuit 180. Using the magic state cloning circuit 740 to generate copies of the |Sx
state may reduce the number of magic states the CCiX circuit 180 receives from separate magic state preparation protocols, thereby increasing the efficiency with which quantum computations utilizing the CCiX circuit 180 may be performed.
states are configured to be cloned. In
states depicted in
states are prepared, and |Sx
states are cloned within two upper magic state cloning regions 761. Thus, in the first preparation sub-stage 760, the CCiX circuit is configured to prepare a first |Sx
state, a second |Sx
state, a first |T
state, and a second |T
state in parallel.
states are each configured to be in a blank state.
states are cloned within two lower magic state cloning regions 765. The other two |T
states used by the CCiX circuit 180 are also prepared. The CCiX circuit 180 may accordingly be configured to prepare a third |Sx
a fourth |Sx
state, a third |T
state, and a fourth |T
state in parallel during the second preparation sub-stage 764. Thus, the CCiX circuit 180 may be configured to prepare each of the cat states and magic states used in the execution stage 184 during the first preparation sub-stage 760 and the second preparation sub-stage 764 of the preparation stage 182.
state and a respective |T
state. In each of these pairs, the |T
state is located to the upper left of the |Sx
state. In addition, similarly to the first execution sub-stage 770, the second execution sub-stage 772 includes two joint ZZ measurements and a joint XZ measurement between respective qubits inside and outside the CCiX circuit 180. The two joint ZZ measurements and the joint XZ measurement are remote measurements that connect A0, B0, and C0 to the target qubit and the control qubits.
Returning to and |c2
and the target qubit |t
subsequently to the execution stage 184. In the example of
, a Z correction and an X correction are performed on the second control qubit |c2
, and an X correction is performed on the target qubit |t
. The X and Z corrections may correct for rotations by factors of Pauli matrices in the states of the first control qubit |c1
, the second control qubit |c2
, and the target qubit |t
output during the execution stage 184 the CCiX circuit 180.
At step 802, the method 800 may include receiving a first table lookup input and a second table lookup input. The first table lookup input and the second table lookup input may each be input qubit states. In some examples, the first table lookup input and the second table lookup input may be included among three or more table lookup inputs.
At step 804, the method 800 may further include performing a first table lookup operation on the first table lookup input and a second table lookup operation on the second table lookup input in parallel. The first table lookup operation and the second table lookup operation may be performed such that a combined table lookup output is written to a combined output register. The combined table lookup output may include a plurality of first table lookup output qubits of the first table lookup operation and a plurality of second table lookup output qubits of the second table lookup operation. In examples in which the table lookup circuit is configured to receive three or more table lookup inputs, the combined table lookup output may include a respective plurality of table lookup output qubits associated with each of the three or more table lookup inputs. The table lookup circuit may be configured to map k≥2 input qubits to m≥2 output qubits.
In some examples, the plurality of first table lookup output qubits may be logically interleaved with the plurality of second table lookup output qubits within the combined output register. The first table lookup output qubits may be logically interleaved with the plurality of second table lookup output qubits at least in part by alternating between a respective plurality of first output qubit writing timesteps and a respective plurality of second output qubit writing timesteps. In the first output qubit writing timesteps, the plurality of first table lookup output qubits are written to the combined output register, and in the second output qubit writing timesteps, the plurality of second table lookup output qubits may be written to the combined output register. The table lookup circuit may, for example, be configured to alternate between first table lookup output qubits and second table lookup output qubits. Additionally or alternatively, such as in examples in which the first table lookup output and the second table lookup output have different lengths, the table lookup circuit may be configured to write one or more blocks of first table lookup output qubits and/or second table lookup output qubits to the combined output register.
In some examples, the table lookup circuit may be a controlled table lookup circuit. Additional steps that may be performed in such examples are shown in
At step 808, the method 800 may further include computing the combined table lookup output based at least in part on the control qubit state. The table lookup circuit may, for example, be configured to leave the combined output register unchanged when the control qubit state is set to |0 and to write the table lookup output qubits to the combined output register when the control qubit state is set to |1
. Thus, the table lookup circuit may be configured to implement an if-then-else statement.
In examples in which the table lookup circuit is a controlled table lookup circuit, the table lookup circuit may include a plurality of CXOR gates configured to receive the control qubit state. The plurality of first table lookup output qubits and the plurality of second table lookup output qubits may be written to the combined output register via outputs of the plurality of CXOR gates. In some examples, the plurality of CXOR gates may be located in a multi-target CNOT circuit included in the table lookup circuit.
At step 902, the method 900 may include, in a preparation stage, preparing a plurality of magic states. The plurality of magic states prepared in the preparation stage may, for example, include a plurality of |Sx states and a plurality of |T
states.
At step 904, the method 900 may further include receiving a plurality of input qubit states including a first control qubit state, a second control qubit state, and a target qubit state. At step 906, in an execution stage, the method may further include performing a CCiX operation on the target qubit state. When performing the CCiX operation, the CCiX circuit may be configured to modify the target qubit state in a manner conditioned by the first control qubit state and the second control qubit state.
During the execution stage of step 906, the CCiX operation may be performed at least in part by, at step 908, performing a plurality of local joint measurements. At least a subset of the plurality of local joint measurements are performed between the plurality of magic states and a plurality of auxiliary qubits. In some examples, one or more local joint measurements may also be performed between pairs of auxiliary qubits. At step 910, performing the CCiX operation at step 906 may further include performing a plurality of remote joint measurements. The plurality of remote joint measurements may be performed on the input qubit states and a plurality of interface qubits included among the plurality of auxiliary qubits. The plurality of interface qubits may be qubits located on an edge of the CCiX circuit on the logical qubit encoding surface. In some examples, performing step 910 may include, at step 912, performing two remote ZZ measurements and a remote XZ measurement in each of a first execution sub-stage and a second execution sub-stage included in the execution stage.
At step 914, the method 900 may further include, in some examples, performing a plurality of X corrections and a plurality of Z corrections subsequently to the execution stage. In such examples, a Z correction may be performed on the first control qubit, a Z correction and an X correction may be performed on the second control qubit, and an X correction may be performed on the target qubit. The plurality of X corrections and the plurality of Z corrections may be performed to correct for Pauli-matrix rotations in the results of the remote joint ZZ measurements and remote joint XZ measurements performed during the execution stage.
Z states and a plurality of |GHZn
X states. In some examples, at step 918, step 916 may include performing a plurality of quantum fanout operations. The quantum fanout operations may be performed to copy the |GHZn
Z states and the |GHZn
X states across the plurality of auxiliary qubits.
The method 900 may further include step 920 and step 922 in examples in which the plurality of magic states prepared in the preparation stage includes a plurality of |Sx states and a plurality of |T
states. In such examples, at step 920, the method 900 may further include performing a first preparation sub-stage. In the first preparation sub-stage, a first |Sx
state, a second |Sx
state, a first |T
state, and a second |T
state may be prepared in parallel. At step 922, the method 900 may further include performing a second preparation sub-stage subsequently to the first preparation sub-stage. In the second preparation sub-stage, a third |Sx
, a fourth |Sx
state, a third |T
state, and a fourth |T
state may be prepared in parallel. In examples in which step 916 is also performed, the |GHZn
Z states and the |GHZn
X states may be prepared in parallel with the |Sx
and |T
magic states.
Step 926 may be performed when applying the exponential gates at step 924 in examples in which a plurality of |GHZnZ states and the |GHZn
X states are prepared at step 916. At step 926, the method 900 may include performing a plurality of local joint measurements on the plurality of |GHZn
Z states and the plurality of |GHZn
X states. In some examples, step 926 may include, at step 928, performing a first execution sub-stage. During the first execution sub-stage, a plurality of local joint ZZ measurements of respective first subsets of the magic states and the auxiliary qubits may be performed. In examples in which step 928 is performed, performing the plurality of local joint measurements at step 926 may further include, at step 930, performing a second execution sub-stage. The second execution sub-stage may include performing a plurality of local joint XZ measurements of respective second subsets of the magic states and the auxiliary qubits.
Using the table lookup circuits above, table lookup operations may be performed at a quantum computing device in a manner that is more efficient in terms of time elapsed and qubits used. Thus, the table lookup circuits discussed above may allow quantum algorithms that utilize table lookup operations to be executed more efficiently. In addition, through parallelization of some steps, the CCiX circuit discussed above may be used to apply CCiX gates in shorter amounts of time relative to existing CCiX circuits. The devices and methods discussed above may therefore increase the efficiency of a variety of different computation processes performed at quantum computing devices.
In some embodiments, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.
Computing system 1000 includes a logic processor 1002, volatile memory 1004, and a non-volatile storage device 1006. Computing system 1000 may optionally include a display subsystem 1008, input subsystem 1010, communication subsystem 1012, and/or other components not shown in
Logic processor 1002 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.
The logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the logic processor 1002 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic processor optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood.
Volatile memory 1004 may include one or more physical devices that include random access memory. Volatile memory 1004 is typically utilized by logic processor 1002 to temporarily store information during processing of software instructions. It will be appreciated that volatile memory 1004 typically does not continue to store instructions when power is cut to the volatile memory 1004.
Non-volatile storage device 1006 includes one or more physical devices configured to hold instructions executable by the logic processors to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 1006 may be transformed—e.g., to hold different data.
Non-volatile storage device 1006 may include one or more physical devices that are removable from and/or built into a computing device. Non-volatile storage device 1006 may include optical memory, semiconductor memory, and/or magnetic memory, or other mass storage device technology. Non-volatile storage device 1006 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated that non-volatile storage device 1006 is configured to hold instructions even when power is cut to the non-volatile storage device 1006.
Aspects of logic processor 1002, volatile memory 1004, and non-volatile storage device 1006 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.
The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 1000 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function. Thus, a module, program, or engine may be instantiated via logic processor 1002 executing instructions held by non-volatile storage device 1006, using portions of volatile memory 1004. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
When included, display subsystem 1008 may be used to present a visual representation of data held by non-volatile storage device 1006. The visual representation may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state of display subsystem 1008 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 1008 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic processor 1002, volatile memory 1004, and/or non-volatile storage device 1006 in a shared enclosure, or such display devices may be peripheral display devices.
When included, input subsystem 1010 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some embodiments, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity; and/or any other suitable sensor.
When included, communication subsystem 1012 may be configured to communicatively couple various computing devices described herein with each other, and with other devices. Communication subsystem 1012 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network. In some embodiments, the communication subsystem may allow computing system 1000 to send and/or receive messages to and/or from other devices via a network such as the Internet.
The following paragraphs discuss several aspects of the present disclosure. According to one aspect of the present disclosure, a quantum computing device is provided, including a doubly controlled iX (CCiX) circuit. The CCiX circuit may be configured to, in a preparation stage, prepare a plurality of magic states. The CCiX circuit may be further configured to receive a plurality of input qubit states including a first control qubit state, a second control qubit state, and a target qubit state. In an execution stage, the CCiX circuit may be further configured to perform a CCiX operation on the target qubit state at least in part by performing a plurality of local joint measurements. At least a subset of the plurality of local joint measurements may be performed between the plurality of magic states and a plurality of auxiliary qubits. Performing the CCiX operation may further include performing a plurality of remote joint measurements of the input qubit states and a plurality of interface qubits included among the plurality of auxiliary qubits.
According to this aspect, the plurality of magic states prepared in the preparation stage may include a plurality of |Sx states and a plurality of |T
states.
According to this aspect, the preparation stage may include a first preparation sub-stage in which the CCiX circuit is configured to prepare a first |Sx state, a second |Sx
state, a first |T
state, and a second |T
state in parallel. The preparation stage may further include a second preparation sub-stage subsequent to the first preparation sub-stage in which the CCiX circuit is configured to prepare a third |Sx
, a fourth |Sx
state, a third |T
state, and a fourth |T
state in parallel.
According to this aspect, performing the plurality of remote joint measurements may include, in each of a first execution sub-stage and a second execution sub-stage, performing two remote ZZ measurements and a remote XZ measurement.
According to this aspect, in the execution stage, the CCiX circuit may be configured to apply a plurality of exponential gates in parallel to the plurality of input qubit states when performing the CCiX operation.
According to this aspect, the CCiX circuit may be further configured to, in the preparation stage, prepare a plurality of |GHZnZ states and a plurality of |GHZn
X states. The CCiX circuit may be further configured to, in the execution stage, apply the plurality of exponential gates at least in part by performing a plurality of local joint measurements on the plurality of |GHZn
Z states and the plurality of |GHZn
X states.
According to this aspect, the CCiX circuit may be configured to prepare the plurality of |GHZnZ states and the plurality of |GHZn
X states at least in part by performing a plurality of quantum fanout operations.
According to this aspect, the CCiX circuit may be configured to prepare the plurality of |GHZnZ states and the plurality of |GHZn
X states such that one or more of the |GHZn
Z states and one or more of the |GHZn
X states are formed along respective paths that have respective holes.
According to this aspect, the execution stage may include a first execution sub-stage in which the CCiX circuit is configured to perform a plurality of local joint ZZ measurements of respective first subsets of the magic states and the auxiliary qubits. The execution stage may further include a second execution sub-stage in which the CCiX circuit is configured to perform a plurality of local joint XZ measurements of respective second subsets of the magic states and the auxiliary qubits.
According to this aspect, the plurality of exponential gates may include an
According to this aspect, the CCiX circuit may be further configured to perform a plurality of X corrections and a plurality of Z corrections subsequently to the execution stage.
According to this aspect, the CCiX circuit may be included in a rectangular grid of logical qubits.
According to another aspect of the present disclosure, a method for use with a quantum computing device is provided. The method may include, at a doubly controlled iX (CCiX) circuit, preparing a plurality of magic states in a preparation stage. The method may further include receiving a plurality of input qubit states including a first control qubit state, a second control qubit state, and a target qubit state. The method may further include, in an execution stage, performing a CCiX operation on the target qubit state at least in part by performing a plurality of local joint measurements. At least a subset of the plurality of local joint measurements may be performed between the plurality of magic states and a plurality of auxiliary qubits. Performing the CCiX operation may further include performing a plurality of remote joint measurements of the input qubit states and a plurality of interface qubits included among the plurality of auxiliary qubits.
According to this aspect, the plurality of magic states prepared in the preparation stage may include a plurality of |Sx states and a plurality of |T
states. The preparation stage may include, in a first preparation sub-stage, preparing a first |Sx
state, a second |Sx
state, a first |T
state, and a second |T
state in parallel. The preparation stage may further include, in a second preparation sub-stage subsequent to the first preparation sub-stage, preparing a third |Sx
, a fourth |Sx
state, a third |T
state, and a fourth |T
state in parallel.
According to this aspect, performing the plurality of remote joint measurements may include, in each of a first execution sub-stage and a second execution sub-stage, performing two remote ZZ measurements and a remote XZ measurement.
According to this aspect, the method may further include, in the execution stage, applying a plurality of exponential gates in parallel to the plurality of input qubit states when performing the CCiX operation. The plurality of exponential gates may include an
According to this aspect, the method may further include, in the preparation stage, preparing a plurality of |GHZnZ states and a plurality of |GHZn
Z states at least in part by performing a plurality of quantum fanout operations. The method may further include, in the execution stage, applying the plurality of exponential gates at least in part by performing a plurality of local joint measurements on the plurality of |GHZn
Z states and the plurality of |GHZn
X states.
According to this aspect, the execution stage may include, in a first execution sub-stage, performing a plurality of local joint ZZ measurements of respective first subsets of the magic states and the auxiliary qubits. The method may further include, in a second execution sub-stage, performing a plurality of local joint XZ measurements of respective second subsets of the magic states and the auxiliary qubits.
According to this aspect, the method may further include performing a plurality of X corrections and a plurality of Z corrections subsequently to the execution stage.
According to another aspect of the present disclosure, a quantum computing device is provided, including a doubly controlled iX (CCiX) circuit configured to, in a preparation stage, prepare a plurality of |Sx states and a plurality of |T
states. The preparation stage may include, in a first preparation sub-stage, preparing a first |Sx
state, a second |Sx
state, a first |T
state, and a second |T
state in parallel. The preparation stage may further include, in a second preparation sub-stage subsequent to the first preparation sub-stage, preparing a third |Sx
, a fourth |Sx
state, a third |T
state, and a fourth |T
state in parallel. In an execution stage, the CCiX circuit may be further configured to perform a CCiX operation on the target qubit state at least in part by, in a first execution sub-stage, performing a plurality of local joint ZZ measurements of respective first subsets of the |Sx
states, the |T
states, and the auxiliary qubits. Performing the CCiX operation may further include, in a second execution sub-stage, performing a plurality of local joint XZ measurements of respective second subsets of the |Sx
states, the |T
states, and the auxiliary qubits. The execution stage may further include, during each of the first execution sub-stage and the second execution sub-stage, performing a plurality of remote joint measurements of the input qubit states and a plurality of interface qubits included among the plurality of auxiliary qubits.
“And/or” as used herein is defined as the inclusive or v, as specified by the following truth table:
It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.