Deprecated

In favour of

quipper-core

An embedded, scalable functional programming language for quantum computing.

http://www.mathstat.dal.ca/~selinger/quipper/

Latest on Hackage:0.8.0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Applied Communication Sciences
Maintained by [email protected]

Quipper is an embedded, scalable functional programming language for quantum computing. It provides, among other things:

  • A high-level circuit description language. This includes gate-by-gate descriptions of circuit fragments, as well as powerful operators for assembling and manipulating circuits.

  • A monadic semantics, allowing for a mixture of procedural and declarative programming styles.

  • Built-in facilities for automatic synthesis of reversible quantum circuits, including from classical code.

  • Support for hierarchical circuits.

  • Extensible quantum data types.

  • Programmable circuit transformers.

  • Support for three execution phases: compile time, circuit generation time, and circuit execution time. A dynamic lifting operation to allow circuit generation to be parametric on values generated at circuit execution time.

  • Extensive libraries of quantum functions, including: libraries for quantum integer and fixed-point arithmetic; the Quantum Fourier transform; an efficient Qram implementation; libraries for simulation of pseudo-classical circuits, Stabilizer circuits, and arbitrary circuits; libraries for exact and approximate decomposition of circuits into specific gate sets.

This package contains all of quipper, except for the rendering part, which has been separated into the quipper-rendering package to reduce dependencies.