Learn More
The field of quantum algorithms is vibrant. Still, there is currently a lack of programming languages for describing quantum computation on a practical scale, i.e., not just at the level of toy problems. We address this issue by introducing Quipper, a scalable, expressive, functional, higher-order quantum programming language. Quipper has been used to(More)
Overview Given a gate set S universal for quantum computing, the problem of decomposing a unitary operator U into a circuit over S is known as the synthesis problem. This problem can be solved exactly, if U belongs to the set of circuits generated by S. Otherwise, it can be solved approximately, by finding a circuit U such that ||U − U || < for some chosen(More)
Quipper is a recently developed programming language for expressing quantum computations. This paper gives a brief tutorial introduction to the language, through a demonstration of how to make use of some of its key features. We illustrate many of Quipper's language features by developing a few well known examples of Quantum computation , including quantum(More)
We describe a new efficient algorithm to approximate z-rotations by ancilla-free Pauli+V circuits, up to a given precision ε. Our algorithm is optimal in the presence of an oracle for integer factoring: it outputs the shortest Pauli+V circuit solving the given problem instance. In the absence of such an oracle, our algorithm is still near-optimal, producing(More)
Despite the rich literature on quantum algorithms, there is a surprisingly small amount of coverage of their concrete logical design and implementation. Most resource estimation is done at the level of complexity analysis, but actual concrete numbers (of quantum gates, qubits, etc.) can differ by orders of magnitude. The line of work we present here is a(More)