# Patent

## Title
Efficient quantum computing operations

## Abstract

A method of performing a quantum Fourier transform in a quantum computing circuit is disclosed. The method includes forming a quantum computing circuit as a collection of two-qubit gates operating on a sequence of input qubits. Auxiliary qubits are then interacted with the original input qubits to place the auxiliary qubits in a state corresponding to an output of a discrete Fourier transform of a classical state of the input qubits. The original input qubits are then re-set to their ground state by physically interacting the input qubits with the auxiliary qubits. The auxiliary qubits are then transformed to a state representative of a quantum Fourier transform of the sequence of input qubits.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority under 35 USC 119(e) to U.S. provisional application Ser. No. 60/294,089, filed May 29, 2001.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of computing and more particularly to quantum computing.
2. Description of the Background
In electronic circuits a gate is a digital logic operation embodied in a circuit having at least one digital input, or bit, and having one digital output, or bit, wherein the circuit generates a value of the output that depends upon the values of the inputs. The gate references the manipulation of the input bits to generate the value of the output bit. Measures of circuit efficiencies include speed of performing their operation and number of gates required to perform their operation.
The input size of a circuit means the number of bits that are in the input. The most common circuit input measurements are the depth of the circuit and the size of the circuit. The depth of the circuit relates to the highest number of gates that must be traversed by a signal before an answer is computed. The size of a circuit is the total number of gates in the whole circuit. For example, a circuit that computes simple addition of 2 n-bit binary integers has input size of 2n. These values as functions allow predicting the size of a circuit as the input size varies.
If a function that expresses the size of a circuit for computing a specified computation grows very quickly as the input size increases then that computation problem is only efficiently solvable for small inputs. Thus when comparing sizes of circuits as expressed by a function of the input size one compares their asymptotic growth, that is their growth as the input size approaches infinity.
A circuit has polynomial size if the circuit has a size that is expressed as a polynomial of the input size. A circuit has logarithmic depth if the depth of the circuit is expressed as a logarithm of the input size. A special notation, called big-Oh (“O”) notation, is used to express functions, and thus circuit sizes or depths, in a way that only expresses the class of the function. For example, O(n2) is the class of functions whose size increases polynomially with increasing input size no faster than some constant coefficient times n2. This notation is more specific than just claiming polynomial size. Generally a circuit is considered efficient if it has polynomial size. In the current Invention, the primary concern is the depth of a circuit. The terminology of an efficient circuit here generally refers to the fact that its depth is either logarithmic or poly-logarithmic.
The same notations for describing circuit efficiency are used to describe the probability of error of a given circuit. The probability of error of a circuit may be expressed as a function of the circuit's input size. Probability of a circuit producing an error is denoted by an epsilon, ε. Exponentially small probability of error means that the probability of error is 1/f(n), where f(n) is in O(2n). Probability of error is 1/f(n), in a circuit design, is generally considered to be acceptable because errors caused by circuit malfunction or other problems exist with higher probabilities than this probability.
Quantum computation or quantum information processing (QIP) has developed methods for using quantum information for computing. Quantum states are denoted with the ket symbol and written in the form |x> where x represents a quantum wave function. A superposition defining a single qubit's state is written |x>=α|0>+β|1> where alpha and beta are complex number weighting coefficients. The sum alpha squared plus beta squared is normalized to one so that the probability of the observable quantity associated with |x> is one.
A problem implementing quantum circuits is data loss due to interaction of qubits with particles in the environment causing changes in the qubit's quantum mechanical state. The loss of qubit data due to interaction with the environment is named decoherance. Generally applicable methods for combatting decoherence exist. For instance, implementing quantum error correcting codes or decoherence free subsystems may reduce decoherence.
The present inventors recognized that minimizing depth of quantum circuits may speed up computation and reduce data loss by reducing time qubits in the circuit are exposed to interaction with the environment since increasing quantum circuit depth increases quantum computing time. Thus, the present inventors recognized that logarithmic or poly-logarithmnic depth circuits offer a great advantage over polynomial depth circuits. In classical computing, it is important to define what physical states correspond to a “0” or a “1” in a mathematical computation. Similarly, in quantum computing, it is important to define a computational basis. For a single qubit, the states |0> and |1>, representing the number 0 and 1 respectively. For n qubits, the computational basis is simply defined as the tensor product space of the individual qubits of the 2n possibilities from |00 . . . 0>, |00 . . . 1>, |00 . . . 10> to |11111>. For simplicity, when discussing an n-qubit register as a single entity, it is common to simply refer to the state of all zeroes |00 . . . 0> as |0>.
Certain quantum computing mathematical operations, also called gates, are much like logical gates AND and NOT classical computing functions. Common quantum computing gates include the Hadamard gate. The Hadamard gate acts on a single qubit. The Hadamard gate converts the qubit state




  
    
      
        
        0
      
      〉
    
    ⁢
    
      
    
    ⁢
    
      to
    
    ⁢
    
      
    
    ⁢
    
      1
      
        2
      
    
    ⁢
    
      
        
        0
      
      〉
    
  
  +
  
    
      
        1
        
          2
        
      
      ⁢
      
        
        1
      
    
    〉
  




and converts the qubit

state





  
    
      
        
        1
      
      〉
    
    ⁢
    
      
    
    ⁢
    
      to
    
    ⁢
    
      
    
    ⁢
    
      1
      
        2
      
    
    ⁢
    
      
        
        0
      
      〉
    
  
  -
  
    
      
        
          1
          
            2
          
        
        ⁢
        
          
          1
        
      
      〉
    
    .
  




Another common gate is the quantum controlled-NOT gate, which acts in some ways as the classical XOR. The quantum controlled-NOT gate acts on two qubits, a control qubit and a qubit to be negated. If the control qubit is in state |1> then the second qubit is negated, otherwise nothing occurs. If the second qubit is initially |0>, then this gate will XOR the state of the control qubit onto the second bit.

Another common two-qubit gate is the controlled phase shift gate, sometimes referred to as “the controlled θ” gate. The controlled θ gate maps |x>|y> to eiθxy |x>|y>.
All quantum computing operations ma) be composed of combinations of quantum one bit gates and quantum two bit controlled-NOT gates, and those gates have been realized in physical systems, such as quantum computing NMR systems.
The discrete Fourier transformation is referred to herein after as DFT. DFT is a mathematical mapping from one finite set of complex numbers to another set of complex numbers of similar size. DFT is defined by the following equation for two sets of complex numbers (α0, α1, . . . αm−1), and (β0,β1, . . . βm−1) where




  
    β
    x
  
  =
  
    
      1
      
        m
      
    
    ⁢
    
      
        ∑
        
          y
          =
          0
        
        
          m
          -
          1
        
      
      ⁢
      
        
          
            (
            
              e
              
                2
                ⁢
                
                  Ih
                  /
                  m
                
              
            
            )
          
          
            x
            ·
            y
          
        
        ⁢
        
          α
          y
        
      
    
  




DFT can be computed with depth O(m log m) by the fast Fourier transform. DFT has many useful applications because of its computational efficiency expressed by its low order depth. The efficiency of the DFT is one of the most important algorithms in classical computing.

Application of the DFT to transform the amplitudes of particular qubits or collections of qubits in quantum circuits is called the Quantum Fourier Transformation, referred to herein after as the QFT. Current methods for performing exact or approximate QFT on n qubits have polynomial depth.
QFT already has many applications in quantum computing, such as algorithms of Shor to efficiently compute discrete logarithms and factor numbers. See Shor, “Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer” SIAM Journal of Computing, Volume 26, Number 5, pages 1484–1509 (1997) and D. Boneh and R. J. Lipton, “Advances in Cryptology: Proceedings of Crypto'95”, Lecture Notes in Computer Science, Vol., 963, 424 (1995). Current RSA cryptography systems make use of the assumption that factoring large numbers is generally a computationally time intensive task for large integers. Shor's algorithm contravenes that assumption. Therefore, current cryptography systems are no longer secure.
A computational basis state of size n is defined to be a state |x> representing an arbitrary n-bit binary number.
A Fourier basis state for a computational basis state is the QFT of the computational basis state. Thus, the |Px> is the QFT of the computational basis state |x>, which means that |Px> is the result of applying the QFT to |x>.
The paper, Cleve and Watrous, “Fast parallel circuits for the quantum Fourier transform” in Proceedings of the 41st Annual IEEE Symposium on Foundations of Computer Science (FOCS '00), pages 526–536 (2000), is incorporated herein by reference. Universal quantum gates and universal quantum computers are disclosed in “Elementary gates for quantum computation” Barenco, Bennett, Cleve, DiVincenzo, Margolus, Shor, Sleator, Smolin, and Weinfurter, Physical Review A, Volume 52, Number 5, pages 3457–3467 (1995), which is incorporated herein by reference. Quantum gates designed to avoid erroneous data caused by decoherence are disclosed in Gottesman, “Stabilizer Codes and Quantum Error Correction” http://xxx.lanl.gov/abs/quant-ph/9705052, which is incorporated herein by reference.
Quantum computing with local gates and models for scaling quantum computing are disclosed in Fault-Tolerant Quantum Computation with Local Gates”, D. Gottesman http://xxx.lanl.gov/abs/quant-ph/9903099 and “Efficient Linear Optics Quantum Computation” by Knill, Laflamme and Milburn, http://xxx.lanl.gov/abs/quant-ph/0006088, Braunstein and Lo, “Scalable Quantum Computers” (2000), which are incorporated herein by reference.
The quantum operations defined herein below are physical operations performed on quantum states of the qubits defining a data processing component of a quantum computing circuit. Quantum computing circuits include sets of universal quantum gates. A universal quantum gate is a fundamental logical building block from which any quantum circuit can be embodied. Universal quantum gates have been successfully implemented in a 7 qubit quantum computer to factor the number 15. That computer employed nuclear spin 1⁄2 moments as qubits, and employed nuclear magnetic resonance technology to perform operations on those qubits analogous to classical gates to factor the number 15.
SUMMARY OF THE INVENTION
It is an object of the invention to provide systems and methods for efficient quantum computing.
It is another object of the invention to provide systems and methods for efficiently performing QFT.
It is another object of the invention to provide systems and methods for efficiently performing QFT for state spaces of dimension 2n.
It is another object of the invention to provide systems and methods for efficiently performing QFT for state spaces of arbitrary dimension.
In one aspect, the invention provides a system and method for quantum computing, comprising (1) creating an n qubit Fourier basis state of a n qubit computational basis state, (2) generating multiple copies of the n qubit Fourier basis state in additional sets of n qubits, and (3) estimating the phase of the Fourier basis state from the copies of the Fourier basis state. Additional aspects of this invention include erasing the computational basis state from the b qubits whose values represent the computational basis state; and erasing said multiple copies of the n qubit Fourier basis state. In additional aspects, this invention provides a system and method for estimating the phase x of a quantum state using a quantum circuit and multiple copies of a Fourier state|Px> of modulus m, said method comprising simulating measurements on multiple copies of a state; obtaining an approximation to the fractional part of 2−j x for each j; reconstructing an approximation  ̃x to x wherein a depth of the quantum circuit is O(Polynomial(log(log m))).
In another aspect, the invention provides a system and method for performing QFT for a modulus m, comprising creating a Fourier basis state |Px> of a computational basis state x; multiply copying the Fourier basis state; erasing the computational basis state by estimating the phase of the Fourier basis state; reversing the multiply copying operation; and wherein the depth of the circuit is O(Polynomial(log log m)). In additional aspects, this invention provides a system and method where m=2n for a positive integer n; simulating measurements on multiple copies of a state; wherein said estimating the phase of the Fourier basis state comprises simulating measurements on multiple copies of a state.
In another aspect, the invention provides a system and method for performing Fourier transformation with respect to a modulus m where m=m1m2 . . . mk for mi pair wise relatively prime and mj in O(log m) of a computational basis state |x>, comprising storing a modular representation of |x> defined by the following transformation:

|x>|0,0, . . . , 0> to |0>|xmod m1>, |xmod m2>, . . . , |xmod mk>,

where mi for i=1 to k are pair wise relatively prime integers in O(log m) such that modulus m=m1m2 . . . mk multiplies each S1002i by an integer, gi; and computing the QFT modulus mi in logarithmic depth. Additional aspects of this invention include applying Fourier Transform to each component mi; wherein a depth of the operation is O(Polynomial(log(log m))).

In yet another aspect, the invention provides a system and method for factoring a large integer m or solving a hidden linear form problem of input size of order log(m) bits comprising classical pre-processing; quantum computing comprising: (1) creating an n qubit Fourier basis state of a n qubit computational basis state, and (2) generating multiple copies of the n qubit Fourier basis state in additional sets of n qubits, and (3) estimating the phase of the Fourier basis state from the copies of the Fourier basis state; and classical post-processing. An additional aspect of this invention that operations are of depth O(Polynominal(log log m)).
These and other objects of the invention are also provided by a system and method for estimating the phase of a quantum state including means for generating multiple copies of a Fourier transform of the quantum state.
One method of the invention comprises five steps. First, quantum gates are manipulated to create a Fourier basis state from a computational basis state. Second, the Fourier basis state is copied multiple times. Third, the phase of the Fourier basis state is estimated from the Fourier basis states. Fourth, the estimated phase is used to erase the computational basis state from the input qubits. Fifth, the copies of the Fourier basis state are erased by a reverse of the operation that copied them.
Systems defining qubits include spin 1⁄2 particles whose quantized property can be measured and manipulated by external stimuli and means for providing the external stimuli.
One example of a qubit includes spin 1⁄2 nuclei and equipment designed to generate nuclear magnetic resonance in the nuclei to change and measure the spin state of the nuclei. A more specific example is an organic molecule that provide different local fields at different molecular Carbon nuclei sites in the molecule. The nuclear moment of C13 is sensitive to local fields. Fabricating such an organic molecule with the isotope C13 in different molecular carbon sites in the molecule provides different resonance frequencies for nuclear magnetically resonating the C13 nuclei, depending upon the molecular position of the C13 atoms, thereby enabling the different sites to be used as a distinct qubits.
Another example of a qubit is a superconducting current loop maintained between two quantized current states (the so-called flux states in the quantum computing community), and a device to measure the current and to apply magnetic fields in the neighborhood of the loop to change and measure the current in the loop. Applied magnetic fields may change the state of the loop by changing the (relative energy difference and the height of the tunneling barrier between the two flux states in the) Hamiltonian of the superconducting current loop in a well-controlled time-dependent manner. The state of the superconducting loop may be measured by, for example, a separate DC-SQUID that acts as a magnetometer. Other designs for superconducting qubits include using charge eigenstates or a combination or superposition of flux/charge states as qubits. In one recent work, the measured quality factor of quantum coherence is reported to be about 25,000, which is sufficiently high that solid-state quantum computers based on this type of circuits would have utility.
Another example of a qubit is an ion trap in which quantum information is stored and processed in the internal states of trapped ions and/or collective vibrational modes of the trapped ions. Ions are cooled by various laser cooling and evaporation cooling techniques and then trapped by possibly time-dependent electromagnetic fields in a mesoscopic area. Trapped ions and means for exciting those ions (such as laser pulses) may, therefore be used for quantum computing. The presence or absence of fluorescence can be used for detection and the output of such a quantum information processor. Quantum correlations, also called entanglement, between trapped ions have recently been experimentally observed. The power of decoherence free subsystems in reducing decoherence has been experimentally demonstrated in ion traps. There are also proposals for the transfer of ions between a network of ion traps.
Another example of qubits are cavity quantum electro-dynamics where quantum information is stored and processed in cavity electromagnetic modes or internal states of atoms traversing the cavity. Cavity quantum electro-dynamics include excitation sources for exciting the modes or molecules such as lasers and microwave sources coupled to the cavity and detection sources such as power meters or photon counters.
Other examples of qubits include quantum dots, linear quantum optics plus single photon detectors, neutral atoms in optical lattices, electrons flowing on Helium, surface acoustic waves and silicon-based proposals.
The present invention also includes a method for computing Shor's quantum factoring algorithm with a combination of logarithmic depth quantum circuits, and polynomial depth classical circuits. This method first randomly chooses an integer and checks if it shares any factors with the integer to be factored. Failing this it proceeds onto the quantum portion of the process that determines information about the order of the random integer in Z_N (i.e., Z with A subscript N, which is a ring of numbers from 0 to N−1 under standard addition and multiplication modulo N and the periodicity refers to the standard multiplication operation modulo N) by using the QFT. This is followed by classical implementation of the continued fractions algorithm and some post-processing to complete the process.
The present invention also provides a method that is a parallelization of Shor's mixed radix method for computing the QFT. This method is quite similar to Shor's method, but parallelizes particular steps so that the entire method runs in logarithmic depth.



BRIEF DESCRIPTION OF THE FIGURES
Embodiments of the invention are described in connection with the following figures and their descriptions.
FIG. 1 is an exemplary representation of quantum operations for calculating QFT for modulo 2n;
FIG. 2 is an exemplary representation of operations forming element 5002 in FIG. 1, which is the Fourier state computation for modulo 2n;
FIG. 3 is an exemplary representation of operations forming element 5004 in FIG. 1, which is the Fourier state reproducer operation;
FIG. 4 is an exemplary representation of operations forming element 5006 in FIG. 1, which is the Fourier phase estimator operation;
FIG. 5 is a representation of one preferred embodiment of QFT computation for arbitrary modulus;
FIG. 6 is a representation of one preferred embodiment of Shor's quantum factoring algorithm with logarithmic depth quantum circuits;
FIG. 7 is a representation of one preferred embodiment of Shor's mixed-radix method for the quantum Fourier transform with logarithmic depth circuits for arbitrary modulus; and
FIG. 8 is a schematic view of a quantum computer.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIGS. 1–7 represent time evolution of qubits in a physical system forming the data processing unit of a quantum computer. In FIGS. 1–7, time increases from left to right. In FIGS. 1–7, each horizontal line represents the information content of the spin states of a spin 1⁄2 particle, a qubit of the data processing unit. Rectangles represent physical operations performed on the qubits whose lines intersect the rectangle. In FIGS. 1–7, numbers in the range 0–40 label sequential times. In FIGS. 1–7, numbers in the range 1000 to 1010 label sets of approximately equal numbers, n, of qubits. In FIGS. 1–7, numbers in the range 5000–5032 label rectangles representing physical operations on qubits. Numbers representing inverses of a physical operation have an “I” suffix. An inverse of a quantum operation requires the same depth and size as the operation. Modulus 2n herein refers indirectly to the fact that there are 2n basis states necessary to describe the state of n spin 1⁄2 particles
FIG. 1 represents computing a QFT modulo 2n of an initial basis state |x>. FIG. 1 shows a time sequence in which arrow 2 indicates direction of increasing time. In the time sequence, dashed lines 00, 10, 20, 30, 40 are specified times. Each horizontal line represents the quantum state as a function of time of a spin 1⁄2 particle. Each dot 4a, 4b, 4c represents additional quantum states of additional spin 1⁄2 particles. Boxes 5002, 5004, and 5006 each represent operations involving a plurality of spin l particles. The spin 1⁄2 particles involved in an operation represented by each box 5002, 5004, 5006, are the spin 1⁄2 particles the representative lines for which intersect that box. Elements 1000, 1002, 1004.1, . . . 1004.M each represent the quantum states of a set of n qubits, often referred to herein below preceded by a “Q” to denote that they each represent sets of qubits. As shown, element Q1000 represents a set of quantum states including states of particles represented by horizontal lines and dots 4a, 4b, 4c. Each set of three dots adjacent each one of quantum states of sets of qubits Q1000, Q1002, Q1004.1, . . . Q1004.M represent that fact that each of those elements includes n qubits. M is O(log n). Q1004.1 . . . Q1004.M are referred to herein below as ancilla qubits.
QFT 5000 represents the result of operations 5002, 5004, 5006, and 5004I in the time sequence shown in FIG. 1.
An evolution operator in quantum mechanics is linear. Therefore, to specify the action of an evolution operator on a general state, it is sufficient to specify its action on the computational basis |x> and extend such an action by linearity. The fact that an evolution operator U is a linear operator acting on a Hilbert space H means that U (alpha |a>+beta|b>)=alpha (U|a>)+beta (U|b) ) for all complex values of alpha and beta and for all vectors |a> and |b> in H. For this reason, to define a linear operator U in a Hilbert space H, one only needs to specify the resulting states U|u13 i>′s for a basis |u_i>′s in the Hilbert space, H. In the context of quantum computing, it is often convenient to pick |u_i>′s as a computational basis in H. Consider at time t=00: qubits Q1000 have been initialized to be in a computational basis state, |x>, qubits 1002 have been set to an initial state |0>, and qubits Q1004i for i=1 to n have each been initialized to the initial state |0>. |x> contains n qubits, and it can therefore represent a predetermined number from 1 to2n (or any predetermined one of n values in some representation). The states |0> is defined in the chosen representation to represent numeric zero. Thus, at t=00, Q1000=|x>, and Q1002 and Q1004i each equal |0>.
As shown in FIG. 1: operation 5002 is applied at time between 00 and 10 to qubit sets Q1000 and Q1002; operation 5004 is applied at time between 10 and 20 to qubit sets Q1002, Q1004.1, . . . Q1004.M; operation 5006 is applied at time between 20 and 30 to qubit sets Q1000, Q1002, Q1004.1 . . . Q1004.M; and operation 5004I is applied at time between 30 and 40 to qubit sets Q1002, Q1004.1 . . . 1004.M. M is in O(log n), since O(n log n) ancilla qubits 1004 . . . 1004.M are needed as extra workspace for the implementation of the QFT algorithm disclosed herein to efficiently provided exponentially small errors in the QFT output.
Operation 5002 is applied to Q1000 and Q1002. Operation 5002 converts qubits Q1002 to the Fourier basis state, |Px> (also referred to herein as |Ψx), leaving Q1000=|x>, and Q1004i=|0>.
Operation 5004 is applied to Q1002 and Q10041 . . . Q1004M. Operation 5004 copies |Px> from Q1002 to each Q1004i. Operation 5004 leaves Q1000=|x> and Q1002=|Px>. We name operation 5004 the Fourier state reproducer operation.
Operation 5006 gives an estimate of the value of x from a finite number of copies of the state |Px>. An error may occur in such an estimation. An error as defined herein refers to an event in the context of classical probability theory in which the estimated value of x is different from the actual value of x. Different types of errors mean different events corresponding to the different estimated values of x. In quantum mechanics, the total error probability is the sum of the error probabilities of all possible types of errors and is given by a sum of the squared amplitude for all possible types of errors. Now, O(log(n/epsilon)) copies of |Px> are needed to ensure that the total error probability is at most epsilon. In other words, the number of copies of |Px> must grow at least logarithmically with n, for any fixed bound, epsilon, on the total error probability.
Operation 5006 acts on all qubits. Operation 5006 with high probability erases the initial basis state from Q1000 placing Q1000 in |0>, leaving Q1002 and each Q1004i in |Px>. As discussed in the preceding paragraph, O(log n) copies of |Px> are used by operation 5006 to ensure that the error probability is bounded by some small epsilon.
By definition, the inverse of an operation applied immediately after the application of the operation places a set of quantum states upon which the operation acts in the same state in which the set of quantum states existed immediately prior to the operation.
Operation 5004I represents an operation that is the inverse of operation 5004. Operation 5004I changes each Q1004i from |Px> to |0>, and it leaves Q1000 in |0> and Q1002 in |Px>.
The useful data output for QFT 5000 consists of the value represented by the state |Px> of the n qubits Q1002.
The QFT method of FIG. 1 results with high probability in the Fourier basis state |Px> (Fourier basis state having phase x) of the computational basis state |x> stored in qubits 1002 and all the qubits 1004 . . . 1004.M in the state in which they started, denoted |0>.
Operations 5002, 5004, and 5006 are each poly-logarithmic depth quantum circuits, as shown below.
FIG. 2 shows details of operation 5002 of FIG. 1. FIG. 2 shows times 02, 04, 06, and 08, and operations 5010, 5012.1 . . . 5012.n, and 5010I.
In FIG. 2, operation 5010 operates on Q1000 and Q1006.1, . . . , Q1006.n Operation 5010 copies |x> into Q1006i for i=1 to n, and leaves Q1000 in |x> and Q1002 in |0>. There are O(n2) ancilla qubits, Q1006, which will hold approximately n copies of Q1000 at time 04–06.
Operation 5012.1 operates on one qubit of Q1002 and Q1006.1, operation 5012.2 operates on another qubit of Q1002 and Q1006.2, . . . , and operation Q5012.n operates on the nth qubit of Q1002 and Q1006.n. Operations 5012.i changes Q1002 from |0> to |Px>, and keeps Q1006i, for all i=1 to n, as |x>, and leaves Q1000 in |x>.
Operation 5010I is the inverse of operation 5010. It operates on Q1000 and Q1006.1 . . . Q1006.M. Operation 5010I changes Q1006.i from |x> to |0> for all i.
In 5010, a first layer of controlled NOT gates contains n gates, effectively XORing the classical input qubits 1000 onto the qubits 1006.1. This doubles the number of instances of |x>.
In 5010, operating on a second layer of controlled NOT gates contains 2n gates that then copy the qubits in Q1000 and Q1006.1 onto the qubits Q1006.2 and Q1006.3. The second layer also doubles the number of instances of |x>.
In 5010, operating on a third layer of controlled NOT gates, 4n gates, copy qubits in Q1000, Q1006.1, Q1006.2, and Q1006.3 into qubit sets Q1006.4 to Q1006.7. The third layer also doubles the number of instances of |x>.
In 5010, operating each additional layer of controlled NOT gates doubles the number of instances of |x>.
Since the number of gates in each additional layer of controlled NOT gates doubles the number of instances of |x>, 5010 operates to copy Q1000 n times with logarithmic depth in n, the number of input gates.
The inventors recognized that not all of the ancilla qubits 1006 that are copied by operation 5010 are required for operation 5012 so the size of operation 5010 can be reduced by using only the lesser number of copies resulting in O(n2) ancilla bits, instead of exactly n2 instances.
Operation 5002 makes use of the fact that the Fourier basis state can be expressed as a factorization into n qubits for modulus 2n. Cleve, Ekert, Macchiavello, and Mosca present this factorization in “Quantum Algorithms Revisited”, Proceedings of the Royal Society of London, Series A, Volume 454, Number 1969, pages 339–354, which is incorporated herein by reference.
Operation 5012.i computes the phase of the ith output qubit in Q1002. Each 5012.i contains one Hadamard gate operation, O(n) controlled NOT gate operations and i controlled phase shift gate operations. Only one output qubit from Q1002 is input into each operation 5012.i. The n qubits from Q1006.i are also inputs into each operation 5012.i. In addition, n−1 ancillary qubits, not shown in FIG. 2, are also inputs into each operation 5012.i. Those n−1 ancillary qubits are each prepared in the state |0>.
Operation 5012.i consists of four steps. The first step is to apply a single Hadamard gate to the output qubit from Q1002. The second step is a concatenation of controlled NOT gates. More specifically, in the first layer of the second step, a single controlled NOT gate is applied with the output qubit from Q1002 as the source and one of the additional ancillary qubit as the target. Note that such a controlled NOT gate creates two entangled copies of the original output qubit from Q1002. In other words, the number of entangled copies of the output qubit from Q1002 is doubled by the first layer of the second step. In the second layer of the second step, two controlled NOT gates are applied. Each of the two entangled copies is now used as the source of each of the two controlled NOT gates. Two of the additional ancillary qubits are used as the two target qubits of the two controlled NOT gates. Note that, after the second layer of the second step, the number of entangled copies of the original output qubit from Q1002 is four. In other words, the second layer of the second step doubles the number of the entangled copies. These four entangled copies can now be used as the source in subsequent layers of the second step of controlled NOT gates. Since each layer of the second step doubles the number of entangled copies of the output qubit from Q1002, by applying only O (log n) layers of controlled NOT gates, one can generate n entangled copies of the output qubit from Q1002. This completes the second step of operation 5012.i.
The third step of operation 5012.i is a parallel application of controlled phase shift gates. It is, thus, of constant depth. Each of the n entangled copies of the output qubit from Q1002 is now used as a target qubit of a controlled phase shift gate. Each of the n qubits in Q1006.i is used as a source qubit of a controlled phase shift gate. Conditional on the state of the source qubit, a controlled phase shift gate may rotate the phase of the target qubit by a certain degree, changing the values of the amplitude vector. The angle or degree of phase shift depends on the particular qubit and the particular value of i of the set Q1006.i. More concretely, if one labels the qubits of Q1006.i backwards from n to 1, i.e., |x>=|x_n . . . x_2x_1>, then the phase shift in the controlled phase shift gate that applies to |x_j> is given by 2^{j−i} Pi.
The fourth step of operation 5012.i is the inverse of the step of operation 5012.i. All four steps of operation 5012.i can be done in logarithmic depth in n. Therefore, operation 5012.i as a whole can be done in logarithmic depth in n. The above description of 5012.i refers to an exact preparation of the Fourier basis state. However, an approximate preparation of the Fourier basis state can be done with even fewer gates. Such an approximate preparation may, for example, simply throw away controlled phase shift gates where the phase shifts are insignificant. Such an approximate preparation is often sufficient in applications including Shor's factoring algorithm. The process of operation 5012.i is described in detail in “Fast parallel circuits for quantum Fourier transform” cited herein above.
FIG. 3 shows details of operation 5004 of FIG. 1. FIG. 3 shows times 12, 14, 16, and operations 5020 and 5022. FIG. 3 shows operations resulting in copying of the Fourier basis states into the 1004.1, . . . 1004.M.
Operation 5020 operates on Q1004.1, . . . , Q1004.M. Operation 5020 changes each Q1004i from |0> to |P0>, and leaves Q1000 in |x> and Q1002 in |Px>.
Operation 5022 operates on Q1002 and Q1004.i . . . , Q1004.M. Operation 5022 changes Q1004.1, . . . , Q1004.M from |P0> to |Px>.
For any computational basis states |x> and |y>, applying an operation that maps |x>|y> to |x>|y−x> to an initial input |Px>|Py> results in an output state |Px+y> |Py>. Applying this operation to an initial input |P_0>|Px> copies the Fourier basis state|Px> resulting in |Px>|Py>. This operation is easily implemented in quantum computing since |P_0> can be obtained by applying a Hadamard gate to n qubits initialized to zero.
Operation 5020 computes the state |P_0> M times in each of the qubits 1004.i for i from 1 to M. In this case, M has value O(log n). Operation 5020 computes |P_0> for each 1004.i. Operation 5020 is the Hadamard transformation of dimension n. Operation 5020 applies one Hadamard gate to each of the qubits in 1004.i in parallel. Operation 5020 has constant depth. At time 14, the Q1002 still contain the state |Px> from time 12 and the qubits 1004 contain O(log n) copies of |P_0>.
The state |P_0> |Px> transformed according to the mapping |x> |y> to |x> |y−x> (reversible subtraction) results in |Px> |Px>. Thus to copy the qubits 1002 into the qubits 1004.1 we have to apply the reversible subtraction on these qubits.
Operation 5022 takes as input at time 14 the qubits 1002 and 1004. There are two alternative embodiments for Operation 5022. In the first embodiment (Embodiment A), of operation 5022, a simple standard divide and conquer technique is applied. The first layer of Embodiment A takes Q1002 and one of the sets Q1004, say Q1004.1, as the input. It applies a modulo 2n subtraction operation, which is defined by

|x>|y> to |x>|y−x>,

with Q1004.1 as the first n-qubit register and Q1002 as the second n-qubit register.

As noted in preceding paragraphs, this gives two copies of |Px>. The number of copies of |Px> is doubled by the first layer of Embodiment A. The second layer of Embodiment A takes Q1002, Q1004.1, Q1004.2 and Q.1004.3 as the inputs. It applies a modulo 2^n subtraction operation with Q1004.2 as the first register and Q1002 as the second register. In parallel, it also applies a modulo 2n subtraction operation with Q1004.3 as the first register and Q1004.1 as the second register. The result of the second layer of Embodiment A is four copies of |Px>. Therefore, the second layer of Embodiment A doubles the Number of copies of |Px>. In summary, the number of copies |Px> is doubled each time a layer of Embodiment A is applied. Therefore, only O(log M) layers of Embodiment A is required to generate M copies of |Px>. The total depth of the circuit of Embodiment A is O (log M log n)=O ((log n) (log log n)) Because M=O (log n).
The second Embodiment (Embodiment B) of operation 5022 can reduce this depth further to O (log n). The inventors recognized that this reduction in depth can be achieved by combining and paralleling two standard operations in classical circuit design. The first operation called carry-save adder allows computation of the reversible subtraction operation in constant depth. Then the parallel process of telescoping subtraction (the inverse of the more common parallel prefix addition) can join enough carry-save adders in parallel in a way similar to the layering of controlled-NOT gates in operation 5010. Note that the (reversible) prefix addition is defined as the following Mapping: |x_1>>|x_2>. . . |x_k> to |x_1>|x_1+x_2>. . . |s_1+x_2+. . . x_k>. The (reversible) telescoping subtraction is defined as the following mapping: |s_1>|x_2> . . . |x_k> to |x_1>|x_2−x_1>. . . |x_k−x_{k1}>. The parallelization of these operations is described in detail in “Fast parallel circuits for the quantum Fourier transform” cited herein above. This accomplishes the task of performing O(log n) subtractions in logarithmic depth. At time 16 the qubits 1002 will remain in state |Px> from time 14, but the qubits 1004 now contain O(log n) copies of |Px> in each 1004.i. 
FIG. 4 shows details of operation 5006 of FIG. 1. FIG. 4 shows times 21, 22, 24, 26, 27,28 and operations 5024, 5030, 5034, 5030I, and 5024I. FIG. 4 shows operations resulting in setting Q1000 from |x> to |0> with high probability. Hereafter, high probability means that the total error probability is small.
Operation 5024 operates on all ancilla qubits of Q1004.i and Q1008.i. Initially, at T=21, each of Q10004.1 is in some state |Px>, Q1008.i is prepared in the state |0>, Q1010 is also prepared in the state |0>, whereas Q1000 is in some state |x>. Operation 5024 copies the state of Q1004.i into Q1008.i. Operation 5024 simulates the effect of a measurement on the qubits Q1004.i. 
Q1008 consists of O(n log n) qubits. Q1010 consists of n qubits.
Operation 5030 operates on Q1008.i Q1010 and some additional ancillary qubits (not shown in FIG. 4) to change Q1010 from |0> to |x> with high probability.
Operation 5034 operates on Q1010 and Q1000 to change Q1000 from |x> to |0> with high probability.
Operation 5030I is the inverse operation of operation 5030, it maps the state of Q1010 from |x> to |0>.
Operation 5024I is the inverse operation of operation 5024, it maps the state of Q1008.i back to |0>. Therefore, the overall operation of 5006 in FIG. 4 maps the state of Q10004.i and Q1000 from |Px> |Px>. . . |Px> |x> to |Px> |Px>. . . |Px> |0> with high probability. In other words, the state of Q1000 is erased with high probability.
In operation 5024, each qubit in Q1004i has a measurement simulated by using a controlled NOT gate to XOR the qubit onto a qubit from qubits 1008. Since the qubit has not truly been observed its state remain undisturbed, but entangled with the new qubit. The new qubits are then used to control quantum operations that depend on the value of the observation in the same way that the actual result would be used to control quantum operations. All of the controlled-NOT gates can operate concurrently, so this operation has constant depth. At time 22 the qubits 1008 store entangled copies of the qubits 1004. The entanglement between the qubits and those from which they were copied is such that observation of both qubits would give redundant information. The ancilla qubits extracts the measurement outcome from the qubit, without requiring a measurement. We call this extraction a pseudo measurement. The copying of the ancilla qubits described above is a unitary transformation. Such a unitary description of an operation—the copying operation in the current example—is sometimes called “the Church of the Larger Hilbert space”.
Operation 5030 uses the results of these pseudo measurements (i.e., the states of Q1008.i) to estimate the phase |x>. It takes as input the qubits 1010 upon which it will store |x> at time 24. Operation 5030 has two parts. The first part of operation 5030 computes an encoded representation of |x>. Many copies are needed so that the probability of error is sufficiently small that we can be relatively sure the estimation of |x> is correct. For each qubit in |Px>, half of the qubits are measured against the basis




  
    
      
        
          
            
              
                
                  {
                  
                    
                      1
                      
                        2
                      
                    
                    ⁢
                    
                      
                      0
                    
                  
                
                〉
              
              +
              
                
                  1
                  
                    2
                  
                
                ⁢
                
                  
                  1
                
              
            
            〉
          
          ,
          
            
              1
              
                2
              
            
            ⁢
            
              
              0
            
          
        
        〉
      
      -
      
        
          1
          
            2
          
        
        ⁢
        
          
          1
        
      
    
    〉
  
  }




and the other half are measured against the basis





  
    
      
        
          
            
              
                
                  
                    {
                    
                      
                        1
                        
                          2
                        
                      
                      ⁢
                      
                        
                        0
                      
                    
                  
                  〉
                
                +
                
                  
                    i
                    
                      2
                    
                  
                  ⁢
                  
                    
                    1
                  
                
              
              〉
            
            ,
            
              
                1
                
                  2
                
              
              ⁢
              
                
                0
              
            
          
          〉
        
        -
        
          
            i
            
              2
            
          
          ⁢
          
            
            1
          
        
      
      〉
    
    }
  
  .




These two types of measurements can place the qubit into one of four categories. The inventors, in their paper cited herein above, describe why these measurements help categorize |Px>. The first two categories are 0, and 1. These reflect the cases in which the exact value of the qubit can be estimated from the measurement. If this case proves to be uninformative, for instance when half the measurements say 0 and the other half say 1, then a second class of measurement may be used to determine the qubit's value as a function of the next qubit's value. Two possibilities arise, either the qubit is the same as the next qubit, or the qubit is the opposite of the next qubit. The two possibilities are denoted P and N, respectively, for propagate and negate. The estimation process will take the results of the simulated measurement and output an encoded string for the phase in terms of the classes 0,1, P, and N. Because only pseudo measurements are used instead of real measurements, the result of first part of operation 5050 is a superposition over all possible encodings. The weights on each possible encoding correspond exactly to the probability that the encoding would have been generated had there been a measurement of the states of ancilla qubits Q1008i. Because we have used O(log n) copies of the state |Px>, we can effectively reduce the probability of error in this operation to an exponentially small value, and thus the majority of weight in the superposition is on the correct encoding of |x>.

We will now describe the second part of operation 5030. In the second part of the operation 5030, the encoded string, stored in some ancillary qubits not shown in FIG. 4, Is input into a decoder. The second part of the operation 5030 decodes the input, the encoded form of x, to obtain x with high probability. The decoding can be done by a parallel implementation of a matrix multiplication algorithm. The inventors discussed this decoding operation in detail in Cleve and Watrous, Quant-ph/0006004. Parallelization of this decoding algorithm can be done by the parallel prefix method, cited herein above. The output of 5030 is the phase of the Fourier basis state with exponentially small probability of error. Finally, operation 5034 XORs the estimated phase of |x> is stored in Q1010 onto the state stored in qubits Q1000. Operation 5034 alters the values of Q1000 to state |0> with high probability (a probability defined by the number of sets of ancilla Q1004i, Q1008i, involved in 5024 and 5030).
A string of symbols from the set {P, N, 0, 1} is created from the results of the observations, according to operation 5030, and then this string is decoded to approximate the computational basis state, according to operation 5032. Decoding the string is done using parallel prefix method to ensure logarithmic depth.
Operation 5030I is the inverse operation 5030. Operation 5024I is simply the inverse operation 5024. The operations 5030I and 5024I together reset the states of the ancillas Q1008.i Q1010 and other ancillary qubits (employed in operation 5030, but not shown in FIG. 4) all to |0>.
FIG. 5 shows a method for computing the QFT of a computational basis state of an arbitrary modulus, which is a whole Number that is not necessarily a power of 2. Let n be the integral part of Log m+O (1), where the integral part of log m means the largest integer that is smaller than log m. FIG. 5 shows operation A5000 at times A00, A05, A10, A15, A20, A25, and A30, and sequential operations A5002, A5004, 5000I, 5005, A5006, and sets of qubits A1000, A1002, A1004.i for i=1 to M, and A1006i for i=1 to M. FIG. 5 shows operations providing the QFT for an arbitrary modulus.
At time A00, qubits A1000 are initialized to a computational basis state |x>, A1002, A1004i, AND A1006i for i=1 to M are initialized to |0>.
After time A00, operation A5002 operates on A1000 and A1002, changes A1002 from |0> to |Px>, and leaves all other qubits unchanged.
After time A05, operation A5004 operates on qubits A1002 and A1004i for all i=1 to M, copies |Px> from A1002 to A1004i, and leaves all other qubits unchanged.
Operation 5000I is an inverse of a QFT of modulus 2n. After time A10, operation 5000I operates on each A1004i (as explained in the description of FIGS. 1–4). Operations 5000I may be performed concurrently.
After operations 5000I, operation 5005 operates on all A1004i and A1006i, copies the state of each A1004i into a corresponding A1006i, and leaves A1000, A1002, and A1004i unchanged. Operation 5005 simulates the effect of a measurement on A1004.i 
After time A15, operation A5006 operates on A1000 and A1006i, changes A1000 from |x> to |0> with high probability, and leaves the state of A1006.i unchanged. Mathematically, the operation A5006 maps |x> (F^{dagger}—{2n}|Px>)(F^{dagger}—{2n |Px>) . . . (F^{dagger}—{2n}|Px>) to |022 (F^{dagger}—{2n |Px>)(F^{dagger}—{2n}|Px>) . . . (F^{dagger}—{2n} |Px>) with high probability. In summary, operation A5006 estimates the value of x using Registers A1006.i and subtract the estimated value from the register A1000.
After time A20, operation 5005I, the inverse of 5005, operates on all of A1004.i and A1008.i and resets the state of each of A1008.i to |0>. Afterwards, the operation 5000 operates on each of A1004.i, changes the state of Each of A1004.i from (F^{dagger}—{2n} |Px>) to |Px>. Here, the expression F^55 dagger} means the adjoint/inverse operator of F, which is the quantum Fourier Transform operator.
A5004I is the inverse of A5004. After time A25, operation A5004I operates on A1002 and A1004i, changes A1004i to |0> for all i and leaves all other qubits unchanged.
Preferably, A1004 and A1006 contain the same number of qubits, nM, where M is O (log n) and n is the number of qubits in A1000.
A5002 compute the Fourier basis state for modulus m. The depth of the operations A5002 is poly-logarithmic in contrast to the logarithmic depth of 5000.
Operation A5004 is also polylogarithmnic in contrast with the logarithmic depth of operation 5004.
Both operations A5002 and A5004 result states of corresponding qubits as operations 5002 and 5004. At time A05 the Fourier basis state with phase x, |Px> has been computed by A5002 and stored in qubits A1002. At time A10 this Fourier basis state has been copied O(log n) times into qubits A1004.
The major difference between operation 5000 and operation A 5000 is the operation for estimating the phase. In operation A5000, operations 5000 finish the computation of |Px> in A1002.
At time A10 the inverse QFT with modulus 2n for some sufficiently large n, operation 5000I, is performed on each copy of the Fourier basis state stored in qubits 1004. Measurements are simulated on these copies again through the use of controlled NOT gates as in FIG. 5. In A5006, the A1006i are used to compute |ym2(−n)+0.5 | mod m for each computational basis state y. The output of the above computation of the integral part of (y m 2{−n}+0.5) is, with a high probability, equal to x. Therefore, in A5006, such an output can be used to erase |x> stored in A1000. This can be used to erase |x> by XORing A1000 and A1006i together in operation A5006, as shown in the description of 5006 in FIGS. 1–4. At time A30, |Px> is stored in A1002 and A1000 has changed to state |0> with a high probability.
FIG. 6 shows a method F5000 for factoring based on Shor's algorithm. Method F5000 produces a factor of an n-bit composite number, N, with high probability. F5000 includes classical operations performed on classical electronic circuits either digital or analog, and quantum operations on qubits. The quantum operations require only poly-logarithmic depth. The classical operations require circuits of polynomial depth.
When qubits are used in classical portions of the operation they are assumed to not be in superposition. That is they will always be in one computational basis state, the same as classical bits. This will be discussed in further detail below.
FIG. 6 shows sequential times F00, F02, F04, F06, F08, F10, and F12, and operations F5002, F5004, F5006, 5000, F5008, and F5010.
Qubit sets F1000, F1002, F1004 each contain n qubits. F1006 preferably contains about 2n qubits; it is of size about 2n. F1008 preferably contains n qubits; it is of size n.
F1006 and F1008 must be qubits. F1000, F1002, F1004, and F1010 maybe qubits or classical bits.
At time equals F00, F1000 are initialize to |N>, the quantum state representing the binary representation of the number, N, which is to be factorized., and all other qubits are initialized to |0>.
After time F00, operation F5002 operates on qubits F1000, F1002, and F1004. Operation F5002 changes F1004 to a random number, “a”, in the range 2 to N−1. F5002 then determines whether “a” is a factor of N. IF 5002 determines that a is a factor of N, F5002 also changes F1002 to represent a, |a>. Shor's factoring algorithm has a subroutine on modular exponentiation. The inventors recognized that the modular exponentiation step can be shifted to the classical computation step. While it is not shown explicitly in FIG. 5, it should be understood that such modular exponentiation step can be done in, for example, the time between A00 and A05 by a conventional computer (digital or Analog).
After time F02, quantum operation F5004 operates on qubits F1006 to change F1006 to a uniform superposition over all computational basis states of the 2n qubits. That is to say, up to a normalization constant, the state is given by |0>+|1>+|2>+. . . +|2n−1>. Quantum operation F1006 applies one Hadamard gate operation to each qubit in F1006. Quantum operation F1006 has constant depth.
After time F04, quantum operation F5006 operates on qubits F1000, F1004. Operation F5006 is linear. Therefore, to define operation F5006, it is sufficient to define its action on basis states and extend its action to a general state by linearity. For this reason, consider an input state |x> for the qubits in F1006. The state of F1008 is |0>. Operation F5006 keeps the basis state of F1006 unchanged as |x>. Operation F5006 changes the state of F1008 from |0> to |ax mod N>. In summary, F5006 is specified by the unitary transformation |x>|y> to |x>|y+ax mod N> where the first register refers to F1006 and the second register refers to F1008.
After time F06, operation 5000 operates on qubits F1006 to define the QFT of F1006.
At time F08, after QFT 5000, the state of F1006 is measured.
After time F08, classical operation F5008 operates on the classical bits prepared as all zeros in F1006, and on the measured values of F1010. F5008 applies a continued fraction algorithm to find integers k and r, where 0 is less than or equal to k which is less than r, such that the following inequality is satisfied:




  
    
    
      
        y
        
          
            2
            ^
            2
          
          ⁢
          n
        
      
      -
      
        k
        r
      
    
    
  
  ≤
  
    1
    
      
        2
        ^
        2
      
      ⁢
      n
    
  




If αr mod N is not equal to one then the whole process depicted in FIG. 6 from time F00 should be are repeated. If αr mod N equals 1, r is stored in qubits F1010.
After time F10, operation F5010 operates on qubits F1002 and F1010. If F1002 is not equal to |0> then no operation is performed.
In operation F5010, if F1002 equals |0>, and r is an odd number, then the whole process depicted in FIG. 6 from time F00 is performed again, using freshly prepared ancilla qubits.
In operation F5010, if F1002 equals |0>, and r is an even number, then operation F5010 computes the greatest divisor of ar/2−1 and N. If the greatest divisor is 1 then the whole process depicted in FIG. 6 from time F00 should be repeated. If the greatest divisor is not 1, the greatest divisor is stored in F1002. Qubits F1002 are the n output qubits of operation F5000. The state of Qubits F1002 gives a non-trivial factor of N. The factorization algorithm is now complete. Qubits F1006 and F1008 are the only qubits that need to be quantum bits because they are the only information that are involved in a superposition. Qubits or bits F1010 provide work space for the classical post-processing stage. Qubits F1010 are of size n.
FIG. 7 represents a method S5000 for computing the QFT using Shor's mixed-radix operation in logarithmic depth. FIG. 7 shows sequential times S00, S02, S04, S06, and S08, qubit sets S1000, S1002.i . . . S1002.M, and operations S5002, S5004, S5006.i for i=1 to M, and S5002I. S1000 are both the input and the output qubit set of S5000. S5000 has logarithmic depth.
The symbol n represents the input size. The symbol m is the modulus with respect to the QFT. There are at most at most O (n log m/log log m) qubits S1002.
At time S00, the set of n qubits S1000 is initialized to a computational basis state |x>, and each set of n qubits S1002.i is each initialized to |0>.
After time S00, operation S5002 operates on S1000 and S1002i, to change the state of S1002 so that S1002 stores the modular representation of |x>. The modular representation of |x> is defined by the following transformation:

|x>|0,0, . . . , 0> to |0>|x mod m1>, |x mod m2>, . . . , |x mod k>,

where mi for 1=1 to k are pair wise relatively prime integers in O(log m) such that modulus m=m1 m2 . . . mk. Here, two numbers are called relatively prime if they have no non-trivial common factors. A most basic method for computing this transformation can be concurrently implemented because m is relatively small. Such methods, related to the Chinese Reminder Theorem, are well known. See, for example, E. Bach and J. Shallit, “Algorithmic Number Theory” and references cited therein. Operation S5002 changes the values of qubits S1002 to a modular representation of |x>.

After time S02, operation S5004 operates on qubits S1002. Operation S5002 multiplies each S1002i by an integer, gi. The gi are defined such that gl=the inverse of (m/mi) mod mi. Here the S5004 may operate concurrently on all sets of S1002i. See, for example, E. Bach and J. Shallit, “Algorithmic Number Theory,” MIT Press, 1996, and references cited therein. S5004 changes the values of qubits S1002 to the states:

|x mod m_1)g_1, (x mod m_2)g_2, . . . , (x mod m_k)g_k>

Operations S5006.1 to S5006.M are all QFTs of lesser dimension than S5000. At time S04 each block of qubits S1002.i is input into operation S5006.i where operation S5006.i computes the QFT modulus m, in logarithmic depth. These operations can be implemented in a couple of ways. First, they can recurse on the mixed radix operation in which case the operations S5006.i would be replaced with smaller instances of the operation displayed in FIG. 7. Second, they can be the same operation demonstrated in FIG. 5, which computes the QFT in logarithmic depth for any modulus. At time S06, the QFT has been performed on all the blocks S1002.i. 
At time S06, operation S5002I is applied to S1000 and all S1002i to construct |Px> from its modular representation, store |Px> in qubits S1002, and change the values of qubits S1002i to |0>.
FIG. 8 schematically illustrates one type of quantum computer, an NMR based quantum computer, for implementing the invention. FIG. 8 shows a quantum computer 810 including a quantum data processing sample 801, an RF cavity 802, a set of RF generators 803, an output signal line 804, a magnetic field gradient current source 805, a dewar and DC magnet 806, a mixer 807, a pre amplifier 808, and a digitizer 809. In operation, the different resonance frequencies of nuclear moments in sample 801 are generated by generators 803. The field gradient 805 may be used to thermodymically couple the sample to the environment to initialize the sample 1 to a thermodynamic ground state. The digitizer 809 digitizes NMR signal output resulting from operations performed on the qubits of the sample 1. Operations are performed by initializing to a ground state, and then exiting the desires qubits/nuclear moments using generators 803 to perform the desired computations.
Combating decoherence may involve using quantum error correcting codes and decoherence free subsystems. The circuits disclosed above generally refer to the transformation on the encoded or logical qubits, rather than the physical qubits. While the above disclosure has been based on the standard quantum circuit model for a parallel quantum computer, the invention applies to different architectures of quantum information processors. Examples of other architectures of quantum information processors include (a) those where only local gates between neighboring qubits are allowed, (b) those where a number of small quantum information processors are networked together by classical or quantum channels and (c) one-way Quantum computers as disclosed in Raussendorf, Browne, and Briegel, http://xxx.lanl.gov/abs/quant-ph/0108118 and (d) efficient linear optics quantum computation as disclosed in Knill, Laflamme, and Milburn, http://xxx.lanl.gov/abs/quant-ph/0006088. For instance, one can apply standard techniques for transforming circuits from a circuit in a standard parallel quantum computer to a circuit in a quantum computer with only local gates into the circuits disclosed above and in FIG. 1-7 to implement the present invention.
Furthermore, the present invention may be applied to other quantum information units including d-level quantum systems and continuous variables.
While the above specification concerns mainly with the depth of a circuit, the invention may also be useful for obtaining a trade-off between the depth and the size of a circuit. By increasing the depth of circuit, one may achieve A QFT with a smaller number of qubits than what is otherwise necessary or convenient. The invention is also compatible with various simplifications and modifications, which allow a further reduction in the depth and/or the size of a circuit.
The methods illustrated above in connection with FIGS. 1–7 are examples of uses of logarithmic and poly logarithmic gate operations of the invention. The invention has been described above in the context of certain useful algorithms. The scope of the invention is more properly defined by the following claims, and those claims and their equivalents are what the inventors claim as their invention.

## Claims

1. A method of performing a quantum Fourier transform in a quantum computing circuit using input qubits and ancilla qubits each capable of occupying multiple states, comprising:
forming the quantum computing circuit as a collection of two-qubit gates operating on input qubits;
interacting the ancilla qubits with the input qubits to cause the ancilla qubits to be transformed to a state corresponding to an output of a discrete Fourier transform of a classical state of the input qubits;
non-destructively resetting the input qubits to a ground state by physically interacting the input qubits with the ancilla qubits; and
transforming the ancilla qubits to a state representative of a quantum Fourier transform of the input qubits.

2. The method of claim 1, whereby the quantum circuit has a depth that scales logarithmically as a function of a number of input qubits transformed, and including a number of ancilla qubits that is proportional to the number of input qubits times the depth of the quantum circuit.

3. A method according to claim 1 of factoring an integer using a quantum circuit, comprising:
performing a classical computation that receives as input the integer as an n-bit binary integer and that produces as output the quantum circuit of claim 1
implementing Shor's quantum factoring algorithm in the quantum circuit and creating a corresponding output of the quantum circuit; and
performing classical computation on the quantum circuit output to generate a factorization of the input number.

4. The method of claim 1, including using n input qubits and forming the quantum circuit to have a depth of O(log n).

5. A method of performing a quantum Fourier transform in a quantum computing circuit, comprising:
forming quantum computing circuit as a collection of two-qubit gates operating on input qubits;
using ancilla qubits to replicate a state corresponding to an output of a discrete Fourier transform of a classical state of the input qubits; and
transforming the ancilla qubits to a state representative of a quantum Fourier transform of the input qubits.

6. A quantum computing circuit, comprising:
a collection of two-qubit gates adapted to operate on a sequence of input qubits;
a collection of ancilla qubits adapted to physically interact with the input qubits;
means for physically interacting the input qubits with the input qubits to cause the ancilla qubits to be transformed to a state corresponding to an output of a discrete Fourier transform of a classical state of the input qubits; and
means for transforming the ancilla qubits to a state representative of a quantum Fourier transform of the sequence of input qubits.